// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
// RUN: c_compiler -c %s -I "common" -o %t3.o
// RUN: linker -o %t2%exeext  %t1.o %t2.o %t3.o
// RUN: runtool %t2%exeext | checker "TEST PASSED"
#include "testsuite.h"
#ifdef __cplusplus

struct  S80C8_nt  {
  int s80c8f0[2];
  void  mf80c8(); // _ZN8S80C8_nt6mf80c8Ev
};
//SIG(-1 S80C8_nt) C1{ m Fi[2]}


void  S80C8_nt ::mf80c8(){}

//skip512 S80C8_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C7_nt  {
  int s80c7f0;
  __tsi64 s80c7f1;
  void *s80c7f2[4];
  int s80c7f3[2];
  void *s80c7f4;
  ::S80C8_nt s80c7f5;
  void *s80c7f6[2];
  virtual  ~S80C7_nt(); // _ZN8S80C7_ntD1Ev
  virtual void  v4(); // _ZN8S80C7_nt2v4Ev
  virtual void  v5(); // _ZN8S80C7_nt2v5Ev
  virtual void  v6(); // _ZN8S80C7_nt2v6Ev
  virtual void  v7(); // _ZN8S80C7_nt2v7Ev
  virtual void  v8(); // _ZN8S80C7_nt2v8Ev
  virtual void  v9(); // _ZN8S80C7_nt2v9Ev
  virtual void  v10(); // _ZN8S80C7_nt3v10Ev
  virtual void  v11(); // _ZN8S80C7_nt3v11Ev
  virtual void  v12(); // _ZN8S80C7_nt3v12Ev
  virtual void  v13(); // _ZN8S80C7_nt3v13Ev
  virtual void  v14(); // _ZN8S80C7_nt3v14Ev
  virtual void  v15(); // _ZN8S80C7_nt3v15Ev
  virtual void  v16(); // _ZN8S80C7_nt3v16Ev
  virtual void  v17(); // _ZN8S80C7_nt3v17Ev
  virtual void  v18(); // _ZN8S80C7_nt3v18Ev
  virtual void  v19(); // _ZN8S80C7_nt3v19Ev
  virtual void  v20(); // _ZN8S80C7_nt3v20Ev
  virtual void  v21(); // _ZN8S80C7_nt3v21Ev
  virtual void  v22(); // _ZN8S80C7_nt3v22Ev
  virtual void  v23(); // _ZN8S80C7_nt3v23Ev
  virtual void  v24(); // _ZN8S80C7_nt3v24Ev
  virtual void  v25(); // _ZN8S80C7_nt3v25Ev
  virtual void  v26(); // _ZN8S80C7_nt3v26Ev
  virtual void  v27(); // _ZN8S80C7_nt3v27Ev
  virtual void  v28(); // _ZN8S80C7_nt3v28Ev
  virtual void  v29(); // _ZN8S80C7_nt3v29Ev
  virtual void  v30(); // _ZN8S80C7_nt3v30Ev
  virtual void  v31(); // _ZN8S80C7_nt3v31Ev
  virtual void  v32(); // _ZN8S80C7_nt3v32Ev
  virtual void  v33(); // _ZN8S80C7_nt3v33Ev
  virtual void  v34(); // _ZN8S80C7_nt3v34Ev
  virtual void  v35(); // _ZN8S80C7_nt3v35Ev
  virtual void  v36(); // _ZN8S80C7_nt3v36Ev
  virtual void  v37(); // _ZN8S80C7_nt3v37Ev
  virtual void  v38(); // _ZN8S80C7_nt3v38Ev
  virtual void  v39(); // _ZN8S80C7_nt3v39Ev
  virtual void  v40(); // _ZN8S80C7_nt3v40Ev
  virtual void  v41(); // _ZN8S80C7_nt3v41Ev
  virtual void  v42(); // _ZN8S80C7_nt3v42Ev
  virtual void  v43(); // _ZN8S80C7_nt3v43Ev
  virtual void  v44(); // _ZN8S80C7_nt3v44Ev
  virtual void  v45(); // _ZN8S80C7_nt3v45Ev
  virtual void  v46(); // _ZN8S80C7_nt3v46Ev
  virtual void  v47(); // _ZN8S80C7_nt3v47Ev
  virtual void  v48(); // _ZN8S80C7_nt3v48Ev
  virtual void  v49(); // _ZN8S80C7_nt3v49Ev
  virtual void  v50(); // _ZN8S80C7_nt3v50Ev
  virtual void  v51(); // _ZN8S80C7_nt3v51Ev
  virtual void  v52(); // _ZN8S80C7_nt3v52Ev
  virtual void  v53(); // _ZN8S80C7_nt3v53Ev
  virtual void  v54(); // _ZN8S80C7_nt3v54Ev
  virtual void  v55(); // _ZN8S80C7_nt3v55Ev
  virtual void  v56(); // _ZN8S80C7_nt3v56Ev
  virtual void  v57(); // _ZN8S80C7_nt3v57Ev
  virtual void  v58(); // _ZN8S80C7_nt3v58Ev
  virtual void  v59(); // _ZN8S80C7_nt3v59Ev
  virtual void  v60(); // _ZN8S80C7_nt3v60Ev
  virtual void  v61(); // _ZN8S80C7_nt3v61Ev
  virtual void  v62(); // _ZN8S80C7_nt3v62Ev
  virtual void  v63(); // _ZN8S80C7_nt3v63Ev
  virtual void  v64(); // _ZN8S80C7_nt3v64Ev
  virtual void  v65(); // _ZN8S80C7_nt3v65Ev
  virtual void  v66(); // _ZN8S80C7_nt3v66Ev
  virtual void  v67(); // _ZN8S80C7_nt3v67Ev
  S80C7_nt(); // tgen
};
//SIG(-1 S80C7_nt) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S80C7_nt ::~S80C7_nt(){ note_dtor("S80C7_nt", this);}
void  S80C7_nt ::v4(){vfunc_called(this, "_ZN8S80C7_nt2v4Ev");}
void  S80C7_nt ::v5(){vfunc_called(this, "_ZN8S80C7_nt2v5Ev");}
void  S80C7_nt ::v6(){vfunc_called(this, "_ZN8S80C7_nt2v6Ev");}
void  S80C7_nt ::v7(){vfunc_called(this, "_ZN8S80C7_nt2v7Ev");}
void  S80C7_nt ::v8(){vfunc_called(this, "_ZN8S80C7_nt2v8Ev");}
void  S80C7_nt ::v9(){vfunc_called(this, "_ZN8S80C7_nt2v9Ev");}
void  S80C7_nt ::v10(){vfunc_called(this, "_ZN8S80C7_nt3v10Ev");}
void  S80C7_nt ::v11(){vfunc_called(this, "_ZN8S80C7_nt3v11Ev");}
void  S80C7_nt ::v12(){vfunc_called(this, "_ZN8S80C7_nt3v12Ev");}
void  S80C7_nt ::v13(){vfunc_called(this, "_ZN8S80C7_nt3v13Ev");}
void  S80C7_nt ::v14(){vfunc_called(this, "_ZN8S80C7_nt3v14Ev");}
void  S80C7_nt ::v15(){vfunc_called(this, "_ZN8S80C7_nt3v15Ev");}
void  S80C7_nt ::v16(){vfunc_called(this, "_ZN8S80C7_nt3v16Ev");}
void  S80C7_nt ::v17(){vfunc_called(this, "_ZN8S80C7_nt3v17Ev");}
void  S80C7_nt ::v18(){vfunc_called(this, "_ZN8S80C7_nt3v18Ev");}
void  S80C7_nt ::v19(){vfunc_called(this, "_ZN8S80C7_nt3v19Ev");}
void  S80C7_nt ::v20(){vfunc_called(this, "_ZN8S80C7_nt3v20Ev");}
void  S80C7_nt ::v21(){vfunc_called(this, "_ZN8S80C7_nt3v21Ev");}
void  S80C7_nt ::v22(){vfunc_called(this, "_ZN8S80C7_nt3v22Ev");}
void  S80C7_nt ::v23(){vfunc_called(this, "_ZN8S80C7_nt3v23Ev");}
void  S80C7_nt ::v24(){vfunc_called(this, "_ZN8S80C7_nt3v24Ev");}
void  S80C7_nt ::v25(){vfunc_called(this, "_ZN8S80C7_nt3v25Ev");}
void  S80C7_nt ::v26(){vfunc_called(this, "_ZN8S80C7_nt3v26Ev");}
void  S80C7_nt ::v27(){vfunc_called(this, "_ZN8S80C7_nt3v27Ev");}
void  S80C7_nt ::v28(){vfunc_called(this, "_ZN8S80C7_nt3v28Ev");}
void  S80C7_nt ::v29(){vfunc_called(this, "_ZN8S80C7_nt3v29Ev");}
void  S80C7_nt ::v30(){vfunc_called(this, "_ZN8S80C7_nt3v30Ev");}
void  S80C7_nt ::v31(){vfunc_called(this, "_ZN8S80C7_nt3v31Ev");}
void  S80C7_nt ::v32(){vfunc_called(this, "_ZN8S80C7_nt3v32Ev");}
void  S80C7_nt ::v33(){vfunc_called(this, "_ZN8S80C7_nt3v33Ev");}
void  S80C7_nt ::v34(){vfunc_called(this, "_ZN8S80C7_nt3v34Ev");}
void  S80C7_nt ::v35(){vfunc_called(this, "_ZN8S80C7_nt3v35Ev");}
void  S80C7_nt ::v36(){vfunc_called(this, "_ZN8S80C7_nt3v36Ev");}
void  S80C7_nt ::v37(){vfunc_called(this, "_ZN8S80C7_nt3v37Ev");}
void  S80C7_nt ::v38(){vfunc_called(this, "_ZN8S80C7_nt3v38Ev");}
void  S80C7_nt ::v39(){vfunc_called(this, "_ZN8S80C7_nt3v39Ev");}
void  S80C7_nt ::v40(){vfunc_called(this, "_ZN8S80C7_nt3v40Ev");}
void  S80C7_nt ::v41(){vfunc_called(this, "_ZN8S80C7_nt3v41Ev");}
void  S80C7_nt ::v42(){vfunc_called(this, "_ZN8S80C7_nt3v42Ev");}
void  S80C7_nt ::v43(){vfunc_called(this, "_ZN8S80C7_nt3v43Ev");}
void  S80C7_nt ::v44(){vfunc_called(this, "_ZN8S80C7_nt3v44Ev");}
void  S80C7_nt ::v45(){vfunc_called(this, "_ZN8S80C7_nt3v45Ev");}
void  S80C7_nt ::v46(){vfunc_called(this, "_ZN8S80C7_nt3v46Ev");}
void  S80C7_nt ::v47(){vfunc_called(this, "_ZN8S80C7_nt3v47Ev");}
void  S80C7_nt ::v48(){vfunc_called(this, "_ZN8S80C7_nt3v48Ev");}
void  S80C7_nt ::v49(){vfunc_called(this, "_ZN8S80C7_nt3v49Ev");}
void  S80C7_nt ::v50(){vfunc_called(this, "_ZN8S80C7_nt3v50Ev");}
void  S80C7_nt ::v51(){vfunc_called(this, "_ZN8S80C7_nt3v51Ev");}
void  S80C7_nt ::v52(){vfunc_called(this, "_ZN8S80C7_nt3v52Ev");}
void  S80C7_nt ::v53(){vfunc_called(this, "_ZN8S80C7_nt3v53Ev");}
void  S80C7_nt ::v54(){vfunc_called(this, "_ZN8S80C7_nt3v54Ev");}
void  S80C7_nt ::v55(){vfunc_called(this, "_ZN8S80C7_nt3v55Ev");}
void  S80C7_nt ::v56(){vfunc_called(this, "_ZN8S80C7_nt3v56Ev");}
void  S80C7_nt ::v57(){vfunc_called(this, "_ZN8S80C7_nt3v57Ev");}
void  S80C7_nt ::v58(){vfunc_called(this, "_ZN8S80C7_nt3v58Ev");}
void  S80C7_nt ::v59(){vfunc_called(this, "_ZN8S80C7_nt3v59Ev");}
void  S80C7_nt ::v60(){vfunc_called(this, "_ZN8S80C7_nt3v60Ev");}
void  S80C7_nt ::v61(){vfunc_called(this, "_ZN8S80C7_nt3v61Ev");}
void  S80C7_nt ::v62(){vfunc_called(this, "_ZN8S80C7_nt3v62Ev");}
void  S80C7_nt ::v63(){vfunc_called(this, "_ZN8S80C7_nt3v63Ev");}
void  S80C7_nt ::v64(){vfunc_called(this, "_ZN8S80C7_nt3v64Ev");}
void  S80C7_nt ::v65(){vfunc_called(this, "_ZN8S80C7_nt3v65Ev");}
void  S80C7_nt ::v66(){vfunc_called(this, "_ZN8S80C7_nt3v66Ev");}
void  S80C7_nt ::v67(){vfunc_called(this, "_ZN8S80C7_nt3v67Ev");}
S80C7_nt ::S80C7_nt(){ note_ctor("S80C7_nt", this);} // tgen

//skip512 S80C7_nt

#else // __cplusplus

extern void _ZN8S80C7_ntC1Ev();
extern void _ZN8S80C7_ntD1Ev();
Name_Map name_map_S80C7_nt[] = {
  NSPAIR(_ZN8S80C7_ntC1Ev),
  NSPAIR(_ZN8S80C7_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern void _ZN8S80C7_ntD1Ev();
extern void _ZN8S80C7_ntD0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
static  VTBL_ENTRY vtc_S80C7_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S80C7_nt[0]),
  (VTBL_ENTRY)&_ZN8S80C7_ntD1Ev,
  (VTBL_ENTRY)&_ZN8S80C7_ntD0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
};
extern VTBL_ENTRY _ZTI8S80C7_nt[];
VTBL_ENTRY *P__ZTI8S80C7_nt = _ZTI8S80C7_nt; 
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
Class_Descriptor cd_S80C7_nt = {  "S80C7_nt", // class name
  0,0,//no base classes
  &(vtc_S80C7_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI8S80C7_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S80C7_nt),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C6_nt  : S80C7_nt {
  virtual  ~S80C6_nt(); // _ZN8S80C6_ntD1Ev
  virtual void  v68(); // _ZN8S80C6_nt3v68Ev
  virtual void  v69(); // _ZN8S80C6_nt3v69Ev
  S80C6_nt(); // tgen
};
//SIG(-1 S80C6_nt) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S80C6_nt ::~S80C6_nt(){ note_dtor("S80C6_nt", this);}
void  S80C6_nt ::v68(){vfunc_called(this, "_ZN8S80C6_nt3v68Ev");}
void  S80C6_nt ::v69(){vfunc_called(this, "_ZN8S80C6_nt3v69Ev");}
S80C6_nt ::S80C6_nt(){ note_ctor("S80C6_nt", this);} // tgen

//skip512 S80C6_nt

#else // __cplusplus

extern void _ZN8S80C6_ntC1Ev();
extern void _ZN8S80C6_ntD1Ev();
Name_Map name_map_S80C6_nt[] = {
  NSPAIR(_ZN8S80C6_ntC1Ev),
  NSPAIR(_ZN8S80C6_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S80C7_nt;
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
static Base_Class bases_S80C6_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI8S80C6_nt[];
extern void _ZN8S80C6_ntD1Ev();
extern void _ZN8S80C6_ntD0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
extern void _ZN8S80C6_nt3v68Ev();
extern void _ZN8S80C6_nt3v69Ev();
static  VTBL_ENTRY vtc_S80C6_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S80C6_nt[0]),
  (VTBL_ENTRY)&_ZN8S80C6_ntD1Ev,
  (VTBL_ENTRY)&_ZN8S80C6_ntD0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v68Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v69Ev,
};
extern VTBL_ENTRY _ZTI8S80C6_nt[];
VTBL_ENTRY *P__ZTI8S80C6_nt = _ZTI8S80C6_nt; 
extern  VTBL_ENTRY _ZTV8S80C6_nt[];
Class_Descriptor cd_S80C6_nt = {  "S80C6_nt", // class name
  bases_S80C6_nt, 1,
  &(vtc_S80C6_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI8S80C6_nt),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV8S80C6_nt),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C9_nt  {
  int s80c9f0[4];
  char s80c9f1[9];
  void  mf80c9(); // _ZN8S80C9_nt6mf80c9Ev
};
//SIG(-1 S80C9_nt) C1{ m Fi[4] Fc[9]}


void  S80C9_nt ::mf80c9(){}

//skip512 S80C9_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C12_nt  {
  void *s80c12f0;
  int s80c12f1[2];
  void  mf80c12(); // _ZN9S80C12_nt7mf80c12Ev
};
//SIG(-1 S80C12_nt) C1{ m Fp Fi[2]}


void  S80C12_nt ::mf80c12(){}

//skip512 S80C12_nt

#else // __cplusplus

Class_Descriptor cd_S80C12_nt = {  "S80C12_nt", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C11_nt  : S80C12_nt {
};
//SIG(-1 S80C11_nt) C1{ BC2{ m Fp Fi[2]}}



//skip512 S80C11_nt

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S80C11_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C11_nt = {  "S80C11_nt", // class name
  bases_S80C11_nt, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C10_nt  : S80C11_nt {
};
//SIG(-1 S80C10_nt) C1{ BC2{ BC3{ m Fp Fi[2]}}}



//skip512 S80C10_nt

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S80C11_nt;
static Base_Class bases_S80C10_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C11_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C16  : S80C12_nt {
};
//SIG(-1 S80C16) C1{ BC2{ m Fp Fi[2]}}



static void Test_S80C16()
{
  extern Class_Descriptor cd_S80C16;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C16, buf);
    S80C16 &lv = *(new (buf) S80C16());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C16)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C16)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S80C16");
    test_class_info(&lv, &cd_S80C16);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C16(Test_S80C16, "S80C16", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S80C16[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C16 = {  "S80C16", // class name
  bases_S80C16, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C15  : S80C16 {
};
//SIG(-1 S80C15) C1{ BC2{ BC3{ m Fp Fi[2]}}}



static void Test_S80C15()
{
  extern Class_Descriptor cd_S80C15;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C15, buf);
    S80C15 &lv = *(new (buf) S80C15());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C15)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C15)");
    check_base_class_offset(lv, (S80C12_nt*)(S80C16*), 0, "S80C15");
    check_base_class_offset(lv, (S80C16*), 0, "S80C15");
    test_class_info(&lv, &cd_S80C15);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C15(Test_S80C15, "S80C15", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S80C16;
static Base_Class bases_S80C15[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C16,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C15 = {  "S80C15", // class name
  bases_S80C15, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C20  : S80C12_nt {
};
//SIG(-1 S80C20) C1{ BC2{ m Fp Fi[2]}}



static void Test_S80C20()
{
  extern Class_Descriptor cd_S80C20;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C20, buf);
    S80C20 &lv = *(new (buf) S80C20());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C20)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C20)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S80C20");
    test_class_info(&lv, &cd_S80C20);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C20(Test_S80C20, "S80C20", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S80C20[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C20 = {  "S80C20", // class name
  bases_S80C20, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C19  : S80C20 {
};
//SIG(-1 S80C19) C1{ BC2{ BC3{ m Fp Fi[2]}}}



static void Test_S80C19()
{
  extern Class_Descriptor cd_S80C19;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C19, buf);
    S80C19 &lv = *(new (buf) S80C19());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C19)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C19)");
    check_base_class_offset(lv, (S80C12_nt*)(S80C20*), 0, "S80C19");
    check_base_class_offset(lv, (S80C20*), 0, "S80C19");
    test_class_info(&lv, &cd_S80C19);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C19(Test_S80C19, "S80C19", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S80C20;
static Base_Class bases_S80C19[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C20,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C19 = {  "S80C19", // class name
  bases_S80C19, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C21_nt  {
  void *s80c21f0;
  ::S80C8_nt s80c21f1;
  void  mf80c21(); // _ZN9S80C21_nt7mf80c21Ev
};
//SIG(-1 S80C21_nt) C1{ m Fp FC2{ m Fi[2]}}


void  S80C21_nt ::mf80c21(){}

//skip512 S80C21_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C5_nt  : S80C6_nt {
  ::S80C9_nt s80c5f0;
  int s80c5f1;
  unsigned int s80c5f2:1;
  unsigned int s80c5f3:1;
  unsigned int s80c5f4:1;
  unsigned int s80c5f5:1;
  ::S80C10_nt s80c5f6;
  ::S80C10_nt s80c5f7;
  void *s80c5f8;
  ::S80C15 s80c5f9;
  ::S80C15 s80c5f10;
  ::S80C15 s80c5f11;
  ::S80C19 s80c5f12;
  char s80c5f13;
  int s80c5f14;
  void *s80c5f15;
  ::S80C8_nt s80c5f16;
  ::S80C8_nt s80c5f17;
  ::S80C8_nt s80c5f18;
  ::S80C8_nt s80c5f19;
  ::S80C8_nt s80c5f20;
  ::S80C8_nt s80c5f21;
  ::S80C21_nt s80c5f22;
  ::S80C21_nt s80c5f23;
  ::S80C21_nt s80c5f24;
  ::S80C21_nt s80c5f25;
  ::S80C21_nt s80c5f26;
  ::S80C21_nt s80c5f27;
  ::S80C21_nt s80c5f28;
  ::S80C21_nt s80c5f29;
  ::S80C21_nt s80c5f30;
  ::S80C21_nt s80c5f31;
  virtual  ~S80C5_nt(); // _ZN8S80C5_ntD1Ev
  virtual void  v70(); // _ZN8S80C5_nt3v70Ev
  virtual void  v71(); // _ZN8S80C5_nt3v71Ev
  virtual void  v72(); // _ZN8S80C5_nt3v72Ev
  virtual void  v73(); // _ZN8S80C5_nt3v73Ev
  virtual void  v74(); // _ZN8S80C5_nt3v74Ev
  virtual void  v75(); // _ZN8S80C5_nt3v75Ev
  virtual void  v76(); // _ZN8S80C5_nt3v76Ev
  virtual void  v77(); // _ZN8S80C5_nt3v77Ev
  virtual void  v78(); // _ZN8S80C5_nt3v78Ev
  virtual void  v79(); // _ZN8S80C5_nt3v79Ev
  virtual void  v80(); // _ZN8S80C5_nt3v80Ev
  virtual void  v81(); // _ZN8S80C5_nt3v81Ev
  virtual void  v82(); // _ZN8S80C5_nt3v82Ev
  virtual void  v83(); // _ZN8S80C5_nt3v83Ev
  virtual void  v84(); // _ZN8S80C5_nt3v84Ev
  virtual void  v85(); // _ZN8S80C5_nt3v85Ev
  virtual void  v86(); // _ZN8S80C5_nt3v86Ev
  virtual void  v87(); // _ZN8S80C5_nt3v87Ev
  virtual void  v88(); // _ZN8S80C5_nt3v88Ev
  virtual void  v89(); // _ZN8S80C5_nt3v89Ev
  virtual void  v90(); // _ZN8S80C5_nt3v90Ev
  virtual void  v91(); // _ZN8S80C5_nt3v91Ev
  virtual void  v92(); // _ZN8S80C5_nt3v92Ev
  virtual void  v93(); // _ZN8S80C5_nt3v93Ev
  virtual void  v94(); // _ZN8S80C5_nt3v94Ev
  virtual void  v95(); // _ZN8S80C5_nt3v95Ev
  virtual void  v96(); // _ZN8S80C5_nt3v96Ev
  virtual void  v97(); // _ZN8S80C5_nt3v97Ev
  virtual void  v98(); // _ZN8S80C5_nt3v98Ev
  virtual void  v99(); // _ZN8S80C5_nt3v99Ev
  virtual void  v100(); // _ZN8S80C5_nt4v100Ev
  virtual void  v101(); // _ZN8S80C5_nt4v101Ev
  virtual void  v102(); // _ZN8S80C5_nt4v102Ev
  virtual void  v103(); // _ZN8S80C5_nt4v103Ev
  virtual void  v104(); // _ZN8S80C5_nt4v104Ev
  virtual void  v105(); // _ZN8S80C5_nt4v105Ev
  virtual void  v106(); // _ZN8S80C5_nt4v106Ev
  virtual void  v107(); // _ZN8S80C5_nt4v107Ev
  virtual void  v108(); // _ZN8S80C5_nt4v108Ev
  virtual void  v109(); // _ZN8S80C5_nt4v109Ev
  virtual void  v110(); // _ZN8S80C5_nt4v110Ev
  virtual void  v111(); // _ZN8S80C5_nt4v111Ev
  virtual void  v112(); // _ZN8S80C5_nt4v112Ev
  virtual void  v113(); // _ZN8S80C5_nt4v113Ev
  virtual void  v114(); // _ZN8S80C5_nt4v114Ev
  virtual void  v115(); // _ZN8S80C5_nt4v115Ev
  virtual void  v116(); // _ZN8S80C5_nt4v116Ev
  virtual void  v117(); // _ZN8S80C5_nt4v117Ev
  virtual void  v118(); // _ZN8S80C5_nt4v118Ev
  virtual void  v119(); // _ZN8S80C5_nt4v119Ev
  virtual void  v120(); // _ZN8S80C5_nt4v120Ev
  virtual void  v121(); // _ZN8S80C5_nt4v121Ev
  virtual void  v122(); // _ZN8S80C5_nt4v122Ev
  virtual void  v123(); // _ZN8S80C5_nt4v123Ev
  virtual void  v124(); // _ZN8S80C5_nt4v124Ev
  virtual void  v125(); // _ZN8S80C5_nt4v125Ev
  virtual void  v126(); // _ZN8S80C5_nt4v126Ev
  virtual void  v127(); // _ZN8S80C5_nt4v127Ev
  virtual void  v128(); // _ZN8S80C5_nt4v128Ev
  virtual void  v129(); // _ZN8S80C5_nt4v129Ev
  virtual void  v130(); // _ZN8S80C5_nt4v130Ev
  virtual void  v131(); // _ZN8S80C5_nt4v131Ev
  virtual void  v132(); // _ZN8S80C5_nt4v132Ev
  virtual void  v133(); // _ZN8S80C5_nt4v133Ev
  virtual void  v134(); // _ZN8S80C5_nt4v134Ev
  virtual void  v135(); // _ZN8S80C5_nt4v135Ev
  virtual void  v136(); // _ZN8S80C5_nt4v136Ev
  virtual void  v137(); // _ZN8S80C5_nt4v137Ev
  virtual void  v138(); // _ZN8S80C5_nt4v138Ev
  virtual void  v139(); // _ZN8S80C5_nt4v139Ev
  virtual void  v140(); // _ZN8S80C5_nt4v140Ev
  virtual void  v141(); // _ZN8S80C5_nt4v141Ev
  virtual void  v142(); // _ZN8S80C5_nt4v142Ev
  virtual void  v143(); // _ZN8S80C5_nt4v143Ev
  virtual void  v144(); // _ZN8S80C5_nt4v144Ev
  virtual void  v145(); // _ZN8S80C5_nt4v145Ev
  S80C5_nt(); // tgen
};
//SIG(-1 S80C5_nt) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC6 Fp FC9{ BC10{ BC8}} FC9 FC9 FC11{ BC12{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC13{ m Fp FC4} FC13 FC13 FC13 FC13 FC13 FC13 FC13 FC13 FC13}


 S80C5_nt ::~S80C5_nt(){ note_dtor("S80C5_nt", this);}
void  S80C5_nt ::v70(){vfunc_called(this, "_ZN8S80C5_nt3v70Ev");}
void  S80C5_nt ::v71(){vfunc_called(this, "_ZN8S80C5_nt3v71Ev");}
void  S80C5_nt ::v72(){vfunc_called(this, "_ZN8S80C5_nt3v72Ev");}
void  S80C5_nt ::v73(){vfunc_called(this, "_ZN8S80C5_nt3v73Ev");}
void  S80C5_nt ::v74(){vfunc_called(this, "_ZN8S80C5_nt3v74Ev");}
void  S80C5_nt ::v75(){vfunc_called(this, "_ZN8S80C5_nt3v75Ev");}
void  S80C5_nt ::v76(){vfunc_called(this, "_ZN8S80C5_nt3v76Ev");}
void  S80C5_nt ::v77(){vfunc_called(this, "_ZN8S80C5_nt3v77Ev");}
void  S80C5_nt ::v78(){vfunc_called(this, "_ZN8S80C5_nt3v78Ev");}
void  S80C5_nt ::v79(){vfunc_called(this, "_ZN8S80C5_nt3v79Ev");}
void  S80C5_nt ::v80(){vfunc_called(this, "_ZN8S80C5_nt3v80Ev");}
void  S80C5_nt ::v81(){vfunc_called(this, "_ZN8S80C5_nt3v81Ev");}
void  S80C5_nt ::v82(){vfunc_called(this, "_ZN8S80C5_nt3v82Ev");}
void  S80C5_nt ::v83(){vfunc_called(this, "_ZN8S80C5_nt3v83Ev");}
void  S80C5_nt ::v84(){vfunc_called(this, "_ZN8S80C5_nt3v84Ev");}
void  S80C5_nt ::v85(){vfunc_called(this, "_ZN8S80C5_nt3v85Ev");}
void  S80C5_nt ::v86(){vfunc_called(this, "_ZN8S80C5_nt3v86Ev");}
void  S80C5_nt ::v87(){vfunc_called(this, "_ZN8S80C5_nt3v87Ev");}
void  S80C5_nt ::v88(){vfunc_called(this, "_ZN8S80C5_nt3v88Ev");}
void  S80C5_nt ::v89(){vfunc_called(this, "_ZN8S80C5_nt3v89Ev");}
void  S80C5_nt ::v90(){vfunc_called(this, "_ZN8S80C5_nt3v90Ev");}
void  S80C5_nt ::v91(){vfunc_called(this, "_ZN8S80C5_nt3v91Ev");}
void  S80C5_nt ::v92(){vfunc_called(this, "_ZN8S80C5_nt3v92Ev");}
void  S80C5_nt ::v93(){vfunc_called(this, "_ZN8S80C5_nt3v93Ev");}
void  S80C5_nt ::v94(){vfunc_called(this, "_ZN8S80C5_nt3v94Ev");}
void  S80C5_nt ::v95(){vfunc_called(this, "_ZN8S80C5_nt3v95Ev");}
void  S80C5_nt ::v96(){vfunc_called(this, "_ZN8S80C5_nt3v96Ev");}
void  S80C5_nt ::v97(){vfunc_called(this, "_ZN8S80C5_nt3v97Ev");}
void  S80C5_nt ::v98(){vfunc_called(this, "_ZN8S80C5_nt3v98Ev");}
void  S80C5_nt ::v99(){vfunc_called(this, "_ZN8S80C5_nt3v99Ev");}
void  S80C5_nt ::v100(){vfunc_called(this, "_ZN8S80C5_nt4v100Ev");}
void  S80C5_nt ::v101(){vfunc_called(this, "_ZN8S80C5_nt4v101Ev");}
void  S80C5_nt ::v102(){vfunc_called(this, "_ZN8S80C5_nt4v102Ev");}
void  S80C5_nt ::v103(){vfunc_called(this, "_ZN8S80C5_nt4v103Ev");}
void  S80C5_nt ::v104(){vfunc_called(this, "_ZN8S80C5_nt4v104Ev");}
void  S80C5_nt ::v105(){vfunc_called(this, "_ZN8S80C5_nt4v105Ev");}
void  S80C5_nt ::v106(){vfunc_called(this, "_ZN8S80C5_nt4v106Ev");}
void  S80C5_nt ::v107(){vfunc_called(this, "_ZN8S80C5_nt4v107Ev");}
void  S80C5_nt ::v108(){vfunc_called(this, "_ZN8S80C5_nt4v108Ev");}
void  S80C5_nt ::v109(){vfunc_called(this, "_ZN8S80C5_nt4v109Ev");}
void  S80C5_nt ::v110(){vfunc_called(this, "_ZN8S80C5_nt4v110Ev");}
void  S80C5_nt ::v111(){vfunc_called(this, "_ZN8S80C5_nt4v111Ev");}
void  S80C5_nt ::v112(){vfunc_called(this, "_ZN8S80C5_nt4v112Ev");}
void  S80C5_nt ::v113(){vfunc_called(this, "_ZN8S80C5_nt4v113Ev");}
void  S80C5_nt ::v114(){vfunc_called(this, "_ZN8S80C5_nt4v114Ev");}
void  S80C5_nt ::v115(){vfunc_called(this, "_ZN8S80C5_nt4v115Ev");}
void  S80C5_nt ::v116(){vfunc_called(this, "_ZN8S80C5_nt4v116Ev");}
void  S80C5_nt ::v117(){vfunc_called(this, "_ZN8S80C5_nt4v117Ev");}
void  S80C5_nt ::v118(){vfunc_called(this, "_ZN8S80C5_nt4v118Ev");}
void  S80C5_nt ::v119(){vfunc_called(this, "_ZN8S80C5_nt4v119Ev");}
void  S80C5_nt ::v120(){vfunc_called(this, "_ZN8S80C5_nt4v120Ev");}
void  S80C5_nt ::v121(){vfunc_called(this, "_ZN8S80C5_nt4v121Ev");}
void  S80C5_nt ::v122(){vfunc_called(this, "_ZN8S80C5_nt4v122Ev");}
void  S80C5_nt ::v123(){vfunc_called(this, "_ZN8S80C5_nt4v123Ev");}
void  S80C5_nt ::v124(){vfunc_called(this, "_ZN8S80C5_nt4v124Ev");}
void  S80C5_nt ::v125(){vfunc_called(this, "_ZN8S80C5_nt4v125Ev");}
void  S80C5_nt ::v126(){vfunc_called(this, "_ZN8S80C5_nt4v126Ev");}
void  S80C5_nt ::v127(){vfunc_called(this, "_ZN8S80C5_nt4v127Ev");}
void  S80C5_nt ::v128(){vfunc_called(this, "_ZN8S80C5_nt4v128Ev");}
void  S80C5_nt ::v129(){vfunc_called(this, "_ZN8S80C5_nt4v129Ev");}
void  S80C5_nt ::v130(){vfunc_called(this, "_ZN8S80C5_nt4v130Ev");}
void  S80C5_nt ::v131(){vfunc_called(this, "_ZN8S80C5_nt4v131Ev");}
void  S80C5_nt ::v132(){vfunc_called(this, "_ZN8S80C5_nt4v132Ev");}
void  S80C5_nt ::v133(){vfunc_called(this, "_ZN8S80C5_nt4v133Ev");}
void  S80C5_nt ::v134(){vfunc_called(this, "_ZN8S80C5_nt4v134Ev");}
void  S80C5_nt ::v135(){vfunc_called(this, "_ZN8S80C5_nt4v135Ev");}
void  S80C5_nt ::v136(){vfunc_called(this, "_ZN8S80C5_nt4v136Ev");}
void  S80C5_nt ::v137(){vfunc_called(this, "_ZN8S80C5_nt4v137Ev");}
void  S80C5_nt ::v138(){vfunc_called(this, "_ZN8S80C5_nt4v138Ev");}
void  S80C5_nt ::v139(){vfunc_called(this, "_ZN8S80C5_nt4v139Ev");}
void  S80C5_nt ::v140(){vfunc_called(this, "_ZN8S80C5_nt4v140Ev");}
void  S80C5_nt ::v141(){vfunc_called(this, "_ZN8S80C5_nt4v141Ev");}
void  S80C5_nt ::v142(){vfunc_called(this, "_ZN8S80C5_nt4v142Ev");}
void  S80C5_nt ::v143(){vfunc_called(this, "_ZN8S80C5_nt4v143Ev");}
void  S80C5_nt ::v144(){vfunc_called(this, "_ZN8S80C5_nt4v144Ev");}
void  S80C5_nt ::v145(){vfunc_called(this, "_ZN8S80C5_nt4v145Ev");}
S80C5_nt ::S80C5_nt(){ note_ctor("S80C5_nt", this);} // tgen

//skip512 S80C5_nt

#else // __cplusplus

extern void _ZN8S80C5_ntC1Ev();
extern void _ZN8S80C5_ntD1Ev();
Name_Map name_map_S80C5_nt[] = {
  NSPAIR(_ZN8S80C5_ntC1Ev),
  NSPAIR(_ZN8S80C5_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S80C7_nt;
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
extern Class_Descriptor cd_S80C6_nt;
extern VTBL_ENTRY _ZTI8S80C6_nt[];
extern  VTBL_ENTRY _ZTV8S80C6_nt[];
static Base_Class bases_S80C5_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C6_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI8S80C5_nt[];
extern void _ZN8S80C5_ntD1Ev();
extern void _ZN8S80C5_ntD0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
extern void _ZN8S80C6_nt3v68Ev();
extern void _ZN8S80C6_nt3v69Ev();
extern void _ZN8S80C5_nt3v70Ev();
extern void _ZN8S80C5_nt3v71Ev();
extern void _ZN8S80C5_nt3v72Ev();
extern void _ZN8S80C5_nt3v73Ev();
extern void _ZN8S80C5_nt3v74Ev();
extern void _ZN8S80C5_nt3v75Ev();
extern void _ZN8S80C5_nt3v76Ev();
extern void _ZN8S80C5_nt3v77Ev();
extern void _ZN8S80C5_nt3v78Ev();
extern void _ZN8S80C5_nt3v79Ev();
extern void _ZN8S80C5_nt3v80Ev();
extern void _ZN8S80C5_nt3v81Ev();
extern void _ZN8S80C5_nt3v82Ev();
extern void _ZN8S80C5_nt3v83Ev();
extern void _ZN8S80C5_nt3v84Ev();
extern void _ZN8S80C5_nt3v85Ev();
extern void _ZN8S80C5_nt3v86Ev();
extern void _ZN8S80C5_nt3v87Ev();
extern void _ZN8S80C5_nt3v88Ev();
extern void _ZN8S80C5_nt3v89Ev();
extern void _ZN8S80C5_nt3v90Ev();
extern void _ZN8S80C5_nt3v91Ev();
extern void _ZN8S80C5_nt3v92Ev();
extern void _ZN8S80C5_nt3v93Ev();
extern void _ZN8S80C5_nt3v94Ev();
extern void _ZN8S80C5_nt3v95Ev();
extern void _ZN8S80C5_nt3v96Ev();
extern void _ZN8S80C5_nt3v97Ev();
extern void _ZN8S80C5_nt3v98Ev();
extern void _ZN8S80C5_nt3v99Ev();
extern void _ZN8S80C5_nt4v100Ev();
extern void _ZN8S80C5_nt4v101Ev();
extern void _ZN8S80C5_nt4v102Ev();
extern void _ZN8S80C5_nt4v103Ev();
extern void _ZN8S80C5_nt4v104Ev();
extern void _ZN8S80C5_nt4v105Ev();
extern void _ZN8S80C5_nt4v106Ev();
extern void _ZN8S80C5_nt4v107Ev();
extern void _ZN8S80C5_nt4v108Ev();
extern void _ZN8S80C5_nt4v109Ev();
extern void _ZN8S80C5_nt4v110Ev();
extern void _ZN8S80C5_nt4v111Ev();
extern void _ZN8S80C5_nt4v112Ev();
extern void _ZN8S80C5_nt4v113Ev();
extern void _ZN8S80C5_nt4v114Ev();
extern void _ZN8S80C5_nt4v115Ev();
extern void _ZN8S80C5_nt4v116Ev();
extern void _ZN8S80C5_nt4v117Ev();
extern void _ZN8S80C5_nt4v118Ev();
extern void _ZN8S80C5_nt4v119Ev();
extern void _ZN8S80C5_nt4v120Ev();
extern void _ZN8S80C5_nt4v121Ev();
extern void _ZN8S80C5_nt4v122Ev();
extern void _ZN8S80C5_nt4v123Ev();
extern void _ZN8S80C5_nt4v124Ev();
extern void _ZN8S80C5_nt4v125Ev();
extern void _ZN8S80C5_nt4v126Ev();
extern void _ZN8S80C5_nt4v127Ev();
extern void _ZN8S80C5_nt4v128Ev();
extern void _ZN8S80C5_nt4v129Ev();
extern void _ZN8S80C5_nt4v130Ev();
extern void _ZN8S80C5_nt4v131Ev();
extern void _ZN8S80C5_nt4v132Ev();
extern void _ZN8S80C5_nt4v133Ev();
extern void _ZN8S80C5_nt4v134Ev();
extern void _ZN8S80C5_nt4v135Ev();
extern void _ZN8S80C5_nt4v136Ev();
extern void _ZN8S80C5_nt4v137Ev();
extern void _ZN8S80C5_nt4v138Ev();
extern void _ZN8S80C5_nt4v139Ev();
extern void _ZN8S80C5_nt4v140Ev();
extern void _ZN8S80C5_nt4v141Ev();
extern void _ZN8S80C5_nt4v142Ev();
extern void _ZN8S80C5_nt4v143Ev();
extern void _ZN8S80C5_nt4v144Ev();
extern void _ZN8S80C5_nt4v145Ev();
static  VTBL_ENTRY vtc_S80C5_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S80C5_nt[0]),
  (VTBL_ENTRY)&_ZN8S80C5_ntD1Ev,
  (VTBL_ENTRY)&_ZN8S80C5_ntD0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v68Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v69Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v70Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v71Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v72Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v73Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v74Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v75Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v76Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v77Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v78Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v79Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v80Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v81Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v82Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v83Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v84Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v85Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v86Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v87Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v88Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v89Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v90Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v91Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v92Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v93Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v94Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v95Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v96Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v97Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v98Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v99Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v100Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v101Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v102Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v103Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v104Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v105Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v106Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v107Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v108Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v109Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v110Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v111Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v112Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v113Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v114Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v115Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v116Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v117Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v118Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v119Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v120Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v121Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v122Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v123Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v124Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v125Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v126Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v127Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v128Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v129Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v130Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v131Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v132Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v133Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v134Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v135Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v136Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v137Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v138Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v139Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v140Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v141Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v142Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v143Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v144Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v145Ev,
};
extern VTBL_ENTRY _ZTI8S80C5_nt[];
VTBL_ENTRY *P__ZTI8S80C5_nt = _ZTI8S80C5_nt; 
extern  VTBL_ENTRY _ZTV8S80C5_nt[];
Class_Descriptor cd_S80C5_nt = {  "S80C5_nt", // class name
  bases_S80C5_nt, 2,
  &(vtc_S80C5_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI8S80C5_nt),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV8S80C5_nt),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C26  : S80C12_nt {
};
//SIG(-1 S80C26) C1{ BC2{ m Fp Fi[2]}}



static void Test_S80C26()
{
  extern Class_Descriptor cd_S80C26;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C26, buf);
    S80C26 &lv = *(new (buf) S80C26());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C26)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C26)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S80C26");
    test_class_info(&lv, &cd_S80C26);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C26(Test_S80C26, "S80C26", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S80C26[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C26 = {  "S80C26", // class name
  bases_S80C26, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C25  {
  ::S80C26 s80c25f0;
  void *s80c25f1;
  int s80c25f2;
  void  mf80c25(); // _ZN6S80C257mf80c25Ev
};
//SIG(-1 S80C25) C1{ m FC2{ BC3{ m Fp Fi[2]}} Fp Fi}


void  S80C25 ::mf80c25(){}

static void Test_S80C25()
{
  {
    init_simple_test("S80C25");
    S80C25 lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S80C25)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C25)");
    check_field_offset(lv, s80c25f0, 0, "S80C25.s80c25f0");
    check_field_offset(lv, s80c25f1, ABISELECT(16,12), "S80C25.s80c25f1");
    check_field_offset(lv, s80c25f2, ABISELECT(24,16), "S80C25.s80c25f2");
  }
}
static Arrange_To_Call_Me vS80C25(Test_S80C25, "S80C25", ABISELECT(32,20));

#else // __cplusplus

Class_Descriptor cd_S80C25 = {  "S80C25", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  ABISELECT(32,20), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C24  : S80C25 {
};
//SIG(-1 S80C24) C1{ BC2{ m FC3{ BC4{ m Fp Fi[2]}} Fp Fi}}



static void Test_S80C24()
{
  extern Class_Descriptor cd_S80C24;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(5,6)];
    init_test(&cd_S80C24, buf);
    S80C24 &lv = *(new (buf) S80C24());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S80C24)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C24)");
    check_base_class_offset(lv, (S80C25*), 0, "S80C24");
    test_class_info(&lv, &cd_S80C24);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C24(Test_S80C24, "S80C24", ABISELECT(32,20));

#else // __cplusplus

extern Class_Descriptor cd_S80C25;
static Base_Class bases_S80C24[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C25,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C24 = {  "S80C24", // class name
  bases_S80C24, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(32,20), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C4  : S80C5_nt {
  ::S80C8_nt s80c4f0;
  void *s80c4f1[9];
  ::S80C19 s80c4f2;
  ::S80C10_nt s80c4f3;
  ::S80C24 s80c4f4;
  int s80c4f5;
  unsigned int s80c4f6:1;
  unsigned int s80c4f7:1;
  unsigned int s80c4f8:1;
  unsigned int s80c4f9:1;
  unsigned int s80c4f10:1;
  unsigned int s80c4f11:1;
  unsigned int s80c4f12:1;
  unsigned int s80c4f13:1;
  unsigned int s80c4f14:1;
  unsigned int s80c4f15:1;
  unsigned int s80c4f16:1;
  unsigned int s80c4f17:1;
  unsigned int s80c4f18:1;
  unsigned int s80c4f19:1;
  unsigned int s80c4f20:1;
  unsigned int s80c4f21:1;
  unsigned int s80c4f22:1;
  unsigned int s80c4f23:1;
  unsigned int s80c4f24:1;
  unsigned int s80c4f25:1;
  unsigned int s80c4f26:1;
  unsigned int s80c4f27:1;
  void *s80c4f28;
  char s80c4f29[2];
  ::S80C8_nt s80c4f30;
  ::S80C8_nt s80c4f31;
  ::S80C8_nt s80c4f32;
  void *s80c4f33;
  ::S80C21_nt s80c4f34;
  ::S80C21_nt s80c4f35;
  ::S80C21_nt s80c4f36;
  ::S80C21_nt s80c4f37;
  ::S80C21_nt s80c4f38;
  virtual  ~S80C4(); // _ZN5S80C4D1Ev
  virtual void  v146(); // _ZN5S80C44v146Ev
  virtual void  v147(); // _ZN5S80C44v147Ev
  virtual void  v148(); // _ZN5S80C44v148Ev
  virtual void  v149(); // _ZN5S80C44v149Ev
  virtual void  v150(); // _ZN5S80C44v150Ev
  virtual void  v151(); // _ZN5S80C44v151Ev
  virtual void  v152(); // _ZN5S80C44v152Ev
  virtual void  v153(); // _ZN5S80C44v153Ev
  virtual void  v154(); // _ZN5S80C44v154Ev
  virtual void  v155(); // _ZN5S80C44v155Ev
  virtual void  v156(); // _ZN5S80C44v156Ev
  virtual void  v157(); // _ZN5S80C44v157Ev
  virtual void  v158(); // _ZN5S80C44v158Ev
  virtual void  v159(); // _ZN5S80C44v159Ev
  virtual void  v160(); // _ZN5S80C44v160Ev
  virtual void  v161(); // _ZN5S80C44v161Ev
  virtual void  v162(); // _ZN5S80C44v162Ev
  virtual void  v163(); // _ZN5S80C44v163Ev
  virtual void  v164(); // _ZN5S80C44v164Ev
  virtual void  v165(); // _ZN5S80C44v165Ev
  virtual void  v166(); // _ZN5S80C44v166Ev
  virtual void  v167(); // _ZN5S80C44v167Ev
  virtual void  v168(); // _ZN5S80C44v168Ev
  virtual void  v169(); // _ZN5S80C44v169Ev
  virtual void  v170(); // _ZN5S80C44v170Ev
  virtual void  v171(); // _ZN5S80C44v171Ev
  virtual void  v172(); // _ZN5S80C44v172Ev
  virtual void  v173(); // _ZN5S80C44v173Ev
  virtual void  v174(); // _ZN5S80C44v174Ev
  virtual void  v175(); // _ZN5S80C44v175Ev
  virtual void  v176(); // _ZN5S80C44v176Ev
  virtual void  v177(); // _ZN5S80C44v177Ev
  virtual void  v178(); // _ZN5S80C44v178Ev
  virtual void  v179(); // _ZN5S80C44v179Ev
  virtual void  v180(); // _ZN5S80C44v180Ev
  virtual void  v181(); // _ZN5S80C44v181Ev
  virtual void  v182(); // _ZN5S80C44v182Ev
  virtual void  v183(); // _ZN5S80C44v183Ev
  virtual void  v184(); // _ZN5S80C44v184Ev
  S80C4(); // tgen
};
//SIG(-1 S80C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC7 Fp FC10{ BC11{ BC9}} FC10 FC10 FC12{ BC13{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC14{ m Fp FC5} FC14 FC14 FC14 FC14 FC14 FC14 FC14 FC14 FC14} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC12 FC7 FC15{ BC16{ m FC17{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC5 FC5 FC5 Fp FC14 FC14 FC14 FC14 FC14}


 S80C4 ::~S80C4(){ note_dtor("S80C4", this);}
void  S80C4 ::v146(){vfunc_called(this, "_ZN5S80C44v146Ev");}
void  S80C4 ::v147(){vfunc_called(this, "_ZN5S80C44v147Ev");}
void  S80C4 ::v148(){vfunc_called(this, "_ZN5S80C44v148Ev");}
void  S80C4 ::v149(){vfunc_called(this, "_ZN5S80C44v149Ev");}
void  S80C4 ::v150(){vfunc_called(this, "_ZN5S80C44v150Ev");}
void  S80C4 ::v151(){vfunc_called(this, "_ZN5S80C44v151Ev");}
void  S80C4 ::v152(){vfunc_called(this, "_ZN5S80C44v152Ev");}
void  S80C4 ::v153(){vfunc_called(this, "_ZN5S80C44v153Ev");}
void  S80C4 ::v154(){vfunc_called(this, "_ZN5S80C44v154Ev");}
void  S80C4 ::v155(){vfunc_called(this, "_ZN5S80C44v155Ev");}
void  S80C4 ::v156(){vfunc_called(this, "_ZN5S80C44v156Ev");}
void  S80C4 ::v157(){vfunc_called(this, "_ZN5S80C44v157Ev");}
void  S80C4 ::v158(){vfunc_called(this, "_ZN5S80C44v158Ev");}
void  S80C4 ::v159(){vfunc_called(this, "_ZN5S80C44v159Ev");}
void  S80C4 ::v160(){vfunc_called(this, "_ZN5S80C44v160Ev");}
void  S80C4 ::v161(){vfunc_called(this, "_ZN5S80C44v161Ev");}
void  S80C4 ::v162(){vfunc_called(this, "_ZN5S80C44v162Ev");}
void  S80C4 ::v163(){vfunc_called(this, "_ZN5S80C44v163Ev");}
void  S80C4 ::v164(){vfunc_called(this, "_ZN5S80C44v164Ev");}
void  S80C4 ::v165(){vfunc_called(this, "_ZN5S80C44v165Ev");}
void  S80C4 ::v166(){vfunc_called(this, "_ZN5S80C44v166Ev");}
void  S80C4 ::v167(){vfunc_called(this, "_ZN5S80C44v167Ev");}
void  S80C4 ::v168(){vfunc_called(this, "_ZN5S80C44v168Ev");}
void  S80C4 ::v169(){vfunc_called(this, "_ZN5S80C44v169Ev");}
void  S80C4 ::v170(){vfunc_called(this, "_ZN5S80C44v170Ev");}
void  S80C4 ::v171(){vfunc_called(this, "_ZN5S80C44v171Ev");}
void  S80C4 ::v172(){vfunc_called(this, "_ZN5S80C44v172Ev");}
void  S80C4 ::v173(){vfunc_called(this, "_ZN5S80C44v173Ev");}
void  S80C4 ::v174(){vfunc_called(this, "_ZN5S80C44v174Ev");}
void  S80C4 ::v175(){vfunc_called(this, "_ZN5S80C44v175Ev");}
void  S80C4 ::v176(){vfunc_called(this, "_ZN5S80C44v176Ev");}
void  S80C4 ::v177(){vfunc_called(this, "_ZN5S80C44v177Ev");}
void  S80C4 ::v178(){vfunc_called(this, "_ZN5S80C44v178Ev");}
void  S80C4 ::v179(){vfunc_called(this, "_ZN5S80C44v179Ev");}
void  S80C4 ::v180(){vfunc_called(this, "_ZN5S80C44v180Ev");}
void  S80C4 ::v181(){vfunc_called(this, "_ZN5S80C44v181Ev");}
void  S80C4 ::v182(){vfunc_called(this, "_ZN5S80C44v182Ev");}
void  S80C4 ::v183(){vfunc_called(this, "_ZN5S80C44v183Ev");}
void  S80C4 ::v184(){vfunc_called(this, "_ZN5S80C44v184Ev");}
S80C4 ::S80C4(){ note_ctor("S80C4", this);} // tgen

static void Test_S80C4()
{
  extern Class_Descriptor cd_S80C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S80C4, buf);
    S80C4 *dp, &lv = *(dp=new (buf) S80C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S80C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C4)");
    check_base_class_offset(lv, (S80C7_nt*)(S80C6_nt*)(S80C5_nt*), 0, "S80C4");
    check_base_class_offset(lv, (S80C6_nt*)(S80C5_nt*), 0, "S80C4");
    check_base_class_offset(lv, (S80C5_nt*), 0, "S80C4");
    check_field_offset(lv, s80c4f0, ABISELECT(464,352), "S80C4.s80c4f0");
    check_field_offset(lv, s80c4f1, ABISELECT(472,360), "S80C4.s80c4f1");
    check_field_offset(lv, s80c4f2, ABISELECT(544,396), "S80C4.s80c4f2");
    check_field_offset(lv, s80c4f3, ABISELECT(560,408), "S80C4.s80c4f3");
    check_field_offset(lv, s80c4f4, ABISELECT(576,420), "S80C4.s80c4f4");
    check_field_offset(lv, s80c4f5, ABISELECT(608,440), "S80C4.s80c4f5");
    set_bf_and_test(lv, s80c4f6, ABISELECT(612,444), 0, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f7, ABISELECT(612,444), 1, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f8, ABISELECT(612,444), 2, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f9, ABISELECT(612,444), 3, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f10, ABISELECT(612,444), 4, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f11, ABISELECT(612,444), 5, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f12, ABISELECT(612,444), 6, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f13, ABISELECT(612,444), 7, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f14, ABISELECT(613,445), 0, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f15, ABISELECT(613,445), 1, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f16, ABISELECT(613,445), 2, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f17, ABISELECT(613,445), 3, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f18, ABISELECT(613,445), 4, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f19, ABISELECT(613,445), 5, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f20, ABISELECT(613,445), 6, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f21, ABISELECT(613,445), 7, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f22, ABISELECT(614,446), 0, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f23, ABISELECT(614,446), 1, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f24, ABISELECT(614,446), 2, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f25, ABISELECT(614,446), 3, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f26, ABISELECT(614,446), 4, 1, 1, "S80C4");
    set_bf_and_test(lv, s80c4f27, ABISELECT(614,446), 5, 1, 1, "S80C4");
    check_field_offset(lv, s80c4f28, ABISELECT(616,448), "S80C4.s80c4f28");
    check_field_offset(lv, s80c4f29, ABISELECT(624,452), "S80C4.s80c4f29");
    check_field_offset(lv, s80c4f30, ABISELECT(628,456), "S80C4.s80c4f30");
    check_field_offset(lv, s80c4f31, ABISELECT(636,464), "S80C4.s80c4f31");
    check_field_offset(lv, s80c4f32, ABISELECT(644,472), "S80C4.s80c4f32");
    check_field_offset(lv, s80c4f33, ABISELECT(656,480), "S80C4.s80c4f33");
    check_field_offset(lv, s80c4f34, ABISELECT(664,484), "S80C4.s80c4f34");
    check_field_offset(lv, s80c4f35, ABISELECT(680,496), "S80C4.s80c4f35");
    check_field_offset(lv, s80c4f36, ABISELECT(696,508), "S80C4.s80c4f36");
    check_field_offset(lv, s80c4f37, ABISELECT(712,520), "S80C4.s80c4f37");
    check_field_offset(lv, s80c4f38, ABISELECT(728,532), "S80C4.s80c4f38");
    test_class_info(&lv, &cd_S80C4);
    dp->~S80C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C4(Test_S80C4, "S80C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S80C4C1Ev();
extern void _ZN5S80C4D1Ev();
Name_Map name_map_S80C4[] = {
  NSPAIR(_ZN5S80C4C1Ev),
  NSPAIR(_ZN5S80C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S80C7_nt;
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
extern Class_Descriptor cd_S80C6_nt;
extern VTBL_ENTRY _ZTI8S80C6_nt[];
extern  VTBL_ENTRY _ZTV8S80C6_nt[];
extern Class_Descriptor cd_S80C5_nt;
extern VTBL_ENTRY _ZTI8S80C5_nt[];
extern  VTBL_ENTRY _ZTV8S80C5_nt[];
static Base_Class bases_S80C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C6_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S80C5_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S80C4[];
extern void _ZN5S80C4D1Ev();
extern void _ZN5S80C4D0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
extern void _ZN8S80C6_nt3v68Ev();
extern void _ZN8S80C6_nt3v69Ev();
extern void _ZN8S80C5_nt3v70Ev();
extern void _ZN8S80C5_nt3v71Ev();
extern void _ZN8S80C5_nt3v72Ev();
extern void _ZN8S80C5_nt3v73Ev();
extern void _ZN8S80C5_nt3v74Ev();
extern void _ZN8S80C5_nt3v75Ev();
extern void _ZN8S80C5_nt3v76Ev();
extern void _ZN8S80C5_nt3v77Ev();
extern void _ZN8S80C5_nt3v78Ev();
extern void _ZN8S80C5_nt3v79Ev();
extern void _ZN8S80C5_nt3v80Ev();
extern void _ZN8S80C5_nt3v81Ev();
extern void _ZN8S80C5_nt3v82Ev();
extern void _ZN8S80C5_nt3v83Ev();
extern void _ZN8S80C5_nt3v84Ev();
extern void _ZN8S80C5_nt3v85Ev();
extern void _ZN8S80C5_nt3v86Ev();
extern void _ZN8S80C5_nt3v87Ev();
extern void _ZN8S80C5_nt3v88Ev();
extern void _ZN8S80C5_nt3v89Ev();
extern void _ZN8S80C5_nt3v90Ev();
extern void _ZN8S80C5_nt3v91Ev();
extern void _ZN8S80C5_nt3v92Ev();
extern void _ZN8S80C5_nt3v93Ev();
extern void _ZN8S80C5_nt3v94Ev();
extern void _ZN8S80C5_nt3v95Ev();
extern void _ZN8S80C5_nt3v96Ev();
extern void _ZN8S80C5_nt3v97Ev();
extern void _ZN8S80C5_nt3v98Ev();
extern void _ZN8S80C5_nt3v99Ev();
extern void _ZN8S80C5_nt4v100Ev();
extern void _ZN8S80C5_nt4v101Ev();
extern void _ZN8S80C5_nt4v102Ev();
extern void _ZN8S80C5_nt4v103Ev();
extern void _ZN8S80C5_nt4v104Ev();
extern void _ZN8S80C5_nt4v105Ev();
extern void _ZN8S80C5_nt4v106Ev();
extern void _ZN8S80C5_nt4v107Ev();
extern void _ZN8S80C5_nt4v108Ev();
extern void _ZN8S80C5_nt4v109Ev();
extern void _ZN8S80C5_nt4v110Ev();
extern void _ZN8S80C5_nt4v111Ev();
extern void _ZN8S80C5_nt4v112Ev();
extern void _ZN8S80C5_nt4v113Ev();
extern void _ZN8S80C5_nt4v114Ev();
extern void _ZN8S80C5_nt4v115Ev();
extern void _ZN8S80C5_nt4v116Ev();
extern void _ZN8S80C5_nt4v117Ev();
extern void _ZN8S80C5_nt4v118Ev();
extern void _ZN8S80C5_nt4v119Ev();
extern void _ZN8S80C5_nt4v120Ev();
extern void _ZN8S80C5_nt4v121Ev();
extern void _ZN8S80C5_nt4v122Ev();
extern void _ZN8S80C5_nt4v123Ev();
extern void _ZN8S80C5_nt4v124Ev();
extern void _ZN8S80C5_nt4v125Ev();
extern void _ZN8S80C5_nt4v126Ev();
extern void _ZN8S80C5_nt4v127Ev();
extern void _ZN8S80C5_nt4v128Ev();
extern void _ZN8S80C5_nt4v129Ev();
extern void _ZN8S80C5_nt4v130Ev();
extern void _ZN8S80C5_nt4v131Ev();
extern void _ZN8S80C5_nt4v132Ev();
extern void _ZN8S80C5_nt4v133Ev();
extern void _ZN8S80C5_nt4v134Ev();
extern void _ZN8S80C5_nt4v135Ev();
extern void _ZN8S80C5_nt4v136Ev();
extern void _ZN8S80C5_nt4v137Ev();
extern void _ZN8S80C5_nt4v138Ev();
extern void _ZN8S80C5_nt4v139Ev();
extern void _ZN8S80C5_nt4v140Ev();
extern void _ZN8S80C5_nt4v141Ev();
extern void _ZN8S80C5_nt4v142Ev();
extern void _ZN8S80C5_nt4v143Ev();
extern void _ZN8S80C5_nt4v144Ev();
extern void _ZN8S80C5_nt4v145Ev();
extern void _ZN5S80C44v146Ev();
extern void _ZN5S80C44v147Ev();
extern void _ZN5S80C44v148Ev();
extern void _ZN5S80C44v149Ev();
extern void _ZN5S80C44v150Ev();
extern void _ZN5S80C44v151Ev();
extern void _ZN5S80C44v152Ev();
extern void _ZN5S80C44v153Ev();
extern void _ZN5S80C44v154Ev();
extern void _ZN5S80C44v155Ev();
extern void _ZN5S80C44v156Ev();
extern void _ZN5S80C44v157Ev();
extern void _ZN5S80C44v158Ev();
extern void _ZN5S80C44v159Ev();
extern void _ZN5S80C44v160Ev();
extern void _ZN5S80C44v161Ev();
extern void _ZN5S80C44v162Ev();
extern void _ZN5S80C44v163Ev();
extern void _ZN5S80C44v164Ev();
extern void _ZN5S80C44v165Ev();
extern void _ZN5S80C44v166Ev();
extern void _ZN5S80C44v167Ev();
extern void _ZN5S80C44v168Ev();
extern void _ZN5S80C44v169Ev();
extern void _ZN5S80C44v170Ev();
extern void _ZN5S80C44v171Ev();
extern void _ZN5S80C44v172Ev();
extern void _ZN5S80C44v173Ev();
extern void _ZN5S80C44v174Ev();
extern void _ZN5S80C44v175Ev();
extern void _ZN5S80C44v176Ev();
extern void _ZN5S80C44v177Ev();
extern void _ZN5S80C44v178Ev();
extern void _ZN5S80C44v179Ev();
extern void _ZN5S80C44v180Ev();
extern void _ZN5S80C44v181Ev();
extern void _ZN5S80C44v182Ev();
extern void _ZN5S80C44v183Ev();
extern void _ZN5S80C44v184Ev();
static  VTBL_ENTRY vtc_S80C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S80C4[0]),
  (VTBL_ENTRY)&_ZN5S80C4D1Ev,
  (VTBL_ENTRY)&_ZN5S80C4D0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v68Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v69Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v70Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v71Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v72Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v73Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v74Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v75Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v76Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v77Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v78Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v79Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v80Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v81Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v82Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v83Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v84Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v85Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v86Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v87Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v88Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v89Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v90Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v91Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v92Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v93Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v94Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v95Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v96Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v97Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v98Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v99Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v100Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v101Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v102Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v103Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v104Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v105Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v106Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v107Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v108Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v109Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v110Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v111Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v112Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v113Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v114Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v115Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v116Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v117Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v118Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v119Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v120Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v121Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v122Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v123Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v124Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v125Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v126Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v127Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v128Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v129Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v130Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v131Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v132Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v133Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v134Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v135Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v136Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v137Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v138Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v139Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v140Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v141Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v142Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v143Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v144Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v145Ev,
  (VTBL_ENTRY)&_ZN5S80C44v146Ev,
  (VTBL_ENTRY)&_ZN5S80C44v147Ev,
  (VTBL_ENTRY)&_ZN5S80C44v148Ev,
  (VTBL_ENTRY)&_ZN5S80C44v149Ev,
  (VTBL_ENTRY)&_ZN5S80C44v150Ev,
  (VTBL_ENTRY)&_ZN5S80C44v151Ev,
  (VTBL_ENTRY)&_ZN5S80C44v152Ev,
  (VTBL_ENTRY)&_ZN5S80C44v153Ev,
  (VTBL_ENTRY)&_ZN5S80C44v154Ev,
  (VTBL_ENTRY)&_ZN5S80C44v155Ev,
  (VTBL_ENTRY)&_ZN5S80C44v156Ev,
  (VTBL_ENTRY)&_ZN5S80C44v157Ev,
  (VTBL_ENTRY)&_ZN5S80C44v158Ev,
  (VTBL_ENTRY)&_ZN5S80C44v159Ev,
  (VTBL_ENTRY)&_ZN5S80C44v160Ev,
  (VTBL_ENTRY)&_ZN5S80C44v161Ev,
  (VTBL_ENTRY)&_ZN5S80C44v162Ev,
  (VTBL_ENTRY)&_ZN5S80C44v163Ev,
  (VTBL_ENTRY)&_ZN5S80C44v164Ev,
  (VTBL_ENTRY)&_ZN5S80C44v165Ev,
  (VTBL_ENTRY)&_ZN5S80C44v166Ev,
  (VTBL_ENTRY)&_ZN5S80C44v167Ev,
  (VTBL_ENTRY)&_ZN5S80C44v168Ev,
  (VTBL_ENTRY)&_ZN5S80C44v169Ev,
  (VTBL_ENTRY)&_ZN5S80C44v170Ev,
  (VTBL_ENTRY)&_ZN5S80C44v171Ev,
  (VTBL_ENTRY)&_ZN5S80C44v172Ev,
  (VTBL_ENTRY)&_ZN5S80C44v173Ev,
  (VTBL_ENTRY)&_ZN5S80C44v174Ev,
  (VTBL_ENTRY)&_ZN5S80C44v175Ev,
  (VTBL_ENTRY)&_ZN5S80C44v176Ev,
  (VTBL_ENTRY)&_ZN5S80C44v177Ev,
  (VTBL_ENTRY)&_ZN5S80C44v178Ev,
  (VTBL_ENTRY)&_ZN5S80C44v179Ev,
  (VTBL_ENTRY)&_ZN5S80C44v180Ev,
  (VTBL_ENTRY)&_ZN5S80C44v181Ev,
  (VTBL_ENTRY)&_ZN5S80C44v182Ev,
  (VTBL_ENTRY)&_ZN5S80C44v183Ev,
  (VTBL_ENTRY)&_ZN5S80C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S80C4[];
extern  VTBL_ENTRY _ZTV5S80C4[];
Class_Descriptor cd_S80C4 = {  "S80C4", // class name
  bases_S80C4, 3,
  &(vtc_S80C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S80C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S80C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C3  : S80C4 {
  unsigned int s80c3f0:1;
  unsigned int s80c3f1:1;
  unsigned int s80c3f2:1;
  unsigned int s80c3f3:1;
  unsigned int s80c3f4:1;
  unsigned int s80c3f5:1;
  void *s80c3f6[8];
  ::S80C21_nt s80c3f7;
  ::S80C21_nt s80c3f8;
  ::S80C21_nt s80c3f9;
  virtual  ~S80C3(); // _ZN5S80C3D1Ev
  virtual void  v185(); // _ZN5S80C34v185Ev
  virtual void  v186(); // _ZN5S80C34v186Ev
  virtual void  v187(); // _ZN5S80C34v187Ev
  virtual void  v188(); // _ZN5S80C34v188Ev
  virtual void  v189(); // _ZN5S80C34v189Ev
  virtual void  v190(); // _ZN5S80C34v190Ev
  virtual void  v191(); // _ZN5S80C34v191Ev
  virtual void  v192(); // _ZN5S80C34v192Ev
  virtual void  v193(); // _ZN5S80C34v193Ev
  virtual void  v194(); // _ZN5S80C34v194Ev
  virtual void  v195(); // _ZN5S80C34v195Ev
  virtual void  v196(); // _ZN5S80C34v196Ev
  virtual void  v197(); // _ZN5S80C34v197Ev
  virtual void  v198(); // _ZN5S80C34v198Ev
  virtual void  v199(); // _ZN5S80C34v199Ev
  virtual void  v200(); // _ZN5S80C34v200Ev
  virtual void  v201(); // _ZN5S80C34v201Ev
  virtual void  v202(); // _ZN5S80C34v202Ev
  virtual void  v203(); // _ZN5S80C34v203Ev
  virtual void  v204(); // _ZN5S80C34v204Ev
  virtual void  v205(); // _ZN5S80C34v205Ev
  virtual void  v206(); // _ZN5S80C34v206Ev
  virtual void  v207(); // _ZN5S80C34v207Ev
  S80C3(); // tgen
};
//SIG(-1 S80C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC8 Fp FC11{ BC12{ BC10}} FC11 FC11 FC13{ BC14{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC15{ m Fp FC6} FC15 FC15 FC15 FC15 FC15 FC15 FC15 FC15 FC15} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC13 FC8 FC16{ BC17{ m FC18{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC6 FC6 FC6 Fp FC15 FC15 FC15 FC15 FC15} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC15 FC15 FC15}


 S80C3 ::~S80C3(){ note_dtor("S80C3", this);}
void  S80C3 ::v185(){vfunc_called(this, "_ZN5S80C34v185Ev");}
void  S80C3 ::v186(){vfunc_called(this, "_ZN5S80C34v186Ev");}
void  S80C3 ::v187(){vfunc_called(this, "_ZN5S80C34v187Ev");}
void  S80C3 ::v188(){vfunc_called(this, "_ZN5S80C34v188Ev");}
void  S80C3 ::v189(){vfunc_called(this, "_ZN5S80C34v189Ev");}
void  S80C3 ::v190(){vfunc_called(this, "_ZN5S80C34v190Ev");}
void  S80C3 ::v191(){vfunc_called(this, "_ZN5S80C34v191Ev");}
void  S80C3 ::v192(){vfunc_called(this, "_ZN5S80C34v192Ev");}
void  S80C3 ::v193(){vfunc_called(this, "_ZN5S80C34v193Ev");}
void  S80C3 ::v194(){vfunc_called(this, "_ZN5S80C34v194Ev");}
void  S80C3 ::v195(){vfunc_called(this, "_ZN5S80C34v195Ev");}
void  S80C3 ::v196(){vfunc_called(this, "_ZN5S80C34v196Ev");}
void  S80C3 ::v197(){vfunc_called(this, "_ZN5S80C34v197Ev");}
void  S80C3 ::v198(){vfunc_called(this, "_ZN5S80C34v198Ev");}
void  S80C3 ::v199(){vfunc_called(this, "_ZN5S80C34v199Ev");}
void  S80C3 ::v200(){vfunc_called(this, "_ZN5S80C34v200Ev");}
void  S80C3 ::v201(){vfunc_called(this, "_ZN5S80C34v201Ev");}
void  S80C3 ::v202(){vfunc_called(this, "_ZN5S80C34v202Ev");}
void  S80C3 ::v203(){vfunc_called(this, "_ZN5S80C34v203Ev");}
void  S80C3 ::v204(){vfunc_called(this, "_ZN5S80C34v204Ev");}
void  S80C3 ::v205(){vfunc_called(this, "_ZN5S80C34v205Ev");}
void  S80C3 ::v206(){vfunc_called(this, "_ZN5S80C34v206Ev");}
void  S80C3 ::v207(){vfunc_called(this, "_ZN5S80C34v207Ev");}
S80C3 ::S80C3(){ note_ctor("S80C3", this);} // tgen

static void Test_S80C3()
{
  extern Class_Descriptor cd_S80C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S80C3, buf);
    S80C3 *dp, &lv = *(dp=new (buf) S80C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S80C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C3)");
    check_base_class_offset(lv, (S80C7_nt*)(S80C6_nt*)(S80C5_nt*)(S80C4*), 0, "S80C3");
    check_base_class_offset(lv, (S80C6_nt*)(S80C5_nt*)(S80C4*), 0, "S80C3");
    check_base_class_offset(lv, (S80C5_nt*)(S80C4*), 0, "S80C3");
    check_base_class_offset(lv, (S80C4*), 0, "S80C3");
    set_bf_and_test(lv, s80c3f0, ABISELECT(744,544), 0, 1, 1, "S80C3");
    set_bf_and_test(lv, s80c3f1, ABISELECT(744,544), 1, 1, 1, "S80C3");
    set_bf_and_test(lv, s80c3f2, ABISELECT(744,544), 2, 1, 1, "S80C3");
    set_bf_and_test(lv, s80c3f3, ABISELECT(744,544), 3, 1, 1, "S80C3");
    set_bf_and_test(lv, s80c3f4, ABISELECT(744,544), 4, 1, 1, "S80C3");
    set_bf_and_test(lv, s80c3f5, ABISELECT(744,544), 5, 1, 1, "S80C3");
    check_field_offset(lv, s80c3f6, ABISELECT(752,548), "S80C3.s80c3f6");
    check_field_offset(lv, s80c3f7, ABISELECT(816,580), "S80C3.s80c3f7");
    check_field_offset(lv, s80c3f8, ABISELECT(832,592), "S80C3.s80c3f8");
    check_field_offset(lv, s80c3f9, ABISELECT(848,604), "S80C3.s80c3f9");
    test_class_info(&lv, &cd_S80C3);
    dp->~S80C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C3(Test_S80C3, "S80C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S80C3C1Ev();
extern void _ZN5S80C3D1Ev();
Name_Map name_map_S80C3[] = {
  NSPAIR(_ZN5S80C3C1Ev),
  NSPAIR(_ZN5S80C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S80C7_nt;
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
extern Class_Descriptor cd_S80C6_nt;
extern VTBL_ENTRY _ZTI8S80C6_nt[];
extern  VTBL_ENTRY _ZTV8S80C6_nt[];
extern Class_Descriptor cd_S80C5_nt;
extern VTBL_ENTRY _ZTI8S80C5_nt[];
extern  VTBL_ENTRY _ZTV8S80C5_nt[];
extern Class_Descriptor cd_S80C4;
extern VTBL_ENTRY _ZTI5S80C4[];
extern  VTBL_ENTRY _ZTV5S80C4[];
static Base_Class bases_S80C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C6_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S80C5_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S80C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S80C3[];
extern void _ZN5S80C3D1Ev();
extern void _ZN5S80C3D0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
extern void _ZN8S80C6_nt3v68Ev();
extern void _ZN8S80C6_nt3v69Ev();
extern void _ZN8S80C5_nt3v70Ev();
extern void _ZN8S80C5_nt3v71Ev();
extern void _ZN8S80C5_nt3v72Ev();
extern void _ZN8S80C5_nt3v73Ev();
extern void _ZN8S80C5_nt3v74Ev();
extern void _ZN8S80C5_nt3v75Ev();
extern void _ZN8S80C5_nt3v76Ev();
extern void _ZN8S80C5_nt3v77Ev();
extern void _ZN8S80C5_nt3v78Ev();
extern void _ZN8S80C5_nt3v79Ev();
extern void _ZN8S80C5_nt3v80Ev();
extern void _ZN8S80C5_nt3v81Ev();
extern void _ZN8S80C5_nt3v82Ev();
extern void _ZN8S80C5_nt3v83Ev();
extern void _ZN8S80C5_nt3v84Ev();
extern void _ZN8S80C5_nt3v85Ev();
extern void _ZN8S80C5_nt3v86Ev();
extern void _ZN8S80C5_nt3v87Ev();
extern void _ZN8S80C5_nt3v88Ev();
extern void _ZN8S80C5_nt3v89Ev();
extern void _ZN8S80C5_nt3v90Ev();
extern void _ZN8S80C5_nt3v91Ev();
extern void _ZN8S80C5_nt3v92Ev();
extern void _ZN8S80C5_nt3v93Ev();
extern void _ZN8S80C5_nt3v94Ev();
extern void _ZN8S80C5_nt3v95Ev();
extern void _ZN8S80C5_nt3v96Ev();
extern void _ZN8S80C5_nt3v97Ev();
extern void _ZN8S80C5_nt3v98Ev();
extern void _ZN8S80C5_nt3v99Ev();
extern void _ZN8S80C5_nt4v100Ev();
extern void _ZN8S80C5_nt4v101Ev();
extern void _ZN8S80C5_nt4v102Ev();
extern void _ZN8S80C5_nt4v103Ev();
extern void _ZN8S80C5_nt4v104Ev();
extern void _ZN8S80C5_nt4v105Ev();
extern void _ZN8S80C5_nt4v106Ev();
extern void _ZN8S80C5_nt4v107Ev();
extern void _ZN8S80C5_nt4v108Ev();
extern void _ZN8S80C5_nt4v109Ev();
extern void _ZN8S80C5_nt4v110Ev();
extern void _ZN8S80C5_nt4v111Ev();
extern void _ZN8S80C5_nt4v112Ev();
extern void _ZN8S80C5_nt4v113Ev();
extern void _ZN8S80C5_nt4v114Ev();
extern void _ZN8S80C5_nt4v115Ev();
extern void _ZN8S80C5_nt4v116Ev();
extern void _ZN8S80C5_nt4v117Ev();
extern void _ZN8S80C5_nt4v118Ev();
extern void _ZN8S80C5_nt4v119Ev();
extern void _ZN8S80C5_nt4v120Ev();
extern void _ZN8S80C5_nt4v121Ev();
extern void _ZN8S80C5_nt4v122Ev();
extern void _ZN8S80C5_nt4v123Ev();
extern void _ZN8S80C5_nt4v124Ev();
extern void _ZN8S80C5_nt4v125Ev();
extern void _ZN8S80C5_nt4v126Ev();
extern void _ZN8S80C5_nt4v127Ev();
extern void _ZN8S80C5_nt4v128Ev();
extern void _ZN8S80C5_nt4v129Ev();
extern void _ZN8S80C5_nt4v130Ev();
extern void _ZN8S80C5_nt4v131Ev();
extern void _ZN8S80C5_nt4v132Ev();
extern void _ZN8S80C5_nt4v133Ev();
extern void _ZN8S80C5_nt4v134Ev();
extern void _ZN8S80C5_nt4v135Ev();
extern void _ZN8S80C5_nt4v136Ev();
extern void _ZN8S80C5_nt4v137Ev();
extern void _ZN8S80C5_nt4v138Ev();
extern void _ZN8S80C5_nt4v139Ev();
extern void _ZN8S80C5_nt4v140Ev();
extern void _ZN8S80C5_nt4v141Ev();
extern void _ZN8S80C5_nt4v142Ev();
extern void _ZN8S80C5_nt4v143Ev();
extern void _ZN8S80C5_nt4v144Ev();
extern void _ZN8S80C5_nt4v145Ev();
extern void _ZN5S80C44v146Ev();
extern void _ZN5S80C44v147Ev();
extern void _ZN5S80C44v148Ev();
extern void _ZN5S80C44v149Ev();
extern void _ZN5S80C44v150Ev();
extern void _ZN5S80C44v151Ev();
extern void _ZN5S80C44v152Ev();
extern void _ZN5S80C44v153Ev();
extern void _ZN5S80C44v154Ev();
extern void _ZN5S80C44v155Ev();
extern void _ZN5S80C44v156Ev();
extern void _ZN5S80C44v157Ev();
extern void _ZN5S80C44v158Ev();
extern void _ZN5S80C44v159Ev();
extern void _ZN5S80C44v160Ev();
extern void _ZN5S80C44v161Ev();
extern void _ZN5S80C44v162Ev();
extern void _ZN5S80C44v163Ev();
extern void _ZN5S80C44v164Ev();
extern void _ZN5S80C44v165Ev();
extern void _ZN5S80C44v166Ev();
extern void _ZN5S80C44v167Ev();
extern void _ZN5S80C44v168Ev();
extern void _ZN5S80C44v169Ev();
extern void _ZN5S80C44v170Ev();
extern void _ZN5S80C44v171Ev();
extern void _ZN5S80C44v172Ev();
extern void _ZN5S80C44v173Ev();
extern void _ZN5S80C44v174Ev();
extern void _ZN5S80C44v175Ev();
extern void _ZN5S80C44v176Ev();
extern void _ZN5S80C44v177Ev();
extern void _ZN5S80C44v178Ev();
extern void _ZN5S80C44v179Ev();
extern void _ZN5S80C44v180Ev();
extern void _ZN5S80C44v181Ev();
extern void _ZN5S80C44v182Ev();
extern void _ZN5S80C44v183Ev();
extern void _ZN5S80C44v184Ev();
extern void _ZN5S80C34v185Ev();
extern void _ZN5S80C34v186Ev();
extern void _ZN5S80C34v187Ev();
extern void _ZN5S80C34v188Ev();
extern void _ZN5S80C34v189Ev();
extern void _ZN5S80C34v190Ev();
extern void _ZN5S80C34v191Ev();
extern void _ZN5S80C34v192Ev();
extern void _ZN5S80C34v193Ev();
extern void _ZN5S80C34v194Ev();
extern void _ZN5S80C34v195Ev();
extern void _ZN5S80C34v196Ev();
extern void _ZN5S80C34v197Ev();
extern void _ZN5S80C34v198Ev();
extern void _ZN5S80C34v199Ev();
extern void _ZN5S80C34v200Ev();
extern void _ZN5S80C34v201Ev();
extern void _ZN5S80C34v202Ev();
extern void _ZN5S80C34v203Ev();
extern void _ZN5S80C34v204Ev();
extern void _ZN5S80C34v205Ev();
extern void _ZN5S80C34v206Ev();
extern void _ZN5S80C34v207Ev();
static  VTBL_ENTRY vtc_S80C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S80C3[0]),
  (VTBL_ENTRY)&_ZN5S80C3D1Ev,
  (VTBL_ENTRY)&_ZN5S80C3D0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v68Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v69Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v70Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v71Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v72Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v73Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v74Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v75Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v76Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v77Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v78Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v79Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v80Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v81Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v82Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v83Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v84Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v85Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v86Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v87Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v88Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v89Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v90Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v91Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v92Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v93Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v94Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v95Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v96Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v97Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v98Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v99Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v100Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v101Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v102Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v103Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v104Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v105Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v106Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v107Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v108Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v109Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v110Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v111Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v112Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v113Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v114Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v115Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v116Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v117Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v118Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v119Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v120Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v121Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v122Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v123Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v124Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v125Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v126Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v127Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v128Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v129Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v130Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v131Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v132Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v133Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v134Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v135Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v136Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v137Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v138Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v139Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v140Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v141Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v142Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v143Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v144Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v145Ev,
  (VTBL_ENTRY)&_ZN5S80C44v146Ev,
  (VTBL_ENTRY)&_ZN5S80C44v147Ev,
  (VTBL_ENTRY)&_ZN5S80C44v148Ev,
  (VTBL_ENTRY)&_ZN5S80C44v149Ev,
  (VTBL_ENTRY)&_ZN5S80C44v150Ev,
  (VTBL_ENTRY)&_ZN5S80C44v151Ev,
  (VTBL_ENTRY)&_ZN5S80C44v152Ev,
  (VTBL_ENTRY)&_ZN5S80C44v153Ev,
  (VTBL_ENTRY)&_ZN5S80C44v154Ev,
  (VTBL_ENTRY)&_ZN5S80C44v155Ev,
  (VTBL_ENTRY)&_ZN5S80C44v156Ev,
  (VTBL_ENTRY)&_ZN5S80C44v157Ev,
  (VTBL_ENTRY)&_ZN5S80C44v158Ev,
  (VTBL_ENTRY)&_ZN5S80C44v159Ev,
  (VTBL_ENTRY)&_ZN5S80C44v160Ev,
  (VTBL_ENTRY)&_ZN5S80C44v161Ev,
  (VTBL_ENTRY)&_ZN5S80C44v162Ev,
  (VTBL_ENTRY)&_ZN5S80C44v163Ev,
  (VTBL_ENTRY)&_ZN5S80C44v164Ev,
  (VTBL_ENTRY)&_ZN5S80C44v165Ev,
  (VTBL_ENTRY)&_ZN5S80C44v166Ev,
  (VTBL_ENTRY)&_ZN5S80C44v167Ev,
  (VTBL_ENTRY)&_ZN5S80C44v168Ev,
  (VTBL_ENTRY)&_ZN5S80C44v169Ev,
  (VTBL_ENTRY)&_ZN5S80C44v170Ev,
  (VTBL_ENTRY)&_ZN5S80C44v171Ev,
  (VTBL_ENTRY)&_ZN5S80C44v172Ev,
  (VTBL_ENTRY)&_ZN5S80C44v173Ev,
  (VTBL_ENTRY)&_ZN5S80C44v174Ev,
  (VTBL_ENTRY)&_ZN5S80C44v175Ev,
  (VTBL_ENTRY)&_ZN5S80C44v176Ev,
  (VTBL_ENTRY)&_ZN5S80C44v177Ev,
  (VTBL_ENTRY)&_ZN5S80C44v178Ev,
  (VTBL_ENTRY)&_ZN5S80C44v179Ev,
  (VTBL_ENTRY)&_ZN5S80C44v180Ev,
  (VTBL_ENTRY)&_ZN5S80C44v181Ev,
  (VTBL_ENTRY)&_ZN5S80C44v182Ev,
  (VTBL_ENTRY)&_ZN5S80C44v183Ev,
  (VTBL_ENTRY)&_ZN5S80C44v184Ev,
  (VTBL_ENTRY)&_ZN5S80C34v185Ev,
  (VTBL_ENTRY)&_ZN5S80C34v186Ev,
  (VTBL_ENTRY)&_ZN5S80C34v187Ev,
  (VTBL_ENTRY)&_ZN5S80C34v188Ev,
  (VTBL_ENTRY)&_ZN5S80C34v189Ev,
  (VTBL_ENTRY)&_ZN5S80C34v190Ev,
  (VTBL_ENTRY)&_ZN5S80C34v191Ev,
  (VTBL_ENTRY)&_ZN5S80C34v192Ev,
  (VTBL_ENTRY)&_ZN5S80C34v193Ev,
  (VTBL_ENTRY)&_ZN5S80C34v194Ev,
  (VTBL_ENTRY)&_ZN5S80C34v195Ev,
  (VTBL_ENTRY)&_ZN5S80C34v196Ev,
  (VTBL_ENTRY)&_ZN5S80C34v197Ev,
  (VTBL_ENTRY)&_ZN5S80C34v198Ev,
  (VTBL_ENTRY)&_ZN5S80C34v199Ev,
  (VTBL_ENTRY)&_ZN5S80C34v200Ev,
  (VTBL_ENTRY)&_ZN5S80C34v201Ev,
  (VTBL_ENTRY)&_ZN5S80C34v202Ev,
  (VTBL_ENTRY)&_ZN5S80C34v203Ev,
  (VTBL_ENTRY)&_ZN5S80C34v204Ev,
  (VTBL_ENTRY)&_ZN5S80C34v205Ev,
  (VTBL_ENTRY)&_ZN5S80C34v206Ev,
  (VTBL_ENTRY)&_ZN5S80C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S80C3[];
extern  VTBL_ENTRY _ZTV5S80C3[];
Class_Descriptor cd_S80C3 = {  "S80C3", // class name
  bases_S80C3, 4,
  &(vtc_S80C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S80C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S80C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C30  : S80C12_nt {
};
//SIG(-1 S80C30) C1{ BC2{ m Fp Fi[2]}}



static void Test_S80C30()
{
  extern Class_Descriptor cd_S80C30;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C30, buf);
    S80C30 &lv = *(new (buf) S80C30());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C30)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C30)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S80C30");
    test_class_info(&lv, &cd_S80C30);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C30(Test_S80C30, "S80C30", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S80C30[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C30 = {  "S80C30", // class name
  bases_S80C30, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C29  : S80C30 {
};
//SIG(-1 S80C29) C1{ BC2{ BC3{ m Fp Fi[2]}}}



static void Test_S80C29()
{
  extern Class_Descriptor cd_S80C29;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C29, buf);
    S80C29 &lv = *(new (buf) S80C29());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C29)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C29)");
    check_base_class_offset(lv, (S80C12_nt*)(S80C30*), 0, "S80C29");
    check_base_class_offset(lv, (S80C30*), 0, "S80C29");
    test_class_info(&lv, &cd_S80C29);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C29(Test_S80C29, "S80C29", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S80C30;
static Base_Class bases_S80C29[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C30,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C29 = {  "S80C29", // class name
  bases_S80C29, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C28_nt  : S80C29 {
};
//SIG(-1 S80C28_nt) C1{ BC2{ BC3{ BC4{ m Fp Fi[2]}}}}



//skip512 S80C28_nt

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S80C30;
extern Class_Descriptor cd_S80C29;
static Base_Class bases_S80C28_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C30,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S80C29,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C2  : S80C3 {
  void *s80c2f0[2];
  int s80c2f1[2];
  char s80c2f2;
  void *s80c2f3;
  unsigned int s80c2f4:1;
  unsigned int s80c2f5:1;
  ::S80C28_nt s80c2f6;
  virtual  ~S80C2(); // _ZN5S80C2D1Ev
  virtual void  v208(); // _ZN5S80C24v208Ev
  virtual void  v209(); // _ZN5S80C24v209Ev
  virtual void  v210(); // _ZN5S80C24v210Ev
  virtual void  v211(); // _ZN5S80C24v211Ev
  virtual void  v212(); // _ZN5S80C24v212Ev
  virtual void  v213(); // _ZN5S80C24v213Ev
  virtual void  v214(); // _ZN5S80C24v214Ev
  virtual void  v215(); // _ZN5S80C24v215Ev
  S80C2(); // tgen
};
//SIG(-1 S80C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v73 v74} vd v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC9 Fp FC12{ BC13{ BC11}} FC12 FC12 FC14{ BC15{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC16{ m Fp FC7} FC16 FC16 FC16 FC16 FC16 FC16 FC16 FC16 FC16} vd v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 FC7 Fp[9] FC14 FC9 FC17{ BC18{ m FC19{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC7 FC7 FC7 Fp FC16 FC16 FC16 FC16 FC16} vd v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 v211 v212 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC16 FC16 FC16} vd v1 v2 v3 v4 v5 v6 v7 v8 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC20{ BC21{ BC22{ BC11}}}}


 S80C2 ::~S80C2(){ note_dtor("S80C2", this);}
void  S80C2 ::v208(){vfunc_called(this, "_ZN5S80C24v208Ev");}
void  S80C2 ::v209(){vfunc_called(this, "_ZN5S80C24v209Ev");}
void  S80C2 ::v210(){vfunc_called(this, "_ZN5S80C24v210Ev");}
void  S80C2 ::v211(){vfunc_called(this, "_ZN5S80C24v211Ev");}
void  S80C2 ::v212(){vfunc_called(this, "_ZN5S80C24v212Ev");}
void  S80C2 ::v213(){vfunc_called(this, "_ZN5S80C24v213Ev");}
void  S80C2 ::v214(){vfunc_called(this, "_ZN5S80C24v214Ev");}
void  S80C2 ::v215(){vfunc_called(this, "_ZN5S80C24v215Ev");}
S80C2 ::S80C2(){ note_ctor("S80C2", this);} // tgen

static void Test_S80C2()
{
  extern Class_Descriptor cd_S80C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(117,165)];
    init_test(&cd_S80C2, buf);
    S80C2 *dp, &lv = *(dp=new (buf) S80C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(928,656), "sizeof(S80C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C2)");
    check_base_class_offset(lv, (S80C7_nt*)(S80C6_nt*)(S80C5_nt*)(S80C4*)(S80C3*), 0, "S80C2");
    check_base_class_offset(lv, (S80C6_nt*)(S80C5_nt*)(S80C4*)(S80C3*), 0, "S80C2");
    check_base_class_offset(lv, (S80C5_nt*)(S80C4*)(S80C3*), 0, "S80C2");
    check_base_class_offset(lv, (S80C4*)(S80C3*), 0, "S80C2");
    check_base_class_offset(lv, (S80C3*), 0, "S80C2");
    check_field_offset(lv, s80c2f0, ABISELECT(864,616), "S80C2.s80c2f0");
    check_field_offset(lv, s80c2f1, ABISELECT(880,624), "S80C2.s80c2f1");
    check_field_offset(lv, s80c2f2, ABISELECT(888,632), "S80C2.s80c2f2");
    check_field_offset(lv, s80c2f3, ABISELECT(896,636), "S80C2.s80c2f3");
    set_bf_and_test(lv, s80c2f4, ABISELECT(904,640), 0, 1, 1, "S80C2");
    set_bf_and_test(lv, s80c2f5, ABISELECT(904,640), 1, 1, 1, "S80C2");
    check_field_offset(lv, s80c2f6, ABISELECT(912,644), "S80C2.s80c2f6");
    test_class_info(&lv, &cd_S80C2);
    dp->~S80C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C2(Test_S80C2, "S80C2", ABISELECT(928,656));

#else // __cplusplus

extern void _ZN5S80C2C1Ev();
extern void _ZN5S80C2D1Ev();
Name_Map name_map_S80C2[] = {
  NSPAIR(_ZN5S80C2C1Ev),
  NSPAIR(_ZN5S80C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S80C7_nt;
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
extern Class_Descriptor cd_S80C6_nt;
extern VTBL_ENTRY _ZTI8S80C6_nt[];
extern  VTBL_ENTRY _ZTV8S80C6_nt[];
extern Class_Descriptor cd_S80C5_nt;
extern VTBL_ENTRY _ZTI8S80C5_nt[];
extern  VTBL_ENTRY _ZTV8S80C5_nt[];
extern Class_Descriptor cd_S80C4;
extern VTBL_ENTRY _ZTI5S80C4[];
extern  VTBL_ENTRY _ZTV5S80C4[];
extern Class_Descriptor cd_S80C3;
extern VTBL_ENTRY _ZTI5S80C3[];
extern  VTBL_ENTRY _ZTV5S80C3[];
static Base_Class bases_S80C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C6_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S80C5_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S80C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S80C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S80C2[];
extern void _ZN5S80C2D1Ev();
extern void _ZN5S80C2D0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
extern void _ZN8S80C6_nt3v68Ev();
extern void _ZN8S80C6_nt3v69Ev();
extern void _ZN8S80C5_nt3v70Ev();
extern void _ZN8S80C5_nt3v71Ev();
extern void _ZN8S80C5_nt3v72Ev();
extern void _ZN8S80C5_nt3v73Ev();
extern void _ZN8S80C5_nt3v74Ev();
extern void _ZN8S80C5_nt3v75Ev();
extern void _ZN8S80C5_nt3v76Ev();
extern void _ZN8S80C5_nt3v77Ev();
extern void _ZN8S80C5_nt3v78Ev();
extern void _ZN8S80C5_nt3v79Ev();
extern void _ZN8S80C5_nt3v80Ev();
extern void _ZN8S80C5_nt3v81Ev();
extern void _ZN8S80C5_nt3v82Ev();
extern void _ZN8S80C5_nt3v83Ev();
extern void _ZN8S80C5_nt3v84Ev();
extern void _ZN8S80C5_nt3v85Ev();
extern void _ZN8S80C5_nt3v86Ev();
extern void _ZN8S80C5_nt3v87Ev();
extern void _ZN8S80C5_nt3v88Ev();
extern void _ZN8S80C5_nt3v89Ev();
extern void _ZN8S80C5_nt3v90Ev();
extern void _ZN8S80C5_nt3v91Ev();
extern void _ZN8S80C5_nt3v92Ev();
extern void _ZN8S80C5_nt3v93Ev();
extern void _ZN8S80C5_nt3v94Ev();
extern void _ZN8S80C5_nt3v95Ev();
extern void _ZN8S80C5_nt3v96Ev();
extern void _ZN8S80C5_nt3v97Ev();
extern void _ZN8S80C5_nt3v98Ev();
extern void _ZN8S80C5_nt3v99Ev();
extern void _ZN8S80C5_nt4v100Ev();
extern void _ZN8S80C5_nt4v101Ev();
extern void _ZN8S80C5_nt4v102Ev();
extern void _ZN8S80C5_nt4v103Ev();
extern void _ZN8S80C5_nt4v104Ev();
extern void _ZN8S80C5_nt4v105Ev();
extern void _ZN8S80C5_nt4v106Ev();
extern void _ZN8S80C5_nt4v107Ev();
extern void _ZN8S80C5_nt4v108Ev();
extern void _ZN8S80C5_nt4v109Ev();
extern void _ZN8S80C5_nt4v110Ev();
extern void _ZN8S80C5_nt4v111Ev();
extern void _ZN8S80C5_nt4v112Ev();
extern void _ZN8S80C5_nt4v113Ev();
extern void _ZN8S80C5_nt4v114Ev();
extern void _ZN8S80C5_nt4v115Ev();
extern void _ZN8S80C5_nt4v116Ev();
extern void _ZN8S80C5_nt4v117Ev();
extern void _ZN8S80C5_nt4v118Ev();
extern void _ZN8S80C5_nt4v119Ev();
extern void _ZN8S80C5_nt4v120Ev();
extern void _ZN8S80C5_nt4v121Ev();
extern void _ZN8S80C5_nt4v122Ev();
extern void _ZN8S80C5_nt4v123Ev();
extern void _ZN8S80C5_nt4v124Ev();
extern void _ZN8S80C5_nt4v125Ev();
extern void _ZN8S80C5_nt4v126Ev();
extern void _ZN8S80C5_nt4v127Ev();
extern void _ZN8S80C5_nt4v128Ev();
extern void _ZN8S80C5_nt4v129Ev();
extern void _ZN8S80C5_nt4v130Ev();
extern void _ZN8S80C5_nt4v131Ev();
extern void _ZN8S80C5_nt4v132Ev();
extern void _ZN8S80C5_nt4v133Ev();
extern void _ZN8S80C5_nt4v134Ev();
extern void _ZN8S80C5_nt4v135Ev();
extern void _ZN8S80C5_nt4v136Ev();
extern void _ZN8S80C5_nt4v137Ev();
extern void _ZN8S80C5_nt4v138Ev();
extern void _ZN8S80C5_nt4v139Ev();
extern void _ZN8S80C5_nt4v140Ev();
extern void _ZN8S80C5_nt4v141Ev();
extern void _ZN8S80C5_nt4v142Ev();
extern void _ZN8S80C5_nt4v143Ev();
extern void _ZN8S80C5_nt4v144Ev();
extern void _ZN8S80C5_nt4v145Ev();
extern void _ZN5S80C44v146Ev();
extern void _ZN5S80C44v147Ev();
extern void _ZN5S80C44v148Ev();
extern void _ZN5S80C44v149Ev();
extern void _ZN5S80C44v150Ev();
extern void _ZN5S80C44v151Ev();
extern void _ZN5S80C44v152Ev();
extern void _ZN5S80C44v153Ev();
extern void _ZN5S80C44v154Ev();
extern void _ZN5S80C44v155Ev();
extern void _ZN5S80C44v156Ev();
extern void _ZN5S80C44v157Ev();
extern void _ZN5S80C44v158Ev();
extern void _ZN5S80C44v159Ev();
extern void _ZN5S80C44v160Ev();
extern void _ZN5S80C44v161Ev();
extern void _ZN5S80C44v162Ev();
extern void _ZN5S80C44v163Ev();
extern void _ZN5S80C44v164Ev();
extern void _ZN5S80C44v165Ev();
extern void _ZN5S80C44v166Ev();
extern void _ZN5S80C44v167Ev();
extern void _ZN5S80C44v168Ev();
extern void _ZN5S80C44v169Ev();
extern void _ZN5S80C44v170Ev();
extern void _ZN5S80C44v171Ev();
extern void _ZN5S80C44v172Ev();
extern void _ZN5S80C44v173Ev();
extern void _ZN5S80C44v174Ev();
extern void _ZN5S80C44v175Ev();
extern void _ZN5S80C44v176Ev();
extern void _ZN5S80C44v177Ev();
extern void _ZN5S80C44v178Ev();
extern void _ZN5S80C44v179Ev();
extern void _ZN5S80C44v180Ev();
extern void _ZN5S80C44v181Ev();
extern void _ZN5S80C44v182Ev();
extern void _ZN5S80C44v183Ev();
extern void _ZN5S80C44v184Ev();
extern void _ZN5S80C34v185Ev();
extern void _ZN5S80C34v186Ev();
extern void _ZN5S80C34v187Ev();
extern void _ZN5S80C34v188Ev();
extern void _ZN5S80C34v189Ev();
extern void _ZN5S80C34v190Ev();
extern void _ZN5S80C34v191Ev();
extern void _ZN5S80C34v192Ev();
extern void _ZN5S80C34v193Ev();
extern void _ZN5S80C34v194Ev();
extern void _ZN5S80C34v195Ev();
extern void _ZN5S80C34v196Ev();
extern void _ZN5S80C34v197Ev();
extern void _ZN5S80C34v198Ev();
extern void _ZN5S80C34v199Ev();
extern void _ZN5S80C34v200Ev();
extern void _ZN5S80C34v201Ev();
extern void _ZN5S80C34v202Ev();
extern void _ZN5S80C34v203Ev();
extern void _ZN5S80C34v204Ev();
extern void _ZN5S80C34v205Ev();
extern void _ZN5S80C34v206Ev();
extern void _ZN5S80C34v207Ev();
extern void _ZN5S80C24v208Ev();
extern void _ZN5S80C24v209Ev();
extern void _ZN5S80C24v210Ev();
extern void _ZN5S80C24v211Ev();
extern void _ZN5S80C24v212Ev();
extern void _ZN5S80C24v213Ev();
extern void _ZN5S80C24v214Ev();
extern void _ZN5S80C24v215Ev();
static  VTBL_ENTRY vtc_S80C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S80C2[0]),
  (VTBL_ENTRY)&_ZN5S80C2D1Ev,
  (VTBL_ENTRY)&_ZN5S80C2D0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v68Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v69Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v70Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v71Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v72Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v73Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v74Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v75Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v76Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v77Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v78Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v79Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v80Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v81Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v82Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v83Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v84Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v85Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v86Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v87Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v88Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v89Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v90Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v91Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v92Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v93Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v94Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v95Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v96Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v97Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v98Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v99Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v100Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v101Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v102Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v103Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v104Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v105Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v106Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v107Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v108Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v109Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v110Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v111Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v112Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v113Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v114Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v115Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v116Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v117Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v118Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v119Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v120Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v121Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v122Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v123Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v124Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v125Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v126Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v127Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v128Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v129Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v130Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v131Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v132Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v133Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v134Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v135Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v136Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v137Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v138Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v139Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v140Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v141Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v142Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v143Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v144Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v145Ev,
  (VTBL_ENTRY)&_ZN5S80C44v146Ev,
  (VTBL_ENTRY)&_ZN5S80C44v147Ev,
  (VTBL_ENTRY)&_ZN5S80C44v148Ev,
  (VTBL_ENTRY)&_ZN5S80C44v149Ev,
  (VTBL_ENTRY)&_ZN5S80C44v150Ev,
  (VTBL_ENTRY)&_ZN5S80C44v151Ev,
  (VTBL_ENTRY)&_ZN5S80C44v152Ev,
  (VTBL_ENTRY)&_ZN5S80C44v153Ev,
  (VTBL_ENTRY)&_ZN5S80C44v154Ev,
  (VTBL_ENTRY)&_ZN5S80C44v155Ev,
  (VTBL_ENTRY)&_ZN5S80C44v156Ev,
  (VTBL_ENTRY)&_ZN5S80C44v157Ev,
  (VTBL_ENTRY)&_ZN5S80C44v158Ev,
  (VTBL_ENTRY)&_ZN5S80C44v159Ev,
  (VTBL_ENTRY)&_ZN5S80C44v160Ev,
  (VTBL_ENTRY)&_ZN5S80C44v161Ev,
  (VTBL_ENTRY)&_ZN5S80C44v162Ev,
  (VTBL_ENTRY)&_ZN5S80C44v163Ev,
  (VTBL_ENTRY)&_ZN5S80C44v164Ev,
  (VTBL_ENTRY)&_ZN5S80C44v165Ev,
  (VTBL_ENTRY)&_ZN5S80C44v166Ev,
  (VTBL_ENTRY)&_ZN5S80C44v167Ev,
  (VTBL_ENTRY)&_ZN5S80C44v168Ev,
  (VTBL_ENTRY)&_ZN5S80C44v169Ev,
  (VTBL_ENTRY)&_ZN5S80C44v170Ev,
  (VTBL_ENTRY)&_ZN5S80C44v171Ev,
  (VTBL_ENTRY)&_ZN5S80C44v172Ev,
  (VTBL_ENTRY)&_ZN5S80C44v173Ev,
  (VTBL_ENTRY)&_ZN5S80C44v174Ev,
  (VTBL_ENTRY)&_ZN5S80C44v175Ev,
  (VTBL_ENTRY)&_ZN5S80C44v176Ev,
  (VTBL_ENTRY)&_ZN5S80C44v177Ev,
  (VTBL_ENTRY)&_ZN5S80C44v178Ev,
  (VTBL_ENTRY)&_ZN5S80C44v179Ev,
  (VTBL_ENTRY)&_ZN5S80C44v180Ev,
  (VTBL_ENTRY)&_ZN5S80C44v181Ev,
  (VTBL_ENTRY)&_ZN5S80C44v182Ev,
  (VTBL_ENTRY)&_ZN5S80C44v183Ev,
  (VTBL_ENTRY)&_ZN5S80C44v184Ev,
  (VTBL_ENTRY)&_ZN5S80C34v185Ev,
  (VTBL_ENTRY)&_ZN5S80C34v186Ev,
  (VTBL_ENTRY)&_ZN5S80C34v187Ev,
  (VTBL_ENTRY)&_ZN5S80C34v188Ev,
  (VTBL_ENTRY)&_ZN5S80C34v189Ev,
  (VTBL_ENTRY)&_ZN5S80C34v190Ev,
  (VTBL_ENTRY)&_ZN5S80C34v191Ev,
  (VTBL_ENTRY)&_ZN5S80C34v192Ev,
  (VTBL_ENTRY)&_ZN5S80C34v193Ev,
  (VTBL_ENTRY)&_ZN5S80C34v194Ev,
  (VTBL_ENTRY)&_ZN5S80C34v195Ev,
  (VTBL_ENTRY)&_ZN5S80C34v196Ev,
  (VTBL_ENTRY)&_ZN5S80C34v197Ev,
  (VTBL_ENTRY)&_ZN5S80C34v198Ev,
  (VTBL_ENTRY)&_ZN5S80C34v199Ev,
  (VTBL_ENTRY)&_ZN5S80C34v200Ev,
  (VTBL_ENTRY)&_ZN5S80C34v201Ev,
  (VTBL_ENTRY)&_ZN5S80C34v202Ev,
  (VTBL_ENTRY)&_ZN5S80C34v203Ev,
  (VTBL_ENTRY)&_ZN5S80C34v204Ev,
  (VTBL_ENTRY)&_ZN5S80C34v205Ev,
  (VTBL_ENTRY)&_ZN5S80C34v206Ev,
  (VTBL_ENTRY)&_ZN5S80C34v207Ev,
  (VTBL_ENTRY)&_ZN5S80C24v208Ev,
  (VTBL_ENTRY)&_ZN5S80C24v209Ev,
  (VTBL_ENTRY)&_ZN5S80C24v210Ev,
  (VTBL_ENTRY)&_ZN5S80C24v211Ev,
  (VTBL_ENTRY)&_ZN5S80C24v212Ev,
  (VTBL_ENTRY)&_ZN5S80C24v213Ev,
  (VTBL_ENTRY)&_ZN5S80C24v214Ev,
  (VTBL_ENTRY)&_ZN5S80C24v215Ev,
};
extern VTBL_ENTRY _ZTI5S80C2[];
extern  VTBL_ENTRY _ZTV5S80C2[];
Class_Descriptor cd_S80C2 = {  "S80C2", // class name
  bases_S80C2, 5,
  &(vtc_S80C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(928,656), // object size
  NSPAIRA(_ZTI5S80C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S80C2),216, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C32  : S80C12_nt {
};
//SIG(-1 S80C32) C1{ BC2{ m Fp Fi[2]}}



static void Test_S80C32()
{
  extern Class_Descriptor cd_S80C32;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C32, buf);
    S80C32 &lv = *(new (buf) S80C32());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C32)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C32)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S80C32");
    test_class_info(&lv, &cd_S80C32);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C32(Test_S80C32, "S80C32", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S80C32[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C32 = {  "S80C32", // class name
  bases_S80C32, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C31  : S80C32 {
};
//SIG(-1 S80C31) C1{ BC2{ BC3{ m Fp Fi[2]}}}



static void Test_S80C31()
{
  extern Class_Descriptor cd_S80C31;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S80C31, buf);
    S80C31 &lv = *(new (buf) S80C31());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S80C31)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C31)");
    check_base_class_offset(lv, (S80C12_nt*)(S80C32*), 0, "S80C31");
    check_base_class_offset(lv, (S80C32*), 0, "S80C31");
    test_class_info(&lv, &cd_S80C31);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C31(Test_S80C31, "S80C31", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S80C32;
static Base_Class bases_S80C31[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C32,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S80C31 = {  "S80C31", // class name
  bases_S80C31, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C34_nt  {
  ::S80C28_nt s80c34f0;
  ::S80C28_nt s80c34f1;
  ::S80C28_nt s80c34f2;
  ::S80C28_nt s80c34f3;
  ::S80C28_nt s80c34f4;
  ::S80C28_nt s80c34f5;
  ::S80C28_nt s80c34f6;
  ::S80C28_nt s80c34f7;
  unsigned int s80c34f8:1;
  unsigned int s80c34f9:1;
  ::S80C28_nt s80c34f10;
  ::S80C28_nt s80c34f11;
  ::S80C28_nt s80c34f12;
  void  mf80c34(); // _ZN9S80C34_nt7mf80c34Ev
};
//SIG(-1 S80C34_nt) C1{ m FC2{ BC3{ BC4{ BC5{ m Fp Fi[2]}}}} FC2 FC2 FC2 FC2 FC2 FC2 FC2 Fi:1 Fi:1 FC2 FC2 FC2}


void  S80C34_nt ::mf80c34(){}

//skip512 S80C34_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C35_nt  {
  int s80c35f0[7];
  ::S80C28_nt s80c35f1;
  void  mf80c35(); // _ZN9S80C35_nt7mf80c35Ev
};
//SIG(-1 S80C35_nt) C1{ m Fi[7] FC2{ BC3{ BC4{ BC5{ m Fp Fi[2]}}}}}


void  S80C35_nt ::mf80c35(){}

//skip512 S80C35_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C33_nt  {
  ::S80C28_nt s80c33f0;
  ::S80C28_nt s80c33f1;
  ::S80C28_nt s80c33f2;
  ::S80C28_nt s80c33f3;
  ::S80C28_nt s80c33f4;
  ::S80C34_nt s80c33f5;
  ::S80C35_nt s80c33f6;
  ::S80C28_nt s80c33f7;
  unsigned int s80c33f8:1;
  unsigned int s80c33f9:1;
  void  mf80c33(); // _ZN9S80C33_nt7mf80c33Ev
};
//SIG(-1 S80C33_nt) C1{ m FC2{ BC3{ BC4{ BC5{ m Fp Fi[2]}}}} FC2 FC2 FC2 FC2 FC6{ m FC2 FC2 FC2 FC2 FC2 FC2 FC2 FC2 Fi:1 Fi:1 FC2 FC2 FC2} FC7{ m Fi[7] FC2} FC2 Fi:1 Fi:1}


void  S80C33_nt ::mf80c33(){}

//skip512 S80C33_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C36_nt  {
  int s80c36f0[3];
  void  mf80c36(); // _ZN9S80C36_nt7mf80c36Ev
};
//SIG(-1 S80C36_nt) C1{ m Fi[3]}


void  S80C36_nt ::mf80c36(){}

//skip512 S80C36_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S80C1  : S80C2 {
  void *s80c1f0[6];
  ::S80C31 s80c1f1;
  void *s80c1f2[2];
  ::S80C28_nt s80c1f3;
  ::S80C28_nt s80c1f4;
  ::S80C33_nt s80c1f5;
  unsigned int s80c1f6:1;
  unsigned int s80c1f7:1;
  unsigned int s80c1f8:1;
  ::S80C34_nt s80c1f9;
  void *s80c1f10;
  int s80c1f11;
  ::S80C36_nt s80c1f12;
  ::S80C36_nt s80c1f13;
  int s80c1f14;
  virtual  ~S80C1(); // _ZN5S80C1D1Ev
  virtual void  v1(); // _ZN5S80C12v1Ev
  virtual void  v2(); // _ZN5S80C12v2Ev
  virtual void  v3(); // _ZN5S80C12v3Ev
  S80C1(); // tgen
};
//SIG(1 S80C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC10 Fp FC13{ BC14{ BC12}} FC13 FC13 FC15{ BC16{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC17{ m Fp FC8} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC15 FC10 FC18{ BC19{ m FC20{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC8 FC8 FC8 Fp FC17 FC17 FC17 FC17 FC17} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC17 FC17 FC17} vd v208 v209 v210 v211 v212 v213 v214 v215 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC21{ BC22{ BC23{ BC12}}}} vd v1 v2 v3 Fp[6] FC24{ BC25{ BC12}} Fp[2] FC21 FC21 FC26{ m FC21 FC21 FC21 FC21 FC21 FC27{ m FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 Fi:1 Fi:1 FC21 FC21 FC21} FC28{ m Fi[7] FC21} FC21 Fi:1 Fi:1} Fi:1 Fi:1 Fi:1 FC27 Fp Fi FC29{ m Fi[3]} FC29 Fi}


 S80C1 ::~S80C1(){ note_dtor("S80C1", this);}
void  S80C1 ::v1(){vfunc_called(this, "_ZN5S80C12v1Ev");}
void  S80C1 ::v2(){vfunc_called(this, "_ZN5S80C12v2Ev");}
void  S80C1 ::v3(){vfunc_called(this, "_ZN5S80C12v3Ev");}
S80C1 ::S80C1(){ note_ctor("S80C1", this);} // tgen

static void Test_S80C1()
{
  extern Class_Descriptor cd_S80C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(202,289)];
    init_test(&cd_S80C1, buf);
    S80C1 *dp, &lv = *(dp=new (buf) S80C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1608,1152), "sizeof(S80C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S80C1)");
    check_base_class_offset(lv, (S80C7_nt*)(S80C6_nt*)(S80C5_nt*)(S80C4*)(S80C3*)(S80C2*), 0, "S80C1");
    check_base_class_offset(lv, (S80C6_nt*)(S80C5_nt*)(S80C4*)(S80C3*)(S80C2*), 0, "S80C1");
    check_base_class_offset(lv, (S80C5_nt*)(S80C4*)(S80C3*)(S80C2*), 0, "S80C1");
    check_base_class_offset(lv, (S80C4*)(S80C3*)(S80C2*), 0, "S80C1");
    check_base_class_offset(lv, (S80C3*)(S80C2*), 0, "S80C1");
    check_base_class_offset(lv, (S80C2*), 0, "S80C1");
    check_field_offset(lv, s80c1f0, ABISELECT(928,656), "S80C1.s80c1f0");
    check_field_offset(lv, s80c1f1, ABISELECT(976,680), "S80C1.s80c1f1");
    check_field_offset(lv, s80c1f2, ABISELECT(992,692), "S80C1.s80c1f2");
    check_field_offset(lv, s80c1f3, ABISELECT(1008,700), "S80C1.s80c1f3");
    check_field_offset(lv, s80c1f4, ABISELECT(1024,712), "S80C1.s80c1f4");
    check_field_offset(lv, s80c1f5, ABISELECT(1040,724), "S80C1.s80c1f5");
    set_bf_and_test(lv, s80c1f6, ABISELECT(1376,976), 0, 1, 1, "S80C1");
    set_bf_and_test(lv, s80c1f7, ABISELECT(1376,976), 1, 1, 1, "S80C1");
    set_bf_and_test(lv, s80c1f8, ABISELECT(1376,976), 2, 1, 1, "S80C1");
    check_field_offset(lv, s80c1f9, ABISELECT(1384,980), "S80C1.s80c1f9");
    check_field_offset(lv, s80c1f10, ABISELECT(1568,1116), "S80C1.s80c1f10");
    check_field_offset(lv, s80c1f11, ABISELECT(1576,1120), "S80C1.s80c1f11");
    check_field_offset(lv, s80c1f12, ABISELECT(1580,1124), "S80C1.s80c1f12");
    check_field_offset(lv, s80c1f13, ABISELECT(1592,1136), "S80C1.s80c1f13");
    check_field_offset(lv, s80c1f14, ABISELECT(1604,1148), "S80C1.s80c1f14");
    test_class_info(&lv, &cd_S80C1);
    dp->~S80C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS80C1(Test_S80C1, "S80C1", ABISELECT(1608,1152));

#else // __cplusplus

extern void _ZN5S80C1C1Ev();
extern void _ZN5S80C1D1Ev();
Name_Map name_map_S80C1[] = {
  NSPAIR(_ZN5S80C1C1Ev),
  NSPAIR(_ZN5S80C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S80C7_nt;
extern VTBL_ENTRY _ZTI8S80C7_nt[];
extern  VTBL_ENTRY _ZTV8S80C7_nt[];
extern Class_Descriptor cd_S80C6_nt;
extern VTBL_ENTRY _ZTI8S80C6_nt[];
extern  VTBL_ENTRY _ZTV8S80C6_nt[];
extern Class_Descriptor cd_S80C5_nt;
extern VTBL_ENTRY _ZTI8S80C5_nt[];
extern  VTBL_ENTRY _ZTV8S80C5_nt[];
extern Class_Descriptor cd_S80C4;
extern VTBL_ENTRY _ZTI5S80C4[];
extern  VTBL_ENTRY _ZTV5S80C4[];
extern Class_Descriptor cd_S80C3;
extern VTBL_ENTRY _ZTI5S80C3[];
extern  VTBL_ENTRY _ZTV5S80C3[];
extern Class_Descriptor cd_S80C2;
extern VTBL_ENTRY _ZTI5S80C2[];
extern  VTBL_ENTRY _ZTV5S80C2[];
static Base_Class bases_S80C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S80C6_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S80C5_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S80C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S80C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S80C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S80C1[];
extern void _ZN5S80C1D1Ev();
extern void _ZN5S80C1D0Ev();
extern void _ZN8S80C7_nt2v4Ev();
extern void _ZN8S80C7_nt2v5Ev();
extern void _ZN8S80C7_nt2v6Ev();
extern void _ZN8S80C7_nt2v7Ev();
extern void _ZN8S80C7_nt2v8Ev();
extern void _ZN8S80C7_nt2v9Ev();
extern void _ZN8S80C7_nt3v10Ev();
extern void _ZN8S80C7_nt3v11Ev();
extern void _ZN8S80C7_nt3v12Ev();
extern void _ZN8S80C7_nt3v13Ev();
extern void _ZN8S80C7_nt3v14Ev();
extern void _ZN8S80C7_nt3v15Ev();
extern void _ZN8S80C7_nt3v16Ev();
extern void _ZN8S80C7_nt3v17Ev();
extern void _ZN8S80C7_nt3v18Ev();
extern void _ZN8S80C7_nt3v19Ev();
extern void _ZN8S80C7_nt3v20Ev();
extern void _ZN8S80C7_nt3v21Ev();
extern void _ZN8S80C7_nt3v22Ev();
extern void _ZN8S80C7_nt3v23Ev();
extern void _ZN8S80C7_nt3v24Ev();
extern void _ZN8S80C7_nt3v25Ev();
extern void _ZN8S80C7_nt3v26Ev();
extern void _ZN8S80C7_nt3v27Ev();
extern void _ZN8S80C7_nt3v28Ev();
extern void _ZN8S80C7_nt3v29Ev();
extern void _ZN8S80C7_nt3v30Ev();
extern void _ZN8S80C7_nt3v31Ev();
extern void _ZN8S80C7_nt3v32Ev();
extern void _ZN8S80C7_nt3v33Ev();
extern void _ZN8S80C7_nt3v34Ev();
extern void _ZN8S80C7_nt3v35Ev();
extern void _ZN8S80C7_nt3v36Ev();
extern void _ZN8S80C7_nt3v37Ev();
extern void _ZN8S80C7_nt3v38Ev();
extern void _ZN8S80C7_nt3v39Ev();
extern void _ZN8S80C7_nt3v40Ev();
extern void _ZN8S80C7_nt3v41Ev();
extern void _ZN8S80C7_nt3v42Ev();
extern void _ZN8S80C7_nt3v43Ev();
extern void _ZN8S80C7_nt3v44Ev();
extern void _ZN8S80C7_nt3v45Ev();
extern void _ZN8S80C7_nt3v46Ev();
extern void _ZN8S80C7_nt3v47Ev();
extern void _ZN8S80C7_nt3v48Ev();
extern void _ZN8S80C7_nt3v49Ev();
extern void _ZN8S80C7_nt3v50Ev();
extern void _ZN8S80C7_nt3v51Ev();
extern void _ZN8S80C7_nt3v52Ev();
extern void _ZN8S80C7_nt3v53Ev();
extern void _ZN8S80C7_nt3v54Ev();
extern void _ZN8S80C7_nt3v55Ev();
extern void _ZN8S80C7_nt3v56Ev();
extern void _ZN8S80C7_nt3v57Ev();
extern void _ZN8S80C7_nt3v58Ev();
extern void _ZN8S80C7_nt3v59Ev();
extern void _ZN8S80C7_nt3v60Ev();
extern void _ZN8S80C7_nt3v61Ev();
extern void _ZN8S80C7_nt3v62Ev();
extern void _ZN8S80C7_nt3v63Ev();
extern void _ZN8S80C7_nt3v64Ev();
extern void _ZN8S80C7_nt3v65Ev();
extern void _ZN8S80C7_nt3v66Ev();
extern void _ZN8S80C7_nt3v67Ev();
extern void _ZN8S80C6_nt3v68Ev();
extern void _ZN8S80C6_nt3v69Ev();
extern void _ZN8S80C5_nt3v70Ev();
extern void _ZN8S80C5_nt3v71Ev();
extern void _ZN8S80C5_nt3v72Ev();
extern void _ZN8S80C5_nt3v73Ev();
extern void _ZN8S80C5_nt3v74Ev();
extern void _ZN8S80C5_nt3v75Ev();
extern void _ZN8S80C5_nt3v76Ev();
extern void _ZN8S80C5_nt3v77Ev();
extern void _ZN8S80C5_nt3v78Ev();
extern void _ZN8S80C5_nt3v79Ev();
extern void _ZN8S80C5_nt3v80Ev();
extern void _ZN8S80C5_nt3v81Ev();
extern void _ZN8S80C5_nt3v82Ev();
extern void _ZN8S80C5_nt3v83Ev();
extern void _ZN8S80C5_nt3v84Ev();
extern void _ZN8S80C5_nt3v85Ev();
extern void _ZN8S80C5_nt3v86Ev();
extern void _ZN8S80C5_nt3v87Ev();
extern void _ZN8S80C5_nt3v88Ev();
extern void _ZN8S80C5_nt3v89Ev();
extern void _ZN8S80C5_nt3v90Ev();
extern void _ZN8S80C5_nt3v91Ev();
extern void _ZN8S80C5_nt3v92Ev();
extern void _ZN8S80C5_nt3v93Ev();
extern void _ZN8S80C5_nt3v94Ev();
extern void _ZN8S80C5_nt3v95Ev();
extern void _ZN8S80C5_nt3v96Ev();
extern void _ZN8S80C5_nt3v97Ev();
extern void _ZN8S80C5_nt3v98Ev();
extern void _ZN8S80C5_nt3v99Ev();
extern void _ZN8S80C5_nt4v100Ev();
extern void _ZN8S80C5_nt4v101Ev();
extern void _ZN8S80C5_nt4v102Ev();
extern void _ZN8S80C5_nt4v103Ev();
extern void _ZN8S80C5_nt4v104Ev();
extern void _ZN8S80C5_nt4v105Ev();
extern void _ZN8S80C5_nt4v106Ev();
extern void _ZN8S80C5_nt4v107Ev();
extern void _ZN8S80C5_nt4v108Ev();
extern void _ZN8S80C5_nt4v109Ev();
extern void _ZN8S80C5_nt4v110Ev();
extern void _ZN8S80C5_nt4v111Ev();
extern void _ZN8S80C5_nt4v112Ev();
extern void _ZN8S80C5_nt4v113Ev();
extern void _ZN8S80C5_nt4v114Ev();
extern void _ZN8S80C5_nt4v115Ev();
extern void _ZN8S80C5_nt4v116Ev();
extern void _ZN8S80C5_nt4v117Ev();
extern void _ZN8S80C5_nt4v118Ev();
extern void _ZN8S80C5_nt4v119Ev();
extern void _ZN8S80C5_nt4v120Ev();
extern void _ZN8S80C5_nt4v121Ev();
extern void _ZN8S80C5_nt4v122Ev();
extern void _ZN8S80C5_nt4v123Ev();
extern void _ZN8S80C5_nt4v124Ev();
extern void _ZN8S80C5_nt4v125Ev();
extern void _ZN8S80C5_nt4v126Ev();
extern void _ZN8S80C5_nt4v127Ev();
extern void _ZN8S80C5_nt4v128Ev();
extern void _ZN8S80C5_nt4v129Ev();
extern void _ZN8S80C5_nt4v130Ev();
extern void _ZN8S80C5_nt4v131Ev();
extern void _ZN8S80C5_nt4v132Ev();
extern void _ZN8S80C5_nt4v133Ev();
extern void _ZN8S80C5_nt4v134Ev();
extern void _ZN8S80C5_nt4v135Ev();
extern void _ZN8S80C5_nt4v136Ev();
extern void _ZN8S80C5_nt4v137Ev();
extern void _ZN8S80C5_nt4v138Ev();
extern void _ZN8S80C5_nt4v139Ev();
extern void _ZN8S80C5_nt4v140Ev();
extern void _ZN8S80C5_nt4v141Ev();
extern void _ZN8S80C5_nt4v142Ev();
extern void _ZN8S80C5_nt4v143Ev();
extern void _ZN8S80C5_nt4v144Ev();
extern void _ZN8S80C5_nt4v145Ev();
extern void _ZN5S80C44v146Ev();
extern void _ZN5S80C44v147Ev();
extern void _ZN5S80C44v148Ev();
extern void _ZN5S80C44v149Ev();
extern void _ZN5S80C44v150Ev();
extern void _ZN5S80C44v151Ev();
extern void _ZN5S80C44v152Ev();
extern void _ZN5S80C44v153Ev();
extern void _ZN5S80C44v154Ev();
extern void _ZN5S80C44v155Ev();
extern void _ZN5S80C44v156Ev();
extern void _ZN5S80C44v157Ev();
extern void _ZN5S80C44v158Ev();
extern void _ZN5S80C44v159Ev();
extern void _ZN5S80C44v160Ev();
extern void _ZN5S80C44v161Ev();
extern void _ZN5S80C44v162Ev();
extern void _ZN5S80C44v163Ev();
extern void _ZN5S80C44v164Ev();
extern void _ZN5S80C44v165Ev();
extern void _ZN5S80C44v166Ev();
extern void _ZN5S80C44v167Ev();
extern void _ZN5S80C44v168Ev();
extern void _ZN5S80C44v169Ev();
extern void _ZN5S80C44v170Ev();
extern void _ZN5S80C44v171Ev();
extern void _ZN5S80C44v172Ev();
extern void _ZN5S80C44v173Ev();
extern void _ZN5S80C44v174Ev();
extern void _ZN5S80C44v175Ev();
extern void _ZN5S80C44v176Ev();
extern void _ZN5S80C44v177Ev();
extern void _ZN5S80C44v178Ev();
extern void _ZN5S80C44v179Ev();
extern void _ZN5S80C44v180Ev();
extern void _ZN5S80C44v181Ev();
extern void _ZN5S80C44v182Ev();
extern void _ZN5S80C44v183Ev();
extern void _ZN5S80C44v184Ev();
extern void _ZN5S80C34v185Ev();
extern void _ZN5S80C34v186Ev();
extern void _ZN5S80C34v187Ev();
extern void _ZN5S80C34v188Ev();
extern void _ZN5S80C34v189Ev();
extern void _ZN5S80C34v190Ev();
extern void _ZN5S80C34v191Ev();
extern void _ZN5S80C34v192Ev();
extern void _ZN5S80C34v193Ev();
extern void _ZN5S80C34v194Ev();
extern void _ZN5S80C34v195Ev();
extern void _ZN5S80C34v196Ev();
extern void _ZN5S80C34v197Ev();
extern void _ZN5S80C34v198Ev();
extern void _ZN5S80C34v199Ev();
extern void _ZN5S80C34v200Ev();
extern void _ZN5S80C34v201Ev();
extern void _ZN5S80C34v202Ev();
extern void _ZN5S80C34v203Ev();
extern void _ZN5S80C34v204Ev();
extern void _ZN5S80C34v205Ev();
extern void _ZN5S80C34v206Ev();
extern void _ZN5S80C34v207Ev();
extern void _ZN5S80C24v208Ev();
extern void _ZN5S80C24v209Ev();
extern void _ZN5S80C24v210Ev();
extern void _ZN5S80C24v211Ev();
extern void _ZN5S80C24v212Ev();
extern void _ZN5S80C24v213Ev();
extern void _ZN5S80C24v214Ev();
extern void _ZN5S80C24v215Ev();
extern void _ZN5S80C12v1Ev();
extern void _ZN5S80C12v2Ev();
extern void _ZN5S80C12v3Ev();
static  VTBL_ENTRY vtc_S80C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S80C1[0]),
  (VTBL_ENTRY)&_ZN5S80C1D1Ev,
  (VTBL_ENTRY)&_ZN5S80C1D0Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v4Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v5Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v6Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v7Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v8Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt2v9Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v11Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v12Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v13Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v14Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v15Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v16Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v17Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v18Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v19Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v20Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v21Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v22Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v23Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v24Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v25Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v26Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v27Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v28Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v29Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v30Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v31Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v32Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v33Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v34Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v35Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v36Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v37Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v38Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v39Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v40Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v41Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v42Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v43Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v44Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v45Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v46Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v47Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v48Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v49Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v50Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v51Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v52Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v53Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v54Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v55Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v56Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v57Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v58Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v59Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v60Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v61Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v62Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v63Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v64Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v65Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v66Ev,
  (VTBL_ENTRY)&_ZN8S80C7_nt3v67Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v68Ev,
  (VTBL_ENTRY)&_ZN8S80C6_nt3v69Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v70Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v71Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v72Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v73Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v74Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v75Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v76Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v77Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v78Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v79Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v80Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v81Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v82Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v83Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v84Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v85Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v86Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v87Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v88Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v89Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v90Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v91Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v92Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v93Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v94Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v95Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v96Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v97Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v98Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt3v99Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v100Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v101Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v102Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v103Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v104Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v105Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v106Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v107Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v108Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v109Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v110Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v111Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v112Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v113Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v114Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v115Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v116Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v117Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v118Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v119Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v120Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v121Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v122Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v123Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v124Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v125Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v126Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v127Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v128Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v129Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v130Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v131Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v132Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v133Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v134Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v135Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v136Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v137Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v138Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v139Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v140Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v141Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v142Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v143Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v144Ev,
  (VTBL_ENTRY)&_ZN8S80C5_nt4v145Ev,
  (VTBL_ENTRY)&_ZN5S80C44v146Ev,
  (VTBL_ENTRY)&_ZN5S80C44v147Ev,
  (VTBL_ENTRY)&_ZN5S80C44v148Ev,
  (VTBL_ENTRY)&_ZN5S80C44v149Ev,
  (VTBL_ENTRY)&_ZN5S80C44v150Ev,
  (VTBL_ENTRY)&_ZN5S80C44v151Ev,
  (VTBL_ENTRY)&_ZN5S80C44v152Ev,
  (VTBL_ENTRY)&_ZN5S80C44v153Ev,
  (VTBL_ENTRY)&_ZN5S80C44v154Ev,
  (VTBL_ENTRY)&_ZN5S80C44v155Ev,
  (VTBL_ENTRY)&_ZN5S80C44v156Ev,
  (VTBL_ENTRY)&_ZN5S80C44v157Ev,
  (VTBL_ENTRY)&_ZN5S80C44v158Ev,
  (VTBL_ENTRY)&_ZN5S80C44v159Ev,
  (VTBL_ENTRY)&_ZN5S80C44v160Ev,
  (VTBL_ENTRY)&_ZN5S80C44v161Ev,
  (VTBL_ENTRY)&_ZN5S80C44v162Ev,
  (VTBL_ENTRY)&_ZN5S80C44v163Ev,
  (VTBL_ENTRY)&_ZN5S80C44v164Ev,
  (VTBL_ENTRY)&_ZN5S80C44v165Ev,
  (VTBL_ENTRY)&_ZN5S80C44v166Ev,
  (VTBL_ENTRY)&_ZN5S80C44v167Ev,
  (VTBL_ENTRY)&_ZN5S80C44v168Ev,
  (VTBL_ENTRY)&_ZN5S80C44v169Ev,
  (VTBL_ENTRY)&_ZN5S80C44v170Ev,
  (VTBL_ENTRY)&_ZN5S80C44v171Ev,
  (VTBL_ENTRY)&_ZN5S80C44v172Ev,
  (VTBL_ENTRY)&_ZN5S80C44v173Ev,
  (VTBL_ENTRY)&_ZN5S80C44v174Ev,
  (VTBL_ENTRY)&_ZN5S80C44v175Ev,
  (VTBL_ENTRY)&_ZN5S80C44v176Ev,
  (VTBL_ENTRY)&_ZN5S80C44v177Ev,
  (VTBL_ENTRY)&_ZN5S80C44v178Ev,
  (VTBL_ENTRY)&_ZN5S80C44v179Ev,
  (VTBL_ENTRY)&_ZN5S80C44v180Ev,
  (VTBL_ENTRY)&_ZN5S80C44v181Ev,
  (VTBL_ENTRY)&_ZN5S80C44v182Ev,
  (VTBL_ENTRY)&_ZN5S80C44v183Ev,
  (VTBL_ENTRY)&_ZN5S80C44v184Ev,
  (VTBL_ENTRY)&_ZN5S80C34v185Ev,
  (VTBL_ENTRY)&_ZN5S80C34v186Ev,
  (VTBL_ENTRY)&_ZN5S80C34v187Ev,
  (VTBL_ENTRY)&_ZN5S80C34v188Ev,
  (VTBL_ENTRY)&_ZN5S80C34v189Ev,
  (VTBL_ENTRY)&_ZN5S80C34v190Ev,
  (VTBL_ENTRY)&_ZN5S80C34v191Ev,
  (VTBL_ENTRY)&_ZN5S80C34v192Ev,
  (VTBL_ENTRY)&_ZN5S80C34v193Ev,
  (VTBL_ENTRY)&_ZN5S80C34v194Ev,
  (VTBL_ENTRY)&_ZN5S80C34v195Ev,
  (VTBL_ENTRY)&_ZN5S80C34v196Ev,
  (VTBL_ENTRY)&_ZN5S80C34v197Ev,
  (VTBL_ENTRY)&_ZN5S80C34v198Ev,
  (VTBL_ENTRY)&_ZN5S80C34v199Ev,
  (VTBL_ENTRY)&_ZN5S80C34v200Ev,
  (VTBL_ENTRY)&_ZN5S80C34v201Ev,
  (VTBL_ENTRY)&_ZN5S80C34v202Ev,
  (VTBL_ENTRY)&_ZN5S80C34v203Ev,
  (VTBL_ENTRY)&_ZN5S80C34v204Ev,
  (VTBL_ENTRY)&_ZN5S80C34v205Ev,
  (VTBL_ENTRY)&_ZN5S80C34v206Ev,
  (VTBL_ENTRY)&_ZN5S80C34v207Ev,
  (VTBL_ENTRY)&_ZN5S80C24v208Ev,
  (VTBL_ENTRY)&_ZN5S80C24v209Ev,
  (VTBL_ENTRY)&_ZN5S80C24v210Ev,
  (VTBL_ENTRY)&_ZN5S80C24v211Ev,
  (VTBL_ENTRY)&_ZN5S80C24v212Ev,
  (VTBL_ENTRY)&_ZN5S80C24v213Ev,
  (VTBL_ENTRY)&_ZN5S80C24v214Ev,
  (VTBL_ENTRY)&_ZN5S80C24v215Ev,
  (VTBL_ENTRY)&_ZN5S80C12v1Ev,
  (VTBL_ENTRY)&_ZN5S80C12v2Ev,
  (VTBL_ENTRY)&_ZN5S80C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S80C1[];
extern  VTBL_ENTRY _ZTV5S80C1[];
Class_Descriptor cd_S80C1 = {  "S80C1", // class name
  bases_S80C1, 6,
  &(vtc_S80C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1608,1152), // object size
  NSPAIRA(_ZTI5S80C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S80C1),219, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C7  {
  int s85c7f0;
  __tsi64 s85c7f1;
  void *s85c7f2[4];
  int s85c7f3[2];
  void *s85c7f4;
  ::S80C8_nt s85c7f5;
  void *s85c7f6[2];
  virtual  ~S85C7(); // _ZN5S85C7D1Ev
  virtual void  v4(); // _ZN5S85C72v4Ev
  virtual void  v5(); // _ZN5S85C72v5Ev
  virtual void  v6(); // _ZN5S85C72v6Ev
  virtual void  v7(); // _ZN5S85C72v7Ev
  virtual void  v8(); // _ZN5S85C72v8Ev
  virtual void  v9(); // _ZN5S85C72v9Ev
  virtual void  v10(); // _ZN5S85C73v10Ev
  virtual void  v11(); // _ZN5S85C73v11Ev
  virtual void  v12(); // _ZN5S85C73v12Ev
  virtual void  v13(); // _ZN5S85C73v13Ev
  virtual void  v14(); // _ZN5S85C73v14Ev
  virtual void  v15(); // _ZN5S85C73v15Ev
  virtual void  v16(); // _ZN5S85C73v16Ev
  virtual void  v17(); // _ZN5S85C73v17Ev
  virtual void  v18(); // _ZN5S85C73v18Ev
  virtual void  v19(); // _ZN5S85C73v19Ev
  virtual void  v20(); // _ZN5S85C73v20Ev
  virtual void  v21(); // _ZN5S85C73v21Ev
  virtual void  v22(); // _ZN5S85C73v22Ev
  virtual void  v23(); // _ZN5S85C73v23Ev
  virtual void  v24(); // _ZN5S85C73v24Ev
  virtual void  v25(); // _ZN5S85C73v25Ev
  virtual void  v26(); // _ZN5S85C73v26Ev
  virtual void  v27(); // _ZN5S85C73v27Ev
  virtual void  v28(); // _ZN5S85C73v28Ev
  virtual void  v29(); // _ZN5S85C73v29Ev
  virtual void  v30(); // _ZN5S85C73v30Ev
  virtual void  v31(); // _ZN5S85C73v31Ev
  virtual void  v32(); // _ZN5S85C73v32Ev
  virtual void  v33(); // _ZN5S85C73v33Ev
  virtual void  v34(); // _ZN5S85C73v34Ev
  virtual void  v35(); // _ZN5S85C73v35Ev
  virtual void  v36(); // _ZN5S85C73v36Ev
  virtual void  v37(); // _ZN5S85C73v37Ev
  virtual void  v38(); // _ZN5S85C73v38Ev
  virtual void  v39(); // _ZN5S85C73v39Ev
  virtual void  v40(); // _ZN5S85C73v40Ev
  virtual void  v41(); // _ZN5S85C73v41Ev
  virtual void  v42(); // _ZN5S85C73v42Ev
  virtual void  v43(); // _ZN5S85C73v43Ev
  virtual void  v44(); // _ZN5S85C73v44Ev
  virtual void  v45(); // _ZN5S85C73v45Ev
  virtual void  v46(); // _ZN5S85C73v46Ev
  virtual void  v47(); // _ZN5S85C73v47Ev
  virtual void  v48(); // _ZN5S85C73v48Ev
  virtual void  v49(); // _ZN5S85C73v49Ev
  virtual void  v50(); // _ZN5S85C73v50Ev
  virtual void  v51(); // _ZN5S85C73v51Ev
  virtual void  v52(); // _ZN5S85C73v52Ev
  virtual void  v53(); // _ZN5S85C73v53Ev
  virtual void  v54(); // _ZN5S85C73v54Ev
  virtual void  v55(); // _ZN5S85C73v55Ev
  virtual void  v56(); // _ZN5S85C73v56Ev
  virtual void  v57(); // _ZN5S85C73v57Ev
  virtual void  v58(); // _ZN5S85C73v58Ev
  virtual void  v59(); // _ZN5S85C73v59Ev
  virtual void  v60(); // _ZN5S85C73v60Ev
  virtual void  v61(); // _ZN5S85C73v61Ev
  virtual void  v62(); // _ZN5S85C73v62Ev
  virtual void  v63(); // _ZN5S85C73v63Ev
  virtual void  v64(); // _ZN5S85C73v64Ev
  virtual void  v65(); // _ZN5S85C73v65Ev
  virtual void  v66(); // _ZN5S85C73v66Ev
  virtual void  v67(); // _ZN5S85C73v67Ev
  S85C7(); // tgen
};
//SIG(-1 S85C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S85C7 ::~S85C7(){ note_dtor("S85C7", this);}
void  S85C7 ::v4(){vfunc_called(this, "_ZN5S85C72v4Ev");}
void  S85C7 ::v5(){vfunc_called(this, "_ZN5S85C72v5Ev");}
void  S85C7 ::v6(){vfunc_called(this, "_ZN5S85C72v6Ev");}
void  S85C7 ::v7(){vfunc_called(this, "_ZN5S85C72v7Ev");}
void  S85C7 ::v8(){vfunc_called(this, "_ZN5S85C72v8Ev");}
void  S85C7 ::v9(){vfunc_called(this, "_ZN5S85C72v9Ev");}
void  S85C7 ::v10(){vfunc_called(this, "_ZN5S85C73v10Ev");}
void  S85C7 ::v11(){vfunc_called(this, "_ZN5S85C73v11Ev");}
void  S85C7 ::v12(){vfunc_called(this, "_ZN5S85C73v12Ev");}
void  S85C7 ::v13(){vfunc_called(this, "_ZN5S85C73v13Ev");}
void  S85C7 ::v14(){vfunc_called(this, "_ZN5S85C73v14Ev");}
void  S85C7 ::v15(){vfunc_called(this, "_ZN5S85C73v15Ev");}
void  S85C7 ::v16(){vfunc_called(this, "_ZN5S85C73v16Ev");}
void  S85C7 ::v17(){vfunc_called(this, "_ZN5S85C73v17Ev");}
void  S85C7 ::v18(){vfunc_called(this, "_ZN5S85C73v18Ev");}
void  S85C7 ::v19(){vfunc_called(this, "_ZN5S85C73v19Ev");}
void  S85C7 ::v20(){vfunc_called(this, "_ZN5S85C73v20Ev");}
void  S85C7 ::v21(){vfunc_called(this, "_ZN5S85C73v21Ev");}
void  S85C7 ::v22(){vfunc_called(this, "_ZN5S85C73v22Ev");}
void  S85C7 ::v23(){vfunc_called(this, "_ZN5S85C73v23Ev");}
void  S85C7 ::v24(){vfunc_called(this, "_ZN5S85C73v24Ev");}
void  S85C7 ::v25(){vfunc_called(this, "_ZN5S85C73v25Ev");}
void  S85C7 ::v26(){vfunc_called(this, "_ZN5S85C73v26Ev");}
void  S85C7 ::v27(){vfunc_called(this, "_ZN5S85C73v27Ev");}
void  S85C7 ::v28(){vfunc_called(this, "_ZN5S85C73v28Ev");}
void  S85C7 ::v29(){vfunc_called(this, "_ZN5S85C73v29Ev");}
void  S85C7 ::v30(){vfunc_called(this, "_ZN5S85C73v30Ev");}
void  S85C7 ::v31(){vfunc_called(this, "_ZN5S85C73v31Ev");}
void  S85C7 ::v32(){vfunc_called(this, "_ZN5S85C73v32Ev");}
void  S85C7 ::v33(){vfunc_called(this, "_ZN5S85C73v33Ev");}
void  S85C7 ::v34(){vfunc_called(this, "_ZN5S85C73v34Ev");}
void  S85C7 ::v35(){vfunc_called(this, "_ZN5S85C73v35Ev");}
void  S85C7 ::v36(){vfunc_called(this, "_ZN5S85C73v36Ev");}
void  S85C7 ::v37(){vfunc_called(this, "_ZN5S85C73v37Ev");}
void  S85C7 ::v38(){vfunc_called(this, "_ZN5S85C73v38Ev");}
void  S85C7 ::v39(){vfunc_called(this, "_ZN5S85C73v39Ev");}
void  S85C7 ::v40(){vfunc_called(this, "_ZN5S85C73v40Ev");}
void  S85C7 ::v41(){vfunc_called(this, "_ZN5S85C73v41Ev");}
void  S85C7 ::v42(){vfunc_called(this, "_ZN5S85C73v42Ev");}
void  S85C7 ::v43(){vfunc_called(this, "_ZN5S85C73v43Ev");}
void  S85C7 ::v44(){vfunc_called(this, "_ZN5S85C73v44Ev");}
void  S85C7 ::v45(){vfunc_called(this, "_ZN5S85C73v45Ev");}
void  S85C7 ::v46(){vfunc_called(this, "_ZN5S85C73v46Ev");}
void  S85C7 ::v47(){vfunc_called(this, "_ZN5S85C73v47Ev");}
void  S85C7 ::v48(){vfunc_called(this, "_ZN5S85C73v48Ev");}
void  S85C7 ::v49(){vfunc_called(this, "_ZN5S85C73v49Ev");}
void  S85C7 ::v50(){vfunc_called(this, "_ZN5S85C73v50Ev");}
void  S85C7 ::v51(){vfunc_called(this, "_ZN5S85C73v51Ev");}
void  S85C7 ::v52(){vfunc_called(this, "_ZN5S85C73v52Ev");}
void  S85C7 ::v53(){vfunc_called(this, "_ZN5S85C73v53Ev");}
void  S85C7 ::v54(){vfunc_called(this, "_ZN5S85C73v54Ev");}
void  S85C7 ::v55(){vfunc_called(this, "_ZN5S85C73v55Ev");}
void  S85C7 ::v56(){vfunc_called(this, "_ZN5S85C73v56Ev");}
void  S85C7 ::v57(){vfunc_called(this, "_ZN5S85C73v57Ev");}
void  S85C7 ::v58(){vfunc_called(this, "_ZN5S85C73v58Ev");}
void  S85C7 ::v59(){vfunc_called(this, "_ZN5S85C73v59Ev");}
void  S85C7 ::v60(){vfunc_called(this, "_ZN5S85C73v60Ev");}
void  S85C7 ::v61(){vfunc_called(this, "_ZN5S85C73v61Ev");}
void  S85C7 ::v62(){vfunc_called(this, "_ZN5S85C73v62Ev");}
void  S85C7 ::v63(){vfunc_called(this, "_ZN5S85C73v63Ev");}
void  S85C7 ::v64(){vfunc_called(this, "_ZN5S85C73v64Ev");}
void  S85C7 ::v65(){vfunc_called(this, "_ZN5S85C73v65Ev");}
void  S85C7 ::v66(){vfunc_called(this, "_ZN5S85C73v66Ev");}
void  S85C7 ::v67(){vfunc_called(this, "_ZN5S85C73v67Ev");}
S85C7 ::S85C7(){ note_ctor("S85C7", this);} // tgen

static void Test_S85C7()
{
  extern Class_Descriptor cd_S85C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S85C7, buf);
    S85C7 *dp, &lv = *(dp=new (buf) S85C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S85C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C7)");
    check_field_offset(lv, s85c7f0, ABISELECT(8,4), "S85C7.s85c7f0");
    check_field_offset(lv, s85c7f1, ABISELECT(16,8), "S85C7.s85c7f1");
    check_field_offset(lv, s85c7f2, ABISELECT(24,16), "S85C7.s85c7f2");
    check_field_offset(lv, s85c7f3, ABISELECT(56,32), "S85C7.s85c7f3");
    check_field_offset(lv, s85c7f4, ABISELECT(64,40), "S85C7.s85c7f4");
    check_field_offset(lv, s85c7f5, ABISELECT(72,44), "S85C7.s85c7f5");
    check_field_offset(lv, s85c7f6, ABISELECT(80,52), "S85C7.s85c7f6");
    test_class_info(&lv, &cd_S85C7);
    dp->~S85C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C7(Test_S85C7, "S85C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S85C7C1Ev();
extern void _ZN5S85C7D1Ev();
Name_Map name_map_S85C7[] = {
  NSPAIR(_ZN5S85C7C1Ev),
  NSPAIR(_ZN5S85C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S85C7[];
extern void _ZN5S85C7D1Ev();
extern void _ZN5S85C7D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
static  VTBL_ENTRY vtc_S85C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C7[0]),
  (VTBL_ENTRY)&_ZN5S85C7D1Ev,
  (VTBL_ENTRY)&_ZN5S85C7D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
};
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
Class_Descriptor cd_S85C7 = {  "S85C7", // class name
  0,0,//no base classes
  &(vtc_S85C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S85C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S85C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C6  : S85C7 {
  virtual  ~S85C6(); // _ZN5S85C6D1Ev
  virtual void  v68(); // _ZN5S85C63v68Ev
  virtual void  v69(); // _ZN5S85C63v69Ev
  S85C6(); // tgen
};
//SIG(-1 S85C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S85C6 ::~S85C6(){ note_dtor("S85C6", this);}
void  S85C6 ::v68(){vfunc_called(this, "_ZN5S85C63v68Ev");}
void  S85C6 ::v69(){vfunc_called(this, "_ZN5S85C63v69Ev");}
S85C6 ::S85C6(){ note_ctor("S85C6", this);} // tgen

static void Test_S85C6()
{
  extern Class_Descriptor cd_S85C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S85C6, buf);
    S85C6 *dp, &lv = *(dp=new (buf) S85C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S85C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C6)");
    check_base_class_offset(lv, (S85C7*), 0, "S85C6");
    test_class_info(&lv, &cd_S85C6);
    dp->~S85C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C6(Test_S85C6, "S85C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S85C6C1Ev();
extern void _ZN5S85C6D1Ev();
Name_Map name_map_S85C6[] = {
  NSPAIR(_ZN5S85C6C1Ev),
  NSPAIR(_ZN5S85C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S85C7;
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
static Base_Class bases_S85C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S85C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S85C6[];
extern void _ZN5S85C6D1Ev();
extern void _ZN5S85C6D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
extern void _ZN5S85C63v68Ev();
extern void _ZN5S85C63v69Ev();
static  VTBL_ENTRY vtc_S85C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C6[0]),
  (VTBL_ENTRY)&_ZN5S85C6D1Ev,
  (VTBL_ENTRY)&_ZN5S85C6D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
  (VTBL_ENTRY)&_ZN5S85C63v68Ev,
  (VTBL_ENTRY)&_ZN5S85C63v69Ev,
};
extern VTBL_ENTRY _ZTI5S85C6[];
extern  VTBL_ENTRY _ZTV5S85C6[];
Class_Descriptor cd_S85C6 = {  "S85C6", // class name
  bases_S85C6, 1,
  &(vtc_S85C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S85C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S85C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C5  : S85C6 {
  ::S80C9_nt s85c5f0;
  int s85c5f1;
  unsigned int s85c5f2:1;
  unsigned int s85c5f3:1;
  unsigned int s85c5f4:1;
  unsigned int s85c5f5:1;
  ::S80C31 s85c5f6;
  ::S80C29 s85c5f7;
  void *s85c5f8;
  ::S80C19 s85c5f9;
  ::S80C19 s85c5f10;
  ::S80C15 s85c5f11;
  ::S80C10_nt s85c5f12;
  char s85c5f13;
  int s85c5f14;
  void *s85c5f15;
  ::S80C8_nt s85c5f16;
  ::S80C8_nt s85c5f17;
  ::S80C8_nt s85c5f18;
  ::S80C8_nt s85c5f19;
  ::S80C8_nt s85c5f20;
  ::S80C8_nt s85c5f21;
  ::S80C21_nt s85c5f22;
  ::S80C21_nt s85c5f23;
  ::S80C21_nt s85c5f24;
  ::S80C21_nt s85c5f25;
  ::S80C21_nt s85c5f26;
  ::S80C21_nt s85c5f27;
  ::S80C21_nt s85c5f28;
  ::S80C21_nt s85c5f29;
  ::S80C21_nt s85c5f30;
  ::S80C21_nt s85c5f31;
  virtual  ~S85C5(); // _ZN5S85C5D1Ev
  virtual void  v70(); // _ZN5S85C53v70Ev
  virtual void  v71(); // _ZN5S85C53v71Ev
  virtual void  v72(); // _ZN5S85C53v72Ev
  virtual void  v73(); // _ZN5S85C53v73Ev
  virtual void  v74(); // _ZN5S85C53v74Ev
  virtual void  v75(); // _ZN5S85C53v75Ev
  virtual void  v76(); // _ZN5S85C53v76Ev
  virtual void  v77(); // _ZN5S85C53v77Ev
  virtual void  v78(); // _ZN5S85C53v78Ev
  virtual void  v79(); // _ZN5S85C53v79Ev
  virtual void  v80(); // _ZN5S85C53v80Ev
  virtual void  v81(); // _ZN5S85C53v81Ev
  virtual void  v82(); // _ZN5S85C53v82Ev
  virtual void  v83(); // _ZN5S85C53v83Ev
  virtual void  v84(); // _ZN5S85C53v84Ev
  virtual void  v85(); // _ZN5S85C53v85Ev
  virtual void  v86(); // _ZN5S85C53v86Ev
  virtual void  v87(); // _ZN5S85C53v87Ev
  virtual void  v88(); // _ZN5S85C53v88Ev
  virtual void  v89(); // _ZN5S85C53v89Ev
  virtual void  v90(); // _ZN5S85C53v90Ev
  virtual void  v91(); // _ZN5S85C53v91Ev
  virtual void  v92(); // _ZN5S85C53v92Ev
  virtual void  v93(); // _ZN5S85C53v93Ev
  virtual void  v94(); // _ZN5S85C53v94Ev
  virtual void  v95(); // _ZN5S85C53v95Ev
  virtual void  v96(); // _ZN5S85C53v96Ev
  virtual void  v97(); // _ZN5S85C53v97Ev
  virtual void  v98(); // _ZN5S85C53v98Ev
  virtual void  v99(); // _ZN5S85C53v99Ev
  virtual void  v100(); // _ZN5S85C54v100Ev
  virtual void  v101(); // _ZN5S85C54v101Ev
  virtual void  v102(); // _ZN5S85C54v102Ev
  virtual void  v103(); // _ZN5S85C54v103Ev
  virtual void  v104(); // _ZN5S85C54v104Ev
  virtual void  v105(); // _ZN5S85C54v105Ev
  virtual void  v106(); // _ZN5S85C54v106Ev
  virtual void  v107(); // _ZN5S85C54v107Ev
  virtual void  v108(); // _ZN5S85C54v108Ev
  virtual void  v109(); // _ZN5S85C54v109Ev
  virtual void  v110(); // _ZN5S85C54v110Ev
  virtual void  v111(); // _ZN5S85C54v111Ev
  virtual void  v112(); // _ZN5S85C54v112Ev
  virtual void  v113(); // _ZN5S85C54v113Ev
  virtual void  v114(); // _ZN5S85C54v114Ev
  virtual void  v115(); // _ZN5S85C54v115Ev
  virtual void  v116(); // _ZN5S85C54v116Ev
  virtual void  v117(); // _ZN5S85C54v117Ev
  virtual void  v118(); // _ZN5S85C54v118Ev
  virtual void  v119(); // _ZN5S85C54v119Ev
  virtual void  v120(); // _ZN5S85C54v120Ev
  virtual void  v121(); // _ZN5S85C54v121Ev
  virtual void  v122(); // _ZN5S85C54v122Ev
  virtual void  v123(); // _ZN5S85C54v123Ev
  virtual void  v124(); // _ZN5S85C54v124Ev
  virtual void  v125(); // _ZN5S85C54v125Ev
  virtual void  v126(); // _ZN5S85C54v126Ev
  virtual void  v127(); // _ZN5S85C54v127Ev
  virtual void  v128(); // _ZN5S85C54v128Ev
  virtual void  v129(); // _ZN5S85C54v129Ev
  virtual void  v130(); // _ZN5S85C54v130Ev
  virtual void  v131(); // _ZN5S85C54v131Ev
  virtual void  v132(); // _ZN5S85C54v132Ev
  virtual void  v133(); // _ZN5S85C54v133Ev
  virtual void  v134(); // _ZN5S85C54v134Ev
  virtual void  v135(); // _ZN5S85C54v135Ev
  virtual void  v136(); // _ZN5S85C54v136Ev
  virtual void  v137(); // _ZN5S85C54v137Ev
  virtual void  v138(); // _ZN5S85C54v138Ev
  virtual void  v139(); // _ZN5S85C54v139Ev
  virtual void  v140(); // _ZN5S85C54v140Ev
  virtual void  v141(); // _ZN5S85C54v141Ev
  virtual void  v142(); // _ZN5S85C54v142Ev
  virtual void  v143(); // _ZN5S85C54v143Ev
  virtual void  v144(); // _ZN5S85C54v144Ev
  virtual void  v145(); // _ZN5S85C54v145Ev
  S85C5(); // tgen
};
//SIG(-1 S85C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC4} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S85C5 ::~S85C5(){ note_dtor("S85C5", this);}
void  S85C5 ::v70(){vfunc_called(this, "_ZN5S85C53v70Ev");}
void  S85C5 ::v71(){vfunc_called(this, "_ZN5S85C53v71Ev");}
void  S85C5 ::v72(){vfunc_called(this, "_ZN5S85C53v72Ev");}
void  S85C5 ::v73(){vfunc_called(this, "_ZN5S85C53v73Ev");}
void  S85C5 ::v74(){vfunc_called(this, "_ZN5S85C53v74Ev");}
void  S85C5 ::v75(){vfunc_called(this, "_ZN5S85C53v75Ev");}
void  S85C5 ::v76(){vfunc_called(this, "_ZN5S85C53v76Ev");}
void  S85C5 ::v77(){vfunc_called(this, "_ZN5S85C53v77Ev");}
void  S85C5 ::v78(){vfunc_called(this, "_ZN5S85C53v78Ev");}
void  S85C5 ::v79(){vfunc_called(this, "_ZN5S85C53v79Ev");}
void  S85C5 ::v80(){vfunc_called(this, "_ZN5S85C53v80Ev");}
void  S85C5 ::v81(){vfunc_called(this, "_ZN5S85C53v81Ev");}
void  S85C5 ::v82(){vfunc_called(this, "_ZN5S85C53v82Ev");}
void  S85C5 ::v83(){vfunc_called(this, "_ZN5S85C53v83Ev");}
void  S85C5 ::v84(){vfunc_called(this, "_ZN5S85C53v84Ev");}
void  S85C5 ::v85(){vfunc_called(this, "_ZN5S85C53v85Ev");}
void  S85C5 ::v86(){vfunc_called(this, "_ZN5S85C53v86Ev");}
void  S85C5 ::v87(){vfunc_called(this, "_ZN5S85C53v87Ev");}
void  S85C5 ::v88(){vfunc_called(this, "_ZN5S85C53v88Ev");}
void  S85C5 ::v89(){vfunc_called(this, "_ZN5S85C53v89Ev");}
void  S85C5 ::v90(){vfunc_called(this, "_ZN5S85C53v90Ev");}
void  S85C5 ::v91(){vfunc_called(this, "_ZN5S85C53v91Ev");}
void  S85C5 ::v92(){vfunc_called(this, "_ZN5S85C53v92Ev");}
void  S85C5 ::v93(){vfunc_called(this, "_ZN5S85C53v93Ev");}
void  S85C5 ::v94(){vfunc_called(this, "_ZN5S85C53v94Ev");}
void  S85C5 ::v95(){vfunc_called(this, "_ZN5S85C53v95Ev");}
void  S85C5 ::v96(){vfunc_called(this, "_ZN5S85C53v96Ev");}
void  S85C5 ::v97(){vfunc_called(this, "_ZN5S85C53v97Ev");}
void  S85C5 ::v98(){vfunc_called(this, "_ZN5S85C53v98Ev");}
void  S85C5 ::v99(){vfunc_called(this, "_ZN5S85C53v99Ev");}
void  S85C5 ::v100(){vfunc_called(this, "_ZN5S85C54v100Ev");}
void  S85C5 ::v101(){vfunc_called(this, "_ZN5S85C54v101Ev");}
void  S85C5 ::v102(){vfunc_called(this, "_ZN5S85C54v102Ev");}
void  S85C5 ::v103(){vfunc_called(this, "_ZN5S85C54v103Ev");}
void  S85C5 ::v104(){vfunc_called(this, "_ZN5S85C54v104Ev");}
void  S85C5 ::v105(){vfunc_called(this, "_ZN5S85C54v105Ev");}
void  S85C5 ::v106(){vfunc_called(this, "_ZN5S85C54v106Ev");}
void  S85C5 ::v107(){vfunc_called(this, "_ZN5S85C54v107Ev");}
void  S85C5 ::v108(){vfunc_called(this, "_ZN5S85C54v108Ev");}
void  S85C5 ::v109(){vfunc_called(this, "_ZN5S85C54v109Ev");}
void  S85C5 ::v110(){vfunc_called(this, "_ZN5S85C54v110Ev");}
void  S85C5 ::v111(){vfunc_called(this, "_ZN5S85C54v111Ev");}
void  S85C5 ::v112(){vfunc_called(this, "_ZN5S85C54v112Ev");}
void  S85C5 ::v113(){vfunc_called(this, "_ZN5S85C54v113Ev");}
void  S85C5 ::v114(){vfunc_called(this, "_ZN5S85C54v114Ev");}
void  S85C5 ::v115(){vfunc_called(this, "_ZN5S85C54v115Ev");}
void  S85C5 ::v116(){vfunc_called(this, "_ZN5S85C54v116Ev");}
void  S85C5 ::v117(){vfunc_called(this, "_ZN5S85C54v117Ev");}
void  S85C5 ::v118(){vfunc_called(this, "_ZN5S85C54v118Ev");}
void  S85C5 ::v119(){vfunc_called(this, "_ZN5S85C54v119Ev");}
void  S85C5 ::v120(){vfunc_called(this, "_ZN5S85C54v120Ev");}
void  S85C5 ::v121(){vfunc_called(this, "_ZN5S85C54v121Ev");}
void  S85C5 ::v122(){vfunc_called(this, "_ZN5S85C54v122Ev");}
void  S85C5 ::v123(){vfunc_called(this, "_ZN5S85C54v123Ev");}
void  S85C5 ::v124(){vfunc_called(this, "_ZN5S85C54v124Ev");}
void  S85C5 ::v125(){vfunc_called(this, "_ZN5S85C54v125Ev");}
void  S85C5 ::v126(){vfunc_called(this, "_ZN5S85C54v126Ev");}
void  S85C5 ::v127(){vfunc_called(this, "_ZN5S85C54v127Ev");}
void  S85C5 ::v128(){vfunc_called(this, "_ZN5S85C54v128Ev");}
void  S85C5 ::v129(){vfunc_called(this, "_ZN5S85C54v129Ev");}
void  S85C5 ::v130(){vfunc_called(this, "_ZN5S85C54v130Ev");}
void  S85C5 ::v131(){vfunc_called(this, "_ZN5S85C54v131Ev");}
void  S85C5 ::v132(){vfunc_called(this, "_ZN5S85C54v132Ev");}
void  S85C5 ::v133(){vfunc_called(this, "_ZN5S85C54v133Ev");}
void  S85C5 ::v134(){vfunc_called(this, "_ZN5S85C54v134Ev");}
void  S85C5 ::v135(){vfunc_called(this, "_ZN5S85C54v135Ev");}
void  S85C5 ::v136(){vfunc_called(this, "_ZN5S85C54v136Ev");}
void  S85C5 ::v137(){vfunc_called(this, "_ZN5S85C54v137Ev");}
void  S85C5 ::v138(){vfunc_called(this, "_ZN5S85C54v138Ev");}
void  S85C5 ::v139(){vfunc_called(this, "_ZN5S85C54v139Ev");}
void  S85C5 ::v140(){vfunc_called(this, "_ZN5S85C54v140Ev");}
void  S85C5 ::v141(){vfunc_called(this, "_ZN5S85C54v141Ev");}
void  S85C5 ::v142(){vfunc_called(this, "_ZN5S85C54v142Ev");}
void  S85C5 ::v143(){vfunc_called(this, "_ZN5S85C54v143Ev");}
void  S85C5 ::v144(){vfunc_called(this, "_ZN5S85C54v144Ev");}
void  S85C5 ::v145(){vfunc_called(this, "_ZN5S85C54v145Ev");}
S85C5 ::S85C5(){ note_ctor("S85C5", this);} // tgen

static void Test_S85C5()
{
  extern Class_Descriptor cd_S85C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S85C5, buf);
    S85C5 *dp, &lv = *(dp=new (buf) S85C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S85C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C5)");
    check_base_class_offset(lv, (S85C7*)(S85C6*), 0, "S85C5");
    check_base_class_offset(lv, (S85C6*), 0, "S85C5");
    check_field_offset(lv, s85c5f0, ABISELECT(96,60), "S85C5.s85c5f0");
    check_field_offset(lv, s85c5f1, ABISELECT(124,88), "S85C5.s85c5f1");
    set_bf_and_test(lv, s85c5f2, ABISELECT(128,92), 0, 1, 1, "S85C5");
    set_bf_and_test(lv, s85c5f3, ABISELECT(128,92), 1, 1, 1, "S85C5");
    set_bf_and_test(lv, s85c5f4, ABISELECT(128,92), 2, 1, 1, "S85C5");
    set_bf_and_test(lv, s85c5f5, ABISELECT(128,92), 3, 1, 1, "S85C5");
    check_field_offset(lv, s85c5f6, ABISELECT(136,96), "S85C5.s85c5f6");
    check_field_offset(lv, s85c5f7, ABISELECT(152,108), "S85C5.s85c5f7");
    check_field_offset(lv, s85c5f8, ABISELECT(168,120), "S85C5.s85c5f8");
    check_field_offset(lv, s85c5f9, ABISELECT(176,124), "S85C5.s85c5f9");
    check_field_offset(lv, s85c5f10, ABISELECT(192,136), "S85C5.s85c5f10");
    check_field_offset(lv, s85c5f11, ABISELECT(208,148), "S85C5.s85c5f11");
    check_field_offset(lv, s85c5f12, ABISELECT(224,160), "S85C5.s85c5f12");
    check_field_offset(lv, s85c5f13, ABISELECT(240,172), "S85C5.s85c5f13");
    check_field_offset(lv, s85c5f14, ABISELECT(244,176), "S85C5.s85c5f14");
    check_field_offset(lv, s85c5f15, ABISELECT(248,180), "S85C5.s85c5f15");
    check_field_offset(lv, s85c5f16, ABISELECT(256,184), "S85C5.s85c5f16");
    check_field_offset(lv, s85c5f17, ABISELECT(264,192), "S85C5.s85c5f17");
    check_field_offset(lv, s85c5f18, ABISELECT(272,200), "S85C5.s85c5f18");
    check_field_offset(lv, s85c5f19, ABISELECT(280,208), "S85C5.s85c5f19");
    check_field_offset(lv, s85c5f20, ABISELECT(288,216), "S85C5.s85c5f20");
    check_field_offset(lv, s85c5f21, ABISELECT(296,224), "S85C5.s85c5f21");
    check_field_offset(lv, s85c5f22, ABISELECT(304,232), "S85C5.s85c5f22");
    check_field_offset(lv, s85c5f23, ABISELECT(320,244), "S85C5.s85c5f23");
    check_field_offset(lv, s85c5f24, ABISELECT(336,256), "S85C5.s85c5f24");
    check_field_offset(lv, s85c5f25, ABISELECT(352,268), "S85C5.s85c5f25");
    check_field_offset(lv, s85c5f26, ABISELECT(368,280), "S85C5.s85c5f26");
    check_field_offset(lv, s85c5f27, ABISELECT(384,292), "S85C5.s85c5f27");
    check_field_offset(lv, s85c5f28, ABISELECT(400,304), "S85C5.s85c5f28");
    check_field_offset(lv, s85c5f29, ABISELECT(416,316), "S85C5.s85c5f29");
    check_field_offset(lv, s85c5f30, ABISELECT(432,328), "S85C5.s85c5f30");
    check_field_offset(lv, s85c5f31, ABISELECT(448,340), "S85C5.s85c5f31");
    test_class_info(&lv, &cd_S85C5);
    dp->~S85C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C5(Test_S85C5, "S85C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S85C5C1Ev();
extern void _ZN5S85C5D1Ev();
Name_Map name_map_S85C5[] = {
  NSPAIR(_ZN5S85C5C1Ev),
  NSPAIR(_ZN5S85C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S85C7;
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
extern Class_Descriptor cd_S85C6;
extern VTBL_ENTRY _ZTI5S85C6[];
extern  VTBL_ENTRY _ZTV5S85C6[];
static Base_Class bases_S85C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S85C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S85C5[];
extern void _ZN5S85C5D1Ev();
extern void _ZN5S85C5D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
extern void _ZN5S85C63v68Ev();
extern void _ZN5S85C63v69Ev();
extern void _ZN5S85C53v70Ev();
extern void _ZN5S85C53v71Ev();
extern void _ZN5S85C53v72Ev();
extern void _ZN5S85C53v73Ev();
extern void _ZN5S85C53v74Ev();
extern void _ZN5S85C53v75Ev();
extern void _ZN5S85C53v76Ev();
extern void _ZN5S85C53v77Ev();
extern void _ZN5S85C53v78Ev();
extern void _ZN5S85C53v79Ev();
extern void _ZN5S85C53v80Ev();
extern void _ZN5S85C53v81Ev();
extern void _ZN5S85C53v82Ev();
extern void _ZN5S85C53v83Ev();
extern void _ZN5S85C53v84Ev();
extern void _ZN5S85C53v85Ev();
extern void _ZN5S85C53v86Ev();
extern void _ZN5S85C53v87Ev();
extern void _ZN5S85C53v88Ev();
extern void _ZN5S85C53v89Ev();
extern void _ZN5S85C53v90Ev();
extern void _ZN5S85C53v91Ev();
extern void _ZN5S85C53v92Ev();
extern void _ZN5S85C53v93Ev();
extern void _ZN5S85C53v94Ev();
extern void _ZN5S85C53v95Ev();
extern void _ZN5S85C53v96Ev();
extern void _ZN5S85C53v97Ev();
extern void _ZN5S85C53v98Ev();
extern void _ZN5S85C53v99Ev();
extern void _ZN5S85C54v100Ev();
extern void _ZN5S85C54v101Ev();
extern void _ZN5S85C54v102Ev();
extern void _ZN5S85C54v103Ev();
extern void _ZN5S85C54v104Ev();
extern void _ZN5S85C54v105Ev();
extern void _ZN5S85C54v106Ev();
extern void _ZN5S85C54v107Ev();
extern void _ZN5S85C54v108Ev();
extern void _ZN5S85C54v109Ev();
extern void _ZN5S85C54v110Ev();
extern void _ZN5S85C54v111Ev();
extern void _ZN5S85C54v112Ev();
extern void _ZN5S85C54v113Ev();
extern void _ZN5S85C54v114Ev();
extern void _ZN5S85C54v115Ev();
extern void _ZN5S85C54v116Ev();
extern void _ZN5S85C54v117Ev();
extern void _ZN5S85C54v118Ev();
extern void _ZN5S85C54v119Ev();
extern void _ZN5S85C54v120Ev();
extern void _ZN5S85C54v121Ev();
extern void _ZN5S85C54v122Ev();
extern void _ZN5S85C54v123Ev();
extern void _ZN5S85C54v124Ev();
extern void _ZN5S85C54v125Ev();
extern void _ZN5S85C54v126Ev();
extern void _ZN5S85C54v127Ev();
extern void _ZN5S85C54v128Ev();
extern void _ZN5S85C54v129Ev();
extern void _ZN5S85C54v130Ev();
extern void _ZN5S85C54v131Ev();
extern void _ZN5S85C54v132Ev();
extern void _ZN5S85C54v133Ev();
extern void _ZN5S85C54v134Ev();
extern void _ZN5S85C54v135Ev();
extern void _ZN5S85C54v136Ev();
extern void _ZN5S85C54v137Ev();
extern void _ZN5S85C54v138Ev();
extern void _ZN5S85C54v139Ev();
extern void _ZN5S85C54v140Ev();
extern void _ZN5S85C54v141Ev();
extern void _ZN5S85C54v142Ev();
extern void _ZN5S85C54v143Ev();
extern void _ZN5S85C54v144Ev();
extern void _ZN5S85C54v145Ev();
static  VTBL_ENTRY vtc_S85C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C5[0]),
  (VTBL_ENTRY)&_ZN5S85C5D1Ev,
  (VTBL_ENTRY)&_ZN5S85C5D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
  (VTBL_ENTRY)&_ZN5S85C63v68Ev,
  (VTBL_ENTRY)&_ZN5S85C63v69Ev,
  (VTBL_ENTRY)&_ZN5S85C53v70Ev,
  (VTBL_ENTRY)&_ZN5S85C53v71Ev,
  (VTBL_ENTRY)&_ZN5S85C53v72Ev,
  (VTBL_ENTRY)&_ZN5S85C53v73Ev,
  (VTBL_ENTRY)&_ZN5S85C53v74Ev,
  (VTBL_ENTRY)&_ZN5S85C53v75Ev,
  (VTBL_ENTRY)&_ZN5S85C53v76Ev,
  (VTBL_ENTRY)&_ZN5S85C53v77Ev,
  (VTBL_ENTRY)&_ZN5S85C53v78Ev,
  (VTBL_ENTRY)&_ZN5S85C53v79Ev,
  (VTBL_ENTRY)&_ZN5S85C53v80Ev,
  (VTBL_ENTRY)&_ZN5S85C53v81Ev,
  (VTBL_ENTRY)&_ZN5S85C53v82Ev,
  (VTBL_ENTRY)&_ZN5S85C53v83Ev,
  (VTBL_ENTRY)&_ZN5S85C53v84Ev,
  (VTBL_ENTRY)&_ZN5S85C53v85Ev,
  (VTBL_ENTRY)&_ZN5S85C53v86Ev,
  (VTBL_ENTRY)&_ZN5S85C53v87Ev,
  (VTBL_ENTRY)&_ZN5S85C53v88Ev,
  (VTBL_ENTRY)&_ZN5S85C53v89Ev,
  (VTBL_ENTRY)&_ZN5S85C53v90Ev,
  (VTBL_ENTRY)&_ZN5S85C53v91Ev,
  (VTBL_ENTRY)&_ZN5S85C53v92Ev,
  (VTBL_ENTRY)&_ZN5S85C53v93Ev,
  (VTBL_ENTRY)&_ZN5S85C53v94Ev,
  (VTBL_ENTRY)&_ZN5S85C53v95Ev,
  (VTBL_ENTRY)&_ZN5S85C53v96Ev,
  (VTBL_ENTRY)&_ZN5S85C53v97Ev,
  (VTBL_ENTRY)&_ZN5S85C53v98Ev,
  (VTBL_ENTRY)&_ZN5S85C53v99Ev,
  (VTBL_ENTRY)&_ZN5S85C54v100Ev,
  (VTBL_ENTRY)&_ZN5S85C54v101Ev,
  (VTBL_ENTRY)&_ZN5S85C54v102Ev,
  (VTBL_ENTRY)&_ZN5S85C54v103Ev,
  (VTBL_ENTRY)&_ZN5S85C54v104Ev,
  (VTBL_ENTRY)&_ZN5S85C54v105Ev,
  (VTBL_ENTRY)&_ZN5S85C54v106Ev,
  (VTBL_ENTRY)&_ZN5S85C54v107Ev,
  (VTBL_ENTRY)&_ZN5S85C54v108Ev,
  (VTBL_ENTRY)&_ZN5S85C54v109Ev,
  (VTBL_ENTRY)&_ZN5S85C54v110Ev,
  (VTBL_ENTRY)&_ZN5S85C54v111Ev,
  (VTBL_ENTRY)&_ZN5S85C54v112Ev,
  (VTBL_ENTRY)&_ZN5S85C54v113Ev,
  (VTBL_ENTRY)&_ZN5S85C54v114Ev,
  (VTBL_ENTRY)&_ZN5S85C54v115Ev,
  (VTBL_ENTRY)&_ZN5S85C54v116Ev,
  (VTBL_ENTRY)&_ZN5S85C54v117Ev,
  (VTBL_ENTRY)&_ZN5S85C54v118Ev,
  (VTBL_ENTRY)&_ZN5S85C54v119Ev,
  (VTBL_ENTRY)&_ZN5S85C54v120Ev,
  (VTBL_ENTRY)&_ZN5S85C54v121Ev,
  (VTBL_ENTRY)&_ZN5S85C54v122Ev,
  (VTBL_ENTRY)&_ZN5S85C54v123Ev,
  (VTBL_ENTRY)&_ZN5S85C54v124Ev,
  (VTBL_ENTRY)&_ZN5S85C54v125Ev,
  (VTBL_ENTRY)&_ZN5S85C54v126Ev,
  (VTBL_ENTRY)&_ZN5S85C54v127Ev,
  (VTBL_ENTRY)&_ZN5S85C54v128Ev,
  (VTBL_ENTRY)&_ZN5S85C54v129Ev,
  (VTBL_ENTRY)&_ZN5S85C54v130Ev,
  (VTBL_ENTRY)&_ZN5S85C54v131Ev,
  (VTBL_ENTRY)&_ZN5S85C54v132Ev,
  (VTBL_ENTRY)&_ZN5S85C54v133Ev,
  (VTBL_ENTRY)&_ZN5S85C54v134Ev,
  (VTBL_ENTRY)&_ZN5S85C54v135Ev,
  (VTBL_ENTRY)&_ZN5S85C54v136Ev,
  (VTBL_ENTRY)&_ZN5S85C54v137Ev,
  (VTBL_ENTRY)&_ZN5S85C54v138Ev,
  (VTBL_ENTRY)&_ZN5S85C54v139Ev,
  (VTBL_ENTRY)&_ZN5S85C54v140Ev,
  (VTBL_ENTRY)&_ZN5S85C54v141Ev,
  (VTBL_ENTRY)&_ZN5S85C54v142Ev,
  (VTBL_ENTRY)&_ZN5S85C54v143Ev,
  (VTBL_ENTRY)&_ZN5S85C54v144Ev,
  (VTBL_ENTRY)&_ZN5S85C54v145Ev,
};
extern VTBL_ENTRY _ZTI5S85C5[];
extern  VTBL_ENTRY _ZTV5S85C5[];
Class_Descriptor cd_S85C5 = {  "S85C5", // class name
  bases_S85C5, 2,
  &(vtc_S85C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S85C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S85C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C23  : S80C12_nt {
};
//SIG(-1 S85C23) C1{ BC2{ m Fp Fi[2]}}



static void Test_S85C23()
{
  extern Class_Descriptor cd_S85C23;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S85C23, buf);
    S85C23 &lv = *(new (buf) S85C23());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S85C23)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C23)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S85C23");
    test_class_info(&lv, &cd_S85C23);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C23(Test_S85C23, "S85C23", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S85C23[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S85C23 = {  "S85C23", // class name
  bases_S85C23, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C22_nt  : S85C23 {
};
//SIG(-1 S85C22_nt) C1{ BC2{ BC3{ m Fp Fi[2]}}}



//skip512 S85C22_nt

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S85C23;
static Base_Class bases_S85C22_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C23,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C27_nt  {
  int s85c27f0[2];
  void  mf85c27(); // _ZN9S85C27_nt7mf85c27Ev
};
//SIG(-1 S85C27_nt) C1{ m Fi[2]}


void  S85C27_nt ::mf85c27(){}

//skip512 S85C27_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C4  : S85C5 {
  ::S80C8_nt s85c4f0;
  void *s85c4f1[9];
  ::S85C22_nt s85c4f2;
  ::S80C31 s85c4f3;
  ::S80C24 s85c4f4;
  int s85c4f5;
  unsigned int s85c4f6:1;
  unsigned int s85c4f7:1;
  unsigned int s85c4f8:1;
  unsigned int s85c4f9:1;
  unsigned int s85c4f10:1;
  unsigned int s85c4f11:1;
  unsigned int s85c4f12:1;
  unsigned int s85c4f13:1;
  unsigned int s85c4f14:1;
  unsigned int s85c4f15:1;
  unsigned int s85c4f16:1;
  unsigned int s85c4f17:1;
  unsigned int s85c4f18:1;
  unsigned int s85c4f19:1;
  unsigned int s85c4f20:1;
  unsigned int s85c4f21:1;
  unsigned int s85c4f22:1;
  unsigned int s85c4f23:1;
  unsigned int s85c4f24:1;
  unsigned int s85c4f25:1;
  unsigned int s85c4f26:1;
  unsigned int s85c4f27:1;
  void *s85c4f28;
  char s85c4f29[2];
  ::S85C27_nt s85c4f30;
  ::S80C8_nt s85c4f31;
  ::S80C8_nt s85c4f32;
  void *s85c4f33;
  ::S80C21_nt s85c4f34;
  ::S80C21_nt s85c4f35;
  ::S80C21_nt s85c4f36;
  ::S80C21_nt s85c4f37;
  ::S80C21_nt s85c4f38;
  virtual  ~S85C4(); // _ZN5S85C4D1Ev
  virtual void  v146(); // _ZN5S85C44v146Ev
  virtual void  v147(); // _ZN5S85C44v147Ev
  virtual void  v148(); // _ZN5S85C44v148Ev
  virtual void  v149(); // _ZN5S85C44v149Ev
  virtual void  v150(); // _ZN5S85C44v150Ev
  virtual void  v151(); // _ZN5S85C44v151Ev
  virtual void  v152(); // _ZN5S85C44v152Ev
  virtual void  v153(); // _ZN5S85C44v153Ev
  virtual void  v154(); // _ZN5S85C44v154Ev
  virtual void  v155(); // _ZN5S85C44v155Ev
  virtual void  v156(); // _ZN5S85C44v156Ev
  virtual void  v157(); // _ZN5S85C44v157Ev
  virtual void  v158(); // _ZN5S85C44v158Ev
  virtual void  v159(); // _ZN5S85C44v159Ev
  virtual void  v160(); // _ZN5S85C44v160Ev
  virtual void  v161(); // _ZN5S85C44v161Ev
  virtual void  v162(); // _ZN5S85C44v162Ev
  virtual void  v163(); // _ZN5S85C44v163Ev
  virtual void  v164(); // _ZN5S85C44v164Ev
  virtual void  v165(); // _ZN5S85C44v165Ev
  virtual void  v166(); // _ZN5S85C44v166Ev
  virtual void  v167(); // _ZN5S85C44v167Ev
  virtual void  v168(); // _ZN5S85C44v168Ev
  virtual void  v169(); // _ZN5S85C44v169Ev
  virtual void  v170(); // _ZN5S85C44v170Ev
  virtual void  v171(); // _ZN5S85C44v171Ev
  virtual void  v172(); // _ZN5S85C44v172Ev
  virtual void  v173(); // _ZN5S85C44v173Ev
  virtual void  v174(); // _ZN5S85C44v174Ev
  virtual void  v175(); // _ZN5S85C44v175Ev
  virtual void  v176(); // _ZN5S85C44v176Ev
  virtual void  v177(); // _ZN5S85C44v177Ev
  virtual void  v178(); // _ZN5S85C44v178Ev
  virtual void  v179(); // _ZN5S85C44v179Ev
  virtual void  v180(); // _ZN5S85C44v180Ev
  virtual void  v181(); // _ZN5S85C44v181Ev
  virtual void  v182(); // _ZN5S85C44v182Ev
  virtual void  v183(); // _ZN5S85C44v183Ev
  virtual void  v184(); // _ZN5S85C44v184Ev
  S85C4(); // tgen
};
//SIG(-1 S85C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC5} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC19{ BC20{ BC9}} FC7 FC21{ BC22{ m FC23{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC24{ m Fi[2]} FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S85C4 ::~S85C4(){ note_dtor("S85C4", this);}
void  S85C4 ::v146(){vfunc_called(this, "_ZN5S85C44v146Ev");}
void  S85C4 ::v147(){vfunc_called(this, "_ZN5S85C44v147Ev");}
void  S85C4 ::v148(){vfunc_called(this, "_ZN5S85C44v148Ev");}
void  S85C4 ::v149(){vfunc_called(this, "_ZN5S85C44v149Ev");}
void  S85C4 ::v150(){vfunc_called(this, "_ZN5S85C44v150Ev");}
void  S85C4 ::v151(){vfunc_called(this, "_ZN5S85C44v151Ev");}
void  S85C4 ::v152(){vfunc_called(this, "_ZN5S85C44v152Ev");}
void  S85C4 ::v153(){vfunc_called(this, "_ZN5S85C44v153Ev");}
void  S85C4 ::v154(){vfunc_called(this, "_ZN5S85C44v154Ev");}
void  S85C4 ::v155(){vfunc_called(this, "_ZN5S85C44v155Ev");}
void  S85C4 ::v156(){vfunc_called(this, "_ZN5S85C44v156Ev");}
void  S85C4 ::v157(){vfunc_called(this, "_ZN5S85C44v157Ev");}
void  S85C4 ::v158(){vfunc_called(this, "_ZN5S85C44v158Ev");}
void  S85C4 ::v159(){vfunc_called(this, "_ZN5S85C44v159Ev");}
void  S85C4 ::v160(){vfunc_called(this, "_ZN5S85C44v160Ev");}
void  S85C4 ::v161(){vfunc_called(this, "_ZN5S85C44v161Ev");}
void  S85C4 ::v162(){vfunc_called(this, "_ZN5S85C44v162Ev");}
void  S85C4 ::v163(){vfunc_called(this, "_ZN5S85C44v163Ev");}
void  S85C4 ::v164(){vfunc_called(this, "_ZN5S85C44v164Ev");}
void  S85C4 ::v165(){vfunc_called(this, "_ZN5S85C44v165Ev");}
void  S85C4 ::v166(){vfunc_called(this, "_ZN5S85C44v166Ev");}
void  S85C4 ::v167(){vfunc_called(this, "_ZN5S85C44v167Ev");}
void  S85C4 ::v168(){vfunc_called(this, "_ZN5S85C44v168Ev");}
void  S85C4 ::v169(){vfunc_called(this, "_ZN5S85C44v169Ev");}
void  S85C4 ::v170(){vfunc_called(this, "_ZN5S85C44v170Ev");}
void  S85C4 ::v171(){vfunc_called(this, "_ZN5S85C44v171Ev");}
void  S85C4 ::v172(){vfunc_called(this, "_ZN5S85C44v172Ev");}
void  S85C4 ::v173(){vfunc_called(this, "_ZN5S85C44v173Ev");}
void  S85C4 ::v174(){vfunc_called(this, "_ZN5S85C44v174Ev");}
void  S85C4 ::v175(){vfunc_called(this, "_ZN5S85C44v175Ev");}
void  S85C4 ::v176(){vfunc_called(this, "_ZN5S85C44v176Ev");}
void  S85C4 ::v177(){vfunc_called(this, "_ZN5S85C44v177Ev");}
void  S85C4 ::v178(){vfunc_called(this, "_ZN5S85C44v178Ev");}
void  S85C4 ::v179(){vfunc_called(this, "_ZN5S85C44v179Ev");}
void  S85C4 ::v180(){vfunc_called(this, "_ZN5S85C44v180Ev");}
void  S85C4 ::v181(){vfunc_called(this, "_ZN5S85C44v181Ev");}
void  S85C4 ::v182(){vfunc_called(this, "_ZN5S85C44v182Ev");}
void  S85C4 ::v183(){vfunc_called(this, "_ZN5S85C44v183Ev");}
void  S85C4 ::v184(){vfunc_called(this, "_ZN5S85C44v184Ev");}
S85C4 ::S85C4(){ note_ctor("S85C4", this);} // tgen

static void Test_S85C4()
{
  extern Class_Descriptor cd_S85C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S85C4, buf);
    S85C4 *dp, &lv = *(dp=new (buf) S85C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S85C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C4)");
    check_base_class_offset(lv, (S85C7*)(S85C6*)(S85C5*), 0, "S85C4");
    check_base_class_offset(lv, (S85C6*)(S85C5*), 0, "S85C4");
    check_base_class_offset(lv, (S85C5*), 0, "S85C4");
    check_field_offset(lv, s85c4f0, ABISELECT(464,352), "S85C4.s85c4f0");
    check_field_offset(lv, s85c4f1, ABISELECT(472,360), "S85C4.s85c4f1");
    check_field_offset(lv, s85c4f2, ABISELECT(544,396), "S85C4.s85c4f2");
    check_field_offset(lv, s85c4f3, ABISELECT(560,408), "S85C4.s85c4f3");
    check_field_offset(lv, s85c4f4, ABISELECT(576,420), "S85C4.s85c4f4");
    check_field_offset(lv, s85c4f5, ABISELECT(608,440), "S85C4.s85c4f5");
    set_bf_and_test(lv, s85c4f6, ABISELECT(612,444), 0, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f7, ABISELECT(612,444), 1, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f8, ABISELECT(612,444), 2, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f9, ABISELECT(612,444), 3, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f10, ABISELECT(612,444), 4, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f11, ABISELECT(612,444), 5, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f12, ABISELECT(612,444), 6, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f13, ABISELECT(612,444), 7, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f14, ABISELECT(613,445), 0, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f15, ABISELECT(613,445), 1, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f16, ABISELECT(613,445), 2, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f17, ABISELECT(613,445), 3, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f18, ABISELECT(613,445), 4, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f19, ABISELECT(613,445), 5, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f20, ABISELECT(613,445), 6, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f21, ABISELECT(613,445), 7, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f22, ABISELECT(614,446), 0, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f23, ABISELECT(614,446), 1, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f24, ABISELECT(614,446), 2, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f25, ABISELECT(614,446), 3, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f26, ABISELECT(614,446), 4, 1, 1, "S85C4");
    set_bf_and_test(lv, s85c4f27, ABISELECT(614,446), 5, 1, 1, "S85C4");
    check_field_offset(lv, s85c4f28, ABISELECT(616,448), "S85C4.s85c4f28");
    check_field_offset(lv, s85c4f29, ABISELECT(624,452), "S85C4.s85c4f29");
    check_field_offset(lv, s85c4f30, ABISELECT(628,456), "S85C4.s85c4f30");
    check_field_offset(lv, s85c4f31, ABISELECT(636,464), "S85C4.s85c4f31");
    check_field_offset(lv, s85c4f32, ABISELECT(644,472), "S85C4.s85c4f32");
    check_field_offset(lv, s85c4f33, ABISELECT(656,480), "S85C4.s85c4f33");
    check_field_offset(lv, s85c4f34, ABISELECT(664,484), "S85C4.s85c4f34");
    check_field_offset(lv, s85c4f35, ABISELECT(680,496), "S85C4.s85c4f35");
    check_field_offset(lv, s85c4f36, ABISELECT(696,508), "S85C4.s85c4f36");
    check_field_offset(lv, s85c4f37, ABISELECT(712,520), "S85C4.s85c4f37");
    check_field_offset(lv, s85c4f38, ABISELECT(728,532), "S85C4.s85c4f38");
    test_class_info(&lv, &cd_S85C4);
    dp->~S85C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C4(Test_S85C4, "S85C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S85C4C1Ev();
extern void _ZN5S85C4D1Ev();
Name_Map name_map_S85C4[] = {
  NSPAIR(_ZN5S85C4C1Ev),
  NSPAIR(_ZN5S85C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S85C7;
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
extern Class_Descriptor cd_S85C6;
extern VTBL_ENTRY _ZTI5S85C6[];
extern  VTBL_ENTRY _ZTV5S85C6[];
extern Class_Descriptor cd_S85C5;
extern VTBL_ENTRY _ZTI5S85C5[];
extern  VTBL_ENTRY _ZTV5S85C5[];
static Base_Class bases_S85C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S85C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S85C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S85C4[];
extern void _ZN5S85C4D1Ev();
extern void _ZN5S85C4D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
extern void _ZN5S85C63v68Ev();
extern void _ZN5S85C63v69Ev();
extern void _ZN5S85C53v70Ev();
extern void _ZN5S85C53v71Ev();
extern void _ZN5S85C53v72Ev();
extern void _ZN5S85C53v73Ev();
extern void _ZN5S85C53v74Ev();
extern void _ZN5S85C53v75Ev();
extern void _ZN5S85C53v76Ev();
extern void _ZN5S85C53v77Ev();
extern void _ZN5S85C53v78Ev();
extern void _ZN5S85C53v79Ev();
extern void _ZN5S85C53v80Ev();
extern void _ZN5S85C53v81Ev();
extern void _ZN5S85C53v82Ev();
extern void _ZN5S85C53v83Ev();
extern void _ZN5S85C53v84Ev();
extern void _ZN5S85C53v85Ev();
extern void _ZN5S85C53v86Ev();
extern void _ZN5S85C53v87Ev();
extern void _ZN5S85C53v88Ev();
extern void _ZN5S85C53v89Ev();
extern void _ZN5S85C53v90Ev();
extern void _ZN5S85C53v91Ev();
extern void _ZN5S85C53v92Ev();
extern void _ZN5S85C53v93Ev();
extern void _ZN5S85C53v94Ev();
extern void _ZN5S85C53v95Ev();
extern void _ZN5S85C53v96Ev();
extern void _ZN5S85C53v97Ev();
extern void _ZN5S85C53v98Ev();
extern void _ZN5S85C53v99Ev();
extern void _ZN5S85C54v100Ev();
extern void _ZN5S85C54v101Ev();
extern void _ZN5S85C54v102Ev();
extern void _ZN5S85C54v103Ev();
extern void _ZN5S85C54v104Ev();
extern void _ZN5S85C54v105Ev();
extern void _ZN5S85C54v106Ev();
extern void _ZN5S85C54v107Ev();
extern void _ZN5S85C54v108Ev();
extern void _ZN5S85C54v109Ev();
extern void _ZN5S85C54v110Ev();
extern void _ZN5S85C54v111Ev();
extern void _ZN5S85C54v112Ev();
extern void _ZN5S85C54v113Ev();
extern void _ZN5S85C54v114Ev();
extern void _ZN5S85C54v115Ev();
extern void _ZN5S85C54v116Ev();
extern void _ZN5S85C54v117Ev();
extern void _ZN5S85C54v118Ev();
extern void _ZN5S85C54v119Ev();
extern void _ZN5S85C54v120Ev();
extern void _ZN5S85C54v121Ev();
extern void _ZN5S85C54v122Ev();
extern void _ZN5S85C54v123Ev();
extern void _ZN5S85C54v124Ev();
extern void _ZN5S85C54v125Ev();
extern void _ZN5S85C54v126Ev();
extern void _ZN5S85C54v127Ev();
extern void _ZN5S85C54v128Ev();
extern void _ZN5S85C54v129Ev();
extern void _ZN5S85C54v130Ev();
extern void _ZN5S85C54v131Ev();
extern void _ZN5S85C54v132Ev();
extern void _ZN5S85C54v133Ev();
extern void _ZN5S85C54v134Ev();
extern void _ZN5S85C54v135Ev();
extern void _ZN5S85C54v136Ev();
extern void _ZN5S85C54v137Ev();
extern void _ZN5S85C54v138Ev();
extern void _ZN5S85C54v139Ev();
extern void _ZN5S85C54v140Ev();
extern void _ZN5S85C54v141Ev();
extern void _ZN5S85C54v142Ev();
extern void _ZN5S85C54v143Ev();
extern void _ZN5S85C54v144Ev();
extern void _ZN5S85C54v145Ev();
extern void _ZN5S85C44v146Ev();
extern void _ZN5S85C44v147Ev();
extern void _ZN5S85C44v148Ev();
extern void _ZN5S85C44v149Ev();
extern void _ZN5S85C44v150Ev();
extern void _ZN5S85C44v151Ev();
extern void _ZN5S85C44v152Ev();
extern void _ZN5S85C44v153Ev();
extern void _ZN5S85C44v154Ev();
extern void _ZN5S85C44v155Ev();
extern void _ZN5S85C44v156Ev();
extern void _ZN5S85C44v157Ev();
extern void _ZN5S85C44v158Ev();
extern void _ZN5S85C44v159Ev();
extern void _ZN5S85C44v160Ev();
extern void _ZN5S85C44v161Ev();
extern void _ZN5S85C44v162Ev();
extern void _ZN5S85C44v163Ev();
extern void _ZN5S85C44v164Ev();
extern void _ZN5S85C44v165Ev();
extern void _ZN5S85C44v166Ev();
extern void _ZN5S85C44v167Ev();
extern void _ZN5S85C44v168Ev();
extern void _ZN5S85C44v169Ev();
extern void _ZN5S85C44v170Ev();
extern void _ZN5S85C44v171Ev();
extern void _ZN5S85C44v172Ev();
extern void _ZN5S85C44v173Ev();
extern void _ZN5S85C44v174Ev();
extern void _ZN5S85C44v175Ev();
extern void _ZN5S85C44v176Ev();
extern void _ZN5S85C44v177Ev();
extern void _ZN5S85C44v178Ev();
extern void _ZN5S85C44v179Ev();
extern void _ZN5S85C44v180Ev();
extern void _ZN5S85C44v181Ev();
extern void _ZN5S85C44v182Ev();
extern void _ZN5S85C44v183Ev();
extern void _ZN5S85C44v184Ev();
static  VTBL_ENTRY vtc_S85C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C4[0]),
  (VTBL_ENTRY)&_ZN5S85C4D1Ev,
  (VTBL_ENTRY)&_ZN5S85C4D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
  (VTBL_ENTRY)&_ZN5S85C63v68Ev,
  (VTBL_ENTRY)&_ZN5S85C63v69Ev,
  (VTBL_ENTRY)&_ZN5S85C53v70Ev,
  (VTBL_ENTRY)&_ZN5S85C53v71Ev,
  (VTBL_ENTRY)&_ZN5S85C53v72Ev,
  (VTBL_ENTRY)&_ZN5S85C53v73Ev,
  (VTBL_ENTRY)&_ZN5S85C53v74Ev,
  (VTBL_ENTRY)&_ZN5S85C53v75Ev,
  (VTBL_ENTRY)&_ZN5S85C53v76Ev,
  (VTBL_ENTRY)&_ZN5S85C53v77Ev,
  (VTBL_ENTRY)&_ZN5S85C53v78Ev,
  (VTBL_ENTRY)&_ZN5S85C53v79Ev,
  (VTBL_ENTRY)&_ZN5S85C53v80Ev,
  (VTBL_ENTRY)&_ZN5S85C53v81Ev,
  (VTBL_ENTRY)&_ZN5S85C53v82Ev,
  (VTBL_ENTRY)&_ZN5S85C53v83Ev,
  (VTBL_ENTRY)&_ZN5S85C53v84Ev,
  (VTBL_ENTRY)&_ZN5S85C53v85Ev,
  (VTBL_ENTRY)&_ZN5S85C53v86Ev,
  (VTBL_ENTRY)&_ZN5S85C53v87Ev,
  (VTBL_ENTRY)&_ZN5S85C53v88Ev,
  (VTBL_ENTRY)&_ZN5S85C53v89Ev,
  (VTBL_ENTRY)&_ZN5S85C53v90Ev,
  (VTBL_ENTRY)&_ZN5S85C53v91Ev,
  (VTBL_ENTRY)&_ZN5S85C53v92Ev,
  (VTBL_ENTRY)&_ZN5S85C53v93Ev,
  (VTBL_ENTRY)&_ZN5S85C53v94Ev,
  (VTBL_ENTRY)&_ZN5S85C53v95Ev,
  (VTBL_ENTRY)&_ZN5S85C53v96Ev,
  (VTBL_ENTRY)&_ZN5S85C53v97Ev,
  (VTBL_ENTRY)&_ZN5S85C53v98Ev,
  (VTBL_ENTRY)&_ZN5S85C53v99Ev,
  (VTBL_ENTRY)&_ZN5S85C54v100Ev,
  (VTBL_ENTRY)&_ZN5S85C54v101Ev,
  (VTBL_ENTRY)&_ZN5S85C54v102Ev,
  (VTBL_ENTRY)&_ZN5S85C54v103Ev,
  (VTBL_ENTRY)&_ZN5S85C54v104Ev,
  (VTBL_ENTRY)&_ZN5S85C54v105Ev,
  (VTBL_ENTRY)&_ZN5S85C54v106Ev,
  (VTBL_ENTRY)&_ZN5S85C54v107Ev,
  (VTBL_ENTRY)&_ZN5S85C54v108Ev,
  (VTBL_ENTRY)&_ZN5S85C54v109Ev,
  (VTBL_ENTRY)&_ZN5S85C54v110Ev,
  (VTBL_ENTRY)&_ZN5S85C54v111Ev,
  (VTBL_ENTRY)&_ZN5S85C54v112Ev,
  (VTBL_ENTRY)&_ZN5S85C54v113Ev,
  (VTBL_ENTRY)&_ZN5S85C54v114Ev,
  (VTBL_ENTRY)&_ZN5S85C54v115Ev,
  (VTBL_ENTRY)&_ZN5S85C54v116Ev,
  (VTBL_ENTRY)&_ZN5S85C54v117Ev,
  (VTBL_ENTRY)&_ZN5S85C54v118Ev,
  (VTBL_ENTRY)&_ZN5S85C54v119Ev,
  (VTBL_ENTRY)&_ZN5S85C54v120Ev,
  (VTBL_ENTRY)&_ZN5S85C54v121Ev,
  (VTBL_ENTRY)&_ZN5S85C54v122Ev,
  (VTBL_ENTRY)&_ZN5S85C54v123Ev,
  (VTBL_ENTRY)&_ZN5S85C54v124Ev,
  (VTBL_ENTRY)&_ZN5S85C54v125Ev,
  (VTBL_ENTRY)&_ZN5S85C54v126Ev,
  (VTBL_ENTRY)&_ZN5S85C54v127Ev,
  (VTBL_ENTRY)&_ZN5S85C54v128Ev,
  (VTBL_ENTRY)&_ZN5S85C54v129Ev,
  (VTBL_ENTRY)&_ZN5S85C54v130Ev,
  (VTBL_ENTRY)&_ZN5S85C54v131Ev,
  (VTBL_ENTRY)&_ZN5S85C54v132Ev,
  (VTBL_ENTRY)&_ZN5S85C54v133Ev,
  (VTBL_ENTRY)&_ZN5S85C54v134Ev,
  (VTBL_ENTRY)&_ZN5S85C54v135Ev,
  (VTBL_ENTRY)&_ZN5S85C54v136Ev,
  (VTBL_ENTRY)&_ZN5S85C54v137Ev,
  (VTBL_ENTRY)&_ZN5S85C54v138Ev,
  (VTBL_ENTRY)&_ZN5S85C54v139Ev,
  (VTBL_ENTRY)&_ZN5S85C54v140Ev,
  (VTBL_ENTRY)&_ZN5S85C54v141Ev,
  (VTBL_ENTRY)&_ZN5S85C54v142Ev,
  (VTBL_ENTRY)&_ZN5S85C54v143Ev,
  (VTBL_ENTRY)&_ZN5S85C54v144Ev,
  (VTBL_ENTRY)&_ZN5S85C54v145Ev,
  (VTBL_ENTRY)&_ZN5S85C44v146Ev,
  (VTBL_ENTRY)&_ZN5S85C44v147Ev,
  (VTBL_ENTRY)&_ZN5S85C44v148Ev,
  (VTBL_ENTRY)&_ZN5S85C44v149Ev,
  (VTBL_ENTRY)&_ZN5S85C44v150Ev,
  (VTBL_ENTRY)&_ZN5S85C44v151Ev,
  (VTBL_ENTRY)&_ZN5S85C44v152Ev,
  (VTBL_ENTRY)&_ZN5S85C44v153Ev,
  (VTBL_ENTRY)&_ZN5S85C44v154Ev,
  (VTBL_ENTRY)&_ZN5S85C44v155Ev,
  (VTBL_ENTRY)&_ZN5S85C44v156Ev,
  (VTBL_ENTRY)&_ZN5S85C44v157Ev,
  (VTBL_ENTRY)&_ZN5S85C44v158Ev,
  (VTBL_ENTRY)&_ZN5S85C44v159Ev,
  (VTBL_ENTRY)&_ZN5S85C44v160Ev,
  (VTBL_ENTRY)&_ZN5S85C44v161Ev,
  (VTBL_ENTRY)&_ZN5S85C44v162Ev,
  (VTBL_ENTRY)&_ZN5S85C44v163Ev,
  (VTBL_ENTRY)&_ZN5S85C44v164Ev,
  (VTBL_ENTRY)&_ZN5S85C44v165Ev,
  (VTBL_ENTRY)&_ZN5S85C44v166Ev,
  (VTBL_ENTRY)&_ZN5S85C44v167Ev,
  (VTBL_ENTRY)&_ZN5S85C44v168Ev,
  (VTBL_ENTRY)&_ZN5S85C44v169Ev,
  (VTBL_ENTRY)&_ZN5S85C44v170Ev,
  (VTBL_ENTRY)&_ZN5S85C44v171Ev,
  (VTBL_ENTRY)&_ZN5S85C44v172Ev,
  (VTBL_ENTRY)&_ZN5S85C44v173Ev,
  (VTBL_ENTRY)&_ZN5S85C44v174Ev,
  (VTBL_ENTRY)&_ZN5S85C44v175Ev,
  (VTBL_ENTRY)&_ZN5S85C44v176Ev,
  (VTBL_ENTRY)&_ZN5S85C44v177Ev,
  (VTBL_ENTRY)&_ZN5S85C44v178Ev,
  (VTBL_ENTRY)&_ZN5S85C44v179Ev,
  (VTBL_ENTRY)&_ZN5S85C44v180Ev,
  (VTBL_ENTRY)&_ZN5S85C44v181Ev,
  (VTBL_ENTRY)&_ZN5S85C44v182Ev,
  (VTBL_ENTRY)&_ZN5S85C44v183Ev,
  (VTBL_ENTRY)&_ZN5S85C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S85C4[];
extern  VTBL_ENTRY _ZTV5S85C4[];
Class_Descriptor cd_S85C4 = {  "S85C4", // class name
  bases_S85C4, 3,
  &(vtc_S85C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S85C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S85C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C3  : S85C4 {
  unsigned int s85c3f0:1;
  unsigned int s85c3f1:1;
  unsigned int s85c3f2:1;
  unsigned int s85c3f3:1;
  unsigned int s85c3f4:1;
  unsigned int s85c3f5:1;
  void *s85c3f6[8];
  ::S80C21_nt s85c3f7;
  ::S80C21_nt s85c3f8;
  ::S80C21_nt s85c3f9;
  virtual  ~S85C3(); // _ZN5S85C3D1Ev
  virtual void  v185(); // _ZN5S85C34v185Ev
  virtual void  v186(); // _ZN5S85C34v186Ev
  virtual void  v187(); // _ZN5S85C34v187Ev
  virtual void  v188(); // _ZN5S85C34v188Ev
  virtual void  v189(); // _ZN5S85C34v189Ev
  virtual void  v190(); // _ZN5S85C34v190Ev
  virtual void  v191(); // _ZN5S85C34v191Ev
  virtual void  v192(); // _ZN5S85C34v192Ev
  virtual void  v193(); // _ZN5S85C34v193Ev
  virtual void  v194(); // _ZN5S85C34v194Ev
  virtual void  v195(); // _ZN5S85C34v195Ev
  virtual void  v196(); // _ZN5S85C34v196Ev
  virtual void  v197(); // _ZN5S85C34v197Ev
  virtual void  v198(); // _ZN5S85C34v198Ev
  virtual void  v199(); // _ZN5S85C34v199Ev
  virtual void  v200(); // _ZN5S85C34v200Ev
  virtual void  v201(); // _ZN5S85C34v201Ev
  virtual void  v202(); // _ZN5S85C34v202Ev
  virtual void  v203(); // _ZN5S85C34v203Ev
  virtual void  v204(); // _ZN5S85C34v204Ev
  virtual void  v205(); // _ZN5S85C34v205Ev
  virtual void  v206(); // _ZN5S85C34v206Ev
  virtual void  v207(); // _ZN5S85C34v207Ev
  S85C3(); // tgen
};
//SIG(-1 S85C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC6} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC20{ BC21{ BC10}} FC8 FC22{ BC23{ m FC24{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC25{ m Fi[2]} FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S85C3 ::~S85C3(){ note_dtor("S85C3", this);}
void  S85C3 ::v185(){vfunc_called(this, "_ZN5S85C34v185Ev");}
void  S85C3 ::v186(){vfunc_called(this, "_ZN5S85C34v186Ev");}
void  S85C3 ::v187(){vfunc_called(this, "_ZN5S85C34v187Ev");}
void  S85C3 ::v188(){vfunc_called(this, "_ZN5S85C34v188Ev");}
void  S85C3 ::v189(){vfunc_called(this, "_ZN5S85C34v189Ev");}
void  S85C3 ::v190(){vfunc_called(this, "_ZN5S85C34v190Ev");}
void  S85C3 ::v191(){vfunc_called(this, "_ZN5S85C34v191Ev");}
void  S85C3 ::v192(){vfunc_called(this, "_ZN5S85C34v192Ev");}
void  S85C3 ::v193(){vfunc_called(this, "_ZN5S85C34v193Ev");}
void  S85C3 ::v194(){vfunc_called(this, "_ZN5S85C34v194Ev");}
void  S85C3 ::v195(){vfunc_called(this, "_ZN5S85C34v195Ev");}
void  S85C3 ::v196(){vfunc_called(this, "_ZN5S85C34v196Ev");}
void  S85C3 ::v197(){vfunc_called(this, "_ZN5S85C34v197Ev");}
void  S85C3 ::v198(){vfunc_called(this, "_ZN5S85C34v198Ev");}
void  S85C3 ::v199(){vfunc_called(this, "_ZN5S85C34v199Ev");}
void  S85C3 ::v200(){vfunc_called(this, "_ZN5S85C34v200Ev");}
void  S85C3 ::v201(){vfunc_called(this, "_ZN5S85C34v201Ev");}
void  S85C3 ::v202(){vfunc_called(this, "_ZN5S85C34v202Ev");}
void  S85C3 ::v203(){vfunc_called(this, "_ZN5S85C34v203Ev");}
void  S85C3 ::v204(){vfunc_called(this, "_ZN5S85C34v204Ev");}
void  S85C3 ::v205(){vfunc_called(this, "_ZN5S85C34v205Ev");}
void  S85C3 ::v206(){vfunc_called(this, "_ZN5S85C34v206Ev");}
void  S85C3 ::v207(){vfunc_called(this, "_ZN5S85C34v207Ev");}
S85C3 ::S85C3(){ note_ctor("S85C3", this);} // tgen

static void Test_S85C3()
{
  extern Class_Descriptor cd_S85C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S85C3, buf);
    S85C3 *dp, &lv = *(dp=new (buf) S85C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S85C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C3)");
    check_base_class_offset(lv, (S85C7*)(S85C6*)(S85C5*)(S85C4*), 0, "S85C3");
    check_base_class_offset(lv, (S85C6*)(S85C5*)(S85C4*), 0, "S85C3");
    check_base_class_offset(lv, (S85C5*)(S85C4*), 0, "S85C3");
    check_base_class_offset(lv, (S85C4*), 0, "S85C3");
    set_bf_and_test(lv, s85c3f0, ABISELECT(744,544), 0, 1, 1, "S85C3");
    set_bf_and_test(lv, s85c3f1, ABISELECT(744,544), 1, 1, 1, "S85C3");
    set_bf_and_test(lv, s85c3f2, ABISELECT(744,544), 2, 1, 1, "S85C3");
    set_bf_and_test(lv, s85c3f3, ABISELECT(744,544), 3, 1, 1, "S85C3");
    set_bf_and_test(lv, s85c3f4, ABISELECT(744,544), 4, 1, 1, "S85C3");
    set_bf_and_test(lv, s85c3f5, ABISELECT(744,544), 5, 1, 1, "S85C3");
    check_field_offset(lv, s85c3f6, ABISELECT(752,548), "S85C3.s85c3f6");
    check_field_offset(lv, s85c3f7, ABISELECT(816,580), "S85C3.s85c3f7");
    check_field_offset(lv, s85c3f8, ABISELECT(832,592), "S85C3.s85c3f8");
    check_field_offset(lv, s85c3f9, ABISELECT(848,604), "S85C3.s85c3f9");
    test_class_info(&lv, &cd_S85C3);
    dp->~S85C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C3(Test_S85C3, "S85C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S85C3C1Ev();
extern void _ZN5S85C3D1Ev();
Name_Map name_map_S85C3[] = {
  NSPAIR(_ZN5S85C3C1Ev),
  NSPAIR(_ZN5S85C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S85C7;
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
extern Class_Descriptor cd_S85C6;
extern VTBL_ENTRY _ZTI5S85C6[];
extern  VTBL_ENTRY _ZTV5S85C6[];
extern Class_Descriptor cd_S85C5;
extern VTBL_ENTRY _ZTI5S85C5[];
extern  VTBL_ENTRY _ZTV5S85C5[];
extern Class_Descriptor cd_S85C4;
extern VTBL_ENTRY _ZTI5S85C4[];
extern  VTBL_ENTRY _ZTV5S85C4[];
static Base_Class bases_S85C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S85C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S85C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S85C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S85C3[];
extern void _ZN5S85C3D1Ev();
extern void _ZN5S85C3D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
extern void _ZN5S85C63v68Ev();
extern void _ZN5S85C63v69Ev();
extern void _ZN5S85C53v70Ev();
extern void _ZN5S85C53v71Ev();
extern void _ZN5S85C53v72Ev();
extern void _ZN5S85C53v73Ev();
extern void _ZN5S85C53v74Ev();
extern void _ZN5S85C53v75Ev();
extern void _ZN5S85C53v76Ev();
extern void _ZN5S85C53v77Ev();
extern void _ZN5S85C53v78Ev();
extern void _ZN5S85C53v79Ev();
extern void _ZN5S85C53v80Ev();
extern void _ZN5S85C53v81Ev();
extern void _ZN5S85C53v82Ev();
extern void _ZN5S85C53v83Ev();
extern void _ZN5S85C53v84Ev();
extern void _ZN5S85C53v85Ev();
extern void _ZN5S85C53v86Ev();
extern void _ZN5S85C53v87Ev();
extern void _ZN5S85C53v88Ev();
extern void _ZN5S85C53v89Ev();
extern void _ZN5S85C53v90Ev();
extern void _ZN5S85C53v91Ev();
extern void _ZN5S85C53v92Ev();
extern void _ZN5S85C53v93Ev();
extern void _ZN5S85C53v94Ev();
extern void _ZN5S85C53v95Ev();
extern void _ZN5S85C53v96Ev();
extern void _ZN5S85C53v97Ev();
extern void _ZN5S85C53v98Ev();
extern void _ZN5S85C53v99Ev();
extern void _ZN5S85C54v100Ev();
extern void _ZN5S85C54v101Ev();
extern void _ZN5S85C54v102Ev();
extern void _ZN5S85C54v103Ev();
extern void _ZN5S85C54v104Ev();
extern void _ZN5S85C54v105Ev();
extern void _ZN5S85C54v106Ev();
extern void _ZN5S85C54v107Ev();
extern void _ZN5S85C54v108Ev();
extern void _ZN5S85C54v109Ev();
extern void _ZN5S85C54v110Ev();
extern void _ZN5S85C54v111Ev();
extern void _ZN5S85C54v112Ev();
extern void _ZN5S85C54v113Ev();
extern void _ZN5S85C54v114Ev();
extern void _ZN5S85C54v115Ev();
extern void _ZN5S85C54v116Ev();
extern void _ZN5S85C54v117Ev();
extern void _ZN5S85C54v118Ev();
extern void _ZN5S85C54v119Ev();
extern void _ZN5S85C54v120Ev();
extern void _ZN5S85C54v121Ev();
extern void _ZN5S85C54v122Ev();
extern void _ZN5S85C54v123Ev();
extern void _ZN5S85C54v124Ev();
extern void _ZN5S85C54v125Ev();
extern void _ZN5S85C54v126Ev();
extern void _ZN5S85C54v127Ev();
extern void _ZN5S85C54v128Ev();
extern void _ZN5S85C54v129Ev();
extern void _ZN5S85C54v130Ev();
extern void _ZN5S85C54v131Ev();
extern void _ZN5S85C54v132Ev();
extern void _ZN5S85C54v133Ev();
extern void _ZN5S85C54v134Ev();
extern void _ZN5S85C54v135Ev();
extern void _ZN5S85C54v136Ev();
extern void _ZN5S85C54v137Ev();
extern void _ZN5S85C54v138Ev();
extern void _ZN5S85C54v139Ev();
extern void _ZN5S85C54v140Ev();
extern void _ZN5S85C54v141Ev();
extern void _ZN5S85C54v142Ev();
extern void _ZN5S85C54v143Ev();
extern void _ZN5S85C54v144Ev();
extern void _ZN5S85C54v145Ev();
extern void _ZN5S85C44v146Ev();
extern void _ZN5S85C44v147Ev();
extern void _ZN5S85C44v148Ev();
extern void _ZN5S85C44v149Ev();
extern void _ZN5S85C44v150Ev();
extern void _ZN5S85C44v151Ev();
extern void _ZN5S85C44v152Ev();
extern void _ZN5S85C44v153Ev();
extern void _ZN5S85C44v154Ev();
extern void _ZN5S85C44v155Ev();
extern void _ZN5S85C44v156Ev();
extern void _ZN5S85C44v157Ev();
extern void _ZN5S85C44v158Ev();
extern void _ZN5S85C44v159Ev();
extern void _ZN5S85C44v160Ev();
extern void _ZN5S85C44v161Ev();
extern void _ZN5S85C44v162Ev();
extern void _ZN5S85C44v163Ev();
extern void _ZN5S85C44v164Ev();
extern void _ZN5S85C44v165Ev();
extern void _ZN5S85C44v166Ev();
extern void _ZN5S85C44v167Ev();
extern void _ZN5S85C44v168Ev();
extern void _ZN5S85C44v169Ev();
extern void _ZN5S85C44v170Ev();
extern void _ZN5S85C44v171Ev();
extern void _ZN5S85C44v172Ev();
extern void _ZN5S85C44v173Ev();
extern void _ZN5S85C44v174Ev();
extern void _ZN5S85C44v175Ev();
extern void _ZN5S85C44v176Ev();
extern void _ZN5S85C44v177Ev();
extern void _ZN5S85C44v178Ev();
extern void _ZN5S85C44v179Ev();
extern void _ZN5S85C44v180Ev();
extern void _ZN5S85C44v181Ev();
extern void _ZN5S85C44v182Ev();
extern void _ZN5S85C44v183Ev();
extern void _ZN5S85C44v184Ev();
extern void _ZN5S85C34v185Ev();
extern void _ZN5S85C34v186Ev();
extern void _ZN5S85C34v187Ev();
extern void _ZN5S85C34v188Ev();
extern void _ZN5S85C34v189Ev();
extern void _ZN5S85C34v190Ev();
extern void _ZN5S85C34v191Ev();
extern void _ZN5S85C34v192Ev();
extern void _ZN5S85C34v193Ev();
extern void _ZN5S85C34v194Ev();
extern void _ZN5S85C34v195Ev();
extern void _ZN5S85C34v196Ev();
extern void _ZN5S85C34v197Ev();
extern void _ZN5S85C34v198Ev();
extern void _ZN5S85C34v199Ev();
extern void _ZN5S85C34v200Ev();
extern void _ZN5S85C34v201Ev();
extern void _ZN5S85C34v202Ev();
extern void _ZN5S85C34v203Ev();
extern void _ZN5S85C34v204Ev();
extern void _ZN5S85C34v205Ev();
extern void _ZN5S85C34v206Ev();
extern void _ZN5S85C34v207Ev();
static  VTBL_ENTRY vtc_S85C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C3[0]),
  (VTBL_ENTRY)&_ZN5S85C3D1Ev,
  (VTBL_ENTRY)&_ZN5S85C3D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
  (VTBL_ENTRY)&_ZN5S85C63v68Ev,
  (VTBL_ENTRY)&_ZN5S85C63v69Ev,
  (VTBL_ENTRY)&_ZN5S85C53v70Ev,
  (VTBL_ENTRY)&_ZN5S85C53v71Ev,
  (VTBL_ENTRY)&_ZN5S85C53v72Ev,
  (VTBL_ENTRY)&_ZN5S85C53v73Ev,
  (VTBL_ENTRY)&_ZN5S85C53v74Ev,
  (VTBL_ENTRY)&_ZN5S85C53v75Ev,
  (VTBL_ENTRY)&_ZN5S85C53v76Ev,
  (VTBL_ENTRY)&_ZN5S85C53v77Ev,
  (VTBL_ENTRY)&_ZN5S85C53v78Ev,
  (VTBL_ENTRY)&_ZN5S85C53v79Ev,
  (VTBL_ENTRY)&_ZN5S85C53v80Ev,
  (VTBL_ENTRY)&_ZN5S85C53v81Ev,
  (VTBL_ENTRY)&_ZN5S85C53v82Ev,
  (VTBL_ENTRY)&_ZN5S85C53v83Ev,
  (VTBL_ENTRY)&_ZN5S85C53v84Ev,
  (VTBL_ENTRY)&_ZN5S85C53v85Ev,
  (VTBL_ENTRY)&_ZN5S85C53v86Ev,
  (VTBL_ENTRY)&_ZN5S85C53v87Ev,
  (VTBL_ENTRY)&_ZN5S85C53v88Ev,
  (VTBL_ENTRY)&_ZN5S85C53v89Ev,
  (VTBL_ENTRY)&_ZN5S85C53v90Ev,
  (VTBL_ENTRY)&_ZN5S85C53v91Ev,
  (VTBL_ENTRY)&_ZN5S85C53v92Ev,
  (VTBL_ENTRY)&_ZN5S85C53v93Ev,
  (VTBL_ENTRY)&_ZN5S85C53v94Ev,
  (VTBL_ENTRY)&_ZN5S85C53v95Ev,
  (VTBL_ENTRY)&_ZN5S85C53v96Ev,
  (VTBL_ENTRY)&_ZN5S85C53v97Ev,
  (VTBL_ENTRY)&_ZN5S85C53v98Ev,
  (VTBL_ENTRY)&_ZN5S85C53v99Ev,
  (VTBL_ENTRY)&_ZN5S85C54v100Ev,
  (VTBL_ENTRY)&_ZN5S85C54v101Ev,
  (VTBL_ENTRY)&_ZN5S85C54v102Ev,
  (VTBL_ENTRY)&_ZN5S85C54v103Ev,
  (VTBL_ENTRY)&_ZN5S85C54v104Ev,
  (VTBL_ENTRY)&_ZN5S85C54v105Ev,
  (VTBL_ENTRY)&_ZN5S85C54v106Ev,
  (VTBL_ENTRY)&_ZN5S85C54v107Ev,
  (VTBL_ENTRY)&_ZN5S85C54v108Ev,
  (VTBL_ENTRY)&_ZN5S85C54v109Ev,
  (VTBL_ENTRY)&_ZN5S85C54v110Ev,
  (VTBL_ENTRY)&_ZN5S85C54v111Ev,
  (VTBL_ENTRY)&_ZN5S85C54v112Ev,
  (VTBL_ENTRY)&_ZN5S85C54v113Ev,
  (VTBL_ENTRY)&_ZN5S85C54v114Ev,
  (VTBL_ENTRY)&_ZN5S85C54v115Ev,
  (VTBL_ENTRY)&_ZN5S85C54v116Ev,
  (VTBL_ENTRY)&_ZN5S85C54v117Ev,
  (VTBL_ENTRY)&_ZN5S85C54v118Ev,
  (VTBL_ENTRY)&_ZN5S85C54v119Ev,
  (VTBL_ENTRY)&_ZN5S85C54v120Ev,
  (VTBL_ENTRY)&_ZN5S85C54v121Ev,
  (VTBL_ENTRY)&_ZN5S85C54v122Ev,
  (VTBL_ENTRY)&_ZN5S85C54v123Ev,
  (VTBL_ENTRY)&_ZN5S85C54v124Ev,
  (VTBL_ENTRY)&_ZN5S85C54v125Ev,
  (VTBL_ENTRY)&_ZN5S85C54v126Ev,
  (VTBL_ENTRY)&_ZN5S85C54v127Ev,
  (VTBL_ENTRY)&_ZN5S85C54v128Ev,
  (VTBL_ENTRY)&_ZN5S85C54v129Ev,
  (VTBL_ENTRY)&_ZN5S85C54v130Ev,
  (VTBL_ENTRY)&_ZN5S85C54v131Ev,
  (VTBL_ENTRY)&_ZN5S85C54v132Ev,
  (VTBL_ENTRY)&_ZN5S85C54v133Ev,
  (VTBL_ENTRY)&_ZN5S85C54v134Ev,
  (VTBL_ENTRY)&_ZN5S85C54v135Ev,
  (VTBL_ENTRY)&_ZN5S85C54v136Ev,
  (VTBL_ENTRY)&_ZN5S85C54v137Ev,
  (VTBL_ENTRY)&_ZN5S85C54v138Ev,
  (VTBL_ENTRY)&_ZN5S85C54v139Ev,
  (VTBL_ENTRY)&_ZN5S85C54v140Ev,
  (VTBL_ENTRY)&_ZN5S85C54v141Ev,
  (VTBL_ENTRY)&_ZN5S85C54v142Ev,
  (VTBL_ENTRY)&_ZN5S85C54v143Ev,
  (VTBL_ENTRY)&_ZN5S85C54v144Ev,
  (VTBL_ENTRY)&_ZN5S85C54v145Ev,
  (VTBL_ENTRY)&_ZN5S85C44v146Ev,
  (VTBL_ENTRY)&_ZN5S85C44v147Ev,
  (VTBL_ENTRY)&_ZN5S85C44v148Ev,
  (VTBL_ENTRY)&_ZN5S85C44v149Ev,
  (VTBL_ENTRY)&_ZN5S85C44v150Ev,
  (VTBL_ENTRY)&_ZN5S85C44v151Ev,
  (VTBL_ENTRY)&_ZN5S85C44v152Ev,
  (VTBL_ENTRY)&_ZN5S85C44v153Ev,
  (VTBL_ENTRY)&_ZN5S85C44v154Ev,
  (VTBL_ENTRY)&_ZN5S85C44v155Ev,
  (VTBL_ENTRY)&_ZN5S85C44v156Ev,
  (VTBL_ENTRY)&_ZN5S85C44v157Ev,
  (VTBL_ENTRY)&_ZN5S85C44v158Ev,
  (VTBL_ENTRY)&_ZN5S85C44v159Ev,
  (VTBL_ENTRY)&_ZN5S85C44v160Ev,
  (VTBL_ENTRY)&_ZN5S85C44v161Ev,
  (VTBL_ENTRY)&_ZN5S85C44v162Ev,
  (VTBL_ENTRY)&_ZN5S85C44v163Ev,
  (VTBL_ENTRY)&_ZN5S85C44v164Ev,
  (VTBL_ENTRY)&_ZN5S85C44v165Ev,
  (VTBL_ENTRY)&_ZN5S85C44v166Ev,
  (VTBL_ENTRY)&_ZN5S85C44v167Ev,
  (VTBL_ENTRY)&_ZN5S85C44v168Ev,
  (VTBL_ENTRY)&_ZN5S85C44v169Ev,
  (VTBL_ENTRY)&_ZN5S85C44v170Ev,
  (VTBL_ENTRY)&_ZN5S85C44v171Ev,
  (VTBL_ENTRY)&_ZN5S85C44v172Ev,
  (VTBL_ENTRY)&_ZN5S85C44v173Ev,
  (VTBL_ENTRY)&_ZN5S85C44v174Ev,
  (VTBL_ENTRY)&_ZN5S85C44v175Ev,
  (VTBL_ENTRY)&_ZN5S85C44v176Ev,
  (VTBL_ENTRY)&_ZN5S85C44v177Ev,
  (VTBL_ENTRY)&_ZN5S85C44v178Ev,
  (VTBL_ENTRY)&_ZN5S85C44v179Ev,
  (VTBL_ENTRY)&_ZN5S85C44v180Ev,
  (VTBL_ENTRY)&_ZN5S85C44v181Ev,
  (VTBL_ENTRY)&_ZN5S85C44v182Ev,
  (VTBL_ENTRY)&_ZN5S85C44v183Ev,
  (VTBL_ENTRY)&_ZN5S85C44v184Ev,
  (VTBL_ENTRY)&_ZN5S85C34v185Ev,
  (VTBL_ENTRY)&_ZN5S85C34v186Ev,
  (VTBL_ENTRY)&_ZN5S85C34v187Ev,
  (VTBL_ENTRY)&_ZN5S85C34v188Ev,
  (VTBL_ENTRY)&_ZN5S85C34v189Ev,
  (VTBL_ENTRY)&_ZN5S85C34v190Ev,
  (VTBL_ENTRY)&_ZN5S85C34v191Ev,
  (VTBL_ENTRY)&_ZN5S85C34v192Ev,
  (VTBL_ENTRY)&_ZN5S85C34v193Ev,
  (VTBL_ENTRY)&_ZN5S85C34v194Ev,
  (VTBL_ENTRY)&_ZN5S85C34v195Ev,
  (VTBL_ENTRY)&_ZN5S85C34v196Ev,
  (VTBL_ENTRY)&_ZN5S85C34v197Ev,
  (VTBL_ENTRY)&_ZN5S85C34v198Ev,
  (VTBL_ENTRY)&_ZN5S85C34v199Ev,
  (VTBL_ENTRY)&_ZN5S85C34v200Ev,
  (VTBL_ENTRY)&_ZN5S85C34v201Ev,
  (VTBL_ENTRY)&_ZN5S85C34v202Ev,
  (VTBL_ENTRY)&_ZN5S85C34v203Ev,
  (VTBL_ENTRY)&_ZN5S85C34v204Ev,
  (VTBL_ENTRY)&_ZN5S85C34v205Ev,
  (VTBL_ENTRY)&_ZN5S85C34v206Ev,
  (VTBL_ENTRY)&_ZN5S85C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S85C3[];
extern  VTBL_ENTRY _ZTV5S85C3[];
Class_Descriptor cd_S85C3 = {  "S85C3", // class name
  bases_S85C3, 4,
  &(vtc_S85C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S85C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S85C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C2  : S85C3 {
  virtual  ~S85C2(); // _ZN5S85C2D1Ev
  virtual void  v208(); // _ZN5S85C24v208Ev
  virtual void  v209(); // _ZN5S85C24v209Ev
  S85C2(); // tgen
};
//SIG(-1 S85C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v67 v68} vd v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC7} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 FC7 Fp[9] FC21{ BC22{ BC11}} FC9 FC23{ BC24{ m FC25{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC26{ m Fi[2]} FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2}


 S85C2 ::~S85C2(){ note_dtor("S85C2", this);}
void  S85C2 ::v208(){vfunc_called(this, "_ZN5S85C24v208Ev");}
void  S85C2 ::v209(){vfunc_called(this, "_ZN5S85C24v209Ev");}
S85C2 ::S85C2(){ note_ctor("S85C2", this);} // tgen

static void Test_S85C2()
{
  extern Class_Descriptor cd_S85C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S85C2, buf);
    S85C2 *dp, &lv = *(dp=new (buf) S85C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S85C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C2)");
    check_base_class_offset(lv, (S85C7*)(S85C6*)(S85C5*)(S85C4*)(S85C3*), 0, "S85C2");
    check_base_class_offset(lv, (S85C6*)(S85C5*)(S85C4*)(S85C3*), 0, "S85C2");
    check_base_class_offset(lv, (S85C5*)(S85C4*)(S85C3*), 0, "S85C2");
    check_base_class_offset(lv, (S85C4*)(S85C3*), 0, "S85C2");
    check_base_class_offset(lv, (S85C3*), 0, "S85C2");
    test_class_info(&lv, &cd_S85C2);
    dp->~S85C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C2(Test_S85C2, "S85C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S85C2C1Ev();
extern void _ZN5S85C2D1Ev();
Name_Map name_map_S85C2[] = {
  NSPAIR(_ZN5S85C2C1Ev),
  NSPAIR(_ZN5S85C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S85C7;
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
extern Class_Descriptor cd_S85C6;
extern VTBL_ENTRY _ZTI5S85C6[];
extern  VTBL_ENTRY _ZTV5S85C6[];
extern Class_Descriptor cd_S85C5;
extern VTBL_ENTRY _ZTI5S85C5[];
extern  VTBL_ENTRY _ZTV5S85C5[];
extern Class_Descriptor cd_S85C4;
extern VTBL_ENTRY _ZTI5S85C4[];
extern  VTBL_ENTRY _ZTV5S85C4[];
extern Class_Descriptor cd_S85C3;
extern VTBL_ENTRY _ZTI5S85C3[];
extern  VTBL_ENTRY _ZTV5S85C3[];
static Base_Class bases_S85C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S85C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S85C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S85C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S85C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S85C2[];
extern void _ZN5S85C2D1Ev();
extern void _ZN5S85C2D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
extern void _ZN5S85C63v68Ev();
extern void _ZN5S85C63v69Ev();
extern void _ZN5S85C53v70Ev();
extern void _ZN5S85C53v71Ev();
extern void _ZN5S85C53v72Ev();
extern void _ZN5S85C53v73Ev();
extern void _ZN5S85C53v74Ev();
extern void _ZN5S85C53v75Ev();
extern void _ZN5S85C53v76Ev();
extern void _ZN5S85C53v77Ev();
extern void _ZN5S85C53v78Ev();
extern void _ZN5S85C53v79Ev();
extern void _ZN5S85C53v80Ev();
extern void _ZN5S85C53v81Ev();
extern void _ZN5S85C53v82Ev();
extern void _ZN5S85C53v83Ev();
extern void _ZN5S85C53v84Ev();
extern void _ZN5S85C53v85Ev();
extern void _ZN5S85C53v86Ev();
extern void _ZN5S85C53v87Ev();
extern void _ZN5S85C53v88Ev();
extern void _ZN5S85C53v89Ev();
extern void _ZN5S85C53v90Ev();
extern void _ZN5S85C53v91Ev();
extern void _ZN5S85C53v92Ev();
extern void _ZN5S85C53v93Ev();
extern void _ZN5S85C53v94Ev();
extern void _ZN5S85C53v95Ev();
extern void _ZN5S85C53v96Ev();
extern void _ZN5S85C53v97Ev();
extern void _ZN5S85C53v98Ev();
extern void _ZN5S85C53v99Ev();
extern void _ZN5S85C54v100Ev();
extern void _ZN5S85C54v101Ev();
extern void _ZN5S85C54v102Ev();
extern void _ZN5S85C54v103Ev();
extern void _ZN5S85C54v104Ev();
extern void _ZN5S85C54v105Ev();
extern void _ZN5S85C54v106Ev();
extern void _ZN5S85C54v107Ev();
extern void _ZN5S85C54v108Ev();
extern void _ZN5S85C54v109Ev();
extern void _ZN5S85C54v110Ev();
extern void _ZN5S85C54v111Ev();
extern void _ZN5S85C54v112Ev();
extern void _ZN5S85C54v113Ev();
extern void _ZN5S85C54v114Ev();
extern void _ZN5S85C54v115Ev();
extern void _ZN5S85C54v116Ev();
extern void _ZN5S85C54v117Ev();
extern void _ZN5S85C54v118Ev();
extern void _ZN5S85C54v119Ev();
extern void _ZN5S85C54v120Ev();
extern void _ZN5S85C54v121Ev();
extern void _ZN5S85C54v122Ev();
extern void _ZN5S85C54v123Ev();
extern void _ZN5S85C54v124Ev();
extern void _ZN5S85C54v125Ev();
extern void _ZN5S85C54v126Ev();
extern void _ZN5S85C54v127Ev();
extern void _ZN5S85C54v128Ev();
extern void _ZN5S85C54v129Ev();
extern void _ZN5S85C54v130Ev();
extern void _ZN5S85C54v131Ev();
extern void _ZN5S85C54v132Ev();
extern void _ZN5S85C54v133Ev();
extern void _ZN5S85C54v134Ev();
extern void _ZN5S85C54v135Ev();
extern void _ZN5S85C54v136Ev();
extern void _ZN5S85C54v137Ev();
extern void _ZN5S85C54v138Ev();
extern void _ZN5S85C54v139Ev();
extern void _ZN5S85C54v140Ev();
extern void _ZN5S85C54v141Ev();
extern void _ZN5S85C54v142Ev();
extern void _ZN5S85C54v143Ev();
extern void _ZN5S85C54v144Ev();
extern void _ZN5S85C54v145Ev();
extern void _ZN5S85C44v146Ev();
extern void _ZN5S85C44v147Ev();
extern void _ZN5S85C44v148Ev();
extern void _ZN5S85C44v149Ev();
extern void _ZN5S85C44v150Ev();
extern void _ZN5S85C44v151Ev();
extern void _ZN5S85C44v152Ev();
extern void _ZN5S85C44v153Ev();
extern void _ZN5S85C44v154Ev();
extern void _ZN5S85C44v155Ev();
extern void _ZN5S85C44v156Ev();
extern void _ZN5S85C44v157Ev();
extern void _ZN5S85C44v158Ev();
extern void _ZN5S85C44v159Ev();
extern void _ZN5S85C44v160Ev();
extern void _ZN5S85C44v161Ev();
extern void _ZN5S85C44v162Ev();
extern void _ZN5S85C44v163Ev();
extern void _ZN5S85C44v164Ev();
extern void _ZN5S85C44v165Ev();
extern void _ZN5S85C44v166Ev();
extern void _ZN5S85C44v167Ev();
extern void _ZN5S85C44v168Ev();
extern void _ZN5S85C44v169Ev();
extern void _ZN5S85C44v170Ev();
extern void _ZN5S85C44v171Ev();
extern void _ZN5S85C44v172Ev();
extern void _ZN5S85C44v173Ev();
extern void _ZN5S85C44v174Ev();
extern void _ZN5S85C44v175Ev();
extern void _ZN5S85C44v176Ev();
extern void _ZN5S85C44v177Ev();
extern void _ZN5S85C44v178Ev();
extern void _ZN5S85C44v179Ev();
extern void _ZN5S85C44v180Ev();
extern void _ZN5S85C44v181Ev();
extern void _ZN5S85C44v182Ev();
extern void _ZN5S85C44v183Ev();
extern void _ZN5S85C44v184Ev();
extern void _ZN5S85C34v185Ev();
extern void _ZN5S85C34v186Ev();
extern void _ZN5S85C34v187Ev();
extern void _ZN5S85C34v188Ev();
extern void _ZN5S85C34v189Ev();
extern void _ZN5S85C34v190Ev();
extern void _ZN5S85C34v191Ev();
extern void _ZN5S85C34v192Ev();
extern void _ZN5S85C34v193Ev();
extern void _ZN5S85C34v194Ev();
extern void _ZN5S85C34v195Ev();
extern void _ZN5S85C34v196Ev();
extern void _ZN5S85C34v197Ev();
extern void _ZN5S85C34v198Ev();
extern void _ZN5S85C34v199Ev();
extern void _ZN5S85C34v200Ev();
extern void _ZN5S85C34v201Ev();
extern void _ZN5S85C34v202Ev();
extern void _ZN5S85C34v203Ev();
extern void _ZN5S85C34v204Ev();
extern void _ZN5S85C34v205Ev();
extern void _ZN5S85C34v206Ev();
extern void _ZN5S85C34v207Ev();
extern void _ZN5S85C24v208Ev();
extern void _ZN5S85C24v209Ev();
static  VTBL_ENTRY vtc_S85C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C2[0]),
  (VTBL_ENTRY)&_ZN5S85C2D1Ev,
  (VTBL_ENTRY)&_ZN5S85C2D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
  (VTBL_ENTRY)&_ZN5S85C63v68Ev,
  (VTBL_ENTRY)&_ZN5S85C63v69Ev,
  (VTBL_ENTRY)&_ZN5S85C53v70Ev,
  (VTBL_ENTRY)&_ZN5S85C53v71Ev,
  (VTBL_ENTRY)&_ZN5S85C53v72Ev,
  (VTBL_ENTRY)&_ZN5S85C53v73Ev,
  (VTBL_ENTRY)&_ZN5S85C53v74Ev,
  (VTBL_ENTRY)&_ZN5S85C53v75Ev,
  (VTBL_ENTRY)&_ZN5S85C53v76Ev,
  (VTBL_ENTRY)&_ZN5S85C53v77Ev,
  (VTBL_ENTRY)&_ZN5S85C53v78Ev,
  (VTBL_ENTRY)&_ZN5S85C53v79Ev,
  (VTBL_ENTRY)&_ZN5S85C53v80Ev,
  (VTBL_ENTRY)&_ZN5S85C53v81Ev,
  (VTBL_ENTRY)&_ZN5S85C53v82Ev,
  (VTBL_ENTRY)&_ZN5S85C53v83Ev,
  (VTBL_ENTRY)&_ZN5S85C53v84Ev,
  (VTBL_ENTRY)&_ZN5S85C53v85Ev,
  (VTBL_ENTRY)&_ZN5S85C53v86Ev,
  (VTBL_ENTRY)&_ZN5S85C53v87Ev,
  (VTBL_ENTRY)&_ZN5S85C53v88Ev,
  (VTBL_ENTRY)&_ZN5S85C53v89Ev,
  (VTBL_ENTRY)&_ZN5S85C53v90Ev,
  (VTBL_ENTRY)&_ZN5S85C53v91Ev,
  (VTBL_ENTRY)&_ZN5S85C53v92Ev,
  (VTBL_ENTRY)&_ZN5S85C53v93Ev,
  (VTBL_ENTRY)&_ZN5S85C53v94Ev,
  (VTBL_ENTRY)&_ZN5S85C53v95Ev,
  (VTBL_ENTRY)&_ZN5S85C53v96Ev,
  (VTBL_ENTRY)&_ZN5S85C53v97Ev,
  (VTBL_ENTRY)&_ZN5S85C53v98Ev,
  (VTBL_ENTRY)&_ZN5S85C53v99Ev,
  (VTBL_ENTRY)&_ZN5S85C54v100Ev,
  (VTBL_ENTRY)&_ZN5S85C54v101Ev,
  (VTBL_ENTRY)&_ZN5S85C54v102Ev,
  (VTBL_ENTRY)&_ZN5S85C54v103Ev,
  (VTBL_ENTRY)&_ZN5S85C54v104Ev,
  (VTBL_ENTRY)&_ZN5S85C54v105Ev,
  (VTBL_ENTRY)&_ZN5S85C54v106Ev,
  (VTBL_ENTRY)&_ZN5S85C54v107Ev,
  (VTBL_ENTRY)&_ZN5S85C54v108Ev,
  (VTBL_ENTRY)&_ZN5S85C54v109Ev,
  (VTBL_ENTRY)&_ZN5S85C54v110Ev,
  (VTBL_ENTRY)&_ZN5S85C54v111Ev,
  (VTBL_ENTRY)&_ZN5S85C54v112Ev,
  (VTBL_ENTRY)&_ZN5S85C54v113Ev,
  (VTBL_ENTRY)&_ZN5S85C54v114Ev,
  (VTBL_ENTRY)&_ZN5S85C54v115Ev,
  (VTBL_ENTRY)&_ZN5S85C54v116Ev,
  (VTBL_ENTRY)&_ZN5S85C54v117Ev,
  (VTBL_ENTRY)&_ZN5S85C54v118Ev,
  (VTBL_ENTRY)&_ZN5S85C54v119Ev,
  (VTBL_ENTRY)&_ZN5S85C54v120Ev,
  (VTBL_ENTRY)&_ZN5S85C54v121Ev,
  (VTBL_ENTRY)&_ZN5S85C54v122Ev,
  (VTBL_ENTRY)&_ZN5S85C54v123Ev,
  (VTBL_ENTRY)&_ZN5S85C54v124Ev,
  (VTBL_ENTRY)&_ZN5S85C54v125Ev,
  (VTBL_ENTRY)&_ZN5S85C54v126Ev,
  (VTBL_ENTRY)&_ZN5S85C54v127Ev,
  (VTBL_ENTRY)&_ZN5S85C54v128Ev,
  (VTBL_ENTRY)&_ZN5S85C54v129Ev,
  (VTBL_ENTRY)&_ZN5S85C54v130Ev,
  (VTBL_ENTRY)&_ZN5S85C54v131Ev,
  (VTBL_ENTRY)&_ZN5S85C54v132Ev,
  (VTBL_ENTRY)&_ZN5S85C54v133Ev,
  (VTBL_ENTRY)&_ZN5S85C54v134Ev,
  (VTBL_ENTRY)&_ZN5S85C54v135Ev,
  (VTBL_ENTRY)&_ZN5S85C54v136Ev,
  (VTBL_ENTRY)&_ZN5S85C54v137Ev,
  (VTBL_ENTRY)&_ZN5S85C54v138Ev,
  (VTBL_ENTRY)&_ZN5S85C54v139Ev,
  (VTBL_ENTRY)&_ZN5S85C54v140Ev,
  (VTBL_ENTRY)&_ZN5S85C54v141Ev,
  (VTBL_ENTRY)&_ZN5S85C54v142Ev,
  (VTBL_ENTRY)&_ZN5S85C54v143Ev,
  (VTBL_ENTRY)&_ZN5S85C54v144Ev,
  (VTBL_ENTRY)&_ZN5S85C54v145Ev,
  (VTBL_ENTRY)&_ZN5S85C44v146Ev,
  (VTBL_ENTRY)&_ZN5S85C44v147Ev,
  (VTBL_ENTRY)&_ZN5S85C44v148Ev,
  (VTBL_ENTRY)&_ZN5S85C44v149Ev,
  (VTBL_ENTRY)&_ZN5S85C44v150Ev,
  (VTBL_ENTRY)&_ZN5S85C44v151Ev,
  (VTBL_ENTRY)&_ZN5S85C44v152Ev,
  (VTBL_ENTRY)&_ZN5S85C44v153Ev,
  (VTBL_ENTRY)&_ZN5S85C44v154Ev,
  (VTBL_ENTRY)&_ZN5S85C44v155Ev,
  (VTBL_ENTRY)&_ZN5S85C44v156Ev,
  (VTBL_ENTRY)&_ZN5S85C44v157Ev,
  (VTBL_ENTRY)&_ZN5S85C44v158Ev,
  (VTBL_ENTRY)&_ZN5S85C44v159Ev,
  (VTBL_ENTRY)&_ZN5S85C44v160Ev,
  (VTBL_ENTRY)&_ZN5S85C44v161Ev,
  (VTBL_ENTRY)&_ZN5S85C44v162Ev,
  (VTBL_ENTRY)&_ZN5S85C44v163Ev,
  (VTBL_ENTRY)&_ZN5S85C44v164Ev,
  (VTBL_ENTRY)&_ZN5S85C44v165Ev,
  (VTBL_ENTRY)&_ZN5S85C44v166Ev,
  (VTBL_ENTRY)&_ZN5S85C44v167Ev,
  (VTBL_ENTRY)&_ZN5S85C44v168Ev,
  (VTBL_ENTRY)&_ZN5S85C44v169Ev,
  (VTBL_ENTRY)&_ZN5S85C44v170Ev,
  (VTBL_ENTRY)&_ZN5S85C44v171Ev,
  (VTBL_ENTRY)&_ZN5S85C44v172Ev,
  (VTBL_ENTRY)&_ZN5S85C44v173Ev,
  (VTBL_ENTRY)&_ZN5S85C44v174Ev,
  (VTBL_ENTRY)&_ZN5S85C44v175Ev,
  (VTBL_ENTRY)&_ZN5S85C44v176Ev,
  (VTBL_ENTRY)&_ZN5S85C44v177Ev,
  (VTBL_ENTRY)&_ZN5S85C44v178Ev,
  (VTBL_ENTRY)&_ZN5S85C44v179Ev,
  (VTBL_ENTRY)&_ZN5S85C44v180Ev,
  (VTBL_ENTRY)&_ZN5S85C44v181Ev,
  (VTBL_ENTRY)&_ZN5S85C44v182Ev,
  (VTBL_ENTRY)&_ZN5S85C44v183Ev,
  (VTBL_ENTRY)&_ZN5S85C44v184Ev,
  (VTBL_ENTRY)&_ZN5S85C34v185Ev,
  (VTBL_ENTRY)&_ZN5S85C34v186Ev,
  (VTBL_ENTRY)&_ZN5S85C34v187Ev,
  (VTBL_ENTRY)&_ZN5S85C34v188Ev,
  (VTBL_ENTRY)&_ZN5S85C34v189Ev,
  (VTBL_ENTRY)&_ZN5S85C34v190Ev,
  (VTBL_ENTRY)&_ZN5S85C34v191Ev,
  (VTBL_ENTRY)&_ZN5S85C34v192Ev,
  (VTBL_ENTRY)&_ZN5S85C34v193Ev,
  (VTBL_ENTRY)&_ZN5S85C34v194Ev,
  (VTBL_ENTRY)&_ZN5S85C34v195Ev,
  (VTBL_ENTRY)&_ZN5S85C34v196Ev,
  (VTBL_ENTRY)&_ZN5S85C34v197Ev,
  (VTBL_ENTRY)&_ZN5S85C34v198Ev,
  (VTBL_ENTRY)&_ZN5S85C34v199Ev,
  (VTBL_ENTRY)&_ZN5S85C34v200Ev,
  (VTBL_ENTRY)&_ZN5S85C34v201Ev,
  (VTBL_ENTRY)&_ZN5S85C34v202Ev,
  (VTBL_ENTRY)&_ZN5S85C34v203Ev,
  (VTBL_ENTRY)&_ZN5S85C34v204Ev,
  (VTBL_ENTRY)&_ZN5S85C34v205Ev,
  (VTBL_ENTRY)&_ZN5S85C34v206Ev,
  (VTBL_ENTRY)&_ZN5S85C34v207Ev,
  (VTBL_ENTRY)&_ZN5S85C24v208Ev,
  (VTBL_ENTRY)&_ZN5S85C24v209Ev,
};
extern VTBL_ENTRY _ZTI5S85C2[];
extern  VTBL_ENTRY _ZTV5S85C2[];
Class_Descriptor cd_S85C2 = {  "S85C2", // class name
  bases_S85C2, 5,
  &(vtc_S85C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S85C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S85C2),210, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C34_nt  {
  int s85c34f0[4];
  void  mf85c34(); // _ZN9S85C34_nt7mf85c34Ev
};
//SIG(-1 S85C34_nt) C1{ m Fi[4]}


void  S85C34_nt ::mf85c34(){}

//skip512 S85C34_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C36  : S80C12_nt {
};
//SIG(-1 S85C36) C1{ BC2{ m Fp Fi[2]}}



static void Test_S85C36()
{
  extern Class_Descriptor cd_S85C36;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S85C36, buf);
    S85C36 &lv = *(new (buf) S85C36());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S85C36)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C36)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S85C36");
    test_class_info(&lv, &cd_S85C36);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C36(Test_S85C36, "S85C36", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S85C36[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S85C36 = {  "S85C36", // class name
  bases_S85C36, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C35  : S85C36 {
};
//SIG(-1 S85C35) C1{ BC2{ BC3{ m Fp Fi[2]}}}



static void Test_S85C35()
{
  extern Class_Descriptor cd_S85C35;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S85C35, buf);
    S85C35 &lv = *(new (buf) S85C35());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S85C35)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C35)");
    check_base_class_offset(lv, (S80C12_nt*)(S85C36*), 0, "S85C35");
    check_base_class_offset(lv, (S85C36*), 0, "S85C35");
    test_class_info(&lv, &cd_S85C35);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C35(Test_S85C35, "S85C35", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S85C36;
static Base_Class bases_S85C35[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C36,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S85C35 = {  "S85C35", // class name
  bases_S85C35, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C28  {
  int s85c28f0;
  ::S80C28_nt s85c28f1;
  ::S80C28_nt s85c28f2;
  ::S80C28_nt s85c28f3;
  ::S80C28_nt s85c28f4;
  ::S85C22_nt s85c28f5;
  ::S85C22_nt s85c28f6;
  ::S85C22_nt s85c28f7;
  ::S85C22_nt s85c28f8;
  char s85c28f9;
  ::S80C28_nt s85c28f10;
  ::S80C8_nt s85c28f11;
  ::S80C8_nt s85c28f12;
  int s85c28f13;
  void *s85c28f14;
  unsigned int s85c28f15:1;
  ::S85C34_nt s85c28f16;
  ::S80C28_nt s85c28f17;
  void *s85c28f18;
  ::S80C28_nt s85c28f19;
  ::S85C35 s85c28f20;
  void *s85c28f21;
  void  mf85c28(); // _ZN6S85C287mf85c28Ev
};
//SIG(-1 S85C28) C1{ m Fi FC2{ BC3{ BC4{ BC5{ m Fp Fi[2]}}}} FC2 FC2 FC2 FC6{ BC7{ BC5}} FC6 FC6 FC6 Fc FC2 FC8{ m Fi[2]} FC8 Fi Fp Fi:1 FC9{ m Fi[4]} FC2 Fp FC2 FC10{ BC11{ BC5}} Fp}


void  S85C28 ::mf85c28(){}

static void Test_S85C28()
{
  {
    init_simple_test("S85C28");
    static S85C28 lv;
    check2(sizeof(lv), ABISELECT(280,204), "sizeof(S85C28)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C28)");
    check_field_offset(lv, s85c28f0, 0, "S85C28.s85c28f0");
    check_field_offset(lv, s85c28f1, ABISELECT(8,4), "S85C28.s85c28f1");
    check_field_offset(lv, s85c28f2, ABISELECT(24,16), "S85C28.s85c28f2");
    check_field_offset(lv, s85c28f3, ABISELECT(40,28), "S85C28.s85c28f3");
    check_field_offset(lv, s85c28f4, ABISELECT(56,40), "S85C28.s85c28f4");
    check_field_offset(lv, s85c28f5, ABISELECT(72,52), "S85C28.s85c28f5");
    check_field_offset(lv, s85c28f6, ABISELECT(88,64), "S85C28.s85c28f6");
    check_field_offset(lv, s85c28f7, ABISELECT(104,76), "S85C28.s85c28f7");
    check_field_offset(lv, s85c28f8, ABISELECT(120,88), "S85C28.s85c28f8");
    check_field_offset(lv, s85c28f9, ABISELECT(136,100), "S85C28.s85c28f9");
    check_field_offset(lv, s85c28f10, ABISELECT(144,104), "S85C28.s85c28f10");
    check_field_offset(lv, s85c28f11, ABISELECT(160,116), "S85C28.s85c28f11");
    check_field_offset(lv, s85c28f12, ABISELECT(168,124), "S85C28.s85c28f12");
    check_field_offset(lv, s85c28f13, ABISELECT(176,132), "S85C28.s85c28f13");
    check_field_offset(lv, s85c28f14, ABISELECT(184,136), "S85C28.s85c28f14");
    set_bf_and_test(lv, s85c28f15, ABISELECT(192,140), 0, 1, 1, "S85C28");
    check_field_offset(lv, s85c28f16, ABISELECT(196,144), "S85C28.s85c28f16");
    check_field_offset(lv, s85c28f17, ABISELECT(216,160), "S85C28.s85c28f17");
    check_field_offset(lv, s85c28f18, ABISELECT(232,172), "S85C28.s85c28f18");
    check_field_offset(lv, s85c28f19, ABISELECT(240,176), "S85C28.s85c28f19");
    check_field_offset(lv, s85c28f20, ABISELECT(256,188), "S85C28.s85c28f20");
    check_field_offset(lv, s85c28f21, ABISELECT(272,200), "S85C28.s85c28f21");
  }
}
static Arrange_To_Call_Me vS85C28(Test_S85C28, "S85C28", ABISELECT(280,204));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S85C1  : S85C2 {
  void *s85c1f0[19];
  ::S85C28 s85c1f1;
  unsigned int s85c1f2:1;
  int s85c1f3[2];
  void *s85c1f4[2];
  virtual  ~S85C1(); // _ZN5S85C1D1Ev
  virtual void  v1(); // _ZN5S85C12v1Ev
  virtual void  v2(); // _ZN5S85C12v2Ev
  virtual void  v3(); // _ZN5S85C12v3Ev
  S85C1(); // tgen
};
//SIG(1 S85C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC8} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC22{ BC23{ BC12}} FC10 FC24{ BC25{ m FC26{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC27{ m Fi[2]} FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v208 v209} vd v1 v2 v3 Fp[19] FC28{ m Fi FC29{ BC13} FC29 FC29 FC29 FC22 FC22 FC22 FC22 Fc FC29 FC8 FC8 Fi Fp Fi:1 FC30{ m Fi[4]} FC29 Fp FC29 FC31{ BC32{ BC12}} Fp} Fi:1 Fi[2] Fp[2]}


 S85C1 ::~S85C1(){ note_dtor("S85C1", this);}
void  S85C1 ::v1(){vfunc_called(this, "_ZN5S85C12v1Ev");}
void  S85C1 ::v2(){vfunc_called(this, "_ZN5S85C12v2Ev");}
void  S85C1 ::v3(){vfunc_called(this, "_ZN5S85C12v3Ev");}
S85C1 ::S85C1(){ note_ctor("S85C1", this);} // tgen

static void Test_S85C1()
{
  extern Class_Descriptor cd_S85C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(167,230)];
    init_test(&cd_S85C1, buf);
    S85C1 *dp, &lv = *(dp=new (buf) S85C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1328,916), "sizeof(S85C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S85C1)");
    check_base_class_offset(lv, (S85C7*)(S85C6*)(S85C5*)(S85C4*)(S85C3*)(S85C2*), 0, "S85C1");
    check_base_class_offset(lv, (S85C6*)(S85C5*)(S85C4*)(S85C3*)(S85C2*), 0, "S85C1");
    check_base_class_offset(lv, (S85C5*)(S85C4*)(S85C3*)(S85C2*), 0, "S85C1");
    check_base_class_offset(lv, (S85C4*)(S85C3*)(S85C2*), 0, "S85C1");
    check_base_class_offset(lv, (S85C3*)(S85C2*), 0, "S85C1");
    check_base_class_offset(lv, (S85C2*), 0, "S85C1");
    check_field_offset(lv, s85c1f0, ABISELECT(864,616), "S85C1.s85c1f0");
    check_field_offset(lv, s85c1f1, ABISELECT(1016,692), "S85C1.s85c1f1");
    set_bf_and_test(lv, s85c1f2, ABISELECT(1296,896), 0, 1, 1, "S85C1");
    check_field_offset(lv, s85c1f3, ABISELECT(1300,900), "S85C1.s85c1f3");
    check_field_offset(lv, s85c1f4, ABISELECT(1312,908), "S85C1.s85c1f4");
    test_class_info(&lv, &cd_S85C1);
    dp->~S85C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS85C1(Test_S85C1, "S85C1", ABISELECT(1328,916));

#else // __cplusplus

extern void _ZN5S85C1C1Ev();
extern void _ZN5S85C1D1Ev();
Name_Map name_map_S85C1[] = {
  NSPAIR(_ZN5S85C1C1Ev),
  NSPAIR(_ZN5S85C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S85C7;
extern VTBL_ENTRY _ZTI5S85C7[];
extern  VTBL_ENTRY _ZTV5S85C7[];
extern Class_Descriptor cd_S85C6;
extern VTBL_ENTRY _ZTI5S85C6[];
extern  VTBL_ENTRY _ZTV5S85C6[];
extern Class_Descriptor cd_S85C5;
extern VTBL_ENTRY _ZTI5S85C5[];
extern  VTBL_ENTRY _ZTV5S85C5[];
extern Class_Descriptor cd_S85C4;
extern VTBL_ENTRY _ZTI5S85C4[];
extern  VTBL_ENTRY _ZTV5S85C4[];
extern Class_Descriptor cd_S85C3;
extern VTBL_ENTRY _ZTI5S85C3[];
extern  VTBL_ENTRY _ZTV5S85C3[];
extern Class_Descriptor cd_S85C2;
extern VTBL_ENTRY _ZTI5S85C2[];
extern  VTBL_ENTRY _ZTV5S85C2[];
static Base_Class bases_S85C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S85C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S85C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S85C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S85C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S85C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S85C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S85C1[];
extern void _ZN5S85C1D1Ev();
extern void _ZN5S85C1D0Ev();
extern void _ZN5S85C72v4Ev();
extern void _ZN5S85C72v5Ev();
extern void _ZN5S85C72v6Ev();
extern void _ZN5S85C72v7Ev();
extern void _ZN5S85C72v8Ev();
extern void _ZN5S85C72v9Ev();
extern void _ZN5S85C73v10Ev();
extern void _ZN5S85C73v11Ev();
extern void _ZN5S85C73v12Ev();
extern void _ZN5S85C73v13Ev();
extern void _ZN5S85C73v14Ev();
extern void _ZN5S85C73v15Ev();
extern void _ZN5S85C73v16Ev();
extern void _ZN5S85C73v17Ev();
extern void _ZN5S85C73v18Ev();
extern void _ZN5S85C73v19Ev();
extern void _ZN5S85C73v20Ev();
extern void _ZN5S85C73v21Ev();
extern void _ZN5S85C73v22Ev();
extern void _ZN5S85C73v23Ev();
extern void _ZN5S85C73v24Ev();
extern void _ZN5S85C73v25Ev();
extern void _ZN5S85C73v26Ev();
extern void _ZN5S85C73v27Ev();
extern void _ZN5S85C73v28Ev();
extern void _ZN5S85C73v29Ev();
extern void _ZN5S85C73v30Ev();
extern void _ZN5S85C73v31Ev();
extern void _ZN5S85C73v32Ev();
extern void _ZN5S85C73v33Ev();
extern void _ZN5S85C73v34Ev();
extern void _ZN5S85C73v35Ev();
extern void _ZN5S85C73v36Ev();
extern void _ZN5S85C73v37Ev();
extern void _ZN5S85C73v38Ev();
extern void _ZN5S85C73v39Ev();
extern void _ZN5S85C73v40Ev();
extern void _ZN5S85C73v41Ev();
extern void _ZN5S85C73v42Ev();
extern void _ZN5S85C73v43Ev();
extern void _ZN5S85C73v44Ev();
extern void _ZN5S85C73v45Ev();
extern void _ZN5S85C73v46Ev();
extern void _ZN5S85C73v47Ev();
extern void _ZN5S85C73v48Ev();
extern void _ZN5S85C73v49Ev();
extern void _ZN5S85C73v50Ev();
extern void _ZN5S85C73v51Ev();
extern void _ZN5S85C73v52Ev();
extern void _ZN5S85C73v53Ev();
extern void _ZN5S85C73v54Ev();
extern void _ZN5S85C73v55Ev();
extern void _ZN5S85C73v56Ev();
extern void _ZN5S85C73v57Ev();
extern void _ZN5S85C73v58Ev();
extern void _ZN5S85C73v59Ev();
extern void _ZN5S85C73v60Ev();
extern void _ZN5S85C73v61Ev();
extern void _ZN5S85C73v62Ev();
extern void _ZN5S85C73v63Ev();
extern void _ZN5S85C73v64Ev();
extern void _ZN5S85C73v65Ev();
extern void _ZN5S85C73v66Ev();
extern void _ZN5S85C73v67Ev();
extern void _ZN5S85C63v68Ev();
extern void _ZN5S85C63v69Ev();
extern void _ZN5S85C53v70Ev();
extern void _ZN5S85C53v71Ev();
extern void _ZN5S85C53v72Ev();
extern void _ZN5S85C53v73Ev();
extern void _ZN5S85C53v74Ev();
extern void _ZN5S85C53v75Ev();
extern void _ZN5S85C53v76Ev();
extern void _ZN5S85C53v77Ev();
extern void _ZN5S85C53v78Ev();
extern void _ZN5S85C53v79Ev();
extern void _ZN5S85C53v80Ev();
extern void _ZN5S85C53v81Ev();
extern void _ZN5S85C53v82Ev();
extern void _ZN5S85C53v83Ev();
extern void _ZN5S85C53v84Ev();
extern void _ZN5S85C53v85Ev();
extern void _ZN5S85C53v86Ev();
extern void _ZN5S85C53v87Ev();
extern void _ZN5S85C53v88Ev();
extern void _ZN5S85C53v89Ev();
extern void _ZN5S85C53v90Ev();
extern void _ZN5S85C53v91Ev();
extern void _ZN5S85C53v92Ev();
extern void _ZN5S85C53v93Ev();
extern void _ZN5S85C53v94Ev();
extern void _ZN5S85C53v95Ev();
extern void _ZN5S85C53v96Ev();
extern void _ZN5S85C53v97Ev();
extern void _ZN5S85C53v98Ev();
extern void _ZN5S85C53v99Ev();
extern void _ZN5S85C54v100Ev();
extern void _ZN5S85C54v101Ev();
extern void _ZN5S85C54v102Ev();
extern void _ZN5S85C54v103Ev();
extern void _ZN5S85C54v104Ev();
extern void _ZN5S85C54v105Ev();
extern void _ZN5S85C54v106Ev();
extern void _ZN5S85C54v107Ev();
extern void _ZN5S85C54v108Ev();
extern void _ZN5S85C54v109Ev();
extern void _ZN5S85C54v110Ev();
extern void _ZN5S85C54v111Ev();
extern void _ZN5S85C54v112Ev();
extern void _ZN5S85C54v113Ev();
extern void _ZN5S85C54v114Ev();
extern void _ZN5S85C54v115Ev();
extern void _ZN5S85C54v116Ev();
extern void _ZN5S85C54v117Ev();
extern void _ZN5S85C54v118Ev();
extern void _ZN5S85C54v119Ev();
extern void _ZN5S85C54v120Ev();
extern void _ZN5S85C54v121Ev();
extern void _ZN5S85C54v122Ev();
extern void _ZN5S85C54v123Ev();
extern void _ZN5S85C54v124Ev();
extern void _ZN5S85C54v125Ev();
extern void _ZN5S85C54v126Ev();
extern void _ZN5S85C54v127Ev();
extern void _ZN5S85C54v128Ev();
extern void _ZN5S85C54v129Ev();
extern void _ZN5S85C54v130Ev();
extern void _ZN5S85C54v131Ev();
extern void _ZN5S85C54v132Ev();
extern void _ZN5S85C54v133Ev();
extern void _ZN5S85C54v134Ev();
extern void _ZN5S85C54v135Ev();
extern void _ZN5S85C54v136Ev();
extern void _ZN5S85C54v137Ev();
extern void _ZN5S85C54v138Ev();
extern void _ZN5S85C54v139Ev();
extern void _ZN5S85C54v140Ev();
extern void _ZN5S85C54v141Ev();
extern void _ZN5S85C54v142Ev();
extern void _ZN5S85C54v143Ev();
extern void _ZN5S85C54v144Ev();
extern void _ZN5S85C54v145Ev();
extern void _ZN5S85C44v146Ev();
extern void _ZN5S85C44v147Ev();
extern void _ZN5S85C44v148Ev();
extern void _ZN5S85C44v149Ev();
extern void _ZN5S85C44v150Ev();
extern void _ZN5S85C44v151Ev();
extern void _ZN5S85C44v152Ev();
extern void _ZN5S85C44v153Ev();
extern void _ZN5S85C44v154Ev();
extern void _ZN5S85C44v155Ev();
extern void _ZN5S85C44v156Ev();
extern void _ZN5S85C44v157Ev();
extern void _ZN5S85C44v158Ev();
extern void _ZN5S85C44v159Ev();
extern void _ZN5S85C44v160Ev();
extern void _ZN5S85C44v161Ev();
extern void _ZN5S85C44v162Ev();
extern void _ZN5S85C44v163Ev();
extern void _ZN5S85C44v164Ev();
extern void _ZN5S85C44v165Ev();
extern void _ZN5S85C44v166Ev();
extern void _ZN5S85C44v167Ev();
extern void _ZN5S85C44v168Ev();
extern void _ZN5S85C44v169Ev();
extern void _ZN5S85C44v170Ev();
extern void _ZN5S85C44v171Ev();
extern void _ZN5S85C44v172Ev();
extern void _ZN5S85C44v173Ev();
extern void _ZN5S85C44v174Ev();
extern void _ZN5S85C44v175Ev();
extern void _ZN5S85C44v176Ev();
extern void _ZN5S85C44v177Ev();
extern void _ZN5S85C44v178Ev();
extern void _ZN5S85C44v179Ev();
extern void _ZN5S85C44v180Ev();
extern void _ZN5S85C44v181Ev();
extern void _ZN5S85C44v182Ev();
extern void _ZN5S85C44v183Ev();
extern void _ZN5S85C44v184Ev();
extern void _ZN5S85C34v185Ev();
extern void _ZN5S85C34v186Ev();
extern void _ZN5S85C34v187Ev();
extern void _ZN5S85C34v188Ev();
extern void _ZN5S85C34v189Ev();
extern void _ZN5S85C34v190Ev();
extern void _ZN5S85C34v191Ev();
extern void _ZN5S85C34v192Ev();
extern void _ZN5S85C34v193Ev();
extern void _ZN5S85C34v194Ev();
extern void _ZN5S85C34v195Ev();
extern void _ZN5S85C34v196Ev();
extern void _ZN5S85C34v197Ev();
extern void _ZN5S85C34v198Ev();
extern void _ZN5S85C34v199Ev();
extern void _ZN5S85C34v200Ev();
extern void _ZN5S85C34v201Ev();
extern void _ZN5S85C34v202Ev();
extern void _ZN5S85C34v203Ev();
extern void _ZN5S85C34v204Ev();
extern void _ZN5S85C34v205Ev();
extern void _ZN5S85C34v206Ev();
extern void _ZN5S85C34v207Ev();
extern void _ZN5S85C24v208Ev();
extern void _ZN5S85C24v209Ev();
extern void _ZN5S85C12v1Ev();
extern void _ZN5S85C12v2Ev();
extern void _ZN5S85C12v3Ev();
static  VTBL_ENTRY vtc_S85C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S85C1[0]),
  (VTBL_ENTRY)&_ZN5S85C1D1Ev,
  (VTBL_ENTRY)&_ZN5S85C1D0Ev,
  (VTBL_ENTRY)&_ZN5S85C72v4Ev,
  (VTBL_ENTRY)&_ZN5S85C72v5Ev,
  (VTBL_ENTRY)&_ZN5S85C72v6Ev,
  (VTBL_ENTRY)&_ZN5S85C72v7Ev,
  (VTBL_ENTRY)&_ZN5S85C72v8Ev,
  (VTBL_ENTRY)&_ZN5S85C72v9Ev,
  (VTBL_ENTRY)&_ZN5S85C73v10Ev,
  (VTBL_ENTRY)&_ZN5S85C73v11Ev,
  (VTBL_ENTRY)&_ZN5S85C73v12Ev,
  (VTBL_ENTRY)&_ZN5S85C73v13Ev,
  (VTBL_ENTRY)&_ZN5S85C73v14Ev,
  (VTBL_ENTRY)&_ZN5S85C73v15Ev,
  (VTBL_ENTRY)&_ZN5S85C73v16Ev,
  (VTBL_ENTRY)&_ZN5S85C73v17Ev,
  (VTBL_ENTRY)&_ZN5S85C73v18Ev,
  (VTBL_ENTRY)&_ZN5S85C73v19Ev,
  (VTBL_ENTRY)&_ZN5S85C73v20Ev,
  (VTBL_ENTRY)&_ZN5S85C73v21Ev,
  (VTBL_ENTRY)&_ZN5S85C73v22Ev,
  (VTBL_ENTRY)&_ZN5S85C73v23Ev,
  (VTBL_ENTRY)&_ZN5S85C73v24Ev,
  (VTBL_ENTRY)&_ZN5S85C73v25Ev,
  (VTBL_ENTRY)&_ZN5S85C73v26Ev,
  (VTBL_ENTRY)&_ZN5S85C73v27Ev,
  (VTBL_ENTRY)&_ZN5S85C73v28Ev,
  (VTBL_ENTRY)&_ZN5S85C73v29Ev,
  (VTBL_ENTRY)&_ZN5S85C73v30Ev,
  (VTBL_ENTRY)&_ZN5S85C73v31Ev,
  (VTBL_ENTRY)&_ZN5S85C73v32Ev,
  (VTBL_ENTRY)&_ZN5S85C73v33Ev,
  (VTBL_ENTRY)&_ZN5S85C73v34Ev,
  (VTBL_ENTRY)&_ZN5S85C73v35Ev,
  (VTBL_ENTRY)&_ZN5S85C73v36Ev,
  (VTBL_ENTRY)&_ZN5S85C73v37Ev,
  (VTBL_ENTRY)&_ZN5S85C73v38Ev,
  (VTBL_ENTRY)&_ZN5S85C73v39Ev,
  (VTBL_ENTRY)&_ZN5S85C73v40Ev,
  (VTBL_ENTRY)&_ZN5S85C73v41Ev,
  (VTBL_ENTRY)&_ZN5S85C73v42Ev,
  (VTBL_ENTRY)&_ZN5S85C73v43Ev,
  (VTBL_ENTRY)&_ZN5S85C73v44Ev,
  (VTBL_ENTRY)&_ZN5S85C73v45Ev,
  (VTBL_ENTRY)&_ZN5S85C73v46Ev,
  (VTBL_ENTRY)&_ZN5S85C73v47Ev,
  (VTBL_ENTRY)&_ZN5S85C73v48Ev,
  (VTBL_ENTRY)&_ZN5S85C73v49Ev,
  (VTBL_ENTRY)&_ZN5S85C73v50Ev,
  (VTBL_ENTRY)&_ZN5S85C73v51Ev,
  (VTBL_ENTRY)&_ZN5S85C73v52Ev,
  (VTBL_ENTRY)&_ZN5S85C73v53Ev,
  (VTBL_ENTRY)&_ZN5S85C73v54Ev,
  (VTBL_ENTRY)&_ZN5S85C73v55Ev,
  (VTBL_ENTRY)&_ZN5S85C73v56Ev,
  (VTBL_ENTRY)&_ZN5S85C73v57Ev,
  (VTBL_ENTRY)&_ZN5S85C73v58Ev,
  (VTBL_ENTRY)&_ZN5S85C73v59Ev,
  (VTBL_ENTRY)&_ZN5S85C73v60Ev,
  (VTBL_ENTRY)&_ZN5S85C73v61Ev,
  (VTBL_ENTRY)&_ZN5S85C73v62Ev,
  (VTBL_ENTRY)&_ZN5S85C73v63Ev,
  (VTBL_ENTRY)&_ZN5S85C73v64Ev,
  (VTBL_ENTRY)&_ZN5S85C73v65Ev,
  (VTBL_ENTRY)&_ZN5S85C73v66Ev,
  (VTBL_ENTRY)&_ZN5S85C73v67Ev,
  (VTBL_ENTRY)&_ZN5S85C63v68Ev,
  (VTBL_ENTRY)&_ZN5S85C63v69Ev,
  (VTBL_ENTRY)&_ZN5S85C53v70Ev,
  (VTBL_ENTRY)&_ZN5S85C53v71Ev,
  (VTBL_ENTRY)&_ZN5S85C53v72Ev,
  (VTBL_ENTRY)&_ZN5S85C53v73Ev,
  (VTBL_ENTRY)&_ZN5S85C53v74Ev,
  (VTBL_ENTRY)&_ZN5S85C53v75Ev,
  (VTBL_ENTRY)&_ZN5S85C53v76Ev,
  (VTBL_ENTRY)&_ZN5S85C53v77Ev,
  (VTBL_ENTRY)&_ZN5S85C53v78Ev,
  (VTBL_ENTRY)&_ZN5S85C53v79Ev,
  (VTBL_ENTRY)&_ZN5S85C53v80Ev,
  (VTBL_ENTRY)&_ZN5S85C53v81Ev,
  (VTBL_ENTRY)&_ZN5S85C53v82Ev,
  (VTBL_ENTRY)&_ZN5S85C53v83Ev,
  (VTBL_ENTRY)&_ZN5S85C53v84Ev,
  (VTBL_ENTRY)&_ZN5S85C53v85Ev,
  (VTBL_ENTRY)&_ZN5S85C53v86Ev,
  (VTBL_ENTRY)&_ZN5S85C53v87Ev,
  (VTBL_ENTRY)&_ZN5S85C53v88Ev,
  (VTBL_ENTRY)&_ZN5S85C53v89Ev,
  (VTBL_ENTRY)&_ZN5S85C53v90Ev,
  (VTBL_ENTRY)&_ZN5S85C53v91Ev,
  (VTBL_ENTRY)&_ZN5S85C53v92Ev,
  (VTBL_ENTRY)&_ZN5S85C53v93Ev,
  (VTBL_ENTRY)&_ZN5S85C53v94Ev,
  (VTBL_ENTRY)&_ZN5S85C53v95Ev,
  (VTBL_ENTRY)&_ZN5S85C53v96Ev,
  (VTBL_ENTRY)&_ZN5S85C53v97Ev,
  (VTBL_ENTRY)&_ZN5S85C53v98Ev,
  (VTBL_ENTRY)&_ZN5S85C53v99Ev,
  (VTBL_ENTRY)&_ZN5S85C54v100Ev,
  (VTBL_ENTRY)&_ZN5S85C54v101Ev,
  (VTBL_ENTRY)&_ZN5S85C54v102Ev,
  (VTBL_ENTRY)&_ZN5S85C54v103Ev,
  (VTBL_ENTRY)&_ZN5S85C54v104Ev,
  (VTBL_ENTRY)&_ZN5S85C54v105Ev,
  (VTBL_ENTRY)&_ZN5S85C54v106Ev,
  (VTBL_ENTRY)&_ZN5S85C54v107Ev,
  (VTBL_ENTRY)&_ZN5S85C54v108Ev,
  (VTBL_ENTRY)&_ZN5S85C54v109Ev,
  (VTBL_ENTRY)&_ZN5S85C54v110Ev,
  (VTBL_ENTRY)&_ZN5S85C54v111Ev,
  (VTBL_ENTRY)&_ZN5S85C54v112Ev,
  (VTBL_ENTRY)&_ZN5S85C54v113Ev,
  (VTBL_ENTRY)&_ZN5S85C54v114Ev,
  (VTBL_ENTRY)&_ZN5S85C54v115Ev,
  (VTBL_ENTRY)&_ZN5S85C54v116Ev,
  (VTBL_ENTRY)&_ZN5S85C54v117Ev,
  (VTBL_ENTRY)&_ZN5S85C54v118Ev,
  (VTBL_ENTRY)&_ZN5S85C54v119Ev,
  (VTBL_ENTRY)&_ZN5S85C54v120Ev,
  (VTBL_ENTRY)&_ZN5S85C54v121Ev,
  (VTBL_ENTRY)&_ZN5S85C54v122Ev,
  (VTBL_ENTRY)&_ZN5S85C54v123Ev,
  (VTBL_ENTRY)&_ZN5S85C54v124Ev,
  (VTBL_ENTRY)&_ZN5S85C54v125Ev,
  (VTBL_ENTRY)&_ZN5S85C54v126Ev,
  (VTBL_ENTRY)&_ZN5S85C54v127Ev,
  (VTBL_ENTRY)&_ZN5S85C54v128Ev,
  (VTBL_ENTRY)&_ZN5S85C54v129Ev,
  (VTBL_ENTRY)&_ZN5S85C54v130Ev,
  (VTBL_ENTRY)&_ZN5S85C54v131Ev,
  (VTBL_ENTRY)&_ZN5S85C54v132Ev,
  (VTBL_ENTRY)&_ZN5S85C54v133Ev,
  (VTBL_ENTRY)&_ZN5S85C54v134Ev,
  (VTBL_ENTRY)&_ZN5S85C54v135Ev,
  (VTBL_ENTRY)&_ZN5S85C54v136Ev,
  (VTBL_ENTRY)&_ZN5S85C54v137Ev,
  (VTBL_ENTRY)&_ZN5S85C54v138Ev,
  (VTBL_ENTRY)&_ZN5S85C54v139Ev,
  (VTBL_ENTRY)&_ZN5S85C54v140Ev,
  (VTBL_ENTRY)&_ZN5S85C54v141Ev,
  (VTBL_ENTRY)&_ZN5S85C54v142Ev,
  (VTBL_ENTRY)&_ZN5S85C54v143Ev,
  (VTBL_ENTRY)&_ZN5S85C54v144Ev,
  (VTBL_ENTRY)&_ZN5S85C54v145Ev,
  (VTBL_ENTRY)&_ZN5S85C44v146Ev,
  (VTBL_ENTRY)&_ZN5S85C44v147Ev,
  (VTBL_ENTRY)&_ZN5S85C44v148Ev,
  (VTBL_ENTRY)&_ZN5S85C44v149Ev,
  (VTBL_ENTRY)&_ZN5S85C44v150Ev,
  (VTBL_ENTRY)&_ZN5S85C44v151Ev,
  (VTBL_ENTRY)&_ZN5S85C44v152Ev,
  (VTBL_ENTRY)&_ZN5S85C44v153Ev,
  (VTBL_ENTRY)&_ZN5S85C44v154Ev,
  (VTBL_ENTRY)&_ZN5S85C44v155Ev,
  (VTBL_ENTRY)&_ZN5S85C44v156Ev,
  (VTBL_ENTRY)&_ZN5S85C44v157Ev,
  (VTBL_ENTRY)&_ZN5S85C44v158Ev,
  (VTBL_ENTRY)&_ZN5S85C44v159Ev,
  (VTBL_ENTRY)&_ZN5S85C44v160Ev,
  (VTBL_ENTRY)&_ZN5S85C44v161Ev,
  (VTBL_ENTRY)&_ZN5S85C44v162Ev,
  (VTBL_ENTRY)&_ZN5S85C44v163Ev,
  (VTBL_ENTRY)&_ZN5S85C44v164Ev,
  (VTBL_ENTRY)&_ZN5S85C44v165Ev,
  (VTBL_ENTRY)&_ZN5S85C44v166Ev,
  (VTBL_ENTRY)&_ZN5S85C44v167Ev,
  (VTBL_ENTRY)&_ZN5S85C44v168Ev,
  (VTBL_ENTRY)&_ZN5S85C44v169Ev,
  (VTBL_ENTRY)&_ZN5S85C44v170Ev,
  (VTBL_ENTRY)&_ZN5S85C44v171Ev,
  (VTBL_ENTRY)&_ZN5S85C44v172Ev,
  (VTBL_ENTRY)&_ZN5S85C44v173Ev,
  (VTBL_ENTRY)&_ZN5S85C44v174Ev,
  (VTBL_ENTRY)&_ZN5S85C44v175Ev,
  (VTBL_ENTRY)&_ZN5S85C44v176Ev,
  (VTBL_ENTRY)&_ZN5S85C44v177Ev,
  (VTBL_ENTRY)&_ZN5S85C44v178Ev,
  (VTBL_ENTRY)&_ZN5S85C44v179Ev,
  (VTBL_ENTRY)&_ZN5S85C44v180Ev,
  (VTBL_ENTRY)&_ZN5S85C44v181Ev,
  (VTBL_ENTRY)&_ZN5S85C44v182Ev,
  (VTBL_ENTRY)&_ZN5S85C44v183Ev,
  (VTBL_ENTRY)&_ZN5S85C44v184Ev,
  (VTBL_ENTRY)&_ZN5S85C34v185Ev,
  (VTBL_ENTRY)&_ZN5S85C34v186Ev,
  (VTBL_ENTRY)&_ZN5S85C34v187Ev,
  (VTBL_ENTRY)&_ZN5S85C34v188Ev,
  (VTBL_ENTRY)&_ZN5S85C34v189Ev,
  (VTBL_ENTRY)&_ZN5S85C34v190Ev,
  (VTBL_ENTRY)&_ZN5S85C34v191Ev,
  (VTBL_ENTRY)&_ZN5S85C34v192Ev,
  (VTBL_ENTRY)&_ZN5S85C34v193Ev,
  (VTBL_ENTRY)&_ZN5S85C34v194Ev,
  (VTBL_ENTRY)&_ZN5S85C34v195Ev,
  (VTBL_ENTRY)&_ZN5S85C34v196Ev,
  (VTBL_ENTRY)&_ZN5S85C34v197Ev,
  (VTBL_ENTRY)&_ZN5S85C34v198Ev,
  (VTBL_ENTRY)&_ZN5S85C34v199Ev,
  (VTBL_ENTRY)&_ZN5S85C34v200Ev,
  (VTBL_ENTRY)&_ZN5S85C34v201Ev,
  (VTBL_ENTRY)&_ZN5S85C34v202Ev,
  (VTBL_ENTRY)&_ZN5S85C34v203Ev,
  (VTBL_ENTRY)&_ZN5S85C34v204Ev,
  (VTBL_ENTRY)&_ZN5S85C34v205Ev,
  (VTBL_ENTRY)&_ZN5S85C34v206Ev,
  (VTBL_ENTRY)&_ZN5S85C34v207Ev,
  (VTBL_ENTRY)&_ZN5S85C24v208Ev,
  (VTBL_ENTRY)&_ZN5S85C24v209Ev,
  (VTBL_ENTRY)&_ZN5S85C12v1Ev,
  (VTBL_ENTRY)&_ZN5S85C12v2Ev,
  (VTBL_ENTRY)&_ZN5S85C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S85C1[];
extern  VTBL_ENTRY _ZTV5S85C1[];
Class_Descriptor cd_S85C1 = {  "S85C1", // class name
  bases_S85C1, 6,
  &(vtc_S85C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1328,916), // object size
  NSPAIRA(_ZTI5S85C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S85C1),213, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C8  {
  int s37c8f0;
  __tsi64 s37c8f1;
  void *s37c8f2[4];
  int s37c8f3[2];
  void *s37c8f4;
  ::S85C27_nt s37c8f5;
  void *s37c8f6[2];
  virtual  ~S37C8(); // _ZN5S37C8D1Ev
  virtual void  v4(); // _ZN5S37C82v4Ev
  virtual void  v5(); // _ZN5S37C82v5Ev
  virtual void  v6(); // _ZN5S37C82v6Ev
  virtual void  v7(); // _ZN5S37C82v7Ev
  virtual void  v8(); // _ZN5S37C82v8Ev
  virtual void  v9(); // _ZN5S37C82v9Ev
  virtual void  v10(); // _ZN5S37C83v10Ev
  virtual void  v11(); // _ZN5S37C83v11Ev
  virtual void  v12(); // _ZN5S37C83v12Ev
  virtual void  v13(); // _ZN5S37C83v13Ev
  virtual void  v14(); // _ZN5S37C83v14Ev
  virtual void  v15(); // _ZN5S37C83v15Ev
  virtual void  v16(); // _ZN5S37C83v16Ev
  virtual void  v17(); // _ZN5S37C83v17Ev
  virtual void  v18(); // _ZN5S37C83v18Ev
  virtual void  v19(); // _ZN5S37C83v19Ev
  virtual void  v20(); // _ZN5S37C83v20Ev
  virtual void  v21(); // _ZN5S37C83v21Ev
  virtual void  v22(); // _ZN5S37C83v22Ev
  virtual void  v23(); // _ZN5S37C83v23Ev
  virtual void  v24(); // _ZN5S37C83v24Ev
  virtual void  v25(); // _ZN5S37C83v25Ev
  virtual void  v26(); // _ZN5S37C83v26Ev
  virtual void  v27(); // _ZN5S37C83v27Ev
  virtual void  v28(); // _ZN5S37C83v28Ev
  virtual void  v29(); // _ZN5S37C83v29Ev
  virtual void  v30(); // _ZN5S37C83v30Ev
  virtual void  v31(); // _ZN5S37C83v31Ev
  virtual void  v32(); // _ZN5S37C83v32Ev
  virtual void  v33(); // _ZN5S37C83v33Ev
  virtual void  v34(); // _ZN5S37C83v34Ev
  virtual void  v35(); // _ZN5S37C83v35Ev
  virtual void  v36(); // _ZN5S37C83v36Ev
  virtual void  v37(); // _ZN5S37C83v37Ev
  virtual void  v38(); // _ZN5S37C83v38Ev
  virtual void  v39(); // _ZN5S37C83v39Ev
  virtual void  v40(); // _ZN5S37C83v40Ev
  virtual void  v41(); // _ZN5S37C83v41Ev
  virtual void  v42(); // _ZN5S37C83v42Ev
  virtual void  v43(); // _ZN5S37C83v43Ev
  virtual void  v44(); // _ZN5S37C83v44Ev
  virtual void  v45(); // _ZN5S37C83v45Ev
  virtual void  v46(); // _ZN5S37C83v46Ev
  virtual void  v47(); // _ZN5S37C83v47Ev
  virtual void  v48(); // _ZN5S37C83v48Ev
  virtual void  v49(); // _ZN5S37C83v49Ev
  virtual void  v50(); // _ZN5S37C83v50Ev
  virtual void  v51(); // _ZN5S37C83v51Ev
  virtual void  v52(); // _ZN5S37C83v52Ev
  virtual void  v53(); // _ZN5S37C83v53Ev
  virtual void  v54(); // _ZN5S37C83v54Ev
  virtual void  v55(); // _ZN5S37C83v55Ev
  virtual void  v56(); // _ZN5S37C83v56Ev
  virtual void  v57(); // _ZN5S37C83v57Ev
  virtual void  v58(); // _ZN5S37C83v58Ev
  virtual void  v59(); // _ZN5S37C83v59Ev
  virtual void  v60(); // _ZN5S37C83v60Ev
  virtual void  v61(); // _ZN5S37C83v61Ev
  virtual void  v62(); // _ZN5S37C83v62Ev
  virtual void  v63(); // _ZN5S37C83v63Ev
  virtual void  v64(); // _ZN5S37C83v64Ev
  virtual void  v65(); // _ZN5S37C83v65Ev
  virtual void  v66(); // _ZN5S37C83v66Ev
  virtual void  v67(); // _ZN5S37C83v67Ev
  S37C8(); // tgen
};
//SIG(-1 S37C8) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S37C8 ::~S37C8(){ note_dtor("S37C8", this);}
void  S37C8 ::v4(){vfunc_called(this, "_ZN5S37C82v4Ev");}
void  S37C8 ::v5(){vfunc_called(this, "_ZN5S37C82v5Ev");}
void  S37C8 ::v6(){vfunc_called(this, "_ZN5S37C82v6Ev");}
void  S37C8 ::v7(){vfunc_called(this, "_ZN5S37C82v7Ev");}
void  S37C8 ::v8(){vfunc_called(this, "_ZN5S37C82v8Ev");}
void  S37C8 ::v9(){vfunc_called(this, "_ZN5S37C82v9Ev");}
void  S37C8 ::v10(){vfunc_called(this, "_ZN5S37C83v10Ev");}
void  S37C8 ::v11(){vfunc_called(this, "_ZN5S37C83v11Ev");}
void  S37C8 ::v12(){vfunc_called(this, "_ZN5S37C83v12Ev");}
void  S37C8 ::v13(){vfunc_called(this, "_ZN5S37C83v13Ev");}
void  S37C8 ::v14(){vfunc_called(this, "_ZN5S37C83v14Ev");}
void  S37C8 ::v15(){vfunc_called(this, "_ZN5S37C83v15Ev");}
void  S37C8 ::v16(){vfunc_called(this, "_ZN5S37C83v16Ev");}
void  S37C8 ::v17(){vfunc_called(this, "_ZN5S37C83v17Ev");}
void  S37C8 ::v18(){vfunc_called(this, "_ZN5S37C83v18Ev");}
void  S37C8 ::v19(){vfunc_called(this, "_ZN5S37C83v19Ev");}
void  S37C8 ::v20(){vfunc_called(this, "_ZN5S37C83v20Ev");}
void  S37C8 ::v21(){vfunc_called(this, "_ZN5S37C83v21Ev");}
void  S37C8 ::v22(){vfunc_called(this, "_ZN5S37C83v22Ev");}
void  S37C8 ::v23(){vfunc_called(this, "_ZN5S37C83v23Ev");}
void  S37C8 ::v24(){vfunc_called(this, "_ZN5S37C83v24Ev");}
void  S37C8 ::v25(){vfunc_called(this, "_ZN5S37C83v25Ev");}
void  S37C8 ::v26(){vfunc_called(this, "_ZN5S37C83v26Ev");}
void  S37C8 ::v27(){vfunc_called(this, "_ZN5S37C83v27Ev");}
void  S37C8 ::v28(){vfunc_called(this, "_ZN5S37C83v28Ev");}
void  S37C8 ::v29(){vfunc_called(this, "_ZN5S37C83v29Ev");}
void  S37C8 ::v30(){vfunc_called(this, "_ZN5S37C83v30Ev");}
void  S37C8 ::v31(){vfunc_called(this, "_ZN5S37C83v31Ev");}
void  S37C8 ::v32(){vfunc_called(this, "_ZN5S37C83v32Ev");}
void  S37C8 ::v33(){vfunc_called(this, "_ZN5S37C83v33Ev");}
void  S37C8 ::v34(){vfunc_called(this, "_ZN5S37C83v34Ev");}
void  S37C8 ::v35(){vfunc_called(this, "_ZN5S37C83v35Ev");}
void  S37C8 ::v36(){vfunc_called(this, "_ZN5S37C83v36Ev");}
void  S37C8 ::v37(){vfunc_called(this, "_ZN5S37C83v37Ev");}
void  S37C8 ::v38(){vfunc_called(this, "_ZN5S37C83v38Ev");}
void  S37C8 ::v39(){vfunc_called(this, "_ZN5S37C83v39Ev");}
void  S37C8 ::v40(){vfunc_called(this, "_ZN5S37C83v40Ev");}
void  S37C8 ::v41(){vfunc_called(this, "_ZN5S37C83v41Ev");}
void  S37C8 ::v42(){vfunc_called(this, "_ZN5S37C83v42Ev");}
void  S37C8 ::v43(){vfunc_called(this, "_ZN5S37C83v43Ev");}
void  S37C8 ::v44(){vfunc_called(this, "_ZN5S37C83v44Ev");}
void  S37C8 ::v45(){vfunc_called(this, "_ZN5S37C83v45Ev");}
void  S37C8 ::v46(){vfunc_called(this, "_ZN5S37C83v46Ev");}
void  S37C8 ::v47(){vfunc_called(this, "_ZN5S37C83v47Ev");}
void  S37C8 ::v48(){vfunc_called(this, "_ZN5S37C83v48Ev");}
void  S37C8 ::v49(){vfunc_called(this, "_ZN5S37C83v49Ev");}
void  S37C8 ::v50(){vfunc_called(this, "_ZN5S37C83v50Ev");}
void  S37C8 ::v51(){vfunc_called(this, "_ZN5S37C83v51Ev");}
void  S37C8 ::v52(){vfunc_called(this, "_ZN5S37C83v52Ev");}
void  S37C8 ::v53(){vfunc_called(this, "_ZN5S37C83v53Ev");}
void  S37C8 ::v54(){vfunc_called(this, "_ZN5S37C83v54Ev");}
void  S37C8 ::v55(){vfunc_called(this, "_ZN5S37C83v55Ev");}
void  S37C8 ::v56(){vfunc_called(this, "_ZN5S37C83v56Ev");}
void  S37C8 ::v57(){vfunc_called(this, "_ZN5S37C83v57Ev");}
void  S37C8 ::v58(){vfunc_called(this, "_ZN5S37C83v58Ev");}
void  S37C8 ::v59(){vfunc_called(this, "_ZN5S37C83v59Ev");}
void  S37C8 ::v60(){vfunc_called(this, "_ZN5S37C83v60Ev");}
void  S37C8 ::v61(){vfunc_called(this, "_ZN5S37C83v61Ev");}
void  S37C8 ::v62(){vfunc_called(this, "_ZN5S37C83v62Ev");}
void  S37C8 ::v63(){vfunc_called(this, "_ZN5S37C83v63Ev");}
void  S37C8 ::v64(){vfunc_called(this, "_ZN5S37C83v64Ev");}
void  S37C8 ::v65(){vfunc_called(this, "_ZN5S37C83v65Ev");}
void  S37C8 ::v66(){vfunc_called(this, "_ZN5S37C83v66Ev");}
void  S37C8 ::v67(){vfunc_called(this, "_ZN5S37C83v67Ev");}
S37C8 ::S37C8(){ note_ctor("S37C8", this);} // tgen

static void Test_S37C8()
{
  extern Class_Descriptor cd_S37C8;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S37C8, buf);
    S37C8 *dp, &lv = *(dp=new (buf) S37C8());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S37C8)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C8)");
    check_field_offset(lv, s37c8f0, ABISELECT(8,4), "S37C8.s37c8f0");
    check_field_offset(lv, s37c8f1, ABISELECT(16,8), "S37C8.s37c8f1");
    check_field_offset(lv, s37c8f2, ABISELECT(24,16), "S37C8.s37c8f2");
    check_field_offset(lv, s37c8f3, ABISELECT(56,32), "S37C8.s37c8f3");
    check_field_offset(lv, s37c8f4, ABISELECT(64,40), "S37C8.s37c8f4");
    check_field_offset(lv, s37c8f5, ABISELECT(72,44), "S37C8.s37c8f5");
    check_field_offset(lv, s37c8f6, ABISELECT(80,52), "S37C8.s37c8f6");
    test_class_info(&lv, &cd_S37C8);
    dp->~S37C8();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C8(Test_S37C8, "S37C8", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S37C8C1Ev();
extern void _ZN5S37C8D1Ev();
Name_Map name_map_S37C8[] = {
  NSPAIR(_ZN5S37C8C1Ev),
  NSPAIR(_ZN5S37C8D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S37C8[];
extern void _ZN5S37C8D1Ev();
extern void _ZN5S37C8D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
static  VTBL_ENTRY vtc_S37C8[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C8[0]),
  (VTBL_ENTRY)&_ZN5S37C8D1Ev,
  (VTBL_ENTRY)&_ZN5S37C8D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
};
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
Class_Descriptor cd_S37C8 = {  "S37C8", // class name
  0,0,//no base classes
  &(vtc_S37C8[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S37C8),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S37C8),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C7  : S37C8 {
  virtual  ~S37C7(); // _ZN5S37C7D1Ev
  virtual void  v68(); // _ZN5S37C73v68Ev
  virtual void  v69(); // _ZN5S37C73v69Ev
  S37C7(); // tgen
};
//SIG(-1 S37C7) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S37C7 ::~S37C7(){ note_dtor("S37C7", this);}
void  S37C7 ::v68(){vfunc_called(this, "_ZN5S37C73v68Ev");}
void  S37C7 ::v69(){vfunc_called(this, "_ZN5S37C73v69Ev");}
S37C7 ::S37C7(){ note_ctor("S37C7", this);} // tgen

static void Test_S37C7()
{
  extern Class_Descriptor cd_S37C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S37C7, buf);
    S37C7 *dp, &lv = *(dp=new (buf) S37C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S37C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C7)");
    check_base_class_offset(lv, (S37C8*), 0, "S37C7");
    test_class_info(&lv, &cd_S37C7);
    dp->~S37C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C7(Test_S37C7, "S37C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S37C7C1Ev();
extern void _ZN5S37C7D1Ev();
Name_Map name_map_S37C7[] = {
  NSPAIR(_ZN5S37C7C1Ev),
  NSPAIR(_ZN5S37C7D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
static Base_Class bases_S37C7[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C7[];
extern void _ZN5S37C7D1Ev();
extern void _ZN5S37C7D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
static  VTBL_ENTRY vtc_S37C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C7[0]),
  (VTBL_ENTRY)&_ZN5S37C7D1Ev,
  (VTBL_ENTRY)&_ZN5S37C7D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
};
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
Class_Descriptor cd_S37C7 = {  "S37C7", // class name
  bases_S37C7, 1,
  &(vtc_S37C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S37C7),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C7),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C6  : S37C7 {
  ::S80C9_nt s37c6f0;
  int s37c6f1;
  unsigned int s37c6f2:1;
  unsigned int s37c6f3:1;
  unsigned int s37c6f4:1;
  unsigned int s37c6f5:1;
  ::S85C35 s37c6f6;
  ::S85C22_nt s37c6f7;
  void *s37c6f8;
  ::S80C31 s37c6f9;
  ::S80C31 s37c6f10;
  ::S80C29 s37c6f11;
  ::S80C19 s37c6f12;
  char s37c6f13;
  int s37c6f14;
  void *s37c6f15;
  ::S85C27_nt s37c6f16;
  ::S85C27_nt s37c6f17;
  ::S85C27_nt s37c6f18;
  ::S85C27_nt s37c6f19;
  ::S85C27_nt s37c6f20;
  ::S85C27_nt s37c6f21;
  ::S80C21_nt s37c6f22;
  ::S80C21_nt s37c6f23;
  ::S80C21_nt s37c6f24;
  ::S80C21_nt s37c6f25;
  ::S80C21_nt s37c6f26;
  ::S80C21_nt s37c6f27;
  ::S80C21_nt s37c6f28;
  ::S80C21_nt s37c6f29;
  ::S80C21_nt s37c6f30;
  ::S80C21_nt s37c6f31;
  virtual  ~S37C6(); // _ZN5S37C6D1Ev
  virtual void  v70(); // _ZN5S37C63v70Ev
  virtual void  v71(); // _ZN5S37C63v71Ev
  virtual void  v72(); // _ZN5S37C63v72Ev
  virtual void  v73(); // _ZN5S37C63v73Ev
  virtual void  v74(); // _ZN5S37C63v74Ev
  virtual void  v75(); // _ZN5S37C63v75Ev
  virtual void  v76(); // _ZN5S37C63v76Ev
  virtual void  v77(); // _ZN5S37C63v77Ev
  virtual void  v78(); // _ZN5S37C63v78Ev
  virtual void  v79(); // _ZN5S37C63v79Ev
  virtual void  v80(); // _ZN5S37C63v80Ev
  virtual void  v81(); // _ZN5S37C63v81Ev
  virtual void  v82(); // _ZN5S37C63v82Ev
  virtual void  v83(); // _ZN5S37C63v83Ev
  virtual void  v84(); // _ZN5S37C63v84Ev
  virtual void  v85(); // _ZN5S37C63v85Ev
  virtual void  v86(); // _ZN5S37C63v86Ev
  virtual void  v87(); // _ZN5S37C63v87Ev
  virtual void  v88(); // _ZN5S37C63v88Ev
  virtual void  v89(); // _ZN5S37C63v89Ev
  virtual void  v90(); // _ZN5S37C63v90Ev
  virtual void  v91(); // _ZN5S37C63v91Ev
  virtual void  v92(); // _ZN5S37C63v92Ev
  virtual void  v93(); // _ZN5S37C63v93Ev
  virtual void  v94(); // _ZN5S37C63v94Ev
  virtual void  v95(); // _ZN5S37C63v95Ev
  virtual void  v96(); // _ZN5S37C63v96Ev
  virtual void  v97(); // _ZN5S37C63v97Ev
  virtual void  v98(); // _ZN5S37C63v98Ev
  virtual void  v99(); // _ZN5S37C63v99Ev
  virtual void  v100(); // _ZN5S37C64v100Ev
  virtual void  v101(); // _ZN5S37C64v101Ev
  virtual void  v102(); // _ZN5S37C64v102Ev
  virtual void  v103(); // _ZN5S37C64v103Ev
  virtual void  v104(); // _ZN5S37C64v104Ev
  virtual void  v105(); // _ZN5S37C64v105Ev
  virtual void  v106(); // _ZN5S37C64v106Ev
  virtual void  v107(); // _ZN5S37C64v107Ev
  virtual void  v108(); // _ZN5S37C64v108Ev
  virtual void  v109(); // _ZN5S37C64v109Ev
  virtual void  v110(); // _ZN5S37C64v110Ev
  virtual void  v111(); // _ZN5S37C64v111Ev
  virtual void  v112(); // _ZN5S37C64v112Ev
  virtual void  v113(); // _ZN5S37C64v113Ev
  virtual void  v114(); // _ZN5S37C64v114Ev
  virtual void  v115(); // _ZN5S37C64v115Ev
  virtual void  v116(); // _ZN5S37C64v116Ev
  virtual void  v117(); // _ZN5S37C64v117Ev
  virtual void  v118(); // _ZN5S37C64v118Ev
  virtual void  v119(); // _ZN5S37C64v119Ev
  virtual void  v120(); // _ZN5S37C64v120Ev
  virtual void  v121(); // _ZN5S37C64v121Ev
  virtual void  v122(); // _ZN5S37C64v122Ev
  virtual void  v123(); // _ZN5S37C64v123Ev
  virtual void  v124(); // _ZN5S37C64v124Ev
  virtual void  v125(); // _ZN5S37C64v125Ev
  virtual void  v126(); // _ZN5S37C64v126Ev
  virtual void  v127(); // _ZN5S37C64v127Ev
  virtual void  v128(); // _ZN5S37C64v128Ev
  virtual void  v129(); // _ZN5S37C64v129Ev
  virtual void  v130(); // _ZN5S37C64v130Ev
  virtual void  v131(); // _ZN5S37C64v131Ev
  virtual void  v132(); // _ZN5S37C64v132Ev
  virtual void  v133(); // _ZN5S37C64v133Ev
  virtual void  v134(); // _ZN5S37C64v134Ev
  virtual void  v135(); // _ZN5S37C64v135Ev
  virtual void  v136(); // _ZN5S37C64v136Ev
  virtual void  v137(); // _ZN5S37C64v137Ev
  virtual void  v138(); // _ZN5S37C64v138Ev
  virtual void  v139(); // _ZN5S37C64v139Ev
  virtual void  v140(); // _ZN5S37C64v140Ev
  virtual void  v141(); // _ZN5S37C64v141Ev
  virtual void  v142(); // _ZN5S37C64v142Ev
  virtual void  v143(); // _ZN5S37C64v143Ev
  virtual void  v144(); // _ZN5S37C64v144Ev
  virtual void  v145(); // _ZN5S37C64v145Ev
  S37C6(); // tgen
};
//SIG(-1 S37C6) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S37C6 ::~S37C6(){ note_dtor("S37C6", this);}
void  S37C6 ::v70(){vfunc_called(this, "_ZN5S37C63v70Ev");}
void  S37C6 ::v71(){vfunc_called(this, "_ZN5S37C63v71Ev");}
void  S37C6 ::v72(){vfunc_called(this, "_ZN5S37C63v72Ev");}
void  S37C6 ::v73(){vfunc_called(this, "_ZN5S37C63v73Ev");}
void  S37C6 ::v74(){vfunc_called(this, "_ZN5S37C63v74Ev");}
void  S37C6 ::v75(){vfunc_called(this, "_ZN5S37C63v75Ev");}
void  S37C6 ::v76(){vfunc_called(this, "_ZN5S37C63v76Ev");}
void  S37C6 ::v77(){vfunc_called(this, "_ZN5S37C63v77Ev");}
void  S37C6 ::v78(){vfunc_called(this, "_ZN5S37C63v78Ev");}
void  S37C6 ::v79(){vfunc_called(this, "_ZN5S37C63v79Ev");}
void  S37C6 ::v80(){vfunc_called(this, "_ZN5S37C63v80Ev");}
void  S37C6 ::v81(){vfunc_called(this, "_ZN5S37C63v81Ev");}
void  S37C6 ::v82(){vfunc_called(this, "_ZN5S37C63v82Ev");}
void  S37C6 ::v83(){vfunc_called(this, "_ZN5S37C63v83Ev");}
void  S37C6 ::v84(){vfunc_called(this, "_ZN5S37C63v84Ev");}
void  S37C6 ::v85(){vfunc_called(this, "_ZN5S37C63v85Ev");}
void  S37C6 ::v86(){vfunc_called(this, "_ZN5S37C63v86Ev");}
void  S37C6 ::v87(){vfunc_called(this, "_ZN5S37C63v87Ev");}
void  S37C6 ::v88(){vfunc_called(this, "_ZN5S37C63v88Ev");}
void  S37C6 ::v89(){vfunc_called(this, "_ZN5S37C63v89Ev");}
void  S37C6 ::v90(){vfunc_called(this, "_ZN5S37C63v90Ev");}
void  S37C6 ::v91(){vfunc_called(this, "_ZN5S37C63v91Ev");}
void  S37C6 ::v92(){vfunc_called(this, "_ZN5S37C63v92Ev");}
void  S37C6 ::v93(){vfunc_called(this, "_ZN5S37C63v93Ev");}
void  S37C6 ::v94(){vfunc_called(this, "_ZN5S37C63v94Ev");}
void  S37C6 ::v95(){vfunc_called(this, "_ZN5S37C63v95Ev");}
void  S37C6 ::v96(){vfunc_called(this, "_ZN5S37C63v96Ev");}
void  S37C6 ::v97(){vfunc_called(this, "_ZN5S37C63v97Ev");}
void  S37C6 ::v98(){vfunc_called(this, "_ZN5S37C63v98Ev");}
void  S37C6 ::v99(){vfunc_called(this, "_ZN5S37C63v99Ev");}
void  S37C6 ::v100(){vfunc_called(this, "_ZN5S37C64v100Ev");}
void  S37C6 ::v101(){vfunc_called(this, "_ZN5S37C64v101Ev");}
void  S37C6 ::v102(){vfunc_called(this, "_ZN5S37C64v102Ev");}
void  S37C6 ::v103(){vfunc_called(this, "_ZN5S37C64v103Ev");}
void  S37C6 ::v104(){vfunc_called(this, "_ZN5S37C64v104Ev");}
void  S37C6 ::v105(){vfunc_called(this, "_ZN5S37C64v105Ev");}
void  S37C6 ::v106(){vfunc_called(this, "_ZN5S37C64v106Ev");}
void  S37C6 ::v107(){vfunc_called(this, "_ZN5S37C64v107Ev");}
void  S37C6 ::v108(){vfunc_called(this, "_ZN5S37C64v108Ev");}
void  S37C6 ::v109(){vfunc_called(this, "_ZN5S37C64v109Ev");}
void  S37C6 ::v110(){vfunc_called(this, "_ZN5S37C64v110Ev");}
void  S37C6 ::v111(){vfunc_called(this, "_ZN5S37C64v111Ev");}
void  S37C6 ::v112(){vfunc_called(this, "_ZN5S37C64v112Ev");}
void  S37C6 ::v113(){vfunc_called(this, "_ZN5S37C64v113Ev");}
void  S37C6 ::v114(){vfunc_called(this, "_ZN5S37C64v114Ev");}
void  S37C6 ::v115(){vfunc_called(this, "_ZN5S37C64v115Ev");}
void  S37C6 ::v116(){vfunc_called(this, "_ZN5S37C64v116Ev");}
void  S37C6 ::v117(){vfunc_called(this, "_ZN5S37C64v117Ev");}
void  S37C6 ::v118(){vfunc_called(this, "_ZN5S37C64v118Ev");}
void  S37C6 ::v119(){vfunc_called(this, "_ZN5S37C64v119Ev");}
void  S37C6 ::v120(){vfunc_called(this, "_ZN5S37C64v120Ev");}
void  S37C6 ::v121(){vfunc_called(this, "_ZN5S37C64v121Ev");}
void  S37C6 ::v122(){vfunc_called(this, "_ZN5S37C64v122Ev");}
void  S37C6 ::v123(){vfunc_called(this, "_ZN5S37C64v123Ev");}
void  S37C6 ::v124(){vfunc_called(this, "_ZN5S37C64v124Ev");}
void  S37C6 ::v125(){vfunc_called(this, "_ZN5S37C64v125Ev");}
void  S37C6 ::v126(){vfunc_called(this, "_ZN5S37C64v126Ev");}
void  S37C6 ::v127(){vfunc_called(this, "_ZN5S37C64v127Ev");}
void  S37C6 ::v128(){vfunc_called(this, "_ZN5S37C64v128Ev");}
void  S37C6 ::v129(){vfunc_called(this, "_ZN5S37C64v129Ev");}
void  S37C6 ::v130(){vfunc_called(this, "_ZN5S37C64v130Ev");}
void  S37C6 ::v131(){vfunc_called(this, "_ZN5S37C64v131Ev");}
void  S37C6 ::v132(){vfunc_called(this, "_ZN5S37C64v132Ev");}
void  S37C6 ::v133(){vfunc_called(this, "_ZN5S37C64v133Ev");}
void  S37C6 ::v134(){vfunc_called(this, "_ZN5S37C64v134Ev");}
void  S37C6 ::v135(){vfunc_called(this, "_ZN5S37C64v135Ev");}
void  S37C6 ::v136(){vfunc_called(this, "_ZN5S37C64v136Ev");}
void  S37C6 ::v137(){vfunc_called(this, "_ZN5S37C64v137Ev");}
void  S37C6 ::v138(){vfunc_called(this, "_ZN5S37C64v138Ev");}
void  S37C6 ::v139(){vfunc_called(this, "_ZN5S37C64v139Ev");}
void  S37C6 ::v140(){vfunc_called(this, "_ZN5S37C64v140Ev");}
void  S37C6 ::v141(){vfunc_called(this, "_ZN5S37C64v141Ev");}
void  S37C6 ::v142(){vfunc_called(this, "_ZN5S37C64v142Ev");}
void  S37C6 ::v143(){vfunc_called(this, "_ZN5S37C64v143Ev");}
void  S37C6 ::v144(){vfunc_called(this, "_ZN5S37C64v144Ev");}
void  S37C6 ::v145(){vfunc_called(this, "_ZN5S37C64v145Ev");}
S37C6 ::S37C6(){ note_ctor("S37C6", this);} // tgen

static void Test_S37C6()
{
  extern Class_Descriptor cd_S37C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S37C6, buf);
    S37C6 *dp, &lv = *(dp=new (buf) S37C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S37C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C6)");
    check_base_class_offset(lv, (S37C8*)(S37C7*), 0, "S37C6");
    check_base_class_offset(lv, (S37C7*), 0, "S37C6");
    check_field_offset(lv, s37c6f0, ABISELECT(96,60), "S37C6.s37c6f0");
    check_field_offset(lv, s37c6f1, ABISELECT(124,88), "S37C6.s37c6f1");
    set_bf_and_test(lv, s37c6f2, ABISELECT(128,92), 0, 1, 1, "S37C6");
    set_bf_and_test(lv, s37c6f3, ABISELECT(128,92), 1, 1, 1, "S37C6");
    set_bf_and_test(lv, s37c6f4, ABISELECT(128,92), 2, 1, 1, "S37C6");
    set_bf_and_test(lv, s37c6f5, ABISELECT(128,92), 3, 1, 1, "S37C6");
    check_field_offset(lv, s37c6f6, ABISELECT(136,96), "S37C6.s37c6f6");
    check_field_offset(lv, s37c6f7, ABISELECT(152,108), "S37C6.s37c6f7");
    check_field_offset(lv, s37c6f8, ABISELECT(168,120), "S37C6.s37c6f8");
    check_field_offset(lv, s37c6f9, ABISELECT(176,124), "S37C6.s37c6f9");
    check_field_offset(lv, s37c6f10, ABISELECT(192,136), "S37C6.s37c6f10");
    check_field_offset(lv, s37c6f11, ABISELECT(208,148), "S37C6.s37c6f11");
    check_field_offset(lv, s37c6f12, ABISELECT(224,160), "S37C6.s37c6f12");
    check_field_offset(lv, s37c6f13, ABISELECT(240,172), "S37C6.s37c6f13");
    check_field_offset(lv, s37c6f14, ABISELECT(244,176), "S37C6.s37c6f14");
    check_field_offset(lv, s37c6f15, ABISELECT(248,180), "S37C6.s37c6f15");
    check_field_offset(lv, s37c6f16, ABISELECT(256,184), "S37C6.s37c6f16");
    check_field_offset(lv, s37c6f17, ABISELECT(264,192), "S37C6.s37c6f17");
    check_field_offset(lv, s37c6f18, ABISELECT(272,200), "S37C6.s37c6f18");
    check_field_offset(lv, s37c6f19, ABISELECT(280,208), "S37C6.s37c6f19");
    check_field_offset(lv, s37c6f20, ABISELECT(288,216), "S37C6.s37c6f20");
    check_field_offset(lv, s37c6f21, ABISELECT(296,224), "S37C6.s37c6f21");
    check_field_offset(lv, s37c6f22, ABISELECT(304,232), "S37C6.s37c6f22");
    check_field_offset(lv, s37c6f23, ABISELECT(320,244), "S37C6.s37c6f23");
    check_field_offset(lv, s37c6f24, ABISELECT(336,256), "S37C6.s37c6f24");
    check_field_offset(lv, s37c6f25, ABISELECT(352,268), "S37C6.s37c6f25");
    check_field_offset(lv, s37c6f26, ABISELECT(368,280), "S37C6.s37c6f26");
    check_field_offset(lv, s37c6f27, ABISELECT(384,292), "S37C6.s37c6f27");
    check_field_offset(lv, s37c6f28, ABISELECT(400,304), "S37C6.s37c6f28");
    check_field_offset(lv, s37c6f29, ABISELECT(416,316), "S37C6.s37c6f29");
    check_field_offset(lv, s37c6f30, ABISELECT(432,328), "S37C6.s37c6f30");
    check_field_offset(lv, s37c6f31, ABISELECT(448,340), "S37C6.s37c6f31");
    test_class_info(&lv, &cd_S37C6);
    dp->~S37C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C6(Test_S37C6, "S37C6", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S37C6C1Ev();
extern void _ZN5S37C6D1Ev();
Name_Map name_map_S37C6[] = {
  NSPAIR(_ZN5S37C6C1Ev),
  NSPAIR(_ZN5S37C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
extern Class_Descriptor cd_S37C7;
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
static Base_Class bases_S37C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C6[];
extern void _ZN5S37C6D1Ev();
extern void _ZN5S37C6D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
extern void _ZN5S37C63v70Ev();
extern void _ZN5S37C63v71Ev();
extern void _ZN5S37C63v72Ev();
extern void _ZN5S37C63v73Ev();
extern void _ZN5S37C63v74Ev();
extern void _ZN5S37C63v75Ev();
extern void _ZN5S37C63v76Ev();
extern void _ZN5S37C63v77Ev();
extern void _ZN5S37C63v78Ev();
extern void _ZN5S37C63v79Ev();
extern void _ZN5S37C63v80Ev();
extern void _ZN5S37C63v81Ev();
extern void _ZN5S37C63v82Ev();
extern void _ZN5S37C63v83Ev();
extern void _ZN5S37C63v84Ev();
extern void _ZN5S37C63v85Ev();
extern void _ZN5S37C63v86Ev();
extern void _ZN5S37C63v87Ev();
extern void _ZN5S37C63v88Ev();
extern void _ZN5S37C63v89Ev();
extern void _ZN5S37C63v90Ev();
extern void _ZN5S37C63v91Ev();
extern void _ZN5S37C63v92Ev();
extern void _ZN5S37C63v93Ev();
extern void _ZN5S37C63v94Ev();
extern void _ZN5S37C63v95Ev();
extern void _ZN5S37C63v96Ev();
extern void _ZN5S37C63v97Ev();
extern void _ZN5S37C63v98Ev();
extern void _ZN5S37C63v99Ev();
extern void _ZN5S37C64v100Ev();
extern void _ZN5S37C64v101Ev();
extern void _ZN5S37C64v102Ev();
extern void _ZN5S37C64v103Ev();
extern void _ZN5S37C64v104Ev();
extern void _ZN5S37C64v105Ev();
extern void _ZN5S37C64v106Ev();
extern void _ZN5S37C64v107Ev();
extern void _ZN5S37C64v108Ev();
extern void _ZN5S37C64v109Ev();
extern void _ZN5S37C64v110Ev();
extern void _ZN5S37C64v111Ev();
extern void _ZN5S37C64v112Ev();
extern void _ZN5S37C64v113Ev();
extern void _ZN5S37C64v114Ev();
extern void _ZN5S37C64v115Ev();
extern void _ZN5S37C64v116Ev();
extern void _ZN5S37C64v117Ev();
extern void _ZN5S37C64v118Ev();
extern void _ZN5S37C64v119Ev();
extern void _ZN5S37C64v120Ev();
extern void _ZN5S37C64v121Ev();
extern void _ZN5S37C64v122Ev();
extern void _ZN5S37C64v123Ev();
extern void _ZN5S37C64v124Ev();
extern void _ZN5S37C64v125Ev();
extern void _ZN5S37C64v126Ev();
extern void _ZN5S37C64v127Ev();
extern void _ZN5S37C64v128Ev();
extern void _ZN5S37C64v129Ev();
extern void _ZN5S37C64v130Ev();
extern void _ZN5S37C64v131Ev();
extern void _ZN5S37C64v132Ev();
extern void _ZN5S37C64v133Ev();
extern void _ZN5S37C64v134Ev();
extern void _ZN5S37C64v135Ev();
extern void _ZN5S37C64v136Ev();
extern void _ZN5S37C64v137Ev();
extern void _ZN5S37C64v138Ev();
extern void _ZN5S37C64v139Ev();
extern void _ZN5S37C64v140Ev();
extern void _ZN5S37C64v141Ev();
extern void _ZN5S37C64v142Ev();
extern void _ZN5S37C64v143Ev();
extern void _ZN5S37C64v144Ev();
extern void _ZN5S37C64v145Ev();
static  VTBL_ENTRY vtc_S37C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C6[0]),
  (VTBL_ENTRY)&_ZN5S37C6D1Ev,
  (VTBL_ENTRY)&_ZN5S37C6D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
  (VTBL_ENTRY)&_ZN5S37C63v70Ev,
  (VTBL_ENTRY)&_ZN5S37C63v71Ev,
  (VTBL_ENTRY)&_ZN5S37C63v72Ev,
  (VTBL_ENTRY)&_ZN5S37C63v73Ev,
  (VTBL_ENTRY)&_ZN5S37C63v74Ev,
  (VTBL_ENTRY)&_ZN5S37C63v75Ev,
  (VTBL_ENTRY)&_ZN5S37C63v76Ev,
  (VTBL_ENTRY)&_ZN5S37C63v77Ev,
  (VTBL_ENTRY)&_ZN5S37C63v78Ev,
  (VTBL_ENTRY)&_ZN5S37C63v79Ev,
  (VTBL_ENTRY)&_ZN5S37C63v80Ev,
  (VTBL_ENTRY)&_ZN5S37C63v81Ev,
  (VTBL_ENTRY)&_ZN5S37C63v82Ev,
  (VTBL_ENTRY)&_ZN5S37C63v83Ev,
  (VTBL_ENTRY)&_ZN5S37C63v84Ev,
  (VTBL_ENTRY)&_ZN5S37C63v85Ev,
  (VTBL_ENTRY)&_ZN5S37C63v86Ev,
  (VTBL_ENTRY)&_ZN5S37C63v87Ev,
  (VTBL_ENTRY)&_ZN5S37C63v88Ev,
  (VTBL_ENTRY)&_ZN5S37C63v89Ev,
  (VTBL_ENTRY)&_ZN5S37C63v90Ev,
  (VTBL_ENTRY)&_ZN5S37C63v91Ev,
  (VTBL_ENTRY)&_ZN5S37C63v92Ev,
  (VTBL_ENTRY)&_ZN5S37C63v93Ev,
  (VTBL_ENTRY)&_ZN5S37C63v94Ev,
  (VTBL_ENTRY)&_ZN5S37C63v95Ev,
  (VTBL_ENTRY)&_ZN5S37C63v96Ev,
  (VTBL_ENTRY)&_ZN5S37C63v97Ev,
  (VTBL_ENTRY)&_ZN5S37C63v98Ev,
  (VTBL_ENTRY)&_ZN5S37C63v99Ev,
  (VTBL_ENTRY)&_ZN5S37C64v100Ev,
  (VTBL_ENTRY)&_ZN5S37C64v101Ev,
  (VTBL_ENTRY)&_ZN5S37C64v102Ev,
  (VTBL_ENTRY)&_ZN5S37C64v103Ev,
  (VTBL_ENTRY)&_ZN5S37C64v104Ev,
  (VTBL_ENTRY)&_ZN5S37C64v105Ev,
  (VTBL_ENTRY)&_ZN5S37C64v106Ev,
  (VTBL_ENTRY)&_ZN5S37C64v107Ev,
  (VTBL_ENTRY)&_ZN5S37C64v108Ev,
  (VTBL_ENTRY)&_ZN5S37C64v109Ev,
  (VTBL_ENTRY)&_ZN5S37C64v110Ev,
  (VTBL_ENTRY)&_ZN5S37C64v111Ev,
  (VTBL_ENTRY)&_ZN5S37C64v112Ev,
  (VTBL_ENTRY)&_ZN5S37C64v113Ev,
  (VTBL_ENTRY)&_ZN5S37C64v114Ev,
  (VTBL_ENTRY)&_ZN5S37C64v115Ev,
  (VTBL_ENTRY)&_ZN5S37C64v116Ev,
  (VTBL_ENTRY)&_ZN5S37C64v117Ev,
  (VTBL_ENTRY)&_ZN5S37C64v118Ev,
  (VTBL_ENTRY)&_ZN5S37C64v119Ev,
  (VTBL_ENTRY)&_ZN5S37C64v120Ev,
  (VTBL_ENTRY)&_ZN5S37C64v121Ev,
  (VTBL_ENTRY)&_ZN5S37C64v122Ev,
  (VTBL_ENTRY)&_ZN5S37C64v123Ev,
  (VTBL_ENTRY)&_ZN5S37C64v124Ev,
  (VTBL_ENTRY)&_ZN5S37C64v125Ev,
  (VTBL_ENTRY)&_ZN5S37C64v126Ev,
  (VTBL_ENTRY)&_ZN5S37C64v127Ev,
  (VTBL_ENTRY)&_ZN5S37C64v128Ev,
  (VTBL_ENTRY)&_ZN5S37C64v129Ev,
  (VTBL_ENTRY)&_ZN5S37C64v130Ev,
  (VTBL_ENTRY)&_ZN5S37C64v131Ev,
  (VTBL_ENTRY)&_ZN5S37C64v132Ev,
  (VTBL_ENTRY)&_ZN5S37C64v133Ev,
  (VTBL_ENTRY)&_ZN5S37C64v134Ev,
  (VTBL_ENTRY)&_ZN5S37C64v135Ev,
  (VTBL_ENTRY)&_ZN5S37C64v136Ev,
  (VTBL_ENTRY)&_ZN5S37C64v137Ev,
  (VTBL_ENTRY)&_ZN5S37C64v138Ev,
  (VTBL_ENTRY)&_ZN5S37C64v139Ev,
  (VTBL_ENTRY)&_ZN5S37C64v140Ev,
  (VTBL_ENTRY)&_ZN5S37C64v141Ev,
  (VTBL_ENTRY)&_ZN5S37C64v142Ev,
  (VTBL_ENTRY)&_ZN5S37C64v143Ev,
  (VTBL_ENTRY)&_ZN5S37C64v144Ev,
  (VTBL_ENTRY)&_ZN5S37C64v145Ev,
};
extern VTBL_ENTRY _ZTI5S37C6[];
extern  VTBL_ENTRY _ZTV5S37C6[];
Class_Descriptor cd_S37C6 = {  "S37C6", // class name
  bases_S37C6, 2,
  &(vtc_S37C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S37C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C6),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C5  : S37C6 {
  ::S85C27_nt s37c5f0;
  void *s37c5f1[9];
  ::S80C15 s37c5f2;
  ::S85C35 s37c5f3;
  ::S80C24 s37c5f4;
  int s37c5f5;
  unsigned int s37c5f6:1;
  unsigned int s37c5f7:1;
  unsigned int s37c5f8:1;
  unsigned int s37c5f9:1;
  unsigned int s37c5f10:1;
  unsigned int s37c5f11:1;
  unsigned int s37c5f12:1;
  unsigned int s37c5f13:1;
  unsigned int s37c5f14:1;
  unsigned int s37c5f15:1;
  unsigned int s37c5f16:1;
  unsigned int s37c5f17:1;
  unsigned int s37c5f18:1;
  unsigned int s37c5f19:1;
  unsigned int s37c5f20:1;
  unsigned int s37c5f21:1;
  unsigned int s37c5f22:1;
  unsigned int s37c5f23:1;
  unsigned int s37c5f24:1;
  unsigned int s37c5f25:1;
  unsigned int s37c5f26:1;
  unsigned int s37c5f27:1;
  void *s37c5f28;
  char s37c5f29[2];
  ::S80C8_nt s37c5f30;
  ::S85C27_nt s37c5f31;
  ::S85C27_nt s37c5f32;
  void *s37c5f33;
  ::S80C21_nt s37c5f34;
  ::S80C21_nt s37c5f35;
  ::S80C21_nt s37c5f36;
  ::S80C21_nt s37c5f37;
  ::S80C21_nt s37c5f38;
  virtual  ~S37C5(); // _ZN5S37C5D1Ev
  virtual void  v146(); // _ZN5S37C54v146Ev
  virtual void  v147(); // _ZN5S37C54v147Ev
  virtual void  v148(); // _ZN5S37C54v148Ev
  virtual void  v149(); // _ZN5S37C54v149Ev
  virtual void  v150(); // _ZN5S37C54v150Ev
  virtual void  v151(); // _ZN5S37C54v151Ev
  virtual void  v152(); // _ZN5S37C54v152Ev
  virtual void  v153(); // _ZN5S37C54v153Ev
  virtual void  v154(); // _ZN5S37C54v154Ev
  virtual void  v155(); // _ZN5S37C54v155Ev
  virtual void  v156(); // _ZN5S37C54v156Ev
  virtual void  v157(); // _ZN5S37C54v157Ev
  virtual void  v158(); // _ZN5S37C54v158Ev
  virtual void  v159(); // _ZN5S37C54v159Ev
  virtual void  v160(); // _ZN5S37C54v160Ev
  virtual void  v161(); // _ZN5S37C54v161Ev
  virtual void  v162(); // _ZN5S37C54v162Ev
  virtual void  v163(); // _ZN5S37C54v163Ev
  virtual void  v164(); // _ZN5S37C54v164Ev
  virtual void  v165(); // _ZN5S37C54v165Ev
  virtual void  v166(); // _ZN5S37C54v166Ev
  virtual void  v167(); // _ZN5S37C54v167Ev
  virtual void  v168(); // _ZN5S37C54v168Ev
  virtual void  v169(); // _ZN5S37C54v169Ev
  virtual void  v170(); // _ZN5S37C54v170Ev
  virtual void  v171(); // _ZN5S37C54v171Ev
  virtual void  v172(); // _ZN5S37C54v172Ev
  virtual void  v173(); // _ZN5S37C54v173Ev
  virtual void  v174(); // _ZN5S37C54v174Ev
  virtual void  v175(); // _ZN5S37C54v175Ev
  virtual void  v176(); // _ZN5S37C54v176Ev
  virtual void  v177(); // _ZN5S37C54v177Ev
  virtual void  v178(); // _ZN5S37C54v178Ev
  virtual void  v179(); // _ZN5S37C54v179Ev
  virtual void  v180(); // _ZN5S37C54v180Ev
  virtual void  v181(); // _ZN5S37C54v181Ev
  virtual void  v182(); // _ZN5S37C54v182Ev
  virtual void  v183(); // _ZN5S37C54v183Ev
  virtual void  v184(); // _ZN5S37C54v184Ev
  S37C5(); // tgen
};
//SIG(-1 S37C5) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S37C5 ::~S37C5(){ note_dtor("S37C5", this);}
void  S37C5 ::v146(){vfunc_called(this, "_ZN5S37C54v146Ev");}
void  S37C5 ::v147(){vfunc_called(this, "_ZN5S37C54v147Ev");}
void  S37C5 ::v148(){vfunc_called(this, "_ZN5S37C54v148Ev");}
void  S37C5 ::v149(){vfunc_called(this, "_ZN5S37C54v149Ev");}
void  S37C5 ::v150(){vfunc_called(this, "_ZN5S37C54v150Ev");}
void  S37C5 ::v151(){vfunc_called(this, "_ZN5S37C54v151Ev");}
void  S37C5 ::v152(){vfunc_called(this, "_ZN5S37C54v152Ev");}
void  S37C5 ::v153(){vfunc_called(this, "_ZN5S37C54v153Ev");}
void  S37C5 ::v154(){vfunc_called(this, "_ZN5S37C54v154Ev");}
void  S37C5 ::v155(){vfunc_called(this, "_ZN5S37C54v155Ev");}
void  S37C5 ::v156(){vfunc_called(this, "_ZN5S37C54v156Ev");}
void  S37C5 ::v157(){vfunc_called(this, "_ZN5S37C54v157Ev");}
void  S37C5 ::v158(){vfunc_called(this, "_ZN5S37C54v158Ev");}
void  S37C5 ::v159(){vfunc_called(this, "_ZN5S37C54v159Ev");}
void  S37C5 ::v160(){vfunc_called(this, "_ZN5S37C54v160Ev");}
void  S37C5 ::v161(){vfunc_called(this, "_ZN5S37C54v161Ev");}
void  S37C5 ::v162(){vfunc_called(this, "_ZN5S37C54v162Ev");}
void  S37C5 ::v163(){vfunc_called(this, "_ZN5S37C54v163Ev");}
void  S37C5 ::v164(){vfunc_called(this, "_ZN5S37C54v164Ev");}
void  S37C5 ::v165(){vfunc_called(this, "_ZN5S37C54v165Ev");}
void  S37C5 ::v166(){vfunc_called(this, "_ZN5S37C54v166Ev");}
void  S37C5 ::v167(){vfunc_called(this, "_ZN5S37C54v167Ev");}
void  S37C5 ::v168(){vfunc_called(this, "_ZN5S37C54v168Ev");}
void  S37C5 ::v169(){vfunc_called(this, "_ZN5S37C54v169Ev");}
void  S37C5 ::v170(){vfunc_called(this, "_ZN5S37C54v170Ev");}
void  S37C5 ::v171(){vfunc_called(this, "_ZN5S37C54v171Ev");}
void  S37C5 ::v172(){vfunc_called(this, "_ZN5S37C54v172Ev");}
void  S37C5 ::v173(){vfunc_called(this, "_ZN5S37C54v173Ev");}
void  S37C5 ::v174(){vfunc_called(this, "_ZN5S37C54v174Ev");}
void  S37C5 ::v175(){vfunc_called(this, "_ZN5S37C54v175Ev");}
void  S37C5 ::v176(){vfunc_called(this, "_ZN5S37C54v176Ev");}
void  S37C5 ::v177(){vfunc_called(this, "_ZN5S37C54v177Ev");}
void  S37C5 ::v178(){vfunc_called(this, "_ZN5S37C54v178Ev");}
void  S37C5 ::v179(){vfunc_called(this, "_ZN5S37C54v179Ev");}
void  S37C5 ::v180(){vfunc_called(this, "_ZN5S37C54v180Ev");}
void  S37C5 ::v181(){vfunc_called(this, "_ZN5S37C54v181Ev");}
void  S37C5 ::v182(){vfunc_called(this, "_ZN5S37C54v182Ev");}
void  S37C5 ::v183(){vfunc_called(this, "_ZN5S37C54v183Ev");}
void  S37C5 ::v184(){vfunc_called(this, "_ZN5S37C54v184Ev");}
S37C5 ::S37C5(){ note_ctor("S37C5", this);} // tgen

static void Test_S37C5()
{
  extern Class_Descriptor cd_S37C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S37C5, buf);
    S37C5 *dp, &lv = *(dp=new (buf) S37C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S37C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C5)");
    check_base_class_offset(lv, (S37C8*)(S37C7*)(S37C6*), 0, "S37C5");
    check_base_class_offset(lv, (S37C7*)(S37C6*), 0, "S37C5");
    check_base_class_offset(lv, (S37C6*), 0, "S37C5");
    check_field_offset(lv, s37c5f0, ABISELECT(464,352), "S37C5.s37c5f0");
    check_field_offset(lv, s37c5f1, ABISELECT(472,360), "S37C5.s37c5f1");
    check_field_offset(lv, s37c5f2, ABISELECT(544,396), "S37C5.s37c5f2");
    check_field_offset(lv, s37c5f3, ABISELECT(560,408), "S37C5.s37c5f3");
    check_field_offset(lv, s37c5f4, ABISELECT(576,420), "S37C5.s37c5f4");
    check_field_offset(lv, s37c5f5, ABISELECT(608,440), "S37C5.s37c5f5");
    set_bf_and_test(lv, s37c5f6, ABISELECT(612,444), 0, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f7, ABISELECT(612,444), 1, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f8, ABISELECT(612,444), 2, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f9, ABISELECT(612,444), 3, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f10, ABISELECT(612,444), 4, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f11, ABISELECT(612,444), 5, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f12, ABISELECT(612,444), 6, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f13, ABISELECT(612,444), 7, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f14, ABISELECT(613,445), 0, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f15, ABISELECT(613,445), 1, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f16, ABISELECT(613,445), 2, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f17, ABISELECT(613,445), 3, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f18, ABISELECT(613,445), 4, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f19, ABISELECT(613,445), 5, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f20, ABISELECT(613,445), 6, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f21, ABISELECT(613,445), 7, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f22, ABISELECT(614,446), 0, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f23, ABISELECT(614,446), 1, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f24, ABISELECT(614,446), 2, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f25, ABISELECT(614,446), 3, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f26, ABISELECT(614,446), 4, 1, 1, "S37C5");
    set_bf_and_test(lv, s37c5f27, ABISELECT(614,446), 5, 1, 1, "S37C5");
    check_field_offset(lv, s37c5f28, ABISELECT(616,448), "S37C5.s37c5f28");
    check_field_offset(lv, s37c5f29, ABISELECT(624,452), "S37C5.s37c5f29");
    check_field_offset(lv, s37c5f30, ABISELECT(628,456), "S37C5.s37c5f30");
    check_field_offset(lv, s37c5f31, ABISELECT(636,464), "S37C5.s37c5f31");
    check_field_offset(lv, s37c5f32, ABISELECT(644,472), "S37C5.s37c5f32");
    check_field_offset(lv, s37c5f33, ABISELECT(656,480), "S37C5.s37c5f33");
    check_field_offset(lv, s37c5f34, ABISELECT(664,484), "S37C5.s37c5f34");
    check_field_offset(lv, s37c5f35, ABISELECT(680,496), "S37C5.s37c5f35");
    check_field_offset(lv, s37c5f36, ABISELECT(696,508), "S37C5.s37c5f36");
    check_field_offset(lv, s37c5f37, ABISELECT(712,520), "S37C5.s37c5f37");
    check_field_offset(lv, s37c5f38, ABISELECT(728,532), "S37C5.s37c5f38");
    test_class_info(&lv, &cd_S37C5);
    dp->~S37C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C5(Test_S37C5, "S37C5", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S37C5C1Ev();
extern void _ZN5S37C5D1Ev();
Name_Map name_map_S37C5[] = {
  NSPAIR(_ZN5S37C5C1Ev),
  NSPAIR(_ZN5S37C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
extern Class_Descriptor cd_S37C7;
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
extern Class_Descriptor cd_S37C6;
extern VTBL_ENTRY _ZTI5S37C6[];
extern  VTBL_ENTRY _ZTV5S37C6[];
static Base_Class bases_S37C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S37C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C5[];
extern void _ZN5S37C5D1Ev();
extern void _ZN5S37C5D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
extern void _ZN5S37C63v70Ev();
extern void _ZN5S37C63v71Ev();
extern void _ZN5S37C63v72Ev();
extern void _ZN5S37C63v73Ev();
extern void _ZN5S37C63v74Ev();
extern void _ZN5S37C63v75Ev();
extern void _ZN5S37C63v76Ev();
extern void _ZN5S37C63v77Ev();
extern void _ZN5S37C63v78Ev();
extern void _ZN5S37C63v79Ev();
extern void _ZN5S37C63v80Ev();
extern void _ZN5S37C63v81Ev();
extern void _ZN5S37C63v82Ev();
extern void _ZN5S37C63v83Ev();
extern void _ZN5S37C63v84Ev();
extern void _ZN5S37C63v85Ev();
extern void _ZN5S37C63v86Ev();
extern void _ZN5S37C63v87Ev();
extern void _ZN5S37C63v88Ev();
extern void _ZN5S37C63v89Ev();
extern void _ZN5S37C63v90Ev();
extern void _ZN5S37C63v91Ev();
extern void _ZN5S37C63v92Ev();
extern void _ZN5S37C63v93Ev();
extern void _ZN5S37C63v94Ev();
extern void _ZN5S37C63v95Ev();
extern void _ZN5S37C63v96Ev();
extern void _ZN5S37C63v97Ev();
extern void _ZN5S37C63v98Ev();
extern void _ZN5S37C63v99Ev();
extern void _ZN5S37C64v100Ev();
extern void _ZN5S37C64v101Ev();
extern void _ZN5S37C64v102Ev();
extern void _ZN5S37C64v103Ev();
extern void _ZN5S37C64v104Ev();
extern void _ZN5S37C64v105Ev();
extern void _ZN5S37C64v106Ev();
extern void _ZN5S37C64v107Ev();
extern void _ZN5S37C64v108Ev();
extern void _ZN5S37C64v109Ev();
extern void _ZN5S37C64v110Ev();
extern void _ZN5S37C64v111Ev();
extern void _ZN5S37C64v112Ev();
extern void _ZN5S37C64v113Ev();
extern void _ZN5S37C64v114Ev();
extern void _ZN5S37C64v115Ev();
extern void _ZN5S37C64v116Ev();
extern void _ZN5S37C64v117Ev();
extern void _ZN5S37C64v118Ev();
extern void _ZN5S37C64v119Ev();
extern void _ZN5S37C64v120Ev();
extern void _ZN5S37C64v121Ev();
extern void _ZN5S37C64v122Ev();
extern void _ZN5S37C64v123Ev();
extern void _ZN5S37C64v124Ev();
extern void _ZN5S37C64v125Ev();
extern void _ZN5S37C64v126Ev();
extern void _ZN5S37C64v127Ev();
extern void _ZN5S37C64v128Ev();
extern void _ZN5S37C64v129Ev();
extern void _ZN5S37C64v130Ev();
extern void _ZN5S37C64v131Ev();
extern void _ZN5S37C64v132Ev();
extern void _ZN5S37C64v133Ev();
extern void _ZN5S37C64v134Ev();
extern void _ZN5S37C64v135Ev();
extern void _ZN5S37C64v136Ev();
extern void _ZN5S37C64v137Ev();
extern void _ZN5S37C64v138Ev();
extern void _ZN5S37C64v139Ev();
extern void _ZN5S37C64v140Ev();
extern void _ZN5S37C64v141Ev();
extern void _ZN5S37C64v142Ev();
extern void _ZN5S37C64v143Ev();
extern void _ZN5S37C64v144Ev();
extern void _ZN5S37C64v145Ev();
extern void _ZN5S37C54v146Ev();
extern void _ZN5S37C54v147Ev();
extern void _ZN5S37C54v148Ev();
extern void _ZN5S37C54v149Ev();
extern void _ZN5S37C54v150Ev();
extern void _ZN5S37C54v151Ev();
extern void _ZN5S37C54v152Ev();
extern void _ZN5S37C54v153Ev();
extern void _ZN5S37C54v154Ev();
extern void _ZN5S37C54v155Ev();
extern void _ZN5S37C54v156Ev();
extern void _ZN5S37C54v157Ev();
extern void _ZN5S37C54v158Ev();
extern void _ZN5S37C54v159Ev();
extern void _ZN5S37C54v160Ev();
extern void _ZN5S37C54v161Ev();
extern void _ZN5S37C54v162Ev();
extern void _ZN5S37C54v163Ev();
extern void _ZN5S37C54v164Ev();
extern void _ZN5S37C54v165Ev();
extern void _ZN5S37C54v166Ev();
extern void _ZN5S37C54v167Ev();
extern void _ZN5S37C54v168Ev();
extern void _ZN5S37C54v169Ev();
extern void _ZN5S37C54v170Ev();
extern void _ZN5S37C54v171Ev();
extern void _ZN5S37C54v172Ev();
extern void _ZN5S37C54v173Ev();
extern void _ZN5S37C54v174Ev();
extern void _ZN5S37C54v175Ev();
extern void _ZN5S37C54v176Ev();
extern void _ZN5S37C54v177Ev();
extern void _ZN5S37C54v178Ev();
extern void _ZN5S37C54v179Ev();
extern void _ZN5S37C54v180Ev();
extern void _ZN5S37C54v181Ev();
extern void _ZN5S37C54v182Ev();
extern void _ZN5S37C54v183Ev();
extern void _ZN5S37C54v184Ev();
static  VTBL_ENTRY vtc_S37C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C5[0]),
  (VTBL_ENTRY)&_ZN5S37C5D1Ev,
  (VTBL_ENTRY)&_ZN5S37C5D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
  (VTBL_ENTRY)&_ZN5S37C63v70Ev,
  (VTBL_ENTRY)&_ZN5S37C63v71Ev,
  (VTBL_ENTRY)&_ZN5S37C63v72Ev,
  (VTBL_ENTRY)&_ZN5S37C63v73Ev,
  (VTBL_ENTRY)&_ZN5S37C63v74Ev,
  (VTBL_ENTRY)&_ZN5S37C63v75Ev,
  (VTBL_ENTRY)&_ZN5S37C63v76Ev,
  (VTBL_ENTRY)&_ZN5S37C63v77Ev,
  (VTBL_ENTRY)&_ZN5S37C63v78Ev,
  (VTBL_ENTRY)&_ZN5S37C63v79Ev,
  (VTBL_ENTRY)&_ZN5S37C63v80Ev,
  (VTBL_ENTRY)&_ZN5S37C63v81Ev,
  (VTBL_ENTRY)&_ZN5S37C63v82Ev,
  (VTBL_ENTRY)&_ZN5S37C63v83Ev,
  (VTBL_ENTRY)&_ZN5S37C63v84Ev,
  (VTBL_ENTRY)&_ZN5S37C63v85Ev,
  (VTBL_ENTRY)&_ZN5S37C63v86Ev,
  (VTBL_ENTRY)&_ZN5S37C63v87Ev,
  (VTBL_ENTRY)&_ZN5S37C63v88Ev,
  (VTBL_ENTRY)&_ZN5S37C63v89Ev,
  (VTBL_ENTRY)&_ZN5S37C63v90Ev,
  (VTBL_ENTRY)&_ZN5S37C63v91Ev,
  (VTBL_ENTRY)&_ZN5S37C63v92Ev,
  (VTBL_ENTRY)&_ZN5S37C63v93Ev,
  (VTBL_ENTRY)&_ZN5S37C63v94Ev,
  (VTBL_ENTRY)&_ZN5S37C63v95Ev,
  (VTBL_ENTRY)&_ZN5S37C63v96Ev,
  (VTBL_ENTRY)&_ZN5S37C63v97Ev,
  (VTBL_ENTRY)&_ZN5S37C63v98Ev,
  (VTBL_ENTRY)&_ZN5S37C63v99Ev,
  (VTBL_ENTRY)&_ZN5S37C64v100Ev,
  (VTBL_ENTRY)&_ZN5S37C64v101Ev,
  (VTBL_ENTRY)&_ZN5S37C64v102Ev,
  (VTBL_ENTRY)&_ZN5S37C64v103Ev,
  (VTBL_ENTRY)&_ZN5S37C64v104Ev,
  (VTBL_ENTRY)&_ZN5S37C64v105Ev,
  (VTBL_ENTRY)&_ZN5S37C64v106Ev,
  (VTBL_ENTRY)&_ZN5S37C64v107Ev,
  (VTBL_ENTRY)&_ZN5S37C64v108Ev,
  (VTBL_ENTRY)&_ZN5S37C64v109Ev,
  (VTBL_ENTRY)&_ZN5S37C64v110Ev,
  (VTBL_ENTRY)&_ZN5S37C64v111Ev,
  (VTBL_ENTRY)&_ZN5S37C64v112Ev,
  (VTBL_ENTRY)&_ZN5S37C64v113Ev,
  (VTBL_ENTRY)&_ZN5S37C64v114Ev,
  (VTBL_ENTRY)&_ZN5S37C64v115Ev,
  (VTBL_ENTRY)&_ZN5S37C64v116Ev,
  (VTBL_ENTRY)&_ZN5S37C64v117Ev,
  (VTBL_ENTRY)&_ZN5S37C64v118Ev,
  (VTBL_ENTRY)&_ZN5S37C64v119Ev,
  (VTBL_ENTRY)&_ZN5S37C64v120Ev,
  (VTBL_ENTRY)&_ZN5S37C64v121Ev,
  (VTBL_ENTRY)&_ZN5S37C64v122Ev,
  (VTBL_ENTRY)&_ZN5S37C64v123Ev,
  (VTBL_ENTRY)&_ZN5S37C64v124Ev,
  (VTBL_ENTRY)&_ZN5S37C64v125Ev,
  (VTBL_ENTRY)&_ZN5S37C64v126Ev,
  (VTBL_ENTRY)&_ZN5S37C64v127Ev,
  (VTBL_ENTRY)&_ZN5S37C64v128Ev,
  (VTBL_ENTRY)&_ZN5S37C64v129Ev,
  (VTBL_ENTRY)&_ZN5S37C64v130Ev,
  (VTBL_ENTRY)&_ZN5S37C64v131Ev,
  (VTBL_ENTRY)&_ZN5S37C64v132Ev,
  (VTBL_ENTRY)&_ZN5S37C64v133Ev,
  (VTBL_ENTRY)&_ZN5S37C64v134Ev,
  (VTBL_ENTRY)&_ZN5S37C64v135Ev,
  (VTBL_ENTRY)&_ZN5S37C64v136Ev,
  (VTBL_ENTRY)&_ZN5S37C64v137Ev,
  (VTBL_ENTRY)&_ZN5S37C64v138Ev,
  (VTBL_ENTRY)&_ZN5S37C64v139Ev,
  (VTBL_ENTRY)&_ZN5S37C64v140Ev,
  (VTBL_ENTRY)&_ZN5S37C64v141Ev,
  (VTBL_ENTRY)&_ZN5S37C64v142Ev,
  (VTBL_ENTRY)&_ZN5S37C64v143Ev,
  (VTBL_ENTRY)&_ZN5S37C64v144Ev,
  (VTBL_ENTRY)&_ZN5S37C64v145Ev,
  (VTBL_ENTRY)&_ZN5S37C54v146Ev,
  (VTBL_ENTRY)&_ZN5S37C54v147Ev,
  (VTBL_ENTRY)&_ZN5S37C54v148Ev,
  (VTBL_ENTRY)&_ZN5S37C54v149Ev,
  (VTBL_ENTRY)&_ZN5S37C54v150Ev,
  (VTBL_ENTRY)&_ZN5S37C54v151Ev,
  (VTBL_ENTRY)&_ZN5S37C54v152Ev,
  (VTBL_ENTRY)&_ZN5S37C54v153Ev,
  (VTBL_ENTRY)&_ZN5S37C54v154Ev,
  (VTBL_ENTRY)&_ZN5S37C54v155Ev,
  (VTBL_ENTRY)&_ZN5S37C54v156Ev,
  (VTBL_ENTRY)&_ZN5S37C54v157Ev,
  (VTBL_ENTRY)&_ZN5S37C54v158Ev,
  (VTBL_ENTRY)&_ZN5S37C54v159Ev,
  (VTBL_ENTRY)&_ZN5S37C54v160Ev,
  (VTBL_ENTRY)&_ZN5S37C54v161Ev,
  (VTBL_ENTRY)&_ZN5S37C54v162Ev,
  (VTBL_ENTRY)&_ZN5S37C54v163Ev,
  (VTBL_ENTRY)&_ZN5S37C54v164Ev,
  (VTBL_ENTRY)&_ZN5S37C54v165Ev,
  (VTBL_ENTRY)&_ZN5S37C54v166Ev,
  (VTBL_ENTRY)&_ZN5S37C54v167Ev,
  (VTBL_ENTRY)&_ZN5S37C54v168Ev,
  (VTBL_ENTRY)&_ZN5S37C54v169Ev,
  (VTBL_ENTRY)&_ZN5S37C54v170Ev,
  (VTBL_ENTRY)&_ZN5S37C54v171Ev,
  (VTBL_ENTRY)&_ZN5S37C54v172Ev,
  (VTBL_ENTRY)&_ZN5S37C54v173Ev,
  (VTBL_ENTRY)&_ZN5S37C54v174Ev,
  (VTBL_ENTRY)&_ZN5S37C54v175Ev,
  (VTBL_ENTRY)&_ZN5S37C54v176Ev,
  (VTBL_ENTRY)&_ZN5S37C54v177Ev,
  (VTBL_ENTRY)&_ZN5S37C54v178Ev,
  (VTBL_ENTRY)&_ZN5S37C54v179Ev,
  (VTBL_ENTRY)&_ZN5S37C54v180Ev,
  (VTBL_ENTRY)&_ZN5S37C54v181Ev,
  (VTBL_ENTRY)&_ZN5S37C54v182Ev,
  (VTBL_ENTRY)&_ZN5S37C54v183Ev,
  (VTBL_ENTRY)&_ZN5S37C54v184Ev,
};
extern VTBL_ENTRY _ZTI5S37C5[];
extern  VTBL_ENTRY _ZTV5S37C5[];
Class_Descriptor cd_S37C5 = {  "S37C5", // class name
  bases_S37C5, 3,
  &(vtc_S37C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S37C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C5),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C4  : S37C5 {
  unsigned int s37c4f0:1;
  unsigned int s37c4f1:1;
  unsigned int s37c4f2:1;
  unsigned int s37c4f3:1;
  unsigned int s37c4f4:1;
  unsigned int s37c4f5:1;
  void *s37c4f6[8];
  ::S80C21_nt s37c4f7;
  ::S80C21_nt s37c4f8;
  ::S80C21_nt s37c4f9;
  virtual  ~S37C4(); // _ZN5S37C4D1Ev
  virtual void  v185(); // _ZN5S37C44v185Ev
  virtual void  v186(); // _ZN5S37C44v186Ev
  virtual void  v187(); // _ZN5S37C44v187Ev
  virtual void  v188(); // _ZN5S37C44v188Ev
  virtual void  v189(); // _ZN5S37C44v189Ev
  virtual void  v190(); // _ZN5S37C44v190Ev
  virtual void  v191(); // _ZN5S37C44v191Ev
  virtual void  v192(); // _ZN5S37C44v192Ev
  virtual void  v193(); // _ZN5S37C44v193Ev
  virtual void  v194(); // _ZN5S37C44v194Ev
  virtual void  v195(); // _ZN5S37C44v195Ev
  virtual void  v196(); // _ZN5S37C44v196Ev
  virtual void  v197(); // _ZN5S37C44v197Ev
  virtual void  v198(); // _ZN5S37C44v198Ev
  virtual void  v199(); // _ZN5S37C44v199Ev
  virtual void  v200(); // _ZN5S37C44v200Ev
  virtual void  v201(); // _ZN5S37C44v201Ev
  virtual void  v202(); // _ZN5S37C44v202Ev
  virtual void  v203(); // _ZN5S37C44v203Ev
  virtual void  v204(); // _ZN5S37C44v204Ev
  virtual void  v205(); // _ZN5S37C44v205Ev
  virtual void  v206(); // _ZN5S37C44v206Ev
  virtual void  v207(); // _ZN5S37C44v207Ev
  S37C4(); // tgen
};
//SIG(-1 S37C4) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S37C4 ::~S37C4(){ note_dtor("S37C4", this);}
void  S37C4 ::v185(){vfunc_called(this, "_ZN5S37C44v185Ev");}
void  S37C4 ::v186(){vfunc_called(this, "_ZN5S37C44v186Ev");}
void  S37C4 ::v187(){vfunc_called(this, "_ZN5S37C44v187Ev");}
void  S37C4 ::v188(){vfunc_called(this, "_ZN5S37C44v188Ev");}
void  S37C4 ::v189(){vfunc_called(this, "_ZN5S37C44v189Ev");}
void  S37C4 ::v190(){vfunc_called(this, "_ZN5S37C44v190Ev");}
void  S37C4 ::v191(){vfunc_called(this, "_ZN5S37C44v191Ev");}
void  S37C4 ::v192(){vfunc_called(this, "_ZN5S37C44v192Ev");}
void  S37C4 ::v193(){vfunc_called(this, "_ZN5S37C44v193Ev");}
void  S37C4 ::v194(){vfunc_called(this, "_ZN5S37C44v194Ev");}
void  S37C4 ::v195(){vfunc_called(this, "_ZN5S37C44v195Ev");}
void  S37C4 ::v196(){vfunc_called(this, "_ZN5S37C44v196Ev");}
void  S37C4 ::v197(){vfunc_called(this, "_ZN5S37C44v197Ev");}
void  S37C4 ::v198(){vfunc_called(this, "_ZN5S37C44v198Ev");}
void  S37C4 ::v199(){vfunc_called(this, "_ZN5S37C44v199Ev");}
void  S37C4 ::v200(){vfunc_called(this, "_ZN5S37C44v200Ev");}
void  S37C4 ::v201(){vfunc_called(this, "_ZN5S37C44v201Ev");}
void  S37C4 ::v202(){vfunc_called(this, "_ZN5S37C44v202Ev");}
void  S37C4 ::v203(){vfunc_called(this, "_ZN5S37C44v203Ev");}
void  S37C4 ::v204(){vfunc_called(this, "_ZN5S37C44v204Ev");}
void  S37C4 ::v205(){vfunc_called(this, "_ZN5S37C44v205Ev");}
void  S37C4 ::v206(){vfunc_called(this, "_ZN5S37C44v206Ev");}
void  S37C4 ::v207(){vfunc_called(this, "_ZN5S37C44v207Ev");}
S37C4 ::S37C4(){ note_ctor("S37C4", this);} // tgen

static void Test_S37C4()
{
  extern Class_Descriptor cd_S37C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S37C4, buf);
    S37C4 *dp, &lv = *(dp=new (buf) S37C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S37C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C4)");
    check_base_class_offset(lv, (S37C8*)(S37C7*)(S37C6*)(S37C5*), 0, "S37C4");
    check_base_class_offset(lv, (S37C7*)(S37C6*)(S37C5*), 0, "S37C4");
    check_base_class_offset(lv, (S37C6*)(S37C5*), 0, "S37C4");
    check_base_class_offset(lv, (S37C5*), 0, "S37C4");
    set_bf_and_test(lv, s37c4f0, ABISELECT(744,544), 0, 1, 1, "S37C4");
    set_bf_and_test(lv, s37c4f1, ABISELECT(744,544), 1, 1, 1, "S37C4");
    set_bf_and_test(lv, s37c4f2, ABISELECT(744,544), 2, 1, 1, "S37C4");
    set_bf_and_test(lv, s37c4f3, ABISELECT(744,544), 3, 1, 1, "S37C4");
    set_bf_and_test(lv, s37c4f4, ABISELECT(744,544), 4, 1, 1, "S37C4");
    set_bf_and_test(lv, s37c4f5, ABISELECT(744,544), 5, 1, 1, "S37C4");
    check_field_offset(lv, s37c4f6, ABISELECT(752,548), "S37C4.s37c4f6");
    check_field_offset(lv, s37c4f7, ABISELECT(816,580), "S37C4.s37c4f7");
    check_field_offset(lv, s37c4f8, ABISELECT(832,592), "S37C4.s37c4f8");
    check_field_offset(lv, s37c4f9, ABISELECT(848,604), "S37C4.s37c4f9");
    test_class_info(&lv, &cd_S37C4);
    dp->~S37C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C4(Test_S37C4, "S37C4", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S37C4C1Ev();
extern void _ZN5S37C4D1Ev();
Name_Map name_map_S37C4[] = {
  NSPAIR(_ZN5S37C4C1Ev),
  NSPAIR(_ZN5S37C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
extern Class_Descriptor cd_S37C7;
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
extern Class_Descriptor cd_S37C6;
extern VTBL_ENTRY _ZTI5S37C6[];
extern  VTBL_ENTRY _ZTV5S37C6[];
extern Class_Descriptor cd_S37C5;
extern VTBL_ENTRY _ZTI5S37C5[];
extern  VTBL_ENTRY _ZTV5S37C5[];
static Base_Class bases_S37C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S37C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S37C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C4[];
extern void _ZN5S37C4D1Ev();
extern void _ZN5S37C4D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
extern void _ZN5S37C63v70Ev();
extern void _ZN5S37C63v71Ev();
extern void _ZN5S37C63v72Ev();
extern void _ZN5S37C63v73Ev();
extern void _ZN5S37C63v74Ev();
extern void _ZN5S37C63v75Ev();
extern void _ZN5S37C63v76Ev();
extern void _ZN5S37C63v77Ev();
extern void _ZN5S37C63v78Ev();
extern void _ZN5S37C63v79Ev();
extern void _ZN5S37C63v80Ev();
extern void _ZN5S37C63v81Ev();
extern void _ZN5S37C63v82Ev();
extern void _ZN5S37C63v83Ev();
extern void _ZN5S37C63v84Ev();
extern void _ZN5S37C63v85Ev();
extern void _ZN5S37C63v86Ev();
extern void _ZN5S37C63v87Ev();
extern void _ZN5S37C63v88Ev();
extern void _ZN5S37C63v89Ev();
extern void _ZN5S37C63v90Ev();
extern void _ZN5S37C63v91Ev();
extern void _ZN5S37C63v92Ev();
extern void _ZN5S37C63v93Ev();
extern void _ZN5S37C63v94Ev();
extern void _ZN5S37C63v95Ev();
extern void _ZN5S37C63v96Ev();
extern void _ZN5S37C63v97Ev();
extern void _ZN5S37C63v98Ev();
extern void _ZN5S37C63v99Ev();
extern void _ZN5S37C64v100Ev();
extern void _ZN5S37C64v101Ev();
extern void _ZN5S37C64v102Ev();
extern void _ZN5S37C64v103Ev();
extern void _ZN5S37C64v104Ev();
extern void _ZN5S37C64v105Ev();
extern void _ZN5S37C64v106Ev();
extern void _ZN5S37C64v107Ev();
extern void _ZN5S37C64v108Ev();
extern void _ZN5S37C64v109Ev();
extern void _ZN5S37C64v110Ev();
extern void _ZN5S37C64v111Ev();
extern void _ZN5S37C64v112Ev();
extern void _ZN5S37C64v113Ev();
extern void _ZN5S37C64v114Ev();
extern void _ZN5S37C64v115Ev();
extern void _ZN5S37C64v116Ev();
extern void _ZN5S37C64v117Ev();
extern void _ZN5S37C64v118Ev();
extern void _ZN5S37C64v119Ev();
extern void _ZN5S37C64v120Ev();
extern void _ZN5S37C64v121Ev();
extern void _ZN5S37C64v122Ev();
extern void _ZN5S37C64v123Ev();
extern void _ZN5S37C64v124Ev();
extern void _ZN5S37C64v125Ev();
extern void _ZN5S37C64v126Ev();
extern void _ZN5S37C64v127Ev();
extern void _ZN5S37C64v128Ev();
extern void _ZN5S37C64v129Ev();
extern void _ZN5S37C64v130Ev();
extern void _ZN5S37C64v131Ev();
extern void _ZN5S37C64v132Ev();
extern void _ZN5S37C64v133Ev();
extern void _ZN5S37C64v134Ev();
extern void _ZN5S37C64v135Ev();
extern void _ZN5S37C64v136Ev();
extern void _ZN5S37C64v137Ev();
extern void _ZN5S37C64v138Ev();
extern void _ZN5S37C64v139Ev();
extern void _ZN5S37C64v140Ev();
extern void _ZN5S37C64v141Ev();
extern void _ZN5S37C64v142Ev();
extern void _ZN5S37C64v143Ev();
extern void _ZN5S37C64v144Ev();
extern void _ZN5S37C64v145Ev();
extern void _ZN5S37C54v146Ev();
extern void _ZN5S37C54v147Ev();
extern void _ZN5S37C54v148Ev();
extern void _ZN5S37C54v149Ev();
extern void _ZN5S37C54v150Ev();
extern void _ZN5S37C54v151Ev();
extern void _ZN5S37C54v152Ev();
extern void _ZN5S37C54v153Ev();
extern void _ZN5S37C54v154Ev();
extern void _ZN5S37C54v155Ev();
extern void _ZN5S37C54v156Ev();
extern void _ZN5S37C54v157Ev();
extern void _ZN5S37C54v158Ev();
extern void _ZN5S37C54v159Ev();
extern void _ZN5S37C54v160Ev();
extern void _ZN5S37C54v161Ev();
extern void _ZN5S37C54v162Ev();
extern void _ZN5S37C54v163Ev();
extern void _ZN5S37C54v164Ev();
extern void _ZN5S37C54v165Ev();
extern void _ZN5S37C54v166Ev();
extern void _ZN5S37C54v167Ev();
extern void _ZN5S37C54v168Ev();
extern void _ZN5S37C54v169Ev();
extern void _ZN5S37C54v170Ev();
extern void _ZN5S37C54v171Ev();
extern void _ZN5S37C54v172Ev();
extern void _ZN5S37C54v173Ev();
extern void _ZN5S37C54v174Ev();
extern void _ZN5S37C54v175Ev();
extern void _ZN5S37C54v176Ev();
extern void _ZN5S37C54v177Ev();
extern void _ZN5S37C54v178Ev();
extern void _ZN5S37C54v179Ev();
extern void _ZN5S37C54v180Ev();
extern void _ZN5S37C54v181Ev();
extern void _ZN5S37C54v182Ev();
extern void _ZN5S37C54v183Ev();
extern void _ZN5S37C54v184Ev();
extern void _ZN5S37C44v185Ev();
extern void _ZN5S37C44v186Ev();
extern void _ZN5S37C44v187Ev();
extern void _ZN5S37C44v188Ev();
extern void _ZN5S37C44v189Ev();
extern void _ZN5S37C44v190Ev();
extern void _ZN5S37C44v191Ev();
extern void _ZN5S37C44v192Ev();
extern void _ZN5S37C44v193Ev();
extern void _ZN5S37C44v194Ev();
extern void _ZN5S37C44v195Ev();
extern void _ZN5S37C44v196Ev();
extern void _ZN5S37C44v197Ev();
extern void _ZN5S37C44v198Ev();
extern void _ZN5S37C44v199Ev();
extern void _ZN5S37C44v200Ev();
extern void _ZN5S37C44v201Ev();
extern void _ZN5S37C44v202Ev();
extern void _ZN5S37C44v203Ev();
extern void _ZN5S37C44v204Ev();
extern void _ZN5S37C44v205Ev();
extern void _ZN5S37C44v206Ev();
extern void _ZN5S37C44v207Ev();
static  VTBL_ENTRY vtc_S37C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C4[0]),
  (VTBL_ENTRY)&_ZN5S37C4D1Ev,
  (VTBL_ENTRY)&_ZN5S37C4D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
  (VTBL_ENTRY)&_ZN5S37C63v70Ev,
  (VTBL_ENTRY)&_ZN5S37C63v71Ev,
  (VTBL_ENTRY)&_ZN5S37C63v72Ev,
  (VTBL_ENTRY)&_ZN5S37C63v73Ev,
  (VTBL_ENTRY)&_ZN5S37C63v74Ev,
  (VTBL_ENTRY)&_ZN5S37C63v75Ev,
  (VTBL_ENTRY)&_ZN5S37C63v76Ev,
  (VTBL_ENTRY)&_ZN5S37C63v77Ev,
  (VTBL_ENTRY)&_ZN5S37C63v78Ev,
  (VTBL_ENTRY)&_ZN5S37C63v79Ev,
  (VTBL_ENTRY)&_ZN5S37C63v80Ev,
  (VTBL_ENTRY)&_ZN5S37C63v81Ev,
  (VTBL_ENTRY)&_ZN5S37C63v82Ev,
  (VTBL_ENTRY)&_ZN5S37C63v83Ev,
  (VTBL_ENTRY)&_ZN5S37C63v84Ev,
  (VTBL_ENTRY)&_ZN5S37C63v85Ev,
  (VTBL_ENTRY)&_ZN5S37C63v86Ev,
  (VTBL_ENTRY)&_ZN5S37C63v87Ev,
  (VTBL_ENTRY)&_ZN5S37C63v88Ev,
  (VTBL_ENTRY)&_ZN5S37C63v89Ev,
  (VTBL_ENTRY)&_ZN5S37C63v90Ev,
  (VTBL_ENTRY)&_ZN5S37C63v91Ev,
  (VTBL_ENTRY)&_ZN5S37C63v92Ev,
  (VTBL_ENTRY)&_ZN5S37C63v93Ev,
  (VTBL_ENTRY)&_ZN5S37C63v94Ev,
  (VTBL_ENTRY)&_ZN5S37C63v95Ev,
  (VTBL_ENTRY)&_ZN5S37C63v96Ev,
  (VTBL_ENTRY)&_ZN5S37C63v97Ev,
  (VTBL_ENTRY)&_ZN5S37C63v98Ev,
  (VTBL_ENTRY)&_ZN5S37C63v99Ev,
  (VTBL_ENTRY)&_ZN5S37C64v100Ev,
  (VTBL_ENTRY)&_ZN5S37C64v101Ev,
  (VTBL_ENTRY)&_ZN5S37C64v102Ev,
  (VTBL_ENTRY)&_ZN5S37C64v103Ev,
  (VTBL_ENTRY)&_ZN5S37C64v104Ev,
  (VTBL_ENTRY)&_ZN5S37C64v105Ev,
  (VTBL_ENTRY)&_ZN5S37C64v106Ev,
  (VTBL_ENTRY)&_ZN5S37C64v107Ev,
  (VTBL_ENTRY)&_ZN5S37C64v108Ev,
  (VTBL_ENTRY)&_ZN5S37C64v109Ev,
  (VTBL_ENTRY)&_ZN5S37C64v110Ev,
  (VTBL_ENTRY)&_ZN5S37C64v111Ev,
  (VTBL_ENTRY)&_ZN5S37C64v112Ev,
  (VTBL_ENTRY)&_ZN5S37C64v113Ev,
  (VTBL_ENTRY)&_ZN5S37C64v114Ev,
  (VTBL_ENTRY)&_ZN5S37C64v115Ev,
  (VTBL_ENTRY)&_ZN5S37C64v116Ev,
  (VTBL_ENTRY)&_ZN5S37C64v117Ev,
  (VTBL_ENTRY)&_ZN5S37C64v118Ev,
  (VTBL_ENTRY)&_ZN5S37C64v119Ev,
  (VTBL_ENTRY)&_ZN5S37C64v120Ev,
  (VTBL_ENTRY)&_ZN5S37C64v121Ev,
  (VTBL_ENTRY)&_ZN5S37C64v122Ev,
  (VTBL_ENTRY)&_ZN5S37C64v123Ev,
  (VTBL_ENTRY)&_ZN5S37C64v124Ev,
  (VTBL_ENTRY)&_ZN5S37C64v125Ev,
  (VTBL_ENTRY)&_ZN5S37C64v126Ev,
  (VTBL_ENTRY)&_ZN5S37C64v127Ev,
  (VTBL_ENTRY)&_ZN5S37C64v128Ev,
  (VTBL_ENTRY)&_ZN5S37C64v129Ev,
  (VTBL_ENTRY)&_ZN5S37C64v130Ev,
  (VTBL_ENTRY)&_ZN5S37C64v131Ev,
  (VTBL_ENTRY)&_ZN5S37C64v132Ev,
  (VTBL_ENTRY)&_ZN5S37C64v133Ev,
  (VTBL_ENTRY)&_ZN5S37C64v134Ev,
  (VTBL_ENTRY)&_ZN5S37C64v135Ev,
  (VTBL_ENTRY)&_ZN5S37C64v136Ev,
  (VTBL_ENTRY)&_ZN5S37C64v137Ev,
  (VTBL_ENTRY)&_ZN5S37C64v138Ev,
  (VTBL_ENTRY)&_ZN5S37C64v139Ev,
  (VTBL_ENTRY)&_ZN5S37C64v140Ev,
  (VTBL_ENTRY)&_ZN5S37C64v141Ev,
  (VTBL_ENTRY)&_ZN5S37C64v142Ev,
  (VTBL_ENTRY)&_ZN5S37C64v143Ev,
  (VTBL_ENTRY)&_ZN5S37C64v144Ev,
  (VTBL_ENTRY)&_ZN5S37C64v145Ev,
  (VTBL_ENTRY)&_ZN5S37C54v146Ev,
  (VTBL_ENTRY)&_ZN5S37C54v147Ev,
  (VTBL_ENTRY)&_ZN5S37C54v148Ev,
  (VTBL_ENTRY)&_ZN5S37C54v149Ev,
  (VTBL_ENTRY)&_ZN5S37C54v150Ev,
  (VTBL_ENTRY)&_ZN5S37C54v151Ev,
  (VTBL_ENTRY)&_ZN5S37C54v152Ev,
  (VTBL_ENTRY)&_ZN5S37C54v153Ev,
  (VTBL_ENTRY)&_ZN5S37C54v154Ev,
  (VTBL_ENTRY)&_ZN5S37C54v155Ev,
  (VTBL_ENTRY)&_ZN5S37C54v156Ev,
  (VTBL_ENTRY)&_ZN5S37C54v157Ev,
  (VTBL_ENTRY)&_ZN5S37C54v158Ev,
  (VTBL_ENTRY)&_ZN5S37C54v159Ev,
  (VTBL_ENTRY)&_ZN5S37C54v160Ev,
  (VTBL_ENTRY)&_ZN5S37C54v161Ev,
  (VTBL_ENTRY)&_ZN5S37C54v162Ev,
  (VTBL_ENTRY)&_ZN5S37C54v163Ev,
  (VTBL_ENTRY)&_ZN5S37C54v164Ev,
  (VTBL_ENTRY)&_ZN5S37C54v165Ev,
  (VTBL_ENTRY)&_ZN5S37C54v166Ev,
  (VTBL_ENTRY)&_ZN5S37C54v167Ev,
  (VTBL_ENTRY)&_ZN5S37C54v168Ev,
  (VTBL_ENTRY)&_ZN5S37C54v169Ev,
  (VTBL_ENTRY)&_ZN5S37C54v170Ev,
  (VTBL_ENTRY)&_ZN5S37C54v171Ev,
  (VTBL_ENTRY)&_ZN5S37C54v172Ev,
  (VTBL_ENTRY)&_ZN5S37C54v173Ev,
  (VTBL_ENTRY)&_ZN5S37C54v174Ev,
  (VTBL_ENTRY)&_ZN5S37C54v175Ev,
  (VTBL_ENTRY)&_ZN5S37C54v176Ev,
  (VTBL_ENTRY)&_ZN5S37C54v177Ev,
  (VTBL_ENTRY)&_ZN5S37C54v178Ev,
  (VTBL_ENTRY)&_ZN5S37C54v179Ev,
  (VTBL_ENTRY)&_ZN5S37C54v180Ev,
  (VTBL_ENTRY)&_ZN5S37C54v181Ev,
  (VTBL_ENTRY)&_ZN5S37C54v182Ev,
  (VTBL_ENTRY)&_ZN5S37C54v183Ev,
  (VTBL_ENTRY)&_ZN5S37C54v184Ev,
  (VTBL_ENTRY)&_ZN5S37C44v185Ev,
  (VTBL_ENTRY)&_ZN5S37C44v186Ev,
  (VTBL_ENTRY)&_ZN5S37C44v187Ev,
  (VTBL_ENTRY)&_ZN5S37C44v188Ev,
  (VTBL_ENTRY)&_ZN5S37C44v189Ev,
  (VTBL_ENTRY)&_ZN5S37C44v190Ev,
  (VTBL_ENTRY)&_ZN5S37C44v191Ev,
  (VTBL_ENTRY)&_ZN5S37C44v192Ev,
  (VTBL_ENTRY)&_ZN5S37C44v193Ev,
  (VTBL_ENTRY)&_ZN5S37C44v194Ev,
  (VTBL_ENTRY)&_ZN5S37C44v195Ev,
  (VTBL_ENTRY)&_ZN5S37C44v196Ev,
  (VTBL_ENTRY)&_ZN5S37C44v197Ev,
  (VTBL_ENTRY)&_ZN5S37C44v198Ev,
  (VTBL_ENTRY)&_ZN5S37C44v199Ev,
  (VTBL_ENTRY)&_ZN5S37C44v200Ev,
  (VTBL_ENTRY)&_ZN5S37C44v201Ev,
  (VTBL_ENTRY)&_ZN5S37C44v202Ev,
  (VTBL_ENTRY)&_ZN5S37C44v203Ev,
  (VTBL_ENTRY)&_ZN5S37C44v204Ev,
  (VTBL_ENTRY)&_ZN5S37C44v205Ev,
  (VTBL_ENTRY)&_ZN5S37C44v206Ev,
  (VTBL_ENTRY)&_ZN5S37C44v207Ev,
};
extern VTBL_ENTRY _ZTI5S37C4[];
extern  VTBL_ENTRY _ZTV5S37C4[];
Class_Descriptor cd_S37C4 = {  "S37C4", // class name
  bases_S37C4, 4,
  &(vtc_S37C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S37C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C4),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C3  : S37C4 {
  void *s37c3f0[2];
  int s37c3f1[2];
  char s37c3f2;
  void *s37c3f3;
  unsigned int s37c3f4:1;
  unsigned int s37c3f5:1;
  ::S80C28_nt s37c3f6;
  virtual  ~S37C3(); // _ZN5S37C3D1Ev
  virtual void  v208(); // _ZN5S37C34v208Ev
  virtual void  v209(); // _ZN5S37C34v209Ev
  virtual void  v210(); // _ZN5S37C34v210Ev
  virtual void  v211(); // _ZN5S37C34v211Ev
  virtual void  v212(); // _ZN5S37C34v212Ev
  virtual void  v213(); // _ZN5S37C34v213Ev
  virtual void  v214(); // _ZN5S37C34v214Ev
  virtual void  v215(); // _ZN5S37C34v215Ev
  S37C3(); // tgen
};
//SIG(-1 S37C3) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v73 v74} vd v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 v211 v212 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 v4 v5 v6 v7 v8 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC27{ BC16}}


 S37C3 ::~S37C3(){ note_dtor("S37C3", this);}
void  S37C3 ::v208(){vfunc_called(this, "_ZN5S37C34v208Ev");}
void  S37C3 ::v209(){vfunc_called(this, "_ZN5S37C34v209Ev");}
void  S37C3 ::v210(){vfunc_called(this, "_ZN5S37C34v210Ev");}
void  S37C3 ::v211(){vfunc_called(this, "_ZN5S37C34v211Ev");}
void  S37C3 ::v212(){vfunc_called(this, "_ZN5S37C34v212Ev");}
void  S37C3 ::v213(){vfunc_called(this, "_ZN5S37C34v213Ev");}
void  S37C3 ::v214(){vfunc_called(this, "_ZN5S37C34v214Ev");}
void  S37C3 ::v215(){vfunc_called(this, "_ZN5S37C34v215Ev");}
S37C3 ::S37C3(){ note_ctor("S37C3", this);} // tgen

static void Test_S37C3()
{
  extern Class_Descriptor cd_S37C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(117,165)];
    init_test(&cd_S37C3, buf);
    S37C3 *dp, &lv = *(dp=new (buf) S37C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(928,656), "sizeof(S37C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C3)");
    check_base_class_offset(lv, (S37C8*)(S37C7*)(S37C6*)(S37C5*)(S37C4*), 0, "S37C3");
    check_base_class_offset(lv, (S37C7*)(S37C6*)(S37C5*)(S37C4*), 0, "S37C3");
    check_base_class_offset(lv, (S37C6*)(S37C5*)(S37C4*), 0, "S37C3");
    check_base_class_offset(lv, (S37C5*)(S37C4*), 0, "S37C3");
    check_base_class_offset(lv, (S37C4*), 0, "S37C3");
    check_field_offset(lv, s37c3f0, ABISELECT(864,616), "S37C3.s37c3f0");
    check_field_offset(lv, s37c3f1, ABISELECT(880,624), "S37C3.s37c3f1");
    check_field_offset(lv, s37c3f2, ABISELECT(888,632), "S37C3.s37c3f2");
    check_field_offset(lv, s37c3f3, ABISELECT(896,636), "S37C3.s37c3f3");
    set_bf_and_test(lv, s37c3f4, ABISELECT(904,640), 0, 1, 1, "S37C3");
    set_bf_and_test(lv, s37c3f5, ABISELECT(904,640), 1, 1, 1, "S37C3");
    check_field_offset(lv, s37c3f6, ABISELECT(912,644), "S37C3.s37c3f6");
    test_class_info(&lv, &cd_S37C3);
    dp->~S37C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C3(Test_S37C3, "S37C3", ABISELECT(928,656));

#else // __cplusplus

extern void _ZN5S37C3C1Ev();
extern void _ZN5S37C3D1Ev();
Name_Map name_map_S37C3[] = {
  NSPAIR(_ZN5S37C3C1Ev),
  NSPAIR(_ZN5S37C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
extern Class_Descriptor cd_S37C7;
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
extern Class_Descriptor cd_S37C6;
extern VTBL_ENTRY _ZTI5S37C6[];
extern  VTBL_ENTRY _ZTV5S37C6[];
extern Class_Descriptor cd_S37C5;
extern VTBL_ENTRY _ZTI5S37C5[];
extern  VTBL_ENTRY _ZTV5S37C5[];
extern Class_Descriptor cd_S37C4;
extern VTBL_ENTRY _ZTI5S37C4[];
extern  VTBL_ENTRY _ZTV5S37C4[];
static Base_Class bases_S37C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S37C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S37C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S37C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C3[];
extern void _ZN5S37C3D1Ev();
extern void _ZN5S37C3D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
extern void _ZN5S37C63v70Ev();
extern void _ZN5S37C63v71Ev();
extern void _ZN5S37C63v72Ev();
extern void _ZN5S37C63v73Ev();
extern void _ZN5S37C63v74Ev();
extern void _ZN5S37C63v75Ev();
extern void _ZN5S37C63v76Ev();
extern void _ZN5S37C63v77Ev();
extern void _ZN5S37C63v78Ev();
extern void _ZN5S37C63v79Ev();
extern void _ZN5S37C63v80Ev();
extern void _ZN5S37C63v81Ev();
extern void _ZN5S37C63v82Ev();
extern void _ZN5S37C63v83Ev();
extern void _ZN5S37C63v84Ev();
extern void _ZN5S37C63v85Ev();
extern void _ZN5S37C63v86Ev();
extern void _ZN5S37C63v87Ev();
extern void _ZN5S37C63v88Ev();
extern void _ZN5S37C63v89Ev();
extern void _ZN5S37C63v90Ev();
extern void _ZN5S37C63v91Ev();
extern void _ZN5S37C63v92Ev();
extern void _ZN5S37C63v93Ev();
extern void _ZN5S37C63v94Ev();
extern void _ZN5S37C63v95Ev();
extern void _ZN5S37C63v96Ev();
extern void _ZN5S37C63v97Ev();
extern void _ZN5S37C63v98Ev();
extern void _ZN5S37C63v99Ev();
extern void _ZN5S37C64v100Ev();
extern void _ZN5S37C64v101Ev();
extern void _ZN5S37C64v102Ev();
extern void _ZN5S37C64v103Ev();
extern void _ZN5S37C64v104Ev();
extern void _ZN5S37C64v105Ev();
extern void _ZN5S37C64v106Ev();
extern void _ZN5S37C64v107Ev();
extern void _ZN5S37C64v108Ev();
extern void _ZN5S37C64v109Ev();
extern void _ZN5S37C64v110Ev();
extern void _ZN5S37C64v111Ev();
extern void _ZN5S37C64v112Ev();
extern void _ZN5S37C64v113Ev();
extern void _ZN5S37C64v114Ev();
extern void _ZN5S37C64v115Ev();
extern void _ZN5S37C64v116Ev();
extern void _ZN5S37C64v117Ev();
extern void _ZN5S37C64v118Ev();
extern void _ZN5S37C64v119Ev();
extern void _ZN5S37C64v120Ev();
extern void _ZN5S37C64v121Ev();
extern void _ZN5S37C64v122Ev();
extern void _ZN5S37C64v123Ev();
extern void _ZN5S37C64v124Ev();
extern void _ZN5S37C64v125Ev();
extern void _ZN5S37C64v126Ev();
extern void _ZN5S37C64v127Ev();
extern void _ZN5S37C64v128Ev();
extern void _ZN5S37C64v129Ev();
extern void _ZN5S37C64v130Ev();
extern void _ZN5S37C64v131Ev();
extern void _ZN5S37C64v132Ev();
extern void _ZN5S37C64v133Ev();
extern void _ZN5S37C64v134Ev();
extern void _ZN5S37C64v135Ev();
extern void _ZN5S37C64v136Ev();
extern void _ZN5S37C64v137Ev();
extern void _ZN5S37C64v138Ev();
extern void _ZN5S37C64v139Ev();
extern void _ZN5S37C64v140Ev();
extern void _ZN5S37C64v141Ev();
extern void _ZN5S37C64v142Ev();
extern void _ZN5S37C64v143Ev();
extern void _ZN5S37C64v144Ev();
extern void _ZN5S37C64v145Ev();
extern void _ZN5S37C54v146Ev();
extern void _ZN5S37C54v147Ev();
extern void _ZN5S37C54v148Ev();
extern void _ZN5S37C54v149Ev();
extern void _ZN5S37C54v150Ev();
extern void _ZN5S37C54v151Ev();
extern void _ZN5S37C54v152Ev();
extern void _ZN5S37C54v153Ev();
extern void _ZN5S37C54v154Ev();
extern void _ZN5S37C54v155Ev();
extern void _ZN5S37C54v156Ev();
extern void _ZN5S37C54v157Ev();
extern void _ZN5S37C54v158Ev();
extern void _ZN5S37C54v159Ev();
extern void _ZN5S37C54v160Ev();
extern void _ZN5S37C54v161Ev();
extern void _ZN5S37C54v162Ev();
extern void _ZN5S37C54v163Ev();
extern void _ZN5S37C54v164Ev();
extern void _ZN5S37C54v165Ev();
extern void _ZN5S37C54v166Ev();
extern void _ZN5S37C54v167Ev();
extern void _ZN5S37C54v168Ev();
extern void _ZN5S37C54v169Ev();
extern void _ZN5S37C54v170Ev();
extern void _ZN5S37C54v171Ev();
extern void _ZN5S37C54v172Ev();
extern void _ZN5S37C54v173Ev();
extern void _ZN5S37C54v174Ev();
extern void _ZN5S37C54v175Ev();
extern void _ZN5S37C54v176Ev();
extern void _ZN5S37C54v177Ev();
extern void _ZN5S37C54v178Ev();
extern void _ZN5S37C54v179Ev();
extern void _ZN5S37C54v180Ev();
extern void _ZN5S37C54v181Ev();
extern void _ZN5S37C54v182Ev();
extern void _ZN5S37C54v183Ev();
extern void _ZN5S37C54v184Ev();
extern void _ZN5S37C44v185Ev();
extern void _ZN5S37C44v186Ev();
extern void _ZN5S37C44v187Ev();
extern void _ZN5S37C44v188Ev();
extern void _ZN5S37C44v189Ev();
extern void _ZN5S37C44v190Ev();
extern void _ZN5S37C44v191Ev();
extern void _ZN5S37C44v192Ev();
extern void _ZN5S37C44v193Ev();
extern void _ZN5S37C44v194Ev();
extern void _ZN5S37C44v195Ev();
extern void _ZN5S37C44v196Ev();
extern void _ZN5S37C44v197Ev();
extern void _ZN5S37C44v198Ev();
extern void _ZN5S37C44v199Ev();
extern void _ZN5S37C44v200Ev();
extern void _ZN5S37C44v201Ev();
extern void _ZN5S37C44v202Ev();
extern void _ZN5S37C44v203Ev();
extern void _ZN5S37C44v204Ev();
extern void _ZN5S37C44v205Ev();
extern void _ZN5S37C44v206Ev();
extern void _ZN5S37C44v207Ev();
extern void _ZN5S37C34v208Ev();
extern void _ZN5S37C34v209Ev();
extern void _ZN5S37C34v210Ev();
extern void _ZN5S37C34v211Ev();
extern void _ZN5S37C34v212Ev();
extern void _ZN5S37C34v213Ev();
extern void _ZN5S37C34v214Ev();
extern void _ZN5S37C34v215Ev();
static  VTBL_ENTRY vtc_S37C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C3[0]),
  (VTBL_ENTRY)&_ZN5S37C3D1Ev,
  (VTBL_ENTRY)&_ZN5S37C3D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
  (VTBL_ENTRY)&_ZN5S37C63v70Ev,
  (VTBL_ENTRY)&_ZN5S37C63v71Ev,
  (VTBL_ENTRY)&_ZN5S37C63v72Ev,
  (VTBL_ENTRY)&_ZN5S37C63v73Ev,
  (VTBL_ENTRY)&_ZN5S37C63v74Ev,
  (VTBL_ENTRY)&_ZN5S37C63v75Ev,
  (VTBL_ENTRY)&_ZN5S37C63v76Ev,
  (VTBL_ENTRY)&_ZN5S37C63v77Ev,
  (VTBL_ENTRY)&_ZN5S37C63v78Ev,
  (VTBL_ENTRY)&_ZN5S37C63v79Ev,
  (VTBL_ENTRY)&_ZN5S37C63v80Ev,
  (VTBL_ENTRY)&_ZN5S37C63v81Ev,
  (VTBL_ENTRY)&_ZN5S37C63v82Ev,
  (VTBL_ENTRY)&_ZN5S37C63v83Ev,
  (VTBL_ENTRY)&_ZN5S37C63v84Ev,
  (VTBL_ENTRY)&_ZN5S37C63v85Ev,
  (VTBL_ENTRY)&_ZN5S37C63v86Ev,
  (VTBL_ENTRY)&_ZN5S37C63v87Ev,
  (VTBL_ENTRY)&_ZN5S37C63v88Ev,
  (VTBL_ENTRY)&_ZN5S37C63v89Ev,
  (VTBL_ENTRY)&_ZN5S37C63v90Ev,
  (VTBL_ENTRY)&_ZN5S37C63v91Ev,
  (VTBL_ENTRY)&_ZN5S37C63v92Ev,
  (VTBL_ENTRY)&_ZN5S37C63v93Ev,
  (VTBL_ENTRY)&_ZN5S37C63v94Ev,
  (VTBL_ENTRY)&_ZN5S37C63v95Ev,
  (VTBL_ENTRY)&_ZN5S37C63v96Ev,
  (VTBL_ENTRY)&_ZN5S37C63v97Ev,
  (VTBL_ENTRY)&_ZN5S37C63v98Ev,
  (VTBL_ENTRY)&_ZN5S37C63v99Ev,
  (VTBL_ENTRY)&_ZN5S37C64v100Ev,
  (VTBL_ENTRY)&_ZN5S37C64v101Ev,
  (VTBL_ENTRY)&_ZN5S37C64v102Ev,
  (VTBL_ENTRY)&_ZN5S37C64v103Ev,
  (VTBL_ENTRY)&_ZN5S37C64v104Ev,
  (VTBL_ENTRY)&_ZN5S37C64v105Ev,
  (VTBL_ENTRY)&_ZN5S37C64v106Ev,
  (VTBL_ENTRY)&_ZN5S37C64v107Ev,
  (VTBL_ENTRY)&_ZN5S37C64v108Ev,
  (VTBL_ENTRY)&_ZN5S37C64v109Ev,
  (VTBL_ENTRY)&_ZN5S37C64v110Ev,
  (VTBL_ENTRY)&_ZN5S37C64v111Ev,
  (VTBL_ENTRY)&_ZN5S37C64v112Ev,
  (VTBL_ENTRY)&_ZN5S37C64v113Ev,
  (VTBL_ENTRY)&_ZN5S37C64v114Ev,
  (VTBL_ENTRY)&_ZN5S37C64v115Ev,
  (VTBL_ENTRY)&_ZN5S37C64v116Ev,
  (VTBL_ENTRY)&_ZN5S37C64v117Ev,
  (VTBL_ENTRY)&_ZN5S37C64v118Ev,
  (VTBL_ENTRY)&_ZN5S37C64v119Ev,
  (VTBL_ENTRY)&_ZN5S37C64v120Ev,
  (VTBL_ENTRY)&_ZN5S37C64v121Ev,
  (VTBL_ENTRY)&_ZN5S37C64v122Ev,
  (VTBL_ENTRY)&_ZN5S37C64v123Ev,
  (VTBL_ENTRY)&_ZN5S37C64v124Ev,
  (VTBL_ENTRY)&_ZN5S37C64v125Ev,
  (VTBL_ENTRY)&_ZN5S37C64v126Ev,
  (VTBL_ENTRY)&_ZN5S37C64v127Ev,
  (VTBL_ENTRY)&_ZN5S37C64v128Ev,
  (VTBL_ENTRY)&_ZN5S37C64v129Ev,
  (VTBL_ENTRY)&_ZN5S37C64v130Ev,
  (VTBL_ENTRY)&_ZN5S37C64v131Ev,
  (VTBL_ENTRY)&_ZN5S37C64v132Ev,
  (VTBL_ENTRY)&_ZN5S37C64v133Ev,
  (VTBL_ENTRY)&_ZN5S37C64v134Ev,
  (VTBL_ENTRY)&_ZN5S37C64v135Ev,
  (VTBL_ENTRY)&_ZN5S37C64v136Ev,
  (VTBL_ENTRY)&_ZN5S37C64v137Ev,
  (VTBL_ENTRY)&_ZN5S37C64v138Ev,
  (VTBL_ENTRY)&_ZN5S37C64v139Ev,
  (VTBL_ENTRY)&_ZN5S37C64v140Ev,
  (VTBL_ENTRY)&_ZN5S37C64v141Ev,
  (VTBL_ENTRY)&_ZN5S37C64v142Ev,
  (VTBL_ENTRY)&_ZN5S37C64v143Ev,
  (VTBL_ENTRY)&_ZN5S37C64v144Ev,
  (VTBL_ENTRY)&_ZN5S37C64v145Ev,
  (VTBL_ENTRY)&_ZN5S37C54v146Ev,
  (VTBL_ENTRY)&_ZN5S37C54v147Ev,
  (VTBL_ENTRY)&_ZN5S37C54v148Ev,
  (VTBL_ENTRY)&_ZN5S37C54v149Ev,
  (VTBL_ENTRY)&_ZN5S37C54v150Ev,
  (VTBL_ENTRY)&_ZN5S37C54v151Ev,
  (VTBL_ENTRY)&_ZN5S37C54v152Ev,
  (VTBL_ENTRY)&_ZN5S37C54v153Ev,
  (VTBL_ENTRY)&_ZN5S37C54v154Ev,
  (VTBL_ENTRY)&_ZN5S37C54v155Ev,
  (VTBL_ENTRY)&_ZN5S37C54v156Ev,
  (VTBL_ENTRY)&_ZN5S37C54v157Ev,
  (VTBL_ENTRY)&_ZN5S37C54v158Ev,
  (VTBL_ENTRY)&_ZN5S37C54v159Ev,
  (VTBL_ENTRY)&_ZN5S37C54v160Ev,
  (VTBL_ENTRY)&_ZN5S37C54v161Ev,
  (VTBL_ENTRY)&_ZN5S37C54v162Ev,
  (VTBL_ENTRY)&_ZN5S37C54v163Ev,
  (VTBL_ENTRY)&_ZN5S37C54v164Ev,
  (VTBL_ENTRY)&_ZN5S37C54v165Ev,
  (VTBL_ENTRY)&_ZN5S37C54v166Ev,
  (VTBL_ENTRY)&_ZN5S37C54v167Ev,
  (VTBL_ENTRY)&_ZN5S37C54v168Ev,
  (VTBL_ENTRY)&_ZN5S37C54v169Ev,
  (VTBL_ENTRY)&_ZN5S37C54v170Ev,
  (VTBL_ENTRY)&_ZN5S37C54v171Ev,
  (VTBL_ENTRY)&_ZN5S37C54v172Ev,
  (VTBL_ENTRY)&_ZN5S37C54v173Ev,
  (VTBL_ENTRY)&_ZN5S37C54v174Ev,
  (VTBL_ENTRY)&_ZN5S37C54v175Ev,
  (VTBL_ENTRY)&_ZN5S37C54v176Ev,
  (VTBL_ENTRY)&_ZN5S37C54v177Ev,
  (VTBL_ENTRY)&_ZN5S37C54v178Ev,
  (VTBL_ENTRY)&_ZN5S37C54v179Ev,
  (VTBL_ENTRY)&_ZN5S37C54v180Ev,
  (VTBL_ENTRY)&_ZN5S37C54v181Ev,
  (VTBL_ENTRY)&_ZN5S37C54v182Ev,
  (VTBL_ENTRY)&_ZN5S37C54v183Ev,
  (VTBL_ENTRY)&_ZN5S37C54v184Ev,
  (VTBL_ENTRY)&_ZN5S37C44v185Ev,
  (VTBL_ENTRY)&_ZN5S37C44v186Ev,
  (VTBL_ENTRY)&_ZN5S37C44v187Ev,
  (VTBL_ENTRY)&_ZN5S37C44v188Ev,
  (VTBL_ENTRY)&_ZN5S37C44v189Ev,
  (VTBL_ENTRY)&_ZN5S37C44v190Ev,
  (VTBL_ENTRY)&_ZN5S37C44v191Ev,
  (VTBL_ENTRY)&_ZN5S37C44v192Ev,
  (VTBL_ENTRY)&_ZN5S37C44v193Ev,
  (VTBL_ENTRY)&_ZN5S37C44v194Ev,
  (VTBL_ENTRY)&_ZN5S37C44v195Ev,
  (VTBL_ENTRY)&_ZN5S37C44v196Ev,
  (VTBL_ENTRY)&_ZN5S37C44v197Ev,
  (VTBL_ENTRY)&_ZN5S37C44v198Ev,
  (VTBL_ENTRY)&_ZN5S37C44v199Ev,
  (VTBL_ENTRY)&_ZN5S37C44v200Ev,
  (VTBL_ENTRY)&_ZN5S37C44v201Ev,
  (VTBL_ENTRY)&_ZN5S37C44v202Ev,
  (VTBL_ENTRY)&_ZN5S37C44v203Ev,
  (VTBL_ENTRY)&_ZN5S37C44v204Ev,
  (VTBL_ENTRY)&_ZN5S37C44v205Ev,
  (VTBL_ENTRY)&_ZN5S37C44v206Ev,
  (VTBL_ENTRY)&_ZN5S37C44v207Ev,
  (VTBL_ENTRY)&_ZN5S37C34v208Ev,
  (VTBL_ENTRY)&_ZN5S37C34v209Ev,
  (VTBL_ENTRY)&_ZN5S37C34v210Ev,
  (VTBL_ENTRY)&_ZN5S37C34v211Ev,
  (VTBL_ENTRY)&_ZN5S37C34v212Ev,
  (VTBL_ENTRY)&_ZN5S37C34v213Ev,
  (VTBL_ENTRY)&_ZN5S37C34v214Ev,
  (VTBL_ENTRY)&_ZN5S37C34v215Ev,
};
extern VTBL_ENTRY _ZTI5S37C3[];
extern  VTBL_ENTRY _ZTV5S37C3[];
Class_Descriptor cd_S37C3 = {  "S37C3", // class name
  bases_S37C3, 5,
  &(vtc_S37C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(928,656), // object size
  NSPAIRA(_ZTI5S37C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C3),216, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C2  : S37C3 {
  void *s37c2f0[2];
  unsigned int s37c2f1:1;
  ::S80C10_nt s37c2f2;
  virtual  ~S37C2(); // _ZN5S37C2D1Ev
  virtual void  v216(); // _ZN5S37C24v216Ev
  virtual void  v217(); // _ZN5S37C24v217Ev
  S37C2(); // tgen
};
//SIG(-1 S37C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v67 v68} vd v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v207 v208 v209 v210 v211 v212 v213 v214 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC28{ BC17}} vd v1 v2 Fp[2] Fi:1 FC29{ BC30{ BC12}}}


 S37C2 ::~S37C2(){ note_dtor("S37C2", this);}
void  S37C2 ::v216(){vfunc_called(this, "_ZN5S37C24v216Ev");}
void  S37C2 ::v217(){vfunc_called(this, "_ZN5S37C24v217Ev");}
S37C2 ::S37C2(){ note_ctor("S37C2", this);} // tgen

static void Test_S37C2()
{
  extern Class_Descriptor cd_S37C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(122,171)];
    init_test(&cd_S37C2, buf);
    S37C2 *dp, &lv = *(dp=new (buf) S37C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(968,680), "sizeof(S37C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C2)");
    check_base_class_offset(lv, (S37C8*)(S37C7*)(S37C6*)(S37C5*)(S37C4*)(S37C3*), 0, "S37C2");
    check_base_class_offset(lv, (S37C7*)(S37C6*)(S37C5*)(S37C4*)(S37C3*), 0, "S37C2");
    check_base_class_offset(lv, (S37C6*)(S37C5*)(S37C4*)(S37C3*), 0, "S37C2");
    check_base_class_offset(lv, (S37C5*)(S37C4*)(S37C3*), 0, "S37C2");
    check_base_class_offset(lv, (S37C4*)(S37C3*), 0, "S37C2");
    check_base_class_offset(lv, (S37C3*), 0, "S37C2");
    check_field_offset(lv, s37c2f0, ABISELECT(928,656), "S37C2.s37c2f0");
    set_bf_and_test(lv, s37c2f1, ABISELECT(944,664), 0, 1, 1, "S37C2");
    check_field_offset(lv, s37c2f2, ABISELECT(952,668), "S37C2.s37c2f2");
    test_class_info(&lv, &cd_S37C2);
    dp->~S37C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C2(Test_S37C2, "S37C2", ABISELECT(968,680));

#else // __cplusplus

extern void _ZN5S37C2C1Ev();
extern void _ZN5S37C2D1Ev();
Name_Map name_map_S37C2[] = {
  NSPAIR(_ZN5S37C2C1Ev),
  NSPAIR(_ZN5S37C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
extern Class_Descriptor cd_S37C7;
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
extern Class_Descriptor cd_S37C6;
extern VTBL_ENTRY _ZTI5S37C6[];
extern  VTBL_ENTRY _ZTV5S37C6[];
extern Class_Descriptor cd_S37C5;
extern VTBL_ENTRY _ZTI5S37C5[];
extern  VTBL_ENTRY _ZTV5S37C5[];
extern Class_Descriptor cd_S37C4;
extern VTBL_ENTRY _ZTI5S37C4[];
extern  VTBL_ENTRY _ZTV5S37C4[];
extern Class_Descriptor cd_S37C3;
extern VTBL_ENTRY _ZTI5S37C3[];
extern  VTBL_ENTRY _ZTV5S37C3[];
static Base_Class bases_S37C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S37C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S37C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S37C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S37C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C2[];
extern void _ZN5S37C2D1Ev();
extern void _ZN5S37C2D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
extern void _ZN5S37C63v70Ev();
extern void _ZN5S37C63v71Ev();
extern void _ZN5S37C63v72Ev();
extern void _ZN5S37C63v73Ev();
extern void _ZN5S37C63v74Ev();
extern void _ZN5S37C63v75Ev();
extern void _ZN5S37C63v76Ev();
extern void _ZN5S37C63v77Ev();
extern void _ZN5S37C63v78Ev();
extern void _ZN5S37C63v79Ev();
extern void _ZN5S37C63v80Ev();
extern void _ZN5S37C63v81Ev();
extern void _ZN5S37C63v82Ev();
extern void _ZN5S37C63v83Ev();
extern void _ZN5S37C63v84Ev();
extern void _ZN5S37C63v85Ev();
extern void _ZN5S37C63v86Ev();
extern void _ZN5S37C63v87Ev();
extern void _ZN5S37C63v88Ev();
extern void _ZN5S37C63v89Ev();
extern void _ZN5S37C63v90Ev();
extern void _ZN5S37C63v91Ev();
extern void _ZN5S37C63v92Ev();
extern void _ZN5S37C63v93Ev();
extern void _ZN5S37C63v94Ev();
extern void _ZN5S37C63v95Ev();
extern void _ZN5S37C63v96Ev();
extern void _ZN5S37C63v97Ev();
extern void _ZN5S37C63v98Ev();
extern void _ZN5S37C63v99Ev();
extern void _ZN5S37C64v100Ev();
extern void _ZN5S37C64v101Ev();
extern void _ZN5S37C64v102Ev();
extern void _ZN5S37C64v103Ev();
extern void _ZN5S37C64v104Ev();
extern void _ZN5S37C64v105Ev();
extern void _ZN5S37C64v106Ev();
extern void _ZN5S37C64v107Ev();
extern void _ZN5S37C64v108Ev();
extern void _ZN5S37C64v109Ev();
extern void _ZN5S37C64v110Ev();
extern void _ZN5S37C64v111Ev();
extern void _ZN5S37C64v112Ev();
extern void _ZN5S37C64v113Ev();
extern void _ZN5S37C64v114Ev();
extern void _ZN5S37C64v115Ev();
extern void _ZN5S37C64v116Ev();
extern void _ZN5S37C64v117Ev();
extern void _ZN5S37C64v118Ev();
extern void _ZN5S37C64v119Ev();
extern void _ZN5S37C64v120Ev();
extern void _ZN5S37C64v121Ev();
extern void _ZN5S37C64v122Ev();
extern void _ZN5S37C64v123Ev();
extern void _ZN5S37C64v124Ev();
extern void _ZN5S37C64v125Ev();
extern void _ZN5S37C64v126Ev();
extern void _ZN5S37C64v127Ev();
extern void _ZN5S37C64v128Ev();
extern void _ZN5S37C64v129Ev();
extern void _ZN5S37C64v130Ev();
extern void _ZN5S37C64v131Ev();
extern void _ZN5S37C64v132Ev();
extern void _ZN5S37C64v133Ev();
extern void _ZN5S37C64v134Ev();
extern void _ZN5S37C64v135Ev();
extern void _ZN5S37C64v136Ev();
extern void _ZN5S37C64v137Ev();
extern void _ZN5S37C64v138Ev();
extern void _ZN5S37C64v139Ev();
extern void _ZN5S37C64v140Ev();
extern void _ZN5S37C64v141Ev();
extern void _ZN5S37C64v142Ev();
extern void _ZN5S37C64v143Ev();
extern void _ZN5S37C64v144Ev();
extern void _ZN5S37C64v145Ev();
extern void _ZN5S37C54v146Ev();
extern void _ZN5S37C54v147Ev();
extern void _ZN5S37C54v148Ev();
extern void _ZN5S37C54v149Ev();
extern void _ZN5S37C54v150Ev();
extern void _ZN5S37C54v151Ev();
extern void _ZN5S37C54v152Ev();
extern void _ZN5S37C54v153Ev();
extern void _ZN5S37C54v154Ev();
extern void _ZN5S37C54v155Ev();
extern void _ZN5S37C54v156Ev();
extern void _ZN5S37C54v157Ev();
extern void _ZN5S37C54v158Ev();
extern void _ZN5S37C54v159Ev();
extern void _ZN5S37C54v160Ev();
extern void _ZN5S37C54v161Ev();
extern void _ZN5S37C54v162Ev();
extern void _ZN5S37C54v163Ev();
extern void _ZN5S37C54v164Ev();
extern void _ZN5S37C54v165Ev();
extern void _ZN5S37C54v166Ev();
extern void _ZN5S37C54v167Ev();
extern void _ZN5S37C54v168Ev();
extern void _ZN5S37C54v169Ev();
extern void _ZN5S37C54v170Ev();
extern void _ZN5S37C54v171Ev();
extern void _ZN5S37C54v172Ev();
extern void _ZN5S37C54v173Ev();
extern void _ZN5S37C54v174Ev();
extern void _ZN5S37C54v175Ev();
extern void _ZN5S37C54v176Ev();
extern void _ZN5S37C54v177Ev();
extern void _ZN5S37C54v178Ev();
extern void _ZN5S37C54v179Ev();
extern void _ZN5S37C54v180Ev();
extern void _ZN5S37C54v181Ev();
extern void _ZN5S37C54v182Ev();
extern void _ZN5S37C54v183Ev();
extern void _ZN5S37C54v184Ev();
extern void _ZN5S37C44v185Ev();
extern void _ZN5S37C44v186Ev();
extern void _ZN5S37C44v187Ev();
extern void _ZN5S37C44v188Ev();
extern void _ZN5S37C44v189Ev();
extern void _ZN5S37C44v190Ev();
extern void _ZN5S37C44v191Ev();
extern void _ZN5S37C44v192Ev();
extern void _ZN5S37C44v193Ev();
extern void _ZN5S37C44v194Ev();
extern void _ZN5S37C44v195Ev();
extern void _ZN5S37C44v196Ev();
extern void _ZN5S37C44v197Ev();
extern void _ZN5S37C44v198Ev();
extern void _ZN5S37C44v199Ev();
extern void _ZN5S37C44v200Ev();
extern void _ZN5S37C44v201Ev();
extern void _ZN5S37C44v202Ev();
extern void _ZN5S37C44v203Ev();
extern void _ZN5S37C44v204Ev();
extern void _ZN5S37C44v205Ev();
extern void _ZN5S37C44v206Ev();
extern void _ZN5S37C44v207Ev();
extern void _ZN5S37C34v208Ev();
extern void _ZN5S37C34v209Ev();
extern void _ZN5S37C34v210Ev();
extern void _ZN5S37C34v211Ev();
extern void _ZN5S37C34v212Ev();
extern void _ZN5S37C34v213Ev();
extern void _ZN5S37C34v214Ev();
extern void _ZN5S37C34v215Ev();
extern void _ZN5S37C24v216Ev();
extern void _ZN5S37C24v217Ev();
static  VTBL_ENTRY vtc_S37C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C2[0]),
  (VTBL_ENTRY)&_ZN5S37C2D1Ev,
  (VTBL_ENTRY)&_ZN5S37C2D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
  (VTBL_ENTRY)&_ZN5S37C63v70Ev,
  (VTBL_ENTRY)&_ZN5S37C63v71Ev,
  (VTBL_ENTRY)&_ZN5S37C63v72Ev,
  (VTBL_ENTRY)&_ZN5S37C63v73Ev,
  (VTBL_ENTRY)&_ZN5S37C63v74Ev,
  (VTBL_ENTRY)&_ZN5S37C63v75Ev,
  (VTBL_ENTRY)&_ZN5S37C63v76Ev,
  (VTBL_ENTRY)&_ZN5S37C63v77Ev,
  (VTBL_ENTRY)&_ZN5S37C63v78Ev,
  (VTBL_ENTRY)&_ZN5S37C63v79Ev,
  (VTBL_ENTRY)&_ZN5S37C63v80Ev,
  (VTBL_ENTRY)&_ZN5S37C63v81Ev,
  (VTBL_ENTRY)&_ZN5S37C63v82Ev,
  (VTBL_ENTRY)&_ZN5S37C63v83Ev,
  (VTBL_ENTRY)&_ZN5S37C63v84Ev,
  (VTBL_ENTRY)&_ZN5S37C63v85Ev,
  (VTBL_ENTRY)&_ZN5S37C63v86Ev,
  (VTBL_ENTRY)&_ZN5S37C63v87Ev,
  (VTBL_ENTRY)&_ZN5S37C63v88Ev,
  (VTBL_ENTRY)&_ZN5S37C63v89Ev,
  (VTBL_ENTRY)&_ZN5S37C63v90Ev,
  (VTBL_ENTRY)&_ZN5S37C63v91Ev,
  (VTBL_ENTRY)&_ZN5S37C63v92Ev,
  (VTBL_ENTRY)&_ZN5S37C63v93Ev,
  (VTBL_ENTRY)&_ZN5S37C63v94Ev,
  (VTBL_ENTRY)&_ZN5S37C63v95Ev,
  (VTBL_ENTRY)&_ZN5S37C63v96Ev,
  (VTBL_ENTRY)&_ZN5S37C63v97Ev,
  (VTBL_ENTRY)&_ZN5S37C63v98Ev,
  (VTBL_ENTRY)&_ZN5S37C63v99Ev,
  (VTBL_ENTRY)&_ZN5S37C64v100Ev,
  (VTBL_ENTRY)&_ZN5S37C64v101Ev,
  (VTBL_ENTRY)&_ZN5S37C64v102Ev,
  (VTBL_ENTRY)&_ZN5S37C64v103Ev,
  (VTBL_ENTRY)&_ZN5S37C64v104Ev,
  (VTBL_ENTRY)&_ZN5S37C64v105Ev,
  (VTBL_ENTRY)&_ZN5S37C64v106Ev,
  (VTBL_ENTRY)&_ZN5S37C64v107Ev,
  (VTBL_ENTRY)&_ZN5S37C64v108Ev,
  (VTBL_ENTRY)&_ZN5S37C64v109Ev,
  (VTBL_ENTRY)&_ZN5S37C64v110Ev,
  (VTBL_ENTRY)&_ZN5S37C64v111Ev,
  (VTBL_ENTRY)&_ZN5S37C64v112Ev,
  (VTBL_ENTRY)&_ZN5S37C64v113Ev,
  (VTBL_ENTRY)&_ZN5S37C64v114Ev,
  (VTBL_ENTRY)&_ZN5S37C64v115Ev,
  (VTBL_ENTRY)&_ZN5S37C64v116Ev,
  (VTBL_ENTRY)&_ZN5S37C64v117Ev,
  (VTBL_ENTRY)&_ZN5S37C64v118Ev,
  (VTBL_ENTRY)&_ZN5S37C64v119Ev,
  (VTBL_ENTRY)&_ZN5S37C64v120Ev,
  (VTBL_ENTRY)&_ZN5S37C64v121Ev,
  (VTBL_ENTRY)&_ZN5S37C64v122Ev,
  (VTBL_ENTRY)&_ZN5S37C64v123Ev,
  (VTBL_ENTRY)&_ZN5S37C64v124Ev,
  (VTBL_ENTRY)&_ZN5S37C64v125Ev,
  (VTBL_ENTRY)&_ZN5S37C64v126Ev,
  (VTBL_ENTRY)&_ZN5S37C64v127Ev,
  (VTBL_ENTRY)&_ZN5S37C64v128Ev,
  (VTBL_ENTRY)&_ZN5S37C64v129Ev,
  (VTBL_ENTRY)&_ZN5S37C64v130Ev,
  (VTBL_ENTRY)&_ZN5S37C64v131Ev,
  (VTBL_ENTRY)&_ZN5S37C64v132Ev,
  (VTBL_ENTRY)&_ZN5S37C64v133Ev,
  (VTBL_ENTRY)&_ZN5S37C64v134Ev,
  (VTBL_ENTRY)&_ZN5S37C64v135Ev,
  (VTBL_ENTRY)&_ZN5S37C64v136Ev,
  (VTBL_ENTRY)&_ZN5S37C64v137Ev,
  (VTBL_ENTRY)&_ZN5S37C64v138Ev,
  (VTBL_ENTRY)&_ZN5S37C64v139Ev,
  (VTBL_ENTRY)&_ZN5S37C64v140Ev,
  (VTBL_ENTRY)&_ZN5S37C64v141Ev,
  (VTBL_ENTRY)&_ZN5S37C64v142Ev,
  (VTBL_ENTRY)&_ZN5S37C64v143Ev,
  (VTBL_ENTRY)&_ZN5S37C64v144Ev,
  (VTBL_ENTRY)&_ZN5S37C64v145Ev,
  (VTBL_ENTRY)&_ZN5S37C54v146Ev,
  (VTBL_ENTRY)&_ZN5S37C54v147Ev,
  (VTBL_ENTRY)&_ZN5S37C54v148Ev,
  (VTBL_ENTRY)&_ZN5S37C54v149Ev,
  (VTBL_ENTRY)&_ZN5S37C54v150Ev,
  (VTBL_ENTRY)&_ZN5S37C54v151Ev,
  (VTBL_ENTRY)&_ZN5S37C54v152Ev,
  (VTBL_ENTRY)&_ZN5S37C54v153Ev,
  (VTBL_ENTRY)&_ZN5S37C54v154Ev,
  (VTBL_ENTRY)&_ZN5S37C54v155Ev,
  (VTBL_ENTRY)&_ZN5S37C54v156Ev,
  (VTBL_ENTRY)&_ZN5S37C54v157Ev,
  (VTBL_ENTRY)&_ZN5S37C54v158Ev,
  (VTBL_ENTRY)&_ZN5S37C54v159Ev,
  (VTBL_ENTRY)&_ZN5S37C54v160Ev,
  (VTBL_ENTRY)&_ZN5S37C54v161Ev,
  (VTBL_ENTRY)&_ZN5S37C54v162Ev,
  (VTBL_ENTRY)&_ZN5S37C54v163Ev,
  (VTBL_ENTRY)&_ZN5S37C54v164Ev,
  (VTBL_ENTRY)&_ZN5S37C54v165Ev,
  (VTBL_ENTRY)&_ZN5S37C54v166Ev,
  (VTBL_ENTRY)&_ZN5S37C54v167Ev,
  (VTBL_ENTRY)&_ZN5S37C54v168Ev,
  (VTBL_ENTRY)&_ZN5S37C54v169Ev,
  (VTBL_ENTRY)&_ZN5S37C54v170Ev,
  (VTBL_ENTRY)&_ZN5S37C54v171Ev,
  (VTBL_ENTRY)&_ZN5S37C54v172Ev,
  (VTBL_ENTRY)&_ZN5S37C54v173Ev,
  (VTBL_ENTRY)&_ZN5S37C54v174Ev,
  (VTBL_ENTRY)&_ZN5S37C54v175Ev,
  (VTBL_ENTRY)&_ZN5S37C54v176Ev,
  (VTBL_ENTRY)&_ZN5S37C54v177Ev,
  (VTBL_ENTRY)&_ZN5S37C54v178Ev,
  (VTBL_ENTRY)&_ZN5S37C54v179Ev,
  (VTBL_ENTRY)&_ZN5S37C54v180Ev,
  (VTBL_ENTRY)&_ZN5S37C54v181Ev,
  (VTBL_ENTRY)&_ZN5S37C54v182Ev,
  (VTBL_ENTRY)&_ZN5S37C54v183Ev,
  (VTBL_ENTRY)&_ZN5S37C54v184Ev,
  (VTBL_ENTRY)&_ZN5S37C44v185Ev,
  (VTBL_ENTRY)&_ZN5S37C44v186Ev,
  (VTBL_ENTRY)&_ZN5S37C44v187Ev,
  (VTBL_ENTRY)&_ZN5S37C44v188Ev,
  (VTBL_ENTRY)&_ZN5S37C44v189Ev,
  (VTBL_ENTRY)&_ZN5S37C44v190Ev,
  (VTBL_ENTRY)&_ZN5S37C44v191Ev,
  (VTBL_ENTRY)&_ZN5S37C44v192Ev,
  (VTBL_ENTRY)&_ZN5S37C44v193Ev,
  (VTBL_ENTRY)&_ZN5S37C44v194Ev,
  (VTBL_ENTRY)&_ZN5S37C44v195Ev,
  (VTBL_ENTRY)&_ZN5S37C44v196Ev,
  (VTBL_ENTRY)&_ZN5S37C44v197Ev,
  (VTBL_ENTRY)&_ZN5S37C44v198Ev,
  (VTBL_ENTRY)&_ZN5S37C44v199Ev,
  (VTBL_ENTRY)&_ZN5S37C44v200Ev,
  (VTBL_ENTRY)&_ZN5S37C44v201Ev,
  (VTBL_ENTRY)&_ZN5S37C44v202Ev,
  (VTBL_ENTRY)&_ZN5S37C44v203Ev,
  (VTBL_ENTRY)&_ZN5S37C44v204Ev,
  (VTBL_ENTRY)&_ZN5S37C44v205Ev,
  (VTBL_ENTRY)&_ZN5S37C44v206Ev,
  (VTBL_ENTRY)&_ZN5S37C44v207Ev,
  (VTBL_ENTRY)&_ZN5S37C34v208Ev,
  (VTBL_ENTRY)&_ZN5S37C34v209Ev,
  (VTBL_ENTRY)&_ZN5S37C34v210Ev,
  (VTBL_ENTRY)&_ZN5S37C34v211Ev,
  (VTBL_ENTRY)&_ZN5S37C34v212Ev,
  (VTBL_ENTRY)&_ZN5S37C34v213Ev,
  (VTBL_ENTRY)&_ZN5S37C34v214Ev,
  (VTBL_ENTRY)&_ZN5S37C34v215Ev,
  (VTBL_ENTRY)&_ZN5S37C24v216Ev,
  (VTBL_ENTRY)&_ZN5S37C24v217Ev,
};
extern VTBL_ENTRY _ZTI5S37C2[];
extern  VTBL_ENTRY _ZTV5S37C2[];
Class_Descriptor cd_S37C2 = {  "S37C2", // class name
  bases_S37C2, 6,
  &(vtc_S37C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(968,680), // object size
  NSPAIRA(_ZTI5S37C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C2),218, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C35  : S80C12_nt {
};
//SIG(-1 S37C35) C1{ BC2{ m Fp Fi[2]}}



static void Test_S37C35()
{
  extern Class_Descriptor cd_S37C35;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S37C35, buf);
    S37C35 &lv = *(new (buf) S37C35());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S37C35)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C35)");
    check_base_class_offset(lv, (S80C12_nt*), 0, "S37C35");
    test_class_info(&lv, &cd_S37C35);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C35(Test_S37C35, "S37C35", ABISELECT(16,12));

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
static Base_Class bases_S37C35[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S37C35 = {  "S37C35", // class name
  bases_S37C35, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C34_nt  : S37C35 {
};
//SIG(-1 S37C34_nt) C1{ BC2{ BC3{ m Fp Fi[2]}}}



//skip512 S37C34_nt

#else // __cplusplus

extern Class_Descriptor cd_S80C12_nt;
extern Class_Descriptor cd_S37C35;
static Base_Class bases_S37C34_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S80C12_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C35,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S37C1  : S37C2 {
  ::S80C28_nt s37c1f0;
  void *s37c1f1[6];
  char s37c1f2;
  unsigned int s37c1f3:1;
  unsigned int s37c1f4:1;
  unsigned int s37c1f5:1;
  ::S37C34_nt s37c1f6;
  virtual  ~S37C1(); // _ZN5S37C1D1Ev
  virtual void  v1(); // _ZN5S37C12v1Ev
  virtual void  v2(); // _ZN5S37C12v2Ev
  virtual void  v3(); // _ZN5S37C12v3Ev
  S37C1(); // tgen
};
//SIG(1 S37C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ BC8{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC9{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC10{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC11{ BC12{ BC13{ m Fp Fi[2]}}} FC14{ BC15{ BC13}} Fp FC16{ BC17{ BC13}} FC16 FC18{ BC19{ BC13}} FC20{ BC21{ BC13}} Fc Fi Fp FC9 FC9 FC9 FC9 FC9 FC9 FC22{ m Fp FC23{ m Fi[2]}} FC22 FC22 FC22 FC22 FC22 FC22 FC22 FC22 FC22} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC9 Fp[9] FC24{ BC25{ BC13}} FC11 FC26{ BC27{ m FC28{ BC13} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC23 FC9 FC9 Fp FC22 FC22 FC22 FC22 FC22} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC22 FC22 FC22} vd v208 v209 v210 v211 v212 v213 v214 v215 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC29{ BC18}} vd v216 v217 Fp[2] Fi:1 FC30{ BC31{ BC13}}} vd v1 v2 v3 FC29 Fp[6] Fc Fi:1 Fi:1 Fi:1 FC32{ BC33{ BC13}}}


 S37C1 ::~S37C1(){ note_dtor("S37C1", this);}
void  S37C1 ::v1(){vfunc_called(this, "_ZN5S37C12v1Ev");}
void  S37C1 ::v2(){vfunc_called(this, "_ZN5S37C12v2Ev");}
void  S37C1 ::v3(){vfunc_called(this, "_ZN5S37C12v3Ev");}
S37C1 ::S37C1(){ note_ctor("S37C1", this);} // tgen

static void Test_S37C1()
{
  extern Class_Descriptor cd_S37C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(133,184)];
    init_test(&cd_S37C1, buf);
    S37C1 *dp, &lv = *(dp=new (buf) S37C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1056,732), "sizeof(S37C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S37C1)");
    check_base_class_offset(lv, (S37C8*)(S37C7*)(S37C6*)(S37C5*)(S37C4*)(S37C3*)(S37C2*), 0, "S37C1");
    check_base_class_offset(lv, (S37C7*)(S37C6*)(S37C5*)(S37C4*)(S37C3*)(S37C2*), 0, "S37C1");
    check_base_class_offset(lv, (S37C6*)(S37C5*)(S37C4*)(S37C3*)(S37C2*), 0, "S37C1");
    check_base_class_offset(lv, (S37C5*)(S37C4*)(S37C3*)(S37C2*), 0, "S37C1");
    check_base_class_offset(lv, (S37C4*)(S37C3*)(S37C2*), 0, "S37C1");
    check_base_class_offset(lv, (S37C3*)(S37C2*), 0, "S37C1");
    check_base_class_offset(lv, (S37C2*), 0, "S37C1");
    check_field_offset(lv, s37c1f0, ABISELECT(968,680), "S37C1.s37c1f0");
    check_field_offset(lv, s37c1f1, ABISELECT(984,692), "S37C1.s37c1f1");
    check_field_offset(lv, s37c1f2, ABISELECT(1032,716), "S37C1.s37c1f2");
    set_bf_and_test(lv, s37c1f3, ABISELECT(1033,717), 0, 1, 1, "S37C1");
    set_bf_and_test(lv, s37c1f4, ABISELECT(1033,717), 1, 1, 1, "S37C1");
    set_bf_and_test(lv, s37c1f5, ABISELECT(1033,717), 2, 1, 1, "S37C1");
    check_field_offset(lv, s37c1f6, ABISELECT(1040,720), "S37C1.s37c1f6");
    test_class_info(&lv, &cd_S37C1);
    dp->~S37C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS37C1(Test_S37C1, "S37C1", ABISELECT(1056,732));

#else // __cplusplus

extern void _ZN5S37C1C1Ev();
extern void _ZN5S37C1D1Ev();
Name_Map name_map_S37C1[] = {
  NSPAIR(_ZN5S37C1C1Ev),
  NSPAIR(_ZN5S37C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S37C8;
extern VTBL_ENTRY _ZTI5S37C8[];
extern  VTBL_ENTRY _ZTV5S37C8[];
extern Class_Descriptor cd_S37C7;
extern VTBL_ENTRY _ZTI5S37C7[];
extern  VTBL_ENTRY _ZTV5S37C7[];
extern Class_Descriptor cd_S37C6;
extern VTBL_ENTRY _ZTI5S37C6[];
extern  VTBL_ENTRY _ZTV5S37C6[];
extern Class_Descriptor cd_S37C5;
extern VTBL_ENTRY _ZTI5S37C5[];
extern  VTBL_ENTRY _ZTV5S37C5[];
extern Class_Descriptor cd_S37C4;
extern VTBL_ENTRY _ZTI5S37C4[];
extern  VTBL_ENTRY _ZTV5S37C4[];
extern Class_Descriptor cd_S37C3;
extern VTBL_ENTRY _ZTI5S37C3[];
extern  VTBL_ENTRY _ZTV5S37C3[];
extern Class_Descriptor cd_S37C2;
extern VTBL_ENTRY _ZTI5S37C2[];
extern  VTBL_ENTRY _ZTV5S37C2[];
static Base_Class bases_S37C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S37C8,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S37C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S37C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S37C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S37C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S37C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    6, //immediately_derived
  0, 0},
  {&cd_S37C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    7, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S37C1[];
extern void _ZN5S37C1D1Ev();
extern void _ZN5S37C1D0Ev();
extern void _ZN5S37C82v4Ev();
extern void _ZN5S37C82v5Ev();
extern void _ZN5S37C82v6Ev();
extern void _ZN5S37C82v7Ev();
extern void _ZN5S37C82v8Ev();
extern void _ZN5S37C82v9Ev();
extern void _ZN5S37C83v10Ev();
extern void _ZN5S37C83v11Ev();
extern void _ZN5S37C83v12Ev();
extern void _ZN5S37C83v13Ev();
extern void _ZN5S37C83v14Ev();
extern void _ZN5S37C83v15Ev();
extern void _ZN5S37C83v16Ev();
extern void _ZN5S37C83v17Ev();
extern void _ZN5S37C83v18Ev();
extern void _ZN5S37C83v19Ev();
extern void _ZN5S37C83v20Ev();
extern void _ZN5S37C83v21Ev();
extern void _ZN5S37C83v22Ev();
extern void _ZN5S37C83v23Ev();
extern void _ZN5S37C83v24Ev();
extern void _ZN5S37C83v25Ev();
extern void _ZN5S37C83v26Ev();
extern void _ZN5S37C83v27Ev();
extern void _ZN5S37C83v28Ev();
extern void _ZN5S37C83v29Ev();
extern void _ZN5S37C83v30Ev();
extern void _ZN5S37C83v31Ev();
extern void _ZN5S37C83v32Ev();
extern void _ZN5S37C83v33Ev();
extern void _ZN5S37C83v34Ev();
extern void _ZN5S37C83v35Ev();
extern void _ZN5S37C83v36Ev();
extern void _ZN5S37C83v37Ev();
extern void _ZN5S37C83v38Ev();
extern void _ZN5S37C83v39Ev();
extern void _ZN5S37C83v40Ev();
extern void _ZN5S37C83v41Ev();
extern void _ZN5S37C83v42Ev();
extern void _ZN5S37C83v43Ev();
extern void _ZN5S37C83v44Ev();
extern void _ZN5S37C83v45Ev();
extern void _ZN5S37C83v46Ev();
extern void _ZN5S37C83v47Ev();
extern void _ZN5S37C83v48Ev();
extern void _ZN5S37C83v49Ev();
extern void _ZN5S37C83v50Ev();
extern void _ZN5S37C83v51Ev();
extern void _ZN5S37C83v52Ev();
extern void _ZN5S37C83v53Ev();
extern void _ZN5S37C83v54Ev();
extern void _ZN5S37C83v55Ev();
extern void _ZN5S37C83v56Ev();
extern void _ZN5S37C83v57Ev();
extern void _ZN5S37C83v58Ev();
extern void _ZN5S37C83v59Ev();
extern void _ZN5S37C83v60Ev();
extern void _ZN5S37C83v61Ev();
extern void _ZN5S37C83v62Ev();
extern void _ZN5S37C83v63Ev();
extern void _ZN5S37C83v64Ev();
extern void _ZN5S37C83v65Ev();
extern void _ZN5S37C83v66Ev();
extern void _ZN5S37C83v67Ev();
extern void _ZN5S37C73v68Ev();
extern void _ZN5S37C73v69Ev();
extern void _ZN5S37C63v70Ev();
extern void _ZN5S37C63v71Ev();
extern void _ZN5S37C63v72Ev();
extern void _ZN5S37C63v73Ev();
extern void _ZN5S37C63v74Ev();
extern void _ZN5S37C63v75Ev();
extern void _ZN5S37C63v76Ev();
extern void _ZN5S37C63v77Ev();
extern void _ZN5S37C63v78Ev();
extern void _ZN5S37C63v79Ev();
extern void _ZN5S37C63v80Ev();
extern void _ZN5S37C63v81Ev();
extern void _ZN5S37C63v82Ev();
extern void _ZN5S37C63v83Ev();
extern void _ZN5S37C63v84Ev();
extern void _ZN5S37C63v85Ev();
extern void _ZN5S37C63v86Ev();
extern void _ZN5S37C63v87Ev();
extern void _ZN5S37C63v88Ev();
extern void _ZN5S37C63v89Ev();
extern void _ZN5S37C63v90Ev();
extern void _ZN5S37C63v91Ev();
extern void _ZN5S37C63v92Ev();
extern void _ZN5S37C63v93Ev();
extern void _ZN5S37C63v94Ev();
extern void _ZN5S37C63v95Ev();
extern void _ZN5S37C63v96Ev();
extern void _ZN5S37C63v97Ev();
extern void _ZN5S37C63v98Ev();
extern void _ZN5S37C63v99Ev();
extern void _ZN5S37C64v100Ev();
extern void _ZN5S37C64v101Ev();
extern void _ZN5S37C64v102Ev();
extern void _ZN5S37C64v103Ev();
extern void _ZN5S37C64v104Ev();
extern void _ZN5S37C64v105Ev();
extern void _ZN5S37C64v106Ev();
extern void _ZN5S37C64v107Ev();
extern void _ZN5S37C64v108Ev();
extern void _ZN5S37C64v109Ev();
extern void _ZN5S37C64v110Ev();
extern void _ZN5S37C64v111Ev();
extern void _ZN5S37C64v112Ev();
extern void _ZN5S37C64v113Ev();
extern void _ZN5S37C64v114Ev();
extern void _ZN5S37C64v115Ev();
extern void _ZN5S37C64v116Ev();
extern void _ZN5S37C64v117Ev();
extern void _ZN5S37C64v118Ev();
extern void _ZN5S37C64v119Ev();
extern void _ZN5S37C64v120Ev();
extern void _ZN5S37C64v121Ev();
extern void _ZN5S37C64v122Ev();
extern void _ZN5S37C64v123Ev();
extern void _ZN5S37C64v124Ev();
extern void _ZN5S37C64v125Ev();
extern void _ZN5S37C64v126Ev();
extern void _ZN5S37C64v127Ev();
extern void _ZN5S37C64v128Ev();
extern void _ZN5S37C64v129Ev();
extern void _ZN5S37C64v130Ev();
extern void _ZN5S37C64v131Ev();
extern void _ZN5S37C64v132Ev();
extern void _ZN5S37C64v133Ev();
extern void _ZN5S37C64v134Ev();
extern void _ZN5S37C64v135Ev();
extern void _ZN5S37C64v136Ev();
extern void _ZN5S37C64v137Ev();
extern void _ZN5S37C64v138Ev();
extern void _ZN5S37C64v139Ev();
extern void _ZN5S37C64v140Ev();
extern void _ZN5S37C64v141Ev();
extern void _ZN5S37C64v142Ev();
extern void _ZN5S37C64v143Ev();
extern void _ZN5S37C64v144Ev();
extern void _ZN5S37C64v145Ev();
extern void _ZN5S37C54v146Ev();
extern void _ZN5S37C54v147Ev();
extern void _ZN5S37C54v148Ev();
extern void _ZN5S37C54v149Ev();
extern void _ZN5S37C54v150Ev();
extern void _ZN5S37C54v151Ev();
extern void _ZN5S37C54v152Ev();
extern void _ZN5S37C54v153Ev();
extern void _ZN5S37C54v154Ev();
extern void _ZN5S37C54v155Ev();
extern void _ZN5S37C54v156Ev();
extern void _ZN5S37C54v157Ev();
extern void _ZN5S37C54v158Ev();
extern void _ZN5S37C54v159Ev();
extern void _ZN5S37C54v160Ev();
extern void _ZN5S37C54v161Ev();
extern void _ZN5S37C54v162Ev();
extern void _ZN5S37C54v163Ev();
extern void _ZN5S37C54v164Ev();
extern void _ZN5S37C54v165Ev();
extern void _ZN5S37C54v166Ev();
extern void _ZN5S37C54v167Ev();
extern void _ZN5S37C54v168Ev();
extern void _ZN5S37C54v169Ev();
extern void _ZN5S37C54v170Ev();
extern void _ZN5S37C54v171Ev();
extern void _ZN5S37C54v172Ev();
extern void _ZN5S37C54v173Ev();
extern void _ZN5S37C54v174Ev();
extern void _ZN5S37C54v175Ev();
extern void _ZN5S37C54v176Ev();
extern void _ZN5S37C54v177Ev();
extern void _ZN5S37C54v178Ev();
extern void _ZN5S37C54v179Ev();
extern void _ZN5S37C54v180Ev();
extern void _ZN5S37C54v181Ev();
extern void _ZN5S37C54v182Ev();
extern void _ZN5S37C54v183Ev();
extern void _ZN5S37C54v184Ev();
extern void _ZN5S37C44v185Ev();
extern void _ZN5S37C44v186Ev();
extern void _ZN5S37C44v187Ev();
extern void _ZN5S37C44v188Ev();
extern void _ZN5S37C44v189Ev();
extern void _ZN5S37C44v190Ev();
extern void _ZN5S37C44v191Ev();
extern void _ZN5S37C44v192Ev();
extern void _ZN5S37C44v193Ev();
extern void _ZN5S37C44v194Ev();
extern void _ZN5S37C44v195Ev();
extern void _ZN5S37C44v196Ev();
extern void _ZN5S37C44v197Ev();
extern void _ZN5S37C44v198Ev();
extern void _ZN5S37C44v199Ev();
extern void _ZN5S37C44v200Ev();
extern void _ZN5S37C44v201Ev();
extern void _ZN5S37C44v202Ev();
extern void _ZN5S37C44v203Ev();
extern void _ZN5S37C44v204Ev();
extern void _ZN5S37C44v205Ev();
extern void _ZN5S37C44v206Ev();
extern void _ZN5S37C44v207Ev();
extern void _ZN5S37C34v208Ev();
extern void _ZN5S37C34v209Ev();
extern void _ZN5S37C34v210Ev();
extern void _ZN5S37C34v211Ev();
extern void _ZN5S37C34v212Ev();
extern void _ZN5S37C34v213Ev();
extern void _ZN5S37C34v214Ev();
extern void _ZN5S37C34v215Ev();
extern void _ZN5S37C24v216Ev();
extern void _ZN5S37C24v217Ev();
extern void _ZN5S37C12v1Ev();
extern void _ZN5S37C12v2Ev();
extern void _ZN5S37C12v3Ev();
static  VTBL_ENTRY vtc_S37C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S37C1[0]),
  (VTBL_ENTRY)&_ZN5S37C1D1Ev,
  (VTBL_ENTRY)&_ZN5S37C1D0Ev,
  (VTBL_ENTRY)&_ZN5S37C82v4Ev,
  (VTBL_ENTRY)&_ZN5S37C82v5Ev,
  (VTBL_ENTRY)&_ZN5S37C82v6Ev,
  (VTBL_ENTRY)&_ZN5S37C82v7Ev,
  (VTBL_ENTRY)&_ZN5S37C82v8Ev,
  (VTBL_ENTRY)&_ZN5S37C82v9Ev,
  (VTBL_ENTRY)&_ZN5S37C83v10Ev,
  (VTBL_ENTRY)&_ZN5S37C83v11Ev,
  (VTBL_ENTRY)&_ZN5S37C83v12Ev,
  (VTBL_ENTRY)&_ZN5S37C83v13Ev,
  (VTBL_ENTRY)&_ZN5S37C83v14Ev,
  (VTBL_ENTRY)&_ZN5S37C83v15Ev,
  (VTBL_ENTRY)&_ZN5S37C83v16Ev,
  (VTBL_ENTRY)&_ZN5S37C83v17Ev,
  (VTBL_ENTRY)&_ZN5S37C83v18Ev,
  (VTBL_ENTRY)&_ZN5S37C83v19Ev,
  (VTBL_ENTRY)&_ZN5S37C83v20Ev,
  (VTBL_ENTRY)&_ZN5S37C83v21Ev,
  (VTBL_ENTRY)&_ZN5S37C83v22Ev,
  (VTBL_ENTRY)&_ZN5S37C83v23Ev,
  (VTBL_ENTRY)&_ZN5S37C83v24Ev,
  (VTBL_ENTRY)&_ZN5S37C83v25Ev,
  (VTBL_ENTRY)&_ZN5S37C83v26Ev,
  (VTBL_ENTRY)&_ZN5S37C83v27Ev,
  (VTBL_ENTRY)&_ZN5S37C83v28Ev,
  (VTBL_ENTRY)&_ZN5S37C83v29Ev,
  (VTBL_ENTRY)&_ZN5S37C83v30Ev,
  (VTBL_ENTRY)&_ZN5S37C83v31Ev,
  (VTBL_ENTRY)&_ZN5S37C83v32Ev,
  (VTBL_ENTRY)&_ZN5S37C83v33Ev,
  (VTBL_ENTRY)&_ZN5S37C83v34Ev,
  (VTBL_ENTRY)&_ZN5S37C83v35Ev,
  (VTBL_ENTRY)&_ZN5S37C83v36Ev,
  (VTBL_ENTRY)&_ZN5S37C83v37Ev,
  (VTBL_ENTRY)&_ZN5S37C83v38Ev,
  (VTBL_ENTRY)&_ZN5S37C83v39Ev,
  (VTBL_ENTRY)&_ZN5S37C83v40Ev,
  (VTBL_ENTRY)&_ZN5S37C83v41Ev,
  (VTBL_ENTRY)&_ZN5S37C83v42Ev,
  (VTBL_ENTRY)&_ZN5S37C83v43Ev,
  (VTBL_ENTRY)&_ZN5S37C83v44Ev,
  (VTBL_ENTRY)&_ZN5S37C83v45Ev,
  (VTBL_ENTRY)&_ZN5S37C83v46Ev,
  (VTBL_ENTRY)&_ZN5S37C83v47Ev,
  (VTBL_ENTRY)&_ZN5S37C83v48Ev,
  (VTBL_ENTRY)&_ZN5S37C83v49Ev,
  (VTBL_ENTRY)&_ZN5S37C83v50Ev,
  (VTBL_ENTRY)&_ZN5S37C83v51Ev,
  (VTBL_ENTRY)&_ZN5S37C83v52Ev,
  (VTBL_ENTRY)&_ZN5S37C83v53Ev,
  (VTBL_ENTRY)&_ZN5S37C83v54Ev,
  (VTBL_ENTRY)&_ZN5S37C83v55Ev,
  (VTBL_ENTRY)&_ZN5S37C83v56Ev,
  (VTBL_ENTRY)&_ZN5S37C83v57Ev,
  (VTBL_ENTRY)&_ZN5S37C83v58Ev,
  (VTBL_ENTRY)&_ZN5S37C83v59Ev,
  (VTBL_ENTRY)&_ZN5S37C83v60Ev,
  (VTBL_ENTRY)&_ZN5S37C83v61Ev,
  (VTBL_ENTRY)&_ZN5S37C83v62Ev,
  (VTBL_ENTRY)&_ZN5S37C83v63Ev,
  (VTBL_ENTRY)&_ZN5S37C83v64Ev,
  (VTBL_ENTRY)&_ZN5S37C83v65Ev,
  (VTBL_ENTRY)&_ZN5S37C83v66Ev,
  (VTBL_ENTRY)&_ZN5S37C83v67Ev,
  (VTBL_ENTRY)&_ZN5S37C73v68Ev,
  (VTBL_ENTRY)&_ZN5S37C73v69Ev,
  (VTBL_ENTRY)&_ZN5S37C63v70Ev,
  (VTBL_ENTRY)&_ZN5S37C63v71Ev,
  (VTBL_ENTRY)&_ZN5S37C63v72Ev,
  (VTBL_ENTRY)&_ZN5S37C63v73Ev,
  (VTBL_ENTRY)&_ZN5S37C63v74Ev,
  (VTBL_ENTRY)&_ZN5S37C63v75Ev,
  (VTBL_ENTRY)&_ZN5S37C63v76Ev,
  (VTBL_ENTRY)&_ZN5S37C63v77Ev,
  (VTBL_ENTRY)&_ZN5S37C63v78Ev,
  (VTBL_ENTRY)&_ZN5S37C63v79Ev,
  (VTBL_ENTRY)&_ZN5S37C63v80Ev,
  (VTBL_ENTRY)&_ZN5S37C63v81Ev,
  (VTBL_ENTRY)&_ZN5S37C63v82Ev,
  (VTBL_ENTRY)&_ZN5S37C63v83Ev,
  (VTBL_ENTRY)&_ZN5S37C63v84Ev,
  (VTBL_ENTRY)&_ZN5S37C63v85Ev,
  (VTBL_ENTRY)&_ZN5S37C63v86Ev,
  (VTBL_ENTRY)&_ZN5S37C63v87Ev,
  (VTBL_ENTRY)&_ZN5S37C63v88Ev,
  (VTBL_ENTRY)&_ZN5S37C63v89Ev,
  (VTBL_ENTRY)&_ZN5S37C63v90Ev,
  (VTBL_ENTRY)&_ZN5S37C63v91Ev,
  (VTBL_ENTRY)&_ZN5S37C63v92Ev,
  (VTBL_ENTRY)&_ZN5S37C63v93Ev,
  (VTBL_ENTRY)&_ZN5S37C63v94Ev,
  (VTBL_ENTRY)&_ZN5S37C63v95Ev,
  (VTBL_ENTRY)&_ZN5S37C63v96Ev,
  (VTBL_ENTRY)&_ZN5S37C63v97Ev,
  (VTBL_ENTRY)&_ZN5S37C63v98Ev,
  (VTBL_ENTRY)&_ZN5S37C63v99Ev,
  (VTBL_ENTRY)&_ZN5S37C64v100Ev,
  (VTBL_ENTRY)&_ZN5S37C64v101Ev,
  (VTBL_ENTRY)&_ZN5S37C64v102Ev,
  (VTBL_ENTRY)&_ZN5S37C64v103Ev,
  (VTBL_ENTRY)&_ZN5S37C64v104Ev,
  (VTBL_ENTRY)&_ZN5S37C64v105Ev,
  (VTBL_ENTRY)&_ZN5S37C64v106Ev,
  (VTBL_ENTRY)&_ZN5S37C64v107Ev,
  (VTBL_ENTRY)&_ZN5S37C64v108Ev,
  (VTBL_ENTRY)&_ZN5S37C64v109Ev,
  (VTBL_ENTRY)&_ZN5S37C64v110Ev,
  (VTBL_ENTRY)&_ZN5S37C64v111Ev,
  (VTBL_ENTRY)&_ZN5S37C64v112Ev,
  (VTBL_ENTRY)&_ZN5S37C64v113Ev,
  (VTBL_ENTRY)&_ZN5S37C64v114Ev,
  (VTBL_ENTRY)&_ZN5S37C64v115Ev,
  (VTBL_ENTRY)&_ZN5S37C64v116Ev,
  (VTBL_ENTRY)&_ZN5S37C64v117Ev,
  (VTBL_ENTRY)&_ZN5S37C64v118Ev,
  (VTBL_ENTRY)&_ZN5S37C64v119Ev,
  (VTBL_ENTRY)&_ZN5S37C64v120Ev,
  (VTBL_ENTRY)&_ZN5S37C64v121Ev,
  (VTBL_ENTRY)&_ZN5S37C64v122Ev,
  (VTBL_ENTRY)&_ZN5S37C64v123Ev,
  (VTBL_ENTRY)&_ZN5S37C64v124Ev,
  (VTBL_ENTRY)&_ZN5S37C64v125Ev,
  (VTBL_ENTRY)&_ZN5S37C64v126Ev,
  (VTBL_ENTRY)&_ZN5S37C64v127Ev,
  (VTBL_ENTRY)&_ZN5S37C64v128Ev,
  (VTBL_ENTRY)&_ZN5S37C64v129Ev,
  (VTBL_ENTRY)&_ZN5S37C64v130Ev,
  (VTBL_ENTRY)&_ZN5S37C64v131Ev,
  (VTBL_ENTRY)&_ZN5S37C64v132Ev,
  (VTBL_ENTRY)&_ZN5S37C64v133Ev,
  (VTBL_ENTRY)&_ZN5S37C64v134Ev,
  (VTBL_ENTRY)&_ZN5S37C64v135Ev,
  (VTBL_ENTRY)&_ZN5S37C64v136Ev,
  (VTBL_ENTRY)&_ZN5S37C64v137Ev,
  (VTBL_ENTRY)&_ZN5S37C64v138Ev,
  (VTBL_ENTRY)&_ZN5S37C64v139Ev,
  (VTBL_ENTRY)&_ZN5S37C64v140Ev,
  (VTBL_ENTRY)&_ZN5S37C64v141Ev,
  (VTBL_ENTRY)&_ZN5S37C64v142Ev,
  (VTBL_ENTRY)&_ZN5S37C64v143Ev,
  (VTBL_ENTRY)&_ZN5S37C64v144Ev,
  (VTBL_ENTRY)&_ZN5S37C64v145Ev,
  (VTBL_ENTRY)&_ZN5S37C54v146Ev,
  (VTBL_ENTRY)&_ZN5S37C54v147Ev,
  (VTBL_ENTRY)&_ZN5S37C54v148Ev,
  (VTBL_ENTRY)&_ZN5S37C54v149Ev,
  (VTBL_ENTRY)&_ZN5S37C54v150Ev,
  (VTBL_ENTRY)&_ZN5S37C54v151Ev,
  (VTBL_ENTRY)&_ZN5S37C54v152Ev,
  (VTBL_ENTRY)&_ZN5S37C54v153Ev,
  (VTBL_ENTRY)&_ZN5S37C54v154Ev,
  (VTBL_ENTRY)&_ZN5S37C54v155Ev,
  (VTBL_ENTRY)&_ZN5S37C54v156Ev,
  (VTBL_ENTRY)&_ZN5S37C54v157Ev,
  (VTBL_ENTRY)&_ZN5S37C54v158Ev,
  (VTBL_ENTRY)&_ZN5S37C54v159Ev,
  (VTBL_ENTRY)&_ZN5S37C54v160Ev,
  (VTBL_ENTRY)&_ZN5S37C54v161Ev,
  (VTBL_ENTRY)&_ZN5S37C54v162Ev,
  (VTBL_ENTRY)&_ZN5S37C54v163Ev,
  (VTBL_ENTRY)&_ZN5S37C54v164Ev,
  (VTBL_ENTRY)&_ZN5S37C54v165Ev,
  (VTBL_ENTRY)&_ZN5S37C54v166Ev,
  (VTBL_ENTRY)&_ZN5S37C54v167Ev,
  (VTBL_ENTRY)&_ZN5S37C54v168Ev,
  (VTBL_ENTRY)&_ZN5S37C54v169Ev,
  (VTBL_ENTRY)&_ZN5S37C54v170Ev,
  (VTBL_ENTRY)&_ZN5S37C54v171Ev,
  (VTBL_ENTRY)&_ZN5S37C54v172Ev,
  (VTBL_ENTRY)&_ZN5S37C54v173Ev,
  (VTBL_ENTRY)&_ZN5S37C54v174Ev,
  (VTBL_ENTRY)&_ZN5S37C54v175Ev,
  (VTBL_ENTRY)&_ZN5S37C54v176Ev,
  (VTBL_ENTRY)&_ZN5S37C54v177Ev,
  (VTBL_ENTRY)&_ZN5S37C54v178Ev,
  (VTBL_ENTRY)&_ZN5S37C54v179Ev,
  (VTBL_ENTRY)&_ZN5S37C54v180Ev,
  (VTBL_ENTRY)&_ZN5S37C54v181Ev,
  (VTBL_ENTRY)&_ZN5S37C54v182Ev,
  (VTBL_ENTRY)&_ZN5S37C54v183Ev,
  (VTBL_ENTRY)&_ZN5S37C54v184Ev,
  (VTBL_ENTRY)&_ZN5S37C44v185Ev,
  (VTBL_ENTRY)&_ZN5S37C44v186Ev,
  (VTBL_ENTRY)&_ZN5S37C44v187Ev,
  (VTBL_ENTRY)&_ZN5S37C44v188Ev,
  (VTBL_ENTRY)&_ZN5S37C44v189Ev,
  (VTBL_ENTRY)&_ZN5S37C44v190Ev,
  (VTBL_ENTRY)&_ZN5S37C44v191Ev,
  (VTBL_ENTRY)&_ZN5S37C44v192Ev,
  (VTBL_ENTRY)&_ZN5S37C44v193Ev,
  (VTBL_ENTRY)&_ZN5S37C44v194Ev,
  (VTBL_ENTRY)&_ZN5S37C44v195Ev,
  (VTBL_ENTRY)&_ZN5S37C44v196Ev,
  (VTBL_ENTRY)&_ZN5S37C44v197Ev,
  (VTBL_ENTRY)&_ZN5S37C44v198Ev,
  (VTBL_ENTRY)&_ZN5S37C44v199Ev,
  (VTBL_ENTRY)&_ZN5S37C44v200Ev,
  (VTBL_ENTRY)&_ZN5S37C44v201Ev,
  (VTBL_ENTRY)&_ZN5S37C44v202Ev,
  (VTBL_ENTRY)&_ZN5S37C44v203Ev,
  (VTBL_ENTRY)&_ZN5S37C44v204Ev,
  (VTBL_ENTRY)&_ZN5S37C44v205Ev,
  (VTBL_ENTRY)&_ZN5S37C44v206Ev,
  (VTBL_ENTRY)&_ZN5S37C44v207Ev,
  (VTBL_ENTRY)&_ZN5S37C34v208Ev,
  (VTBL_ENTRY)&_ZN5S37C34v209Ev,
  (VTBL_ENTRY)&_ZN5S37C34v210Ev,
  (VTBL_ENTRY)&_ZN5S37C34v211Ev,
  (VTBL_ENTRY)&_ZN5S37C34v212Ev,
  (VTBL_ENTRY)&_ZN5S37C34v213Ev,
  (VTBL_ENTRY)&_ZN5S37C34v214Ev,
  (VTBL_ENTRY)&_ZN5S37C34v215Ev,
  (VTBL_ENTRY)&_ZN5S37C24v216Ev,
  (VTBL_ENTRY)&_ZN5S37C24v217Ev,
  (VTBL_ENTRY)&_ZN5S37C12v1Ev,
  (VTBL_ENTRY)&_ZN5S37C12v2Ev,
  (VTBL_ENTRY)&_ZN5S37C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S37C1[];
extern  VTBL_ENTRY _ZTV5S37C1[];
Class_Descriptor cd_S37C1 = {  "S37C1", // class name
  bases_S37C1, 7,
  &(vtc_S37C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1056,732), // object size
  NSPAIRA(_ZTI5S37C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S37C1),221, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  7, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C7  {
  int s106c7f0;
  __tsi64 s106c7f1;
  void *s106c7f2[4];
  int s106c7f3[2];
  void *s106c7f4;
  ::S85C27_nt s106c7f5;
  void *s106c7f6[2];
  virtual  ~S106C7(); // _ZN6S106C7D1Ev
  virtual void  v6(); // _ZN6S106C72v6Ev
  virtual void  v7(); // _ZN6S106C72v7Ev
  virtual void  v8(); // _ZN6S106C72v8Ev
  virtual void  v9(); // _ZN6S106C72v9Ev
  virtual void  v10(); // _ZN6S106C73v10Ev
  virtual void  v11(); // _ZN6S106C73v11Ev
  virtual void  v12(); // _ZN6S106C73v12Ev
  virtual void  v13(); // _ZN6S106C73v13Ev
  virtual void  v14(); // _ZN6S106C73v14Ev
  virtual void  v15(); // _ZN6S106C73v15Ev
  virtual void  v16(); // _ZN6S106C73v16Ev
  virtual void  v17(); // _ZN6S106C73v17Ev
  virtual void  v18(); // _ZN6S106C73v18Ev
  virtual void  v19(); // _ZN6S106C73v19Ev
  virtual void  v20(); // _ZN6S106C73v20Ev
  virtual void  v21(); // _ZN6S106C73v21Ev
  virtual void  v22(); // _ZN6S106C73v22Ev
  virtual void  v23(); // _ZN6S106C73v23Ev
  virtual void  v24(); // _ZN6S106C73v24Ev
  virtual void  v25(); // _ZN6S106C73v25Ev
  virtual void  v26(); // _ZN6S106C73v26Ev
  virtual void  v27(); // _ZN6S106C73v27Ev
  virtual void  v28(); // _ZN6S106C73v28Ev
  virtual void  v29(); // _ZN6S106C73v29Ev
  virtual void  v30(); // _ZN6S106C73v30Ev
  virtual void  v31(); // _ZN6S106C73v31Ev
  virtual void  v32(); // _ZN6S106C73v32Ev
  virtual void  v33(); // _ZN6S106C73v33Ev
  virtual void  v34(); // _ZN6S106C73v34Ev
  virtual void  v35(); // _ZN6S106C73v35Ev
  virtual void  v36(); // _ZN6S106C73v36Ev
  virtual void  v37(); // _ZN6S106C73v37Ev
  virtual void  v38(); // _ZN6S106C73v38Ev
  virtual void  v39(); // _ZN6S106C73v39Ev
  virtual void  v40(); // _ZN6S106C73v40Ev
  virtual void  v41(); // _ZN6S106C73v41Ev
  virtual void  v42(); // _ZN6S106C73v42Ev
  virtual void  v43(); // _ZN6S106C73v43Ev
  virtual void  v44(); // _ZN6S106C73v44Ev
  virtual void  v45(); // _ZN6S106C73v45Ev
  virtual void  v46(); // _ZN6S106C73v46Ev
  virtual void  v47(); // _ZN6S106C73v47Ev
  virtual void  v48(); // _ZN6S106C73v48Ev
  virtual void  v49(); // _ZN6S106C73v49Ev
  virtual void  v50(); // _ZN6S106C73v50Ev
  virtual void  v51(); // _ZN6S106C73v51Ev
  virtual void  v52(); // _ZN6S106C73v52Ev
  virtual void  v53(); // _ZN6S106C73v53Ev
  virtual void  v54(); // _ZN6S106C73v54Ev
  virtual void  v55(); // _ZN6S106C73v55Ev
  virtual void  v56(); // _ZN6S106C73v56Ev
  virtual void  v57(); // _ZN6S106C73v57Ev
  virtual void  v58(); // _ZN6S106C73v58Ev
  virtual void  v59(); // _ZN6S106C73v59Ev
  virtual void  v60(); // _ZN6S106C73v60Ev
  virtual void  v61(); // _ZN6S106C73v61Ev
  virtual void  v62(); // _ZN6S106C73v62Ev
  virtual void  v63(); // _ZN6S106C73v63Ev
  virtual void  v64(); // _ZN6S106C73v64Ev
  virtual void  v65(); // _ZN6S106C73v65Ev
  virtual void  v66(); // _ZN6S106C73v66Ev
  virtual void  v67(); // _ZN6S106C73v67Ev
  virtual void  v68(); // _ZN6S106C73v68Ev
  virtual void  v69(); // _ZN6S106C73v69Ev
  S106C7(); // tgen
};
//SIG(-1 S106C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S106C7 ::~S106C7(){ note_dtor("S106C7", this);}
void  S106C7 ::v6(){vfunc_called(this, "_ZN6S106C72v6Ev");}
void  S106C7 ::v7(){vfunc_called(this, "_ZN6S106C72v7Ev");}
void  S106C7 ::v8(){vfunc_called(this, "_ZN6S106C72v8Ev");}
void  S106C7 ::v9(){vfunc_called(this, "_ZN6S106C72v9Ev");}
void  S106C7 ::v10(){vfunc_called(this, "_ZN6S106C73v10Ev");}
void  S106C7 ::v11(){vfunc_called(this, "_ZN6S106C73v11Ev");}
void  S106C7 ::v12(){vfunc_called(this, "_ZN6S106C73v12Ev");}
void  S106C7 ::v13(){vfunc_called(this, "_ZN6S106C73v13Ev");}
void  S106C7 ::v14(){vfunc_called(this, "_ZN6S106C73v14Ev");}
void  S106C7 ::v15(){vfunc_called(this, "_ZN6S106C73v15Ev");}
void  S106C7 ::v16(){vfunc_called(this, "_ZN6S106C73v16Ev");}
void  S106C7 ::v17(){vfunc_called(this, "_ZN6S106C73v17Ev");}
void  S106C7 ::v18(){vfunc_called(this, "_ZN6S106C73v18Ev");}
void  S106C7 ::v19(){vfunc_called(this, "_ZN6S106C73v19Ev");}
void  S106C7 ::v20(){vfunc_called(this, "_ZN6S106C73v20Ev");}
void  S106C7 ::v21(){vfunc_called(this, "_ZN6S106C73v21Ev");}
void  S106C7 ::v22(){vfunc_called(this, "_ZN6S106C73v22Ev");}
void  S106C7 ::v23(){vfunc_called(this, "_ZN6S106C73v23Ev");}
void  S106C7 ::v24(){vfunc_called(this, "_ZN6S106C73v24Ev");}
void  S106C7 ::v25(){vfunc_called(this, "_ZN6S106C73v25Ev");}
void  S106C7 ::v26(){vfunc_called(this, "_ZN6S106C73v26Ev");}
void  S106C7 ::v27(){vfunc_called(this, "_ZN6S106C73v27Ev");}
void  S106C7 ::v28(){vfunc_called(this, "_ZN6S106C73v28Ev");}
void  S106C7 ::v29(){vfunc_called(this, "_ZN6S106C73v29Ev");}
void  S106C7 ::v30(){vfunc_called(this, "_ZN6S106C73v30Ev");}
void  S106C7 ::v31(){vfunc_called(this, "_ZN6S106C73v31Ev");}
void  S106C7 ::v32(){vfunc_called(this, "_ZN6S106C73v32Ev");}
void  S106C7 ::v33(){vfunc_called(this, "_ZN6S106C73v33Ev");}
void  S106C7 ::v34(){vfunc_called(this, "_ZN6S106C73v34Ev");}
void  S106C7 ::v35(){vfunc_called(this, "_ZN6S106C73v35Ev");}
void  S106C7 ::v36(){vfunc_called(this, "_ZN6S106C73v36Ev");}
void  S106C7 ::v37(){vfunc_called(this, "_ZN6S106C73v37Ev");}
void  S106C7 ::v38(){vfunc_called(this, "_ZN6S106C73v38Ev");}
void  S106C7 ::v39(){vfunc_called(this, "_ZN6S106C73v39Ev");}
void  S106C7 ::v40(){vfunc_called(this, "_ZN6S106C73v40Ev");}
void  S106C7 ::v41(){vfunc_called(this, "_ZN6S106C73v41Ev");}
void  S106C7 ::v42(){vfunc_called(this, "_ZN6S106C73v42Ev");}
void  S106C7 ::v43(){vfunc_called(this, "_ZN6S106C73v43Ev");}
void  S106C7 ::v44(){vfunc_called(this, "_ZN6S106C73v44Ev");}
void  S106C7 ::v45(){vfunc_called(this, "_ZN6S106C73v45Ev");}
void  S106C7 ::v46(){vfunc_called(this, "_ZN6S106C73v46Ev");}
void  S106C7 ::v47(){vfunc_called(this, "_ZN6S106C73v47Ev");}
void  S106C7 ::v48(){vfunc_called(this, "_ZN6S106C73v48Ev");}
void  S106C7 ::v49(){vfunc_called(this, "_ZN6S106C73v49Ev");}
void  S106C7 ::v50(){vfunc_called(this, "_ZN6S106C73v50Ev");}
void  S106C7 ::v51(){vfunc_called(this, "_ZN6S106C73v51Ev");}
void  S106C7 ::v52(){vfunc_called(this, "_ZN6S106C73v52Ev");}
void  S106C7 ::v53(){vfunc_called(this, "_ZN6S106C73v53Ev");}
void  S106C7 ::v54(){vfunc_called(this, "_ZN6S106C73v54Ev");}
void  S106C7 ::v55(){vfunc_called(this, "_ZN6S106C73v55Ev");}
void  S106C7 ::v56(){vfunc_called(this, "_ZN6S106C73v56Ev");}
void  S106C7 ::v57(){vfunc_called(this, "_ZN6S106C73v57Ev");}
void  S106C7 ::v58(){vfunc_called(this, "_ZN6S106C73v58Ev");}
void  S106C7 ::v59(){vfunc_called(this, "_ZN6S106C73v59Ev");}
void  S106C7 ::v60(){vfunc_called(this, "_ZN6S106C73v60Ev");}
void  S106C7 ::v61(){vfunc_called(this, "_ZN6S106C73v61Ev");}
void  S106C7 ::v62(){vfunc_called(this, "_ZN6S106C73v62Ev");}
void  S106C7 ::v63(){vfunc_called(this, "_ZN6S106C73v63Ev");}
void  S106C7 ::v64(){vfunc_called(this, "_ZN6S106C73v64Ev");}
void  S106C7 ::v65(){vfunc_called(this, "_ZN6S106C73v65Ev");}
void  S106C7 ::v66(){vfunc_called(this, "_ZN6S106C73v66Ev");}
void  S106C7 ::v67(){vfunc_called(this, "_ZN6S106C73v67Ev");}
void  S106C7 ::v68(){vfunc_called(this, "_ZN6S106C73v68Ev");}
void  S106C7 ::v69(){vfunc_called(this, "_ZN6S106C73v69Ev");}
S106C7 ::S106C7(){ note_ctor("S106C7", this);} // tgen

static void Test_S106C7()
{
  extern Class_Descriptor cd_S106C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S106C7, buf);
    S106C7 *dp, &lv = *(dp=new (buf) S106C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S106C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C7)");
    check_field_offset(lv, s106c7f0, ABISELECT(8,4), "S106C7.s106c7f0");
    check_field_offset(lv, s106c7f1, ABISELECT(16,8), "S106C7.s106c7f1");
    check_field_offset(lv, s106c7f2, ABISELECT(24,16), "S106C7.s106c7f2");
    check_field_offset(lv, s106c7f3, ABISELECT(56,32), "S106C7.s106c7f3");
    check_field_offset(lv, s106c7f4, ABISELECT(64,40), "S106C7.s106c7f4");
    check_field_offset(lv, s106c7f5, ABISELECT(72,44), "S106C7.s106c7f5");
    check_field_offset(lv, s106c7f6, ABISELECT(80,52), "S106C7.s106c7f6");
    test_class_info(&lv, &cd_S106C7);
    dp->~S106C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C7(Test_S106C7, "S106C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S106C7C1Ev();
extern void _ZN6S106C7D1Ev();
Name_Map name_map_S106C7[] = {
  NSPAIR(_ZN6S106C7C1Ev),
  NSPAIR(_ZN6S106C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S106C7[];
extern void _ZN6S106C7D1Ev();
extern void _ZN6S106C7D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
static  VTBL_ENTRY vtc_S106C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C7[0]),
  (VTBL_ENTRY)&_ZN6S106C7D1Ev,
  (VTBL_ENTRY)&_ZN6S106C7D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
};
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
Class_Descriptor cd_S106C7 = {  "S106C7", // class name
  0,0,//no base classes
  &(vtc_S106C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S106C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S106C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C6  : S106C7 {
  virtual  ~S106C6(); // _ZN6S106C6D1Ev
  virtual void  v70(); // _ZN6S106C63v70Ev
  virtual void  v71(); // _ZN6S106C63v71Ev
  S106C6(); // tgen
};
//SIG(-1 S106C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S106C6 ::~S106C6(){ note_dtor("S106C6", this);}
void  S106C6 ::v70(){vfunc_called(this, "_ZN6S106C63v70Ev");}
void  S106C6 ::v71(){vfunc_called(this, "_ZN6S106C63v71Ev");}
S106C6 ::S106C6(){ note_ctor("S106C6", this);} // tgen

static void Test_S106C6()
{
  extern Class_Descriptor cd_S106C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S106C6, buf);
    S106C6 *dp, &lv = *(dp=new (buf) S106C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S106C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C6)");
    check_base_class_offset(lv, (S106C7*), 0, "S106C6");
    test_class_info(&lv, &cd_S106C6);
    dp->~S106C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C6(Test_S106C6, "S106C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S106C6C1Ev();
extern void _ZN6S106C6D1Ev();
Name_Map name_map_S106C6[] = {
  NSPAIR(_ZN6S106C6C1Ev),
  NSPAIR(_ZN6S106C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S106C7;
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
static Base_Class bases_S106C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S106C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S106C6[];
extern void _ZN6S106C6D1Ev();
extern void _ZN6S106C6D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
extern void _ZN6S106C63v70Ev();
extern void _ZN6S106C63v71Ev();
static  VTBL_ENTRY vtc_S106C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C6[0]),
  (VTBL_ENTRY)&_ZN6S106C6D1Ev,
  (VTBL_ENTRY)&_ZN6S106C6D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
  (VTBL_ENTRY)&_ZN6S106C63v70Ev,
  (VTBL_ENTRY)&_ZN6S106C63v71Ev,
};
extern VTBL_ENTRY _ZTI6S106C6[];
extern  VTBL_ENTRY _ZTV6S106C6[];
Class_Descriptor cd_S106C6 = {  "S106C6", // class name
  bases_S106C6, 1,
  &(vtc_S106C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S106C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S106C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C5  : S106C6 {
  ::S80C9_nt s106c5f0;
  int s106c5f1;
  unsigned int s106c5f2:1;
  unsigned int s106c5f3:1;
  unsigned int s106c5f4:1;
  unsigned int s106c5f5:1;
  ::S85C35 s106c5f6;
  ::S85C22_nt s106c5f7;
  void *s106c5f8;
  ::S80C31 s106c5f9;
  ::S80C31 s106c5f10;
  ::S80C29 s106c5f11;
  ::S80C19 s106c5f12;
  char s106c5f13;
  int s106c5f14;
  void *s106c5f15;
  ::S85C27_nt s106c5f16;
  ::S85C27_nt s106c5f17;
  ::S85C27_nt s106c5f18;
  ::S85C27_nt s106c5f19;
  ::S85C27_nt s106c5f20;
  ::S85C27_nt s106c5f21;
  ::S80C21_nt s106c5f22;
  ::S80C21_nt s106c5f23;
  ::S80C21_nt s106c5f24;
  ::S80C21_nt s106c5f25;
  ::S80C21_nt s106c5f26;
  ::S80C21_nt s106c5f27;
  ::S80C21_nt s106c5f28;
  ::S80C21_nt s106c5f29;
  ::S80C21_nt s106c5f30;
  ::S80C21_nt s106c5f31;
  virtual  ~S106C5(); // _ZN6S106C5D1Ev
  virtual void  v72(); // _ZN6S106C53v72Ev
  virtual void  v73(); // _ZN6S106C53v73Ev
  virtual void  v74(); // _ZN6S106C53v74Ev
  virtual void  v75(); // _ZN6S106C53v75Ev
  virtual void  v76(); // _ZN6S106C53v76Ev
  virtual void  v77(); // _ZN6S106C53v77Ev
  virtual void  v78(); // _ZN6S106C53v78Ev
  virtual void  v79(); // _ZN6S106C53v79Ev
  virtual void  v80(); // _ZN6S106C53v80Ev
  virtual void  v81(); // _ZN6S106C53v81Ev
  virtual void  v82(); // _ZN6S106C53v82Ev
  virtual void  v83(); // _ZN6S106C53v83Ev
  virtual void  v84(); // _ZN6S106C53v84Ev
  virtual void  v85(); // _ZN6S106C53v85Ev
  virtual void  v86(); // _ZN6S106C53v86Ev
  virtual void  v87(); // _ZN6S106C53v87Ev
  virtual void  v88(); // _ZN6S106C53v88Ev
  virtual void  v89(); // _ZN6S106C53v89Ev
  virtual void  v90(); // _ZN6S106C53v90Ev
  virtual void  v91(); // _ZN6S106C53v91Ev
  virtual void  v92(); // _ZN6S106C53v92Ev
  virtual void  v93(); // _ZN6S106C53v93Ev
  virtual void  v94(); // _ZN6S106C53v94Ev
  virtual void  v95(); // _ZN6S106C53v95Ev
  virtual void  v96(); // _ZN6S106C53v96Ev
  virtual void  v97(); // _ZN6S106C53v97Ev
  virtual void  v98(); // _ZN6S106C53v98Ev
  virtual void  v99(); // _ZN6S106C53v99Ev
  virtual void  v100(); // _ZN6S106C54v100Ev
  virtual void  v101(); // _ZN6S106C54v101Ev
  virtual void  v102(); // _ZN6S106C54v102Ev
  virtual void  v103(); // _ZN6S106C54v103Ev
  virtual void  v104(); // _ZN6S106C54v104Ev
  virtual void  v105(); // _ZN6S106C54v105Ev
  virtual void  v106(); // _ZN6S106C54v106Ev
  virtual void  v107(); // _ZN6S106C54v107Ev
  virtual void  v108(); // _ZN6S106C54v108Ev
  virtual void  v109(); // _ZN6S106C54v109Ev
  virtual void  v110(); // _ZN6S106C54v110Ev
  virtual void  v111(); // _ZN6S106C54v111Ev
  virtual void  v112(); // _ZN6S106C54v112Ev
  virtual void  v113(); // _ZN6S106C54v113Ev
  virtual void  v114(); // _ZN6S106C54v114Ev
  virtual void  v115(); // _ZN6S106C54v115Ev
  virtual void  v116(); // _ZN6S106C54v116Ev
  virtual void  v117(); // _ZN6S106C54v117Ev
  virtual void  v118(); // _ZN6S106C54v118Ev
  virtual void  v119(); // _ZN6S106C54v119Ev
  virtual void  v120(); // _ZN6S106C54v120Ev
  virtual void  v121(); // _ZN6S106C54v121Ev
  virtual void  v122(); // _ZN6S106C54v122Ev
  virtual void  v123(); // _ZN6S106C54v123Ev
  virtual void  v124(); // _ZN6S106C54v124Ev
  virtual void  v125(); // _ZN6S106C54v125Ev
  virtual void  v126(); // _ZN6S106C54v126Ev
  virtual void  v127(); // _ZN6S106C54v127Ev
  virtual void  v128(); // _ZN6S106C54v128Ev
  virtual void  v129(); // _ZN6S106C54v129Ev
  virtual void  v130(); // _ZN6S106C54v130Ev
  virtual void  v131(); // _ZN6S106C54v131Ev
  virtual void  v132(); // _ZN6S106C54v132Ev
  virtual void  v133(); // _ZN6S106C54v133Ev
  virtual void  v134(); // _ZN6S106C54v134Ev
  virtual void  v135(); // _ZN6S106C54v135Ev
  virtual void  v136(); // _ZN6S106C54v136Ev
  virtual void  v137(); // _ZN6S106C54v137Ev
  virtual void  v138(); // _ZN6S106C54v138Ev
  virtual void  v139(); // _ZN6S106C54v139Ev
  virtual void  v140(); // _ZN6S106C54v140Ev
  virtual void  v141(); // _ZN6S106C54v141Ev
  virtual void  v142(); // _ZN6S106C54v142Ev
  virtual void  v143(); // _ZN6S106C54v143Ev
  virtual void  v144(); // _ZN6S106C54v144Ev
  virtual void  v145(); // _ZN6S106C54v145Ev
  virtual void  v146(); // _ZN6S106C54v146Ev
  virtual void  v147(); // _ZN6S106C54v147Ev
  S106C5(); // tgen
};
//SIG(-1 S106C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S106C5 ::~S106C5(){ note_dtor("S106C5", this);}
void  S106C5 ::v72(){vfunc_called(this, "_ZN6S106C53v72Ev");}
void  S106C5 ::v73(){vfunc_called(this, "_ZN6S106C53v73Ev");}
void  S106C5 ::v74(){vfunc_called(this, "_ZN6S106C53v74Ev");}
void  S106C5 ::v75(){vfunc_called(this, "_ZN6S106C53v75Ev");}
void  S106C5 ::v76(){vfunc_called(this, "_ZN6S106C53v76Ev");}
void  S106C5 ::v77(){vfunc_called(this, "_ZN6S106C53v77Ev");}
void  S106C5 ::v78(){vfunc_called(this, "_ZN6S106C53v78Ev");}
void  S106C5 ::v79(){vfunc_called(this, "_ZN6S106C53v79Ev");}
void  S106C5 ::v80(){vfunc_called(this, "_ZN6S106C53v80Ev");}
void  S106C5 ::v81(){vfunc_called(this, "_ZN6S106C53v81Ev");}
void  S106C5 ::v82(){vfunc_called(this, "_ZN6S106C53v82Ev");}
void  S106C5 ::v83(){vfunc_called(this, "_ZN6S106C53v83Ev");}
void  S106C5 ::v84(){vfunc_called(this, "_ZN6S106C53v84Ev");}
void  S106C5 ::v85(){vfunc_called(this, "_ZN6S106C53v85Ev");}
void  S106C5 ::v86(){vfunc_called(this, "_ZN6S106C53v86Ev");}
void  S106C5 ::v87(){vfunc_called(this, "_ZN6S106C53v87Ev");}
void  S106C5 ::v88(){vfunc_called(this, "_ZN6S106C53v88Ev");}
void  S106C5 ::v89(){vfunc_called(this, "_ZN6S106C53v89Ev");}
void  S106C5 ::v90(){vfunc_called(this, "_ZN6S106C53v90Ev");}
void  S106C5 ::v91(){vfunc_called(this, "_ZN6S106C53v91Ev");}
void  S106C5 ::v92(){vfunc_called(this, "_ZN6S106C53v92Ev");}
void  S106C5 ::v93(){vfunc_called(this, "_ZN6S106C53v93Ev");}
void  S106C5 ::v94(){vfunc_called(this, "_ZN6S106C53v94Ev");}
void  S106C5 ::v95(){vfunc_called(this, "_ZN6S106C53v95Ev");}
void  S106C5 ::v96(){vfunc_called(this, "_ZN6S106C53v96Ev");}
void  S106C5 ::v97(){vfunc_called(this, "_ZN6S106C53v97Ev");}
void  S106C5 ::v98(){vfunc_called(this, "_ZN6S106C53v98Ev");}
void  S106C5 ::v99(){vfunc_called(this, "_ZN6S106C53v99Ev");}
void  S106C5 ::v100(){vfunc_called(this, "_ZN6S106C54v100Ev");}
void  S106C5 ::v101(){vfunc_called(this, "_ZN6S106C54v101Ev");}
void  S106C5 ::v102(){vfunc_called(this, "_ZN6S106C54v102Ev");}
void  S106C5 ::v103(){vfunc_called(this, "_ZN6S106C54v103Ev");}
void  S106C5 ::v104(){vfunc_called(this, "_ZN6S106C54v104Ev");}
void  S106C5 ::v105(){vfunc_called(this, "_ZN6S106C54v105Ev");}
void  S106C5 ::v106(){vfunc_called(this, "_ZN6S106C54v106Ev");}
void  S106C5 ::v107(){vfunc_called(this, "_ZN6S106C54v107Ev");}
void  S106C5 ::v108(){vfunc_called(this, "_ZN6S106C54v108Ev");}
void  S106C5 ::v109(){vfunc_called(this, "_ZN6S106C54v109Ev");}
void  S106C5 ::v110(){vfunc_called(this, "_ZN6S106C54v110Ev");}
void  S106C5 ::v111(){vfunc_called(this, "_ZN6S106C54v111Ev");}
void  S106C5 ::v112(){vfunc_called(this, "_ZN6S106C54v112Ev");}
void  S106C5 ::v113(){vfunc_called(this, "_ZN6S106C54v113Ev");}
void  S106C5 ::v114(){vfunc_called(this, "_ZN6S106C54v114Ev");}
void  S106C5 ::v115(){vfunc_called(this, "_ZN6S106C54v115Ev");}
void  S106C5 ::v116(){vfunc_called(this, "_ZN6S106C54v116Ev");}
void  S106C5 ::v117(){vfunc_called(this, "_ZN6S106C54v117Ev");}
void  S106C5 ::v118(){vfunc_called(this, "_ZN6S106C54v118Ev");}
void  S106C5 ::v119(){vfunc_called(this, "_ZN6S106C54v119Ev");}
void  S106C5 ::v120(){vfunc_called(this, "_ZN6S106C54v120Ev");}
void  S106C5 ::v121(){vfunc_called(this, "_ZN6S106C54v121Ev");}
void  S106C5 ::v122(){vfunc_called(this, "_ZN6S106C54v122Ev");}
void  S106C5 ::v123(){vfunc_called(this, "_ZN6S106C54v123Ev");}
void  S106C5 ::v124(){vfunc_called(this, "_ZN6S106C54v124Ev");}
void  S106C5 ::v125(){vfunc_called(this, "_ZN6S106C54v125Ev");}
void  S106C5 ::v126(){vfunc_called(this, "_ZN6S106C54v126Ev");}
void  S106C5 ::v127(){vfunc_called(this, "_ZN6S106C54v127Ev");}
void  S106C5 ::v128(){vfunc_called(this, "_ZN6S106C54v128Ev");}
void  S106C5 ::v129(){vfunc_called(this, "_ZN6S106C54v129Ev");}
void  S106C5 ::v130(){vfunc_called(this, "_ZN6S106C54v130Ev");}
void  S106C5 ::v131(){vfunc_called(this, "_ZN6S106C54v131Ev");}
void  S106C5 ::v132(){vfunc_called(this, "_ZN6S106C54v132Ev");}
void  S106C5 ::v133(){vfunc_called(this, "_ZN6S106C54v133Ev");}
void  S106C5 ::v134(){vfunc_called(this, "_ZN6S106C54v134Ev");}
void  S106C5 ::v135(){vfunc_called(this, "_ZN6S106C54v135Ev");}
void  S106C5 ::v136(){vfunc_called(this, "_ZN6S106C54v136Ev");}
void  S106C5 ::v137(){vfunc_called(this, "_ZN6S106C54v137Ev");}
void  S106C5 ::v138(){vfunc_called(this, "_ZN6S106C54v138Ev");}
void  S106C5 ::v139(){vfunc_called(this, "_ZN6S106C54v139Ev");}
void  S106C5 ::v140(){vfunc_called(this, "_ZN6S106C54v140Ev");}
void  S106C5 ::v141(){vfunc_called(this, "_ZN6S106C54v141Ev");}
void  S106C5 ::v142(){vfunc_called(this, "_ZN6S106C54v142Ev");}
void  S106C5 ::v143(){vfunc_called(this, "_ZN6S106C54v143Ev");}
void  S106C5 ::v144(){vfunc_called(this, "_ZN6S106C54v144Ev");}
void  S106C5 ::v145(){vfunc_called(this, "_ZN6S106C54v145Ev");}
void  S106C5 ::v146(){vfunc_called(this, "_ZN6S106C54v146Ev");}
void  S106C5 ::v147(){vfunc_called(this, "_ZN6S106C54v147Ev");}
S106C5 ::S106C5(){ note_ctor("S106C5", this);} // tgen

static void Test_S106C5()
{
  extern Class_Descriptor cd_S106C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S106C5, buf);
    S106C5 *dp, &lv = *(dp=new (buf) S106C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S106C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C5)");
    check_base_class_offset(lv, (S106C7*)(S106C6*), 0, "S106C5");
    check_base_class_offset(lv, (S106C6*), 0, "S106C5");
    check_field_offset(lv, s106c5f0, ABISELECT(96,60), "S106C5.s106c5f0");
    check_field_offset(lv, s106c5f1, ABISELECT(124,88), "S106C5.s106c5f1");
    set_bf_and_test(lv, s106c5f2, ABISELECT(128,92), 0, 1, 1, "S106C5");
    set_bf_and_test(lv, s106c5f3, ABISELECT(128,92), 1, 1, 1, "S106C5");
    set_bf_and_test(lv, s106c5f4, ABISELECT(128,92), 2, 1, 1, "S106C5");
    set_bf_and_test(lv, s106c5f5, ABISELECT(128,92), 3, 1, 1, "S106C5");
    check_field_offset(lv, s106c5f6, ABISELECT(136,96), "S106C5.s106c5f6");
    check_field_offset(lv, s106c5f7, ABISELECT(152,108), "S106C5.s106c5f7");
    check_field_offset(lv, s106c5f8, ABISELECT(168,120), "S106C5.s106c5f8");
    check_field_offset(lv, s106c5f9, ABISELECT(176,124), "S106C5.s106c5f9");
    check_field_offset(lv, s106c5f10, ABISELECT(192,136), "S106C5.s106c5f10");
    check_field_offset(lv, s106c5f11, ABISELECT(208,148), "S106C5.s106c5f11");
    check_field_offset(lv, s106c5f12, ABISELECT(224,160), "S106C5.s106c5f12");
    check_field_offset(lv, s106c5f13, ABISELECT(240,172), "S106C5.s106c5f13");
    check_field_offset(lv, s106c5f14, ABISELECT(244,176), "S106C5.s106c5f14");
    check_field_offset(lv, s106c5f15, ABISELECT(248,180), "S106C5.s106c5f15");
    check_field_offset(lv, s106c5f16, ABISELECT(256,184), "S106C5.s106c5f16");
    check_field_offset(lv, s106c5f17, ABISELECT(264,192), "S106C5.s106c5f17");
    check_field_offset(lv, s106c5f18, ABISELECT(272,200), "S106C5.s106c5f18");
    check_field_offset(lv, s106c5f19, ABISELECT(280,208), "S106C5.s106c5f19");
    check_field_offset(lv, s106c5f20, ABISELECT(288,216), "S106C5.s106c5f20");
    check_field_offset(lv, s106c5f21, ABISELECT(296,224), "S106C5.s106c5f21");
    check_field_offset(lv, s106c5f22, ABISELECT(304,232), "S106C5.s106c5f22");
    check_field_offset(lv, s106c5f23, ABISELECT(320,244), "S106C5.s106c5f23");
    check_field_offset(lv, s106c5f24, ABISELECT(336,256), "S106C5.s106c5f24");
    check_field_offset(lv, s106c5f25, ABISELECT(352,268), "S106C5.s106c5f25");
    check_field_offset(lv, s106c5f26, ABISELECT(368,280), "S106C5.s106c5f26");
    check_field_offset(lv, s106c5f27, ABISELECT(384,292), "S106C5.s106c5f27");
    check_field_offset(lv, s106c5f28, ABISELECT(400,304), "S106C5.s106c5f28");
    check_field_offset(lv, s106c5f29, ABISELECT(416,316), "S106C5.s106c5f29");
    check_field_offset(lv, s106c5f30, ABISELECT(432,328), "S106C5.s106c5f30");
    check_field_offset(lv, s106c5f31, ABISELECT(448,340), "S106C5.s106c5f31");
    test_class_info(&lv, &cd_S106C5);
    dp->~S106C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C5(Test_S106C5, "S106C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S106C5C1Ev();
extern void _ZN6S106C5D1Ev();
Name_Map name_map_S106C5[] = {
  NSPAIR(_ZN6S106C5C1Ev),
  NSPAIR(_ZN6S106C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S106C7;
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
extern Class_Descriptor cd_S106C6;
extern VTBL_ENTRY _ZTI6S106C6[];
extern  VTBL_ENTRY _ZTV6S106C6[];
static Base_Class bases_S106C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S106C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S106C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S106C5[];
extern void _ZN6S106C5D1Ev();
extern void _ZN6S106C5D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
extern void _ZN6S106C63v70Ev();
extern void _ZN6S106C63v71Ev();
extern void _ZN6S106C53v72Ev();
extern void _ZN6S106C53v73Ev();
extern void _ZN6S106C53v74Ev();
extern void _ZN6S106C53v75Ev();
extern void _ZN6S106C53v76Ev();
extern void _ZN6S106C53v77Ev();
extern void _ZN6S106C53v78Ev();
extern void _ZN6S106C53v79Ev();
extern void _ZN6S106C53v80Ev();
extern void _ZN6S106C53v81Ev();
extern void _ZN6S106C53v82Ev();
extern void _ZN6S106C53v83Ev();
extern void _ZN6S106C53v84Ev();
extern void _ZN6S106C53v85Ev();
extern void _ZN6S106C53v86Ev();
extern void _ZN6S106C53v87Ev();
extern void _ZN6S106C53v88Ev();
extern void _ZN6S106C53v89Ev();
extern void _ZN6S106C53v90Ev();
extern void _ZN6S106C53v91Ev();
extern void _ZN6S106C53v92Ev();
extern void _ZN6S106C53v93Ev();
extern void _ZN6S106C53v94Ev();
extern void _ZN6S106C53v95Ev();
extern void _ZN6S106C53v96Ev();
extern void _ZN6S106C53v97Ev();
extern void _ZN6S106C53v98Ev();
extern void _ZN6S106C53v99Ev();
extern void _ZN6S106C54v100Ev();
extern void _ZN6S106C54v101Ev();
extern void _ZN6S106C54v102Ev();
extern void _ZN6S106C54v103Ev();
extern void _ZN6S106C54v104Ev();
extern void _ZN6S106C54v105Ev();
extern void _ZN6S106C54v106Ev();
extern void _ZN6S106C54v107Ev();
extern void _ZN6S106C54v108Ev();
extern void _ZN6S106C54v109Ev();
extern void _ZN6S106C54v110Ev();
extern void _ZN6S106C54v111Ev();
extern void _ZN6S106C54v112Ev();
extern void _ZN6S106C54v113Ev();
extern void _ZN6S106C54v114Ev();
extern void _ZN6S106C54v115Ev();
extern void _ZN6S106C54v116Ev();
extern void _ZN6S106C54v117Ev();
extern void _ZN6S106C54v118Ev();
extern void _ZN6S106C54v119Ev();
extern void _ZN6S106C54v120Ev();
extern void _ZN6S106C54v121Ev();
extern void _ZN6S106C54v122Ev();
extern void _ZN6S106C54v123Ev();
extern void _ZN6S106C54v124Ev();
extern void _ZN6S106C54v125Ev();
extern void _ZN6S106C54v126Ev();
extern void _ZN6S106C54v127Ev();
extern void _ZN6S106C54v128Ev();
extern void _ZN6S106C54v129Ev();
extern void _ZN6S106C54v130Ev();
extern void _ZN6S106C54v131Ev();
extern void _ZN6S106C54v132Ev();
extern void _ZN6S106C54v133Ev();
extern void _ZN6S106C54v134Ev();
extern void _ZN6S106C54v135Ev();
extern void _ZN6S106C54v136Ev();
extern void _ZN6S106C54v137Ev();
extern void _ZN6S106C54v138Ev();
extern void _ZN6S106C54v139Ev();
extern void _ZN6S106C54v140Ev();
extern void _ZN6S106C54v141Ev();
extern void _ZN6S106C54v142Ev();
extern void _ZN6S106C54v143Ev();
extern void _ZN6S106C54v144Ev();
extern void _ZN6S106C54v145Ev();
extern void _ZN6S106C54v146Ev();
extern void _ZN6S106C54v147Ev();
static  VTBL_ENTRY vtc_S106C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C5[0]),
  (VTBL_ENTRY)&_ZN6S106C5D1Ev,
  (VTBL_ENTRY)&_ZN6S106C5D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
  (VTBL_ENTRY)&_ZN6S106C63v70Ev,
  (VTBL_ENTRY)&_ZN6S106C63v71Ev,
  (VTBL_ENTRY)&_ZN6S106C53v72Ev,
  (VTBL_ENTRY)&_ZN6S106C53v73Ev,
  (VTBL_ENTRY)&_ZN6S106C53v74Ev,
  (VTBL_ENTRY)&_ZN6S106C53v75Ev,
  (VTBL_ENTRY)&_ZN6S106C53v76Ev,
  (VTBL_ENTRY)&_ZN6S106C53v77Ev,
  (VTBL_ENTRY)&_ZN6S106C53v78Ev,
  (VTBL_ENTRY)&_ZN6S106C53v79Ev,
  (VTBL_ENTRY)&_ZN6S106C53v80Ev,
  (VTBL_ENTRY)&_ZN6S106C53v81Ev,
  (VTBL_ENTRY)&_ZN6S106C53v82Ev,
  (VTBL_ENTRY)&_ZN6S106C53v83Ev,
  (VTBL_ENTRY)&_ZN6S106C53v84Ev,
  (VTBL_ENTRY)&_ZN6S106C53v85Ev,
  (VTBL_ENTRY)&_ZN6S106C53v86Ev,
  (VTBL_ENTRY)&_ZN6S106C53v87Ev,
  (VTBL_ENTRY)&_ZN6S106C53v88Ev,
  (VTBL_ENTRY)&_ZN6S106C53v89Ev,
  (VTBL_ENTRY)&_ZN6S106C53v90Ev,
  (VTBL_ENTRY)&_ZN6S106C53v91Ev,
  (VTBL_ENTRY)&_ZN6S106C53v92Ev,
  (VTBL_ENTRY)&_ZN6S106C53v93Ev,
  (VTBL_ENTRY)&_ZN6S106C53v94Ev,
  (VTBL_ENTRY)&_ZN6S106C53v95Ev,
  (VTBL_ENTRY)&_ZN6S106C53v96Ev,
  (VTBL_ENTRY)&_ZN6S106C53v97Ev,
  (VTBL_ENTRY)&_ZN6S106C53v98Ev,
  (VTBL_ENTRY)&_ZN6S106C53v99Ev,
  (VTBL_ENTRY)&_ZN6S106C54v100Ev,
  (VTBL_ENTRY)&_ZN6S106C54v101Ev,
  (VTBL_ENTRY)&_ZN6S106C54v102Ev,
  (VTBL_ENTRY)&_ZN6S106C54v103Ev,
  (VTBL_ENTRY)&_ZN6S106C54v104Ev,
  (VTBL_ENTRY)&_ZN6S106C54v105Ev,
  (VTBL_ENTRY)&_ZN6S106C54v106Ev,
  (VTBL_ENTRY)&_ZN6S106C54v107Ev,
  (VTBL_ENTRY)&_ZN6S106C54v108Ev,
  (VTBL_ENTRY)&_ZN6S106C54v109Ev,
  (VTBL_ENTRY)&_ZN6S106C54v110Ev,
  (VTBL_ENTRY)&_ZN6S106C54v111Ev,
  (VTBL_ENTRY)&_ZN6S106C54v112Ev,
  (VTBL_ENTRY)&_ZN6S106C54v113Ev,
  (VTBL_ENTRY)&_ZN6S106C54v114Ev,
  (VTBL_ENTRY)&_ZN6S106C54v115Ev,
  (VTBL_ENTRY)&_ZN6S106C54v116Ev,
  (VTBL_ENTRY)&_ZN6S106C54v117Ev,
  (VTBL_ENTRY)&_ZN6S106C54v118Ev,
  (VTBL_ENTRY)&_ZN6S106C54v119Ev,
  (VTBL_ENTRY)&_ZN6S106C54v120Ev,
  (VTBL_ENTRY)&_ZN6S106C54v121Ev,
  (VTBL_ENTRY)&_ZN6S106C54v122Ev,
  (VTBL_ENTRY)&_ZN6S106C54v123Ev,
  (VTBL_ENTRY)&_ZN6S106C54v124Ev,
  (VTBL_ENTRY)&_ZN6S106C54v125Ev,
  (VTBL_ENTRY)&_ZN6S106C54v126Ev,
  (VTBL_ENTRY)&_ZN6S106C54v127Ev,
  (VTBL_ENTRY)&_ZN6S106C54v128Ev,
  (VTBL_ENTRY)&_ZN6S106C54v129Ev,
  (VTBL_ENTRY)&_ZN6S106C54v130Ev,
  (VTBL_ENTRY)&_ZN6S106C54v131Ev,
  (VTBL_ENTRY)&_ZN6S106C54v132Ev,
  (VTBL_ENTRY)&_ZN6S106C54v133Ev,
  (VTBL_ENTRY)&_ZN6S106C54v134Ev,
  (VTBL_ENTRY)&_ZN6S106C54v135Ev,
  (VTBL_ENTRY)&_ZN6S106C54v136Ev,
  (VTBL_ENTRY)&_ZN6S106C54v137Ev,
  (VTBL_ENTRY)&_ZN6S106C54v138Ev,
  (VTBL_ENTRY)&_ZN6S106C54v139Ev,
  (VTBL_ENTRY)&_ZN6S106C54v140Ev,
  (VTBL_ENTRY)&_ZN6S106C54v141Ev,
  (VTBL_ENTRY)&_ZN6S106C54v142Ev,
  (VTBL_ENTRY)&_ZN6S106C54v143Ev,
  (VTBL_ENTRY)&_ZN6S106C54v144Ev,
  (VTBL_ENTRY)&_ZN6S106C54v145Ev,
  (VTBL_ENTRY)&_ZN6S106C54v146Ev,
  (VTBL_ENTRY)&_ZN6S106C54v147Ev,
};
extern VTBL_ENTRY _ZTI6S106C5[];
extern  VTBL_ENTRY _ZTV6S106C5[];
Class_Descriptor cd_S106C5 = {  "S106C5", // class name
  bases_S106C5, 2,
  &(vtc_S106C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S106C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S106C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C4  : S106C5 {
  ::S85C27_nt s106c4f0;
  void *s106c4f1[9];
  ::S80C15 s106c4f2;
  ::S85C35 s106c4f3;
  ::S80C24 s106c4f4;
  int s106c4f5;
  unsigned int s106c4f6:1;
  unsigned int s106c4f7:1;
  unsigned int s106c4f8:1;
  unsigned int s106c4f9:1;
  unsigned int s106c4f10:1;
  unsigned int s106c4f11:1;
  unsigned int s106c4f12:1;
  unsigned int s106c4f13:1;
  unsigned int s106c4f14:1;
  unsigned int s106c4f15:1;
  unsigned int s106c4f16:1;
  unsigned int s106c4f17:1;
  unsigned int s106c4f18:1;
  unsigned int s106c4f19:1;
  unsigned int s106c4f20:1;
  unsigned int s106c4f21:1;
  unsigned int s106c4f22:1;
  unsigned int s106c4f23:1;
  unsigned int s106c4f24:1;
  unsigned int s106c4f25:1;
  unsigned int s106c4f26:1;
  unsigned int s106c4f27:1;
  void *s106c4f28;
  char s106c4f29[2];
  ::S80C8_nt s106c4f30;
  ::S85C27_nt s106c4f31;
  ::S85C27_nt s106c4f32;
  void *s106c4f33;
  ::S80C21_nt s106c4f34;
  ::S80C21_nt s106c4f35;
  ::S80C21_nt s106c4f36;
  ::S80C21_nt s106c4f37;
  ::S80C21_nt s106c4f38;
  virtual  ~S106C4(); // _ZN6S106C4D1Ev
  virtual void  v148(); // _ZN6S106C44v148Ev
  virtual void  v149(); // _ZN6S106C44v149Ev
  virtual void  v150(); // _ZN6S106C44v150Ev
  virtual void  v151(); // _ZN6S106C44v151Ev
  virtual void  v152(); // _ZN6S106C44v152Ev
  virtual void  v153(); // _ZN6S106C44v153Ev
  virtual void  v154(); // _ZN6S106C44v154Ev
  virtual void  v155(); // _ZN6S106C44v155Ev
  virtual void  v156(); // _ZN6S106C44v156Ev
  virtual void  v157(); // _ZN6S106C44v157Ev
  virtual void  v158(); // _ZN6S106C44v158Ev
  virtual void  v159(); // _ZN6S106C44v159Ev
  virtual void  v160(); // _ZN6S106C44v160Ev
  virtual void  v161(); // _ZN6S106C44v161Ev
  virtual void  v162(); // _ZN6S106C44v162Ev
  virtual void  v163(); // _ZN6S106C44v163Ev
  virtual void  v164(); // _ZN6S106C44v164Ev
  virtual void  v165(); // _ZN6S106C44v165Ev
  virtual void  v166(); // _ZN6S106C44v166Ev
  virtual void  v167(); // _ZN6S106C44v167Ev
  virtual void  v168(); // _ZN6S106C44v168Ev
  virtual void  v169(); // _ZN6S106C44v169Ev
  virtual void  v170(); // _ZN6S106C44v170Ev
  virtual void  v171(); // _ZN6S106C44v171Ev
  virtual void  v172(); // _ZN6S106C44v172Ev
  virtual void  v173(); // _ZN6S106C44v173Ev
  virtual void  v174(); // _ZN6S106C44v174Ev
  virtual void  v175(); // _ZN6S106C44v175Ev
  virtual void  v176(); // _ZN6S106C44v176Ev
  virtual void  v177(); // _ZN6S106C44v177Ev
  virtual void  v178(); // _ZN6S106C44v178Ev
  virtual void  v179(); // _ZN6S106C44v179Ev
  virtual void  v180(); // _ZN6S106C44v180Ev
  virtual void  v181(); // _ZN6S106C44v181Ev
  virtual void  v182(); // _ZN6S106C44v182Ev
  virtual void  v183(); // _ZN6S106C44v183Ev
  virtual void  v184(); // _ZN6S106C44v184Ev
  virtual void  v185(); // _ZN6S106C44v185Ev
  virtual void  v186(); // _ZN6S106C44v186Ev
  S106C4(); // tgen
};
//SIG(-1 S106C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S106C4 ::~S106C4(){ note_dtor("S106C4", this);}
void  S106C4 ::v148(){vfunc_called(this, "_ZN6S106C44v148Ev");}
void  S106C4 ::v149(){vfunc_called(this, "_ZN6S106C44v149Ev");}
void  S106C4 ::v150(){vfunc_called(this, "_ZN6S106C44v150Ev");}
void  S106C4 ::v151(){vfunc_called(this, "_ZN6S106C44v151Ev");}
void  S106C4 ::v152(){vfunc_called(this, "_ZN6S106C44v152Ev");}
void  S106C4 ::v153(){vfunc_called(this, "_ZN6S106C44v153Ev");}
void  S106C4 ::v154(){vfunc_called(this, "_ZN6S106C44v154Ev");}
void  S106C4 ::v155(){vfunc_called(this, "_ZN6S106C44v155Ev");}
void  S106C4 ::v156(){vfunc_called(this, "_ZN6S106C44v156Ev");}
void  S106C4 ::v157(){vfunc_called(this, "_ZN6S106C44v157Ev");}
void  S106C4 ::v158(){vfunc_called(this, "_ZN6S106C44v158Ev");}
void  S106C4 ::v159(){vfunc_called(this, "_ZN6S106C44v159Ev");}
void  S106C4 ::v160(){vfunc_called(this, "_ZN6S106C44v160Ev");}
void  S106C4 ::v161(){vfunc_called(this, "_ZN6S106C44v161Ev");}
void  S106C4 ::v162(){vfunc_called(this, "_ZN6S106C44v162Ev");}
void  S106C4 ::v163(){vfunc_called(this, "_ZN6S106C44v163Ev");}
void  S106C4 ::v164(){vfunc_called(this, "_ZN6S106C44v164Ev");}
void  S106C4 ::v165(){vfunc_called(this, "_ZN6S106C44v165Ev");}
void  S106C4 ::v166(){vfunc_called(this, "_ZN6S106C44v166Ev");}
void  S106C4 ::v167(){vfunc_called(this, "_ZN6S106C44v167Ev");}
void  S106C4 ::v168(){vfunc_called(this, "_ZN6S106C44v168Ev");}
void  S106C4 ::v169(){vfunc_called(this, "_ZN6S106C44v169Ev");}
void  S106C4 ::v170(){vfunc_called(this, "_ZN6S106C44v170Ev");}
void  S106C4 ::v171(){vfunc_called(this, "_ZN6S106C44v171Ev");}
void  S106C4 ::v172(){vfunc_called(this, "_ZN6S106C44v172Ev");}
void  S106C4 ::v173(){vfunc_called(this, "_ZN6S106C44v173Ev");}
void  S106C4 ::v174(){vfunc_called(this, "_ZN6S106C44v174Ev");}
void  S106C4 ::v175(){vfunc_called(this, "_ZN6S106C44v175Ev");}
void  S106C4 ::v176(){vfunc_called(this, "_ZN6S106C44v176Ev");}
void  S106C4 ::v177(){vfunc_called(this, "_ZN6S106C44v177Ev");}
void  S106C4 ::v178(){vfunc_called(this, "_ZN6S106C44v178Ev");}
void  S106C4 ::v179(){vfunc_called(this, "_ZN6S106C44v179Ev");}
void  S106C4 ::v180(){vfunc_called(this, "_ZN6S106C44v180Ev");}
void  S106C4 ::v181(){vfunc_called(this, "_ZN6S106C44v181Ev");}
void  S106C4 ::v182(){vfunc_called(this, "_ZN6S106C44v182Ev");}
void  S106C4 ::v183(){vfunc_called(this, "_ZN6S106C44v183Ev");}
void  S106C4 ::v184(){vfunc_called(this, "_ZN6S106C44v184Ev");}
void  S106C4 ::v185(){vfunc_called(this, "_ZN6S106C44v185Ev");}
void  S106C4 ::v186(){vfunc_called(this, "_ZN6S106C44v186Ev");}
S106C4 ::S106C4(){ note_ctor("S106C4", this);} // tgen

static void Test_S106C4()
{
  extern Class_Descriptor cd_S106C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S106C4, buf);
    S106C4 *dp, &lv = *(dp=new (buf) S106C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S106C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C4)");
    check_base_class_offset(lv, (S106C7*)(S106C6*)(S106C5*), 0, "S106C4");
    check_base_class_offset(lv, (S106C6*)(S106C5*), 0, "S106C4");
    check_base_class_offset(lv, (S106C5*), 0, "S106C4");
    check_field_offset(lv, s106c4f0, ABISELECT(464,352), "S106C4.s106c4f0");
    check_field_offset(lv, s106c4f1, ABISELECT(472,360), "S106C4.s106c4f1");
    check_field_offset(lv, s106c4f2, ABISELECT(544,396), "S106C4.s106c4f2");
    check_field_offset(lv, s106c4f3, ABISELECT(560,408), "S106C4.s106c4f3");
    check_field_offset(lv, s106c4f4, ABISELECT(576,420), "S106C4.s106c4f4");
    check_field_offset(lv, s106c4f5, ABISELECT(608,440), "S106C4.s106c4f5");
    set_bf_and_test(lv, s106c4f6, ABISELECT(612,444), 0, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f7, ABISELECT(612,444), 1, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f8, ABISELECT(612,444), 2, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f9, ABISELECT(612,444), 3, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f10, ABISELECT(612,444), 4, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f11, ABISELECT(612,444), 5, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f12, ABISELECT(612,444), 6, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f13, ABISELECT(612,444), 7, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f14, ABISELECT(613,445), 0, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f15, ABISELECT(613,445), 1, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f16, ABISELECT(613,445), 2, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f17, ABISELECT(613,445), 3, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f18, ABISELECT(613,445), 4, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f19, ABISELECT(613,445), 5, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f20, ABISELECT(613,445), 6, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f21, ABISELECT(613,445), 7, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f22, ABISELECT(614,446), 0, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f23, ABISELECT(614,446), 1, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f24, ABISELECT(614,446), 2, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f25, ABISELECT(614,446), 3, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f26, ABISELECT(614,446), 4, 1, 1, "S106C4");
    set_bf_and_test(lv, s106c4f27, ABISELECT(614,446), 5, 1, 1, "S106C4");
    check_field_offset(lv, s106c4f28, ABISELECT(616,448), "S106C4.s106c4f28");
    check_field_offset(lv, s106c4f29, ABISELECT(624,452), "S106C4.s106c4f29");
    check_field_offset(lv, s106c4f30, ABISELECT(628,456), "S106C4.s106c4f30");
    check_field_offset(lv, s106c4f31, ABISELECT(636,464), "S106C4.s106c4f31");
    check_field_offset(lv, s106c4f32, ABISELECT(644,472), "S106C4.s106c4f32");
    check_field_offset(lv, s106c4f33, ABISELECT(656,480), "S106C4.s106c4f33");
    check_field_offset(lv, s106c4f34, ABISELECT(664,484), "S106C4.s106c4f34");
    check_field_offset(lv, s106c4f35, ABISELECT(680,496), "S106C4.s106c4f35");
    check_field_offset(lv, s106c4f36, ABISELECT(696,508), "S106C4.s106c4f36");
    check_field_offset(lv, s106c4f37, ABISELECT(712,520), "S106C4.s106c4f37");
    check_field_offset(lv, s106c4f38, ABISELECT(728,532), "S106C4.s106c4f38");
    test_class_info(&lv, &cd_S106C4);
    dp->~S106C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C4(Test_S106C4, "S106C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S106C4C1Ev();
extern void _ZN6S106C4D1Ev();
Name_Map name_map_S106C4[] = {
  NSPAIR(_ZN6S106C4C1Ev),
  NSPAIR(_ZN6S106C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S106C7;
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
extern Class_Descriptor cd_S106C6;
extern VTBL_ENTRY _ZTI6S106C6[];
extern  VTBL_ENTRY _ZTV6S106C6[];
extern Class_Descriptor cd_S106C5;
extern VTBL_ENTRY _ZTI6S106C5[];
extern  VTBL_ENTRY _ZTV6S106C5[];
static Base_Class bases_S106C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S106C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S106C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S106C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S106C4[];
extern void _ZN6S106C4D1Ev();
extern void _ZN6S106C4D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
extern void _ZN6S106C63v70Ev();
extern void _ZN6S106C63v71Ev();
extern void _ZN6S106C53v72Ev();
extern void _ZN6S106C53v73Ev();
extern void _ZN6S106C53v74Ev();
extern void _ZN6S106C53v75Ev();
extern void _ZN6S106C53v76Ev();
extern void _ZN6S106C53v77Ev();
extern void _ZN6S106C53v78Ev();
extern void _ZN6S106C53v79Ev();
extern void _ZN6S106C53v80Ev();
extern void _ZN6S106C53v81Ev();
extern void _ZN6S106C53v82Ev();
extern void _ZN6S106C53v83Ev();
extern void _ZN6S106C53v84Ev();
extern void _ZN6S106C53v85Ev();
extern void _ZN6S106C53v86Ev();
extern void _ZN6S106C53v87Ev();
extern void _ZN6S106C53v88Ev();
extern void _ZN6S106C53v89Ev();
extern void _ZN6S106C53v90Ev();
extern void _ZN6S106C53v91Ev();
extern void _ZN6S106C53v92Ev();
extern void _ZN6S106C53v93Ev();
extern void _ZN6S106C53v94Ev();
extern void _ZN6S106C53v95Ev();
extern void _ZN6S106C53v96Ev();
extern void _ZN6S106C53v97Ev();
extern void _ZN6S106C53v98Ev();
extern void _ZN6S106C53v99Ev();
extern void _ZN6S106C54v100Ev();
extern void _ZN6S106C54v101Ev();
extern void _ZN6S106C54v102Ev();
extern void _ZN6S106C54v103Ev();
extern void _ZN6S106C54v104Ev();
extern void _ZN6S106C54v105Ev();
extern void _ZN6S106C54v106Ev();
extern void _ZN6S106C54v107Ev();
extern void _ZN6S106C54v108Ev();
extern void _ZN6S106C54v109Ev();
extern void _ZN6S106C54v110Ev();
extern void _ZN6S106C54v111Ev();
extern void _ZN6S106C54v112Ev();
extern void _ZN6S106C54v113Ev();
extern void _ZN6S106C54v114Ev();
extern void _ZN6S106C54v115Ev();
extern void _ZN6S106C54v116Ev();
extern void _ZN6S106C54v117Ev();
extern void _ZN6S106C54v118Ev();
extern void _ZN6S106C54v119Ev();
extern void _ZN6S106C54v120Ev();
extern void _ZN6S106C54v121Ev();
extern void _ZN6S106C54v122Ev();
extern void _ZN6S106C54v123Ev();
extern void _ZN6S106C54v124Ev();
extern void _ZN6S106C54v125Ev();
extern void _ZN6S106C54v126Ev();
extern void _ZN6S106C54v127Ev();
extern void _ZN6S106C54v128Ev();
extern void _ZN6S106C54v129Ev();
extern void _ZN6S106C54v130Ev();
extern void _ZN6S106C54v131Ev();
extern void _ZN6S106C54v132Ev();
extern void _ZN6S106C54v133Ev();
extern void _ZN6S106C54v134Ev();
extern void _ZN6S106C54v135Ev();
extern void _ZN6S106C54v136Ev();
extern void _ZN6S106C54v137Ev();
extern void _ZN6S106C54v138Ev();
extern void _ZN6S106C54v139Ev();
extern void _ZN6S106C54v140Ev();
extern void _ZN6S106C54v141Ev();
extern void _ZN6S106C54v142Ev();
extern void _ZN6S106C54v143Ev();
extern void _ZN6S106C54v144Ev();
extern void _ZN6S106C54v145Ev();
extern void _ZN6S106C54v146Ev();
extern void _ZN6S106C54v147Ev();
extern void _ZN6S106C44v148Ev();
extern void _ZN6S106C44v149Ev();
extern void _ZN6S106C44v150Ev();
extern void _ZN6S106C44v151Ev();
extern void _ZN6S106C44v152Ev();
extern void _ZN6S106C44v153Ev();
extern void _ZN6S106C44v154Ev();
extern void _ZN6S106C44v155Ev();
extern void _ZN6S106C44v156Ev();
extern void _ZN6S106C44v157Ev();
extern void _ZN6S106C44v158Ev();
extern void _ZN6S106C44v159Ev();
extern void _ZN6S106C44v160Ev();
extern void _ZN6S106C44v161Ev();
extern void _ZN6S106C44v162Ev();
extern void _ZN6S106C44v163Ev();
extern void _ZN6S106C44v164Ev();
extern void _ZN6S106C44v165Ev();
extern void _ZN6S106C44v166Ev();
extern void _ZN6S106C44v167Ev();
extern void _ZN6S106C44v168Ev();
extern void _ZN6S106C44v169Ev();
extern void _ZN6S106C44v170Ev();
extern void _ZN6S106C44v171Ev();
extern void _ZN6S106C44v172Ev();
extern void _ZN6S106C44v173Ev();
extern void _ZN6S106C44v174Ev();
extern void _ZN6S106C44v175Ev();
extern void _ZN6S106C44v176Ev();
extern void _ZN6S106C44v177Ev();
extern void _ZN6S106C44v178Ev();
extern void _ZN6S106C44v179Ev();
extern void _ZN6S106C44v180Ev();
extern void _ZN6S106C44v181Ev();
extern void _ZN6S106C44v182Ev();
extern void _ZN6S106C44v183Ev();
extern void _ZN6S106C44v184Ev();
extern void _ZN6S106C44v185Ev();
extern void _ZN6S106C44v186Ev();
static  VTBL_ENTRY vtc_S106C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C4[0]),
  (VTBL_ENTRY)&_ZN6S106C4D1Ev,
  (VTBL_ENTRY)&_ZN6S106C4D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
  (VTBL_ENTRY)&_ZN6S106C63v70Ev,
  (VTBL_ENTRY)&_ZN6S106C63v71Ev,
  (VTBL_ENTRY)&_ZN6S106C53v72Ev,
  (VTBL_ENTRY)&_ZN6S106C53v73Ev,
  (VTBL_ENTRY)&_ZN6S106C53v74Ev,
  (VTBL_ENTRY)&_ZN6S106C53v75Ev,
  (VTBL_ENTRY)&_ZN6S106C53v76Ev,
  (VTBL_ENTRY)&_ZN6S106C53v77Ev,
  (VTBL_ENTRY)&_ZN6S106C53v78Ev,
  (VTBL_ENTRY)&_ZN6S106C53v79Ev,
  (VTBL_ENTRY)&_ZN6S106C53v80Ev,
  (VTBL_ENTRY)&_ZN6S106C53v81Ev,
  (VTBL_ENTRY)&_ZN6S106C53v82Ev,
  (VTBL_ENTRY)&_ZN6S106C53v83Ev,
  (VTBL_ENTRY)&_ZN6S106C53v84Ev,
  (VTBL_ENTRY)&_ZN6S106C53v85Ev,
  (VTBL_ENTRY)&_ZN6S106C53v86Ev,
  (VTBL_ENTRY)&_ZN6S106C53v87Ev,
  (VTBL_ENTRY)&_ZN6S106C53v88Ev,
  (VTBL_ENTRY)&_ZN6S106C53v89Ev,
  (VTBL_ENTRY)&_ZN6S106C53v90Ev,
  (VTBL_ENTRY)&_ZN6S106C53v91Ev,
  (VTBL_ENTRY)&_ZN6S106C53v92Ev,
  (VTBL_ENTRY)&_ZN6S106C53v93Ev,
  (VTBL_ENTRY)&_ZN6S106C53v94Ev,
  (VTBL_ENTRY)&_ZN6S106C53v95Ev,
  (VTBL_ENTRY)&_ZN6S106C53v96Ev,
  (VTBL_ENTRY)&_ZN6S106C53v97Ev,
  (VTBL_ENTRY)&_ZN6S106C53v98Ev,
  (VTBL_ENTRY)&_ZN6S106C53v99Ev,
  (VTBL_ENTRY)&_ZN6S106C54v100Ev,
  (VTBL_ENTRY)&_ZN6S106C54v101Ev,
  (VTBL_ENTRY)&_ZN6S106C54v102Ev,
  (VTBL_ENTRY)&_ZN6S106C54v103Ev,
  (VTBL_ENTRY)&_ZN6S106C54v104Ev,
  (VTBL_ENTRY)&_ZN6S106C54v105Ev,
  (VTBL_ENTRY)&_ZN6S106C54v106Ev,
  (VTBL_ENTRY)&_ZN6S106C54v107Ev,
  (VTBL_ENTRY)&_ZN6S106C54v108Ev,
  (VTBL_ENTRY)&_ZN6S106C54v109Ev,
  (VTBL_ENTRY)&_ZN6S106C54v110Ev,
  (VTBL_ENTRY)&_ZN6S106C54v111Ev,
  (VTBL_ENTRY)&_ZN6S106C54v112Ev,
  (VTBL_ENTRY)&_ZN6S106C54v113Ev,
  (VTBL_ENTRY)&_ZN6S106C54v114Ev,
  (VTBL_ENTRY)&_ZN6S106C54v115Ev,
  (VTBL_ENTRY)&_ZN6S106C54v116Ev,
  (VTBL_ENTRY)&_ZN6S106C54v117Ev,
  (VTBL_ENTRY)&_ZN6S106C54v118Ev,
  (VTBL_ENTRY)&_ZN6S106C54v119Ev,
  (VTBL_ENTRY)&_ZN6S106C54v120Ev,
  (VTBL_ENTRY)&_ZN6S106C54v121Ev,
  (VTBL_ENTRY)&_ZN6S106C54v122Ev,
  (VTBL_ENTRY)&_ZN6S106C54v123Ev,
  (VTBL_ENTRY)&_ZN6S106C54v124Ev,
  (VTBL_ENTRY)&_ZN6S106C54v125Ev,
  (VTBL_ENTRY)&_ZN6S106C54v126Ev,
  (VTBL_ENTRY)&_ZN6S106C54v127Ev,
  (VTBL_ENTRY)&_ZN6S106C54v128Ev,
  (VTBL_ENTRY)&_ZN6S106C54v129Ev,
  (VTBL_ENTRY)&_ZN6S106C54v130Ev,
  (VTBL_ENTRY)&_ZN6S106C54v131Ev,
  (VTBL_ENTRY)&_ZN6S106C54v132Ev,
  (VTBL_ENTRY)&_ZN6S106C54v133Ev,
  (VTBL_ENTRY)&_ZN6S106C54v134Ev,
  (VTBL_ENTRY)&_ZN6S106C54v135Ev,
  (VTBL_ENTRY)&_ZN6S106C54v136Ev,
  (VTBL_ENTRY)&_ZN6S106C54v137Ev,
  (VTBL_ENTRY)&_ZN6S106C54v138Ev,
  (VTBL_ENTRY)&_ZN6S106C54v139Ev,
  (VTBL_ENTRY)&_ZN6S106C54v140Ev,
  (VTBL_ENTRY)&_ZN6S106C54v141Ev,
  (VTBL_ENTRY)&_ZN6S106C54v142Ev,
  (VTBL_ENTRY)&_ZN6S106C54v143Ev,
  (VTBL_ENTRY)&_ZN6S106C54v144Ev,
  (VTBL_ENTRY)&_ZN6S106C54v145Ev,
  (VTBL_ENTRY)&_ZN6S106C54v146Ev,
  (VTBL_ENTRY)&_ZN6S106C54v147Ev,
  (VTBL_ENTRY)&_ZN6S106C44v148Ev,
  (VTBL_ENTRY)&_ZN6S106C44v149Ev,
  (VTBL_ENTRY)&_ZN6S106C44v150Ev,
  (VTBL_ENTRY)&_ZN6S106C44v151Ev,
  (VTBL_ENTRY)&_ZN6S106C44v152Ev,
  (VTBL_ENTRY)&_ZN6S106C44v153Ev,
  (VTBL_ENTRY)&_ZN6S106C44v154Ev,
  (VTBL_ENTRY)&_ZN6S106C44v155Ev,
  (VTBL_ENTRY)&_ZN6S106C44v156Ev,
  (VTBL_ENTRY)&_ZN6S106C44v157Ev,
  (VTBL_ENTRY)&_ZN6S106C44v158Ev,
  (VTBL_ENTRY)&_ZN6S106C44v159Ev,
  (VTBL_ENTRY)&_ZN6S106C44v160Ev,
  (VTBL_ENTRY)&_ZN6S106C44v161Ev,
  (VTBL_ENTRY)&_ZN6S106C44v162Ev,
  (VTBL_ENTRY)&_ZN6S106C44v163Ev,
  (VTBL_ENTRY)&_ZN6S106C44v164Ev,
  (VTBL_ENTRY)&_ZN6S106C44v165Ev,
  (VTBL_ENTRY)&_ZN6S106C44v166Ev,
  (VTBL_ENTRY)&_ZN6S106C44v167Ev,
  (VTBL_ENTRY)&_ZN6S106C44v168Ev,
  (VTBL_ENTRY)&_ZN6S106C44v169Ev,
  (VTBL_ENTRY)&_ZN6S106C44v170Ev,
  (VTBL_ENTRY)&_ZN6S106C44v171Ev,
  (VTBL_ENTRY)&_ZN6S106C44v172Ev,
  (VTBL_ENTRY)&_ZN6S106C44v173Ev,
  (VTBL_ENTRY)&_ZN6S106C44v174Ev,
  (VTBL_ENTRY)&_ZN6S106C44v175Ev,
  (VTBL_ENTRY)&_ZN6S106C44v176Ev,
  (VTBL_ENTRY)&_ZN6S106C44v177Ev,
  (VTBL_ENTRY)&_ZN6S106C44v178Ev,
  (VTBL_ENTRY)&_ZN6S106C44v179Ev,
  (VTBL_ENTRY)&_ZN6S106C44v180Ev,
  (VTBL_ENTRY)&_ZN6S106C44v181Ev,
  (VTBL_ENTRY)&_ZN6S106C44v182Ev,
  (VTBL_ENTRY)&_ZN6S106C44v183Ev,
  (VTBL_ENTRY)&_ZN6S106C44v184Ev,
  (VTBL_ENTRY)&_ZN6S106C44v185Ev,
  (VTBL_ENTRY)&_ZN6S106C44v186Ev,
};
extern VTBL_ENTRY _ZTI6S106C4[];
extern  VTBL_ENTRY _ZTV6S106C4[];
Class_Descriptor cd_S106C4 = {  "S106C4", // class name
  bases_S106C4, 3,
  &(vtc_S106C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S106C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S106C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C3  : S106C4 {
  unsigned int s106c3f0:1;
  unsigned int s106c3f1:1;
  unsigned int s106c3f2:1;
  unsigned int s106c3f3:1;
  unsigned int s106c3f4:1;
  unsigned int s106c3f5:1;
  void *s106c3f6[8];
  ::S80C21_nt s106c3f7;
  ::S80C21_nt s106c3f8;
  ::S80C21_nt s106c3f9;
  virtual  ~S106C3(); // _ZN6S106C3D1Ev
  virtual void  v187(); // _ZN6S106C34v187Ev
  virtual void  v188(); // _ZN6S106C34v188Ev
  virtual void  v189(); // _ZN6S106C34v189Ev
  virtual void  v190(); // _ZN6S106C34v190Ev
  virtual void  v191(); // _ZN6S106C34v191Ev
  virtual void  v192(); // _ZN6S106C34v192Ev
  virtual void  v193(); // _ZN6S106C34v193Ev
  virtual void  v194(); // _ZN6S106C34v194Ev
  virtual void  v195(); // _ZN6S106C34v195Ev
  virtual void  v196(); // _ZN6S106C34v196Ev
  virtual void  v197(); // _ZN6S106C34v197Ev
  virtual void  v198(); // _ZN6S106C34v198Ev
  virtual void  v199(); // _ZN6S106C34v199Ev
  virtual void  v200(); // _ZN6S106C34v200Ev
  virtual void  v201(); // _ZN6S106C34v201Ev
  virtual void  v202(); // _ZN6S106C34v202Ev
  virtual void  v203(); // _ZN6S106C34v203Ev
  virtual void  v204(); // _ZN6S106C34v204Ev
  virtual void  v205(); // _ZN6S106C34v205Ev
  virtual void  v206(); // _ZN6S106C34v206Ev
  virtual void  v207(); // _ZN6S106C34v207Ev
  virtual void  v208(); // _ZN6S106C34v208Ev
  virtual void  v209(); // _ZN6S106C34v209Ev
  S106C3(); // tgen
};
//SIG(-1 S106C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S106C3 ::~S106C3(){ note_dtor("S106C3", this);}
void  S106C3 ::v187(){vfunc_called(this, "_ZN6S106C34v187Ev");}
void  S106C3 ::v188(){vfunc_called(this, "_ZN6S106C34v188Ev");}
void  S106C3 ::v189(){vfunc_called(this, "_ZN6S106C34v189Ev");}
void  S106C3 ::v190(){vfunc_called(this, "_ZN6S106C34v190Ev");}
void  S106C3 ::v191(){vfunc_called(this, "_ZN6S106C34v191Ev");}
void  S106C3 ::v192(){vfunc_called(this, "_ZN6S106C34v192Ev");}
void  S106C3 ::v193(){vfunc_called(this, "_ZN6S106C34v193Ev");}
void  S106C3 ::v194(){vfunc_called(this, "_ZN6S106C34v194Ev");}
void  S106C3 ::v195(){vfunc_called(this, "_ZN6S106C34v195Ev");}
void  S106C3 ::v196(){vfunc_called(this, "_ZN6S106C34v196Ev");}
void  S106C3 ::v197(){vfunc_called(this, "_ZN6S106C34v197Ev");}
void  S106C3 ::v198(){vfunc_called(this, "_ZN6S106C34v198Ev");}
void  S106C3 ::v199(){vfunc_called(this, "_ZN6S106C34v199Ev");}
void  S106C3 ::v200(){vfunc_called(this, "_ZN6S106C34v200Ev");}
void  S106C3 ::v201(){vfunc_called(this, "_ZN6S106C34v201Ev");}
void  S106C3 ::v202(){vfunc_called(this, "_ZN6S106C34v202Ev");}
void  S106C3 ::v203(){vfunc_called(this, "_ZN6S106C34v203Ev");}
void  S106C3 ::v204(){vfunc_called(this, "_ZN6S106C34v204Ev");}
void  S106C3 ::v205(){vfunc_called(this, "_ZN6S106C34v205Ev");}
void  S106C3 ::v206(){vfunc_called(this, "_ZN6S106C34v206Ev");}
void  S106C3 ::v207(){vfunc_called(this, "_ZN6S106C34v207Ev");}
void  S106C3 ::v208(){vfunc_called(this, "_ZN6S106C34v208Ev");}
void  S106C3 ::v209(){vfunc_called(this, "_ZN6S106C34v209Ev");}
S106C3 ::S106C3(){ note_ctor("S106C3", this);} // tgen

static void Test_S106C3()
{
  extern Class_Descriptor cd_S106C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S106C3, buf);
    S106C3 *dp, &lv = *(dp=new (buf) S106C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S106C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C3)");
    check_base_class_offset(lv, (S106C7*)(S106C6*)(S106C5*)(S106C4*), 0, "S106C3");
    check_base_class_offset(lv, (S106C6*)(S106C5*)(S106C4*), 0, "S106C3");
    check_base_class_offset(lv, (S106C5*)(S106C4*), 0, "S106C3");
    check_base_class_offset(lv, (S106C4*), 0, "S106C3");
    set_bf_and_test(lv, s106c3f0, ABISELECT(744,544), 0, 1, 1, "S106C3");
    set_bf_and_test(lv, s106c3f1, ABISELECT(744,544), 1, 1, 1, "S106C3");
    set_bf_and_test(lv, s106c3f2, ABISELECT(744,544), 2, 1, 1, "S106C3");
    set_bf_and_test(lv, s106c3f3, ABISELECT(744,544), 3, 1, 1, "S106C3");
    set_bf_and_test(lv, s106c3f4, ABISELECT(744,544), 4, 1, 1, "S106C3");
    set_bf_and_test(lv, s106c3f5, ABISELECT(744,544), 5, 1, 1, "S106C3");
    check_field_offset(lv, s106c3f6, ABISELECT(752,548), "S106C3.s106c3f6");
    check_field_offset(lv, s106c3f7, ABISELECT(816,580), "S106C3.s106c3f7");
    check_field_offset(lv, s106c3f8, ABISELECT(832,592), "S106C3.s106c3f8");
    check_field_offset(lv, s106c3f9, ABISELECT(848,604), "S106C3.s106c3f9");
    test_class_info(&lv, &cd_S106C3);
    dp->~S106C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C3(Test_S106C3, "S106C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S106C3C1Ev();
extern void _ZN6S106C3D1Ev();
Name_Map name_map_S106C3[] = {
  NSPAIR(_ZN6S106C3C1Ev),
  NSPAIR(_ZN6S106C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S106C7;
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
extern Class_Descriptor cd_S106C6;
extern VTBL_ENTRY _ZTI6S106C6[];
extern  VTBL_ENTRY _ZTV6S106C6[];
extern Class_Descriptor cd_S106C5;
extern VTBL_ENTRY _ZTI6S106C5[];
extern  VTBL_ENTRY _ZTV6S106C5[];
extern Class_Descriptor cd_S106C4;
extern VTBL_ENTRY _ZTI6S106C4[];
extern  VTBL_ENTRY _ZTV6S106C4[];
static Base_Class bases_S106C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S106C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S106C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S106C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S106C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S106C3[];
extern void _ZN6S106C3D1Ev();
extern void _ZN6S106C3D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
extern void _ZN6S106C63v70Ev();
extern void _ZN6S106C63v71Ev();
extern void _ZN6S106C53v72Ev();
extern void _ZN6S106C53v73Ev();
extern void _ZN6S106C53v74Ev();
extern void _ZN6S106C53v75Ev();
extern void _ZN6S106C53v76Ev();
extern void _ZN6S106C53v77Ev();
extern void _ZN6S106C53v78Ev();
extern void _ZN6S106C53v79Ev();
extern void _ZN6S106C53v80Ev();
extern void _ZN6S106C53v81Ev();
extern void _ZN6S106C53v82Ev();
extern void _ZN6S106C53v83Ev();
extern void _ZN6S106C53v84Ev();
extern void _ZN6S106C53v85Ev();
extern void _ZN6S106C53v86Ev();
extern void _ZN6S106C53v87Ev();
extern void _ZN6S106C53v88Ev();
extern void _ZN6S106C53v89Ev();
extern void _ZN6S106C53v90Ev();
extern void _ZN6S106C53v91Ev();
extern void _ZN6S106C53v92Ev();
extern void _ZN6S106C53v93Ev();
extern void _ZN6S106C53v94Ev();
extern void _ZN6S106C53v95Ev();
extern void _ZN6S106C53v96Ev();
extern void _ZN6S106C53v97Ev();
extern void _ZN6S106C53v98Ev();
extern void _ZN6S106C53v99Ev();
extern void _ZN6S106C54v100Ev();
extern void _ZN6S106C54v101Ev();
extern void _ZN6S106C54v102Ev();
extern void _ZN6S106C54v103Ev();
extern void _ZN6S106C54v104Ev();
extern void _ZN6S106C54v105Ev();
extern void _ZN6S106C54v106Ev();
extern void _ZN6S106C54v107Ev();
extern void _ZN6S106C54v108Ev();
extern void _ZN6S106C54v109Ev();
extern void _ZN6S106C54v110Ev();
extern void _ZN6S106C54v111Ev();
extern void _ZN6S106C54v112Ev();
extern void _ZN6S106C54v113Ev();
extern void _ZN6S106C54v114Ev();
extern void _ZN6S106C54v115Ev();
extern void _ZN6S106C54v116Ev();
extern void _ZN6S106C54v117Ev();
extern void _ZN6S106C54v118Ev();
extern void _ZN6S106C54v119Ev();
extern void _ZN6S106C54v120Ev();
extern void _ZN6S106C54v121Ev();
extern void _ZN6S106C54v122Ev();
extern void _ZN6S106C54v123Ev();
extern void _ZN6S106C54v124Ev();
extern void _ZN6S106C54v125Ev();
extern void _ZN6S106C54v126Ev();
extern void _ZN6S106C54v127Ev();
extern void _ZN6S106C54v128Ev();
extern void _ZN6S106C54v129Ev();
extern void _ZN6S106C54v130Ev();
extern void _ZN6S106C54v131Ev();
extern void _ZN6S106C54v132Ev();
extern void _ZN6S106C54v133Ev();
extern void _ZN6S106C54v134Ev();
extern void _ZN6S106C54v135Ev();
extern void _ZN6S106C54v136Ev();
extern void _ZN6S106C54v137Ev();
extern void _ZN6S106C54v138Ev();
extern void _ZN6S106C54v139Ev();
extern void _ZN6S106C54v140Ev();
extern void _ZN6S106C54v141Ev();
extern void _ZN6S106C54v142Ev();
extern void _ZN6S106C54v143Ev();
extern void _ZN6S106C54v144Ev();
extern void _ZN6S106C54v145Ev();
extern void _ZN6S106C54v146Ev();
extern void _ZN6S106C54v147Ev();
extern void _ZN6S106C44v148Ev();
extern void _ZN6S106C44v149Ev();
extern void _ZN6S106C44v150Ev();
extern void _ZN6S106C44v151Ev();
extern void _ZN6S106C44v152Ev();
extern void _ZN6S106C44v153Ev();
extern void _ZN6S106C44v154Ev();
extern void _ZN6S106C44v155Ev();
extern void _ZN6S106C44v156Ev();
extern void _ZN6S106C44v157Ev();
extern void _ZN6S106C44v158Ev();
extern void _ZN6S106C44v159Ev();
extern void _ZN6S106C44v160Ev();
extern void _ZN6S106C44v161Ev();
extern void _ZN6S106C44v162Ev();
extern void _ZN6S106C44v163Ev();
extern void _ZN6S106C44v164Ev();
extern void _ZN6S106C44v165Ev();
extern void _ZN6S106C44v166Ev();
extern void _ZN6S106C44v167Ev();
extern void _ZN6S106C44v168Ev();
extern void _ZN6S106C44v169Ev();
extern void _ZN6S106C44v170Ev();
extern void _ZN6S106C44v171Ev();
extern void _ZN6S106C44v172Ev();
extern void _ZN6S106C44v173Ev();
extern void _ZN6S106C44v174Ev();
extern void _ZN6S106C44v175Ev();
extern void _ZN6S106C44v176Ev();
extern void _ZN6S106C44v177Ev();
extern void _ZN6S106C44v178Ev();
extern void _ZN6S106C44v179Ev();
extern void _ZN6S106C44v180Ev();
extern void _ZN6S106C44v181Ev();
extern void _ZN6S106C44v182Ev();
extern void _ZN6S106C44v183Ev();
extern void _ZN6S106C44v184Ev();
extern void _ZN6S106C44v185Ev();
extern void _ZN6S106C44v186Ev();
extern void _ZN6S106C34v187Ev();
extern void _ZN6S106C34v188Ev();
extern void _ZN6S106C34v189Ev();
extern void _ZN6S106C34v190Ev();
extern void _ZN6S106C34v191Ev();
extern void _ZN6S106C34v192Ev();
extern void _ZN6S106C34v193Ev();
extern void _ZN6S106C34v194Ev();
extern void _ZN6S106C34v195Ev();
extern void _ZN6S106C34v196Ev();
extern void _ZN6S106C34v197Ev();
extern void _ZN6S106C34v198Ev();
extern void _ZN6S106C34v199Ev();
extern void _ZN6S106C34v200Ev();
extern void _ZN6S106C34v201Ev();
extern void _ZN6S106C34v202Ev();
extern void _ZN6S106C34v203Ev();
extern void _ZN6S106C34v204Ev();
extern void _ZN6S106C34v205Ev();
extern void _ZN6S106C34v206Ev();
extern void _ZN6S106C34v207Ev();
extern void _ZN6S106C34v208Ev();
extern void _ZN6S106C34v209Ev();
static  VTBL_ENTRY vtc_S106C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C3[0]),
  (VTBL_ENTRY)&_ZN6S106C3D1Ev,
  (VTBL_ENTRY)&_ZN6S106C3D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
  (VTBL_ENTRY)&_ZN6S106C63v70Ev,
  (VTBL_ENTRY)&_ZN6S106C63v71Ev,
  (VTBL_ENTRY)&_ZN6S106C53v72Ev,
  (VTBL_ENTRY)&_ZN6S106C53v73Ev,
  (VTBL_ENTRY)&_ZN6S106C53v74Ev,
  (VTBL_ENTRY)&_ZN6S106C53v75Ev,
  (VTBL_ENTRY)&_ZN6S106C53v76Ev,
  (VTBL_ENTRY)&_ZN6S106C53v77Ev,
  (VTBL_ENTRY)&_ZN6S106C53v78Ev,
  (VTBL_ENTRY)&_ZN6S106C53v79Ev,
  (VTBL_ENTRY)&_ZN6S106C53v80Ev,
  (VTBL_ENTRY)&_ZN6S106C53v81Ev,
  (VTBL_ENTRY)&_ZN6S106C53v82Ev,
  (VTBL_ENTRY)&_ZN6S106C53v83Ev,
  (VTBL_ENTRY)&_ZN6S106C53v84Ev,
  (VTBL_ENTRY)&_ZN6S106C53v85Ev,
  (VTBL_ENTRY)&_ZN6S106C53v86Ev,
  (VTBL_ENTRY)&_ZN6S106C53v87Ev,
  (VTBL_ENTRY)&_ZN6S106C53v88Ev,
  (VTBL_ENTRY)&_ZN6S106C53v89Ev,
  (VTBL_ENTRY)&_ZN6S106C53v90Ev,
  (VTBL_ENTRY)&_ZN6S106C53v91Ev,
  (VTBL_ENTRY)&_ZN6S106C53v92Ev,
  (VTBL_ENTRY)&_ZN6S106C53v93Ev,
  (VTBL_ENTRY)&_ZN6S106C53v94Ev,
  (VTBL_ENTRY)&_ZN6S106C53v95Ev,
  (VTBL_ENTRY)&_ZN6S106C53v96Ev,
  (VTBL_ENTRY)&_ZN6S106C53v97Ev,
  (VTBL_ENTRY)&_ZN6S106C53v98Ev,
  (VTBL_ENTRY)&_ZN6S106C53v99Ev,
  (VTBL_ENTRY)&_ZN6S106C54v100Ev,
  (VTBL_ENTRY)&_ZN6S106C54v101Ev,
  (VTBL_ENTRY)&_ZN6S106C54v102Ev,
  (VTBL_ENTRY)&_ZN6S106C54v103Ev,
  (VTBL_ENTRY)&_ZN6S106C54v104Ev,
  (VTBL_ENTRY)&_ZN6S106C54v105Ev,
  (VTBL_ENTRY)&_ZN6S106C54v106Ev,
  (VTBL_ENTRY)&_ZN6S106C54v107Ev,
  (VTBL_ENTRY)&_ZN6S106C54v108Ev,
  (VTBL_ENTRY)&_ZN6S106C54v109Ev,
  (VTBL_ENTRY)&_ZN6S106C54v110Ev,
  (VTBL_ENTRY)&_ZN6S106C54v111Ev,
  (VTBL_ENTRY)&_ZN6S106C54v112Ev,
  (VTBL_ENTRY)&_ZN6S106C54v113Ev,
  (VTBL_ENTRY)&_ZN6S106C54v114Ev,
  (VTBL_ENTRY)&_ZN6S106C54v115Ev,
  (VTBL_ENTRY)&_ZN6S106C54v116Ev,
  (VTBL_ENTRY)&_ZN6S106C54v117Ev,
  (VTBL_ENTRY)&_ZN6S106C54v118Ev,
  (VTBL_ENTRY)&_ZN6S106C54v119Ev,
  (VTBL_ENTRY)&_ZN6S106C54v120Ev,
  (VTBL_ENTRY)&_ZN6S106C54v121Ev,
  (VTBL_ENTRY)&_ZN6S106C54v122Ev,
  (VTBL_ENTRY)&_ZN6S106C54v123Ev,
  (VTBL_ENTRY)&_ZN6S106C54v124Ev,
  (VTBL_ENTRY)&_ZN6S106C54v125Ev,
  (VTBL_ENTRY)&_ZN6S106C54v126Ev,
  (VTBL_ENTRY)&_ZN6S106C54v127Ev,
  (VTBL_ENTRY)&_ZN6S106C54v128Ev,
  (VTBL_ENTRY)&_ZN6S106C54v129Ev,
  (VTBL_ENTRY)&_ZN6S106C54v130Ev,
  (VTBL_ENTRY)&_ZN6S106C54v131Ev,
  (VTBL_ENTRY)&_ZN6S106C54v132Ev,
  (VTBL_ENTRY)&_ZN6S106C54v133Ev,
  (VTBL_ENTRY)&_ZN6S106C54v134Ev,
  (VTBL_ENTRY)&_ZN6S106C54v135Ev,
  (VTBL_ENTRY)&_ZN6S106C54v136Ev,
  (VTBL_ENTRY)&_ZN6S106C54v137Ev,
  (VTBL_ENTRY)&_ZN6S106C54v138Ev,
  (VTBL_ENTRY)&_ZN6S106C54v139Ev,
  (VTBL_ENTRY)&_ZN6S106C54v140Ev,
  (VTBL_ENTRY)&_ZN6S106C54v141Ev,
  (VTBL_ENTRY)&_ZN6S106C54v142Ev,
  (VTBL_ENTRY)&_ZN6S106C54v143Ev,
  (VTBL_ENTRY)&_ZN6S106C54v144Ev,
  (VTBL_ENTRY)&_ZN6S106C54v145Ev,
  (VTBL_ENTRY)&_ZN6S106C54v146Ev,
  (VTBL_ENTRY)&_ZN6S106C54v147Ev,
  (VTBL_ENTRY)&_ZN6S106C44v148Ev,
  (VTBL_ENTRY)&_ZN6S106C44v149Ev,
  (VTBL_ENTRY)&_ZN6S106C44v150Ev,
  (VTBL_ENTRY)&_ZN6S106C44v151Ev,
  (VTBL_ENTRY)&_ZN6S106C44v152Ev,
  (VTBL_ENTRY)&_ZN6S106C44v153Ev,
  (VTBL_ENTRY)&_ZN6S106C44v154Ev,
  (VTBL_ENTRY)&_ZN6S106C44v155Ev,
  (VTBL_ENTRY)&_ZN6S106C44v156Ev,
  (VTBL_ENTRY)&_ZN6S106C44v157Ev,
  (VTBL_ENTRY)&_ZN6S106C44v158Ev,
  (VTBL_ENTRY)&_ZN6S106C44v159Ev,
  (VTBL_ENTRY)&_ZN6S106C44v160Ev,
  (VTBL_ENTRY)&_ZN6S106C44v161Ev,
  (VTBL_ENTRY)&_ZN6S106C44v162Ev,
  (VTBL_ENTRY)&_ZN6S106C44v163Ev,
  (VTBL_ENTRY)&_ZN6S106C44v164Ev,
  (VTBL_ENTRY)&_ZN6S106C44v165Ev,
  (VTBL_ENTRY)&_ZN6S106C44v166Ev,
  (VTBL_ENTRY)&_ZN6S106C44v167Ev,
  (VTBL_ENTRY)&_ZN6S106C44v168Ev,
  (VTBL_ENTRY)&_ZN6S106C44v169Ev,
  (VTBL_ENTRY)&_ZN6S106C44v170Ev,
  (VTBL_ENTRY)&_ZN6S106C44v171Ev,
  (VTBL_ENTRY)&_ZN6S106C44v172Ev,
  (VTBL_ENTRY)&_ZN6S106C44v173Ev,
  (VTBL_ENTRY)&_ZN6S106C44v174Ev,
  (VTBL_ENTRY)&_ZN6S106C44v175Ev,
  (VTBL_ENTRY)&_ZN6S106C44v176Ev,
  (VTBL_ENTRY)&_ZN6S106C44v177Ev,
  (VTBL_ENTRY)&_ZN6S106C44v178Ev,
  (VTBL_ENTRY)&_ZN6S106C44v179Ev,
  (VTBL_ENTRY)&_ZN6S106C44v180Ev,
  (VTBL_ENTRY)&_ZN6S106C44v181Ev,
  (VTBL_ENTRY)&_ZN6S106C44v182Ev,
  (VTBL_ENTRY)&_ZN6S106C44v183Ev,
  (VTBL_ENTRY)&_ZN6S106C44v184Ev,
  (VTBL_ENTRY)&_ZN6S106C44v185Ev,
  (VTBL_ENTRY)&_ZN6S106C44v186Ev,
  (VTBL_ENTRY)&_ZN6S106C34v187Ev,
  (VTBL_ENTRY)&_ZN6S106C34v188Ev,
  (VTBL_ENTRY)&_ZN6S106C34v189Ev,
  (VTBL_ENTRY)&_ZN6S106C34v190Ev,
  (VTBL_ENTRY)&_ZN6S106C34v191Ev,
  (VTBL_ENTRY)&_ZN6S106C34v192Ev,
  (VTBL_ENTRY)&_ZN6S106C34v193Ev,
  (VTBL_ENTRY)&_ZN6S106C34v194Ev,
  (VTBL_ENTRY)&_ZN6S106C34v195Ev,
  (VTBL_ENTRY)&_ZN6S106C34v196Ev,
  (VTBL_ENTRY)&_ZN6S106C34v197Ev,
  (VTBL_ENTRY)&_ZN6S106C34v198Ev,
  (VTBL_ENTRY)&_ZN6S106C34v199Ev,
  (VTBL_ENTRY)&_ZN6S106C34v200Ev,
  (VTBL_ENTRY)&_ZN6S106C34v201Ev,
  (VTBL_ENTRY)&_ZN6S106C34v202Ev,
  (VTBL_ENTRY)&_ZN6S106C34v203Ev,
  (VTBL_ENTRY)&_ZN6S106C34v204Ev,
  (VTBL_ENTRY)&_ZN6S106C34v205Ev,
  (VTBL_ENTRY)&_ZN6S106C34v206Ev,
  (VTBL_ENTRY)&_ZN6S106C34v207Ev,
  (VTBL_ENTRY)&_ZN6S106C34v208Ev,
  (VTBL_ENTRY)&_ZN6S106C34v209Ev,
};
extern VTBL_ENTRY _ZTI6S106C3[];
extern  VTBL_ENTRY _ZTV6S106C3[];
Class_Descriptor cd_S106C3 = {  "S106C3", // class name
  bases_S106C3, 4,
  &(vtc_S106C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S106C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S106C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C2  : S106C3 {
  void *s106c2f0[2];
  int s106c2f1[2];
  char s106c2f2;
  void *s106c2f3;
  unsigned int s106c2f4:1;
  unsigned int s106c2f5:1;
  ::S80C28_nt s106c2f6;
  virtual  ~S106C2(); // _ZN6S106C2D1Ev
  virtual void  v210(); // _ZN6S106C24v210Ev
  virtual void  v211(); // _ZN6S106C24v211Ev
  virtual void  v212(); // _ZN6S106C24v212Ev
  virtual void  v213(); // _ZN6S106C24v213Ev
  virtual void  v214(); // _ZN6S106C24v214Ev
  virtual void  v215(); // _ZN6S106C24v215Ev
  virtual void  v216(); // _ZN6S106C24v216Ev
  virtual void  v217(); // _ZN6S106C24v217Ev
  S106C2(); // tgen
};
//SIG(-1 S106C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v73 v74} vd v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 v211 v212 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 v4 v5 v6 v7 v8 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC27{ BC16}}


 S106C2 ::~S106C2(){ note_dtor("S106C2", this);}
void  S106C2 ::v210(){vfunc_called(this, "_ZN6S106C24v210Ev");}
void  S106C2 ::v211(){vfunc_called(this, "_ZN6S106C24v211Ev");}
void  S106C2 ::v212(){vfunc_called(this, "_ZN6S106C24v212Ev");}
void  S106C2 ::v213(){vfunc_called(this, "_ZN6S106C24v213Ev");}
void  S106C2 ::v214(){vfunc_called(this, "_ZN6S106C24v214Ev");}
void  S106C2 ::v215(){vfunc_called(this, "_ZN6S106C24v215Ev");}
void  S106C2 ::v216(){vfunc_called(this, "_ZN6S106C24v216Ev");}
void  S106C2 ::v217(){vfunc_called(this, "_ZN6S106C24v217Ev");}
S106C2 ::S106C2(){ note_ctor("S106C2", this);} // tgen

static void Test_S106C2()
{
  extern Class_Descriptor cd_S106C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(117,165)];
    init_test(&cd_S106C2, buf);
    S106C2 *dp, &lv = *(dp=new (buf) S106C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(928,656), "sizeof(S106C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C2)");
    check_base_class_offset(lv, (S106C7*)(S106C6*)(S106C5*)(S106C4*)(S106C3*), 0, "S106C2");
    check_base_class_offset(lv, (S106C6*)(S106C5*)(S106C4*)(S106C3*), 0, "S106C2");
    check_base_class_offset(lv, (S106C5*)(S106C4*)(S106C3*), 0, "S106C2");
    check_base_class_offset(lv, (S106C4*)(S106C3*), 0, "S106C2");
    check_base_class_offset(lv, (S106C3*), 0, "S106C2");
    check_field_offset(lv, s106c2f0, ABISELECT(864,616), "S106C2.s106c2f0");
    check_field_offset(lv, s106c2f1, ABISELECT(880,624), "S106C2.s106c2f1");
    check_field_offset(lv, s106c2f2, ABISELECT(888,632), "S106C2.s106c2f2");
    check_field_offset(lv, s106c2f3, ABISELECT(896,636), "S106C2.s106c2f3");
    set_bf_and_test(lv, s106c2f4, ABISELECT(904,640), 0, 1, 1, "S106C2");
    set_bf_and_test(lv, s106c2f5, ABISELECT(904,640), 1, 1, 1, "S106C2");
    check_field_offset(lv, s106c2f6, ABISELECT(912,644), "S106C2.s106c2f6");
    test_class_info(&lv, &cd_S106C2);
    dp->~S106C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C2(Test_S106C2, "S106C2", ABISELECT(928,656));

#else // __cplusplus

extern void _ZN6S106C2C1Ev();
extern void _ZN6S106C2D1Ev();
Name_Map name_map_S106C2[] = {
  NSPAIR(_ZN6S106C2C1Ev),
  NSPAIR(_ZN6S106C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S106C7;
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
extern Class_Descriptor cd_S106C6;
extern VTBL_ENTRY _ZTI6S106C6[];
extern  VTBL_ENTRY _ZTV6S106C6[];
extern Class_Descriptor cd_S106C5;
extern VTBL_ENTRY _ZTI6S106C5[];
extern  VTBL_ENTRY _ZTV6S106C5[];
extern Class_Descriptor cd_S106C4;
extern VTBL_ENTRY _ZTI6S106C4[];
extern  VTBL_ENTRY _ZTV6S106C4[];
extern Class_Descriptor cd_S106C3;
extern VTBL_ENTRY _ZTI6S106C3[];
extern  VTBL_ENTRY _ZTV6S106C3[];
static Base_Class bases_S106C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S106C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S106C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S106C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S106C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S106C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S106C2[];
extern void _ZN6S106C2D1Ev();
extern void _ZN6S106C2D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
extern void _ZN6S106C63v70Ev();
extern void _ZN6S106C63v71Ev();
extern void _ZN6S106C53v72Ev();
extern void _ZN6S106C53v73Ev();
extern void _ZN6S106C53v74Ev();
extern void _ZN6S106C53v75Ev();
extern void _ZN6S106C53v76Ev();
extern void _ZN6S106C53v77Ev();
extern void _ZN6S106C53v78Ev();
extern void _ZN6S106C53v79Ev();
extern void _ZN6S106C53v80Ev();
extern void _ZN6S106C53v81Ev();
extern void _ZN6S106C53v82Ev();
extern void _ZN6S106C53v83Ev();
extern void _ZN6S106C53v84Ev();
extern void _ZN6S106C53v85Ev();
extern void _ZN6S106C53v86Ev();
extern void _ZN6S106C53v87Ev();
extern void _ZN6S106C53v88Ev();
extern void _ZN6S106C53v89Ev();
extern void _ZN6S106C53v90Ev();
extern void _ZN6S106C53v91Ev();
extern void _ZN6S106C53v92Ev();
extern void _ZN6S106C53v93Ev();
extern void _ZN6S106C53v94Ev();
extern void _ZN6S106C53v95Ev();
extern void _ZN6S106C53v96Ev();
extern void _ZN6S106C53v97Ev();
extern void _ZN6S106C53v98Ev();
extern void _ZN6S106C53v99Ev();
extern void _ZN6S106C54v100Ev();
extern void _ZN6S106C54v101Ev();
extern void _ZN6S106C54v102Ev();
extern void _ZN6S106C54v103Ev();
extern void _ZN6S106C54v104Ev();
extern void _ZN6S106C54v105Ev();
extern void _ZN6S106C54v106Ev();
extern void _ZN6S106C54v107Ev();
extern void _ZN6S106C54v108Ev();
extern void _ZN6S106C54v109Ev();
extern void _ZN6S106C54v110Ev();
extern void _ZN6S106C54v111Ev();
extern void _ZN6S106C54v112Ev();
extern void _ZN6S106C54v113Ev();
extern void _ZN6S106C54v114Ev();
extern void _ZN6S106C54v115Ev();
extern void _ZN6S106C54v116Ev();
extern void _ZN6S106C54v117Ev();
extern void _ZN6S106C54v118Ev();
extern void _ZN6S106C54v119Ev();
extern void _ZN6S106C54v120Ev();
extern void _ZN6S106C54v121Ev();
extern void _ZN6S106C54v122Ev();
extern void _ZN6S106C54v123Ev();
extern void _ZN6S106C54v124Ev();
extern void _ZN6S106C54v125Ev();
extern void _ZN6S106C54v126Ev();
extern void _ZN6S106C54v127Ev();
extern void _ZN6S106C54v128Ev();
extern void _ZN6S106C54v129Ev();
extern void _ZN6S106C54v130Ev();
extern void _ZN6S106C54v131Ev();
extern void _ZN6S106C54v132Ev();
extern void _ZN6S106C54v133Ev();
extern void _ZN6S106C54v134Ev();
extern void _ZN6S106C54v135Ev();
extern void _ZN6S106C54v136Ev();
extern void _ZN6S106C54v137Ev();
extern void _ZN6S106C54v138Ev();
extern void _ZN6S106C54v139Ev();
extern void _ZN6S106C54v140Ev();
extern void _ZN6S106C54v141Ev();
extern void _ZN6S106C54v142Ev();
extern void _ZN6S106C54v143Ev();
extern void _ZN6S106C54v144Ev();
extern void _ZN6S106C54v145Ev();
extern void _ZN6S106C54v146Ev();
extern void _ZN6S106C54v147Ev();
extern void _ZN6S106C44v148Ev();
extern void _ZN6S106C44v149Ev();
extern void _ZN6S106C44v150Ev();
extern void _ZN6S106C44v151Ev();
extern void _ZN6S106C44v152Ev();
extern void _ZN6S106C44v153Ev();
extern void _ZN6S106C44v154Ev();
extern void _ZN6S106C44v155Ev();
extern void _ZN6S106C44v156Ev();
extern void _ZN6S106C44v157Ev();
extern void _ZN6S106C44v158Ev();
extern void _ZN6S106C44v159Ev();
extern void _ZN6S106C44v160Ev();
extern void _ZN6S106C44v161Ev();
extern void _ZN6S106C44v162Ev();
extern void _ZN6S106C44v163Ev();
extern void _ZN6S106C44v164Ev();
extern void _ZN6S106C44v165Ev();
extern void _ZN6S106C44v166Ev();
extern void _ZN6S106C44v167Ev();
extern void _ZN6S106C44v168Ev();
extern void _ZN6S106C44v169Ev();
extern void _ZN6S106C44v170Ev();
extern void _ZN6S106C44v171Ev();
extern void _ZN6S106C44v172Ev();
extern void _ZN6S106C44v173Ev();
extern void _ZN6S106C44v174Ev();
extern void _ZN6S106C44v175Ev();
extern void _ZN6S106C44v176Ev();
extern void _ZN6S106C44v177Ev();
extern void _ZN6S106C44v178Ev();
extern void _ZN6S106C44v179Ev();
extern void _ZN6S106C44v180Ev();
extern void _ZN6S106C44v181Ev();
extern void _ZN6S106C44v182Ev();
extern void _ZN6S106C44v183Ev();
extern void _ZN6S106C44v184Ev();
extern void _ZN6S106C44v185Ev();
extern void _ZN6S106C44v186Ev();
extern void _ZN6S106C34v187Ev();
extern void _ZN6S106C34v188Ev();
extern void _ZN6S106C34v189Ev();
extern void _ZN6S106C34v190Ev();
extern void _ZN6S106C34v191Ev();
extern void _ZN6S106C34v192Ev();
extern void _ZN6S106C34v193Ev();
extern void _ZN6S106C34v194Ev();
extern void _ZN6S106C34v195Ev();
extern void _ZN6S106C34v196Ev();
extern void _ZN6S106C34v197Ev();
extern void _ZN6S106C34v198Ev();
extern void _ZN6S106C34v199Ev();
extern void _ZN6S106C34v200Ev();
extern void _ZN6S106C34v201Ev();
extern void _ZN6S106C34v202Ev();
extern void _ZN6S106C34v203Ev();
extern void _ZN6S106C34v204Ev();
extern void _ZN6S106C34v205Ev();
extern void _ZN6S106C34v206Ev();
extern void _ZN6S106C34v207Ev();
extern void _ZN6S106C34v208Ev();
extern void _ZN6S106C34v209Ev();
extern void _ZN6S106C24v210Ev();
extern void _ZN6S106C24v211Ev();
extern void _ZN6S106C24v212Ev();
extern void _ZN6S106C24v213Ev();
extern void _ZN6S106C24v214Ev();
extern void _ZN6S106C24v215Ev();
extern void _ZN6S106C24v216Ev();
extern void _ZN6S106C24v217Ev();
static  VTBL_ENTRY vtc_S106C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C2[0]),
  (VTBL_ENTRY)&_ZN6S106C2D1Ev,
  (VTBL_ENTRY)&_ZN6S106C2D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
  (VTBL_ENTRY)&_ZN6S106C63v70Ev,
  (VTBL_ENTRY)&_ZN6S106C63v71Ev,
  (VTBL_ENTRY)&_ZN6S106C53v72Ev,
  (VTBL_ENTRY)&_ZN6S106C53v73Ev,
  (VTBL_ENTRY)&_ZN6S106C53v74Ev,
  (VTBL_ENTRY)&_ZN6S106C53v75Ev,
  (VTBL_ENTRY)&_ZN6S106C53v76Ev,
  (VTBL_ENTRY)&_ZN6S106C53v77Ev,
  (VTBL_ENTRY)&_ZN6S106C53v78Ev,
  (VTBL_ENTRY)&_ZN6S106C53v79Ev,
  (VTBL_ENTRY)&_ZN6S106C53v80Ev,
  (VTBL_ENTRY)&_ZN6S106C53v81Ev,
  (VTBL_ENTRY)&_ZN6S106C53v82Ev,
  (VTBL_ENTRY)&_ZN6S106C53v83Ev,
  (VTBL_ENTRY)&_ZN6S106C53v84Ev,
  (VTBL_ENTRY)&_ZN6S106C53v85Ev,
  (VTBL_ENTRY)&_ZN6S106C53v86Ev,
  (VTBL_ENTRY)&_ZN6S106C53v87Ev,
  (VTBL_ENTRY)&_ZN6S106C53v88Ev,
  (VTBL_ENTRY)&_ZN6S106C53v89Ev,
  (VTBL_ENTRY)&_ZN6S106C53v90Ev,
  (VTBL_ENTRY)&_ZN6S106C53v91Ev,
  (VTBL_ENTRY)&_ZN6S106C53v92Ev,
  (VTBL_ENTRY)&_ZN6S106C53v93Ev,
  (VTBL_ENTRY)&_ZN6S106C53v94Ev,
  (VTBL_ENTRY)&_ZN6S106C53v95Ev,
  (VTBL_ENTRY)&_ZN6S106C53v96Ev,
  (VTBL_ENTRY)&_ZN6S106C53v97Ev,
  (VTBL_ENTRY)&_ZN6S106C53v98Ev,
  (VTBL_ENTRY)&_ZN6S106C53v99Ev,
  (VTBL_ENTRY)&_ZN6S106C54v100Ev,
  (VTBL_ENTRY)&_ZN6S106C54v101Ev,
  (VTBL_ENTRY)&_ZN6S106C54v102Ev,
  (VTBL_ENTRY)&_ZN6S106C54v103Ev,
  (VTBL_ENTRY)&_ZN6S106C54v104Ev,
  (VTBL_ENTRY)&_ZN6S106C54v105Ev,
  (VTBL_ENTRY)&_ZN6S106C54v106Ev,
  (VTBL_ENTRY)&_ZN6S106C54v107Ev,
  (VTBL_ENTRY)&_ZN6S106C54v108Ev,
  (VTBL_ENTRY)&_ZN6S106C54v109Ev,
  (VTBL_ENTRY)&_ZN6S106C54v110Ev,
  (VTBL_ENTRY)&_ZN6S106C54v111Ev,
  (VTBL_ENTRY)&_ZN6S106C54v112Ev,
  (VTBL_ENTRY)&_ZN6S106C54v113Ev,
  (VTBL_ENTRY)&_ZN6S106C54v114Ev,
  (VTBL_ENTRY)&_ZN6S106C54v115Ev,
  (VTBL_ENTRY)&_ZN6S106C54v116Ev,
  (VTBL_ENTRY)&_ZN6S106C54v117Ev,
  (VTBL_ENTRY)&_ZN6S106C54v118Ev,
  (VTBL_ENTRY)&_ZN6S106C54v119Ev,
  (VTBL_ENTRY)&_ZN6S106C54v120Ev,
  (VTBL_ENTRY)&_ZN6S106C54v121Ev,
  (VTBL_ENTRY)&_ZN6S106C54v122Ev,
  (VTBL_ENTRY)&_ZN6S106C54v123Ev,
  (VTBL_ENTRY)&_ZN6S106C54v124Ev,
  (VTBL_ENTRY)&_ZN6S106C54v125Ev,
  (VTBL_ENTRY)&_ZN6S106C54v126Ev,
  (VTBL_ENTRY)&_ZN6S106C54v127Ev,
  (VTBL_ENTRY)&_ZN6S106C54v128Ev,
  (VTBL_ENTRY)&_ZN6S106C54v129Ev,
  (VTBL_ENTRY)&_ZN6S106C54v130Ev,
  (VTBL_ENTRY)&_ZN6S106C54v131Ev,
  (VTBL_ENTRY)&_ZN6S106C54v132Ev,
  (VTBL_ENTRY)&_ZN6S106C54v133Ev,
  (VTBL_ENTRY)&_ZN6S106C54v134Ev,
  (VTBL_ENTRY)&_ZN6S106C54v135Ev,
  (VTBL_ENTRY)&_ZN6S106C54v136Ev,
  (VTBL_ENTRY)&_ZN6S106C54v137Ev,
  (VTBL_ENTRY)&_ZN6S106C54v138Ev,
  (VTBL_ENTRY)&_ZN6S106C54v139Ev,
  (VTBL_ENTRY)&_ZN6S106C54v140Ev,
  (VTBL_ENTRY)&_ZN6S106C54v141Ev,
  (VTBL_ENTRY)&_ZN6S106C54v142Ev,
  (VTBL_ENTRY)&_ZN6S106C54v143Ev,
  (VTBL_ENTRY)&_ZN6S106C54v144Ev,
  (VTBL_ENTRY)&_ZN6S106C54v145Ev,
  (VTBL_ENTRY)&_ZN6S106C54v146Ev,
  (VTBL_ENTRY)&_ZN6S106C54v147Ev,
  (VTBL_ENTRY)&_ZN6S106C44v148Ev,
  (VTBL_ENTRY)&_ZN6S106C44v149Ev,
  (VTBL_ENTRY)&_ZN6S106C44v150Ev,
  (VTBL_ENTRY)&_ZN6S106C44v151Ev,
  (VTBL_ENTRY)&_ZN6S106C44v152Ev,
  (VTBL_ENTRY)&_ZN6S106C44v153Ev,
  (VTBL_ENTRY)&_ZN6S106C44v154Ev,
  (VTBL_ENTRY)&_ZN6S106C44v155Ev,
  (VTBL_ENTRY)&_ZN6S106C44v156Ev,
  (VTBL_ENTRY)&_ZN6S106C44v157Ev,
  (VTBL_ENTRY)&_ZN6S106C44v158Ev,
  (VTBL_ENTRY)&_ZN6S106C44v159Ev,
  (VTBL_ENTRY)&_ZN6S106C44v160Ev,
  (VTBL_ENTRY)&_ZN6S106C44v161Ev,
  (VTBL_ENTRY)&_ZN6S106C44v162Ev,
  (VTBL_ENTRY)&_ZN6S106C44v163Ev,
  (VTBL_ENTRY)&_ZN6S106C44v164Ev,
  (VTBL_ENTRY)&_ZN6S106C44v165Ev,
  (VTBL_ENTRY)&_ZN6S106C44v166Ev,
  (VTBL_ENTRY)&_ZN6S106C44v167Ev,
  (VTBL_ENTRY)&_ZN6S106C44v168Ev,
  (VTBL_ENTRY)&_ZN6S106C44v169Ev,
  (VTBL_ENTRY)&_ZN6S106C44v170Ev,
  (VTBL_ENTRY)&_ZN6S106C44v171Ev,
  (VTBL_ENTRY)&_ZN6S106C44v172Ev,
  (VTBL_ENTRY)&_ZN6S106C44v173Ev,
  (VTBL_ENTRY)&_ZN6S106C44v174Ev,
  (VTBL_ENTRY)&_ZN6S106C44v175Ev,
  (VTBL_ENTRY)&_ZN6S106C44v176Ev,
  (VTBL_ENTRY)&_ZN6S106C44v177Ev,
  (VTBL_ENTRY)&_ZN6S106C44v178Ev,
  (VTBL_ENTRY)&_ZN6S106C44v179Ev,
  (VTBL_ENTRY)&_ZN6S106C44v180Ev,
  (VTBL_ENTRY)&_ZN6S106C44v181Ev,
  (VTBL_ENTRY)&_ZN6S106C44v182Ev,
  (VTBL_ENTRY)&_ZN6S106C44v183Ev,
  (VTBL_ENTRY)&_ZN6S106C44v184Ev,
  (VTBL_ENTRY)&_ZN6S106C44v185Ev,
  (VTBL_ENTRY)&_ZN6S106C44v186Ev,
  (VTBL_ENTRY)&_ZN6S106C34v187Ev,
  (VTBL_ENTRY)&_ZN6S106C34v188Ev,
  (VTBL_ENTRY)&_ZN6S106C34v189Ev,
  (VTBL_ENTRY)&_ZN6S106C34v190Ev,
  (VTBL_ENTRY)&_ZN6S106C34v191Ev,
  (VTBL_ENTRY)&_ZN6S106C34v192Ev,
  (VTBL_ENTRY)&_ZN6S106C34v193Ev,
  (VTBL_ENTRY)&_ZN6S106C34v194Ev,
  (VTBL_ENTRY)&_ZN6S106C34v195Ev,
  (VTBL_ENTRY)&_ZN6S106C34v196Ev,
  (VTBL_ENTRY)&_ZN6S106C34v197Ev,
  (VTBL_ENTRY)&_ZN6S106C34v198Ev,
  (VTBL_ENTRY)&_ZN6S106C34v199Ev,
  (VTBL_ENTRY)&_ZN6S106C34v200Ev,
  (VTBL_ENTRY)&_ZN6S106C34v201Ev,
  (VTBL_ENTRY)&_ZN6S106C34v202Ev,
  (VTBL_ENTRY)&_ZN6S106C34v203Ev,
  (VTBL_ENTRY)&_ZN6S106C34v204Ev,
  (VTBL_ENTRY)&_ZN6S106C34v205Ev,
  (VTBL_ENTRY)&_ZN6S106C34v206Ev,
  (VTBL_ENTRY)&_ZN6S106C34v207Ev,
  (VTBL_ENTRY)&_ZN6S106C34v208Ev,
  (VTBL_ENTRY)&_ZN6S106C34v209Ev,
  (VTBL_ENTRY)&_ZN6S106C24v210Ev,
  (VTBL_ENTRY)&_ZN6S106C24v211Ev,
  (VTBL_ENTRY)&_ZN6S106C24v212Ev,
  (VTBL_ENTRY)&_ZN6S106C24v213Ev,
  (VTBL_ENTRY)&_ZN6S106C24v214Ev,
  (VTBL_ENTRY)&_ZN6S106C24v215Ev,
  (VTBL_ENTRY)&_ZN6S106C24v216Ev,
  (VTBL_ENTRY)&_ZN6S106C24v217Ev,
};
extern VTBL_ENTRY _ZTI6S106C2[];
extern  VTBL_ENTRY _ZTV6S106C2[];
Class_Descriptor cd_S106C2 = {  "S106C2", // class name
  bases_S106C2, 5,
  &(vtc_S106C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(928,656), // object size
  NSPAIRA(_ZTI6S106C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S106C2),216, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S106C1  : S106C2 {
  int s106c1f0[3];
  unsigned int s106c1f1:1;
  int s106c1f2;
  ::S80C10_nt s106c1f3;
  int s106c1f4[2];
  void *s106c1f5[15];
  int s106c1f6[4];
  ::S37C34_nt s106c1f7;
  virtual  ~S106C1(); // _ZN6S106C1D1Ev
  virtual void  v1(); // _ZN6S106C12v1Ev
  virtual void  v2(); // _ZN6S106C12v2Ev
  virtual void  v3(); // _ZN6S106C12v3Ev
  virtual void  v4(); // _ZN6S106C12v4Ev
  virtual void  v5(); // _ZN6S106C12v5Ev
  S106C1(); // tgen
};
//SIG(1 S106C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v70 v71} vd v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v210 v211 v212 v213 v214 v215 v216 v217 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC28{ BC17}} vd v1 v2 v3 v4 v5 Fi[3] Fi:1 Fi FC29{ BC30{ BC12}} Fi[2] Fp[15] Fi[4] FC31{ BC32{ BC12}}}


 S106C1 ::~S106C1(){ note_dtor("S106C1", this);}
void  S106C1 ::v1(){vfunc_called(this, "_ZN6S106C12v1Ev");}
void  S106C1 ::v2(){vfunc_called(this, "_ZN6S106C12v2Ev");}
void  S106C1 ::v3(){vfunc_called(this, "_ZN6S106C12v3Ev");}
void  S106C1 ::v4(){vfunc_called(this, "_ZN6S106C12v4Ev");}
void  S106C1 ::v5(){vfunc_called(this, "_ZN6S106C12v5Ev");}
S106C1 ::S106C1(){ note_ctor("S106C1", this);} // tgen

static void Test_S106C1()
{
  extern Class_Descriptor cd_S106C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(142,197)];
    init_test(&cd_S106C1, buf);
    S106C1 *dp, &lv = *(dp=new (buf) S106C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1128,784), "sizeof(S106C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S106C1)");
    check_base_class_offset(lv, (S106C7*)(S106C6*)(S106C5*)(S106C4*)(S106C3*)(S106C2*), 0, "S106C1");
    check_base_class_offset(lv, (S106C6*)(S106C5*)(S106C4*)(S106C3*)(S106C2*), 0, "S106C1");
    check_base_class_offset(lv, (S106C5*)(S106C4*)(S106C3*)(S106C2*), 0, "S106C1");
    check_base_class_offset(lv, (S106C4*)(S106C3*)(S106C2*), 0, "S106C1");
    check_base_class_offset(lv, (S106C3*)(S106C2*), 0, "S106C1");
    check_base_class_offset(lv, (S106C2*), 0, "S106C1");
    check_field_offset(lv, s106c1f0, ABISELECT(928,656), "S106C1.s106c1f0");
    set_bf_and_test(lv, s106c1f1, ABISELECT(940,668), 0, 1, 1, "S106C1");
    check_field_offset(lv, s106c1f2, ABISELECT(944,672), "S106C1.s106c1f2");
    check_field_offset(lv, s106c1f3, ABISELECT(952,676), "S106C1.s106c1f3");
    check_field_offset(lv, s106c1f4, ABISELECT(968,688), "S106C1.s106c1f4");
    check_field_offset(lv, s106c1f5, ABISELECT(976,696), "S106C1.s106c1f5");
    check_field_offset(lv, s106c1f6, ABISELECT(1096,756), "S106C1.s106c1f6");
    check_field_offset(lv, s106c1f7, ABISELECT(1112,772), "S106C1.s106c1f7");
    test_class_info(&lv, &cd_S106C1);
    dp->~S106C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS106C1(Test_S106C1, "S106C1", ABISELECT(1128,784));

#else // __cplusplus

extern void _ZN6S106C1C1Ev();
extern void _ZN6S106C1D1Ev();
Name_Map name_map_S106C1[] = {
  NSPAIR(_ZN6S106C1C1Ev),
  NSPAIR(_ZN6S106C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S106C7;
extern VTBL_ENTRY _ZTI6S106C7[];
extern  VTBL_ENTRY _ZTV6S106C7[];
extern Class_Descriptor cd_S106C6;
extern VTBL_ENTRY _ZTI6S106C6[];
extern  VTBL_ENTRY _ZTV6S106C6[];
extern Class_Descriptor cd_S106C5;
extern VTBL_ENTRY _ZTI6S106C5[];
extern  VTBL_ENTRY _ZTV6S106C5[];
extern Class_Descriptor cd_S106C4;
extern VTBL_ENTRY _ZTI6S106C4[];
extern  VTBL_ENTRY _ZTV6S106C4[];
extern Class_Descriptor cd_S106C3;
extern VTBL_ENTRY _ZTI6S106C3[];
extern  VTBL_ENTRY _ZTV6S106C3[];
extern Class_Descriptor cd_S106C2;
extern VTBL_ENTRY _ZTI6S106C2[];
extern  VTBL_ENTRY _ZTV6S106C2[];
static Base_Class bases_S106C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S106C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S106C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S106C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S106C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S106C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S106C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S106C1[];
extern void _ZN6S106C1D1Ev();
extern void _ZN6S106C1D0Ev();
extern void _ZN6S106C72v6Ev();
extern void _ZN6S106C72v7Ev();
extern void _ZN6S106C72v8Ev();
extern void _ZN6S106C72v9Ev();
extern void _ZN6S106C73v10Ev();
extern void _ZN6S106C73v11Ev();
extern void _ZN6S106C73v12Ev();
extern void _ZN6S106C73v13Ev();
extern void _ZN6S106C73v14Ev();
extern void _ZN6S106C73v15Ev();
extern void _ZN6S106C73v16Ev();
extern void _ZN6S106C73v17Ev();
extern void _ZN6S106C73v18Ev();
extern void _ZN6S106C73v19Ev();
extern void _ZN6S106C73v20Ev();
extern void _ZN6S106C73v21Ev();
extern void _ZN6S106C73v22Ev();
extern void _ZN6S106C73v23Ev();
extern void _ZN6S106C73v24Ev();
extern void _ZN6S106C73v25Ev();
extern void _ZN6S106C73v26Ev();
extern void _ZN6S106C73v27Ev();
extern void _ZN6S106C73v28Ev();
extern void _ZN6S106C73v29Ev();
extern void _ZN6S106C73v30Ev();
extern void _ZN6S106C73v31Ev();
extern void _ZN6S106C73v32Ev();
extern void _ZN6S106C73v33Ev();
extern void _ZN6S106C73v34Ev();
extern void _ZN6S106C73v35Ev();
extern void _ZN6S106C73v36Ev();
extern void _ZN6S106C73v37Ev();
extern void _ZN6S106C73v38Ev();
extern void _ZN6S106C73v39Ev();
extern void _ZN6S106C73v40Ev();
extern void _ZN6S106C73v41Ev();
extern void _ZN6S106C73v42Ev();
extern void _ZN6S106C73v43Ev();
extern void _ZN6S106C73v44Ev();
extern void _ZN6S106C73v45Ev();
extern void _ZN6S106C73v46Ev();
extern void _ZN6S106C73v47Ev();
extern void _ZN6S106C73v48Ev();
extern void _ZN6S106C73v49Ev();
extern void _ZN6S106C73v50Ev();
extern void _ZN6S106C73v51Ev();
extern void _ZN6S106C73v52Ev();
extern void _ZN6S106C73v53Ev();
extern void _ZN6S106C73v54Ev();
extern void _ZN6S106C73v55Ev();
extern void _ZN6S106C73v56Ev();
extern void _ZN6S106C73v57Ev();
extern void _ZN6S106C73v58Ev();
extern void _ZN6S106C73v59Ev();
extern void _ZN6S106C73v60Ev();
extern void _ZN6S106C73v61Ev();
extern void _ZN6S106C73v62Ev();
extern void _ZN6S106C73v63Ev();
extern void _ZN6S106C73v64Ev();
extern void _ZN6S106C73v65Ev();
extern void _ZN6S106C73v66Ev();
extern void _ZN6S106C73v67Ev();
extern void _ZN6S106C73v68Ev();
extern void _ZN6S106C73v69Ev();
extern void _ZN6S106C63v70Ev();
extern void _ZN6S106C63v71Ev();
extern void _ZN6S106C53v72Ev();
extern void _ZN6S106C53v73Ev();
extern void _ZN6S106C53v74Ev();
extern void _ZN6S106C53v75Ev();
extern void _ZN6S106C53v76Ev();
extern void _ZN6S106C53v77Ev();
extern void _ZN6S106C53v78Ev();
extern void _ZN6S106C53v79Ev();
extern void _ZN6S106C53v80Ev();
extern void _ZN6S106C53v81Ev();
extern void _ZN6S106C53v82Ev();
extern void _ZN6S106C53v83Ev();
extern void _ZN6S106C53v84Ev();
extern void _ZN6S106C53v85Ev();
extern void _ZN6S106C53v86Ev();
extern void _ZN6S106C53v87Ev();
extern void _ZN6S106C53v88Ev();
extern void _ZN6S106C53v89Ev();
extern void _ZN6S106C53v90Ev();
extern void _ZN6S106C53v91Ev();
extern void _ZN6S106C53v92Ev();
extern void _ZN6S106C53v93Ev();
extern void _ZN6S106C53v94Ev();
extern void _ZN6S106C53v95Ev();
extern void _ZN6S106C53v96Ev();
extern void _ZN6S106C53v97Ev();
extern void _ZN6S106C53v98Ev();
extern void _ZN6S106C53v99Ev();
extern void _ZN6S106C54v100Ev();
extern void _ZN6S106C54v101Ev();
extern void _ZN6S106C54v102Ev();
extern void _ZN6S106C54v103Ev();
extern void _ZN6S106C54v104Ev();
extern void _ZN6S106C54v105Ev();
extern void _ZN6S106C54v106Ev();
extern void _ZN6S106C54v107Ev();
extern void _ZN6S106C54v108Ev();
extern void _ZN6S106C54v109Ev();
extern void _ZN6S106C54v110Ev();
extern void _ZN6S106C54v111Ev();
extern void _ZN6S106C54v112Ev();
extern void _ZN6S106C54v113Ev();
extern void _ZN6S106C54v114Ev();
extern void _ZN6S106C54v115Ev();
extern void _ZN6S106C54v116Ev();
extern void _ZN6S106C54v117Ev();
extern void _ZN6S106C54v118Ev();
extern void _ZN6S106C54v119Ev();
extern void _ZN6S106C54v120Ev();
extern void _ZN6S106C54v121Ev();
extern void _ZN6S106C54v122Ev();
extern void _ZN6S106C54v123Ev();
extern void _ZN6S106C54v124Ev();
extern void _ZN6S106C54v125Ev();
extern void _ZN6S106C54v126Ev();
extern void _ZN6S106C54v127Ev();
extern void _ZN6S106C54v128Ev();
extern void _ZN6S106C54v129Ev();
extern void _ZN6S106C54v130Ev();
extern void _ZN6S106C54v131Ev();
extern void _ZN6S106C54v132Ev();
extern void _ZN6S106C54v133Ev();
extern void _ZN6S106C54v134Ev();
extern void _ZN6S106C54v135Ev();
extern void _ZN6S106C54v136Ev();
extern void _ZN6S106C54v137Ev();
extern void _ZN6S106C54v138Ev();
extern void _ZN6S106C54v139Ev();
extern void _ZN6S106C54v140Ev();
extern void _ZN6S106C54v141Ev();
extern void _ZN6S106C54v142Ev();
extern void _ZN6S106C54v143Ev();
extern void _ZN6S106C54v144Ev();
extern void _ZN6S106C54v145Ev();
extern void _ZN6S106C54v146Ev();
extern void _ZN6S106C54v147Ev();
extern void _ZN6S106C44v148Ev();
extern void _ZN6S106C44v149Ev();
extern void _ZN6S106C44v150Ev();
extern void _ZN6S106C44v151Ev();
extern void _ZN6S106C44v152Ev();
extern void _ZN6S106C44v153Ev();
extern void _ZN6S106C44v154Ev();
extern void _ZN6S106C44v155Ev();
extern void _ZN6S106C44v156Ev();
extern void _ZN6S106C44v157Ev();
extern void _ZN6S106C44v158Ev();
extern void _ZN6S106C44v159Ev();
extern void _ZN6S106C44v160Ev();
extern void _ZN6S106C44v161Ev();
extern void _ZN6S106C44v162Ev();
extern void _ZN6S106C44v163Ev();
extern void _ZN6S106C44v164Ev();
extern void _ZN6S106C44v165Ev();
extern void _ZN6S106C44v166Ev();
extern void _ZN6S106C44v167Ev();
extern void _ZN6S106C44v168Ev();
extern void _ZN6S106C44v169Ev();
extern void _ZN6S106C44v170Ev();
extern void _ZN6S106C44v171Ev();
extern void _ZN6S106C44v172Ev();
extern void _ZN6S106C44v173Ev();
extern void _ZN6S106C44v174Ev();
extern void _ZN6S106C44v175Ev();
extern void _ZN6S106C44v176Ev();
extern void _ZN6S106C44v177Ev();
extern void _ZN6S106C44v178Ev();
extern void _ZN6S106C44v179Ev();
extern void _ZN6S106C44v180Ev();
extern void _ZN6S106C44v181Ev();
extern void _ZN6S106C44v182Ev();
extern void _ZN6S106C44v183Ev();
extern void _ZN6S106C44v184Ev();
extern void _ZN6S106C44v185Ev();
extern void _ZN6S106C44v186Ev();
extern void _ZN6S106C34v187Ev();
extern void _ZN6S106C34v188Ev();
extern void _ZN6S106C34v189Ev();
extern void _ZN6S106C34v190Ev();
extern void _ZN6S106C34v191Ev();
extern void _ZN6S106C34v192Ev();
extern void _ZN6S106C34v193Ev();
extern void _ZN6S106C34v194Ev();
extern void _ZN6S106C34v195Ev();
extern void _ZN6S106C34v196Ev();
extern void _ZN6S106C34v197Ev();
extern void _ZN6S106C34v198Ev();
extern void _ZN6S106C34v199Ev();
extern void _ZN6S106C34v200Ev();
extern void _ZN6S106C34v201Ev();
extern void _ZN6S106C34v202Ev();
extern void _ZN6S106C34v203Ev();
extern void _ZN6S106C34v204Ev();
extern void _ZN6S106C34v205Ev();
extern void _ZN6S106C34v206Ev();
extern void _ZN6S106C34v207Ev();
extern void _ZN6S106C34v208Ev();
extern void _ZN6S106C34v209Ev();
extern void _ZN6S106C24v210Ev();
extern void _ZN6S106C24v211Ev();
extern void _ZN6S106C24v212Ev();
extern void _ZN6S106C24v213Ev();
extern void _ZN6S106C24v214Ev();
extern void _ZN6S106C24v215Ev();
extern void _ZN6S106C24v216Ev();
extern void _ZN6S106C24v217Ev();
extern void _ZN6S106C12v1Ev();
extern void _ZN6S106C12v2Ev();
extern void _ZN6S106C12v3Ev();
extern void _ZN6S106C12v4Ev();
extern void _ZN6S106C12v5Ev();
static  VTBL_ENTRY vtc_S106C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S106C1[0]),
  (VTBL_ENTRY)&_ZN6S106C1D1Ev,
  (VTBL_ENTRY)&_ZN6S106C1D0Ev,
  (VTBL_ENTRY)&_ZN6S106C72v6Ev,
  (VTBL_ENTRY)&_ZN6S106C72v7Ev,
  (VTBL_ENTRY)&_ZN6S106C72v8Ev,
  (VTBL_ENTRY)&_ZN6S106C72v9Ev,
  (VTBL_ENTRY)&_ZN6S106C73v10Ev,
  (VTBL_ENTRY)&_ZN6S106C73v11Ev,
  (VTBL_ENTRY)&_ZN6S106C73v12Ev,
  (VTBL_ENTRY)&_ZN6S106C73v13Ev,
  (VTBL_ENTRY)&_ZN6S106C73v14Ev,
  (VTBL_ENTRY)&_ZN6S106C73v15Ev,
  (VTBL_ENTRY)&_ZN6S106C73v16Ev,
  (VTBL_ENTRY)&_ZN6S106C73v17Ev,
  (VTBL_ENTRY)&_ZN6S106C73v18Ev,
  (VTBL_ENTRY)&_ZN6S106C73v19Ev,
  (VTBL_ENTRY)&_ZN6S106C73v20Ev,
  (VTBL_ENTRY)&_ZN6S106C73v21Ev,
  (VTBL_ENTRY)&_ZN6S106C73v22Ev,
  (VTBL_ENTRY)&_ZN6S106C73v23Ev,
  (VTBL_ENTRY)&_ZN6S106C73v24Ev,
  (VTBL_ENTRY)&_ZN6S106C73v25Ev,
  (VTBL_ENTRY)&_ZN6S106C73v26Ev,
  (VTBL_ENTRY)&_ZN6S106C73v27Ev,
  (VTBL_ENTRY)&_ZN6S106C73v28Ev,
  (VTBL_ENTRY)&_ZN6S106C73v29Ev,
  (VTBL_ENTRY)&_ZN6S106C73v30Ev,
  (VTBL_ENTRY)&_ZN6S106C73v31Ev,
  (VTBL_ENTRY)&_ZN6S106C73v32Ev,
  (VTBL_ENTRY)&_ZN6S106C73v33Ev,
  (VTBL_ENTRY)&_ZN6S106C73v34Ev,
  (VTBL_ENTRY)&_ZN6S106C73v35Ev,
  (VTBL_ENTRY)&_ZN6S106C73v36Ev,
  (VTBL_ENTRY)&_ZN6S106C73v37Ev,
  (VTBL_ENTRY)&_ZN6S106C73v38Ev,
  (VTBL_ENTRY)&_ZN6S106C73v39Ev,
  (VTBL_ENTRY)&_ZN6S106C73v40Ev,
  (VTBL_ENTRY)&_ZN6S106C73v41Ev,
  (VTBL_ENTRY)&_ZN6S106C73v42Ev,
  (VTBL_ENTRY)&_ZN6S106C73v43Ev,
  (VTBL_ENTRY)&_ZN6S106C73v44Ev,
  (VTBL_ENTRY)&_ZN6S106C73v45Ev,
  (VTBL_ENTRY)&_ZN6S106C73v46Ev,
  (VTBL_ENTRY)&_ZN6S106C73v47Ev,
  (VTBL_ENTRY)&_ZN6S106C73v48Ev,
  (VTBL_ENTRY)&_ZN6S106C73v49Ev,
  (VTBL_ENTRY)&_ZN6S106C73v50Ev,
  (VTBL_ENTRY)&_ZN6S106C73v51Ev,
  (VTBL_ENTRY)&_ZN6S106C73v52Ev,
  (VTBL_ENTRY)&_ZN6S106C73v53Ev,
  (VTBL_ENTRY)&_ZN6S106C73v54Ev,
  (VTBL_ENTRY)&_ZN6S106C73v55Ev,
  (VTBL_ENTRY)&_ZN6S106C73v56Ev,
  (VTBL_ENTRY)&_ZN6S106C73v57Ev,
  (VTBL_ENTRY)&_ZN6S106C73v58Ev,
  (VTBL_ENTRY)&_ZN6S106C73v59Ev,
  (VTBL_ENTRY)&_ZN6S106C73v60Ev,
  (VTBL_ENTRY)&_ZN6S106C73v61Ev,
  (VTBL_ENTRY)&_ZN6S106C73v62Ev,
  (VTBL_ENTRY)&_ZN6S106C73v63Ev,
  (VTBL_ENTRY)&_ZN6S106C73v64Ev,
  (VTBL_ENTRY)&_ZN6S106C73v65Ev,
  (VTBL_ENTRY)&_ZN6S106C73v66Ev,
  (VTBL_ENTRY)&_ZN6S106C73v67Ev,
  (VTBL_ENTRY)&_ZN6S106C73v68Ev,
  (VTBL_ENTRY)&_ZN6S106C73v69Ev,
  (VTBL_ENTRY)&_ZN6S106C63v70Ev,
  (VTBL_ENTRY)&_ZN6S106C63v71Ev,
  (VTBL_ENTRY)&_ZN6S106C53v72Ev,
  (VTBL_ENTRY)&_ZN6S106C53v73Ev,
  (VTBL_ENTRY)&_ZN6S106C53v74Ev,
  (VTBL_ENTRY)&_ZN6S106C53v75Ev,
  (VTBL_ENTRY)&_ZN6S106C53v76Ev,
  (VTBL_ENTRY)&_ZN6S106C53v77Ev,
  (VTBL_ENTRY)&_ZN6S106C53v78Ev,
  (VTBL_ENTRY)&_ZN6S106C53v79Ev,
  (VTBL_ENTRY)&_ZN6S106C53v80Ev,
  (VTBL_ENTRY)&_ZN6S106C53v81Ev,
  (VTBL_ENTRY)&_ZN6S106C53v82Ev,
  (VTBL_ENTRY)&_ZN6S106C53v83Ev,
  (VTBL_ENTRY)&_ZN6S106C53v84Ev,
  (VTBL_ENTRY)&_ZN6S106C53v85Ev,
  (VTBL_ENTRY)&_ZN6S106C53v86Ev,
  (VTBL_ENTRY)&_ZN6S106C53v87Ev,
  (VTBL_ENTRY)&_ZN6S106C53v88Ev,
  (VTBL_ENTRY)&_ZN6S106C53v89Ev,
  (VTBL_ENTRY)&_ZN6S106C53v90Ev,
  (VTBL_ENTRY)&_ZN6S106C53v91Ev,
  (VTBL_ENTRY)&_ZN6S106C53v92Ev,
  (VTBL_ENTRY)&_ZN6S106C53v93Ev,
  (VTBL_ENTRY)&_ZN6S106C53v94Ev,
  (VTBL_ENTRY)&_ZN6S106C53v95Ev,
  (VTBL_ENTRY)&_ZN6S106C53v96Ev,
  (VTBL_ENTRY)&_ZN6S106C53v97Ev,
  (VTBL_ENTRY)&_ZN6S106C53v98Ev,
  (VTBL_ENTRY)&_ZN6S106C53v99Ev,
  (VTBL_ENTRY)&_ZN6S106C54v100Ev,
  (VTBL_ENTRY)&_ZN6S106C54v101Ev,
  (VTBL_ENTRY)&_ZN6S106C54v102Ev,
  (VTBL_ENTRY)&_ZN6S106C54v103Ev,
  (VTBL_ENTRY)&_ZN6S106C54v104Ev,
  (VTBL_ENTRY)&_ZN6S106C54v105Ev,
  (VTBL_ENTRY)&_ZN6S106C54v106Ev,
  (VTBL_ENTRY)&_ZN6S106C54v107Ev,
  (VTBL_ENTRY)&_ZN6S106C54v108Ev,
  (VTBL_ENTRY)&_ZN6S106C54v109Ev,
  (VTBL_ENTRY)&_ZN6S106C54v110Ev,
  (VTBL_ENTRY)&_ZN6S106C54v111Ev,
  (VTBL_ENTRY)&_ZN6S106C54v112Ev,
  (VTBL_ENTRY)&_ZN6S106C54v113Ev,
  (VTBL_ENTRY)&_ZN6S106C54v114Ev,
  (VTBL_ENTRY)&_ZN6S106C54v115Ev,
  (VTBL_ENTRY)&_ZN6S106C54v116Ev,
  (VTBL_ENTRY)&_ZN6S106C54v117Ev,
  (VTBL_ENTRY)&_ZN6S106C54v118Ev,
  (VTBL_ENTRY)&_ZN6S106C54v119Ev,
  (VTBL_ENTRY)&_ZN6S106C54v120Ev,
  (VTBL_ENTRY)&_ZN6S106C54v121Ev,
  (VTBL_ENTRY)&_ZN6S106C54v122Ev,
  (VTBL_ENTRY)&_ZN6S106C54v123Ev,
  (VTBL_ENTRY)&_ZN6S106C54v124Ev,
  (VTBL_ENTRY)&_ZN6S106C54v125Ev,
  (VTBL_ENTRY)&_ZN6S106C54v126Ev,
  (VTBL_ENTRY)&_ZN6S106C54v127Ev,
  (VTBL_ENTRY)&_ZN6S106C54v128Ev,
  (VTBL_ENTRY)&_ZN6S106C54v129Ev,
  (VTBL_ENTRY)&_ZN6S106C54v130Ev,
  (VTBL_ENTRY)&_ZN6S106C54v131Ev,
  (VTBL_ENTRY)&_ZN6S106C54v132Ev,
  (VTBL_ENTRY)&_ZN6S106C54v133Ev,
  (VTBL_ENTRY)&_ZN6S106C54v134Ev,
  (VTBL_ENTRY)&_ZN6S106C54v135Ev,
  (VTBL_ENTRY)&_ZN6S106C54v136Ev,
  (VTBL_ENTRY)&_ZN6S106C54v137Ev,
  (VTBL_ENTRY)&_ZN6S106C54v138Ev,
  (VTBL_ENTRY)&_ZN6S106C54v139Ev,
  (VTBL_ENTRY)&_ZN6S106C54v140Ev,
  (VTBL_ENTRY)&_ZN6S106C54v141Ev,
  (VTBL_ENTRY)&_ZN6S106C54v142Ev,
  (VTBL_ENTRY)&_ZN6S106C54v143Ev,
  (VTBL_ENTRY)&_ZN6S106C54v144Ev,
  (VTBL_ENTRY)&_ZN6S106C54v145Ev,
  (VTBL_ENTRY)&_ZN6S106C54v146Ev,
  (VTBL_ENTRY)&_ZN6S106C54v147Ev,
  (VTBL_ENTRY)&_ZN6S106C44v148Ev,
  (VTBL_ENTRY)&_ZN6S106C44v149Ev,
  (VTBL_ENTRY)&_ZN6S106C44v150Ev,
  (VTBL_ENTRY)&_ZN6S106C44v151Ev,
  (VTBL_ENTRY)&_ZN6S106C44v152Ev,
  (VTBL_ENTRY)&_ZN6S106C44v153Ev,
  (VTBL_ENTRY)&_ZN6S106C44v154Ev,
  (VTBL_ENTRY)&_ZN6S106C44v155Ev,
  (VTBL_ENTRY)&_ZN6S106C44v156Ev,
  (VTBL_ENTRY)&_ZN6S106C44v157Ev,
  (VTBL_ENTRY)&_ZN6S106C44v158Ev,
  (VTBL_ENTRY)&_ZN6S106C44v159Ev,
  (VTBL_ENTRY)&_ZN6S106C44v160Ev,
  (VTBL_ENTRY)&_ZN6S106C44v161Ev,
  (VTBL_ENTRY)&_ZN6S106C44v162Ev,
  (VTBL_ENTRY)&_ZN6S106C44v163Ev,
  (VTBL_ENTRY)&_ZN6S106C44v164Ev,
  (VTBL_ENTRY)&_ZN6S106C44v165Ev,
  (VTBL_ENTRY)&_ZN6S106C44v166Ev,
  (VTBL_ENTRY)&_ZN6S106C44v167Ev,
  (VTBL_ENTRY)&_ZN6S106C44v168Ev,
  (VTBL_ENTRY)&_ZN6S106C44v169Ev,
  (VTBL_ENTRY)&_ZN6S106C44v170Ev,
  (VTBL_ENTRY)&_ZN6S106C44v171Ev,
  (VTBL_ENTRY)&_ZN6S106C44v172Ev,
  (VTBL_ENTRY)&_ZN6S106C44v173Ev,
  (VTBL_ENTRY)&_ZN6S106C44v174Ev,
  (VTBL_ENTRY)&_ZN6S106C44v175Ev,
  (VTBL_ENTRY)&_ZN6S106C44v176Ev,
  (VTBL_ENTRY)&_ZN6S106C44v177Ev,
  (VTBL_ENTRY)&_ZN6S106C44v178Ev,
  (VTBL_ENTRY)&_ZN6S106C44v179Ev,
  (VTBL_ENTRY)&_ZN6S106C44v180Ev,
  (VTBL_ENTRY)&_ZN6S106C44v181Ev,
  (VTBL_ENTRY)&_ZN6S106C44v182Ev,
  (VTBL_ENTRY)&_ZN6S106C44v183Ev,
  (VTBL_ENTRY)&_ZN6S106C44v184Ev,
  (VTBL_ENTRY)&_ZN6S106C44v185Ev,
  (VTBL_ENTRY)&_ZN6S106C44v186Ev,
  (VTBL_ENTRY)&_ZN6S106C34v187Ev,
  (VTBL_ENTRY)&_ZN6S106C34v188Ev,
  (VTBL_ENTRY)&_ZN6S106C34v189Ev,
  (VTBL_ENTRY)&_ZN6S106C34v190Ev,
  (VTBL_ENTRY)&_ZN6S106C34v191Ev,
  (VTBL_ENTRY)&_ZN6S106C34v192Ev,
  (VTBL_ENTRY)&_ZN6S106C34v193Ev,
  (VTBL_ENTRY)&_ZN6S106C34v194Ev,
  (VTBL_ENTRY)&_ZN6S106C34v195Ev,
  (VTBL_ENTRY)&_ZN6S106C34v196Ev,
  (VTBL_ENTRY)&_ZN6S106C34v197Ev,
  (VTBL_ENTRY)&_ZN6S106C34v198Ev,
  (VTBL_ENTRY)&_ZN6S106C34v199Ev,
  (VTBL_ENTRY)&_ZN6S106C34v200Ev,
  (VTBL_ENTRY)&_ZN6S106C34v201Ev,
  (VTBL_ENTRY)&_ZN6S106C34v202Ev,
  (VTBL_ENTRY)&_ZN6S106C34v203Ev,
  (VTBL_ENTRY)&_ZN6S106C34v204Ev,
  (VTBL_ENTRY)&_ZN6S106C34v205Ev,
  (VTBL_ENTRY)&_ZN6S106C34v206Ev,
  (VTBL_ENTRY)&_ZN6S106C34v207Ev,
  (VTBL_ENTRY)&_ZN6S106C34v208Ev,
  (VTBL_ENTRY)&_ZN6S106C34v209Ev,
  (VTBL_ENTRY)&_ZN6S106C24v210Ev,
  (VTBL_ENTRY)&_ZN6S106C24v211Ev,
  (VTBL_ENTRY)&_ZN6S106C24v212Ev,
  (VTBL_ENTRY)&_ZN6S106C24v213Ev,
  (VTBL_ENTRY)&_ZN6S106C24v214Ev,
  (VTBL_ENTRY)&_ZN6S106C24v215Ev,
  (VTBL_ENTRY)&_ZN6S106C24v216Ev,
  (VTBL_ENTRY)&_ZN6S106C24v217Ev,
  (VTBL_ENTRY)&_ZN6S106C12v1Ev,
  (VTBL_ENTRY)&_ZN6S106C12v2Ev,
  (VTBL_ENTRY)&_ZN6S106C12v3Ev,
  (VTBL_ENTRY)&_ZN6S106C12v4Ev,
  (VTBL_ENTRY)&_ZN6S106C12v5Ev,
};
extern VTBL_ENTRY _ZTI6S106C1[];
extern  VTBL_ENTRY _ZTV6S106C1[];
Class_Descriptor cd_S106C1 = {  "S106C1", // class name
  bases_S106C1, 6,
  &(vtc_S106C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1128,784), // object size
  NSPAIRA(_ZTI6S106C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S106C1),221, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C7  {
  int s101c7f0;
  __tsi64 s101c7f1;
  void *s101c7f2[4];
  int s101c7f3[2];
  void *s101c7f4;
  ::S85C27_nt s101c7f5;
  void *s101c7f6[2];
  virtual  ~S101C7(); // _ZN6S101C7D1Ev
  virtual void  v5(); // _ZN6S101C72v5Ev
  virtual void  v6(); // _ZN6S101C72v6Ev
  virtual void  v7(); // _ZN6S101C72v7Ev
  virtual void  v8(); // _ZN6S101C72v8Ev
  virtual void  v9(); // _ZN6S101C72v9Ev
  virtual void  v10(); // _ZN6S101C73v10Ev
  virtual void  v11(); // _ZN6S101C73v11Ev
  virtual void  v12(); // _ZN6S101C73v12Ev
  virtual void  v13(); // _ZN6S101C73v13Ev
  virtual void  v14(); // _ZN6S101C73v14Ev
  virtual void  v15(); // _ZN6S101C73v15Ev
  virtual void  v16(); // _ZN6S101C73v16Ev
  virtual void  v17(); // _ZN6S101C73v17Ev
  virtual void  v18(); // _ZN6S101C73v18Ev
  virtual void  v19(); // _ZN6S101C73v19Ev
  virtual void  v20(); // _ZN6S101C73v20Ev
  virtual void  v21(); // _ZN6S101C73v21Ev
  virtual void  v22(); // _ZN6S101C73v22Ev
  virtual void  v23(); // _ZN6S101C73v23Ev
  virtual void  v24(); // _ZN6S101C73v24Ev
  virtual void  v25(); // _ZN6S101C73v25Ev
  virtual void  v26(); // _ZN6S101C73v26Ev
  virtual void  v27(); // _ZN6S101C73v27Ev
  virtual void  v28(); // _ZN6S101C73v28Ev
  virtual void  v29(); // _ZN6S101C73v29Ev
  virtual void  v30(); // _ZN6S101C73v30Ev
  virtual void  v31(); // _ZN6S101C73v31Ev
  virtual void  v32(); // _ZN6S101C73v32Ev
  virtual void  v33(); // _ZN6S101C73v33Ev
  virtual void  v34(); // _ZN6S101C73v34Ev
  virtual void  v35(); // _ZN6S101C73v35Ev
  virtual void  v36(); // _ZN6S101C73v36Ev
  virtual void  v37(); // _ZN6S101C73v37Ev
  virtual void  v38(); // _ZN6S101C73v38Ev
  virtual void  v39(); // _ZN6S101C73v39Ev
  virtual void  v40(); // _ZN6S101C73v40Ev
  virtual void  v41(); // _ZN6S101C73v41Ev
  virtual void  v42(); // _ZN6S101C73v42Ev
  virtual void  v43(); // _ZN6S101C73v43Ev
  virtual void  v44(); // _ZN6S101C73v44Ev
  virtual void  v45(); // _ZN6S101C73v45Ev
  virtual void  v46(); // _ZN6S101C73v46Ev
  virtual void  v47(); // _ZN6S101C73v47Ev
  virtual void  v48(); // _ZN6S101C73v48Ev
  virtual void  v49(); // _ZN6S101C73v49Ev
  virtual void  v50(); // _ZN6S101C73v50Ev
  virtual void  v51(); // _ZN6S101C73v51Ev
  virtual void  v52(); // _ZN6S101C73v52Ev
  virtual void  v53(); // _ZN6S101C73v53Ev
  virtual void  v54(); // _ZN6S101C73v54Ev
  virtual void  v55(); // _ZN6S101C73v55Ev
  virtual void  v56(); // _ZN6S101C73v56Ev
  virtual void  v57(); // _ZN6S101C73v57Ev
  virtual void  v58(); // _ZN6S101C73v58Ev
  virtual void  v59(); // _ZN6S101C73v59Ev
  virtual void  v60(); // _ZN6S101C73v60Ev
  virtual void  v61(); // _ZN6S101C73v61Ev
  virtual void  v62(); // _ZN6S101C73v62Ev
  virtual void  v63(); // _ZN6S101C73v63Ev
  virtual void  v64(); // _ZN6S101C73v64Ev
  virtual void  v65(); // _ZN6S101C73v65Ev
  virtual void  v66(); // _ZN6S101C73v66Ev
  virtual void  v67(); // _ZN6S101C73v67Ev
  virtual void  v68(); // _ZN6S101C73v68Ev
  S101C7(); // tgen
};
//SIG(-1 S101C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S101C7 ::~S101C7(){ note_dtor("S101C7", this);}
void  S101C7 ::v5(){vfunc_called(this, "_ZN6S101C72v5Ev");}
void  S101C7 ::v6(){vfunc_called(this, "_ZN6S101C72v6Ev");}
void  S101C7 ::v7(){vfunc_called(this, "_ZN6S101C72v7Ev");}
void  S101C7 ::v8(){vfunc_called(this, "_ZN6S101C72v8Ev");}
void  S101C7 ::v9(){vfunc_called(this, "_ZN6S101C72v9Ev");}
void  S101C7 ::v10(){vfunc_called(this, "_ZN6S101C73v10Ev");}
void  S101C7 ::v11(){vfunc_called(this, "_ZN6S101C73v11Ev");}
void  S101C7 ::v12(){vfunc_called(this, "_ZN6S101C73v12Ev");}
void  S101C7 ::v13(){vfunc_called(this, "_ZN6S101C73v13Ev");}
void  S101C7 ::v14(){vfunc_called(this, "_ZN6S101C73v14Ev");}
void  S101C7 ::v15(){vfunc_called(this, "_ZN6S101C73v15Ev");}
void  S101C7 ::v16(){vfunc_called(this, "_ZN6S101C73v16Ev");}
void  S101C7 ::v17(){vfunc_called(this, "_ZN6S101C73v17Ev");}
void  S101C7 ::v18(){vfunc_called(this, "_ZN6S101C73v18Ev");}
void  S101C7 ::v19(){vfunc_called(this, "_ZN6S101C73v19Ev");}
void  S101C7 ::v20(){vfunc_called(this, "_ZN6S101C73v20Ev");}
void  S101C7 ::v21(){vfunc_called(this, "_ZN6S101C73v21Ev");}
void  S101C7 ::v22(){vfunc_called(this, "_ZN6S101C73v22Ev");}
void  S101C7 ::v23(){vfunc_called(this, "_ZN6S101C73v23Ev");}
void  S101C7 ::v24(){vfunc_called(this, "_ZN6S101C73v24Ev");}
void  S101C7 ::v25(){vfunc_called(this, "_ZN6S101C73v25Ev");}
void  S101C7 ::v26(){vfunc_called(this, "_ZN6S101C73v26Ev");}
void  S101C7 ::v27(){vfunc_called(this, "_ZN6S101C73v27Ev");}
void  S101C7 ::v28(){vfunc_called(this, "_ZN6S101C73v28Ev");}
void  S101C7 ::v29(){vfunc_called(this, "_ZN6S101C73v29Ev");}
void  S101C7 ::v30(){vfunc_called(this, "_ZN6S101C73v30Ev");}
void  S101C7 ::v31(){vfunc_called(this, "_ZN6S101C73v31Ev");}
void  S101C7 ::v32(){vfunc_called(this, "_ZN6S101C73v32Ev");}
void  S101C7 ::v33(){vfunc_called(this, "_ZN6S101C73v33Ev");}
void  S101C7 ::v34(){vfunc_called(this, "_ZN6S101C73v34Ev");}
void  S101C7 ::v35(){vfunc_called(this, "_ZN6S101C73v35Ev");}
void  S101C7 ::v36(){vfunc_called(this, "_ZN6S101C73v36Ev");}
void  S101C7 ::v37(){vfunc_called(this, "_ZN6S101C73v37Ev");}
void  S101C7 ::v38(){vfunc_called(this, "_ZN6S101C73v38Ev");}
void  S101C7 ::v39(){vfunc_called(this, "_ZN6S101C73v39Ev");}
void  S101C7 ::v40(){vfunc_called(this, "_ZN6S101C73v40Ev");}
void  S101C7 ::v41(){vfunc_called(this, "_ZN6S101C73v41Ev");}
void  S101C7 ::v42(){vfunc_called(this, "_ZN6S101C73v42Ev");}
void  S101C7 ::v43(){vfunc_called(this, "_ZN6S101C73v43Ev");}
void  S101C7 ::v44(){vfunc_called(this, "_ZN6S101C73v44Ev");}
void  S101C7 ::v45(){vfunc_called(this, "_ZN6S101C73v45Ev");}
void  S101C7 ::v46(){vfunc_called(this, "_ZN6S101C73v46Ev");}
void  S101C7 ::v47(){vfunc_called(this, "_ZN6S101C73v47Ev");}
void  S101C7 ::v48(){vfunc_called(this, "_ZN6S101C73v48Ev");}
void  S101C7 ::v49(){vfunc_called(this, "_ZN6S101C73v49Ev");}
void  S101C7 ::v50(){vfunc_called(this, "_ZN6S101C73v50Ev");}
void  S101C7 ::v51(){vfunc_called(this, "_ZN6S101C73v51Ev");}
void  S101C7 ::v52(){vfunc_called(this, "_ZN6S101C73v52Ev");}
void  S101C7 ::v53(){vfunc_called(this, "_ZN6S101C73v53Ev");}
void  S101C7 ::v54(){vfunc_called(this, "_ZN6S101C73v54Ev");}
void  S101C7 ::v55(){vfunc_called(this, "_ZN6S101C73v55Ev");}
void  S101C7 ::v56(){vfunc_called(this, "_ZN6S101C73v56Ev");}
void  S101C7 ::v57(){vfunc_called(this, "_ZN6S101C73v57Ev");}
void  S101C7 ::v58(){vfunc_called(this, "_ZN6S101C73v58Ev");}
void  S101C7 ::v59(){vfunc_called(this, "_ZN6S101C73v59Ev");}
void  S101C7 ::v60(){vfunc_called(this, "_ZN6S101C73v60Ev");}
void  S101C7 ::v61(){vfunc_called(this, "_ZN6S101C73v61Ev");}
void  S101C7 ::v62(){vfunc_called(this, "_ZN6S101C73v62Ev");}
void  S101C7 ::v63(){vfunc_called(this, "_ZN6S101C73v63Ev");}
void  S101C7 ::v64(){vfunc_called(this, "_ZN6S101C73v64Ev");}
void  S101C7 ::v65(){vfunc_called(this, "_ZN6S101C73v65Ev");}
void  S101C7 ::v66(){vfunc_called(this, "_ZN6S101C73v66Ev");}
void  S101C7 ::v67(){vfunc_called(this, "_ZN6S101C73v67Ev");}
void  S101C7 ::v68(){vfunc_called(this, "_ZN6S101C73v68Ev");}
S101C7 ::S101C7(){ note_ctor("S101C7", this);} // tgen

static void Test_S101C7()
{
  extern Class_Descriptor cd_S101C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S101C7, buf);
    S101C7 *dp, &lv = *(dp=new (buf) S101C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S101C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C7)");
    check_field_offset(lv, s101c7f0, ABISELECT(8,4), "S101C7.s101c7f0");
    check_field_offset(lv, s101c7f1, ABISELECT(16,8), "S101C7.s101c7f1");
    check_field_offset(lv, s101c7f2, ABISELECT(24,16), "S101C7.s101c7f2");
    check_field_offset(lv, s101c7f3, ABISELECT(56,32), "S101C7.s101c7f3");
    check_field_offset(lv, s101c7f4, ABISELECT(64,40), "S101C7.s101c7f4");
    check_field_offset(lv, s101c7f5, ABISELECT(72,44), "S101C7.s101c7f5");
    check_field_offset(lv, s101c7f6, ABISELECT(80,52), "S101C7.s101c7f6");
    test_class_info(&lv, &cd_S101C7);
    dp->~S101C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C7(Test_S101C7, "S101C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S101C7C1Ev();
extern void _ZN6S101C7D1Ev();
Name_Map name_map_S101C7[] = {
  NSPAIR(_ZN6S101C7C1Ev),
  NSPAIR(_ZN6S101C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S101C7[];
extern void _ZN6S101C7D1Ev();
extern void _ZN6S101C7D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
static  VTBL_ENTRY vtc_S101C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C7[0]),
  (VTBL_ENTRY)&_ZN6S101C7D1Ev,
  (VTBL_ENTRY)&_ZN6S101C7D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
};
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
Class_Descriptor cd_S101C7 = {  "S101C7", // class name
  0,0,//no base classes
  &(vtc_S101C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S101C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S101C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C6  : S101C7 {
  virtual  ~S101C6(); // _ZN6S101C6D1Ev
  virtual void  v69(); // _ZN6S101C63v69Ev
  virtual void  v70(); // _ZN6S101C63v70Ev
  S101C6(); // tgen
};
//SIG(-1 S101C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S101C6 ::~S101C6(){ note_dtor("S101C6", this);}
void  S101C6 ::v69(){vfunc_called(this, "_ZN6S101C63v69Ev");}
void  S101C6 ::v70(){vfunc_called(this, "_ZN6S101C63v70Ev");}
S101C6 ::S101C6(){ note_ctor("S101C6", this);} // tgen

static void Test_S101C6()
{
  extern Class_Descriptor cd_S101C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S101C6, buf);
    S101C6 *dp, &lv = *(dp=new (buf) S101C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S101C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C6)");
    check_base_class_offset(lv, (S101C7*), 0, "S101C6");
    test_class_info(&lv, &cd_S101C6);
    dp->~S101C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C6(Test_S101C6, "S101C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S101C6C1Ev();
extern void _ZN6S101C6D1Ev();
Name_Map name_map_S101C6[] = {
  NSPAIR(_ZN6S101C6C1Ev),
  NSPAIR(_ZN6S101C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S101C7;
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
static Base_Class bases_S101C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S101C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S101C6[];
extern void _ZN6S101C6D1Ev();
extern void _ZN6S101C6D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
extern void _ZN6S101C63v69Ev();
extern void _ZN6S101C63v70Ev();
static  VTBL_ENTRY vtc_S101C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C6[0]),
  (VTBL_ENTRY)&_ZN6S101C6D1Ev,
  (VTBL_ENTRY)&_ZN6S101C6D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
  (VTBL_ENTRY)&_ZN6S101C63v69Ev,
  (VTBL_ENTRY)&_ZN6S101C63v70Ev,
};
extern VTBL_ENTRY _ZTI6S101C6[];
extern  VTBL_ENTRY _ZTV6S101C6[];
Class_Descriptor cd_S101C6 = {  "S101C6", // class name
  bases_S101C6, 1,
  &(vtc_S101C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S101C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S101C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C5  : S101C6 {
  ::S80C9_nt s101c5f0;
  int s101c5f1;
  unsigned int s101c5f2:1;
  unsigned int s101c5f3:1;
  unsigned int s101c5f4:1;
  unsigned int s101c5f5:1;
  ::S85C35 s101c5f6;
  ::S85C22_nt s101c5f7;
  void *s101c5f8;
  ::S80C31 s101c5f9;
  ::S80C31 s101c5f10;
  ::S80C29 s101c5f11;
  ::S80C19 s101c5f12;
  char s101c5f13;
  int s101c5f14;
  void *s101c5f15;
  ::S85C27_nt s101c5f16;
  ::S85C27_nt s101c5f17;
  ::S85C27_nt s101c5f18;
  ::S85C27_nt s101c5f19;
  ::S85C27_nt s101c5f20;
  ::S85C27_nt s101c5f21;
  ::S80C21_nt s101c5f22;
  ::S80C21_nt s101c5f23;
  ::S80C21_nt s101c5f24;
  ::S80C21_nt s101c5f25;
  ::S80C21_nt s101c5f26;
  ::S80C21_nt s101c5f27;
  ::S80C21_nt s101c5f28;
  ::S80C21_nt s101c5f29;
  ::S80C21_nt s101c5f30;
  ::S80C21_nt s101c5f31;
  virtual  ~S101C5(); // _ZN6S101C5D1Ev
  virtual void  v71(); // _ZN6S101C53v71Ev
  virtual void  v72(); // _ZN6S101C53v72Ev
  virtual void  v73(); // _ZN6S101C53v73Ev
  virtual void  v74(); // _ZN6S101C53v74Ev
  virtual void  v75(); // _ZN6S101C53v75Ev
  virtual void  v76(); // _ZN6S101C53v76Ev
  virtual void  v77(); // _ZN6S101C53v77Ev
  virtual void  v78(); // _ZN6S101C53v78Ev
  virtual void  v79(); // _ZN6S101C53v79Ev
  virtual void  v80(); // _ZN6S101C53v80Ev
  virtual void  v81(); // _ZN6S101C53v81Ev
  virtual void  v82(); // _ZN6S101C53v82Ev
  virtual void  v83(); // _ZN6S101C53v83Ev
  virtual void  v84(); // _ZN6S101C53v84Ev
  virtual void  v85(); // _ZN6S101C53v85Ev
  virtual void  v86(); // _ZN6S101C53v86Ev
  virtual void  v87(); // _ZN6S101C53v87Ev
  virtual void  v88(); // _ZN6S101C53v88Ev
  virtual void  v89(); // _ZN6S101C53v89Ev
  virtual void  v90(); // _ZN6S101C53v90Ev
  virtual void  v91(); // _ZN6S101C53v91Ev
  virtual void  v92(); // _ZN6S101C53v92Ev
  virtual void  v93(); // _ZN6S101C53v93Ev
  virtual void  v94(); // _ZN6S101C53v94Ev
  virtual void  v95(); // _ZN6S101C53v95Ev
  virtual void  v96(); // _ZN6S101C53v96Ev
  virtual void  v97(); // _ZN6S101C53v97Ev
  virtual void  v98(); // _ZN6S101C53v98Ev
  virtual void  v99(); // _ZN6S101C53v99Ev
  virtual void  v100(); // _ZN6S101C54v100Ev
  virtual void  v101(); // _ZN6S101C54v101Ev
  virtual void  v102(); // _ZN6S101C54v102Ev
  virtual void  v103(); // _ZN6S101C54v103Ev
  virtual void  v104(); // _ZN6S101C54v104Ev
  virtual void  v105(); // _ZN6S101C54v105Ev
  virtual void  v106(); // _ZN6S101C54v106Ev
  virtual void  v107(); // _ZN6S101C54v107Ev
  virtual void  v108(); // _ZN6S101C54v108Ev
  virtual void  v109(); // _ZN6S101C54v109Ev
  virtual void  v110(); // _ZN6S101C54v110Ev
  virtual void  v111(); // _ZN6S101C54v111Ev
  virtual void  v112(); // _ZN6S101C54v112Ev
  virtual void  v113(); // _ZN6S101C54v113Ev
  virtual void  v114(); // _ZN6S101C54v114Ev
  virtual void  v115(); // _ZN6S101C54v115Ev
  virtual void  v116(); // _ZN6S101C54v116Ev
  virtual void  v117(); // _ZN6S101C54v117Ev
  virtual void  v118(); // _ZN6S101C54v118Ev
  virtual void  v119(); // _ZN6S101C54v119Ev
  virtual void  v120(); // _ZN6S101C54v120Ev
  virtual void  v121(); // _ZN6S101C54v121Ev
  virtual void  v122(); // _ZN6S101C54v122Ev
  virtual void  v123(); // _ZN6S101C54v123Ev
  virtual void  v124(); // _ZN6S101C54v124Ev
  virtual void  v125(); // _ZN6S101C54v125Ev
  virtual void  v126(); // _ZN6S101C54v126Ev
  virtual void  v127(); // _ZN6S101C54v127Ev
  virtual void  v128(); // _ZN6S101C54v128Ev
  virtual void  v129(); // _ZN6S101C54v129Ev
  virtual void  v130(); // _ZN6S101C54v130Ev
  virtual void  v131(); // _ZN6S101C54v131Ev
  virtual void  v132(); // _ZN6S101C54v132Ev
  virtual void  v133(); // _ZN6S101C54v133Ev
  virtual void  v134(); // _ZN6S101C54v134Ev
  virtual void  v135(); // _ZN6S101C54v135Ev
  virtual void  v136(); // _ZN6S101C54v136Ev
  virtual void  v137(); // _ZN6S101C54v137Ev
  virtual void  v138(); // _ZN6S101C54v138Ev
  virtual void  v139(); // _ZN6S101C54v139Ev
  virtual void  v140(); // _ZN6S101C54v140Ev
  virtual void  v141(); // _ZN6S101C54v141Ev
  virtual void  v142(); // _ZN6S101C54v142Ev
  virtual void  v143(); // _ZN6S101C54v143Ev
  virtual void  v144(); // _ZN6S101C54v144Ev
  virtual void  v145(); // _ZN6S101C54v145Ev
  virtual void  v146(); // _ZN6S101C54v146Ev
  S101C5(); // tgen
};
//SIG(-1 S101C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S101C5 ::~S101C5(){ note_dtor("S101C5", this);}
void  S101C5 ::v71(){vfunc_called(this, "_ZN6S101C53v71Ev");}
void  S101C5 ::v72(){vfunc_called(this, "_ZN6S101C53v72Ev");}
void  S101C5 ::v73(){vfunc_called(this, "_ZN6S101C53v73Ev");}
void  S101C5 ::v74(){vfunc_called(this, "_ZN6S101C53v74Ev");}
void  S101C5 ::v75(){vfunc_called(this, "_ZN6S101C53v75Ev");}
void  S101C5 ::v76(){vfunc_called(this, "_ZN6S101C53v76Ev");}
void  S101C5 ::v77(){vfunc_called(this, "_ZN6S101C53v77Ev");}
void  S101C5 ::v78(){vfunc_called(this, "_ZN6S101C53v78Ev");}
void  S101C5 ::v79(){vfunc_called(this, "_ZN6S101C53v79Ev");}
void  S101C5 ::v80(){vfunc_called(this, "_ZN6S101C53v80Ev");}
void  S101C5 ::v81(){vfunc_called(this, "_ZN6S101C53v81Ev");}
void  S101C5 ::v82(){vfunc_called(this, "_ZN6S101C53v82Ev");}
void  S101C5 ::v83(){vfunc_called(this, "_ZN6S101C53v83Ev");}
void  S101C5 ::v84(){vfunc_called(this, "_ZN6S101C53v84Ev");}
void  S101C5 ::v85(){vfunc_called(this, "_ZN6S101C53v85Ev");}
void  S101C5 ::v86(){vfunc_called(this, "_ZN6S101C53v86Ev");}
void  S101C5 ::v87(){vfunc_called(this, "_ZN6S101C53v87Ev");}
void  S101C5 ::v88(){vfunc_called(this, "_ZN6S101C53v88Ev");}
void  S101C5 ::v89(){vfunc_called(this, "_ZN6S101C53v89Ev");}
void  S101C5 ::v90(){vfunc_called(this, "_ZN6S101C53v90Ev");}
void  S101C5 ::v91(){vfunc_called(this, "_ZN6S101C53v91Ev");}
void  S101C5 ::v92(){vfunc_called(this, "_ZN6S101C53v92Ev");}
void  S101C5 ::v93(){vfunc_called(this, "_ZN6S101C53v93Ev");}
void  S101C5 ::v94(){vfunc_called(this, "_ZN6S101C53v94Ev");}
void  S101C5 ::v95(){vfunc_called(this, "_ZN6S101C53v95Ev");}
void  S101C5 ::v96(){vfunc_called(this, "_ZN6S101C53v96Ev");}
void  S101C5 ::v97(){vfunc_called(this, "_ZN6S101C53v97Ev");}
void  S101C5 ::v98(){vfunc_called(this, "_ZN6S101C53v98Ev");}
void  S101C5 ::v99(){vfunc_called(this, "_ZN6S101C53v99Ev");}
void  S101C5 ::v100(){vfunc_called(this, "_ZN6S101C54v100Ev");}
void  S101C5 ::v101(){vfunc_called(this, "_ZN6S101C54v101Ev");}
void  S101C5 ::v102(){vfunc_called(this, "_ZN6S101C54v102Ev");}
void  S101C5 ::v103(){vfunc_called(this, "_ZN6S101C54v103Ev");}
void  S101C5 ::v104(){vfunc_called(this, "_ZN6S101C54v104Ev");}
void  S101C5 ::v105(){vfunc_called(this, "_ZN6S101C54v105Ev");}
void  S101C5 ::v106(){vfunc_called(this, "_ZN6S101C54v106Ev");}
void  S101C5 ::v107(){vfunc_called(this, "_ZN6S101C54v107Ev");}
void  S101C5 ::v108(){vfunc_called(this, "_ZN6S101C54v108Ev");}
void  S101C5 ::v109(){vfunc_called(this, "_ZN6S101C54v109Ev");}
void  S101C5 ::v110(){vfunc_called(this, "_ZN6S101C54v110Ev");}
void  S101C5 ::v111(){vfunc_called(this, "_ZN6S101C54v111Ev");}
void  S101C5 ::v112(){vfunc_called(this, "_ZN6S101C54v112Ev");}
void  S101C5 ::v113(){vfunc_called(this, "_ZN6S101C54v113Ev");}
void  S101C5 ::v114(){vfunc_called(this, "_ZN6S101C54v114Ev");}
void  S101C5 ::v115(){vfunc_called(this, "_ZN6S101C54v115Ev");}
void  S101C5 ::v116(){vfunc_called(this, "_ZN6S101C54v116Ev");}
void  S101C5 ::v117(){vfunc_called(this, "_ZN6S101C54v117Ev");}
void  S101C5 ::v118(){vfunc_called(this, "_ZN6S101C54v118Ev");}
void  S101C5 ::v119(){vfunc_called(this, "_ZN6S101C54v119Ev");}
void  S101C5 ::v120(){vfunc_called(this, "_ZN6S101C54v120Ev");}
void  S101C5 ::v121(){vfunc_called(this, "_ZN6S101C54v121Ev");}
void  S101C5 ::v122(){vfunc_called(this, "_ZN6S101C54v122Ev");}
void  S101C5 ::v123(){vfunc_called(this, "_ZN6S101C54v123Ev");}
void  S101C5 ::v124(){vfunc_called(this, "_ZN6S101C54v124Ev");}
void  S101C5 ::v125(){vfunc_called(this, "_ZN6S101C54v125Ev");}
void  S101C5 ::v126(){vfunc_called(this, "_ZN6S101C54v126Ev");}
void  S101C5 ::v127(){vfunc_called(this, "_ZN6S101C54v127Ev");}
void  S101C5 ::v128(){vfunc_called(this, "_ZN6S101C54v128Ev");}
void  S101C5 ::v129(){vfunc_called(this, "_ZN6S101C54v129Ev");}
void  S101C5 ::v130(){vfunc_called(this, "_ZN6S101C54v130Ev");}
void  S101C5 ::v131(){vfunc_called(this, "_ZN6S101C54v131Ev");}
void  S101C5 ::v132(){vfunc_called(this, "_ZN6S101C54v132Ev");}
void  S101C5 ::v133(){vfunc_called(this, "_ZN6S101C54v133Ev");}
void  S101C5 ::v134(){vfunc_called(this, "_ZN6S101C54v134Ev");}
void  S101C5 ::v135(){vfunc_called(this, "_ZN6S101C54v135Ev");}
void  S101C5 ::v136(){vfunc_called(this, "_ZN6S101C54v136Ev");}
void  S101C5 ::v137(){vfunc_called(this, "_ZN6S101C54v137Ev");}
void  S101C5 ::v138(){vfunc_called(this, "_ZN6S101C54v138Ev");}
void  S101C5 ::v139(){vfunc_called(this, "_ZN6S101C54v139Ev");}
void  S101C5 ::v140(){vfunc_called(this, "_ZN6S101C54v140Ev");}
void  S101C5 ::v141(){vfunc_called(this, "_ZN6S101C54v141Ev");}
void  S101C5 ::v142(){vfunc_called(this, "_ZN6S101C54v142Ev");}
void  S101C5 ::v143(){vfunc_called(this, "_ZN6S101C54v143Ev");}
void  S101C5 ::v144(){vfunc_called(this, "_ZN6S101C54v144Ev");}
void  S101C5 ::v145(){vfunc_called(this, "_ZN6S101C54v145Ev");}
void  S101C5 ::v146(){vfunc_called(this, "_ZN6S101C54v146Ev");}
S101C5 ::S101C5(){ note_ctor("S101C5", this);} // tgen

static void Test_S101C5()
{
  extern Class_Descriptor cd_S101C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S101C5, buf);
    S101C5 *dp, &lv = *(dp=new (buf) S101C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S101C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C5)");
    check_base_class_offset(lv, (S101C7*)(S101C6*), 0, "S101C5");
    check_base_class_offset(lv, (S101C6*), 0, "S101C5");
    check_field_offset(lv, s101c5f0, ABISELECT(96,60), "S101C5.s101c5f0");
    check_field_offset(lv, s101c5f1, ABISELECT(124,88), "S101C5.s101c5f1");
    set_bf_and_test(lv, s101c5f2, ABISELECT(128,92), 0, 1, 1, "S101C5");
    set_bf_and_test(lv, s101c5f3, ABISELECT(128,92), 1, 1, 1, "S101C5");
    set_bf_and_test(lv, s101c5f4, ABISELECT(128,92), 2, 1, 1, "S101C5");
    set_bf_and_test(lv, s101c5f5, ABISELECT(128,92), 3, 1, 1, "S101C5");
    check_field_offset(lv, s101c5f6, ABISELECT(136,96), "S101C5.s101c5f6");
    check_field_offset(lv, s101c5f7, ABISELECT(152,108), "S101C5.s101c5f7");
    check_field_offset(lv, s101c5f8, ABISELECT(168,120), "S101C5.s101c5f8");
    check_field_offset(lv, s101c5f9, ABISELECT(176,124), "S101C5.s101c5f9");
    check_field_offset(lv, s101c5f10, ABISELECT(192,136), "S101C5.s101c5f10");
    check_field_offset(lv, s101c5f11, ABISELECT(208,148), "S101C5.s101c5f11");
    check_field_offset(lv, s101c5f12, ABISELECT(224,160), "S101C5.s101c5f12");
    check_field_offset(lv, s101c5f13, ABISELECT(240,172), "S101C5.s101c5f13");
    check_field_offset(lv, s101c5f14, ABISELECT(244,176), "S101C5.s101c5f14");
    check_field_offset(lv, s101c5f15, ABISELECT(248,180), "S101C5.s101c5f15");
    check_field_offset(lv, s101c5f16, ABISELECT(256,184), "S101C5.s101c5f16");
    check_field_offset(lv, s101c5f17, ABISELECT(264,192), "S101C5.s101c5f17");
    check_field_offset(lv, s101c5f18, ABISELECT(272,200), "S101C5.s101c5f18");
    check_field_offset(lv, s101c5f19, ABISELECT(280,208), "S101C5.s101c5f19");
    check_field_offset(lv, s101c5f20, ABISELECT(288,216), "S101C5.s101c5f20");
    check_field_offset(lv, s101c5f21, ABISELECT(296,224), "S101C5.s101c5f21");
    check_field_offset(lv, s101c5f22, ABISELECT(304,232), "S101C5.s101c5f22");
    check_field_offset(lv, s101c5f23, ABISELECT(320,244), "S101C5.s101c5f23");
    check_field_offset(lv, s101c5f24, ABISELECT(336,256), "S101C5.s101c5f24");
    check_field_offset(lv, s101c5f25, ABISELECT(352,268), "S101C5.s101c5f25");
    check_field_offset(lv, s101c5f26, ABISELECT(368,280), "S101C5.s101c5f26");
    check_field_offset(lv, s101c5f27, ABISELECT(384,292), "S101C5.s101c5f27");
    check_field_offset(lv, s101c5f28, ABISELECT(400,304), "S101C5.s101c5f28");
    check_field_offset(lv, s101c5f29, ABISELECT(416,316), "S101C5.s101c5f29");
    check_field_offset(lv, s101c5f30, ABISELECT(432,328), "S101C5.s101c5f30");
    check_field_offset(lv, s101c5f31, ABISELECT(448,340), "S101C5.s101c5f31");
    test_class_info(&lv, &cd_S101C5);
    dp->~S101C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C5(Test_S101C5, "S101C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S101C5C1Ev();
extern void _ZN6S101C5D1Ev();
Name_Map name_map_S101C5[] = {
  NSPAIR(_ZN6S101C5C1Ev),
  NSPAIR(_ZN6S101C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S101C7;
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
extern Class_Descriptor cd_S101C6;
extern VTBL_ENTRY _ZTI6S101C6[];
extern  VTBL_ENTRY _ZTV6S101C6[];
static Base_Class bases_S101C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S101C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S101C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S101C5[];
extern void _ZN6S101C5D1Ev();
extern void _ZN6S101C5D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
extern void _ZN6S101C63v69Ev();
extern void _ZN6S101C63v70Ev();
extern void _ZN6S101C53v71Ev();
extern void _ZN6S101C53v72Ev();
extern void _ZN6S101C53v73Ev();
extern void _ZN6S101C53v74Ev();
extern void _ZN6S101C53v75Ev();
extern void _ZN6S101C53v76Ev();
extern void _ZN6S101C53v77Ev();
extern void _ZN6S101C53v78Ev();
extern void _ZN6S101C53v79Ev();
extern void _ZN6S101C53v80Ev();
extern void _ZN6S101C53v81Ev();
extern void _ZN6S101C53v82Ev();
extern void _ZN6S101C53v83Ev();
extern void _ZN6S101C53v84Ev();
extern void _ZN6S101C53v85Ev();
extern void _ZN6S101C53v86Ev();
extern void _ZN6S101C53v87Ev();
extern void _ZN6S101C53v88Ev();
extern void _ZN6S101C53v89Ev();
extern void _ZN6S101C53v90Ev();
extern void _ZN6S101C53v91Ev();
extern void _ZN6S101C53v92Ev();
extern void _ZN6S101C53v93Ev();
extern void _ZN6S101C53v94Ev();
extern void _ZN6S101C53v95Ev();
extern void _ZN6S101C53v96Ev();
extern void _ZN6S101C53v97Ev();
extern void _ZN6S101C53v98Ev();
extern void _ZN6S101C53v99Ev();
extern void _ZN6S101C54v100Ev();
extern void _ZN6S101C54v101Ev();
extern void _ZN6S101C54v102Ev();
extern void _ZN6S101C54v103Ev();
extern void _ZN6S101C54v104Ev();
extern void _ZN6S101C54v105Ev();
extern void _ZN6S101C54v106Ev();
extern void _ZN6S101C54v107Ev();
extern void _ZN6S101C54v108Ev();
extern void _ZN6S101C54v109Ev();
extern void _ZN6S101C54v110Ev();
extern void _ZN6S101C54v111Ev();
extern void _ZN6S101C54v112Ev();
extern void _ZN6S101C54v113Ev();
extern void _ZN6S101C54v114Ev();
extern void _ZN6S101C54v115Ev();
extern void _ZN6S101C54v116Ev();
extern void _ZN6S101C54v117Ev();
extern void _ZN6S101C54v118Ev();
extern void _ZN6S101C54v119Ev();
extern void _ZN6S101C54v120Ev();
extern void _ZN6S101C54v121Ev();
extern void _ZN6S101C54v122Ev();
extern void _ZN6S101C54v123Ev();
extern void _ZN6S101C54v124Ev();
extern void _ZN6S101C54v125Ev();
extern void _ZN6S101C54v126Ev();
extern void _ZN6S101C54v127Ev();
extern void _ZN6S101C54v128Ev();
extern void _ZN6S101C54v129Ev();
extern void _ZN6S101C54v130Ev();
extern void _ZN6S101C54v131Ev();
extern void _ZN6S101C54v132Ev();
extern void _ZN6S101C54v133Ev();
extern void _ZN6S101C54v134Ev();
extern void _ZN6S101C54v135Ev();
extern void _ZN6S101C54v136Ev();
extern void _ZN6S101C54v137Ev();
extern void _ZN6S101C54v138Ev();
extern void _ZN6S101C54v139Ev();
extern void _ZN6S101C54v140Ev();
extern void _ZN6S101C54v141Ev();
extern void _ZN6S101C54v142Ev();
extern void _ZN6S101C54v143Ev();
extern void _ZN6S101C54v144Ev();
extern void _ZN6S101C54v145Ev();
extern void _ZN6S101C54v146Ev();
static  VTBL_ENTRY vtc_S101C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C5[0]),
  (VTBL_ENTRY)&_ZN6S101C5D1Ev,
  (VTBL_ENTRY)&_ZN6S101C5D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
  (VTBL_ENTRY)&_ZN6S101C63v69Ev,
  (VTBL_ENTRY)&_ZN6S101C63v70Ev,
  (VTBL_ENTRY)&_ZN6S101C53v71Ev,
  (VTBL_ENTRY)&_ZN6S101C53v72Ev,
  (VTBL_ENTRY)&_ZN6S101C53v73Ev,
  (VTBL_ENTRY)&_ZN6S101C53v74Ev,
  (VTBL_ENTRY)&_ZN6S101C53v75Ev,
  (VTBL_ENTRY)&_ZN6S101C53v76Ev,
  (VTBL_ENTRY)&_ZN6S101C53v77Ev,
  (VTBL_ENTRY)&_ZN6S101C53v78Ev,
  (VTBL_ENTRY)&_ZN6S101C53v79Ev,
  (VTBL_ENTRY)&_ZN6S101C53v80Ev,
  (VTBL_ENTRY)&_ZN6S101C53v81Ev,
  (VTBL_ENTRY)&_ZN6S101C53v82Ev,
  (VTBL_ENTRY)&_ZN6S101C53v83Ev,
  (VTBL_ENTRY)&_ZN6S101C53v84Ev,
  (VTBL_ENTRY)&_ZN6S101C53v85Ev,
  (VTBL_ENTRY)&_ZN6S101C53v86Ev,
  (VTBL_ENTRY)&_ZN6S101C53v87Ev,
  (VTBL_ENTRY)&_ZN6S101C53v88Ev,
  (VTBL_ENTRY)&_ZN6S101C53v89Ev,
  (VTBL_ENTRY)&_ZN6S101C53v90Ev,
  (VTBL_ENTRY)&_ZN6S101C53v91Ev,
  (VTBL_ENTRY)&_ZN6S101C53v92Ev,
  (VTBL_ENTRY)&_ZN6S101C53v93Ev,
  (VTBL_ENTRY)&_ZN6S101C53v94Ev,
  (VTBL_ENTRY)&_ZN6S101C53v95Ev,
  (VTBL_ENTRY)&_ZN6S101C53v96Ev,
  (VTBL_ENTRY)&_ZN6S101C53v97Ev,
  (VTBL_ENTRY)&_ZN6S101C53v98Ev,
  (VTBL_ENTRY)&_ZN6S101C53v99Ev,
  (VTBL_ENTRY)&_ZN6S101C54v100Ev,
  (VTBL_ENTRY)&_ZN6S101C54v101Ev,
  (VTBL_ENTRY)&_ZN6S101C54v102Ev,
  (VTBL_ENTRY)&_ZN6S101C54v103Ev,
  (VTBL_ENTRY)&_ZN6S101C54v104Ev,
  (VTBL_ENTRY)&_ZN6S101C54v105Ev,
  (VTBL_ENTRY)&_ZN6S101C54v106Ev,
  (VTBL_ENTRY)&_ZN6S101C54v107Ev,
  (VTBL_ENTRY)&_ZN6S101C54v108Ev,
  (VTBL_ENTRY)&_ZN6S101C54v109Ev,
  (VTBL_ENTRY)&_ZN6S101C54v110Ev,
  (VTBL_ENTRY)&_ZN6S101C54v111Ev,
  (VTBL_ENTRY)&_ZN6S101C54v112Ev,
  (VTBL_ENTRY)&_ZN6S101C54v113Ev,
  (VTBL_ENTRY)&_ZN6S101C54v114Ev,
  (VTBL_ENTRY)&_ZN6S101C54v115Ev,
  (VTBL_ENTRY)&_ZN6S101C54v116Ev,
  (VTBL_ENTRY)&_ZN6S101C54v117Ev,
  (VTBL_ENTRY)&_ZN6S101C54v118Ev,
  (VTBL_ENTRY)&_ZN6S101C54v119Ev,
  (VTBL_ENTRY)&_ZN6S101C54v120Ev,
  (VTBL_ENTRY)&_ZN6S101C54v121Ev,
  (VTBL_ENTRY)&_ZN6S101C54v122Ev,
  (VTBL_ENTRY)&_ZN6S101C54v123Ev,
  (VTBL_ENTRY)&_ZN6S101C54v124Ev,
  (VTBL_ENTRY)&_ZN6S101C54v125Ev,
  (VTBL_ENTRY)&_ZN6S101C54v126Ev,
  (VTBL_ENTRY)&_ZN6S101C54v127Ev,
  (VTBL_ENTRY)&_ZN6S101C54v128Ev,
  (VTBL_ENTRY)&_ZN6S101C54v129Ev,
  (VTBL_ENTRY)&_ZN6S101C54v130Ev,
  (VTBL_ENTRY)&_ZN6S101C54v131Ev,
  (VTBL_ENTRY)&_ZN6S101C54v132Ev,
  (VTBL_ENTRY)&_ZN6S101C54v133Ev,
  (VTBL_ENTRY)&_ZN6S101C54v134Ev,
  (VTBL_ENTRY)&_ZN6S101C54v135Ev,
  (VTBL_ENTRY)&_ZN6S101C54v136Ev,
  (VTBL_ENTRY)&_ZN6S101C54v137Ev,
  (VTBL_ENTRY)&_ZN6S101C54v138Ev,
  (VTBL_ENTRY)&_ZN6S101C54v139Ev,
  (VTBL_ENTRY)&_ZN6S101C54v140Ev,
  (VTBL_ENTRY)&_ZN6S101C54v141Ev,
  (VTBL_ENTRY)&_ZN6S101C54v142Ev,
  (VTBL_ENTRY)&_ZN6S101C54v143Ev,
  (VTBL_ENTRY)&_ZN6S101C54v144Ev,
  (VTBL_ENTRY)&_ZN6S101C54v145Ev,
  (VTBL_ENTRY)&_ZN6S101C54v146Ev,
};
extern VTBL_ENTRY _ZTI6S101C5[];
extern  VTBL_ENTRY _ZTV6S101C5[];
Class_Descriptor cd_S101C5 = {  "S101C5", // class name
  bases_S101C5, 2,
  &(vtc_S101C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S101C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S101C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C4  : S101C5 {
  ::S85C27_nt s101c4f0;
  void *s101c4f1[9];
  ::S80C15 s101c4f2;
  ::S85C35 s101c4f3;
  ::S80C24 s101c4f4;
  int s101c4f5;
  unsigned int s101c4f6:1;
  unsigned int s101c4f7:1;
  unsigned int s101c4f8:1;
  unsigned int s101c4f9:1;
  unsigned int s101c4f10:1;
  unsigned int s101c4f11:1;
  unsigned int s101c4f12:1;
  unsigned int s101c4f13:1;
  unsigned int s101c4f14:1;
  unsigned int s101c4f15:1;
  unsigned int s101c4f16:1;
  unsigned int s101c4f17:1;
  unsigned int s101c4f18:1;
  unsigned int s101c4f19:1;
  unsigned int s101c4f20:1;
  unsigned int s101c4f21:1;
  unsigned int s101c4f22:1;
  unsigned int s101c4f23:1;
  unsigned int s101c4f24:1;
  unsigned int s101c4f25:1;
  unsigned int s101c4f26:1;
  unsigned int s101c4f27:1;
  void *s101c4f28;
  char s101c4f29[2];
  ::S80C8_nt s101c4f30;
  ::S85C27_nt s101c4f31;
  ::S85C27_nt s101c4f32;
  void *s101c4f33;
  ::S80C21_nt s101c4f34;
  ::S80C21_nt s101c4f35;
  ::S80C21_nt s101c4f36;
  ::S80C21_nt s101c4f37;
  ::S80C21_nt s101c4f38;
  virtual  ~S101C4(); // _ZN6S101C4D1Ev
  virtual void  v147(); // _ZN6S101C44v147Ev
  virtual void  v148(); // _ZN6S101C44v148Ev
  virtual void  v149(); // _ZN6S101C44v149Ev
  virtual void  v150(); // _ZN6S101C44v150Ev
  virtual void  v151(); // _ZN6S101C44v151Ev
  virtual void  v152(); // _ZN6S101C44v152Ev
  virtual void  v153(); // _ZN6S101C44v153Ev
  virtual void  v154(); // _ZN6S101C44v154Ev
  virtual void  v155(); // _ZN6S101C44v155Ev
  virtual void  v156(); // _ZN6S101C44v156Ev
  virtual void  v157(); // _ZN6S101C44v157Ev
  virtual void  v158(); // _ZN6S101C44v158Ev
  virtual void  v159(); // _ZN6S101C44v159Ev
  virtual void  v160(); // _ZN6S101C44v160Ev
  virtual void  v161(); // _ZN6S101C44v161Ev
  virtual void  v162(); // _ZN6S101C44v162Ev
  virtual void  v163(); // _ZN6S101C44v163Ev
  virtual void  v164(); // _ZN6S101C44v164Ev
  virtual void  v165(); // _ZN6S101C44v165Ev
  virtual void  v166(); // _ZN6S101C44v166Ev
  virtual void  v167(); // _ZN6S101C44v167Ev
  virtual void  v168(); // _ZN6S101C44v168Ev
  virtual void  v169(); // _ZN6S101C44v169Ev
  virtual void  v170(); // _ZN6S101C44v170Ev
  virtual void  v171(); // _ZN6S101C44v171Ev
  virtual void  v172(); // _ZN6S101C44v172Ev
  virtual void  v173(); // _ZN6S101C44v173Ev
  virtual void  v174(); // _ZN6S101C44v174Ev
  virtual void  v175(); // _ZN6S101C44v175Ev
  virtual void  v176(); // _ZN6S101C44v176Ev
  virtual void  v177(); // _ZN6S101C44v177Ev
  virtual void  v178(); // _ZN6S101C44v178Ev
  virtual void  v179(); // _ZN6S101C44v179Ev
  virtual void  v180(); // _ZN6S101C44v180Ev
  virtual void  v181(); // _ZN6S101C44v181Ev
  virtual void  v182(); // _ZN6S101C44v182Ev
  virtual void  v183(); // _ZN6S101C44v183Ev
  virtual void  v184(); // _ZN6S101C44v184Ev
  virtual void  v185(); // _ZN6S101C44v185Ev
  S101C4(); // tgen
};
//SIG(-1 S101C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S101C4 ::~S101C4(){ note_dtor("S101C4", this);}
void  S101C4 ::v147(){vfunc_called(this, "_ZN6S101C44v147Ev");}
void  S101C4 ::v148(){vfunc_called(this, "_ZN6S101C44v148Ev");}
void  S101C4 ::v149(){vfunc_called(this, "_ZN6S101C44v149Ev");}
void  S101C4 ::v150(){vfunc_called(this, "_ZN6S101C44v150Ev");}
void  S101C4 ::v151(){vfunc_called(this, "_ZN6S101C44v151Ev");}
void  S101C4 ::v152(){vfunc_called(this, "_ZN6S101C44v152Ev");}
void  S101C4 ::v153(){vfunc_called(this, "_ZN6S101C44v153Ev");}
void  S101C4 ::v154(){vfunc_called(this, "_ZN6S101C44v154Ev");}
void  S101C4 ::v155(){vfunc_called(this, "_ZN6S101C44v155Ev");}
void  S101C4 ::v156(){vfunc_called(this, "_ZN6S101C44v156Ev");}
void  S101C4 ::v157(){vfunc_called(this, "_ZN6S101C44v157Ev");}
void  S101C4 ::v158(){vfunc_called(this, "_ZN6S101C44v158Ev");}
void  S101C4 ::v159(){vfunc_called(this, "_ZN6S101C44v159Ev");}
void  S101C4 ::v160(){vfunc_called(this, "_ZN6S101C44v160Ev");}
void  S101C4 ::v161(){vfunc_called(this, "_ZN6S101C44v161Ev");}
void  S101C4 ::v162(){vfunc_called(this, "_ZN6S101C44v162Ev");}
void  S101C4 ::v163(){vfunc_called(this, "_ZN6S101C44v163Ev");}
void  S101C4 ::v164(){vfunc_called(this, "_ZN6S101C44v164Ev");}
void  S101C4 ::v165(){vfunc_called(this, "_ZN6S101C44v165Ev");}
void  S101C4 ::v166(){vfunc_called(this, "_ZN6S101C44v166Ev");}
void  S101C4 ::v167(){vfunc_called(this, "_ZN6S101C44v167Ev");}
void  S101C4 ::v168(){vfunc_called(this, "_ZN6S101C44v168Ev");}
void  S101C4 ::v169(){vfunc_called(this, "_ZN6S101C44v169Ev");}
void  S101C4 ::v170(){vfunc_called(this, "_ZN6S101C44v170Ev");}
void  S101C4 ::v171(){vfunc_called(this, "_ZN6S101C44v171Ev");}
void  S101C4 ::v172(){vfunc_called(this, "_ZN6S101C44v172Ev");}
void  S101C4 ::v173(){vfunc_called(this, "_ZN6S101C44v173Ev");}
void  S101C4 ::v174(){vfunc_called(this, "_ZN6S101C44v174Ev");}
void  S101C4 ::v175(){vfunc_called(this, "_ZN6S101C44v175Ev");}
void  S101C4 ::v176(){vfunc_called(this, "_ZN6S101C44v176Ev");}
void  S101C4 ::v177(){vfunc_called(this, "_ZN6S101C44v177Ev");}
void  S101C4 ::v178(){vfunc_called(this, "_ZN6S101C44v178Ev");}
void  S101C4 ::v179(){vfunc_called(this, "_ZN6S101C44v179Ev");}
void  S101C4 ::v180(){vfunc_called(this, "_ZN6S101C44v180Ev");}
void  S101C4 ::v181(){vfunc_called(this, "_ZN6S101C44v181Ev");}
void  S101C4 ::v182(){vfunc_called(this, "_ZN6S101C44v182Ev");}
void  S101C4 ::v183(){vfunc_called(this, "_ZN6S101C44v183Ev");}
void  S101C4 ::v184(){vfunc_called(this, "_ZN6S101C44v184Ev");}
void  S101C4 ::v185(){vfunc_called(this, "_ZN6S101C44v185Ev");}
S101C4 ::S101C4(){ note_ctor("S101C4", this);} // tgen

static void Test_S101C4()
{
  extern Class_Descriptor cd_S101C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S101C4, buf);
    S101C4 *dp, &lv = *(dp=new (buf) S101C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S101C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C4)");
    check_base_class_offset(lv, (S101C7*)(S101C6*)(S101C5*), 0, "S101C4");
    check_base_class_offset(lv, (S101C6*)(S101C5*), 0, "S101C4");
    check_base_class_offset(lv, (S101C5*), 0, "S101C4");
    check_field_offset(lv, s101c4f0, ABISELECT(464,352), "S101C4.s101c4f0");
    check_field_offset(lv, s101c4f1, ABISELECT(472,360), "S101C4.s101c4f1");
    check_field_offset(lv, s101c4f2, ABISELECT(544,396), "S101C4.s101c4f2");
    check_field_offset(lv, s101c4f3, ABISELECT(560,408), "S101C4.s101c4f3");
    check_field_offset(lv, s101c4f4, ABISELECT(576,420), "S101C4.s101c4f4");
    check_field_offset(lv, s101c4f5, ABISELECT(608,440), "S101C4.s101c4f5");
    set_bf_and_test(lv, s101c4f6, ABISELECT(612,444), 0, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f7, ABISELECT(612,444), 1, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f8, ABISELECT(612,444), 2, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f9, ABISELECT(612,444), 3, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f10, ABISELECT(612,444), 4, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f11, ABISELECT(612,444), 5, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f12, ABISELECT(612,444), 6, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f13, ABISELECT(612,444), 7, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f14, ABISELECT(613,445), 0, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f15, ABISELECT(613,445), 1, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f16, ABISELECT(613,445), 2, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f17, ABISELECT(613,445), 3, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f18, ABISELECT(613,445), 4, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f19, ABISELECT(613,445), 5, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f20, ABISELECT(613,445), 6, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f21, ABISELECT(613,445), 7, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f22, ABISELECT(614,446), 0, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f23, ABISELECT(614,446), 1, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f24, ABISELECT(614,446), 2, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f25, ABISELECT(614,446), 3, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f26, ABISELECT(614,446), 4, 1, 1, "S101C4");
    set_bf_and_test(lv, s101c4f27, ABISELECT(614,446), 5, 1, 1, "S101C4");
    check_field_offset(lv, s101c4f28, ABISELECT(616,448), "S101C4.s101c4f28");
    check_field_offset(lv, s101c4f29, ABISELECT(624,452), "S101C4.s101c4f29");
    check_field_offset(lv, s101c4f30, ABISELECT(628,456), "S101C4.s101c4f30");
    check_field_offset(lv, s101c4f31, ABISELECT(636,464), "S101C4.s101c4f31");
    check_field_offset(lv, s101c4f32, ABISELECT(644,472), "S101C4.s101c4f32");
    check_field_offset(lv, s101c4f33, ABISELECT(656,480), "S101C4.s101c4f33");
    check_field_offset(lv, s101c4f34, ABISELECT(664,484), "S101C4.s101c4f34");
    check_field_offset(lv, s101c4f35, ABISELECT(680,496), "S101C4.s101c4f35");
    check_field_offset(lv, s101c4f36, ABISELECT(696,508), "S101C4.s101c4f36");
    check_field_offset(lv, s101c4f37, ABISELECT(712,520), "S101C4.s101c4f37");
    check_field_offset(lv, s101c4f38, ABISELECT(728,532), "S101C4.s101c4f38");
    test_class_info(&lv, &cd_S101C4);
    dp->~S101C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C4(Test_S101C4, "S101C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S101C4C1Ev();
extern void _ZN6S101C4D1Ev();
Name_Map name_map_S101C4[] = {
  NSPAIR(_ZN6S101C4C1Ev),
  NSPAIR(_ZN6S101C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S101C7;
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
extern Class_Descriptor cd_S101C6;
extern VTBL_ENTRY _ZTI6S101C6[];
extern  VTBL_ENTRY _ZTV6S101C6[];
extern Class_Descriptor cd_S101C5;
extern VTBL_ENTRY _ZTI6S101C5[];
extern  VTBL_ENTRY _ZTV6S101C5[];
static Base_Class bases_S101C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S101C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S101C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S101C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S101C4[];
extern void _ZN6S101C4D1Ev();
extern void _ZN6S101C4D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
extern void _ZN6S101C63v69Ev();
extern void _ZN6S101C63v70Ev();
extern void _ZN6S101C53v71Ev();
extern void _ZN6S101C53v72Ev();
extern void _ZN6S101C53v73Ev();
extern void _ZN6S101C53v74Ev();
extern void _ZN6S101C53v75Ev();
extern void _ZN6S101C53v76Ev();
extern void _ZN6S101C53v77Ev();
extern void _ZN6S101C53v78Ev();
extern void _ZN6S101C53v79Ev();
extern void _ZN6S101C53v80Ev();
extern void _ZN6S101C53v81Ev();
extern void _ZN6S101C53v82Ev();
extern void _ZN6S101C53v83Ev();
extern void _ZN6S101C53v84Ev();
extern void _ZN6S101C53v85Ev();
extern void _ZN6S101C53v86Ev();
extern void _ZN6S101C53v87Ev();
extern void _ZN6S101C53v88Ev();
extern void _ZN6S101C53v89Ev();
extern void _ZN6S101C53v90Ev();
extern void _ZN6S101C53v91Ev();
extern void _ZN6S101C53v92Ev();
extern void _ZN6S101C53v93Ev();
extern void _ZN6S101C53v94Ev();
extern void _ZN6S101C53v95Ev();
extern void _ZN6S101C53v96Ev();
extern void _ZN6S101C53v97Ev();
extern void _ZN6S101C53v98Ev();
extern void _ZN6S101C53v99Ev();
extern void _ZN6S101C54v100Ev();
extern void _ZN6S101C54v101Ev();
extern void _ZN6S101C54v102Ev();
extern void _ZN6S101C54v103Ev();
extern void _ZN6S101C54v104Ev();
extern void _ZN6S101C54v105Ev();
extern void _ZN6S101C54v106Ev();
extern void _ZN6S101C54v107Ev();
extern void _ZN6S101C54v108Ev();
extern void _ZN6S101C54v109Ev();
extern void _ZN6S101C54v110Ev();
extern void _ZN6S101C54v111Ev();
extern void _ZN6S101C54v112Ev();
extern void _ZN6S101C54v113Ev();
extern void _ZN6S101C54v114Ev();
extern void _ZN6S101C54v115Ev();
extern void _ZN6S101C54v116Ev();
extern void _ZN6S101C54v117Ev();
extern void _ZN6S101C54v118Ev();
extern void _ZN6S101C54v119Ev();
extern void _ZN6S101C54v120Ev();
extern void _ZN6S101C54v121Ev();
extern void _ZN6S101C54v122Ev();
extern void _ZN6S101C54v123Ev();
extern void _ZN6S101C54v124Ev();
extern void _ZN6S101C54v125Ev();
extern void _ZN6S101C54v126Ev();
extern void _ZN6S101C54v127Ev();
extern void _ZN6S101C54v128Ev();
extern void _ZN6S101C54v129Ev();
extern void _ZN6S101C54v130Ev();
extern void _ZN6S101C54v131Ev();
extern void _ZN6S101C54v132Ev();
extern void _ZN6S101C54v133Ev();
extern void _ZN6S101C54v134Ev();
extern void _ZN6S101C54v135Ev();
extern void _ZN6S101C54v136Ev();
extern void _ZN6S101C54v137Ev();
extern void _ZN6S101C54v138Ev();
extern void _ZN6S101C54v139Ev();
extern void _ZN6S101C54v140Ev();
extern void _ZN6S101C54v141Ev();
extern void _ZN6S101C54v142Ev();
extern void _ZN6S101C54v143Ev();
extern void _ZN6S101C54v144Ev();
extern void _ZN6S101C54v145Ev();
extern void _ZN6S101C54v146Ev();
extern void _ZN6S101C44v147Ev();
extern void _ZN6S101C44v148Ev();
extern void _ZN6S101C44v149Ev();
extern void _ZN6S101C44v150Ev();
extern void _ZN6S101C44v151Ev();
extern void _ZN6S101C44v152Ev();
extern void _ZN6S101C44v153Ev();
extern void _ZN6S101C44v154Ev();
extern void _ZN6S101C44v155Ev();
extern void _ZN6S101C44v156Ev();
extern void _ZN6S101C44v157Ev();
extern void _ZN6S101C44v158Ev();
extern void _ZN6S101C44v159Ev();
extern void _ZN6S101C44v160Ev();
extern void _ZN6S101C44v161Ev();
extern void _ZN6S101C44v162Ev();
extern void _ZN6S101C44v163Ev();
extern void _ZN6S101C44v164Ev();
extern void _ZN6S101C44v165Ev();
extern void _ZN6S101C44v166Ev();
extern void _ZN6S101C44v167Ev();
extern void _ZN6S101C44v168Ev();
extern void _ZN6S101C44v169Ev();
extern void _ZN6S101C44v170Ev();
extern void _ZN6S101C44v171Ev();
extern void _ZN6S101C44v172Ev();
extern void _ZN6S101C44v173Ev();
extern void _ZN6S101C44v174Ev();
extern void _ZN6S101C44v175Ev();
extern void _ZN6S101C44v176Ev();
extern void _ZN6S101C44v177Ev();
extern void _ZN6S101C44v178Ev();
extern void _ZN6S101C44v179Ev();
extern void _ZN6S101C44v180Ev();
extern void _ZN6S101C44v181Ev();
extern void _ZN6S101C44v182Ev();
extern void _ZN6S101C44v183Ev();
extern void _ZN6S101C44v184Ev();
extern void _ZN6S101C44v185Ev();
static  VTBL_ENTRY vtc_S101C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C4[0]),
  (VTBL_ENTRY)&_ZN6S101C4D1Ev,
  (VTBL_ENTRY)&_ZN6S101C4D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
  (VTBL_ENTRY)&_ZN6S101C63v69Ev,
  (VTBL_ENTRY)&_ZN6S101C63v70Ev,
  (VTBL_ENTRY)&_ZN6S101C53v71Ev,
  (VTBL_ENTRY)&_ZN6S101C53v72Ev,
  (VTBL_ENTRY)&_ZN6S101C53v73Ev,
  (VTBL_ENTRY)&_ZN6S101C53v74Ev,
  (VTBL_ENTRY)&_ZN6S101C53v75Ev,
  (VTBL_ENTRY)&_ZN6S101C53v76Ev,
  (VTBL_ENTRY)&_ZN6S101C53v77Ev,
  (VTBL_ENTRY)&_ZN6S101C53v78Ev,
  (VTBL_ENTRY)&_ZN6S101C53v79Ev,
  (VTBL_ENTRY)&_ZN6S101C53v80Ev,
  (VTBL_ENTRY)&_ZN6S101C53v81Ev,
  (VTBL_ENTRY)&_ZN6S101C53v82Ev,
  (VTBL_ENTRY)&_ZN6S101C53v83Ev,
  (VTBL_ENTRY)&_ZN6S101C53v84Ev,
  (VTBL_ENTRY)&_ZN6S101C53v85Ev,
  (VTBL_ENTRY)&_ZN6S101C53v86Ev,
  (VTBL_ENTRY)&_ZN6S101C53v87Ev,
  (VTBL_ENTRY)&_ZN6S101C53v88Ev,
  (VTBL_ENTRY)&_ZN6S101C53v89Ev,
  (VTBL_ENTRY)&_ZN6S101C53v90Ev,
  (VTBL_ENTRY)&_ZN6S101C53v91Ev,
  (VTBL_ENTRY)&_ZN6S101C53v92Ev,
  (VTBL_ENTRY)&_ZN6S101C53v93Ev,
  (VTBL_ENTRY)&_ZN6S101C53v94Ev,
  (VTBL_ENTRY)&_ZN6S101C53v95Ev,
  (VTBL_ENTRY)&_ZN6S101C53v96Ev,
  (VTBL_ENTRY)&_ZN6S101C53v97Ev,
  (VTBL_ENTRY)&_ZN6S101C53v98Ev,
  (VTBL_ENTRY)&_ZN6S101C53v99Ev,
  (VTBL_ENTRY)&_ZN6S101C54v100Ev,
  (VTBL_ENTRY)&_ZN6S101C54v101Ev,
  (VTBL_ENTRY)&_ZN6S101C54v102Ev,
  (VTBL_ENTRY)&_ZN6S101C54v103Ev,
  (VTBL_ENTRY)&_ZN6S101C54v104Ev,
  (VTBL_ENTRY)&_ZN6S101C54v105Ev,
  (VTBL_ENTRY)&_ZN6S101C54v106Ev,
  (VTBL_ENTRY)&_ZN6S101C54v107Ev,
  (VTBL_ENTRY)&_ZN6S101C54v108Ev,
  (VTBL_ENTRY)&_ZN6S101C54v109Ev,
  (VTBL_ENTRY)&_ZN6S101C54v110Ev,
  (VTBL_ENTRY)&_ZN6S101C54v111Ev,
  (VTBL_ENTRY)&_ZN6S101C54v112Ev,
  (VTBL_ENTRY)&_ZN6S101C54v113Ev,
  (VTBL_ENTRY)&_ZN6S101C54v114Ev,
  (VTBL_ENTRY)&_ZN6S101C54v115Ev,
  (VTBL_ENTRY)&_ZN6S101C54v116Ev,
  (VTBL_ENTRY)&_ZN6S101C54v117Ev,
  (VTBL_ENTRY)&_ZN6S101C54v118Ev,
  (VTBL_ENTRY)&_ZN6S101C54v119Ev,
  (VTBL_ENTRY)&_ZN6S101C54v120Ev,
  (VTBL_ENTRY)&_ZN6S101C54v121Ev,
  (VTBL_ENTRY)&_ZN6S101C54v122Ev,
  (VTBL_ENTRY)&_ZN6S101C54v123Ev,
  (VTBL_ENTRY)&_ZN6S101C54v124Ev,
  (VTBL_ENTRY)&_ZN6S101C54v125Ev,
  (VTBL_ENTRY)&_ZN6S101C54v126Ev,
  (VTBL_ENTRY)&_ZN6S101C54v127Ev,
  (VTBL_ENTRY)&_ZN6S101C54v128Ev,
  (VTBL_ENTRY)&_ZN6S101C54v129Ev,
  (VTBL_ENTRY)&_ZN6S101C54v130Ev,
  (VTBL_ENTRY)&_ZN6S101C54v131Ev,
  (VTBL_ENTRY)&_ZN6S101C54v132Ev,
  (VTBL_ENTRY)&_ZN6S101C54v133Ev,
  (VTBL_ENTRY)&_ZN6S101C54v134Ev,
  (VTBL_ENTRY)&_ZN6S101C54v135Ev,
  (VTBL_ENTRY)&_ZN6S101C54v136Ev,
  (VTBL_ENTRY)&_ZN6S101C54v137Ev,
  (VTBL_ENTRY)&_ZN6S101C54v138Ev,
  (VTBL_ENTRY)&_ZN6S101C54v139Ev,
  (VTBL_ENTRY)&_ZN6S101C54v140Ev,
  (VTBL_ENTRY)&_ZN6S101C54v141Ev,
  (VTBL_ENTRY)&_ZN6S101C54v142Ev,
  (VTBL_ENTRY)&_ZN6S101C54v143Ev,
  (VTBL_ENTRY)&_ZN6S101C54v144Ev,
  (VTBL_ENTRY)&_ZN6S101C54v145Ev,
  (VTBL_ENTRY)&_ZN6S101C54v146Ev,
  (VTBL_ENTRY)&_ZN6S101C44v147Ev,
  (VTBL_ENTRY)&_ZN6S101C44v148Ev,
  (VTBL_ENTRY)&_ZN6S101C44v149Ev,
  (VTBL_ENTRY)&_ZN6S101C44v150Ev,
  (VTBL_ENTRY)&_ZN6S101C44v151Ev,
  (VTBL_ENTRY)&_ZN6S101C44v152Ev,
  (VTBL_ENTRY)&_ZN6S101C44v153Ev,
  (VTBL_ENTRY)&_ZN6S101C44v154Ev,
  (VTBL_ENTRY)&_ZN6S101C44v155Ev,
  (VTBL_ENTRY)&_ZN6S101C44v156Ev,
  (VTBL_ENTRY)&_ZN6S101C44v157Ev,
  (VTBL_ENTRY)&_ZN6S101C44v158Ev,
  (VTBL_ENTRY)&_ZN6S101C44v159Ev,
  (VTBL_ENTRY)&_ZN6S101C44v160Ev,
  (VTBL_ENTRY)&_ZN6S101C44v161Ev,
  (VTBL_ENTRY)&_ZN6S101C44v162Ev,
  (VTBL_ENTRY)&_ZN6S101C44v163Ev,
  (VTBL_ENTRY)&_ZN6S101C44v164Ev,
  (VTBL_ENTRY)&_ZN6S101C44v165Ev,
  (VTBL_ENTRY)&_ZN6S101C44v166Ev,
  (VTBL_ENTRY)&_ZN6S101C44v167Ev,
  (VTBL_ENTRY)&_ZN6S101C44v168Ev,
  (VTBL_ENTRY)&_ZN6S101C44v169Ev,
  (VTBL_ENTRY)&_ZN6S101C44v170Ev,
  (VTBL_ENTRY)&_ZN6S101C44v171Ev,
  (VTBL_ENTRY)&_ZN6S101C44v172Ev,
  (VTBL_ENTRY)&_ZN6S101C44v173Ev,
  (VTBL_ENTRY)&_ZN6S101C44v174Ev,
  (VTBL_ENTRY)&_ZN6S101C44v175Ev,
  (VTBL_ENTRY)&_ZN6S101C44v176Ev,
  (VTBL_ENTRY)&_ZN6S101C44v177Ev,
  (VTBL_ENTRY)&_ZN6S101C44v178Ev,
  (VTBL_ENTRY)&_ZN6S101C44v179Ev,
  (VTBL_ENTRY)&_ZN6S101C44v180Ev,
  (VTBL_ENTRY)&_ZN6S101C44v181Ev,
  (VTBL_ENTRY)&_ZN6S101C44v182Ev,
  (VTBL_ENTRY)&_ZN6S101C44v183Ev,
  (VTBL_ENTRY)&_ZN6S101C44v184Ev,
  (VTBL_ENTRY)&_ZN6S101C44v185Ev,
};
extern VTBL_ENTRY _ZTI6S101C4[];
extern  VTBL_ENTRY _ZTV6S101C4[];
Class_Descriptor cd_S101C4 = {  "S101C4", // class name
  bases_S101C4, 3,
  &(vtc_S101C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S101C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S101C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C3  : S101C4 {
  unsigned int s101c3f0:1;
  unsigned int s101c3f1:1;
  unsigned int s101c3f2:1;
  unsigned int s101c3f3:1;
  unsigned int s101c3f4:1;
  unsigned int s101c3f5:1;
  void *s101c3f6[8];
  ::S80C21_nt s101c3f7;
  ::S80C21_nt s101c3f8;
  ::S80C21_nt s101c3f9;
  virtual  ~S101C3(); // _ZN6S101C3D1Ev
  virtual void  v186(); // _ZN6S101C34v186Ev
  virtual void  v187(); // _ZN6S101C34v187Ev
  virtual void  v188(); // _ZN6S101C34v188Ev
  virtual void  v189(); // _ZN6S101C34v189Ev
  virtual void  v190(); // _ZN6S101C34v190Ev
  virtual void  v191(); // _ZN6S101C34v191Ev
  virtual void  v192(); // _ZN6S101C34v192Ev
  virtual void  v193(); // _ZN6S101C34v193Ev
  virtual void  v194(); // _ZN6S101C34v194Ev
  virtual void  v195(); // _ZN6S101C34v195Ev
  virtual void  v196(); // _ZN6S101C34v196Ev
  virtual void  v197(); // _ZN6S101C34v197Ev
  virtual void  v198(); // _ZN6S101C34v198Ev
  virtual void  v199(); // _ZN6S101C34v199Ev
  virtual void  v200(); // _ZN6S101C34v200Ev
  virtual void  v201(); // _ZN6S101C34v201Ev
  virtual void  v202(); // _ZN6S101C34v202Ev
  virtual void  v203(); // _ZN6S101C34v203Ev
  virtual void  v204(); // _ZN6S101C34v204Ev
  virtual void  v205(); // _ZN6S101C34v205Ev
  virtual void  v206(); // _ZN6S101C34v206Ev
  virtual void  v207(); // _ZN6S101C34v207Ev
  virtual void  v208(); // _ZN6S101C34v208Ev
  S101C3(); // tgen
};
//SIG(-1 S101C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S101C3 ::~S101C3(){ note_dtor("S101C3", this);}
void  S101C3 ::v186(){vfunc_called(this, "_ZN6S101C34v186Ev");}
void  S101C3 ::v187(){vfunc_called(this, "_ZN6S101C34v187Ev");}
void  S101C3 ::v188(){vfunc_called(this, "_ZN6S101C34v188Ev");}
void  S101C3 ::v189(){vfunc_called(this, "_ZN6S101C34v189Ev");}
void  S101C3 ::v190(){vfunc_called(this, "_ZN6S101C34v190Ev");}
void  S101C3 ::v191(){vfunc_called(this, "_ZN6S101C34v191Ev");}
void  S101C3 ::v192(){vfunc_called(this, "_ZN6S101C34v192Ev");}
void  S101C3 ::v193(){vfunc_called(this, "_ZN6S101C34v193Ev");}
void  S101C3 ::v194(){vfunc_called(this, "_ZN6S101C34v194Ev");}
void  S101C3 ::v195(){vfunc_called(this, "_ZN6S101C34v195Ev");}
void  S101C3 ::v196(){vfunc_called(this, "_ZN6S101C34v196Ev");}
void  S101C3 ::v197(){vfunc_called(this, "_ZN6S101C34v197Ev");}
void  S101C3 ::v198(){vfunc_called(this, "_ZN6S101C34v198Ev");}
void  S101C3 ::v199(){vfunc_called(this, "_ZN6S101C34v199Ev");}
void  S101C3 ::v200(){vfunc_called(this, "_ZN6S101C34v200Ev");}
void  S101C3 ::v201(){vfunc_called(this, "_ZN6S101C34v201Ev");}
void  S101C3 ::v202(){vfunc_called(this, "_ZN6S101C34v202Ev");}
void  S101C3 ::v203(){vfunc_called(this, "_ZN6S101C34v203Ev");}
void  S101C3 ::v204(){vfunc_called(this, "_ZN6S101C34v204Ev");}
void  S101C3 ::v205(){vfunc_called(this, "_ZN6S101C34v205Ev");}
void  S101C3 ::v206(){vfunc_called(this, "_ZN6S101C34v206Ev");}
void  S101C3 ::v207(){vfunc_called(this, "_ZN6S101C34v207Ev");}
void  S101C3 ::v208(){vfunc_called(this, "_ZN6S101C34v208Ev");}
S101C3 ::S101C3(){ note_ctor("S101C3", this);} // tgen

static void Test_S101C3()
{
  extern Class_Descriptor cd_S101C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S101C3, buf);
    S101C3 *dp, &lv = *(dp=new (buf) S101C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S101C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C3)");
    check_base_class_offset(lv, (S101C7*)(S101C6*)(S101C5*)(S101C4*), 0, "S101C3");
    check_base_class_offset(lv, (S101C6*)(S101C5*)(S101C4*), 0, "S101C3");
    check_base_class_offset(lv, (S101C5*)(S101C4*), 0, "S101C3");
    check_base_class_offset(lv, (S101C4*), 0, "S101C3");
    set_bf_and_test(lv, s101c3f0, ABISELECT(744,544), 0, 1, 1, "S101C3");
    set_bf_and_test(lv, s101c3f1, ABISELECT(744,544), 1, 1, 1, "S101C3");
    set_bf_and_test(lv, s101c3f2, ABISELECT(744,544), 2, 1, 1, "S101C3");
    set_bf_and_test(lv, s101c3f3, ABISELECT(744,544), 3, 1, 1, "S101C3");
    set_bf_and_test(lv, s101c3f4, ABISELECT(744,544), 4, 1, 1, "S101C3");
    set_bf_and_test(lv, s101c3f5, ABISELECT(744,544), 5, 1, 1, "S101C3");
    check_field_offset(lv, s101c3f6, ABISELECT(752,548), "S101C3.s101c3f6");
    check_field_offset(lv, s101c3f7, ABISELECT(816,580), "S101C3.s101c3f7");
    check_field_offset(lv, s101c3f8, ABISELECT(832,592), "S101C3.s101c3f8");
    check_field_offset(lv, s101c3f9, ABISELECT(848,604), "S101C3.s101c3f9");
    test_class_info(&lv, &cd_S101C3);
    dp->~S101C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C3(Test_S101C3, "S101C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S101C3C1Ev();
extern void _ZN6S101C3D1Ev();
Name_Map name_map_S101C3[] = {
  NSPAIR(_ZN6S101C3C1Ev),
  NSPAIR(_ZN6S101C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S101C7;
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
extern Class_Descriptor cd_S101C6;
extern VTBL_ENTRY _ZTI6S101C6[];
extern  VTBL_ENTRY _ZTV6S101C6[];
extern Class_Descriptor cd_S101C5;
extern VTBL_ENTRY _ZTI6S101C5[];
extern  VTBL_ENTRY _ZTV6S101C5[];
extern Class_Descriptor cd_S101C4;
extern VTBL_ENTRY _ZTI6S101C4[];
extern  VTBL_ENTRY _ZTV6S101C4[];
static Base_Class bases_S101C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S101C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S101C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S101C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S101C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S101C3[];
extern void _ZN6S101C3D1Ev();
extern void _ZN6S101C3D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
extern void _ZN6S101C63v69Ev();
extern void _ZN6S101C63v70Ev();
extern void _ZN6S101C53v71Ev();
extern void _ZN6S101C53v72Ev();
extern void _ZN6S101C53v73Ev();
extern void _ZN6S101C53v74Ev();
extern void _ZN6S101C53v75Ev();
extern void _ZN6S101C53v76Ev();
extern void _ZN6S101C53v77Ev();
extern void _ZN6S101C53v78Ev();
extern void _ZN6S101C53v79Ev();
extern void _ZN6S101C53v80Ev();
extern void _ZN6S101C53v81Ev();
extern void _ZN6S101C53v82Ev();
extern void _ZN6S101C53v83Ev();
extern void _ZN6S101C53v84Ev();
extern void _ZN6S101C53v85Ev();
extern void _ZN6S101C53v86Ev();
extern void _ZN6S101C53v87Ev();
extern void _ZN6S101C53v88Ev();
extern void _ZN6S101C53v89Ev();
extern void _ZN6S101C53v90Ev();
extern void _ZN6S101C53v91Ev();
extern void _ZN6S101C53v92Ev();
extern void _ZN6S101C53v93Ev();
extern void _ZN6S101C53v94Ev();
extern void _ZN6S101C53v95Ev();
extern void _ZN6S101C53v96Ev();
extern void _ZN6S101C53v97Ev();
extern void _ZN6S101C53v98Ev();
extern void _ZN6S101C53v99Ev();
extern void _ZN6S101C54v100Ev();
extern void _ZN6S101C54v101Ev();
extern void _ZN6S101C54v102Ev();
extern void _ZN6S101C54v103Ev();
extern void _ZN6S101C54v104Ev();
extern void _ZN6S101C54v105Ev();
extern void _ZN6S101C54v106Ev();
extern void _ZN6S101C54v107Ev();
extern void _ZN6S101C54v108Ev();
extern void _ZN6S101C54v109Ev();
extern void _ZN6S101C54v110Ev();
extern void _ZN6S101C54v111Ev();
extern void _ZN6S101C54v112Ev();
extern void _ZN6S101C54v113Ev();
extern void _ZN6S101C54v114Ev();
extern void _ZN6S101C54v115Ev();
extern void _ZN6S101C54v116Ev();
extern void _ZN6S101C54v117Ev();
extern void _ZN6S101C54v118Ev();
extern void _ZN6S101C54v119Ev();
extern void _ZN6S101C54v120Ev();
extern void _ZN6S101C54v121Ev();
extern void _ZN6S101C54v122Ev();
extern void _ZN6S101C54v123Ev();
extern void _ZN6S101C54v124Ev();
extern void _ZN6S101C54v125Ev();
extern void _ZN6S101C54v126Ev();
extern void _ZN6S101C54v127Ev();
extern void _ZN6S101C54v128Ev();
extern void _ZN6S101C54v129Ev();
extern void _ZN6S101C54v130Ev();
extern void _ZN6S101C54v131Ev();
extern void _ZN6S101C54v132Ev();
extern void _ZN6S101C54v133Ev();
extern void _ZN6S101C54v134Ev();
extern void _ZN6S101C54v135Ev();
extern void _ZN6S101C54v136Ev();
extern void _ZN6S101C54v137Ev();
extern void _ZN6S101C54v138Ev();
extern void _ZN6S101C54v139Ev();
extern void _ZN6S101C54v140Ev();
extern void _ZN6S101C54v141Ev();
extern void _ZN6S101C54v142Ev();
extern void _ZN6S101C54v143Ev();
extern void _ZN6S101C54v144Ev();
extern void _ZN6S101C54v145Ev();
extern void _ZN6S101C54v146Ev();
extern void _ZN6S101C44v147Ev();
extern void _ZN6S101C44v148Ev();
extern void _ZN6S101C44v149Ev();
extern void _ZN6S101C44v150Ev();
extern void _ZN6S101C44v151Ev();
extern void _ZN6S101C44v152Ev();
extern void _ZN6S101C44v153Ev();
extern void _ZN6S101C44v154Ev();
extern void _ZN6S101C44v155Ev();
extern void _ZN6S101C44v156Ev();
extern void _ZN6S101C44v157Ev();
extern void _ZN6S101C44v158Ev();
extern void _ZN6S101C44v159Ev();
extern void _ZN6S101C44v160Ev();
extern void _ZN6S101C44v161Ev();
extern void _ZN6S101C44v162Ev();
extern void _ZN6S101C44v163Ev();
extern void _ZN6S101C44v164Ev();
extern void _ZN6S101C44v165Ev();
extern void _ZN6S101C44v166Ev();
extern void _ZN6S101C44v167Ev();
extern void _ZN6S101C44v168Ev();
extern void _ZN6S101C44v169Ev();
extern void _ZN6S101C44v170Ev();
extern void _ZN6S101C44v171Ev();
extern void _ZN6S101C44v172Ev();
extern void _ZN6S101C44v173Ev();
extern void _ZN6S101C44v174Ev();
extern void _ZN6S101C44v175Ev();
extern void _ZN6S101C44v176Ev();
extern void _ZN6S101C44v177Ev();
extern void _ZN6S101C44v178Ev();
extern void _ZN6S101C44v179Ev();
extern void _ZN6S101C44v180Ev();
extern void _ZN6S101C44v181Ev();
extern void _ZN6S101C44v182Ev();
extern void _ZN6S101C44v183Ev();
extern void _ZN6S101C44v184Ev();
extern void _ZN6S101C44v185Ev();
extern void _ZN6S101C34v186Ev();
extern void _ZN6S101C34v187Ev();
extern void _ZN6S101C34v188Ev();
extern void _ZN6S101C34v189Ev();
extern void _ZN6S101C34v190Ev();
extern void _ZN6S101C34v191Ev();
extern void _ZN6S101C34v192Ev();
extern void _ZN6S101C34v193Ev();
extern void _ZN6S101C34v194Ev();
extern void _ZN6S101C34v195Ev();
extern void _ZN6S101C34v196Ev();
extern void _ZN6S101C34v197Ev();
extern void _ZN6S101C34v198Ev();
extern void _ZN6S101C34v199Ev();
extern void _ZN6S101C34v200Ev();
extern void _ZN6S101C34v201Ev();
extern void _ZN6S101C34v202Ev();
extern void _ZN6S101C34v203Ev();
extern void _ZN6S101C34v204Ev();
extern void _ZN6S101C34v205Ev();
extern void _ZN6S101C34v206Ev();
extern void _ZN6S101C34v207Ev();
extern void _ZN6S101C34v208Ev();
static  VTBL_ENTRY vtc_S101C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C3[0]),
  (VTBL_ENTRY)&_ZN6S101C3D1Ev,
  (VTBL_ENTRY)&_ZN6S101C3D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
  (VTBL_ENTRY)&_ZN6S101C63v69Ev,
  (VTBL_ENTRY)&_ZN6S101C63v70Ev,
  (VTBL_ENTRY)&_ZN6S101C53v71Ev,
  (VTBL_ENTRY)&_ZN6S101C53v72Ev,
  (VTBL_ENTRY)&_ZN6S101C53v73Ev,
  (VTBL_ENTRY)&_ZN6S101C53v74Ev,
  (VTBL_ENTRY)&_ZN6S101C53v75Ev,
  (VTBL_ENTRY)&_ZN6S101C53v76Ev,
  (VTBL_ENTRY)&_ZN6S101C53v77Ev,
  (VTBL_ENTRY)&_ZN6S101C53v78Ev,
  (VTBL_ENTRY)&_ZN6S101C53v79Ev,
  (VTBL_ENTRY)&_ZN6S101C53v80Ev,
  (VTBL_ENTRY)&_ZN6S101C53v81Ev,
  (VTBL_ENTRY)&_ZN6S101C53v82Ev,
  (VTBL_ENTRY)&_ZN6S101C53v83Ev,
  (VTBL_ENTRY)&_ZN6S101C53v84Ev,
  (VTBL_ENTRY)&_ZN6S101C53v85Ev,
  (VTBL_ENTRY)&_ZN6S101C53v86Ev,
  (VTBL_ENTRY)&_ZN6S101C53v87Ev,
  (VTBL_ENTRY)&_ZN6S101C53v88Ev,
  (VTBL_ENTRY)&_ZN6S101C53v89Ev,
  (VTBL_ENTRY)&_ZN6S101C53v90Ev,
  (VTBL_ENTRY)&_ZN6S101C53v91Ev,
  (VTBL_ENTRY)&_ZN6S101C53v92Ev,
  (VTBL_ENTRY)&_ZN6S101C53v93Ev,
  (VTBL_ENTRY)&_ZN6S101C53v94Ev,
  (VTBL_ENTRY)&_ZN6S101C53v95Ev,
  (VTBL_ENTRY)&_ZN6S101C53v96Ev,
  (VTBL_ENTRY)&_ZN6S101C53v97Ev,
  (VTBL_ENTRY)&_ZN6S101C53v98Ev,
  (VTBL_ENTRY)&_ZN6S101C53v99Ev,
  (VTBL_ENTRY)&_ZN6S101C54v100Ev,
  (VTBL_ENTRY)&_ZN6S101C54v101Ev,
  (VTBL_ENTRY)&_ZN6S101C54v102Ev,
  (VTBL_ENTRY)&_ZN6S101C54v103Ev,
  (VTBL_ENTRY)&_ZN6S101C54v104Ev,
  (VTBL_ENTRY)&_ZN6S101C54v105Ev,
  (VTBL_ENTRY)&_ZN6S101C54v106Ev,
  (VTBL_ENTRY)&_ZN6S101C54v107Ev,
  (VTBL_ENTRY)&_ZN6S101C54v108Ev,
  (VTBL_ENTRY)&_ZN6S101C54v109Ev,
  (VTBL_ENTRY)&_ZN6S101C54v110Ev,
  (VTBL_ENTRY)&_ZN6S101C54v111Ev,
  (VTBL_ENTRY)&_ZN6S101C54v112Ev,
  (VTBL_ENTRY)&_ZN6S101C54v113Ev,
  (VTBL_ENTRY)&_ZN6S101C54v114Ev,
  (VTBL_ENTRY)&_ZN6S101C54v115Ev,
  (VTBL_ENTRY)&_ZN6S101C54v116Ev,
  (VTBL_ENTRY)&_ZN6S101C54v117Ev,
  (VTBL_ENTRY)&_ZN6S101C54v118Ev,
  (VTBL_ENTRY)&_ZN6S101C54v119Ev,
  (VTBL_ENTRY)&_ZN6S101C54v120Ev,
  (VTBL_ENTRY)&_ZN6S101C54v121Ev,
  (VTBL_ENTRY)&_ZN6S101C54v122Ev,
  (VTBL_ENTRY)&_ZN6S101C54v123Ev,
  (VTBL_ENTRY)&_ZN6S101C54v124Ev,
  (VTBL_ENTRY)&_ZN6S101C54v125Ev,
  (VTBL_ENTRY)&_ZN6S101C54v126Ev,
  (VTBL_ENTRY)&_ZN6S101C54v127Ev,
  (VTBL_ENTRY)&_ZN6S101C54v128Ev,
  (VTBL_ENTRY)&_ZN6S101C54v129Ev,
  (VTBL_ENTRY)&_ZN6S101C54v130Ev,
  (VTBL_ENTRY)&_ZN6S101C54v131Ev,
  (VTBL_ENTRY)&_ZN6S101C54v132Ev,
  (VTBL_ENTRY)&_ZN6S101C54v133Ev,
  (VTBL_ENTRY)&_ZN6S101C54v134Ev,
  (VTBL_ENTRY)&_ZN6S101C54v135Ev,
  (VTBL_ENTRY)&_ZN6S101C54v136Ev,
  (VTBL_ENTRY)&_ZN6S101C54v137Ev,
  (VTBL_ENTRY)&_ZN6S101C54v138Ev,
  (VTBL_ENTRY)&_ZN6S101C54v139Ev,
  (VTBL_ENTRY)&_ZN6S101C54v140Ev,
  (VTBL_ENTRY)&_ZN6S101C54v141Ev,
  (VTBL_ENTRY)&_ZN6S101C54v142Ev,
  (VTBL_ENTRY)&_ZN6S101C54v143Ev,
  (VTBL_ENTRY)&_ZN6S101C54v144Ev,
  (VTBL_ENTRY)&_ZN6S101C54v145Ev,
  (VTBL_ENTRY)&_ZN6S101C54v146Ev,
  (VTBL_ENTRY)&_ZN6S101C44v147Ev,
  (VTBL_ENTRY)&_ZN6S101C44v148Ev,
  (VTBL_ENTRY)&_ZN6S101C44v149Ev,
  (VTBL_ENTRY)&_ZN6S101C44v150Ev,
  (VTBL_ENTRY)&_ZN6S101C44v151Ev,
  (VTBL_ENTRY)&_ZN6S101C44v152Ev,
  (VTBL_ENTRY)&_ZN6S101C44v153Ev,
  (VTBL_ENTRY)&_ZN6S101C44v154Ev,
  (VTBL_ENTRY)&_ZN6S101C44v155Ev,
  (VTBL_ENTRY)&_ZN6S101C44v156Ev,
  (VTBL_ENTRY)&_ZN6S101C44v157Ev,
  (VTBL_ENTRY)&_ZN6S101C44v158Ev,
  (VTBL_ENTRY)&_ZN6S101C44v159Ev,
  (VTBL_ENTRY)&_ZN6S101C44v160Ev,
  (VTBL_ENTRY)&_ZN6S101C44v161Ev,
  (VTBL_ENTRY)&_ZN6S101C44v162Ev,
  (VTBL_ENTRY)&_ZN6S101C44v163Ev,
  (VTBL_ENTRY)&_ZN6S101C44v164Ev,
  (VTBL_ENTRY)&_ZN6S101C44v165Ev,
  (VTBL_ENTRY)&_ZN6S101C44v166Ev,
  (VTBL_ENTRY)&_ZN6S101C44v167Ev,
  (VTBL_ENTRY)&_ZN6S101C44v168Ev,
  (VTBL_ENTRY)&_ZN6S101C44v169Ev,
  (VTBL_ENTRY)&_ZN6S101C44v170Ev,
  (VTBL_ENTRY)&_ZN6S101C44v171Ev,
  (VTBL_ENTRY)&_ZN6S101C44v172Ev,
  (VTBL_ENTRY)&_ZN6S101C44v173Ev,
  (VTBL_ENTRY)&_ZN6S101C44v174Ev,
  (VTBL_ENTRY)&_ZN6S101C44v175Ev,
  (VTBL_ENTRY)&_ZN6S101C44v176Ev,
  (VTBL_ENTRY)&_ZN6S101C44v177Ev,
  (VTBL_ENTRY)&_ZN6S101C44v178Ev,
  (VTBL_ENTRY)&_ZN6S101C44v179Ev,
  (VTBL_ENTRY)&_ZN6S101C44v180Ev,
  (VTBL_ENTRY)&_ZN6S101C44v181Ev,
  (VTBL_ENTRY)&_ZN6S101C44v182Ev,
  (VTBL_ENTRY)&_ZN6S101C44v183Ev,
  (VTBL_ENTRY)&_ZN6S101C44v184Ev,
  (VTBL_ENTRY)&_ZN6S101C44v185Ev,
  (VTBL_ENTRY)&_ZN6S101C34v186Ev,
  (VTBL_ENTRY)&_ZN6S101C34v187Ev,
  (VTBL_ENTRY)&_ZN6S101C34v188Ev,
  (VTBL_ENTRY)&_ZN6S101C34v189Ev,
  (VTBL_ENTRY)&_ZN6S101C34v190Ev,
  (VTBL_ENTRY)&_ZN6S101C34v191Ev,
  (VTBL_ENTRY)&_ZN6S101C34v192Ev,
  (VTBL_ENTRY)&_ZN6S101C34v193Ev,
  (VTBL_ENTRY)&_ZN6S101C34v194Ev,
  (VTBL_ENTRY)&_ZN6S101C34v195Ev,
  (VTBL_ENTRY)&_ZN6S101C34v196Ev,
  (VTBL_ENTRY)&_ZN6S101C34v197Ev,
  (VTBL_ENTRY)&_ZN6S101C34v198Ev,
  (VTBL_ENTRY)&_ZN6S101C34v199Ev,
  (VTBL_ENTRY)&_ZN6S101C34v200Ev,
  (VTBL_ENTRY)&_ZN6S101C34v201Ev,
  (VTBL_ENTRY)&_ZN6S101C34v202Ev,
  (VTBL_ENTRY)&_ZN6S101C34v203Ev,
  (VTBL_ENTRY)&_ZN6S101C34v204Ev,
  (VTBL_ENTRY)&_ZN6S101C34v205Ev,
  (VTBL_ENTRY)&_ZN6S101C34v206Ev,
  (VTBL_ENTRY)&_ZN6S101C34v207Ev,
  (VTBL_ENTRY)&_ZN6S101C34v208Ev,
};
extern VTBL_ENTRY _ZTI6S101C3[];
extern  VTBL_ENTRY _ZTV6S101C3[];
Class_Descriptor cd_S101C3 = {  "S101C3", // class name
  bases_S101C3, 4,
  &(vtc_S101C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S101C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S101C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C2  : S101C3 {
  void *s101c2f0[2];
  int s101c2f1[2];
  char s101c2f2;
  void *s101c2f3;
  unsigned int s101c2f4:1;
  unsigned int s101c2f5:1;
  ::S80C28_nt s101c2f6;
  virtual  ~S101C2(); // _ZN6S101C2D1Ev
  virtual void  v209(); // _ZN6S101C24v209Ev
  virtual void  v210(); // _ZN6S101C24v210Ev
  virtual void  v211(); // _ZN6S101C24v211Ev
  virtual void  v212(); // _ZN6S101C24v212Ev
  virtual void  v213(); // _ZN6S101C24v213Ev
  virtual void  v214(); // _ZN6S101C24v214Ev
  virtual void  v215(); // _ZN6S101C24v215Ev
  virtual void  v216(); // _ZN6S101C24v216Ev
  S101C2(); // tgen
};
//SIG(-1 S101C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v73 v74} vd v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 v211 v212 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 v4 v5 v6 v7 v8 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC27{ BC16}}


 S101C2 ::~S101C2(){ note_dtor("S101C2", this);}
void  S101C2 ::v209(){vfunc_called(this, "_ZN6S101C24v209Ev");}
void  S101C2 ::v210(){vfunc_called(this, "_ZN6S101C24v210Ev");}
void  S101C2 ::v211(){vfunc_called(this, "_ZN6S101C24v211Ev");}
void  S101C2 ::v212(){vfunc_called(this, "_ZN6S101C24v212Ev");}
void  S101C2 ::v213(){vfunc_called(this, "_ZN6S101C24v213Ev");}
void  S101C2 ::v214(){vfunc_called(this, "_ZN6S101C24v214Ev");}
void  S101C2 ::v215(){vfunc_called(this, "_ZN6S101C24v215Ev");}
void  S101C2 ::v216(){vfunc_called(this, "_ZN6S101C24v216Ev");}
S101C2 ::S101C2(){ note_ctor("S101C2", this);} // tgen

static void Test_S101C2()
{
  extern Class_Descriptor cd_S101C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(117,165)];
    init_test(&cd_S101C2, buf);
    S101C2 *dp, &lv = *(dp=new (buf) S101C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(928,656), "sizeof(S101C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C2)");
    check_base_class_offset(lv, (S101C7*)(S101C6*)(S101C5*)(S101C4*)(S101C3*), 0, "S101C2");
    check_base_class_offset(lv, (S101C6*)(S101C5*)(S101C4*)(S101C3*), 0, "S101C2");
    check_base_class_offset(lv, (S101C5*)(S101C4*)(S101C3*), 0, "S101C2");
    check_base_class_offset(lv, (S101C4*)(S101C3*), 0, "S101C2");
    check_base_class_offset(lv, (S101C3*), 0, "S101C2");
    check_field_offset(lv, s101c2f0, ABISELECT(864,616), "S101C2.s101c2f0");
    check_field_offset(lv, s101c2f1, ABISELECT(880,624), "S101C2.s101c2f1");
    check_field_offset(lv, s101c2f2, ABISELECT(888,632), "S101C2.s101c2f2");
    check_field_offset(lv, s101c2f3, ABISELECT(896,636), "S101C2.s101c2f3");
    set_bf_and_test(lv, s101c2f4, ABISELECT(904,640), 0, 1, 1, "S101C2");
    set_bf_and_test(lv, s101c2f5, ABISELECT(904,640), 1, 1, 1, "S101C2");
    check_field_offset(lv, s101c2f6, ABISELECT(912,644), "S101C2.s101c2f6");
    test_class_info(&lv, &cd_S101C2);
    dp->~S101C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C2(Test_S101C2, "S101C2", ABISELECT(928,656));

#else // __cplusplus

extern void _ZN6S101C2C1Ev();
extern void _ZN6S101C2D1Ev();
Name_Map name_map_S101C2[] = {
  NSPAIR(_ZN6S101C2C1Ev),
  NSPAIR(_ZN6S101C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S101C7;
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
extern Class_Descriptor cd_S101C6;
extern VTBL_ENTRY _ZTI6S101C6[];
extern  VTBL_ENTRY _ZTV6S101C6[];
extern Class_Descriptor cd_S101C5;
extern VTBL_ENTRY _ZTI6S101C5[];
extern  VTBL_ENTRY _ZTV6S101C5[];
extern Class_Descriptor cd_S101C4;
extern VTBL_ENTRY _ZTI6S101C4[];
extern  VTBL_ENTRY _ZTV6S101C4[];
extern Class_Descriptor cd_S101C3;
extern VTBL_ENTRY _ZTI6S101C3[];
extern  VTBL_ENTRY _ZTV6S101C3[];
static Base_Class bases_S101C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S101C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S101C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S101C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S101C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S101C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S101C2[];
extern void _ZN6S101C2D1Ev();
extern void _ZN6S101C2D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
extern void _ZN6S101C63v69Ev();
extern void _ZN6S101C63v70Ev();
extern void _ZN6S101C53v71Ev();
extern void _ZN6S101C53v72Ev();
extern void _ZN6S101C53v73Ev();
extern void _ZN6S101C53v74Ev();
extern void _ZN6S101C53v75Ev();
extern void _ZN6S101C53v76Ev();
extern void _ZN6S101C53v77Ev();
extern void _ZN6S101C53v78Ev();
extern void _ZN6S101C53v79Ev();
extern void _ZN6S101C53v80Ev();
extern void _ZN6S101C53v81Ev();
extern void _ZN6S101C53v82Ev();
extern void _ZN6S101C53v83Ev();
extern void _ZN6S101C53v84Ev();
extern void _ZN6S101C53v85Ev();
extern void _ZN6S101C53v86Ev();
extern void _ZN6S101C53v87Ev();
extern void _ZN6S101C53v88Ev();
extern void _ZN6S101C53v89Ev();
extern void _ZN6S101C53v90Ev();
extern void _ZN6S101C53v91Ev();
extern void _ZN6S101C53v92Ev();
extern void _ZN6S101C53v93Ev();
extern void _ZN6S101C53v94Ev();
extern void _ZN6S101C53v95Ev();
extern void _ZN6S101C53v96Ev();
extern void _ZN6S101C53v97Ev();
extern void _ZN6S101C53v98Ev();
extern void _ZN6S101C53v99Ev();
extern void _ZN6S101C54v100Ev();
extern void _ZN6S101C54v101Ev();
extern void _ZN6S101C54v102Ev();
extern void _ZN6S101C54v103Ev();
extern void _ZN6S101C54v104Ev();
extern void _ZN6S101C54v105Ev();
extern void _ZN6S101C54v106Ev();
extern void _ZN6S101C54v107Ev();
extern void _ZN6S101C54v108Ev();
extern void _ZN6S101C54v109Ev();
extern void _ZN6S101C54v110Ev();
extern void _ZN6S101C54v111Ev();
extern void _ZN6S101C54v112Ev();
extern void _ZN6S101C54v113Ev();
extern void _ZN6S101C54v114Ev();
extern void _ZN6S101C54v115Ev();
extern void _ZN6S101C54v116Ev();
extern void _ZN6S101C54v117Ev();
extern void _ZN6S101C54v118Ev();
extern void _ZN6S101C54v119Ev();
extern void _ZN6S101C54v120Ev();
extern void _ZN6S101C54v121Ev();
extern void _ZN6S101C54v122Ev();
extern void _ZN6S101C54v123Ev();
extern void _ZN6S101C54v124Ev();
extern void _ZN6S101C54v125Ev();
extern void _ZN6S101C54v126Ev();
extern void _ZN6S101C54v127Ev();
extern void _ZN6S101C54v128Ev();
extern void _ZN6S101C54v129Ev();
extern void _ZN6S101C54v130Ev();
extern void _ZN6S101C54v131Ev();
extern void _ZN6S101C54v132Ev();
extern void _ZN6S101C54v133Ev();
extern void _ZN6S101C54v134Ev();
extern void _ZN6S101C54v135Ev();
extern void _ZN6S101C54v136Ev();
extern void _ZN6S101C54v137Ev();
extern void _ZN6S101C54v138Ev();
extern void _ZN6S101C54v139Ev();
extern void _ZN6S101C54v140Ev();
extern void _ZN6S101C54v141Ev();
extern void _ZN6S101C54v142Ev();
extern void _ZN6S101C54v143Ev();
extern void _ZN6S101C54v144Ev();
extern void _ZN6S101C54v145Ev();
extern void _ZN6S101C54v146Ev();
extern void _ZN6S101C44v147Ev();
extern void _ZN6S101C44v148Ev();
extern void _ZN6S101C44v149Ev();
extern void _ZN6S101C44v150Ev();
extern void _ZN6S101C44v151Ev();
extern void _ZN6S101C44v152Ev();
extern void _ZN6S101C44v153Ev();
extern void _ZN6S101C44v154Ev();
extern void _ZN6S101C44v155Ev();
extern void _ZN6S101C44v156Ev();
extern void _ZN6S101C44v157Ev();
extern void _ZN6S101C44v158Ev();
extern void _ZN6S101C44v159Ev();
extern void _ZN6S101C44v160Ev();
extern void _ZN6S101C44v161Ev();
extern void _ZN6S101C44v162Ev();
extern void _ZN6S101C44v163Ev();
extern void _ZN6S101C44v164Ev();
extern void _ZN6S101C44v165Ev();
extern void _ZN6S101C44v166Ev();
extern void _ZN6S101C44v167Ev();
extern void _ZN6S101C44v168Ev();
extern void _ZN6S101C44v169Ev();
extern void _ZN6S101C44v170Ev();
extern void _ZN6S101C44v171Ev();
extern void _ZN6S101C44v172Ev();
extern void _ZN6S101C44v173Ev();
extern void _ZN6S101C44v174Ev();
extern void _ZN6S101C44v175Ev();
extern void _ZN6S101C44v176Ev();
extern void _ZN6S101C44v177Ev();
extern void _ZN6S101C44v178Ev();
extern void _ZN6S101C44v179Ev();
extern void _ZN6S101C44v180Ev();
extern void _ZN6S101C44v181Ev();
extern void _ZN6S101C44v182Ev();
extern void _ZN6S101C44v183Ev();
extern void _ZN6S101C44v184Ev();
extern void _ZN6S101C44v185Ev();
extern void _ZN6S101C34v186Ev();
extern void _ZN6S101C34v187Ev();
extern void _ZN6S101C34v188Ev();
extern void _ZN6S101C34v189Ev();
extern void _ZN6S101C34v190Ev();
extern void _ZN6S101C34v191Ev();
extern void _ZN6S101C34v192Ev();
extern void _ZN6S101C34v193Ev();
extern void _ZN6S101C34v194Ev();
extern void _ZN6S101C34v195Ev();
extern void _ZN6S101C34v196Ev();
extern void _ZN6S101C34v197Ev();
extern void _ZN6S101C34v198Ev();
extern void _ZN6S101C34v199Ev();
extern void _ZN6S101C34v200Ev();
extern void _ZN6S101C34v201Ev();
extern void _ZN6S101C34v202Ev();
extern void _ZN6S101C34v203Ev();
extern void _ZN6S101C34v204Ev();
extern void _ZN6S101C34v205Ev();
extern void _ZN6S101C34v206Ev();
extern void _ZN6S101C34v207Ev();
extern void _ZN6S101C34v208Ev();
extern void _ZN6S101C24v209Ev();
extern void _ZN6S101C24v210Ev();
extern void _ZN6S101C24v211Ev();
extern void _ZN6S101C24v212Ev();
extern void _ZN6S101C24v213Ev();
extern void _ZN6S101C24v214Ev();
extern void _ZN6S101C24v215Ev();
extern void _ZN6S101C24v216Ev();
static  VTBL_ENTRY vtc_S101C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C2[0]),
  (VTBL_ENTRY)&_ZN6S101C2D1Ev,
  (VTBL_ENTRY)&_ZN6S101C2D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
  (VTBL_ENTRY)&_ZN6S101C63v69Ev,
  (VTBL_ENTRY)&_ZN6S101C63v70Ev,
  (VTBL_ENTRY)&_ZN6S101C53v71Ev,
  (VTBL_ENTRY)&_ZN6S101C53v72Ev,
  (VTBL_ENTRY)&_ZN6S101C53v73Ev,
  (VTBL_ENTRY)&_ZN6S101C53v74Ev,
  (VTBL_ENTRY)&_ZN6S101C53v75Ev,
  (VTBL_ENTRY)&_ZN6S101C53v76Ev,
  (VTBL_ENTRY)&_ZN6S101C53v77Ev,
  (VTBL_ENTRY)&_ZN6S101C53v78Ev,
  (VTBL_ENTRY)&_ZN6S101C53v79Ev,
  (VTBL_ENTRY)&_ZN6S101C53v80Ev,
  (VTBL_ENTRY)&_ZN6S101C53v81Ev,
  (VTBL_ENTRY)&_ZN6S101C53v82Ev,
  (VTBL_ENTRY)&_ZN6S101C53v83Ev,
  (VTBL_ENTRY)&_ZN6S101C53v84Ev,
  (VTBL_ENTRY)&_ZN6S101C53v85Ev,
  (VTBL_ENTRY)&_ZN6S101C53v86Ev,
  (VTBL_ENTRY)&_ZN6S101C53v87Ev,
  (VTBL_ENTRY)&_ZN6S101C53v88Ev,
  (VTBL_ENTRY)&_ZN6S101C53v89Ev,
  (VTBL_ENTRY)&_ZN6S101C53v90Ev,
  (VTBL_ENTRY)&_ZN6S101C53v91Ev,
  (VTBL_ENTRY)&_ZN6S101C53v92Ev,
  (VTBL_ENTRY)&_ZN6S101C53v93Ev,
  (VTBL_ENTRY)&_ZN6S101C53v94Ev,
  (VTBL_ENTRY)&_ZN6S101C53v95Ev,
  (VTBL_ENTRY)&_ZN6S101C53v96Ev,
  (VTBL_ENTRY)&_ZN6S101C53v97Ev,
  (VTBL_ENTRY)&_ZN6S101C53v98Ev,
  (VTBL_ENTRY)&_ZN6S101C53v99Ev,
  (VTBL_ENTRY)&_ZN6S101C54v100Ev,
  (VTBL_ENTRY)&_ZN6S101C54v101Ev,
  (VTBL_ENTRY)&_ZN6S101C54v102Ev,
  (VTBL_ENTRY)&_ZN6S101C54v103Ev,
  (VTBL_ENTRY)&_ZN6S101C54v104Ev,
  (VTBL_ENTRY)&_ZN6S101C54v105Ev,
  (VTBL_ENTRY)&_ZN6S101C54v106Ev,
  (VTBL_ENTRY)&_ZN6S101C54v107Ev,
  (VTBL_ENTRY)&_ZN6S101C54v108Ev,
  (VTBL_ENTRY)&_ZN6S101C54v109Ev,
  (VTBL_ENTRY)&_ZN6S101C54v110Ev,
  (VTBL_ENTRY)&_ZN6S101C54v111Ev,
  (VTBL_ENTRY)&_ZN6S101C54v112Ev,
  (VTBL_ENTRY)&_ZN6S101C54v113Ev,
  (VTBL_ENTRY)&_ZN6S101C54v114Ev,
  (VTBL_ENTRY)&_ZN6S101C54v115Ev,
  (VTBL_ENTRY)&_ZN6S101C54v116Ev,
  (VTBL_ENTRY)&_ZN6S101C54v117Ev,
  (VTBL_ENTRY)&_ZN6S101C54v118Ev,
  (VTBL_ENTRY)&_ZN6S101C54v119Ev,
  (VTBL_ENTRY)&_ZN6S101C54v120Ev,
  (VTBL_ENTRY)&_ZN6S101C54v121Ev,
  (VTBL_ENTRY)&_ZN6S101C54v122Ev,
  (VTBL_ENTRY)&_ZN6S101C54v123Ev,
  (VTBL_ENTRY)&_ZN6S101C54v124Ev,
  (VTBL_ENTRY)&_ZN6S101C54v125Ev,
  (VTBL_ENTRY)&_ZN6S101C54v126Ev,
  (VTBL_ENTRY)&_ZN6S101C54v127Ev,
  (VTBL_ENTRY)&_ZN6S101C54v128Ev,
  (VTBL_ENTRY)&_ZN6S101C54v129Ev,
  (VTBL_ENTRY)&_ZN6S101C54v130Ev,
  (VTBL_ENTRY)&_ZN6S101C54v131Ev,
  (VTBL_ENTRY)&_ZN6S101C54v132Ev,
  (VTBL_ENTRY)&_ZN6S101C54v133Ev,
  (VTBL_ENTRY)&_ZN6S101C54v134Ev,
  (VTBL_ENTRY)&_ZN6S101C54v135Ev,
  (VTBL_ENTRY)&_ZN6S101C54v136Ev,
  (VTBL_ENTRY)&_ZN6S101C54v137Ev,
  (VTBL_ENTRY)&_ZN6S101C54v138Ev,
  (VTBL_ENTRY)&_ZN6S101C54v139Ev,
  (VTBL_ENTRY)&_ZN6S101C54v140Ev,
  (VTBL_ENTRY)&_ZN6S101C54v141Ev,
  (VTBL_ENTRY)&_ZN6S101C54v142Ev,
  (VTBL_ENTRY)&_ZN6S101C54v143Ev,
  (VTBL_ENTRY)&_ZN6S101C54v144Ev,
  (VTBL_ENTRY)&_ZN6S101C54v145Ev,
  (VTBL_ENTRY)&_ZN6S101C54v146Ev,
  (VTBL_ENTRY)&_ZN6S101C44v147Ev,
  (VTBL_ENTRY)&_ZN6S101C44v148Ev,
  (VTBL_ENTRY)&_ZN6S101C44v149Ev,
  (VTBL_ENTRY)&_ZN6S101C44v150Ev,
  (VTBL_ENTRY)&_ZN6S101C44v151Ev,
  (VTBL_ENTRY)&_ZN6S101C44v152Ev,
  (VTBL_ENTRY)&_ZN6S101C44v153Ev,
  (VTBL_ENTRY)&_ZN6S101C44v154Ev,
  (VTBL_ENTRY)&_ZN6S101C44v155Ev,
  (VTBL_ENTRY)&_ZN6S101C44v156Ev,
  (VTBL_ENTRY)&_ZN6S101C44v157Ev,
  (VTBL_ENTRY)&_ZN6S101C44v158Ev,
  (VTBL_ENTRY)&_ZN6S101C44v159Ev,
  (VTBL_ENTRY)&_ZN6S101C44v160Ev,
  (VTBL_ENTRY)&_ZN6S101C44v161Ev,
  (VTBL_ENTRY)&_ZN6S101C44v162Ev,
  (VTBL_ENTRY)&_ZN6S101C44v163Ev,
  (VTBL_ENTRY)&_ZN6S101C44v164Ev,
  (VTBL_ENTRY)&_ZN6S101C44v165Ev,
  (VTBL_ENTRY)&_ZN6S101C44v166Ev,
  (VTBL_ENTRY)&_ZN6S101C44v167Ev,
  (VTBL_ENTRY)&_ZN6S101C44v168Ev,
  (VTBL_ENTRY)&_ZN6S101C44v169Ev,
  (VTBL_ENTRY)&_ZN6S101C44v170Ev,
  (VTBL_ENTRY)&_ZN6S101C44v171Ev,
  (VTBL_ENTRY)&_ZN6S101C44v172Ev,
  (VTBL_ENTRY)&_ZN6S101C44v173Ev,
  (VTBL_ENTRY)&_ZN6S101C44v174Ev,
  (VTBL_ENTRY)&_ZN6S101C44v175Ev,
  (VTBL_ENTRY)&_ZN6S101C44v176Ev,
  (VTBL_ENTRY)&_ZN6S101C44v177Ev,
  (VTBL_ENTRY)&_ZN6S101C44v178Ev,
  (VTBL_ENTRY)&_ZN6S101C44v179Ev,
  (VTBL_ENTRY)&_ZN6S101C44v180Ev,
  (VTBL_ENTRY)&_ZN6S101C44v181Ev,
  (VTBL_ENTRY)&_ZN6S101C44v182Ev,
  (VTBL_ENTRY)&_ZN6S101C44v183Ev,
  (VTBL_ENTRY)&_ZN6S101C44v184Ev,
  (VTBL_ENTRY)&_ZN6S101C44v185Ev,
  (VTBL_ENTRY)&_ZN6S101C34v186Ev,
  (VTBL_ENTRY)&_ZN6S101C34v187Ev,
  (VTBL_ENTRY)&_ZN6S101C34v188Ev,
  (VTBL_ENTRY)&_ZN6S101C34v189Ev,
  (VTBL_ENTRY)&_ZN6S101C34v190Ev,
  (VTBL_ENTRY)&_ZN6S101C34v191Ev,
  (VTBL_ENTRY)&_ZN6S101C34v192Ev,
  (VTBL_ENTRY)&_ZN6S101C34v193Ev,
  (VTBL_ENTRY)&_ZN6S101C34v194Ev,
  (VTBL_ENTRY)&_ZN6S101C34v195Ev,
  (VTBL_ENTRY)&_ZN6S101C34v196Ev,
  (VTBL_ENTRY)&_ZN6S101C34v197Ev,
  (VTBL_ENTRY)&_ZN6S101C34v198Ev,
  (VTBL_ENTRY)&_ZN6S101C34v199Ev,
  (VTBL_ENTRY)&_ZN6S101C34v200Ev,
  (VTBL_ENTRY)&_ZN6S101C34v201Ev,
  (VTBL_ENTRY)&_ZN6S101C34v202Ev,
  (VTBL_ENTRY)&_ZN6S101C34v203Ev,
  (VTBL_ENTRY)&_ZN6S101C34v204Ev,
  (VTBL_ENTRY)&_ZN6S101C34v205Ev,
  (VTBL_ENTRY)&_ZN6S101C34v206Ev,
  (VTBL_ENTRY)&_ZN6S101C34v207Ev,
  (VTBL_ENTRY)&_ZN6S101C34v208Ev,
  (VTBL_ENTRY)&_ZN6S101C24v209Ev,
  (VTBL_ENTRY)&_ZN6S101C24v210Ev,
  (VTBL_ENTRY)&_ZN6S101C24v211Ev,
  (VTBL_ENTRY)&_ZN6S101C24v212Ev,
  (VTBL_ENTRY)&_ZN6S101C24v213Ev,
  (VTBL_ENTRY)&_ZN6S101C24v214Ev,
  (VTBL_ENTRY)&_ZN6S101C24v215Ev,
  (VTBL_ENTRY)&_ZN6S101C24v216Ev,
};
extern VTBL_ENTRY _ZTI6S101C2[];
extern  VTBL_ENTRY _ZTV6S101C2[];
Class_Descriptor cd_S101C2 = {  "S101C2", // class name
  bases_S101C2, 5,
  &(vtc_S101C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(928,656), // object size
  NSPAIRA(_ZTI6S101C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S101C2),216, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S101C1  : S101C2 {
  void *s101c1f0[6];
  ::S85C22_nt s101c1f1;
  int s101c1f2;
  ::S80C10_nt s101c1f3;
  void *s101c1f4[4];
  char s101c1f5;
  int s101c1f6;
  ::S80C21_nt s101c1f7;
  virtual  ~S101C1(); // _ZN6S101C1D1Ev
  virtual void  v1(); // _ZN6S101C12v1Ev
  virtual void  v2(); // _ZN6S101C12v2Ev
  virtual void  v3(); // _ZN6S101C12v3Ev
  virtual void  v4(); // _ZN6S101C12v4Ev
  S101C1(); // tgen
};
//SIG(1 S101C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v69 v70} vd v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v209 v210 v211 v212 v213 v214 v215 v216 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC28{ BC17}} vd v1 v2 v3 v4 Fp[6] FC13 Fi FC29{ BC30{ BC12}} Fp[4] Fc Fi FC21}


 S101C1 ::~S101C1(){ note_dtor("S101C1", this);}
void  S101C1 ::v1(){vfunc_called(this, "_ZN6S101C12v1Ev");}
void  S101C1 ::v2(){vfunc_called(this, "_ZN6S101C12v2Ev");}
void  S101C1 ::v3(){vfunc_called(this, "_ZN6S101C12v3Ev");}
void  S101C1 ::v4(){vfunc_called(this, "_ZN6S101C12v4Ev");}
S101C1 ::S101C1(){ note_ctor("S101C1", this);} // tgen

static void Test_S101C1()
{
  extern Class_Descriptor cd_S101C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(135,187)];
    init_test(&cd_S101C1, buf);
    S101C1 *dp, &lv = *(dp=new (buf) S101C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1072,744), "sizeof(S101C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S101C1)");
    check_base_class_offset(lv, (S101C7*)(S101C6*)(S101C5*)(S101C4*)(S101C3*)(S101C2*), 0, "S101C1");
    check_base_class_offset(lv, (S101C6*)(S101C5*)(S101C4*)(S101C3*)(S101C2*), 0, "S101C1");
    check_base_class_offset(lv, (S101C5*)(S101C4*)(S101C3*)(S101C2*), 0, "S101C1");
    check_base_class_offset(lv, (S101C4*)(S101C3*)(S101C2*), 0, "S101C1");
    check_base_class_offset(lv, (S101C3*)(S101C2*), 0, "S101C1");
    check_base_class_offset(lv, (S101C2*), 0, "S101C1");
    check_field_offset(lv, s101c1f0, ABISELECT(928,656), "S101C1.s101c1f0");
    check_field_offset(lv, s101c1f1, ABISELECT(976,680), "S101C1.s101c1f1");
    check_field_offset(lv, s101c1f2, ABISELECT(992,692), "S101C1.s101c1f2");
    check_field_offset(lv, s101c1f3, ABISELECT(1000,696), "S101C1.s101c1f3");
    check_field_offset(lv, s101c1f4, ABISELECT(1016,708), "S101C1.s101c1f4");
    check_field_offset(lv, s101c1f5, ABISELECT(1048,724), "S101C1.s101c1f5");
    check_field_offset(lv, s101c1f6, ABISELECT(1052,728), "S101C1.s101c1f6");
    check_field_offset(lv, s101c1f7, ABISELECT(1056,732), "S101C1.s101c1f7");
    test_class_info(&lv, &cd_S101C1);
    dp->~S101C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS101C1(Test_S101C1, "S101C1", ABISELECT(1072,744));

#else // __cplusplus

extern void _ZN6S101C1C1Ev();
extern void _ZN6S101C1D1Ev();
Name_Map name_map_S101C1[] = {
  NSPAIR(_ZN6S101C1C1Ev),
  NSPAIR(_ZN6S101C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S101C7;
extern VTBL_ENTRY _ZTI6S101C7[];
extern  VTBL_ENTRY _ZTV6S101C7[];
extern Class_Descriptor cd_S101C6;
extern VTBL_ENTRY _ZTI6S101C6[];
extern  VTBL_ENTRY _ZTV6S101C6[];
extern Class_Descriptor cd_S101C5;
extern VTBL_ENTRY _ZTI6S101C5[];
extern  VTBL_ENTRY _ZTV6S101C5[];
extern Class_Descriptor cd_S101C4;
extern VTBL_ENTRY _ZTI6S101C4[];
extern  VTBL_ENTRY _ZTV6S101C4[];
extern Class_Descriptor cd_S101C3;
extern VTBL_ENTRY _ZTI6S101C3[];
extern  VTBL_ENTRY _ZTV6S101C3[];
extern Class_Descriptor cd_S101C2;
extern VTBL_ENTRY _ZTI6S101C2[];
extern  VTBL_ENTRY _ZTV6S101C2[];
static Base_Class bases_S101C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S101C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S101C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S101C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S101C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S101C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S101C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S101C1[];
extern void _ZN6S101C1D1Ev();
extern void _ZN6S101C1D0Ev();
extern void _ZN6S101C72v5Ev();
extern void _ZN6S101C72v6Ev();
extern void _ZN6S101C72v7Ev();
extern void _ZN6S101C72v8Ev();
extern void _ZN6S101C72v9Ev();
extern void _ZN6S101C73v10Ev();
extern void _ZN6S101C73v11Ev();
extern void _ZN6S101C73v12Ev();
extern void _ZN6S101C73v13Ev();
extern void _ZN6S101C73v14Ev();
extern void _ZN6S101C73v15Ev();
extern void _ZN6S101C73v16Ev();
extern void _ZN6S101C73v17Ev();
extern void _ZN6S101C73v18Ev();
extern void _ZN6S101C73v19Ev();
extern void _ZN6S101C73v20Ev();
extern void _ZN6S101C73v21Ev();
extern void _ZN6S101C73v22Ev();
extern void _ZN6S101C73v23Ev();
extern void _ZN6S101C73v24Ev();
extern void _ZN6S101C73v25Ev();
extern void _ZN6S101C73v26Ev();
extern void _ZN6S101C73v27Ev();
extern void _ZN6S101C73v28Ev();
extern void _ZN6S101C73v29Ev();
extern void _ZN6S101C73v30Ev();
extern void _ZN6S101C73v31Ev();
extern void _ZN6S101C73v32Ev();
extern void _ZN6S101C73v33Ev();
extern void _ZN6S101C73v34Ev();
extern void _ZN6S101C73v35Ev();
extern void _ZN6S101C73v36Ev();
extern void _ZN6S101C73v37Ev();
extern void _ZN6S101C73v38Ev();
extern void _ZN6S101C73v39Ev();
extern void _ZN6S101C73v40Ev();
extern void _ZN6S101C73v41Ev();
extern void _ZN6S101C73v42Ev();
extern void _ZN6S101C73v43Ev();
extern void _ZN6S101C73v44Ev();
extern void _ZN6S101C73v45Ev();
extern void _ZN6S101C73v46Ev();
extern void _ZN6S101C73v47Ev();
extern void _ZN6S101C73v48Ev();
extern void _ZN6S101C73v49Ev();
extern void _ZN6S101C73v50Ev();
extern void _ZN6S101C73v51Ev();
extern void _ZN6S101C73v52Ev();
extern void _ZN6S101C73v53Ev();
extern void _ZN6S101C73v54Ev();
extern void _ZN6S101C73v55Ev();
extern void _ZN6S101C73v56Ev();
extern void _ZN6S101C73v57Ev();
extern void _ZN6S101C73v58Ev();
extern void _ZN6S101C73v59Ev();
extern void _ZN6S101C73v60Ev();
extern void _ZN6S101C73v61Ev();
extern void _ZN6S101C73v62Ev();
extern void _ZN6S101C73v63Ev();
extern void _ZN6S101C73v64Ev();
extern void _ZN6S101C73v65Ev();
extern void _ZN6S101C73v66Ev();
extern void _ZN6S101C73v67Ev();
extern void _ZN6S101C73v68Ev();
extern void _ZN6S101C63v69Ev();
extern void _ZN6S101C63v70Ev();
extern void _ZN6S101C53v71Ev();
extern void _ZN6S101C53v72Ev();
extern void _ZN6S101C53v73Ev();
extern void _ZN6S101C53v74Ev();
extern void _ZN6S101C53v75Ev();
extern void _ZN6S101C53v76Ev();
extern void _ZN6S101C53v77Ev();
extern void _ZN6S101C53v78Ev();
extern void _ZN6S101C53v79Ev();
extern void _ZN6S101C53v80Ev();
extern void _ZN6S101C53v81Ev();
extern void _ZN6S101C53v82Ev();
extern void _ZN6S101C53v83Ev();
extern void _ZN6S101C53v84Ev();
extern void _ZN6S101C53v85Ev();
extern void _ZN6S101C53v86Ev();
extern void _ZN6S101C53v87Ev();
extern void _ZN6S101C53v88Ev();
extern void _ZN6S101C53v89Ev();
extern void _ZN6S101C53v90Ev();
extern void _ZN6S101C53v91Ev();
extern void _ZN6S101C53v92Ev();
extern void _ZN6S101C53v93Ev();
extern void _ZN6S101C53v94Ev();
extern void _ZN6S101C53v95Ev();
extern void _ZN6S101C53v96Ev();
extern void _ZN6S101C53v97Ev();
extern void _ZN6S101C53v98Ev();
extern void _ZN6S101C53v99Ev();
extern void _ZN6S101C54v100Ev();
extern void _ZN6S101C54v101Ev();
extern void _ZN6S101C54v102Ev();
extern void _ZN6S101C54v103Ev();
extern void _ZN6S101C54v104Ev();
extern void _ZN6S101C54v105Ev();
extern void _ZN6S101C54v106Ev();
extern void _ZN6S101C54v107Ev();
extern void _ZN6S101C54v108Ev();
extern void _ZN6S101C54v109Ev();
extern void _ZN6S101C54v110Ev();
extern void _ZN6S101C54v111Ev();
extern void _ZN6S101C54v112Ev();
extern void _ZN6S101C54v113Ev();
extern void _ZN6S101C54v114Ev();
extern void _ZN6S101C54v115Ev();
extern void _ZN6S101C54v116Ev();
extern void _ZN6S101C54v117Ev();
extern void _ZN6S101C54v118Ev();
extern void _ZN6S101C54v119Ev();
extern void _ZN6S101C54v120Ev();
extern void _ZN6S101C54v121Ev();
extern void _ZN6S101C54v122Ev();
extern void _ZN6S101C54v123Ev();
extern void _ZN6S101C54v124Ev();
extern void _ZN6S101C54v125Ev();
extern void _ZN6S101C54v126Ev();
extern void _ZN6S101C54v127Ev();
extern void _ZN6S101C54v128Ev();
extern void _ZN6S101C54v129Ev();
extern void _ZN6S101C54v130Ev();
extern void _ZN6S101C54v131Ev();
extern void _ZN6S101C54v132Ev();
extern void _ZN6S101C54v133Ev();
extern void _ZN6S101C54v134Ev();
extern void _ZN6S101C54v135Ev();
extern void _ZN6S101C54v136Ev();
extern void _ZN6S101C54v137Ev();
extern void _ZN6S101C54v138Ev();
extern void _ZN6S101C54v139Ev();
extern void _ZN6S101C54v140Ev();
extern void _ZN6S101C54v141Ev();
extern void _ZN6S101C54v142Ev();
extern void _ZN6S101C54v143Ev();
extern void _ZN6S101C54v144Ev();
extern void _ZN6S101C54v145Ev();
extern void _ZN6S101C54v146Ev();
extern void _ZN6S101C44v147Ev();
extern void _ZN6S101C44v148Ev();
extern void _ZN6S101C44v149Ev();
extern void _ZN6S101C44v150Ev();
extern void _ZN6S101C44v151Ev();
extern void _ZN6S101C44v152Ev();
extern void _ZN6S101C44v153Ev();
extern void _ZN6S101C44v154Ev();
extern void _ZN6S101C44v155Ev();
extern void _ZN6S101C44v156Ev();
extern void _ZN6S101C44v157Ev();
extern void _ZN6S101C44v158Ev();
extern void _ZN6S101C44v159Ev();
extern void _ZN6S101C44v160Ev();
extern void _ZN6S101C44v161Ev();
extern void _ZN6S101C44v162Ev();
extern void _ZN6S101C44v163Ev();
extern void _ZN6S101C44v164Ev();
extern void _ZN6S101C44v165Ev();
extern void _ZN6S101C44v166Ev();
extern void _ZN6S101C44v167Ev();
extern void _ZN6S101C44v168Ev();
extern void _ZN6S101C44v169Ev();
extern void _ZN6S101C44v170Ev();
extern void _ZN6S101C44v171Ev();
extern void _ZN6S101C44v172Ev();
extern void _ZN6S101C44v173Ev();
extern void _ZN6S101C44v174Ev();
extern void _ZN6S101C44v175Ev();
extern void _ZN6S101C44v176Ev();
extern void _ZN6S101C44v177Ev();
extern void _ZN6S101C44v178Ev();
extern void _ZN6S101C44v179Ev();
extern void _ZN6S101C44v180Ev();
extern void _ZN6S101C44v181Ev();
extern void _ZN6S101C44v182Ev();
extern void _ZN6S101C44v183Ev();
extern void _ZN6S101C44v184Ev();
extern void _ZN6S101C44v185Ev();
extern void _ZN6S101C34v186Ev();
extern void _ZN6S101C34v187Ev();
extern void _ZN6S101C34v188Ev();
extern void _ZN6S101C34v189Ev();
extern void _ZN6S101C34v190Ev();
extern void _ZN6S101C34v191Ev();
extern void _ZN6S101C34v192Ev();
extern void _ZN6S101C34v193Ev();
extern void _ZN6S101C34v194Ev();
extern void _ZN6S101C34v195Ev();
extern void _ZN6S101C34v196Ev();
extern void _ZN6S101C34v197Ev();
extern void _ZN6S101C34v198Ev();
extern void _ZN6S101C34v199Ev();
extern void _ZN6S101C34v200Ev();
extern void _ZN6S101C34v201Ev();
extern void _ZN6S101C34v202Ev();
extern void _ZN6S101C34v203Ev();
extern void _ZN6S101C34v204Ev();
extern void _ZN6S101C34v205Ev();
extern void _ZN6S101C34v206Ev();
extern void _ZN6S101C34v207Ev();
extern void _ZN6S101C34v208Ev();
extern void _ZN6S101C24v209Ev();
extern void _ZN6S101C24v210Ev();
extern void _ZN6S101C24v211Ev();
extern void _ZN6S101C24v212Ev();
extern void _ZN6S101C24v213Ev();
extern void _ZN6S101C24v214Ev();
extern void _ZN6S101C24v215Ev();
extern void _ZN6S101C24v216Ev();
extern void _ZN6S101C12v1Ev();
extern void _ZN6S101C12v2Ev();
extern void _ZN6S101C12v3Ev();
extern void _ZN6S101C12v4Ev();
static  VTBL_ENTRY vtc_S101C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S101C1[0]),
  (VTBL_ENTRY)&_ZN6S101C1D1Ev,
  (VTBL_ENTRY)&_ZN6S101C1D0Ev,
  (VTBL_ENTRY)&_ZN6S101C72v5Ev,
  (VTBL_ENTRY)&_ZN6S101C72v6Ev,
  (VTBL_ENTRY)&_ZN6S101C72v7Ev,
  (VTBL_ENTRY)&_ZN6S101C72v8Ev,
  (VTBL_ENTRY)&_ZN6S101C72v9Ev,
  (VTBL_ENTRY)&_ZN6S101C73v10Ev,
  (VTBL_ENTRY)&_ZN6S101C73v11Ev,
  (VTBL_ENTRY)&_ZN6S101C73v12Ev,
  (VTBL_ENTRY)&_ZN6S101C73v13Ev,
  (VTBL_ENTRY)&_ZN6S101C73v14Ev,
  (VTBL_ENTRY)&_ZN6S101C73v15Ev,
  (VTBL_ENTRY)&_ZN6S101C73v16Ev,
  (VTBL_ENTRY)&_ZN6S101C73v17Ev,
  (VTBL_ENTRY)&_ZN6S101C73v18Ev,
  (VTBL_ENTRY)&_ZN6S101C73v19Ev,
  (VTBL_ENTRY)&_ZN6S101C73v20Ev,
  (VTBL_ENTRY)&_ZN6S101C73v21Ev,
  (VTBL_ENTRY)&_ZN6S101C73v22Ev,
  (VTBL_ENTRY)&_ZN6S101C73v23Ev,
  (VTBL_ENTRY)&_ZN6S101C73v24Ev,
  (VTBL_ENTRY)&_ZN6S101C73v25Ev,
  (VTBL_ENTRY)&_ZN6S101C73v26Ev,
  (VTBL_ENTRY)&_ZN6S101C73v27Ev,
  (VTBL_ENTRY)&_ZN6S101C73v28Ev,
  (VTBL_ENTRY)&_ZN6S101C73v29Ev,
  (VTBL_ENTRY)&_ZN6S101C73v30Ev,
  (VTBL_ENTRY)&_ZN6S101C73v31Ev,
  (VTBL_ENTRY)&_ZN6S101C73v32Ev,
  (VTBL_ENTRY)&_ZN6S101C73v33Ev,
  (VTBL_ENTRY)&_ZN6S101C73v34Ev,
  (VTBL_ENTRY)&_ZN6S101C73v35Ev,
  (VTBL_ENTRY)&_ZN6S101C73v36Ev,
  (VTBL_ENTRY)&_ZN6S101C73v37Ev,
  (VTBL_ENTRY)&_ZN6S101C73v38Ev,
  (VTBL_ENTRY)&_ZN6S101C73v39Ev,
  (VTBL_ENTRY)&_ZN6S101C73v40Ev,
  (VTBL_ENTRY)&_ZN6S101C73v41Ev,
  (VTBL_ENTRY)&_ZN6S101C73v42Ev,
  (VTBL_ENTRY)&_ZN6S101C73v43Ev,
  (VTBL_ENTRY)&_ZN6S101C73v44Ev,
  (VTBL_ENTRY)&_ZN6S101C73v45Ev,
  (VTBL_ENTRY)&_ZN6S101C73v46Ev,
  (VTBL_ENTRY)&_ZN6S101C73v47Ev,
  (VTBL_ENTRY)&_ZN6S101C73v48Ev,
  (VTBL_ENTRY)&_ZN6S101C73v49Ev,
  (VTBL_ENTRY)&_ZN6S101C73v50Ev,
  (VTBL_ENTRY)&_ZN6S101C73v51Ev,
  (VTBL_ENTRY)&_ZN6S101C73v52Ev,
  (VTBL_ENTRY)&_ZN6S101C73v53Ev,
  (VTBL_ENTRY)&_ZN6S101C73v54Ev,
  (VTBL_ENTRY)&_ZN6S101C73v55Ev,
  (VTBL_ENTRY)&_ZN6S101C73v56Ev,
  (VTBL_ENTRY)&_ZN6S101C73v57Ev,
  (VTBL_ENTRY)&_ZN6S101C73v58Ev,
  (VTBL_ENTRY)&_ZN6S101C73v59Ev,
  (VTBL_ENTRY)&_ZN6S101C73v60Ev,
  (VTBL_ENTRY)&_ZN6S101C73v61Ev,
  (VTBL_ENTRY)&_ZN6S101C73v62Ev,
  (VTBL_ENTRY)&_ZN6S101C73v63Ev,
  (VTBL_ENTRY)&_ZN6S101C73v64Ev,
  (VTBL_ENTRY)&_ZN6S101C73v65Ev,
  (VTBL_ENTRY)&_ZN6S101C73v66Ev,
  (VTBL_ENTRY)&_ZN6S101C73v67Ev,
  (VTBL_ENTRY)&_ZN6S101C73v68Ev,
  (VTBL_ENTRY)&_ZN6S101C63v69Ev,
  (VTBL_ENTRY)&_ZN6S101C63v70Ev,
  (VTBL_ENTRY)&_ZN6S101C53v71Ev,
  (VTBL_ENTRY)&_ZN6S101C53v72Ev,
  (VTBL_ENTRY)&_ZN6S101C53v73Ev,
  (VTBL_ENTRY)&_ZN6S101C53v74Ev,
  (VTBL_ENTRY)&_ZN6S101C53v75Ev,
  (VTBL_ENTRY)&_ZN6S101C53v76Ev,
  (VTBL_ENTRY)&_ZN6S101C53v77Ev,
  (VTBL_ENTRY)&_ZN6S101C53v78Ev,
  (VTBL_ENTRY)&_ZN6S101C53v79Ev,
  (VTBL_ENTRY)&_ZN6S101C53v80Ev,
  (VTBL_ENTRY)&_ZN6S101C53v81Ev,
  (VTBL_ENTRY)&_ZN6S101C53v82Ev,
  (VTBL_ENTRY)&_ZN6S101C53v83Ev,
  (VTBL_ENTRY)&_ZN6S101C53v84Ev,
  (VTBL_ENTRY)&_ZN6S101C53v85Ev,
  (VTBL_ENTRY)&_ZN6S101C53v86Ev,
  (VTBL_ENTRY)&_ZN6S101C53v87Ev,
  (VTBL_ENTRY)&_ZN6S101C53v88Ev,
  (VTBL_ENTRY)&_ZN6S101C53v89Ev,
  (VTBL_ENTRY)&_ZN6S101C53v90Ev,
  (VTBL_ENTRY)&_ZN6S101C53v91Ev,
  (VTBL_ENTRY)&_ZN6S101C53v92Ev,
  (VTBL_ENTRY)&_ZN6S101C53v93Ev,
  (VTBL_ENTRY)&_ZN6S101C53v94Ev,
  (VTBL_ENTRY)&_ZN6S101C53v95Ev,
  (VTBL_ENTRY)&_ZN6S101C53v96Ev,
  (VTBL_ENTRY)&_ZN6S101C53v97Ev,
  (VTBL_ENTRY)&_ZN6S101C53v98Ev,
  (VTBL_ENTRY)&_ZN6S101C53v99Ev,
  (VTBL_ENTRY)&_ZN6S101C54v100Ev,
  (VTBL_ENTRY)&_ZN6S101C54v101Ev,
  (VTBL_ENTRY)&_ZN6S101C54v102Ev,
  (VTBL_ENTRY)&_ZN6S101C54v103Ev,
  (VTBL_ENTRY)&_ZN6S101C54v104Ev,
  (VTBL_ENTRY)&_ZN6S101C54v105Ev,
  (VTBL_ENTRY)&_ZN6S101C54v106Ev,
  (VTBL_ENTRY)&_ZN6S101C54v107Ev,
  (VTBL_ENTRY)&_ZN6S101C54v108Ev,
  (VTBL_ENTRY)&_ZN6S101C54v109Ev,
  (VTBL_ENTRY)&_ZN6S101C54v110Ev,
  (VTBL_ENTRY)&_ZN6S101C54v111Ev,
  (VTBL_ENTRY)&_ZN6S101C54v112Ev,
  (VTBL_ENTRY)&_ZN6S101C54v113Ev,
  (VTBL_ENTRY)&_ZN6S101C54v114Ev,
  (VTBL_ENTRY)&_ZN6S101C54v115Ev,
  (VTBL_ENTRY)&_ZN6S101C54v116Ev,
  (VTBL_ENTRY)&_ZN6S101C54v117Ev,
  (VTBL_ENTRY)&_ZN6S101C54v118Ev,
  (VTBL_ENTRY)&_ZN6S101C54v119Ev,
  (VTBL_ENTRY)&_ZN6S101C54v120Ev,
  (VTBL_ENTRY)&_ZN6S101C54v121Ev,
  (VTBL_ENTRY)&_ZN6S101C54v122Ev,
  (VTBL_ENTRY)&_ZN6S101C54v123Ev,
  (VTBL_ENTRY)&_ZN6S101C54v124Ev,
  (VTBL_ENTRY)&_ZN6S101C54v125Ev,
  (VTBL_ENTRY)&_ZN6S101C54v126Ev,
  (VTBL_ENTRY)&_ZN6S101C54v127Ev,
  (VTBL_ENTRY)&_ZN6S101C54v128Ev,
  (VTBL_ENTRY)&_ZN6S101C54v129Ev,
  (VTBL_ENTRY)&_ZN6S101C54v130Ev,
  (VTBL_ENTRY)&_ZN6S101C54v131Ev,
  (VTBL_ENTRY)&_ZN6S101C54v132Ev,
  (VTBL_ENTRY)&_ZN6S101C54v133Ev,
  (VTBL_ENTRY)&_ZN6S101C54v134Ev,
  (VTBL_ENTRY)&_ZN6S101C54v135Ev,
  (VTBL_ENTRY)&_ZN6S101C54v136Ev,
  (VTBL_ENTRY)&_ZN6S101C54v137Ev,
  (VTBL_ENTRY)&_ZN6S101C54v138Ev,
  (VTBL_ENTRY)&_ZN6S101C54v139Ev,
  (VTBL_ENTRY)&_ZN6S101C54v140Ev,
  (VTBL_ENTRY)&_ZN6S101C54v141Ev,
  (VTBL_ENTRY)&_ZN6S101C54v142Ev,
  (VTBL_ENTRY)&_ZN6S101C54v143Ev,
  (VTBL_ENTRY)&_ZN6S101C54v144Ev,
  (VTBL_ENTRY)&_ZN6S101C54v145Ev,
  (VTBL_ENTRY)&_ZN6S101C54v146Ev,
  (VTBL_ENTRY)&_ZN6S101C44v147Ev,
  (VTBL_ENTRY)&_ZN6S101C44v148Ev,
  (VTBL_ENTRY)&_ZN6S101C44v149Ev,
  (VTBL_ENTRY)&_ZN6S101C44v150Ev,
  (VTBL_ENTRY)&_ZN6S101C44v151Ev,
  (VTBL_ENTRY)&_ZN6S101C44v152Ev,
  (VTBL_ENTRY)&_ZN6S101C44v153Ev,
  (VTBL_ENTRY)&_ZN6S101C44v154Ev,
  (VTBL_ENTRY)&_ZN6S101C44v155Ev,
  (VTBL_ENTRY)&_ZN6S101C44v156Ev,
  (VTBL_ENTRY)&_ZN6S101C44v157Ev,
  (VTBL_ENTRY)&_ZN6S101C44v158Ev,
  (VTBL_ENTRY)&_ZN6S101C44v159Ev,
  (VTBL_ENTRY)&_ZN6S101C44v160Ev,
  (VTBL_ENTRY)&_ZN6S101C44v161Ev,
  (VTBL_ENTRY)&_ZN6S101C44v162Ev,
  (VTBL_ENTRY)&_ZN6S101C44v163Ev,
  (VTBL_ENTRY)&_ZN6S101C44v164Ev,
  (VTBL_ENTRY)&_ZN6S101C44v165Ev,
  (VTBL_ENTRY)&_ZN6S101C44v166Ev,
  (VTBL_ENTRY)&_ZN6S101C44v167Ev,
  (VTBL_ENTRY)&_ZN6S101C44v168Ev,
  (VTBL_ENTRY)&_ZN6S101C44v169Ev,
  (VTBL_ENTRY)&_ZN6S101C44v170Ev,
  (VTBL_ENTRY)&_ZN6S101C44v171Ev,
  (VTBL_ENTRY)&_ZN6S101C44v172Ev,
  (VTBL_ENTRY)&_ZN6S101C44v173Ev,
  (VTBL_ENTRY)&_ZN6S101C44v174Ev,
  (VTBL_ENTRY)&_ZN6S101C44v175Ev,
  (VTBL_ENTRY)&_ZN6S101C44v176Ev,
  (VTBL_ENTRY)&_ZN6S101C44v177Ev,
  (VTBL_ENTRY)&_ZN6S101C44v178Ev,
  (VTBL_ENTRY)&_ZN6S101C44v179Ev,
  (VTBL_ENTRY)&_ZN6S101C44v180Ev,
  (VTBL_ENTRY)&_ZN6S101C44v181Ev,
  (VTBL_ENTRY)&_ZN6S101C44v182Ev,
  (VTBL_ENTRY)&_ZN6S101C44v183Ev,
  (VTBL_ENTRY)&_ZN6S101C44v184Ev,
  (VTBL_ENTRY)&_ZN6S101C44v185Ev,
  (VTBL_ENTRY)&_ZN6S101C34v186Ev,
  (VTBL_ENTRY)&_ZN6S101C34v187Ev,
  (VTBL_ENTRY)&_ZN6S101C34v188Ev,
  (VTBL_ENTRY)&_ZN6S101C34v189Ev,
  (VTBL_ENTRY)&_ZN6S101C34v190Ev,
  (VTBL_ENTRY)&_ZN6S101C34v191Ev,
  (VTBL_ENTRY)&_ZN6S101C34v192Ev,
  (VTBL_ENTRY)&_ZN6S101C34v193Ev,
  (VTBL_ENTRY)&_ZN6S101C34v194Ev,
  (VTBL_ENTRY)&_ZN6S101C34v195Ev,
  (VTBL_ENTRY)&_ZN6S101C34v196Ev,
  (VTBL_ENTRY)&_ZN6S101C34v197Ev,
  (VTBL_ENTRY)&_ZN6S101C34v198Ev,
  (VTBL_ENTRY)&_ZN6S101C34v199Ev,
  (VTBL_ENTRY)&_ZN6S101C34v200Ev,
  (VTBL_ENTRY)&_ZN6S101C34v201Ev,
  (VTBL_ENTRY)&_ZN6S101C34v202Ev,
  (VTBL_ENTRY)&_ZN6S101C34v203Ev,
  (VTBL_ENTRY)&_ZN6S101C34v204Ev,
  (VTBL_ENTRY)&_ZN6S101C34v205Ev,
  (VTBL_ENTRY)&_ZN6S101C34v206Ev,
  (VTBL_ENTRY)&_ZN6S101C34v207Ev,
  (VTBL_ENTRY)&_ZN6S101C34v208Ev,
  (VTBL_ENTRY)&_ZN6S101C24v209Ev,
  (VTBL_ENTRY)&_ZN6S101C24v210Ev,
  (VTBL_ENTRY)&_ZN6S101C24v211Ev,
  (VTBL_ENTRY)&_ZN6S101C24v212Ev,
  (VTBL_ENTRY)&_ZN6S101C24v213Ev,
  (VTBL_ENTRY)&_ZN6S101C24v214Ev,
  (VTBL_ENTRY)&_ZN6S101C24v215Ev,
  (VTBL_ENTRY)&_ZN6S101C24v216Ev,
  (VTBL_ENTRY)&_ZN6S101C12v1Ev,
  (VTBL_ENTRY)&_ZN6S101C12v2Ev,
  (VTBL_ENTRY)&_ZN6S101C12v3Ev,
  (VTBL_ENTRY)&_ZN6S101C12v4Ev,
};
extern VTBL_ENTRY _ZTI6S101C1[];
extern  VTBL_ENTRY _ZTV6S101C1[];
Class_Descriptor cd_S101C1 = {  "S101C1", // class name
  bases_S101C1, 6,
  &(vtc_S101C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1072,744), // object size
  NSPAIRA(_ZTI6S101C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S101C1),220, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C7  {
  int s105c7f0;
  __tsi64 s105c7f1;
  void *s105c7f2[4];
  int s105c7f3[2];
  void *s105c7f4;
  ::S85C27_nt s105c7f5;
  void *s105c7f6[2];
  virtual  ~S105C7(); // _ZN6S105C7D1Ev
  virtual void  v6(); // _ZN6S105C72v6Ev
  virtual void  v7(); // _ZN6S105C72v7Ev
  virtual void  v8(); // _ZN6S105C72v8Ev
  virtual void  v9(); // _ZN6S105C72v9Ev
  virtual void  v10(); // _ZN6S105C73v10Ev
  virtual void  v11(); // _ZN6S105C73v11Ev
  virtual void  v12(); // _ZN6S105C73v12Ev
  virtual void  v13(); // _ZN6S105C73v13Ev
  virtual void  v14(); // _ZN6S105C73v14Ev
  virtual void  v15(); // _ZN6S105C73v15Ev
  virtual void  v16(); // _ZN6S105C73v16Ev
  virtual void  v17(); // _ZN6S105C73v17Ev
  virtual void  v18(); // _ZN6S105C73v18Ev
  virtual void  v19(); // _ZN6S105C73v19Ev
  virtual void  v20(); // _ZN6S105C73v20Ev
  virtual void  v21(); // _ZN6S105C73v21Ev
  virtual void  v22(); // _ZN6S105C73v22Ev
  virtual void  v23(); // _ZN6S105C73v23Ev
  virtual void  v24(); // _ZN6S105C73v24Ev
  virtual void  v25(); // _ZN6S105C73v25Ev
  virtual void  v26(); // _ZN6S105C73v26Ev
  virtual void  v27(); // _ZN6S105C73v27Ev
  virtual void  v28(); // _ZN6S105C73v28Ev
  virtual void  v29(); // _ZN6S105C73v29Ev
  virtual void  v30(); // _ZN6S105C73v30Ev
  virtual void  v31(); // _ZN6S105C73v31Ev
  virtual void  v32(); // _ZN6S105C73v32Ev
  virtual void  v33(); // _ZN6S105C73v33Ev
  virtual void  v34(); // _ZN6S105C73v34Ev
  virtual void  v35(); // _ZN6S105C73v35Ev
  virtual void  v36(); // _ZN6S105C73v36Ev
  virtual void  v37(); // _ZN6S105C73v37Ev
  virtual void  v38(); // _ZN6S105C73v38Ev
  virtual void  v39(); // _ZN6S105C73v39Ev
  virtual void  v40(); // _ZN6S105C73v40Ev
  virtual void  v41(); // _ZN6S105C73v41Ev
  virtual void  v42(); // _ZN6S105C73v42Ev
  virtual void  v43(); // _ZN6S105C73v43Ev
  virtual void  v44(); // _ZN6S105C73v44Ev
  virtual void  v45(); // _ZN6S105C73v45Ev
  virtual void  v46(); // _ZN6S105C73v46Ev
  virtual void  v47(); // _ZN6S105C73v47Ev
  virtual void  v48(); // _ZN6S105C73v48Ev
  virtual void  v49(); // _ZN6S105C73v49Ev
  virtual void  v50(); // _ZN6S105C73v50Ev
  virtual void  v51(); // _ZN6S105C73v51Ev
  virtual void  v52(); // _ZN6S105C73v52Ev
  virtual void  v53(); // _ZN6S105C73v53Ev
  virtual void  v54(); // _ZN6S105C73v54Ev
  virtual void  v55(); // _ZN6S105C73v55Ev
  virtual void  v56(); // _ZN6S105C73v56Ev
  virtual void  v57(); // _ZN6S105C73v57Ev
  virtual void  v58(); // _ZN6S105C73v58Ev
  virtual void  v59(); // _ZN6S105C73v59Ev
  virtual void  v60(); // _ZN6S105C73v60Ev
  virtual void  v61(); // _ZN6S105C73v61Ev
  virtual void  v62(); // _ZN6S105C73v62Ev
  virtual void  v63(); // _ZN6S105C73v63Ev
  virtual void  v64(); // _ZN6S105C73v64Ev
  virtual void  v65(); // _ZN6S105C73v65Ev
  virtual void  v66(); // _ZN6S105C73v66Ev
  virtual void  v67(); // _ZN6S105C73v67Ev
  virtual void  v68(); // _ZN6S105C73v68Ev
  virtual void  v69(); // _ZN6S105C73v69Ev
  S105C7(); // tgen
};
//SIG(-1 S105C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S105C7 ::~S105C7(){ note_dtor("S105C7", this);}
void  S105C7 ::v6(){vfunc_called(this, "_ZN6S105C72v6Ev");}
void  S105C7 ::v7(){vfunc_called(this, "_ZN6S105C72v7Ev");}
void  S105C7 ::v8(){vfunc_called(this, "_ZN6S105C72v8Ev");}
void  S105C7 ::v9(){vfunc_called(this, "_ZN6S105C72v9Ev");}
void  S105C7 ::v10(){vfunc_called(this, "_ZN6S105C73v10Ev");}
void  S105C7 ::v11(){vfunc_called(this, "_ZN6S105C73v11Ev");}
void  S105C7 ::v12(){vfunc_called(this, "_ZN6S105C73v12Ev");}
void  S105C7 ::v13(){vfunc_called(this, "_ZN6S105C73v13Ev");}
void  S105C7 ::v14(){vfunc_called(this, "_ZN6S105C73v14Ev");}
void  S105C7 ::v15(){vfunc_called(this, "_ZN6S105C73v15Ev");}
void  S105C7 ::v16(){vfunc_called(this, "_ZN6S105C73v16Ev");}
void  S105C7 ::v17(){vfunc_called(this, "_ZN6S105C73v17Ev");}
void  S105C7 ::v18(){vfunc_called(this, "_ZN6S105C73v18Ev");}
void  S105C7 ::v19(){vfunc_called(this, "_ZN6S105C73v19Ev");}
void  S105C7 ::v20(){vfunc_called(this, "_ZN6S105C73v20Ev");}
void  S105C7 ::v21(){vfunc_called(this, "_ZN6S105C73v21Ev");}
void  S105C7 ::v22(){vfunc_called(this, "_ZN6S105C73v22Ev");}
void  S105C7 ::v23(){vfunc_called(this, "_ZN6S105C73v23Ev");}
void  S105C7 ::v24(){vfunc_called(this, "_ZN6S105C73v24Ev");}
void  S105C7 ::v25(){vfunc_called(this, "_ZN6S105C73v25Ev");}
void  S105C7 ::v26(){vfunc_called(this, "_ZN6S105C73v26Ev");}
void  S105C7 ::v27(){vfunc_called(this, "_ZN6S105C73v27Ev");}
void  S105C7 ::v28(){vfunc_called(this, "_ZN6S105C73v28Ev");}
void  S105C7 ::v29(){vfunc_called(this, "_ZN6S105C73v29Ev");}
void  S105C7 ::v30(){vfunc_called(this, "_ZN6S105C73v30Ev");}
void  S105C7 ::v31(){vfunc_called(this, "_ZN6S105C73v31Ev");}
void  S105C7 ::v32(){vfunc_called(this, "_ZN6S105C73v32Ev");}
void  S105C7 ::v33(){vfunc_called(this, "_ZN6S105C73v33Ev");}
void  S105C7 ::v34(){vfunc_called(this, "_ZN6S105C73v34Ev");}
void  S105C7 ::v35(){vfunc_called(this, "_ZN6S105C73v35Ev");}
void  S105C7 ::v36(){vfunc_called(this, "_ZN6S105C73v36Ev");}
void  S105C7 ::v37(){vfunc_called(this, "_ZN6S105C73v37Ev");}
void  S105C7 ::v38(){vfunc_called(this, "_ZN6S105C73v38Ev");}
void  S105C7 ::v39(){vfunc_called(this, "_ZN6S105C73v39Ev");}
void  S105C7 ::v40(){vfunc_called(this, "_ZN6S105C73v40Ev");}
void  S105C7 ::v41(){vfunc_called(this, "_ZN6S105C73v41Ev");}
void  S105C7 ::v42(){vfunc_called(this, "_ZN6S105C73v42Ev");}
void  S105C7 ::v43(){vfunc_called(this, "_ZN6S105C73v43Ev");}
void  S105C7 ::v44(){vfunc_called(this, "_ZN6S105C73v44Ev");}
void  S105C7 ::v45(){vfunc_called(this, "_ZN6S105C73v45Ev");}
void  S105C7 ::v46(){vfunc_called(this, "_ZN6S105C73v46Ev");}
void  S105C7 ::v47(){vfunc_called(this, "_ZN6S105C73v47Ev");}
void  S105C7 ::v48(){vfunc_called(this, "_ZN6S105C73v48Ev");}
void  S105C7 ::v49(){vfunc_called(this, "_ZN6S105C73v49Ev");}
void  S105C7 ::v50(){vfunc_called(this, "_ZN6S105C73v50Ev");}
void  S105C7 ::v51(){vfunc_called(this, "_ZN6S105C73v51Ev");}
void  S105C7 ::v52(){vfunc_called(this, "_ZN6S105C73v52Ev");}
void  S105C7 ::v53(){vfunc_called(this, "_ZN6S105C73v53Ev");}
void  S105C7 ::v54(){vfunc_called(this, "_ZN6S105C73v54Ev");}
void  S105C7 ::v55(){vfunc_called(this, "_ZN6S105C73v55Ev");}
void  S105C7 ::v56(){vfunc_called(this, "_ZN6S105C73v56Ev");}
void  S105C7 ::v57(){vfunc_called(this, "_ZN6S105C73v57Ev");}
void  S105C7 ::v58(){vfunc_called(this, "_ZN6S105C73v58Ev");}
void  S105C7 ::v59(){vfunc_called(this, "_ZN6S105C73v59Ev");}
void  S105C7 ::v60(){vfunc_called(this, "_ZN6S105C73v60Ev");}
void  S105C7 ::v61(){vfunc_called(this, "_ZN6S105C73v61Ev");}
void  S105C7 ::v62(){vfunc_called(this, "_ZN6S105C73v62Ev");}
void  S105C7 ::v63(){vfunc_called(this, "_ZN6S105C73v63Ev");}
void  S105C7 ::v64(){vfunc_called(this, "_ZN6S105C73v64Ev");}
void  S105C7 ::v65(){vfunc_called(this, "_ZN6S105C73v65Ev");}
void  S105C7 ::v66(){vfunc_called(this, "_ZN6S105C73v66Ev");}
void  S105C7 ::v67(){vfunc_called(this, "_ZN6S105C73v67Ev");}
void  S105C7 ::v68(){vfunc_called(this, "_ZN6S105C73v68Ev");}
void  S105C7 ::v69(){vfunc_called(this, "_ZN6S105C73v69Ev");}
S105C7 ::S105C7(){ note_ctor("S105C7", this);} // tgen

static void Test_S105C7()
{
  extern Class_Descriptor cd_S105C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S105C7, buf);
    S105C7 *dp, &lv = *(dp=new (buf) S105C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S105C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C7)");
    check_field_offset(lv, s105c7f0, ABISELECT(8,4), "S105C7.s105c7f0");
    check_field_offset(lv, s105c7f1, ABISELECT(16,8), "S105C7.s105c7f1");
    check_field_offset(lv, s105c7f2, ABISELECT(24,16), "S105C7.s105c7f2");
    check_field_offset(lv, s105c7f3, ABISELECT(56,32), "S105C7.s105c7f3");
    check_field_offset(lv, s105c7f4, ABISELECT(64,40), "S105C7.s105c7f4");
    check_field_offset(lv, s105c7f5, ABISELECT(72,44), "S105C7.s105c7f5");
    check_field_offset(lv, s105c7f6, ABISELECT(80,52), "S105C7.s105c7f6");
    test_class_info(&lv, &cd_S105C7);
    dp->~S105C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C7(Test_S105C7, "S105C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S105C7C1Ev();
extern void _ZN6S105C7D1Ev();
Name_Map name_map_S105C7[] = {
  NSPAIR(_ZN6S105C7C1Ev),
  NSPAIR(_ZN6S105C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S105C7[];
extern void _ZN6S105C7D1Ev();
extern void _ZN6S105C7D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
static  VTBL_ENTRY vtc_S105C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C7[0]),
  (VTBL_ENTRY)&_ZN6S105C7D1Ev,
  (VTBL_ENTRY)&_ZN6S105C7D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
};
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
Class_Descriptor cd_S105C7 = {  "S105C7", // class name
  0,0,//no base classes
  &(vtc_S105C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S105C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S105C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C6  : S105C7 {
  virtual  ~S105C6(); // _ZN6S105C6D1Ev
  virtual void  v70(); // _ZN6S105C63v70Ev
  virtual void  v71(); // _ZN6S105C63v71Ev
  S105C6(); // tgen
};
//SIG(-1 S105C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S105C6 ::~S105C6(){ note_dtor("S105C6", this);}
void  S105C6 ::v70(){vfunc_called(this, "_ZN6S105C63v70Ev");}
void  S105C6 ::v71(){vfunc_called(this, "_ZN6S105C63v71Ev");}
S105C6 ::S105C6(){ note_ctor("S105C6", this);} // tgen

static void Test_S105C6()
{
  extern Class_Descriptor cd_S105C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S105C6, buf);
    S105C6 *dp, &lv = *(dp=new (buf) S105C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S105C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C6)");
    check_base_class_offset(lv, (S105C7*), 0, "S105C6");
    test_class_info(&lv, &cd_S105C6);
    dp->~S105C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C6(Test_S105C6, "S105C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S105C6C1Ev();
extern void _ZN6S105C6D1Ev();
Name_Map name_map_S105C6[] = {
  NSPAIR(_ZN6S105C6C1Ev),
  NSPAIR(_ZN6S105C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S105C7;
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
static Base_Class bases_S105C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S105C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S105C6[];
extern void _ZN6S105C6D1Ev();
extern void _ZN6S105C6D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
extern void _ZN6S105C63v70Ev();
extern void _ZN6S105C63v71Ev();
static  VTBL_ENTRY vtc_S105C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C6[0]),
  (VTBL_ENTRY)&_ZN6S105C6D1Ev,
  (VTBL_ENTRY)&_ZN6S105C6D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
  (VTBL_ENTRY)&_ZN6S105C63v70Ev,
  (VTBL_ENTRY)&_ZN6S105C63v71Ev,
};
extern VTBL_ENTRY _ZTI6S105C6[];
extern  VTBL_ENTRY _ZTV6S105C6[];
Class_Descriptor cd_S105C6 = {  "S105C6", // class name
  bases_S105C6, 1,
  &(vtc_S105C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S105C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S105C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C5  : S105C6 {
  ::S80C9_nt s105c5f0;
  int s105c5f1;
  unsigned int s105c5f2:1;
  unsigned int s105c5f3:1;
  unsigned int s105c5f4:1;
  unsigned int s105c5f5:1;
  ::S85C35 s105c5f6;
  ::S85C22_nt s105c5f7;
  void *s105c5f8;
  ::S80C31 s105c5f9;
  ::S80C31 s105c5f10;
  ::S80C29 s105c5f11;
  ::S80C19 s105c5f12;
  char s105c5f13;
  int s105c5f14;
  void *s105c5f15;
  ::S85C27_nt s105c5f16;
  ::S85C27_nt s105c5f17;
  ::S85C27_nt s105c5f18;
  ::S85C27_nt s105c5f19;
  ::S85C27_nt s105c5f20;
  ::S85C27_nt s105c5f21;
  ::S80C21_nt s105c5f22;
  ::S80C21_nt s105c5f23;
  ::S80C21_nt s105c5f24;
  ::S80C21_nt s105c5f25;
  ::S80C21_nt s105c5f26;
  ::S80C21_nt s105c5f27;
  ::S80C21_nt s105c5f28;
  ::S80C21_nt s105c5f29;
  ::S80C21_nt s105c5f30;
  ::S80C21_nt s105c5f31;
  virtual  ~S105C5(); // _ZN6S105C5D1Ev
  virtual void  v72(); // _ZN6S105C53v72Ev
  virtual void  v73(); // _ZN6S105C53v73Ev
  virtual void  v74(); // _ZN6S105C53v74Ev
  virtual void  v75(); // _ZN6S105C53v75Ev
  virtual void  v76(); // _ZN6S105C53v76Ev
  virtual void  v77(); // _ZN6S105C53v77Ev
  virtual void  v78(); // _ZN6S105C53v78Ev
  virtual void  v79(); // _ZN6S105C53v79Ev
  virtual void  v80(); // _ZN6S105C53v80Ev
  virtual void  v81(); // _ZN6S105C53v81Ev
  virtual void  v82(); // _ZN6S105C53v82Ev
  virtual void  v83(); // _ZN6S105C53v83Ev
  virtual void  v84(); // _ZN6S105C53v84Ev
  virtual void  v85(); // _ZN6S105C53v85Ev
  virtual void  v86(); // _ZN6S105C53v86Ev
  virtual void  v87(); // _ZN6S105C53v87Ev
  virtual void  v88(); // _ZN6S105C53v88Ev
  virtual void  v89(); // _ZN6S105C53v89Ev
  virtual void  v90(); // _ZN6S105C53v90Ev
  virtual void  v91(); // _ZN6S105C53v91Ev
  virtual void  v92(); // _ZN6S105C53v92Ev
  virtual void  v93(); // _ZN6S105C53v93Ev
  virtual void  v94(); // _ZN6S105C53v94Ev
  virtual void  v95(); // _ZN6S105C53v95Ev
  virtual void  v96(); // _ZN6S105C53v96Ev
  virtual void  v97(); // _ZN6S105C53v97Ev
  virtual void  v98(); // _ZN6S105C53v98Ev
  virtual void  v99(); // _ZN6S105C53v99Ev
  virtual void  v100(); // _ZN6S105C54v100Ev
  virtual void  v101(); // _ZN6S105C54v101Ev
  virtual void  v102(); // _ZN6S105C54v102Ev
  virtual void  v103(); // _ZN6S105C54v103Ev
  virtual void  v104(); // _ZN6S105C54v104Ev
  virtual void  v105(); // _ZN6S105C54v105Ev
  virtual void  v106(); // _ZN6S105C54v106Ev
  virtual void  v107(); // _ZN6S105C54v107Ev
  virtual void  v108(); // _ZN6S105C54v108Ev
  virtual void  v109(); // _ZN6S105C54v109Ev
  virtual void  v110(); // _ZN6S105C54v110Ev
  virtual void  v111(); // _ZN6S105C54v111Ev
  virtual void  v112(); // _ZN6S105C54v112Ev
  virtual void  v113(); // _ZN6S105C54v113Ev
  virtual void  v114(); // _ZN6S105C54v114Ev
  virtual void  v115(); // _ZN6S105C54v115Ev
  virtual void  v116(); // _ZN6S105C54v116Ev
  virtual void  v117(); // _ZN6S105C54v117Ev
  virtual void  v118(); // _ZN6S105C54v118Ev
  virtual void  v119(); // _ZN6S105C54v119Ev
  virtual void  v120(); // _ZN6S105C54v120Ev
  virtual void  v121(); // _ZN6S105C54v121Ev
  virtual void  v122(); // _ZN6S105C54v122Ev
  virtual void  v123(); // _ZN6S105C54v123Ev
  virtual void  v124(); // _ZN6S105C54v124Ev
  virtual void  v125(); // _ZN6S105C54v125Ev
  virtual void  v126(); // _ZN6S105C54v126Ev
  virtual void  v127(); // _ZN6S105C54v127Ev
  virtual void  v128(); // _ZN6S105C54v128Ev
  virtual void  v129(); // _ZN6S105C54v129Ev
  virtual void  v130(); // _ZN6S105C54v130Ev
  virtual void  v131(); // _ZN6S105C54v131Ev
  virtual void  v132(); // _ZN6S105C54v132Ev
  virtual void  v133(); // _ZN6S105C54v133Ev
  virtual void  v134(); // _ZN6S105C54v134Ev
  virtual void  v135(); // _ZN6S105C54v135Ev
  virtual void  v136(); // _ZN6S105C54v136Ev
  virtual void  v137(); // _ZN6S105C54v137Ev
  virtual void  v138(); // _ZN6S105C54v138Ev
  virtual void  v139(); // _ZN6S105C54v139Ev
  virtual void  v140(); // _ZN6S105C54v140Ev
  virtual void  v141(); // _ZN6S105C54v141Ev
  virtual void  v142(); // _ZN6S105C54v142Ev
  virtual void  v143(); // _ZN6S105C54v143Ev
  virtual void  v144(); // _ZN6S105C54v144Ev
  virtual void  v145(); // _ZN6S105C54v145Ev
  virtual void  v146(); // _ZN6S105C54v146Ev
  virtual void  v147(); // _ZN6S105C54v147Ev
  S105C5(); // tgen
};
//SIG(-1 S105C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S105C5 ::~S105C5(){ note_dtor("S105C5", this);}
void  S105C5 ::v72(){vfunc_called(this, "_ZN6S105C53v72Ev");}
void  S105C5 ::v73(){vfunc_called(this, "_ZN6S105C53v73Ev");}
void  S105C5 ::v74(){vfunc_called(this, "_ZN6S105C53v74Ev");}
void  S105C5 ::v75(){vfunc_called(this, "_ZN6S105C53v75Ev");}
void  S105C5 ::v76(){vfunc_called(this, "_ZN6S105C53v76Ev");}
void  S105C5 ::v77(){vfunc_called(this, "_ZN6S105C53v77Ev");}
void  S105C5 ::v78(){vfunc_called(this, "_ZN6S105C53v78Ev");}
void  S105C5 ::v79(){vfunc_called(this, "_ZN6S105C53v79Ev");}
void  S105C5 ::v80(){vfunc_called(this, "_ZN6S105C53v80Ev");}
void  S105C5 ::v81(){vfunc_called(this, "_ZN6S105C53v81Ev");}
void  S105C5 ::v82(){vfunc_called(this, "_ZN6S105C53v82Ev");}
void  S105C5 ::v83(){vfunc_called(this, "_ZN6S105C53v83Ev");}
void  S105C5 ::v84(){vfunc_called(this, "_ZN6S105C53v84Ev");}
void  S105C5 ::v85(){vfunc_called(this, "_ZN6S105C53v85Ev");}
void  S105C5 ::v86(){vfunc_called(this, "_ZN6S105C53v86Ev");}
void  S105C5 ::v87(){vfunc_called(this, "_ZN6S105C53v87Ev");}
void  S105C5 ::v88(){vfunc_called(this, "_ZN6S105C53v88Ev");}
void  S105C5 ::v89(){vfunc_called(this, "_ZN6S105C53v89Ev");}
void  S105C5 ::v90(){vfunc_called(this, "_ZN6S105C53v90Ev");}
void  S105C5 ::v91(){vfunc_called(this, "_ZN6S105C53v91Ev");}
void  S105C5 ::v92(){vfunc_called(this, "_ZN6S105C53v92Ev");}
void  S105C5 ::v93(){vfunc_called(this, "_ZN6S105C53v93Ev");}
void  S105C5 ::v94(){vfunc_called(this, "_ZN6S105C53v94Ev");}
void  S105C5 ::v95(){vfunc_called(this, "_ZN6S105C53v95Ev");}
void  S105C5 ::v96(){vfunc_called(this, "_ZN6S105C53v96Ev");}
void  S105C5 ::v97(){vfunc_called(this, "_ZN6S105C53v97Ev");}
void  S105C5 ::v98(){vfunc_called(this, "_ZN6S105C53v98Ev");}
void  S105C5 ::v99(){vfunc_called(this, "_ZN6S105C53v99Ev");}
void  S105C5 ::v100(){vfunc_called(this, "_ZN6S105C54v100Ev");}
void  S105C5 ::v101(){vfunc_called(this, "_ZN6S105C54v101Ev");}
void  S105C5 ::v102(){vfunc_called(this, "_ZN6S105C54v102Ev");}
void  S105C5 ::v103(){vfunc_called(this, "_ZN6S105C54v103Ev");}
void  S105C5 ::v104(){vfunc_called(this, "_ZN6S105C54v104Ev");}
void  S105C5 ::v105(){vfunc_called(this, "_ZN6S105C54v105Ev");}
void  S105C5 ::v106(){vfunc_called(this, "_ZN6S105C54v106Ev");}
void  S105C5 ::v107(){vfunc_called(this, "_ZN6S105C54v107Ev");}
void  S105C5 ::v108(){vfunc_called(this, "_ZN6S105C54v108Ev");}
void  S105C5 ::v109(){vfunc_called(this, "_ZN6S105C54v109Ev");}
void  S105C5 ::v110(){vfunc_called(this, "_ZN6S105C54v110Ev");}
void  S105C5 ::v111(){vfunc_called(this, "_ZN6S105C54v111Ev");}
void  S105C5 ::v112(){vfunc_called(this, "_ZN6S105C54v112Ev");}
void  S105C5 ::v113(){vfunc_called(this, "_ZN6S105C54v113Ev");}
void  S105C5 ::v114(){vfunc_called(this, "_ZN6S105C54v114Ev");}
void  S105C5 ::v115(){vfunc_called(this, "_ZN6S105C54v115Ev");}
void  S105C5 ::v116(){vfunc_called(this, "_ZN6S105C54v116Ev");}
void  S105C5 ::v117(){vfunc_called(this, "_ZN6S105C54v117Ev");}
void  S105C5 ::v118(){vfunc_called(this, "_ZN6S105C54v118Ev");}
void  S105C5 ::v119(){vfunc_called(this, "_ZN6S105C54v119Ev");}
void  S105C5 ::v120(){vfunc_called(this, "_ZN6S105C54v120Ev");}
void  S105C5 ::v121(){vfunc_called(this, "_ZN6S105C54v121Ev");}
void  S105C5 ::v122(){vfunc_called(this, "_ZN6S105C54v122Ev");}
void  S105C5 ::v123(){vfunc_called(this, "_ZN6S105C54v123Ev");}
void  S105C5 ::v124(){vfunc_called(this, "_ZN6S105C54v124Ev");}
void  S105C5 ::v125(){vfunc_called(this, "_ZN6S105C54v125Ev");}
void  S105C5 ::v126(){vfunc_called(this, "_ZN6S105C54v126Ev");}
void  S105C5 ::v127(){vfunc_called(this, "_ZN6S105C54v127Ev");}
void  S105C5 ::v128(){vfunc_called(this, "_ZN6S105C54v128Ev");}
void  S105C5 ::v129(){vfunc_called(this, "_ZN6S105C54v129Ev");}
void  S105C5 ::v130(){vfunc_called(this, "_ZN6S105C54v130Ev");}
void  S105C5 ::v131(){vfunc_called(this, "_ZN6S105C54v131Ev");}
void  S105C5 ::v132(){vfunc_called(this, "_ZN6S105C54v132Ev");}
void  S105C5 ::v133(){vfunc_called(this, "_ZN6S105C54v133Ev");}
void  S105C5 ::v134(){vfunc_called(this, "_ZN6S105C54v134Ev");}
void  S105C5 ::v135(){vfunc_called(this, "_ZN6S105C54v135Ev");}
void  S105C5 ::v136(){vfunc_called(this, "_ZN6S105C54v136Ev");}
void  S105C5 ::v137(){vfunc_called(this, "_ZN6S105C54v137Ev");}
void  S105C5 ::v138(){vfunc_called(this, "_ZN6S105C54v138Ev");}
void  S105C5 ::v139(){vfunc_called(this, "_ZN6S105C54v139Ev");}
void  S105C5 ::v140(){vfunc_called(this, "_ZN6S105C54v140Ev");}
void  S105C5 ::v141(){vfunc_called(this, "_ZN6S105C54v141Ev");}
void  S105C5 ::v142(){vfunc_called(this, "_ZN6S105C54v142Ev");}
void  S105C5 ::v143(){vfunc_called(this, "_ZN6S105C54v143Ev");}
void  S105C5 ::v144(){vfunc_called(this, "_ZN6S105C54v144Ev");}
void  S105C5 ::v145(){vfunc_called(this, "_ZN6S105C54v145Ev");}
void  S105C5 ::v146(){vfunc_called(this, "_ZN6S105C54v146Ev");}
void  S105C5 ::v147(){vfunc_called(this, "_ZN6S105C54v147Ev");}
S105C5 ::S105C5(){ note_ctor("S105C5", this);} // tgen

static void Test_S105C5()
{
  extern Class_Descriptor cd_S105C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S105C5, buf);
    S105C5 *dp, &lv = *(dp=new (buf) S105C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S105C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C5)");
    check_base_class_offset(lv, (S105C7*)(S105C6*), 0, "S105C5");
    check_base_class_offset(lv, (S105C6*), 0, "S105C5");
    check_field_offset(lv, s105c5f0, ABISELECT(96,60), "S105C5.s105c5f0");
    check_field_offset(lv, s105c5f1, ABISELECT(124,88), "S105C5.s105c5f1");
    set_bf_and_test(lv, s105c5f2, ABISELECT(128,92), 0, 1, 1, "S105C5");
    set_bf_and_test(lv, s105c5f3, ABISELECT(128,92), 1, 1, 1, "S105C5");
    set_bf_and_test(lv, s105c5f4, ABISELECT(128,92), 2, 1, 1, "S105C5");
    set_bf_and_test(lv, s105c5f5, ABISELECT(128,92), 3, 1, 1, "S105C5");
    check_field_offset(lv, s105c5f6, ABISELECT(136,96), "S105C5.s105c5f6");
    check_field_offset(lv, s105c5f7, ABISELECT(152,108), "S105C5.s105c5f7");
    check_field_offset(lv, s105c5f8, ABISELECT(168,120), "S105C5.s105c5f8");
    check_field_offset(lv, s105c5f9, ABISELECT(176,124), "S105C5.s105c5f9");
    check_field_offset(lv, s105c5f10, ABISELECT(192,136), "S105C5.s105c5f10");
    check_field_offset(lv, s105c5f11, ABISELECT(208,148), "S105C5.s105c5f11");
    check_field_offset(lv, s105c5f12, ABISELECT(224,160), "S105C5.s105c5f12");
    check_field_offset(lv, s105c5f13, ABISELECT(240,172), "S105C5.s105c5f13");
    check_field_offset(lv, s105c5f14, ABISELECT(244,176), "S105C5.s105c5f14");
    check_field_offset(lv, s105c5f15, ABISELECT(248,180), "S105C5.s105c5f15");
    check_field_offset(lv, s105c5f16, ABISELECT(256,184), "S105C5.s105c5f16");
    check_field_offset(lv, s105c5f17, ABISELECT(264,192), "S105C5.s105c5f17");
    check_field_offset(lv, s105c5f18, ABISELECT(272,200), "S105C5.s105c5f18");
    check_field_offset(lv, s105c5f19, ABISELECT(280,208), "S105C5.s105c5f19");
    check_field_offset(lv, s105c5f20, ABISELECT(288,216), "S105C5.s105c5f20");
    check_field_offset(lv, s105c5f21, ABISELECT(296,224), "S105C5.s105c5f21");
    check_field_offset(lv, s105c5f22, ABISELECT(304,232), "S105C5.s105c5f22");
    check_field_offset(lv, s105c5f23, ABISELECT(320,244), "S105C5.s105c5f23");
    check_field_offset(lv, s105c5f24, ABISELECT(336,256), "S105C5.s105c5f24");
    check_field_offset(lv, s105c5f25, ABISELECT(352,268), "S105C5.s105c5f25");
    check_field_offset(lv, s105c5f26, ABISELECT(368,280), "S105C5.s105c5f26");
    check_field_offset(lv, s105c5f27, ABISELECT(384,292), "S105C5.s105c5f27");
    check_field_offset(lv, s105c5f28, ABISELECT(400,304), "S105C5.s105c5f28");
    check_field_offset(lv, s105c5f29, ABISELECT(416,316), "S105C5.s105c5f29");
    check_field_offset(lv, s105c5f30, ABISELECT(432,328), "S105C5.s105c5f30");
    check_field_offset(lv, s105c5f31, ABISELECT(448,340), "S105C5.s105c5f31");
    test_class_info(&lv, &cd_S105C5);
    dp->~S105C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C5(Test_S105C5, "S105C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S105C5C1Ev();
extern void _ZN6S105C5D1Ev();
Name_Map name_map_S105C5[] = {
  NSPAIR(_ZN6S105C5C1Ev),
  NSPAIR(_ZN6S105C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S105C7;
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
extern Class_Descriptor cd_S105C6;
extern VTBL_ENTRY _ZTI6S105C6[];
extern  VTBL_ENTRY _ZTV6S105C6[];
static Base_Class bases_S105C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S105C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S105C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S105C5[];
extern void _ZN6S105C5D1Ev();
extern void _ZN6S105C5D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
extern void _ZN6S105C63v70Ev();
extern void _ZN6S105C63v71Ev();
extern void _ZN6S105C53v72Ev();
extern void _ZN6S105C53v73Ev();
extern void _ZN6S105C53v74Ev();
extern void _ZN6S105C53v75Ev();
extern void _ZN6S105C53v76Ev();
extern void _ZN6S105C53v77Ev();
extern void _ZN6S105C53v78Ev();
extern void _ZN6S105C53v79Ev();
extern void _ZN6S105C53v80Ev();
extern void _ZN6S105C53v81Ev();
extern void _ZN6S105C53v82Ev();
extern void _ZN6S105C53v83Ev();
extern void _ZN6S105C53v84Ev();
extern void _ZN6S105C53v85Ev();
extern void _ZN6S105C53v86Ev();
extern void _ZN6S105C53v87Ev();
extern void _ZN6S105C53v88Ev();
extern void _ZN6S105C53v89Ev();
extern void _ZN6S105C53v90Ev();
extern void _ZN6S105C53v91Ev();
extern void _ZN6S105C53v92Ev();
extern void _ZN6S105C53v93Ev();
extern void _ZN6S105C53v94Ev();
extern void _ZN6S105C53v95Ev();
extern void _ZN6S105C53v96Ev();
extern void _ZN6S105C53v97Ev();
extern void _ZN6S105C53v98Ev();
extern void _ZN6S105C53v99Ev();
extern void _ZN6S105C54v100Ev();
extern void _ZN6S105C54v101Ev();
extern void _ZN6S105C54v102Ev();
extern void _ZN6S105C54v103Ev();
extern void _ZN6S105C54v104Ev();
extern void _ZN6S105C54v105Ev();
extern void _ZN6S105C54v106Ev();
extern void _ZN6S105C54v107Ev();
extern void _ZN6S105C54v108Ev();
extern void _ZN6S105C54v109Ev();
extern void _ZN6S105C54v110Ev();
extern void _ZN6S105C54v111Ev();
extern void _ZN6S105C54v112Ev();
extern void _ZN6S105C54v113Ev();
extern void _ZN6S105C54v114Ev();
extern void _ZN6S105C54v115Ev();
extern void _ZN6S105C54v116Ev();
extern void _ZN6S105C54v117Ev();
extern void _ZN6S105C54v118Ev();
extern void _ZN6S105C54v119Ev();
extern void _ZN6S105C54v120Ev();
extern void _ZN6S105C54v121Ev();
extern void _ZN6S105C54v122Ev();
extern void _ZN6S105C54v123Ev();
extern void _ZN6S105C54v124Ev();
extern void _ZN6S105C54v125Ev();
extern void _ZN6S105C54v126Ev();
extern void _ZN6S105C54v127Ev();
extern void _ZN6S105C54v128Ev();
extern void _ZN6S105C54v129Ev();
extern void _ZN6S105C54v130Ev();
extern void _ZN6S105C54v131Ev();
extern void _ZN6S105C54v132Ev();
extern void _ZN6S105C54v133Ev();
extern void _ZN6S105C54v134Ev();
extern void _ZN6S105C54v135Ev();
extern void _ZN6S105C54v136Ev();
extern void _ZN6S105C54v137Ev();
extern void _ZN6S105C54v138Ev();
extern void _ZN6S105C54v139Ev();
extern void _ZN6S105C54v140Ev();
extern void _ZN6S105C54v141Ev();
extern void _ZN6S105C54v142Ev();
extern void _ZN6S105C54v143Ev();
extern void _ZN6S105C54v144Ev();
extern void _ZN6S105C54v145Ev();
extern void _ZN6S105C54v146Ev();
extern void _ZN6S105C54v147Ev();
static  VTBL_ENTRY vtc_S105C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C5[0]),
  (VTBL_ENTRY)&_ZN6S105C5D1Ev,
  (VTBL_ENTRY)&_ZN6S105C5D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
  (VTBL_ENTRY)&_ZN6S105C63v70Ev,
  (VTBL_ENTRY)&_ZN6S105C63v71Ev,
  (VTBL_ENTRY)&_ZN6S105C53v72Ev,
  (VTBL_ENTRY)&_ZN6S105C53v73Ev,
  (VTBL_ENTRY)&_ZN6S105C53v74Ev,
  (VTBL_ENTRY)&_ZN6S105C53v75Ev,
  (VTBL_ENTRY)&_ZN6S105C53v76Ev,
  (VTBL_ENTRY)&_ZN6S105C53v77Ev,
  (VTBL_ENTRY)&_ZN6S105C53v78Ev,
  (VTBL_ENTRY)&_ZN6S105C53v79Ev,
  (VTBL_ENTRY)&_ZN6S105C53v80Ev,
  (VTBL_ENTRY)&_ZN6S105C53v81Ev,
  (VTBL_ENTRY)&_ZN6S105C53v82Ev,
  (VTBL_ENTRY)&_ZN6S105C53v83Ev,
  (VTBL_ENTRY)&_ZN6S105C53v84Ev,
  (VTBL_ENTRY)&_ZN6S105C53v85Ev,
  (VTBL_ENTRY)&_ZN6S105C53v86Ev,
  (VTBL_ENTRY)&_ZN6S105C53v87Ev,
  (VTBL_ENTRY)&_ZN6S105C53v88Ev,
  (VTBL_ENTRY)&_ZN6S105C53v89Ev,
  (VTBL_ENTRY)&_ZN6S105C53v90Ev,
  (VTBL_ENTRY)&_ZN6S105C53v91Ev,
  (VTBL_ENTRY)&_ZN6S105C53v92Ev,
  (VTBL_ENTRY)&_ZN6S105C53v93Ev,
  (VTBL_ENTRY)&_ZN6S105C53v94Ev,
  (VTBL_ENTRY)&_ZN6S105C53v95Ev,
  (VTBL_ENTRY)&_ZN6S105C53v96Ev,
  (VTBL_ENTRY)&_ZN6S105C53v97Ev,
  (VTBL_ENTRY)&_ZN6S105C53v98Ev,
  (VTBL_ENTRY)&_ZN6S105C53v99Ev,
  (VTBL_ENTRY)&_ZN6S105C54v100Ev,
  (VTBL_ENTRY)&_ZN6S105C54v101Ev,
  (VTBL_ENTRY)&_ZN6S105C54v102Ev,
  (VTBL_ENTRY)&_ZN6S105C54v103Ev,
  (VTBL_ENTRY)&_ZN6S105C54v104Ev,
  (VTBL_ENTRY)&_ZN6S105C54v105Ev,
  (VTBL_ENTRY)&_ZN6S105C54v106Ev,
  (VTBL_ENTRY)&_ZN6S105C54v107Ev,
  (VTBL_ENTRY)&_ZN6S105C54v108Ev,
  (VTBL_ENTRY)&_ZN6S105C54v109Ev,
  (VTBL_ENTRY)&_ZN6S105C54v110Ev,
  (VTBL_ENTRY)&_ZN6S105C54v111Ev,
  (VTBL_ENTRY)&_ZN6S105C54v112Ev,
  (VTBL_ENTRY)&_ZN6S105C54v113Ev,
  (VTBL_ENTRY)&_ZN6S105C54v114Ev,
  (VTBL_ENTRY)&_ZN6S105C54v115Ev,
  (VTBL_ENTRY)&_ZN6S105C54v116Ev,
  (VTBL_ENTRY)&_ZN6S105C54v117Ev,
  (VTBL_ENTRY)&_ZN6S105C54v118Ev,
  (VTBL_ENTRY)&_ZN6S105C54v119Ev,
  (VTBL_ENTRY)&_ZN6S105C54v120Ev,
  (VTBL_ENTRY)&_ZN6S105C54v121Ev,
  (VTBL_ENTRY)&_ZN6S105C54v122Ev,
  (VTBL_ENTRY)&_ZN6S105C54v123Ev,
  (VTBL_ENTRY)&_ZN6S105C54v124Ev,
  (VTBL_ENTRY)&_ZN6S105C54v125Ev,
  (VTBL_ENTRY)&_ZN6S105C54v126Ev,
  (VTBL_ENTRY)&_ZN6S105C54v127Ev,
  (VTBL_ENTRY)&_ZN6S105C54v128Ev,
  (VTBL_ENTRY)&_ZN6S105C54v129Ev,
  (VTBL_ENTRY)&_ZN6S105C54v130Ev,
  (VTBL_ENTRY)&_ZN6S105C54v131Ev,
  (VTBL_ENTRY)&_ZN6S105C54v132Ev,
  (VTBL_ENTRY)&_ZN6S105C54v133Ev,
  (VTBL_ENTRY)&_ZN6S105C54v134Ev,
  (VTBL_ENTRY)&_ZN6S105C54v135Ev,
  (VTBL_ENTRY)&_ZN6S105C54v136Ev,
  (VTBL_ENTRY)&_ZN6S105C54v137Ev,
  (VTBL_ENTRY)&_ZN6S105C54v138Ev,
  (VTBL_ENTRY)&_ZN6S105C54v139Ev,
  (VTBL_ENTRY)&_ZN6S105C54v140Ev,
  (VTBL_ENTRY)&_ZN6S105C54v141Ev,
  (VTBL_ENTRY)&_ZN6S105C54v142Ev,
  (VTBL_ENTRY)&_ZN6S105C54v143Ev,
  (VTBL_ENTRY)&_ZN6S105C54v144Ev,
  (VTBL_ENTRY)&_ZN6S105C54v145Ev,
  (VTBL_ENTRY)&_ZN6S105C54v146Ev,
  (VTBL_ENTRY)&_ZN6S105C54v147Ev,
};
extern VTBL_ENTRY _ZTI6S105C5[];
extern  VTBL_ENTRY _ZTV6S105C5[];
Class_Descriptor cd_S105C5 = {  "S105C5", // class name
  bases_S105C5, 2,
  &(vtc_S105C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S105C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S105C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C4  : S105C5 {
  ::S85C27_nt s105c4f0;
  void *s105c4f1[9];
  ::S80C15 s105c4f2;
  ::S85C35 s105c4f3;
  ::S80C24 s105c4f4;
  int s105c4f5;
  unsigned int s105c4f6:1;
  unsigned int s105c4f7:1;
  unsigned int s105c4f8:1;
  unsigned int s105c4f9:1;
  unsigned int s105c4f10:1;
  unsigned int s105c4f11:1;
  unsigned int s105c4f12:1;
  unsigned int s105c4f13:1;
  unsigned int s105c4f14:1;
  unsigned int s105c4f15:1;
  unsigned int s105c4f16:1;
  unsigned int s105c4f17:1;
  unsigned int s105c4f18:1;
  unsigned int s105c4f19:1;
  unsigned int s105c4f20:1;
  unsigned int s105c4f21:1;
  unsigned int s105c4f22:1;
  unsigned int s105c4f23:1;
  unsigned int s105c4f24:1;
  unsigned int s105c4f25:1;
  unsigned int s105c4f26:1;
  unsigned int s105c4f27:1;
  void *s105c4f28;
  char s105c4f29[2];
  ::S80C8_nt s105c4f30;
  ::S85C27_nt s105c4f31;
  ::S85C27_nt s105c4f32;
  void *s105c4f33;
  ::S80C21_nt s105c4f34;
  ::S80C21_nt s105c4f35;
  ::S80C21_nt s105c4f36;
  ::S80C21_nt s105c4f37;
  ::S80C21_nt s105c4f38;
  virtual  ~S105C4(); // _ZN6S105C4D1Ev
  virtual void  v148(); // _ZN6S105C44v148Ev
  virtual void  v149(); // _ZN6S105C44v149Ev
  virtual void  v150(); // _ZN6S105C44v150Ev
  virtual void  v151(); // _ZN6S105C44v151Ev
  virtual void  v152(); // _ZN6S105C44v152Ev
  virtual void  v153(); // _ZN6S105C44v153Ev
  virtual void  v154(); // _ZN6S105C44v154Ev
  virtual void  v155(); // _ZN6S105C44v155Ev
  virtual void  v156(); // _ZN6S105C44v156Ev
  virtual void  v157(); // _ZN6S105C44v157Ev
  virtual void  v158(); // _ZN6S105C44v158Ev
  virtual void  v159(); // _ZN6S105C44v159Ev
  virtual void  v160(); // _ZN6S105C44v160Ev
  virtual void  v161(); // _ZN6S105C44v161Ev
  virtual void  v162(); // _ZN6S105C44v162Ev
  virtual void  v163(); // _ZN6S105C44v163Ev
  virtual void  v164(); // _ZN6S105C44v164Ev
  virtual void  v165(); // _ZN6S105C44v165Ev
  virtual void  v166(); // _ZN6S105C44v166Ev
  virtual void  v167(); // _ZN6S105C44v167Ev
  virtual void  v168(); // _ZN6S105C44v168Ev
  virtual void  v169(); // _ZN6S105C44v169Ev
  virtual void  v170(); // _ZN6S105C44v170Ev
  virtual void  v171(); // _ZN6S105C44v171Ev
  virtual void  v172(); // _ZN6S105C44v172Ev
  virtual void  v173(); // _ZN6S105C44v173Ev
  virtual void  v174(); // _ZN6S105C44v174Ev
  virtual void  v175(); // _ZN6S105C44v175Ev
  virtual void  v176(); // _ZN6S105C44v176Ev
  virtual void  v177(); // _ZN6S105C44v177Ev
  virtual void  v178(); // _ZN6S105C44v178Ev
  virtual void  v179(); // _ZN6S105C44v179Ev
  virtual void  v180(); // _ZN6S105C44v180Ev
  virtual void  v181(); // _ZN6S105C44v181Ev
  virtual void  v182(); // _ZN6S105C44v182Ev
  virtual void  v183(); // _ZN6S105C44v183Ev
  virtual void  v184(); // _ZN6S105C44v184Ev
  virtual void  v185(); // _ZN6S105C44v185Ev
  virtual void  v186(); // _ZN6S105C44v186Ev
  S105C4(); // tgen
};
//SIG(-1 S105C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S105C4 ::~S105C4(){ note_dtor("S105C4", this);}
void  S105C4 ::v148(){vfunc_called(this, "_ZN6S105C44v148Ev");}
void  S105C4 ::v149(){vfunc_called(this, "_ZN6S105C44v149Ev");}
void  S105C4 ::v150(){vfunc_called(this, "_ZN6S105C44v150Ev");}
void  S105C4 ::v151(){vfunc_called(this, "_ZN6S105C44v151Ev");}
void  S105C4 ::v152(){vfunc_called(this, "_ZN6S105C44v152Ev");}
void  S105C4 ::v153(){vfunc_called(this, "_ZN6S105C44v153Ev");}
void  S105C4 ::v154(){vfunc_called(this, "_ZN6S105C44v154Ev");}
void  S105C4 ::v155(){vfunc_called(this, "_ZN6S105C44v155Ev");}
void  S105C4 ::v156(){vfunc_called(this, "_ZN6S105C44v156Ev");}
void  S105C4 ::v157(){vfunc_called(this, "_ZN6S105C44v157Ev");}
void  S105C4 ::v158(){vfunc_called(this, "_ZN6S105C44v158Ev");}
void  S105C4 ::v159(){vfunc_called(this, "_ZN6S105C44v159Ev");}
void  S105C4 ::v160(){vfunc_called(this, "_ZN6S105C44v160Ev");}
void  S105C4 ::v161(){vfunc_called(this, "_ZN6S105C44v161Ev");}
void  S105C4 ::v162(){vfunc_called(this, "_ZN6S105C44v162Ev");}
void  S105C4 ::v163(){vfunc_called(this, "_ZN6S105C44v163Ev");}
void  S105C4 ::v164(){vfunc_called(this, "_ZN6S105C44v164Ev");}
void  S105C4 ::v165(){vfunc_called(this, "_ZN6S105C44v165Ev");}
void  S105C4 ::v166(){vfunc_called(this, "_ZN6S105C44v166Ev");}
void  S105C4 ::v167(){vfunc_called(this, "_ZN6S105C44v167Ev");}
void  S105C4 ::v168(){vfunc_called(this, "_ZN6S105C44v168Ev");}
void  S105C4 ::v169(){vfunc_called(this, "_ZN6S105C44v169Ev");}
void  S105C4 ::v170(){vfunc_called(this, "_ZN6S105C44v170Ev");}
void  S105C4 ::v171(){vfunc_called(this, "_ZN6S105C44v171Ev");}
void  S105C4 ::v172(){vfunc_called(this, "_ZN6S105C44v172Ev");}
void  S105C4 ::v173(){vfunc_called(this, "_ZN6S105C44v173Ev");}
void  S105C4 ::v174(){vfunc_called(this, "_ZN6S105C44v174Ev");}
void  S105C4 ::v175(){vfunc_called(this, "_ZN6S105C44v175Ev");}
void  S105C4 ::v176(){vfunc_called(this, "_ZN6S105C44v176Ev");}
void  S105C4 ::v177(){vfunc_called(this, "_ZN6S105C44v177Ev");}
void  S105C4 ::v178(){vfunc_called(this, "_ZN6S105C44v178Ev");}
void  S105C4 ::v179(){vfunc_called(this, "_ZN6S105C44v179Ev");}
void  S105C4 ::v180(){vfunc_called(this, "_ZN6S105C44v180Ev");}
void  S105C4 ::v181(){vfunc_called(this, "_ZN6S105C44v181Ev");}
void  S105C4 ::v182(){vfunc_called(this, "_ZN6S105C44v182Ev");}
void  S105C4 ::v183(){vfunc_called(this, "_ZN6S105C44v183Ev");}
void  S105C4 ::v184(){vfunc_called(this, "_ZN6S105C44v184Ev");}
void  S105C4 ::v185(){vfunc_called(this, "_ZN6S105C44v185Ev");}
void  S105C4 ::v186(){vfunc_called(this, "_ZN6S105C44v186Ev");}
S105C4 ::S105C4(){ note_ctor("S105C4", this);} // tgen

static void Test_S105C4()
{
  extern Class_Descriptor cd_S105C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S105C4, buf);
    S105C4 *dp, &lv = *(dp=new (buf) S105C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S105C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C4)");
    check_base_class_offset(lv, (S105C7*)(S105C6*)(S105C5*), 0, "S105C4");
    check_base_class_offset(lv, (S105C6*)(S105C5*), 0, "S105C4");
    check_base_class_offset(lv, (S105C5*), 0, "S105C4");
    check_field_offset(lv, s105c4f0, ABISELECT(464,352), "S105C4.s105c4f0");
    check_field_offset(lv, s105c4f1, ABISELECT(472,360), "S105C4.s105c4f1");
    check_field_offset(lv, s105c4f2, ABISELECT(544,396), "S105C4.s105c4f2");
    check_field_offset(lv, s105c4f3, ABISELECT(560,408), "S105C4.s105c4f3");
    check_field_offset(lv, s105c4f4, ABISELECT(576,420), "S105C4.s105c4f4");
    check_field_offset(lv, s105c4f5, ABISELECT(608,440), "S105C4.s105c4f5");
    set_bf_and_test(lv, s105c4f6, ABISELECT(612,444), 0, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f7, ABISELECT(612,444), 1, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f8, ABISELECT(612,444), 2, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f9, ABISELECT(612,444), 3, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f10, ABISELECT(612,444), 4, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f11, ABISELECT(612,444), 5, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f12, ABISELECT(612,444), 6, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f13, ABISELECT(612,444), 7, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f14, ABISELECT(613,445), 0, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f15, ABISELECT(613,445), 1, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f16, ABISELECT(613,445), 2, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f17, ABISELECT(613,445), 3, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f18, ABISELECT(613,445), 4, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f19, ABISELECT(613,445), 5, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f20, ABISELECT(613,445), 6, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f21, ABISELECT(613,445), 7, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f22, ABISELECT(614,446), 0, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f23, ABISELECT(614,446), 1, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f24, ABISELECT(614,446), 2, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f25, ABISELECT(614,446), 3, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f26, ABISELECT(614,446), 4, 1, 1, "S105C4");
    set_bf_and_test(lv, s105c4f27, ABISELECT(614,446), 5, 1, 1, "S105C4");
    check_field_offset(lv, s105c4f28, ABISELECT(616,448), "S105C4.s105c4f28");
    check_field_offset(lv, s105c4f29, ABISELECT(624,452), "S105C4.s105c4f29");
    check_field_offset(lv, s105c4f30, ABISELECT(628,456), "S105C4.s105c4f30");
    check_field_offset(lv, s105c4f31, ABISELECT(636,464), "S105C4.s105c4f31");
    check_field_offset(lv, s105c4f32, ABISELECT(644,472), "S105C4.s105c4f32");
    check_field_offset(lv, s105c4f33, ABISELECT(656,480), "S105C4.s105c4f33");
    check_field_offset(lv, s105c4f34, ABISELECT(664,484), "S105C4.s105c4f34");
    check_field_offset(lv, s105c4f35, ABISELECT(680,496), "S105C4.s105c4f35");
    check_field_offset(lv, s105c4f36, ABISELECT(696,508), "S105C4.s105c4f36");
    check_field_offset(lv, s105c4f37, ABISELECT(712,520), "S105C4.s105c4f37");
    check_field_offset(lv, s105c4f38, ABISELECT(728,532), "S105C4.s105c4f38");
    test_class_info(&lv, &cd_S105C4);
    dp->~S105C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C4(Test_S105C4, "S105C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S105C4C1Ev();
extern void _ZN6S105C4D1Ev();
Name_Map name_map_S105C4[] = {
  NSPAIR(_ZN6S105C4C1Ev),
  NSPAIR(_ZN6S105C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S105C7;
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
extern Class_Descriptor cd_S105C6;
extern VTBL_ENTRY _ZTI6S105C6[];
extern  VTBL_ENTRY _ZTV6S105C6[];
extern Class_Descriptor cd_S105C5;
extern VTBL_ENTRY _ZTI6S105C5[];
extern  VTBL_ENTRY _ZTV6S105C5[];
static Base_Class bases_S105C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S105C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S105C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S105C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S105C4[];
extern void _ZN6S105C4D1Ev();
extern void _ZN6S105C4D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
extern void _ZN6S105C63v70Ev();
extern void _ZN6S105C63v71Ev();
extern void _ZN6S105C53v72Ev();
extern void _ZN6S105C53v73Ev();
extern void _ZN6S105C53v74Ev();
extern void _ZN6S105C53v75Ev();
extern void _ZN6S105C53v76Ev();
extern void _ZN6S105C53v77Ev();
extern void _ZN6S105C53v78Ev();
extern void _ZN6S105C53v79Ev();
extern void _ZN6S105C53v80Ev();
extern void _ZN6S105C53v81Ev();
extern void _ZN6S105C53v82Ev();
extern void _ZN6S105C53v83Ev();
extern void _ZN6S105C53v84Ev();
extern void _ZN6S105C53v85Ev();
extern void _ZN6S105C53v86Ev();
extern void _ZN6S105C53v87Ev();
extern void _ZN6S105C53v88Ev();
extern void _ZN6S105C53v89Ev();
extern void _ZN6S105C53v90Ev();
extern void _ZN6S105C53v91Ev();
extern void _ZN6S105C53v92Ev();
extern void _ZN6S105C53v93Ev();
extern void _ZN6S105C53v94Ev();
extern void _ZN6S105C53v95Ev();
extern void _ZN6S105C53v96Ev();
extern void _ZN6S105C53v97Ev();
extern void _ZN6S105C53v98Ev();
extern void _ZN6S105C53v99Ev();
extern void _ZN6S105C54v100Ev();
extern void _ZN6S105C54v101Ev();
extern void _ZN6S105C54v102Ev();
extern void _ZN6S105C54v103Ev();
extern void _ZN6S105C54v104Ev();
extern void _ZN6S105C54v105Ev();
extern void _ZN6S105C54v106Ev();
extern void _ZN6S105C54v107Ev();
extern void _ZN6S105C54v108Ev();
extern void _ZN6S105C54v109Ev();
extern void _ZN6S105C54v110Ev();
extern void _ZN6S105C54v111Ev();
extern void _ZN6S105C54v112Ev();
extern void _ZN6S105C54v113Ev();
extern void _ZN6S105C54v114Ev();
extern void _ZN6S105C54v115Ev();
extern void _ZN6S105C54v116Ev();
extern void _ZN6S105C54v117Ev();
extern void _ZN6S105C54v118Ev();
extern void _ZN6S105C54v119Ev();
extern void _ZN6S105C54v120Ev();
extern void _ZN6S105C54v121Ev();
extern void _ZN6S105C54v122Ev();
extern void _ZN6S105C54v123Ev();
extern void _ZN6S105C54v124Ev();
extern void _ZN6S105C54v125Ev();
extern void _ZN6S105C54v126Ev();
extern void _ZN6S105C54v127Ev();
extern void _ZN6S105C54v128Ev();
extern void _ZN6S105C54v129Ev();
extern void _ZN6S105C54v130Ev();
extern void _ZN6S105C54v131Ev();
extern void _ZN6S105C54v132Ev();
extern void _ZN6S105C54v133Ev();
extern void _ZN6S105C54v134Ev();
extern void _ZN6S105C54v135Ev();
extern void _ZN6S105C54v136Ev();
extern void _ZN6S105C54v137Ev();
extern void _ZN6S105C54v138Ev();
extern void _ZN6S105C54v139Ev();
extern void _ZN6S105C54v140Ev();
extern void _ZN6S105C54v141Ev();
extern void _ZN6S105C54v142Ev();
extern void _ZN6S105C54v143Ev();
extern void _ZN6S105C54v144Ev();
extern void _ZN6S105C54v145Ev();
extern void _ZN6S105C54v146Ev();
extern void _ZN6S105C54v147Ev();
extern void _ZN6S105C44v148Ev();
extern void _ZN6S105C44v149Ev();
extern void _ZN6S105C44v150Ev();
extern void _ZN6S105C44v151Ev();
extern void _ZN6S105C44v152Ev();
extern void _ZN6S105C44v153Ev();
extern void _ZN6S105C44v154Ev();
extern void _ZN6S105C44v155Ev();
extern void _ZN6S105C44v156Ev();
extern void _ZN6S105C44v157Ev();
extern void _ZN6S105C44v158Ev();
extern void _ZN6S105C44v159Ev();
extern void _ZN6S105C44v160Ev();
extern void _ZN6S105C44v161Ev();
extern void _ZN6S105C44v162Ev();
extern void _ZN6S105C44v163Ev();
extern void _ZN6S105C44v164Ev();
extern void _ZN6S105C44v165Ev();
extern void _ZN6S105C44v166Ev();
extern void _ZN6S105C44v167Ev();
extern void _ZN6S105C44v168Ev();
extern void _ZN6S105C44v169Ev();
extern void _ZN6S105C44v170Ev();
extern void _ZN6S105C44v171Ev();
extern void _ZN6S105C44v172Ev();
extern void _ZN6S105C44v173Ev();
extern void _ZN6S105C44v174Ev();
extern void _ZN6S105C44v175Ev();
extern void _ZN6S105C44v176Ev();
extern void _ZN6S105C44v177Ev();
extern void _ZN6S105C44v178Ev();
extern void _ZN6S105C44v179Ev();
extern void _ZN6S105C44v180Ev();
extern void _ZN6S105C44v181Ev();
extern void _ZN6S105C44v182Ev();
extern void _ZN6S105C44v183Ev();
extern void _ZN6S105C44v184Ev();
extern void _ZN6S105C44v185Ev();
extern void _ZN6S105C44v186Ev();
static  VTBL_ENTRY vtc_S105C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C4[0]),
  (VTBL_ENTRY)&_ZN6S105C4D1Ev,
  (VTBL_ENTRY)&_ZN6S105C4D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
  (VTBL_ENTRY)&_ZN6S105C63v70Ev,
  (VTBL_ENTRY)&_ZN6S105C63v71Ev,
  (VTBL_ENTRY)&_ZN6S105C53v72Ev,
  (VTBL_ENTRY)&_ZN6S105C53v73Ev,
  (VTBL_ENTRY)&_ZN6S105C53v74Ev,
  (VTBL_ENTRY)&_ZN6S105C53v75Ev,
  (VTBL_ENTRY)&_ZN6S105C53v76Ev,
  (VTBL_ENTRY)&_ZN6S105C53v77Ev,
  (VTBL_ENTRY)&_ZN6S105C53v78Ev,
  (VTBL_ENTRY)&_ZN6S105C53v79Ev,
  (VTBL_ENTRY)&_ZN6S105C53v80Ev,
  (VTBL_ENTRY)&_ZN6S105C53v81Ev,
  (VTBL_ENTRY)&_ZN6S105C53v82Ev,
  (VTBL_ENTRY)&_ZN6S105C53v83Ev,
  (VTBL_ENTRY)&_ZN6S105C53v84Ev,
  (VTBL_ENTRY)&_ZN6S105C53v85Ev,
  (VTBL_ENTRY)&_ZN6S105C53v86Ev,
  (VTBL_ENTRY)&_ZN6S105C53v87Ev,
  (VTBL_ENTRY)&_ZN6S105C53v88Ev,
  (VTBL_ENTRY)&_ZN6S105C53v89Ev,
  (VTBL_ENTRY)&_ZN6S105C53v90Ev,
  (VTBL_ENTRY)&_ZN6S105C53v91Ev,
  (VTBL_ENTRY)&_ZN6S105C53v92Ev,
  (VTBL_ENTRY)&_ZN6S105C53v93Ev,
  (VTBL_ENTRY)&_ZN6S105C53v94Ev,
  (VTBL_ENTRY)&_ZN6S105C53v95Ev,
  (VTBL_ENTRY)&_ZN6S105C53v96Ev,
  (VTBL_ENTRY)&_ZN6S105C53v97Ev,
  (VTBL_ENTRY)&_ZN6S105C53v98Ev,
  (VTBL_ENTRY)&_ZN6S105C53v99Ev,
  (VTBL_ENTRY)&_ZN6S105C54v100Ev,
  (VTBL_ENTRY)&_ZN6S105C54v101Ev,
  (VTBL_ENTRY)&_ZN6S105C54v102Ev,
  (VTBL_ENTRY)&_ZN6S105C54v103Ev,
  (VTBL_ENTRY)&_ZN6S105C54v104Ev,
  (VTBL_ENTRY)&_ZN6S105C54v105Ev,
  (VTBL_ENTRY)&_ZN6S105C54v106Ev,
  (VTBL_ENTRY)&_ZN6S105C54v107Ev,
  (VTBL_ENTRY)&_ZN6S105C54v108Ev,
  (VTBL_ENTRY)&_ZN6S105C54v109Ev,
  (VTBL_ENTRY)&_ZN6S105C54v110Ev,
  (VTBL_ENTRY)&_ZN6S105C54v111Ev,
  (VTBL_ENTRY)&_ZN6S105C54v112Ev,
  (VTBL_ENTRY)&_ZN6S105C54v113Ev,
  (VTBL_ENTRY)&_ZN6S105C54v114Ev,
  (VTBL_ENTRY)&_ZN6S105C54v115Ev,
  (VTBL_ENTRY)&_ZN6S105C54v116Ev,
  (VTBL_ENTRY)&_ZN6S105C54v117Ev,
  (VTBL_ENTRY)&_ZN6S105C54v118Ev,
  (VTBL_ENTRY)&_ZN6S105C54v119Ev,
  (VTBL_ENTRY)&_ZN6S105C54v120Ev,
  (VTBL_ENTRY)&_ZN6S105C54v121Ev,
  (VTBL_ENTRY)&_ZN6S105C54v122Ev,
  (VTBL_ENTRY)&_ZN6S105C54v123Ev,
  (VTBL_ENTRY)&_ZN6S105C54v124Ev,
  (VTBL_ENTRY)&_ZN6S105C54v125Ev,
  (VTBL_ENTRY)&_ZN6S105C54v126Ev,
  (VTBL_ENTRY)&_ZN6S105C54v127Ev,
  (VTBL_ENTRY)&_ZN6S105C54v128Ev,
  (VTBL_ENTRY)&_ZN6S105C54v129Ev,
  (VTBL_ENTRY)&_ZN6S105C54v130Ev,
  (VTBL_ENTRY)&_ZN6S105C54v131Ev,
  (VTBL_ENTRY)&_ZN6S105C54v132Ev,
  (VTBL_ENTRY)&_ZN6S105C54v133Ev,
  (VTBL_ENTRY)&_ZN6S105C54v134Ev,
  (VTBL_ENTRY)&_ZN6S105C54v135Ev,
  (VTBL_ENTRY)&_ZN6S105C54v136Ev,
  (VTBL_ENTRY)&_ZN6S105C54v137Ev,
  (VTBL_ENTRY)&_ZN6S105C54v138Ev,
  (VTBL_ENTRY)&_ZN6S105C54v139Ev,
  (VTBL_ENTRY)&_ZN6S105C54v140Ev,
  (VTBL_ENTRY)&_ZN6S105C54v141Ev,
  (VTBL_ENTRY)&_ZN6S105C54v142Ev,
  (VTBL_ENTRY)&_ZN6S105C54v143Ev,
  (VTBL_ENTRY)&_ZN6S105C54v144Ev,
  (VTBL_ENTRY)&_ZN6S105C54v145Ev,
  (VTBL_ENTRY)&_ZN6S105C54v146Ev,
  (VTBL_ENTRY)&_ZN6S105C54v147Ev,
  (VTBL_ENTRY)&_ZN6S105C44v148Ev,
  (VTBL_ENTRY)&_ZN6S105C44v149Ev,
  (VTBL_ENTRY)&_ZN6S105C44v150Ev,
  (VTBL_ENTRY)&_ZN6S105C44v151Ev,
  (VTBL_ENTRY)&_ZN6S105C44v152Ev,
  (VTBL_ENTRY)&_ZN6S105C44v153Ev,
  (VTBL_ENTRY)&_ZN6S105C44v154Ev,
  (VTBL_ENTRY)&_ZN6S105C44v155Ev,
  (VTBL_ENTRY)&_ZN6S105C44v156Ev,
  (VTBL_ENTRY)&_ZN6S105C44v157Ev,
  (VTBL_ENTRY)&_ZN6S105C44v158Ev,
  (VTBL_ENTRY)&_ZN6S105C44v159Ev,
  (VTBL_ENTRY)&_ZN6S105C44v160Ev,
  (VTBL_ENTRY)&_ZN6S105C44v161Ev,
  (VTBL_ENTRY)&_ZN6S105C44v162Ev,
  (VTBL_ENTRY)&_ZN6S105C44v163Ev,
  (VTBL_ENTRY)&_ZN6S105C44v164Ev,
  (VTBL_ENTRY)&_ZN6S105C44v165Ev,
  (VTBL_ENTRY)&_ZN6S105C44v166Ev,
  (VTBL_ENTRY)&_ZN6S105C44v167Ev,
  (VTBL_ENTRY)&_ZN6S105C44v168Ev,
  (VTBL_ENTRY)&_ZN6S105C44v169Ev,
  (VTBL_ENTRY)&_ZN6S105C44v170Ev,
  (VTBL_ENTRY)&_ZN6S105C44v171Ev,
  (VTBL_ENTRY)&_ZN6S105C44v172Ev,
  (VTBL_ENTRY)&_ZN6S105C44v173Ev,
  (VTBL_ENTRY)&_ZN6S105C44v174Ev,
  (VTBL_ENTRY)&_ZN6S105C44v175Ev,
  (VTBL_ENTRY)&_ZN6S105C44v176Ev,
  (VTBL_ENTRY)&_ZN6S105C44v177Ev,
  (VTBL_ENTRY)&_ZN6S105C44v178Ev,
  (VTBL_ENTRY)&_ZN6S105C44v179Ev,
  (VTBL_ENTRY)&_ZN6S105C44v180Ev,
  (VTBL_ENTRY)&_ZN6S105C44v181Ev,
  (VTBL_ENTRY)&_ZN6S105C44v182Ev,
  (VTBL_ENTRY)&_ZN6S105C44v183Ev,
  (VTBL_ENTRY)&_ZN6S105C44v184Ev,
  (VTBL_ENTRY)&_ZN6S105C44v185Ev,
  (VTBL_ENTRY)&_ZN6S105C44v186Ev,
};
extern VTBL_ENTRY _ZTI6S105C4[];
extern  VTBL_ENTRY _ZTV6S105C4[];
Class_Descriptor cd_S105C4 = {  "S105C4", // class name
  bases_S105C4, 3,
  &(vtc_S105C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S105C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S105C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C3  : S105C4 {
  unsigned int s105c3f0:1;
  unsigned int s105c3f1:1;
  unsigned int s105c3f2:1;
  unsigned int s105c3f3:1;
  unsigned int s105c3f4:1;
  unsigned int s105c3f5:1;
  void *s105c3f6[8];
  ::S80C21_nt s105c3f7;
  ::S80C21_nt s105c3f8;
  ::S80C21_nt s105c3f9;
  virtual  ~S105C3(); // _ZN6S105C3D1Ev
  virtual void  v187(); // _ZN6S105C34v187Ev
  virtual void  v188(); // _ZN6S105C34v188Ev
  virtual void  v189(); // _ZN6S105C34v189Ev
  virtual void  v190(); // _ZN6S105C34v190Ev
  virtual void  v191(); // _ZN6S105C34v191Ev
  virtual void  v192(); // _ZN6S105C34v192Ev
  virtual void  v193(); // _ZN6S105C34v193Ev
  virtual void  v194(); // _ZN6S105C34v194Ev
  virtual void  v195(); // _ZN6S105C34v195Ev
  virtual void  v196(); // _ZN6S105C34v196Ev
  virtual void  v197(); // _ZN6S105C34v197Ev
  virtual void  v198(); // _ZN6S105C34v198Ev
  virtual void  v199(); // _ZN6S105C34v199Ev
  virtual void  v200(); // _ZN6S105C34v200Ev
  virtual void  v201(); // _ZN6S105C34v201Ev
  virtual void  v202(); // _ZN6S105C34v202Ev
  virtual void  v203(); // _ZN6S105C34v203Ev
  virtual void  v204(); // _ZN6S105C34v204Ev
  virtual void  v205(); // _ZN6S105C34v205Ev
  virtual void  v206(); // _ZN6S105C34v206Ev
  virtual void  v207(); // _ZN6S105C34v207Ev
  virtual void  v208(); // _ZN6S105C34v208Ev
  virtual void  v209(); // _ZN6S105C34v209Ev
  S105C3(); // tgen
};
//SIG(-1 S105C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S105C3 ::~S105C3(){ note_dtor("S105C3", this);}
void  S105C3 ::v187(){vfunc_called(this, "_ZN6S105C34v187Ev");}
void  S105C3 ::v188(){vfunc_called(this, "_ZN6S105C34v188Ev");}
void  S105C3 ::v189(){vfunc_called(this, "_ZN6S105C34v189Ev");}
void  S105C3 ::v190(){vfunc_called(this, "_ZN6S105C34v190Ev");}
void  S105C3 ::v191(){vfunc_called(this, "_ZN6S105C34v191Ev");}
void  S105C3 ::v192(){vfunc_called(this, "_ZN6S105C34v192Ev");}
void  S105C3 ::v193(){vfunc_called(this, "_ZN6S105C34v193Ev");}
void  S105C3 ::v194(){vfunc_called(this, "_ZN6S105C34v194Ev");}
void  S105C3 ::v195(){vfunc_called(this, "_ZN6S105C34v195Ev");}
void  S105C3 ::v196(){vfunc_called(this, "_ZN6S105C34v196Ev");}
void  S105C3 ::v197(){vfunc_called(this, "_ZN6S105C34v197Ev");}
void  S105C3 ::v198(){vfunc_called(this, "_ZN6S105C34v198Ev");}
void  S105C3 ::v199(){vfunc_called(this, "_ZN6S105C34v199Ev");}
void  S105C3 ::v200(){vfunc_called(this, "_ZN6S105C34v200Ev");}
void  S105C3 ::v201(){vfunc_called(this, "_ZN6S105C34v201Ev");}
void  S105C3 ::v202(){vfunc_called(this, "_ZN6S105C34v202Ev");}
void  S105C3 ::v203(){vfunc_called(this, "_ZN6S105C34v203Ev");}
void  S105C3 ::v204(){vfunc_called(this, "_ZN6S105C34v204Ev");}
void  S105C3 ::v205(){vfunc_called(this, "_ZN6S105C34v205Ev");}
void  S105C3 ::v206(){vfunc_called(this, "_ZN6S105C34v206Ev");}
void  S105C3 ::v207(){vfunc_called(this, "_ZN6S105C34v207Ev");}
void  S105C3 ::v208(){vfunc_called(this, "_ZN6S105C34v208Ev");}
void  S105C3 ::v209(){vfunc_called(this, "_ZN6S105C34v209Ev");}
S105C3 ::S105C3(){ note_ctor("S105C3", this);} // tgen

static void Test_S105C3()
{
  extern Class_Descriptor cd_S105C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S105C3, buf);
    S105C3 *dp, &lv = *(dp=new (buf) S105C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S105C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C3)");
    check_base_class_offset(lv, (S105C7*)(S105C6*)(S105C5*)(S105C4*), 0, "S105C3");
    check_base_class_offset(lv, (S105C6*)(S105C5*)(S105C4*), 0, "S105C3");
    check_base_class_offset(lv, (S105C5*)(S105C4*), 0, "S105C3");
    check_base_class_offset(lv, (S105C4*), 0, "S105C3");
    set_bf_and_test(lv, s105c3f0, ABISELECT(744,544), 0, 1, 1, "S105C3");
    set_bf_and_test(lv, s105c3f1, ABISELECT(744,544), 1, 1, 1, "S105C3");
    set_bf_and_test(lv, s105c3f2, ABISELECT(744,544), 2, 1, 1, "S105C3");
    set_bf_and_test(lv, s105c3f3, ABISELECT(744,544), 3, 1, 1, "S105C3");
    set_bf_and_test(lv, s105c3f4, ABISELECT(744,544), 4, 1, 1, "S105C3");
    set_bf_and_test(lv, s105c3f5, ABISELECT(744,544), 5, 1, 1, "S105C3");
    check_field_offset(lv, s105c3f6, ABISELECT(752,548), "S105C3.s105c3f6");
    check_field_offset(lv, s105c3f7, ABISELECT(816,580), "S105C3.s105c3f7");
    check_field_offset(lv, s105c3f8, ABISELECT(832,592), "S105C3.s105c3f8");
    check_field_offset(lv, s105c3f9, ABISELECT(848,604), "S105C3.s105c3f9");
    test_class_info(&lv, &cd_S105C3);
    dp->~S105C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C3(Test_S105C3, "S105C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S105C3C1Ev();
extern void _ZN6S105C3D1Ev();
Name_Map name_map_S105C3[] = {
  NSPAIR(_ZN6S105C3C1Ev),
  NSPAIR(_ZN6S105C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S105C7;
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
extern Class_Descriptor cd_S105C6;
extern VTBL_ENTRY _ZTI6S105C6[];
extern  VTBL_ENTRY _ZTV6S105C6[];
extern Class_Descriptor cd_S105C5;
extern VTBL_ENTRY _ZTI6S105C5[];
extern  VTBL_ENTRY _ZTV6S105C5[];
extern Class_Descriptor cd_S105C4;
extern VTBL_ENTRY _ZTI6S105C4[];
extern  VTBL_ENTRY _ZTV6S105C4[];
static Base_Class bases_S105C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S105C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S105C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S105C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S105C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S105C3[];
extern void _ZN6S105C3D1Ev();
extern void _ZN6S105C3D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
extern void _ZN6S105C63v70Ev();
extern void _ZN6S105C63v71Ev();
extern void _ZN6S105C53v72Ev();
extern void _ZN6S105C53v73Ev();
extern void _ZN6S105C53v74Ev();
extern void _ZN6S105C53v75Ev();
extern void _ZN6S105C53v76Ev();
extern void _ZN6S105C53v77Ev();
extern void _ZN6S105C53v78Ev();
extern void _ZN6S105C53v79Ev();
extern void _ZN6S105C53v80Ev();
extern void _ZN6S105C53v81Ev();
extern void _ZN6S105C53v82Ev();
extern void _ZN6S105C53v83Ev();
extern void _ZN6S105C53v84Ev();
extern void _ZN6S105C53v85Ev();
extern void _ZN6S105C53v86Ev();
extern void _ZN6S105C53v87Ev();
extern void _ZN6S105C53v88Ev();
extern void _ZN6S105C53v89Ev();
extern void _ZN6S105C53v90Ev();
extern void _ZN6S105C53v91Ev();
extern void _ZN6S105C53v92Ev();
extern void _ZN6S105C53v93Ev();
extern void _ZN6S105C53v94Ev();
extern void _ZN6S105C53v95Ev();
extern void _ZN6S105C53v96Ev();
extern void _ZN6S105C53v97Ev();
extern void _ZN6S105C53v98Ev();
extern void _ZN6S105C53v99Ev();
extern void _ZN6S105C54v100Ev();
extern void _ZN6S105C54v101Ev();
extern void _ZN6S105C54v102Ev();
extern void _ZN6S105C54v103Ev();
extern void _ZN6S105C54v104Ev();
extern void _ZN6S105C54v105Ev();
extern void _ZN6S105C54v106Ev();
extern void _ZN6S105C54v107Ev();
extern void _ZN6S105C54v108Ev();
extern void _ZN6S105C54v109Ev();
extern void _ZN6S105C54v110Ev();
extern void _ZN6S105C54v111Ev();
extern void _ZN6S105C54v112Ev();
extern void _ZN6S105C54v113Ev();
extern void _ZN6S105C54v114Ev();
extern void _ZN6S105C54v115Ev();
extern void _ZN6S105C54v116Ev();
extern void _ZN6S105C54v117Ev();
extern void _ZN6S105C54v118Ev();
extern void _ZN6S105C54v119Ev();
extern void _ZN6S105C54v120Ev();
extern void _ZN6S105C54v121Ev();
extern void _ZN6S105C54v122Ev();
extern void _ZN6S105C54v123Ev();
extern void _ZN6S105C54v124Ev();
extern void _ZN6S105C54v125Ev();
extern void _ZN6S105C54v126Ev();
extern void _ZN6S105C54v127Ev();
extern void _ZN6S105C54v128Ev();
extern void _ZN6S105C54v129Ev();
extern void _ZN6S105C54v130Ev();
extern void _ZN6S105C54v131Ev();
extern void _ZN6S105C54v132Ev();
extern void _ZN6S105C54v133Ev();
extern void _ZN6S105C54v134Ev();
extern void _ZN6S105C54v135Ev();
extern void _ZN6S105C54v136Ev();
extern void _ZN6S105C54v137Ev();
extern void _ZN6S105C54v138Ev();
extern void _ZN6S105C54v139Ev();
extern void _ZN6S105C54v140Ev();
extern void _ZN6S105C54v141Ev();
extern void _ZN6S105C54v142Ev();
extern void _ZN6S105C54v143Ev();
extern void _ZN6S105C54v144Ev();
extern void _ZN6S105C54v145Ev();
extern void _ZN6S105C54v146Ev();
extern void _ZN6S105C54v147Ev();
extern void _ZN6S105C44v148Ev();
extern void _ZN6S105C44v149Ev();
extern void _ZN6S105C44v150Ev();
extern void _ZN6S105C44v151Ev();
extern void _ZN6S105C44v152Ev();
extern void _ZN6S105C44v153Ev();
extern void _ZN6S105C44v154Ev();
extern void _ZN6S105C44v155Ev();
extern void _ZN6S105C44v156Ev();
extern void _ZN6S105C44v157Ev();
extern void _ZN6S105C44v158Ev();
extern void _ZN6S105C44v159Ev();
extern void _ZN6S105C44v160Ev();
extern void _ZN6S105C44v161Ev();
extern void _ZN6S105C44v162Ev();
extern void _ZN6S105C44v163Ev();
extern void _ZN6S105C44v164Ev();
extern void _ZN6S105C44v165Ev();
extern void _ZN6S105C44v166Ev();
extern void _ZN6S105C44v167Ev();
extern void _ZN6S105C44v168Ev();
extern void _ZN6S105C44v169Ev();
extern void _ZN6S105C44v170Ev();
extern void _ZN6S105C44v171Ev();
extern void _ZN6S105C44v172Ev();
extern void _ZN6S105C44v173Ev();
extern void _ZN6S105C44v174Ev();
extern void _ZN6S105C44v175Ev();
extern void _ZN6S105C44v176Ev();
extern void _ZN6S105C44v177Ev();
extern void _ZN6S105C44v178Ev();
extern void _ZN6S105C44v179Ev();
extern void _ZN6S105C44v180Ev();
extern void _ZN6S105C44v181Ev();
extern void _ZN6S105C44v182Ev();
extern void _ZN6S105C44v183Ev();
extern void _ZN6S105C44v184Ev();
extern void _ZN6S105C44v185Ev();
extern void _ZN6S105C44v186Ev();
extern void _ZN6S105C34v187Ev();
extern void _ZN6S105C34v188Ev();
extern void _ZN6S105C34v189Ev();
extern void _ZN6S105C34v190Ev();
extern void _ZN6S105C34v191Ev();
extern void _ZN6S105C34v192Ev();
extern void _ZN6S105C34v193Ev();
extern void _ZN6S105C34v194Ev();
extern void _ZN6S105C34v195Ev();
extern void _ZN6S105C34v196Ev();
extern void _ZN6S105C34v197Ev();
extern void _ZN6S105C34v198Ev();
extern void _ZN6S105C34v199Ev();
extern void _ZN6S105C34v200Ev();
extern void _ZN6S105C34v201Ev();
extern void _ZN6S105C34v202Ev();
extern void _ZN6S105C34v203Ev();
extern void _ZN6S105C34v204Ev();
extern void _ZN6S105C34v205Ev();
extern void _ZN6S105C34v206Ev();
extern void _ZN6S105C34v207Ev();
extern void _ZN6S105C34v208Ev();
extern void _ZN6S105C34v209Ev();
static  VTBL_ENTRY vtc_S105C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C3[0]),
  (VTBL_ENTRY)&_ZN6S105C3D1Ev,
  (VTBL_ENTRY)&_ZN6S105C3D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
  (VTBL_ENTRY)&_ZN6S105C63v70Ev,
  (VTBL_ENTRY)&_ZN6S105C63v71Ev,
  (VTBL_ENTRY)&_ZN6S105C53v72Ev,
  (VTBL_ENTRY)&_ZN6S105C53v73Ev,
  (VTBL_ENTRY)&_ZN6S105C53v74Ev,
  (VTBL_ENTRY)&_ZN6S105C53v75Ev,
  (VTBL_ENTRY)&_ZN6S105C53v76Ev,
  (VTBL_ENTRY)&_ZN6S105C53v77Ev,
  (VTBL_ENTRY)&_ZN6S105C53v78Ev,
  (VTBL_ENTRY)&_ZN6S105C53v79Ev,
  (VTBL_ENTRY)&_ZN6S105C53v80Ev,
  (VTBL_ENTRY)&_ZN6S105C53v81Ev,
  (VTBL_ENTRY)&_ZN6S105C53v82Ev,
  (VTBL_ENTRY)&_ZN6S105C53v83Ev,
  (VTBL_ENTRY)&_ZN6S105C53v84Ev,
  (VTBL_ENTRY)&_ZN6S105C53v85Ev,
  (VTBL_ENTRY)&_ZN6S105C53v86Ev,
  (VTBL_ENTRY)&_ZN6S105C53v87Ev,
  (VTBL_ENTRY)&_ZN6S105C53v88Ev,
  (VTBL_ENTRY)&_ZN6S105C53v89Ev,
  (VTBL_ENTRY)&_ZN6S105C53v90Ev,
  (VTBL_ENTRY)&_ZN6S105C53v91Ev,
  (VTBL_ENTRY)&_ZN6S105C53v92Ev,
  (VTBL_ENTRY)&_ZN6S105C53v93Ev,
  (VTBL_ENTRY)&_ZN6S105C53v94Ev,
  (VTBL_ENTRY)&_ZN6S105C53v95Ev,
  (VTBL_ENTRY)&_ZN6S105C53v96Ev,
  (VTBL_ENTRY)&_ZN6S105C53v97Ev,
  (VTBL_ENTRY)&_ZN6S105C53v98Ev,
  (VTBL_ENTRY)&_ZN6S105C53v99Ev,
  (VTBL_ENTRY)&_ZN6S105C54v100Ev,
  (VTBL_ENTRY)&_ZN6S105C54v101Ev,
  (VTBL_ENTRY)&_ZN6S105C54v102Ev,
  (VTBL_ENTRY)&_ZN6S105C54v103Ev,
  (VTBL_ENTRY)&_ZN6S105C54v104Ev,
  (VTBL_ENTRY)&_ZN6S105C54v105Ev,
  (VTBL_ENTRY)&_ZN6S105C54v106Ev,
  (VTBL_ENTRY)&_ZN6S105C54v107Ev,
  (VTBL_ENTRY)&_ZN6S105C54v108Ev,
  (VTBL_ENTRY)&_ZN6S105C54v109Ev,
  (VTBL_ENTRY)&_ZN6S105C54v110Ev,
  (VTBL_ENTRY)&_ZN6S105C54v111Ev,
  (VTBL_ENTRY)&_ZN6S105C54v112Ev,
  (VTBL_ENTRY)&_ZN6S105C54v113Ev,
  (VTBL_ENTRY)&_ZN6S105C54v114Ev,
  (VTBL_ENTRY)&_ZN6S105C54v115Ev,
  (VTBL_ENTRY)&_ZN6S105C54v116Ev,
  (VTBL_ENTRY)&_ZN6S105C54v117Ev,
  (VTBL_ENTRY)&_ZN6S105C54v118Ev,
  (VTBL_ENTRY)&_ZN6S105C54v119Ev,
  (VTBL_ENTRY)&_ZN6S105C54v120Ev,
  (VTBL_ENTRY)&_ZN6S105C54v121Ev,
  (VTBL_ENTRY)&_ZN6S105C54v122Ev,
  (VTBL_ENTRY)&_ZN6S105C54v123Ev,
  (VTBL_ENTRY)&_ZN6S105C54v124Ev,
  (VTBL_ENTRY)&_ZN6S105C54v125Ev,
  (VTBL_ENTRY)&_ZN6S105C54v126Ev,
  (VTBL_ENTRY)&_ZN6S105C54v127Ev,
  (VTBL_ENTRY)&_ZN6S105C54v128Ev,
  (VTBL_ENTRY)&_ZN6S105C54v129Ev,
  (VTBL_ENTRY)&_ZN6S105C54v130Ev,
  (VTBL_ENTRY)&_ZN6S105C54v131Ev,
  (VTBL_ENTRY)&_ZN6S105C54v132Ev,
  (VTBL_ENTRY)&_ZN6S105C54v133Ev,
  (VTBL_ENTRY)&_ZN6S105C54v134Ev,
  (VTBL_ENTRY)&_ZN6S105C54v135Ev,
  (VTBL_ENTRY)&_ZN6S105C54v136Ev,
  (VTBL_ENTRY)&_ZN6S105C54v137Ev,
  (VTBL_ENTRY)&_ZN6S105C54v138Ev,
  (VTBL_ENTRY)&_ZN6S105C54v139Ev,
  (VTBL_ENTRY)&_ZN6S105C54v140Ev,
  (VTBL_ENTRY)&_ZN6S105C54v141Ev,
  (VTBL_ENTRY)&_ZN6S105C54v142Ev,
  (VTBL_ENTRY)&_ZN6S105C54v143Ev,
  (VTBL_ENTRY)&_ZN6S105C54v144Ev,
  (VTBL_ENTRY)&_ZN6S105C54v145Ev,
  (VTBL_ENTRY)&_ZN6S105C54v146Ev,
  (VTBL_ENTRY)&_ZN6S105C54v147Ev,
  (VTBL_ENTRY)&_ZN6S105C44v148Ev,
  (VTBL_ENTRY)&_ZN6S105C44v149Ev,
  (VTBL_ENTRY)&_ZN6S105C44v150Ev,
  (VTBL_ENTRY)&_ZN6S105C44v151Ev,
  (VTBL_ENTRY)&_ZN6S105C44v152Ev,
  (VTBL_ENTRY)&_ZN6S105C44v153Ev,
  (VTBL_ENTRY)&_ZN6S105C44v154Ev,
  (VTBL_ENTRY)&_ZN6S105C44v155Ev,
  (VTBL_ENTRY)&_ZN6S105C44v156Ev,
  (VTBL_ENTRY)&_ZN6S105C44v157Ev,
  (VTBL_ENTRY)&_ZN6S105C44v158Ev,
  (VTBL_ENTRY)&_ZN6S105C44v159Ev,
  (VTBL_ENTRY)&_ZN6S105C44v160Ev,
  (VTBL_ENTRY)&_ZN6S105C44v161Ev,
  (VTBL_ENTRY)&_ZN6S105C44v162Ev,
  (VTBL_ENTRY)&_ZN6S105C44v163Ev,
  (VTBL_ENTRY)&_ZN6S105C44v164Ev,
  (VTBL_ENTRY)&_ZN6S105C44v165Ev,
  (VTBL_ENTRY)&_ZN6S105C44v166Ev,
  (VTBL_ENTRY)&_ZN6S105C44v167Ev,
  (VTBL_ENTRY)&_ZN6S105C44v168Ev,
  (VTBL_ENTRY)&_ZN6S105C44v169Ev,
  (VTBL_ENTRY)&_ZN6S105C44v170Ev,
  (VTBL_ENTRY)&_ZN6S105C44v171Ev,
  (VTBL_ENTRY)&_ZN6S105C44v172Ev,
  (VTBL_ENTRY)&_ZN6S105C44v173Ev,
  (VTBL_ENTRY)&_ZN6S105C44v174Ev,
  (VTBL_ENTRY)&_ZN6S105C44v175Ev,
  (VTBL_ENTRY)&_ZN6S105C44v176Ev,
  (VTBL_ENTRY)&_ZN6S105C44v177Ev,
  (VTBL_ENTRY)&_ZN6S105C44v178Ev,
  (VTBL_ENTRY)&_ZN6S105C44v179Ev,
  (VTBL_ENTRY)&_ZN6S105C44v180Ev,
  (VTBL_ENTRY)&_ZN6S105C44v181Ev,
  (VTBL_ENTRY)&_ZN6S105C44v182Ev,
  (VTBL_ENTRY)&_ZN6S105C44v183Ev,
  (VTBL_ENTRY)&_ZN6S105C44v184Ev,
  (VTBL_ENTRY)&_ZN6S105C44v185Ev,
  (VTBL_ENTRY)&_ZN6S105C44v186Ev,
  (VTBL_ENTRY)&_ZN6S105C34v187Ev,
  (VTBL_ENTRY)&_ZN6S105C34v188Ev,
  (VTBL_ENTRY)&_ZN6S105C34v189Ev,
  (VTBL_ENTRY)&_ZN6S105C34v190Ev,
  (VTBL_ENTRY)&_ZN6S105C34v191Ev,
  (VTBL_ENTRY)&_ZN6S105C34v192Ev,
  (VTBL_ENTRY)&_ZN6S105C34v193Ev,
  (VTBL_ENTRY)&_ZN6S105C34v194Ev,
  (VTBL_ENTRY)&_ZN6S105C34v195Ev,
  (VTBL_ENTRY)&_ZN6S105C34v196Ev,
  (VTBL_ENTRY)&_ZN6S105C34v197Ev,
  (VTBL_ENTRY)&_ZN6S105C34v198Ev,
  (VTBL_ENTRY)&_ZN6S105C34v199Ev,
  (VTBL_ENTRY)&_ZN6S105C34v200Ev,
  (VTBL_ENTRY)&_ZN6S105C34v201Ev,
  (VTBL_ENTRY)&_ZN6S105C34v202Ev,
  (VTBL_ENTRY)&_ZN6S105C34v203Ev,
  (VTBL_ENTRY)&_ZN6S105C34v204Ev,
  (VTBL_ENTRY)&_ZN6S105C34v205Ev,
  (VTBL_ENTRY)&_ZN6S105C34v206Ev,
  (VTBL_ENTRY)&_ZN6S105C34v207Ev,
  (VTBL_ENTRY)&_ZN6S105C34v208Ev,
  (VTBL_ENTRY)&_ZN6S105C34v209Ev,
};
extern VTBL_ENTRY _ZTI6S105C3[];
extern  VTBL_ENTRY _ZTV6S105C3[];
Class_Descriptor cd_S105C3 = {  "S105C3", // class name
  bases_S105C3, 4,
  &(vtc_S105C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S105C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S105C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C2  : S105C3 {
  void *s105c2f0[2];
  int s105c2f1[2];
  char s105c2f2;
  void *s105c2f3;
  unsigned int s105c2f4:1;
  unsigned int s105c2f5:1;
  ::S80C28_nt s105c2f6;
  virtual  ~S105C2(); // _ZN6S105C2D1Ev
  virtual void  v210(); // _ZN6S105C24v210Ev
  virtual void  v211(); // _ZN6S105C24v211Ev
  virtual void  v212(); // _ZN6S105C24v212Ev
  virtual void  v213(); // _ZN6S105C24v213Ev
  virtual void  v214(); // _ZN6S105C24v214Ev
  virtual void  v215(); // _ZN6S105C24v215Ev
  virtual void  v216(); // _ZN6S105C24v216Ev
  virtual void  v217(); // _ZN6S105C24v217Ev
  S105C2(); // tgen
};
//SIG(-1 S105C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v73 v74} vd v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 v211 v212 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 v4 v5 v6 v7 v8 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC27{ BC16}}


 S105C2 ::~S105C2(){ note_dtor("S105C2", this);}
void  S105C2 ::v210(){vfunc_called(this, "_ZN6S105C24v210Ev");}
void  S105C2 ::v211(){vfunc_called(this, "_ZN6S105C24v211Ev");}
void  S105C2 ::v212(){vfunc_called(this, "_ZN6S105C24v212Ev");}
void  S105C2 ::v213(){vfunc_called(this, "_ZN6S105C24v213Ev");}
void  S105C2 ::v214(){vfunc_called(this, "_ZN6S105C24v214Ev");}
void  S105C2 ::v215(){vfunc_called(this, "_ZN6S105C24v215Ev");}
void  S105C2 ::v216(){vfunc_called(this, "_ZN6S105C24v216Ev");}
void  S105C2 ::v217(){vfunc_called(this, "_ZN6S105C24v217Ev");}
S105C2 ::S105C2(){ note_ctor("S105C2", this);} // tgen

static void Test_S105C2()
{
  extern Class_Descriptor cd_S105C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(117,165)];
    init_test(&cd_S105C2, buf);
    S105C2 *dp, &lv = *(dp=new (buf) S105C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(928,656), "sizeof(S105C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C2)");
    check_base_class_offset(lv, (S105C7*)(S105C6*)(S105C5*)(S105C4*)(S105C3*), 0, "S105C2");
    check_base_class_offset(lv, (S105C6*)(S105C5*)(S105C4*)(S105C3*), 0, "S105C2");
    check_base_class_offset(lv, (S105C5*)(S105C4*)(S105C3*), 0, "S105C2");
    check_base_class_offset(lv, (S105C4*)(S105C3*), 0, "S105C2");
    check_base_class_offset(lv, (S105C3*), 0, "S105C2");
    check_field_offset(lv, s105c2f0, ABISELECT(864,616), "S105C2.s105c2f0");
    check_field_offset(lv, s105c2f1, ABISELECT(880,624), "S105C2.s105c2f1");
    check_field_offset(lv, s105c2f2, ABISELECT(888,632), "S105C2.s105c2f2");
    check_field_offset(lv, s105c2f3, ABISELECT(896,636), "S105C2.s105c2f3");
    set_bf_and_test(lv, s105c2f4, ABISELECT(904,640), 0, 1, 1, "S105C2");
    set_bf_and_test(lv, s105c2f5, ABISELECT(904,640), 1, 1, 1, "S105C2");
    check_field_offset(lv, s105c2f6, ABISELECT(912,644), "S105C2.s105c2f6");
    test_class_info(&lv, &cd_S105C2);
    dp->~S105C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C2(Test_S105C2, "S105C2", ABISELECT(928,656));

#else // __cplusplus

extern void _ZN6S105C2C1Ev();
extern void _ZN6S105C2D1Ev();
Name_Map name_map_S105C2[] = {
  NSPAIR(_ZN6S105C2C1Ev),
  NSPAIR(_ZN6S105C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S105C7;
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
extern Class_Descriptor cd_S105C6;
extern VTBL_ENTRY _ZTI6S105C6[];
extern  VTBL_ENTRY _ZTV6S105C6[];
extern Class_Descriptor cd_S105C5;
extern VTBL_ENTRY _ZTI6S105C5[];
extern  VTBL_ENTRY _ZTV6S105C5[];
extern Class_Descriptor cd_S105C4;
extern VTBL_ENTRY _ZTI6S105C4[];
extern  VTBL_ENTRY _ZTV6S105C4[];
extern Class_Descriptor cd_S105C3;
extern VTBL_ENTRY _ZTI6S105C3[];
extern  VTBL_ENTRY _ZTV6S105C3[];
static Base_Class bases_S105C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S105C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S105C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S105C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S105C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S105C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S105C2[];
extern void _ZN6S105C2D1Ev();
extern void _ZN6S105C2D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
extern void _ZN6S105C63v70Ev();
extern void _ZN6S105C63v71Ev();
extern void _ZN6S105C53v72Ev();
extern void _ZN6S105C53v73Ev();
extern void _ZN6S105C53v74Ev();
extern void _ZN6S105C53v75Ev();
extern void _ZN6S105C53v76Ev();
extern void _ZN6S105C53v77Ev();
extern void _ZN6S105C53v78Ev();
extern void _ZN6S105C53v79Ev();
extern void _ZN6S105C53v80Ev();
extern void _ZN6S105C53v81Ev();
extern void _ZN6S105C53v82Ev();
extern void _ZN6S105C53v83Ev();
extern void _ZN6S105C53v84Ev();
extern void _ZN6S105C53v85Ev();
extern void _ZN6S105C53v86Ev();
extern void _ZN6S105C53v87Ev();
extern void _ZN6S105C53v88Ev();
extern void _ZN6S105C53v89Ev();
extern void _ZN6S105C53v90Ev();
extern void _ZN6S105C53v91Ev();
extern void _ZN6S105C53v92Ev();
extern void _ZN6S105C53v93Ev();
extern void _ZN6S105C53v94Ev();
extern void _ZN6S105C53v95Ev();
extern void _ZN6S105C53v96Ev();
extern void _ZN6S105C53v97Ev();
extern void _ZN6S105C53v98Ev();
extern void _ZN6S105C53v99Ev();
extern void _ZN6S105C54v100Ev();
extern void _ZN6S105C54v101Ev();
extern void _ZN6S105C54v102Ev();
extern void _ZN6S105C54v103Ev();
extern void _ZN6S105C54v104Ev();
extern void _ZN6S105C54v105Ev();
extern void _ZN6S105C54v106Ev();
extern void _ZN6S105C54v107Ev();
extern void _ZN6S105C54v108Ev();
extern void _ZN6S105C54v109Ev();
extern void _ZN6S105C54v110Ev();
extern void _ZN6S105C54v111Ev();
extern void _ZN6S105C54v112Ev();
extern void _ZN6S105C54v113Ev();
extern void _ZN6S105C54v114Ev();
extern void _ZN6S105C54v115Ev();
extern void _ZN6S105C54v116Ev();
extern void _ZN6S105C54v117Ev();
extern void _ZN6S105C54v118Ev();
extern void _ZN6S105C54v119Ev();
extern void _ZN6S105C54v120Ev();
extern void _ZN6S105C54v121Ev();
extern void _ZN6S105C54v122Ev();
extern void _ZN6S105C54v123Ev();
extern void _ZN6S105C54v124Ev();
extern void _ZN6S105C54v125Ev();
extern void _ZN6S105C54v126Ev();
extern void _ZN6S105C54v127Ev();
extern void _ZN6S105C54v128Ev();
extern void _ZN6S105C54v129Ev();
extern void _ZN6S105C54v130Ev();
extern void _ZN6S105C54v131Ev();
extern void _ZN6S105C54v132Ev();
extern void _ZN6S105C54v133Ev();
extern void _ZN6S105C54v134Ev();
extern void _ZN6S105C54v135Ev();
extern void _ZN6S105C54v136Ev();
extern void _ZN6S105C54v137Ev();
extern void _ZN6S105C54v138Ev();
extern void _ZN6S105C54v139Ev();
extern void _ZN6S105C54v140Ev();
extern void _ZN6S105C54v141Ev();
extern void _ZN6S105C54v142Ev();
extern void _ZN6S105C54v143Ev();
extern void _ZN6S105C54v144Ev();
extern void _ZN6S105C54v145Ev();
extern void _ZN6S105C54v146Ev();
extern void _ZN6S105C54v147Ev();
extern void _ZN6S105C44v148Ev();
extern void _ZN6S105C44v149Ev();
extern void _ZN6S105C44v150Ev();
extern void _ZN6S105C44v151Ev();
extern void _ZN6S105C44v152Ev();
extern void _ZN6S105C44v153Ev();
extern void _ZN6S105C44v154Ev();
extern void _ZN6S105C44v155Ev();
extern void _ZN6S105C44v156Ev();
extern void _ZN6S105C44v157Ev();
extern void _ZN6S105C44v158Ev();
extern void _ZN6S105C44v159Ev();
extern void _ZN6S105C44v160Ev();
extern void _ZN6S105C44v161Ev();
extern void _ZN6S105C44v162Ev();
extern void _ZN6S105C44v163Ev();
extern void _ZN6S105C44v164Ev();
extern void _ZN6S105C44v165Ev();
extern void _ZN6S105C44v166Ev();
extern void _ZN6S105C44v167Ev();
extern void _ZN6S105C44v168Ev();
extern void _ZN6S105C44v169Ev();
extern void _ZN6S105C44v170Ev();
extern void _ZN6S105C44v171Ev();
extern void _ZN6S105C44v172Ev();
extern void _ZN6S105C44v173Ev();
extern void _ZN6S105C44v174Ev();
extern void _ZN6S105C44v175Ev();
extern void _ZN6S105C44v176Ev();
extern void _ZN6S105C44v177Ev();
extern void _ZN6S105C44v178Ev();
extern void _ZN6S105C44v179Ev();
extern void _ZN6S105C44v180Ev();
extern void _ZN6S105C44v181Ev();
extern void _ZN6S105C44v182Ev();
extern void _ZN6S105C44v183Ev();
extern void _ZN6S105C44v184Ev();
extern void _ZN6S105C44v185Ev();
extern void _ZN6S105C44v186Ev();
extern void _ZN6S105C34v187Ev();
extern void _ZN6S105C34v188Ev();
extern void _ZN6S105C34v189Ev();
extern void _ZN6S105C34v190Ev();
extern void _ZN6S105C34v191Ev();
extern void _ZN6S105C34v192Ev();
extern void _ZN6S105C34v193Ev();
extern void _ZN6S105C34v194Ev();
extern void _ZN6S105C34v195Ev();
extern void _ZN6S105C34v196Ev();
extern void _ZN6S105C34v197Ev();
extern void _ZN6S105C34v198Ev();
extern void _ZN6S105C34v199Ev();
extern void _ZN6S105C34v200Ev();
extern void _ZN6S105C34v201Ev();
extern void _ZN6S105C34v202Ev();
extern void _ZN6S105C34v203Ev();
extern void _ZN6S105C34v204Ev();
extern void _ZN6S105C34v205Ev();
extern void _ZN6S105C34v206Ev();
extern void _ZN6S105C34v207Ev();
extern void _ZN6S105C34v208Ev();
extern void _ZN6S105C34v209Ev();
extern void _ZN6S105C24v210Ev();
extern void _ZN6S105C24v211Ev();
extern void _ZN6S105C24v212Ev();
extern void _ZN6S105C24v213Ev();
extern void _ZN6S105C24v214Ev();
extern void _ZN6S105C24v215Ev();
extern void _ZN6S105C24v216Ev();
extern void _ZN6S105C24v217Ev();
static  VTBL_ENTRY vtc_S105C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C2[0]),
  (VTBL_ENTRY)&_ZN6S105C2D1Ev,
  (VTBL_ENTRY)&_ZN6S105C2D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
  (VTBL_ENTRY)&_ZN6S105C63v70Ev,
  (VTBL_ENTRY)&_ZN6S105C63v71Ev,
  (VTBL_ENTRY)&_ZN6S105C53v72Ev,
  (VTBL_ENTRY)&_ZN6S105C53v73Ev,
  (VTBL_ENTRY)&_ZN6S105C53v74Ev,
  (VTBL_ENTRY)&_ZN6S105C53v75Ev,
  (VTBL_ENTRY)&_ZN6S105C53v76Ev,
  (VTBL_ENTRY)&_ZN6S105C53v77Ev,
  (VTBL_ENTRY)&_ZN6S105C53v78Ev,
  (VTBL_ENTRY)&_ZN6S105C53v79Ev,
  (VTBL_ENTRY)&_ZN6S105C53v80Ev,
  (VTBL_ENTRY)&_ZN6S105C53v81Ev,
  (VTBL_ENTRY)&_ZN6S105C53v82Ev,
  (VTBL_ENTRY)&_ZN6S105C53v83Ev,
  (VTBL_ENTRY)&_ZN6S105C53v84Ev,
  (VTBL_ENTRY)&_ZN6S105C53v85Ev,
  (VTBL_ENTRY)&_ZN6S105C53v86Ev,
  (VTBL_ENTRY)&_ZN6S105C53v87Ev,
  (VTBL_ENTRY)&_ZN6S105C53v88Ev,
  (VTBL_ENTRY)&_ZN6S105C53v89Ev,
  (VTBL_ENTRY)&_ZN6S105C53v90Ev,
  (VTBL_ENTRY)&_ZN6S105C53v91Ev,
  (VTBL_ENTRY)&_ZN6S105C53v92Ev,
  (VTBL_ENTRY)&_ZN6S105C53v93Ev,
  (VTBL_ENTRY)&_ZN6S105C53v94Ev,
  (VTBL_ENTRY)&_ZN6S105C53v95Ev,
  (VTBL_ENTRY)&_ZN6S105C53v96Ev,
  (VTBL_ENTRY)&_ZN6S105C53v97Ev,
  (VTBL_ENTRY)&_ZN6S105C53v98Ev,
  (VTBL_ENTRY)&_ZN6S105C53v99Ev,
  (VTBL_ENTRY)&_ZN6S105C54v100Ev,
  (VTBL_ENTRY)&_ZN6S105C54v101Ev,
  (VTBL_ENTRY)&_ZN6S105C54v102Ev,
  (VTBL_ENTRY)&_ZN6S105C54v103Ev,
  (VTBL_ENTRY)&_ZN6S105C54v104Ev,
  (VTBL_ENTRY)&_ZN6S105C54v105Ev,
  (VTBL_ENTRY)&_ZN6S105C54v106Ev,
  (VTBL_ENTRY)&_ZN6S105C54v107Ev,
  (VTBL_ENTRY)&_ZN6S105C54v108Ev,
  (VTBL_ENTRY)&_ZN6S105C54v109Ev,
  (VTBL_ENTRY)&_ZN6S105C54v110Ev,
  (VTBL_ENTRY)&_ZN6S105C54v111Ev,
  (VTBL_ENTRY)&_ZN6S105C54v112Ev,
  (VTBL_ENTRY)&_ZN6S105C54v113Ev,
  (VTBL_ENTRY)&_ZN6S105C54v114Ev,
  (VTBL_ENTRY)&_ZN6S105C54v115Ev,
  (VTBL_ENTRY)&_ZN6S105C54v116Ev,
  (VTBL_ENTRY)&_ZN6S105C54v117Ev,
  (VTBL_ENTRY)&_ZN6S105C54v118Ev,
  (VTBL_ENTRY)&_ZN6S105C54v119Ev,
  (VTBL_ENTRY)&_ZN6S105C54v120Ev,
  (VTBL_ENTRY)&_ZN6S105C54v121Ev,
  (VTBL_ENTRY)&_ZN6S105C54v122Ev,
  (VTBL_ENTRY)&_ZN6S105C54v123Ev,
  (VTBL_ENTRY)&_ZN6S105C54v124Ev,
  (VTBL_ENTRY)&_ZN6S105C54v125Ev,
  (VTBL_ENTRY)&_ZN6S105C54v126Ev,
  (VTBL_ENTRY)&_ZN6S105C54v127Ev,
  (VTBL_ENTRY)&_ZN6S105C54v128Ev,
  (VTBL_ENTRY)&_ZN6S105C54v129Ev,
  (VTBL_ENTRY)&_ZN6S105C54v130Ev,
  (VTBL_ENTRY)&_ZN6S105C54v131Ev,
  (VTBL_ENTRY)&_ZN6S105C54v132Ev,
  (VTBL_ENTRY)&_ZN6S105C54v133Ev,
  (VTBL_ENTRY)&_ZN6S105C54v134Ev,
  (VTBL_ENTRY)&_ZN6S105C54v135Ev,
  (VTBL_ENTRY)&_ZN6S105C54v136Ev,
  (VTBL_ENTRY)&_ZN6S105C54v137Ev,
  (VTBL_ENTRY)&_ZN6S105C54v138Ev,
  (VTBL_ENTRY)&_ZN6S105C54v139Ev,
  (VTBL_ENTRY)&_ZN6S105C54v140Ev,
  (VTBL_ENTRY)&_ZN6S105C54v141Ev,
  (VTBL_ENTRY)&_ZN6S105C54v142Ev,
  (VTBL_ENTRY)&_ZN6S105C54v143Ev,
  (VTBL_ENTRY)&_ZN6S105C54v144Ev,
  (VTBL_ENTRY)&_ZN6S105C54v145Ev,
  (VTBL_ENTRY)&_ZN6S105C54v146Ev,
  (VTBL_ENTRY)&_ZN6S105C54v147Ev,
  (VTBL_ENTRY)&_ZN6S105C44v148Ev,
  (VTBL_ENTRY)&_ZN6S105C44v149Ev,
  (VTBL_ENTRY)&_ZN6S105C44v150Ev,
  (VTBL_ENTRY)&_ZN6S105C44v151Ev,
  (VTBL_ENTRY)&_ZN6S105C44v152Ev,
  (VTBL_ENTRY)&_ZN6S105C44v153Ev,
  (VTBL_ENTRY)&_ZN6S105C44v154Ev,
  (VTBL_ENTRY)&_ZN6S105C44v155Ev,
  (VTBL_ENTRY)&_ZN6S105C44v156Ev,
  (VTBL_ENTRY)&_ZN6S105C44v157Ev,
  (VTBL_ENTRY)&_ZN6S105C44v158Ev,
  (VTBL_ENTRY)&_ZN6S105C44v159Ev,
  (VTBL_ENTRY)&_ZN6S105C44v160Ev,
  (VTBL_ENTRY)&_ZN6S105C44v161Ev,
  (VTBL_ENTRY)&_ZN6S105C44v162Ev,
  (VTBL_ENTRY)&_ZN6S105C44v163Ev,
  (VTBL_ENTRY)&_ZN6S105C44v164Ev,
  (VTBL_ENTRY)&_ZN6S105C44v165Ev,
  (VTBL_ENTRY)&_ZN6S105C44v166Ev,
  (VTBL_ENTRY)&_ZN6S105C44v167Ev,
  (VTBL_ENTRY)&_ZN6S105C44v168Ev,
  (VTBL_ENTRY)&_ZN6S105C44v169Ev,
  (VTBL_ENTRY)&_ZN6S105C44v170Ev,
  (VTBL_ENTRY)&_ZN6S105C44v171Ev,
  (VTBL_ENTRY)&_ZN6S105C44v172Ev,
  (VTBL_ENTRY)&_ZN6S105C44v173Ev,
  (VTBL_ENTRY)&_ZN6S105C44v174Ev,
  (VTBL_ENTRY)&_ZN6S105C44v175Ev,
  (VTBL_ENTRY)&_ZN6S105C44v176Ev,
  (VTBL_ENTRY)&_ZN6S105C44v177Ev,
  (VTBL_ENTRY)&_ZN6S105C44v178Ev,
  (VTBL_ENTRY)&_ZN6S105C44v179Ev,
  (VTBL_ENTRY)&_ZN6S105C44v180Ev,
  (VTBL_ENTRY)&_ZN6S105C44v181Ev,
  (VTBL_ENTRY)&_ZN6S105C44v182Ev,
  (VTBL_ENTRY)&_ZN6S105C44v183Ev,
  (VTBL_ENTRY)&_ZN6S105C44v184Ev,
  (VTBL_ENTRY)&_ZN6S105C44v185Ev,
  (VTBL_ENTRY)&_ZN6S105C44v186Ev,
  (VTBL_ENTRY)&_ZN6S105C34v187Ev,
  (VTBL_ENTRY)&_ZN6S105C34v188Ev,
  (VTBL_ENTRY)&_ZN6S105C34v189Ev,
  (VTBL_ENTRY)&_ZN6S105C34v190Ev,
  (VTBL_ENTRY)&_ZN6S105C34v191Ev,
  (VTBL_ENTRY)&_ZN6S105C34v192Ev,
  (VTBL_ENTRY)&_ZN6S105C34v193Ev,
  (VTBL_ENTRY)&_ZN6S105C34v194Ev,
  (VTBL_ENTRY)&_ZN6S105C34v195Ev,
  (VTBL_ENTRY)&_ZN6S105C34v196Ev,
  (VTBL_ENTRY)&_ZN6S105C34v197Ev,
  (VTBL_ENTRY)&_ZN6S105C34v198Ev,
  (VTBL_ENTRY)&_ZN6S105C34v199Ev,
  (VTBL_ENTRY)&_ZN6S105C34v200Ev,
  (VTBL_ENTRY)&_ZN6S105C34v201Ev,
  (VTBL_ENTRY)&_ZN6S105C34v202Ev,
  (VTBL_ENTRY)&_ZN6S105C34v203Ev,
  (VTBL_ENTRY)&_ZN6S105C34v204Ev,
  (VTBL_ENTRY)&_ZN6S105C34v205Ev,
  (VTBL_ENTRY)&_ZN6S105C34v206Ev,
  (VTBL_ENTRY)&_ZN6S105C34v207Ev,
  (VTBL_ENTRY)&_ZN6S105C34v208Ev,
  (VTBL_ENTRY)&_ZN6S105C34v209Ev,
  (VTBL_ENTRY)&_ZN6S105C24v210Ev,
  (VTBL_ENTRY)&_ZN6S105C24v211Ev,
  (VTBL_ENTRY)&_ZN6S105C24v212Ev,
  (VTBL_ENTRY)&_ZN6S105C24v213Ev,
  (VTBL_ENTRY)&_ZN6S105C24v214Ev,
  (VTBL_ENTRY)&_ZN6S105C24v215Ev,
  (VTBL_ENTRY)&_ZN6S105C24v216Ev,
  (VTBL_ENTRY)&_ZN6S105C24v217Ev,
};
extern VTBL_ENTRY _ZTI6S105C2[];
extern  VTBL_ENTRY _ZTV6S105C2[];
Class_Descriptor cd_S105C2 = {  "S105C2", // class name
  bases_S105C2, 5,
  &(vtc_S105C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(928,656), // object size
  NSPAIRA(_ZTI6S105C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S105C2),216, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S105C1  : S105C2 {
  ::S80C10_nt s105c1f0;
  void *s105c1f1[2];
  virtual  ~S105C1(); // _ZN6S105C1D1Ev
  virtual void  v1(); // _ZN6S105C12v1Ev
  virtual void  v2(); // _ZN6S105C12v2Ev
  virtual void  v3(); // _ZN6S105C12v3Ev
  virtual void  v4(); // _ZN6S105C12v4Ev
  virtual void  v5(); // _ZN6S105C12v5Ev
  S105C1(); // tgen
};
//SIG(1 S105C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v70 v71} vd v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v210 v211 v212 v213 v214 v215 v216 v217 Fp[2] Fi[2] Fc Fp Fi:1 Fi:1 FC28{ BC17}} vd v1 v2 v3 v4 v5 FC29{ BC30{ BC12}} Fp[2]}


 S105C1 ::~S105C1(){ note_dtor("S105C1", this);}
void  S105C1 ::v1(){vfunc_called(this, "_ZN6S105C12v1Ev");}
void  S105C1 ::v2(){vfunc_called(this, "_ZN6S105C12v2Ev");}
void  S105C1 ::v3(){vfunc_called(this, "_ZN6S105C12v3Ev");}
void  S105C1 ::v4(){vfunc_called(this, "_ZN6S105C12v4Ev");}
void  S105C1 ::v5(){vfunc_called(this, "_ZN6S105C12v5Ev");}
S105C1 ::S105C1(){ note_ctor("S105C1", this);} // tgen

static void Test_S105C1()
{
  extern Class_Descriptor cd_S105C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(121,170)];
    init_test(&cd_S105C1, buf);
    S105C1 *dp, &lv = *(dp=new (buf) S105C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(960,676), "sizeof(S105C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S105C1)");
    check_base_class_offset(lv, (S105C7*)(S105C6*)(S105C5*)(S105C4*)(S105C3*)(S105C2*), 0, "S105C1");
    check_base_class_offset(lv, (S105C6*)(S105C5*)(S105C4*)(S105C3*)(S105C2*), 0, "S105C1");
    check_base_class_offset(lv, (S105C5*)(S105C4*)(S105C3*)(S105C2*), 0, "S105C1");
    check_base_class_offset(lv, (S105C4*)(S105C3*)(S105C2*), 0, "S105C1");
    check_base_class_offset(lv, (S105C3*)(S105C2*), 0, "S105C1");
    check_base_class_offset(lv, (S105C2*), 0, "S105C1");
    check_field_offset(lv, s105c1f0, ABISELECT(928,656), "S105C1.s105c1f0");
    check_field_offset(lv, s105c1f1, ABISELECT(944,668), "S105C1.s105c1f1");
    test_class_info(&lv, &cd_S105C1);
    dp->~S105C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS105C1(Test_S105C1, "S105C1", ABISELECT(960,676));

#else // __cplusplus

extern void _ZN6S105C1C1Ev();
extern void _ZN6S105C1D1Ev();
Name_Map name_map_S105C1[] = {
  NSPAIR(_ZN6S105C1C1Ev),
  NSPAIR(_ZN6S105C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S105C7;
extern VTBL_ENTRY _ZTI6S105C7[];
extern  VTBL_ENTRY _ZTV6S105C7[];
extern Class_Descriptor cd_S105C6;
extern VTBL_ENTRY _ZTI6S105C6[];
extern  VTBL_ENTRY _ZTV6S105C6[];
extern Class_Descriptor cd_S105C5;
extern VTBL_ENTRY _ZTI6S105C5[];
extern  VTBL_ENTRY _ZTV6S105C5[];
extern Class_Descriptor cd_S105C4;
extern VTBL_ENTRY _ZTI6S105C4[];
extern  VTBL_ENTRY _ZTV6S105C4[];
extern Class_Descriptor cd_S105C3;
extern VTBL_ENTRY _ZTI6S105C3[];
extern  VTBL_ENTRY _ZTV6S105C3[];
extern Class_Descriptor cd_S105C2;
extern VTBL_ENTRY _ZTI6S105C2[];
extern  VTBL_ENTRY _ZTV6S105C2[];
static Base_Class bases_S105C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S105C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S105C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S105C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S105C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S105C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S105C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S105C1[];
extern void _ZN6S105C1D1Ev();
extern void _ZN6S105C1D0Ev();
extern void _ZN6S105C72v6Ev();
extern void _ZN6S105C72v7Ev();
extern void _ZN6S105C72v8Ev();
extern void _ZN6S105C72v9Ev();
extern void _ZN6S105C73v10Ev();
extern void _ZN6S105C73v11Ev();
extern void _ZN6S105C73v12Ev();
extern void _ZN6S105C73v13Ev();
extern void _ZN6S105C73v14Ev();
extern void _ZN6S105C73v15Ev();
extern void _ZN6S105C73v16Ev();
extern void _ZN6S105C73v17Ev();
extern void _ZN6S105C73v18Ev();
extern void _ZN6S105C73v19Ev();
extern void _ZN6S105C73v20Ev();
extern void _ZN6S105C73v21Ev();
extern void _ZN6S105C73v22Ev();
extern void _ZN6S105C73v23Ev();
extern void _ZN6S105C73v24Ev();
extern void _ZN6S105C73v25Ev();
extern void _ZN6S105C73v26Ev();
extern void _ZN6S105C73v27Ev();
extern void _ZN6S105C73v28Ev();
extern void _ZN6S105C73v29Ev();
extern void _ZN6S105C73v30Ev();
extern void _ZN6S105C73v31Ev();
extern void _ZN6S105C73v32Ev();
extern void _ZN6S105C73v33Ev();
extern void _ZN6S105C73v34Ev();
extern void _ZN6S105C73v35Ev();
extern void _ZN6S105C73v36Ev();
extern void _ZN6S105C73v37Ev();
extern void _ZN6S105C73v38Ev();
extern void _ZN6S105C73v39Ev();
extern void _ZN6S105C73v40Ev();
extern void _ZN6S105C73v41Ev();
extern void _ZN6S105C73v42Ev();
extern void _ZN6S105C73v43Ev();
extern void _ZN6S105C73v44Ev();
extern void _ZN6S105C73v45Ev();
extern void _ZN6S105C73v46Ev();
extern void _ZN6S105C73v47Ev();
extern void _ZN6S105C73v48Ev();
extern void _ZN6S105C73v49Ev();
extern void _ZN6S105C73v50Ev();
extern void _ZN6S105C73v51Ev();
extern void _ZN6S105C73v52Ev();
extern void _ZN6S105C73v53Ev();
extern void _ZN6S105C73v54Ev();
extern void _ZN6S105C73v55Ev();
extern void _ZN6S105C73v56Ev();
extern void _ZN6S105C73v57Ev();
extern void _ZN6S105C73v58Ev();
extern void _ZN6S105C73v59Ev();
extern void _ZN6S105C73v60Ev();
extern void _ZN6S105C73v61Ev();
extern void _ZN6S105C73v62Ev();
extern void _ZN6S105C73v63Ev();
extern void _ZN6S105C73v64Ev();
extern void _ZN6S105C73v65Ev();
extern void _ZN6S105C73v66Ev();
extern void _ZN6S105C73v67Ev();
extern void _ZN6S105C73v68Ev();
extern void _ZN6S105C73v69Ev();
extern void _ZN6S105C63v70Ev();
extern void _ZN6S105C63v71Ev();
extern void _ZN6S105C53v72Ev();
extern void _ZN6S105C53v73Ev();
extern void _ZN6S105C53v74Ev();
extern void _ZN6S105C53v75Ev();
extern void _ZN6S105C53v76Ev();
extern void _ZN6S105C53v77Ev();
extern void _ZN6S105C53v78Ev();
extern void _ZN6S105C53v79Ev();
extern void _ZN6S105C53v80Ev();
extern void _ZN6S105C53v81Ev();
extern void _ZN6S105C53v82Ev();
extern void _ZN6S105C53v83Ev();
extern void _ZN6S105C53v84Ev();
extern void _ZN6S105C53v85Ev();
extern void _ZN6S105C53v86Ev();
extern void _ZN6S105C53v87Ev();
extern void _ZN6S105C53v88Ev();
extern void _ZN6S105C53v89Ev();
extern void _ZN6S105C53v90Ev();
extern void _ZN6S105C53v91Ev();
extern void _ZN6S105C53v92Ev();
extern void _ZN6S105C53v93Ev();
extern void _ZN6S105C53v94Ev();
extern void _ZN6S105C53v95Ev();
extern void _ZN6S105C53v96Ev();
extern void _ZN6S105C53v97Ev();
extern void _ZN6S105C53v98Ev();
extern void _ZN6S105C53v99Ev();
extern void _ZN6S105C54v100Ev();
extern void _ZN6S105C54v101Ev();
extern void _ZN6S105C54v102Ev();
extern void _ZN6S105C54v103Ev();
extern void _ZN6S105C54v104Ev();
extern void _ZN6S105C54v105Ev();
extern void _ZN6S105C54v106Ev();
extern void _ZN6S105C54v107Ev();
extern void _ZN6S105C54v108Ev();
extern void _ZN6S105C54v109Ev();
extern void _ZN6S105C54v110Ev();
extern void _ZN6S105C54v111Ev();
extern void _ZN6S105C54v112Ev();
extern void _ZN6S105C54v113Ev();
extern void _ZN6S105C54v114Ev();
extern void _ZN6S105C54v115Ev();
extern void _ZN6S105C54v116Ev();
extern void _ZN6S105C54v117Ev();
extern void _ZN6S105C54v118Ev();
extern void _ZN6S105C54v119Ev();
extern void _ZN6S105C54v120Ev();
extern void _ZN6S105C54v121Ev();
extern void _ZN6S105C54v122Ev();
extern void _ZN6S105C54v123Ev();
extern void _ZN6S105C54v124Ev();
extern void _ZN6S105C54v125Ev();
extern void _ZN6S105C54v126Ev();
extern void _ZN6S105C54v127Ev();
extern void _ZN6S105C54v128Ev();
extern void _ZN6S105C54v129Ev();
extern void _ZN6S105C54v130Ev();
extern void _ZN6S105C54v131Ev();
extern void _ZN6S105C54v132Ev();
extern void _ZN6S105C54v133Ev();
extern void _ZN6S105C54v134Ev();
extern void _ZN6S105C54v135Ev();
extern void _ZN6S105C54v136Ev();
extern void _ZN6S105C54v137Ev();
extern void _ZN6S105C54v138Ev();
extern void _ZN6S105C54v139Ev();
extern void _ZN6S105C54v140Ev();
extern void _ZN6S105C54v141Ev();
extern void _ZN6S105C54v142Ev();
extern void _ZN6S105C54v143Ev();
extern void _ZN6S105C54v144Ev();
extern void _ZN6S105C54v145Ev();
extern void _ZN6S105C54v146Ev();
extern void _ZN6S105C54v147Ev();
extern void _ZN6S105C44v148Ev();
extern void _ZN6S105C44v149Ev();
extern void _ZN6S105C44v150Ev();
extern void _ZN6S105C44v151Ev();
extern void _ZN6S105C44v152Ev();
extern void _ZN6S105C44v153Ev();
extern void _ZN6S105C44v154Ev();
extern void _ZN6S105C44v155Ev();
extern void _ZN6S105C44v156Ev();
extern void _ZN6S105C44v157Ev();
extern void _ZN6S105C44v158Ev();
extern void _ZN6S105C44v159Ev();
extern void _ZN6S105C44v160Ev();
extern void _ZN6S105C44v161Ev();
extern void _ZN6S105C44v162Ev();
extern void _ZN6S105C44v163Ev();
extern void _ZN6S105C44v164Ev();
extern void _ZN6S105C44v165Ev();
extern void _ZN6S105C44v166Ev();
extern void _ZN6S105C44v167Ev();
extern void _ZN6S105C44v168Ev();
extern void _ZN6S105C44v169Ev();
extern void _ZN6S105C44v170Ev();
extern void _ZN6S105C44v171Ev();
extern void _ZN6S105C44v172Ev();
extern void _ZN6S105C44v173Ev();
extern void _ZN6S105C44v174Ev();
extern void _ZN6S105C44v175Ev();
extern void _ZN6S105C44v176Ev();
extern void _ZN6S105C44v177Ev();
extern void _ZN6S105C44v178Ev();
extern void _ZN6S105C44v179Ev();
extern void _ZN6S105C44v180Ev();
extern void _ZN6S105C44v181Ev();
extern void _ZN6S105C44v182Ev();
extern void _ZN6S105C44v183Ev();
extern void _ZN6S105C44v184Ev();
extern void _ZN6S105C44v185Ev();
extern void _ZN6S105C44v186Ev();
extern void _ZN6S105C34v187Ev();
extern void _ZN6S105C34v188Ev();
extern void _ZN6S105C34v189Ev();
extern void _ZN6S105C34v190Ev();
extern void _ZN6S105C34v191Ev();
extern void _ZN6S105C34v192Ev();
extern void _ZN6S105C34v193Ev();
extern void _ZN6S105C34v194Ev();
extern void _ZN6S105C34v195Ev();
extern void _ZN6S105C34v196Ev();
extern void _ZN6S105C34v197Ev();
extern void _ZN6S105C34v198Ev();
extern void _ZN6S105C34v199Ev();
extern void _ZN6S105C34v200Ev();
extern void _ZN6S105C34v201Ev();
extern void _ZN6S105C34v202Ev();
extern void _ZN6S105C34v203Ev();
extern void _ZN6S105C34v204Ev();
extern void _ZN6S105C34v205Ev();
extern void _ZN6S105C34v206Ev();
extern void _ZN6S105C34v207Ev();
extern void _ZN6S105C34v208Ev();
extern void _ZN6S105C34v209Ev();
extern void _ZN6S105C24v210Ev();
extern void _ZN6S105C24v211Ev();
extern void _ZN6S105C24v212Ev();
extern void _ZN6S105C24v213Ev();
extern void _ZN6S105C24v214Ev();
extern void _ZN6S105C24v215Ev();
extern void _ZN6S105C24v216Ev();
extern void _ZN6S105C24v217Ev();
extern void _ZN6S105C12v1Ev();
extern void _ZN6S105C12v2Ev();
extern void _ZN6S105C12v3Ev();
extern void _ZN6S105C12v4Ev();
extern void _ZN6S105C12v5Ev();
static  VTBL_ENTRY vtc_S105C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S105C1[0]),
  (VTBL_ENTRY)&_ZN6S105C1D1Ev,
  (VTBL_ENTRY)&_ZN6S105C1D0Ev,
  (VTBL_ENTRY)&_ZN6S105C72v6Ev,
  (VTBL_ENTRY)&_ZN6S105C72v7Ev,
  (VTBL_ENTRY)&_ZN6S105C72v8Ev,
  (VTBL_ENTRY)&_ZN6S105C72v9Ev,
  (VTBL_ENTRY)&_ZN6S105C73v10Ev,
  (VTBL_ENTRY)&_ZN6S105C73v11Ev,
  (VTBL_ENTRY)&_ZN6S105C73v12Ev,
  (VTBL_ENTRY)&_ZN6S105C73v13Ev,
  (VTBL_ENTRY)&_ZN6S105C73v14Ev,
  (VTBL_ENTRY)&_ZN6S105C73v15Ev,
  (VTBL_ENTRY)&_ZN6S105C73v16Ev,
  (VTBL_ENTRY)&_ZN6S105C73v17Ev,
  (VTBL_ENTRY)&_ZN6S105C73v18Ev,
  (VTBL_ENTRY)&_ZN6S105C73v19Ev,
  (VTBL_ENTRY)&_ZN6S105C73v20Ev,
  (VTBL_ENTRY)&_ZN6S105C73v21Ev,
  (VTBL_ENTRY)&_ZN6S105C73v22Ev,
  (VTBL_ENTRY)&_ZN6S105C73v23Ev,
  (VTBL_ENTRY)&_ZN6S105C73v24Ev,
  (VTBL_ENTRY)&_ZN6S105C73v25Ev,
  (VTBL_ENTRY)&_ZN6S105C73v26Ev,
  (VTBL_ENTRY)&_ZN6S105C73v27Ev,
  (VTBL_ENTRY)&_ZN6S105C73v28Ev,
  (VTBL_ENTRY)&_ZN6S105C73v29Ev,
  (VTBL_ENTRY)&_ZN6S105C73v30Ev,
  (VTBL_ENTRY)&_ZN6S105C73v31Ev,
  (VTBL_ENTRY)&_ZN6S105C73v32Ev,
  (VTBL_ENTRY)&_ZN6S105C73v33Ev,
  (VTBL_ENTRY)&_ZN6S105C73v34Ev,
  (VTBL_ENTRY)&_ZN6S105C73v35Ev,
  (VTBL_ENTRY)&_ZN6S105C73v36Ev,
  (VTBL_ENTRY)&_ZN6S105C73v37Ev,
  (VTBL_ENTRY)&_ZN6S105C73v38Ev,
  (VTBL_ENTRY)&_ZN6S105C73v39Ev,
  (VTBL_ENTRY)&_ZN6S105C73v40Ev,
  (VTBL_ENTRY)&_ZN6S105C73v41Ev,
  (VTBL_ENTRY)&_ZN6S105C73v42Ev,
  (VTBL_ENTRY)&_ZN6S105C73v43Ev,
  (VTBL_ENTRY)&_ZN6S105C73v44Ev,
  (VTBL_ENTRY)&_ZN6S105C73v45Ev,
  (VTBL_ENTRY)&_ZN6S105C73v46Ev,
  (VTBL_ENTRY)&_ZN6S105C73v47Ev,
  (VTBL_ENTRY)&_ZN6S105C73v48Ev,
  (VTBL_ENTRY)&_ZN6S105C73v49Ev,
  (VTBL_ENTRY)&_ZN6S105C73v50Ev,
  (VTBL_ENTRY)&_ZN6S105C73v51Ev,
  (VTBL_ENTRY)&_ZN6S105C73v52Ev,
  (VTBL_ENTRY)&_ZN6S105C73v53Ev,
  (VTBL_ENTRY)&_ZN6S105C73v54Ev,
  (VTBL_ENTRY)&_ZN6S105C73v55Ev,
  (VTBL_ENTRY)&_ZN6S105C73v56Ev,
  (VTBL_ENTRY)&_ZN6S105C73v57Ev,
  (VTBL_ENTRY)&_ZN6S105C73v58Ev,
  (VTBL_ENTRY)&_ZN6S105C73v59Ev,
  (VTBL_ENTRY)&_ZN6S105C73v60Ev,
  (VTBL_ENTRY)&_ZN6S105C73v61Ev,
  (VTBL_ENTRY)&_ZN6S105C73v62Ev,
  (VTBL_ENTRY)&_ZN6S105C73v63Ev,
  (VTBL_ENTRY)&_ZN6S105C73v64Ev,
  (VTBL_ENTRY)&_ZN6S105C73v65Ev,
  (VTBL_ENTRY)&_ZN6S105C73v66Ev,
  (VTBL_ENTRY)&_ZN6S105C73v67Ev,
  (VTBL_ENTRY)&_ZN6S105C73v68Ev,
  (VTBL_ENTRY)&_ZN6S105C73v69Ev,
  (VTBL_ENTRY)&_ZN6S105C63v70Ev,
  (VTBL_ENTRY)&_ZN6S105C63v71Ev,
  (VTBL_ENTRY)&_ZN6S105C53v72Ev,
  (VTBL_ENTRY)&_ZN6S105C53v73Ev,
  (VTBL_ENTRY)&_ZN6S105C53v74Ev,
  (VTBL_ENTRY)&_ZN6S105C53v75Ev,
  (VTBL_ENTRY)&_ZN6S105C53v76Ev,
  (VTBL_ENTRY)&_ZN6S105C53v77Ev,
  (VTBL_ENTRY)&_ZN6S105C53v78Ev,
  (VTBL_ENTRY)&_ZN6S105C53v79Ev,
  (VTBL_ENTRY)&_ZN6S105C53v80Ev,
  (VTBL_ENTRY)&_ZN6S105C53v81Ev,
  (VTBL_ENTRY)&_ZN6S105C53v82Ev,
  (VTBL_ENTRY)&_ZN6S105C53v83Ev,
  (VTBL_ENTRY)&_ZN6S105C53v84Ev,
  (VTBL_ENTRY)&_ZN6S105C53v85Ev,
  (VTBL_ENTRY)&_ZN6S105C53v86Ev,
  (VTBL_ENTRY)&_ZN6S105C53v87Ev,
  (VTBL_ENTRY)&_ZN6S105C53v88Ev,
  (VTBL_ENTRY)&_ZN6S105C53v89Ev,
  (VTBL_ENTRY)&_ZN6S105C53v90Ev,
  (VTBL_ENTRY)&_ZN6S105C53v91Ev,
  (VTBL_ENTRY)&_ZN6S105C53v92Ev,
  (VTBL_ENTRY)&_ZN6S105C53v93Ev,
  (VTBL_ENTRY)&_ZN6S105C53v94Ev,
  (VTBL_ENTRY)&_ZN6S105C53v95Ev,
  (VTBL_ENTRY)&_ZN6S105C53v96Ev,
  (VTBL_ENTRY)&_ZN6S105C53v97Ev,
  (VTBL_ENTRY)&_ZN6S105C53v98Ev,
  (VTBL_ENTRY)&_ZN6S105C53v99Ev,
  (VTBL_ENTRY)&_ZN6S105C54v100Ev,
  (VTBL_ENTRY)&_ZN6S105C54v101Ev,
  (VTBL_ENTRY)&_ZN6S105C54v102Ev,
  (VTBL_ENTRY)&_ZN6S105C54v103Ev,
  (VTBL_ENTRY)&_ZN6S105C54v104Ev,
  (VTBL_ENTRY)&_ZN6S105C54v105Ev,
  (VTBL_ENTRY)&_ZN6S105C54v106Ev,
  (VTBL_ENTRY)&_ZN6S105C54v107Ev,
  (VTBL_ENTRY)&_ZN6S105C54v108Ev,
  (VTBL_ENTRY)&_ZN6S105C54v109Ev,
  (VTBL_ENTRY)&_ZN6S105C54v110Ev,
  (VTBL_ENTRY)&_ZN6S105C54v111Ev,
  (VTBL_ENTRY)&_ZN6S105C54v112Ev,
  (VTBL_ENTRY)&_ZN6S105C54v113Ev,
  (VTBL_ENTRY)&_ZN6S105C54v114Ev,
  (VTBL_ENTRY)&_ZN6S105C54v115Ev,
  (VTBL_ENTRY)&_ZN6S105C54v116Ev,
  (VTBL_ENTRY)&_ZN6S105C54v117Ev,
  (VTBL_ENTRY)&_ZN6S105C54v118Ev,
  (VTBL_ENTRY)&_ZN6S105C54v119Ev,
  (VTBL_ENTRY)&_ZN6S105C54v120Ev,
  (VTBL_ENTRY)&_ZN6S105C54v121Ev,
  (VTBL_ENTRY)&_ZN6S105C54v122Ev,
  (VTBL_ENTRY)&_ZN6S105C54v123Ev,
  (VTBL_ENTRY)&_ZN6S105C54v124Ev,
  (VTBL_ENTRY)&_ZN6S105C54v125Ev,
  (VTBL_ENTRY)&_ZN6S105C54v126Ev,
  (VTBL_ENTRY)&_ZN6S105C54v127Ev,
  (VTBL_ENTRY)&_ZN6S105C54v128Ev,
  (VTBL_ENTRY)&_ZN6S105C54v129Ev,
  (VTBL_ENTRY)&_ZN6S105C54v130Ev,
  (VTBL_ENTRY)&_ZN6S105C54v131Ev,
  (VTBL_ENTRY)&_ZN6S105C54v132Ev,
  (VTBL_ENTRY)&_ZN6S105C54v133Ev,
  (VTBL_ENTRY)&_ZN6S105C54v134Ev,
  (VTBL_ENTRY)&_ZN6S105C54v135Ev,
  (VTBL_ENTRY)&_ZN6S105C54v136Ev,
  (VTBL_ENTRY)&_ZN6S105C54v137Ev,
  (VTBL_ENTRY)&_ZN6S105C54v138Ev,
  (VTBL_ENTRY)&_ZN6S105C54v139Ev,
  (VTBL_ENTRY)&_ZN6S105C54v140Ev,
  (VTBL_ENTRY)&_ZN6S105C54v141Ev,
  (VTBL_ENTRY)&_ZN6S105C54v142Ev,
  (VTBL_ENTRY)&_ZN6S105C54v143Ev,
  (VTBL_ENTRY)&_ZN6S105C54v144Ev,
  (VTBL_ENTRY)&_ZN6S105C54v145Ev,
  (VTBL_ENTRY)&_ZN6S105C54v146Ev,
  (VTBL_ENTRY)&_ZN6S105C54v147Ev,
  (VTBL_ENTRY)&_ZN6S105C44v148Ev,
  (VTBL_ENTRY)&_ZN6S105C44v149Ev,
  (VTBL_ENTRY)&_ZN6S105C44v150Ev,
  (VTBL_ENTRY)&_ZN6S105C44v151Ev,
  (VTBL_ENTRY)&_ZN6S105C44v152Ev,
  (VTBL_ENTRY)&_ZN6S105C44v153Ev,
  (VTBL_ENTRY)&_ZN6S105C44v154Ev,
  (VTBL_ENTRY)&_ZN6S105C44v155Ev,
  (VTBL_ENTRY)&_ZN6S105C44v156Ev,
  (VTBL_ENTRY)&_ZN6S105C44v157Ev,
  (VTBL_ENTRY)&_ZN6S105C44v158Ev,
  (VTBL_ENTRY)&_ZN6S105C44v159Ev,
  (VTBL_ENTRY)&_ZN6S105C44v160Ev,
  (VTBL_ENTRY)&_ZN6S105C44v161Ev,
  (VTBL_ENTRY)&_ZN6S105C44v162Ev,
  (VTBL_ENTRY)&_ZN6S105C44v163Ev,
  (VTBL_ENTRY)&_ZN6S105C44v164Ev,
  (VTBL_ENTRY)&_ZN6S105C44v165Ev,
  (VTBL_ENTRY)&_ZN6S105C44v166Ev,
  (VTBL_ENTRY)&_ZN6S105C44v167Ev,
  (VTBL_ENTRY)&_ZN6S105C44v168Ev,
  (VTBL_ENTRY)&_ZN6S105C44v169Ev,
  (VTBL_ENTRY)&_ZN6S105C44v170Ev,
  (VTBL_ENTRY)&_ZN6S105C44v171Ev,
  (VTBL_ENTRY)&_ZN6S105C44v172Ev,
  (VTBL_ENTRY)&_ZN6S105C44v173Ev,
  (VTBL_ENTRY)&_ZN6S105C44v174Ev,
  (VTBL_ENTRY)&_ZN6S105C44v175Ev,
  (VTBL_ENTRY)&_ZN6S105C44v176Ev,
  (VTBL_ENTRY)&_ZN6S105C44v177Ev,
  (VTBL_ENTRY)&_ZN6S105C44v178Ev,
  (VTBL_ENTRY)&_ZN6S105C44v179Ev,
  (VTBL_ENTRY)&_ZN6S105C44v180Ev,
  (VTBL_ENTRY)&_ZN6S105C44v181Ev,
  (VTBL_ENTRY)&_ZN6S105C44v182Ev,
  (VTBL_ENTRY)&_ZN6S105C44v183Ev,
  (VTBL_ENTRY)&_ZN6S105C44v184Ev,
  (VTBL_ENTRY)&_ZN6S105C44v185Ev,
  (VTBL_ENTRY)&_ZN6S105C44v186Ev,
  (VTBL_ENTRY)&_ZN6S105C34v187Ev,
  (VTBL_ENTRY)&_ZN6S105C34v188Ev,
  (VTBL_ENTRY)&_ZN6S105C34v189Ev,
  (VTBL_ENTRY)&_ZN6S105C34v190Ev,
  (VTBL_ENTRY)&_ZN6S105C34v191Ev,
  (VTBL_ENTRY)&_ZN6S105C34v192Ev,
  (VTBL_ENTRY)&_ZN6S105C34v193Ev,
  (VTBL_ENTRY)&_ZN6S105C34v194Ev,
  (VTBL_ENTRY)&_ZN6S105C34v195Ev,
  (VTBL_ENTRY)&_ZN6S105C34v196Ev,
  (VTBL_ENTRY)&_ZN6S105C34v197Ev,
  (VTBL_ENTRY)&_ZN6S105C34v198Ev,
  (VTBL_ENTRY)&_ZN6S105C34v199Ev,
  (VTBL_ENTRY)&_ZN6S105C34v200Ev,
  (VTBL_ENTRY)&_ZN6S105C34v201Ev,
  (VTBL_ENTRY)&_ZN6S105C34v202Ev,
  (VTBL_ENTRY)&_ZN6S105C34v203Ev,
  (VTBL_ENTRY)&_ZN6S105C34v204Ev,
  (VTBL_ENTRY)&_ZN6S105C34v205Ev,
  (VTBL_ENTRY)&_ZN6S105C34v206Ev,
  (VTBL_ENTRY)&_ZN6S105C34v207Ev,
  (VTBL_ENTRY)&_ZN6S105C34v208Ev,
  (VTBL_ENTRY)&_ZN6S105C34v209Ev,
  (VTBL_ENTRY)&_ZN6S105C24v210Ev,
  (VTBL_ENTRY)&_ZN6S105C24v211Ev,
  (VTBL_ENTRY)&_ZN6S105C24v212Ev,
  (VTBL_ENTRY)&_ZN6S105C24v213Ev,
  (VTBL_ENTRY)&_ZN6S105C24v214Ev,
  (VTBL_ENTRY)&_ZN6S105C24v215Ev,
  (VTBL_ENTRY)&_ZN6S105C24v216Ev,
  (VTBL_ENTRY)&_ZN6S105C24v217Ev,
  (VTBL_ENTRY)&_ZN6S105C12v1Ev,
  (VTBL_ENTRY)&_ZN6S105C12v2Ev,
  (VTBL_ENTRY)&_ZN6S105C12v3Ev,
  (VTBL_ENTRY)&_ZN6S105C12v4Ev,
  (VTBL_ENTRY)&_ZN6S105C12v5Ev,
};
extern VTBL_ENTRY _ZTI6S105C1[];
extern  VTBL_ENTRY _ZTV6S105C1[];
Class_Descriptor cd_S105C1 = {  "S105C1", // class name
  bases_S105C1, 6,
  &(vtc_S105C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(960,676), // object size
  NSPAIRA(_ZTI6S105C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S105C1),221, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C7  {
  int s81c7f0;
  __tsi64 s81c7f1;
  void *s81c7f2[4];
  int s81c7f3[2];
  void *s81c7f4;
  ::S85C27_nt s81c7f5;
  void *s81c7f6[2];
  virtual  ~S81C7(); // _ZN5S81C7D1Ev
  virtual void  v4(); // _ZN5S81C72v4Ev
  virtual void  v5(); // _ZN5S81C72v5Ev
  virtual void  v6(); // _ZN5S81C72v6Ev
  virtual void  v7(); // _ZN5S81C72v7Ev
  virtual void  v8(); // _ZN5S81C72v8Ev
  virtual void  v9(); // _ZN5S81C72v9Ev
  virtual void  v10(); // _ZN5S81C73v10Ev
  virtual void  v11(); // _ZN5S81C73v11Ev
  virtual void  v12(); // _ZN5S81C73v12Ev
  virtual void  v13(); // _ZN5S81C73v13Ev
  virtual void  v14(); // _ZN5S81C73v14Ev
  virtual void  v15(); // _ZN5S81C73v15Ev
  virtual void  v16(); // _ZN5S81C73v16Ev
  virtual void  v17(); // _ZN5S81C73v17Ev
  virtual void  v18(); // _ZN5S81C73v18Ev
  virtual void  v19(); // _ZN5S81C73v19Ev
  virtual void  v20(); // _ZN5S81C73v20Ev
  virtual void  v21(); // _ZN5S81C73v21Ev
  virtual void  v22(); // _ZN5S81C73v22Ev
  virtual void  v23(); // _ZN5S81C73v23Ev
  virtual void  v24(); // _ZN5S81C73v24Ev
  virtual void  v25(); // _ZN5S81C73v25Ev
  virtual void  v26(); // _ZN5S81C73v26Ev
  virtual void  v27(); // _ZN5S81C73v27Ev
  virtual void  v28(); // _ZN5S81C73v28Ev
  virtual void  v29(); // _ZN5S81C73v29Ev
  virtual void  v30(); // _ZN5S81C73v30Ev
  virtual void  v31(); // _ZN5S81C73v31Ev
  virtual void  v32(); // _ZN5S81C73v32Ev
  virtual void  v33(); // _ZN5S81C73v33Ev
  virtual void  v34(); // _ZN5S81C73v34Ev
  virtual void  v35(); // _ZN5S81C73v35Ev
  virtual void  v36(); // _ZN5S81C73v36Ev
  virtual void  v37(); // _ZN5S81C73v37Ev
  virtual void  v38(); // _ZN5S81C73v38Ev
  virtual void  v39(); // _ZN5S81C73v39Ev
  virtual void  v40(); // _ZN5S81C73v40Ev
  virtual void  v41(); // _ZN5S81C73v41Ev
  virtual void  v42(); // _ZN5S81C73v42Ev
  virtual void  v43(); // _ZN5S81C73v43Ev
  virtual void  v44(); // _ZN5S81C73v44Ev
  virtual void  v45(); // _ZN5S81C73v45Ev
  virtual void  v46(); // _ZN5S81C73v46Ev
  virtual void  v47(); // _ZN5S81C73v47Ev
  virtual void  v48(); // _ZN5S81C73v48Ev
  virtual void  v49(); // _ZN5S81C73v49Ev
  virtual void  v50(); // _ZN5S81C73v50Ev
  virtual void  v51(); // _ZN5S81C73v51Ev
  virtual void  v52(); // _ZN5S81C73v52Ev
  virtual void  v53(); // _ZN5S81C73v53Ev
  virtual void  v54(); // _ZN5S81C73v54Ev
  virtual void  v55(); // _ZN5S81C73v55Ev
  virtual void  v56(); // _ZN5S81C73v56Ev
  virtual void  v57(); // _ZN5S81C73v57Ev
  virtual void  v58(); // _ZN5S81C73v58Ev
  virtual void  v59(); // _ZN5S81C73v59Ev
  virtual void  v60(); // _ZN5S81C73v60Ev
  virtual void  v61(); // _ZN5S81C73v61Ev
  virtual void  v62(); // _ZN5S81C73v62Ev
  virtual void  v63(); // _ZN5S81C73v63Ev
  virtual void  v64(); // _ZN5S81C73v64Ev
  virtual void  v65(); // _ZN5S81C73v65Ev
  virtual void  v66(); // _ZN5S81C73v66Ev
  virtual void  v67(); // _ZN5S81C73v67Ev
  S81C7(); // tgen
};
//SIG(-1 S81C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S81C7 ::~S81C7(){ note_dtor("S81C7", this);}
void  S81C7 ::v4(){vfunc_called(this, "_ZN5S81C72v4Ev");}
void  S81C7 ::v5(){vfunc_called(this, "_ZN5S81C72v5Ev");}
void  S81C7 ::v6(){vfunc_called(this, "_ZN5S81C72v6Ev");}
void  S81C7 ::v7(){vfunc_called(this, "_ZN5S81C72v7Ev");}
void  S81C7 ::v8(){vfunc_called(this, "_ZN5S81C72v8Ev");}
void  S81C7 ::v9(){vfunc_called(this, "_ZN5S81C72v9Ev");}
void  S81C7 ::v10(){vfunc_called(this, "_ZN5S81C73v10Ev");}
void  S81C7 ::v11(){vfunc_called(this, "_ZN5S81C73v11Ev");}
void  S81C7 ::v12(){vfunc_called(this, "_ZN5S81C73v12Ev");}
void  S81C7 ::v13(){vfunc_called(this, "_ZN5S81C73v13Ev");}
void  S81C7 ::v14(){vfunc_called(this, "_ZN5S81C73v14Ev");}
void  S81C7 ::v15(){vfunc_called(this, "_ZN5S81C73v15Ev");}
void  S81C7 ::v16(){vfunc_called(this, "_ZN5S81C73v16Ev");}
void  S81C7 ::v17(){vfunc_called(this, "_ZN5S81C73v17Ev");}
void  S81C7 ::v18(){vfunc_called(this, "_ZN5S81C73v18Ev");}
void  S81C7 ::v19(){vfunc_called(this, "_ZN5S81C73v19Ev");}
void  S81C7 ::v20(){vfunc_called(this, "_ZN5S81C73v20Ev");}
void  S81C7 ::v21(){vfunc_called(this, "_ZN5S81C73v21Ev");}
void  S81C7 ::v22(){vfunc_called(this, "_ZN5S81C73v22Ev");}
void  S81C7 ::v23(){vfunc_called(this, "_ZN5S81C73v23Ev");}
void  S81C7 ::v24(){vfunc_called(this, "_ZN5S81C73v24Ev");}
void  S81C7 ::v25(){vfunc_called(this, "_ZN5S81C73v25Ev");}
void  S81C7 ::v26(){vfunc_called(this, "_ZN5S81C73v26Ev");}
void  S81C7 ::v27(){vfunc_called(this, "_ZN5S81C73v27Ev");}
void  S81C7 ::v28(){vfunc_called(this, "_ZN5S81C73v28Ev");}
void  S81C7 ::v29(){vfunc_called(this, "_ZN5S81C73v29Ev");}
void  S81C7 ::v30(){vfunc_called(this, "_ZN5S81C73v30Ev");}
void  S81C7 ::v31(){vfunc_called(this, "_ZN5S81C73v31Ev");}
void  S81C7 ::v32(){vfunc_called(this, "_ZN5S81C73v32Ev");}
void  S81C7 ::v33(){vfunc_called(this, "_ZN5S81C73v33Ev");}
void  S81C7 ::v34(){vfunc_called(this, "_ZN5S81C73v34Ev");}
void  S81C7 ::v35(){vfunc_called(this, "_ZN5S81C73v35Ev");}
void  S81C7 ::v36(){vfunc_called(this, "_ZN5S81C73v36Ev");}
void  S81C7 ::v37(){vfunc_called(this, "_ZN5S81C73v37Ev");}
void  S81C7 ::v38(){vfunc_called(this, "_ZN5S81C73v38Ev");}
void  S81C7 ::v39(){vfunc_called(this, "_ZN5S81C73v39Ev");}
void  S81C7 ::v40(){vfunc_called(this, "_ZN5S81C73v40Ev");}
void  S81C7 ::v41(){vfunc_called(this, "_ZN5S81C73v41Ev");}
void  S81C7 ::v42(){vfunc_called(this, "_ZN5S81C73v42Ev");}
void  S81C7 ::v43(){vfunc_called(this, "_ZN5S81C73v43Ev");}
void  S81C7 ::v44(){vfunc_called(this, "_ZN5S81C73v44Ev");}
void  S81C7 ::v45(){vfunc_called(this, "_ZN5S81C73v45Ev");}
void  S81C7 ::v46(){vfunc_called(this, "_ZN5S81C73v46Ev");}
void  S81C7 ::v47(){vfunc_called(this, "_ZN5S81C73v47Ev");}
void  S81C7 ::v48(){vfunc_called(this, "_ZN5S81C73v48Ev");}
void  S81C7 ::v49(){vfunc_called(this, "_ZN5S81C73v49Ev");}
void  S81C7 ::v50(){vfunc_called(this, "_ZN5S81C73v50Ev");}
void  S81C7 ::v51(){vfunc_called(this, "_ZN5S81C73v51Ev");}
void  S81C7 ::v52(){vfunc_called(this, "_ZN5S81C73v52Ev");}
void  S81C7 ::v53(){vfunc_called(this, "_ZN5S81C73v53Ev");}
void  S81C7 ::v54(){vfunc_called(this, "_ZN5S81C73v54Ev");}
void  S81C7 ::v55(){vfunc_called(this, "_ZN5S81C73v55Ev");}
void  S81C7 ::v56(){vfunc_called(this, "_ZN5S81C73v56Ev");}
void  S81C7 ::v57(){vfunc_called(this, "_ZN5S81C73v57Ev");}
void  S81C7 ::v58(){vfunc_called(this, "_ZN5S81C73v58Ev");}
void  S81C7 ::v59(){vfunc_called(this, "_ZN5S81C73v59Ev");}
void  S81C7 ::v60(){vfunc_called(this, "_ZN5S81C73v60Ev");}
void  S81C7 ::v61(){vfunc_called(this, "_ZN5S81C73v61Ev");}
void  S81C7 ::v62(){vfunc_called(this, "_ZN5S81C73v62Ev");}
void  S81C7 ::v63(){vfunc_called(this, "_ZN5S81C73v63Ev");}
void  S81C7 ::v64(){vfunc_called(this, "_ZN5S81C73v64Ev");}
void  S81C7 ::v65(){vfunc_called(this, "_ZN5S81C73v65Ev");}
void  S81C7 ::v66(){vfunc_called(this, "_ZN5S81C73v66Ev");}
void  S81C7 ::v67(){vfunc_called(this, "_ZN5S81C73v67Ev");}
S81C7 ::S81C7(){ note_ctor("S81C7", this);} // tgen

static void Test_S81C7()
{
  extern Class_Descriptor cd_S81C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S81C7, buf);
    S81C7 *dp, &lv = *(dp=new (buf) S81C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S81C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C7)");
    check_field_offset(lv, s81c7f0, ABISELECT(8,4), "S81C7.s81c7f0");
    check_field_offset(lv, s81c7f1, ABISELECT(16,8), "S81C7.s81c7f1");
    check_field_offset(lv, s81c7f2, ABISELECT(24,16), "S81C7.s81c7f2");
    check_field_offset(lv, s81c7f3, ABISELECT(56,32), "S81C7.s81c7f3");
    check_field_offset(lv, s81c7f4, ABISELECT(64,40), "S81C7.s81c7f4");
    check_field_offset(lv, s81c7f5, ABISELECT(72,44), "S81C7.s81c7f5");
    check_field_offset(lv, s81c7f6, ABISELECT(80,52), "S81C7.s81c7f6");
    test_class_info(&lv, &cd_S81C7);
    dp->~S81C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C7(Test_S81C7, "S81C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S81C7C1Ev();
extern void _ZN5S81C7D1Ev();
Name_Map name_map_S81C7[] = {
  NSPAIR(_ZN5S81C7C1Ev),
  NSPAIR(_ZN5S81C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S81C7[];
extern void _ZN5S81C7D1Ev();
extern void _ZN5S81C7D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
static  VTBL_ENTRY vtc_S81C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C7[0]),
  (VTBL_ENTRY)&_ZN5S81C7D1Ev,
  (VTBL_ENTRY)&_ZN5S81C7D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
};
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
Class_Descriptor cd_S81C7 = {  "S81C7", // class name
  0,0,//no base classes
  &(vtc_S81C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S81C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S81C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C6  : S81C7 {
  virtual  ~S81C6(); // _ZN5S81C6D1Ev
  virtual void  v68(); // _ZN5S81C63v68Ev
  virtual void  v69(); // _ZN5S81C63v69Ev
  S81C6(); // tgen
};
//SIG(-1 S81C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S81C6 ::~S81C6(){ note_dtor("S81C6", this);}
void  S81C6 ::v68(){vfunc_called(this, "_ZN5S81C63v68Ev");}
void  S81C6 ::v69(){vfunc_called(this, "_ZN5S81C63v69Ev");}
S81C6 ::S81C6(){ note_ctor("S81C6", this);} // tgen

static void Test_S81C6()
{
  extern Class_Descriptor cd_S81C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S81C6, buf);
    S81C6 *dp, &lv = *(dp=new (buf) S81C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S81C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C6)");
    check_base_class_offset(lv, (S81C7*), 0, "S81C6");
    test_class_info(&lv, &cd_S81C6);
    dp->~S81C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C6(Test_S81C6, "S81C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S81C6C1Ev();
extern void _ZN5S81C6D1Ev();
Name_Map name_map_S81C6[] = {
  NSPAIR(_ZN5S81C6C1Ev),
  NSPAIR(_ZN5S81C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S81C7;
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
static Base_Class bases_S81C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S81C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S81C6[];
extern void _ZN5S81C6D1Ev();
extern void _ZN5S81C6D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
extern void _ZN5S81C63v68Ev();
extern void _ZN5S81C63v69Ev();
static  VTBL_ENTRY vtc_S81C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C6[0]),
  (VTBL_ENTRY)&_ZN5S81C6D1Ev,
  (VTBL_ENTRY)&_ZN5S81C6D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
  (VTBL_ENTRY)&_ZN5S81C63v68Ev,
  (VTBL_ENTRY)&_ZN5S81C63v69Ev,
};
extern VTBL_ENTRY _ZTI5S81C6[];
extern  VTBL_ENTRY _ZTV5S81C6[];
Class_Descriptor cd_S81C6 = {  "S81C6", // class name
  bases_S81C6, 1,
  &(vtc_S81C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S81C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S81C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C5  : S81C6 {
  ::S80C9_nt s81c5f0;
  int s81c5f1;
  unsigned int s81c5f2:1;
  unsigned int s81c5f3:1;
  unsigned int s81c5f4:1;
  unsigned int s81c5f5:1;
  ::S85C35 s81c5f6;
  ::S85C22_nt s81c5f7;
  void *s81c5f8;
  ::S80C31 s81c5f9;
  ::S80C31 s81c5f10;
  ::S80C29 s81c5f11;
  ::S80C19 s81c5f12;
  char s81c5f13;
  int s81c5f14;
  void *s81c5f15;
  ::S85C27_nt s81c5f16;
  ::S85C27_nt s81c5f17;
  ::S85C27_nt s81c5f18;
  ::S85C27_nt s81c5f19;
  ::S85C27_nt s81c5f20;
  ::S85C27_nt s81c5f21;
  ::S80C21_nt s81c5f22;
  ::S80C21_nt s81c5f23;
  ::S80C21_nt s81c5f24;
  ::S80C21_nt s81c5f25;
  ::S80C21_nt s81c5f26;
  ::S80C21_nt s81c5f27;
  ::S80C21_nt s81c5f28;
  ::S80C21_nt s81c5f29;
  ::S80C21_nt s81c5f30;
  ::S80C21_nt s81c5f31;
  virtual  ~S81C5(); // _ZN5S81C5D1Ev
  virtual void  v70(); // _ZN5S81C53v70Ev
  virtual void  v71(); // _ZN5S81C53v71Ev
  virtual void  v72(); // _ZN5S81C53v72Ev
  virtual void  v73(); // _ZN5S81C53v73Ev
  virtual void  v74(); // _ZN5S81C53v74Ev
  virtual void  v75(); // _ZN5S81C53v75Ev
  virtual void  v76(); // _ZN5S81C53v76Ev
  virtual void  v77(); // _ZN5S81C53v77Ev
  virtual void  v78(); // _ZN5S81C53v78Ev
  virtual void  v79(); // _ZN5S81C53v79Ev
  virtual void  v80(); // _ZN5S81C53v80Ev
  virtual void  v81(); // _ZN5S81C53v81Ev
  virtual void  v82(); // _ZN5S81C53v82Ev
  virtual void  v83(); // _ZN5S81C53v83Ev
  virtual void  v84(); // _ZN5S81C53v84Ev
  virtual void  v85(); // _ZN5S81C53v85Ev
  virtual void  v86(); // _ZN5S81C53v86Ev
  virtual void  v87(); // _ZN5S81C53v87Ev
  virtual void  v88(); // _ZN5S81C53v88Ev
  virtual void  v89(); // _ZN5S81C53v89Ev
  virtual void  v90(); // _ZN5S81C53v90Ev
  virtual void  v91(); // _ZN5S81C53v91Ev
  virtual void  v92(); // _ZN5S81C53v92Ev
  virtual void  v93(); // _ZN5S81C53v93Ev
  virtual void  v94(); // _ZN5S81C53v94Ev
  virtual void  v95(); // _ZN5S81C53v95Ev
  virtual void  v96(); // _ZN5S81C53v96Ev
  virtual void  v97(); // _ZN5S81C53v97Ev
  virtual void  v98(); // _ZN5S81C53v98Ev
  virtual void  v99(); // _ZN5S81C53v99Ev
  virtual void  v100(); // _ZN5S81C54v100Ev
  virtual void  v101(); // _ZN5S81C54v101Ev
  virtual void  v102(); // _ZN5S81C54v102Ev
  virtual void  v103(); // _ZN5S81C54v103Ev
  virtual void  v104(); // _ZN5S81C54v104Ev
  virtual void  v105(); // _ZN5S81C54v105Ev
  virtual void  v106(); // _ZN5S81C54v106Ev
  virtual void  v107(); // _ZN5S81C54v107Ev
  virtual void  v108(); // _ZN5S81C54v108Ev
  virtual void  v109(); // _ZN5S81C54v109Ev
  virtual void  v110(); // _ZN5S81C54v110Ev
  virtual void  v111(); // _ZN5S81C54v111Ev
  virtual void  v112(); // _ZN5S81C54v112Ev
  virtual void  v113(); // _ZN5S81C54v113Ev
  virtual void  v114(); // _ZN5S81C54v114Ev
  virtual void  v115(); // _ZN5S81C54v115Ev
  virtual void  v116(); // _ZN5S81C54v116Ev
  virtual void  v117(); // _ZN5S81C54v117Ev
  virtual void  v118(); // _ZN5S81C54v118Ev
  virtual void  v119(); // _ZN5S81C54v119Ev
  virtual void  v120(); // _ZN5S81C54v120Ev
  virtual void  v121(); // _ZN5S81C54v121Ev
  virtual void  v122(); // _ZN5S81C54v122Ev
  virtual void  v123(); // _ZN5S81C54v123Ev
  virtual void  v124(); // _ZN5S81C54v124Ev
  virtual void  v125(); // _ZN5S81C54v125Ev
  virtual void  v126(); // _ZN5S81C54v126Ev
  virtual void  v127(); // _ZN5S81C54v127Ev
  virtual void  v128(); // _ZN5S81C54v128Ev
  virtual void  v129(); // _ZN5S81C54v129Ev
  virtual void  v130(); // _ZN5S81C54v130Ev
  virtual void  v131(); // _ZN5S81C54v131Ev
  virtual void  v132(); // _ZN5S81C54v132Ev
  virtual void  v133(); // _ZN5S81C54v133Ev
  virtual void  v134(); // _ZN5S81C54v134Ev
  virtual void  v135(); // _ZN5S81C54v135Ev
  virtual void  v136(); // _ZN5S81C54v136Ev
  virtual void  v137(); // _ZN5S81C54v137Ev
  virtual void  v138(); // _ZN5S81C54v138Ev
  virtual void  v139(); // _ZN5S81C54v139Ev
  virtual void  v140(); // _ZN5S81C54v140Ev
  virtual void  v141(); // _ZN5S81C54v141Ev
  virtual void  v142(); // _ZN5S81C54v142Ev
  virtual void  v143(); // _ZN5S81C54v143Ev
  virtual void  v144(); // _ZN5S81C54v144Ev
  virtual void  v145(); // _ZN5S81C54v145Ev
  S81C5(); // tgen
};
//SIG(-1 S81C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S81C5 ::~S81C5(){ note_dtor("S81C5", this);}
void  S81C5 ::v70(){vfunc_called(this, "_ZN5S81C53v70Ev");}
void  S81C5 ::v71(){vfunc_called(this, "_ZN5S81C53v71Ev");}
void  S81C5 ::v72(){vfunc_called(this, "_ZN5S81C53v72Ev");}
void  S81C5 ::v73(){vfunc_called(this, "_ZN5S81C53v73Ev");}
void  S81C5 ::v74(){vfunc_called(this, "_ZN5S81C53v74Ev");}
void  S81C5 ::v75(){vfunc_called(this, "_ZN5S81C53v75Ev");}
void  S81C5 ::v76(){vfunc_called(this, "_ZN5S81C53v76Ev");}
void  S81C5 ::v77(){vfunc_called(this, "_ZN5S81C53v77Ev");}
void  S81C5 ::v78(){vfunc_called(this, "_ZN5S81C53v78Ev");}
void  S81C5 ::v79(){vfunc_called(this, "_ZN5S81C53v79Ev");}
void  S81C5 ::v80(){vfunc_called(this, "_ZN5S81C53v80Ev");}
void  S81C5 ::v81(){vfunc_called(this, "_ZN5S81C53v81Ev");}
void  S81C5 ::v82(){vfunc_called(this, "_ZN5S81C53v82Ev");}
void  S81C5 ::v83(){vfunc_called(this, "_ZN5S81C53v83Ev");}
void  S81C5 ::v84(){vfunc_called(this, "_ZN5S81C53v84Ev");}
void  S81C5 ::v85(){vfunc_called(this, "_ZN5S81C53v85Ev");}
void  S81C5 ::v86(){vfunc_called(this, "_ZN5S81C53v86Ev");}
void  S81C5 ::v87(){vfunc_called(this, "_ZN5S81C53v87Ev");}
void  S81C5 ::v88(){vfunc_called(this, "_ZN5S81C53v88Ev");}
void  S81C5 ::v89(){vfunc_called(this, "_ZN5S81C53v89Ev");}
void  S81C5 ::v90(){vfunc_called(this, "_ZN5S81C53v90Ev");}
void  S81C5 ::v91(){vfunc_called(this, "_ZN5S81C53v91Ev");}
void  S81C5 ::v92(){vfunc_called(this, "_ZN5S81C53v92Ev");}
void  S81C5 ::v93(){vfunc_called(this, "_ZN5S81C53v93Ev");}
void  S81C5 ::v94(){vfunc_called(this, "_ZN5S81C53v94Ev");}
void  S81C5 ::v95(){vfunc_called(this, "_ZN5S81C53v95Ev");}
void  S81C5 ::v96(){vfunc_called(this, "_ZN5S81C53v96Ev");}
void  S81C5 ::v97(){vfunc_called(this, "_ZN5S81C53v97Ev");}
void  S81C5 ::v98(){vfunc_called(this, "_ZN5S81C53v98Ev");}
void  S81C5 ::v99(){vfunc_called(this, "_ZN5S81C53v99Ev");}
void  S81C5 ::v100(){vfunc_called(this, "_ZN5S81C54v100Ev");}
void  S81C5 ::v101(){vfunc_called(this, "_ZN5S81C54v101Ev");}
void  S81C5 ::v102(){vfunc_called(this, "_ZN5S81C54v102Ev");}
void  S81C5 ::v103(){vfunc_called(this, "_ZN5S81C54v103Ev");}
void  S81C5 ::v104(){vfunc_called(this, "_ZN5S81C54v104Ev");}
void  S81C5 ::v105(){vfunc_called(this, "_ZN5S81C54v105Ev");}
void  S81C5 ::v106(){vfunc_called(this, "_ZN5S81C54v106Ev");}
void  S81C5 ::v107(){vfunc_called(this, "_ZN5S81C54v107Ev");}
void  S81C5 ::v108(){vfunc_called(this, "_ZN5S81C54v108Ev");}
void  S81C5 ::v109(){vfunc_called(this, "_ZN5S81C54v109Ev");}
void  S81C5 ::v110(){vfunc_called(this, "_ZN5S81C54v110Ev");}
void  S81C5 ::v111(){vfunc_called(this, "_ZN5S81C54v111Ev");}
void  S81C5 ::v112(){vfunc_called(this, "_ZN5S81C54v112Ev");}
void  S81C5 ::v113(){vfunc_called(this, "_ZN5S81C54v113Ev");}
void  S81C5 ::v114(){vfunc_called(this, "_ZN5S81C54v114Ev");}
void  S81C5 ::v115(){vfunc_called(this, "_ZN5S81C54v115Ev");}
void  S81C5 ::v116(){vfunc_called(this, "_ZN5S81C54v116Ev");}
void  S81C5 ::v117(){vfunc_called(this, "_ZN5S81C54v117Ev");}
void  S81C5 ::v118(){vfunc_called(this, "_ZN5S81C54v118Ev");}
void  S81C5 ::v119(){vfunc_called(this, "_ZN5S81C54v119Ev");}
void  S81C5 ::v120(){vfunc_called(this, "_ZN5S81C54v120Ev");}
void  S81C5 ::v121(){vfunc_called(this, "_ZN5S81C54v121Ev");}
void  S81C5 ::v122(){vfunc_called(this, "_ZN5S81C54v122Ev");}
void  S81C5 ::v123(){vfunc_called(this, "_ZN5S81C54v123Ev");}
void  S81C5 ::v124(){vfunc_called(this, "_ZN5S81C54v124Ev");}
void  S81C5 ::v125(){vfunc_called(this, "_ZN5S81C54v125Ev");}
void  S81C5 ::v126(){vfunc_called(this, "_ZN5S81C54v126Ev");}
void  S81C5 ::v127(){vfunc_called(this, "_ZN5S81C54v127Ev");}
void  S81C5 ::v128(){vfunc_called(this, "_ZN5S81C54v128Ev");}
void  S81C5 ::v129(){vfunc_called(this, "_ZN5S81C54v129Ev");}
void  S81C5 ::v130(){vfunc_called(this, "_ZN5S81C54v130Ev");}
void  S81C5 ::v131(){vfunc_called(this, "_ZN5S81C54v131Ev");}
void  S81C5 ::v132(){vfunc_called(this, "_ZN5S81C54v132Ev");}
void  S81C5 ::v133(){vfunc_called(this, "_ZN5S81C54v133Ev");}
void  S81C5 ::v134(){vfunc_called(this, "_ZN5S81C54v134Ev");}
void  S81C5 ::v135(){vfunc_called(this, "_ZN5S81C54v135Ev");}
void  S81C5 ::v136(){vfunc_called(this, "_ZN5S81C54v136Ev");}
void  S81C5 ::v137(){vfunc_called(this, "_ZN5S81C54v137Ev");}
void  S81C5 ::v138(){vfunc_called(this, "_ZN5S81C54v138Ev");}
void  S81C5 ::v139(){vfunc_called(this, "_ZN5S81C54v139Ev");}
void  S81C5 ::v140(){vfunc_called(this, "_ZN5S81C54v140Ev");}
void  S81C5 ::v141(){vfunc_called(this, "_ZN5S81C54v141Ev");}
void  S81C5 ::v142(){vfunc_called(this, "_ZN5S81C54v142Ev");}
void  S81C5 ::v143(){vfunc_called(this, "_ZN5S81C54v143Ev");}
void  S81C5 ::v144(){vfunc_called(this, "_ZN5S81C54v144Ev");}
void  S81C5 ::v145(){vfunc_called(this, "_ZN5S81C54v145Ev");}
S81C5 ::S81C5(){ note_ctor("S81C5", this);} // tgen

static void Test_S81C5()
{
  extern Class_Descriptor cd_S81C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S81C5, buf);
    S81C5 *dp, &lv = *(dp=new (buf) S81C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S81C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C5)");
    check_base_class_offset(lv, (S81C7*)(S81C6*), 0, "S81C5");
    check_base_class_offset(lv, (S81C6*), 0, "S81C5");
    check_field_offset(lv, s81c5f0, ABISELECT(96,60), "S81C5.s81c5f0");
    check_field_offset(lv, s81c5f1, ABISELECT(124,88), "S81C5.s81c5f1");
    set_bf_and_test(lv, s81c5f2, ABISELECT(128,92), 0, 1, 1, "S81C5");
    set_bf_and_test(lv, s81c5f3, ABISELECT(128,92), 1, 1, 1, "S81C5");
    set_bf_and_test(lv, s81c5f4, ABISELECT(128,92), 2, 1, 1, "S81C5");
    set_bf_and_test(lv, s81c5f5, ABISELECT(128,92), 3, 1, 1, "S81C5");
    check_field_offset(lv, s81c5f6, ABISELECT(136,96), "S81C5.s81c5f6");
    check_field_offset(lv, s81c5f7, ABISELECT(152,108), "S81C5.s81c5f7");
    check_field_offset(lv, s81c5f8, ABISELECT(168,120), "S81C5.s81c5f8");
    check_field_offset(lv, s81c5f9, ABISELECT(176,124), "S81C5.s81c5f9");
    check_field_offset(lv, s81c5f10, ABISELECT(192,136), "S81C5.s81c5f10");
    check_field_offset(lv, s81c5f11, ABISELECT(208,148), "S81C5.s81c5f11");
    check_field_offset(lv, s81c5f12, ABISELECT(224,160), "S81C5.s81c5f12");
    check_field_offset(lv, s81c5f13, ABISELECT(240,172), "S81C5.s81c5f13");
    check_field_offset(lv, s81c5f14, ABISELECT(244,176), "S81C5.s81c5f14");
    check_field_offset(lv, s81c5f15, ABISELECT(248,180), "S81C5.s81c5f15");
    check_field_offset(lv, s81c5f16, ABISELECT(256,184), "S81C5.s81c5f16");
    check_field_offset(lv, s81c5f17, ABISELECT(264,192), "S81C5.s81c5f17");
    check_field_offset(lv, s81c5f18, ABISELECT(272,200), "S81C5.s81c5f18");
    check_field_offset(lv, s81c5f19, ABISELECT(280,208), "S81C5.s81c5f19");
    check_field_offset(lv, s81c5f20, ABISELECT(288,216), "S81C5.s81c5f20");
    check_field_offset(lv, s81c5f21, ABISELECT(296,224), "S81C5.s81c5f21");
    check_field_offset(lv, s81c5f22, ABISELECT(304,232), "S81C5.s81c5f22");
    check_field_offset(lv, s81c5f23, ABISELECT(320,244), "S81C5.s81c5f23");
    check_field_offset(lv, s81c5f24, ABISELECT(336,256), "S81C5.s81c5f24");
    check_field_offset(lv, s81c5f25, ABISELECT(352,268), "S81C5.s81c5f25");
    check_field_offset(lv, s81c5f26, ABISELECT(368,280), "S81C5.s81c5f26");
    check_field_offset(lv, s81c5f27, ABISELECT(384,292), "S81C5.s81c5f27");
    check_field_offset(lv, s81c5f28, ABISELECT(400,304), "S81C5.s81c5f28");
    check_field_offset(lv, s81c5f29, ABISELECT(416,316), "S81C5.s81c5f29");
    check_field_offset(lv, s81c5f30, ABISELECT(432,328), "S81C5.s81c5f30");
    check_field_offset(lv, s81c5f31, ABISELECT(448,340), "S81C5.s81c5f31");
    test_class_info(&lv, &cd_S81C5);
    dp->~S81C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C5(Test_S81C5, "S81C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S81C5C1Ev();
extern void _ZN5S81C5D1Ev();
Name_Map name_map_S81C5[] = {
  NSPAIR(_ZN5S81C5C1Ev),
  NSPAIR(_ZN5S81C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S81C7;
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
extern Class_Descriptor cd_S81C6;
extern VTBL_ENTRY _ZTI5S81C6[];
extern  VTBL_ENTRY _ZTV5S81C6[];
static Base_Class bases_S81C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S81C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S81C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S81C5[];
extern void _ZN5S81C5D1Ev();
extern void _ZN5S81C5D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
extern void _ZN5S81C63v68Ev();
extern void _ZN5S81C63v69Ev();
extern void _ZN5S81C53v70Ev();
extern void _ZN5S81C53v71Ev();
extern void _ZN5S81C53v72Ev();
extern void _ZN5S81C53v73Ev();
extern void _ZN5S81C53v74Ev();
extern void _ZN5S81C53v75Ev();
extern void _ZN5S81C53v76Ev();
extern void _ZN5S81C53v77Ev();
extern void _ZN5S81C53v78Ev();
extern void _ZN5S81C53v79Ev();
extern void _ZN5S81C53v80Ev();
extern void _ZN5S81C53v81Ev();
extern void _ZN5S81C53v82Ev();
extern void _ZN5S81C53v83Ev();
extern void _ZN5S81C53v84Ev();
extern void _ZN5S81C53v85Ev();
extern void _ZN5S81C53v86Ev();
extern void _ZN5S81C53v87Ev();
extern void _ZN5S81C53v88Ev();
extern void _ZN5S81C53v89Ev();
extern void _ZN5S81C53v90Ev();
extern void _ZN5S81C53v91Ev();
extern void _ZN5S81C53v92Ev();
extern void _ZN5S81C53v93Ev();
extern void _ZN5S81C53v94Ev();
extern void _ZN5S81C53v95Ev();
extern void _ZN5S81C53v96Ev();
extern void _ZN5S81C53v97Ev();
extern void _ZN5S81C53v98Ev();
extern void _ZN5S81C53v99Ev();
extern void _ZN5S81C54v100Ev();
extern void _ZN5S81C54v101Ev();
extern void _ZN5S81C54v102Ev();
extern void _ZN5S81C54v103Ev();
extern void _ZN5S81C54v104Ev();
extern void _ZN5S81C54v105Ev();
extern void _ZN5S81C54v106Ev();
extern void _ZN5S81C54v107Ev();
extern void _ZN5S81C54v108Ev();
extern void _ZN5S81C54v109Ev();
extern void _ZN5S81C54v110Ev();
extern void _ZN5S81C54v111Ev();
extern void _ZN5S81C54v112Ev();
extern void _ZN5S81C54v113Ev();
extern void _ZN5S81C54v114Ev();
extern void _ZN5S81C54v115Ev();
extern void _ZN5S81C54v116Ev();
extern void _ZN5S81C54v117Ev();
extern void _ZN5S81C54v118Ev();
extern void _ZN5S81C54v119Ev();
extern void _ZN5S81C54v120Ev();
extern void _ZN5S81C54v121Ev();
extern void _ZN5S81C54v122Ev();
extern void _ZN5S81C54v123Ev();
extern void _ZN5S81C54v124Ev();
extern void _ZN5S81C54v125Ev();
extern void _ZN5S81C54v126Ev();
extern void _ZN5S81C54v127Ev();
extern void _ZN5S81C54v128Ev();
extern void _ZN5S81C54v129Ev();
extern void _ZN5S81C54v130Ev();
extern void _ZN5S81C54v131Ev();
extern void _ZN5S81C54v132Ev();
extern void _ZN5S81C54v133Ev();
extern void _ZN5S81C54v134Ev();
extern void _ZN5S81C54v135Ev();
extern void _ZN5S81C54v136Ev();
extern void _ZN5S81C54v137Ev();
extern void _ZN5S81C54v138Ev();
extern void _ZN5S81C54v139Ev();
extern void _ZN5S81C54v140Ev();
extern void _ZN5S81C54v141Ev();
extern void _ZN5S81C54v142Ev();
extern void _ZN5S81C54v143Ev();
extern void _ZN5S81C54v144Ev();
extern void _ZN5S81C54v145Ev();
static  VTBL_ENTRY vtc_S81C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C5[0]),
  (VTBL_ENTRY)&_ZN5S81C5D1Ev,
  (VTBL_ENTRY)&_ZN5S81C5D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
  (VTBL_ENTRY)&_ZN5S81C63v68Ev,
  (VTBL_ENTRY)&_ZN5S81C63v69Ev,
  (VTBL_ENTRY)&_ZN5S81C53v70Ev,
  (VTBL_ENTRY)&_ZN5S81C53v71Ev,
  (VTBL_ENTRY)&_ZN5S81C53v72Ev,
  (VTBL_ENTRY)&_ZN5S81C53v73Ev,
  (VTBL_ENTRY)&_ZN5S81C53v74Ev,
  (VTBL_ENTRY)&_ZN5S81C53v75Ev,
  (VTBL_ENTRY)&_ZN5S81C53v76Ev,
  (VTBL_ENTRY)&_ZN5S81C53v77Ev,
  (VTBL_ENTRY)&_ZN5S81C53v78Ev,
  (VTBL_ENTRY)&_ZN5S81C53v79Ev,
  (VTBL_ENTRY)&_ZN5S81C53v80Ev,
  (VTBL_ENTRY)&_ZN5S81C53v81Ev,
  (VTBL_ENTRY)&_ZN5S81C53v82Ev,
  (VTBL_ENTRY)&_ZN5S81C53v83Ev,
  (VTBL_ENTRY)&_ZN5S81C53v84Ev,
  (VTBL_ENTRY)&_ZN5S81C53v85Ev,
  (VTBL_ENTRY)&_ZN5S81C53v86Ev,
  (VTBL_ENTRY)&_ZN5S81C53v87Ev,
  (VTBL_ENTRY)&_ZN5S81C53v88Ev,
  (VTBL_ENTRY)&_ZN5S81C53v89Ev,
  (VTBL_ENTRY)&_ZN5S81C53v90Ev,
  (VTBL_ENTRY)&_ZN5S81C53v91Ev,
  (VTBL_ENTRY)&_ZN5S81C53v92Ev,
  (VTBL_ENTRY)&_ZN5S81C53v93Ev,
  (VTBL_ENTRY)&_ZN5S81C53v94Ev,
  (VTBL_ENTRY)&_ZN5S81C53v95Ev,
  (VTBL_ENTRY)&_ZN5S81C53v96Ev,
  (VTBL_ENTRY)&_ZN5S81C53v97Ev,
  (VTBL_ENTRY)&_ZN5S81C53v98Ev,
  (VTBL_ENTRY)&_ZN5S81C53v99Ev,
  (VTBL_ENTRY)&_ZN5S81C54v100Ev,
  (VTBL_ENTRY)&_ZN5S81C54v101Ev,
  (VTBL_ENTRY)&_ZN5S81C54v102Ev,
  (VTBL_ENTRY)&_ZN5S81C54v103Ev,
  (VTBL_ENTRY)&_ZN5S81C54v104Ev,
  (VTBL_ENTRY)&_ZN5S81C54v105Ev,
  (VTBL_ENTRY)&_ZN5S81C54v106Ev,
  (VTBL_ENTRY)&_ZN5S81C54v107Ev,
  (VTBL_ENTRY)&_ZN5S81C54v108Ev,
  (VTBL_ENTRY)&_ZN5S81C54v109Ev,
  (VTBL_ENTRY)&_ZN5S81C54v110Ev,
  (VTBL_ENTRY)&_ZN5S81C54v111Ev,
  (VTBL_ENTRY)&_ZN5S81C54v112Ev,
  (VTBL_ENTRY)&_ZN5S81C54v113Ev,
  (VTBL_ENTRY)&_ZN5S81C54v114Ev,
  (VTBL_ENTRY)&_ZN5S81C54v115Ev,
  (VTBL_ENTRY)&_ZN5S81C54v116Ev,
  (VTBL_ENTRY)&_ZN5S81C54v117Ev,
  (VTBL_ENTRY)&_ZN5S81C54v118Ev,
  (VTBL_ENTRY)&_ZN5S81C54v119Ev,
  (VTBL_ENTRY)&_ZN5S81C54v120Ev,
  (VTBL_ENTRY)&_ZN5S81C54v121Ev,
  (VTBL_ENTRY)&_ZN5S81C54v122Ev,
  (VTBL_ENTRY)&_ZN5S81C54v123Ev,
  (VTBL_ENTRY)&_ZN5S81C54v124Ev,
  (VTBL_ENTRY)&_ZN5S81C54v125Ev,
  (VTBL_ENTRY)&_ZN5S81C54v126Ev,
  (VTBL_ENTRY)&_ZN5S81C54v127Ev,
  (VTBL_ENTRY)&_ZN5S81C54v128Ev,
  (VTBL_ENTRY)&_ZN5S81C54v129Ev,
  (VTBL_ENTRY)&_ZN5S81C54v130Ev,
  (VTBL_ENTRY)&_ZN5S81C54v131Ev,
  (VTBL_ENTRY)&_ZN5S81C54v132Ev,
  (VTBL_ENTRY)&_ZN5S81C54v133Ev,
  (VTBL_ENTRY)&_ZN5S81C54v134Ev,
  (VTBL_ENTRY)&_ZN5S81C54v135Ev,
  (VTBL_ENTRY)&_ZN5S81C54v136Ev,
  (VTBL_ENTRY)&_ZN5S81C54v137Ev,
  (VTBL_ENTRY)&_ZN5S81C54v138Ev,
  (VTBL_ENTRY)&_ZN5S81C54v139Ev,
  (VTBL_ENTRY)&_ZN5S81C54v140Ev,
  (VTBL_ENTRY)&_ZN5S81C54v141Ev,
  (VTBL_ENTRY)&_ZN5S81C54v142Ev,
  (VTBL_ENTRY)&_ZN5S81C54v143Ev,
  (VTBL_ENTRY)&_ZN5S81C54v144Ev,
  (VTBL_ENTRY)&_ZN5S81C54v145Ev,
};
extern VTBL_ENTRY _ZTI5S81C5[];
extern  VTBL_ENTRY _ZTV5S81C5[];
Class_Descriptor cd_S81C5 = {  "S81C5", // class name
  bases_S81C5, 2,
  &(vtc_S81C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S81C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S81C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C4  : S81C5 {
  ::S85C27_nt s81c4f0;
  void *s81c4f1[9];
  ::S80C15 s81c4f2;
  ::S85C35 s81c4f3;
  ::S80C24 s81c4f4;
  int s81c4f5;
  unsigned int s81c4f6:1;
  unsigned int s81c4f7:1;
  unsigned int s81c4f8:1;
  unsigned int s81c4f9:1;
  unsigned int s81c4f10:1;
  unsigned int s81c4f11:1;
  unsigned int s81c4f12:1;
  unsigned int s81c4f13:1;
  unsigned int s81c4f14:1;
  unsigned int s81c4f15:1;
  unsigned int s81c4f16:1;
  unsigned int s81c4f17:1;
  unsigned int s81c4f18:1;
  unsigned int s81c4f19:1;
  unsigned int s81c4f20:1;
  unsigned int s81c4f21:1;
  unsigned int s81c4f22:1;
  unsigned int s81c4f23:1;
  unsigned int s81c4f24:1;
  unsigned int s81c4f25:1;
  unsigned int s81c4f26:1;
  unsigned int s81c4f27:1;
  void *s81c4f28;
  char s81c4f29[2];
  ::S80C8_nt s81c4f30;
  ::S85C27_nt s81c4f31;
  ::S85C27_nt s81c4f32;
  void *s81c4f33;
  ::S80C21_nt s81c4f34;
  ::S80C21_nt s81c4f35;
  ::S80C21_nt s81c4f36;
  ::S80C21_nt s81c4f37;
  ::S80C21_nt s81c4f38;
  virtual  ~S81C4(); // _ZN5S81C4D1Ev
  virtual void  v146(); // _ZN5S81C44v146Ev
  virtual void  v147(); // _ZN5S81C44v147Ev
  virtual void  v148(); // _ZN5S81C44v148Ev
  virtual void  v149(); // _ZN5S81C44v149Ev
  virtual void  v150(); // _ZN5S81C44v150Ev
  virtual void  v151(); // _ZN5S81C44v151Ev
  virtual void  v152(); // _ZN5S81C44v152Ev
  virtual void  v153(); // _ZN5S81C44v153Ev
  virtual void  v154(); // _ZN5S81C44v154Ev
  virtual void  v155(); // _ZN5S81C44v155Ev
  virtual void  v156(); // _ZN5S81C44v156Ev
  virtual void  v157(); // _ZN5S81C44v157Ev
  virtual void  v158(); // _ZN5S81C44v158Ev
  virtual void  v159(); // _ZN5S81C44v159Ev
  virtual void  v160(); // _ZN5S81C44v160Ev
  virtual void  v161(); // _ZN5S81C44v161Ev
  virtual void  v162(); // _ZN5S81C44v162Ev
  virtual void  v163(); // _ZN5S81C44v163Ev
  virtual void  v164(); // _ZN5S81C44v164Ev
  virtual void  v165(); // _ZN5S81C44v165Ev
  virtual void  v166(); // _ZN5S81C44v166Ev
  virtual void  v167(); // _ZN5S81C44v167Ev
  virtual void  v168(); // _ZN5S81C44v168Ev
  virtual void  v169(); // _ZN5S81C44v169Ev
  virtual void  v170(); // _ZN5S81C44v170Ev
  virtual void  v171(); // _ZN5S81C44v171Ev
  virtual void  v172(); // _ZN5S81C44v172Ev
  virtual void  v173(); // _ZN5S81C44v173Ev
  virtual void  v174(); // _ZN5S81C44v174Ev
  virtual void  v175(); // _ZN5S81C44v175Ev
  virtual void  v176(); // _ZN5S81C44v176Ev
  virtual void  v177(); // _ZN5S81C44v177Ev
  virtual void  v178(); // _ZN5S81C44v178Ev
  virtual void  v179(); // _ZN5S81C44v179Ev
  virtual void  v180(); // _ZN5S81C44v180Ev
  virtual void  v181(); // _ZN5S81C44v181Ev
  virtual void  v182(); // _ZN5S81C44v182Ev
  virtual void  v183(); // _ZN5S81C44v183Ev
  virtual void  v184(); // _ZN5S81C44v184Ev
  S81C4(); // tgen
};
//SIG(-1 S81C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S81C4 ::~S81C4(){ note_dtor("S81C4", this);}
void  S81C4 ::v146(){vfunc_called(this, "_ZN5S81C44v146Ev");}
void  S81C4 ::v147(){vfunc_called(this, "_ZN5S81C44v147Ev");}
void  S81C4 ::v148(){vfunc_called(this, "_ZN5S81C44v148Ev");}
void  S81C4 ::v149(){vfunc_called(this, "_ZN5S81C44v149Ev");}
void  S81C4 ::v150(){vfunc_called(this, "_ZN5S81C44v150Ev");}
void  S81C4 ::v151(){vfunc_called(this, "_ZN5S81C44v151Ev");}
void  S81C4 ::v152(){vfunc_called(this, "_ZN5S81C44v152Ev");}
void  S81C4 ::v153(){vfunc_called(this, "_ZN5S81C44v153Ev");}
void  S81C4 ::v154(){vfunc_called(this, "_ZN5S81C44v154Ev");}
void  S81C4 ::v155(){vfunc_called(this, "_ZN5S81C44v155Ev");}
void  S81C4 ::v156(){vfunc_called(this, "_ZN5S81C44v156Ev");}
void  S81C4 ::v157(){vfunc_called(this, "_ZN5S81C44v157Ev");}
void  S81C4 ::v158(){vfunc_called(this, "_ZN5S81C44v158Ev");}
void  S81C4 ::v159(){vfunc_called(this, "_ZN5S81C44v159Ev");}
void  S81C4 ::v160(){vfunc_called(this, "_ZN5S81C44v160Ev");}
void  S81C4 ::v161(){vfunc_called(this, "_ZN5S81C44v161Ev");}
void  S81C4 ::v162(){vfunc_called(this, "_ZN5S81C44v162Ev");}
void  S81C4 ::v163(){vfunc_called(this, "_ZN5S81C44v163Ev");}
void  S81C4 ::v164(){vfunc_called(this, "_ZN5S81C44v164Ev");}
void  S81C4 ::v165(){vfunc_called(this, "_ZN5S81C44v165Ev");}
void  S81C4 ::v166(){vfunc_called(this, "_ZN5S81C44v166Ev");}
void  S81C4 ::v167(){vfunc_called(this, "_ZN5S81C44v167Ev");}
void  S81C4 ::v168(){vfunc_called(this, "_ZN5S81C44v168Ev");}
void  S81C4 ::v169(){vfunc_called(this, "_ZN5S81C44v169Ev");}
void  S81C4 ::v170(){vfunc_called(this, "_ZN5S81C44v170Ev");}
void  S81C4 ::v171(){vfunc_called(this, "_ZN5S81C44v171Ev");}
void  S81C4 ::v172(){vfunc_called(this, "_ZN5S81C44v172Ev");}
void  S81C4 ::v173(){vfunc_called(this, "_ZN5S81C44v173Ev");}
void  S81C4 ::v174(){vfunc_called(this, "_ZN5S81C44v174Ev");}
void  S81C4 ::v175(){vfunc_called(this, "_ZN5S81C44v175Ev");}
void  S81C4 ::v176(){vfunc_called(this, "_ZN5S81C44v176Ev");}
void  S81C4 ::v177(){vfunc_called(this, "_ZN5S81C44v177Ev");}
void  S81C4 ::v178(){vfunc_called(this, "_ZN5S81C44v178Ev");}
void  S81C4 ::v179(){vfunc_called(this, "_ZN5S81C44v179Ev");}
void  S81C4 ::v180(){vfunc_called(this, "_ZN5S81C44v180Ev");}
void  S81C4 ::v181(){vfunc_called(this, "_ZN5S81C44v181Ev");}
void  S81C4 ::v182(){vfunc_called(this, "_ZN5S81C44v182Ev");}
void  S81C4 ::v183(){vfunc_called(this, "_ZN5S81C44v183Ev");}
void  S81C4 ::v184(){vfunc_called(this, "_ZN5S81C44v184Ev");}
S81C4 ::S81C4(){ note_ctor("S81C4", this);} // tgen

static void Test_S81C4()
{
  extern Class_Descriptor cd_S81C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S81C4, buf);
    S81C4 *dp, &lv = *(dp=new (buf) S81C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S81C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C4)");
    check_base_class_offset(lv, (S81C7*)(S81C6*)(S81C5*), 0, "S81C4");
    check_base_class_offset(lv, (S81C6*)(S81C5*), 0, "S81C4");
    check_base_class_offset(lv, (S81C5*), 0, "S81C4");
    check_field_offset(lv, s81c4f0, ABISELECT(464,352), "S81C4.s81c4f0");
    check_field_offset(lv, s81c4f1, ABISELECT(472,360), "S81C4.s81c4f1");
    check_field_offset(lv, s81c4f2, ABISELECT(544,396), "S81C4.s81c4f2");
    check_field_offset(lv, s81c4f3, ABISELECT(560,408), "S81C4.s81c4f3");
    check_field_offset(lv, s81c4f4, ABISELECT(576,420), "S81C4.s81c4f4");
    check_field_offset(lv, s81c4f5, ABISELECT(608,440), "S81C4.s81c4f5");
    set_bf_and_test(lv, s81c4f6, ABISELECT(612,444), 0, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f7, ABISELECT(612,444), 1, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f8, ABISELECT(612,444), 2, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f9, ABISELECT(612,444), 3, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f10, ABISELECT(612,444), 4, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f11, ABISELECT(612,444), 5, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f12, ABISELECT(612,444), 6, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f13, ABISELECT(612,444), 7, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f14, ABISELECT(613,445), 0, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f15, ABISELECT(613,445), 1, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f16, ABISELECT(613,445), 2, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f17, ABISELECT(613,445), 3, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f18, ABISELECT(613,445), 4, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f19, ABISELECT(613,445), 5, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f20, ABISELECT(613,445), 6, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f21, ABISELECT(613,445), 7, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f22, ABISELECT(614,446), 0, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f23, ABISELECT(614,446), 1, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f24, ABISELECT(614,446), 2, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f25, ABISELECT(614,446), 3, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f26, ABISELECT(614,446), 4, 1, 1, "S81C4");
    set_bf_and_test(lv, s81c4f27, ABISELECT(614,446), 5, 1, 1, "S81C4");
    check_field_offset(lv, s81c4f28, ABISELECT(616,448), "S81C4.s81c4f28");
    check_field_offset(lv, s81c4f29, ABISELECT(624,452), "S81C4.s81c4f29");
    check_field_offset(lv, s81c4f30, ABISELECT(628,456), "S81C4.s81c4f30");
    check_field_offset(lv, s81c4f31, ABISELECT(636,464), "S81C4.s81c4f31");
    check_field_offset(lv, s81c4f32, ABISELECT(644,472), "S81C4.s81c4f32");
    check_field_offset(lv, s81c4f33, ABISELECT(656,480), "S81C4.s81c4f33");
    check_field_offset(lv, s81c4f34, ABISELECT(664,484), "S81C4.s81c4f34");
    check_field_offset(lv, s81c4f35, ABISELECT(680,496), "S81C4.s81c4f35");
    check_field_offset(lv, s81c4f36, ABISELECT(696,508), "S81C4.s81c4f36");
    check_field_offset(lv, s81c4f37, ABISELECT(712,520), "S81C4.s81c4f37");
    check_field_offset(lv, s81c4f38, ABISELECT(728,532), "S81C4.s81c4f38");
    test_class_info(&lv, &cd_S81C4);
    dp->~S81C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C4(Test_S81C4, "S81C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S81C4C1Ev();
extern void _ZN5S81C4D1Ev();
Name_Map name_map_S81C4[] = {
  NSPAIR(_ZN5S81C4C1Ev),
  NSPAIR(_ZN5S81C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S81C7;
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
extern Class_Descriptor cd_S81C6;
extern VTBL_ENTRY _ZTI5S81C6[];
extern  VTBL_ENTRY _ZTV5S81C6[];
extern Class_Descriptor cd_S81C5;
extern VTBL_ENTRY _ZTI5S81C5[];
extern  VTBL_ENTRY _ZTV5S81C5[];
static Base_Class bases_S81C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S81C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S81C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S81C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S81C4[];
extern void _ZN5S81C4D1Ev();
extern void _ZN5S81C4D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
extern void _ZN5S81C63v68Ev();
extern void _ZN5S81C63v69Ev();
extern void _ZN5S81C53v70Ev();
extern void _ZN5S81C53v71Ev();
extern void _ZN5S81C53v72Ev();
extern void _ZN5S81C53v73Ev();
extern void _ZN5S81C53v74Ev();
extern void _ZN5S81C53v75Ev();
extern void _ZN5S81C53v76Ev();
extern void _ZN5S81C53v77Ev();
extern void _ZN5S81C53v78Ev();
extern void _ZN5S81C53v79Ev();
extern void _ZN5S81C53v80Ev();
extern void _ZN5S81C53v81Ev();
extern void _ZN5S81C53v82Ev();
extern void _ZN5S81C53v83Ev();
extern void _ZN5S81C53v84Ev();
extern void _ZN5S81C53v85Ev();
extern void _ZN5S81C53v86Ev();
extern void _ZN5S81C53v87Ev();
extern void _ZN5S81C53v88Ev();
extern void _ZN5S81C53v89Ev();
extern void _ZN5S81C53v90Ev();
extern void _ZN5S81C53v91Ev();
extern void _ZN5S81C53v92Ev();
extern void _ZN5S81C53v93Ev();
extern void _ZN5S81C53v94Ev();
extern void _ZN5S81C53v95Ev();
extern void _ZN5S81C53v96Ev();
extern void _ZN5S81C53v97Ev();
extern void _ZN5S81C53v98Ev();
extern void _ZN5S81C53v99Ev();
extern void _ZN5S81C54v100Ev();
extern void _ZN5S81C54v101Ev();
extern void _ZN5S81C54v102Ev();
extern void _ZN5S81C54v103Ev();
extern void _ZN5S81C54v104Ev();
extern void _ZN5S81C54v105Ev();
extern void _ZN5S81C54v106Ev();
extern void _ZN5S81C54v107Ev();
extern void _ZN5S81C54v108Ev();
extern void _ZN5S81C54v109Ev();
extern void _ZN5S81C54v110Ev();
extern void _ZN5S81C54v111Ev();
extern void _ZN5S81C54v112Ev();
extern void _ZN5S81C54v113Ev();
extern void _ZN5S81C54v114Ev();
extern void _ZN5S81C54v115Ev();
extern void _ZN5S81C54v116Ev();
extern void _ZN5S81C54v117Ev();
extern void _ZN5S81C54v118Ev();
extern void _ZN5S81C54v119Ev();
extern void _ZN5S81C54v120Ev();
extern void _ZN5S81C54v121Ev();
extern void _ZN5S81C54v122Ev();
extern void _ZN5S81C54v123Ev();
extern void _ZN5S81C54v124Ev();
extern void _ZN5S81C54v125Ev();
extern void _ZN5S81C54v126Ev();
extern void _ZN5S81C54v127Ev();
extern void _ZN5S81C54v128Ev();
extern void _ZN5S81C54v129Ev();
extern void _ZN5S81C54v130Ev();
extern void _ZN5S81C54v131Ev();
extern void _ZN5S81C54v132Ev();
extern void _ZN5S81C54v133Ev();
extern void _ZN5S81C54v134Ev();
extern void _ZN5S81C54v135Ev();
extern void _ZN5S81C54v136Ev();
extern void _ZN5S81C54v137Ev();
extern void _ZN5S81C54v138Ev();
extern void _ZN5S81C54v139Ev();
extern void _ZN5S81C54v140Ev();
extern void _ZN5S81C54v141Ev();
extern void _ZN5S81C54v142Ev();
extern void _ZN5S81C54v143Ev();
extern void _ZN5S81C54v144Ev();
extern void _ZN5S81C54v145Ev();
extern void _ZN5S81C44v146Ev();
extern void _ZN5S81C44v147Ev();
extern void _ZN5S81C44v148Ev();
extern void _ZN5S81C44v149Ev();
extern void _ZN5S81C44v150Ev();
extern void _ZN5S81C44v151Ev();
extern void _ZN5S81C44v152Ev();
extern void _ZN5S81C44v153Ev();
extern void _ZN5S81C44v154Ev();
extern void _ZN5S81C44v155Ev();
extern void _ZN5S81C44v156Ev();
extern void _ZN5S81C44v157Ev();
extern void _ZN5S81C44v158Ev();
extern void _ZN5S81C44v159Ev();
extern void _ZN5S81C44v160Ev();
extern void _ZN5S81C44v161Ev();
extern void _ZN5S81C44v162Ev();
extern void _ZN5S81C44v163Ev();
extern void _ZN5S81C44v164Ev();
extern void _ZN5S81C44v165Ev();
extern void _ZN5S81C44v166Ev();
extern void _ZN5S81C44v167Ev();
extern void _ZN5S81C44v168Ev();
extern void _ZN5S81C44v169Ev();
extern void _ZN5S81C44v170Ev();
extern void _ZN5S81C44v171Ev();
extern void _ZN5S81C44v172Ev();
extern void _ZN5S81C44v173Ev();
extern void _ZN5S81C44v174Ev();
extern void _ZN5S81C44v175Ev();
extern void _ZN5S81C44v176Ev();
extern void _ZN5S81C44v177Ev();
extern void _ZN5S81C44v178Ev();
extern void _ZN5S81C44v179Ev();
extern void _ZN5S81C44v180Ev();
extern void _ZN5S81C44v181Ev();
extern void _ZN5S81C44v182Ev();
extern void _ZN5S81C44v183Ev();
extern void _ZN5S81C44v184Ev();
static  VTBL_ENTRY vtc_S81C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C4[0]),
  (VTBL_ENTRY)&_ZN5S81C4D1Ev,
  (VTBL_ENTRY)&_ZN5S81C4D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
  (VTBL_ENTRY)&_ZN5S81C63v68Ev,
  (VTBL_ENTRY)&_ZN5S81C63v69Ev,
  (VTBL_ENTRY)&_ZN5S81C53v70Ev,
  (VTBL_ENTRY)&_ZN5S81C53v71Ev,
  (VTBL_ENTRY)&_ZN5S81C53v72Ev,
  (VTBL_ENTRY)&_ZN5S81C53v73Ev,
  (VTBL_ENTRY)&_ZN5S81C53v74Ev,
  (VTBL_ENTRY)&_ZN5S81C53v75Ev,
  (VTBL_ENTRY)&_ZN5S81C53v76Ev,
  (VTBL_ENTRY)&_ZN5S81C53v77Ev,
  (VTBL_ENTRY)&_ZN5S81C53v78Ev,
  (VTBL_ENTRY)&_ZN5S81C53v79Ev,
  (VTBL_ENTRY)&_ZN5S81C53v80Ev,
  (VTBL_ENTRY)&_ZN5S81C53v81Ev,
  (VTBL_ENTRY)&_ZN5S81C53v82Ev,
  (VTBL_ENTRY)&_ZN5S81C53v83Ev,
  (VTBL_ENTRY)&_ZN5S81C53v84Ev,
  (VTBL_ENTRY)&_ZN5S81C53v85Ev,
  (VTBL_ENTRY)&_ZN5S81C53v86Ev,
  (VTBL_ENTRY)&_ZN5S81C53v87Ev,
  (VTBL_ENTRY)&_ZN5S81C53v88Ev,
  (VTBL_ENTRY)&_ZN5S81C53v89Ev,
  (VTBL_ENTRY)&_ZN5S81C53v90Ev,
  (VTBL_ENTRY)&_ZN5S81C53v91Ev,
  (VTBL_ENTRY)&_ZN5S81C53v92Ev,
  (VTBL_ENTRY)&_ZN5S81C53v93Ev,
  (VTBL_ENTRY)&_ZN5S81C53v94Ev,
  (VTBL_ENTRY)&_ZN5S81C53v95Ev,
  (VTBL_ENTRY)&_ZN5S81C53v96Ev,
  (VTBL_ENTRY)&_ZN5S81C53v97Ev,
  (VTBL_ENTRY)&_ZN5S81C53v98Ev,
  (VTBL_ENTRY)&_ZN5S81C53v99Ev,
  (VTBL_ENTRY)&_ZN5S81C54v100Ev,
  (VTBL_ENTRY)&_ZN5S81C54v101Ev,
  (VTBL_ENTRY)&_ZN5S81C54v102Ev,
  (VTBL_ENTRY)&_ZN5S81C54v103Ev,
  (VTBL_ENTRY)&_ZN5S81C54v104Ev,
  (VTBL_ENTRY)&_ZN5S81C54v105Ev,
  (VTBL_ENTRY)&_ZN5S81C54v106Ev,
  (VTBL_ENTRY)&_ZN5S81C54v107Ev,
  (VTBL_ENTRY)&_ZN5S81C54v108Ev,
  (VTBL_ENTRY)&_ZN5S81C54v109Ev,
  (VTBL_ENTRY)&_ZN5S81C54v110Ev,
  (VTBL_ENTRY)&_ZN5S81C54v111Ev,
  (VTBL_ENTRY)&_ZN5S81C54v112Ev,
  (VTBL_ENTRY)&_ZN5S81C54v113Ev,
  (VTBL_ENTRY)&_ZN5S81C54v114Ev,
  (VTBL_ENTRY)&_ZN5S81C54v115Ev,
  (VTBL_ENTRY)&_ZN5S81C54v116Ev,
  (VTBL_ENTRY)&_ZN5S81C54v117Ev,
  (VTBL_ENTRY)&_ZN5S81C54v118Ev,
  (VTBL_ENTRY)&_ZN5S81C54v119Ev,
  (VTBL_ENTRY)&_ZN5S81C54v120Ev,
  (VTBL_ENTRY)&_ZN5S81C54v121Ev,
  (VTBL_ENTRY)&_ZN5S81C54v122Ev,
  (VTBL_ENTRY)&_ZN5S81C54v123Ev,
  (VTBL_ENTRY)&_ZN5S81C54v124Ev,
  (VTBL_ENTRY)&_ZN5S81C54v125Ev,
  (VTBL_ENTRY)&_ZN5S81C54v126Ev,
  (VTBL_ENTRY)&_ZN5S81C54v127Ev,
  (VTBL_ENTRY)&_ZN5S81C54v128Ev,
  (VTBL_ENTRY)&_ZN5S81C54v129Ev,
  (VTBL_ENTRY)&_ZN5S81C54v130Ev,
  (VTBL_ENTRY)&_ZN5S81C54v131Ev,
  (VTBL_ENTRY)&_ZN5S81C54v132Ev,
  (VTBL_ENTRY)&_ZN5S81C54v133Ev,
  (VTBL_ENTRY)&_ZN5S81C54v134Ev,
  (VTBL_ENTRY)&_ZN5S81C54v135Ev,
  (VTBL_ENTRY)&_ZN5S81C54v136Ev,
  (VTBL_ENTRY)&_ZN5S81C54v137Ev,
  (VTBL_ENTRY)&_ZN5S81C54v138Ev,
  (VTBL_ENTRY)&_ZN5S81C54v139Ev,
  (VTBL_ENTRY)&_ZN5S81C54v140Ev,
  (VTBL_ENTRY)&_ZN5S81C54v141Ev,
  (VTBL_ENTRY)&_ZN5S81C54v142Ev,
  (VTBL_ENTRY)&_ZN5S81C54v143Ev,
  (VTBL_ENTRY)&_ZN5S81C54v144Ev,
  (VTBL_ENTRY)&_ZN5S81C54v145Ev,
  (VTBL_ENTRY)&_ZN5S81C44v146Ev,
  (VTBL_ENTRY)&_ZN5S81C44v147Ev,
  (VTBL_ENTRY)&_ZN5S81C44v148Ev,
  (VTBL_ENTRY)&_ZN5S81C44v149Ev,
  (VTBL_ENTRY)&_ZN5S81C44v150Ev,
  (VTBL_ENTRY)&_ZN5S81C44v151Ev,
  (VTBL_ENTRY)&_ZN5S81C44v152Ev,
  (VTBL_ENTRY)&_ZN5S81C44v153Ev,
  (VTBL_ENTRY)&_ZN5S81C44v154Ev,
  (VTBL_ENTRY)&_ZN5S81C44v155Ev,
  (VTBL_ENTRY)&_ZN5S81C44v156Ev,
  (VTBL_ENTRY)&_ZN5S81C44v157Ev,
  (VTBL_ENTRY)&_ZN5S81C44v158Ev,
  (VTBL_ENTRY)&_ZN5S81C44v159Ev,
  (VTBL_ENTRY)&_ZN5S81C44v160Ev,
  (VTBL_ENTRY)&_ZN5S81C44v161Ev,
  (VTBL_ENTRY)&_ZN5S81C44v162Ev,
  (VTBL_ENTRY)&_ZN5S81C44v163Ev,
  (VTBL_ENTRY)&_ZN5S81C44v164Ev,
  (VTBL_ENTRY)&_ZN5S81C44v165Ev,
  (VTBL_ENTRY)&_ZN5S81C44v166Ev,
  (VTBL_ENTRY)&_ZN5S81C44v167Ev,
  (VTBL_ENTRY)&_ZN5S81C44v168Ev,
  (VTBL_ENTRY)&_ZN5S81C44v169Ev,
  (VTBL_ENTRY)&_ZN5S81C44v170Ev,
  (VTBL_ENTRY)&_ZN5S81C44v171Ev,
  (VTBL_ENTRY)&_ZN5S81C44v172Ev,
  (VTBL_ENTRY)&_ZN5S81C44v173Ev,
  (VTBL_ENTRY)&_ZN5S81C44v174Ev,
  (VTBL_ENTRY)&_ZN5S81C44v175Ev,
  (VTBL_ENTRY)&_ZN5S81C44v176Ev,
  (VTBL_ENTRY)&_ZN5S81C44v177Ev,
  (VTBL_ENTRY)&_ZN5S81C44v178Ev,
  (VTBL_ENTRY)&_ZN5S81C44v179Ev,
  (VTBL_ENTRY)&_ZN5S81C44v180Ev,
  (VTBL_ENTRY)&_ZN5S81C44v181Ev,
  (VTBL_ENTRY)&_ZN5S81C44v182Ev,
  (VTBL_ENTRY)&_ZN5S81C44v183Ev,
  (VTBL_ENTRY)&_ZN5S81C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S81C4[];
extern  VTBL_ENTRY _ZTV5S81C4[];
Class_Descriptor cd_S81C4 = {  "S81C4", // class name
  bases_S81C4, 3,
  &(vtc_S81C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S81C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S81C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C3  : S81C4 {
  unsigned int s81c3f0:1;
  unsigned int s81c3f1:1;
  unsigned int s81c3f2:1;
  unsigned int s81c3f3:1;
  unsigned int s81c3f4:1;
  unsigned int s81c3f5:1;
  void *s81c3f6[8];
  ::S80C21_nt s81c3f7;
  ::S80C21_nt s81c3f8;
  ::S80C21_nt s81c3f9;
  virtual  ~S81C3(); // _ZN5S81C3D1Ev
  virtual void  v185(); // _ZN5S81C34v185Ev
  virtual void  v186(); // _ZN5S81C34v186Ev
  virtual void  v187(); // _ZN5S81C34v187Ev
  virtual void  v188(); // _ZN5S81C34v188Ev
  virtual void  v189(); // _ZN5S81C34v189Ev
  virtual void  v190(); // _ZN5S81C34v190Ev
  virtual void  v191(); // _ZN5S81C34v191Ev
  virtual void  v192(); // _ZN5S81C34v192Ev
  virtual void  v193(); // _ZN5S81C34v193Ev
  virtual void  v194(); // _ZN5S81C34v194Ev
  virtual void  v195(); // _ZN5S81C34v195Ev
  virtual void  v196(); // _ZN5S81C34v196Ev
  virtual void  v197(); // _ZN5S81C34v197Ev
  virtual void  v198(); // _ZN5S81C34v198Ev
  virtual void  v199(); // _ZN5S81C34v199Ev
  virtual void  v200(); // _ZN5S81C34v200Ev
  virtual void  v201(); // _ZN5S81C34v201Ev
  virtual void  v202(); // _ZN5S81C34v202Ev
  virtual void  v203(); // _ZN5S81C34v203Ev
  virtual void  v204(); // _ZN5S81C34v204Ev
  virtual void  v205(); // _ZN5S81C34v205Ev
  virtual void  v206(); // _ZN5S81C34v206Ev
  virtual void  v207(); // _ZN5S81C34v207Ev
  S81C3(); // tgen
};
//SIG(-1 S81C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S81C3 ::~S81C3(){ note_dtor("S81C3", this);}
void  S81C3 ::v185(){vfunc_called(this, "_ZN5S81C34v185Ev");}
void  S81C3 ::v186(){vfunc_called(this, "_ZN5S81C34v186Ev");}
void  S81C3 ::v187(){vfunc_called(this, "_ZN5S81C34v187Ev");}
void  S81C3 ::v188(){vfunc_called(this, "_ZN5S81C34v188Ev");}
void  S81C3 ::v189(){vfunc_called(this, "_ZN5S81C34v189Ev");}
void  S81C3 ::v190(){vfunc_called(this, "_ZN5S81C34v190Ev");}
void  S81C3 ::v191(){vfunc_called(this, "_ZN5S81C34v191Ev");}
void  S81C3 ::v192(){vfunc_called(this, "_ZN5S81C34v192Ev");}
void  S81C3 ::v193(){vfunc_called(this, "_ZN5S81C34v193Ev");}
void  S81C3 ::v194(){vfunc_called(this, "_ZN5S81C34v194Ev");}
void  S81C3 ::v195(){vfunc_called(this, "_ZN5S81C34v195Ev");}
void  S81C3 ::v196(){vfunc_called(this, "_ZN5S81C34v196Ev");}
void  S81C3 ::v197(){vfunc_called(this, "_ZN5S81C34v197Ev");}
void  S81C3 ::v198(){vfunc_called(this, "_ZN5S81C34v198Ev");}
void  S81C3 ::v199(){vfunc_called(this, "_ZN5S81C34v199Ev");}
void  S81C3 ::v200(){vfunc_called(this, "_ZN5S81C34v200Ev");}
void  S81C3 ::v201(){vfunc_called(this, "_ZN5S81C34v201Ev");}
void  S81C3 ::v202(){vfunc_called(this, "_ZN5S81C34v202Ev");}
void  S81C3 ::v203(){vfunc_called(this, "_ZN5S81C34v203Ev");}
void  S81C3 ::v204(){vfunc_called(this, "_ZN5S81C34v204Ev");}
void  S81C3 ::v205(){vfunc_called(this, "_ZN5S81C34v205Ev");}
void  S81C3 ::v206(){vfunc_called(this, "_ZN5S81C34v206Ev");}
void  S81C3 ::v207(){vfunc_called(this, "_ZN5S81C34v207Ev");}
S81C3 ::S81C3(){ note_ctor("S81C3", this);} // tgen

static void Test_S81C3()
{
  extern Class_Descriptor cd_S81C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S81C3, buf);
    S81C3 *dp, &lv = *(dp=new (buf) S81C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S81C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C3)");
    check_base_class_offset(lv, (S81C7*)(S81C6*)(S81C5*)(S81C4*), 0, "S81C3");
    check_base_class_offset(lv, (S81C6*)(S81C5*)(S81C4*), 0, "S81C3");
    check_base_class_offset(lv, (S81C5*)(S81C4*), 0, "S81C3");
    check_base_class_offset(lv, (S81C4*), 0, "S81C3");
    set_bf_and_test(lv, s81c3f0, ABISELECT(744,544), 0, 1, 1, "S81C3");
    set_bf_and_test(lv, s81c3f1, ABISELECT(744,544), 1, 1, 1, "S81C3");
    set_bf_and_test(lv, s81c3f2, ABISELECT(744,544), 2, 1, 1, "S81C3");
    set_bf_and_test(lv, s81c3f3, ABISELECT(744,544), 3, 1, 1, "S81C3");
    set_bf_and_test(lv, s81c3f4, ABISELECT(744,544), 4, 1, 1, "S81C3");
    set_bf_and_test(lv, s81c3f5, ABISELECT(744,544), 5, 1, 1, "S81C3");
    check_field_offset(lv, s81c3f6, ABISELECT(752,548), "S81C3.s81c3f6");
    check_field_offset(lv, s81c3f7, ABISELECT(816,580), "S81C3.s81c3f7");
    check_field_offset(lv, s81c3f8, ABISELECT(832,592), "S81C3.s81c3f8");
    check_field_offset(lv, s81c3f9, ABISELECT(848,604), "S81C3.s81c3f9");
    test_class_info(&lv, &cd_S81C3);
    dp->~S81C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C3(Test_S81C3, "S81C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S81C3C1Ev();
extern void _ZN5S81C3D1Ev();
Name_Map name_map_S81C3[] = {
  NSPAIR(_ZN5S81C3C1Ev),
  NSPAIR(_ZN5S81C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S81C7;
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
extern Class_Descriptor cd_S81C6;
extern VTBL_ENTRY _ZTI5S81C6[];
extern  VTBL_ENTRY _ZTV5S81C6[];
extern Class_Descriptor cd_S81C5;
extern VTBL_ENTRY _ZTI5S81C5[];
extern  VTBL_ENTRY _ZTV5S81C5[];
extern Class_Descriptor cd_S81C4;
extern VTBL_ENTRY _ZTI5S81C4[];
extern  VTBL_ENTRY _ZTV5S81C4[];
static Base_Class bases_S81C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S81C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S81C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S81C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S81C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S81C3[];
extern void _ZN5S81C3D1Ev();
extern void _ZN5S81C3D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
extern void _ZN5S81C63v68Ev();
extern void _ZN5S81C63v69Ev();
extern void _ZN5S81C53v70Ev();
extern void _ZN5S81C53v71Ev();
extern void _ZN5S81C53v72Ev();
extern void _ZN5S81C53v73Ev();
extern void _ZN5S81C53v74Ev();
extern void _ZN5S81C53v75Ev();
extern void _ZN5S81C53v76Ev();
extern void _ZN5S81C53v77Ev();
extern void _ZN5S81C53v78Ev();
extern void _ZN5S81C53v79Ev();
extern void _ZN5S81C53v80Ev();
extern void _ZN5S81C53v81Ev();
extern void _ZN5S81C53v82Ev();
extern void _ZN5S81C53v83Ev();
extern void _ZN5S81C53v84Ev();
extern void _ZN5S81C53v85Ev();
extern void _ZN5S81C53v86Ev();
extern void _ZN5S81C53v87Ev();
extern void _ZN5S81C53v88Ev();
extern void _ZN5S81C53v89Ev();
extern void _ZN5S81C53v90Ev();
extern void _ZN5S81C53v91Ev();
extern void _ZN5S81C53v92Ev();
extern void _ZN5S81C53v93Ev();
extern void _ZN5S81C53v94Ev();
extern void _ZN5S81C53v95Ev();
extern void _ZN5S81C53v96Ev();
extern void _ZN5S81C53v97Ev();
extern void _ZN5S81C53v98Ev();
extern void _ZN5S81C53v99Ev();
extern void _ZN5S81C54v100Ev();
extern void _ZN5S81C54v101Ev();
extern void _ZN5S81C54v102Ev();
extern void _ZN5S81C54v103Ev();
extern void _ZN5S81C54v104Ev();
extern void _ZN5S81C54v105Ev();
extern void _ZN5S81C54v106Ev();
extern void _ZN5S81C54v107Ev();
extern void _ZN5S81C54v108Ev();
extern void _ZN5S81C54v109Ev();
extern void _ZN5S81C54v110Ev();
extern void _ZN5S81C54v111Ev();
extern void _ZN5S81C54v112Ev();
extern void _ZN5S81C54v113Ev();
extern void _ZN5S81C54v114Ev();
extern void _ZN5S81C54v115Ev();
extern void _ZN5S81C54v116Ev();
extern void _ZN5S81C54v117Ev();
extern void _ZN5S81C54v118Ev();
extern void _ZN5S81C54v119Ev();
extern void _ZN5S81C54v120Ev();
extern void _ZN5S81C54v121Ev();
extern void _ZN5S81C54v122Ev();
extern void _ZN5S81C54v123Ev();
extern void _ZN5S81C54v124Ev();
extern void _ZN5S81C54v125Ev();
extern void _ZN5S81C54v126Ev();
extern void _ZN5S81C54v127Ev();
extern void _ZN5S81C54v128Ev();
extern void _ZN5S81C54v129Ev();
extern void _ZN5S81C54v130Ev();
extern void _ZN5S81C54v131Ev();
extern void _ZN5S81C54v132Ev();
extern void _ZN5S81C54v133Ev();
extern void _ZN5S81C54v134Ev();
extern void _ZN5S81C54v135Ev();
extern void _ZN5S81C54v136Ev();
extern void _ZN5S81C54v137Ev();
extern void _ZN5S81C54v138Ev();
extern void _ZN5S81C54v139Ev();
extern void _ZN5S81C54v140Ev();
extern void _ZN5S81C54v141Ev();
extern void _ZN5S81C54v142Ev();
extern void _ZN5S81C54v143Ev();
extern void _ZN5S81C54v144Ev();
extern void _ZN5S81C54v145Ev();
extern void _ZN5S81C44v146Ev();
extern void _ZN5S81C44v147Ev();
extern void _ZN5S81C44v148Ev();
extern void _ZN5S81C44v149Ev();
extern void _ZN5S81C44v150Ev();
extern void _ZN5S81C44v151Ev();
extern void _ZN5S81C44v152Ev();
extern void _ZN5S81C44v153Ev();
extern void _ZN5S81C44v154Ev();
extern void _ZN5S81C44v155Ev();
extern void _ZN5S81C44v156Ev();
extern void _ZN5S81C44v157Ev();
extern void _ZN5S81C44v158Ev();
extern void _ZN5S81C44v159Ev();
extern void _ZN5S81C44v160Ev();
extern void _ZN5S81C44v161Ev();
extern void _ZN5S81C44v162Ev();
extern void _ZN5S81C44v163Ev();
extern void _ZN5S81C44v164Ev();
extern void _ZN5S81C44v165Ev();
extern void _ZN5S81C44v166Ev();
extern void _ZN5S81C44v167Ev();
extern void _ZN5S81C44v168Ev();
extern void _ZN5S81C44v169Ev();
extern void _ZN5S81C44v170Ev();
extern void _ZN5S81C44v171Ev();
extern void _ZN5S81C44v172Ev();
extern void _ZN5S81C44v173Ev();
extern void _ZN5S81C44v174Ev();
extern void _ZN5S81C44v175Ev();
extern void _ZN5S81C44v176Ev();
extern void _ZN5S81C44v177Ev();
extern void _ZN5S81C44v178Ev();
extern void _ZN5S81C44v179Ev();
extern void _ZN5S81C44v180Ev();
extern void _ZN5S81C44v181Ev();
extern void _ZN5S81C44v182Ev();
extern void _ZN5S81C44v183Ev();
extern void _ZN5S81C44v184Ev();
extern void _ZN5S81C34v185Ev();
extern void _ZN5S81C34v186Ev();
extern void _ZN5S81C34v187Ev();
extern void _ZN5S81C34v188Ev();
extern void _ZN5S81C34v189Ev();
extern void _ZN5S81C34v190Ev();
extern void _ZN5S81C34v191Ev();
extern void _ZN5S81C34v192Ev();
extern void _ZN5S81C34v193Ev();
extern void _ZN5S81C34v194Ev();
extern void _ZN5S81C34v195Ev();
extern void _ZN5S81C34v196Ev();
extern void _ZN5S81C34v197Ev();
extern void _ZN5S81C34v198Ev();
extern void _ZN5S81C34v199Ev();
extern void _ZN5S81C34v200Ev();
extern void _ZN5S81C34v201Ev();
extern void _ZN5S81C34v202Ev();
extern void _ZN5S81C34v203Ev();
extern void _ZN5S81C34v204Ev();
extern void _ZN5S81C34v205Ev();
extern void _ZN5S81C34v206Ev();
extern void _ZN5S81C34v207Ev();
static  VTBL_ENTRY vtc_S81C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C3[0]),
  (VTBL_ENTRY)&_ZN5S81C3D1Ev,
  (VTBL_ENTRY)&_ZN5S81C3D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
  (VTBL_ENTRY)&_ZN5S81C63v68Ev,
  (VTBL_ENTRY)&_ZN5S81C63v69Ev,
  (VTBL_ENTRY)&_ZN5S81C53v70Ev,
  (VTBL_ENTRY)&_ZN5S81C53v71Ev,
  (VTBL_ENTRY)&_ZN5S81C53v72Ev,
  (VTBL_ENTRY)&_ZN5S81C53v73Ev,
  (VTBL_ENTRY)&_ZN5S81C53v74Ev,
  (VTBL_ENTRY)&_ZN5S81C53v75Ev,
  (VTBL_ENTRY)&_ZN5S81C53v76Ev,
  (VTBL_ENTRY)&_ZN5S81C53v77Ev,
  (VTBL_ENTRY)&_ZN5S81C53v78Ev,
  (VTBL_ENTRY)&_ZN5S81C53v79Ev,
  (VTBL_ENTRY)&_ZN5S81C53v80Ev,
  (VTBL_ENTRY)&_ZN5S81C53v81Ev,
  (VTBL_ENTRY)&_ZN5S81C53v82Ev,
  (VTBL_ENTRY)&_ZN5S81C53v83Ev,
  (VTBL_ENTRY)&_ZN5S81C53v84Ev,
  (VTBL_ENTRY)&_ZN5S81C53v85Ev,
  (VTBL_ENTRY)&_ZN5S81C53v86Ev,
  (VTBL_ENTRY)&_ZN5S81C53v87Ev,
  (VTBL_ENTRY)&_ZN5S81C53v88Ev,
  (VTBL_ENTRY)&_ZN5S81C53v89Ev,
  (VTBL_ENTRY)&_ZN5S81C53v90Ev,
  (VTBL_ENTRY)&_ZN5S81C53v91Ev,
  (VTBL_ENTRY)&_ZN5S81C53v92Ev,
  (VTBL_ENTRY)&_ZN5S81C53v93Ev,
  (VTBL_ENTRY)&_ZN5S81C53v94Ev,
  (VTBL_ENTRY)&_ZN5S81C53v95Ev,
  (VTBL_ENTRY)&_ZN5S81C53v96Ev,
  (VTBL_ENTRY)&_ZN5S81C53v97Ev,
  (VTBL_ENTRY)&_ZN5S81C53v98Ev,
  (VTBL_ENTRY)&_ZN5S81C53v99Ev,
  (VTBL_ENTRY)&_ZN5S81C54v100Ev,
  (VTBL_ENTRY)&_ZN5S81C54v101Ev,
  (VTBL_ENTRY)&_ZN5S81C54v102Ev,
  (VTBL_ENTRY)&_ZN5S81C54v103Ev,
  (VTBL_ENTRY)&_ZN5S81C54v104Ev,
  (VTBL_ENTRY)&_ZN5S81C54v105Ev,
  (VTBL_ENTRY)&_ZN5S81C54v106Ev,
  (VTBL_ENTRY)&_ZN5S81C54v107Ev,
  (VTBL_ENTRY)&_ZN5S81C54v108Ev,
  (VTBL_ENTRY)&_ZN5S81C54v109Ev,
  (VTBL_ENTRY)&_ZN5S81C54v110Ev,
  (VTBL_ENTRY)&_ZN5S81C54v111Ev,
  (VTBL_ENTRY)&_ZN5S81C54v112Ev,
  (VTBL_ENTRY)&_ZN5S81C54v113Ev,
  (VTBL_ENTRY)&_ZN5S81C54v114Ev,
  (VTBL_ENTRY)&_ZN5S81C54v115Ev,
  (VTBL_ENTRY)&_ZN5S81C54v116Ev,
  (VTBL_ENTRY)&_ZN5S81C54v117Ev,
  (VTBL_ENTRY)&_ZN5S81C54v118Ev,
  (VTBL_ENTRY)&_ZN5S81C54v119Ev,
  (VTBL_ENTRY)&_ZN5S81C54v120Ev,
  (VTBL_ENTRY)&_ZN5S81C54v121Ev,
  (VTBL_ENTRY)&_ZN5S81C54v122Ev,
  (VTBL_ENTRY)&_ZN5S81C54v123Ev,
  (VTBL_ENTRY)&_ZN5S81C54v124Ev,
  (VTBL_ENTRY)&_ZN5S81C54v125Ev,
  (VTBL_ENTRY)&_ZN5S81C54v126Ev,
  (VTBL_ENTRY)&_ZN5S81C54v127Ev,
  (VTBL_ENTRY)&_ZN5S81C54v128Ev,
  (VTBL_ENTRY)&_ZN5S81C54v129Ev,
  (VTBL_ENTRY)&_ZN5S81C54v130Ev,
  (VTBL_ENTRY)&_ZN5S81C54v131Ev,
  (VTBL_ENTRY)&_ZN5S81C54v132Ev,
  (VTBL_ENTRY)&_ZN5S81C54v133Ev,
  (VTBL_ENTRY)&_ZN5S81C54v134Ev,
  (VTBL_ENTRY)&_ZN5S81C54v135Ev,
  (VTBL_ENTRY)&_ZN5S81C54v136Ev,
  (VTBL_ENTRY)&_ZN5S81C54v137Ev,
  (VTBL_ENTRY)&_ZN5S81C54v138Ev,
  (VTBL_ENTRY)&_ZN5S81C54v139Ev,
  (VTBL_ENTRY)&_ZN5S81C54v140Ev,
  (VTBL_ENTRY)&_ZN5S81C54v141Ev,
  (VTBL_ENTRY)&_ZN5S81C54v142Ev,
  (VTBL_ENTRY)&_ZN5S81C54v143Ev,
  (VTBL_ENTRY)&_ZN5S81C54v144Ev,
  (VTBL_ENTRY)&_ZN5S81C54v145Ev,
  (VTBL_ENTRY)&_ZN5S81C44v146Ev,
  (VTBL_ENTRY)&_ZN5S81C44v147Ev,
  (VTBL_ENTRY)&_ZN5S81C44v148Ev,
  (VTBL_ENTRY)&_ZN5S81C44v149Ev,
  (VTBL_ENTRY)&_ZN5S81C44v150Ev,
  (VTBL_ENTRY)&_ZN5S81C44v151Ev,
  (VTBL_ENTRY)&_ZN5S81C44v152Ev,
  (VTBL_ENTRY)&_ZN5S81C44v153Ev,
  (VTBL_ENTRY)&_ZN5S81C44v154Ev,
  (VTBL_ENTRY)&_ZN5S81C44v155Ev,
  (VTBL_ENTRY)&_ZN5S81C44v156Ev,
  (VTBL_ENTRY)&_ZN5S81C44v157Ev,
  (VTBL_ENTRY)&_ZN5S81C44v158Ev,
  (VTBL_ENTRY)&_ZN5S81C44v159Ev,
  (VTBL_ENTRY)&_ZN5S81C44v160Ev,
  (VTBL_ENTRY)&_ZN5S81C44v161Ev,
  (VTBL_ENTRY)&_ZN5S81C44v162Ev,
  (VTBL_ENTRY)&_ZN5S81C44v163Ev,
  (VTBL_ENTRY)&_ZN5S81C44v164Ev,
  (VTBL_ENTRY)&_ZN5S81C44v165Ev,
  (VTBL_ENTRY)&_ZN5S81C44v166Ev,
  (VTBL_ENTRY)&_ZN5S81C44v167Ev,
  (VTBL_ENTRY)&_ZN5S81C44v168Ev,
  (VTBL_ENTRY)&_ZN5S81C44v169Ev,
  (VTBL_ENTRY)&_ZN5S81C44v170Ev,
  (VTBL_ENTRY)&_ZN5S81C44v171Ev,
  (VTBL_ENTRY)&_ZN5S81C44v172Ev,
  (VTBL_ENTRY)&_ZN5S81C44v173Ev,
  (VTBL_ENTRY)&_ZN5S81C44v174Ev,
  (VTBL_ENTRY)&_ZN5S81C44v175Ev,
  (VTBL_ENTRY)&_ZN5S81C44v176Ev,
  (VTBL_ENTRY)&_ZN5S81C44v177Ev,
  (VTBL_ENTRY)&_ZN5S81C44v178Ev,
  (VTBL_ENTRY)&_ZN5S81C44v179Ev,
  (VTBL_ENTRY)&_ZN5S81C44v180Ev,
  (VTBL_ENTRY)&_ZN5S81C44v181Ev,
  (VTBL_ENTRY)&_ZN5S81C44v182Ev,
  (VTBL_ENTRY)&_ZN5S81C44v183Ev,
  (VTBL_ENTRY)&_ZN5S81C44v184Ev,
  (VTBL_ENTRY)&_ZN5S81C34v185Ev,
  (VTBL_ENTRY)&_ZN5S81C34v186Ev,
  (VTBL_ENTRY)&_ZN5S81C34v187Ev,
  (VTBL_ENTRY)&_ZN5S81C34v188Ev,
  (VTBL_ENTRY)&_ZN5S81C34v189Ev,
  (VTBL_ENTRY)&_ZN5S81C34v190Ev,
  (VTBL_ENTRY)&_ZN5S81C34v191Ev,
  (VTBL_ENTRY)&_ZN5S81C34v192Ev,
  (VTBL_ENTRY)&_ZN5S81C34v193Ev,
  (VTBL_ENTRY)&_ZN5S81C34v194Ev,
  (VTBL_ENTRY)&_ZN5S81C34v195Ev,
  (VTBL_ENTRY)&_ZN5S81C34v196Ev,
  (VTBL_ENTRY)&_ZN5S81C34v197Ev,
  (VTBL_ENTRY)&_ZN5S81C34v198Ev,
  (VTBL_ENTRY)&_ZN5S81C34v199Ev,
  (VTBL_ENTRY)&_ZN5S81C34v200Ev,
  (VTBL_ENTRY)&_ZN5S81C34v201Ev,
  (VTBL_ENTRY)&_ZN5S81C34v202Ev,
  (VTBL_ENTRY)&_ZN5S81C34v203Ev,
  (VTBL_ENTRY)&_ZN5S81C34v204Ev,
  (VTBL_ENTRY)&_ZN5S81C34v205Ev,
  (VTBL_ENTRY)&_ZN5S81C34v206Ev,
  (VTBL_ENTRY)&_ZN5S81C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S81C3[];
extern  VTBL_ENTRY _ZTV5S81C3[];
Class_Descriptor cd_S81C3 = {  "S81C3", // class name
  bases_S81C3, 4,
  &(vtc_S81C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S81C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S81C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C2  : S81C3 {
  unsigned int s81c2f0:1;
  void *s81c2f1[5];
  ::S80C10_nt s81c2f2;
  ::S37C34_nt s81c2f3;
  unsigned int s81c2f4:1;
  unsigned int s81c2f5:1;
  int s81c2f6[8];
  ::S80C21_nt s81c2f7;
  ::S80C21_nt s81c2f8;
  ::S80C21_nt s81c2f9;
  virtual  ~S81C2(); // _ZN5S81C2D1Ev
  virtual void  v208(); // _ZN5S81C24v208Ev
  virtual void  v209(); // _ZN5S81C24v209Ev
  virtual void  v210(); // _ZN5S81C24v210Ev
  virtual void  v211(); // _ZN5S81C24v211Ev
  virtual void  v212(); // _ZN5S81C24v212Ev
  virtual void  v213(); // _ZN5S81C24v213Ev
  S81C2(); // tgen
};
//SIG(-1 S81C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v71 v72} vd v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 v4 v5 v6 Fi:1 Fp[5] FC27{ BC28{ BC11}} FC29{ BC30{ BC11}} Fi:1 Fi:1 Fi[8] FC20 FC20 FC20}


 S81C2 ::~S81C2(){ note_dtor("S81C2", this);}
void  S81C2 ::v208(){vfunc_called(this, "_ZN5S81C24v208Ev");}
void  S81C2 ::v209(){vfunc_called(this, "_ZN5S81C24v209Ev");}
void  S81C2 ::v210(){vfunc_called(this, "_ZN5S81C24v210Ev");}
void  S81C2 ::v211(){vfunc_called(this, "_ZN5S81C24v211Ev");}
void  S81C2 ::v212(){vfunc_called(this, "_ZN5S81C24v212Ev");}
void  S81C2 ::v213(){vfunc_called(this, "_ZN5S81C24v213Ev");}
S81C2 ::S81C2(){ note_ctor("S81C2", this);} // tgen

static void Test_S81C2()
{
  extern Class_Descriptor cd_S81C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(130,185)];
    init_test(&cd_S81C2, buf);
    S81C2 *dp, &lv = *(dp=new (buf) S81C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1032,736), "sizeof(S81C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C2)");
    check_base_class_offset(lv, (S81C7*)(S81C6*)(S81C5*)(S81C4*)(S81C3*), 0, "S81C2");
    check_base_class_offset(lv, (S81C6*)(S81C5*)(S81C4*)(S81C3*), 0, "S81C2");
    check_base_class_offset(lv, (S81C5*)(S81C4*)(S81C3*), 0, "S81C2");
    check_base_class_offset(lv, (S81C4*)(S81C3*), 0, "S81C2");
    check_base_class_offset(lv, (S81C3*), 0, "S81C2");
    set_bf_and_test(lv, s81c2f0, ABISELECT(864,616), 0, 1, 1, "S81C2");
    check_field_offset(lv, s81c2f1, ABISELECT(872,620), "S81C2.s81c2f1");
    check_field_offset(lv, s81c2f2, ABISELECT(912,640), "S81C2.s81c2f2");
    check_field_offset(lv, s81c2f3, ABISELECT(928,652), "S81C2.s81c2f3");
    set_bf_and_test(lv, s81c2f4, ABISELECT(944,664), 0, 1, 1, "S81C2");
    set_bf_and_test(lv, s81c2f5, ABISELECT(944,664), 1, 1, 1, "S81C2");
    check_field_offset(lv, s81c2f6, ABISELECT(948,668), "S81C2.s81c2f6");
    check_field_offset(lv, s81c2f7, ABISELECT(984,700), "S81C2.s81c2f7");
    check_field_offset(lv, s81c2f8, ABISELECT(1000,712), "S81C2.s81c2f8");
    check_field_offset(lv, s81c2f9, ABISELECT(1016,724), "S81C2.s81c2f9");
    test_class_info(&lv, &cd_S81C2);
    dp->~S81C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C2(Test_S81C2, "S81C2", ABISELECT(1032,736));

#else // __cplusplus

extern void _ZN5S81C2C1Ev();
extern void _ZN5S81C2D1Ev();
Name_Map name_map_S81C2[] = {
  NSPAIR(_ZN5S81C2C1Ev),
  NSPAIR(_ZN5S81C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S81C7;
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
extern Class_Descriptor cd_S81C6;
extern VTBL_ENTRY _ZTI5S81C6[];
extern  VTBL_ENTRY _ZTV5S81C6[];
extern Class_Descriptor cd_S81C5;
extern VTBL_ENTRY _ZTI5S81C5[];
extern  VTBL_ENTRY _ZTV5S81C5[];
extern Class_Descriptor cd_S81C4;
extern VTBL_ENTRY _ZTI5S81C4[];
extern  VTBL_ENTRY _ZTV5S81C4[];
extern Class_Descriptor cd_S81C3;
extern VTBL_ENTRY _ZTI5S81C3[];
extern  VTBL_ENTRY _ZTV5S81C3[];
static Base_Class bases_S81C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S81C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S81C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S81C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S81C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S81C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S81C2[];
extern void _ZN5S81C2D1Ev();
extern void _ZN5S81C2D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
extern void _ZN5S81C63v68Ev();
extern void _ZN5S81C63v69Ev();
extern void _ZN5S81C53v70Ev();
extern void _ZN5S81C53v71Ev();
extern void _ZN5S81C53v72Ev();
extern void _ZN5S81C53v73Ev();
extern void _ZN5S81C53v74Ev();
extern void _ZN5S81C53v75Ev();
extern void _ZN5S81C53v76Ev();
extern void _ZN5S81C53v77Ev();
extern void _ZN5S81C53v78Ev();
extern void _ZN5S81C53v79Ev();
extern void _ZN5S81C53v80Ev();
extern void _ZN5S81C53v81Ev();
extern void _ZN5S81C53v82Ev();
extern void _ZN5S81C53v83Ev();
extern void _ZN5S81C53v84Ev();
extern void _ZN5S81C53v85Ev();
extern void _ZN5S81C53v86Ev();
extern void _ZN5S81C53v87Ev();
extern void _ZN5S81C53v88Ev();
extern void _ZN5S81C53v89Ev();
extern void _ZN5S81C53v90Ev();
extern void _ZN5S81C53v91Ev();
extern void _ZN5S81C53v92Ev();
extern void _ZN5S81C53v93Ev();
extern void _ZN5S81C53v94Ev();
extern void _ZN5S81C53v95Ev();
extern void _ZN5S81C53v96Ev();
extern void _ZN5S81C53v97Ev();
extern void _ZN5S81C53v98Ev();
extern void _ZN5S81C53v99Ev();
extern void _ZN5S81C54v100Ev();
extern void _ZN5S81C54v101Ev();
extern void _ZN5S81C54v102Ev();
extern void _ZN5S81C54v103Ev();
extern void _ZN5S81C54v104Ev();
extern void _ZN5S81C54v105Ev();
extern void _ZN5S81C54v106Ev();
extern void _ZN5S81C54v107Ev();
extern void _ZN5S81C54v108Ev();
extern void _ZN5S81C54v109Ev();
extern void _ZN5S81C54v110Ev();
extern void _ZN5S81C54v111Ev();
extern void _ZN5S81C54v112Ev();
extern void _ZN5S81C54v113Ev();
extern void _ZN5S81C54v114Ev();
extern void _ZN5S81C54v115Ev();
extern void _ZN5S81C54v116Ev();
extern void _ZN5S81C54v117Ev();
extern void _ZN5S81C54v118Ev();
extern void _ZN5S81C54v119Ev();
extern void _ZN5S81C54v120Ev();
extern void _ZN5S81C54v121Ev();
extern void _ZN5S81C54v122Ev();
extern void _ZN5S81C54v123Ev();
extern void _ZN5S81C54v124Ev();
extern void _ZN5S81C54v125Ev();
extern void _ZN5S81C54v126Ev();
extern void _ZN5S81C54v127Ev();
extern void _ZN5S81C54v128Ev();
extern void _ZN5S81C54v129Ev();
extern void _ZN5S81C54v130Ev();
extern void _ZN5S81C54v131Ev();
extern void _ZN5S81C54v132Ev();
extern void _ZN5S81C54v133Ev();
extern void _ZN5S81C54v134Ev();
extern void _ZN5S81C54v135Ev();
extern void _ZN5S81C54v136Ev();
extern void _ZN5S81C54v137Ev();
extern void _ZN5S81C54v138Ev();
extern void _ZN5S81C54v139Ev();
extern void _ZN5S81C54v140Ev();
extern void _ZN5S81C54v141Ev();
extern void _ZN5S81C54v142Ev();
extern void _ZN5S81C54v143Ev();
extern void _ZN5S81C54v144Ev();
extern void _ZN5S81C54v145Ev();
extern void _ZN5S81C44v146Ev();
extern void _ZN5S81C44v147Ev();
extern void _ZN5S81C44v148Ev();
extern void _ZN5S81C44v149Ev();
extern void _ZN5S81C44v150Ev();
extern void _ZN5S81C44v151Ev();
extern void _ZN5S81C44v152Ev();
extern void _ZN5S81C44v153Ev();
extern void _ZN5S81C44v154Ev();
extern void _ZN5S81C44v155Ev();
extern void _ZN5S81C44v156Ev();
extern void _ZN5S81C44v157Ev();
extern void _ZN5S81C44v158Ev();
extern void _ZN5S81C44v159Ev();
extern void _ZN5S81C44v160Ev();
extern void _ZN5S81C44v161Ev();
extern void _ZN5S81C44v162Ev();
extern void _ZN5S81C44v163Ev();
extern void _ZN5S81C44v164Ev();
extern void _ZN5S81C44v165Ev();
extern void _ZN5S81C44v166Ev();
extern void _ZN5S81C44v167Ev();
extern void _ZN5S81C44v168Ev();
extern void _ZN5S81C44v169Ev();
extern void _ZN5S81C44v170Ev();
extern void _ZN5S81C44v171Ev();
extern void _ZN5S81C44v172Ev();
extern void _ZN5S81C44v173Ev();
extern void _ZN5S81C44v174Ev();
extern void _ZN5S81C44v175Ev();
extern void _ZN5S81C44v176Ev();
extern void _ZN5S81C44v177Ev();
extern void _ZN5S81C44v178Ev();
extern void _ZN5S81C44v179Ev();
extern void _ZN5S81C44v180Ev();
extern void _ZN5S81C44v181Ev();
extern void _ZN5S81C44v182Ev();
extern void _ZN5S81C44v183Ev();
extern void _ZN5S81C44v184Ev();
extern void _ZN5S81C34v185Ev();
extern void _ZN5S81C34v186Ev();
extern void _ZN5S81C34v187Ev();
extern void _ZN5S81C34v188Ev();
extern void _ZN5S81C34v189Ev();
extern void _ZN5S81C34v190Ev();
extern void _ZN5S81C34v191Ev();
extern void _ZN5S81C34v192Ev();
extern void _ZN5S81C34v193Ev();
extern void _ZN5S81C34v194Ev();
extern void _ZN5S81C34v195Ev();
extern void _ZN5S81C34v196Ev();
extern void _ZN5S81C34v197Ev();
extern void _ZN5S81C34v198Ev();
extern void _ZN5S81C34v199Ev();
extern void _ZN5S81C34v200Ev();
extern void _ZN5S81C34v201Ev();
extern void _ZN5S81C34v202Ev();
extern void _ZN5S81C34v203Ev();
extern void _ZN5S81C34v204Ev();
extern void _ZN5S81C34v205Ev();
extern void _ZN5S81C34v206Ev();
extern void _ZN5S81C34v207Ev();
extern void _ZN5S81C24v208Ev();
extern void _ZN5S81C24v209Ev();
extern void _ZN5S81C24v210Ev();
extern void _ZN5S81C24v211Ev();
extern void _ZN5S81C24v212Ev();
extern void _ZN5S81C24v213Ev();
static  VTBL_ENTRY vtc_S81C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C2[0]),
  (VTBL_ENTRY)&_ZN5S81C2D1Ev,
  (VTBL_ENTRY)&_ZN5S81C2D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
  (VTBL_ENTRY)&_ZN5S81C63v68Ev,
  (VTBL_ENTRY)&_ZN5S81C63v69Ev,
  (VTBL_ENTRY)&_ZN5S81C53v70Ev,
  (VTBL_ENTRY)&_ZN5S81C53v71Ev,
  (VTBL_ENTRY)&_ZN5S81C53v72Ev,
  (VTBL_ENTRY)&_ZN5S81C53v73Ev,
  (VTBL_ENTRY)&_ZN5S81C53v74Ev,
  (VTBL_ENTRY)&_ZN5S81C53v75Ev,
  (VTBL_ENTRY)&_ZN5S81C53v76Ev,
  (VTBL_ENTRY)&_ZN5S81C53v77Ev,
  (VTBL_ENTRY)&_ZN5S81C53v78Ev,
  (VTBL_ENTRY)&_ZN5S81C53v79Ev,
  (VTBL_ENTRY)&_ZN5S81C53v80Ev,
  (VTBL_ENTRY)&_ZN5S81C53v81Ev,
  (VTBL_ENTRY)&_ZN5S81C53v82Ev,
  (VTBL_ENTRY)&_ZN5S81C53v83Ev,
  (VTBL_ENTRY)&_ZN5S81C53v84Ev,
  (VTBL_ENTRY)&_ZN5S81C53v85Ev,
  (VTBL_ENTRY)&_ZN5S81C53v86Ev,
  (VTBL_ENTRY)&_ZN5S81C53v87Ev,
  (VTBL_ENTRY)&_ZN5S81C53v88Ev,
  (VTBL_ENTRY)&_ZN5S81C53v89Ev,
  (VTBL_ENTRY)&_ZN5S81C53v90Ev,
  (VTBL_ENTRY)&_ZN5S81C53v91Ev,
  (VTBL_ENTRY)&_ZN5S81C53v92Ev,
  (VTBL_ENTRY)&_ZN5S81C53v93Ev,
  (VTBL_ENTRY)&_ZN5S81C53v94Ev,
  (VTBL_ENTRY)&_ZN5S81C53v95Ev,
  (VTBL_ENTRY)&_ZN5S81C53v96Ev,
  (VTBL_ENTRY)&_ZN5S81C53v97Ev,
  (VTBL_ENTRY)&_ZN5S81C53v98Ev,
  (VTBL_ENTRY)&_ZN5S81C53v99Ev,
  (VTBL_ENTRY)&_ZN5S81C54v100Ev,
  (VTBL_ENTRY)&_ZN5S81C54v101Ev,
  (VTBL_ENTRY)&_ZN5S81C54v102Ev,
  (VTBL_ENTRY)&_ZN5S81C54v103Ev,
  (VTBL_ENTRY)&_ZN5S81C54v104Ev,
  (VTBL_ENTRY)&_ZN5S81C54v105Ev,
  (VTBL_ENTRY)&_ZN5S81C54v106Ev,
  (VTBL_ENTRY)&_ZN5S81C54v107Ev,
  (VTBL_ENTRY)&_ZN5S81C54v108Ev,
  (VTBL_ENTRY)&_ZN5S81C54v109Ev,
  (VTBL_ENTRY)&_ZN5S81C54v110Ev,
  (VTBL_ENTRY)&_ZN5S81C54v111Ev,
  (VTBL_ENTRY)&_ZN5S81C54v112Ev,
  (VTBL_ENTRY)&_ZN5S81C54v113Ev,
  (VTBL_ENTRY)&_ZN5S81C54v114Ev,
  (VTBL_ENTRY)&_ZN5S81C54v115Ev,
  (VTBL_ENTRY)&_ZN5S81C54v116Ev,
  (VTBL_ENTRY)&_ZN5S81C54v117Ev,
  (VTBL_ENTRY)&_ZN5S81C54v118Ev,
  (VTBL_ENTRY)&_ZN5S81C54v119Ev,
  (VTBL_ENTRY)&_ZN5S81C54v120Ev,
  (VTBL_ENTRY)&_ZN5S81C54v121Ev,
  (VTBL_ENTRY)&_ZN5S81C54v122Ev,
  (VTBL_ENTRY)&_ZN5S81C54v123Ev,
  (VTBL_ENTRY)&_ZN5S81C54v124Ev,
  (VTBL_ENTRY)&_ZN5S81C54v125Ev,
  (VTBL_ENTRY)&_ZN5S81C54v126Ev,
  (VTBL_ENTRY)&_ZN5S81C54v127Ev,
  (VTBL_ENTRY)&_ZN5S81C54v128Ev,
  (VTBL_ENTRY)&_ZN5S81C54v129Ev,
  (VTBL_ENTRY)&_ZN5S81C54v130Ev,
  (VTBL_ENTRY)&_ZN5S81C54v131Ev,
  (VTBL_ENTRY)&_ZN5S81C54v132Ev,
  (VTBL_ENTRY)&_ZN5S81C54v133Ev,
  (VTBL_ENTRY)&_ZN5S81C54v134Ev,
  (VTBL_ENTRY)&_ZN5S81C54v135Ev,
  (VTBL_ENTRY)&_ZN5S81C54v136Ev,
  (VTBL_ENTRY)&_ZN5S81C54v137Ev,
  (VTBL_ENTRY)&_ZN5S81C54v138Ev,
  (VTBL_ENTRY)&_ZN5S81C54v139Ev,
  (VTBL_ENTRY)&_ZN5S81C54v140Ev,
  (VTBL_ENTRY)&_ZN5S81C54v141Ev,
  (VTBL_ENTRY)&_ZN5S81C54v142Ev,
  (VTBL_ENTRY)&_ZN5S81C54v143Ev,
  (VTBL_ENTRY)&_ZN5S81C54v144Ev,
  (VTBL_ENTRY)&_ZN5S81C54v145Ev,
  (VTBL_ENTRY)&_ZN5S81C44v146Ev,
  (VTBL_ENTRY)&_ZN5S81C44v147Ev,
  (VTBL_ENTRY)&_ZN5S81C44v148Ev,
  (VTBL_ENTRY)&_ZN5S81C44v149Ev,
  (VTBL_ENTRY)&_ZN5S81C44v150Ev,
  (VTBL_ENTRY)&_ZN5S81C44v151Ev,
  (VTBL_ENTRY)&_ZN5S81C44v152Ev,
  (VTBL_ENTRY)&_ZN5S81C44v153Ev,
  (VTBL_ENTRY)&_ZN5S81C44v154Ev,
  (VTBL_ENTRY)&_ZN5S81C44v155Ev,
  (VTBL_ENTRY)&_ZN5S81C44v156Ev,
  (VTBL_ENTRY)&_ZN5S81C44v157Ev,
  (VTBL_ENTRY)&_ZN5S81C44v158Ev,
  (VTBL_ENTRY)&_ZN5S81C44v159Ev,
  (VTBL_ENTRY)&_ZN5S81C44v160Ev,
  (VTBL_ENTRY)&_ZN5S81C44v161Ev,
  (VTBL_ENTRY)&_ZN5S81C44v162Ev,
  (VTBL_ENTRY)&_ZN5S81C44v163Ev,
  (VTBL_ENTRY)&_ZN5S81C44v164Ev,
  (VTBL_ENTRY)&_ZN5S81C44v165Ev,
  (VTBL_ENTRY)&_ZN5S81C44v166Ev,
  (VTBL_ENTRY)&_ZN5S81C44v167Ev,
  (VTBL_ENTRY)&_ZN5S81C44v168Ev,
  (VTBL_ENTRY)&_ZN5S81C44v169Ev,
  (VTBL_ENTRY)&_ZN5S81C44v170Ev,
  (VTBL_ENTRY)&_ZN5S81C44v171Ev,
  (VTBL_ENTRY)&_ZN5S81C44v172Ev,
  (VTBL_ENTRY)&_ZN5S81C44v173Ev,
  (VTBL_ENTRY)&_ZN5S81C44v174Ev,
  (VTBL_ENTRY)&_ZN5S81C44v175Ev,
  (VTBL_ENTRY)&_ZN5S81C44v176Ev,
  (VTBL_ENTRY)&_ZN5S81C44v177Ev,
  (VTBL_ENTRY)&_ZN5S81C44v178Ev,
  (VTBL_ENTRY)&_ZN5S81C44v179Ev,
  (VTBL_ENTRY)&_ZN5S81C44v180Ev,
  (VTBL_ENTRY)&_ZN5S81C44v181Ev,
  (VTBL_ENTRY)&_ZN5S81C44v182Ev,
  (VTBL_ENTRY)&_ZN5S81C44v183Ev,
  (VTBL_ENTRY)&_ZN5S81C44v184Ev,
  (VTBL_ENTRY)&_ZN5S81C34v185Ev,
  (VTBL_ENTRY)&_ZN5S81C34v186Ev,
  (VTBL_ENTRY)&_ZN5S81C34v187Ev,
  (VTBL_ENTRY)&_ZN5S81C34v188Ev,
  (VTBL_ENTRY)&_ZN5S81C34v189Ev,
  (VTBL_ENTRY)&_ZN5S81C34v190Ev,
  (VTBL_ENTRY)&_ZN5S81C34v191Ev,
  (VTBL_ENTRY)&_ZN5S81C34v192Ev,
  (VTBL_ENTRY)&_ZN5S81C34v193Ev,
  (VTBL_ENTRY)&_ZN5S81C34v194Ev,
  (VTBL_ENTRY)&_ZN5S81C34v195Ev,
  (VTBL_ENTRY)&_ZN5S81C34v196Ev,
  (VTBL_ENTRY)&_ZN5S81C34v197Ev,
  (VTBL_ENTRY)&_ZN5S81C34v198Ev,
  (VTBL_ENTRY)&_ZN5S81C34v199Ev,
  (VTBL_ENTRY)&_ZN5S81C34v200Ev,
  (VTBL_ENTRY)&_ZN5S81C34v201Ev,
  (VTBL_ENTRY)&_ZN5S81C34v202Ev,
  (VTBL_ENTRY)&_ZN5S81C34v203Ev,
  (VTBL_ENTRY)&_ZN5S81C34v204Ev,
  (VTBL_ENTRY)&_ZN5S81C34v205Ev,
  (VTBL_ENTRY)&_ZN5S81C34v206Ev,
  (VTBL_ENTRY)&_ZN5S81C34v207Ev,
  (VTBL_ENTRY)&_ZN5S81C24v208Ev,
  (VTBL_ENTRY)&_ZN5S81C24v209Ev,
  (VTBL_ENTRY)&_ZN5S81C24v210Ev,
  (VTBL_ENTRY)&_ZN5S81C24v211Ev,
  (VTBL_ENTRY)&_ZN5S81C24v212Ev,
  (VTBL_ENTRY)&_ZN5S81C24v213Ev,
};
extern VTBL_ENTRY _ZTI5S81C2[];
extern  VTBL_ENTRY _ZTV5S81C2[];
Class_Descriptor cd_S81C2 = {  "S81C2", // class name
  bases_S81C2, 5,
  &(vtc_S81C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1032,736), // object size
  NSPAIRA(_ZTI5S81C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S81C2),214, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S81C1  : S81C2 {
  void *s81c1f0;
  unsigned int s81c1f1:1;
  virtual  ~S81C1(); // _ZN5S81C1D1Ev
  virtual void  v1(); // _ZN5S81C12v1Ev
  virtual void  v2(); // _ZN5S81C12v2Ev
  virtual void  v3(); // _ZN5S81C12v3Ev
  S81C1(); // tgen
};
//SIG(1 S81C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v208 v209 v210 v211 v212 v213 Fi:1 Fp[5] FC28{ BC29{ BC12}} FC30{ BC31{ BC12}} Fi:1 Fi:1 Fi[8] FC21 FC21 FC21} vd v1 v2 v3 Fp Fi:1}


 S81C1 ::~S81C1(){ note_dtor("S81C1", this);}
void  S81C1 ::v1(){vfunc_called(this, "_ZN5S81C12v1Ev");}
void  S81C1 ::v2(){vfunc_called(this, "_ZN5S81C12v2Ev");}
void  S81C1 ::v3(){vfunc_called(this, "_ZN5S81C12v3Ev");}
S81C1 ::S81C1(){ note_ctor("S81C1", this);} // tgen

static void Test_S81C1()
{
  extern Class_Descriptor cd_S81C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(132,187)];
    init_test(&cd_S81C1, buf);
    S81C1 *dp, &lv = *(dp=new (buf) S81C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1048,744), "sizeof(S81C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S81C1)");
    check_base_class_offset(lv, (S81C7*)(S81C6*)(S81C5*)(S81C4*)(S81C3*)(S81C2*), 0, "S81C1");
    check_base_class_offset(lv, (S81C6*)(S81C5*)(S81C4*)(S81C3*)(S81C2*), 0, "S81C1");
    check_base_class_offset(lv, (S81C5*)(S81C4*)(S81C3*)(S81C2*), 0, "S81C1");
    check_base_class_offset(lv, (S81C4*)(S81C3*)(S81C2*), 0, "S81C1");
    check_base_class_offset(lv, (S81C3*)(S81C2*), 0, "S81C1");
    check_base_class_offset(lv, (S81C2*), 0, "S81C1");
    check_field_offset(lv, s81c1f0, ABISELECT(1032,736), "S81C1.s81c1f0");
    set_bf_and_test(lv, s81c1f1, ABISELECT(1040,740), 0, 1, 1, "S81C1");
    test_class_info(&lv, &cd_S81C1);
    dp->~S81C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS81C1(Test_S81C1, "S81C1", ABISELECT(1048,744));

#else // __cplusplus

extern void _ZN5S81C1C1Ev();
extern void _ZN5S81C1D1Ev();
Name_Map name_map_S81C1[] = {
  NSPAIR(_ZN5S81C1C1Ev),
  NSPAIR(_ZN5S81C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S81C7;
extern VTBL_ENTRY _ZTI5S81C7[];
extern  VTBL_ENTRY _ZTV5S81C7[];
extern Class_Descriptor cd_S81C6;
extern VTBL_ENTRY _ZTI5S81C6[];
extern  VTBL_ENTRY _ZTV5S81C6[];
extern Class_Descriptor cd_S81C5;
extern VTBL_ENTRY _ZTI5S81C5[];
extern  VTBL_ENTRY _ZTV5S81C5[];
extern Class_Descriptor cd_S81C4;
extern VTBL_ENTRY _ZTI5S81C4[];
extern  VTBL_ENTRY _ZTV5S81C4[];
extern Class_Descriptor cd_S81C3;
extern VTBL_ENTRY _ZTI5S81C3[];
extern  VTBL_ENTRY _ZTV5S81C3[];
extern Class_Descriptor cd_S81C2;
extern VTBL_ENTRY _ZTI5S81C2[];
extern  VTBL_ENTRY _ZTV5S81C2[];
static Base_Class bases_S81C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S81C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S81C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S81C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S81C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S81C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S81C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S81C1[];
extern void _ZN5S81C1D1Ev();
extern void _ZN5S81C1D0Ev();
extern void _ZN5S81C72v4Ev();
extern void _ZN5S81C72v5Ev();
extern void _ZN5S81C72v6Ev();
extern void _ZN5S81C72v7Ev();
extern void _ZN5S81C72v8Ev();
extern void _ZN5S81C72v9Ev();
extern void _ZN5S81C73v10Ev();
extern void _ZN5S81C73v11Ev();
extern void _ZN5S81C73v12Ev();
extern void _ZN5S81C73v13Ev();
extern void _ZN5S81C73v14Ev();
extern void _ZN5S81C73v15Ev();
extern void _ZN5S81C73v16Ev();
extern void _ZN5S81C73v17Ev();
extern void _ZN5S81C73v18Ev();
extern void _ZN5S81C73v19Ev();
extern void _ZN5S81C73v20Ev();
extern void _ZN5S81C73v21Ev();
extern void _ZN5S81C73v22Ev();
extern void _ZN5S81C73v23Ev();
extern void _ZN5S81C73v24Ev();
extern void _ZN5S81C73v25Ev();
extern void _ZN5S81C73v26Ev();
extern void _ZN5S81C73v27Ev();
extern void _ZN5S81C73v28Ev();
extern void _ZN5S81C73v29Ev();
extern void _ZN5S81C73v30Ev();
extern void _ZN5S81C73v31Ev();
extern void _ZN5S81C73v32Ev();
extern void _ZN5S81C73v33Ev();
extern void _ZN5S81C73v34Ev();
extern void _ZN5S81C73v35Ev();
extern void _ZN5S81C73v36Ev();
extern void _ZN5S81C73v37Ev();
extern void _ZN5S81C73v38Ev();
extern void _ZN5S81C73v39Ev();
extern void _ZN5S81C73v40Ev();
extern void _ZN5S81C73v41Ev();
extern void _ZN5S81C73v42Ev();
extern void _ZN5S81C73v43Ev();
extern void _ZN5S81C73v44Ev();
extern void _ZN5S81C73v45Ev();
extern void _ZN5S81C73v46Ev();
extern void _ZN5S81C73v47Ev();
extern void _ZN5S81C73v48Ev();
extern void _ZN5S81C73v49Ev();
extern void _ZN5S81C73v50Ev();
extern void _ZN5S81C73v51Ev();
extern void _ZN5S81C73v52Ev();
extern void _ZN5S81C73v53Ev();
extern void _ZN5S81C73v54Ev();
extern void _ZN5S81C73v55Ev();
extern void _ZN5S81C73v56Ev();
extern void _ZN5S81C73v57Ev();
extern void _ZN5S81C73v58Ev();
extern void _ZN5S81C73v59Ev();
extern void _ZN5S81C73v60Ev();
extern void _ZN5S81C73v61Ev();
extern void _ZN5S81C73v62Ev();
extern void _ZN5S81C73v63Ev();
extern void _ZN5S81C73v64Ev();
extern void _ZN5S81C73v65Ev();
extern void _ZN5S81C73v66Ev();
extern void _ZN5S81C73v67Ev();
extern void _ZN5S81C63v68Ev();
extern void _ZN5S81C63v69Ev();
extern void _ZN5S81C53v70Ev();
extern void _ZN5S81C53v71Ev();
extern void _ZN5S81C53v72Ev();
extern void _ZN5S81C53v73Ev();
extern void _ZN5S81C53v74Ev();
extern void _ZN5S81C53v75Ev();
extern void _ZN5S81C53v76Ev();
extern void _ZN5S81C53v77Ev();
extern void _ZN5S81C53v78Ev();
extern void _ZN5S81C53v79Ev();
extern void _ZN5S81C53v80Ev();
extern void _ZN5S81C53v81Ev();
extern void _ZN5S81C53v82Ev();
extern void _ZN5S81C53v83Ev();
extern void _ZN5S81C53v84Ev();
extern void _ZN5S81C53v85Ev();
extern void _ZN5S81C53v86Ev();
extern void _ZN5S81C53v87Ev();
extern void _ZN5S81C53v88Ev();
extern void _ZN5S81C53v89Ev();
extern void _ZN5S81C53v90Ev();
extern void _ZN5S81C53v91Ev();
extern void _ZN5S81C53v92Ev();
extern void _ZN5S81C53v93Ev();
extern void _ZN5S81C53v94Ev();
extern void _ZN5S81C53v95Ev();
extern void _ZN5S81C53v96Ev();
extern void _ZN5S81C53v97Ev();
extern void _ZN5S81C53v98Ev();
extern void _ZN5S81C53v99Ev();
extern void _ZN5S81C54v100Ev();
extern void _ZN5S81C54v101Ev();
extern void _ZN5S81C54v102Ev();
extern void _ZN5S81C54v103Ev();
extern void _ZN5S81C54v104Ev();
extern void _ZN5S81C54v105Ev();
extern void _ZN5S81C54v106Ev();
extern void _ZN5S81C54v107Ev();
extern void _ZN5S81C54v108Ev();
extern void _ZN5S81C54v109Ev();
extern void _ZN5S81C54v110Ev();
extern void _ZN5S81C54v111Ev();
extern void _ZN5S81C54v112Ev();
extern void _ZN5S81C54v113Ev();
extern void _ZN5S81C54v114Ev();
extern void _ZN5S81C54v115Ev();
extern void _ZN5S81C54v116Ev();
extern void _ZN5S81C54v117Ev();
extern void _ZN5S81C54v118Ev();
extern void _ZN5S81C54v119Ev();
extern void _ZN5S81C54v120Ev();
extern void _ZN5S81C54v121Ev();
extern void _ZN5S81C54v122Ev();
extern void _ZN5S81C54v123Ev();
extern void _ZN5S81C54v124Ev();
extern void _ZN5S81C54v125Ev();
extern void _ZN5S81C54v126Ev();
extern void _ZN5S81C54v127Ev();
extern void _ZN5S81C54v128Ev();
extern void _ZN5S81C54v129Ev();
extern void _ZN5S81C54v130Ev();
extern void _ZN5S81C54v131Ev();
extern void _ZN5S81C54v132Ev();
extern void _ZN5S81C54v133Ev();
extern void _ZN5S81C54v134Ev();
extern void _ZN5S81C54v135Ev();
extern void _ZN5S81C54v136Ev();
extern void _ZN5S81C54v137Ev();
extern void _ZN5S81C54v138Ev();
extern void _ZN5S81C54v139Ev();
extern void _ZN5S81C54v140Ev();
extern void _ZN5S81C54v141Ev();
extern void _ZN5S81C54v142Ev();
extern void _ZN5S81C54v143Ev();
extern void _ZN5S81C54v144Ev();
extern void _ZN5S81C54v145Ev();
extern void _ZN5S81C44v146Ev();
extern void _ZN5S81C44v147Ev();
extern void _ZN5S81C44v148Ev();
extern void _ZN5S81C44v149Ev();
extern void _ZN5S81C44v150Ev();
extern void _ZN5S81C44v151Ev();
extern void _ZN5S81C44v152Ev();
extern void _ZN5S81C44v153Ev();
extern void _ZN5S81C44v154Ev();
extern void _ZN5S81C44v155Ev();
extern void _ZN5S81C44v156Ev();
extern void _ZN5S81C44v157Ev();
extern void _ZN5S81C44v158Ev();
extern void _ZN5S81C44v159Ev();
extern void _ZN5S81C44v160Ev();
extern void _ZN5S81C44v161Ev();
extern void _ZN5S81C44v162Ev();
extern void _ZN5S81C44v163Ev();
extern void _ZN5S81C44v164Ev();
extern void _ZN5S81C44v165Ev();
extern void _ZN5S81C44v166Ev();
extern void _ZN5S81C44v167Ev();
extern void _ZN5S81C44v168Ev();
extern void _ZN5S81C44v169Ev();
extern void _ZN5S81C44v170Ev();
extern void _ZN5S81C44v171Ev();
extern void _ZN5S81C44v172Ev();
extern void _ZN5S81C44v173Ev();
extern void _ZN5S81C44v174Ev();
extern void _ZN5S81C44v175Ev();
extern void _ZN5S81C44v176Ev();
extern void _ZN5S81C44v177Ev();
extern void _ZN5S81C44v178Ev();
extern void _ZN5S81C44v179Ev();
extern void _ZN5S81C44v180Ev();
extern void _ZN5S81C44v181Ev();
extern void _ZN5S81C44v182Ev();
extern void _ZN5S81C44v183Ev();
extern void _ZN5S81C44v184Ev();
extern void _ZN5S81C34v185Ev();
extern void _ZN5S81C34v186Ev();
extern void _ZN5S81C34v187Ev();
extern void _ZN5S81C34v188Ev();
extern void _ZN5S81C34v189Ev();
extern void _ZN5S81C34v190Ev();
extern void _ZN5S81C34v191Ev();
extern void _ZN5S81C34v192Ev();
extern void _ZN5S81C34v193Ev();
extern void _ZN5S81C34v194Ev();
extern void _ZN5S81C34v195Ev();
extern void _ZN5S81C34v196Ev();
extern void _ZN5S81C34v197Ev();
extern void _ZN5S81C34v198Ev();
extern void _ZN5S81C34v199Ev();
extern void _ZN5S81C34v200Ev();
extern void _ZN5S81C34v201Ev();
extern void _ZN5S81C34v202Ev();
extern void _ZN5S81C34v203Ev();
extern void _ZN5S81C34v204Ev();
extern void _ZN5S81C34v205Ev();
extern void _ZN5S81C34v206Ev();
extern void _ZN5S81C34v207Ev();
extern void _ZN5S81C24v208Ev();
extern void _ZN5S81C24v209Ev();
extern void _ZN5S81C24v210Ev();
extern void _ZN5S81C24v211Ev();
extern void _ZN5S81C24v212Ev();
extern void _ZN5S81C24v213Ev();
extern void _ZN5S81C12v1Ev();
extern void _ZN5S81C12v2Ev();
extern void _ZN5S81C12v3Ev();
static  VTBL_ENTRY vtc_S81C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S81C1[0]),
  (VTBL_ENTRY)&_ZN5S81C1D1Ev,
  (VTBL_ENTRY)&_ZN5S81C1D0Ev,
  (VTBL_ENTRY)&_ZN5S81C72v4Ev,
  (VTBL_ENTRY)&_ZN5S81C72v5Ev,
  (VTBL_ENTRY)&_ZN5S81C72v6Ev,
  (VTBL_ENTRY)&_ZN5S81C72v7Ev,
  (VTBL_ENTRY)&_ZN5S81C72v8Ev,
  (VTBL_ENTRY)&_ZN5S81C72v9Ev,
  (VTBL_ENTRY)&_ZN5S81C73v10Ev,
  (VTBL_ENTRY)&_ZN5S81C73v11Ev,
  (VTBL_ENTRY)&_ZN5S81C73v12Ev,
  (VTBL_ENTRY)&_ZN5S81C73v13Ev,
  (VTBL_ENTRY)&_ZN5S81C73v14Ev,
  (VTBL_ENTRY)&_ZN5S81C73v15Ev,
  (VTBL_ENTRY)&_ZN5S81C73v16Ev,
  (VTBL_ENTRY)&_ZN5S81C73v17Ev,
  (VTBL_ENTRY)&_ZN5S81C73v18Ev,
  (VTBL_ENTRY)&_ZN5S81C73v19Ev,
  (VTBL_ENTRY)&_ZN5S81C73v20Ev,
  (VTBL_ENTRY)&_ZN5S81C73v21Ev,
  (VTBL_ENTRY)&_ZN5S81C73v22Ev,
  (VTBL_ENTRY)&_ZN5S81C73v23Ev,
  (VTBL_ENTRY)&_ZN5S81C73v24Ev,
  (VTBL_ENTRY)&_ZN5S81C73v25Ev,
  (VTBL_ENTRY)&_ZN5S81C73v26Ev,
  (VTBL_ENTRY)&_ZN5S81C73v27Ev,
  (VTBL_ENTRY)&_ZN5S81C73v28Ev,
  (VTBL_ENTRY)&_ZN5S81C73v29Ev,
  (VTBL_ENTRY)&_ZN5S81C73v30Ev,
  (VTBL_ENTRY)&_ZN5S81C73v31Ev,
  (VTBL_ENTRY)&_ZN5S81C73v32Ev,
  (VTBL_ENTRY)&_ZN5S81C73v33Ev,
  (VTBL_ENTRY)&_ZN5S81C73v34Ev,
  (VTBL_ENTRY)&_ZN5S81C73v35Ev,
  (VTBL_ENTRY)&_ZN5S81C73v36Ev,
  (VTBL_ENTRY)&_ZN5S81C73v37Ev,
  (VTBL_ENTRY)&_ZN5S81C73v38Ev,
  (VTBL_ENTRY)&_ZN5S81C73v39Ev,
  (VTBL_ENTRY)&_ZN5S81C73v40Ev,
  (VTBL_ENTRY)&_ZN5S81C73v41Ev,
  (VTBL_ENTRY)&_ZN5S81C73v42Ev,
  (VTBL_ENTRY)&_ZN5S81C73v43Ev,
  (VTBL_ENTRY)&_ZN5S81C73v44Ev,
  (VTBL_ENTRY)&_ZN5S81C73v45Ev,
  (VTBL_ENTRY)&_ZN5S81C73v46Ev,
  (VTBL_ENTRY)&_ZN5S81C73v47Ev,
  (VTBL_ENTRY)&_ZN5S81C73v48Ev,
  (VTBL_ENTRY)&_ZN5S81C73v49Ev,
  (VTBL_ENTRY)&_ZN5S81C73v50Ev,
  (VTBL_ENTRY)&_ZN5S81C73v51Ev,
  (VTBL_ENTRY)&_ZN5S81C73v52Ev,
  (VTBL_ENTRY)&_ZN5S81C73v53Ev,
  (VTBL_ENTRY)&_ZN5S81C73v54Ev,
  (VTBL_ENTRY)&_ZN5S81C73v55Ev,
  (VTBL_ENTRY)&_ZN5S81C73v56Ev,
  (VTBL_ENTRY)&_ZN5S81C73v57Ev,
  (VTBL_ENTRY)&_ZN5S81C73v58Ev,
  (VTBL_ENTRY)&_ZN5S81C73v59Ev,
  (VTBL_ENTRY)&_ZN5S81C73v60Ev,
  (VTBL_ENTRY)&_ZN5S81C73v61Ev,
  (VTBL_ENTRY)&_ZN5S81C73v62Ev,
  (VTBL_ENTRY)&_ZN5S81C73v63Ev,
  (VTBL_ENTRY)&_ZN5S81C73v64Ev,
  (VTBL_ENTRY)&_ZN5S81C73v65Ev,
  (VTBL_ENTRY)&_ZN5S81C73v66Ev,
  (VTBL_ENTRY)&_ZN5S81C73v67Ev,
  (VTBL_ENTRY)&_ZN5S81C63v68Ev,
  (VTBL_ENTRY)&_ZN5S81C63v69Ev,
  (VTBL_ENTRY)&_ZN5S81C53v70Ev,
  (VTBL_ENTRY)&_ZN5S81C53v71Ev,
  (VTBL_ENTRY)&_ZN5S81C53v72Ev,
  (VTBL_ENTRY)&_ZN5S81C53v73Ev,
  (VTBL_ENTRY)&_ZN5S81C53v74Ev,
  (VTBL_ENTRY)&_ZN5S81C53v75Ev,
  (VTBL_ENTRY)&_ZN5S81C53v76Ev,
  (VTBL_ENTRY)&_ZN5S81C53v77Ev,
  (VTBL_ENTRY)&_ZN5S81C53v78Ev,
  (VTBL_ENTRY)&_ZN5S81C53v79Ev,
  (VTBL_ENTRY)&_ZN5S81C53v80Ev,
  (VTBL_ENTRY)&_ZN5S81C53v81Ev,
  (VTBL_ENTRY)&_ZN5S81C53v82Ev,
  (VTBL_ENTRY)&_ZN5S81C53v83Ev,
  (VTBL_ENTRY)&_ZN5S81C53v84Ev,
  (VTBL_ENTRY)&_ZN5S81C53v85Ev,
  (VTBL_ENTRY)&_ZN5S81C53v86Ev,
  (VTBL_ENTRY)&_ZN5S81C53v87Ev,
  (VTBL_ENTRY)&_ZN5S81C53v88Ev,
  (VTBL_ENTRY)&_ZN5S81C53v89Ev,
  (VTBL_ENTRY)&_ZN5S81C53v90Ev,
  (VTBL_ENTRY)&_ZN5S81C53v91Ev,
  (VTBL_ENTRY)&_ZN5S81C53v92Ev,
  (VTBL_ENTRY)&_ZN5S81C53v93Ev,
  (VTBL_ENTRY)&_ZN5S81C53v94Ev,
  (VTBL_ENTRY)&_ZN5S81C53v95Ev,
  (VTBL_ENTRY)&_ZN5S81C53v96Ev,
  (VTBL_ENTRY)&_ZN5S81C53v97Ev,
  (VTBL_ENTRY)&_ZN5S81C53v98Ev,
  (VTBL_ENTRY)&_ZN5S81C53v99Ev,
  (VTBL_ENTRY)&_ZN5S81C54v100Ev,
  (VTBL_ENTRY)&_ZN5S81C54v101Ev,
  (VTBL_ENTRY)&_ZN5S81C54v102Ev,
  (VTBL_ENTRY)&_ZN5S81C54v103Ev,
  (VTBL_ENTRY)&_ZN5S81C54v104Ev,
  (VTBL_ENTRY)&_ZN5S81C54v105Ev,
  (VTBL_ENTRY)&_ZN5S81C54v106Ev,
  (VTBL_ENTRY)&_ZN5S81C54v107Ev,
  (VTBL_ENTRY)&_ZN5S81C54v108Ev,
  (VTBL_ENTRY)&_ZN5S81C54v109Ev,
  (VTBL_ENTRY)&_ZN5S81C54v110Ev,
  (VTBL_ENTRY)&_ZN5S81C54v111Ev,
  (VTBL_ENTRY)&_ZN5S81C54v112Ev,
  (VTBL_ENTRY)&_ZN5S81C54v113Ev,
  (VTBL_ENTRY)&_ZN5S81C54v114Ev,
  (VTBL_ENTRY)&_ZN5S81C54v115Ev,
  (VTBL_ENTRY)&_ZN5S81C54v116Ev,
  (VTBL_ENTRY)&_ZN5S81C54v117Ev,
  (VTBL_ENTRY)&_ZN5S81C54v118Ev,
  (VTBL_ENTRY)&_ZN5S81C54v119Ev,
  (VTBL_ENTRY)&_ZN5S81C54v120Ev,
  (VTBL_ENTRY)&_ZN5S81C54v121Ev,
  (VTBL_ENTRY)&_ZN5S81C54v122Ev,
  (VTBL_ENTRY)&_ZN5S81C54v123Ev,
  (VTBL_ENTRY)&_ZN5S81C54v124Ev,
  (VTBL_ENTRY)&_ZN5S81C54v125Ev,
  (VTBL_ENTRY)&_ZN5S81C54v126Ev,
  (VTBL_ENTRY)&_ZN5S81C54v127Ev,
  (VTBL_ENTRY)&_ZN5S81C54v128Ev,
  (VTBL_ENTRY)&_ZN5S81C54v129Ev,
  (VTBL_ENTRY)&_ZN5S81C54v130Ev,
  (VTBL_ENTRY)&_ZN5S81C54v131Ev,
  (VTBL_ENTRY)&_ZN5S81C54v132Ev,
  (VTBL_ENTRY)&_ZN5S81C54v133Ev,
  (VTBL_ENTRY)&_ZN5S81C54v134Ev,
  (VTBL_ENTRY)&_ZN5S81C54v135Ev,
  (VTBL_ENTRY)&_ZN5S81C54v136Ev,
  (VTBL_ENTRY)&_ZN5S81C54v137Ev,
  (VTBL_ENTRY)&_ZN5S81C54v138Ev,
  (VTBL_ENTRY)&_ZN5S81C54v139Ev,
  (VTBL_ENTRY)&_ZN5S81C54v140Ev,
  (VTBL_ENTRY)&_ZN5S81C54v141Ev,
  (VTBL_ENTRY)&_ZN5S81C54v142Ev,
  (VTBL_ENTRY)&_ZN5S81C54v143Ev,
  (VTBL_ENTRY)&_ZN5S81C54v144Ev,
  (VTBL_ENTRY)&_ZN5S81C54v145Ev,
  (VTBL_ENTRY)&_ZN5S81C44v146Ev,
  (VTBL_ENTRY)&_ZN5S81C44v147Ev,
  (VTBL_ENTRY)&_ZN5S81C44v148Ev,
  (VTBL_ENTRY)&_ZN5S81C44v149Ev,
  (VTBL_ENTRY)&_ZN5S81C44v150Ev,
  (VTBL_ENTRY)&_ZN5S81C44v151Ev,
  (VTBL_ENTRY)&_ZN5S81C44v152Ev,
  (VTBL_ENTRY)&_ZN5S81C44v153Ev,
  (VTBL_ENTRY)&_ZN5S81C44v154Ev,
  (VTBL_ENTRY)&_ZN5S81C44v155Ev,
  (VTBL_ENTRY)&_ZN5S81C44v156Ev,
  (VTBL_ENTRY)&_ZN5S81C44v157Ev,
  (VTBL_ENTRY)&_ZN5S81C44v158Ev,
  (VTBL_ENTRY)&_ZN5S81C44v159Ev,
  (VTBL_ENTRY)&_ZN5S81C44v160Ev,
  (VTBL_ENTRY)&_ZN5S81C44v161Ev,
  (VTBL_ENTRY)&_ZN5S81C44v162Ev,
  (VTBL_ENTRY)&_ZN5S81C44v163Ev,
  (VTBL_ENTRY)&_ZN5S81C44v164Ev,
  (VTBL_ENTRY)&_ZN5S81C44v165Ev,
  (VTBL_ENTRY)&_ZN5S81C44v166Ev,
  (VTBL_ENTRY)&_ZN5S81C44v167Ev,
  (VTBL_ENTRY)&_ZN5S81C44v168Ev,
  (VTBL_ENTRY)&_ZN5S81C44v169Ev,
  (VTBL_ENTRY)&_ZN5S81C44v170Ev,
  (VTBL_ENTRY)&_ZN5S81C44v171Ev,
  (VTBL_ENTRY)&_ZN5S81C44v172Ev,
  (VTBL_ENTRY)&_ZN5S81C44v173Ev,
  (VTBL_ENTRY)&_ZN5S81C44v174Ev,
  (VTBL_ENTRY)&_ZN5S81C44v175Ev,
  (VTBL_ENTRY)&_ZN5S81C44v176Ev,
  (VTBL_ENTRY)&_ZN5S81C44v177Ev,
  (VTBL_ENTRY)&_ZN5S81C44v178Ev,
  (VTBL_ENTRY)&_ZN5S81C44v179Ev,
  (VTBL_ENTRY)&_ZN5S81C44v180Ev,
  (VTBL_ENTRY)&_ZN5S81C44v181Ev,
  (VTBL_ENTRY)&_ZN5S81C44v182Ev,
  (VTBL_ENTRY)&_ZN5S81C44v183Ev,
  (VTBL_ENTRY)&_ZN5S81C44v184Ev,
  (VTBL_ENTRY)&_ZN5S81C34v185Ev,
  (VTBL_ENTRY)&_ZN5S81C34v186Ev,
  (VTBL_ENTRY)&_ZN5S81C34v187Ev,
  (VTBL_ENTRY)&_ZN5S81C34v188Ev,
  (VTBL_ENTRY)&_ZN5S81C34v189Ev,
  (VTBL_ENTRY)&_ZN5S81C34v190Ev,
  (VTBL_ENTRY)&_ZN5S81C34v191Ev,
  (VTBL_ENTRY)&_ZN5S81C34v192Ev,
  (VTBL_ENTRY)&_ZN5S81C34v193Ev,
  (VTBL_ENTRY)&_ZN5S81C34v194Ev,
  (VTBL_ENTRY)&_ZN5S81C34v195Ev,
  (VTBL_ENTRY)&_ZN5S81C34v196Ev,
  (VTBL_ENTRY)&_ZN5S81C34v197Ev,
  (VTBL_ENTRY)&_ZN5S81C34v198Ev,
  (VTBL_ENTRY)&_ZN5S81C34v199Ev,
  (VTBL_ENTRY)&_ZN5S81C34v200Ev,
  (VTBL_ENTRY)&_ZN5S81C34v201Ev,
  (VTBL_ENTRY)&_ZN5S81C34v202Ev,
  (VTBL_ENTRY)&_ZN5S81C34v203Ev,
  (VTBL_ENTRY)&_ZN5S81C34v204Ev,
  (VTBL_ENTRY)&_ZN5S81C34v205Ev,
  (VTBL_ENTRY)&_ZN5S81C34v206Ev,
  (VTBL_ENTRY)&_ZN5S81C34v207Ev,
  (VTBL_ENTRY)&_ZN5S81C24v208Ev,
  (VTBL_ENTRY)&_ZN5S81C24v209Ev,
  (VTBL_ENTRY)&_ZN5S81C24v210Ev,
  (VTBL_ENTRY)&_ZN5S81C24v211Ev,
  (VTBL_ENTRY)&_ZN5S81C24v212Ev,
  (VTBL_ENTRY)&_ZN5S81C24v213Ev,
  (VTBL_ENTRY)&_ZN5S81C12v1Ev,
  (VTBL_ENTRY)&_ZN5S81C12v2Ev,
  (VTBL_ENTRY)&_ZN5S81C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S81C1[];
extern  VTBL_ENTRY _ZTV5S81C1[];
Class_Descriptor cd_S81C1 = {  "S81C1", // class name
  bases_S81C1, 6,
  &(vtc_S81C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1048,744), // object size
  NSPAIRA(_ZTI5S81C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S81C1),217, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C7  {
  int s102c7f0;
  __tsi64 s102c7f1;
  void *s102c7f2[4];
  int s102c7f3[2];
  void *s102c7f4;
  ::S85C27_nt s102c7f5;
  void *s102c7f6[2];
  virtual  ~S102C7(); // _ZN6S102C7D1Ev
  virtual void  v5(); // _ZN6S102C72v5Ev
  virtual void  v6(); // _ZN6S102C72v6Ev
  virtual void  v7(); // _ZN6S102C72v7Ev
  virtual void  v8(); // _ZN6S102C72v8Ev
  virtual void  v9(); // _ZN6S102C72v9Ev
  virtual void  v10(); // _ZN6S102C73v10Ev
  virtual void  v11(); // _ZN6S102C73v11Ev
  virtual void  v12(); // _ZN6S102C73v12Ev
  virtual void  v13(); // _ZN6S102C73v13Ev
  virtual void  v14(); // _ZN6S102C73v14Ev
  virtual void  v15(); // _ZN6S102C73v15Ev
  virtual void  v16(); // _ZN6S102C73v16Ev
  virtual void  v17(); // _ZN6S102C73v17Ev
  virtual void  v18(); // _ZN6S102C73v18Ev
  virtual void  v19(); // _ZN6S102C73v19Ev
  virtual void  v20(); // _ZN6S102C73v20Ev
  virtual void  v21(); // _ZN6S102C73v21Ev
  virtual void  v22(); // _ZN6S102C73v22Ev
  virtual void  v23(); // _ZN6S102C73v23Ev
  virtual void  v24(); // _ZN6S102C73v24Ev
  virtual void  v25(); // _ZN6S102C73v25Ev
  virtual void  v26(); // _ZN6S102C73v26Ev
  virtual void  v27(); // _ZN6S102C73v27Ev
  virtual void  v28(); // _ZN6S102C73v28Ev
  virtual void  v29(); // _ZN6S102C73v29Ev
  virtual void  v30(); // _ZN6S102C73v30Ev
  virtual void  v31(); // _ZN6S102C73v31Ev
  virtual void  v32(); // _ZN6S102C73v32Ev
  virtual void  v33(); // _ZN6S102C73v33Ev
  virtual void  v34(); // _ZN6S102C73v34Ev
  virtual void  v35(); // _ZN6S102C73v35Ev
  virtual void  v36(); // _ZN6S102C73v36Ev
  virtual void  v37(); // _ZN6S102C73v37Ev
  virtual void  v38(); // _ZN6S102C73v38Ev
  virtual void  v39(); // _ZN6S102C73v39Ev
  virtual void  v40(); // _ZN6S102C73v40Ev
  virtual void  v41(); // _ZN6S102C73v41Ev
  virtual void  v42(); // _ZN6S102C73v42Ev
  virtual void  v43(); // _ZN6S102C73v43Ev
  virtual void  v44(); // _ZN6S102C73v44Ev
  virtual void  v45(); // _ZN6S102C73v45Ev
  virtual void  v46(); // _ZN6S102C73v46Ev
  virtual void  v47(); // _ZN6S102C73v47Ev
  virtual void  v48(); // _ZN6S102C73v48Ev
  virtual void  v49(); // _ZN6S102C73v49Ev
  virtual void  v50(); // _ZN6S102C73v50Ev
  virtual void  v51(); // _ZN6S102C73v51Ev
  virtual void  v52(); // _ZN6S102C73v52Ev
  virtual void  v53(); // _ZN6S102C73v53Ev
  virtual void  v54(); // _ZN6S102C73v54Ev
  virtual void  v55(); // _ZN6S102C73v55Ev
  virtual void  v56(); // _ZN6S102C73v56Ev
  virtual void  v57(); // _ZN6S102C73v57Ev
  virtual void  v58(); // _ZN6S102C73v58Ev
  virtual void  v59(); // _ZN6S102C73v59Ev
  virtual void  v60(); // _ZN6S102C73v60Ev
  virtual void  v61(); // _ZN6S102C73v61Ev
  virtual void  v62(); // _ZN6S102C73v62Ev
  virtual void  v63(); // _ZN6S102C73v63Ev
  virtual void  v64(); // _ZN6S102C73v64Ev
  virtual void  v65(); // _ZN6S102C73v65Ev
  virtual void  v66(); // _ZN6S102C73v66Ev
  virtual void  v67(); // _ZN6S102C73v67Ev
  virtual void  v68(); // _ZN6S102C73v68Ev
  S102C7(); // tgen
};
//SIG(-1 S102C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S102C7 ::~S102C7(){ note_dtor("S102C7", this);}
void  S102C7 ::v5(){vfunc_called(this, "_ZN6S102C72v5Ev");}
void  S102C7 ::v6(){vfunc_called(this, "_ZN6S102C72v6Ev");}
void  S102C7 ::v7(){vfunc_called(this, "_ZN6S102C72v7Ev");}
void  S102C7 ::v8(){vfunc_called(this, "_ZN6S102C72v8Ev");}
void  S102C7 ::v9(){vfunc_called(this, "_ZN6S102C72v9Ev");}
void  S102C7 ::v10(){vfunc_called(this, "_ZN6S102C73v10Ev");}
void  S102C7 ::v11(){vfunc_called(this, "_ZN6S102C73v11Ev");}
void  S102C7 ::v12(){vfunc_called(this, "_ZN6S102C73v12Ev");}
void  S102C7 ::v13(){vfunc_called(this, "_ZN6S102C73v13Ev");}
void  S102C7 ::v14(){vfunc_called(this, "_ZN6S102C73v14Ev");}
void  S102C7 ::v15(){vfunc_called(this, "_ZN6S102C73v15Ev");}
void  S102C7 ::v16(){vfunc_called(this, "_ZN6S102C73v16Ev");}
void  S102C7 ::v17(){vfunc_called(this, "_ZN6S102C73v17Ev");}
void  S102C7 ::v18(){vfunc_called(this, "_ZN6S102C73v18Ev");}
void  S102C7 ::v19(){vfunc_called(this, "_ZN6S102C73v19Ev");}
void  S102C7 ::v20(){vfunc_called(this, "_ZN6S102C73v20Ev");}
void  S102C7 ::v21(){vfunc_called(this, "_ZN6S102C73v21Ev");}
void  S102C7 ::v22(){vfunc_called(this, "_ZN6S102C73v22Ev");}
void  S102C7 ::v23(){vfunc_called(this, "_ZN6S102C73v23Ev");}
void  S102C7 ::v24(){vfunc_called(this, "_ZN6S102C73v24Ev");}
void  S102C7 ::v25(){vfunc_called(this, "_ZN6S102C73v25Ev");}
void  S102C7 ::v26(){vfunc_called(this, "_ZN6S102C73v26Ev");}
void  S102C7 ::v27(){vfunc_called(this, "_ZN6S102C73v27Ev");}
void  S102C7 ::v28(){vfunc_called(this, "_ZN6S102C73v28Ev");}
void  S102C7 ::v29(){vfunc_called(this, "_ZN6S102C73v29Ev");}
void  S102C7 ::v30(){vfunc_called(this, "_ZN6S102C73v30Ev");}
void  S102C7 ::v31(){vfunc_called(this, "_ZN6S102C73v31Ev");}
void  S102C7 ::v32(){vfunc_called(this, "_ZN6S102C73v32Ev");}
void  S102C7 ::v33(){vfunc_called(this, "_ZN6S102C73v33Ev");}
void  S102C7 ::v34(){vfunc_called(this, "_ZN6S102C73v34Ev");}
void  S102C7 ::v35(){vfunc_called(this, "_ZN6S102C73v35Ev");}
void  S102C7 ::v36(){vfunc_called(this, "_ZN6S102C73v36Ev");}
void  S102C7 ::v37(){vfunc_called(this, "_ZN6S102C73v37Ev");}
void  S102C7 ::v38(){vfunc_called(this, "_ZN6S102C73v38Ev");}
void  S102C7 ::v39(){vfunc_called(this, "_ZN6S102C73v39Ev");}
void  S102C7 ::v40(){vfunc_called(this, "_ZN6S102C73v40Ev");}
void  S102C7 ::v41(){vfunc_called(this, "_ZN6S102C73v41Ev");}
void  S102C7 ::v42(){vfunc_called(this, "_ZN6S102C73v42Ev");}
void  S102C7 ::v43(){vfunc_called(this, "_ZN6S102C73v43Ev");}
void  S102C7 ::v44(){vfunc_called(this, "_ZN6S102C73v44Ev");}
void  S102C7 ::v45(){vfunc_called(this, "_ZN6S102C73v45Ev");}
void  S102C7 ::v46(){vfunc_called(this, "_ZN6S102C73v46Ev");}
void  S102C7 ::v47(){vfunc_called(this, "_ZN6S102C73v47Ev");}
void  S102C7 ::v48(){vfunc_called(this, "_ZN6S102C73v48Ev");}
void  S102C7 ::v49(){vfunc_called(this, "_ZN6S102C73v49Ev");}
void  S102C7 ::v50(){vfunc_called(this, "_ZN6S102C73v50Ev");}
void  S102C7 ::v51(){vfunc_called(this, "_ZN6S102C73v51Ev");}
void  S102C7 ::v52(){vfunc_called(this, "_ZN6S102C73v52Ev");}
void  S102C7 ::v53(){vfunc_called(this, "_ZN6S102C73v53Ev");}
void  S102C7 ::v54(){vfunc_called(this, "_ZN6S102C73v54Ev");}
void  S102C7 ::v55(){vfunc_called(this, "_ZN6S102C73v55Ev");}
void  S102C7 ::v56(){vfunc_called(this, "_ZN6S102C73v56Ev");}
void  S102C7 ::v57(){vfunc_called(this, "_ZN6S102C73v57Ev");}
void  S102C7 ::v58(){vfunc_called(this, "_ZN6S102C73v58Ev");}
void  S102C7 ::v59(){vfunc_called(this, "_ZN6S102C73v59Ev");}
void  S102C7 ::v60(){vfunc_called(this, "_ZN6S102C73v60Ev");}
void  S102C7 ::v61(){vfunc_called(this, "_ZN6S102C73v61Ev");}
void  S102C7 ::v62(){vfunc_called(this, "_ZN6S102C73v62Ev");}
void  S102C7 ::v63(){vfunc_called(this, "_ZN6S102C73v63Ev");}
void  S102C7 ::v64(){vfunc_called(this, "_ZN6S102C73v64Ev");}
void  S102C7 ::v65(){vfunc_called(this, "_ZN6S102C73v65Ev");}
void  S102C7 ::v66(){vfunc_called(this, "_ZN6S102C73v66Ev");}
void  S102C7 ::v67(){vfunc_called(this, "_ZN6S102C73v67Ev");}
void  S102C7 ::v68(){vfunc_called(this, "_ZN6S102C73v68Ev");}
S102C7 ::S102C7(){ note_ctor("S102C7", this);} // tgen

static void Test_S102C7()
{
  extern Class_Descriptor cd_S102C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S102C7, buf);
    S102C7 *dp, &lv = *(dp=new (buf) S102C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S102C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C7)");
    check_field_offset(lv, s102c7f0, ABISELECT(8,4), "S102C7.s102c7f0");
    check_field_offset(lv, s102c7f1, ABISELECT(16,8), "S102C7.s102c7f1");
    check_field_offset(lv, s102c7f2, ABISELECT(24,16), "S102C7.s102c7f2");
    check_field_offset(lv, s102c7f3, ABISELECT(56,32), "S102C7.s102c7f3");
    check_field_offset(lv, s102c7f4, ABISELECT(64,40), "S102C7.s102c7f4");
    check_field_offset(lv, s102c7f5, ABISELECT(72,44), "S102C7.s102c7f5");
    check_field_offset(lv, s102c7f6, ABISELECT(80,52), "S102C7.s102c7f6");
    test_class_info(&lv, &cd_S102C7);
    dp->~S102C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C7(Test_S102C7, "S102C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S102C7C1Ev();
extern void _ZN6S102C7D1Ev();
Name_Map name_map_S102C7[] = {
  NSPAIR(_ZN6S102C7C1Ev),
  NSPAIR(_ZN6S102C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S102C7[];
extern void _ZN6S102C7D1Ev();
extern void _ZN6S102C7D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
static  VTBL_ENTRY vtc_S102C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C7[0]),
  (VTBL_ENTRY)&_ZN6S102C7D1Ev,
  (VTBL_ENTRY)&_ZN6S102C7D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
};
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
Class_Descriptor cd_S102C7 = {  "S102C7", // class name
  0,0,//no base classes
  &(vtc_S102C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S102C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S102C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C6  : S102C7 {
  virtual  ~S102C6(); // _ZN6S102C6D1Ev
  virtual void  v69(); // _ZN6S102C63v69Ev
  virtual void  v70(); // _ZN6S102C63v70Ev
  S102C6(); // tgen
};
//SIG(-1 S102C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S102C6 ::~S102C6(){ note_dtor("S102C6", this);}
void  S102C6 ::v69(){vfunc_called(this, "_ZN6S102C63v69Ev");}
void  S102C6 ::v70(){vfunc_called(this, "_ZN6S102C63v70Ev");}
S102C6 ::S102C6(){ note_ctor("S102C6", this);} // tgen

static void Test_S102C6()
{
  extern Class_Descriptor cd_S102C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S102C6, buf);
    S102C6 *dp, &lv = *(dp=new (buf) S102C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S102C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C6)");
    check_base_class_offset(lv, (S102C7*), 0, "S102C6");
    test_class_info(&lv, &cd_S102C6);
    dp->~S102C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C6(Test_S102C6, "S102C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S102C6C1Ev();
extern void _ZN6S102C6D1Ev();
Name_Map name_map_S102C6[] = {
  NSPAIR(_ZN6S102C6C1Ev),
  NSPAIR(_ZN6S102C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S102C7;
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
static Base_Class bases_S102C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S102C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S102C6[];
extern void _ZN6S102C6D1Ev();
extern void _ZN6S102C6D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
extern void _ZN6S102C63v69Ev();
extern void _ZN6S102C63v70Ev();
static  VTBL_ENTRY vtc_S102C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C6[0]),
  (VTBL_ENTRY)&_ZN6S102C6D1Ev,
  (VTBL_ENTRY)&_ZN6S102C6D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
  (VTBL_ENTRY)&_ZN6S102C63v69Ev,
  (VTBL_ENTRY)&_ZN6S102C63v70Ev,
};
extern VTBL_ENTRY _ZTI6S102C6[];
extern  VTBL_ENTRY _ZTV6S102C6[];
Class_Descriptor cd_S102C6 = {  "S102C6", // class name
  bases_S102C6, 1,
  &(vtc_S102C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S102C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S102C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C5  : S102C6 {
  ::S80C9_nt s102c5f0;
  int s102c5f1;
  unsigned int s102c5f2:1;
  unsigned int s102c5f3:1;
  unsigned int s102c5f4:1;
  unsigned int s102c5f5:1;
  ::S85C35 s102c5f6;
  ::S85C22_nt s102c5f7;
  void *s102c5f8;
  ::S80C31 s102c5f9;
  ::S80C31 s102c5f10;
  ::S80C29 s102c5f11;
  ::S80C19 s102c5f12;
  char s102c5f13;
  int s102c5f14;
  void *s102c5f15;
  ::S85C27_nt s102c5f16;
  ::S85C27_nt s102c5f17;
  ::S85C27_nt s102c5f18;
  ::S85C27_nt s102c5f19;
  ::S85C27_nt s102c5f20;
  ::S85C27_nt s102c5f21;
  ::S80C21_nt s102c5f22;
  ::S80C21_nt s102c5f23;
  ::S80C21_nt s102c5f24;
  ::S80C21_nt s102c5f25;
  ::S80C21_nt s102c5f26;
  ::S80C21_nt s102c5f27;
  ::S80C21_nt s102c5f28;
  ::S80C21_nt s102c5f29;
  ::S80C21_nt s102c5f30;
  ::S80C21_nt s102c5f31;
  virtual  ~S102C5(); // _ZN6S102C5D1Ev
  virtual void  v71(); // _ZN6S102C53v71Ev
  virtual void  v72(); // _ZN6S102C53v72Ev
  virtual void  v73(); // _ZN6S102C53v73Ev
  virtual void  v74(); // _ZN6S102C53v74Ev
  virtual void  v75(); // _ZN6S102C53v75Ev
  virtual void  v76(); // _ZN6S102C53v76Ev
  virtual void  v77(); // _ZN6S102C53v77Ev
  virtual void  v78(); // _ZN6S102C53v78Ev
  virtual void  v79(); // _ZN6S102C53v79Ev
  virtual void  v80(); // _ZN6S102C53v80Ev
  virtual void  v81(); // _ZN6S102C53v81Ev
  virtual void  v82(); // _ZN6S102C53v82Ev
  virtual void  v83(); // _ZN6S102C53v83Ev
  virtual void  v84(); // _ZN6S102C53v84Ev
  virtual void  v85(); // _ZN6S102C53v85Ev
  virtual void  v86(); // _ZN6S102C53v86Ev
  virtual void  v87(); // _ZN6S102C53v87Ev
  virtual void  v88(); // _ZN6S102C53v88Ev
  virtual void  v89(); // _ZN6S102C53v89Ev
  virtual void  v90(); // _ZN6S102C53v90Ev
  virtual void  v91(); // _ZN6S102C53v91Ev
  virtual void  v92(); // _ZN6S102C53v92Ev
  virtual void  v93(); // _ZN6S102C53v93Ev
  virtual void  v94(); // _ZN6S102C53v94Ev
  virtual void  v95(); // _ZN6S102C53v95Ev
  virtual void  v96(); // _ZN6S102C53v96Ev
  virtual void  v97(); // _ZN6S102C53v97Ev
  virtual void  v98(); // _ZN6S102C53v98Ev
  virtual void  v99(); // _ZN6S102C53v99Ev
  virtual void  v100(); // _ZN6S102C54v100Ev
  virtual void  v101(); // _ZN6S102C54v101Ev
  virtual void  v102(); // _ZN6S102C54v102Ev
  virtual void  v103(); // _ZN6S102C54v103Ev
  virtual void  v104(); // _ZN6S102C54v104Ev
  virtual void  v105(); // _ZN6S102C54v105Ev
  virtual void  v106(); // _ZN6S102C54v106Ev
  virtual void  v107(); // _ZN6S102C54v107Ev
  virtual void  v108(); // _ZN6S102C54v108Ev
  virtual void  v109(); // _ZN6S102C54v109Ev
  virtual void  v110(); // _ZN6S102C54v110Ev
  virtual void  v111(); // _ZN6S102C54v111Ev
  virtual void  v112(); // _ZN6S102C54v112Ev
  virtual void  v113(); // _ZN6S102C54v113Ev
  virtual void  v114(); // _ZN6S102C54v114Ev
  virtual void  v115(); // _ZN6S102C54v115Ev
  virtual void  v116(); // _ZN6S102C54v116Ev
  virtual void  v117(); // _ZN6S102C54v117Ev
  virtual void  v118(); // _ZN6S102C54v118Ev
  virtual void  v119(); // _ZN6S102C54v119Ev
  virtual void  v120(); // _ZN6S102C54v120Ev
  virtual void  v121(); // _ZN6S102C54v121Ev
  virtual void  v122(); // _ZN6S102C54v122Ev
  virtual void  v123(); // _ZN6S102C54v123Ev
  virtual void  v124(); // _ZN6S102C54v124Ev
  virtual void  v125(); // _ZN6S102C54v125Ev
  virtual void  v126(); // _ZN6S102C54v126Ev
  virtual void  v127(); // _ZN6S102C54v127Ev
  virtual void  v128(); // _ZN6S102C54v128Ev
  virtual void  v129(); // _ZN6S102C54v129Ev
  virtual void  v130(); // _ZN6S102C54v130Ev
  virtual void  v131(); // _ZN6S102C54v131Ev
  virtual void  v132(); // _ZN6S102C54v132Ev
  virtual void  v133(); // _ZN6S102C54v133Ev
  virtual void  v134(); // _ZN6S102C54v134Ev
  virtual void  v135(); // _ZN6S102C54v135Ev
  virtual void  v136(); // _ZN6S102C54v136Ev
  virtual void  v137(); // _ZN6S102C54v137Ev
  virtual void  v138(); // _ZN6S102C54v138Ev
  virtual void  v139(); // _ZN6S102C54v139Ev
  virtual void  v140(); // _ZN6S102C54v140Ev
  virtual void  v141(); // _ZN6S102C54v141Ev
  virtual void  v142(); // _ZN6S102C54v142Ev
  virtual void  v143(); // _ZN6S102C54v143Ev
  virtual void  v144(); // _ZN6S102C54v144Ev
  virtual void  v145(); // _ZN6S102C54v145Ev
  virtual void  v146(); // _ZN6S102C54v146Ev
  S102C5(); // tgen
};
//SIG(-1 S102C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S102C5 ::~S102C5(){ note_dtor("S102C5", this);}
void  S102C5 ::v71(){vfunc_called(this, "_ZN6S102C53v71Ev");}
void  S102C5 ::v72(){vfunc_called(this, "_ZN6S102C53v72Ev");}
void  S102C5 ::v73(){vfunc_called(this, "_ZN6S102C53v73Ev");}
void  S102C5 ::v74(){vfunc_called(this, "_ZN6S102C53v74Ev");}
void  S102C5 ::v75(){vfunc_called(this, "_ZN6S102C53v75Ev");}
void  S102C5 ::v76(){vfunc_called(this, "_ZN6S102C53v76Ev");}
void  S102C5 ::v77(){vfunc_called(this, "_ZN6S102C53v77Ev");}
void  S102C5 ::v78(){vfunc_called(this, "_ZN6S102C53v78Ev");}
void  S102C5 ::v79(){vfunc_called(this, "_ZN6S102C53v79Ev");}
void  S102C5 ::v80(){vfunc_called(this, "_ZN6S102C53v80Ev");}
void  S102C5 ::v81(){vfunc_called(this, "_ZN6S102C53v81Ev");}
void  S102C5 ::v82(){vfunc_called(this, "_ZN6S102C53v82Ev");}
void  S102C5 ::v83(){vfunc_called(this, "_ZN6S102C53v83Ev");}
void  S102C5 ::v84(){vfunc_called(this, "_ZN6S102C53v84Ev");}
void  S102C5 ::v85(){vfunc_called(this, "_ZN6S102C53v85Ev");}
void  S102C5 ::v86(){vfunc_called(this, "_ZN6S102C53v86Ev");}
void  S102C5 ::v87(){vfunc_called(this, "_ZN6S102C53v87Ev");}
void  S102C5 ::v88(){vfunc_called(this, "_ZN6S102C53v88Ev");}
void  S102C5 ::v89(){vfunc_called(this, "_ZN6S102C53v89Ev");}
void  S102C5 ::v90(){vfunc_called(this, "_ZN6S102C53v90Ev");}
void  S102C5 ::v91(){vfunc_called(this, "_ZN6S102C53v91Ev");}
void  S102C5 ::v92(){vfunc_called(this, "_ZN6S102C53v92Ev");}
void  S102C5 ::v93(){vfunc_called(this, "_ZN6S102C53v93Ev");}
void  S102C5 ::v94(){vfunc_called(this, "_ZN6S102C53v94Ev");}
void  S102C5 ::v95(){vfunc_called(this, "_ZN6S102C53v95Ev");}
void  S102C5 ::v96(){vfunc_called(this, "_ZN6S102C53v96Ev");}
void  S102C5 ::v97(){vfunc_called(this, "_ZN6S102C53v97Ev");}
void  S102C5 ::v98(){vfunc_called(this, "_ZN6S102C53v98Ev");}
void  S102C5 ::v99(){vfunc_called(this, "_ZN6S102C53v99Ev");}
void  S102C5 ::v100(){vfunc_called(this, "_ZN6S102C54v100Ev");}
void  S102C5 ::v101(){vfunc_called(this, "_ZN6S102C54v101Ev");}
void  S102C5 ::v102(){vfunc_called(this, "_ZN6S102C54v102Ev");}
void  S102C5 ::v103(){vfunc_called(this, "_ZN6S102C54v103Ev");}
void  S102C5 ::v104(){vfunc_called(this, "_ZN6S102C54v104Ev");}
void  S102C5 ::v105(){vfunc_called(this, "_ZN6S102C54v105Ev");}
void  S102C5 ::v106(){vfunc_called(this, "_ZN6S102C54v106Ev");}
void  S102C5 ::v107(){vfunc_called(this, "_ZN6S102C54v107Ev");}
void  S102C5 ::v108(){vfunc_called(this, "_ZN6S102C54v108Ev");}
void  S102C5 ::v109(){vfunc_called(this, "_ZN6S102C54v109Ev");}
void  S102C5 ::v110(){vfunc_called(this, "_ZN6S102C54v110Ev");}
void  S102C5 ::v111(){vfunc_called(this, "_ZN6S102C54v111Ev");}
void  S102C5 ::v112(){vfunc_called(this, "_ZN6S102C54v112Ev");}
void  S102C5 ::v113(){vfunc_called(this, "_ZN6S102C54v113Ev");}
void  S102C5 ::v114(){vfunc_called(this, "_ZN6S102C54v114Ev");}
void  S102C5 ::v115(){vfunc_called(this, "_ZN6S102C54v115Ev");}
void  S102C5 ::v116(){vfunc_called(this, "_ZN6S102C54v116Ev");}
void  S102C5 ::v117(){vfunc_called(this, "_ZN6S102C54v117Ev");}
void  S102C5 ::v118(){vfunc_called(this, "_ZN6S102C54v118Ev");}
void  S102C5 ::v119(){vfunc_called(this, "_ZN6S102C54v119Ev");}
void  S102C5 ::v120(){vfunc_called(this, "_ZN6S102C54v120Ev");}
void  S102C5 ::v121(){vfunc_called(this, "_ZN6S102C54v121Ev");}
void  S102C5 ::v122(){vfunc_called(this, "_ZN6S102C54v122Ev");}
void  S102C5 ::v123(){vfunc_called(this, "_ZN6S102C54v123Ev");}
void  S102C5 ::v124(){vfunc_called(this, "_ZN6S102C54v124Ev");}
void  S102C5 ::v125(){vfunc_called(this, "_ZN6S102C54v125Ev");}
void  S102C5 ::v126(){vfunc_called(this, "_ZN6S102C54v126Ev");}
void  S102C5 ::v127(){vfunc_called(this, "_ZN6S102C54v127Ev");}
void  S102C5 ::v128(){vfunc_called(this, "_ZN6S102C54v128Ev");}
void  S102C5 ::v129(){vfunc_called(this, "_ZN6S102C54v129Ev");}
void  S102C5 ::v130(){vfunc_called(this, "_ZN6S102C54v130Ev");}
void  S102C5 ::v131(){vfunc_called(this, "_ZN6S102C54v131Ev");}
void  S102C5 ::v132(){vfunc_called(this, "_ZN6S102C54v132Ev");}
void  S102C5 ::v133(){vfunc_called(this, "_ZN6S102C54v133Ev");}
void  S102C5 ::v134(){vfunc_called(this, "_ZN6S102C54v134Ev");}
void  S102C5 ::v135(){vfunc_called(this, "_ZN6S102C54v135Ev");}
void  S102C5 ::v136(){vfunc_called(this, "_ZN6S102C54v136Ev");}
void  S102C5 ::v137(){vfunc_called(this, "_ZN6S102C54v137Ev");}
void  S102C5 ::v138(){vfunc_called(this, "_ZN6S102C54v138Ev");}
void  S102C5 ::v139(){vfunc_called(this, "_ZN6S102C54v139Ev");}
void  S102C5 ::v140(){vfunc_called(this, "_ZN6S102C54v140Ev");}
void  S102C5 ::v141(){vfunc_called(this, "_ZN6S102C54v141Ev");}
void  S102C5 ::v142(){vfunc_called(this, "_ZN6S102C54v142Ev");}
void  S102C5 ::v143(){vfunc_called(this, "_ZN6S102C54v143Ev");}
void  S102C5 ::v144(){vfunc_called(this, "_ZN6S102C54v144Ev");}
void  S102C5 ::v145(){vfunc_called(this, "_ZN6S102C54v145Ev");}
void  S102C5 ::v146(){vfunc_called(this, "_ZN6S102C54v146Ev");}
S102C5 ::S102C5(){ note_ctor("S102C5", this);} // tgen

static void Test_S102C5()
{
  extern Class_Descriptor cd_S102C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S102C5, buf);
    S102C5 *dp, &lv = *(dp=new (buf) S102C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S102C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C5)");
    check_base_class_offset(lv, (S102C7*)(S102C6*), 0, "S102C5");
    check_base_class_offset(lv, (S102C6*), 0, "S102C5");
    check_field_offset(lv, s102c5f0, ABISELECT(96,60), "S102C5.s102c5f0");
    check_field_offset(lv, s102c5f1, ABISELECT(124,88), "S102C5.s102c5f1");
    set_bf_and_test(lv, s102c5f2, ABISELECT(128,92), 0, 1, 1, "S102C5");
    set_bf_and_test(lv, s102c5f3, ABISELECT(128,92), 1, 1, 1, "S102C5");
    set_bf_and_test(lv, s102c5f4, ABISELECT(128,92), 2, 1, 1, "S102C5");
    set_bf_and_test(lv, s102c5f5, ABISELECT(128,92), 3, 1, 1, "S102C5");
    check_field_offset(lv, s102c5f6, ABISELECT(136,96), "S102C5.s102c5f6");
    check_field_offset(lv, s102c5f7, ABISELECT(152,108), "S102C5.s102c5f7");
    check_field_offset(lv, s102c5f8, ABISELECT(168,120), "S102C5.s102c5f8");
    check_field_offset(lv, s102c5f9, ABISELECT(176,124), "S102C5.s102c5f9");
    check_field_offset(lv, s102c5f10, ABISELECT(192,136), "S102C5.s102c5f10");
    check_field_offset(lv, s102c5f11, ABISELECT(208,148), "S102C5.s102c5f11");
    check_field_offset(lv, s102c5f12, ABISELECT(224,160), "S102C5.s102c5f12");
    check_field_offset(lv, s102c5f13, ABISELECT(240,172), "S102C5.s102c5f13");
    check_field_offset(lv, s102c5f14, ABISELECT(244,176), "S102C5.s102c5f14");
    check_field_offset(lv, s102c5f15, ABISELECT(248,180), "S102C5.s102c5f15");
    check_field_offset(lv, s102c5f16, ABISELECT(256,184), "S102C5.s102c5f16");
    check_field_offset(lv, s102c5f17, ABISELECT(264,192), "S102C5.s102c5f17");
    check_field_offset(lv, s102c5f18, ABISELECT(272,200), "S102C5.s102c5f18");
    check_field_offset(lv, s102c5f19, ABISELECT(280,208), "S102C5.s102c5f19");
    check_field_offset(lv, s102c5f20, ABISELECT(288,216), "S102C5.s102c5f20");
    check_field_offset(lv, s102c5f21, ABISELECT(296,224), "S102C5.s102c5f21");
    check_field_offset(lv, s102c5f22, ABISELECT(304,232), "S102C5.s102c5f22");
    check_field_offset(lv, s102c5f23, ABISELECT(320,244), "S102C5.s102c5f23");
    check_field_offset(lv, s102c5f24, ABISELECT(336,256), "S102C5.s102c5f24");
    check_field_offset(lv, s102c5f25, ABISELECT(352,268), "S102C5.s102c5f25");
    check_field_offset(lv, s102c5f26, ABISELECT(368,280), "S102C5.s102c5f26");
    check_field_offset(lv, s102c5f27, ABISELECT(384,292), "S102C5.s102c5f27");
    check_field_offset(lv, s102c5f28, ABISELECT(400,304), "S102C5.s102c5f28");
    check_field_offset(lv, s102c5f29, ABISELECT(416,316), "S102C5.s102c5f29");
    check_field_offset(lv, s102c5f30, ABISELECT(432,328), "S102C5.s102c5f30");
    check_field_offset(lv, s102c5f31, ABISELECT(448,340), "S102C5.s102c5f31");
    test_class_info(&lv, &cd_S102C5);
    dp->~S102C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C5(Test_S102C5, "S102C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S102C5C1Ev();
extern void _ZN6S102C5D1Ev();
Name_Map name_map_S102C5[] = {
  NSPAIR(_ZN6S102C5C1Ev),
  NSPAIR(_ZN6S102C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S102C7;
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
extern Class_Descriptor cd_S102C6;
extern VTBL_ENTRY _ZTI6S102C6[];
extern  VTBL_ENTRY _ZTV6S102C6[];
static Base_Class bases_S102C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S102C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S102C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S102C5[];
extern void _ZN6S102C5D1Ev();
extern void _ZN6S102C5D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
extern void _ZN6S102C63v69Ev();
extern void _ZN6S102C63v70Ev();
extern void _ZN6S102C53v71Ev();
extern void _ZN6S102C53v72Ev();
extern void _ZN6S102C53v73Ev();
extern void _ZN6S102C53v74Ev();
extern void _ZN6S102C53v75Ev();
extern void _ZN6S102C53v76Ev();
extern void _ZN6S102C53v77Ev();
extern void _ZN6S102C53v78Ev();
extern void _ZN6S102C53v79Ev();
extern void _ZN6S102C53v80Ev();
extern void _ZN6S102C53v81Ev();
extern void _ZN6S102C53v82Ev();
extern void _ZN6S102C53v83Ev();
extern void _ZN6S102C53v84Ev();
extern void _ZN6S102C53v85Ev();
extern void _ZN6S102C53v86Ev();
extern void _ZN6S102C53v87Ev();
extern void _ZN6S102C53v88Ev();
extern void _ZN6S102C53v89Ev();
extern void _ZN6S102C53v90Ev();
extern void _ZN6S102C53v91Ev();
extern void _ZN6S102C53v92Ev();
extern void _ZN6S102C53v93Ev();
extern void _ZN6S102C53v94Ev();
extern void _ZN6S102C53v95Ev();
extern void _ZN6S102C53v96Ev();
extern void _ZN6S102C53v97Ev();
extern void _ZN6S102C53v98Ev();
extern void _ZN6S102C53v99Ev();
extern void _ZN6S102C54v100Ev();
extern void _ZN6S102C54v101Ev();
extern void _ZN6S102C54v102Ev();
extern void _ZN6S102C54v103Ev();
extern void _ZN6S102C54v104Ev();
extern void _ZN6S102C54v105Ev();
extern void _ZN6S102C54v106Ev();
extern void _ZN6S102C54v107Ev();
extern void _ZN6S102C54v108Ev();
extern void _ZN6S102C54v109Ev();
extern void _ZN6S102C54v110Ev();
extern void _ZN6S102C54v111Ev();
extern void _ZN6S102C54v112Ev();
extern void _ZN6S102C54v113Ev();
extern void _ZN6S102C54v114Ev();
extern void _ZN6S102C54v115Ev();
extern void _ZN6S102C54v116Ev();
extern void _ZN6S102C54v117Ev();
extern void _ZN6S102C54v118Ev();
extern void _ZN6S102C54v119Ev();
extern void _ZN6S102C54v120Ev();
extern void _ZN6S102C54v121Ev();
extern void _ZN6S102C54v122Ev();
extern void _ZN6S102C54v123Ev();
extern void _ZN6S102C54v124Ev();
extern void _ZN6S102C54v125Ev();
extern void _ZN6S102C54v126Ev();
extern void _ZN6S102C54v127Ev();
extern void _ZN6S102C54v128Ev();
extern void _ZN6S102C54v129Ev();
extern void _ZN6S102C54v130Ev();
extern void _ZN6S102C54v131Ev();
extern void _ZN6S102C54v132Ev();
extern void _ZN6S102C54v133Ev();
extern void _ZN6S102C54v134Ev();
extern void _ZN6S102C54v135Ev();
extern void _ZN6S102C54v136Ev();
extern void _ZN6S102C54v137Ev();
extern void _ZN6S102C54v138Ev();
extern void _ZN6S102C54v139Ev();
extern void _ZN6S102C54v140Ev();
extern void _ZN6S102C54v141Ev();
extern void _ZN6S102C54v142Ev();
extern void _ZN6S102C54v143Ev();
extern void _ZN6S102C54v144Ev();
extern void _ZN6S102C54v145Ev();
extern void _ZN6S102C54v146Ev();
static  VTBL_ENTRY vtc_S102C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C5[0]),
  (VTBL_ENTRY)&_ZN6S102C5D1Ev,
  (VTBL_ENTRY)&_ZN6S102C5D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
  (VTBL_ENTRY)&_ZN6S102C63v69Ev,
  (VTBL_ENTRY)&_ZN6S102C63v70Ev,
  (VTBL_ENTRY)&_ZN6S102C53v71Ev,
  (VTBL_ENTRY)&_ZN6S102C53v72Ev,
  (VTBL_ENTRY)&_ZN6S102C53v73Ev,
  (VTBL_ENTRY)&_ZN6S102C53v74Ev,
  (VTBL_ENTRY)&_ZN6S102C53v75Ev,
  (VTBL_ENTRY)&_ZN6S102C53v76Ev,
  (VTBL_ENTRY)&_ZN6S102C53v77Ev,
  (VTBL_ENTRY)&_ZN6S102C53v78Ev,
  (VTBL_ENTRY)&_ZN6S102C53v79Ev,
  (VTBL_ENTRY)&_ZN6S102C53v80Ev,
  (VTBL_ENTRY)&_ZN6S102C53v81Ev,
  (VTBL_ENTRY)&_ZN6S102C53v82Ev,
  (VTBL_ENTRY)&_ZN6S102C53v83Ev,
  (VTBL_ENTRY)&_ZN6S102C53v84Ev,
  (VTBL_ENTRY)&_ZN6S102C53v85Ev,
  (VTBL_ENTRY)&_ZN6S102C53v86Ev,
  (VTBL_ENTRY)&_ZN6S102C53v87Ev,
  (VTBL_ENTRY)&_ZN6S102C53v88Ev,
  (VTBL_ENTRY)&_ZN6S102C53v89Ev,
  (VTBL_ENTRY)&_ZN6S102C53v90Ev,
  (VTBL_ENTRY)&_ZN6S102C53v91Ev,
  (VTBL_ENTRY)&_ZN6S102C53v92Ev,
  (VTBL_ENTRY)&_ZN6S102C53v93Ev,
  (VTBL_ENTRY)&_ZN6S102C53v94Ev,
  (VTBL_ENTRY)&_ZN6S102C53v95Ev,
  (VTBL_ENTRY)&_ZN6S102C53v96Ev,
  (VTBL_ENTRY)&_ZN6S102C53v97Ev,
  (VTBL_ENTRY)&_ZN6S102C53v98Ev,
  (VTBL_ENTRY)&_ZN6S102C53v99Ev,
  (VTBL_ENTRY)&_ZN6S102C54v100Ev,
  (VTBL_ENTRY)&_ZN6S102C54v101Ev,
  (VTBL_ENTRY)&_ZN6S102C54v102Ev,
  (VTBL_ENTRY)&_ZN6S102C54v103Ev,
  (VTBL_ENTRY)&_ZN6S102C54v104Ev,
  (VTBL_ENTRY)&_ZN6S102C54v105Ev,
  (VTBL_ENTRY)&_ZN6S102C54v106Ev,
  (VTBL_ENTRY)&_ZN6S102C54v107Ev,
  (VTBL_ENTRY)&_ZN6S102C54v108Ev,
  (VTBL_ENTRY)&_ZN6S102C54v109Ev,
  (VTBL_ENTRY)&_ZN6S102C54v110Ev,
  (VTBL_ENTRY)&_ZN6S102C54v111Ev,
  (VTBL_ENTRY)&_ZN6S102C54v112Ev,
  (VTBL_ENTRY)&_ZN6S102C54v113Ev,
  (VTBL_ENTRY)&_ZN6S102C54v114Ev,
  (VTBL_ENTRY)&_ZN6S102C54v115Ev,
  (VTBL_ENTRY)&_ZN6S102C54v116Ev,
  (VTBL_ENTRY)&_ZN6S102C54v117Ev,
  (VTBL_ENTRY)&_ZN6S102C54v118Ev,
  (VTBL_ENTRY)&_ZN6S102C54v119Ev,
  (VTBL_ENTRY)&_ZN6S102C54v120Ev,
  (VTBL_ENTRY)&_ZN6S102C54v121Ev,
  (VTBL_ENTRY)&_ZN6S102C54v122Ev,
  (VTBL_ENTRY)&_ZN6S102C54v123Ev,
  (VTBL_ENTRY)&_ZN6S102C54v124Ev,
  (VTBL_ENTRY)&_ZN6S102C54v125Ev,
  (VTBL_ENTRY)&_ZN6S102C54v126Ev,
  (VTBL_ENTRY)&_ZN6S102C54v127Ev,
  (VTBL_ENTRY)&_ZN6S102C54v128Ev,
  (VTBL_ENTRY)&_ZN6S102C54v129Ev,
  (VTBL_ENTRY)&_ZN6S102C54v130Ev,
  (VTBL_ENTRY)&_ZN6S102C54v131Ev,
  (VTBL_ENTRY)&_ZN6S102C54v132Ev,
  (VTBL_ENTRY)&_ZN6S102C54v133Ev,
  (VTBL_ENTRY)&_ZN6S102C54v134Ev,
  (VTBL_ENTRY)&_ZN6S102C54v135Ev,
  (VTBL_ENTRY)&_ZN6S102C54v136Ev,
  (VTBL_ENTRY)&_ZN6S102C54v137Ev,
  (VTBL_ENTRY)&_ZN6S102C54v138Ev,
  (VTBL_ENTRY)&_ZN6S102C54v139Ev,
  (VTBL_ENTRY)&_ZN6S102C54v140Ev,
  (VTBL_ENTRY)&_ZN6S102C54v141Ev,
  (VTBL_ENTRY)&_ZN6S102C54v142Ev,
  (VTBL_ENTRY)&_ZN6S102C54v143Ev,
  (VTBL_ENTRY)&_ZN6S102C54v144Ev,
  (VTBL_ENTRY)&_ZN6S102C54v145Ev,
  (VTBL_ENTRY)&_ZN6S102C54v146Ev,
};
extern VTBL_ENTRY _ZTI6S102C5[];
extern  VTBL_ENTRY _ZTV6S102C5[];
Class_Descriptor cd_S102C5 = {  "S102C5", // class name
  bases_S102C5, 2,
  &(vtc_S102C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S102C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S102C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C4  : S102C5 {
  ::S85C27_nt s102c4f0;
  void *s102c4f1[9];
  ::S80C15 s102c4f2;
  ::S85C35 s102c4f3;
  ::S80C24 s102c4f4;
  int s102c4f5;
  unsigned int s102c4f6:1;
  unsigned int s102c4f7:1;
  unsigned int s102c4f8:1;
  unsigned int s102c4f9:1;
  unsigned int s102c4f10:1;
  unsigned int s102c4f11:1;
  unsigned int s102c4f12:1;
  unsigned int s102c4f13:1;
  unsigned int s102c4f14:1;
  unsigned int s102c4f15:1;
  unsigned int s102c4f16:1;
  unsigned int s102c4f17:1;
  unsigned int s102c4f18:1;
  unsigned int s102c4f19:1;
  unsigned int s102c4f20:1;
  unsigned int s102c4f21:1;
  unsigned int s102c4f22:1;
  unsigned int s102c4f23:1;
  unsigned int s102c4f24:1;
  unsigned int s102c4f25:1;
  unsigned int s102c4f26:1;
  unsigned int s102c4f27:1;
  void *s102c4f28;
  char s102c4f29[2];
  ::S80C8_nt s102c4f30;
  ::S85C27_nt s102c4f31;
  ::S85C27_nt s102c4f32;
  void *s102c4f33;
  ::S80C21_nt s102c4f34;
  ::S80C21_nt s102c4f35;
  ::S80C21_nt s102c4f36;
  ::S80C21_nt s102c4f37;
  ::S80C21_nt s102c4f38;
  virtual  ~S102C4(); // _ZN6S102C4D1Ev
  virtual void  v147(); // _ZN6S102C44v147Ev
  virtual void  v148(); // _ZN6S102C44v148Ev
  virtual void  v149(); // _ZN6S102C44v149Ev
  virtual void  v150(); // _ZN6S102C44v150Ev
  virtual void  v151(); // _ZN6S102C44v151Ev
  virtual void  v152(); // _ZN6S102C44v152Ev
  virtual void  v153(); // _ZN6S102C44v153Ev
  virtual void  v154(); // _ZN6S102C44v154Ev
  virtual void  v155(); // _ZN6S102C44v155Ev
  virtual void  v156(); // _ZN6S102C44v156Ev
  virtual void  v157(); // _ZN6S102C44v157Ev
  virtual void  v158(); // _ZN6S102C44v158Ev
  virtual void  v159(); // _ZN6S102C44v159Ev
  virtual void  v160(); // _ZN6S102C44v160Ev
  virtual void  v161(); // _ZN6S102C44v161Ev
  virtual void  v162(); // _ZN6S102C44v162Ev
  virtual void  v163(); // _ZN6S102C44v163Ev
  virtual void  v164(); // _ZN6S102C44v164Ev
  virtual void  v165(); // _ZN6S102C44v165Ev
  virtual void  v166(); // _ZN6S102C44v166Ev
  virtual void  v167(); // _ZN6S102C44v167Ev
  virtual void  v168(); // _ZN6S102C44v168Ev
  virtual void  v169(); // _ZN6S102C44v169Ev
  virtual void  v170(); // _ZN6S102C44v170Ev
  virtual void  v171(); // _ZN6S102C44v171Ev
  virtual void  v172(); // _ZN6S102C44v172Ev
  virtual void  v173(); // _ZN6S102C44v173Ev
  virtual void  v174(); // _ZN6S102C44v174Ev
  virtual void  v175(); // _ZN6S102C44v175Ev
  virtual void  v176(); // _ZN6S102C44v176Ev
  virtual void  v177(); // _ZN6S102C44v177Ev
  virtual void  v178(); // _ZN6S102C44v178Ev
  virtual void  v179(); // _ZN6S102C44v179Ev
  virtual void  v180(); // _ZN6S102C44v180Ev
  virtual void  v181(); // _ZN6S102C44v181Ev
  virtual void  v182(); // _ZN6S102C44v182Ev
  virtual void  v183(); // _ZN6S102C44v183Ev
  virtual void  v184(); // _ZN6S102C44v184Ev
  virtual void  v185(); // _ZN6S102C44v185Ev
  S102C4(); // tgen
};
//SIG(-1 S102C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S102C4 ::~S102C4(){ note_dtor("S102C4", this);}
void  S102C4 ::v147(){vfunc_called(this, "_ZN6S102C44v147Ev");}
void  S102C4 ::v148(){vfunc_called(this, "_ZN6S102C44v148Ev");}
void  S102C4 ::v149(){vfunc_called(this, "_ZN6S102C44v149Ev");}
void  S102C4 ::v150(){vfunc_called(this, "_ZN6S102C44v150Ev");}
void  S102C4 ::v151(){vfunc_called(this, "_ZN6S102C44v151Ev");}
void  S102C4 ::v152(){vfunc_called(this, "_ZN6S102C44v152Ev");}
void  S102C4 ::v153(){vfunc_called(this, "_ZN6S102C44v153Ev");}
void  S102C4 ::v154(){vfunc_called(this, "_ZN6S102C44v154Ev");}
void  S102C4 ::v155(){vfunc_called(this, "_ZN6S102C44v155Ev");}
void  S102C4 ::v156(){vfunc_called(this, "_ZN6S102C44v156Ev");}
void  S102C4 ::v157(){vfunc_called(this, "_ZN6S102C44v157Ev");}
void  S102C4 ::v158(){vfunc_called(this, "_ZN6S102C44v158Ev");}
void  S102C4 ::v159(){vfunc_called(this, "_ZN6S102C44v159Ev");}
void  S102C4 ::v160(){vfunc_called(this, "_ZN6S102C44v160Ev");}
void  S102C4 ::v161(){vfunc_called(this, "_ZN6S102C44v161Ev");}
void  S102C4 ::v162(){vfunc_called(this, "_ZN6S102C44v162Ev");}
void  S102C4 ::v163(){vfunc_called(this, "_ZN6S102C44v163Ev");}
void  S102C4 ::v164(){vfunc_called(this, "_ZN6S102C44v164Ev");}
void  S102C4 ::v165(){vfunc_called(this, "_ZN6S102C44v165Ev");}
void  S102C4 ::v166(){vfunc_called(this, "_ZN6S102C44v166Ev");}
void  S102C4 ::v167(){vfunc_called(this, "_ZN6S102C44v167Ev");}
void  S102C4 ::v168(){vfunc_called(this, "_ZN6S102C44v168Ev");}
void  S102C4 ::v169(){vfunc_called(this, "_ZN6S102C44v169Ev");}
void  S102C4 ::v170(){vfunc_called(this, "_ZN6S102C44v170Ev");}
void  S102C4 ::v171(){vfunc_called(this, "_ZN6S102C44v171Ev");}
void  S102C4 ::v172(){vfunc_called(this, "_ZN6S102C44v172Ev");}
void  S102C4 ::v173(){vfunc_called(this, "_ZN6S102C44v173Ev");}
void  S102C4 ::v174(){vfunc_called(this, "_ZN6S102C44v174Ev");}
void  S102C4 ::v175(){vfunc_called(this, "_ZN6S102C44v175Ev");}
void  S102C4 ::v176(){vfunc_called(this, "_ZN6S102C44v176Ev");}
void  S102C4 ::v177(){vfunc_called(this, "_ZN6S102C44v177Ev");}
void  S102C4 ::v178(){vfunc_called(this, "_ZN6S102C44v178Ev");}
void  S102C4 ::v179(){vfunc_called(this, "_ZN6S102C44v179Ev");}
void  S102C4 ::v180(){vfunc_called(this, "_ZN6S102C44v180Ev");}
void  S102C4 ::v181(){vfunc_called(this, "_ZN6S102C44v181Ev");}
void  S102C4 ::v182(){vfunc_called(this, "_ZN6S102C44v182Ev");}
void  S102C4 ::v183(){vfunc_called(this, "_ZN6S102C44v183Ev");}
void  S102C4 ::v184(){vfunc_called(this, "_ZN6S102C44v184Ev");}
void  S102C4 ::v185(){vfunc_called(this, "_ZN6S102C44v185Ev");}
S102C4 ::S102C4(){ note_ctor("S102C4", this);} // tgen

static void Test_S102C4()
{
  extern Class_Descriptor cd_S102C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S102C4, buf);
    S102C4 *dp, &lv = *(dp=new (buf) S102C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S102C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C4)");
    check_base_class_offset(lv, (S102C7*)(S102C6*)(S102C5*), 0, "S102C4");
    check_base_class_offset(lv, (S102C6*)(S102C5*), 0, "S102C4");
    check_base_class_offset(lv, (S102C5*), 0, "S102C4");
    check_field_offset(lv, s102c4f0, ABISELECT(464,352), "S102C4.s102c4f0");
    check_field_offset(lv, s102c4f1, ABISELECT(472,360), "S102C4.s102c4f1");
    check_field_offset(lv, s102c4f2, ABISELECT(544,396), "S102C4.s102c4f2");
    check_field_offset(lv, s102c4f3, ABISELECT(560,408), "S102C4.s102c4f3");
    check_field_offset(lv, s102c4f4, ABISELECT(576,420), "S102C4.s102c4f4");
    check_field_offset(lv, s102c4f5, ABISELECT(608,440), "S102C4.s102c4f5");
    set_bf_and_test(lv, s102c4f6, ABISELECT(612,444), 0, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f7, ABISELECT(612,444), 1, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f8, ABISELECT(612,444), 2, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f9, ABISELECT(612,444), 3, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f10, ABISELECT(612,444), 4, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f11, ABISELECT(612,444), 5, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f12, ABISELECT(612,444), 6, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f13, ABISELECT(612,444), 7, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f14, ABISELECT(613,445), 0, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f15, ABISELECT(613,445), 1, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f16, ABISELECT(613,445), 2, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f17, ABISELECT(613,445), 3, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f18, ABISELECT(613,445), 4, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f19, ABISELECT(613,445), 5, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f20, ABISELECT(613,445), 6, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f21, ABISELECT(613,445), 7, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f22, ABISELECT(614,446), 0, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f23, ABISELECT(614,446), 1, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f24, ABISELECT(614,446), 2, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f25, ABISELECT(614,446), 3, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f26, ABISELECT(614,446), 4, 1, 1, "S102C4");
    set_bf_and_test(lv, s102c4f27, ABISELECT(614,446), 5, 1, 1, "S102C4");
    check_field_offset(lv, s102c4f28, ABISELECT(616,448), "S102C4.s102c4f28");
    check_field_offset(lv, s102c4f29, ABISELECT(624,452), "S102C4.s102c4f29");
    check_field_offset(lv, s102c4f30, ABISELECT(628,456), "S102C4.s102c4f30");
    check_field_offset(lv, s102c4f31, ABISELECT(636,464), "S102C4.s102c4f31");
    check_field_offset(lv, s102c4f32, ABISELECT(644,472), "S102C4.s102c4f32");
    check_field_offset(lv, s102c4f33, ABISELECT(656,480), "S102C4.s102c4f33");
    check_field_offset(lv, s102c4f34, ABISELECT(664,484), "S102C4.s102c4f34");
    check_field_offset(lv, s102c4f35, ABISELECT(680,496), "S102C4.s102c4f35");
    check_field_offset(lv, s102c4f36, ABISELECT(696,508), "S102C4.s102c4f36");
    check_field_offset(lv, s102c4f37, ABISELECT(712,520), "S102C4.s102c4f37");
    check_field_offset(lv, s102c4f38, ABISELECT(728,532), "S102C4.s102c4f38");
    test_class_info(&lv, &cd_S102C4);
    dp->~S102C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C4(Test_S102C4, "S102C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S102C4C1Ev();
extern void _ZN6S102C4D1Ev();
Name_Map name_map_S102C4[] = {
  NSPAIR(_ZN6S102C4C1Ev),
  NSPAIR(_ZN6S102C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S102C7;
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
extern Class_Descriptor cd_S102C6;
extern VTBL_ENTRY _ZTI6S102C6[];
extern  VTBL_ENTRY _ZTV6S102C6[];
extern Class_Descriptor cd_S102C5;
extern VTBL_ENTRY _ZTI6S102C5[];
extern  VTBL_ENTRY _ZTV6S102C5[];
static Base_Class bases_S102C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S102C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S102C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S102C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S102C4[];
extern void _ZN6S102C4D1Ev();
extern void _ZN6S102C4D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
extern void _ZN6S102C63v69Ev();
extern void _ZN6S102C63v70Ev();
extern void _ZN6S102C53v71Ev();
extern void _ZN6S102C53v72Ev();
extern void _ZN6S102C53v73Ev();
extern void _ZN6S102C53v74Ev();
extern void _ZN6S102C53v75Ev();
extern void _ZN6S102C53v76Ev();
extern void _ZN6S102C53v77Ev();
extern void _ZN6S102C53v78Ev();
extern void _ZN6S102C53v79Ev();
extern void _ZN6S102C53v80Ev();
extern void _ZN6S102C53v81Ev();
extern void _ZN6S102C53v82Ev();
extern void _ZN6S102C53v83Ev();
extern void _ZN6S102C53v84Ev();
extern void _ZN6S102C53v85Ev();
extern void _ZN6S102C53v86Ev();
extern void _ZN6S102C53v87Ev();
extern void _ZN6S102C53v88Ev();
extern void _ZN6S102C53v89Ev();
extern void _ZN6S102C53v90Ev();
extern void _ZN6S102C53v91Ev();
extern void _ZN6S102C53v92Ev();
extern void _ZN6S102C53v93Ev();
extern void _ZN6S102C53v94Ev();
extern void _ZN6S102C53v95Ev();
extern void _ZN6S102C53v96Ev();
extern void _ZN6S102C53v97Ev();
extern void _ZN6S102C53v98Ev();
extern void _ZN6S102C53v99Ev();
extern void _ZN6S102C54v100Ev();
extern void _ZN6S102C54v101Ev();
extern void _ZN6S102C54v102Ev();
extern void _ZN6S102C54v103Ev();
extern void _ZN6S102C54v104Ev();
extern void _ZN6S102C54v105Ev();
extern void _ZN6S102C54v106Ev();
extern void _ZN6S102C54v107Ev();
extern void _ZN6S102C54v108Ev();
extern void _ZN6S102C54v109Ev();
extern void _ZN6S102C54v110Ev();
extern void _ZN6S102C54v111Ev();
extern void _ZN6S102C54v112Ev();
extern void _ZN6S102C54v113Ev();
extern void _ZN6S102C54v114Ev();
extern void _ZN6S102C54v115Ev();
extern void _ZN6S102C54v116Ev();
extern void _ZN6S102C54v117Ev();
extern void _ZN6S102C54v118Ev();
extern void _ZN6S102C54v119Ev();
extern void _ZN6S102C54v120Ev();
extern void _ZN6S102C54v121Ev();
extern void _ZN6S102C54v122Ev();
extern void _ZN6S102C54v123Ev();
extern void _ZN6S102C54v124Ev();
extern void _ZN6S102C54v125Ev();
extern void _ZN6S102C54v126Ev();
extern void _ZN6S102C54v127Ev();
extern void _ZN6S102C54v128Ev();
extern void _ZN6S102C54v129Ev();
extern void _ZN6S102C54v130Ev();
extern void _ZN6S102C54v131Ev();
extern void _ZN6S102C54v132Ev();
extern void _ZN6S102C54v133Ev();
extern void _ZN6S102C54v134Ev();
extern void _ZN6S102C54v135Ev();
extern void _ZN6S102C54v136Ev();
extern void _ZN6S102C54v137Ev();
extern void _ZN6S102C54v138Ev();
extern void _ZN6S102C54v139Ev();
extern void _ZN6S102C54v140Ev();
extern void _ZN6S102C54v141Ev();
extern void _ZN6S102C54v142Ev();
extern void _ZN6S102C54v143Ev();
extern void _ZN6S102C54v144Ev();
extern void _ZN6S102C54v145Ev();
extern void _ZN6S102C54v146Ev();
extern void _ZN6S102C44v147Ev();
extern void _ZN6S102C44v148Ev();
extern void _ZN6S102C44v149Ev();
extern void _ZN6S102C44v150Ev();
extern void _ZN6S102C44v151Ev();
extern void _ZN6S102C44v152Ev();
extern void _ZN6S102C44v153Ev();
extern void _ZN6S102C44v154Ev();
extern void _ZN6S102C44v155Ev();
extern void _ZN6S102C44v156Ev();
extern void _ZN6S102C44v157Ev();
extern void _ZN6S102C44v158Ev();
extern void _ZN6S102C44v159Ev();
extern void _ZN6S102C44v160Ev();
extern void _ZN6S102C44v161Ev();
extern void _ZN6S102C44v162Ev();
extern void _ZN6S102C44v163Ev();
extern void _ZN6S102C44v164Ev();
extern void _ZN6S102C44v165Ev();
extern void _ZN6S102C44v166Ev();
extern void _ZN6S102C44v167Ev();
extern void _ZN6S102C44v168Ev();
extern void _ZN6S102C44v169Ev();
extern void _ZN6S102C44v170Ev();
extern void _ZN6S102C44v171Ev();
extern void _ZN6S102C44v172Ev();
extern void _ZN6S102C44v173Ev();
extern void _ZN6S102C44v174Ev();
extern void _ZN6S102C44v175Ev();
extern void _ZN6S102C44v176Ev();
extern void _ZN6S102C44v177Ev();
extern void _ZN6S102C44v178Ev();
extern void _ZN6S102C44v179Ev();
extern void _ZN6S102C44v180Ev();
extern void _ZN6S102C44v181Ev();
extern void _ZN6S102C44v182Ev();
extern void _ZN6S102C44v183Ev();
extern void _ZN6S102C44v184Ev();
extern void _ZN6S102C44v185Ev();
static  VTBL_ENTRY vtc_S102C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C4[0]),
  (VTBL_ENTRY)&_ZN6S102C4D1Ev,
  (VTBL_ENTRY)&_ZN6S102C4D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
  (VTBL_ENTRY)&_ZN6S102C63v69Ev,
  (VTBL_ENTRY)&_ZN6S102C63v70Ev,
  (VTBL_ENTRY)&_ZN6S102C53v71Ev,
  (VTBL_ENTRY)&_ZN6S102C53v72Ev,
  (VTBL_ENTRY)&_ZN6S102C53v73Ev,
  (VTBL_ENTRY)&_ZN6S102C53v74Ev,
  (VTBL_ENTRY)&_ZN6S102C53v75Ev,
  (VTBL_ENTRY)&_ZN6S102C53v76Ev,
  (VTBL_ENTRY)&_ZN6S102C53v77Ev,
  (VTBL_ENTRY)&_ZN6S102C53v78Ev,
  (VTBL_ENTRY)&_ZN6S102C53v79Ev,
  (VTBL_ENTRY)&_ZN6S102C53v80Ev,
  (VTBL_ENTRY)&_ZN6S102C53v81Ev,
  (VTBL_ENTRY)&_ZN6S102C53v82Ev,
  (VTBL_ENTRY)&_ZN6S102C53v83Ev,
  (VTBL_ENTRY)&_ZN6S102C53v84Ev,
  (VTBL_ENTRY)&_ZN6S102C53v85Ev,
  (VTBL_ENTRY)&_ZN6S102C53v86Ev,
  (VTBL_ENTRY)&_ZN6S102C53v87Ev,
  (VTBL_ENTRY)&_ZN6S102C53v88Ev,
  (VTBL_ENTRY)&_ZN6S102C53v89Ev,
  (VTBL_ENTRY)&_ZN6S102C53v90Ev,
  (VTBL_ENTRY)&_ZN6S102C53v91Ev,
  (VTBL_ENTRY)&_ZN6S102C53v92Ev,
  (VTBL_ENTRY)&_ZN6S102C53v93Ev,
  (VTBL_ENTRY)&_ZN6S102C53v94Ev,
  (VTBL_ENTRY)&_ZN6S102C53v95Ev,
  (VTBL_ENTRY)&_ZN6S102C53v96Ev,
  (VTBL_ENTRY)&_ZN6S102C53v97Ev,
  (VTBL_ENTRY)&_ZN6S102C53v98Ev,
  (VTBL_ENTRY)&_ZN6S102C53v99Ev,
  (VTBL_ENTRY)&_ZN6S102C54v100Ev,
  (VTBL_ENTRY)&_ZN6S102C54v101Ev,
  (VTBL_ENTRY)&_ZN6S102C54v102Ev,
  (VTBL_ENTRY)&_ZN6S102C54v103Ev,
  (VTBL_ENTRY)&_ZN6S102C54v104Ev,
  (VTBL_ENTRY)&_ZN6S102C54v105Ev,
  (VTBL_ENTRY)&_ZN6S102C54v106Ev,
  (VTBL_ENTRY)&_ZN6S102C54v107Ev,
  (VTBL_ENTRY)&_ZN6S102C54v108Ev,
  (VTBL_ENTRY)&_ZN6S102C54v109Ev,
  (VTBL_ENTRY)&_ZN6S102C54v110Ev,
  (VTBL_ENTRY)&_ZN6S102C54v111Ev,
  (VTBL_ENTRY)&_ZN6S102C54v112Ev,
  (VTBL_ENTRY)&_ZN6S102C54v113Ev,
  (VTBL_ENTRY)&_ZN6S102C54v114Ev,
  (VTBL_ENTRY)&_ZN6S102C54v115Ev,
  (VTBL_ENTRY)&_ZN6S102C54v116Ev,
  (VTBL_ENTRY)&_ZN6S102C54v117Ev,
  (VTBL_ENTRY)&_ZN6S102C54v118Ev,
  (VTBL_ENTRY)&_ZN6S102C54v119Ev,
  (VTBL_ENTRY)&_ZN6S102C54v120Ev,
  (VTBL_ENTRY)&_ZN6S102C54v121Ev,
  (VTBL_ENTRY)&_ZN6S102C54v122Ev,
  (VTBL_ENTRY)&_ZN6S102C54v123Ev,
  (VTBL_ENTRY)&_ZN6S102C54v124Ev,
  (VTBL_ENTRY)&_ZN6S102C54v125Ev,
  (VTBL_ENTRY)&_ZN6S102C54v126Ev,
  (VTBL_ENTRY)&_ZN6S102C54v127Ev,
  (VTBL_ENTRY)&_ZN6S102C54v128Ev,
  (VTBL_ENTRY)&_ZN6S102C54v129Ev,
  (VTBL_ENTRY)&_ZN6S102C54v130Ev,
  (VTBL_ENTRY)&_ZN6S102C54v131Ev,
  (VTBL_ENTRY)&_ZN6S102C54v132Ev,
  (VTBL_ENTRY)&_ZN6S102C54v133Ev,
  (VTBL_ENTRY)&_ZN6S102C54v134Ev,
  (VTBL_ENTRY)&_ZN6S102C54v135Ev,
  (VTBL_ENTRY)&_ZN6S102C54v136Ev,
  (VTBL_ENTRY)&_ZN6S102C54v137Ev,
  (VTBL_ENTRY)&_ZN6S102C54v138Ev,
  (VTBL_ENTRY)&_ZN6S102C54v139Ev,
  (VTBL_ENTRY)&_ZN6S102C54v140Ev,
  (VTBL_ENTRY)&_ZN6S102C54v141Ev,
  (VTBL_ENTRY)&_ZN6S102C54v142Ev,
  (VTBL_ENTRY)&_ZN6S102C54v143Ev,
  (VTBL_ENTRY)&_ZN6S102C54v144Ev,
  (VTBL_ENTRY)&_ZN6S102C54v145Ev,
  (VTBL_ENTRY)&_ZN6S102C54v146Ev,
  (VTBL_ENTRY)&_ZN6S102C44v147Ev,
  (VTBL_ENTRY)&_ZN6S102C44v148Ev,
  (VTBL_ENTRY)&_ZN6S102C44v149Ev,
  (VTBL_ENTRY)&_ZN6S102C44v150Ev,
  (VTBL_ENTRY)&_ZN6S102C44v151Ev,
  (VTBL_ENTRY)&_ZN6S102C44v152Ev,
  (VTBL_ENTRY)&_ZN6S102C44v153Ev,
  (VTBL_ENTRY)&_ZN6S102C44v154Ev,
  (VTBL_ENTRY)&_ZN6S102C44v155Ev,
  (VTBL_ENTRY)&_ZN6S102C44v156Ev,
  (VTBL_ENTRY)&_ZN6S102C44v157Ev,
  (VTBL_ENTRY)&_ZN6S102C44v158Ev,
  (VTBL_ENTRY)&_ZN6S102C44v159Ev,
  (VTBL_ENTRY)&_ZN6S102C44v160Ev,
  (VTBL_ENTRY)&_ZN6S102C44v161Ev,
  (VTBL_ENTRY)&_ZN6S102C44v162Ev,
  (VTBL_ENTRY)&_ZN6S102C44v163Ev,
  (VTBL_ENTRY)&_ZN6S102C44v164Ev,
  (VTBL_ENTRY)&_ZN6S102C44v165Ev,
  (VTBL_ENTRY)&_ZN6S102C44v166Ev,
  (VTBL_ENTRY)&_ZN6S102C44v167Ev,
  (VTBL_ENTRY)&_ZN6S102C44v168Ev,
  (VTBL_ENTRY)&_ZN6S102C44v169Ev,
  (VTBL_ENTRY)&_ZN6S102C44v170Ev,
  (VTBL_ENTRY)&_ZN6S102C44v171Ev,
  (VTBL_ENTRY)&_ZN6S102C44v172Ev,
  (VTBL_ENTRY)&_ZN6S102C44v173Ev,
  (VTBL_ENTRY)&_ZN6S102C44v174Ev,
  (VTBL_ENTRY)&_ZN6S102C44v175Ev,
  (VTBL_ENTRY)&_ZN6S102C44v176Ev,
  (VTBL_ENTRY)&_ZN6S102C44v177Ev,
  (VTBL_ENTRY)&_ZN6S102C44v178Ev,
  (VTBL_ENTRY)&_ZN6S102C44v179Ev,
  (VTBL_ENTRY)&_ZN6S102C44v180Ev,
  (VTBL_ENTRY)&_ZN6S102C44v181Ev,
  (VTBL_ENTRY)&_ZN6S102C44v182Ev,
  (VTBL_ENTRY)&_ZN6S102C44v183Ev,
  (VTBL_ENTRY)&_ZN6S102C44v184Ev,
  (VTBL_ENTRY)&_ZN6S102C44v185Ev,
};
extern VTBL_ENTRY _ZTI6S102C4[];
extern  VTBL_ENTRY _ZTV6S102C4[];
Class_Descriptor cd_S102C4 = {  "S102C4", // class name
  bases_S102C4, 3,
  &(vtc_S102C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S102C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S102C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C3  : S102C4 {
  unsigned int s102c3f0:1;
  unsigned int s102c3f1:1;
  unsigned int s102c3f2:1;
  unsigned int s102c3f3:1;
  unsigned int s102c3f4:1;
  unsigned int s102c3f5:1;
  void *s102c3f6[8];
  ::S80C21_nt s102c3f7;
  ::S80C21_nt s102c3f8;
  ::S80C21_nt s102c3f9;
  virtual  ~S102C3(); // _ZN6S102C3D1Ev
  virtual void  v186(); // _ZN6S102C34v186Ev
  virtual void  v187(); // _ZN6S102C34v187Ev
  virtual void  v188(); // _ZN6S102C34v188Ev
  virtual void  v189(); // _ZN6S102C34v189Ev
  virtual void  v190(); // _ZN6S102C34v190Ev
  virtual void  v191(); // _ZN6S102C34v191Ev
  virtual void  v192(); // _ZN6S102C34v192Ev
  virtual void  v193(); // _ZN6S102C34v193Ev
  virtual void  v194(); // _ZN6S102C34v194Ev
  virtual void  v195(); // _ZN6S102C34v195Ev
  virtual void  v196(); // _ZN6S102C34v196Ev
  virtual void  v197(); // _ZN6S102C34v197Ev
  virtual void  v198(); // _ZN6S102C34v198Ev
  virtual void  v199(); // _ZN6S102C34v199Ev
  virtual void  v200(); // _ZN6S102C34v200Ev
  virtual void  v201(); // _ZN6S102C34v201Ev
  virtual void  v202(); // _ZN6S102C34v202Ev
  virtual void  v203(); // _ZN6S102C34v203Ev
  virtual void  v204(); // _ZN6S102C34v204Ev
  virtual void  v205(); // _ZN6S102C34v205Ev
  virtual void  v206(); // _ZN6S102C34v206Ev
  virtual void  v207(); // _ZN6S102C34v207Ev
  virtual void  v208(); // _ZN6S102C34v208Ev
  S102C3(); // tgen
};
//SIG(-1 S102C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S102C3 ::~S102C3(){ note_dtor("S102C3", this);}
void  S102C3 ::v186(){vfunc_called(this, "_ZN6S102C34v186Ev");}
void  S102C3 ::v187(){vfunc_called(this, "_ZN6S102C34v187Ev");}
void  S102C3 ::v188(){vfunc_called(this, "_ZN6S102C34v188Ev");}
void  S102C3 ::v189(){vfunc_called(this, "_ZN6S102C34v189Ev");}
void  S102C3 ::v190(){vfunc_called(this, "_ZN6S102C34v190Ev");}
void  S102C3 ::v191(){vfunc_called(this, "_ZN6S102C34v191Ev");}
void  S102C3 ::v192(){vfunc_called(this, "_ZN6S102C34v192Ev");}
void  S102C3 ::v193(){vfunc_called(this, "_ZN6S102C34v193Ev");}
void  S102C3 ::v194(){vfunc_called(this, "_ZN6S102C34v194Ev");}
void  S102C3 ::v195(){vfunc_called(this, "_ZN6S102C34v195Ev");}
void  S102C3 ::v196(){vfunc_called(this, "_ZN6S102C34v196Ev");}
void  S102C3 ::v197(){vfunc_called(this, "_ZN6S102C34v197Ev");}
void  S102C3 ::v198(){vfunc_called(this, "_ZN6S102C34v198Ev");}
void  S102C3 ::v199(){vfunc_called(this, "_ZN6S102C34v199Ev");}
void  S102C3 ::v200(){vfunc_called(this, "_ZN6S102C34v200Ev");}
void  S102C3 ::v201(){vfunc_called(this, "_ZN6S102C34v201Ev");}
void  S102C3 ::v202(){vfunc_called(this, "_ZN6S102C34v202Ev");}
void  S102C3 ::v203(){vfunc_called(this, "_ZN6S102C34v203Ev");}
void  S102C3 ::v204(){vfunc_called(this, "_ZN6S102C34v204Ev");}
void  S102C3 ::v205(){vfunc_called(this, "_ZN6S102C34v205Ev");}
void  S102C3 ::v206(){vfunc_called(this, "_ZN6S102C34v206Ev");}
void  S102C3 ::v207(){vfunc_called(this, "_ZN6S102C34v207Ev");}
void  S102C3 ::v208(){vfunc_called(this, "_ZN6S102C34v208Ev");}
S102C3 ::S102C3(){ note_ctor("S102C3", this);} // tgen

static void Test_S102C3()
{
  extern Class_Descriptor cd_S102C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S102C3, buf);
    S102C3 *dp, &lv = *(dp=new (buf) S102C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S102C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C3)");
    check_base_class_offset(lv, (S102C7*)(S102C6*)(S102C5*)(S102C4*), 0, "S102C3");
    check_base_class_offset(lv, (S102C6*)(S102C5*)(S102C4*), 0, "S102C3");
    check_base_class_offset(lv, (S102C5*)(S102C4*), 0, "S102C3");
    check_base_class_offset(lv, (S102C4*), 0, "S102C3");
    set_bf_and_test(lv, s102c3f0, ABISELECT(744,544), 0, 1, 1, "S102C3");
    set_bf_and_test(lv, s102c3f1, ABISELECT(744,544), 1, 1, 1, "S102C3");
    set_bf_and_test(lv, s102c3f2, ABISELECT(744,544), 2, 1, 1, "S102C3");
    set_bf_and_test(lv, s102c3f3, ABISELECT(744,544), 3, 1, 1, "S102C3");
    set_bf_and_test(lv, s102c3f4, ABISELECT(744,544), 4, 1, 1, "S102C3");
    set_bf_and_test(lv, s102c3f5, ABISELECT(744,544), 5, 1, 1, "S102C3");
    check_field_offset(lv, s102c3f6, ABISELECT(752,548), "S102C3.s102c3f6");
    check_field_offset(lv, s102c3f7, ABISELECT(816,580), "S102C3.s102c3f7");
    check_field_offset(lv, s102c3f8, ABISELECT(832,592), "S102C3.s102c3f8");
    check_field_offset(lv, s102c3f9, ABISELECT(848,604), "S102C3.s102c3f9");
    test_class_info(&lv, &cd_S102C3);
    dp->~S102C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C3(Test_S102C3, "S102C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S102C3C1Ev();
extern void _ZN6S102C3D1Ev();
Name_Map name_map_S102C3[] = {
  NSPAIR(_ZN6S102C3C1Ev),
  NSPAIR(_ZN6S102C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S102C7;
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
extern Class_Descriptor cd_S102C6;
extern VTBL_ENTRY _ZTI6S102C6[];
extern  VTBL_ENTRY _ZTV6S102C6[];
extern Class_Descriptor cd_S102C5;
extern VTBL_ENTRY _ZTI6S102C5[];
extern  VTBL_ENTRY _ZTV6S102C5[];
extern Class_Descriptor cd_S102C4;
extern VTBL_ENTRY _ZTI6S102C4[];
extern  VTBL_ENTRY _ZTV6S102C4[];
static Base_Class bases_S102C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S102C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S102C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S102C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S102C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S102C3[];
extern void _ZN6S102C3D1Ev();
extern void _ZN6S102C3D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
extern void _ZN6S102C63v69Ev();
extern void _ZN6S102C63v70Ev();
extern void _ZN6S102C53v71Ev();
extern void _ZN6S102C53v72Ev();
extern void _ZN6S102C53v73Ev();
extern void _ZN6S102C53v74Ev();
extern void _ZN6S102C53v75Ev();
extern void _ZN6S102C53v76Ev();
extern void _ZN6S102C53v77Ev();
extern void _ZN6S102C53v78Ev();
extern void _ZN6S102C53v79Ev();
extern void _ZN6S102C53v80Ev();
extern void _ZN6S102C53v81Ev();
extern void _ZN6S102C53v82Ev();
extern void _ZN6S102C53v83Ev();
extern void _ZN6S102C53v84Ev();
extern void _ZN6S102C53v85Ev();
extern void _ZN6S102C53v86Ev();
extern void _ZN6S102C53v87Ev();
extern void _ZN6S102C53v88Ev();
extern void _ZN6S102C53v89Ev();
extern void _ZN6S102C53v90Ev();
extern void _ZN6S102C53v91Ev();
extern void _ZN6S102C53v92Ev();
extern void _ZN6S102C53v93Ev();
extern void _ZN6S102C53v94Ev();
extern void _ZN6S102C53v95Ev();
extern void _ZN6S102C53v96Ev();
extern void _ZN6S102C53v97Ev();
extern void _ZN6S102C53v98Ev();
extern void _ZN6S102C53v99Ev();
extern void _ZN6S102C54v100Ev();
extern void _ZN6S102C54v101Ev();
extern void _ZN6S102C54v102Ev();
extern void _ZN6S102C54v103Ev();
extern void _ZN6S102C54v104Ev();
extern void _ZN6S102C54v105Ev();
extern void _ZN6S102C54v106Ev();
extern void _ZN6S102C54v107Ev();
extern void _ZN6S102C54v108Ev();
extern void _ZN6S102C54v109Ev();
extern void _ZN6S102C54v110Ev();
extern void _ZN6S102C54v111Ev();
extern void _ZN6S102C54v112Ev();
extern void _ZN6S102C54v113Ev();
extern void _ZN6S102C54v114Ev();
extern void _ZN6S102C54v115Ev();
extern void _ZN6S102C54v116Ev();
extern void _ZN6S102C54v117Ev();
extern void _ZN6S102C54v118Ev();
extern void _ZN6S102C54v119Ev();
extern void _ZN6S102C54v120Ev();
extern void _ZN6S102C54v121Ev();
extern void _ZN6S102C54v122Ev();
extern void _ZN6S102C54v123Ev();
extern void _ZN6S102C54v124Ev();
extern void _ZN6S102C54v125Ev();
extern void _ZN6S102C54v126Ev();
extern void _ZN6S102C54v127Ev();
extern void _ZN6S102C54v128Ev();
extern void _ZN6S102C54v129Ev();
extern void _ZN6S102C54v130Ev();
extern void _ZN6S102C54v131Ev();
extern void _ZN6S102C54v132Ev();
extern void _ZN6S102C54v133Ev();
extern void _ZN6S102C54v134Ev();
extern void _ZN6S102C54v135Ev();
extern void _ZN6S102C54v136Ev();
extern void _ZN6S102C54v137Ev();
extern void _ZN6S102C54v138Ev();
extern void _ZN6S102C54v139Ev();
extern void _ZN6S102C54v140Ev();
extern void _ZN6S102C54v141Ev();
extern void _ZN6S102C54v142Ev();
extern void _ZN6S102C54v143Ev();
extern void _ZN6S102C54v144Ev();
extern void _ZN6S102C54v145Ev();
extern void _ZN6S102C54v146Ev();
extern void _ZN6S102C44v147Ev();
extern void _ZN6S102C44v148Ev();
extern void _ZN6S102C44v149Ev();
extern void _ZN6S102C44v150Ev();
extern void _ZN6S102C44v151Ev();
extern void _ZN6S102C44v152Ev();
extern void _ZN6S102C44v153Ev();
extern void _ZN6S102C44v154Ev();
extern void _ZN6S102C44v155Ev();
extern void _ZN6S102C44v156Ev();
extern void _ZN6S102C44v157Ev();
extern void _ZN6S102C44v158Ev();
extern void _ZN6S102C44v159Ev();
extern void _ZN6S102C44v160Ev();
extern void _ZN6S102C44v161Ev();
extern void _ZN6S102C44v162Ev();
extern void _ZN6S102C44v163Ev();
extern void _ZN6S102C44v164Ev();
extern void _ZN6S102C44v165Ev();
extern void _ZN6S102C44v166Ev();
extern void _ZN6S102C44v167Ev();
extern void _ZN6S102C44v168Ev();
extern void _ZN6S102C44v169Ev();
extern void _ZN6S102C44v170Ev();
extern void _ZN6S102C44v171Ev();
extern void _ZN6S102C44v172Ev();
extern void _ZN6S102C44v173Ev();
extern void _ZN6S102C44v174Ev();
extern void _ZN6S102C44v175Ev();
extern void _ZN6S102C44v176Ev();
extern void _ZN6S102C44v177Ev();
extern void _ZN6S102C44v178Ev();
extern void _ZN6S102C44v179Ev();
extern void _ZN6S102C44v180Ev();
extern void _ZN6S102C44v181Ev();
extern void _ZN6S102C44v182Ev();
extern void _ZN6S102C44v183Ev();
extern void _ZN6S102C44v184Ev();
extern void _ZN6S102C44v185Ev();
extern void _ZN6S102C34v186Ev();
extern void _ZN6S102C34v187Ev();
extern void _ZN6S102C34v188Ev();
extern void _ZN6S102C34v189Ev();
extern void _ZN6S102C34v190Ev();
extern void _ZN6S102C34v191Ev();
extern void _ZN6S102C34v192Ev();
extern void _ZN6S102C34v193Ev();
extern void _ZN6S102C34v194Ev();
extern void _ZN6S102C34v195Ev();
extern void _ZN6S102C34v196Ev();
extern void _ZN6S102C34v197Ev();
extern void _ZN6S102C34v198Ev();
extern void _ZN6S102C34v199Ev();
extern void _ZN6S102C34v200Ev();
extern void _ZN6S102C34v201Ev();
extern void _ZN6S102C34v202Ev();
extern void _ZN6S102C34v203Ev();
extern void _ZN6S102C34v204Ev();
extern void _ZN6S102C34v205Ev();
extern void _ZN6S102C34v206Ev();
extern void _ZN6S102C34v207Ev();
extern void _ZN6S102C34v208Ev();
static  VTBL_ENTRY vtc_S102C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C3[0]),
  (VTBL_ENTRY)&_ZN6S102C3D1Ev,
  (VTBL_ENTRY)&_ZN6S102C3D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
  (VTBL_ENTRY)&_ZN6S102C63v69Ev,
  (VTBL_ENTRY)&_ZN6S102C63v70Ev,
  (VTBL_ENTRY)&_ZN6S102C53v71Ev,
  (VTBL_ENTRY)&_ZN6S102C53v72Ev,
  (VTBL_ENTRY)&_ZN6S102C53v73Ev,
  (VTBL_ENTRY)&_ZN6S102C53v74Ev,
  (VTBL_ENTRY)&_ZN6S102C53v75Ev,
  (VTBL_ENTRY)&_ZN6S102C53v76Ev,
  (VTBL_ENTRY)&_ZN6S102C53v77Ev,
  (VTBL_ENTRY)&_ZN6S102C53v78Ev,
  (VTBL_ENTRY)&_ZN6S102C53v79Ev,
  (VTBL_ENTRY)&_ZN6S102C53v80Ev,
  (VTBL_ENTRY)&_ZN6S102C53v81Ev,
  (VTBL_ENTRY)&_ZN6S102C53v82Ev,
  (VTBL_ENTRY)&_ZN6S102C53v83Ev,
  (VTBL_ENTRY)&_ZN6S102C53v84Ev,
  (VTBL_ENTRY)&_ZN6S102C53v85Ev,
  (VTBL_ENTRY)&_ZN6S102C53v86Ev,
  (VTBL_ENTRY)&_ZN6S102C53v87Ev,
  (VTBL_ENTRY)&_ZN6S102C53v88Ev,
  (VTBL_ENTRY)&_ZN6S102C53v89Ev,
  (VTBL_ENTRY)&_ZN6S102C53v90Ev,
  (VTBL_ENTRY)&_ZN6S102C53v91Ev,
  (VTBL_ENTRY)&_ZN6S102C53v92Ev,
  (VTBL_ENTRY)&_ZN6S102C53v93Ev,
  (VTBL_ENTRY)&_ZN6S102C53v94Ev,
  (VTBL_ENTRY)&_ZN6S102C53v95Ev,
  (VTBL_ENTRY)&_ZN6S102C53v96Ev,
  (VTBL_ENTRY)&_ZN6S102C53v97Ev,
  (VTBL_ENTRY)&_ZN6S102C53v98Ev,
  (VTBL_ENTRY)&_ZN6S102C53v99Ev,
  (VTBL_ENTRY)&_ZN6S102C54v100Ev,
  (VTBL_ENTRY)&_ZN6S102C54v101Ev,
  (VTBL_ENTRY)&_ZN6S102C54v102Ev,
  (VTBL_ENTRY)&_ZN6S102C54v103Ev,
  (VTBL_ENTRY)&_ZN6S102C54v104Ev,
  (VTBL_ENTRY)&_ZN6S102C54v105Ev,
  (VTBL_ENTRY)&_ZN6S102C54v106Ev,
  (VTBL_ENTRY)&_ZN6S102C54v107Ev,
  (VTBL_ENTRY)&_ZN6S102C54v108Ev,
  (VTBL_ENTRY)&_ZN6S102C54v109Ev,
  (VTBL_ENTRY)&_ZN6S102C54v110Ev,
  (VTBL_ENTRY)&_ZN6S102C54v111Ev,
  (VTBL_ENTRY)&_ZN6S102C54v112Ev,
  (VTBL_ENTRY)&_ZN6S102C54v113Ev,
  (VTBL_ENTRY)&_ZN6S102C54v114Ev,
  (VTBL_ENTRY)&_ZN6S102C54v115Ev,
  (VTBL_ENTRY)&_ZN6S102C54v116Ev,
  (VTBL_ENTRY)&_ZN6S102C54v117Ev,
  (VTBL_ENTRY)&_ZN6S102C54v118Ev,
  (VTBL_ENTRY)&_ZN6S102C54v119Ev,
  (VTBL_ENTRY)&_ZN6S102C54v120Ev,
  (VTBL_ENTRY)&_ZN6S102C54v121Ev,
  (VTBL_ENTRY)&_ZN6S102C54v122Ev,
  (VTBL_ENTRY)&_ZN6S102C54v123Ev,
  (VTBL_ENTRY)&_ZN6S102C54v124Ev,
  (VTBL_ENTRY)&_ZN6S102C54v125Ev,
  (VTBL_ENTRY)&_ZN6S102C54v126Ev,
  (VTBL_ENTRY)&_ZN6S102C54v127Ev,
  (VTBL_ENTRY)&_ZN6S102C54v128Ev,
  (VTBL_ENTRY)&_ZN6S102C54v129Ev,
  (VTBL_ENTRY)&_ZN6S102C54v130Ev,
  (VTBL_ENTRY)&_ZN6S102C54v131Ev,
  (VTBL_ENTRY)&_ZN6S102C54v132Ev,
  (VTBL_ENTRY)&_ZN6S102C54v133Ev,
  (VTBL_ENTRY)&_ZN6S102C54v134Ev,
  (VTBL_ENTRY)&_ZN6S102C54v135Ev,
  (VTBL_ENTRY)&_ZN6S102C54v136Ev,
  (VTBL_ENTRY)&_ZN6S102C54v137Ev,
  (VTBL_ENTRY)&_ZN6S102C54v138Ev,
  (VTBL_ENTRY)&_ZN6S102C54v139Ev,
  (VTBL_ENTRY)&_ZN6S102C54v140Ev,
  (VTBL_ENTRY)&_ZN6S102C54v141Ev,
  (VTBL_ENTRY)&_ZN6S102C54v142Ev,
  (VTBL_ENTRY)&_ZN6S102C54v143Ev,
  (VTBL_ENTRY)&_ZN6S102C54v144Ev,
  (VTBL_ENTRY)&_ZN6S102C54v145Ev,
  (VTBL_ENTRY)&_ZN6S102C54v146Ev,
  (VTBL_ENTRY)&_ZN6S102C44v147Ev,
  (VTBL_ENTRY)&_ZN6S102C44v148Ev,
  (VTBL_ENTRY)&_ZN6S102C44v149Ev,
  (VTBL_ENTRY)&_ZN6S102C44v150Ev,
  (VTBL_ENTRY)&_ZN6S102C44v151Ev,
  (VTBL_ENTRY)&_ZN6S102C44v152Ev,
  (VTBL_ENTRY)&_ZN6S102C44v153Ev,
  (VTBL_ENTRY)&_ZN6S102C44v154Ev,
  (VTBL_ENTRY)&_ZN6S102C44v155Ev,
  (VTBL_ENTRY)&_ZN6S102C44v156Ev,
  (VTBL_ENTRY)&_ZN6S102C44v157Ev,
  (VTBL_ENTRY)&_ZN6S102C44v158Ev,
  (VTBL_ENTRY)&_ZN6S102C44v159Ev,
  (VTBL_ENTRY)&_ZN6S102C44v160Ev,
  (VTBL_ENTRY)&_ZN6S102C44v161Ev,
  (VTBL_ENTRY)&_ZN6S102C44v162Ev,
  (VTBL_ENTRY)&_ZN6S102C44v163Ev,
  (VTBL_ENTRY)&_ZN6S102C44v164Ev,
  (VTBL_ENTRY)&_ZN6S102C44v165Ev,
  (VTBL_ENTRY)&_ZN6S102C44v166Ev,
  (VTBL_ENTRY)&_ZN6S102C44v167Ev,
  (VTBL_ENTRY)&_ZN6S102C44v168Ev,
  (VTBL_ENTRY)&_ZN6S102C44v169Ev,
  (VTBL_ENTRY)&_ZN6S102C44v170Ev,
  (VTBL_ENTRY)&_ZN6S102C44v171Ev,
  (VTBL_ENTRY)&_ZN6S102C44v172Ev,
  (VTBL_ENTRY)&_ZN6S102C44v173Ev,
  (VTBL_ENTRY)&_ZN6S102C44v174Ev,
  (VTBL_ENTRY)&_ZN6S102C44v175Ev,
  (VTBL_ENTRY)&_ZN6S102C44v176Ev,
  (VTBL_ENTRY)&_ZN6S102C44v177Ev,
  (VTBL_ENTRY)&_ZN6S102C44v178Ev,
  (VTBL_ENTRY)&_ZN6S102C44v179Ev,
  (VTBL_ENTRY)&_ZN6S102C44v180Ev,
  (VTBL_ENTRY)&_ZN6S102C44v181Ev,
  (VTBL_ENTRY)&_ZN6S102C44v182Ev,
  (VTBL_ENTRY)&_ZN6S102C44v183Ev,
  (VTBL_ENTRY)&_ZN6S102C44v184Ev,
  (VTBL_ENTRY)&_ZN6S102C44v185Ev,
  (VTBL_ENTRY)&_ZN6S102C34v186Ev,
  (VTBL_ENTRY)&_ZN6S102C34v187Ev,
  (VTBL_ENTRY)&_ZN6S102C34v188Ev,
  (VTBL_ENTRY)&_ZN6S102C34v189Ev,
  (VTBL_ENTRY)&_ZN6S102C34v190Ev,
  (VTBL_ENTRY)&_ZN6S102C34v191Ev,
  (VTBL_ENTRY)&_ZN6S102C34v192Ev,
  (VTBL_ENTRY)&_ZN6S102C34v193Ev,
  (VTBL_ENTRY)&_ZN6S102C34v194Ev,
  (VTBL_ENTRY)&_ZN6S102C34v195Ev,
  (VTBL_ENTRY)&_ZN6S102C34v196Ev,
  (VTBL_ENTRY)&_ZN6S102C34v197Ev,
  (VTBL_ENTRY)&_ZN6S102C34v198Ev,
  (VTBL_ENTRY)&_ZN6S102C34v199Ev,
  (VTBL_ENTRY)&_ZN6S102C34v200Ev,
  (VTBL_ENTRY)&_ZN6S102C34v201Ev,
  (VTBL_ENTRY)&_ZN6S102C34v202Ev,
  (VTBL_ENTRY)&_ZN6S102C34v203Ev,
  (VTBL_ENTRY)&_ZN6S102C34v204Ev,
  (VTBL_ENTRY)&_ZN6S102C34v205Ev,
  (VTBL_ENTRY)&_ZN6S102C34v206Ev,
  (VTBL_ENTRY)&_ZN6S102C34v207Ev,
  (VTBL_ENTRY)&_ZN6S102C34v208Ev,
};
extern VTBL_ENTRY _ZTI6S102C3[];
extern  VTBL_ENTRY _ZTV6S102C3[];
Class_Descriptor cd_S102C3 = {  "S102C3", // class name
  bases_S102C3, 4,
  &(vtc_S102C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S102C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S102C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C2  : S102C3 {
  virtual  ~S102C2(); // _ZN6S102C2D1Ev
  virtual void  v209(); // _ZN6S102C24v209Ev
  virtual void  v210(); // _ZN6S102C24v210Ev
  virtual void  v211(); // _ZN6S102C24v211Ev
  S102C2(); // tgen
};
//SIG(-1 S102C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3}


 S102C2 ::~S102C2(){ note_dtor("S102C2", this);}
void  S102C2 ::v209(){vfunc_called(this, "_ZN6S102C24v209Ev");}
void  S102C2 ::v210(){vfunc_called(this, "_ZN6S102C24v210Ev");}
void  S102C2 ::v211(){vfunc_called(this, "_ZN6S102C24v211Ev");}
S102C2 ::S102C2(){ note_ctor("S102C2", this);} // tgen

static void Test_S102C2()
{
  extern Class_Descriptor cd_S102C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S102C2, buf);
    S102C2 *dp, &lv = *(dp=new (buf) S102C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S102C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C2)");
    check_base_class_offset(lv, (S102C7*)(S102C6*)(S102C5*)(S102C4*)(S102C3*), 0, "S102C2");
    check_base_class_offset(lv, (S102C6*)(S102C5*)(S102C4*)(S102C3*), 0, "S102C2");
    check_base_class_offset(lv, (S102C5*)(S102C4*)(S102C3*), 0, "S102C2");
    check_base_class_offset(lv, (S102C4*)(S102C3*), 0, "S102C2");
    check_base_class_offset(lv, (S102C3*), 0, "S102C2");
    test_class_info(&lv, &cd_S102C2);
    dp->~S102C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C2(Test_S102C2, "S102C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S102C2C1Ev();
extern void _ZN6S102C2D1Ev();
Name_Map name_map_S102C2[] = {
  NSPAIR(_ZN6S102C2C1Ev),
  NSPAIR(_ZN6S102C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S102C7;
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
extern Class_Descriptor cd_S102C6;
extern VTBL_ENTRY _ZTI6S102C6[];
extern  VTBL_ENTRY _ZTV6S102C6[];
extern Class_Descriptor cd_S102C5;
extern VTBL_ENTRY _ZTI6S102C5[];
extern  VTBL_ENTRY _ZTV6S102C5[];
extern Class_Descriptor cd_S102C4;
extern VTBL_ENTRY _ZTI6S102C4[];
extern  VTBL_ENTRY _ZTV6S102C4[];
extern Class_Descriptor cd_S102C3;
extern VTBL_ENTRY _ZTI6S102C3[];
extern  VTBL_ENTRY _ZTV6S102C3[];
static Base_Class bases_S102C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S102C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S102C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S102C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S102C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S102C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S102C2[];
extern void _ZN6S102C2D1Ev();
extern void _ZN6S102C2D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
extern void _ZN6S102C63v69Ev();
extern void _ZN6S102C63v70Ev();
extern void _ZN6S102C53v71Ev();
extern void _ZN6S102C53v72Ev();
extern void _ZN6S102C53v73Ev();
extern void _ZN6S102C53v74Ev();
extern void _ZN6S102C53v75Ev();
extern void _ZN6S102C53v76Ev();
extern void _ZN6S102C53v77Ev();
extern void _ZN6S102C53v78Ev();
extern void _ZN6S102C53v79Ev();
extern void _ZN6S102C53v80Ev();
extern void _ZN6S102C53v81Ev();
extern void _ZN6S102C53v82Ev();
extern void _ZN6S102C53v83Ev();
extern void _ZN6S102C53v84Ev();
extern void _ZN6S102C53v85Ev();
extern void _ZN6S102C53v86Ev();
extern void _ZN6S102C53v87Ev();
extern void _ZN6S102C53v88Ev();
extern void _ZN6S102C53v89Ev();
extern void _ZN6S102C53v90Ev();
extern void _ZN6S102C53v91Ev();
extern void _ZN6S102C53v92Ev();
extern void _ZN6S102C53v93Ev();
extern void _ZN6S102C53v94Ev();
extern void _ZN6S102C53v95Ev();
extern void _ZN6S102C53v96Ev();
extern void _ZN6S102C53v97Ev();
extern void _ZN6S102C53v98Ev();
extern void _ZN6S102C53v99Ev();
extern void _ZN6S102C54v100Ev();
extern void _ZN6S102C54v101Ev();
extern void _ZN6S102C54v102Ev();
extern void _ZN6S102C54v103Ev();
extern void _ZN6S102C54v104Ev();
extern void _ZN6S102C54v105Ev();
extern void _ZN6S102C54v106Ev();
extern void _ZN6S102C54v107Ev();
extern void _ZN6S102C54v108Ev();
extern void _ZN6S102C54v109Ev();
extern void _ZN6S102C54v110Ev();
extern void _ZN6S102C54v111Ev();
extern void _ZN6S102C54v112Ev();
extern void _ZN6S102C54v113Ev();
extern void _ZN6S102C54v114Ev();
extern void _ZN6S102C54v115Ev();
extern void _ZN6S102C54v116Ev();
extern void _ZN6S102C54v117Ev();
extern void _ZN6S102C54v118Ev();
extern void _ZN6S102C54v119Ev();
extern void _ZN6S102C54v120Ev();
extern void _ZN6S102C54v121Ev();
extern void _ZN6S102C54v122Ev();
extern void _ZN6S102C54v123Ev();
extern void _ZN6S102C54v124Ev();
extern void _ZN6S102C54v125Ev();
extern void _ZN6S102C54v126Ev();
extern void _ZN6S102C54v127Ev();
extern void _ZN6S102C54v128Ev();
extern void _ZN6S102C54v129Ev();
extern void _ZN6S102C54v130Ev();
extern void _ZN6S102C54v131Ev();
extern void _ZN6S102C54v132Ev();
extern void _ZN6S102C54v133Ev();
extern void _ZN6S102C54v134Ev();
extern void _ZN6S102C54v135Ev();
extern void _ZN6S102C54v136Ev();
extern void _ZN6S102C54v137Ev();
extern void _ZN6S102C54v138Ev();
extern void _ZN6S102C54v139Ev();
extern void _ZN6S102C54v140Ev();
extern void _ZN6S102C54v141Ev();
extern void _ZN6S102C54v142Ev();
extern void _ZN6S102C54v143Ev();
extern void _ZN6S102C54v144Ev();
extern void _ZN6S102C54v145Ev();
extern void _ZN6S102C54v146Ev();
extern void _ZN6S102C44v147Ev();
extern void _ZN6S102C44v148Ev();
extern void _ZN6S102C44v149Ev();
extern void _ZN6S102C44v150Ev();
extern void _ZN6S102C44v151Ev();
extern void _ZN6S102C44v152Ev();
extern void _ZN6S102C44v153Ev();
extern void _ZN6S102C44v154Ev();
extern void _ZN6S102C44v155Ev();
extern void _ZN6S102C44v156Ev();
extern void _ZN6S102C44v157Ev();
extern void _ZN6S102C44v158Ev();
extern void _ZN6S102C44v159Ev();
extern void _ZN6S102C44v160Ev();
extern void _ZN6S102C44v161Ev();
extern void _ZN6S102C44v162Ev();
extern void _ZN6S102C44v163Ev();
extern void _ZN6S102C44v164Ev();
extern void _ZN6S102C44v165Ev();
extern void _ZN6S102C44v166Ev();
extern void _ZN6S102C44v167Ev();
extern void _ZN6S102C44v168Ev();
extern void _ZN6S102C44v169Ev();
extern void _ZN6S102C44v170Ev();
extern void _ZN6S102C44v171Ev();
extern void _ZN6S102C44v172Ev();
extern void _ZN6S102C44v173Ev();
extern void _ZN6S102C44v174Ev();
extern void _ZN6S102C44v175Ev();
extern void _ZN6S102C44v176Ev();
extern void _ZN6S102C44v177Ev();
extern void _ZN6S102C44v178Ev();
extern void _ZN6S102C44v179Ev();
extern void _ZN6S102C44v180Ev();
extern void _ZN6S102C44v181Ev();
extern void _ZN6S102C44v182Ev();
extern void _ZN6S102C44v183Ev();
extern void _ZN6S102C44v184Ev();
extern void _ZN6S102C44v185Ev();
extern void _ZN6S102C34v186Ev();
extern void _ZN6S102C34v187Ev();
extern void _ZN6S102C34v188Ev();
extern void _ZN6S102C34v189Ev();
extern void _ZN6S102C34v190Ev();
extern void _ZN6S102C34v191Ev();
extern void _ZN6S102C34v192Ev();
extern void _ZN6S102C34v193Ev();
extern void _ZN6S102C34v194Ev();
extern void _ZN6S102C34v195Ev();
extern void _ZN6S102C34v196Ev();
extern void _ZN6S102C34v197Ev();
extern void _ZN6S102C34v198Ev();
extern void _ZN6S102C34v199Ev();
extern void _ZN6S102C34v200Ev();
extern void _ZN6S102C34v201Ev();
extern void _ZN6S102C34v202Ev();
extern void _ZN6S102C34v203Ev();
extern void _ZN6S102C34v204Ev();
extern void _ZN6S102C34v205Ev();
extern void _ZN6S102C34v206Ev();
extern void _ZN6S102C34v207Ev();
extern void _ZN6S102C34v208Ev();
extern void _ZN6S102C24v209Ev();
extern void _ZN6S102C24v210Ev();
extern void _ZN6S102C24v211Ev();
static  VTBL_ENTRY vtc_S102C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C2[0]),
  (VTBL_ENTRY)&_ZN6S102C2D1Ev,
  (VTBL_ENTRY)&_ZN6S102C2D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
  (VTBL_ENTRY)&_ZN6S102C63v69Ev,
  (VTBL_ENTRY)&_ZN6S102C63v70Ev,
  (VTBL_ENTRY)&_ZN6S102C53v71Ev,
  (VTBL_ENTRY)&_ZN6S102C53v72Ev,
  (VTBL_ENTRY)&_ZN6S102C53v73Ev,
  (VTBL_ENTRY)&_ZN6S102C53v74Ev,
  (VTBL_ENTRY)&_ZN6S102C53v75Ev,
  (VTBL_ENTRY)&_ZN6S102C53v76Ev,
  (VTBL_ENTRY)&_ZN6S102C53v77Ev,
  (VTBL_ENTRY)&_ZN6S102C53v78Ev,
  (VTBL_ENTRY)&_ZN6S102C53v79Ev,
  (VTBL_ENTRY)&_ZN6S102C53v80Ev,
  (VTBL_ENTRY)&_ZN6S102C53v81Ev,
  (VTBL_ENTRY)&_ZN6S102C53v82Ev,
  (VTBL_ENTRY)&_ZN6S102C53v83Ev,
  (VTBL_ENTRY)&_ZN6S102C53v84Ev,
  (VTBL_ENTRY)&_ZN6S102C53v85Ev,
  (VTBL_ENTRY)&_ZN6S102C53v86Ev,
  (VTBL_ENTRY)&_ZN6S102C53v87Ev,
  (VTBL_ENTRY)&_ZN6S102C53v88Ev,
  (VTBL_ENTRY)&_ZN6S102C53v89Ev,
  (VTBL_ENTRY)&_ZN6S102C53v90Ev,
  (VTBL_ENTRY)&_ZN6S102C53v91Ev,
  (VTBL_ENTRY)&_ZN6S102C53v92Ev,
  (VTBL_ENTRY)&_ZN6S102C53v93Ev,
  (VTBL_ENTRY)&_ZN6S102C53v94Ev,
  (VTBL_ENTRY)&_ZN6S102C53v95Ev,
  (VTBL_ENTRY)&_ZN6S102C53v96Ev,
  (VTBL_ENTRY)&_ZN6S102C53v97Ev,
  (VTBL_ENTRY)&_ZN6S102C53v98Ev,
  (VTBL_ENTRY)&_ZN6S102C53v99Ev,
  (VTBL_ENTRY)&_ZN6S102C54v100Ev,
  (VTBL_ENTRY)&_ZN6S102C54v101Ev,
  (VTBL_ENTRY)&_ZN6S102C54v102Ev,
  (VTBL_ENTRY)&_ZN6S102C54v103Ev,
  (VTBL_ENTRY)&_ZN6S102C54v104Ev,
  (VTBL_ENTRY)&_ZN6S102C54v105Ev,
  (VTBL_ENTRY)&_ZN6S102C54v106Ev,
  (VTBL_ENTRY)&_ZN6S102C54v107Ev,
  (VTBL_ENTRY)&_ZN6S102C54v108Ev,
  (VTBL_ENTRY)&_ZN6S102C54v109Ev,
  (VTBL_ENTRY)&_ZN6S102C54v110Ev,
  (VTBL_ENTRY)&_ZN6S102C54v111Ev,
  (VTBL_ENTRY)&_ZN6S102C54v112Ev,
  (VTBL_ENTRY)&_ZN6S102C54v113Ev,
  (VTBL_ENTRY)&_ZN6S102C54v114Ev,
  (VTBL_ENTRY)&_ZN6S102C54v115Ev,
  (VTBL_ENTRY)&_ZN6S102C54v116Ev,
  (VTBL_ENTRY)&_ZN6S102C54v117Ev,
  (VTBL_ENTRY)&_ZN6S102C54v118Ev,
  (VTBL_ENTRY)&_ZN6S102C54v119Ev,
  (VTBL_ENTRY)&_ZN6S102C54v120Ev,
  (VTBL_ENTRY)&_ZN6S102C54v121Ev,
  (VTBL_ENTRY)&_ZN6S102C54v122Ev,
  (VTBL_ENTRY)&_ZN6S102C54v123Ev,
  (VTBL_ENTRY)&_ZN6S102C54v124Ev,
  (VTBL_ENTRY)&_ZN6S102C54v125Ev,
  (VTBL_ENTRY)&_ZN6S102C54v126Ev,
  (VTBL_ENTRY)&_ZN6S102C54v127Ev,
  (VTBL_ENTRY)&_ZN6S102C54v128Ev,
  (VTBL_ENTRY)&_ZN6S102C54v129Ev,
  (VTBL_ENTRY)&_ZN6S102C54v130Ev,
  (VTBL_ENTRY)&_ZN6S102C54v131Ev,
  (VTBL_ENTRY)&_ZN6S102C54v132Ev,
  (VTBL_ENTRY)&_ZN6S102C54v133Ev,
  (VTBL_ENTRY)&_ZN6S102C54v134Ev,
  (VTBL_ENTRY)&_ZN6S102C54v135Ev,
  (VTBL_ENTRY)&_ZN6S102C54v136Ev,
  (VTBL_ENTRY)&_ZN6S102C54v137Ev,
  (VTBL_ENTRY)&_ZN6S102C54v138Ev,
  (VTBL_ENTRY)&_ZN6S102C54v139Ev,
  (VTBL_ENTRY)&_ZN6S102C54v140Ev,
  (VTBL_ENTRY)&_ZN6S102C54v141Ev,
  (VTBL_ENTRY)&_ZN6S102C54v142Ev,
  (VTBL_ENTRY)&_ZN6S102C54v143Ev,
  (VTBL_ENTRY)&_ZN6S102C54v144Ev,
  (VTBL_ENTRY)&_ZN6S102C54v145Ev,
  (VTBL_ENTRY)&_ZN6S102C54v146Ev,
  (VTBL_ENTRY)&_ZN6S102C44v147Ev,
  (VTBL_ENTRY)&_ZN6S102C44v148Ev,
  (VTBL_ENTRY)&_ZN6S102C44v149Ev,
  (VTBL_ENTRY)&_ZN6S102C44v150Ev,
  (VTBL_ENTRY)&_ZN6S102C44v151Ev,
  (VTBL_ENTRY)&_ZN6S102C44v152Ev,
  (VTBL_ENTRY)&_ZN6S102C44v153Ev,
  (VTBL_ENTRY)&_ZN6S102C44v154Ev,
  (VTBL_ENTRY)&_ZN6S102C44v155Ev,
  (VTBL_ENTRY)&_ZN6S102C44v156Ev,
  (VTBL_ENTRY)&_ZN6S102C44v157Ev,
  (VTBL_ENTRY)&_ZN6S102C44v158Ev,
  (VTBL_ENTRY)&_ZN6S102C44v159Ev,
  (VTBL_ENTRY)&_ZN6S102C44v160Ev,
  (VTBL_ENTRY)&_ZN6S102C44v161Ev,
  (VTBL_ENTRY)&_ZN6S102C44v162Ev,
  (VTBL_ENTRY)&_ZN6S102C44v163Ev,
  (VTBL_ENTRY)&_ZN6S102C44v164Ev,
  (VTBL_ENTRY)&_ZN6S102C44v165Ev,
  (VTBL_ENTRY)&_ZN6S102C44v166Ev,
  (VTBL_ENTRY)&_ZN6S102C44v167Ev,
  (VTBL_ENTRY)&_ZN6S102C44v168Ev,
  (VTBL_ENTRY)&_ZN6S102C44v169Ev,
  (VTBL_ENTRY)&_ZN6S102C44v170Ev,
  (VTBL_ENTRY)&_ZN6S102C44v171Ev,
  (VTBL_ENTRY)&_ZN6S102C44v172Ev,
  (VTBL_ENTRY)&_ZN6S102C44v173Ev,
  (VTBL_ENTRY)&_ZN6S102C44v174Ev,
  (VTBL_ENTRY)&_ZN6S102C44v175Ev,
  (VTBL_ENTRY)&_ZN6S102C44v176Ev,
  (VTBL_ENTRY)&_ZN6S102C44v177Ev,
  (VTBL_ENTRY)&_ZN6S102C44v178Ev,
  (VTBL_ENTRY)&_ZN6S102C44v179Ev,
  (VTBL_ENTRY)&_ZN6S102C44v180Ev,
  (VTBL_ENTRY)&_ZN6S102C44v181Ev,
  (VTBL_ENTRY)&_ZN6S102C44v182Ev,
  (VTBL_ENTRY)&_ZN6S102C44v183Ev,
  (VTBL_ENTRY)&_ZN6S102C44v184Ev,
  (VTBL_ENTRY)&_ZN6S102C44v185Ev,
  (VTBL_ENTRY)&_ZN6S102C34v186Ev,
  (VTBL_ENTRY)&_ZN6S102C34v187Ev,
  (VTBL_ENTRY)&_ZN6S102C34v188Ev,
  (VTBL_ENTRY)&_ZN6S102C34v189Ev,
  (VTBL_ENTRY)&_ZN6S102C34v190Ev,
  (VTBL_ENTRY)&_ZN6S102C34v191Ev,
  (VTBL_ENTRY)&_ZN6S102C34v192Ev,
  (VTBL_ENTRY)&_ZN6S102C34v193Ev,
  (VTBL_ENTRY)&_ZN6S102C34v194Ev,
  (VTBL_ENTRY)&_ZN6S102C34v195Ev,
  (VTBL_ENTRY)&_ZN6S102C34v196Ev,
  (VTBL_ENTRY)&_ZN6S102C34v197Ev,
  (VTBL_ENTRY)&_ZN6S102C34v198Ev,
  (VTBL_ENTRY)&_ZN6S102C34v199Ev,
  (VTBL_ENTRY)&_ZN6S102C34v200Ev,
  (VTBL_ENTRY)&_ZN6S102C34v201Ev,
  (VTBL_ENTRY)&_ZN6S102C34v202Ev,
  (VTBL_ENTRY)&_ZN6S102C34v203Ev,
  (VTBL_ENTRY)&_ZN6S102C34v204Ev,
  (VTBL_ENTRY)&_ZN6S102C34v205Ev,
  (VTBL_ENTRY)&_ZN6S102C34v206Ev,
  (VTBL_ENTRY)&_ZN6S102C34v207Ev,
  (VTBL_ENTRY)&_ZN6S102C34v208Ev,
  (VTBL_ENTRY)&_ZN6S102C24v209Ev,
  (VTBL_ENTRY)&_ZN6S102C24v210Ev,
  (VTBL_ENTRY)&_ZN6S102C24v211Ev,
};
extern VTBL_ENTRY _ZTI6S102C2[];
extern  VTBL_ENTRY _ZTV6S102C2[];
Class_Descriptor cd_S102C2 = {  "S102C2", // class name
  bases_S102C2, 5,
  &(vtc_S102C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S102C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S102C2),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S102C1  : S102C2 {
  void *s102c1f0[5];
  unsigned int s102c1f1:1;
  unsigned int s102c1f2:1;
  unsigned int s102c1f3:1;
  unsigned int s102c1f4:1;
  unsigned int s102c1f5:1;
  unsigned int s102c1f6:1;
  void *s102c1f7[2];
  virtual  ~S102C1(); // _ZN6S102C1D1Ev
  virtual void  v1(); // _ZN6S102C12v1Ev
  virtual void  v2(); // _ZN6S102C12v2Ev
  virtual void  v3(); // _ZN6S102C12v3Ev
  virtual void  v4(); // _ZN6S102C12v4Ev
  S102C1(); // tgen
};
//SIG(1 S102C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v69 v70} vd v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v209 v210 v211} vd v1 v2 v3 v4 Fp[5] Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[2]}


 S102C1 ::~S102C1(){ note_dtor("S102C1", this);}
void  S102C1 ::v1(){vfunc_called(this, "_ZN6S102C12v1Ev");}
void  S102C1 ::v2(){vfunc_called(this, "_ZN6S102C12v2Ev");}
void  S102C1 ::v3(){vfunc_called(this, "_ZN6S102C12v3Ev");}
void  S102C1 ::v4(){vfunc_called(this, "_ZN6S102C12v4Ev");}
S102C1 ::S102C1(){ note_ctor("S102C1", this);} // tgen

static void Test_S102C1()
{
  extern Class_Descriptor cd_S102C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(117,163)];
    init_test(&cd_S102C1, buf);
    S102C1 *dp, &lv = *(dp=new (buf) S102C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(928,648), "sizeof(S102C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S102C1)");
    check_base_class_offset(lv, (S102C7*)(S102C6*)(S102C5*)(S102C4*)(S102C3*)(S102C2*), 0, "S102C1");
    check_base_class_offset(lv, (S102C6*)(S102C5*)(S102C4*)(S102C3*)(S102C2*), 0, "S102C1");
    check_base_class_offset(lv, (S102C5*)(S102C4*)(S102C3*)(S102C2*), 0, "S102C1");
    check_base_class_offset(lv, (S102C4*)(S102C3*)(S102C2*), 0, "S102C1");
    check_base_class_offset(lv, (S102C3*)(S102C2*), 0, "S102C1");
    check_base_class_offset(lv, (S102C2*), 0, "S102C1");
    check_field_offset(lv, s102c1f0, ABISELECT(864,616), "S102C1.s102c1f0");
    set_bf_and_test(lv, s102c1f1, ABISELECT(904,636), 0, 1, 1, "S102C1");
    set_bf_and_test(lv, s102c1f2, ABISELECT(904,636), 1, 1, 1, "S102C1");
    set_bf_and_test(lv, s102c1f3, ABISELECT(904,636), 2, 1, 1, "S102C1");
    set_bf_and_test(lv, s102c1f4, ABISELECT(904,636), 3, 1, 1, "S102C1");
    set_bf_and_test(lv, s102c1f5, ABISELECT(904,636), 4, 1, 1, "S102C1");
    set_bf_and_test(lv, s102c1f6, ABISELECT(904,636), 5, 1, 1, "S102C1");
    check_field_offset(lv, s102c1f7, ABISELECT(912,640), "S102C1.s102c1f7");
    test_class_info(&lv, &cd_S102C1);
    dp->~S102C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS102C1(Test_S102C1, "S102C1", ABISELECT(928,648));

#else // __cplusplus

extern void _ZN6S102C1C1Ev();
extern void _ZN6S102C1D1Ev();
Name_Map name_map_S102C1[] = {
  NSPAIR(_ZN6S102C1C1Ev),
  NSPAIR(_ZN6S102C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S102C7;
extern VTBL_ENTRY _ZTI6S102C7[];
extern  VTBL_ENTRY _ZTV6S102C7[];
extern Class_Descriptor cd_S102C6;
extern VTBL_ENTRY _ZTI6S102C6[];
extern  VTBL_ENTRY _ZTV6S102C6[];
extern Class_Descriptor cd_S102C5;
extern VTBL_ENTRY _ZTI6S102C5[];
extern  VTBL_ENTRY _ZTV6S102C5[];
extern Class_Descriptor cd_S102C4;
extern VTBL_ENTRY _ZTI6S102C4[];
extern  VTBL_ENTRY _ZTV6S102C4[];
extern Class_Descriptor cd_S102C3;
extern VTBL_ENTRY _ZTI6S102C3[];
extern  VTBL_ENTRY _ZTV6S102C3[];
extern Class_Descriptor cd_S102C2;
extern VTBL_ENTRY _ZTI6S102C2[];
extern  VTBL_ENTRY _ZTV6S102C2[];
static Base_Class bases_S102C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S102C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S102C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S102C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S102C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S102C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S102C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S102C1[];
extern void _ZN6S102C1D1Ev();
extern void _ZN6S102C1D0Ev();
extern void _ZN6S102C72v5Ev();
extern void _ZN6S102C72v6Ev();
extern void _ZN6S102C72v7Ev();
extern void _ZN6S102C72v8Ev();
extern void _ZN6S102C72v9Ev();
extern void _ZN6S102C73v10Ev();
extern void _ZN6S102C73v11Ev();
extern void _ZN6S102C73v12Ev();
extern void _ZN6S102C73v13Ev();
extern void _ZN6S102C73v14Ev();
extern void _ZN6S102C73v15Ev();
extern void _ZN6S102C73v16Ev();
extern void _ZN6S102C73v17Ev();
extern void _ZN6S102C73v18Ev();
extern void _ZN6S102C73v19Ev();
extern void _ZN6S102C73v20Ev();
extern void _ZN6S102C73v21Ev();
extern void _ZN6S102C73v22Ev();
extern void _ZN6S102C73v23Ev();
extern void _ZN6S102C73v24Ev();
extern void _ZN6S102C73v25Ev();
extern void _ZN6S102C73v26Ev();
extern void _ZN6S102C73v27Ev();
extern void _ZN6S102C73v28Ev();
extern void _ZN6S102C73v29Ev();
extern void _ZN6S102C73v30Ev();
extern void _ZN6S102C73v31Ev();
extern void _ZN6S102C73v32Ev();
extern void _ZN6S102C73v33Ev();
extern void _ZN6S102C73v34Ev();
extern void _ZN6S102C73v35Ev();
extern void _ZN6S102C73v36Ev();
extern void _ZN6S102C73v37Ev();
extern void _ZN6S102C73v38Ev();
extern void _ZN6S102C73v39Ev();
extern void _ZN6S102C73v40Ev();
extern void _ZN6S102C73v41Ev();
extern void _ZN6S102C73v42Ev();
extern void _ZN6S102C73v43Ev();
extern void _ZN6S102C73v44Ev();
extern void _ZN6S102C73v45Ev();
extern void _ZN6S102C73v46Ev();
extern void _ZN6S102C73v47Ev();
extern void _ZN6S102C73v48Ev();
extern void _ZN6S102C73v49Ev();
extern void _ZN6S102C73v50Ev();
extern void _ZN6S102C73v51Ev();
extern void _ZN6S102C73v52Ev();
extern void _ZN6S102C73v53Ev();
extern void _ZN6S102C73v54Ev();
extern void _ZN6S102C73v55Ev();
extern void _ZN6S102C73v56Ev();
extern void _ZN6S102C73v57Ev();
extern void _ZN6S102C73v58Ev();
extern void _ZN6S102C73v59Ev();
extern void _ZN6S102C73v60Ev();
extern void _ZN6S102C73v61Ev();
extern void _ZN6S102C73v62Ev();
extern void _ZN6S102C73v63Ev();
extern void _ZN6S102C73v64Ev();
extern void _ZN6S102C73v65Ev();
extern void _ZN6S102C73v66Ev();
extern void _ZN6S102C73v67Ev();
extern void _ZN6S102C73v68Ev();
extern void _ZN6S102C63v69Ev();
extern void _ZN6S102C63v70Ev();
extern void _ZN6S102C53v71Ev();
extern void _ZN6S102C53v72Ev();
extern void _ZN6S102C53v73Ev();
extern void _ZN6S102C53v74Ev();
extern void _ZN6S102C53v75Ev();
extern void _ZN6S102C53v76Ev();
extern void _ZN6S102C53v77Ev();
extern void _ZN6S102C53v78Ev();
extern void _ZN6S102C53v79Ev();
extern void _ZN6S102C53v80Ev();
extern void _ZN6S102C53v81Ev();
extern void _ZN6S102C53v82Ev();
extern void _ZN6S102C53v83Ev();
extern void _ZN6S102C53v84Ev();
extern void _ZN6S102C53v85Ev();
extern void _ZN6S102C53v86Ev();
extern void _ZN6S102C53v87Ev();
extern void _ZN6S102C53v88Ev();
extern void _ZN6S102C53v89Ev();
extern void _ZN6S102C53v90Ev();
extern void _ZN6S102C53v91Ev();
extern void _ZN6S102C53v92Ev();
extern void _ZN6S102C53v93Ev();
extern void _ZN6S102C53v94Ev();
extern void _ZN6S102C53v95Ev();
extern void _ZN6S102C53v96Ev();
extern void _ZN6S102C53v97Ev();
extern void _ZN6S102C53v98Ev();
extern void _ZN6S102C53v99Ev();
extern void _ZN6S102C54v100Ev();
extern void _ZN6S102C54v101Ev();
extern void _ZN6S102C54v102Ev();
extern void _ZN6S102C54v103Ev();
extern void _ZN6S102C54v104Ev();
extern void _ZN6S102C54v105Ev();
extern void _ZN6S102C54v106Ev();
extern void _ZN6S102C54v107Ev();
extern void _ZN6S102C54v108Ev();
extern void _ZN6S102C54v109Ev();
extern void _ZN6S102C54v110Ev();
extern void _ZN6S102C54v111Ev();
extern void _ZN6S102C54v112Ev();
extern void _ZN6S102C54v113Ev();
extern void _ZN6S102C54v114Ev();
extern void _ZN6S102C54v115Ev();
extern void _ZN6S102C54v116Ev();
extern void _ZN6S102C54v117Ev();
extern void _ZN6S102C54v118Ev();
extern void _ZN6S102C54v119Ev();
extern void _ZN6S102C54v120Ev();
extern void _ZN6S102C54v121Ev();
extern void _ZN6S102C54v122Ev();
extern void _ZN6S102C54v123Ev();
extern void _ZN6S102C54v124Ev();
extern void _ZN6S102C54v125Ev();
extern void _ZN6S102C54v126Ev();
extern void _ZN6S102C54v127Ev();
extern void _ZN6S102C54v128Ev();
extern void _ZN6S102C54v129Ev();
extern void _ZN6S102C54v130Ev();
extern void _ZN6S102C54v131Ev();
extern void _ZN6S102C54v132Ev();
extern void _ZN6S102C54v133Ev();
extern void _ZN6S102C54v134Ev();
extern void _ZN6S102C54v135Ev();
extern void _ZN6S102C54v136Ev();
extern void _ZN6S102C54v137Ev();
extern void _ZN6S102C54v138Ev();
extern void _ZN6S102C54v139Ev();
extern void _ZN6S102C54v140Ev();
extern void _ZN6S102C54v141Ev();
extern void _ZN6S102C54v142Ev();
extern void _ZN6S102C54v143Ev();
extern void _ZN6S102C54v144Ev();
extern void _ZN6S102C54v145Ev();
extern void _ZN6S102C54v146Ev();
extern void _ZN6S102C44v147Ev();
extern void _ZN6S102C44v148Ev();
extern void _ZN6S102C44v149Ev();
extern void _ZN6S102C44v150Ev();
extern void _ZN6S102C44v151Ev();
extern void _ZN6S102C44v152Ev();
extern void _ZN6S102C44v153Ev();
extern void _ZN6S102C44v154Ev();
extern void _ZN6S102C44v155Ev();
extern void _ZN6S102C44v156Ev();
extern void _ZN6S102C44v157Ev();
extern void _ZN6S102C44v158Ev();
extern void _ZN6S102C44v159Ev();
extern void _ZN6S102C44v160Ev();
extern void _ZN6S102C44v161Ev();
extern void _ZN6S102C44v162Ev();
extern void _ZN6S102C44v163Ev();
extern void _ZN6S102C44v164Ev();
extern void _ZN6S102C44v165Ev();
extern void _ZN6S102C44v166Ev();
extern void _ZN6S102C44v167Ev();
extern void _ZN6S102C44v168Ev();
extern void _ZN6S102C44v169Ev();
extern void _ZN6S102C44v170Ev();
extern void _ZN6S102C44v171Ev();
extern void _ZN6S102C44v172Ev();
extern void _ZN6S102C44v173Ev();
extern void _ZN6S102C44v174Ev();
extern void _ZN6S102C44v175Ev();
extern void _ZN6S102C44v176Ev();
extern void _ZN6S102C44v177Ev();
extern void _ZN6S102C44v178Ev();
extern void _ZN6S102C44v179Ev();
extern void _ZN6S102C44v180Ev();
extern void _ZN6S102C44v181Ev();
extern void _ZN6S102C44v182Ev();
extern void _ZN6S102C44v183Ev();
extern void _ZN6S102C44v184Ev();
extern void _ZN6S102C44v185Ev();
extern void _ZN6S102C34v186Ev();
extern void _ZN6S102C34v187Ev();
extern void _ZN6S102C34v188Ev();
extern void _ZN6S102C34v189Ev();
extern void _ZN6S102C34v190Ev();
extern void _ZN6S102C34v191Ev();
extern void _ZN6S102C34v192Ev();
extern void _ZN6S102C34v193Ev();
extern void _ZN6S102C34v194Ev();
extern void _ZN6S102C34v195Ev();
extern void _ZN6S102C34v196Ev();
extern void _ZN6S102C34v197Ev();
extern void _ZN6S102C34v198Ev();
extern void _ZN6S102C34v199Ev();
extern void _ZN6S102C34v200Ev();
extern void _ZN6S102C34v201Ev();
extern void _ZN6S102C34v202Ev();
extern void _ZN6S102C34v203Ev();
extern void _ZN6S102C34v204Ev();
extern void _ZN6S102C34v205Ev();
extern void _ZN6S102C34v206Ev();
extern void _ZN6S102C34v207Ev();
extern void _ZN6S102C34v208Ev();
extern void _ZN6S102C24v209Ev();
extern void _ZN6S102C24v210Ev();
extern void _ZN6S102C24v211Ev();
extern void _ZN6S102C12v1Ev();
extern void _ZN6S102C12v2Ev();
extern void _ZN6S102C12v3Ev();
extern void _ZN6S102C12v4Ev();
static  VTBL_ENTRY vtc_S102C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S102C1[0]),
  (VTBL_ENTRY)&_ZN6S102C1D1Ev,
  (VTBL_ENTRY)&_ZN6S102C1D0Ev,
  (VTBL_ENTRY)&_ZN6S102C72v5Ev,
  (VTBL_ENTRY)&_ZN6S102C72v6Ev,
  (VTBL_ENTRY)&_ZN6S102C72v7Ev,
  (VTBL_ENTRY)&_ZN6S102C72v8Ev,
  (VTBL_ENTRY)&_ZN6S102C72v9Ev,
  (VTBL_ENTRY)&_ZN6S102C73v10Ev,
  (VTBL_ENTRY)&_ZN6S102C73v11Ev,
  (VTBL_ENTRY)&_ZN6S102C73v12Ev,
  (VTBL_ENTRY)&_ZN6S102C73v13Ev,
  (VTBL_ENTRY)&_ZN6S102C73v14Ev,
  (VTBL_ENTRY)&_ZN6S102C73v15Ev,
  (VTBL_ENTRY)&_ZN6S102C73v16Ev,
  (VTBL_ENTRY)&_ZN6S102C73v17Ev,
  (VTBL_ENTRY)&_ZN6S102C73v18Ev,
  (VTBL_ENTRY)&_ZN6S102C73v19Ev,
  (VTBL_ENTRY)&_ZN6S102C73v20Ev,
  (VTBL_ENTRY)&_ZN6S102C73v21Ev,
  (VTBL_ENTRY)&_ZN6S102C73v22Ev,
  (VTBL_ENTRY)&_ZN6S102C73v23Ev,
  (VTBL_ENTRY)&_ZN6S102C73v24Ev,
  (VTBL_ENTRY)&_ZN6S102C73v25Ev,
  (VTBL_ENTRY)&_ZN6S102C73v26Ev,
  (VTBL_ENTRY)&_ZN6S102C73v27Ev,
  (VTBL_ENTRY)&_ZN6S102C73v28Ev,
  (VTBL_ENTRY)&_ZN6S102C73v29Ev,
  (VTBL_ENTRY)&_ZN6S102C73v30Ev,
  (VTBL_ENTRY)&_ZN6S102C73v31Ev,
  (VTBL_ENTRY)&_ZN6S102C73v32Ev,
  (VTBL_ENTRY)&_ZN6S102C73v33Ev,
  (VTBL_ENTRY)&_ZN6S102C73v34Ev,
  (VTBL_ENTRY)&_ZN6S102C73v35Ev,
  (VTBL_ENTRY)&_ZN6S102C73v36Ev,
  (VTBL_ENTRY)&_ZN6S102C73v37Ev,
  (VTBL_ENTRY)&_ZN6S102C73v38Ev,
  (VTBL_ENTRY)&_ZN6S102C73v39Ev,
  (VTBL_ENTRY)&_ZN6S102C73v40Ev,
  (VTBL_ENTRY)&_ZN6S102C73v41Ev,
  (VTBL_ENTRY)&_ZN6S102C73v42Ev,
  (VTBL_ENTRY)&_ZN6S102C73v43Ev,
  (VTBL_ENTRY)&_ZN6S102C73v44Ev,
  (VTBL_ENTRY)&_ZN6S102C73v45Ev,
  (VTBL_ENTRY)&_ZN6S102C73v46Ev,
  (VTBL_ENTRY)&_ZN6S102C73v47Ev,
  (VTBL_ENTRY)&_ZN6S102C73v48Ev,
  (VTBL_ENTRY)&_ZN6S102C73v49Ev,
  (VTBL_ENTRY)&_ZN6S102C73v50Ev,
  (VTBL_ENTRY)&_ZN6S102C73v51Ev,
  (VTBL_ENTRY)&_ZN6S102C73v52Ev,
  (VTBL_ENTRY)&_ZN6S102C73v53Ev,
  (VTBL_ENTRY)&_ZN6S102C73v54Ev,
  (VTBL_ENTRY)&_ZN6S102C73v55Ev,
  (VTBL_ENTRY)&_ZN6S102C73v56Ev,
  (VTBL_ENTRY)&_ZN6S102C73v57Ev,
  (VTBL_ENTRY)&_ZN6S102C73v58Ev,
  (VTBL_ENTRY)&_ZN6S102C73v59Ev,
  (VTBL_ENTRY)&_ZN6S102C73v60Ev,
  (VTBL_ENTRY)&_ZN6S102C73v61Ev,
  (VTBL_ENTRY)&_ZN6S102C73v62Ev,
  (VTBL_ENTRY)&_ZN6S102C73v63Ev,
  (VTBL_ENTRY)&_ZN6S102C73v64Ev,
  (VTBL_ENTRY)&_ZN6S102C73v65Ev,
  (VTBL_ENTRY)&_ZN6S102C73v66Ev,
  (VTBL_ENTRY)&_ZN6S102C73v67Ev,
  (VTBL_ENTRY)&_ZN6S102C73v68Ev,
  (VTBL_ENTRY)&_ZN6S102C63v69Ev,
  (VTBL_ENTRY)&_ZN6S102C63v70Ev,
  (VTBL_ENTRY)&_ZN6S102C53v71Ev,
  (VTBL_ENTRY)&_ZN6S102C53v72Ev,
  (VTBL_ENTRY)&_ZN6S102C53v73Ev,
  (VTBL_ENTRY)&_ZN6S102C53v74Ev,
  (VTBL_ENTRY)&_ZN6S102C53v75Ev,
  (VTBL_ENTRY)&_ZN6S102C53v76Ev,
  (VTBL_ENTRY)&_ZN6S102C53v77Ev,
  (VTBL_ENTRY)&_ZN6S102C53v78Ev,
  (VTBL_ENTRY)&_ZN6S102C53v79Ev,
  (VTBL_ENTRY)&_ZN6S102C53v80Ev,
  (VTBL_ENTRY)&_ZN6S102C53v81Ev,
  (VTBL_ENTRY)&_ZN6S102C53v82Ev,
  (VTBL_ENTRY)&_ZN6S102C53v83Ev,
  (VTBL_ENTRY)&_ZN6S102C53v84Ev,
  (VTBL_ENTRY)&_ZN6S102C53v85Ev,
  (VTBL_ENTRY)&_ZN6S102C53v86Ev,
  (VTBL_ENTRY)&_ZN6S102C53v87Ev,
  (VTBL_ENTRY)&_ZN6S102C53v88Ev,
  (VTBL_ENTRY)&_ZN6S102C53v89Ev,
  (VTBL_ENTRY)&_ZN6S102C53v90Ev,
  (VTBL_ENTRY)&_ZN6S102C53v91Ev,
  (VTBL_ENTRY)&_ZN6S102C53v92Ev,
  (VTBL_ENTRY)&_ZN6S102C53v93Ev,
  (VTBL_ENTRY)&_ZN6S102C53v94Ev,
  (VTBL_ENTRY)&_ZN6S102C53v95Ev,
  (VTBL_ENTRY)&_ZN6S102C53v96Ev,
  (VTBL_ENTRY)&_ZN6S102C53v97Ev,
  (VTBL_ENTRY)&_ZN6S102C53v98Ev,
  (VTBL_ENTRY)&_ZN6S102C53v99Ev,
  (VTBL_ENTRY)&_ZN6S102C54v100Ev,
  (VTBL_ENTRY)&_ZN6S102C54v101Ev,
  (VTBL_ENTRY)&_ZN6S102C54v102Ev,
  (VTBL_ENTRY)&_ZN6S102C54v103Ev,
  (VTBL_ENTRY)&_ZN6S102C54v104Ev,
  (VTBL_ENTRY)&_ZN6S102C54v105Ev,
  (VTBL_ENTRY)&_ZN6S102C54v106Ev,
  (VTBL_ENTRY)&_ZN6S102C54v107Ev,
  (VTBL_ENTRY)&_ZN6S102C54v108Ev,
  (VTBL_ENTRY)&_ZN6S102C54v109Ev,
  (VTBL_ENTRY)&_ZN6S102C54v110Ev,
  (VTBL_ENTRY)&_ZN6S102C54v111Ev,
  (VTBL_ENTRY)&_ZN6S102C54v112Ev,
  (VTBL_ENTRY)&_ZN6S102C54v113Ev,
  (VTBL_ENTRY)&_ZN6S102C54v114Ev,
  (VTBL_ENTRY)&_ZN6S102C54v115Ev,
  (VTBL_ENTRY)&_ZN6S102C54v116Ev,
  (VTBL_ENTRY)&_ZN6S102C54v117Ev,
  (VTBL_ENTRY)&_ZN6S102C54v118Ev,
  (VTBL_ENTRY)&_ZN6S102C54v119Ev,
  (VTBL_ENTRY)&_ZN6S102C54v120Ev,
  (VTBL_ENTRY)&_ZN6S102C54v121Ev,
  (VTBL_ENTRY)&_ZN6S102C54v122Ev,
  (VTBL_ENTRY)&_ZN6S102C54v123Ev,
  (VTBL_ENTRY)&_ZN6S102C54v124Ev,
  (VTBL_ENTRY)&_ZN6S102C54v125Ev,
  (VTBL_ENTRY)&_ZN6S102C54v126Ev,
  (VTBL_ENTRY)&_ZN6S102C54v127Ev,
  (VTBL_ENTRY)&_ZN6S102C54v128Ev,
  (VTBL_ENTRY)&_ZN6S102C54v129Ev,
  (VTBL_ENTRY)&_ZN6S102C54v130Ev,
  (VTBL_ENTRY)&_ZN6S102C54v131Ev,
  (VTBL_ENTRY)&_ZN6S102C54v132Ev,
  (VTBL_ENTRY)&_ZN6S102C54v133Ev,
  (VTBL_ENTRY)&_ZN6S102C54v134Ev,
  (VTBL_ENTRY)&_ZN6S102C54v135Ev,
  (VTBL_ENTRY)&_ZN6S102C54v136Ev,
  (VTBL_ENTRY)&_ZN6S102C54v137Ev,
  (VTBL_ENTRY)&_ZN6S102C54v138Ev,
  (VTBL_ENTRY)&_ZN6S102C54v139Ev,
  (VTBL_ENTRY)&_ZN6S102C54v140Ev,
  (VTBL_ENTRY)&_ZN6S102C54v141Ev,
  (VTBL_ENTRY)&_ZN6S102C54v142Ev,
  (VTBL_ENTRY)&_ZN6S102C54v143Ev,
  (VTBL_ENTRY)&_ZN6S102C54v144Ev,
  (VTBL_ENTRY)&_ZN6S102C54v145Ev,
  (VTBL_ENTRY)&_ZN6S102C54v146Ev,
  (VTBL_ENTRY)&_ZN6S102C44v147Ev,
  (VTBL_ENTRY)&_ZN6S102C44v148Ev,
  (VTBL_ENTRY)&_ZN6S102C44v149Ev,
  (VTBL_ENTRY)&_ZN6S102C44v150Ev,
  (VTBL_ENTRY)&_ZN6S102C44v151Ev,
  (VTBL_ENTRY)&_ZN6S102C44v152Ev,
  (VTBL_ENTRY)&_ZN6S102C44v153Ev,
  (VTBL_ENTRY)&_ZN6S102C44v154Ev,
  (VTBL_ENTRY)&_ZN6S102C44v155Ev,
  (VTBL_ENTRY)&_ZN6S102C44v156Ev,
  (VTBL_ENTRY)&_ZN6S102C44v157Ev,
  (VTBL_ENTRY)&_ZN6S102C44v158Ev,
  (VTBL_ENTRY)&_ZN6S102C44v159Ev,
  (VTBL_ENTRY)&_ZN6S102C44v160Ev,
  (VTBL_ENTRY)&_ZN6S102C44v161Ev,
  (VTBL_ENTRY)&_ZN6S102C44v162Ev,
  (VTBL_ENTRY)&_ZN6S102C44v163Ev,
  (VTBL_ENTRY)&_ZN6S102C44v164Ev,
  (VTBL_ENTRY)&_ZN6S102C44v165Ev,
  (VTBL_ENTRY)&_ZN6S102C44v166Ev,
  (VTBL_ENTRY)&_ZN6S102C44v167Ev,
  (VTBL_ENTRY)&_ZN6S102C44v168Ev,
  (VTBL_ENTRY)&_ZN6S102C44v169Ev,
  (VTBL_ENTRY)&_ZN6S102C44v170Ev,
  (VTBL_ENTRY)&_ZN6S102C44v171Ev,
  (VTBL_ENTRY)&_ZN6S102C44v172Ev,
  (VTBL_ENTRY)&_ZN6S102C44v173Ev,
  (VTBL_ENTRY)&_ZN6S102C44v174Ev,
  (VTBL_ENTRY)&_ZN6S102C44v175Ev,
  (VTBL_ENTRY)&_ZN6S102C44v176Ev,
  (VTBL_ENTRY)&_ZN6S102C44v177Ev,
  (VTBL_ENTRY)&_ZN6S102C44v178Ev,
  (VTBL_ENTRY)&_ZN6S102C44v179Ev,
  (VTBL_ENTRY)&_ZN6S102C44v180Ev,
  (VTBL_ENTRY)&_ZN6S102C44v181Ev,
  (VTBL_ENTRY)&_ZN6S102C44v182Ev,
  (VTBL_ENTRY)&_ZN6S102C44v183Ev,
  (VTBL_ENTRY)&_ZN6S102C44v184Ev,
  (VTBL_ENTRY)&_ZN6S102C44v185Ev,
  (VTBL_ENTRY)&_ZN6S102C34v186Ev,
  (VTBL_ENTRY)&_ZN6S102C34v187Ev,
  (VTBL_ENTRY)&_ZN6S102C34v188Ev,
  (VTBL_ENTRY)&_ZN6S102C34v189Ev,
  (VTBL_ENTRY)&_ZN6S102C34v190Ev,
  (VTBL_ENTRY)&_ZN6S102C34v191Ev,
  (VTBL_ENTRY)&_ZN6S102C34v192Ev,
  (VTBL_ENTRY)&_ZN6S102C34v193Ev,
  (VTBL_ENTRY)&_ZN6S102C34v194Ev,
  (VTBL_ENTRY)&_ZN6S102C34v195Ev,
  (VTBL_ENTRY)&_ZN6S102C34v196Ev,
  (VTBL_ENTRY)&_ZN6S102C34v197Ev,
  (VTBL_ENTRY)&_ZN6S102C34v198Ev,
  (VTBL_ENTRY)&_ZN6S102C34v199Ev,
  (VTBL_ENTRY)&_ZN6S102C34v200Ev,
  (VTBL_ENTRY)&_ZN6S102C34v201Ev,
  (VTBL_ENTRY)&_ZN6S102C34v202Ev,
  (VTBL_ENTRY)&_ZN6S102C34v203Ev,
  (VTBL_ENTRY)&_ZN6S102C34v204Ev,
  (VTBL_ENTRY)&_ZN6S102C34v205Ev,
  (VTBL_ENTRY)&_ZN6S102C34v206Ev,
  (VTBL_ENTRY)&_ZN6S102C34v207Ev,
  (VTBL_ENTRY)&_ZN6S102C34v208Ev,
  (VTBL_ENTRY)&_ZN6S102C24v209Ev,
  (VTBL_ENTRY)&_ZN6S102C24v210Ev,
  (VTBL_ENTRY)&_ZN6S102C24v211Ev,
  (VTBL_ENTRY)&_ZN6S102C12v1Ev,
  (VTBL_ENTRY)&_ZN6S102C12v2Ev,
  (VTBL_ENTRY)&_ZN6S102C12v3Ev,
  (VTBL_ENTRY)&_ZN6S102C12v4Ev,
};
extern VTBL_ENTRY _ZTI6S102C1[];
extern  VTBL_ENTRY _ZTV6S102C1[];
Class_Descriptor cd_S102C1 = {  "S102C1", // class name
  bases_S102C1, 6,
  &(vtc_S102C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(928,648), // object size
  NSPAIRA(_ZTI6S102C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S102C1),215, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S283C6  {
  int s283c6f0;
  __tsi64 s283c6f1;
  void *s283c6f2[4];
  int s283c6f3[2];
  void *s283c6f4;
  ::S85C27_nt s283c6f5;
  void *s283c6f6[2];
  virtual  ~S283C6(); // _ZN6S283C6D1Ev
  virtual void  v8(); // _ZN6S283C62v8Ev
  virtual void  v9(); // _ZN6S283C62v9Ev
  virtual void  v10(); // _ZN6S283C63v10Ev
  virtual void  v11(); // _ZN6S283C63v11Ev
  virtual void  v12(); // _ZN6S283C63v12Ev
  virtual void  v13(); // _ZN6S283C63v13Ev
  virtual void  v14(); // _ZN6S283C63v14Ev
  virtual void  v15(); // _ZN6S283C63v15Ev
  virtual void  v16(); // _ZN6S283C63v16Ev
  virtual void  v17(); // _ZN6S283C63v17Ev
  virtual void  v18(); // _ZN6S283C63v18Ev
  virtual void  v19(); // _ZN6S283C63v19Ev
  virtual void  v20(); // _ZN6S283C63v20Ev
  virtual void  v21(); // _ZN6S283C63v21Ev
  virtual void  v22(); // _ZN6S283C63v22Ev
  virtual void  v23(); // _ZN6S283C63v23Ev
  virtual void  v24(); // _ZN6S283C63v24Ev
  virtual void  v25(); // _ZN6S283C63v25Ev
  virtual void  v26(); // _ZN6S283C63v26Ev
  virtual void  v27(); // _ZN6S283C63v27Ev
  virtual void  v28(); // _ZN6S283C63v28Ev
  virtual void  v29(); // _ZN6S283C63v29Ev
  virtual void  v30(); // _ZN6S283C63v30Ev
  virtual void  v31(); // _ZN6S283C63v31Ev
  virtual void  v32(); // _ZN6S283C63v32Ev
  virtual void  v33(); // _ZN6S283C63v33Ev
  virtual void  v34(); // _ZN6S283C63v34Ev
  virtual void  v35(); // _ZN6S283C63v35Ev
  virtual void  v36(); // _ZN6S283C63v36Ev
  virtual void  v37(); // _ZN6S283C63v37Ev
  virtual void  v38(); // _ZN6S283C63v38Ev
  virtual void  v39(); // _ZN6S283C63v39Ev
  virtual void  v40(); // _ZN6S283C63v40Ev
  virtual void  v41(); // _ZN6S283C63v41Ev
  virtual void  v42(); // _ZN6S283C63v42Ev
  virtual void  v43(); // _ZN6S283C63v43Ev
  virtual void  v44(); // _ZN6S283C63v44Ev
  virtual void  v45(); // _ZN6S283C63v45Ev
  virtual void  v46(); // _ZN6S283C63v46Ev
  virtual void  v47(); // _ZN6S283C63v47Ev
  virtual void  v48(); // _ZN6S283C63v48Ev
  virtual void  v49(); // _ZN6S283C63v49Ev
  virtual void  v50(); // _ZN6S283C63v50Ev
  virtual void  v51(); // _ZN6S283C63v51Ev
  virtual void  v52(); // _ZN6S283C63v52Ev
  virtual void  v53(); // _ZN6S283C63v53Ev
  virtual void  v54(); // _ZN6S283C63v54Ev
  virtual void  v55(); // _ZN6S283C63v55Ev
  virtual void  v56(); // _ZN6S283C63v56Ev
  virtual void  v57(); // _ZN6S283C63v57Ev
  virtual void  v58(); // _ZN6S283C63v58Ev
  virtual void  v59(); // _ZN6S283C63v59Ev
  virtual void  v60(); // _ZN6S283C63v60Ev
  virtual void  v61(); // _ZN6S283C63v61Ev
  virtual void  v62(); // _ZN6S283C63v62Ev
  virtual void  v63(); // _ZN6S283C63v63Ev
  virtual void  v64(); // _ZN6S283C63v64Ev
  virtual void  v65(); // _ZN6S283C63v65Ev
  virtual void  v66(); // _ZN6S283C63v66Ev
  virtual void  v67(); // _ZN6S283C63v67Ev
  virtual void  v68(); // _ZN6S283C63v68Ev
  virtual void  v69(); // _ZN6S283C63v69Ev
  virtual void  v70(); // _ZN6S283C63v70Ev
  virtual void  v71(); // _ZN6S283C63v71Ev
  S283C6(); // tgen
};
//SIG(-1 S283C6) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S283C6 ::~S283C6(){ note_dtor("S283C6", this);}
void  S283C6 ::v8(){vfunc_called(this, "_ZN6S283C62v8Ev");}
void  S283C6 ::v9(){vfunc_called(this, "_ZN6S283C62v9Ev");}
void  S283C6 ::v10(){vfunc_called(this, "_ZN6S283C63v10Ev");}
void  S283C6 ::v11(){vfunc_called(this, "_ZN6S283C63v11Ev");}
void  S283C6 ::v12(){vfunc_called(this, "_ZN6S283C63v12Ev");}
void  S283C6 ::v13(){vfunc_called(this, "_ZN6S283C63v13Ev");}
void  S283C6 ::v14(){vfunc_called(this, "_ZN6S283C63v14Ev");}
void  S283C6 ::v15(){vfunc_called(this, "_ZN6S283C63v15Ev");}
void  S283C6 ::v16(){vfunc_called(this, "_ZN6S283C63v16Ev");}
void  S283C6 ::v17(){vfunc_called(this, "_ZN6S283C63v17Ev");}
void  S283C6 ::v18(){vfunc_called(this, "_ZN6S283C63v18Ev");}
void  S283C6 ::v19(){vfunc_called(this, "_ZN6S283C63v19Ev");}
void  S283C6 ::v20(){vfunc_called(this, "_ZN6S283C63v20Ev");}
void  S283C6 ::v21(){vfunc_called(this, "_ZN6S283C63v21Ev");}
void  S283C6 ::v22(){vfunc_called(this, "_ZN6S283C63v22Ev");}
void  S283C6 ::v23(){vfunc_called(this, "_ZN6S283C63v23Ev");}
void  S283C6 ::v24(){vfunc_called(this, "_ZN6S283C63v24Ev");}
void  S283C6 ::v25(){vfunc_called(this, "_ZN6S283C63v25Ev");}
void  S283C6 ::v26(){vfunc_called(this, "_ZN6S283C63v26Ev");}
void  S283C6 ::v27(){vfunc_called(this, "_ZN6S283C63v27Ev");}
void  S283C6 ::v28(){vfunc_called(this, "_ZN6S283C63v28Ev");}
void  S283C6 ::v29(){vfunc_called(this, "_ZN6S283C63v29Ev");}
void  S283C6 ::v30(){vfunc_called(this, "_ZN6S283C63v30Ev");}
void  S283C6 ::v31(){vfunc_called(this, "_ZN6S283C63v31Ev");}
void  S283C6 ::v32(){vfunc_called(this, "_ZN6S283C63v32Ev");}
void  S283C6 ::v33(){vfunc_called(this, "_ZN6S283C63v33Ev");}
void  S283C6 ::v34(){vfunc_called(this, "_ZN6S283C63v34Ev");}
void  S283C6 ::v35(){vfunc_called(this, "_ZN6S283C63v35Ev");}
void  S283C6 ::v36(){vfunc_called(this, "_ZN6S283C63v36Ev");}
void  S283C6 ::v37(){vfunc_called(this, "_ZN6S283C63v37Ev");}
void  S283C6 ::v38(){vfunc_called(this, "_ZN6S283C63v38Ev");}
void  S283C6 ::v39(){vfunc_called(this, "_ZN6S283C63v39Ev");}
void  S283C6 ::v40(){vfunc_called(this, "_ZN6S283C63v40Ev");}
void  S283C6 ::v41(){vfunc_called(this, "_ZN6S283C63v41Ev");}
void  S283C6 ::v42(){vfunc_called(this, "_ZN6S283C63v42Ev");}
void  S283C6 ::v43(){vfunc_called(this, "_ZN6S283C63v43Ev");}
void  S283C6 ::v44(){vfunc_called(this, "_ZN6S283C63v44Ev");}
void  S283C6 ::v45(){vfunc_called(this, "_ZN6S283C63v45Ev");}
void  S283C6 ::v46(){vfunc_called(this, "_ZN6S283C63v46Ev");}
void  S283C6 ::v47(){vfunc_called(this, "_ZN6S283C63v47Ev");}
void  S283C6 ::v48(){vfunc_called(this, "_ZN6S283C63v48Ev");}
void  S283C6 ::v49(){vfunc_called(this, "_ZN6S283C63v49Ev");}
void  S283C6 ::v50(){vfunc_called(this, "_ZN6S283C63v50Ev");}
void  S283C6 ::v51(){vfunc_called(this, "_ZN6S283C63v51Ev");}
void  S283C6 ::v52(){vfunc_called(this, "_ZN6S283C63v52Ev");}
void  S283C6 ::v53(){vfunc_called(this, "_ZN6S283C63v53Ev");}
void  S283C6 ::v54(){vfunc_called(this, "_ZN6S283C63v54Ev");}
void  S283C6 ::v55(){vfunc_called(this, "_ZN6S283C63v55Ev");}
void  S283C6 ::v56(){vfunc_called(this, "_ZN6S283C63v56Ev");}
void  S283C6 ::v57(){vfunc_called(this, "_ZN6S283C63v57Ev");}
void  S283C6 ::v58(){vfunc_called(this, "_ZN6S283C63v58Ev");}
void  S283C6 ::v59(){vfunc_called(this, "_ZN6S283C63v59Ev");}
void  S283C6 ::v60(){vfunc_called(this, "_ZN6S283C63v60Ev");}
void  S283C6 ::v61(){vfunc_called(this, "_ZN6S283C63v61Ev");}
void  S283C6 ::v62(){vfunc_called(this, "_ZN6S283C63v62Ev");}
void  S283C6 ::v63(){vfunc_called(this, "_ZN6S283C63v63Ev");}
void  S283C6 ::v64(){vfunc_called(this, "_ZN6S283C63v64Ev");}
void  S283C6 ::v65(){vfunc_called(this, "_ZN6S283C63v65Ev");}
void  S283C6 ::v66(){vfunc_called(this, "_ZN6S283C63v66Ev");}
void  S283C6 ::v67(){vfunc_called(this, "_ZN6S283C63v67Ev");}
void  S283C6 ::v68(){vfunc_called(this, "_ZN6S283C63v68Ev");}
void  S283C6 ::v69(){vfunc_called(this, "_ZN6S283C63v69Ev");}
void  S283C6 ::v70(){vfunc_called(this, "_ZN6S283C63v70Ev");}
void  S283C6 ::v71(){vfunc_called(this, "_ZN6S283C63v71Ev");}
S283C6 ::S283C6(){ note_ctor("S283C6", this);} // tgen

static void Test_S283C6()
{
  extern Class_Descriptor cd_S283C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S283C6, buf);
    S283C6 *dp, &lv = *(dp=new (buf) S283C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S283C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S283C6)");
    check_field_offset(lv, s283c6f0, ABISELECT(8,4), "S283C6.s283c6f0");
    check_field_offset(lv, s283c6f1, ABISELECT(16,8), "S283C6.s283c6f1");
    check_field_offset(lv, s283c6f2, ABISELECT(24,16), "S283C6.s283c6f2");
    check_field_offset(lv, s283c6f3, ABISELECT(56,32), "S283C6.s283c6f3");
    check_field_offset(lv, s283c6f4, ABISELECT(64,40), "S283C6.s283c6f4");
    check_field_offset(lv, s283c6f5, ABISELECT(72,44), "S283C6.s283c6f5");
    check_field_offset(lv, s283c6f6, ABISELECT(80,52), "S283C6.s283c6f6");
    test_class_info(&lv, &cd_S283C6);
    dp->~S283C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS283C6(Test_S283C6, "S283C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S283C6C1Ev();
extern void _ZN6S283C6D1Ev();
Name_Map name_map_S283C6[] = {
  NSPAIR(_ZN6S283C6C1Ev),
  NSPAIR(_ZN6S283C6D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S283C6[];
extern void _ZN6S283C6D1Ev();
extern void _ZN6S283C6D0Ev();
extern void _ZN6S283C62v8Ev();
extern void _ZN6S283C62v9Ev();
extern void _ZN6S283C63v10Ev();
extern void _ZN6S283C63v11Ev();
extern void _ZN6S283C63v12Ev();
extern void _ZN6S283C63v13Ev();
extern void _ZN6S283C63v14Ev();
extern void _ZN6S283C63v15Ev();
extern void _ZN6S283C63v16Ev();
extern void _ZN6S283C63v17Ev();
extern void _ZN6S283C63v18Ev();
extern void _ZN6S283C63v19Ev();
extern void _ZN6S283C63v20Ev();
extern void _ZN6S283C63v21Ev();
extern void _ZN6S283C63v22Ev();
extern void _ZN6S283C63v23Ev();
extern void _ZN6S283C63v24Ev();
extern void _ZN6S283C63v25Ev();
extern void _ZN6S283C63v26Ev();
extern void _ZN6S283C63v27Ev();
extern void _ZN6S283C63v28Ev();
extern void _ZN6S283C63v29Ev();
extern void _ZN6S283C63v30Ev();
extern void _ZN6S283C63v31Ev();
extern void _ZN6S283C63v32Ev();
extern void _ZN6S283C63v33Ev();
extern void _ZN6S283C63v34Ev();
extern void _ZN6S283C63v35Ev();
extern void _ZN6S283C63v36Ev();
extern void _ZN6S283C63v37Ev();
extern void _ZN6S283C63v38Ev();
extern void _ZN6S283C63v39Ev();
extern void _ZN6S283C63v40Ev();
extern void _ZN6S283C63v41Ev();
extern void _ZN6S283C63v42Ev();
extern void _ZN6S283C63v43Ev();
extern void _ZN6S283C63v44Ev();
extern void _ZN6S283C63v45Ev();
extern void _ZN6S283C63v46Ev();
extern void _ZN6S283C63v47Ev();
extern void _ZN6S283C63v48Ev();
extern void _ZN6S283C63v49Ev();
extern void _ZN6S283C63v50Ev();
extern void _ZN6S283C63v51Ev();
extern void _ZN6S283C63v52Ev();
extern void _ZN6S283C63v53Ev();
extern void _ZN6S283C63v54Ev();
extern void _ZN6S283C63v55Ev();
extern void _ZN6S283C63v56Ev();
extern void _ZN6S283C63v57Ev();
extern void _ZN6S283C63v58Ev();
extern void _ZN6S283C63v59Ev();
extern void _ZN6S283C63v60Ev();
extern void _ZN6S283C63v61Ev();
extern void _ZN6S283C63v62Ev();
extern void _ZN6S283C63v63Ev();
extern void _ZN6S283C63v64Ev();
extern void _ZN6S283C63v65Ev();
extern void _ZN6S283C63v66Ev();
extern void _ZN6S283C63v67Ev();
extern void _ZN6S283C63v68Ev();
extern void _ZN6S283C63v69Ev();
extern void _ZN6S283C63v70Ev();
extern void _ZN6S283C63v71Ev();
static  VTBL_ENTRY vtc_S283C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S283C6[0]),
  (VTBL_ENTRY)&_ZN6S283C6D1Ev,
  (VTBL_ENTRY)&_ZN6S283C6D0Ev,
  (VTBL_ENTRY)&_ZN6S283C62v8Ev,
  (VTBL_ENTRY)&_ZN6S283C62v9Ev,
  (VTBL_ENTRY)&_ZN6S283C63v10Ev,
  (VTBL_ENTRY)&_ZN6S283C63v11Ev,
  (VTBL_ENTRY)&_ZN6S283C63v12Ev,
  (VTBL_ENTRY)&_ZN6S283C63v13Ev,
  (VTBL_ENTRY)&_ZN6S283C63v14Ev,
  (VTBL_ENTRY)&_ZN6S283C63v15Ev,
  (VTBL_ENTRY)&_ZN6S283C63v16Ev,
  (VTBL_ENTRY)&_ZN6S283C63v17Ev,
  (VTBL_ENTRY)&_ZN6S283C63v18Ev,
  (VTBL_ENTRY)&_ZN6S283C63v19Ev,
  (VTBL_ENTRY)&_ZN6S283C63v20Ev,
  (VTBL_ENTRY)&_ZN6S283C63v21Ev,
  (VTBL_ENTRY)&_ZN6S283C63v22Ev,
  (VTBL_ENTRY)&_ZN6S283C63v23Ev,
  (VTBL_ENTRY)&_ZN6S283C63v24Ev,
  (VTBL_ENTRY)&_ZN6S283C63v25Ev,
  (VTBL_ENTRY)&_ZN6S283C63v26Ev,
  (VTBL_ENTRY)&_ZN6S283C63v27Ev,
  (VTBL_ENTRY)&_ZN6S283C63v28Ev,
  (VTBL_ENTRY)&_ZN6S283C63v29Ev,
  (VTBL_ENTRY)&_ZN6S283C63v30Ev,
  (VTBL_ENTRY)&_ZN6S283C63v31Ev,
  (VTBL_ENTRY)&_ZN6S283C63v32Ev,
  (VTBL_ENTRY)&_ZN6S283C63v33Ev,
  (VTBL_ENTRY)&_ZN6S283C63v34Ev,
  (VTBL_ENTRY)&_ZN6S283C63v35Ev,
  (VTBL_ENTRY)&_ZN6S283C63v36Ev,
  (VTBL_ENTRY)&_ZN6S283C63v37Ev,
  (VTBL_ENTRY)&_ZN6S283C63v38Ev,
  (VTBL_ENTRY)&_ZN6S283C63v39Ev,
  (VTBL_ENTRY)&_ZN6S283C63v40Ev,
  (VTBL_ENTRY)&_ZN6S283C63v41Ev,
  (VTBL_ENTRY)&_ZN6S283C63v42Ev,
  (VTBL_ENTRY)&_ZN6S283C63v43Ev,
  (VTBL_ENTRY)&_ZN6S283C63v44Ev,
  (VTBL_ENTRY)&_ZN6S283C63v45Ev,
  (VTBL_ENTRY)&_ZN6S283C63v46Ev,
  (VTBL_ENTRY)&_ZN6S283C63v47Ev,
  (VTBL_ENTRY)&_ZN6S283C63v48Ev,
  (VTBL_ENTRY)&_ZN6S283C63v49Ev,
  (VTBL_ENTRY)&_ZN6S283C63v50Ev,
  (VTBL_ENTRY)&_ZN6S283C63v51Ev,
  (VTBL_ENTRY)&_ZN6S283C63v52Ev,
  (VTBL_ENTRY)&_ZN6S283C63v53Ev,
  (VTBL_ENTRY)&_ZN6S283C63v54Ev,
  (VTBL_ENTRY)&_ZN6S283C63v55Ev,
  (VTBL_ENTRY)&_ZN6S283C63v56Ev,
  (VTBL_ENTRY)&_ZN6S283C63v57Ev,
  (VTBL_ENTRY)&_ZN6S283C63v58Ev,
  (VTBL_ENTRY)&_ZN6S283C63v59Ev,
  (VTBL_ENTRY)&_ZN6S283C63v60Ev,
  (VTBL_ENTRY)&_ZN6S283C63v61Ev,
  (VTBL_ENTRY)&_ZN6S283C63v62Ev,
  (VTBL_ENTRY)&_ZN6S283C63v63Ev,
  (VTBL_ENTRY)&_ZN6S283C63v64Ev,
  (VTBL_ENTRY)&_ZN6S283C63v65Ev,
  (VTBL_ENTRY)&_ZN6S283C63v66Ev,
  (VTBL_ENTRY)&_ZN6S283C63v67Ev,
  (VTBL_ENTRY)&_ZN6S283C63v68Ev,
  (VTBL_ENTRY)&_ZN6S283C63v69Ev,
  (VTBL_ENTRY)&_ZN6S283C63v70Ev,
  (VTBL_ENTRY)&_ZN6S283C63v71Ev,
};
extern VTBL_ENTRY _ZTI6S283C6[];
extern  VTBL_ENTRY _ZTV6S283C6[];
Class_Descriptor cd_S283C6 = {  "S283C6", // class name
  0,0,//no base classes
  &(vtc_S283C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S283C6),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S283C6),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S283C5  : S283C6 {
  virtual  ~S283C5(); // _ZN6S283C5D1Ev
  virtual void  v72(); // _ZN6S283C53v72Ev
  virtual void  v73(); // _ZN6S283C53v73Ev
  S283C5(); // tgen
};
//SIG(-1 S283C5) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S283C5 ::~S283C5(){ note_dtor("S283C5", this);}
void  S283C5 ::v72(){vfunc_called(this, "_ZN6S283C53v72Ev");}
void  S283C5 ::v73(){vfunc_called(this, "_ZN6S283C53v73Ev");}
S283C5 ::S283C5(){ note_ctor("S283C5", this);} // tgen

static void Test_S283C5()
{
  extern Class_Descriptor cd_S283C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S283C5, buf);
    S283C5 *dp, &lv = *(dp=new (buf) S283C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S283C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S283C5)");
    check_base_class_offset(lv, (S283C6*), 0, "S283C5");
    test_class_info(&lv, &cd_S283C5);
    dp->~S283C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS283C5(Test_S283C5, "S283C5", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S283C5C1Ev();
extern void _ZN6S283C5D1Ev();
Name_Map name_map_S283C5[] = {
  NSPAIR(_ZN6S283C5C1Ev),
  NSPAIR(_ZN6S283C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S283C6;
extern VTBL_ENTRY _ZTI6S283C6[];
extern  VTBL_ENTRY _ZTV6S283C6[];
static Base_Class bases_S283C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S283C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S283C5[];
extern void _ZN6S283C5D1Ev();
extern void _ZN6S283C5D0Ev();
extern void _ZN6S283C62v8Ev();
extern void _ZN6S283C62v9Ev();
extern void _ZN6S283C63v10Ev();
extern void _ZN6S283C63v11Ev();
extern void _ZN6S283C63v12Ev();
extern void _ZN6S283C63v13Ev();
extern void _ZN6S283C63v14Ev();
extern void _ZN6S283C63v15Ev();
extern void _ZN6S283C63v16Ev();
extern void _ZN6S283C63v17Ev();
extern void _ZN6S283C63v18Ev();
extern void _ZN6S283C63v19Ev();
extern void _ZN6S283C63v20Ev();
extern void _ZN6S283C63v21Ev();
extern void _ZN6S283C63v22Ev();
extern void _ZN6S283C63v23Ev();
extern void _ZN6S283C63v24Ev();
extern void _ZN6S283C63v25Ev();
extern void _ZN6S283C63v26Ev();
extern void _ZN6S283C63v27Ev();
extern void _ZN6S283C63v28Ev();
extern void _ZN6S283C63v29Ev();
extern void _ZN6S283C63v30Ev();
extern void _ZN6S283C63v31Ev();
extern void _ZN6S283C63v32Ev();
extern void _ZN6S283C63v33Ev();
extern void _ZN6S283C63v34Ev();
extern void _ZN6S283C63v35Ev();
extern void _ZN6S283C63v36Ev();
extern void _ZN6S283C63v37Ev();
extern void _ZN6S283C63v38Ev();
extern void _ZN6S283C63v39Ev();
extern void _ZN6S283C63v40Ev();
extern void _ZN6S283C63v41Ev();
extern void _ZN6S283C63v42Ev();
extern void _ZN6S283C63v43Ev();
extern void _ZN6S283C63v44Ev();
extern void _ZN6S283C63v45Ev();
extern void _ZN6S283C63v46Ev();
extern void _ZN6S283C63v47Ev();
extern void _ZN6S283C63v48Ev();
extern void _ZN6S283C63v49Ev();
extern void _ZN6S283C63v50Ev();
extern void _ZN6S283C63v51Ev();
extern void _ZN6S283C63v52Ev();
extern void _ZN6S283C63v53Ev();
extern void _ZN6S283C63v54Ev();
extern void _ZN6S283C63v55Ev();
extern void _ZN6S283C63v56Ev();
extern void _ZN6S283C63v57Ev();
extern void _ZN6S283C63v58Ev();
extern void _ZN6S283C63v59Ev();
extern void _ZN6S283C63v60Ev();
extern void _ZN6S283C63v61Ev();
extern void _ZN6S283C63v62Ev();
extern void _ZN6S283C63v63Ev();
extern void _ZN6S283C63v64Ev();
extern void _ZN6S283C63v65Ev();
extern void _ZN6S283C63v66Ev();
extern void _ZN6S283C63v67Ev();
extern void _ZN6S283C63v68Ev();
extern void _ZN6S283C63v69Ev();
extern void _ZN6S283C63v70Ev();
extern void _ZN6S283C63v71Ev();
extern void _ZN6S283C53v72Ev();
extern void _ZN6S283C53v73Ev();
static  VTBL_ENTRY vtc_S283C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S283C5[0]),
  (VTBL_ENTRY)&_ZN6S283C5D1Ev,
  (VTBL_ENTRY)&_ZN6S283C5D0Ev,
  (VTBL_ENTRY)&_ZN6S283C62v8Ev,
  (VTBL_ENTRY)&_ZN6S283C62v9Ev,
  (VTBL_ENTRY)&_ZN6S283C63v10Ev,
  (VTBL_ENTRY)&_ZN6S283C63v11Ev,
  (VTBL_ENTRY)&_ZN6S283C63v12Ev,
  (VTBL_ENTRY)&_ZN6S283C63v13Ev,
  (VTBL_ENTRY)&_ZN6S283C63v14Ev,
  (VTBL_ENTRY)&_ZN6S283C63v15Ev,
  (VTBL_ENTRY)&_ZN6S283C63v16Ev,
  (VTBL_ENTRY)&_ZN6S283C63v17Ev,
  (VTBL_ENTRY)&_ZN6S283C63v18Ev,
  (VTBL_ENTRY)&_ZN6S283C63v19Ev,
  (VTBL_ENTRY)&_ZN6S283C63v20Ev,
  (VTBL_ENTRY)&_ZN6S283C63v21Ev,
  (VTBL_ENTRY)&_ZN6S283C63v22Ev,
  (VTBL_ENTRY)&_ZN6S283C63v23Ev,
  (VTBL_ENTRY)&_ZN6S283C63v24Ev,
  (VTBL_ENTRY)&_ZN6S283C63v25Ev,
  (VTBL_ENTRY)&_ZN6S283C63v26Ev,
  (VTBL_ENTRY)&_ZN6S283C63v27Ev,
  (VTBL_ENTRY)&_ZN6S283C63v28Ev,
  (VTBL_ENTRY)&_ZN6S283C63v29Ev,
  (VTBL_ENTRY)&_ZN6S283C63v30Ev,
  (VTBL_ENTRY)&_ZN6S283C63v31Ev,
  (VTBL_ENTRY)&_ZN6S283C63v32Ev,
  (VTBL_ENTRY)&_ZN6S283C63v33Ev,
  (VTBL_ENTRY)&_ZN6S283C63v34Ev,
  (VTBL_ENTRY)&_ZN6S283C63v35Ev,
  (VTBL_ENTRY)&_ZN6S283C63v36Ev,
  (VTBL_ENTRY)&_ZN6S283C63v37Ev,
  (VTBL_ENTRY)&_ZN6S283C63v38Ev,
  (VTBL_ENTRY)&_ZN6S283C63v39Ev,
  (VTBL_ENTRY)&_ZN6S283C63v40Ev,
  (VTBL_ENTRY)&_ZN6S283C63v41Ev,
  (VTBL_ENTRY)&_ZN6S283C63v42Ev,
  (VTBL_ENTRY)&_ZN6S283C63v43Ev,
  (VTBL_ENTRY)&_ZN6S283C63v44Ev,
  (VTBL_ENTRY)&_ZN6S283C63v45Ev,
  (VTBL_ENTRY)&_ZN6S283C63v46Ev,
  (VTBL_ENTRY)&_ZN6S283C63v47Ev,
  (VTBL_ENTRY)&_ZN6S283C63v48Ev,
  (VTBL_ENTRY)&_ZN6S283C63v49Ev,
  (VTBL_ENTRY)&_ZN6S283C63v50Ev,
  (VTBL_ENTRY)&_ZN6S283C63v51Ev,
  (VTBL_ENTRY)&_ZN6S283C63v52Ev,
  (VTBL_ENTRY)&_ZN6S283C63v53Ev,
  (VTBL_ENTRY)&_ZN6S283C63v54Ev,
  (VTBL_ENTRY)&_ZN6S283C63v55Ev,
  (VTBL_ENTRY)&_ZN6S283C63v56Ev,
  (VTBL_ENTRY)&_ZN6S283C63v57Ev,
  (VTBL_ENTRY)&_ZN6S283C63v58Ev,
  (VTBL_ENTRY)&_ZN6S283C63v59Ev,
  (VTBL_ENTRY)&_ZN6S283C63v60Ev,
  (VTBL_ENTRY)&_ZN6S283C63v61Ev,
  (VTBL_ENTRY)&_ZN6S283C63v62Ev,
  (VTBL_ENTRY)&_ZN6S283C63v63Ev,
  (VTBL_ENTRY)&_ZN6S283C63v64Ev,
  (VTBL_ENTRY)&_ZN6S283C63v65Ev,
  (VTBL_ENTRY)&_ZN6S283C63v66Ev,
  (VTBL_ENTRY)&_ZN6S283C63v67Ev,
  (VTBL_ENTRY)&_ZN6S283C63v68Ev,
  (VTBL_ENTRY)&_ZN6S283C63v69Ev,
  (VTBL_ENTRY)&_ZN6S283C63v70Ev,
  (VTBL_ENTRY)&_ZN6S283C63v71Ev,
  (VTBL_ENTRY)&_ZN6S283C53v72Ev,
  (VTBL_ENTRY)&_ZN6S283C53v73Ev,
};
extern VTBL_ENTRY _ZTI6S283C5[];
extern  VTBL_ENTRY _ZTV6S283C5[];
Class_Descriptor cd_S283C5 = {  "S283C5", // class name
  bases_S283C5, 1,
  &(vtc_S283C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S283C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S283C5),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S283C4  : S283C5 {
  ::S80C9_nt s283c4f0;
  int s283c4f1;
  unsigned int s283c4f2:1;
  unsigned int s283c4f3:1;
  unsigned int s283c4f4:1;
  unsigned int s283c4f5:1;
  ::S85C35 s283c4f6;
  ::S85C22_nt s283c4f7;
  void *s283c4f8;
  ::S80C31 s283c4f9;
  ::S80C31 s283c4f10;
  ::S80C29 s283c4f11;
  ::S80C19 s283c4f12;
  char s283c4f13;
  int s283c4f14;
  void *s283c4f15;
  ::S85C27_nt s283c4f16;
  ::S85C27_nt s283c4f17;
  ::S85C27_nt s283c4f18;
  ::S85C27_nt s283c4f19;
  ::S85C27_nt s283c4f20;
  ::S85C27_nt s283c4f21;
  ::S80C21_nt s283c4f22;
  ::S80C21_nt s283c4f23;
  ::S80C21_nt s283c4f24;
  ::S80C21_nt s283c4f25;
  ::S80C21_nt s283c4f26;
  ::S80C21_nt s283c4f27;
  ::S80C21_nt s283c4f28;
  ::S80C21_nt s283c4f29;
  ::S80C21_nt s283c4f30;
  ::S80C21_nt s283c4f31;
  virtual  ~S283C4(); // _ZN6S283C4D1Ev
  virtual void  v74(); // _ZN6S283C43v74Ev
  virtual void  v75(); // _ZN6S283C43v75Ev
  virtual void  v76(); // _ZN6S283C43v76Ev
  virtual void  v77(); // _ZN6S283C43v77Ev
  virtual void  v78(); // _ZN6S283C43v78Ev
  virtual void  v79(); // _ZN6S283C43v79Ev
  virtual void  v80(); // _ZN6S283C43v80Ev
  virtual void  v81(); // _ZN6S283C43v81Ev
  virtual void  v82(); // _ZN6S283C43v82Ev
  virtual void  v83(); // _ZN6S283C43v83Ev
  virtual void  v84(); // _ZN6S283C43v84Ev
  virtual void  v85(); // _ZN6S283C43v85Ev
  virtual void  v86(); // _ZN6S283C43v86Ev
  virtual void  v87(); // _ZN6S283C43v87Ev
  virtual void  v88(); // _ZN6S283C43v88Ev
  virtual void  v89(); // _ZN6S283C43v89Ev
  virtual void  v90(); // _ZN6S283C43v90Ev
  virtual void  v91(); // _ZN6S283C43v91Ev
  virtual void  v92(); // _ZN6S283C43v92Ev
  virtual void  v93(); // _ZN6S283C43v93Ev
  virtual void  v94(); // _ZN6S283C43v94Ev
  virtual void  v95(); // _ZN6S283C43v95Ev
  virtual void  v96(); // _ZN6S283C43v96Ev
  virtual void  v97(); // _ZN6S283C43v97Ev
  virtual void  v98(); // _ZN6S283C43v98Ev
  virtual void  v99(); // _ZN6S283C43v99Ev
  virtual void  v100(); // _ZN6S283C44v100Ev
  virtual void  v101(); // _ZN6S283C44v101Ev
  virtual void  v102(); // _ZN6S283C44v102Ev
  virtual void  v103(); // _ZN6S283C44v103Ev
  virtual void  v104(); // _ZN6S283C44v104Ev
  virtual void  v105(); // _ZN6S283C44v105Ev
  virtual void  v106(); // _ZN6S283C44v106Ev
  virtual void  v107(); // _ZN6S283C44v107Ev
  virtual void  v108(); // _ZN6S283C44v108Ev
  virtual void  v109(); // _ZN6S283C44v109Ev
  virtual void  v110(); // _ZN6S283C44v110Ev
  virtual void  v111(); // _ZN6S283C44v111Ev
  virtual void  v112(); // _ZN6S283C44v112Ev
  virtual void  v113(); // _ZN6S283C44v113Ev
  virtual void  v114(); // _ZN6S283C44v114Ev
  virtual void  v115(); // _ZN6S283C44v115Ev
  virtual void  v116(); // _ZN6S283C44v116Ev
  virtual void  v117(); // _ZN6S283C44v117Ev
  virtual void  v118(); // _ZN6S283C44v118Ev
  virtual void  v119(); // _ZN6S283C44v119Ev
  virtual void  v120(); // _ZN6S283C44v120Ev
  virtual void  v121(); // _ZN6S283C44v121Ev
  virtual void  v122(); // _ZN6S283C44v122Ev
  virtual void  v123(); // _ZN6S283C44v123Ev
  virtual void  v124(); // _ZN6S283C44v124Ev
  virtual void  v125(); // _ZN6S283C44v125Ev
  virtual void  v126(); // _ZN6S283C44v126Ev
  virtual void  v127(); // _ZN6S283C44v127Ev
  virtual void  v128(); // _ZN6S283C44v128Ev
  virtual void  v129(); // _ZN6S283C44v129Ev
  virtual void  v130(); // _ZN6S283C44v130Ev
  virtual void  v131(); // _ZN6S283C44v131Ev
  virtual void  v132(); // _ZN6S283C44v132Ev
  virtual void  v133(); // _ZN6S283C44v133Ev
  virtual void  v134(); // _ZN6S283C44v134Ev
  virtual void  v135(); // _ZN6S283C44v135Ev
  virtual void  v136(); // _ZN6S283C44v136Ev
  virtual void  v137(); // _ZN6S283C44v137Ev
  virtual void  v138(); // _ZN6S283C44v138Ev
  virtual void  v139(); // _ZN6S283C44v139Ev
  virtual void  v140(); // _ZN6S283C44v140Ev
  virtual void  v141(); // _ZN6S283C44v141Ev
  virtual void  v142(); // _ZN6S283C44v142Ev
  virtual void  v143(); // _ZN6S283C44v143Ev
  virtual void  v144(); // _ZN6S283C44v144Ev
  virtual void  v145(); // _ZN6S283C44v145Ev
  virtual void  v146(); // _ZN6S283C44v146Ev
  virtual void  v147(); // _ZN6S283C44v147Ev
  virtual void  v148(); // _ZN6S283C44v148Ev
  virtual void  v149(); // _ZN6S283C44v149Ev
  S283C4(); // tgen
};
//SIG(-1 S283C4) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S283C4 ::~S283C4(){ note_dtor("S283C4", this);}
void  S283C4 ::v74(){vfunc_called(this, "_ZN6S283C43v74Ev");}
void  S283C4 ::v75(){vfunc_called(this, "_ZN6S283C43v75Ev");}
void  S283C4 ::v76(){vfunc_called(this, "_ZN6S283C43v76Ev");}
void  S283C4 ::v77(){vfunc_called(this, "_ZN6S283C43v77Ev");}
void  S283C4 ::v78(){vfunc_called(this, "_ZN6S283C43v78Ev");}
void  S283C4 ::v79(){vfunc_called(this, "_ZN6S283C43v79Ev");}
void  S283C4 ::v80(){vfunc_called(this, "_ZN6S283C43v80Ev");}
void  S283C4 ::v81(){vfunc_called(this, "_ZN6S283C43v81Ev");}
void  S283C4 ::v82(){vfunc_called(this, "_ZN6S283C43v82Ev");}
void  S283C4 ::v83(){vfunc_called(this, "_ZN6S283C43v83Ev");}
void  S283C4 ::v84(){vfunc_called(this, "_ZN6S283C43v84Ev");}
void  S283C4 ::v85(){vfunc_called(this, "_ZN6S283C43v85Ev");}
void  S283C4 ::v86(){vfunc_called(this, "_ZN6S283C43v86Ev");}
void  S283C4 ::v87(){vfunc_called(this, "_ZN6S283C43v87Ev");}
void  S283C4 ::v88(){vfunc_called(this, "_ZN6S283C43v88Ev");}
void  S283C4 ::v89(){vfunc_called(this, "_ZN6S283C43v89Ev");}
void  S283C4 ::v90(){vfunc_called(this, "_ZN6S283C43v90Ev");}
void  S283C4 ::v91(){vfunc_called(this, "_ZN6S283C43v91Ev");}
void  S283C4 ::v92(){vfunc_called(this, "_ZN6S283C43v92Ev");}
void  S283C4 ::v93(){vfunc_called(this, "_ZN6S283C43v93Ev");}
void  S283C4 ::v94(){vfunc_called(this, "_ZN6S283C43v94Ev");}
void  S283C4 ::v95(){vfunc_called(this, "_ZN6S283C43v95Ev");}
void  S283C4 ::v96(){vfunc_called(this, "_ZN6S283C43v96Ev");}
void  S283C4 ::v97(){vfunc_called(this, "_ZN6S283C43v97Ev");}
void  S283C4 ::v98(){vfunc_called(this, "_ZN6S283C43v98Ev");}
void  S283C4 ::v99(){vfunc_called(this, "_ZN6S283C43v99Ev");}
void  S283C4 ::v100(){vfunc_called(this, "_ZN6S283C44v100Ev");}
void  S283C4 ::v101(){vfunc_called(this, "_ZN6S283C44v101Ev");}
void  S283C4 ::v102(){vfunc_called(this, "_ZN6S283C44v102Ev");}
void  S283C4 ::v103(){vfunc_called(this, "_ZN6S283C44v103Ev");}
void  S283C4 ::v104(){vfunc_called(this, "_ZN6S283C44v104Ev");}
void  S283C4 ::v105(){vfunc_called(this, "_ZN6S283C44v105Ev");}
void  S283C4 ::v106(){vfunc_called(this, "_ZN6S283C44v106Ev");}
void  S283C4 ::v107(){vfunc_called(this, "_ZN6S283C44v107Ev");}
void  S283C4 ::v108(){vfunc_called(this, "_ZN6S283C44v108Ev");}
void  S283C4 ::v109(){vfunc_called(this, "_ZN6S283C44v109Ev");}
void  S283C4 ::v110(){vfunc_called(this, "_ZN6S283C44v110Ev");}
void  S283C4 ::v111(){vfunc_called(this, "_ZN6S283C44v111Ev");}
void  S283C4 ::v112(){vfunc_called(this, "_ZN6S283C44v112Ev");}
void  S283C4 ::v113(){vfunc_called(this, "_ZN6S283C44v113Ev");}
void  S283C4 ::v114(){vfunc_called(this, "_ZN6S283C44v114Ev");}
void  S283C4 ::v115(){vfunc_called(this, "_ZN6S283C44v115Ev");}
void  S283C4 ::v116(){vfunc_called(this, "_ZN6S283C44v116Ev");}
void  S283C4 ::v117(){vfunc_called(this, "_ZN6S283C44v117Ev");}
void  S283C4 ::v118(){vfunc_called(this, "_ZN6S283C44v118Ev");}
void  S283C4 ::v119(){vfunc_called(this, "_ZN6S283C44v119Ev");}
void  S283C4 ::v120(){vfunc_called(this, "_ZN6S283C44v120Ev");}
void  S283C4 ::v121(){vfunc_called(this, "_ZN6S283C44v121Ev");}
void  S283C4 ::v122(){vfunc_called(this, "_ZN6S283C44v122Ev");}
void  S283C4 ::v123(){vfunc_called(this, "_ZN6S283C44v123Ev");}
void  S283C4 ::v124(){vfunc_called(this, "_ZN6S283C44v124Ev");}
void  S283C4 ::v125(){vfunc_called(this, "_ZN6S283C44v125Ev");}
void  S283C4 ::v126(){vfunc_called(this, "_ZN6S283C44v126Ev");}
void  S283C4 ::v127(){vfunc_called(this, "_ZN6S283C44v127Ev");}
void  S283C4 ::v128(){vfunc_called(this, "_ZN6S283C44v128Ev");}
void  S283C4 ::v129(){vfunc_called(this, "_ZN6S283C44v129Ev");}
void  S283C4 ::v130(){vfunc_called(this, "_ZN6S283C44v130Ev");}
void  S283C4 ::v131(){vfunc_called(this, "_ZN6S283C44v131Ev");}
void  S283C4 ::v132(){vfunc_called(this, "_ZN6S283C44v132Ev");}
void  S283C4 ::v133(){vfunc_called(this, "_ZN6S283C44v133Ev");}
void  S283C4 ::v134(){vfunc_called(this, "_ZN6S283C44v134Ev");}
void  S283C4 ::v135(){vfunc_called(this, "_ZN6S283C44v135Ev");}
void  S283C4 ::v136(){vfunc_called(this, "_ZN6S283C44v136Ev");}
void  S283C4 ::v137(){vfunc_called(this, "_ZN6S283C44v137Ev");}
void  S283C4 ::v138(){vfunc_called(this, "_ZN6S283C44v138Ev");}
void  S283C4 ::v139(){vfunc_called(this, "_ZN6S283C44v139Ev");}
void  S283C4 ::v140(){vfunc_called(this, "_ZN6S283C44v140Ev");}
void  S283C4 ::v141(){vfunc_called(this, "_ZN6S283C44v141Ev");}
void  S283C4 ::v142(){vfunc_called(this, "_ZN6S283C44v142Ev");}
void  S283C4 ::v143(){vfunc_called(this, "_ZN6S283C44v143Ev");}
void  S283C4 ::v144(){vfunc_called(this, "_ZN6S283C44v144Ev");}
void  S283C4 ::v145(){vfunc_called(this, "_ZN6S283C44v145Ev");}
void  S283C4 ::v146(){vfunc_called(this, "_ZN6S283C44v146Ev");}
void  S283C4 ::v147(){vfunc_called(this, "_ZN6S283C44v147Ev");}
void  S283C4 ::v148(){vfunc_called(this, "_ZN6S283C44v148Ev");}
void  S283C4 ::v149(){vfunc_called(this, "_ZN6S283C44v149Ev");}
S283C4 ::S283C4(){ note_ctor("S283C4", this);} // tgen

static void Test_S283C4()
{
  extern Class_Descriptor cd_S283C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S283C4, buf);
    S283C4 *dp, &lv = *(dp=new (buf) S283C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S283C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S283C4)");
    check_base_class_offset(lv, (S283C6*)(S283C5*), 0, "S283C4");
    check_base_class_offset(lv, (S283C5*), 0, "S283C4");
    check_field_offset(lv, s283c4f0, ABISELECT(96,60), "S283C4.s283c4f0");
    check_field_offset(lv, s283c4f1, ABISELECT(124,88), "S283C4.s283c4f1");
    set_bf_and_test(lv, s283c4f2, ABISELECT(128,92), 0, 1, 1, "S283C4");
    set_bf_and_test(lv, s283c4f3, ABISELECT(128,92), 1, 1, 1, "S283C4");
    set_bf_and_test(lv, s283c4f4, ABISELECT(128,92), 2, 1, 1, "S283C4");
    set_bf_and_test(lv, s283c4f5, ABISELECT(128,92), 3, 1, 1, "S283C4");
    check_field_offset(lv, s283c4f6, ABISELECT(136,96), "S283C4.s283c4f6");
    check_field_offset(lv, s283c4f7, ABISELECT(152,108), "S283C4.s283c4f7");
    check_field_offset(lv, s283c4f8, ABISELECT(168,120), "S283C4.s283c4f8");
    check_field_offset(lv, s283c4f9, ABISELECT(176,124), "S283C4.s283c4f9");
    check_field_offset(lv, s283c4f10, ABISELECT(192,136), "S283C4.s283c4f10");
    check_field_offset(lv, s283c4f11, ABISELECT(208,148), "S283C4.s283c4f11");
    check_field_offset(lv, s283c4f12, ABISELECT(224,160), "S283C4.s283c4f12");
    check_field_offset(lv, s283c4f13, ABISELECT(240,172), "S283C4.s283c4f13");
    check_field_offset(lv, s283c4f14, ABISELECT(244,176), "S283C4.s283c4f14");
    check_field_offset(lv, s283c4f15, ABISELECT(248,180), "S283C4.s283c4f15");
    check_field_offset(lv, s283c4f16, ABISELECT(256,184), "S283C4.s283c4f16");
    check_field_offset(lv, s283c4f17, ABISELECT(264,192), "S283C4.s283c4f17");
    check_field_offset(lv, s283c4f18, ABISELECT(272,200), "S283C4.s283c4f18");
    check_field_offset(lv, s283c4f19, ABISELECT(280,208), "S283C4.s283c4f19");
    check_field_offset(lv, s283c4f20, ABISELECT(288,216), "S283C4.s283c4f20");
    check_field_offset(lv, s283c4f21, ABISELECT(296,224), "S283C4.s283c4f21");
    check_field_offset(lv, s283c4f22, ABISELECT(304,232), "S283C4.s283c4f22");
    check_field_offset(lv, s283c4f23, ABISELECT(320,244), "S283C4.s283c4f23");
    check_field_offset(lv, s283c4f24, ABISELECT(336,256), "S283C4.s283c4f24");
    check_field_offset(lv, s283c4f25, ABISELECT(352,268), "S283C4.s283c4f25");
    check_field_offset(lv, s283c4f26, ABISELECT(368,280), "S283C4.s283c4f26");
    check_field_offset(lv, s283c4f27, ABISELECT(384,292), "S283C4.s283c4f27");
    check_field_offset(lv, s283c4f28, ABISELECT(400,304), "S283C4.s283c4f28");
    check_field_offset(lv, s283c4f29, ABISELECT(416,316), "S283C4.s283c4f29");
    check_field_offset(lv, s283c4f30, ABISELECT(432,328), "S283C4.s283c4f30");
    check_field_offset(lv, s283c4f31, ABISELECT(448,340), "S283C4.s283c4f31");
    test_class_info(&lv, &cd_S283C4);
    dp->~S283C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS283C4(Test_S283C4, "S283C4", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S283C4C1Ev();
extern void _ZN6S283C4D1Ev();
Name_Map name_map_S283C4[] = {
  NSPAIR(_ZN6S283C4C1Ev),
  NSPAIR(_ZN6S283C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S283C6;
extern VTBL_ENTRY _ZTI6S283C6[];
extern  VTBL_ENTRY _ZTV6S283C6[];
extern Class_Descriptor cd_S283C5;
extern VTBL_ENTRY _ZTI6S283C5[];
extern  VTBL_ENTRY _ZTV6S283C5[];
static Base_Class bases_S283C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S283C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S283C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S283C4[];
extern void _ZN6S283C4D1Ev();
extern void _ZN6S283C4D0Ev();
extern void _ZN6S283C62v8Ev();
extern void _ZN6S283C62v9Ev();
extern void _ZN6S283C63v10Ev();
extern void _ZN6S283C63v11Ev();
extern void _ZN6S283C63v12Ev();
extern void _ZN6S283C63v13Ev();
extern void _ZN6S283C63v14Ev();
extern void _ZN6S283C63v15Ev();
extern void _ZN6S283C63v16Ev();
extern void _ZN6S283C63v17Ev();
extern void _ZN6S283C63v18Ev();
extern void _ZN6S283C63v19Ev();
extern void _ZN6S283C63v20Ev();
extern void _ZN6S283C63v21Ev();
extern void _ZN6S283C63v22Ev();
extern void _ZN6S283C63v23Ev();
extern void _ZN6S283C63v24Ev();
extern void _ZN6S283C63v25Ev();
extern void _ZN6S283C63v26Ev();
extern void _ZN6S283C63v27Ev();
extern void _ZN6S283C63v28Ev();
extern void _ZN6S283C63v29Ev();
extern void _ZN6S283C63v30Ev();
extern void _ZN6S283C63v31Ev();
extern void _ZN6S283C63v32Ev();
extern void _ZN6S283C63v33Ev();
extern void _ZN6S283C63v34Ev();
extern void _ZN6S283C63v35Ev();
extern void _ZN6S283C63v36Ev();
extern void _ZN6S283C63v37Ev();
extern void _ZN6S283C63v38Ev();
extern void _ZN6S283C63v39Ev();
extern void _ZN6S283C63v40Ev();
extern void _ZN6S283C63v41Ev();
extern void _ZN6S283C63v42Ev();
extern void _ZN6S283C63v43Ev();
extern void _ZN6S283C63v44Ev();
extern void _ZN6S283C63v45Ev();
extern void _ZN6S283C63v46Ev();
extern void _ZN6S283C63v47Ev();
extern void _ZN6S283C63v48Ev();
extern void _ZN6S283C63v49Ev();
extern void _ZN6S283C63v50Ev();
extern void _ZN6S283C63v51Ev();
extern void _ZN6S283C63v52Ev();
extern void _ZN6S283C63v53Ev();
extern void _ZN6S283C63v54Ev();
extern void _ZN6S283C63v55Ev();
extern void _ZN6S283C63v56Ev();
extern void _ZN6S283C63v57Ev();
extern void _ZN6S283C63v58Ev();
extern void _ZN6S283C63v59Ev();
extern void _ZN6S283C63v60Ev();
extern void _ZN6S283C63v61Ev();
extern void _ZN6S283C63v62Ev();
extern void _ZN6S283C63v63Ev();
extern void _ZN6S283C63v64Ev();
extern void _ZN6S283C63v65Ev();
extern void _ZN6S283C63v66Ev();
extern void _ZN6S283C63v67Ev();
extern void _ZN6S283C63v68Ev();
extern void _ZN6S283C63v69Ev();
extern void _ZN6S283C63v70Ev();
extern void _ZN6S283C63v71Ev();
extern void _ZN6S283C53v72Ev();
extern void _ZN6S283C53v73Ev();
extern void _ZN6S283C43v74Ev();
extern void _ZN6S283C43v75Ev();
extern void _ZN6S283C43v76Ev();
extern void _ZN6S283C43v77Ev();
extern void _ZN6S283C43v78Ev();
extern void _ZN6S283C43v79Ev();
extern void _ZN6S283C43v80Ev();
extern void _ZN6S283C43v81Ev();
extern void _ZN6S283C43v82Ev();
extern void _ZN6S283C43v83Ev();
extern void _ZN6S283C43v84Ev();
extern void _ZN6S283C43v85Ev();
extern void _ZN6S283C43v86Ev();
extern void _ZN6S283C43v87Ev();
extern void _ZN6S283C43v88Ev();
extern void _ZN6S283C43v89Ev();
extern void _ZN6S283C43v90Ev();
extern void _ZN6S283C43v91Ev();
extern void _ZN6S283C43v92Ev();
extern void _ZN6S283C43v93Ev();
extern void _ZN6S283C43v94Ev();
extern void _ZN6S283C43v95Ev();
extern void _ZN6S283C43v96Ev();
extern void _ZN6S283C43v97Ev();
extern void _ZN6S283C43v98Ev();
extern void _ZN6S283C43v99Ev();
extern void _ZN6S283C44v100Ev();
extern void _ZN6S283C44v101Ev();
extern void _ZN6S283C44v102Ev();
extern void _ZN6S283C44v103Ev();
extern void _ZN6S283C44v104Ev();
extern void _ZN6S283C44v105Ev();
extern void _ZN6S283C44v106Ev();
extern void _ZN6S283C44v107Ev();
extern void _ZN6S283C44v108Ev();
extern void _ZN6S283C44v109Ev();
extern void _ZN6S283C44v110Ev();
extern void _ZN6S283C44v111Ev();
extern void _ZN6S283C44v112Ev();
extern void _ZN6S283C44v113Ev();
extern void _ZN6S283C44v114Ev();
extern void _ZN6S283C44v115Ev();
extern void _ZN6S283C44v116Ev();
extern void _ZN6S283C44v117Ev();
extern void _ZN6S283C44v118Ev();
extern void _ZN6S283C44v119Ev();
extern void _ZN6S283C44v120Ev();
extern void _ZN6S283C44v121Ev();
extern void _ZN6S283C44v122Ev();
extern void _ZN6S283C44v123Ev();
extern void _ZN6S283C44v124Ev();
extern void _ZN6S283C44v125Ev();
extern void _ZN6S283C44v126Ev();
extern void _ZN6S283C44v127Ev();
extern void _ZN6S283C44v128Ev();
extern void _ZN6S283C44v129Ev();
extern void _ZN6S283C44v130Ev();
extern void _ZN6S283C44v131Ev();
extern void _ZN6S283C44v132Ev();
extern void _ZN6S283C44v133Ev();
extern void _ZN6S283C44v134Ev();
extern void _ZN6S283C44v135Ev();
extern void _ZN6S283C44v136Ev();
extern void _ZN6S283C44v137Ev();
extern void _ZN6S283C44v138Ev();
extern void _ZN6S283C44v139Ev();
extern void _ZN6S283C44v140Ev();
extern void _ZN6S283C44v141Ev();
extern void _ZN6S283C44v142Ev();
extern void _ZN6S283C44v143Ev();
extern void _ZN6S283C44v144Ev();
extern void _ZN6S283C44v145Ev();
extern void _ZN6S283C44v146Ev();
extern void _ZN6S283C44v147Ev();
extern void _ZN6S283C44v148Ev();
extern void _ZN6S283C44v149Ev();
static  VTBL_ENTRY vtc_S283C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S283C4[0]),
  (VTBL_ENTRY)&_ZN6S283C4D1Ev,
  (VTBL_ENTRY)&_ZN6S283C4D0Ev,
  (VTBL_ENTRY)&_ZN6S283C62v8Ev,
  (VTBL_ENTRY)&_ZN6S283C62v9Ev,
  (VTBL_ENTRY)&_ZN6S283C63v10Ev,
  (VTBL_ENTRY)&_ZN6S283C63v11Ev,
  (VTBL_ENTRY)&_ZN6S283C63v12Ev,
  (VTBL_ENTRY)&_ZN6S283C63v13Ev,
  (VTBL_ENTRY)&_ZN6S283C63v14Ev,
  (VTBL_ENTRY)&_ZN6S283C63v15Ev,
  (VTBL_ENTRY)&_ZN6S283C63v16Ev,
  (VTBL_ENTRY)&_ZN6S283C63v17Ev,
  (VTBL_ENTRY)&_ZN6S283C63v18Ev,
  (VTBL_ENTRY)&_ZN6S283C63v19Ev,
  (VTBL_ENTRY)&_ZN6S283C63v20Ev,
  (VTBL_ENTRY)&_ZN6S283C63v21Ev,
  (VTBL_ENTRY)&_ZN6S283C63v22Ev,
  (VTBL_ENTRY)&_ZN6S283C63v23Ev,
  (VTBL_ENTRY)&_ZN6S283C63v24Ev,
  (VTBL_ENTRY)&_ZN6S283C63v25Ev,
  (VTBL_ENTRY)&_ZN6S283C63v26Ev,
  (VTBL_ENTRY)&_ZN6S283C63v27Ev,
  (VTBL_ENTRY)&_ZN6S283C63v28Ev,
  (VTBL_ENTRY)&_ZN6S283C63v29Ev,
  (VTBL_ENTRY)&_ZN6S283C63v30Ev,
  (VTBL_ENTRY)&_ZN6S283C63v31Ev,
  (VTBL_ENTRY)&_ZN6S283C63v32Ev,
  (VTBL_ENTRY)&_ZN6S283C63v33Ev,
  (VTBL_ENTRY)&_ZN6S283C63v34Ev,
  (VTBL_ENTRY)&_ZN6S283C63v35Ev,
  (VTBL_ENTRY)&_ZN6S283C63v36Ev,
  (VTBL_ENTRY)&_ZN6S283C63v37Ev,
  (VTBL_ENTRY)&_ZN6S283C63v38Ev,
  (VTBL_ENTRY)&_ZN6S283C63v39Ev,
  (VTBL_ENTRY)&_ZN6S283C63v40Ev,
  (VTBL_ENTRY)&_ZN6S283C63v41Ev,
  (VTBL_ENTRY)&_ZN6S283C63v42Ev,
  (VTBL_ENTRY)&_ZN6S283C63v43Ev,
  (VTBL_ENTRY)&_ZN6S283C63v44Ev,
  (VTBL_ENTRY)&_ZN6S283C63v45Ev,
  (VTBL_ENTRY)&_ZN6S283C63v46Ev,
  (VTBL_ENTRY)&_ZN6S283C63v47Ev,
  (VTBL_ENTRY)&_ZN6S283C63v48Ev,
  (VTBL_ENTRY)&_ZN6S283C63v49Ev,
  (VTBL_ENTRY)&_ZN6S283C63v50Ev,
  (VTBL_ENTRY)&_ZN6S283C63v51Ev,
  (VTBL_ENTRY)&_ZN6S283C63v52Ev,
  (VTBL_ENTRY)&_ZN6S283C63v53Ev,
  (VTBL_ENTRY)&_ZN6S283C63v54Ev,
  (VTBL_ENTRY)&_ZN6S283C63v55Ev,
  (VTBL_ENTRY)&_ZN6S283C63v56Ev,
  (VTBL_ENTRY)&_ZN6S283C63v57Ev,
  (VTBL_ENTRY)&_ZN6S283C63v58Ev,
  (VTBL_ENTRY)&_ZN6S283C63v59Ev,
  (VTBL_ENTRY)&_ZN6S283C63v60Ev,
  (VTBL_ENTRY)&_ZN6S283C63v61Ev,
  (VTBL_ENTRY)&_ZN6S283C63v62Ev,
  (VTBL_ENTRY)&_ZN6S283C63v63Ev,
  (VTBL_ENTRY)&_ZN6S283C63v64Ev,
  (VTBL_ENTRY)&_ZN6S283C63v65Ev,
  (VTBL_ENTRY)&_ZN6S283C63v66Ev,
  (VTBL_ENTRY)&_ZN6S283C63v67Ev,
  (VTBL_ENTRY)&_ZN6S283C63v68Ev,
  (VTBL_ENTRY)&_ZN6S283C63v69Ev,
  (VTBL_ENTRY)&_ZN6S283C63v70Ev,
  (VTBL_ENTRY)&_ZN6S283C63v71Ev,
  (VTBL_ENTRY)&_ZN6S283C53v72Ev,
  (VTBL_ENTRY)&_ZN6S283C53v73Ev,
  (VTBL_ENTRY)&_ZN6S283C43v74Ev,
  (VTBL_ENTRY)&_ZN6S283C43v75Ev,
  (VTBL_ENTRY)&_ZN6S283C43v76Ev,
  (VTBL_ENTRY)&_ZN6S283C43v77Ev,
  (VTBL_ENTRY)&_ZN6S283C43v78Ev,
  (VTBL_ENTRY)&_ZN6S283C43v79Ev,
  (VTBL_ENTRY)&_ZN6S283C43v80Ev,
  (VTBL_ENTRY)&_ZN6S283C43v81Ev,
  (VTBL_ENTRY)&_ZN6S283C43v82Ev,
  (VTBL_ENTRY)&_ZN6S283C43v83Ev,
  (VTBL_ENTRY)&_ZN6S283C43v84Ev,
  (VTBL_ENTRY)&_ZN6S283C43v85Ev,
  (VTBL_ENTRY)&_ZN6S283C43v86Ev,
  (VTBL_ENTRY)&_ZN6S283C43v87Ev,
  (VTBL_ENTRY)&_ZN6S283C43v88Ev,
  (VTBL_ENTRY)&_ZN6S283C43v89Ev,
  (VTBL_ENTRY)&_ZN6S283C43v90Ev,
  (VTBL_ENTRY)&_ZN6S283C43v91Ev,
  (VTBL_ENTRY)&_ZN6S283C43v92Ev,
  (VTBL_ENTRY)&_ZN6S283C43v93Ev,
  (VTBL_ENTRY)&_ZN6S283C43v94Ev,
  (VTBL_ENTRY)&_ZN6S283C43v95Ev,
  (VTBL_ENTRY)&_ZN6S283C43v96Ev,
  (VTBL_ENTRY)&_ZN6S283C43v97Ev,
  (VTBL_ENTRY)&_ZN6S283C43v98Ev,
  (VTBL_ENTRY)&_ZN6S283C43v99Ev,
  (VTBL_ENTRY)&_ZN6S283C44v100Ev,
  (VTBL_ENTRY)&_ZN6S283C44v101Ev,
  (VTBL_ENTRY)&_ZN6S283C44v102Ev,
  (VTBL_ENTRY)&_ZN6S283C44v103Ev,
  (VTBL_ENTRY)&_ZN6S283C44v104Ev,
  (VTBL_ENTRY)&_ZN6S283C44v105Ev,
  (VTBL_ENTRY)&_ZN6S283C44v106Ev,
  (VTBL_ENTRY)&_ZN6S283C44v107Ev,
  (VTBL_ENTRY)&_ZN6S283C44v108Ev,
  (VTBL_ENTRY)&_ZN6S283C44v109Ev,
  (VTBL_ENTRY)&_ZN6S283C44v110Ev,
  (VTBL_ENTRY)&_ZN6S283C44v111Ev,
  (VTBL_ENTRY)&_ZN6S283C44v112Ev,
  (VTBL_ENTRY)&_ZN6S283C44v113Ev,
  (VTBL_ENTRY)&_ZN6S283C44v114Ev,
  (VTBL_ENTRY)&_ZN6S283C44v115Ev,
  (VTBL_ENTRY)&_ZN6S283C44v116Ev,
  (VTBL_ENTRY)&_ZN6S283C44v117Ev,
  (VTBL_ENTRY)&_ZN6S283C44v118Ev,
  (VTBL_ENTRY)&_ZN6S283C44v119Ev,
  (VTBL_ENTRY)&_ZN6S283C44v120Ev,
  (VTBL_ENTRY)&_ZN6S283C44v121Ev,
  (VTBL_ENTRY)&_ZN6S283C44v122Ev,
  (VTBL_ENTRY)&_ZN6S283C44v123Ev,
  (VTBL_ENTRY)&_ZN6S283C44v124Ev,
  (VTBL_ENTRY)&_ZN6S283C44v125Ev,
  (VTBL_ENTRY)&_ZN6S283C44v126Ev,
  (VTBL_ENTRY)&_ZN6S283C44v127Ev,
  (VTBL_ENTRY)&_ZN6S283C44v128Ev,
  (VTBL_ENTRY)&_ZN6S283C44v129Ev,
  (VTBL_ENTRY)&_ZN6S283C44v130Ev,
  (VTBL_ENTRY)&_ZN6S283C44v131Ev,
  (VTBL_ENTRY)&_ZN6S283C44v132Ev,
  (VTBL_ENTRY)&_ZN6S283C44v133Ev,
  (VTBL_ENTRY)&_ZN6S283C44v134Ev,
  (VTBL_ENTRY)&_ZN6S283C44v135Ev,
  (VTBL_ENTRY)&_ZN6S283C44v136Ev,
  (VTBL_ENTRY)&_ZN6S283C44v137Ev,
  (VTBL_ENTRY)&_ZN6S283C44v138Ev,
  (VTBL_ENTRY)&_ZN6S283C44v139Ev,
  (VTBL_ENTRY)&_ZN6S283C44v140Ev,
  (VTBL_ENTRY)&_ZN6S283C44v141Ev,
  (VTBL_ENTRY)&_ZN6S283C44v142Ev,
  (VTBL_ENTRY)&_ZN6S283C44v143Ev,
  (VTBL_ENTRY)&_ZN6S283C44v144Ev,
  (VTBL_ENTRY)&_ZN6S283C44v145Ev,
  (VTBL_ENTRY)&_ZN6S283C44v146Ev,
  (VTBL_ENTRY)&_ZN6S283C44v147Ev,
  (VTBL_ENTRY)&_ZN6S283C44v148Ev,
  (VTBL_ENTRY)&_ZN6S283C44v149Ev,
};
extern VTBL_ENTRY _ZTI6S283C4[];
extern  VTBL_ENTRY _ZTV6S283C4[];
Class_Descriptor cd_S283C4 = {  "S283C4", // class name
  bases_S283C4, 2,
  &(vtc_S283C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S283C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S283C4),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S283C3  : S283C4 {
  ::S85C27_nt s283c3f0;
  void *s283c3f1[9];
  ::S80C15 s283c3f2;
  ::S85C35 s283c3f3;
  ::S80C24 s283c3f4;
  int s283c3f5;
  unsigned int s283c3f6:1;
  unsigned int s283c3f7:1;
  unsigned int s283c3f8:1;
  unsigned int s283c3f9:1;
  unsigned int s283c3f10:1;
  unsigned int s283c3f11:1;
  unsigned int s283c3f12:1;
  unsigned int s283c3f13:1;
  unsigned int s283c3f14:1;
  unsigned int s283c3f15:1;
  unsigned int s283c3f16:1;
  unsigned int s283c3f17:1;
  unsigned int s283c3f18:1;
  unsigned int s283c3f19:1;
  unsigned int s283c3f20:1;
  unsigned int s283c3f21:1;
  unsigned int s283c3f22:1;
  unsigned int s283c3f23:1;
  unsigned int s283c3f24:1;
  unsigned int s283c3f25:1;
  unsigned int s283c3f26:1;
  unsigned int s283c3f27:1;
  void *s283c3f28;
  char s283c3f29[2];
  ::S80C8_nt s283c3f30;
  ::S85C27_nt s283c3f31;
  ::S85C27_nt s283c3f32;
  void *s283c3f33;
  ::S80C21_nt s283c3f34;
  ::S80C21_nt s283c3f35;
  ::S80C21_nt s283c3f36;
  ::S80C21_nt s283c3f37;
  ::S80C21_nt s283c3f38;
  virtual  ~S283C3(); // _ZN6S283C3D1Ev
  virtual void  v150(); // _ZN6S283C34v150Ev
  virtual void  v151(); // _ZN6S283C34v151Ev
  virtual void  v152(); // _ZN6S283C34v152Ev
  virtual void  v153(); // _ZN6S283C34v153Ev
  virtual void  v154(); // _ZN6S283C34v154Ev
  virtual void  v155(); // _ZN6S283C34v155Ev
  virtual void  v156(); // _ZN6S283C34v156Ev
  virtual void  v157(); // _ZN6S283C34v157Ev
  virtual void  v158(); // _ZN6S283C34v158Ev
  virtual void  v159(); // _ZN6S283C34v159Ev
  virtual void  v160(); // _ZN6S283C34v160Ev
  virtual void  v161(); // _ZN6S283C34v161Ev
  virtual void  v162(); // _ZN6S283C34v162Ev
  virtual void  v163(); // _ZN6S283C34v163Ev
  virtual void  v164(); // _ZN6S283C34v164Ev
  virtual void  v165(); // _ZN6S283C34v165Ev
  virtual void  v166(); // _ZN6S283C34v166Ev
  virtual void  v167(); // _ZN6S283C34v167Ev
  virtual void  v168(); // _ZN6S283C34v168Ev
  virtual void  v169(); // _ZN6S283C34v169Ev
  virtual void  v170(); // _ZN6S283C34v170Ev
  virtual void  v171(); // _ZN6S283C34v171Ev
  virtual void  v172(); // _ZN6S283C34v172Ev
  virtual void  v173(); // _ZN6S283C34v173Ev
  virtual void  v174(); // _ZN6S283C34v174Ev
  virtual void  v175(); // _ZN6S283C34v175Ev
  virtual void  v176(); // _ZN6S283C34v176Ev
  virtual void  v177(); // _ZN6S283C34v177Ev
  virtual void  v178(); // _ZN6S283C34v178Ev
  virtual void  v179(); // _ZN6S283C34v179Ev
  virtual void  v180(); // _ZN6S283C34v180Ev
  virtual void  v181(); // _ZN6S283C34v181Ev
  virtual void  v182(); // _ZN6S283C34v182Ev
  virtual void  v183(); // _ZN6S283C34v183Ev
  virtual void  v184(); // _ZN6S283C34v184Ev
  virtual void  v185(); // _ZN6S283C34v185Ev
  virtual void  v186(); // _ZN6S283C34v186Ev
  virtual void  v187(); // _ZN6S283C34v187Ev
  virtual void  v188(); // _ZN6S283C34v188Ev
  S283C3(); // tgen
};
//SIG(-1 S283C3) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S283C3 ::~S283C3(){ note_dtor("S283C3", this);}
void  S283C3 ::v150(){vfunc_called(this, "_ZN6S283C34v150Ev");}
void  S283C3 ::v151(){vfunc_called(this, "_ZN6S283C34v151Ev");}
void  S283C3 ::v152(){vfunc_called(this, "_ZN6S283C34v152Ev");}
void  S283C3 ::v153(){vfunc_called(this, "_ZN6S283C34v153Ev");}
void  S283C3 ::v154(){vfunc_called(this, "_ZN6S283C34v154Ev");}
void  S283C3 ::v155(){vfunc_called(this, "_ZN6S283C34v155Ev");}
void  S283C3 ::v156(){vfunc_called(this, "_ZN6S283C34v156Ev");}
void  S283C3 ::v157(){vfunc_called(this, "_ZN6S283C34v157Ev");}
void  S283C3 ::v158(){vfunc_called(this, "_ZN6S283C34v158Ev");}
void  S283C3 ::v159(){vfunc_called(this, "_ZN6S283C34v159Ev");}
void  S283C3 ::v160(){vfunc_called(this, "_ZN6S283C34v160Ev");}
void  S283C3 ::v161(){vfunc_called(this, "_ZN6S283C34v161Ev");}
void  S283C3 ::v162(){vfunc_called(this, "_ZN6S283C34v162Ev");}
void  S283C3 ::v163(){vfunc_called(this, "_ZN6S283C34v163Ev");}
void  S283C3 ::v164(){vfunc_called(this, "_ZN6S283C34v164Ev");}
void  S283C3 ::v165(){vfunc_called(this, "_ZN6S283C34v165Ev");}
void  S283C3 ::v166(){vfunc_called(this, "_ZN6S283C34v166Ev");}
void  S283C3 ::v167(){vfunc_called(this, "_ZN6S283C34v167Ev");}
void  S283C3 ::v168(){vfunc_called(this, "_ZN6S283C34v168Ev");}
void  S283C3 ::v169(){vfunc_called(this, "_ZN6S283C34v169Ev");}
void  S283C3 ::v170(){vfunc_called(this, "_ZN6S283C34v170Ev");}
void  S283C3 ::v171(){vfunc_called(this, "_ZN6S283C34v171Ev");}
void  S283C3 ::v172(){vfunc_called(this, "_ZN6S283C34v172Ev");}
void  S283C3 ::v173(){vfunc_called(this, "_ZN6S283C34v173Ev");}
void  S283C3 ::v174(){vfunc_called(this, "_ZN6S283C34v174Ev");}
void  S283C3 ::v175(){vfunc_called(this, "_ZN6S283C34v175Ev");}
void  S283C3 ::v176(){vfunc_called(this, "_ZN6S283C34v176Ev");}
void  S283C3 ::v177(){vfunc_called(this, "_ZN6S283C34v177Ev");}
void  S283C3 ::v178(){vfunc_called(this, "_ZN6S283C34v178Ev");}
void  S283C3 ::v179(){vfunc_called(this, "_ZN6S283C34v179Ev");}
void  S283C3 ::v180(){vfunc_called(this, "_ZN6S283C34v180Ev");}
void  S283C3 ::v181(){vfunc_called(this, "_ZN6S283C34v181Ev");}
void  S283C3 ::v182(){vfunc_called(this, "_ZN6S283C34v182Ev");}
void  S283C3 ::v183(){vfunc_called(this, "_ZN6S283C34v183Ev");}
void  S283C3 ::v184(){vfunc_called(this, "_ZN6S283C34v184Ev");}
void  S283C3 ::v185(){vfunc_called(this, "_ZN6S283C34v185Ev");}
void  S283C3 ::v186(){vfunc_called(this, "_ZN6S283C34v186Ev");}
void  S283C3 ::v187(){vfunc_called(this, "_ZN6S283C34v187Ev");}
void  S283C3 ::v188(){vfunc_called(this, "_ZN6S283C34v188Ev");}
S283C3 ::S283C3(){ note_ctor("S283C3", this);} // tgen

static void Test_S283C3()
{
  extern Class_Descriptor cd_S283C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S283C3, buf);
    S283C3 *dp, &lv = *(dp=new (buf) S283C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S283C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S283C3)");
    check_base_class_offset(lv, (S283C6*)(S283C5*)(S283C4*), 0, "S283C3");
    check_base_class_offset(lv, (S283C5*)(S283C4*), 0, "S283C3");
    check_base_class_offset(lv, (S283C4*), 0, "S283C3");
    check_field_offset(lv, s283c3f0, ABISELECT(464,352), "S283C3.s283c3f0");
    check_field_offset(lv, s283c3f1, ABISELECT(472,360), "S283C3.s283c3f1");
    check_field_offset(lv, s283c3f2, ABISELECT(544,396), "S283C3.s283c3f2");
    check_field_offset(lv, s283c3f3, ABISELECT(560,408), "S283C3.s283c3f3");
    check_field_offset(lv, s283c3f4, ABISELECT(576,420), "S283C3.s283c3f4");
    check_field_offset(lv, s283c3f5, ABISELECT(608,440), "S283C3.s283c3f5");
    set_bf_and_test(lv, s283c3f6, ABISELECT(612,444), 0, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f7, ABISELECT(612,444), 1, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f8, ABISELECT(612,444), 2, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f9, ABISELECT(612,444), 3, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f10, ABISELECT(612,444), 4, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f11, ABISELECT(612,444), 5, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f12, ABISELECT(612,444), 6, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f13, ABISELECT(612,444), 7, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f14, ABISELECT(613,445), 0, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f15, ABISELECT(613,445), 1, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f16, ABISELECT(613,445), 2, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f17, ABISELECT(613,445), 3, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f18, ABISELECT(613,445), 4, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f19, ABISELECT(613,445), 5, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f20, ABISELECT(613,445), 6, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f21, ABISELECT(613,445), 7, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f22, ABISELECT(614,446), 0, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f23, ABISELECT(614,446), 1, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f24, ABISELECT(614,446), 2, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f25, ABISELECT(614,446), 3, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f26, ABISELECT(614,446), 4, 1, 1, "S283C3");
    set_bf_and_test(lv, s283c3f27, ABISELECT(614,446), 5, 1, 1, "S283C3");
    check_field_offset(lv, s283c3f28, ABISELECT(616,448), "S283C3.s283c3f28");
    check_field_offset(lv, s283c3f29, ABISELECT(624,452), "S283C3.s283c3f29");
    check_field_offset(lv, s283c3f30, ABISELECT(628,456), "S283C3.s283c3f30");
    check_field_offset(lv, s283c3f31, ABISELECT(636,464), "S283C3.s283c3f31");
    check_field_offset(lv, s283c3f32, ABISELECT(644,472), "S283C3.s283c3f32");
    check_field_offset(lv, s283c3f33, ABISELECT(656,480), "S283C3.s283c3f33");
    check_field_offset(lv, s283c3f34, ABISELECT(664,484), "S283C3.s283c3f34");
    check_field_offset(lv, s283c3f35, ABISELECT(680,496), "S283C3.s283c3f35");
    check_field_offset(lv, s283c3f36, ABISELECT(696,508), "S283C3.s283c3f36");
    check_field_offset(lv, s283c3f37, ABISELECT(712,520), "S283C3.s283c3f37");
    check_field_offset(lv, s283c3f38, ABISELECT(728,532), "S283C3.s283c3f38");
    test_class_info(&lv, &cd_S283C3);
    dp->~S283C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS283C3(Test_S283C3, "S283C3", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S283C3C1Ev();
extern void _ZN6S283C3D1Ev();
Name_Map name_map_S283C3[] = {
  NSPAIR(_ZN6S283C3C1Ev),
  NSPAIR(_ZN6S283C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S283C6;
extern VTBL_ENTRY _ZTI6S283C6[];
extern  VTBL_ENTRY _ZTV6S283C6[];
extern Class_Descriptor cd_S283C5;
extern VTBL_ENTRY _ZTI6S283C5[];
extern  VTBL_ENTRY _ZTV6S283C5[];
extern Class_Descriptor cd_S283C4;
extern VTBL_ENTRY _ZTI6S283C4[];
extern  VTBL_ENTRY _ZTV6S283C4[];
static Base_Class bases_S283C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S283C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S283C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S283C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S283C3[];
extern void _ZN6S283C3D1Ev();
extern void _ZN6S283C3D0Ev();
extern void _ZN6S283C62v8Ev();
extern void _ZN6S283C62v9Ev();
extern void _ZN6S283C63v10Ev();
extern void _ZN6S283C63v11Ev();
extern void _ZN6S283C63v12Ev();
extern void _ZN6S283C63v13Ev();
extern void _ZN6S283C63v14Ev();
extern void _ZN6S283C63v15Ev();
extern void _ZN6S283C63v16Ev();
extern void _ZN6S283C63v17Ev();
extern void _ZN6S283C63v18Ev();
extern void _ZN6S283C63v19Ev();
extern void _ZN6S283C63v20Ev();
extern void _ZN6S283C63v21Ev();
extern void _ZN6S283C63v22Ev();
extern void _ZN6S283C63v23Ev();
extern void _ZN6S283C63v24Ev();
extern void _ZN6S283C63v25Ev();
extern void _ZN6S283C63v26Ev();
extern void _ZN6S283C63v27Ev();
extern void _ZN6S283C63v28Ev();
extern void _ZN6S283C63v29Ev();
extern void _ZN6S283C63v30Ev();
extern void _ZN6S283C63v31Ev();
extern void _ZN6S283C63v32Ev();
extern void _ZN6S283C63v33Ev();
extern void _ZN6S283C63v34Ev();
extern void _ZN6S283C63v35Ev();
extern void _ZN6S283C63v36Ev();
extern void _ZN6S283C63v37Ev();
extern void _ZN6S283C63v38Ev();
extern void _ZN6S283C63v39Ev();
extern void _ZN6S283C63v40Ev();
extern void _ZN6S283C63v41Ev();
extern void _ZN6S283C63v42Ev();
extern void _ZN6S283C63v43Ev();
extern void _ZN6S283C63v44Ev();
extern void _ZN6S283C63v45Ev();
extern void _ZN6S283C63v46Ev();
extern void _ZN6S283C63v47Ev();
extern void _ZN6S283C63v48Ev();
extern void _ZN6S283C63v49Ev();
extern void _ZN6S283C63v50Ev();
extern void _ZN6S283C63v51Ev();
extern void _ZN6S283C63v52Ev();
extern void _ZN6S283C63v53Ev();
extern void _ZN6S283C63v54Ev();
extern void _ZN6S283C63v55Ev();
extern void _ZN6S283C63v56Ev();
extern void _ZN6S283C63v57Ev();
extern void _ZN6S283C63v58Ev();
extern void _ZN6S283C63v59Ev();
extern void _ZN6S283C63v60Ev();
extern void _ZN6S283C63v61Ev();
extern void _ZN6S283C63v62Ev();
extern void _ZN6S283C63v63Ev();
extern void _ZN6S283C63v64Ev();
extern void _ZN6S283C63v65Ev();
extern void _ZN6S283C63v66Ev();
extern void _ZN6S283C63v67Ev();
extern void _ZN6S283C63v68Ev();
extern void _ZN6S283C63v69Ev();
extern void _ZN6S283C63v70Ev();
extern void _ZN6S283C63v71Ev();
extern void _ZN6S283C53v72Ev();
extern void _ZN6S283C53v73Ev();
extern void _ZN6S283C43v74Ev();
extern void _ZN6S283C43v75Ev();
extern void _ZN6S283C43v76Ev();
extern void _ZN6S283C43v77Ev();
extern void _ZN6S283C43v78Ev();
extern void _ZN6S283C43v79Ev();
extern void _ZN6S283C43v80Ev();
extern void _ZN6S283C43v81Ev();
extern void _ZN6S283C43v82Ev();
extern void _ZN6S283C43v83Ev();
extern void _ZN6S283C43v84Ev();
extern void _ZN6S283C43v85Ev();
extern void _ZN6S283C43v86Ev();
extern void _ZN6S283C43v87Ev();
extern void _ZN6S283C43v88Ev();
extern void _ZN6S283C43v89Ev();
extern void _ZN6S283C43v90Ev();
extern void _ZN6S283C43v91Ev();
extern void _ZN6S283C43v92Ev();
extern void _ZN6S283C43v93Ev();
extern void _ZN6S283C43v94Ev();
extern void _ZN6S283C43v95Ev();
extern void _ZN6S283C43v96Ev();
extern void _ZN6S283C43v97Ev();
extern void _ZN6S283C43v98Ev();
extern void _ZN6S283C43v99Ev();
extern void _ZN6S283C44v100Ev();
extern void _ZN6S283C44v101Ev();
extern void _ZN6S283C44v102Ev();
extern void _ZN6S283C44v103Ev();
extern void _ZN6S283C44v104Ev();
extern void _ZN6S283C44v105Ev();
extern void _ZN6S283C44v106Ev();
extern void _ZN6S283C44v107Ev();
extern void _ZN6S283C44v108Ev();
extern void _ZN6S283C44v109Ev();
extern void _ZN6S283C44v110Ev();
extern void _ZN6S283C44v111Ev();
extern void _ZN6S283C44v112Ev();
extern void _ZN6S283C44v113Ev();
extern void _ZN6S283C44v114Ev();
extern void _ZN6S283C44v115Ev();
extern void _ZN6S283C44v116Ev();
extern void _ZN6S283C44v117Ev();
extern void _ZN6S283C44v118Ev();
extern void _ZN6S283C44v119Ev();
extern void _ZN6S283C44v120Ev();
extern void _ZN6S283C44v121Ev();
extern void _ZN6S283C44v122Ev();
extern void _ZN6S283C44v123Ev();
extern void _ZN6S283C44v124Ev();
extern void _ZN6S283C44v125Ev();
extern void _ZN6S283C44v126Ev();
extern void _ZN6S283C44v127Ev();
extern void _ZN6S283C44v128Ev();
extern void _ZN6S283C44v129Ev();
extern void _ZN6S283C44v130Ev();
extern void _ZN6S283C44v131Ev();
extern void _ZN6S283C44v132Ev();
extern void _ZN6S283C44v133Ev();
extern void _ZN6S283C44v134Ev();
extern void _ZN6S283C44v135Ev();
extern void _ZN6S283C44v136Ev();
extern void _ZN6S283C44v137Ev();
extern void _ZN6S283C44v138Ev();
extern void _ZN6S283C44v139Ev();
extern void _ZN6S283C44v140Ev();
extern void _ZN6S283C44v141Ev();
extern void _ZN6S283C44v142Ev();
extern void _ZN6S283C44v143Ev();
extern void _ZN6S283C44v144Ev();
extern void _ZN6S283C44v145Ev();
extern void _ZN6S283C44v146Ev();
extern void _ZN6S283C44v147Ev();
extern void _ZN6S283C44v148Ev();
extern void _ZN6S283C44v149Ev();
extern void _ZN6S283C34v150Ev();
extern void _ZN6S283C34v151Ev();
extern void _ZN6S283C34v152Ev();
extern void _ZN6S283C34v153Ev();
extern void _ZN6S283C34v154Ev();
extern void _ZN6S283C34v155Ev();
extern void _ZN6S283C34v156Ev();
extern void _ZN6S283C34v157Ev();
extern void _ZN6S283C34v158Ev();
extern void _ZN6S283C34v159Ev();
extern void _ZN6S283C34v160Ev();
extern void _ZN6S283C34v161Ev();
extern void _ZN6S283C34v162Ev();
extern void _ZN6S283C34v163Ev();
extern void _ZN6S283C34v164Ev();
extern void _ZN6S283C34v165Ev();
extern void _ZN6S283C34v166Ev();
extern void _ZN6S283C34v167Ev();
extern void _ZN6S283C34v168Ev();
extern void _ZN6S283C34v169Ev();
extern void _ZN6S283C34v170Ev();
extern void _ZN6S283C34v171Ev();
extern void _ZN6S283C34v172Ev();
extern void _ZN6S283C34v173Ev();
extern void _ZN6S283C34v174Ev();
extern void _ZN6S283C34v175Ev();
extern void _ZN6S283C34v176Ev();
extern void _ZN6S283C34v177Ev();
extern void _ZN6S283C34v178Ev();
extern void _ZN6S283C34v179Ev();
extern void _ZN6S283C34v180Ev();
extern void _ZN6S283C34v181Ev();
extern void _ZN6S283C34v182Ev();
extern void _ZN6S283C34v183Ev();
extern void _ZN6S283C34v184Ev();
extern void _ZN6S283C34v185Ev();
extern void _ZN6S283C34v186Ev();
extern void _ZN6S283C34v187Ev();
extern void _ZN6S283C34v188Ev();
static  VTBL_ENTRY vtc_S283C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S283C3[0]),
  (VTBL_ENTRY)&_ZN6S283C3D1Ev,
  (VTBL_ENTRY)&_ZN6S283C3D0Ev,
  (VTBL_ENTRY)&_ZN6S283C62v8Ev,
  (VTBL_ENTRY)&_ZN6S283C62v9Ev,
  (VTBL_ENTRY)&_ZN6S283C63v10Ev,
  (VTBL_ENTRY)&_ZN6S283C63v11Ev,
  (VTBL_ENTRY)&_ZN6S283C63v12Ev,
  (VTBL_ENTRY)&_ZN6S283C63v13Ev,
  (VTBL_ENTRY)&_ZN6S283C63v14Ev,
  (VTBL_ENTRY)&_ZN6S283C63v15Ev,
  (VTBL_ENTRY)&_ZN6S283C63v16Ev,
  (VTBL_ENTRY)&_ZN6S283C63v17Ev,
  (VTBL_ENTRY)&_ZN6S283C63v18Ev,
  (VTBL_ENTRY)&_ZN6S283C63v19Ev,
  (VTBL_ENTRY)&_ZN6S283C63v20Ev,
  (VTBL_ENTRY)&_ZN6S283C63v21Ev,
  (VTBL_ENTRY)&_ZN6S283C63v22Ev,
  (VTBL_ENTRY)&_ZN6S283C63v23Ev,
  (VTBL_ENTRY)&_ZN6S283C63v24Ev,
  (VTBL_ENTRY)&_ZN6S283C63v25Ev,
  (VTBL_ENTRY)&_ZN6S283C63v26Ev,
  (VTBL_ENTRY)&_ZN6S283C63v27Ev,
  (VTBL_ENTRY)&_ZN6S283C63v28Ev,
  (VTBL_ENTRY)&_ZN6S283C63v29Ev,
  (VTBL_ENTRY)&_ZN6S283C63v30Ev,
  (VTBL_ENTRY)&_ZN6S283C63v31Ev,
  (VTBL_ENTRY)&_ZN6S283C63v32Ev,
  (VTBL_ENTRY)&_ZN6S283C63v33Ev,
  (VTBL_ENTRY)&_ZN6S283C63v34Ev,
  (VTBL_ENTRY)&_ZN6S283C63v35Ev,
  (VTBL_ENTRY)&_ZN6S283C63v36Ev,
  (VTBL_ENTRY)&_ZN6S283C63v37Ev,
  (VTBL_ENTRY)&_ZN6S283C63v38Ev,
  (VTBL_ENTRY)&_ZN6S283C63v39Ev,
  (VTBL_ENTRY)&_ZN6S283C63v40Ev,
  (VTBL_ENTRY)&_ZN6S283C63v41Ev,
  (VTBL_ENTRY)&_ZN6S283C63v42Ev,
  (VTBL_ENTRY)&_ZN6S283C63v43Ev,
  (VTBL_ENTRY)&_ZN6S283C63v44Ev,
  (VTBL_ENTRY)&_ZN6S283C63v45Ev,
  (VTBL_ENTRY)&_ZN6S283C63v46Ev,
  (VTBL_ENTRY)&_ZN6S283C63v47Ev,
  (VTBL_ENTRY)&_ZN6S283C63v48Ev,
  (VTBL_ENTRY)&_ZN6S283C63v49Ev,
  (VTBL_ENTRY)&_ZN6S283C63v50Ev,
  (VTBL_ENTRY)&_ZN6S283C63v51Ev,
  (VTBL_ENTRY)&_ZN6S283C63v52Ev,
  (VTBL_ENTRY)&_ZN6S283C63v53Ev,
  (VTBL_ENTRY)&_ZN6S283C63v54Ev,
  (VTBL_ENTRY)&_ZN6S283C63v55Ev,
  (VTBL_ENTRY)&_ZN6S283C63v56Ev,
  (VTBL_ENTRY)&_ZN6S283C63v57Ev,
  (VTBL_ENTRY)&_ZN6S283C63v58Ev,
  (VTBL_ENTRY)&_ZN6S283C63v59Ev,
  (VTBL_ENTRY)&_ZN6S283C63v60Ev,
  (VTBL_ENTRY)&_ZN6S283C63v61Ev,
  (VTBL_ENTRY)&_ZN6S283C63v62Ev,
  (VTBL_ENTRY)&_ZN6S283C63v63Ev,
  (VTBL_ENTRY)&_ZN6S283C63v64Ev,
  (VTBL_ENTRY)&_ZN6S283C63v65Ev,
  (VTBL_ENTRY)&_ZN6S283C63v66Ev,
  (VTBL_ENTRY)&_ZN6S283C63v67Ev,
  (VTBL_ENTRY)&_ZN6S283C63v68Ev,
  (VTBL_ENTRY)&_ZN6S283C63v69Ev,
  (VTBL_ENTRY)&_ZN6S283C63v70Ev,
  (VTBL_ENTRY)&_ZN6S283C63v71Ev,
  (VTBL_ENTRY)&_ZN6S283C53v72Ev,
  (VTBL_ENTRY)&_ZN6S283C53v73Ev,
  (VTBL_ENTRY)&_ZN6S283C43v74Ev,
  (VTBL_ENTRY)&_ZN6S283C43v75Ev,
  (VTBL_ENTRY)&_ZN6S283C43v76Ev,
  (VTBL_ENTRY)&_ZN6S283C43v77Ev,
  (VTBL_ENTRY)&_ZN6S283C43v78Ev,
  (VTBL_ENTRY)&_ZN6S283C43v79Ev,
  (VTBL_ENTRY)&_ZN6S283C43v80Ev,
  (VTBL_ENTRY)&_ZN6S283C43v81Ev,
  (VTBL_ENTRY)&_ZN6S283C43v82Ev,
  (VTBL_ENTRY)&_ZN6S283C43v83Ev,
  (VTBL_ENTRY)&_ZN6S283C43v84Ev,
  (VTBL_ENTRY)&_ZN6S283C43v85Ev,
  (VTBL_ENTRY)&_ZN6S283C43v86Ev,
  (VTBL_ENTRY)&_ZN6S283C43v87Ev,
  (VTBL_ENTRY)&_ZN6S283C43v88Ev,
  (VTBL_ENTRY)&_ZN6S283C43v89Ev,
  (VTBL_ENTRY)&_ZN6S283C43v90Ev,
  (VTBL_ENTRY)&_ZN6S283C43v91Ev,
  (VTBL_ENTRY)&_ZN6S283C43v92Ev,
  (VTBL_ENTRY)&_ZN6S283C43v93Ev,
  (VTBL_ENTRY)&_ZN6S283C43v94Ev,
  (VTBL_ENTRY)&_ZN6S283C43v95Ev,
  (VTBL_ENTRY)&_ZN6S283C43v96Ev,
  (VTBL_ENTRY)&_ZN6S283C43v97Ev,
  (VTBL_ENTRY)&_ZN6S283C43v98Ev,
  (VTBL_ENTRY)&_ZN6S283C43v99Ev,
  (VTBL_ENTRY)&_ZN6S283C44v100Ev,
  (VTBL_ENTRY)&_ZN6S283C44v101Ev,
  (VTBL_ENTRY)&_ZN6S283C44v102Ev,
  (VTBL_ENTRY)&_ZN6S283C44v103Ev,
  (VTBL_ENTRY)&_ZN6S283C44v104Ev,
  (VTBL_ENTRY)&_ZN6S283C44v105Ev,
  (VTBL_ENTRY)&_ZN6S283C44v106Ev,
  (VTBL_ENTRY)&_ZN6S283C44v107Ev,
  (VTBL_ENTRY)&_ZN6S283C44v108Ev,
  (VTBL_ENTRY)&_ZN6S283C44v109Ev,
  (VTBL_ENTRY)&_ZN6S283C44v110Ev,
  (VTBL_ENTRY)&_ZN6S283C44v111Ev,
  (VTBL_ENTRY)&_ZN6S283C44v112Ev,
  (VTBL_ENTRY)&_ZN6S283C44v113Ev,
  (VTBL_ENTRY)&_ZN6S283C44v114Ev,
  (VTBL_ENTRY)&_ZN6S283C44v115Ev,
  (VTBL_ENTRY)&_ZN6S283C44v116Ev,
  (VTBL_ENTRY)&_ZN6S283C44v117Ev,
  (VTBL_ENTRY)&_ZN6S283C44v118Ev,
  (VTBL_ENTRY)&_ZN6S283C44v119Ev,
  (VTBL_ENTRY)&_ZN6S283C44v120Ev,
  (VTBL_ENTRY)&_ZN6S283C44v121Ev,
  (VTBL_ENTRY)&_ZN6S283C44v122Ev,
  (VTBL_ENTRY)&_ZN6S283C44v123Ev,
  (VTBL_ENTRY)&_ZN6S283C44v124Ev,
  (VTBL_ENTRY)&_ZN6S283C44v125Ev,
  (VTBL_ENTRY)&_ZN6S283C44v126Ev,
  (VTBL_ENTRY)&_ZN6S283C44v127Ev,
  (VTBL_ENTRY)&_ZN6S283C44v128Ev,
  (VTBL_ENTRY)&_ZN6S283C44v129Ev,
  (VTBL_ENTRY)&_ZN6S283C44v130Ev,
  (VTBL_ENTRY)&_ZN6S283C44v131Ev,
  (VTBL_ENTRY)&_ZN6S283C44v132Ev,
  (VTBL_ENTRY)&_ZN6S283C44v133Ev,
  (VTBL_ENTRY)&_ZN6S283C44v134Ev,
  (VTBL_ENTRY)&_ZN6S283C44v135Ev,
  (VTBL_ENTRY)&_ZN6S283C44v136Ev,
  (VTBL_ENTRY)&_ZN6S283C44v137Ev,
  (VTBL_ENTRY)&_ZN6S283C44v138Ev,
  (VTBL_ENTRY)&_ZN6S283C44v139Ev,
  (VTBL_ENTRY)&_ZN6S283C44v140Ev,
  (VTBL_ENTRY)&_ZN6S283C44v141Ev,
  (VTBL_ENTRY)&_ZN6S283C44v142Ev,
  (VTBL_ENTRY)&_ZN6S283C44v143Ev,
  (VTBL_ENTRY)&_ZN6S283C44v144Ev,
  (VTBL_ENTRY)&_ZN6S283C44v145Ev,
  (VTBL_ENTRY)&_ZN6S283C44v146Ev,
  (VTBL_ENTRY)&_ZN6S283C44v147Ev,
  (VTBL_ENTRY)&_ZN6S283C44v148Ev,
  (VTBL_ENTRY)&_ZN6S283C44v149Ev,
  (VTBL_ENTRY)&_ZN6S283C34v150Ev,
  (VTBL_ENTRY)&_ZN6S283C34v151Ev,
  (VTBL_ENTRY)&_ZN6S283C34v152Ev,
  (VTBL_ENTRY)&_ZN6S283C34v153Ev,
  (VTBL_ENTRY)&_ZN6S283C34v154Ev,
  (VTBL_ENTRY)&_ZN6S283C34v155Ev,
  (VTBL_ENTRY)&_ZN6S283C34v156Ev,
  (VTBL_ENTRY)&_ZN6S283C34v157Ev,
  (VTBL_ENTRY)&_ZN6S283C34v158Ev,
  (VTBL_ENTRY)&_ZN6S283C34v159Ev,
  (VTBL_ENTRY)&_ZN6S283C34v160Ev,
  (VTBL_ENTRY)&_ZN6S283C34v161Ev,
  (VTBL_ENTRY)&_ZN6S283C34v162Ev,
  (VTBL_ENTRY)&_ZN6S283C34v163Ev,
  (VTBL_ENTRY)&_ZN6S283C34v164Ev,
  (VTBL_ENTRY)&_ZN6S283C34v165Ev,
  (VTBL_ENTRY)&_ZN6S283C34v166Ev,
  (VTBL_ENTRY)&_ZN6S283C34v167Ev,
  (VTBL_ENTRY)&_ZN6S283C34v168Ev,
  (VTBL_ENTRY)&_ZN6S283C34v169Ev,
  (VTBL_ENTRY)&_ZN6S283C34v170Ev,
  (VTBL_ENTRY)&_ZN6S283C34v171Ev,
  (VTBL_ENTRY)&_ZN6S283C34v172Ev,
  (VTBL_ENTRY)&_ZN6S283C34v173Ev,
  (VTBL_ENTRY)&_ZN6S283C34v174Ev,
  (VTBL_ENTRY)&_ZN6S283C34v175Ev,
  (VTBL_ENTRY)&_ZN6S283C34v176Ev,
  (VTBL_ENTRY)&_ZN6S283C34v177Ev,
  (VTBL_ENTRY)&_ZN6S283C34v178Ev,
  (VTBL_ENTRY)&_ZN6S283C34v179Ev,
  (VTBL_ENTRY)&_ZN6S283C34v180Ev,
  (VTBL_ENTRY)&_ZN6S283C34v181Ev,
  (VTBL_ENTRY)&_ZN6S283C34v182Ev,
  (VTBL_ENTRY)&_ZN6S283C34v183Ev,
  (VTBL_ENTRY)&_ZN6S283C34v184Ev,
  (VTBL_ENTRY)&_ZN6S283C34v185Ev,
  (VTBL_ENTRY)&_ZN6S283C34v186Ev,
  (VTBL_ENTRY)&_ZN6S283C34v187Ev,
  (VTBL_ENTRY)&_ZN6S283C34v188Ev,
};
extern VTBL_ENTRY _ZTI6S283C3[];
extern  VTBL_ENTRY _ZTV6S283C3[];
Class_Descriptor cd_S283C3 = {  "S283C3", // class name
  bases_S283C3, 3,
  &(vtc_S283C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S283C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S283C3),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S283C2  : S283C3 {
  unsigned int s283c2f0:1;
  unsigned int s283c2f1:1;
  unsigned int s283c2f2:1;
  unsigned int s283c2f3:1;
  unsigned int s283c2f4:1;
  unsigned int s283c2f5:1;
  void *s283c2f6[8];
  ::S80C21_nt s283c2f7;
  ::S80C21_nt s283c2f8;
  ::S80C21_nt s283c2f9;
  virtual  ~S283C2(); // _ZN6S283C2D1Ev
  virtual void  v189(); // _ZN6S283C24v189Ev
  virtual void  v190(); // _ZN6S283C24v190Ev
  virtual void  v191(); // _ZN6S283C24v191Ev
  virtual void  v192(); // _ZN6S283C24v192Ev
  virtual void  v193(); // _ZN6S283C24v193Ev
  virtual void  v194(); // _ZN6S283C24v194Ev
  virtual void  v195(); // _ZN6S283C24v195Ev
  virtual void  v196(); // _ZN6S283C24v196Ev
  virtual void  v197(); // _ZN6S283C24v197Ev
  virtual void  v198(); // _ZN6S283C24v198Ev
  virtual void  v199(); // _ZN6S283C24v199Ev
  virtual void  v200(); // _ZN6S283C24v200Ev
  virtual void  v201(); // _ZN6S283C24v201Ev
  virtual void  v202(); // _ZN6S283C24v202Ev
  virtual void  v203(); // _ZN6S283C24v203Ev
  virtual void  v204(); // _ZN6S283C24v204Ev
  virtual void  v205(); // _ZN6S283C24v205Ev
  virtual void  v206(); // _ZN6S283C24v206Ev
  virtual void  v207(); // _ZN6S283C24v207Ev
  virtual void  v208(); // _ZN6S283C24v208Ev
  virtual void  v209(); // _ZN6S283C24v209Ev
  virtual void  v210(); // _ZN6S283C24v210Ev
  virtual void  v211(); // _ZN6S283C24v211Ev
  S283C2(); // tgen
};
//SIG(-1 S283C2) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S283C2 ::~S283C2(){ note_dtor("S283C2", this);}
void  S283C2 ::v189(){vfunc_called(this, "_ZN6S283C24v189Ev");}
void  S283C2 ::v190(){vfunc_called(this, "_ZN6S283C24v190Ev");}
void  S283C2 ::v191(){vfunc_called(this, "_ZN6S283C24v191Ev");}
void  S283C2 ::v192(){vfunc_called(this, "_ZN6S283C24v192Ev");}
void  S283C2 ::v193(){vfunc_called(this, "_ZN6S283C24v193Ev");}
void  S283C2 ::v194(){vfunc_called(this, "_ZN6S283C24v194Ev");}
void  S283C2 ::v195(){vfunc_called(this, "_ZN6S283C24v195Ev");}
void  S283C2 ::v196(){vfunc_called(this, "_ZN6S283C24v196Ev");}
void  S283C2 ::v197(){vfunc_called(this, "_ZN6S283C24v197Ev");}
void  S283C2 ::v198(){vfunc_called(this, "_ZN6S283C24v198Ev");}
void  S283C2 ::v199(){vfunc_called(this, "_ZN6S283C24v199Ev");}
void  S283C2 ::v200(){vfunc_called(this, "_ZN6S283C24v200Ev");}
void  S283C2 ::v201(){vfunc_called(this, "_ZN6S283C24v201Ev");}
void  S283C2 ::v202(){vfunc_called(this, "_ZN6S283C24v202Ev");}
void  S283C2 ::v203(){vfunc_called(this, "_ZN6S283C24v203Ev");}
void  S283C2 ::v204(){vfunc_called(this, "_ZN6S283C24v204Ev");}
void  S283C2 ::v205(){vfunc_called(this, "_ZN6S283C24v205Ev");}
void  S283C2 ::v206(){vfunc_called(this, "_ZN6S283C24v206Ev");}
void  S283C2 ::v207(){vfunc_called(this, "_ZN6S283C24v207Ev");}
void  S283C2 ::v208(){vfunc_called(this, "_ZN6S283C24v208Ev");}
void  S283C2 ::v209(){vfunc_called(this, "_ZN6S283C24v209Ev");}
void  S283C2 ::v210(){vfunc_called(this, "_ZN6S283C24v210Ev");}
void  S283C2 ::v211(){vfunc_called(this, "_ZN6S283C24v211Ev");}
S283C2 ::S283C2(){ note_ctor("S283C2", this);} // tgen

static void Test_S283C2()
{
  extern Class_Descriptor cd_S283C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S283C2, buf);
    S283C2 *dp, &lv = *(dp=new (buf) S283C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S283C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S283C2)");
    check_base_class_offset(lv, (S283C6*)(S283C5*)(S283C4*)(S283C3*), 0, "S283C2");
    check_base_class_offset(lv, (S283C5*)(S283C4*)(S283C3*), 0, "S283C2");
    check_base_class_offset(lv, (S283C4*)(S283C3*), 0, "S283C2");
    check_base_class_offset(lv, (S283C3*), 0, "S283C2");
    set_bf_and_test(lv, s283c2f0, ABISELECT(744,544), 0, 1, 1, "S283C2");
    set_bf_and_test(lv, s283c2f1, ABISELECT(744,544), 1, 1, 1, "S283C2");
    set_bf_and_test(lv, s283c2f2, ABISELECT(744,544), 2, 1, 1, "S283C2");
    set_bf_and_test(lv, s283c2f3, ABISELECT(744,544), 3, 1, 1, "S283C2");
    set_bf_and_test(lv, s283c2f4, ABISELECT(744,544), 4, 1, 1, "S283C2");
    set_bf_and_test(lv, s283c2f5, ABISELECT(744,544), 5, 1, 1, "S283C2");
    check_field_offset(lv, s283c2f6, ABISELECT(752,548), "S283C2.s283c2f6");
    check_field_offset(lv, s283c2f7, ABISELECT(816,580), "S283C2.s283c2f7");
    check_field_offset(lv, s283c2f8, ABISELECT(832,592), "S283C2.s283c2f8");
    check_field_offset(lv, s283c2f9, ABISELECT(848,604), "S283C2.s283c2f9");
    test_class_info(&lv, &cd_S283C2);
    dp->~S283C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS283C2(Test_S283C2, "S283C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S283C2C1Ev();
extern void _ZN6S283C2D1Ev();
Name_Map name_map_S283C2[] = {
  NSPAIR(_ZN6S283C2C1Ev),
  NSPAIR(_ZN6S283C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S283C6;
extern VTBL_ENTRY _ZTI6S283C6[];
extern  VTBL_ENTRY _ZTV6S283C6[];
extern Class_Descriptor cd_S283C5;
extern VTBL_ENTRY _ZTI6S283C5[];
extern  VTBL_ENTRY _ZTV6S283C5[];
extern Class_Descriptor cd_S283C4;
extern VTBL_ENTRY _ZTI6S283C4[];
extern  VTBL_ENTRY _ZTV6S283C4[];
extern Class_Descriptor cd_S283C3;
extern VTBL_ENTRY _ZTI6S283C3[];
extern  VTBL_ENTRY _ZTV6S283C3[];
static Base_Class bases_S283C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S283C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S283C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S283C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S283C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S283C2[];
extern void _ZN6S283C2D1Ev();
extern void _ZN6S283C2D0Ev();
extern void _ZN6S283C62v8Ev();
extern void _ZN6S283C62v9Ev();
extern void _ZN6S283C63v10Ev();
extern void _ZN6S283C63v11Ev();
extern void _ZN6S283C63v12Ev();
extern void _ZN6S283C63v13Ev();
extern void _ZN6S283C63v14Ev();
extern void _ZN6S283C63v15Ev();
extern void _ZN6S283C63v16Ev();
extern void _ZN6S283C63v17Ev();
extern void _ZN6S283C63v18Ev();
extern void _ZN6S283C63v19Ev();
extern void _ZN6S283C63v20Ev();
extern void _ZN6S283C63v21Ev();
extern void _ZN6S283C63v22Ev();
extern void _ZN6S283C63v23Ev();
extern void _ZN6S283C63v24Ev();
extern void _ZN6S283C63v25Ev();
extern void _ZN6S283C63v26Ev();
extern void _ZN6S283C63v27Ev();
extern void _ZN6S283C63v28Ev();
extern void _ZN6S283C63v29Ev();
extern void _ZN6S283C63v30Ev();
extern void _ZN6S283C63v31Ev();
extern void _ZN6S283C63v32Ev();
extern void _ZN6S283C63v33Ev();
extern void _ZN6S283C63v34Ev();
extern void _ZN6S283C63v35Ev();
extern void _ZN6S283C63v36Ev();
extern void _ZN6S283C63v37Ev();
extern void _ZN6S283C63v38Ev();
extern void _ZN6S283C63v39Ev();
extern void _ZN6S283C63v40Ev();
extern void _ZN6S283C63v41Ev();
extern void _ZN6S283C63v42Ev();
extern void _ZN6S283C63v43Ev();
extern void _ZN6S283C63v44Ev();
extern void _ZN6S283C63v45Ev();
extern void _ZN6S283C63v46Ev();
extern void _ZN6S283C63v47Ev();
extern void _ZN6S283C63v48Ev();
extern void _ZN6S283C63v49Ev();
extern void _ZN6S283C63v50Ev();
extern void _ZN6S283C63v51Ev();
extern void _ZN6S283C63v52Ev();
extern void _ZN6S283C63v53Ev();
extern void _ZN6S283C63v54Ev();
extern void _ZN6S283C63v55Ev();
extern void _ZN6S283C63v56Ev();
extern void _ZN6S283C63v57Ev();
extern void _ZN6S283C63v58Ev();
extern void _ZN6S283C63v59Ev();
extern void _ZN6S283C63v60Ev();
extern void _ZN6S283C63v61Ev();
extern void _ZN6S283C63v62Ev();
extern void _ZN6S283C63v63Ev();
extern void _ZN6S283C63v64Ev();
extern void _ZN6S283C63v65Ev();
extern void _ZN6S283C63v66Ev();
extern void _ZN6S283C63v67Ev();
extern void _ZN6S283C63v68Ev();
extern void _ZN6S283C63v69Ev();
extern void _ZN6S283C63v70Ev();
extern void _ZN6S283C63v71Ev();
extern void _ZN6S283C53v72Ev();
extern void _ZN6S283C53v73Ev();
extern void _ZN6S283C43v74Ev();
extern void _ZN6S283C43v75Ev();
extern void _ZN6S283C43v76Ev();
extern void _ZN6S283C43v77Ev();
extern void _ZN6S283C43v78Ev();
extern void _ZN6S283C43v79Ev();
extern void _ZN6S283C43v80Ev();
extern void _ZN6S283C43v81Ev();
extern void _ZN6S283C43v82Ev();
extern void _ZN6S283C43v83Ev();
extern void _ZN6S283C43v84Ev();
extern void _ZN6S283C43v85Ev();
extern void _ZN6S283C43v86Ev();
extern void _ZN6S283C43v87Ev();
extern void _ZN6S283C43v88Ev();
extern void _ZN6S283C43v89Ev();
extern void _ZN6S283C43v90Ev();
extern void _ZN6S283C43v91Ev();
extern void _ZN6S283C43v92Ev();
extern void _ZN6S283C43v93Ev();
extern void _ZN6S283C43v94Ev();
extern void _ZN6S283C43v95Ev();
extern void _ZN6S283C43v96Ev();
extern void _ZN6S283C43v97Ev();
extern void _ZN6S283C43v98Ev();
extern void _ZN6S283C43v99Ev();
extern void _ZN6S283C44v100Ev();
extern void _ZN6S283C44v101Ev();
extern void _ZN6S283C44v102Ev();
extern void _ZN6S283C44v103Ev();
extern void _ZN6S283C44v104Ev();
extern void _ZN6S283C44v105Ev();
extern void _ZN6S283C44v106Ev();
extern void _ZN6S283C44v107Ev();
extern void _ZN6S283C44v108Ev();
extern void _ZN6S283C44v109Ev();
extern void _ZN6S283C44v110Ev();
extern void _ZN6S283C44v111Ev();
extern void _ZN6S283C44v112Ev();
extern void _ZN6S283C44v113Ev();
extern void _ZN6S283C44v114Ev();
extern void _ZN6S283C44v115Ev();
extern void _ZN6S283C44v116Ev();
extern void _ZN6S283C44v117Ev();
extern void _ZN6S283C44v118Ev();
extern void _ZN6S283C44v119Ev();
extern void _ZN6S283C44v120Ev();
extern void _ZN6S283C44v121Ev();
extern void _ZN6S283C44v122Ev();
extern void _ZN6S283C44v123Ev();
extern void _ZN6S283C44v124Ev();
extern void _ZN6S283C44v125Ev();
extern void _ZN6S283C44v126Ev();
extern void _ZN6S283C44v127Ev();
extern void _ZN6S283C44v128Ev();
extern void _ZN6S283C44v129Ev();
extern void _ZN6S283C44v130Ev();
extern void _ZN6S283C44v131Ev();
extern void _ZN6S283C44v132Ev();
extern void _ZN6S283C44v133Ev();
extern void _ZN6S283C44v134Ev();
extern void _ZN6S283C44v135Ev();
extern void _ZN6S283C44v136Ev();
extern void _ZN6S283C44v137Ev();
extern void _ZN6S283C44v138Ev();
extern void _ZN6S283C44v139Ev();
extern void _ZN6S283C44v140Ev();
extern void _ZN6S283C44v141Ev();
extern void _ZN6S283C44v142Ev();
extern void _ZN6S283C44v143Ev();
extern void _ZN6S283C44v144Ev();
extern void _ZN6S283C44v145Ev();
extern void _ZN6S283C44v146Ev();
extern void _ZN6S283C44v147Ev();
extern void _ZN6S283C44v148Ev();
extern void _ZN6S283C44v149Ev();
extern void _ZN6S283C34v150Ev();
extern void _ZN6S283C34v151Ev();
extern void _ZN6S283C34v152Ev();
extern void _ZN6S283C34v153Ev();
extern void _ZN6S283C34v154Ev();
extern void _ZN6S283C34v155Ev();
extern void _ZN6S283C34v156Ev();
extern void _ZN6S283C34v157Ev();
extern void _ZN6S283C34v158Ev();
extern void _ZN6S283C34v159Ev();
extern void _ZN6S283C34v160Ev();
extern void _ZN6S283C34v161Ev();
extern void _ZN6S283C34v162Ev();
extern void _ZN6S283C34v163Ev();
extern void _ZN6S283C34v164Ev();
extern void _ZN6S283C34v165Ev();
extern void _ZN6S283C34v166Ev();
extern void _ZN6S283C34v167Ev();
extern void _ZN6S283C34v168Ev();
extern void _ZN6S283C34v169Ev();
extern void _ZN6S283C34v170Ev();
extern void _ZN6S283C34v171Ev();
extern void _ZN6S283C34v172Ev();
extern void _ZN6S283C34v173Ev();
extern void _ZN6S283C34v174Ev();
extern void _ZN6S283C34v175Ev();
extern void _ZN6S283C34v176Ev();
extern void _ZN6S283C34v177Ev();
extern void _ZN6S283C34v178Ev();
extern void _ZN6S283C34v179Ev();
extern void _ZN6S283C34v180Ev();
extern void _ZN6S283C34v181Ev();
extern void _ZN6S283C34v182Ev();
extern void _ZN6S283C34v183Ev();
extern void _ZN6S283C34v184Ev();
extern void _ZN6S283C34v185Ev();
extern void _ZN6S283C34v186Ev();
extern void _ZN6S283C34v187Ev();
extern void _ZN6S283C34v188Ev();
extern void _ZN6S283C24v189Ev();
extern void _ZN6S283C24v190Ev();
extern void _ZN6S283C24v191Ev();
extern void _ZN6S283C24v192Ev();
extern void _ZN6S283C24v193Ev();
extern void _ZN6S283C24v194Ev();
extern void _ZN6S283C24v195Ev();
extern void _ZN6S283C24v196Ev();
extern void _ZN6S283C24v197Ev();
extern void _ZN6S283C24v198Ev();
extern void _ZN6S283C24v199Ev();
extern void _ZN6S283C24v200Ev();
extern void _ZN6S283C24v201Ev();
extern void _ZN6S283C24v202Ev();
extern void _ZN6S283C24v203Ev();
extern void _ZN6S283C24v204Ev();
extern void _ZN6S283C24v205Ev();
extern void _ZN6S283C24v206Ev();
extern void _ZN6S283C24v207Ev();
extern void _ZN6S283C24v208Ev();
extern void _ZN6S283C24v209Ev();
extern void _ZN6S283C24v210Ev();
extern void _ZN6S283C24v211Ev();
static  VTBL_ENTRY vtc_S283C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S283C2[0]),
  (VTBL_ENTRY)&_ZN6S283C2D1Ev,
  (VTBL_ENTRY)&_ZN6S283C2D0Ev,
  (VTBL_ENTRY)&_ZN6S283C62v8Ev,
  (VTBL_ENTRY)&_ZN6S283C62v9Ev,
  (VTBL_ENTRY)&_ZN6S283C63v10Ev,
  (VTBL_ENTRY)&_ZN6S283C63v11Ev,
  (VTBL_ENTRY)&_ZN6S283C63v12Ev,
  (VTBL_ENTRY)&_ZN6S283C63v13Ev,
  (VTBL_ENTRY)&_ZN6S283C63v14Ev,
  (VTBL_ENTRY)&_ZN6S283C63v15Ev,
  (VTBL_ENTRY)&_ZN6S283C63v16Ev,
  (VTBL_ENTRY)&_ZN6S283C63v17Ev,
  (VTBL_ENTRY)&_ZN6S283C63v18Ev,
  (VTBL_ENTRY)&_ZN6S283C63v19Ev,
  (VTBL_ENTRY)&_ZN6S283C63v20Ev,
  (VTBL_ENTRY)&_ZN6S283C63v21Ev,
  (VTBL_ENTRY)&_ZN6S283C63v22Ev,
  (VTBL_ENTRY)&_ZN6S283C63v23Ev,
  (VTBL_ENTRY)&_ZN6S283C63v24Ev,
  (VTBL_ENTRY)&_ZN6S283C63v25Ev,
  (VTBL_ENTRY)&_ZN6S283C63v26Ev,
  (VTBL_ENTRY)&_ZN6S283C63v27Ev,
  (VTBL_ENTRY)&_ZN6S283C63v28Ev,
  (VTBL_ENTRY)&_ZN6S283C63v29Ev,
  (VTBL_ENTRY)&_ZN6S283C63v30Ev,
  (VTBL_ENTRY)&_ZN6S283C63v31Ev,
  (VTBL_ENTRY)&_ZN6S283C63v32Ev,
  (VTBL_ENTRY)&_ZN6S283C63v33Ev,
  (VTBL_ENTRY)&_ZN6S283C63v34Ev,
  (VTBL_ENTRY)&_ZN6S283C63v35Ev,
  (VTBL_ENTRY)&_ZN6S283C63v36Ev,
  (VTBL_ENTRY)&_ZN6S283C63v37Ev,
  (VTBL_ENTRY)&_ZN6S283C63v38Ev,
  (VTBL_ENTRY)&_ZN6S283C63v39Ev,
  (VTBL_ENTRY)&_ZN6S283C63v40Ev,
  (VTBL_ENTRY)&_ZN6S283C63v41Ev,
  (VTBL_ENTRY)&_ZN6S283C63v42Ev,
  (VTBL_ENTRY)&_ZN6S283C63v43Ev,
  (VTBL_ENTRY)&_ZN6S283C63v44Ev,
  (VTBL_ENTRY)&_ZN6S283C63v45Ev,
  (VTBL_ENTRY)&_ZN6S283C63v46Ev,
  (VTBL_ENTRY)&_ZN6S283C63v47Ev,
  (VTBL_ENTRY)&_ZN6S283C63v48Ev,
  (VTBL_ENTRY)&_ZN6S283C63v49Ev,
  (VTBL_ENTRY)&_ZN6S283C63v50Ev,
  (VTBL_ENTRY)&_ZN6S283C63v51Ev,
  (VTBL_ENTRY)&_ZN6S283C63v52Ev,
  (VTBL_ENTRY)&_ZN6S283C63v53Ev,
  (VTBL_ENTRY)&_ZN6S283C63v54Ev,
  (VTBL_ENTRY)&_ZN6S283C63v55Ev,
  (VTBL_ENTRY)&_ZN6S283C63v56Ev,
  (VTBL_ENTRY)&_ZN6S283C63v57Ev,
  (VTBL_ENTRY)&_ZN6S283C63v58Ev,
  (VTBL_ENTRY)&_ZN6S283C63v59Ev,
  (VTBL_ENTRY)&_ZN6S283C63v60Ev,
  (VTBL_ENTRY)&_ZN6S283C63v61Ev,
  (VTBL_ENTRY)&_ZN6S283C63v62Ev,
  (VTBL_ENTRY)&_ZN6S283C63v63Ev,
  (VTBL_ENTRY)&_ZN6S283C63v64Ev,
  (VTBL_ENTRY)&_ZN6S283C63v65Ev,
  (VTBL_ENTRY)&_ZN6S283C63v66Ev,
  (VTBL_ENTRY)&_ZN6S283C63v67Ev,
  (VTBL_ENTRY)&_ZN6S283C63v68Ev,
  (VTBL_ENTRY)&_ZN6S283C63v69Ev,
  (VTBL_ENTRY)&_ZN6S283C63v70Ev,
  (VTBL_ENTRY)&_ZN6S283C63v71Ev,
  (VTBL_ENTRY)&_ZN6S283C53v72Ev,
  (VTBL_ENTRY)&_ZN6S283C53v73Ev,
  (VTBL_ENTRY)&_ZN6S283C43v74Ev,
  (VTBL_ENTRY)&_ZN6S283C43v75Ev,
  (VTBL_ENTRY)&_ZN6S283C43v76Ev,
  (VTBL_ENTRY)&_ZN6S283C43v77Ev,
  (VTBL_ENTRY)&_ZN6S283C43v78Ev,
  (VTBL_ENTRY)&_ZN6S283C43v79Ev,
  (VTBL_ENTRY)&_ZN6S283C43v80Ev,
  (VTBL_ENTRY)&_ZN6S283C43v81Ev,
  (VTBL_ENTRY)&_ZN6S283C43v82Ev,
  (VTBL_ENTRY)&_ZN6S283C43v83Ev,
  (VTBL_ENTRY)&_ZN6S283C43v84Ev,
  (VTBL_ENTRY)&_ZN6S283C43v85Ev,
  (VTBL_ENTRY)&_ZN6S283C43v86Ev,
  (VTBL_ENTRY)&_ZN6S283C43v87Ev,
  (VTBL_ENTRY)&_ZN6S283C43v88Ev,
  (VTBL_ENTRY)&_ZN6S283C43v89Ev,
  (VTBL_ENTRY)&_ZN6S283C43v90Ev,
  (VTBL_ENTRY)&_ZN6S283C43v91Ev,
  (VTBL_ENTRY)&_ZN6S283C43v92Ev,
  (VTBL_ENTRY)&_ZN6S283C43v93Ev,
  (VTBL_ENTRY)&_ZN6S283C43v94Ev,
  (VTBL_ENTRY)&_ZN6S283C43v95Ev,
  (VTBL_ENTRY)&_ZN6S283C43v96Ev,
  (VTBL_ENTRY)&_ZN6S283C43v97Ev,
  (VTBL_ENTRY)&_ZN6S283C43v98Ev,
  (VTBL_ENTRY)&_ZN6S283C43v99Ev,
  (VTBL_ENTRY)&_ZN6S283C44v100Ev,
  (VTBL_ENTRY)&_ZN6S283C44v101Ev,
  (VTBL_ENTRY)&_ZN6S283C44v102Ev,
  (VTBL_ENTRY)&_ZN6S283C44v103Ev,
  (VTBL_ENTRY)&_ZN6S283C44v104Ev,
  (VTBL_ENTRY)&_ZN6S283C44v105Ev,
  (VTBL_ENTRY)&_ZN6S283C44v106Ev,
  (VTBL_ENTRY)&_ZN6S283C44v107Ev,
  (VTBL_ENTRY)&_ZN6S283C44v108Ev,
  (VTBL_ENTRY)&_ZN6S283C44v109Ev,
  (VTBL_ENTRY)&_ZN6S283C44v110Ev,
  (VTBL_ENTRY)&_ZN6S283C44v111Ev,
  (VTBL_ENTRY)&_ZN6S283C44v112Ev,
  (VTBL_ENTRY)&_ZN6S283C44v113Ev,
  (VTBL_ENTRY)&_ZN6S283C44v114Ev,
  (VTBL_ENTRY)&_ZN6S283C44v115Ev,
  (VTBL_ENTRY)&_ZN6S283C44v116Ev,
  (VTBL_ENTRY)&_ZN6S283C44v117Ev,
  (VTBL_ENTRY)&_ZN6S283C44v118Ev,
  (VTBL_ENTRY)&_ZN6S283C44v119Ev,
  (VTBL_ENTRY)&_ZN6S283C44v120Ev,
  (VTBL_ENTRY)&_ZN6S283C44v121Ev,
  (VTBL_ENTRY)&_ZN6S283C44v122Ev,
  (VTBL_ENTRY)&_ZN6S283C44v123Ev,
  (VTBL_ENTRY)&_ZN6S283C44v124Ev,
  (VTBL_ENTRY)&_ZN6S283C44v125Ev,
  (VTBL_ENTRY)&_ZN6S283C44v126Ev,
  (VTBL_ENTRY)&_ZN6S283C44v127Ev,
  (VTBL_ENTRY)&_ZN6S283C44v128Ev,
  (VTBL_ENTRY)&_ZN6S283C44v129Ev,
  (VTBL_ENTRY)&_ZN6S283C44v130Ev,
  (VTBL_ENTRY)&_ZN6S283C44v131Ev,
  (VTBL_ENTRY)&_ZN6S283C44v132Ev,
  (VTBL_ENTRY)&_ZN6S283C44v133Ev,
  (VTBL_ENTRY)&_ZN6S283C44v134Ev,
  (VTBL_ENTRY)&_ZN6S283C44v135Ev,
  (VTBL_ENTRY)&_ZN6S283C44v136Ev,
  (VTBL_ENTRY)&_ZN6S283C44v137Ev,
  (VTBL_ENTRY)&_ZN6S283C44v138Ev,
  (VTBL_ENTRY)&_ZN6S283C44v139Ev,
  (VTBL_ENTRY)&_ZN6S283C44v140Ev,
  (VTBL_ENTRY)&_ZN6S283C44v141Ev,
  (VTBL_ENTRY)&_ZN6S283C44v142Ev,
  (VTBL_ENTRY)&_ZN6S283C44v143Ev,
  (VTBL_ENTRY)&_ZN6S283C44v144Ev,
  (VTBL_ENTRY)&_ZN6S283C44v145Ev,
  (VTBL_ENTRY)&_ZN6S283C44v146Ev,
  (VTBL_ENTRY)&_ZN6S283C44v147Ev,
  (VTBL_ENTRY)&_ZN6S283C44v148Ev,
  (VTBL_ENTRY)&_ZN6S283C44v149Ev,
  (VTBL_ENTRY)&_ZN6S283C34v150Ev,
  (VTBL_ENTRY)&_ZN6S283C34v151Ev,
  (VTBL_ENTRY)&_ZN6S283C34v152Ev,
  (VTBL_ENTRY)&_ZN6S283C34v153Ev,
  (VTBL_ENTRY)&_ZN6S283C34v154Ev,
  (VTBL_ENTRY)&_ZN6S283C34v155Ev,
  (VTBL_ENTRY)&_ZN6S283C34v156Ev,
  (VTBL_ENTRY)&_ZN6S283C34v157Ev,
  (VTBL_ENTRY)&_ZN6S283C34v158Ev,
  (VTBL_ENTRY)&_ZN6S283C34v159Ev,
  (VTBL_ENTRY)&_ZN6S283C34v160Ev,
  (VTBL_ENTRY)&_ZN6S283C34v161Ev,
  (VTBL_ENTRY)&_ZN6S283C34v162Ev,
  (VTBL_ENTRY)&_ZN6S283C34v163Ev,
  (VTBL_ENTRY)&_ZN6S283C34v164Ev,
  (VTBL_ENTRY)&_ZN6S283C34v165Ev,
  (VTBL_ENTRY)&_ZN6S283C34v166Ev,
  (VTBL_ENTRY)&_ZN6S283C34v167Ev,
  (VTBL_ENTRY)&_ZN6S283C34v168Ev,
  (VTBL_ENTRY)&_ZN6S283C34v169Ev,
  (VTBL_ENTRY)&_ZN6S283C34v170Ev,
  (VTBL_ENTRY)&_ZN6S283C34v171Ev,
  (VTBL_ENTRY)&_ZN6S283C34v172Ev,
  (VTBL_ENTRY)&_ZN6S283C34v173Ev,
  (VTBL_ENTRY)&_ZN6S283C34v174Ev,
  (VTBL_ENTRY)&_ZN6S283C34v175Ev,
  (VTBL_ENTRY)&_ZN6S283C34v176Ev,
  (VTBL_ENTRY)&_ZN6S283C34v177Ev,
  (VTBL_ENTRY)&_ZN6S283C34v178Ev,
  (VTBL_ENTRY)&_ZN6S283C34v179Ev,
  (VTBL_ENTRY)&_ZN6S283C34v180Ev,
  (VTBL_ENTRY)&_ZN6S283C34v181Ev,
  (VTBL_ENTRY)&_ZN6S283C34v182Ev,
  (VTBL_ENTRY)&_ZN6S283C34v183Ev,
  (VTBL_ENTRY)&_ZN6S283C34v184Ev,
  (VTBL_ENTRY)&_ZN6S283C34v185Ev,
  (VTBL_ENTRY)&_ZN6S283C34v186Ev,
  (VTBL_ENTRY)&_ZN6S283C34v187Ev,
  (VTBL_ENTRY)&_ZN6S283C34v188Ev,
  (VTBL_ENTRY)&_ZN6S283C24v189Ev,
  (VTBL_ENTRY)&_ZN6S283C24v190Ev,
  (VTBL_ENTRY)&_ZN6S283C24v191Ev,
  (VTBL_ENTRY)&_ZN6S283C24v192Ev,
  (VTBL_ENTRY)&_ZN6S283C24v193Ev,
  (VTBL_ENTRY)&_ZN6S283C24v194Ev,
  (VTBL_ENTRY)&_ZN6S283C24v195Ev,
  (VTBL_ENTRY)&_ZN6S283C24v196Ev,
  (VTBL_ENTRY)&_ZN6S283C24v197Ev,
  (VTBL_ENTRY)&_ZN6S283C24v198Ev,
  (VTBL_ENTRY)&_ZN6S283C24v199Ev,
  (VTBL_ENTRY)&_ZN6S283C24v200Ev,
  (VTBL_ENTRY)&_ZN6S283C24v201Ev,
  (VTBL_ENTRY)&_ZN6S283C24v202Ev,
  (VTBL_ENTRY)&_ZN6S283C24v203Ev,
  (VTBL_ENTRY)&_ZN6S283C24v204Ev,
  (VTBL_ENTRY)&_ZN6S283C24v205Ev,
  (VTBL_ENTRY)&_ZN6S283C24v206Ev,
  (VTBL_ENTRY)&_ZN6S283C24v207Ev,
  (VTBL_ENTRY)&_ZN6S283C24v208Ev,
  (VTBL_ENTRY)&_ZN6S283C24v209Ev,
  (VTBL_ENTRY)&_ZN6S283C24v210Ev,
  (VTBL_ENTRY)&_ZN6S283C24v211Ev,
};
extern VTBL_ENTRY _ZTI6S283C2[];
extern  VTBL_ENTRY _ZTV6S283C2[];
Class_Descriptor cd_S283C2 = {  "S283C2", // class name
  bases_S283C2, 4,
  &(vtc_S283C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S283C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S283C2),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S283C1  : S283C2 {
  unsigned int s283c1f0:1;
  int s283c1f1;
  ::S80C28_nt s283c1f2;
  int s283c1f3;
  ::S80C28_nt s283c1f4;
  unsigned int s283c1f5:1;
  virtual  ~S283C1(); // _ZN6S283C1D1Ev
  virtual void  v1(); // _ZN6S283C12v1Ev
  virtual void  v2(); // _ZN6S283C12v2Ev
  virtual void  v3(); // _ZN6S283C12v3Ev
  virtual void  v4(); // _ZN6S283C12v4Ev
  virtual void  v5(); // _ZN6S283C12v5Ev
  virtual void  v6(); // _ZN6S283C12v6Ev
  virtual void  v7(); // _ZN6S283C12v7Ev
  S283C1(); // tgen
};
//SIG(1 S283C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v72 v73} vd v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 v208 v209 v210 v211 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 v4 v5 v6 v7 Fi:1 Fi FC27{ BC16} Fi FC27 Fi:1}


 S283C1 ::~S283C1(){ note_dtor("S283C1", this);}
void  S283C1 ::v1(){vfunc_called(this, "_ZN6S283C12v1Ev");}
void  S283C1 ::v2(){vfunc_called(this, "_ZN6S283C12v2Ev");}
void  S283C1 ::v3(){vfunc_called(this, "_ZN6S283C12v3Ev");}
void  S283C1 ::v4(){vfunc_called(this, "_ZN6S283C12v4Ev");}
void  S283C1 ::v5(){vfunc_called(this, "_ZN6S283C12v5Ev");}
void  S283C1 ::v6(){vfunc_called(this, "_ZN6S283C12v6Ev");}
void  S283C1 ::v7(){vfunc_called(this, "_ZN6S283C12v7Ev");}
S283C1 ::S283C1(){ note_ctor("S283C1", this);} // tgen

static void Test_S283C1()
{
  extern Class_Descriptor cd_S283C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(116,165)];
    init_test(&cd_S283C1, buf);
    S283C1 *dp, &lv = *(dp=new (buf) S283C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(920,656), "sizeof(S283C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S283C1)");
    check_base_class_offset(lv, (S283C6*)(S283C5*)(S283C4*)(S283C3*)(S283C2*), 0, "S283C1");
    check_base_class_offset(lv, (S283C5*)(S283C4*)(S283C3*)(S283C2*), 0, "S283C1");
    check_base_class_offset(lv, (S283C4*)(S283C3*)(S283C2*), 0, "S283C1");
    check_base_class_offset(lv, (S283C3*)(S283C2*), 0, "S283C1");
    check_base_class_offset(lv, (S283C2*), 0, "S283C1");
    set_bf_and_test(lv, s283c1f0, ABISELECT(864,616), 0, 1, 1, "S283C1");
    check_field_offset(lv, s283c1f1, ABISELECT(868,620), "S283C1.s283c1f1");
    check_field_offset(lv, s283c1f2, ABISELECT(872,624), "S283C1.s283c1f2");
    check_field_offset(lv, s283c1f3, ABISELECT(888,636), "S283C1.s283c1f3");
    check_field_offset(lv, s283c1f4, ABISELECT(896,640), "S283C1.s283c1f4");
    set_bf_and_test(lv, s283c1f5, ABISELECT(912,652), 0, 1, 1, "S283C1");
    test_class_info(&lv, &cd_S283C1);
    dp->~S283C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS283C1(Test_S283C1, "S283C1", ABISELECT(920,656));

#else // __cplusplus

extern void _ZN6S283C1C1Ev();
extern void _ZN6S283C1D1Ev();
Name_Map name_map_S283C1[] = {
  NSPAIR(_ZN6S283C1C1Ev),
  NSPAIR(_ZN6S283C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S283C6;
extern VTBL_ENTRY _ZTI6S283C6[];
extern  VTBL_ENTRY _ZTV6S283C6[];
extern Class_Descriptor cd_S283C5;
extern VTBL_ENTRY _ZTI6S283C5[];
extern  VTBL_ENTRY _ZTV6S283C5[];
extern Class_Descriptor cd_S283C4;
extern VTBL_ENTRY _ZTI6S283C4[];
extern  VTBL_ENTRY _ZTV6S283C4[];
extern Class_Descriptor cd_S283C3;
extern VTBL_ENTRY _ZTI6S283C3[];
extern  VTBL_ENTRY _ZTV6S283C3[];
extern Class_Descriptor cd_S283C2;
extern VTBL_ENTRY _ZTI6S283C2[];
extern  VTBL_ENTRY _ZTV6S283C2[];
static Base_Class bases_S283C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S283C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S283C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S283C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S283C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S283C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S283C1[];
extern void _ZN6S283C1D1Ev();
extern void _ZN6S283C1D0Ev();
extern void _ZN6S283C62v8Ev();
extern void _ZN6S283C62v9Ev();
extern void _ZN6S283C63v10Ev();
extern void _ZN6S283C63v11Ev();
extern void _ZN6S283C63v12Ev();
extern void _ZN6S283C63v13Ev();
extern void _ZN6S283C63v14Ev();
extern void _ZN6S283C63v15Ev();
extern void _ZN6S283C63v16Ev();
extern void _ZN6S283C63v17Ev();
extern void _ZN6S283C63v18Ev();
extern void _ZN6S283C63v19Ev();
extern void _ZN6S283C63v20Ev();
extern void _ZN6S283C63v21Ev();
extern void _ZN6S283C63v22Ev();
extern void _ZN6S283C63v23Ev();
extern void _ZN6S283C63v24Ev();
extern void _ZN6S283C63v25Ev();
extern void _ZN6S283C63v26Ev();
extern void _ZN6S283C63v27Ev();
extern void _ZN6S283C63v28Ev();
extern void _ZN6S283C63v29Ev();
extern void _ZN6S283C63v30Ev();
extern void _ZN6S283C63v31Ev();
extern void _ZN6S283C63v32Ev();
extern void _ZN6S283C63v33Ev();
extern void _ZN6S283C63v34Ev();
extern void _ZN6S283C63v35Ev();
extern void _ZN6S283C63v36Ev();
extern void _ZN6S283C63v37Ev();
extern void _ZN6S283C63v38Ev();
extern void _ZN6S283C63v39Ev();
extern void _ZN6S283C63v40Ev();
extern void _ZN6S283C63v41Ev();
extern void _ZN6S283C63v42Ev();
extern void _ZN6S283C63v43Ev();
extern void _ZN6S283C63v44Ev();
extern void _ZN6S283C63v45Ev();
extern void _ZN6S283C63v46Ev();
extern void _ZN6S283C63v47Ev();
extern void _ZN6S283C63v48Ev();
extern void _ZN6S283C63v49Ev();
extern void _ZN6S283C63v50Ev();
extern void _ZN6S283C63v51Ev();
extern void _ZN6S283C63v52Ev();
extern void _ZN6S283C63v53Ev();
extern void _ZN6S283C63v54Ev();
extern void _ZN6S283C63v55Ev();
extern void _ZN6S283C63v56Ev();
extern void _ZN6S283C63v57Ev();
extern void _ZN6S283C63v58Ev();
extern void _ZN6S283C63v59Ev();
extern void _ZN6S283C63v60Ev();
extern void _ZN6S283C63v61Ev();
extern void _ZN6S283C63v62Ev();
extern void _ZN6S283C63v63Ev();
extern void _ZN6S283C63v64Ev();
extern void _ZN6S283C63v65Ev();
extern void _ZN6S283C63v66Ev();
extern void _ZN6S283C63v67Ev();
extern void _ZN6S283C63v68Ev();
extern void _ZN6S283C63v69Ev();
extern void _ZN6S283C63v70Ev();
extern void _ZN6S283C63v71Ev();
extern void _ZN6S283C53v72Ev();
extern void _ZN6S283C53v73Ev();
extern void _ZN6S283C43v74Ev();
extern void _ZN6S283C43v75Ev();
extern void _ZN6S283C43v76Ev();
extern void _ZN6S283C43v77Ev();
extern void _ZN6S283C43v78Ev();
extern void _ZN6S283C43v79Ev();
extern void _ZN6S283C43v80Ev();
extern void _ZN6S283C43v81Ev();
extern void _ZN6S283C43v82Ev();
extern void _ZN6S283C43v83Ev();
extern void _ZN6S283C43v84Ev();
extern void _ZN6S283C43v85Ev();
extern void _ZN6S283C43v86Ev();
extern void _ZN6S283C43v87Ev();
extern void _ZN6S283C43v88Ev();
extern void _ZN6S283C43v89Ev();
extern void _ZN6S283C43v90Ev();
extern void _ZN6S283C43v91Ev();
extern void _ZN6S283C43v92Ev();
extern void _ZN6S283C43v93Ev();
extern void _ZN6S283C43v94Ev();
extern void _ZN6S283C43v95Ev();
extern void _ZN6S283C43v96Ev();
extern void _ZN6S283C43v97Ev();
extern void _ZN6S283C43v98Ev();
extern void _ZN6S283C43v99Ev();
extern void _ZN6S283C44v100Ev();
extern void _ZN6S283C44v101Ev();
extern void _ZN6S283C44v102Ev();
extern void _ZN6S283C44v103Ev();
extern void _ZN6S283C44v104Ev();
extern void _ZN6S283C44v105Ev();
extern void _ZN6S283C44v106Ev();
extern void _ZN6S283C44v107Ev();
extern void _ZN6S283C44v108Ev();
extern void _ZN6S283C44v109Ev();
extern void _ZN6S283C44v110Ev();
extern void _ZN6S283C44v111Ev();
extern void _ZN6S283C44v112Ev();
extern void _ZN6S283C44v113Ev();
extern void _ZN6S283C44v114Ev();
extern void _ZN6S283C44v115Ev();
extern void _ZN6S283C44v116Ev();
extern void _ZN6S283C44v117Ev();
extern void _ZN6S283C44v118Ev();
extern void _ZN6S283C44v119Ev();
extern void _ZN6S283C44v120Ev();
extern void _ZN6S283C44v121Ev();
extern void _ZN6S283C44v122Ev();
extern void _ZN6S283C44v123Ev();
extern void _ZN6S283C44v124Ev();
extern void _ZN6S283C44v125Ev();
extern void _ZN6S283C44v126Ev();
extern void _ZN6S283C44v127Ev();
extern void _ZN6S283C44v128Ev();
extern void _ZN6S283C44v129Ev();
extern void _ZN6S283C44v130Ev();
extern void _ZN6S283C44v131Ev();
extern void _ZN6S283C44v132Ev();
extern void _ZN6S283C44v133Ev();
extern void _ZN6S283C44v134Ev();
extern void _ZN6S283C44v135Ev();
extern void _ZN6S283C44v136Ev();
extern void _ZN6S283C44v137Ev();
extern void _ZN6S283C44v138Ev();
extern void _ZN6S283C44v139Ev();
extern void _ZN6S283C44v140Ev();
extern void _ZN6S283C44v141Ev();
extern void _ZN6S283C44v142Ev();
extern void _ZN6S283C44v143Ev();
extern void _ZN6S283C44v144Ev();
extern void _ZN6S283C44v145Ev();
extern void _ZN6S283C44v146Ev();
extern void _ZN6S283C44v147Ev();
extern void _ZN6S283C44v148Ev();
extern void _ZN6S283C44v149Ev();
extern void _ZN6S283C34v150Ev();
extern void _ZN6S283C34v151Ev();
extern void _ZN6S283C34v152Ev();
extern void _ZN6S283C34v153Ev();
extern void _ZN6S283C34v154Ev();
extern void _ZN6S283C34v155Ev();
extern void _ZN6S283C34v156Ev();
extern void _ZN6S283C34v157Ev();
extern void _ZN6S283C34v158Ev();
extern void _ZN6S283C34v159Ev();
extern void _ZN6S283C34v160Ev();
extern void _ZN6S283C34v161Ev();
extern void _ZN6S283C34v162Ev();
extern void _ZN6S283C34v163Ev();
extern void _ZN6S283C34v164Ev();
extern void _ZN6S283C34v165Ev();
extern void _ZN6S283C34v166Ev();
extern void _ZN6S283C34v167Ev();
extern void _ZN6S283C34v168Ev();
extern void _ZN6S283C34v169Ev();
extern void _ZN6S283C34v170Ev();
extern void _ZN6S283C34v171Ev();
extern void _ZN6S283C34v172Ev();
extern void _ZN6S283C34v173Ev();
extern void _ZN6S283C34v174Ev();
extern void _ZN6S283C34v175Ev();
extern void _ZN6S283C34v176Ev();
extern void _ZN6S283C34v177Ev();
extern void _ZN6S283C34v178Ev();
extern void _ZN6S283C34v179Ev();
extern void _ZN6S283C34v180Ev();
extern void _ZN6S283C34v181Ev();
extern void _ZN6S283C34v182Ev();
extern void _ZN6S283C34v183Ev();
extern void _ZN6S283C34v184Ev();
extern void _ZN6S283C34v185Ev();
extern void _ZN6S283C34v186Ev();
extern void _ZN6S283C34v187Ev();
extern void _ZN6S283C34v188Ev();
extern void _ZN6S283C24v189Ev();
extern void _ZN6S283C24v190Ev();
extern void _ZN6S283C24v191Ev();
extern void _ZN6S283C24v192Ev();
extern void _ZN6S283C24v193Ev();
extern void _ZN6S283C24v194Ev();
extern void _ZN6S283C24v195Ev();
extern void _ZN6S283C24v196Ev();
extern void _ZN6S283C24v197Ev();
extern void _ZN6S283C24v198Ev();
extern void _ZN6S283C24v199Ev();
extern void _ZN6S283C24v200Ev();
extern void _ZN6S283C24v201Ev();
extern void _ZN6S283C24v202Ev();
extern void _ZN6S283C24v203Ev();
extern void _ZN6S283C24v204Ev();
extern void _ZN6S283C24v205Ev();
extern void _ZN6S283C24v206Ev();
extern void _ZN6S283C24v207Ev();
extern void _ZN6S283C24v208Ev();
extern void _ZN6S283C24v209Ev();
extern void _ZN6S283C24v210Ev();
extern void _ZN6S283C24v211Ev();
extern void _ZN6S283C12v1Ev();
extern void _ZN6S283C12v2Ev();
extern void _ZN6S283C12v3Ev();
extern void _ZN6S283C12v4Ev();
extern void _ZN6S283C12v5Ev();
extern void _ZN6S283C12v6Ev();
extern void _ZN6S283C12v7Ev();
static  VTBL_ENTRY vtc_S283C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S283C1[0]),
  (VTBL_ENTRY)&_ZN6S283C1D1Ev,
  (VTBL_ENTRY)&_ZN6S283C1D0Ev,
  (VTBL_ENTRY)&_ZN6S283C62v8Ev,
  (VTBL_ENTRY)&_ZN6S283C62v9Ev,
  (VTBL_ENTRY)&_ZN6S283C63v10Ev,
  (VTBL_ENTRY)&_ZN6S283C63v11Ev,
  (VTBL_ENTRY)&_ZN6S283C63v12Ev,
  (VTBL_ENTRY)&_ZN6S283C63v13Ev,
  (VTBL_ENTRY)&_ZN6S283C63v14Ev,
  (VTBL_ENTRY)&_ZN6S283C63v15Ev,
  (VTBL_ENTRY)&_ZN6S283C63v16Ev,
  (VTBL_ENTRY)&_ZN6S283C63v17Ev,
  (VTBL_ENTRY)&_ZN6S283C63v18Ev,
  (VTBL_ENTRY)&_ZN6S283C63v19Ev,
  (VTBL_ENTRY)&_ZN6S283C63v20Ev,
  (VTBL_ENTRY)&_ZN6S283C63v21Ev,
  (VTBL_ENTRY)&_ZN6S283C63v22Ev,
  (VTBL_ENTRY)&_ZN6S283C63v23Ev,
  (VTBL_ENTRY)&_ZN6S283C63v24Ev,
  (VTBL_ENTRY)&_ZN6S283C63v25Ev,
  (VTBL_ENTRY)&_ZN6S283C63v26Ev,
  (VTBL_ENTRY)&_ZN6S283C63v27Ev,
  (VTBL_ENTRY)&_ZN6S283C63v28Ev,
  (VTBL_ENTRY)&_ZN6S283C63v29Ev,
  (VTBL_ENTRY)&_ZN6S283C63v30Ev,
  (VTBL_ENTRY)&_ZN6S283C63v31Ev,
  (VTBL_ENTRY)&_ZN6S283C63v32Ev,
  (VTBL_ENTRY)&_ZN6S283C63v33Ev,
  (VTBL_ENTRY)&_ZN6S283C63v34Ev,
  (VTBL_ENTRY)&_ZN6S283C63v35Ev,
  (VTBL_ENTRY)&_ZN6S283C63v36Ev,
  (VTBL_ENTRY)&_ZN6S283C63v37Ev,
  (VTBL_ENTRY)&_ZN6S283C63v38Ev,
  (VTBL_ENTRY)&_ZN6S283C63v39Ev,
  (VTBL_ENTRY)&_ZN6S283C63v40Ev,
  (VTBL_ENTRY)&_ZN6S283C63v41Ev,
  (VTBL_ENTRY)&_ZN6S283C63v42Ev,
  (VTBL_ENTRY)&_ZN6S283C63v43Ev,
  (VTBL_ENTRY)&_ZN6S283C63v44Ev,
  (VTBL_ENTRY)&_ZN6S283C63v45Ev,
  (VTBL_ENTRY)&_ZN6S283C63v46Ev,
  (VTBL_ENTRY)&_ZN6S283C63v47Ev,
  (VTBL_ENTRY)&_ZN6S283C63v48Ev,
  (VTBL_ENTRY)&_ZN6S283C63v49Ev,
  (VTBL_ENTRY)&_ZN6S283C63v50Ev,
  (VTBL_ENTRY)&_ZN6S283C63v51Ev,
  (VTBL_ENTRY)&_ZN6S283C63v52Ev,
  (VTBL_ENTRY)&_ZN6S283C63v53Ev,
  (VTBL_ENTRY)&_ZN6S283C63v54Ev,
  (VTBL_ENTRY)&_ZN6S283C63v55Ev,
  (VTBL_ENTRY)&_ZN6S283C63v56Ev,
  (VTBL_ENTRY)&_ZN6S283C63v57Ev,
  (VTBL_ENTRY)&_ZN6S283C63v58Ev,
  (VTBL_ENTRY)&_ZN6S283C63v59Ev,
  (VTBL_ENTRY)&_ZN6S283C63v60Ev,
  (VTBL_ENTRY)&_ZN6S283C63v61Ev,
  (VTBL_ENTRY)&_ZN6S283C63v62Ev,
  (VTBL_ENTRY)&_ZN6S283C63v63Ev,
  (VTBL_ENTRY)&_ZN6S283C63v64Ev,
  (VTBL_ENTRY)&_ZN6S283C63v65Ev,
  (VTBL_ENTRY)&_ZN6S283C63v66Ev,
  (VTBL_ENTRY)&_ZN6S283C63v67Ev,
  (VTBL_ENTRY)&_ZN6S283C63v68Ev,
  (VTBL_ENTRY)&_ZN6S283C63v69Ev,
  (VTBL_ENTRY)&_ZN6S283C63v70Ev,
  (VTBL_ENTRY)&_ZN6S283C63v71Ev,
  (VTBL_ENTRY)&_ZN6S283C53v72Ev,
  (VTBL_ENTRY)&_ZN6S283C53v73Ev,
  (VTBL_ENTRY)&_ZN6S283C43v74Ev,
  (VTBL_ENTRY)&_ZN6S283C43v75Ev,
  (VTBL_ENTRY)&_ZN6S283C43v76Ev,
  (VTBL_ENTRY)&_ZN6S283C43v77Ev,
  (VTBL_ENTRY)&_ZN6S283C43v78Ev,
  (VTBL_ENTRY)&_ZN6S283C43v79Ev,
  (VTBL_ENTRY)&_ZN6S283C43v80Ev,
  (VTBL_ENTRY)&_ZN6S283C43v81Ev,
  (VTBL_ENTRY)&_ZN6S283C43v82Ev,
  (VTBL_ENTRY)&_ZN6S283C43v83Ev,
  (VTBL_ENTRY)&_ZN6S283C43v84Ev,
  (VTBL_ENTRY)&_ZN6S283C43v85Ev,
  (VTBL_ENTRY)&_ZN6S283C43v86Ev,
  (VTBL_ENTRY)&_ZN6S283C43v87Ev,
  (VTBL_ENTRY)&_ZN6S283C43v88Ev,
  (VTBL_ENTRY)&_ZN6S283C43v89Ev,
  (VTBL_ENTRY)&_ZN6S283C43v90Ev,
  (VTBL_ENTRY)&_ZN6S283C43v91Ev,
  (VTBL_ENTRY)&_ZN6S283C43v92Ev,
  (VTBL_ENTRY)&_ZN6S283C43v93Ev,
  (VTBL_ENTRY)&_ZN6S283C43v94Ev,
  (VTBL_ENTRY)&_ZN6S283C43v95Ev,
  (VTBL_ENTRY)&_ZN6S283C43v96Ev,
  (VTBL_ENTRY)&_ZN6S283C43v97Ev,
  (VTBL_ENTRY)&_ZN6S283C43v98Ev,
  (VTBL_ENTRY)&_ZN6S283C43v99Ev,
  (VTBL_ENTRY)&_ZN6S283C44v100Ev,
  (VTBL_ENTRY)&_ZN6S283C44v101Ev,
  (VTBL_ENTRY)&_ZN6S283C44v102Ev,
  (VTBL_ENTRY)&_ZN6S283C44v103Ev,
  (VTBL_ENTRY)&_ZN6S283C44v104Ev,
  (VTBL_ENTRY)&_ZN6S283C44v105Ev,
  (VTBL_ENTRY)&_ZN6S283C44v106Ev,
  (VTBL_ENTRY)&_ZN6S283C44v107Ev,
  (VTBL_ENTRY)&_ZN6S283C44v108Ev,
  (VTBL_ENTRY)&_ZN6S283C44v109Ev,
  (VTBL_ENTRY)&_ZN6S283C44v110Ev,
  (VTBL_ENTRY)&_ZN6S283C44v111Ev,
  (VTBL_ENTRY)&_ZN6S283C44v112Ev,
  (VTBL_ENTRY)&_ZN6S283C44v113Ev,
  (VTBL_ENTRY)&_ZN6S283C44v114Ev,
  (VTBL_ENTRY)&_ZN6S283C44v115Ev,
  (VTBL_ENTRY)&_ZN6S283C44v116Ev,
  (VTBL_ENTRY)&_ZN6S283C44v117Ev,
  (VTBL_ENTRY)&_ZN6S283C44v118Ev,
  (VTBL_ENTRY)&_ZN6S283C44v119Ev,
  (VTBL_ENTRY)&_ZN6S283C44v120Ev,
  (VTBL_ENTRY)&_ZN6S283C44v121Ev,
  (VTBL_ENTRY)&_ZN6S283C44v122Ev,
  (VTBL_ENTRY)&_ZN6S283C44v123Ev,
  (VTBL_ENTRY)&_ZN6S283C44v124Ev,
  (VTBL_ENTRY)&_ZN6S283C44v125Ev,
  (VTBL_ENTRY)&_ZN6S283C44v126Ev,
  (VTBL_ENTRY)&_ZN6S283C44v127Ev,
  (VTBL_ENTRY)&_ZN6S283C44v128Ev,
  (VTBL_ENTRY)&_ZN6S283C44v129Ev,
  (VTBL_ENTRY)&_ZN6S283C44v130Ev,
  (VTBL_ENTRY)&_ZN6S283C44v131Ev,
  (VTBL_ENTRY)&_ZN6S283C44v132Ev,
  (VTBL_ENTRY)&_ZN6S283C44v133Ev,
  (VTBL_ENTRY)&_ZN6S283C44v134Ev,
  (VTBL_ENTRY)&_ZN6S283C44v135Ev,
  (VTBL_ENTRY)&_ZN6S283C44v136Ev,
  (VTBL_ENTRY)&_ZN6S283C44v137Ev,
  (VTBL_ENTRY)&_ZN6S283C44v138Ev,
  (VTBL_ENTRY)&_ZN6S283C44v139Ev,
  (VTBL_ENTRY)&_ZN6S283C44v140Ev,
  (VTBL_ENTRY)&_ZN6S283C44v141Ev,
  (VTBL_ENTRY)&_ZN6S283C44v142Ev,
  (VTBL_ENTRY)&_ZN6S283C44v143Ev,
  (VTBL_ENTRY)&_ZN6S283C44v144Ev,
  (VTBL_ENTRY)&_ZN6S283C44v145Ev,
  (VTBL_ENTRY)&_ZN6S283C44v146Ev,
  (VTBL_ENTRY)&_ZN6S283C44v147Ev,
  (VTBL_ENTRY)&_ZN6S283C44v148Ev,
  (VTBL_ENTRY)&_ZN6S283C44v149Ev,
  (VTBL_ENTRY)&_ZN6S283C34v150Ev,
  (VTBL_ENTRY)&_ZN6S283C34v151Ev,
  (VTBL_ENTRY)&_ZN6S283C34v152Ev,
  (VTBL_ENTRY)&_ZN6S283C34v153Ev,
  (VTBL_ENTRY)&_ZN6S283C34v154Ev,
  (VTBL_ENTRY)&_ZN6S283C34v155Ev,
  (VTBL_ENTRY)&_ZN6S283C34v156Ev,
  (VTBL_ENTRY)&_ZN6S283C34v157Ev,
  (VTBL_ENTRY)&_ZN6S283C34v158Ev,
  (VTBL_ENTRY)&_ZN6S283C34v159Ev,
  (VTBL_ENTRY)&_ZN6S283C34v160Ev,
  (VTBL_ENTRY)&_ZN6S283C34v161Ev,
  (VTBL_ENTRY)&_ZN6S283C34v162Ev,
  (VTBL_ENTRY)&_ZN6S283C34v163Ev,
  (VTBL_ENTRY)&_ZN6S283C34v164Ev,
  (VTBL_ENTRY)&_ZN6S283C34v165Ev,
  (VTBL_ENTRY)&_ZN6S283C34v166Ev,
  (VTBL_ENTRY)&_ZN6S283C34v167Ev,
  (VTBL_ENTRY)&_ZN6S283C34v168Ev,
  (VTBL_ENTRY)&_ZN6S283C34v169Ev,
  (VTBL_ENTRY)&_ZN6S283C34v170Ev,
  (VTBL_ENTRY)&_ZN6S283C34v171Ev,
  (VTBL_ENTRY)&_ZN6S283C34v172Ev,
  (VTBL_ENTRY)&_ZN6S283C34v173Ev,
  (VTBL_ENTRY)&_ZN6S283C34v174Ev,
  (VTBL_ENTRY)&_ZN6S283C34v175Ev,
  (VTBL_ENTRY)&_ZN6S283C34v176Ev,
  (VTBL_ENTRY)&_ZN6S283C34v177Ev,
  (VTBL_ENTRY)&_ZN6S283C34v178Ev,
  (VTBL_ENTRY)&_ZN6S283C34v179Ev,
  (VTBL_ENTRY)&_ZN6S283C34v180Ev,
  (VTBL_ENTRY)&_ZN6S283C34v181Ev,
  (VTBL_ENTRY)&_ZN6S283C34v182Ev,
  (VTBL_ENTRY)&_ZN6S283C34v183Ev,
  (VTBL_ENTRY)&_ZN6S283C34v184Ev,
  (VTBL_ENTRY)&_ZN6S283C34v185Ev,
  (VTBL_ENTRY)&_ZN6S283C34v186Ev,
  (VTBL_ENTRY)&_ZN6S283C34v187Ev,
  (VTBL_ENTRY)&_ZN6S283C34v188Ev,
  (VTBL_ENTRY)&_ZN6S283C24v189Ev,
  (VTBL_ENTRY)&_ZN6S283C24v190Ev,
  (VTBL_ENTRY)&_ZN6S283C24v191Ev,
  (VTBL_ENTRY)&_ZN6S283C24v192Ev,
  (VTBL_ENTRY)&_ZN6S283C24v193Ev,
  (VTBL_ENTRY)&_ZN6S283C24v194Ev,
  (VTBL_ENTRY)&_ZN6S283C24v195Ev,
  (VTBL_ENTRY)&_ZN6S283C24v196Ev,
  (VTBL_ENTRY)&_ZN6S283C24v197Ev,
  (VTBL_ENTRY)&_ZN6S283C24v198Ev,
  (VTBL_ENTRY)&_ZN6S283C24v199Ev,
  (VTBL_ENTRY)&_ZN6S283C24v200Ev,
  (VTBL_ENTRY)&_ZN6S283C24v201Ev,
  (VTBL_ENTRY)&_ZN6S283C24v202Ev,
  (VTBL_ENTRY)&_ZN6S283C24v203Ev,
  (VTBL_ENTRY)&_ZN6S283C24v204Ev,
  (VTBL_ENTRY)&_ZN6S283C24v205Ev,
  (VTBL_ENTRY)&_ZN6S283C24v206Ev,
  (VTBL_ENTRY)&_ZN6S283C24v207Ev,
  (VTBL_ENTRY)&_ZN6S283C24v208Ev,
  (VTBL_ENTRY)&_ZN6S283C24v209Ev,
  (VTBL_ENTRY)&_ZN6S283C24v210Ev,
  (VTBL_ENTRY)&_ZN6S283C24v211Ev,
  (VTBL_ENTRY)&_ZN6S283C12v1Ev,
  (VTBL_ENTRY)&_ZN6S283C12v2Ev,
  (VTBL_ENTRY)&_ZN6S283C12v3Ev,
  (VTBL_ENTRY)&_ZN6S283C12v4Ev,
  (VTBL_ENTRY)&_ZN6S283C12v5Ev,
  (VTBL_ENTRY)&_ZN6S283C12v6Ev,
  (VTBL_ENTRY)&_ZN6S283C12v7Ev,
};
extern VTBL_ENTRY _ZTI6S283C1[];
extern  VTBL_ENTRY _ZTV6S283C1[];
Class_Descriptor cd_S283C1 = {  "S283C1", // class name
  bases_S283C1, 5,
  &(vtc_S283C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(920,656), // object size
  NSPAIRA(_ZTI6S283C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S283C1),215, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C7  {
  int s86c7f0;
  __tsi64 s86c7f1;
  void *s86c7f2[4];
  int s86c7f3[2];
  void *s86c7f4;
  ::S85C27_nt s86c7f5;
  void *s86c7f6[2];
  virtual  ~S86C7(); // _ZN5S86C7D1Ev
  virtual void  v4(); // _ZN5S86C72v4Ev
  virtual void  v5(); // _ZN5S86C72v5Ev
  virtual void  v6(); // _ZN5S86C72v6Ev
  virtual void  v7(); // _ZN5S86C72v7Ev
  virtual void  v8(); // _ZN5S86C72v8Ev
  virtual void  v9(); // _ZN5S86C72v9Ev
  virtual void  v10(); // _ZN5S86C73v10Ev
  virtual void  v11(); // _ZN5S86C73v11Ev
  virtual void  v12(); // _ZN5S86C73v12Ev
  virtual void  v13(); // _ZN5S86C73v13Ev
  virtual void  v14(); // _ZN5S86C73v14Ev
  virtual void  v15(); // _ZN5S86C73v15Ev
  virtual void  v16(); // _ZN5S86C73v16Ev
  virtual void  v17(); // _ZN5S86C73v17Ev
  virtual void  v18(); // _ZN5S86C73v18Ev
  virtual void  v19(); // _ZN5S86C73v19Ev
  virtual void  v20(); // _ZN5S86C73v20Ev
  virtual void  v21(); // _ZN5S86C73v21Ev
  virtual void  v22(); // _ZN5S86C73v22Ev
  virtual void  v23(); // _ZN5S86C73v23Ev
  virtual void  v24(); // _ZN5S86C73v24Ev
  virtual void  v25(); // _ZN5S86C73v25Ev
  virtual void  v26(); // _ZN5S86C73v26Ev
  virtual void  v27(); // _ZN5S86C73v27Ev
  virtual void  v28(); // _ZN5S86C73v28Ev
  virtual void  v29(); // _ZN5S86C73v29Ev
  virtual void  v30(); // _ZN5S86C73v30Ev
  virtual void  v31(); // _ZN5S86C73v31Ev
  virtual void  v32(); // _ZN5S86C73v32Ev
  virtual void  v33(); // _ZN5S86C73v33Ev
  virtual void  v34(); // _ZN5S86C73v34Ev
  virtual void  v35(); // _ZN5S86C73v35Ev
  virtual void  v36(); // _ZN5S86C73v36Ev
  virtual void  v37(); // _ZN5S86C73v37Ev
  virtual void  v38(); // _ZN5S86C73v38Ev
  virtual void  v39(); // _ZN5S86C73v39Ev
  virtual void  v40(); // _ZN5S86C73v40Ev
  virtual void  v41(); // _ZN5S86C73v41Ev
  virtual void  v42(); // _ZN5S86C73v42Ev
  virtual void  v43(); // _ZN5S86C73v43Ev
  virtual void  v44(); // _ZN5S86C73v44Ev
  virtual void  v45(); // _ZN5S86C73v45Ev
  virtual void  v46(); // _ZN5S86C73v46Ev
  virtual void  v47(); // _ZN5S86C73v47Ev
  virtual void  v48(); // _ZN5S86C73v48Ev
  virtual void  v49(); // _ZN5S86C73v49Ev
  virtual void  v50(); // _ZN5S86C73v50Ev
  virtual void  v51(); // _ZN5S86C73v51Ev
  virtual void  v52(); // _ZN5S86C73v52Ev
  virtual void  v53(); // _ZN5S86C73v53Ev
  virtual void  v54(); // _ZN5S86C73v54Ev
  virtual void  v55(); // _ZN5S86C73v55Ev
  virtual void  v56(); // _ZN5S86C73v56Ev
  virtual void  v57(); // _ZN5S86C73v57Ev
  virtual void  v58(); // _ZN5S86C73v58Ev
  virtual void  v59(); // _ZN5S86C73v59Ev
  virtual void  v60(); // _ZN5S86C73v60Ev
  virtual void  v61(); // _ZN5S86C73v61Ev
  virtual void  v62(); // _ZN5S86C73v62Ev
  virtual void  v63(); // _ZN5S86C73v63Ev
  virtual void  v64(); // _ZN5S86C73v64Ev
  virtual void  v65(); // _ZN5S86C73v65Ev
  virtual void  v66(); // _ZN5S86C73v66Ev
  virtual void  v67(); // _ZN5S86C73v67Ev
  S86C7(); // tgen
};
//SIG(-1 S86C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S86C7 ::~S86C7(){ note_dtor("S86C7", this);}
void  S86C7 ::v4(){vfunc_called(this, "_ZN5S86C72v4Ev");}
void  S86C7 ::v5(){vfunc_called(this, "_ZN5S86C72v5Ev");}
void  S86C7 ::v6(){vfunc_called(this, "_ZN5S86C72v6Ev");}
void  S86C7 ::v7(){vfunc_called(this, "_ZN5S86C72v7Ev");}
void  S86C7 ::v8(){vfunc_called(this, "_ZN5S86C72v8Ev");}
void  S86C7 ::v9(){vfunc_called(this, "_ZN5S86C72v9Ev");}
void  S86C7 ::v10(){vfunc_called(this, "_ZN5S86C73v10Ev");}
void  S86C7 ::v11(){vfunc_called(this, "_ZN5S86C73v11Ev");}
void  S86C7 ::v12(){vfunc_called(this, "_ZN5S86C73v12Ev");}
void  S86C7 ::v13(){vfunc_called(this, "_ZN5S86C73v13Ev");}
void  S86C7 ::v14(){vfunc_called(this, "_ZN5S86C73v14Ev");}
void  S86C7 ::v15(){vfunc_called(this, "_ZN5S86C73v15Ev");}
void  S86C7 ::v16(){vfunc_called(this, "_ZN5S86C73v16Ev");}
void  S86C7 ::v17(){vfunc_called(this, "_ZN5S86C73v17Ev");}
void  S86C7 ::v18(){vfunc_called(this, "_ZN5S86C73v18Ev");}
void  S86C7 ::v19(){vfunc_called(this, "_ZN5S86C73v19Ev");}
void  S86C7 ::v20(){vfunc_called(this, "_ZN5S86C73v20Ev");}
void  S86C7 ::v21(){vfunc_called(this, "_ZN5S86C73v21Ev");}
void  S86C7 ::v22(){vfunc_called(this, "_ZN5S86C73v22Ev");}
void  S86C7 ::v23(){vfunc_called(this, "_ZN5S86C73v23Ev");}
void  S86C7 ::v24(){vfunc_called(this, "_ZN5S86C73v24Ev");}
void  S86C7 ::v25(){vfunc_called(this, "_ZN5S86C73v25Ev");}
void  S86C7 ::v26(){vfunc_called(this, "_ZN5S86C73v26Ev");}
void  S86C7 ::v27(){vfunc_called(this, "_ZN5S86C73v27Ev");}
void  S86C7 ::v28(){vfunc_called(this, "_ZN5S86C73v28Ev");}
void  S86C7 ::v29(){vfunc_called(this, "_ZN5S86C73v29Ev");}
void  S86C7 ::v30(){vfunc_called(this, "_ZN5S86C73v30Ev");}
void  S86C7 ::v31(){vfunc_called(this, "_ZN5S86C73v31Ev");}
void  S86C7 ::v32(){vfunc_called(this, "_ZN5S86C73v32Ev");}
void  S86C7 ::v33(){vfunc_called(this, "_ZN5S86C73v33Ev");}
void  S86C7 ::v34(){vfunc_called(this, "_ZN5S86C73v34Ev");}
void  S86C7 ::v35(){vfunc_called(this, "_ZN5S86C73v35Ev");}
void  S86C7 ::v36(){vfunc_called(this, "_ZN5S86C73v36Ev");}
void  S86C7 ::v37(){vfunc_called(this, "_ZN5S86C73v37Ev");}
void  S86C7 ::v38(){vfunc_called(this, "_ZN5S86C73v38Ev");}
void  S86C7 ::v39(){vfunc_called(this, "_ZN5S86C73v39Ev");}
void  S86C7 ::v40(){vfunc_called(this, "_ZN5S86C73v40Ev");}
void  S86C7 ::v41(){vfunc_called(this, "_ZN5S86C73v41Ev");}
void  S86C7 ::v42(){vfunc_called(this, "_ZN5S86C73v42Ev");}
void  S86C7 ::v43(){vfunc_called(this, "_ZN5S86C73v43Ev");}
void  S86C7 ::v44(){vfunc_called(this, "_ZN5S86C73v44Ev");}
void  S86C7 ::v45(){vfunc_called(this, "_ZN5S86C73v45Ev");}
void  S86C7 ::v46(){vfunc_called(this, "_ZN5S86C73v46Ev");}
void  S86C7 ::v47(){vfunc_called(this, "_ZN5S86C73v47Ev");}
void  S86C7 ::v48(){vfunc_called(this, "_ZN5S86C73v48Ev");}
void  S86C7 ::v49(){vfunc_called(this, "_ZN5S86C73v49Ev");}
void  S86C7 ::v50(){vfunc_called(this, "_ZN5S86C73v50Ev");}
void  S86C7 ::v51(){vfunc_called(this, "_ZN5S86C73v51Ev");}
void  S86C7 ::v52(){vfunc_called(this, "_ZN5S86C73v52Ev");}
void  S86C7 ::v53(){vfunc_called(this, "_ZN5S86C73v53Ev");}
void  S86C7 ::v54(){vfunc_called(this, "_ZN5S86C73v54Ev");}
void  S86C7 ::v55(){vfunc_called(this, "_ZN5S86C73v55Ev");}
void  S86C7 ::v56(){vfunc_called(this, "_ZN5S86C73v56Ev");}
void  S86C7 ::v57(){vfunc_called(this, "_ZN5S86C73v57Ev");}
void  S86C7 ::v58(){vfunc_called(this, "_ZN5S86C73v58Ev");}
void  S86C7 ::v59(){vfunc_called(this, "_ZN5S86C73v59Ev");}
void  S86C7 ::v60(){vfunc_called(this, "_ZN5S86C73v60Ev");}
void  S86C7 ::v61(){vfunc_called(this, "_ZN5S86C73v61Ev");}
void  S86C7 ::v62(){vfunc_called(this, "_ZN5S86C73v62Ev");}
void  S86C7 ::v63(){vfunc_called(this, "_ZN5S86C73v63Ev");}
void  S86C7 ::v64(){vfunc_called(this, "_ZN5S86C73v64Ev");}
void  S86C7 ::v65(){vfunc_called(this, "_ZN5S86C73v65Ev");}
void  S86C7 ::v66(){vfunc_called(this, "_ZN5S86C73v66Ev");}
void  S86C7 ::v67(){vfunc_called(this, "_ZN5S86C73v67Ev");}
S86C7 ::S86C7(){ note_ctor("S86C7", this);} // tgen

static void Test_S86C7()
{
  extern Class_Descriptor cd_S86C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S86C7, buf);
    S86C7 *dp, &lv = *(dp=new (buf) S86C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S86C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C7)");
    check_field_offset(lv, s86c7f0, ABISELECT(8,4), "S86C7.s86c7f0");
    check_field_offset(lv, s86c7f1, ABISELECT(16,8), "S86C7.s86c7f1");
    check_field_offset(lv, s86c7f2, ABISELECT(24,16), "S86C7.s86c7f2");
    check_field_offset(lv, s86c7f3, ABISELECT(56,32), "S86C7.s86c7f3");
    check_field_offset(lv, s86c7f4, ABISELECT(64,40), "S86C7.s86c7f4");
    check_field_offset(lv, s86c7f5, ABISELECT(72,44), "S86C7.s86c7f5");
    check_field_offset(lv, s86c7f6, ABISELECT(80,52), "S86C7.s86c7f6");
    test_class_info(&lv, &cd_S86C7);
    dp->~S86C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C7(Test_S86C7, "S86C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S86C7C1Ev();
extern void _ZN5S86C7D1Ev();
Name_Map name_map_S86C7[] = {
  NSPAIR(_ZN5S86C7C1Ev),
  NSPAIR(_ZN5S86C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S86C7[];
extern void _ZN5S86C7D1Ev();
extern void _ZN5S86C7D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
static  VTBL_ENTRY vtc_S86C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C7[0]),
  (VTBL_ENTRY)&_ZN5S86C7D1Ev,
  (VTBL_ENTRY)&_ZN5S86C7D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
};
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
Class_Descriptor cd_S86C7 = {  "S86C7", // class name
  0,0,//no base classes
  &(vtc_S86C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S86C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S86C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C6  : S86C7 {
  virtual  ~S86C6(); // _ZN5S86C6D1Ev
  virtual void  v68(); // _ZN5S86C63v68Ev
  virtual void  v69(); // _ZN5S86C63v69Ev
  S86C6(); // tgen
};
//SIG(-1 S86C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S86C6 ::~S86C6(){ note_dtor("S86C6", this);}
void  S86C6 ::v68(){vfunc_called(this, "_ZN5S86C63v68Ev");}
void  S86C6 ::v69(){vfunc_called(this, "_ZN5S86C63v69Ev");}
S86C6 ::S86C6(){ note_ctor("S86C6", this);} // tgen

static void Test_S86C6()
{
  extern Class_Descriptor cd_S86C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S86C6, buf);
    S86C6 *dp, &lv = *(dp=new (buf) S86C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S86C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C6)");
    check_base_class_offset(lv, (S86C7*), 0, "S86C6");
    test_class_info(&lv, &cd_S86C6);
    dp->~S86C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C6(Test_S86C6, "S86C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S86C6C1Ev();
extern void _ZN5S86C6D1Ev();
Name_Map name_map_S86C6[] = {
  NSPAIR(_ZN5S86C6C1Ev),
  NSPAIR(_ZN5S86C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S86C7;
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
static Base_Class bases_S86C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S86C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S86C6[];
extern void _ZN5S86C6D1Ev();
extern void _ZN5S86C6D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
extern void _ZN5S86C63v68Ev();
extern void _ZN5S86C63v69Ev();
static  VTBL_ENTRY vtc_S86C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C6[0]),
  (VTBL_ENTRY)&_ZN5S86C6D1Ev,
  (VTBL_ENTRY)&_ZN5S86C6D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
  (VTBL_ENTRY)&_ZN5S86C63v68Ev,
  (VTBL_ENTRY)&_ZN5S86C63v69Ev,
};
extern VTBL_ENTRY _ZTI5S86C6[];
extern  VTBL_ENTRY _ZTV5S86C6[];
Class_Descriptor cd_S86C6 = {  "S86C6", // class name
  bases_S86C6, 1,
  &(vtc_S86C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S86C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S86C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C5  : S86C6 {
  ::S80C9_nt s86c5f0;
  int s86c5f1;
  unsigned int s86c5f2:1;
  unsigned int s86c5f3:1;
  unsigned int s86c5f4:1;
  unsigned int s86c5f5:1;
  ::S85C35 s86c5f6;
  ::S85C22_nt s86c5f7;
  void *s86c5f8;
  ::S80C31 s86c5f9;
  ::S80C31 s86c5f10;
  ::S80C29 s86c5f11;
  ::S80C19 s86c5f12;
  char s86c5f13;
  int s86c5f14;
  void *s86c5f15;
  ::S85C27_nt s86c5f16;
  ::S85C27_nt s86c5f17;
  ::S85C27_nt s86c5f18;
  ::S85C27_nt s86c5f19;
  ::S85C27_nt s86c5f20;
  ::S85C27_nt s86c5f21;
  ::S80C21_nt s86c5f22;
  ::S80C21_nt s86c5f23;
  ::S80C21_nt s86c5f24;
  ::S80C21_nt s86c5f25;
  ::S80C21_nt s86c5f26;
  ::S80C21_nt s86c5f27;
  ::S80C21_nt s86c5f28;
  ::S80C21_nt s86c5f29;
  ::S80C21_nt s86c5f30;
  ::S80C21_nt s86c5f31;
  virtual  ~S86C5(); // _ZN5S86C5D1Ev
  virtual void  v70(); // _ZN5S86C53v70Ev
  virtual void  v71(); // _ZN5S86C53v71Ev
  virtual void  v72(); // _ZN5S86C53v72Ev
  virtual void  v73(); // _ZN5S86C53v73Ev
  virtual void  v74(); // _ZN5S86C53v74Ev
  virtual void  v75(); // _ZN5S86C53v75Ev
  virtual void  v76(); // _ZN5S86C53v76Ev
  virtual void  v77(); // _ZN5S86C53v77Ev
  virtual void  v78(); // _ZN5S86C53v78Ev
  virtual void  v79(); // _ZN5S86C53v79Ev
  virtual void  v80(); // _ZN5S86C53v80Ev
  virtual void  v81(); // _ZN5S86C53v81Ev
  virtual void  v82(); // _ZN5S86C53v82Ev
  virtual void  v83(); // _ZN5S86C53v83Ev
  virtual void  v84(); // _ZN5S86C53v84Ev
  virtual void  v85(); // _ZN5S86C53v85Ev
  virtual void  v86(); // _ZN5S86C53v86Ev
  virtual void  v87(); // _ZN5S86C53v87Ev
  virtual void  v88(); // _ZN5S86C53v88Ev
  virtual void  v89(); // _ZN5S86C53v89Ev
  virtual void  v90(); // _ZN5S86C53v90Ev
  virtual void  v91(); // _ZN5S86C53v91Ev
  virtual void  v92(); // _ZN5S86C53v92Ev
  virtual void  v93(); // _ZN5S86C53v93Ev
  virtual void  v94(); // _ZN5S86C53v94Ev
  virtual void  v95(); // _ZN5S86C53v95Ev
  virtual void  v96(); // _ZN5S86C53v96Ev
  virtual void  v97(); // _ZN5S86C53v97Ev
  virtual void  v98(); // _ZN5S86C53v98Ev
  virtual void  v99(); // _ZN5S86C53v99Ev
  virtual void  v100(); // _ZN5S86C54v100Ev
  virtual void  v101(); // _ZN5S86C54v101Ev
  virtual void  v102(); // _ZN5S86C54v102Ev
  virtual void  v103(); // _ZN5S86C54v103Ev
  virtual void  v104(); // _ZN5S86C54v104Ev
  virtual void  v105(); // _ZN5S86C54v105Ev
  virtual void  v106(); // _ZN5S86C54v106Ev
  virtual void  v107(); // _ZN5S86C54v107Ev
  virtual void  v108(); // _ZN5S86C54v108Ev
  virtual void  v109(); // _ZN5S86C54v109Ev
  virtual void  v110(); // _ZN5S86C54v110Ev
  virtual void  v111(); // _ZN5S86C54v111Ev
  virtual void  v112(); // _ZN5S86C54v112Ev
  virtual void  v113(); // _ZN5S86C54v113Ev
  virtual void  v114(); // _ZN5S86C54v114Ev
  virtual void  v115(); // _ZN5S86C54v115Ev
  virtual void  v116(); // _ZN5S86C54v116Ev
  virtual void  v117(); // _ZN5S86C54v117Ev
  virtual void  v118(); // _ZN5S86C54v118Ev
  virtual void  v119(); // _ZN5S86C54v119Ev
  virtual void  v120(); // _ZN5S86C54v120Ev
  virtual void  v121(); // _ZN5S86C54v121Ev
  virtual void  v122(); // _ZN5S86C54v122Ev
  virtual void  v123(); // _ZN5S86C54v123Ev
  virtual void  v124(); // _ZN5S86C54v124Ev
  virtual void  v125(); // _ZN5S86C54v125Ev
  virtual void  v126(); // _ZN5S86C54v126Ev
  virtual void  v127(); // _ZN5S86C54v127Ev
  virtual void  v128(); // _ZN5S86C54v128Ev
  virtual void  v129(); // _ZN5S86C54v129Ev
  virtual void  v130(); // _ZN5S86C54v130Ev
  virtual void  v131(); // _ZN5S86C54v131Ev
  virtual void  v132(); // _ZN5S86C54v132Ev
  virtual void  v133(); // _ZN5S86C54v133Ev
  virtual void  v134(); // _ZN5S86C54v134Ev
  virtual void  v135(); // _ZN5S86C54v135Ev
  virtual void  v136(); // _ZN5S86C54v136Ev
  virtual void  v137(); // _ZN5S86C54v137Ev
  virtual void  v138(); // _ZN5S86C54v138Ev
  virtual void  v139(); // _ZN5S86C54v139Ev
  virtual void  v140(); // _ZN5S86C54v140Ev
  virtual void  v141(); // _ZN5S86C54v141Ev
  virtual void  v142(); // _ZN5S86C54v142Ev
  virtual void  v143(); // _ZN5S86C54v143Ev
  virtual void  v144(); // _ZN5S86C54v144Ev
  virtual void  v145(); // _ZN5S86C54v145Ev
  S86C5(); // tgen
};
//SIG(-1 S86C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S86C5 ::~S86C5(){ note_dtor("S86C5", this);}
void  S86C5 ::v70(){vfunc_called(this, "_ZN5S86C53v70Ev");}
void  S86C5 ::v71(){vfunc_called(this, "_ZN5S86C53v71Ev");}
void  S86C5 ::v72(){vfunc_called(this, "_ZN5S86C53v72Ev");}
void  S86C5 ::v73(){vfunc_called(this, "_ZN5S86C53v73Ev");}
void  S86C5 ::v74(){vfunc_called(this, "_ZN5S86C53v74Ev");}
void  S86C5 ::v75(){vfunc_called(this, "_ZN5S86C53v75Ev");}
void  S86C5 ::v76(){vfunc_called(this, "_ZN5S86C53v76Ev");}
void  S86C5 ::v77(){vfunc_called(this, "_ZN5S86C53v77Ev");}
void  S86C5 ::v78(){vfunc_called(this, "_ZN5S86C53v78Ev");}
void  S86C5 ::v79(){vfunc_called(this, "_ZN5S86C53v79Ev");}
void  S86C5 ::v80(){vfunc_called(this, "_ZN5S86C53v80Ev");}
void  S86C5 ::v81(){vfunc_called(this, "_ZN5S86C53v81Ev");}
void  S86C5 ::v82(){vfunc_called(this, "_ZN5S86C53v82Ev");}
void  S86C5 ::v83(){vfunc_called(this, "_ZN5S86C53v83Ev");}
void  S86C5 ::v84(){vfunc_called(this, "_ZN5S86C53v84Ev");}
void  S86C5 ::v85(){vfunc_called(this, "_ZN5S86C53v85Ev");}
void  S86C5 ::v86(){vfunc_called(this, "_ZN5S86C53v86Ev");}
void  S86C5 ::v87(){vfunc_called(this, "_ZN5S86C53v87Ev");}
void  S86C5 ::v88(){vfunc_called(this, "_ZN5S86C53v88Ev");}
void  S86C5 ::v89(){vfunc_called(this, "_ZN5S86C53v89Ev");}
void  S86C5 ::v90(){vfunc_called(this, "_ZN5S86C53v90Ev");}
void  S86C5 ::v91(){vfunc_called(this, "_ZN5S86C53v91Ev");}
void  S86C5 ::v92(){vfunc_called(this, "_ZN5S86C53v92Ev");}
void  S86C5 ::v93(){vfunc_called(this, "_ZN5S86C53v93Ev");}
void  S86C5 ::v94(){vfunc_called(this, "_ZN5S86C53v94Ev");}
void  S86C5 ::v95(){vfunc_called(this, "_ZN5S86C53v95Ev");}
void  S86C5 ::v96(){vfunc_called(this, "_ZN5S86C53v96Ev");}
void  S86C5 ::v97(){vfunc_called(this, "_ZN5S86C53v97Ev");}
void  S86C5 ::v98(){vfunc_called(this, "_ZN5S86C53v98Ev");}
void  S86C5 ::v99(){vfunc_called(this, "_ZN5S86C53v99Ev");}
void  S86C5 ::v100(){vfunc_called(this, "_ZN5S86C54v100Ev");}
void  S86C5 ::v101(){vfunc_called(this, "_ZN5S86C54v101Ev");}
void  S86C5 ::v102(){vfunc_called(this, "_ZN5S86C54v102Ev");}
void  S86C5 ::v103(){vfunc_called(this, "_ZN5S86C54v103Ev");}
void  S86C5 ::v104(){vfunc_called(this, "_ZN5S86C54v104Ev");}
void  S86C5 ::v105(){vfunc_called(this, "_ZN5S86C54v105Ev");}
void  S86C5 ::v106(){vfunc_called(this, "_ZN5S86C54v106Ev");}
void  S86C5 ::v107(){vfunc_called(this, "_ZN5S86C54v107Ev");}
void  S86C5 ::v108(){vfunc_called(this, "_ZN5S86C54v108Ev");}
void  S86C5 ::v109(){vfunc_called(this, "_ZN5S86C54v109Ev");}
void  S86C5 ::v110(){vfunc_called(this, "_ZN5S86C54v110Ev");}
void  S86C5 ::v111(){vfunc_called(this, "_ZN5S86C54v111Ev");}
void  S86C5 ::v112(){vfunc_called(this, "_ZN5S86C54v112Ev");}
void  S86C5 ::v113(){vfunc_called(this, "_ZN5S86C54v113Ev");}
void  S86C5 ::v114(){vfunc_called(this, "_ZN5S86C54v114Ev");}
void  S86C5 ::v115(){vfunc_called(this, "_ZN5S86C54v115Ev");}
void  S86C5 ::v116(){vfunc_called(this, "_ZN5S86C54v116Ev");}
void  S86C5 ::v117(){vfunc_called(this, "_ZN5S86C54v117Ev");}
void  S86C5 ::v118(){vfunc_called(this, "_ZN5S86C54v118Ev");}
void  S86C5 ::v119(){vfunc_called(this, "_ZN5S86C54v119Ev");}
void  S86C5 ::v120(){vfunc_called(this, "_ZN5S86C54v120Ev");}
void  S86C5 ::v121(){vfunc_called(this, "_ZN5S86C54v121Ev");}
void  S86C5 ::v122(){vfunc_called(this, "_ZN5S86C54v122Ev");}
void  S86C5 ::v123(){vfunc_called(this, "_ZN5S86C54v123Ev");}
void  S86C5 ::v124(){vfunc_called(this, "_ZN5S86C54v124Ev");}
void  S86C5 ::v125(){vfunc_called(this, "_ZN5S86C54v125Ev");}
void  S86C5 ::v126(){vfunc_called(this, "_ZN5S86C54v126Ev");}
void  S86C5 ::v127(){vfunc_called(this, "_ZN5S86C54v127Ev");}
void  S86C5 ::v128(){vfunc_called(this, "_ZN5S86C54v128Ev");}
void  S86C5 ::v129(){vfunc_called(this, "_ZN5S86C54v129Ev");}
void  S86C5 ::v130(){vfunc_called(this, "_ZN5S86C54v130Ev");}
void  S86C5 ::v131(){vfunc_called(this, "_ZN5S86C54v131Ev");}
void  S86C5 ::v132(){vfunc_called(this, "_ZN5S86C54v132Ev");}
void  S86C5 ::v133(){vfunc_called(this, "_ZN5S86C54v133Ev");}
void  S86C5 ::v134(){vfunc_called(this, "_ZN5S86C54v134Ev");}
void  S86C5 ::v135(){vfunc_called(this, "_ZN5S86C54v135Ev");}
void  S86C5 ::v136(){vfunc_called(this, "_ZN5S86C54v136Ev");}
void  S86C5 ::v137(){vfunc_called(this, "_ZN5S86C54v137Ev");}
void  S86C5 ::v138(){vfunc_called(this, "_ZN5S86C54v138Ev");}
void  S86C5 ::v139(){vfunc_called(this, "_ZN5S86C54v139Ev");}
void  S86C5 ::v140(){vfunc_called(this, "_ZN5S86C54v140Ev");}
void  S86C5 ::v141(){vfunc_called(this, "_ZN5S86C54v141Ev");}
void  S86C5 ::v142(){vfunc_called(this, "_ZN5S86C54v142Ev");}
void  S86C5 ::v143(){vfunc_called(this, "_ZN5S86C54v143Ev");}
void  S86C5 ::v144(){vfunc_called(this, "_ZN5S86C54v144Ev");}
void  S86C5 ::v145(){vfunc_called(this, "_ZN5S86C54v145Ev");}
S86C5 ::S86C5(){ note_ctor("S86C5", this);} // tgen

static void Test_S86C5()
{
  extern Class_Descriptor cd_S86C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S86C5, buf);
    S86C5 *dp, &lv = *(dp=new (buf) S86C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S86C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C5)");
    check_base_class_offset(lv, (S86C7*)(S86C6*), 0, "S86C5");
    check_base_class_offset(lv, (S86C6*), 0, "S86C5");
    check_field_offset(lv, s86c5f0, ABISELECT(96,60), "S86C5.s86c5f0");
    check_field_offset(lv, s86c5f1, ABISELECT(124,88), "S86C5.s86c5f1");
    set_bf_and_test(lv, s86c5f2, ABISELECT(128,92), 0, 1, 1, "S86C5");
    set_bf_and_test(lv, s86c5f3, ABISELECT(128,92), 1, 1, 1, "S86C5");
    set_bf_and_test(lv, s86c5f4, ABISELECT(128,92), 2, 1, 1, "S86C5");
    set_bf_and_test(lv, s86c5f5, ABISELECT(128,92), 3, 1, 1, "S86C5");
    check_field_offset(lv, s86c5f6, ABISELECT(136,96), "S86C5.s86c5f6");
    check_field_offset(lv, s86c5f7, ABISELECT(152,108), "S86C5.s86c5f7");
    check_field_offset(lv, s86c5f8, ABISELECT(168,120), "S86C5.s86c5f8");
    check_field_offset(lv, s86c5f9, ABISELECT(176,124), "S86C5.s86c5f9");
    check_field_offset(lv, s86c5f10, ABISELECT(192,136), "S86C5.s86c5f10");
    check_field_offset(lv, s86c5f11, ABISELECT(208,148), "S86C5.s86c5f11");
    check_field_offset(lv, s86c5f12, ABISELECT(224,160), "S86C5.s86c5f12");
    check_field_offset(lv, s86c5f13, ABISELECT(240,172), "S86C5.s86c5f13");
    check_field_offset(lv, s86c5f14, ABISELECT(244,176), "S86C5.s86c5f14");
    check_field_offset(lv, s86c5f15, ABISELECT(248,180), "S86C5.s86c5f15");
    check_field_offset(lv, s86c5f16, ABISELECT(256,184), "S86C5.s86c5f16");
    check_field_offset(lv, s86c5f17, ABISELECT(264,192), "S86C5.s86c5f17");
    check_field_offset(lv, s86c5f18, ABISELECT(272,200), "S86C5.s86c5f18");
    check_field_offset(lv, s86c5f19, ABISELECT(280,208), "S86C5.s86c5f19");
    check_field_offset(lv, s86c5f20, ABISELECT(288,216), "S86C5.s86c5f20");
    check_field_offset(lv, s86c5f21, ABISELECT(296,224), "S86C5.s86c5f21");
    check_field_offset(lv, s86c5f22, ABISELECT(304,232), "S86C5.s86c5f22");
    check_field_offset(lv, s86c5f23, ABISELECT(320,244), "S86C5.s86c5f23");
    check_field_offset(lv, s86c5f24, ABISELECT(336,256), "S86C5.s86c5f24");
    check_field_offset(lv, s86c5f25, ABISELECT(352,268), "S86C5.s86c5f25");
    check_field_offset(lv, s86c5f26, ABISELECT(368,280), "S86C5.s86c5f26");
    check_field_offset(lv, s86c5f27, ABISELECT(384,292), "S86C5.s86c5f27");
    check_field_offset(lv, s86c5f28, ABISELECT(400,304), "S86C5.s86c5f28");
    check_field_offset(lv, s86c5f29, ABISELECT(416,316), "S86C5.s86c5f29");
    check_field_offset(lv, s86c5f30, ABISELECT(432,328), "S86C5.s86c5f30");
    check_field_offset(lv, s86c5f31, ABISELECT(448,340), "S86C5.s86c5f31");
    test_class_info(&lv, &cd_S86C5);
    dp->~S86C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C5(Test_S86C5, "S86C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S86C5C1Ev();
extern void _ZN5S86C5D1Ev();
Name_Map name_map_S86C5[] = {
  NSPAIR(_ZN5S86C5C1Ev),
  NSPAIR(_ZN5S86C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S86C7;
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
extern Class_Descriptor cd_S86C6;
extern VTBL_ENTRY _ZTI5S86C6[];
extern  VTBL_ENTRY _ZTV5S86C6[];
static Base_Class bases_S86C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S86C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S86C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S86C5[];
extern void _ZN5S86C5D1Ev();
extern void _ZN5S86C5D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
extern void _ZN5S86C63v68Ev();
extern void _ZN5S86C63v69Ev();
extern void _ZN5S86C53v70Ev();
extern void _ZN5S86C53v71Ev();
extern void _ZN5S86C53v72Ev();
extern void _ZN5S86C53v73Ev();
extern void _ZN5S86C53v74Ev();
extern void _ZN5S86C53v75Ev();
extern void _ZN5S86C53v76Ev();
extern void _ZN5S86C53v77Ev();
extern void _ZN5S86C53v78Ev();
extern void _ZN5S86C53v79Ev();
extern void _ZN5S86C53v80Ev();
extern void _ZN5S86C53v81Ev();
extern void _ZN5S86C53v82Ev();
extern void _ZN5S86C53v83Ev();
extern void _ZN5S86C53v84Ev();
extern void _ZN5S86C53v85Ev();
extern void _ZN5S86C53v86Ev();
extern void _ZN5S86C53v87Ev();
extern void _ZN5S86C53v88Ev();
extern void _ZN5S86C53v89Ev();
extern void _ZN5S86C53v90Ev();
extern void _ZN5S86C53v91Ev();
extern void _ZN5S86C53v92Ev();
extern void _ZN5S86C53v93Ev();
extern void _ZN5S86C53v94Ev();
extern void _ZN5S86C53v95Ev();
extern void _ZN5S86C53v96Ev();
extern void _ZN5S86C53v97Ev();
extern void _ZN5S86C53v98Ev();
extern void _ZN5S86C53v99Ev();
extern void _ZN5S86C54v100Ev();
extern void _ZN5S86C54v101Ev();
extern void _ZN5S86C54v102Ev();
extern void _ZN5S86C54v103Ev();
extern void _ZN5S86C54v104Ev();
extern void _ZN5S86C54v105Ev();
extern void _ZN5S86C54v106Ev();
extern void _ZN5S86C54v107Ev();
extern void _ZN5S86C54v108Ev();
extern void _ZN5S86C54v109Ev();
extern void _ZN5S86C54v110Ev();
extern void _ZN5S86C54v111Ev();
extern void _ZN5S86C54v112Ev();
extern void _ZN5S86C54v113Ev();
extern void _ZN5S86C54v114Ev();
extern void _ZN5S86C54v115Ev();
extern void _ZN5S86C54v116Ev();
extern void _ZN5S86C54v117Ev();
extern void _ZN5S86C54v118Ev();
extern void _ZN5S86C54v119Ev();
extern void _ZN5S86C54v120Ev();
extern void _ZN5S86C54v121Ev();
extern void _ZN5S86C54v122Ev();
extern void _ZN5S86C54v123Ev();
extern void _ZN5S86C54v124Ev();
extern void _ZN5S86C54v125Ev();
extern void _ZN5S86C54v126Ev();
extern void _ZN5S86C54v127Ev();
extern void _ZN5S86C54v128Ev();
extern void _ZN5S86C54v129Ev();
extern void _ZN5S86C54v130Ev();
extern void _ZN5S86C54v131Ev();
extern void _ZN5S86C54v132Ev();
extern void _ZN5S86C54v133Ev();
extern void _ZN5S86C54v134Ev();
extern void _ZN5S86C54v135Ev();
extern void _ZN5S86C54v136Ev();
extern void _ZN5S86C54v137Ev();
extern void _ZN5S86C54v138Ev();
extern void _ZN5S86C54v139Ev();
extern void _ZN5S86C54v140Ev();
extern void _ZN5S86C54v141Ev();
extern void _ZN5S86C54v142Ev();
extern void _ZN5S86C54v143Ev();
extern void _ZN5S86C54v144Ev();
extern void _ZN5S86C54v145Ev();
static  VTBL_ENTRY vtc_S86C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C5[0]),
  (VTBL_ENTRY)&_ZN5S86C5D1Ev,
  (VTBL_ENTRY)&_ZN5S86C5D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
  (VTBL_ENTRY)&_ZN5S86C63v68Ev,
  (VTBL_ENTRY)&_ZN5S86C63v69Ev,
  (VTBL_ENTRY)&_ZN5S86C53v70Ev,
  (VTBL_ENTRY)&_ZN5S86C53v71Ev,
  (VTBL_ENTRY)&_ZN5S86C53v72Ev,
  (VTBL_ENTRY)&_ZN5S86C53v73Ev,
  (VTBL_ENTRY)&_ZN5S86C53v74Ev,
  (VTBL_ENTRY)&_ZN5S86C53v75Ev,
  (VTBL_ENTRY)&_ZN5S86C53v76Ev,
  (VTBL_ENTRY)&_ZN5S86C53v77Ev,
  (VTBL_ENTRY)&_ZN5S86C53v78Ev,
  (VTBL_ENTRY)&_ZN5S86C53v79Ev,
  (VTBL_ENTRY)&_ZN5S86C53v80Ev,
  (VTBL_ENTRY)&_ZN5S86C53v81Ev,
  (VTBL_ENTRY)&_ZN5S86C53v82Ev,
  (VTBL_ENTRY)&_ZN5S86C53v83Ev,
  (VTBL_ENTRY)&_ZN5S86C53v84Ev,
  (VTBL_ENTRY)&_ZN5S86C53v85Ev,
  (VTBL_ENTRY)&_ZN5S86C53v86Ev,
  (VTBL_ENTRY)&_ZN5S86C53v87Ev,
  (VTBL_ENTRY)&_ZN5S86C53v88Ev,
  (VTBL_ENTRY)&_ZN5S86C53v89Ev,
  (VTBL_ENTRY)&_ZN5S86C53v90Ev,
  (VTBL_ENTRY)&_ZN5S86C53v91Ev,
  (VTBL_ENTRY)&_ZN5S86C53v92Ev,
  (VTBL_ENTRY)&_ZN5S86C53v93Ev,
  (VTBL_ENTRY)&_ZN5S86C53v94Ev,
  (VTBL_ENTRY)&_ZN5S86C53v95Ev,
  (VTBL_ENTRY)&_ZN5S86C53v96Ev,
  (VTBL_ENTRY)&_ZN5S86C53v97Ev,
  (VTBL_ENTRY)&_ZN5S86C53v98Ev,
  (VTBL_ENTRY)&_ZN5S86C53v99Ev,
  (VTBL_ENTRY)&_ZN5S86C54v100Ev,
  (VTBL_ENTRY)&_ZN5S86C54v101Ev,
  (VTBL_ENTRY)&_ZN5S86C54v102Ev,
  (VTBL_ENTRY)&_ZN5S86C54v103Ev,
  (VTBL_ENTRY)&_ZN5S86C54v104Ev,
  (VTBL_ENTRY)&_ZN5S86C54v105Ev,
  (VTBL_ENTRY)&_ZN5S86C54v106Ev,
  (VTBL_ENTRY)&_ZN5S86C54v107Ev,
  (VTBL_ENTRY)&_ZN5S86C54v108Ev,
  (VTBL_ENTRY)&_ZN5S86C54v109Ev,
  (VTBL_ENTRY)&_ZN5S86C54v110Ev,
  (VTBL_ENTRY)&_ZN5S86C54v111Ev,
  (VTBL_ENTRY)&_ZN5S86C54v112Ev,
  (VTBL_ENTRY)&_ZN5S86C54v113Ev,
  (VTBL_ENTRY)&_ZN5S86C54v114Ev,
  (VTBL_ENTRY)&_ZN5S86C54v115Ev,
  (VTBL_ENTRY)&_ZN5S86C54v116Ev,
  (VTBL_ENTRY)&_ZN5S86C54v117Ev,
  (VTBL_ENTRY)&_ZN5S86C54v118Ev,
  (VTBL_ENTRY)&_ZN5S86C54v119Ev,
  (VTBL_ENTRY)&_ZN5S86C54v120Ev,
  (VTBL_ENTRY)&_ZN5S86C54v121Ev,
  (VTBL_ENTRY)&_ZN5S86C54v122Ev,
  (VTBL_ENTRY)&_ZN5S86C54v123Ev,
  (VTBL_ENTRY)&_ZN5S86C54v124Ev,
  (VTBL_ENTRY)&_ZN5S86C54v125Ev,
  (VTBL_ENTRY)&_ZN5S86C54v126Ev,
  (VTBL_ENTRY)&_ZN5S86C54v127Ev,
  (VTBL_ENTRY)&_ZN5S86C54v128Ev,
  (VTBL_ENTRY)&_ZN5S86C54v129Ev,
  (VTBL_ENTRY)&_ZN5S86C54v130Ev,
  (VTBL_ENTRY)&_ZN5S86C54v131Ev,
  (VTBL_ENTRY)&_ZN5S86C54v132Ev,
  (VTBL_ENTRY)&_ZN5S86C54v133Ev,
  (VTBL_ENTRY)&_ZN5S86C54v134Ev,
  (VTBL_ENTRY)&_ZN5S86C54v135Ev,
  (VTBL_ENTRY)&_ZN5S86C54v136Ev,
  (VTBL_ENTRY)&_ZN5S86C54v137Ev,
  (VTBL_ENTRY)&_ZN5S86C54v138Ev,
  (VTBL_ENTRY)&_ZN5S86C54v139Ev,
  (VTBL_ENTRY)&_ZN5S86C54v140Ev,
  (VTBL_ENTRY)&_ZN5S86C54v141Ev,
  (VTBL_ENTRY)&_ZN5S86C54v142Ev,
  (VTBL_ENTRY)&_ZN5S86C54v143Ev,
  (VTBL_ENTRY)&_ZN5S86C54v144Ev,
  (VTBL_ENTRY)&_ZN5S86C54v145Ev,
};
extern VTBL_ENTRY _ZTI5S86C5[];
extern  VTBL_ENTRY _ZTV5S86C5[];
Class_Descriptor cd_S86C5 = {  "S86C5", // class name
  bases_S86C5, 2,
  &(vtc_S86C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S86C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S86C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C4  : S86C5 {
  ::S85C27_nt s86c4f0;
  void *s86c4f1[9];
  ::S80C15 s86c4f2;
  ::S85C35 s86c4f3;
  ::S80C24 s86c4f4;
  int s86c4f5;
  unsigned int s86c4f6:1;
  unsigned int s86c4f7:1;
  unsigned int s86c4f8:1;
  unsigned int s86c4f9:1;
  unsigned int s86c4f10:1;
  unsigned int s86c4f11:1;
  unsigned int s86c4f12:1;
  unsigned int s86c4f13:1;
  unsigned int s86c4f14:1;
  unsigned int s86c4f15:1;
  unsigned int s86c4f16:1;
  unsigned int s86c4f17:1;
  unsigned int s86c4f18:1;
  unsigned int s86c4f19:1;
  unsigned int s86c4f20:1;
  unsigned int s86c4f21:1;
  unsigned int s86c4f22:1;
  unsigned int s86c4f23:1;
  unsigned int s86c4f24:1;
  unsigned int s86c4f25:1;
  unsigned int s86c4f26:1;
  unsigned int s86c4f27:1;
  void *s86c4f28;
  char s86c4f29[2];
  ::S80C8_nt s86c4f30;
  ::S85C27_nt s86c4f31;
  ::S85C27_nt s86c4f32;
  void *s86c4f33;
  ::S80C21_nt s86c4f34;
  ::S80C21_nt s86c4f35;
  ::S80C21_nt s86c4f36;
  ::S80C21_nt s86c4f37;
  ::S80C21_nt s86c4f38;
  virtual  ~S86C4(); // _ZN5S86C4D1Ev
  virtual void  v146(); // _ZN5S86C44v146Ev
  virtual void  v147(); // _ZN5S86C44v147Ev
  virtual void  v148(); // _ZN5S86C44v148Ev
  virtual void  v149(); // _ZN5S86C44v149Ev
  virtual void  v150(); // _ZN5S86C44v150Ev
  virtual void  v151(); // _ZN5S86C44v151Ev
  virtual void  v152(); // _ZN5S86C44v152Ev
  virtual void  v153(); // _ZN5S86C44v153Ev
  virtual void  v154(); // _ZN5S86C44v154Ev
  virtual void  v155(); // _ZN5S86C44v155Ev
  virtual void  v156(); // _ZN5S86C44v156Ev
  virtual void  v157(); // _ZN5S86C44v157Ev
  virtual void  v158(); // _ZN5S86C44v158Ev
  virtual void  v159(); // _ZN5S86C44v159Ev
  virtual void  v160(); // _ZN5S86C44v160Ev
  virtual void  v161(); // _ZN5S86C44v161Ev
  virtual void  v162(); // _ZN5S86C44v162Ev
  virtual void  v163(); // _ZN5S86C44v163Ev
  virtual void  v164(); // _ZN5S86C44v164Ev
  virtual void  v165(); // _ZN5S86C44v165Ev
  virtual void  v166(); // _ZN5S86C44v166Ev
  virtual void  v167(); // _ZN5S86C44v167Ev
  virtual void  v168(); // _ZN5S86C44v168Ev
  virtual void  v169(); // _ZN5S86C44v169Ev
  virtual void  v170(); // _ZN5S86C44v170Ev
  virtual void  v171(); // _ZN5S86C44v171Ev
  virtual void  v172(); // _ZN5S86C44v172Ev
  virtual void  v173(); // _ZN5S86C44v173Ev
  virtual void  v174(); // _ZN5S86C44v174Ev
  virtual void  v175(); // _ZN5S86C44v175Ev
  virtual void  v176(); // _ZN5S86C44v176Ev
  virtual void  v177(); // _ZN5S86C44v177Ev
  virtual void  v178(); // _ZN5S86C44v178Ev
  virtual void  v179(); // _ZN5S86C44v179Ev
  virtual void  v180(); // _ZN5S86C44v180Ev
  virtual void  v181(); // _ZN5S86C44v181Ev
  virtual void  v182(); // _ZN5S86C44v182Ev
  virtual void  v183(); // _ZN5S86C44v183Ev
  virtual void  v184(); // _ZN5S86C44v184Ev
  S86C4(); // tgen
};
//SIG(-1 S86C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S86C4 ::~S86C4(){ note_dtor("S86C4", this);}
void  S86C4 ::v146(){vfunc_called(this, "_ZN5S86C44v146Ev");}
void  S86C4 ::v147(){vfunc_called(this, "_ZN5S86C44v147Ev");}
void  S86C4 ::v148(){vfunc_called(this, "_ZN5S86C44v148Ev");}
void  S86C4 ::v149(){vfunc_called(this, "_ZN5S86C44v149Ev");}
void  S86C4 ::v150(){vfunc_called(this, "_ZN5S86C44v150Ev");}
void  S86C4 ::v151(){vfunc_called(this, "_ZN5S86C44v151Ev");}
void  S86C4 ::v152(){vfunc_called(this, "_ZN5S86C44v152Ev");}
void  S86C4 ::v153(){vfunc_called(this, "_ZN5S86C44v153Ev");}
void  S86C4 ::v154(){vfunc_called(this, "_ZN5S86C44v154Ev");}
void  S86C4 ::v155(){vfunc_called(this, "_ZN5S86C44v155Ev");}
void  S86C4 ::v156(){vfunc_called(this, "_ZN5S86C44v156Ev");}
void  S86C4 ::v157(){vfunc_called(this, "_ZN5S86C44v157Ev");}
void  S86C4 ::v158(){vfunc_called(this, "_ZN5S86C44v158Ev");}
void  S86C4 ::v159(){vfunc_called(this, "_ZN5S86C44v159Ev");}
void  S86C4 ::v160(){vfunc_called(this, "_ZN5S86C44v160Ev");}
void  S86C4 ::v161(){vfunc_called(this, "_ZN5S86C44v161Ev");}
void  S86C4 ::v162(){vfunc_called(this, "_ZN5S86C44v162Ev");}
void  S86C4 ::v163(){vfunc_called(this, "_ZN5S86C44v163Ev");}
void  S86C4 ::v164(){vfunc_called(this, "_ZN5S86C44v164Ev");}
void  S86C4 ::v165(){vfunc_called(this, "_ZN5S86C44v165Ev");}
void  S86C4 ::v166(){vfunc_called(this, "_ZN5S86C44v166Ev");}
void  S86C4 ::v167(){vfunc_called(this, "_ZN5S86C44v167Ev");}
void  S86C4 ::v168(){vfunc_called(this, "_ZN5S86C44v168Ev");}
void  S86C4 ::v169(){vfunc_called(this, "_ZN5S86C44v169Ev");}
void  S86C4 ::v170(){vfunc_called(this, "_ZN5S86C44v170Ev");}
void  S86C4 ::v171(){vfunc_called(this, "_ZN5S86C44v171Ev");}
void  S86C4 ::v172(){vfunc_called(this, "_ZN5S86C44v172Ev");}
void  S86C4 ::v173(){vfunc_called(this, "_ZN5S86C44v173Ev");}
void  S86C4 ::v174(){vfunc_called(this, "_ZN5S86C44v174Ev");}
void  S86C4 ::v175(){vfunc_called(this, "_ZN5S86C44v175Ev");}
void  S86C4 ::v176(){vfunc_called(this, "_ZN5S86C44v176Ev");}
void  S86C4 ::v177(){vfunc_called(this, "_ZN5S86C44v177Ev");}
void  S86C4 ::v178(){vfunc_called(this, "_ZN5S86C44v178Ev");}
void  S86C4 ::v179(){vfunc_called(this, "_ZN5S86C44v179Ev");}
void  S86C4 ::v180(){vfunc_called(this, "_ZN5S86C44v180Ev");}
void  S86C4 ::v181(){vfunc_called(this, "_ZN5S86C44v181Ev");}
void  S86C4 ::v182(){vfunc_called(this, "_ZN5S86C44v182Ev");}
void  S86C4 ::v183(){vfunc_called(this, "_ZN5S86C44v183Ev");}
void  S86C4 ::v184(){vfunc_called(this, "_ZN5S86C44v184Ev");}
S86C4 ::S86C4(){ note_ctor("S86C4", this);} // tgen

static void Test_S86C4()
{
  extern Class_Descriptor cd_S86C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S86C4, buf);
    S86C4 *dp, &lv = *(dp=new (buf) S86C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S86C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C4)");
    check_base_class_offset(lv, (S86C7*)(S86C6*)(S86C5*), 0, "S86C4");
    check_base_class_offset(lv, (S86C6*)(S86C5*), 0, "S86C4");
    check_base_class_offset(lv, (S86C5*), 0, "S86C4");
    check_field_offset(lv, s86c4f0, ABISELECT(464,352), "S86C4.s86c4f0");
    check_field_offset(lv, s86c4f1, ABISELECT(472,360), "S86C4.s86c4f1");
    check_field_offset(lv, s86c4f2, ABISELECT(544,396), "S86C4.s86c4f2");
    check_field_offset(lv, s86c4f3, ABISELECT(560,408), "S86C4.s86c4f3");
    check_field_offset(lv, s86c4f4, ABISELECT(576,420), "S86C4.s86c4f4");
    check_field_offset(lv, s86c4f5, ABISELECT(608,440), "S86C4.s86c4f5");
    set_bf_and_test(lv, s86c4f6, ABISELECT(612,444), 0, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f7, ABISELECT(612,444), 1, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f8, ABISELECT(612,444), 2, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f9, ABISELECT(612,444), 3, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f10, ABISELECT(612,444), 4, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f11, ABISELECT(612,444), 5, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f12, ABISELECT(612,444), 6, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f13, ABISELECT(612,444), 7, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f14, ABISELECT(613,445), 0, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f15, ABISELECT(613,445), 1, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f16, ABISELECT(613,445), 2, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f17, ABISELECT(613,445), 3, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f18, ABISELECT(613,445), 4, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f19, ABISELECT(613,445), 5, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f20, ABISELECT(613,445), 6, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f21, ABISELECT(613,445), 7, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f22, ABISELECT(614,446), 0, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f23, ABISELECT(614,446), 1, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f24, ABISELECT(614,446), 2, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f25, ABISELECT(614,446), 3, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f26, ABISELECT(614,446), 4, 1, 1, "S86C4");
    set_bf_and_test(lv, s86c4f27, ABISELECT(614,446), 5, 1, 1, "S86C4");
    check_field_offset(lv, s86c4f28, ABISELECT(616,448), "S86C4.s86c4f28");
    check_field_offset(lv, s86c4f29, ABISELECT(624,452), "S86C4.s86c4f29");
    check_field_offset(lv, s86c4f30, ABISELECT(628,456), "S86C4.s86c4f30");
    check_field_offset(lv, s86c4f31, ABISELECT(636,464), "S86C4.s86c4f31");
    check_field_offset(lv, s86c4f32, ABISELECT(644,472), "S86C4.s86c4f32");
    check_field_offset(lv, s86c4f33, ABISELECT(656,480), "S86C4.s86c4f33");
    check_field_offset(lv, s86c4f34, ABISELECT(664,484), "S86C4.s86c4f34");
    check_field_offset(lv, s86c4f35, ABISELECT(680,496), "S86C4.s86c4f35");
    check_field_offset(lv, s86c4f36, ABISELECT(696,508), "S86C4.s86c4f36");
    check_field_offset(lv, s86c4f37, ABISELECT(712,520), "S86C4.s86c4f37");
    check_field_offset(lv, s86c4f38, ABISELECT(728,532), "S86C4.s86c4f38");
    test_class_info(&lv, &cd_S86C4);
    dp->~S86C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C4(Test_S86C4, "S86C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S86C4C1Ev();
extern void _ZN5S86C4D1Ev();
Name_Map name_map_S86C4[] = {
  NSPAIR(_ZN5S86C4C1Ev),
  NSPAIR(_ZN5S86C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S86C7;
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
extern Class_Descriptor cd_S86C6;
extern VTBL_ENTRY _ZTI5S86C6[];
extern  VTBL_ENTRY _ZTV5S86C6[];
extern Class_Descriptor cd_S86C5;
extern VTBL_ENTRY _ZTI5S86C5[];
extern  VTBL_ENTRY _ZTV5S86C5[];
static Base_Class bases_S86C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S86C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S86C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S86C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S86C4[];
extern void _ZN5S86C4D1Ev();
extern void _ZN5S86C4D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
extern void _ZN5S86C63v68Ev();
extern void _ZN5S86C63v69Ev();
extern void _ZN5S86C53v70Ev();
extern void _ZN5S86C53v71Ev();
extern void _ZN5S86C53v72Ev();
extern void _ZN5S86C53v73Ev();
extern void _ZN5S86C53v74Ev();
extern void _ZN5S86C53v75Ev();
extern void _ZN5S86C53v76Ev();
extern void _ZN5S86C53v77Ev();
extern void _ZN5S86C53v78Ev();
extern void _ZN5S86C53v79Ev();
extern void _ZN5S86C53v80Ev();
extern void _ZN5S86C53v81Ev();
extern void _ZN5S86C53v82Ev();
extern void _ZN5S86C53v83Ev();
extern void _ZN5S86C53v84Ev();
extern void _ZN5S86C53v85Ev();
extern void _ZN5S86C53v86Ev();
extern void _ZN5S86C53v87Ev();
extern void _ZN5S86C53v88Ev();
extern void _ZN5S86C53v89Ev();
extern void _ZN5S86C53v90Ev();
extern void _ZN5S86C53v91Ev();
extern void _ZN5S86C53v92Ev();
extern void _ZN5S86C53v93Ev();
extern void _ZN5S86C53v94Ev();
extern void _ZN5S86C53v95Ev();
extern void _ZN5S86C53v96Ev();
extern void _ZN5S86C53v97Ev();
extern void _ZN5S86C53v98Ev();
extern void _ZN5S86C53v99Ev();
extern void _ZN5S86C54v100Ev();
extern void _ZN5S86C54v101Ev();
extern void _ZN5S86C54v102Ev();
extern void _ZN5S86C54v103Ev();
extern void _ZN5S86C54v104Ev();
extern void _ZN5S86C54v105Ev();
extern void _ZN5S86C54v106Ev();
extern void _ZN5S86C54v107Ev();
extern void _ZN5S86C54v108Ev();
extern void _ZN5S86C54v109Ev();
extern void _ZN5S86C54v110Ev();
extern void _ZN5S86C54v111Ev();
extern void _ZN5S86C54v112Ev();
extern void _ZN5S86C54v113Ev();
extern void _ZN5S86C54v114Ev();
extern void _ZN5S86C54v115Ev();
extern void _ZN5S86C54v116Ev();
extern void _ZN5S86C54v117Ev();
extern void _ZN5S86C54v118Ev();
extern void _ZN5S86C54v119Ev();
extern void _ZN5S86C54v120Ev();
extern void _ZN5S86C54v121Ev();
extern void _ZN5S86C54v122Ev();
extern void _ZN5S86C54v123Ev();
extern void _ZN5S86C54v124Ev();
extern void _ZN5S86C54v125Ev();
extern void _ZN5S86C54v126Ev();
extern void _ZN5S86C54v127Ev();
extern void _ZN5S86C54v128Ev();
extern void _ZN5S86C54v129Ev();
extern void _ZN5S86C54v130Ev();
extern void _ZN5S86C54v131Ev();
extern void _ZN5S86C54v132Ev();
extern void _ZN5S86C54v133Ev();
extern void _ZN5S86C54v134Ev();
extern void _ZN5S86C54v135Ev();
extern void _ZN5S86C54v136Ev();
extern void _ZN5S86C54v137Ev();
extern void _ZN5S86C54v138Ev();
extern void _ZN5S86C54v139Ev();
extern void _ZN5S86C54v140Ev();
extern void _ZN5S86C54v141Ev();
extern void _ZN5S86C54v142Ev();
extern void _ZN5S86C54v143Ev();
extern void _ZN5S86C54v144Ev();
extern void _ZN5S86C54v145Ev();
extern void _ZN5S86C44v146Ev();
extern void _ZN5S86C44v147Ev();
extern void _ZN5S86C44v148Ev();
extern void _ZN5S86C44v149Ev();
extern void _ZN5S86C44v150Ev();
extern void _ZN5S86C44v151Ev();
extern void _ZN5S86C44v152Ev();
extern void _ZN5S86C44v153Ev();
extern void _ZN5S86C44v154Ev();
extern void _ZN5S86C44v155Ev();
extern void _ZN5S86C44v156Ev();
extern void _ZN5S86C44v157Ev();
extern void _ZN5S86C44v158Ev();
extern void _ZN5S86C44v159Ev();
extern void _ZN5S86C44v160Ev();
extern void _ZN5S86C44v161Ev();
extern void _ZN5S86C44v162Ev();
extern void _ZN5S86C44v163Ev();
extern void _ZN5S86C44v164Ev();
extern void _ZN5S86C44v165Ev();
extern void _ZN5S86C44v166Ev();
extern void _ZN5S86C44v167Ev();
extern void _ZN5S86C44v168Ev();
extern void _ZN5S86C44v169Ev();
extern void _ZN5S86C44v170Ev();
extern void _ZN5S86C44v171Ev();
extern void _ZN5S86C44v172Ev();
extern void _ZN5S86C44v173Ev();
extern void _ZN5S86C44v174Ev();
extern void _ZN5S86C44v175Ev();
extern void _ZN5S86C44v176Ev();
extern void _ZN5S86C44v177Ev();
extern void _ZN5S86C44v178Ev();
extern void _ZN5S86C44v179Ev();
extern void _ZN5S86C44v180Ev();
extern void _ZN5S86C44v181Ev();
extern void _ZN5S86C44v182Ev();
extern void _ZN5S86C44v183Ev();
extern void _ZN5S86C44v184Ev();
static  VTBL_ENTRY vtc_S86C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C4[0]),
  (VTBL_ENTRY)&_ZN5S86C4D1Ev,
  (VTBL_ENTRY)&_ZN5S86C4D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
  (VTBL_ENTRY)&_ZN5S86C63v68Ev,
  (VTBL_ENTRY)&_ZN5S86C63v69Ev,
  (VTBL_ENTRY)&_ZN5S86C53v70Ev,
  (VTBL_ENTRY)&_ZN5S86C53v71Ev,
  (VTBL_ENTRY)&_ZN5S86C53v72Ev,
  (VTBL_ENTRY)&_ZN5S86C53v73Ev,
  (VTBL_ENTRY)&_ZN5S86C53v74Ev,
  (VTBL_ENTRY)&_ZN5S86C53v75Ev,
  (VTBL_ENTRY)&_ZN5S86C53v76Ev,
  (VTBL_ENTRY)&_ZN5S86C53v77Ev,
  (VTBL_ENTRY)&_ZN5S86C53v78Ev,
  (VTBL_ENTRY)&_ZN5S86C53v79Ev,
  (VTBL_ENTRY)&_ZN5S86C53v80Ev,
  (VTBL_ENTRY)&_ZN5S86C53v81Ev,
  (VTBL_ENTRY)&_ZN5S86C53v82Ev,
  (VTBL_ENTRY)&_ZN5S86C53v83Ev,
  (VTBL_ENTRY)&_ZN5S86C53v84Ev,
  (VTBL_ENTRY)&_ZN5S86C53v85Ev,
  (VTBL_ENTRY)&_ZN5S86C53v86Ev,
  (VTBL_ENTRY)&_ZN5S86C53v87Ev,
  (VTBL_ENTRY)&_ZN5S86C53v88Ev,
  (VTBL_ENTRY)&_ZN5S86C53v89Ev,
  (VTBL_ENTRY)&_ZN5S86C53v90Ev,
  (VTBL_ENTRY)&_ZN5S86C53v91Ev,
  (VTBL_ENTRY)&_ZN5S86C53v92Ev,
  (VTBL_ENTRY)&_ZN5S86C53v93Ev,
  (VTBL_ENTRY)&_ZN5S86C53v94Ev,
  (VTBL_ENTRY)&_ZN5S86C53v95Ev,
  (VTBL_ENTRY)&_ZN5S86C53v96Ev,
  (VTBL_ENTRY)&_ZN5S86C53v97Ev,
  (VTBL_ENTRY)&_ZN5S86C53v98Ev,
  (VTBL_ENTRY)&_ZN5S86C53v99Ev,
  (VTBL_ENTRY)&_ZN5S86C54v100Ev,
  (VTBL_ENTRY)&_ZN5S86C54v101Ev,
  (VTBL_ENTRY)&_ZN5S86C54v102Ev,
  (VTBL_ENTRY)&_ZN5S86C54v103Ev,
  (VTBL_ENTRY)&_ZN5S86C54v104Ev,
  (VTBL_ENTRY)&_ZN5S86C54v105Ev,
  (VTBL_ENTRY)&_ZN5S86C54v106Ev,
  (VTBL_ENTRY)&_ZN5S86C54v107Ev,
  (VTBL_ENTRY)&_ZN5S86C54v108Ev,
  (VTBL_ENTRY)&_ZN5S86C54v109Ev,
  (VTBL_ENTRY)&_ZN5S86C54v110Ev,
  (VTBL_ENTRY)&_ZN5S86C54v111Ev,
  (VTBL_ENTRY)&_ZN5S86C54v112Ev,
  (VTBL_ENTRY)&_ZN5S86C54v113Ev,
  (VTBL_ENTRY)&_ZN5S86C54v114Ev,
  (VTBL_ENTRY)&_ZN5S86C54v115Ev,
  (VTBL_ENTRY)&_ZN5S86C54v116Ev,
  (VTBL_ENTRY)&_ZN5S86C54v117Ev,
  (VTBL_ENTRY)&_ZN5S86C54v118Ev,
  (VTBL_ENTRY)&_ZN5S86C54v119Ev,
  (VTBL_ENTRY)&_ZN5S86C54v120Ev,
  (VTBL_ENTRY)&_ZN5S86C54v121Ev,
  (VTBL_ENTRY)&_ZN5S86C54v122Ev,
  (VTBL_ENTRY)&_ZN5S86C54v123Ev,
  (VTBL_ENTRY)&_ZN5S86C54v124Ev,
  (VTBL_ENTRY)&_ZN5S86C54v125Ev,
  (VTBL_ENTRY)&_ZN5S86C54v126Ev,
  (VTBL_ENTRY)&_ZN5S86C54v127Ev,
  (VTBL_ENTRY)&_ZN5S86C54v128Ev,
  (VTBL_ENTRY)&_ZN5S86C54v129Ev,
  (VTBL_ENTRY)&_ZN5S86C54v130Ev,
  (VTBL_ENTRY)&_ZN5S86C54v131Ev,
  (VTBL_ENTRY)&_ZN5S86C54v132Ev,
  (VTBL_ENTRY)&_ZN5S86C54v133Ev,
  (VTBL_ENTRY)&_ZN5S86C54v134Ev,
  (VTBL_ENTRY)&_ZN5S86C54v135Ev,
  (VTBL_ENTRY)&_ZN5S86C54v136Ev,
  (VTBL_ENTRY)&_ZN5S86C54v137Ev,
  (VTBL_ENTRY)&_ZN5S86C54v138Ev,
  (VTBL_ENTRY)&_ZN5S86C54v139Ev,
  (VTBL_ENTRY)&_ZN5S86C54v140Ev,
  (VTBL_ENTRY)&_ZN5S86C54v141Ev,
  (VTBL_ENTRY)&_ZN5S86C54v142Ev,
  (VTBL_ENTRY)&_ZN5S86C54v143Ev,
  (VTBL_ENTRY)&_ZN5S86C54v144Ev,
  (VTBL_ENTRY)&_ZN5S86C54v145Ev,
  (VTBL_ENTRY)&_ZN5S86C44v146Ev,
  (VTBL_ENTRY)&_ZN5S86C44v147Ev,
  (VTBL_ENTRY)&_ZN5S86C44v148Ev,
  (VTBL_ENTRY)&_ZN5S86C44v149Ev,
  (VTBL_ENTRY)&_ZN5S86C44v150Ev,
  (VTBL_ENTRY)&_ZN5S86C44v151Ev,
  (VTBL_ENTRY)&_ZN5S86C44v152Ev,
  (VTBL_ENTRY)&_ZN5S86C44v153Ev,
  (VTBL_ENTRY)&_ZN5S86C44v154Ev,
  (VTBL_ENTRY)&_ZN5S86C44v155Ev,
  (VTBL_ENTRY)&_ZN5S86C44v156Ev,
  (VTBL_ENTRY)&_ZN5S86C44v157Ev,
  (VTBL_ENTRY)&_ZN5S86C44v158Ev,
  (VTBL_ENTRY)&_ZN5S86C44v159Ev,
  (VTBL_ENTRY)&_ZN5S86C44v160Ev,
  (VTBL_ENTRY)&_ZN5S86C44v161Ev,
  (VTBL_ENTRY)&_ZN5S86C44v162Ev,
  (VTBL_ENTRY)&_ZN5S86C44v163Ev,
  (VTBL_ENTRY)&_ZN5S86C44v164Ev,
  (VTBL_ENTRY)&_ZN5S86C44v165Ev,
  (VTBL_ENTRY)&_ZN5S86C44v166Ev,
  (VTBL_ENTRY)&_ZN5S86C44v167Ev,
  (VTBL_ENTRY)&_ZN5S86C44v168Ev,
  (VTBL_ENTRY)&_ZN5S86C44v169Ev,
  (VTBL_ENTRY)&_ZN5S86C44v170Ev,
  (VTBL_ENTRY)&_ZN5S86C44v171Ev,
  (VTBL_ENTRY)&_ZN5S86C44v172Ev,
  (VTBL_ENTRY)&_ZN5S86C44v173Ev,
  (VTBL_ENTRY)&_ZN5S86C44v174Ev,
  (VTBL_ENTRY)&_ZN5S86C44v175Ev,
  (VTBL_ENTRY)&_ZN5S86C44v176Ev,
  (VTBL_ENTRY)&_ZN5S86C44v177Ev,
  (VTBL_ENTRY)&_ZN5S86C44v178Ev,
  (VTBL_ENTRY)&_ZN5S86C44v179Ev,
  (VTBL_ENTRY)&_ZN5S86C44v180Ev,
  (VTBL_ENTRY)&_ZN5S86C44v181Ev,
  (VTBL_ENTRY)&_ZN5S86C44v182Ev,
  (VTBL_ENTRY)&_ZN5S86C44v183Ev,
  (VTBL_ENTRY)&_ZN5S86C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S86C4[];
extern  VTBL_ENTRY _ZTV5S86C4[];
Class_Descriptor cd_S86C4 = {  "S86C4", // class name
  bases_S86C4, 3,
  &(vtc_S86C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S86C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S86C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C3  : S86C4 {
  unsigned int s86c3f0:1;
  unsigned int s86c3f1:1;
  unsigned int s86c3f2:1;
  unsigned int s86c3f3:1;
  unsigned int s86c3f4:1;
  unsigned int s86c3f5:1;
  void *s86c3f6[8];
  ::S80C21_nt s86c3f7;
  ::S80C21_nt s86c3f8;
  ::S80C21_nt s86c3f9;
  virtual  ~S86C3(); // _ZN5S86C3D1Ev
  virtual void  v185(); // _ZN5S86C34v185Ev
  virtual void  v186(); // _ZN5S86C34v186Ev
  virtual void  v187(); // _ZN5S86C34v187Ev
  virtual void  v188(); // _ZN5S86C34v188Ev
  virtual void  v189(); // _ZN5S86C34v189Ev
  virtual void  v190(); // _ZN5S86C34v190Ev
  virtual void  v191(); // _ZN5S86C34v191Ev
  virtual void  v192(); // _ZN5S86C34v192Ev
  virtual void  v193(); // _ZN5S86C34v193Ev
  virtual void  v194(); // _ZN5S86C34v194Ev
  virtual void  v195(); // _ZN5S86C34v195Ev
  virtual void  v196(); // _ZN5S86C34v196Ev
  virtual void  v197(); // _ZN5S86C34v197Ev
  virtual void  v198(); // _ZN5S86C34v198Ev
  virtual void  v199(); // _ZN5S86C34v199Ev
  virtual void  v200(); // _ZN5S86C34v200Ev
  virtual void  v201(); // _ZN5S86C34v201Ev
  virtual void  v202(); // _ZN5S86C34v202Ev
  virtual void  v203(); // _ZN5S86C34v203Ev
  virtual void  v204(); // _ZN5S86C34v204Ev
  virtual void  v205(); // _ZN5S86C34v205Ev
  virtual void  v206(); // _ZN5S86C34v206Ev
  virtual void  v207(); // _ZN5S86C34v207Ev
  S86C3(); // tgen
};
//SIG(-1 S86C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S86C3 ::~S86C3(){ note_dtor("S86C3", this);}
void  S86C3 ::v185(){vfunc_called(this, "_ZN5S86C34v185Ev");}
void  S86C3 ::v186(){vfunc_called(this, "_ZN5S86C34v186Ev");}
void  S86C3 ::v187(){vfunc_called(this, "_ZN5S86C34v187Ev");}
void  S86C3 ::v188(){vfunc_called(this, "_ZN5S86C34v188Ev");}
void  S86C3 ::v189(){vfunc_called(this, "_ZN5S86C34v189Ev");}
void  S86C3 ::v190(){vfunc_called(this, "_ZN5S86C34v190Ev");}
void  S86C3 ::v191(){vfunc_called(this, "_ZN5S86C34v191Ev");}
void  S86C3 ::v192(){vfunc_called(this, "_ZN5S86C34v192Ev");}
void  S86C3 ::v193(){vfunc_called(this, "_ZN5S86C34v193Ev");}
void  S86C3 ::v194(){vfunc_called(this, "_ZN5S86C34v194Ev");}
void  S86C3 ::v195(){vfunc_called(this, "_ZN5S86C34v195Ev");}
void  S86C3 ::v196(){vfunc_called(this, "_ZN5S86C34v196Ev");}
void  S86C3 ::v197(){vfunc_called(this, "_ZN5S86C34v197Ev");}
void  S86C3 ::v198(){vfunc_called(this, "_ZN5S86C34v198Ev");}
void  S86C3 ::v199(){vfunc_called(this, "_ZN5S86C34v199Ev");}
void  S86C3 ::v200(){vfunc_called(this, "_ZN5S86C34v200Ev");}
void  S86C3 ::v201(){vfunc_called(this, "_ZN5S86C34v201Ev");}
void  S86C3 ::v202(){vfunc_called(this, "_ZN5S86C34v202Ev");}
void  S86C3 ::v203(){vfunc_called(this, "_ZN5S86C34v203Ev");}
void  S86C3 ::v204(){vfunc_called(this, "_ZN5S86C34v204Ev");}
void  S86C3 ::v205(){vfunc_called(this, "_ZN5S86C34v205Ev");}
void  S86C3 ::v206(){vfunc_called(this, "_ZN5S86C34v206Ev");}
void  S86C3 ::v207(){vfunc_called(this, "_ZN5S86C34v207Ev");}
S86C3 ::S86C3(){ note_ctor("S86C3", this);} // tgen

static void Test_S86C3()
{
  extern Class_Descriptor cd_S86C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S86C3, buf);
    S86C3 *dp, &lv = *(dp=new (buf) S86C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S86C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C3)");
    check_base_class_offset(lv, (S86C7*)(S86C6*)(S86C5*)(S86C4*), 0, "S86C3");
    check_base_class_offset(lv, (S86C6*)(S86C5*)(S86C4*), 0, "S86C3");
    check_base_class_offset(lv, (S86C5*)(S86C4*), 0, "S86C3");
    check_base_class_offset(lv, (S86C4*), 0, "S86C3");
    set_bf_and_test(lv, s86c3f0, ABISELECT(744,544), 0, 1, 1, "S86C3");
    set_bf_and_test(lv, s86c3f1, ABISELECT(744,544), 1, 1, 1, "S86C3");
    set_bf_and_test(lv, s86c3f2, ABISELECT(744,544), 2, 1, 1, "S86C3");
    set_bf_and_test(lv, s86c3f3, ABISELECT(744,544), 3, 1, 1, "S86C3");
    set_bf_and_test(lv, s86c3f4, ABISELECT(744,544), 4, 1, 1, "S86C3");
    set_bf_and_test(lv, s86c3f5, ABISELECT(744,544), 5, 1, 1, "S86C3");
    check_field_offset(lv, s86c3f6, ABISELECT(752,548), "S86C3.s86c3f6");
    check_field_offset(lv, s86c3f7, ABISELECT(816,580), "S86C3.s86c3f7");
    check_field_offset(lv, s86c3f8, ABISELECT(832,592), "S86C3.s86c3f8");
    check_field_offset(lv, s86c3f9, ABISELECT(848,604), "S86C3.s86c3f9");
    test_class_info(&lv, &cd_S86C3);
    dp->~S86C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C3(Test_S86C3, "S86C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S86C3C1Ev();
extern void _ZN5S86C3D1Ev();
Name_Map name_map_S86C3[] = {
  NSPAIR(_ZN5S86C3C1Ev),
  NSPAIR(_ZN5S86C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S86C7;
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
extern Class_Descriptor cd_S86C6;
extern VTBL_ENTRY _ZTI5S86C6[];
extern  VTBL_ENTRY _ZTV5S86C6[];
extern Class_Descriptor cd_S86C5;
extern VTBL_ENTRY _ZTI5S86C5[];
extern  VTBL_ENTRY _ZTV5S86C5[];
extern Class_Descriptor cd_S86C4;
extern VTBL_ENTRY _ZTI5S86C4[];
extern  VTBL_ENTRY _ZTV5S86C4[];
static Base_Class bases_S86C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S86C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S86C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S86C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S86C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S86C3[];
extern void _ZN5S86C3D1Ev();
extern void _ZN5S86C3D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
extern void _ZN5S86C63v68Ev();
extern void _ZN5S86C63v69Ev();
extern void _ZN5S86C53v70Ev();
extern void _ZN5S86C53v71Ev();
extern void _ZN5S86C53v72Ev();
extern void _ZN5S86C53v73Ev();
extern void _ZN5S86C53v74Ev();
extern void _ZN5S86C53v75Ev();
extern void _ZN5S86C53v76Ev();
extern void _ZN5S86C53v77Ev();
extern void _ZN5S86C53v78Ev();
extern void _ZN5S86C53v79Ev();
extern void _ZN5S86C53v80Ev();
extern void _ZN5S86C53v81Ev();
extern void _ZN5S86C53v82Ev();
extern void _ZN5S86C53v83Ev();
extern void _ZN5S86C53v84Ev();
extern void _ZN5S86C53v85Ev();
extern void _ZN5S86C53v86Ev();
extern void _ZN5S86C53v87Ev();
extern void _ZN5S86C53v88Ev();
extern void _ZN5S86C53v89Ev();
extern void _ZN5S86C53v90Ev();
extern void _ZN5S86C53v91Ev();
extern void _ZN5S86C53v92Ev();
extern void _ZN5S86C53v93Ev();
extern void _ZN5S86C53v94Ev();
extern void _ZN5S86C53v95Ev();
extern void _ZN5S86C53v96Ev();
extern void _ZN5S86C53v97Ev();
extern void _ZN5S86C53v98Ev();
extern void _ZN5S86C53v99Ev();
extern void _ZN5S86C54v100Ev();
extern void _ZN5S86C54v101Ev();
extern void _ZN5S86C54v102Ev();
extern void _ZN5S86C54v103Ev();
extern void _ZN5S86C54v104Ev();
extern void _ZN5S86C54v105Ev();
extern void _ZN5S86C54v106Ev();
extern void _ZN5S86C54v107Ev();
extern void _ZN5S86C54v108Ev();
extern void _ZN5S86C54v109Ev();
extern void _ZN5S86C54v110Ev();
extern void _ZN5S86C54v111Ev();
extern void _ZN5S86C54v112Ev();
extern void _ZN5S86C54v113Ev();
extern void _ZN5S86C54v114Ev();
extern void _ZN5S86C54v115Ev();
extern void _ZN5S86C54v116Ev();
extern void _ZN5S86C54v117Ev();
extern void _ZN5S86C54v118Ev();
extern void _ZN5S86C54v119Ev();
extern void _ZN5S86C54v120Ev();
extern void _ZN5S86C54v121Ev();
extern void _ZN5S86C54v122Ev();
extern void _ZN5S86C54v123Ev();
extern void _ZN5S86C54v124Ev();
extern void _ZN5S86C54v125Ev();
extern void _ZN5S86C54v126Ev();
extern void _ZN5S86C54v127Ev();
extern void _ZN5S86C54v128Ev();
extern void _ZN5S86C54v129Ev();
extern void _ZN5S86C54v130Ev();
extern void _ZN5S86C54v131Ev();
extern void _ZN5S86C54v132Ev();
extern void _ZN5S86C54v133Ev();
extern void _ZN5S86C54v134Ev();
extern void _ZN5S86C54v135Ev();
extern void _ZN5S86C54v136Ev();
extern void _ZN5S86C54v137Ev();
extern void _ZN5S86C54v138Ev();
extern void _ZN5S86C54v139Ev();
extern void _ZN5S86C54v140Ev();
extern void _ZN5S86C54v141Ev();
extern void _ZN5S86C54v142Ev();
extern void _ZN5S86C54v143Ev();
extern void _ZN5S86C54v144Ev();
extern void _ZN5S86C54v145Ev();
extern void _ZN5S86C44v146Ev();
extern void _ZN5S86C44v147Ev();
extern void _ZN5S86C44v148Ev();
extern void _ZN5S86C44v149Ev();
extern void _ZN5S86C44v150Ev();
extern void _ZN5S86C44v151Ev();
extern void _ZN5S86C44v152Ev();
extern void _ZN5S86C44v153Ev();
extern void _ZN5S86C44v154Ev();
extern void _ZN5S86C44v155Ev();
extern void _ZN5S86C44v156Ev();
extern void _ZN5S86C44v157Ev();
extern void _ZN5S86C44v158Ev();
extern void _ZN5S86C44v159Ev();
extern void _ZN5S86C44v160Ev();
extern void _ZN5S86C44v161Ev();
extern void _ZN5S86C44v162Ev();
extern void _ZN5S86C44v163Ev();
extern void _ZN5S86C44v164Ev();
extern void _ZN5S86C44v165Ev();
extern void _ZN5S86C44v166Ev();
extern void _ZN5S86C44v167Ev();
extern void _ZN5S86C44v168Ev();
extern void _ZN5S86C44v169Ev();
extern void _ZN5S86C44v170Ev();
extern void _ZN5S86C44v171Ev();
extern void _ZN5S86C44v172Ev();
extern void _ZN5S86C44v173Ev();
extern void _ZN5S86C44v174Ev();
extern void _ZN5S86C44v175Ev();
extern void _ZN5S86C44v176Ev();
extern void _ZN5S86C44v177Ev();
extern void _ZN5S86C44v178Ev();
extern void _ZN5S86C44v179Ev();
extern void _ZN5S86C44v180Ev();
extern void _ZN5S86C44v181Ev();
extern void _ZN5S86C44v182Ev();
extern void _ZN5S86C44v183Ev();
extern void _ZN5S86C44v184Ev();
extern void _ZN5S86C34v185Ev();
extern void _ZN5S86C34v186Ev();
extern void _ZN5S86C34v187Ev();
extern void _ZN5S86C34v188Ev();
extern void _ZN5S86C34v189Ev();
extern void _ZN5S86C34v190Ev();
extern void _ZN5S86C34v191Ev();
extern void _ZN5S86C34v192Ev();
extern void _ZN5S86C34v193Ev();
extern void _ZN5S86C34v194Ev();
extern void _ZN5S86C34v195Ev();
extern void _ZN5S86C34v196Ev();
extern void _ZN5S86C34v197Ev();
extern void _ZN5S86C34v198Ev();
extern void _ZN5S86C34v199Ev();
extern void _ZN5S86C34v200Ev();
extern void _ZN5S86C34v201Ev();
extern void _ZN5S86C34v202Ev();
extern void _ZN5S86C34v203Ev();
extern void _ZN5S86C34v204Ev();
extern void _ZN5S86C34v205Ev();
extern void _ZN5S86C34v206Ev();
extern void _ZN5S86C34v207Ev();
static  VTBL_ENTRY vtc_S86C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C3[0]),
  (VTBL_ENTRY)&_ZN5S86C3D1Ev,
  (VTBL_ENTRY)&_ZN5S86C3D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
  (VTBL_ENTRY)&_ZN5S86C63v68Ev,
  (VTBL_ENTRY)&_ZN5S86C63v69Ev,
  (VTBL_ENTRY)&_ZN5S86C53v70Ev,
  (VTBL_ENTRY)&_ZN5S86C53v71Ev,
  (VTBL_ENTRY)&_ZN5S86C53v72Ev,
  (VTBL_ENTRY)&_ZN5S86C53v73Ev,
  (VTBL_ENTRY)&_ZN5S86C53v74Ev,
  (VTBL_ENTRY)&_ZN5S86C53v75Ev,
  (VTBL_ENTRY)&_ZN5S86C53v76Ev,
  (VTBL_ENTRY)&_ZN5S86C53v77Ev,
  (VTBL_ENTRY)&_ZN5S86C53v78Ev,
  (VTBL_ENTRY)&_ZN5S86C53v79Ev,
  (VTBL_ENTRY)&_ZN5S86C53v80Ev,
  (VTBL_ENTRY)&_ZN5S86C53v81Ev,
  (VTBL_ENTRY)&_ZN5S86C53v82Ev,
  (VTBL_ENTRY)&_ZN5S86C53v83Ev,
  (VTBL_ENTRY)&_ZN5S86C53v84Ev,
  (VTBL_ENTRY)&_ZN5S86C53v85Ev,
  (VTBL_ENTRY)&_ZN5S86C53v86Ev,
  (VTBL_ENTRY)&_ZN5S86C53v87Ev,
  (VTBL_ENTRY)&_ZN5S86C53v88Ev,
  (VTBL_ENTRY)&_ZN5S86C53v89Ev,
  (VTBL_ENTRY)&_ZN5S86C53v90Ev,
  (VTBL_ENTRY)&_ZN5S86C53v91Ev,
  (VTBL_ENTRY)&_ZN5S86C53v92Ev,
  (VTBL_ENTRY)&_ZN5S86C53v93Ev,
  (VTBL_ENTRY)&_ZN5S86C53v94Ev,
  (VTBL_ENTRY)&_ZN5S86C53v95Ev,
  (VTBL_ENTRY)&_ZN5S86C53v96Ev,
  (VTBL_ENTRY)&_ZN5S86C53v97Ev,
  (VTBL_ENTRY)&_ZN5S86C53v98Ev,
  (VTBL_ENTRY)&_ZN5S86C53v99Ev,
  (VTBL_ENTRY)&_ZN5S86C54v100Ev,
  (VTBL_ENTRY)&_ZN5S86C54v101Ev,
  (VTBL_ENTRY)&_ZN5S86C54v102Ev,
  (VTBL_ENTRY)&_ZN5S86C54v103Ev,
  (VTBL_ENTRY)&_ZN5S86C54v104Ev,
  (VTBL_ENTRY)&_ZN5S86C54v105Ev,
  (VTBL_ENTRY)&_ZN5S86C54v106Ev,
  (VTBL_ENTRY)&_ZN5S86C54v107Ev,
  (VTBL_ENTRY)&_ZN5S86C54v108Ev,
  (VTBL_ENTRY)&_ZN5S86C54v109Ev,
  (VTBL_ENTRY)&_ZN5S86C54v110Ev,
  (VTBL_ENTRY)&_ZN5S86C54v111Ev,
  (VTBL_ENTRY)&_ZN5S86C54v112Ev,
  (VTBL_ENTRY)&_ZN5S86C54v113Ev,
  (VTBL_ENTRY)&_ZN5S86C54v114Ev,
  (VTBL_ENTRY)&_ZN5S86C54v115Ev,
  (VTBL_ENTRY)&_ZN5S86C54v116Ev,
  (VTBL_ENTRY)&_ZN5S86C54v117Ev,
  (VTBL_ENTRY)&_ZN5S86C54v118Ev,
  (VTBL_ENTRY)&_ZN5S86C54v119Ev,
  (VTBL_ENTRY)&_ZN5S86C54v120Ev,
  (VTBL_ENTRY)&_ZN5S86C54v121Ev,
  (VTBL_ENTRY)&_ZN5S86C54v122Ev,
  (VTBL_ENTRY)&_ZN5S86C54v123Ev,
  (VTBL_ENTRY)&_ZN5S86C54v124Ev,
  (VTBL_ENTRY)&_ZN5S86C54v125Ev,
  (VTBL_ENTRY)&_ZN5S86C54v126Ev,
  (VTBL_ENTRY)&_ZN5S86C54v127Ev,
  (VTBL_ENTRY)&_ZN5S86C54v128Ev,
  (VTBL_ENTRY)&_ZN5S86C54v129Ev,
  (VTBL_ENTRY)&_ZN5S86C54v130Ev,
  (VTBL_ENTRY)&_ZN5S86C54v131Ev,
  (VTBL_ENTRY)&_ZN5S86C54v132Ev,
  (VTBL_ENTRY)&_ZN5S86C54v133Ev,
  (VTBL_ENTRY)&_ZN5S86C54v134Ev,
  (VTBL_ENTRY)&_ZN5S86C54v135Ev,
  (VTBL_ENTRY)&_ZN5S86C54v136Ev,
  (VTBL_ENTRY)&_ZN5S86C54v137Ev,
  (VTBL_ENTRY)&_ZN5S86C54v138Ev,
  (VTBL_ENTRY)&_ZN5S86C54v139Ev,
  (VTBL_ENTRY)&_ZN5S86C54v140Ev,
  (VTBL_ENTRY)&_ZN5S86C54v141Ev,
  (VTBL_ENTRY)&_ZN5S86C54v142Ev,
  (VTBL_ENTRY)&_ZN5S86C54v143Ev,
  (VTBL_ENTRY)&_ZN5S86C54v144Ev,
  (VTBL_ENTRY)&_ZN5S86C54v145Ev,
  (VTBL_ENTRY)&_ZN5S86C44v146Ev,
  (VTBL_ENTRY)&_ZN5S86C44v147Ev,
  (VTBL_ENTRY)&_ZN5S86C44v148Ev,
  (VTBL_ENTRY)&_ZN5S86C44v149Ev,
  (VTBL_ENTRY)&_ZN5S86C44v150Ev,
  (VTBL_ENTRY)&_ZN5S86C44v151Ev,
  (VTBL_ENTRY)&_ZN5S86C44v152Ev,
  (VTBL_ENTRY)&_ZN5S86C44v153Ev,
  (VTBL_ENTRY)&_ZN5S86C44v154Ev,
  (VTBL_ENTRY)&_ZN5S86C44v155Ev,
  (VTBL_ENTRY)&_ZN5S86C44v156Ev,
  (VTBL_ENTRY)&_ZN5S86C44v157Ev,
  (VTBL_ENTRY)&_ZN5S86C44v158Ev,
  (VTBL_ENTRY)&_ZN5S86C44v159Ev,
  (VTBL_ENTRY)&_ZN5S86C44v160Ev,
  (VTBL_ENTRY)&_ZN5S86C44v161Ev,
  (VTBL_ENTRY)&_ZN5S86C44v162Ev,
  (VTBL_ENTRY)&_ZN5S86C44v163Ev,
  (VTBL_ENTRY)&_ZN5S86C44v164Ev,
  (VTBL_ENTRY)&_ZN5S86C44v165Ev,
  (VTBL_ENTRY)&_ZN5S86C44v166Ev,
  (VTBL_ENTRY)&_ZN5S86C44v167Ev,
  (VTBL_ENTRY)&_ZN5S86C44v168Ev,
  (VTBL_ENTRY)&_ZN5S86C44v169Ev,
  (VTBL_ENTRY)&_ZN5S86C44v170Ev,
  (VTBL_ENTRY)&_ZN5S86C44v171Ev,
  (VTBL_ENTRY)&_ZN5S86C44v172Ev,
  (VTBL_ENTRY)&_ZN5S86C44v173Ev,
  (VTBL_ENTRY)&_ZN5S86C44v174Ev,
  (VTBL_ENTRY)&_ZN5S86C44v175Ev,
  (VTBL_ENTRY)&_ZN5S86C44v176Ev,
  (VTBL_ENTRY)&_ZN5S86C44v177Ev,
  (VTBL_ENTRY)&_ZN5S86C44v178Ev,
  (VTBL_ENTRY)&_ZN5S86C44v179Ev,
  (VTBL_ENTRY)&_ZN5S86C44v180Ev,
  (VTBL_ENTRY)&_ZN5S86C44v181Ev,
  (VTBL_ENTRY)&_ZN5S86C44v182Ev,
  (VTBL_ENTRY)&_ZN5S86C44v183Ev,
  (VTBL_ENTRY)&_ZN5S86C44v184Ev,
  (VTBL_ENTRY)&_ZN5S86C34v185Ev,
  (VTBL_ENTRY)&_ZN5S86C34v186Ev,
  (VTBL_ENTRY)&_ZN5S86C34v187Ev,
  (VTBL_ENTRY)&_ZN5S86C34v188Ev,
  (VTBL_ENTRY)&_ZN5S86C34v189Ev,
  (VTBL_ENTRY)&_ZN5S86C34v190Ev,
  (VTBL_ENTRY)&_ZN5S86C34v191Ev,
  (VTBL_ENTRY)&_ZN5S86C34v192Ev,
  (VTBL_ENTRY)&_ZN5S86C34v193Ev,
  (VTBL_ENTRY)&_ZN5S86C34v194Ev,
  (VTBL_ENTRY)&_ZN5S86C34v195Ev,
  (VTBL_ENTRY)&_ZN5S86C34v196Ev,
  (VTBL_ENTRY)&_ZN5S86C34v197Ev,
  (VTBL_ENTRY)&_ZN5S86C34v198Ev,
  (VTBL_ENTRY)&_ZN5S86C34v199Ev,
  (VTBL_ENTRY)&_ZN5S86C34v200Ev,
  (VTBL_ENTRY)&_ZN5S86C34v201Ev,
  (VTBL_ENTRY)&_ZN5S86C34v202Ev,
  (VTBL_ENTRY)&_ZN5S86C34v203Ev,
  (VTBL_ENTRY)&_ZN5S86C34v204Ev,
  (VTBL_ENTRY)&_ZN5S86C34v205Ev,
  (VTBL_ENTRY)&_ZN5S86C34v206Ev,
  (VTBL_ENTRY)&_ZN5S86C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S86C3[];
extern  VTBL_ENTRY _ZTV5S86C3[];
Class_Descriptor cd_S86C3 = {  "S86C3", // class name
  bases_S86C3, 4,
  &(vtc_S86C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S86C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S86C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C2  : S86C3 {
  virtual  ~S86C2(); // _ZN5S86C2D1Ev
  virtual void  v208(); // _ZN5S86C24v208Ev
  virtual void  v209(); // _ZN5S86C24v209Ev
  S86C2(); // tgen
};
//SIG(-1 S86C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v67 v68} vd v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2}


 S86C2 ::~S86C2(){ note_dtor("S86C2", this);}
void  S86C2 ::v208(){vfunc_called(this, "_ZN5S86C24v208Ev");}
void  S86C2 ::v209(){vfunc_called(this, "_ZN5S86C24v209Ev");}
S86C2 ::S86C2(){ note_ctor("S86C2", this);} // tgen

static void Test_S86C2()
{
  extern Class_Descriptor cd_S86C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S86C2, buf);
    S86C2 *dp, &lv = *(dp=new (buf) S86C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S86C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C2)");
    check_base_class_offset(lv, (S86C7*)(S86C6*)(S86C5*)(S86C4*)(S86C3*), 0, "S86C2");
    check_base_class_offset(lv, (S86C6*)(S86C5*)(S86C4*)(S86C3*), 0, "S86C2");
    check_base_class_offset(lv, (S86C5*)(S86C4*)(S86C3*), 0, "S86C2");
    check_base_class_offset(lv, (S86C4*)(S86C3*), 0, "S86C2");
    check_base_class_offset(lv, (S86C3*), 0, "S86C2");
    test_class_info(&lv, &cd_S86C2);
    dp->~S86C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C2(Test_S86C2, "S86C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S86C2C1Ev();
extern void _ZN5S86C2D1Ev();
Name_Map name_map_S86C2[] = {
  NSPAIR(_ZN5S86C2C1Ev),
  NSPAIR(_ZN5S86C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S86C7;
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
extern Class_Descriptor cd_S86C6;
extern VTBL_ENTRY _ZTI5S86C6[];
extern  VTBL_ENTRY _ZTV5S86C6[];
extern Class_Descriptor cd_S86C5;
extern VTBL_ENTRY _ZTI5S86C5[];
extern  VTBL_ENTRY _ZTV5S86C5[];
extern Class_Descriptor cd_S86C4;
extern VTBL_ENTRY _ZTI5S86C4[];
extern  VTBL_ENTRY _ZTV5S86C4[];
extern Class_Descriptor cd_S86C3;
extern VTBL_ENTRY _ZTI5S86C3[];
extern  VTBL_ENTRY _ZTV5S86C3[];
static Base_Class bases_S86C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S86C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S86C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S86C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S86C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S86C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S86C2[];
extern void _ZN5S86C2D1Ev();
extern void _ZN5S86C2D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
extern void _ZN5S86C63v68Ev();
extern void _ZN5S86C63v69Ev();
extern void _ZN5S86C53v70Ev();
extern void _ZN5S86C53v71Ev();
extern void _ZN5S86C53v72Ev();
extern void _ZN5S86C53v73Ev();
extern void _ZN5S86C53v74Ev();
extern void _ZN5S86C53v75Ev();
extern void _ZN5S86C53v76Ev();
extern void _ZN5S86C53v77Ev();
extern void _ZN5S86C53v78Ev();
extern void _ZN5S86C53v79Ev();
extern void _ZN5S86C53v80Ev();
extern void _ZN5S86C53v81Ev();
extern void _ZN5S86C53v82Ev();
extern void _ZN5S86C53v83Ev();
extern void _ZN5S86C53v84Ev();
extern void _ZN5S86C53v85Ev();
extern void _ZN5S86C53v86Ev();
extern void _ZN5S86C53v87Ev();
extern void _ZN5S86C53v88Ev();
extern void _ZN5S86C53v89Ev();
extern void _ZN5S86C53v90Ev();
extern void _ZN5S86C53v91Ev();
extern void _ZN5S86C53v92Ev();
extern void _ZN5S86C53v93Ev();
extern void _ZN5S86C53v94Ev();
extern void _ZN5S86C53v95Ev();
extern void _ZN5S86C53v96Ev();
extern void _ZN5S86C53v97Ev();
extern void _ZN5S86C53v98Ev();
extern void _ZN5S86C53v99Ev();
extern void _ZN5S86C54v100Ev();
extern void _ZN5S86C54v101Ev();
extern void _ZN5S86C54v102Ev();
extern void _ZN5S86C54v103Ev();
extern void _ZN5S86C54v104Ev();
extern void _ZN5S86C54v105Ev();
extern void _ZN5S86C54v106Ev();
extern void _ZN5S86C54v107Ev();
extern void _ZN5S86C54v108Ev();
extern void _ZN5S86C54v109Ev();
extern void _ZN5S86C54v110Ev();
extern void _ZN5S86C54v111Ev();
extern void _ZN5S86C54v112Ev();
extern void _ZN5S86C54v113Ev();
extern void _ZN5S86C54v114Ev();
extern void _ZN5S86C54v115Ev();
extern void _ZN5S86C54v116Ev();
extern void _ZN5S86C54v117Ev();
extern void _ZN5S86C54v118Ev();
extern void _ZN5S86C54v119Ev();
extern void _ZN5S86C54v120Ev();
extern void _ZN5S86C54v121Ev();
extern void _ZN5S86C54v122Ev();
extern void _ZN5S86C54v123Ev();
extern void _ZN5S86C54v124Ev();
extern void _ZN5S86C54v125Ev();
extern void _ZN5S86C54v126Ev();
extern void _ZN5S86C54v127Ev();
extern void _ZN5S86C54v128Ev();
extern void _ZN5S86C54v129Ev();
extern void _ZN5S86C54v130Ev();
extern void _ZN5S86C54v131Ev();
extern void _ZN5S86C54v132Ev();
extern void _ZN5S86C54v133Ev();
extern void _ZN5S86C54v134Ev();
extern void _ZN5S86C54v135Ev();
extern void _ZN5S86C54v136Ev();
extern void _ZN5S86C54v137Ev();
extern void _ZN5S86C54v138Ev();
extern void _ZN5S86C54v139Ev();
extern void _ZN5S86C54v140Ev();
extern void _ZN5S86C54v141Ev();
extern void _ZN5S86C54v142Ev();
extern void _ZN5S86C54v143Ev();
extern void _ZN5S86C54v144Ev();
extern void _ZN5S86C54v145Ev();
extern void _ZN5S86C44v146Ev();
extern void _ZN5S86C44v147Ev();
extern void _ZN5S86C44v148Ev();
extern void _ZN5S86C44v149Ev();
extern void _ZN5S86C44v150Ev();
extern void _ZN5S86C44v151Ev();
extern void _ZN5S86C44v152Ev();
extern void _ZN5S86C44v153Ev();
extern void _ZN5S86C44v154Ev();
extern void _ZN5S86C44v155Ev();
extern void _ZN5S86C44v156Ev();
extern void _ZN5S86C44v157Ev();
extern void _ZN5S86C44v158Ev();
extern void _ZN5S86C44v159Ev();
extern void _ZN5S86C44v160Ev();
extern void _ZN5S86C44v161Ev();
extern void _ZN5S86C44v162Ev();
extern void _ZN5S86C44v163Ev();
extern void _ZN5S86C44v164Ev();
extern void _ZN5S86C44v165Ev();
extern void _ZN5S86C44v166Ev();
extern void _ZN5S86C44v167Ev();
extern void _ZN5S86C44v168Ev();
extern void _ZN5S86C44v169Ev();
extern void _ZN5S86C44v170Ev();
extern void _ZN5S86C44v171Ev();
extern void _ZN5S86C44v172Ev();
extern void _ZN5S86C44v173Ev();
extern void _ZN5S86C44v174Ev();
extern void _ZN5S86C44v175Ev();
extern void _ZN5S86C44v176Ev();
extern void _ZN5S86C44v177Ev();
extern void _ZN5S86C44v178Ev();
extern void _ZN5S86C44v179Ev();
extern void _ZN5S86C44v180Ev();
extern void _ZN5S86C44v181Ev();
extern void _ZN5S86C44v182Ev();
extern void _ZN5S86C44v183Ev();
extern void _ZN5S86C44v184Ev();
extern void _ZN5S86C34v185Ev();
extern void _ZN5S86C34v186Ev();
extern void _ZN5S86C34v187Ev();
extern void _ZN5S86C34v188Ev();
extern void _ZN5S86C34v189Ev();
extern void _ZN5S86C34v190Ev();
extern void _ZN5S86C34v191Ev();
extern void _ZN5S86C34v192Ev();
extern void _ZN5S86C34v193Ev();
extern void _ZN5S86C34v194Ev();
extern void _ZN5S86C34v195Ev();
extern void _ZN5S86C34v196Ev();
extern void _ZN5S86C34v197Ev();
extern void _ZN5S86C34v198Ev();
extern void _ZN5S86C34v199Ev();
extern void _ZN5S86C34v200Ev();
extern void _ZN5S86C34v201Ev();
extern void _ZN5S86C34v202Ev();
extern void _ZN5S86C34v203Ev();
extern void _ZN5S86C34v204Ev();
extern void _ZN5S86C34v205Ev();
extern void _ZN5S86C34v206Ev();
extern void _ZN5S86C34v207Ev();
extern void _ZN5S86C24v208Ev();
extern void _ZN5S86C24v209Ev();
static  VTBL_ENTRY vtc_S86C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C2[0]),
  (VTBL_ENTRY)&_ZN5S86C2D1Ev,
  (VTBL_ENTRY)&_ZN5S86C2D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
  (VTBL_ENTRY)&_ZN5S86C63v68Ev,
  (VTBL_ENTRY)&_ZN5S86C63v69Ev,
  (VTBL_ENTRY)&_ZN5S86C53v70Ev,
  (VTBL_ENTRY)&_ZN5S86C53v71Ev,
  (VTBL_ENTRY)&_ZN5S86C53v72Ev,
  (VTBL_ENTRY)&_ZN5S86C53v73Ev,
  (VTBL_ENTRY)&_ZN5S86C53v74Ev,
  (VTBL_ENTRY)&_ZN5S86C53v75Ev,
  (VTBL_ENTRY)&_ZN5S86C53v76Ev,
  (VTBL_ENTRY)&_ZN5S86C53v77Ev,
  (VTBL_ENTRY)&_ZN5S86C53v78Ev,
  (VTBL_ENTRY)&_ZN5S86C53v79Ev,
  (VTBL_ENTRY)&_ZN5S86C53v80Ev,
  (VTBL_ENTRY)&_ZN5S86C53v81Ev,
  (VTBL_ENTRY)&_ZN5S86C53v82Ev,
  (VTBL_ENTRY)&_ZN5S86C53v83Ev,
  (VTBL_ENTRY)&_ZN5S86C53v84Ev,
  (VTBL_ENTRY)&_ZN5S86C53v85Ev,
  (VTBL_ENTRY)&_ZN5S86C53v86Ev,
  (VTBL_ENTRY)&_ZN5S86C53v87Ev,
  (VTBL_ENTRY)&_ZN5S86C53v88Ev,
  (VTBL_ENTRY)&_ZN5S86C53v89Ev,
  (VTBL_ENTRY)&_ZN5S86C53v90Ev,
  (VTBL_ENTRY)&_ZN5S86C53v91Ev,
  (VTBL_ENTRY)&_ZN5S86C53v92Ev,
  (VTBL_ENTRY)&_ZN5S86C53v93Ev,
  (VTBL_ENTRY)&_ZN5S86C53v94Ev,
  (VTBL_ENTRY)&_ZN5S86C53v95Ev,
  (VTBL_ENTRY)&_ZN5S86C53v96Ev,
  (VTBL_ENTRY)&_ZN5S86C53v97Ev,
  (VTBL_ENTRY)&_ZN5S86C53v98Ev,
  (VTBL_ENTRY)&_ZN5S86C53v99Ev,
  (VTBL_ENTRY)&_ZN5S86C54v100Ev,
  (VTBL_ENTRY)&_ZN5S86C54v101Ev,
  (VTBL_ENTRY)&_ZN5S86C54v102Ev,
  (VTBL_ENTRY)&_ZN5S86C54v103Ev,
  (VTBL_ENTRY)&_ZN5S86C54v104Ev,
  (VTBL_ENTRY)&_ZN5S86C54v105Ev,
  (VTBL_ENTRY)&_ZN5S86C54v106Ev,
  (VTBL_ENTRY)&_ZN5S86C54v107Ev,
  (VTBL_ENTRY)&_ZN5S86C54v108Ev,
  (VTBL_ENTRY)&_ZN5S86C54v109Ev,
  (VTBL_ENTRY)&_ZN5S86C54v110Ev,
  (VTBL_ENTRY)&_ZN5S86C54v111Ev,
  (VTBL_ENTRY)&_ZN5S86C54v112Ev,
  (VTBL_ENTRY)&_ZN5S86C54v113Ev,
  (VTBL_ENTRY)&_ZN5S86C54v114Ev,
  (VTBL_ENTRY)&_ZN5S86C54v115Ev,
  (VTBL_ENTRY)&_ZN5S86C54v116Ev,
  (VTBL_ENTRY)&_ZN5S86C54v117Ev,
  (VTBL_ENTRY)&_ZN5S86C54v118Ev,
  (VTBL_ENTRY)&_ZN5S86C54v119Ev,
  (VTBL_ENTRY)&_ZN5S86C54v120Ev,
  (VTBL_ENTRY)&_ZN5S86C54v121Ev,
  (VTBL_ENTRY)&_ZN5S86C54v122Ev,
  (VTBL_ENTRY)&_ZN5S86C54v123Ev,
  (VTBL_ENTRY)&_ZN5S86C54v124Ev,
  (VTBL_ENTRY)&_ZN5S86C54v125Ev,
  (VTBL_ENTRY)&_ZN5S86C54v126Ev,
  (VTBL_ENTRY)&_ZN5S86C54v127Ev,
  (VTBL_ENTRY)&_ZN5S86C54v128Ev,
  (VTBL_ENTRY)&_ZN5S86C54v129Ev,
  (VTBL_ENTRY)&_ZN5S86C54v130Ev,
  (VTBL_ENTRY)&_ZN5S86C54v131Ev,
  (VTBL_ENTRY)&_ZN5S86C54v132Ev,
  (VTBL_ENTRY)&_ZN5S86C54v133Ev,
  (VTBL_ENTRY)&_ZN5S86C54v134Ev,
  (VTBL_ENTRY)&_ZN5S86C54v135Ev,
  (VTBL_ENTRY)&_ZN5S86C54v136Ev,
  (VTBL_ENTRY)&_ZN5S86C54v137Ev,
  (VTBL_ENTRY)&_ZN5S86C54v138Ev,
  (VTBL_ENTRY)&_ZN5S86C54v139Ev,
  (VTBL_ENTRY)&_ZN5S86C54v140Ev,
  (VTBL_ENTRY)&_ZN5S86C54v141Ev,
  (VTBL_ENTRY)&_ZN5S86C54v142Ev,
  (VTBL_ENTRY)&_ZN5S86C54v143Ev,
  (VTBL_ENTRY)&_ZN5S86C54v144Ev,
  (VTBL_ENTRY)&_ZN5S86C54v145Ev,
  (VTBL_ENTRY)&_ZN5S86C44v146Ev,
  (VTBL_ENTRY)&_ZN5S86C44v147Ev,
  (VTBL_ENTRY)&_ZN5S86C44v148Ev,
  (VTBL_ENTRY)&_ZN5S86C44v149Ev,
  (VTBL_ENTRY)&_ZN5S86C44v150Ev,
  (VTBL_ENTRY)&_ZN5S86C44v151Ev,
  (VTBL_ENTRY)&_ZN5S86C44v152Ev,
  (VTBL_ENTRY)&_ZN5S86C44v153Ev,
  (VTBL_ENTRY)&_ZN5S86C44v154Ev,
  (VTBL_ENTRY)&_ZN5S86C44v155Ev,
  (VTBL_ENTRY)&_ZN5S86C44v156Ev,
  (VTBL_ENTRY)&_ZN5S86C44v157Ev,
  (VTBL_ENTRY)&_ZN5S86C44v158Ev,
  (VTBL_ENTRY)&_ZN5S86C44v159Ev,
  (VTBL_ENTRY)&_ZN5S86C44v160Ev,
  (VTBL_ENTRY)&_ZN5S86C44v161Ev,
  (VTBL_ENTRY)&_ZN5S86C44v162Ev,
  (VTBL_ENTRY)&_ZN5S86C44v163Ev,
  (VTBL_ENTRY)&_ZN5S86C44v164Ev,
  (VTBL_ENTRY)&_ZN5S86C44v165Ev,
  (VTBL_ENTRY)&_ZN5S86C44v166Ev,
  (VTBL_ENTRY)&_ZN5S86C44v167Ev,
  (VTBL_ENTRY)&_ZN5S86C44v168Ev,
  (VTBL_ENTRY)&_ZN5S86C44v169Ev,
  (VTBL_ENTRY)&_ZN5S86C44v170Ev,
  (VTBL_ENTRY)&_ZN5S86C44v171Ev,
  (VTBL_ENTRY)&_ZN5S86C44v172Ev,
  (VTBL_ENTRY)&_ZN5S86C44v173Ev,
  (VTBL_ENTRY)&_ZN5S86C44v174Ev,
  (VTBL_ENTRY)&_ZN5S86C44v175Ev,
  (VTBL_ENTRY)&_ZN5S86C44v176Ev,
  (VTBL_ENTRY)&_ZN5S86C44v177Ev,
  (VTBL_ENTRY)&_ZN5S86C44v178Ev,
  (VTBL_ENTRY)&_ZN5S86C44v179Ev,
  (VTBL_ENTRY)&_ZN5S86C44v180Ev,
  (VTBL_ENTRY)&_ZN5S86C44v181Ev,
  (VTBL_ENTRY)&_ZN5S86C44v182Ev,
  (VTBL_ENTRY)&_ZN5S86C44v183Ev,
  (VTBL_ENTRY)&_ZN5S86C44v184Ev,
  (VTBL_ENTRY)&_ZN5S86C34v185Ev,
  (VTBL_ENTRY)&_ZN5S86C34v186Ev,
  (VTBL_ENTRY)&_ZN5S86C34v187Ev,
  (VTBL_ENTRY)&_ZN5S86C34v188Ev,
  (VTBL_ENTRY)&_ZN5S86C34v189Ev,
  (VTBL_ENTRY)&_ZN5S86C34v190Ev,
  (VTBL_ENTRY)&_ZN5S86C34v191Ev,
  (VTBL_ENTRY)&_ZN5S86C34v192Ev,
  (VTBL_ENTRY)&_ZN5S86C34v193Ev,
  (VTBL_ENTRY)&_ZN5S86C34v194Ev,
  (VTBL_ENTRY)&_ZN5S86C34v195Ev,
  (VTBL_ENTRY)&_ZN5S86C34v196Ev,
  (VTBL_ENTRY)&_ZN5S86C34v197Ev,
  (VTBL_ENTRY)&_ZN5S86C34v198Ev,
  (VTBL_ENTRY)&_ZN5S86C34v199Ev,
  (VTBL_ENTRY)&_ZN5S86C34v200Ev,
  (VTBL_ENTRY)&_ZN5S86C34v201Ev,
  (VTBL_ENTRY)&_ZN5S86C34v202Ev,
  (VTBL_ENTRY)&_ZN5S86C34v203Ev,
  (VTBL_ENTRY)&_ZN5S86C34v204Ev,
  (VTBL_ENTRY)&_ZN5S86C34v205Ev,
  (VTBL_ENTRY)&_ZN5S86C34v206Ev,
  (VTBL_ENTRY)&_ZN5S86C34v207Ev,
  (VTBL_ENTRY)&_ZN5S86C24v208Ev,
  (VTBL_ENTRY)&_ZN5S86C24v209Ev,
};
extern VTBL_ENTRY _ZTI5S86C2[];
extern  VTBL_ENTRY _ZTV5S86C2[];
Class_Descriptor cd_S86C2 = {  "S86C2", // class name
  bases_S86C2, 5,
  &(vtc_S86C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S86C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S86C2),210, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S86C1  : S86C2 {
  void *s86c1f0[29];
  unsigned int s86c1f1:1;
  unsigned int s86c1f2:1;
  unsigned int s86c1f3:1;
  unsigned int s86c1f4:1;
  int s86c1f5[2];
  void *s86c1f6[3];
  int s86c1f7;
  virtual  ~S86C1(); // _ZN5S86C1D1Ev
  virtual void  v1(); // _ZN5S86C12v1Ev
  virtual void  v2(); // _ZN5S86C12v2Ev
  virtual void  v3(); // _ZN5S86C12v3Ev
  S86C1(); // tgen
};
//SIG(1 S86C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v208 v209} vd v1 v2 v3 Fp[29] Fi:1 Fi:1 Fi:1 Fi:1 Fi[2] Fp[3] Fi}


 S86C1 ::~S86C1(){ note_dtor("S86C1", this);}
void  S86C1 ::v1(){vfunc_called(this, "_ZN5S86C12v1Ev");}
void  S86C1 ::v2(){vfunc_called(this, "_ZN5S86C12v2Ev");}
void  S86C1 ::v3(){vfunc_called(this, "_ZN5S86C12v3Ev");}
S86C1 ::S86C1(){ note_ctor("S86C1", this);} // tgen

static void Test_S86C1()
{
  extern Class_Descriptor cd_S86C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(144,191)];
    init_test(&cd_S86C1, buf);
    S86C1 *dp, &lv = *(dp=new (buf) S86C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(1144,760), "sizeof(S86C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S86C1)");
    check_base_class_offset(lv, (S86C7*)(S86C6*)(S86C5*)(S86C4*)(S86C3*)(S86C2*), 0, "S86C1");
    check_base_class_offset(lv, (S86C6*)(S86C5*)(S86C4*)(S86C3*)(S86C2*), 0, "S86C1");
    check_base_class_offset(lv, (S86C5*)(S86C4*)(S86C3*)(S86C2*), 0, "S86C1");
    check_base_class_offset(lv, (S86C4*)(S86C3*)(S86C2*), 0, "S86C1");
    check_base_class_offset(lv, (S86C3*)(S86C2*), 0, "S86C1");
    check_base_class_offset(lv, (S86C2*), 0, "S86C1");
    check_field_offset(lv, s86c1f0, ABISELECT(864,616), "S86C1.s86c1f0");
    set_bf_and_test(lv, s86c1f1, ABISELECT(1096,732), 0, 1, 1, "S86C1");
    set_bf_and_test(lv, s86c1f2, ABISELECT(1096,732), 1, 1, 1, "S86C1");
    set_bf_and_test(lv, s86c1f3, ABISELECT(1096,732), 2, 1, 1, "S86C1");
    set_bf_and_test(lv, s86c1f4, ABISELECT(1096,732), 3, 1, 1, "S86C1");
    check_field_offset(lv, s86c1f5, ABISELECT(1100,736), "S86C1.s86c1f5");
    check_field_offset(lv, s86c1f6, ABISELECT(1112,744), "S86C1.s86c1f6");
    check_field_offset(lv, s86c1f7, ABISELECT(1136,756), "S86C1.s86c1f7");
    test_class_info(&lv, &cd_S86C1);
    dp->~S86C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS86C1(Test_S86C1, "S86C1", ABISELECT(1144,760));

#else // __cplusplus

extern void _ZN5S86C1C1Ev();
extern void _ZN5S86C1D1Ev();
Name_Map name_map_S86C1[] = {
  NSPAIR(_ZN5S86C1C1Ev),
  NSPAIR(_ZN5S86C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S86C7;
extern VTBL_ENTRY _ZTI5S86C7[];
extern  VTBL_ENTRY _ZTV5S86C7[];
extern Class_Descriptor cd_S86C6;
extern VTBL_ENTRY _ZTI5S86C6[];
extern  VTBL_ENTRY _ZTV5S86C6[];
extern Class_Descriptor cd_S86C5;
extern VTBL_ENTRY _ZTI5S86C5[];
extern  VTBL_ENTRY _ZTV5S86C5[];
extern Class_Descriptor cd_S86C4;
extern VTBL_ENTRY _ZTI5S86C4[];
extern  VTBL_ENTRY _ZTV5S86C4[];
extern Class_Descriptor cd_S86C3;
extern VTBL_ENTRY _ZTI5S86C3[];
extern  VTBL_ENTRY _ZTV5S86C3[];
extern Class_Descriptor cd_S86C2;
extern VTBL_ENTRY _ZTI5S86C2[];
extern  VTBL_ENTRY _ZTV5S86C2[];
static Base_Class bases_S86C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S86C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S86C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S86C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S86C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S86C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S86C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S86C1[];
extern void _ZN5S86C1D1Ev();
extern void _ZN5S86C1D0Ev();
extern void _ZN5S86C72v4Ev();
extern void _ZN5S86C72v5Ev();
extern void _ZN5S86C72v6Ev();
extern void _ZN5S86C72v7Ev();
extern void _ZN5S86C72v8Ev();
extern void _ZN5S86C72v9Ev();
extern void _ZN5S86C73v10Ev();
extern void _ZN5S86C73v11Ev();
extern void _ZN5S86C73v12Ev();
extern void _ZN5S86C73v13Ev();
extern void _ZN5S86C73v14Ev();
extern void _ZN5S86C73v15Ev();
extern void _ZN5S86C73v16Ev();
extern void _ZN5S86C73v17Ev();
extern void _ZN5S86C73v18Ev();
extern void _ZN5S86C73v19Ev();
extern void _ZN5S86C73v20Ev();
extern void _ZN5S86C73v21Ev();
extern void _ZN5S86C73v22Ev();
extern void _ZN5S86C73v23Ev();
extern void _ZN5S86C73v24Ev();
extern void _ZN5S86C73v25Ev();
extern void _ZN5S86C73v26Ev();
extern void _ZN5S86C73v27Ev();
extern void _ZN5S86C73v28Ev();
extern void _ZN5S86C73v29Ev();
extern void _ZN5S86C73v30Ev();
extern void _ZN5S86C73v31Ev();
extern void _ZN5S86C73v32Ev();
extern void _ZN5S86C73v33Ev();
extern void _ZN5S86C73v34Ev();
extern void _ZN5S86C73v35Ev();
extern void _ZN5S86C73v36Ev();
extern void _ZN5S86C73v37Ev();
extern void _ZN5S86C73v38Ev();
extern void _ZN5S86C73v39Ev();
extern void _ZN5S86C73v40Ev();
extern void _ZN5S86C73v41Ev();
extern void _ZN5S86C73v42Ev();
extern void _ZN5S86C73v43Ev();
extern void _ZN5S86C73v44Ev();
extern void _ZN5S86C73v45Ev();
extern void _ZN5S86C73v46Ev();
extern void _ZN5S86C73v47Ev();
extern void _ZN5S86C73v48Ev();
extern void _ZN5S86C73v49Ev();
extern void _ZN5S86C73v50Ev();
extern void _ZN5S86C73v51Ev();
extern void _ZN5S86C73v52Ev();
extern void _ZN5S86C73v53Ev();
extern void _ZN5S86C73v54Ev();
extern void _ZN5S86C73v55Ev();
extern void _ZN5S86C73v56Ev();
extern void _ZN5S86C73v57Ev();
extern void _ZN5S86C73v58Ev();
extern void _ZN5S86C73v59Ev();
extern void _ZN5S86C73v60Ev();
extern void _ZN5S86C73v61Ev();
extern void _ZN5S86C73v62Ev();
extern void _ZN5S86C73v63Ev();
extern void _ZN5S86C73v64Ev();
extern void _ZN5S86C73v65Ev();
extern void _ZN5S86C73v66Ev();
extern void _ZN5S86C73v67Ev();
extern void _ZN5S86C63v68Ev();
extern void _ZN5S86C63v69Ev();
extern void _ZN5S86C53v70Ev();
extern void _ZN5S86C53v71Ev();
extern void _ZN5S86C53v72Ev();
extern void _ZN5S86C53v73Ev();
extern void _ZN5S86C53v74Ev();
extern void _ZN5S86C53v75Ev();
extern void _ZN5S86C53v76Ev();
extern void _ZN5S86C53v77Ev();
extern void _ZN5S86C53v78Ev();
extern void _ZN5S86C53v79Ev();
extern void _ZN5S86C53v80Ev();
extern void _ZN5S86C53v81Ev();
extern void _ZN5S86C53v82Ev();
extern void _ZN5S86C53v83Ev();
extern void _ZN5S86C53v84Ev();
extern void _ZN5S86C53v85Ev();
extern void _ZN5S86C53v86Ev();
extern void _ZN5S86C53v87Ev();
extern void _ZN5S86C53v88Ev();
extern void _ZN5S86C53v89Ev();
extern void _ZN5S86C53v90Ev();
extern void _ZN5S86C53v91Ev();
extern void _ZN5S86C53v92Ev();
extern void _ZN5S86C53v93Ev();
extern void _ZN5S86C53v94Ev();
extern void _ZN5S86C53v95Ev();
extern void _ZN5S86C53v96Ev();
extern void _ZN5S86C53v97Ev();
extern void _ZN5S86C53v98Ev();
extern void _ZN5S86C53v99Ev();
extern void _ZN5S86C54v100Ev();
extern void _ZN5S86C54v101Ev();
extern void _ZN5S86C54v102Ev();
extern void _ZN5S86C54v103Ev();
extern void _ZN5S86C54v104Ev();
extern void _ZN5S86C54v105Ev();
extern void _ZN5S86C54v106Ev();
extern void _ZN5S86C54v107Ev();
extern void _ZN5S86C54v108Ev();
extern void _ZN5S86C54v109Ev();
extern void _ZN5S86C54v110Ev();
extern void _ZN5S86C54v111Ev();
extern void _ZN5S86C54v112Ev();
extern void _ZN5S86C54v113Ev();
extern void _ZN5S86C54v114Ev();
extern void _ZN5S86C54v115Ev();
extern void _ZN5S86C54v116Ev();
extern void _ZN5S86C54v117Ev();
extern void _ZN5S86C54v118Ev();
extern void _ZN5S86C54v119Ev();
extern void _ZN5S86C54v120Ev();
extern void _ZN5S86C54v121Ev();
extern void _ZN5S86C54v122Ev();
extern void _ZN5S86C54v123Ev();
extern void _ZN5S86C54v124Ev();
extern void _ZN5S86C54v125Ev();
extern void _ZN5S86C54v126Ev();
extern void _ZN5S86C54v127Ev();
extern void _ZN5S86C54v128Ev();
extern void _ZN5S86C54v129Ev();
extern void _ZN5S86C54v130Ev();
extern void _ZN5S86C54v131Ev();
extern void _ZN5S86C54v132Ev();
extern void _ZN5S86C54v133Ev();
extern void _ZN5S86C54v134Ev();
extern void _ZN5S86C54v135Ev();
extern void _ZN5S86C54v136Ev();
extern void _ZN5S86C54v137Ev();
extern void _ZN5S86C54v138Ev();
extern void _ZN5S86C54v139Ev();
extern void _ZN5S86C54v140Ev();
extern void _ZN5S86C54v141Ev();
extern void _ZN5S86C54v142Ev();
extern void _ZN5S86C54v143Ev();
extern void _ZN5S86C54v144Ev();
extern void _ZN5S86C54v145Ev();
extern void _ZN5S86C44v146Ev();
extern void _ZN5S86C44v147Ev();
extern void _ZN5S86C44v148Ev();
extern void _ZN5S86C44v149Ev();
extern void _ZN5S86C44v150Ev();
extern void _ZN5S86C44v151Ev();
extern void _ZN5S86C44v152Ev();
extern void _ZN5S86C44v153Ev();
extern void _ZN5S86C44v154Ev();
extern void _ZN5S86C44v155Ev();
extern void _ZN5S86C44v156Ev();
extern void _ZN5S86C44v157Ev();
extern void _ZN5S86C44v158Ev();
extern void _ZN5S86C44v159Ev();
extern void _ZN5S86C44v160Ev();
extern void _ZN5S86C44v161Ev();
extern void _ZN5S86C44v162Ev();
extern void _ZN5S86C44v163Ev();
extern void _ZN5S86C44v164Ev();
extern void _ZN5S86C44v165Ev();
extern void _ZN5S86C44v166Ev();
extern void _ZN5S86C44v167Ev();
extern void _ZN5S86C44v168Ev();
extern void _ZN5S86C44v169Ev();
extern void _ZN5S86C44v170Ev();
extern void _ZN5S86C44v171Ev();
extern void _ZN5S86C44v172Ev();
extern void _ZN5S86C44v173Ev();
extern void _ZN5S86C44v174Ev();
extern void _ZN5S86C44v175Ev();
extern void _ZN5S86C44v176Ev();
extern void _ZN5S86C44v177Ev();
extern void _ZN5S86C44v178Ev();
extern void _ZN5S86C44v179Ev();
extern void _ZN5S86C44v180Ev();
extern void _ZN5S86C44v181Ev();
extern void _ZN5S86C44v182Ev();
extern void _ZN5S86C44v183Ev();
extern void _ZN5S86C44v184Ev();
extern void _ZN5S86C34v185Ev();
extern void _ZN5S86C34v186Ev();
extern void _ZN5S86C34v187Ev();
extern void _ZN5S86C34v188Ev();
extern void _ZN5S86C34v189Ev();
extern void _ZN5S86C34v190Ev();
extern void _ZN5S86C34v191Ev();
extern void _ZN5S86C34v192Ev();
extern void _ZN5S86C34v193Ev();
extern void _ZN5S86C34v194Ev();
extern void _ZN5S86C34v195Ev();
extern void _ZN5S86C34v196Ev();
extern void _ZN5S86C34v197Ev();
extern void _ZN5S86C34v198Ev();
extern void _ZN5S86C34v199Ev();
extern void _ZN5S86C34v200Ev();
extern void _ZN5S86C34v201Ev();
extern void _ZN5S86C34v202Ev();
extern void _ZN5S86C34v203Ev();
extern void _ZN5S86C34v204Ev();
extern void _ZN5S86C34v205Ev();
extern void _ZN5S86C34v206Ev();
extern void _ZN5S86C34v207Ev();
extern void _ZN5S86C24v208Ev();
extern void _ZN5S86C24v209Ev();
extern void _ZN5S86C12v1Ev();
extern void _ZN5S86C12v2Ev();
extern void _ZN5S86C12v3Ev();
static  VTBL_ENTRY vtc_S86C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S86C1[0]),
  (VTBL_ENTRY)&_ZN5S86C1D1Ev,
  (VTBL_ENTRY)&_ZN5S86C1D0Ev,
  (VTBL_ENTRY)&_ZN5S86C72v4Ev,
  (VTBL_ENTRY)&_ZN5S86C72v5Ev,
  (VTBL_ENTRY)&_ZN5S86C72v6Ev,
  (VTBL_ENTRY)&_ZN5S86C72v7Ev,
  (VTBL_ENTRY)&_ZN5S86C72v8Ev,
  (VTBL_ENTRY)&_ZN5S86C72v9Ev,
  (VTBL_ENTRY)&_ZN5S86C73v10Ev,
  (VTBL_ENTRY)&_ZN5S86C73v11Ev,
  (VTBL_ENTRY)&_ZN5S86C73v12Ev,
  (VTBL_ENTRY)&_ZN5S86C73v13Ev,
  (VTBL_ENTRY)&_ZN5S86C73v14Ev,
  (VTBL_ENTRY)&_ZN5S86C73v15Ev,
  (VTBL_ENTRY)&_ZN5S86C73v16Ev,
  (VTBL_ENTRY)&_ZN5S86C73v17Ev,
  (VTBL_ENTRY)&_ZN5S86C73v18Ev,
  (VTBL_ENTRY)&_ZN5S86C73v19Ev,
  (VTBL_ENTRY)&_ZN5S86C73v20Ev,
  (VTBL_ENTRY)&_ZN5S86C73v21Ev,
  (VTBL_ENTRY)&_ZN5S86C73v22Ev,
  (VTBL_ENTRY)&_ZN5S86C73v23Ev,
  (VTBL_ENTRY)&_ZN5S86C73v24Ev,
  (VTBL_ENTRY)&_ZN5S86C73v25Ev,
  (VTBL_ENTRY)&_ZN5S86C73v26Ev,
  (VTBL_ENTRY)&_ZN5S86C73v27Ev,
  (VTBL_ENTRY)&_ZN5S86C73v28Ev,
  (VTBL_ENTRY)&_ZN5S86C73v29Ev,
  (VTBL_ENTRY)&_ZN5S86C73v30Ev,
  (VTBL_ENTRY)&_ZN5S86C73v31Ev,
  (VTBL_ENTRY)&_ZN5S86C73v32Ev,
  (VTBL_ENTRY)&_ZN5S86C73v33Ev,
  (VTBL_ENTRY)&_ZN5S86C73v34Ev,
  (VTBL_ENTRY)&_ZN5S86C73v35Ev,
  (VTBL_ENTRY)&_ZN5S86C73v36Ev,
  (VTBL_ENTRY)&_ZN5S86C73v37Ev,
  (VTBL_ENTRY)&_ZN5S86C73v38Ev,
  (VTBL_ENTRY)&_ZN5S86C73v39Ev,
  (VTBL_ENTRY)&_ZN5S86C73v40Ev,
  (VTBL_ENTRY)&_ZN5S86C73v41Ev,
  (VTBL_ENTRY)&_ZN5S86C73v42Ev,
  (VTBL_ENTRY)&_ZN5S86C73v43Ev,
  (VTBL_ENTRY)&_ZN5S86C73v44Ev,
  (VTBL_ENTRY)&_ZN5S86C73v45Ev,
  (VTBL_ENTRY)&_ZN5S86C73v46Ev,
  (VTBL_ENTRY)&_ZN5S86C73v47Ev,
  (VTBL_ENTRY)&_ZN5S86C73v48Ev,
  (VTBL_ENTRY)&_ZN5S86C73v49Ev,
  (VTBL_ENTRY)&_ZN5S86C73v50Ev,
  (VTBL_ENTRY)&_ZN5S86C73v51Ev,
  (VTBL_ENTRY)&_ZN5S86C73v52Ev,
  (VTBL_ENTRY)&_ZN5S86C73v53Ev,
  (VTBL_ENTRY)&_ZN5S86C73v54Ev,
  (VTBL_ENTRY)&_ZN5S86C73v55Ev,
  (VTBL_ENTRY)&_ZN5S86C73v56Ev,
  (VTBL_ENTRY)&_ZN5S86C73v57Ev,
  (VTBL_ENTRY)&_ZN5S86C73v58Ev,
  (VTBL_ENTRY)&_ZN5S86C73v59Ev,
  (VTBL_ENTRY)&_ZN5S86C73v60Ev,
  (VTBL_ENTRY)&_ZN5S86C73v61Ev,
  (VTBL_ENTRY)&_ZN5S86C73v62Ev,
  (VTBL_ENTRY)&_ZN5S86C73v63Ev,
  (VTBL_ENTRY)&_ZN5S86C73v64Ev,
  (VTBL_ENTRY)&_ZN5S86C73v65Ev,
  (VTBL_ENTRY)&_ZN5S86C73v66Ev,
  (VTBL_ENTRY)&_ZN5S86C73v67Ev,
  (VTBL_ENTRY)&_ZN5S86C63v68Ev,
  (VTBL_ENTRY)&_ZN5S86C63v69Ev,
  (VTBL_ENTRY)&_ZN5S86C53v70Ev,
  (VTBL_ENTRY)&_ZN5S86C53v71Ev,
  (VTBL_ENTRY)&_ZN5S86C53v72Ev,
  (VTBL_ENTRY)&_ZN5S86C53v73Ev,
  (VTBL_ENTRY)&_ZN5S86C53v74Ev,
  (VTBL_ENTRY)&_ZN5S86C53v75Ev,
  (VTBL_ENTRY)&_ZN5S86C53v76Ev,
  (VTBL_ENTRY)&_ZN5S86C53v77Ev,
  (VTBL_ENTRY)&_ZN5S86C53v78Ev,
  (VTBL_ENTRY)&_ZN5S86C53v79Ev,
  (VTBL_ENTRY)&_ZN5S86C53v80Ev,
  (VTBL_ENTRY)&_ZN5S86C53v81Ev,
  (VTBL_ENTRY)&_ZN5S86C53v82Ev,
  (VTBL_ENTRY)&_ZN5S86C53v83Ev,
  (VTBL_ENTRY)&_ZN5S86C53v84Ev,
  (VTBL_ENTRY)&_ZN5S86C53v85Ev,
  (VTBL_ENTRY)&_ZN5S86C53v86Ev,
  (VTBL_ENTRY)&_ZN5S86C53v87Ev,
  (VTBL_ENTRY)&_ZN5S86C53v88Ev,
  (VTBL_ENTRY)&_ZN5S86C53v89Ev,
  (VTBL_ENTRY)&_ZN5S86C53v90Ev,
  (VTBL_ENTRY)&_ZN5S86C53v91Ev,
  (VTBL_ENTRY)&_ZN5S86C53v92Ev,
  (VTBL_ENTRY)&_ZN5S86C53v93Ev,
  (VTBL_ENTRY)&_ZN5S86C53v94Ev,
  (VTBL_ENTRY)&_ZN5S86C53v95Ev,
  (VTBL_ENTRY)&_ZN5S86C53v96Ev,
  (VTBL_ENTRY)&_ZN5S86C53v97Ev,
  (VTBL_ENTRY)&_ZN5S86C53v98Ev,
  (VTBL_ENTRY)&_ZN5S86C53v99Ev,
  (VTBL_ENTRY)&_ZN5S86C54v100Ev,
  (VTBL_ENTRY)&_ZN5S86C54v101Ev,
  (VTBL_ENTRY)&_ZN5S86C54v102Ev,
  (VTBL_ENTRY)&_ZN5S86C54v103Ev,
  (VTBL_ENTRY)&_ZN5S86C54v104Ev,
  (VTBL_ENTRY)&_ZN5S86C54v105Ev,
  (VTBL_ENTRY)&_ZN5S86C54v106Ev,
  (VTBL_ENTRY)&_ZN5S86C54v107Ev,
  (VTBL_ENTRY)&_ZN5S86C54v108Ev,
  (VTBL_ENTRY)&_ZN5S86C54v109Ev,
  (VTBL_ENTRY)&_ZN5S86C54v110Ev,
  (VTBL_ENTRY)&_ZN5S86C54v111Ev,
  (VTBL_ENTRY)&_ZN5S86C54v112Ev,
  (VTBL_ENTRY)&_ZN5S86C54v113Ev,
  (VTBL_ENTRY)&_ZN5S86C54v114Ev,
  (VTBL_ENTRY)&_ZN5S86C54v115Ev,
  (VTBL_ENTRY)&_ZN5S86C54v116Ev,
  (VTBL_ENTRY)&_ZN5S86C54v117Ev,
  (VTBL_ENTRY)&_ZN5S86C54v118Ev,
  (VTBL_ENTRY)&_ZN5S86C54v119Ev,
  (VTBL_ENTRY)&_ZN5S86C54v120Ev,
  (VTBL_ENTRY)&_ZN5S86C54v121Ev,
  (VTBL_ENTRY)&_ZN5S86C54v122Ev,
  (VTBL_ENTRY)&_ZN5S86C54v123Ev,
  (VTBL_ENTRY)&_ZN5S86C54v124Ev,
  (VTBL_ENTRY)&_ZN5S86C54v125Ev,
  (VTBL_ENTRY)&_ZN5S86C54v126Ev,
  (VTBL_ENTRY)&_ZN5S86C54v127Ev,
  (VTBL_ENTRY)&_ZN5S86C54v128Ev,
  (VTBL_ENTRY)&_ZN5S86C54v129Ev,
  (VTBL_ENTRY)&_ZN5S86C54v130Ev,
  (VTBL_ENTRY)&_ZN5S86C54v131Ev,
  (VTBL_ENTRY)&_ZN5S86C54v132Ev,
  (VTBL_ENTRY)&_ZN5S86C54v133Ev,
  (VTBL_ENTRY)&_ZN5S86C54v134Ev,
  (VTBL_ENTRY)&_ZN5S86C54v135Ev,
  (VTBL_ENTRY)&_ZN5S86C54v136Ev,
  (VTBL_ENTRY)&_ZN5S86C54v137Ev,
  (VTBL_ENTRY)&_ZN5S86C54v138Ev,
  (VTBL_ENTRY)&_ZN5S86C54v139Ev,
  (VTBL_ENTRY)&_ZN5S86C54v140Ev,
  (VTBL_ENTRY)&_ZN5S86C54v141Ev,
  (VTBL_ENTRY)&_ZN5S86C54v142Ev,
  (VTBL_ENTRY)&_ZN5S86C54v143Ev,
  (VTBL_ENTRY)&_ZN5S86C54v144Ev,
  (VTBL_ENTRY)&_ZN5S86C54v145Ev,
  (VTBL_ENTRY)&_ZN5S86C44v146Ev,
  (VTBL_ENTRY)&_ZN5S86C44v147Ev,
  (VTBL_ENTRY)&_ZN5S86C44v148Ev,
  (VTBL_ENTRY)&_ZN5S86C44v149Ev,
  (VTBL_ENTRY)&_ZN5S86C44v150Ev,
  (VTBL_ENTRY)&_ZN5S86C44v151Ev,
  (VTBL_ENTRY)&_ZN5S86C44v152Ev,
  (VTBL_ENTRY)&_ZN5S86C44v153Ev,
  (VTBL_ENTRY)&_ZN5S86C44v154Ev,
  (VTBL_ENTRY)&_ZN5S86C44v155Ev,
  (VTBL_ENTRY)&_ZN5S86C44v156Ev,
  (VTBL_ENTRY)&_ZN5S86C44v157Ev,
  (VTBL_ENTRY)&_ZN5S86C44v158Ev,
  (VTBL_ENTRY)&_ZN5S86C44v159Ev,
  (VTBL_ENTRY)&_ZN5S86C44v160Ev,
  (VTBL_ENTRY)&_ZN5S86C44v161Ev,
  (VTBL_ENTRY)&_ZN5S86C44v162Ev,
  (VTBL_ENTRY)&_ZN5S86C44v163Ev,
  (VTBL_ENTRY)&_ZN5S86C44v164Ev,
  (VTBL_ENTRY)&_ZN5S86C44v165Ev,
  (VTBL_ENTRY)&_ZN5S86C44v166Ev,
  (VTBL_ENTRY)&_ZN5S86C44v167Ev,
  (VTBL_ENTRY)&_ZN5S86C44v168Ev,
  (VTBL_ENTRY)&_ZN5S86C44v169Ev,
  (VTBL_ENTRY)&_ZN5S86C44v170Ev,
  (VTBL_ENTRY)&_ZN5S86C44v171Ev,
  (VTBL_ENTRY)&_ZN5S86C44v172Ev,
  (VTBL_ENTRY)&_ZN5S86C44v173Ev,
  (VTBL_ENTRY)&_ZN5S86C44v174Ev,
  (VTBL_ENTRY)&_ZN5S86C44v175Ev,
  (VTBL_ENTRY)&_ZN5S86C44v176Ev,
  (VTBL_ENTRY)&_ZN5S86C44v177Ev,
  (VTBL_ENTRY)&_ZN5S86C44v178Ev,
  (VTBL_ENTRY)&_ZN5S86C44v179Ev,
  (VTBL_ENTRY)&_ZN5S86C44v180Ev,
  (VTBL_ENTRY)&_ZN5S86C44v181Ev,
  (VTBL_ENTRY)&_ZN5S86C44v182Ev,
  (VTBL_ENTRY)&_ZN5S86C44v183Ev,
  (VTBL_ENTRY)&_ZN5S86C44v184Ev,
  (VTBL_ENTRY)&_ZN5S86C34v185Ev,
  (VTBL_ENTRY)&_ZN5S86C34v186Ev,
  (VTBL_ENTRY)&_ZN5S86C34v187Ev,
  (VTBL_ENTRY)&_ZN5S86C34v188Ev,
  (VTBL_ENTRY)&_ZN5S86C34v189Ev,
  (VTBL_ENTRY)&_ZN5S86C34v190Ev,
  (VTBL_ENTRY)&_ZN5S86C34v191Ev,
  (VTBL_ENTRY)&_ZN5S86C34v192Ev,
  (VTBL_ENTRY)&_ZN5S86C34v193Ev,
  (VTBL_ENTRY)&_ZN5S86C34v194Ev,
  (VTBL_ENTRY)&_ZN5S86C34v195Ev,
  (VTBL_ENTRY)&_ZN5S86C34v196Ev,
  (VTBL_ENTRY)&_ZN5S86C34v197Ev,
  (VTBL_ENTRY)&_ZN5S86C34v198Ev,
  (VTBL_ENTRY)&_ZN5S86C34v199Ev,
  (VTBL_ENTRY)&_ZN5S86C34v200Ev,
  (VTBL_ENTRY)&_ZN5S86C34v201Ev,
  (VTBL_ENTRY)&_ZN5S86C34v202Ev,
  (VTBL_ENTRY)&_ZN5S86C34v203Ev,
  (VTBL_ENTRY)&_ZN5S86C34v204Ev,
  (VTBL_ENTRY)&_ZN5S86C34v205Ev,
  (VTBL_ENTRY)&_ZN5S86C34v206Ev,
  (VTBL_ENTRY)&_ZN5S86C34v207Ev,
  (VTBL_ENTRY)&_ZN5S86C24v208Ev,
  (VTBL_ENTRY)&_ZN5S86C24v209Ev,
  (VTBL_ENTRY)&_ZN5S86C12v1Ev,
  (VTBL_ENTRY)&_ZN5S86C12v2Ev,
  (VTBL_ENTRY)&_ZN5S86C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S86C1[];
extern  VTBL_ENTRY _ZTV5S86C1[];
Class_Descriptor cd_S86C1 = {  "S86C1", // class name
  bases_S86C1, 6,
  &(vtc_S86C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(1144,760), // object size
  NSPAIRA(_ZTI5S86C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S86C1),213, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C7  {
  int s82c7f0;
  __tsi64 s82c7f1;
  void *s82c7f2[4];
  int s82c7f3[2];
  void *s82c7f4;
  ::S85C27_nt s82c7f5;
  void *s82c7f6[2];
  virtual  ~S82C7(); // _ZN5S82C7D1Ev
  virtual void  v4(); // _ZN5S82C72v4Ev
  virtual void  v5(); // _ZN5S82C72v5Ev
  virtual void  v6(); // _ZN5S82C72v6Ev
  virtual void  v7(); // _ZN5S82C72v7Ev
  virtual void  v8(); // _ZN5S82C72v8Ev
  virtual void  v9(); // _ZN5S82C72v9Ev
  virtual void  v10(); // _ZN5S82C73v10Ev
  virtual void  v11(); // _ZN5S82C73v11Ev
  virtual void  v12(); // _ZN5S82C73v12Ev
  virtual void  v13(); // _ZN5S82C73v13Ev
  virtual void  v14(); // _ZN5S82C73v14Ev
  virtual void  v15(); // _ZN5S82C73v15Ev
  virtual void  v16(); // _ZN5S82C73v16Ev
  virtual void  v17(); // _ZN5S82C73v17Ev
  virtual void  v18(); // _ZN5S82C73v18Ev
  virtual void  v19(); // _ZN5S82C73v19Ev
  virtual void  v20(); // _ZN5S82C73v20Ev
  virtual void  v21(); // _ZN5S82C73v21Ev
  virtual void  v22(); // _ZN5S82C73v22Ev
  virtual void  v23(); // _ZN5S82C73v23Ev
  virtual void  v24(); // _ZN5S82C73v24Ev
  virtual void  v25(); // _ZN5S82C73v25Ev
  virtual void  v26(); // _ZN5S82C73v26Ev
  virtual void  v27(); // _ZN5S82C73v27Ev
  virtual void  v28(); // _ZN5S82C73v28Ev
  virtual void  v29(); // _ZN5S82C73v29Ev
  virtual void  v30(); // _ZN5S82C73v30Ev
  virtual void  v31(); // _ZN5S82C73v31Ev
  virtual void  v32(); // _ZN5S82C73v32Ev
  virtual void  v33(); // _ZN5S82C73v33Ev
  virtual void  v34(); // _ZN5S82C73v34Ev
  virtual void  v35(); // _ZN5S82C73v35Ev
  virtual void  v36(); // _ZN5S82C73v36Ev
  virtual void  v37(); // _ZN5S82C73v37Ev
  virtual void  v38(); // _ZN5S82C73v38Ev
  virtual void  v39(); // _ZN5S82C73v39Ev
  virtual void  v40(); // _ZN5S82C73v40Ev
  virtual void  v41(); // _ZN5S82C73v41Ev
  virtual void  v42(); // _ZN5S82C73v42Ev
  virtual void  v43(); // _ZN5S82C73v43Ev
  virtual void  v44(); // _ZN5S82C73v44Ev
  virtual void  v45(); // _ZN5S82C73v45Ev
  virtual void  v46(); // _ZN5S82C73v46Ev
  virtual void  v47(); // _ZN5S82C73v47Ev
  virtual void  v48(); // _ZN5S82C73v48Ev
  virtual void  v49(); // _ZN5S82C73v49Ev
  virtual void  v50(); // _ZN5S82C73v50Ev
  virtual void  v51(); // _ZN5S82C73v51Ev
  virtual void  v52(); // _ZN5S82C73v52Ev
  virtual void  v53(); // _ZN5S82C73v53Ev
  virtual void  v54(); // _ZN5S82C73v54Ev
  virtual void  v55(); // _ZN5S82C73v55Ev
  virtual void  v56(); // _ZN5S82C73v56Ev
  virtual void  v57(); // _ZN5S82C73v57Ev
  virtual void  v58(); // _ZN5S82C73v58Ev
  virtual void  v59(); // _ZN5S82C73v59Ev
  virtual void  v60(); // _ZN5S82C73v60Ev
  virtual void  v61(); // _ZN5S82C73v61Ev
  virtual void  v62(); // _ZN5S82C73v62Ev
  virtual void  v63(); // _ZN5S82C73v63Ev
  virtual void  v64(); // _ZN5S82C73v64Ev
  virtual void  v65(); // _ZN5S82C73v65Ev
  virtual void  v66(); // _ZN5S82C73v66Ev
  virtual void  v67(); // _ZN5S82C73v67Ev
  S82C7(); // tgen
};
//SIG(-1 S82C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S82C7 ::~S82C7(){ note_dtor("S82C7", this);}
void  S82C7 ::v4(){vfunc_called(this, "_ZN5S82C72v4Ev");}
void  S82C7 ::v5(){vfunc_called(this, "_ZN5S82C72v5Ev");}
void  S82C7 ::v6(){vfunc_called(this, "_ZN5S82C72v6Ev");}
void  S82C7 ::v7(){vfunc_called(this, "_ZN5S82C72v7Ev");}
void  S82C7 ::v8(){vfunc_called(this, "_ZN5S82C72v8Ev");}
void  S82C7 ::v9(){vfunc_called(this, "_ZN5S82C72v9Ev");}
void  S82C7 ::v10(){vfunc_called(this, "_ZN5S82C73v10Ev");}
void  S82C7 ::v11(){vfunc_called(this, "_ZN5S82C73v11Ev");}
void  S82C7 ::v12(){vfunc_called(this, "_ZN5S82C73v12Ev");}
void  S82C7 ::v13(){vfunc_called(this, "_ZN5S82C73v13Ev");}
void  S82C7 ::v14(){vfunc_called(this, "_ZN5S82C73v14Ev");}
void  S82C7 ::v15(){vfunc_called(this, "_ZN5S82C73v15Ev");}
void  S82C7 ::v16(){vfunc_called(this, "_ZN5S82C73v16Ev");}
void  S82C7 ::v17(){vfunc_called(this, "_ZN5S82C73v17Ev");}
void  S82C7 ::v18(){vfunc_called(this, "_ZN5S82C73v18Ev");}
void  S82C7 ::v19(){vfunc_called(this, "_ZN5S82C73v19Ev");}
void  S82C7 ::v20(){vfunc_called(this, "_ZN5S82C73v20Ev");}
void  S82C7 ::v21(){vfunc_called(this, "_ZN5S82C73v21Ev");}
void  S82C7 ::v22(){vfunc_called(this, "_ZN5S82C73v22Ev");}
void  S82C7 ::v23(){vfunc_called(this, "_ZN5S82C73v23Ev");}
void  S82C7 ::v24(){vfunc_called(this, "_ZN5S82C73v24Ev");}
void  S82C7 ::v25(){vfunc_called(this, "_ZN5S82C73v25Ev");}
void  S82C7 ::v26(){vfunc_called(this, "_ZN5S82C73v26Ev");}
void  S82C7 ::v27(){vfunc_called(this, "_ZN5S82C73v27Ev");}
void  S82C7 ::v28(){vfunc_called(this, "_ZN5S82C73v28Ev");}
void  S82C7 ::v29(){vfunc_called(this, "_ZN5S82C73v29Ev");}
void  S82C7 ::v30(){vfunc_called(this, "_ZN5S82C73v30Ev");}
void  S82C7 ::v31(){vfunc_called(this, "_ZN5S82C73v31Ev");}
void  S82C7 ::v32(){vfunc_called(this, "_ZN5S82C73v32Ev");}
void  S82C7 ::v33(){vfunc_called(this, "_ZN5S82C73v33Ev");}
void  S82C7 ::v34(){vfunc_called(this, "_ZN5S82C73v34Ev");}
void  S82C7 ::v35(){vfunc_called(this, "_ZN5S82C73v35Ev");}
void  S82C7 ::v36(){vfunc_called(this, "_ZN5S82C73v36Ev");}
void  S82C7 ::v37(){vfunc_called(this, "_ZN5S82C73v37Ev");}
void  S82C7 ::v38(){vfunc_called(this, "_ZN5S82C73v38Ev");}
void  S82C7 ::v39(){vfunc_called(this, "_ZN5S82C73v39Ev");}
void  S82C7 ::v40(){vfunc_called(this, "_ZN5S82C73v40Ev");}
void  S82C7 ::v41(){vfunc_called(this, "_ZN5S82C73v41Ev");}
void  S82C7 ::v42(){vfunc_called(this, "_ZN5S82C73v42Ev");}
void  S82C7 ::v43(){vfunc_called(this, "_ZN5S82C73v43Ev");}
void  S82C7 ::v44(){vfunc_called(this, "_ZN5S82C73v44Ev");}
void  S82C7 ::v45(){vfunc_called(this, "_ZN5S82C73v45Ev");}
void  S82C7 ::v46(){vfunc_called(this, "_ZN5S82C73v46Ev");}
void  S82C7 ::v47(){vfunc_called(this, "_ZN5S82C73v47Ev");}
void  S82C7 ::v48(){vfunc_called(this, "_ZN5S82C73v48Ev");}
void  S82C7 ::v49(){vfunc_called(this, "_ZN5S82C73v49Ev");}
void  S82C7 ::v50(){vfunc_called(this, "_ZN5S82C73v50Ev");}
void  S82C7 ::v51(){vfunc_called(this, "_ZN5S82C73v51Ev");}
void  S82C7 ::v52(){vfunc_called(this, "_ZN5S82C73v52Ev");}
void  S82C7 ::v53(){vfunc_called(this, "_ZN5S82C73v53Ev");}
void  S82C7 ::v54(){vfunc_called(this, "_ZN5S82C73v54Ev");}
void  S82C7 ::v55(){vfunc_called(this, "_ZN5S82C73v55Ev");}
void  S82C7 ::v56(){vfunc_called(this, "_ZN5S82C73v56Ev");}
void  S82C7 ::v57(){vfunc_called(this, "_ZN5S82C73v57Ev");}
void  S82C7 ::v58(){vfunc_called(this, "_ZN5S82C73v58Ev");}
void  S82C7 ::v59(){vfunc_called(this, "_ZN5S82C73v59Ev");}
void  S82C7 ::v60(){vfunc_called(this, "_ZN5S82C73v60Ev");}
void  S82C7 ::v61(){vfunc_called(this, "_ZN5S82C73v61Ev");}
void  S82C7 ::v62(){vfunc_called(this, "_ZN5S82C73v62Ev");}
void  S82C7 ::v63(){vfunc_called(this, "_ZN5S82C73v63Ev");}
void  S82C7 ::v64(){vfunc_called(this, "_ZN5S82C73v64Ev");}
void  S82C7 ::v65(){vfunc_called(this, "_ZN5S82C73v65Ev");}
void  S82C7 ::v66(){vfunc_called(this, "_ZN5S82C73v66Ev");}
void  S82C7 ::v67(){vfunc_called(this, "_ZN5S82C73v67Ev");}
S82C7 ::S82C7(){ note_ctor("S82C7", this);} // tgen

static void Test_S82C7()
{
  extern Class_Descriptor cd_S82C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S82C7, buf);
    S82C7 *dp, &lv = *(dp=new (buf) S82C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S82C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C7)");
    check_field_offset(lv, s82c7f0, ABISELECT(8,4), "S82C7.s82c7f0");
    check_field_offset(lv, s82c7f1, ABISELECT(16,8), "S82C7.s82c7f1");
    check_field_offset(lv, s82c7f2, ABISELECT(24,16), "S82C7.s82c7f2");
    check_field_offset(lv, s82c7f3, ABISELECT(56,32), "S82C7.s82c7f3");
    check_field_offset(lv, s82c7f4, ABISELECT(64,40), "S82C7.s82c7f4");
    check_field_offset(lv, s82c7f5, ABISELECT(72,44), "S82C7.s82c7f5");
    check_field_offset(lv, s82c7f6, ABISELECT(80,52), "S82C7.s82c7f6");
    test_class_info(&lv, &cd_S82C7);
    dp->~S82C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C7(Test_S82C7, "S82C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S82C7C1Ev();
extern void _ZN5S82C7D1Ev();
Name_Map name_map_S82C7[] = {
  NSPAIR(_ZN5S82C7C1Ev),
  NSPAIR(_ZN5S82C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S82C7[];
extern void _ZN5S82C7D1Ev();
extern void _ZN5S82C7D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
static  VTBL_ENTRY vtc_S82C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C7[0]),
  (VTBL_ENTRY)&_ZN5S82C7D1Ev,
  (VTBL_ENTRY)&_ZN5S82C7D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
};
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
Class_Descriptor cd_S82C7 = {  "S82C7", // class name
  0,0,//no base classes
  &(vtc_S82C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S82C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S82C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C6  : S82C7 {
  virtual  ~S82C6(); // _ZN5S82C6D1Ev
  virtual void  v68(); // _ZN5S82C63v68Ev
  virtual void  v69(); // _ZN5S82C63v69Ev
  S82C6(); // tgen
};
//SIG(-1 S82C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S82C6 ::~S82C6(){ note_dtor("S82C6", this);}
void  S82C6 ::v68(){vfunc_called(this, "_ZN5S82C63v68Ev");}
void  S82C6 ::v69(){vfunc_called(this, "_ZN5S82C63v69Ev");}
S82C6 ::S82C6(){ note_ctor("S82C6", this);} // tgen

static void Test_S82C6()
{
  extern Class_Descriptor cd_S82C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S82C6, buf);
    S82C6 *dp, &lv = *(dp=new (buf) S82C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S82C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C6)");
    check_base_class_offset(lv, (S82C7*), 0, "S82C6");
    test_class_info(&lv, &cd_S82C6);
    dp->~S82C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C6(Test_S82C6, "S82C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S82C6C1Ev();
extern void _ZN5S82C6D1Ev();
Name_Map name_map_S82C6[] = {
  NSPAIR(_ZN5S82C6C1Ev),
  NSPAIR(_ZN5S82C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S82C7;
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
static Base_Class bases_S82C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S82C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S82C6[];
extern void _ZN5S82C6D1Ev();
extern void _ZN5S82C6D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
extern void _ZN5S82C63v68Ev();
extern void _ZN5S82C63v69Ev();
static  VTBL_ENTRY vtc_S82C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C6[0]),
  (VTBL_ENTRY)&_ZN5S82C6D1Ev,
  (VTBL_ENTRY)&_ZN5S82C6D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
  (VTBL_ENTRY)&_ZN5S82C63v68Ev,
  (VTBL_ENTRY)&_ZN5S82C63v69Ev,
};
extern VTBL_ENTRY _ZTI5S82C6[];
extern  VTBL_ENTRY _ZTV5S82C6[];
Class_Descriptor cd_S82C6 = {  "S82C6", // class name
  bases_S82C6, 1,
  &(vtc_S82C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S82C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S82C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C5  : S82C6 {
  ::S80C9_nt s82c5f0;
  int s82c5f1;
  unsigned int s82c5f2:1;
  unsigned int s82c5f3:1;
  unsigned int s82c5f4:1;
  unsigned int s82c5f5:1;
  ::S85C35 s82c5f6;
  ::S85C22_nt s82c5f7;
  void *s82c5f8;
  ::S80C31 s82c5f9;
  ::S80C31 s82c5f10;
  ::S80C29 s82c5f11;
  ::S80C19 s82c5f12;
  char s82c5f13;
  int s82c5f14;
  void *s82c5f15;
  ::S85C27_nt s82c5f16;
  ::S85C27_nt s82c5f17;
  ::S85C27_nt s82c5f18;
  ::S85C27_nt s82c5f19;
  ::S85C27_nt s82c5f20;
  ::S85C27_nt s82c5f21;
  ::S80C21_nt s82c5f22;
  ::S80C21_nt s82c5f23;
  ::S80C21_nt s82c5f24;
  ::S80C21_nt s82c5f25;
  ::S80C21_nt s82c5f26;
  ::S80C21_nt s82c5f27;
  ::S80C21_nt s82c5f28;
  ::S80C21_nt s82c5f29;
  ::S80C21_nt s82c5f30;
  ::S80C21_nt s82c5f31;
  virtual  ~S82C5(); // _ZN5S82C5D1Ev
  virtual void  v70(); // _ZN5S82C53v70Ev
  virtual void  v71(); // _ZN5S82C53v71Ev
  virtual void  v72(); // _ZN5S82C53v72Ev
  virtual void  v73(); // _ZN5S82C53v73Ev
  virtual void  v74(); // _ZN5S82C53v74Ev
  virtual void  v75(); // _ZN5S82C53v75Ev
  virtual void  v76(); // _ZN5S82C53v76Ev
  virtual void  v77(); // _ZN5S82C53v77Ev
  virtual void  v78(); // _ZN5S82C53v78Ev
  virtual void  v79(); // _ZN5S82C53v79Ev
  virtual void  v80(); // _ZN5S82C53v80Ev
  virtual void  v81(); // _ZN5S82C53v81Ev
  virtual void  v82(); // _ZN5S82C53v82Ev
  virtual void  v83(); // _ZN5S82C53v83Ev
  virtual void  v84(); // _ZN5S82C53v84Ev
  virtual void  v85(); // _ZN5S82C53v85Ev
  virtual void  v86(); // _ZN5S82C53v86Ev
  virtual void  v87(); // _ZN5S82C53v87Ev
  virtual void  v88(); // _ZN5S82C53v88Ev
  virtual void  v89(); // _ZN5S82C53v89Ev
  virtual void  v90(); // _ZN5S82C53v90Ev
  virtual void  v91(); // _ZN5S82C53v91Ev
  virtual void  v92(); // _ZN5S82C53v92Ev
  virtual void  v93(); // _ZN5S82C53v93Ev
  virtual void  v94(); // _ZN5S82C53v94Ev
  virtual void  v95(); // _ZN5S82C53v95Ev
  virtual void  v96(); // _ZN5S82C53v96Ev
  virtual void  v97(); // _ZN5S82C53v97Ev
  virtual void  v98(); // _ZN5S82C53v98Ev
  virtual void  v99(); // _ZN5S82C53v99Ev
  virtual void  v100(); // _ZN5S82C54v100Ev
  virtual void  v101(); // _ZN5S82C54v101Ev
  virtual void  v102(); // _ZN5S82C54v102Ev
  virtual void  v103(); // _ZN5S82C54v103Ev
  virtual void  v104(); // _ZN5S82C54v104Ev
  virtual void  v105(); // _ZN5S82C54v105Ev
  virtual void  v106(); // _ZN5S82C54v106Ev
  virtual void  v107(); // _ZN5S82C54v107Ev
  virtual void  v108(); // _ZN5S82C54v108Ev
  virtual void  v109(); // _ZN5S82C54v109Ev
  virtual void  v110(); // _ZN5S82C54v110Ev
  virtual void  v111(); // _ZN5S82C54v111Ev
  virtual void  v112(); // _ZN5S82C54v112Ev
  virtual void  v113(); // _ZN5S82C54v113Ev
  virtual void  v114(); // _ZN5S82C54v114Ev
  virtual void  v115(); // _ZN5S82C54v115Ev
  virtual void  v116(); // _ZN5S82C54v116Ev
  virtual void  v117(); // _ZN5S82C54v117Ev
  virtual void  v118(); // _ZN5S82C54v118Ev
  virtual void  v119(); // _ZN5S82C54v119Ev
  virtual void  v120(); // _ZN5S82C54v120Ev
  virtual void  v121(); // _ZN5S82C54v121Ev
  virtual void  v122(); // _ZN5S82C54v122Ev
  virtual void  v123(); // _ZN5S82C54v123Ev
  virtual void  v124(); // _ZN5S82C54v124Ev
  virtual void  v125(); // _ZN5S82C54v125Ev
  virtual void  v126(); // _ZN5S82C54v126Ev
  virtual void  v127(); // _ZN5S82C54v127Ev
  virtual void  v128(); // _ZN5S82C54v128Ev
  virtual void  v129(); // _ZN5S82C54v129Ev
  virtual void  v130(); // _ZN5S82C54v130Ev
  virtual void  v131(); // _ZN5S82C54v131Ev
  virtual void  v132(); // _ZN5S82C54v132Ev
  virtual void  v133(); // _ZN5S82C54v133Ev
  virtual void  v134(); // _ZN5S82C54v134Ev
  virtual void  v135(); // _ZN5S82C54v135Ev
  virtual void  v136(); // _ZN5S82C54v136Ev
  virtual void  v137(); // _ZN5S82C54v137Ev
  virtual void  v138(); // _ZN5S82C54v138Ev
  virtual void  v139(); // _ZN5S82C54v139Ev
  virtual void  v140(); // _ZN5S82C54v140Ev
  virtual void  v141(); // _ZN5S82C54v141Ev
  virtual void  v142(); // _ZN5S82C54v142Ev
  virtual void  v143(); // _ZN5S82C54v143Ev
  virtual void  v144(); // _ZN5S82C54v144Ev
  virtual void  v145(); // _ZN5S82C54v145Ev
  S82C5(); // tgen
};
//SIG(-1 S82C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S82C5 ::~S82C5(){ note_dtor("S82C5", this);}
void  S82C5 ::v70(){vfunc_called(this, "_ZN5S82C53v70Ev");}
void  S82C5 ::v71(){vfunc_called(this, "_ZN5S82C53v71Ev");}
void  S82C5 ::v72(){vfunc_called(this, "_ZN5S82C53v72Ev");}
void  S82C5 ::v73(){vfunc_called(this, "_ZN5S82C53v73Ev");}
void  S82C5 ::v74(){vfunc_called(this, "_ZN5S82C53v74Ev");}
void  S82C5 ::v75(){vfunc_called(this, "_ZN5S82C53v75Ev");}
void  S82C5 ::v76(){vfunc_called(this, "_ZN5S82C53v76Ev");}
void  S82C5 ::v77(){vfunc_called(this, "_ZN5S82C53v77Ev");}
void  S82C5 ::v78(){vfunc_called(this, "_ZN5S82C53v78Ev");}
void  S82C5 ::v79(){vfunc_called(this, "_ZN5S82C53v79Ev");}
void  S82C5 ::v80(){vfunc_called(this, "_ZN5S82C53v80Ev");}
void  S82C5 ::v81(){vfunc_called(this, "_ZN5S82C53v81Ev");}
void  S82C5 ::v82(){vfunc_called(this, "_ZN5S82C53v82Ev");}
void  S82C5 ::v83(){vfunc_called(this, "_ZN5S82C53v83Ev");}
void  S82C5 ::v84(){vfunc_called(this, "_ZN5S82C53v84Ev");}
void  S82C5 ::v85(){vfunc_called(this, "_ZN5S82C53v85Ev");}
void  S82C5 ::v86(){vfunc_called(this, "_ZN5S82C53v86Ev");}
void  S82C5 ::v87(){vfunc_called(this, "_ZN5S82C53v87Ev");}
void  S82C5 ::v88(){vfunc_called(this, "_ZN5S82C53v88Ev");}
void  S82C5 ::v89(){vfunc_called(this, "_ZN5S82C53v89Ev");}
void  S82C5 ::v90(){vfunc_called(this, "_ZN5S82C53v90Ev");}
void  S82C5 ::v91(){vfunc_called(this, "_ZN5S82C53v91Ev");}
void  S82C5 ::v92(){vfunc_called(this, "_ZN5S82C53v92Ev");}
void  S82C5 ::v93(){vfunc_called(this, "_ZN5S82C53v93Ev");}
void  S82C5 ::v94(){vfunc_called(this, "_ZN5S82C53v94Ev");}
void  S82C5 ::v95(){vfunc_called(this, "_ZN5S82C53v95Ev");}
void  S82C5 ::v96(){vfunc_called(this, "_ZN5S82C53v96Ev");}
void  S82C5 ::v97(){vfunc_called(this, "_ZN5S82C53v97Ev");}
void  S82C5 ::v98(){vfunc_called(this, "_ZN5S82C53v98Ev");}
void  S82C5 ::v99(){vfunc_called(this, "_ZN5S82C53v99Ev");}
void  S82C5 ::v100(){vfunc_called(this, "_ZN5S82C54v100Ev");}
void  S82C5 ::v101(){vfunc_called(this, "_ZN5S82C54v101Ev");}
void  S82C5 ::v102(){vfunc_called(this, "_ZN5S82C54v102Ev");}
void  S82C5 ::v103(){vfunc_called(this, "_ZN5S82C54v103Ev");}
void  S82C5 ::v104(){vfunc_called(this, "_ZN5S82C54v104Ev");}
void  S82C5 ::v105(){vfunc_called(this, "_ZN5S82C54v105Ev");}
void  S82C5 ::v106(){vfunc_called(this, "_ZN5S82C54v106Ev");}
void  S82C5 ::v107(){vfunc_called(this, "_ZN5S82C54v107Ev");}
void  S82C5 ::v108(){vfunc_called(this, "_ZN5S82C54v108Ev");}
void  S82C5 ::v109(){vfunc_called(this, "_ZN5S82C54v109Ev");}
void  S82C5 ::v110(){vfunc_called(this, "_ZN5S82C54v110Ev");}
void  S82C5 ::v111(){vfunc_called(this, "_ZN5S82C54v111Ev");}
void  S82C5 ::v112(){vfunc_called(this, "_ZN5S82C54v112Ev");}
void  S82C5 ::v113(){vfunc_called(this, "_ZN5S82C54v113Ev");}
void  S82C5 ::v114(){vfunc_called(this, "_ZN5S82C54v114Ev");}
void  S82C5 ::v115(){vfunc_called(this, "_ZN5S82C54v115Ev");}
void  S82C5 ::v116(){vfunc_called(this, "_ZN5S82C54v116Ev");}
void  S82C5 ::v117(){vfunc_called(this, "_ZN5S82C54v117Ev");}
void  S82C5 ::v118(){vfunc_called(this, "_ZN5S82C54v118Ev");}
void  S82C5 ::v119(){vfunc_called(this, "_ZN5S82C54v119Ev");}
void  S82C5 ::v120(){vfunc_called(this, "_ZN5S82C54v120Ev");}
void  S82C5 ::v121(){vfunc_called(this, "_ZN5S82C54v121Ev");}
void  S82C5 ::v122(){vfunc_called(this, "_ZN5S82C54v122Ev");}
void  S82C5 ::v123(){vfunc_called(this, "_ZN5S82C54v123Ev");}
void  S82C5 ::v124(){vfunc_called(this, "_ZN5S82C54v124Ev");}
void  S82C5 ::v125(){vfunc_called(this, "_ZN5S82C54v125Ev");}
void  S82C5 ::v126(){vfunc_called(this, "_ZN5S82C54v126Ev");}
void  S82C5 ::v127(){vfunc_called(this, "_ZN5S82C54v127Ev");}
void  S82C5 ::v128(){vfunc_called(this, "_ZN5S82C54v128Ev");}
void  S82C5 ::v129(){vfunc_called(this, "_ZN5S82C54v129Ev");}
void  S82C5 ::v130(){vfunc_called(this, "_ZN5S82C54v130Ev");}
void  S82C5 ::v131(){vfunc_called(this, "_ZN5S82C54v131Ev");}
void  S82C5 ::v132(){vfunc_called(this, "_ZN5S82C54v132Ev");}
void  S82C5 ::v133(){vfunc_called(this, "_ZN5S82C54v133Ev");}
void  S82C5 ::v134(){vfunc_called(this, "_ZN5S82C54v134Ev");}
void  S82C5 ::v135(){vfunc_called(this, "_ZN5S82C54v135Ev");}
void  S82C5 ::v136(){vfunc_called(this, "_ZN5S82C54v136Ev");}
void  S82C5 ::v137(){vfunc_called(this, "_ZN5S82C54v137Ev");}
void  S82C5 ::v138(){vfunc_called(this, "_ZN5S82C54v138Ev");}
void  S82C5 ::v139(){vfunc_called(this, "_ZN5S82C54v139Ev");}
void  S82C5 ::v140(){vfunc_called(this, "_ZN5S82C54v140Ev");}
void  S82C5 ::v141(){vfunc_called(this, "_ZN5S82C54v141Ev");}
void  S82C5 ::v142(){vfunc_called(this, "_ZN5S82C54v142Ev");}
void  S82C5 ::v143(){vfunc_called(this, "_ZN5S82C54v143Ev");}
void  S82C5 ::v144(){vfunc_called(this, "_ZN5S82C54v144Ev");}
void  S82C5 ::v145(){vfunc_called(this, "_ZN5S82C54v145Ev");}
S82C5 ::S82C5(){ note_ctor("S82C5", this);} // tgen

static void Test_S82C5()
{
  extern Class_Descriptor cd_S82C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S82C5, buf);
    S82C5 *dp, &lv = *(dp=new (buf) S82C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S82C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C5)");
    check_base_class_offset(lv, (S82C7*)(S82C6*), 0, "S82C5");
    check_base_class_offset(lv, (S82C6*), 0, "S82C5");
    check_field_offset(lv, s82c5f0, ABISELECT(96,60), "S82C5.s82c5f0");
    check_field_offset(lv, s82c5f1, ABISELECT(124,88), "S82C5.s82c5f1");
    set_bf_and_test(lv, s82c5f2, ABISELECT(128,92), 0, 1, 1, "S82C5");
    set_bf_and_test(lv, s82c5f3, ABISELECT(128,92), 1, 1, 1, "S82C5");
    set_bf_and_test(lv, s82c5f4, ABISELECT(128,92), 2, 1, 1, "S82C5");
    set_bf_and_test(lv, s82c5f5, ABISELECT(128,92), 3, 1, 1, "S82C5");
    check_field_offset(lv, s82c5f6, ABISELECT(136,96), "S82C5.s82c5f6");
    check_field_offset(lv, s82c5f7, ABISELECT(152,108), "S82C5.s82c5f7");
    check_field_offset(lv, s82c5f8, ABISELECT(168,120), "S82C5.s82c5f8");
    check_field_offset(lv, s82c5f9, ABISELECT(176,124), "S82C5.s82c5f9");
    check_field_offset(lv, s82c5f10, ABISELECT(192,136), "S82C5.s82c5f10");
    check_field_offset(lv, s82c5f11, ABISELECT(208,148), "S82C5.s82c5f11");
    check_field_offset(lv, s82c5f12, ABISELECT(224,160), "S82C5.s82c5f12");
    check_field_offset(lv, s82c5f13, ABISELECT(240,172), "S82C5.s82c5f13");
    check_field_offset(lv, s82c5f14, ABISELECT(244,176), "S82C5.s82c5f14");
    check_field_offset(lv, s82c5f15, ABISELECT(248,180), "S82C5.s82c5f15");
    check_field_offset(lv, s82c5f16, ABISELECT(256,184), "S82C5.s82c5f16");
    check_field_offset(lv, s82c5f17, ABISELECT(264,192), "S82C5.s82c5f17");
    check_field_offset(lv, s82c5f18, ABISELECT(272,200), "S82C5.s82c5f18");
    check_field_offset(lv, s82c5f19, ABISELECT(280,208), "S82C5.s82c5f19");
    check_field_offset(lv, s82c5f20, ABISELECT(288,216), "S82C5.s82c5f20");
    check_field_offset(lv, s82c5f21, ABISELECT(296,224), "S82C5.s82c5f21");
    check_field_offset(lv, s82c5f22, ABISELECT(304,232), "S82C5.s82c5f22");
    check_field_offset(lv, s82c5f23, ABISELECT(320,244), "S82C5.s82c5f23");
    check_field_offset(lv, s82c5f24, ABISELECT(336,256), "S82C5.s82c5f24");
    check_field_offset(lv, s82c5f25, ABISELECT(352,268), "S82C5.s82c5f25");
    check_field_offset(lv, s82c5f26, ABISELECT(368,280), "S82C5.s82c5f26");
    check_field_offset(lv, s82c5f27, ABISELECT(384,292), "S82C5.s82c5f27");
    check_field_offset(lv, s82c5f28, ABISELECT(400,304), "S82C5.s82c5f28");
    check_field_offset(lv, s82c5f29, ABISELECT(416,316), "S82C5.s82c5f29");
    check_field_offset(lv, s82c5f30, ABISELECT(432,328), "S82C5.s82c5f30");
    check_field_offset(lv, s82c5f31, ABISELECT(448,340), "S82C5.s82c5f31");
    test_class_info(&lv, &cd_S82C5);
    dp->~S82C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C5(Test_S82C5, "S82C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S82C5C1Ev();
extern void _ZN5S82C5D1Ev();
Name_Map name_map_S82C5[] = {
  NSPAIR(_ZN5S82C5C1Ev),
  NSPAIR(_ZN5S82C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S82C7;
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
extern Class_Descriptor cd_S82C6;
extern VTBL_ENTRY _ZTI5S82C6[];
extern  VTBL_ENTRY _ZTV5S82C6[];
static Base_Class bases_S82C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S82C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S82C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S82C5[];
extern void _ZN5S82C5D1Ev();
extern void _ZN5S82C5D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
extern void _ZN5S82C63v68Ev();
extern void _ZN5S82C63v69Ev();
extern void _ZN5S82C53v70Ev();
extern void _ZN5S82C53v71Ev();
extern void _ZN5S82C53v72Ev();
extern void _ZN5S82C53v73Ev();
extern void _ZN5S82C53v74Ev();
extern void _ZN5S82C53v75Ev();
extern void _ZN5S82C53v76Ev();
extern void _ZN5S82C53v77Ev();
extern void _ZN5S82C53v78Ev();
extern void _ZN5S82C53v79Ev();
extern void _ZN5S82C53v80Ev();
extern void _ZN5S82C53v81Ev();
extern void _ZN5S82C53v82Ev();
extern void _ZN5S82C53v83Ev();
extern void _ZN5S82C53v84Ev();
extern void _ZN5S82C53v85Ev();
extern void _ZN5S82C53v86Ev();
extern void _ZN5S82C53v87Ev();
extern void _ZN5S82C53v88Ev();
extern void _ZN5S82C53v89Ev();
extern void _ZN5S82C53v90Ev();
extern void _ZN5S82C53v91Ev();
extern void _ZN5S82C53v92Ev();
extern void _ZN5S82C53v93Ev();
extern void _ZN5S82C53v94Ev();
extern void _ZN5S82C53v95Ev();
extern void _ZN5S82C53v96Ev();
extern void _ZN5S82C53v97Ev();
extern void _ZN5S82C53v98Ev();
extern void _ZN5S82C53v99Ev();
extern void _ZN5S82C54v100Ev();
extern void _ZN5S82C54v101Ev();
extern void _ZN5S82C54v102Ev();
extern void _ZN5S82C54v103Ev();
extern void _ZN5S82C54v104Ev();
extern void _ZN5S82C54v105Ev();
extern void _ZN5S82C54v106Ev();
extern void _ZN5S82C54v107Ev();
extern void _ZN5S82C54v108Ev();
extern void _ZN5S82C54v109Ev();
extern void _ZN5S82C54v110Ev();
extern void _ZN5S82C54v111Ev();
extern void _ZN5S82C54v112Ev();
extern void _ZN5S82C54v113Ev();
extern void _ZN5S82C54v114Ev();
extern void _ZN5S82C54v115Ev();
extern void _ZN5S82C54v116Ev();
extern void _ZN5S82C54v117Ev();
extern void _ZN5S82C54v118Ev();
extern void _ZN5S82C54v119Ev();
extern void _ZN5S82C54v120Ev();
extern void _ZN5S82C54v121Ev();
extern void _ZN5S82C54v122Ev();
extern void _ZN5S82C54v123Ev();
extern void _ZN5S82C54v124Ev();
extern void _ZN5S82C54v125Ev();
extern void _ZN5S82C54v126Ev();
extern void _ZN5S82C54v127Ev();
extern void _ZN5S82C54v128Ev();
extern void _ZN5S82C54v129Ev();
extern void _ZN5S82C54v130Ev();
extern void _ZN5S82C54v131Ev();
extern void _ZN5S82C54v132Ev();
extern void _ZN5S82C54v133Ev();
extern void _ZN5S82C54v134Ev();
extern void _ZN5S82C54v135Ev();
extern void _ZN5S82C54v136Ev();
extern void _ZN5S82C54v137Ev();
extern void _ZN5S82C54v138Ev();
extern void _ZN5S82C54v139Ev();
extern void _ZN5S82C54v140Ev();
extern void _ZN5S82C54v141Ev();
extern void _ZN5S82C54v142Ev();
extern void _ZN5S82C54v143Ev();
extern void _ZN5S82C54v144Ev();
extern void _ZN5S82C54v145Ev();
static  VTBL_ENTRY vtc_S82C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C5[0]),
  (VTBL_ENTRY)&_ZN5S82C5D1Ev,
  (VTBL_ENTRY)&_ZN5S82C5D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
  (VTBL_ENTRY)&_ZN5S82C63v68Ev,
  (VTBL_ENTRY)&_ZN5S82C63v69Ev,
  (VTBL_ENTRY)&_ZN5S82C53v70Ev,
  (VTBL_ENTRY)&_ZN5S82C53v71Ev,
  (VTBL_ENTRY)&_ZN5S82C53v72Ev,
  (VTBL_ENTRY)&_ZN5S82C53v73Ev,
  (VTBL_ENTRY)&_ZN5S82C53v74Ev,
  (VTBL_ENTRY)&_ZN5S82C53v75Ev,
  (VTBL_ENTRY)&_ZN5S82C53v76Ev,
  (VTBL_ENTRY)&_ZN5S82C53v77Ev,
  (VTBL_ENTRY)&_ZN5S82C53v78Ev,
  (VTBL_ENTRY)&_ZN5S82C53v79Ev,
  (VTBL_ENTRY)&_ZN5S82C53v80Ev,
  (VTBL_ENTRY)&_ZN5S82C53v81Ev,
  (VTBL_ENTRY)&_ZN5S82C53v82Ev,
  (VTBL_ENTRY)&_ZN5S82C53v83Ev,
  (VTBL_ENTRY)&_ZN5S82C53v84Ev,
  (VTBL_ENTRY)&_ZN5S82C53v85Ev,
  (VTBL_ENTRY)&_ZN5S82C53v86Ev,
  (VTBL_ENTRY)&_ZN5S82C53v87Ev,
  (VTBL_ENTRY)&_ZN5S82C53v88Ev,
  (VTBL_ENTRY)&_ZN5S82C53v89Ev,
  (VTBL_ENTRY)&_ZN5S82C53v90Ev,
  (VTBL_ENTRY)&_ZN5S82C53v91Ev,
  (VTBL_ENTRY)&_ZN5S82C53v92Ev,
  (VTBL_ENTRY)&_ZN5S82C53v93Ev,
  (VTBL_ENTRY)&_ZN5S82C53v94Ev,
  (VTBL_ENTRY)&_ZN5S82C53v95Ev,
  (VTBL_ENTRY)&_ZN5S82C53v96Ev,
  (VTBL_ENTRY)&_ZN5S82C53v97Ev,
  (VTBL_ENTRY)&_ZN5S82C53v98Ev,
  (VTBL_ENTRY)&_ZN5S82C53v99Ev,
  (VTBL_ENTRY)&_ZN5S82C54v100Ev,
  (VTBL_ENTRY)&_ZN5S82C54v101Ev,
  (VTBL_ENTRY)&_ZN5S82C54v102Ev,
  (VTBL_ENTRY)&_ZN5S82C54v103Ev,
  (VTBL_ENTRY)&_ZN5S82C54v104Ev,
  (VTBL_ENTRY)&_ZN5S82C54v105Ev,
  (VTBL_ENTRY)&_ZN5S82C54v106Ev,
  (VTBL_ENTRY)&_ZN5S82C54v107Ev,
  (VTBL_ENTRY)&_ZN5S82C54v108Ev,
  (VTBL_ENTRY)&_ZN5S82C54v109Ev,
  (VTBL_ENTRY)&_ZN5S82C54v110Ev,
  (VTBL_ENTRY)&_ZN5S82C54v111Ev,
  (VTBL_ENTRY)&_ZN5S82C54v112Ev,
  (VTBL_ENTRY)&_ZN5S82C54v113Ev,
  (VTBL_ENTRY)&_ZN5S82C54v114Ev,
  (VTBL_ENTRY)&_ZN5S82C54v115Ev,
  (VTBL_ENTRY)&_ZN5S82C54v116Ev,
  (VTBL_ENTRY)&_ZN5S82C54v117Ev,
  (VTBL_ENTRY)&_ZN5S82C54v118Ev,
  (VTBL_ENTRY)&_ZN5S82C54v119Ev,
  (VTBL_ENTRY)&_ZN5S82C54v120Ev,
  (VTBL_ENTRY)&_ZN5S82C54v121Ev,
  (VTBL_ENTRY)&_ZN5S82C54v122Ev,
  (VTBL_ENTRY)&_ZN5S82C54v123Ev,
  (VTBL_ENTRY)&_ZN5S82C54v124Ev,
  (VTBL_ENTRY)&_ZN5S82C54v125Ev,
  (VTBL_ENTRY)&_ZN5S82C54v126Ev,
  (VTBL_ENTRY)&_ZN5S82C54v127Ev,
  (VTBL_ENTRY)&_ZN5S82C54v128Ev,
  (VTBL_ENTRY)&_ZN5S82C54v129Ev,
  (VTBL_ENTRY)&_ZN5S82C54v130Ev,
  (VTBL_ENTRY)&_ZN5S82C54v131Ev,
  (VTBL_ENTRY)&_ZN5S82C54v132Ev,
  (VTBL_ENTRY)&_ZN5S82C54v133Ev,
  (VTBL_ENTRY)&_ZN5S82C54v134Ev,
  (VTBL_ENTRY)&_ZN5S82C54v135Ev,
  (VTBL_ENTRY)&_ZN5S82C54v136Ev,
  (VTBL_ENTRY)&_ZN5S82C54v137Ev,
  (VTBL_ENTRY)&_ZN5S82C54v138Ev,
  (VTBL_ENTRY)&_ZN5S82C54v139Ev,
  (VTBL_ENTRY)&_ZN5S82C54v140Ev,
  (VTBL_ENTRY)&_ZN5S82C54v141Ev,
  (VTBL_ENTRY)&_ZN5S82C54v142Ev,
  (VTBL_ENTRY)&_ZN5S82C54v143Ev,
  (VTBL_ENTRY)&_ZN5S82C54v144Ev,
  (VTBL_ENTRY)&_ZN5S82C54v145Ev,
};
extern VTBL_ENTRY _ZTI5S82C5[];
extern  VTBL_ENTRY _ZTV5S82C5[];
Class_Descriptor cd_S82C5 = {  "S82C5", // class name
  bases_S82C5, 2,
  &(vtc_S82C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S82C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S82C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C4  : S82C5 {
  ::S85C27_nt s82c4f0;
  void *s82c4f1[9];
  ::S80C15 s82c4f2;
  ::S85C35 s82c4f3;
  ::S80C24 s82c4f4;
  int s82c4f5;
  unsigned int s82c4f6:1;
  unsigned int s82c4f7:1;
  unsigned int s82c4f8:1;
  unsigned int s82c4f9:1;
  unsigned int s82c4f10:1;
  unsigned int s82c4f11:1;
  unsigned int s82c4f12:1;
  unsigned int s82c4f13:1;
  unsigned int s82c4f14:1;
  unsigned int s82c4f15:1;
  unsigned int s82c4f16:1;
  unsigned int s82c4f17:1;
  unsigned int s82c4f18:1;
  unsigned int s82c4f19:1;
  unsigned int s82c4f20:1;
  unsigned int s82c4f21:1;
  unsigned int s82c4f22:1;
  unsigned int s82c4f23:1;
  unsigned int s82c4f24:1;
  unsigned int s82c4f25:1;
  unsigned int s82c4f26:1;
  unsigned int s82c4f27:1;
  void *s82c4f28;
  char s82c4f29[2];
  ::S80C8_nt s82c4f30;
  ::S85C27_nt s82c4f31;
  ::S85C27_nt s82c4f32;
  void *s82c4f33;
  ::S80C21_nt s82c4f34;
  ::S80C21_nt s82c4f35;
  ::S80C21_nt s82c4f36;
  ::S80C21_nt s82c4f37;
  ::S80C21_nt s82c4f38;
  virtual  ~S82C4(); // _ZN5S82C4D1Ev
  virtual void  v146(); // _ZN5S82C44v146Ev
  virtual void  v147(); // _ZN5S82C44v147Ev
  virtual void  v148(); // _ZN5S82C44v148Ev
  virtual void  v149(); // _ZN5S82C44v149Ev
  virtual void  v150(); // _ZN5S82C44v150Ev
  virtual void  v151(); // _ZN5S82C44v151Ev
  virtual void  v152(); // _ZN5S82C44v152Ev
  virtual void  v153(); // _ZN5S82C44v153Ev
  virtual void  v154(); // _ZN5S82C44v154Ev
  virtual void  v155(); // _ZN5S82C44v155Ev
  virtual void  v156(); // _ZN5S82C44v156Ev
  virtual void  v157(); // _ZN5S82C44v157Ev
  virtual void  v158(); // _ZN5S82C44v158Ev
  virtual void  v159(); // _ZN5S82C44v159Ev
  virtual void  v160(); // _ZN5S82C44v160Ev
  virtual void  v161(); // _ZN5S82C44v161Ev
  virtual void  v162(); // _ZN5S82C44v162Ev
  virtual void  v163(); // _ZN5S82C44v163Ev
  virtual void  v164(); // _ZN5S82C44v164Ev
  virtual void  v165(); // _ZN5S82C44v165Ev
  virtual void  v166(); // _ZN5S82C44v166Ev
  virtual void  v167(); // _ZN5S82C44v167Ev
  virtual void  v168(); // _ZN5S82C44v168Ev
  virtual void  v169(); // _ZN5S82C44v169Ev
  virtual void  v170(); // _ZN5S82C44v170Ev
  virtual void  v171(); // _ZN5S82C44v171Ev
  virtual void  v172(); // _ZN5S82C44v172Ev
  virtual void  v173(); // _ZN5S82C44v173Ev
  virtual void  v174(); // _ZN5S82C44v174Ev
  virtual void  v175(); // _ZN5S82C44v175Ev
  virtual void  v176(); // _ZN5S82C44v176Ev
  virtual void  v177(); // _ZN5S82C44v177Ev
  virtual void  v178(); // _ZN5S82C44v178Ev
  virtual void  v179(); // _ZN5S82C44v179Ev
  virtual void  v180(); // _ZN5S82C44v180Ev
  virtual void  v181(); // _ZN5S82C44v181Ev
  virtual void  v182(); // _ZN5S82C44v182Ev
  virtual void  v183(); // _ZN5S82C44v183Ev
  virtual void  v184(); // _ZN5S82C44v184Ev
  S82C4(); // tgen
};
//SIG(-1 S82C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S82C4 ::~S82C4(){ note_dtor("S82C4", this);}
void  S82C4 ::v146(){vfunc_called(this, "_ZN5S82C44v146Ev");}
void  S82C4 ::v147(){vfunc_called(this, "_ZN5S82C44v147Ev");}
void  S82C4 ::v148(){vfunc_called(this, "_ZN5S82C44v148Ev");}
void  S82C4 ::v149(){vfunc_called(this, "_ZN5S82C44v149Ev");}
void  S82C4 ::v150(){vfunc_called(this, "_ZN5S82C44v150Ev");}
void  S82C4 ::v151(){vfunc_called(this, "_ZN5S82C44v151Ev");}
void  S82C4 ::v152(){vfunc_called(this, "_ZN5S82C44v152Ev");}
void  S82C4 ::v153(){vfunc_called(this, "_ZN5S82C44v153Ev");}
void  S82C4 ::v154(){vfunc_called(this, "_ZN5S82C44v154Ev");}
void  S82C4 ::v155(){vfunc_called(this, "_ZN5S82C44v155Ev");}
void  S82C4 ::v156(){vfunc_called(this, "_ZN5S82C44v156Ev");}
void  S82C4 ::v157(){vfunc_called(this, "_ZN5S82C44v157Ev");}
void  S82C4 ::v158(){vfunc_called(this, "_ZN5S82C44v158Ev");}
void  S82C4 ::v159(){vfunc_called(this, "_ZN5S82C44v159Ev");}
void  S82C4 ::v160(){vfunc_called(this, "_ZN5S82C44v160Ev");}
void  S82C4 ::v161(){vfunc_called(this, "_ZN5S82C44v161Ev");}
void  S82C4 ::v162(){vfunc_called(this, "_ZN5S82C44v162Ev");}
void  S82C4 ::v163(){vfunc_called(this, "_ZN5S82C44v163Ev");}
void  S82C4 ::v164(){vfunc_called(this, "_ZN5S82C44v164Ev");}
void  S82C4 ::v165(){vfunc_called(this, "_ZN5S82C44v165Ev");}
void  S82C4 ::v166(){vfunc_called(this, "_ZN5S82C44v166Ev");}
void  S82C4 ::v167(){vfunc_called(this, "_ZN5S82C44v167Ev");}
void  S82C4 ::v168(){vfunc_called(this, "_ZN5S82C44v168Ev");}
void  S82C4 ::v169(){vfunc_called(this, "_ZN5S82C44v169Ev");}
void  S82C4 ::v170(){vfunc_called(this, "_ZN5S82C44v170Ev");}
void  S82C4 ::v171(){vfunc_called(this, "_ZN5S82C44v171Ev");}
void  S82C4 ::v172(){vfunc_called(this, "_ZN5S82C44v172Ev");}
void  S82C4 ::v173(){vfunc_called(this, "_ZN5S82C44v173Ev");}
void  S82C4 ::v174(){vfunc_called(this, "_ZN5S82C44v174Ev");}
void  S82C4 ::v175(){vfunc_called(this, "_ZN5S82C44v175Ev");}
void  S82C4 ::v176(){vfunc_called(this, "_ZN5S82C44v176Ev");}
void  S82C4 ::v177(){vfunc_called(this, "_ZN5S82C44v177Ev");}
void  S82C4 ::v178(){vfunc_called(this, "_ZN5S82C44v178Ev");}
void  S82C4 ::v179(){vfunc_called(this, "_ZN5S82C44v179Ev");}
void  S82C4 ::v180(){vfunc_called(this, "_ZN5S82C44v180Ev");}
void  S82C4 ::v181(){vfunc_called(this, "_ZN5S82C44v181Ev");}
void  S82C4 ::v182(){vfunc_called(this, "_ZN5S82C44v182Ev");}
void  S82C4 ::v183(){vfunc_called(this, "_ZN5S82C44v183Ev");}
void  S82C4 ::v184(){vfunc_called(this, "_ZN5S82C44v184Ev");}
S82C4 ::S82C4(){ note_ctor("S82C4", this);} // tgen

static void Test_S82C4()
{
  extern Class_Descriptor cd_S82C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S82C4, buf);
    S82C4 *dp, &lv = *(dp=new (buf) S82C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S82C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C4)");
    check_base_class_offset(lv, (S82C7*)(S82C6*)(S82C5*), 0, "S82C4");
    check_base_class_offset(lv, (S82C6*)(S82C5*), 0, "S82C4");
    check_base_class_offset(lv, (S82C5*), 0, "S82C4");
    check_field_offset(lv, s82c4f0, ABISELECT(464,352), "S82C4.s82c4f0");
    check_field_offset(lv, s82c4f1, ABISELECT(472,360), "S82C4.s82c4f1");
    check_field_offset(lv, s82c4f2, ABISELECT(544,396), "S82C4.s82c4f2");
    check_field_offset(lv, s82c4f3, ABISELECT(560,408), "S82C4.s82c4f3");
    check_field_offset(lv, s82c4f4, ABISELECT(576,420), "S82C4.s82c4f4");
    check_field_offset(lv, s82c4f5, ABISELECT(608,440), "S82C4.s82c4f5");
    set_bf_and_test(lv, s82c4f6, ABISELECT(612,444), 0, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f7, ABISELECT(612,444), 1, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f8, ABISELECT(612,444), 2, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f9, ABISELECT(612,444), 3, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f10, ABISELECT(612,444), 4, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f11, ABISELECT(612,444), 5, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f12, ABISELECT(612,444), 6, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f13, ABISELECT(612,444), 7, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f14, ABISELECT(613,445), 0, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f15, ABISELECT(613,445), 1, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f16, ABISELECT(613,445), 2, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f17, ABISELECT(613,445), 3, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f18, ABISELECT(613,445), 4, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f19, ABISELECT(613,445), 5, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f20, ABISELECT(613,445), 6, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f21, ABISELECT(613,445), 7, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f22, ABISELECT(614,446), 0, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f23, ABISELECT(614,446), 1, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f24, ABISELECT(614,446), 2, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f25, ABISELECT(614,446), 3, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f26, ABISELECT(614,446), 4, 1, 1, "S82C4");
    set_bf_and_test(lv, s82c4f27, ABISELECT(614,446), 5, 1, 1, "S82C4");
    check_field_offset(lv, s82c4f28, ABISELECT(616,448), "S82C4.s82c4f28");
    check_field_offset(lv, s82c4f29, ABISELECT(624,452), "S82C4.s82c4f29");
    check_field_offset(lv, s82c4f30, ABISELECT(628,456), "S82C4.s82c4f30");
    check_field_offset(lv, s82c4f31, ABISELECT(636,464), "S82C4.s82c4f31");
    check_field_offset(lv, s82c4f32, ABISELECT(644,472), "S82C4.s82c4f32");
    check_field_offset(lv, s82c4f33, ABISELECT(656,480), "S82C4.s82c4f33");
    check_field_offset(lv, s82c4f34, ABISELECT(664,484), "S82C4.s82c4f34");
    check_field_offset(lv, s82c4f35, ABISELECT(680,496), "S82C4.s82c4f35");
    check_field_offset(lv, s82c4f36, ABISELECT(696,508), "S82C4.s82c4f36");
    check_field_offset(lv, s82c4f37, ABISELECT(712,520), "S82C4.s82c4f37");
    check_field_offset(lv, s82c4f38, ABISELECT(728,532), "S82C4.s82c4f38");
    test_class_info(&lv, &cd_S82C4);
    dp->~S82C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C4(Test_S82C4, "S82C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S82C4C1Ev();
extern void _ZN5S82C4D1Ev();
Name_Map name_map_S82C4[] = {
  NSPAIR(_ZN5S82C4C1Ev),
  NSPAIR(_ZN5S82C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S82C7;
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
extern Class_Descriptor cd_S82C6;
extern VTBL_ENTRY _ZTI5S82C6[];
extern  VTBL_ENTRY _ZTV5S82C6[];
extern Class_Descriptor cd_S82C5;
extern VTBL_ENTRY _ZTI5S82C5[];
extern  VTBL_ENTRY _ZTV5S82C5[];
static Base_Class bases_S82C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S82C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S82C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S82C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S82C4[];
extern void _ZN5S82C4D1Ev();
extern void _ZN5S82C4D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
extern void _ZN5S82C63v68Ev();
extern void _ZN5S82C63v69Ev();
extern void _ZN5S82C53v70Ev();
extern void _ZN5S82C53v71Ev();
extern void _ZN5S82C53v72Ev();
extern void _ZN5S82C53v73Ev();
extern void _ZN5S82C53v74Ev();
extern void _ZN5S82C53v75Ev();
extern void _ZN5S82C53v76Ev();
extern void _ZN5S82C53v77Ev();
extern void _ZN5S82C53v78Ev();
extern void _ZN5S82C53v79Ev();
extern void _ZN5S82C53v80Ev();
extern void _ZN5S82C53v81Ev();
extern void _ZN5S82C53v82Ev();
extern void _ZN5S82C53v83Ev();
extern void _ZN5S82C53v84Ev();
extern void _ZN5S82C53v85Ev();
extern void _ZN5S82C53v86Ev();
extern void _ZN5S82C53v87Ev();
extern void _ZN5S82C53v88Ev();
extern void _ZN5S82C53v89Ev();
extern void _ZN5S82C53v90Ev();
extern void _ZN5S82C53v91Ev();
extern void _ZN5S82C53v92Ev();
extern void _ZN5S82C53v93Ev();
extern void _ZN5S82C53v94Ev();
extern void _ZN5S82C53v95Ev();
extern void _ZN5S82C53v96Ev();
extern void _ZN5S82C53v97Ev();
extern void _ZN5S82C53v98Ev();
extern void _ZN5S82C53v99Ev();
extern void _ZN5S82C54v100Ev();
extern void _ZN5S82C54v101Ev();
extern void _ZN5S82C54v102Ev();
extern void _ZN5S82C54v103Ev();
extern void _ZN5S82C54v104Ev();
extern void _ZN5S82C54v105Ev();
extern void _ZN5S82C54v106Ev();
extern void _ZN5S82C54v107Ev();
extern void _ZN5S82C54v108Ev();
extern void _ZN5S82C54v109Ev();
extern void _ZN5S82C54v110Ev();
extern void _ZN5S82C54v111Ev();
extern void _ZN5S82C54v112Ev();
extern void _ZN5S82C54v113Ev();
extern void _ZN5S82C54v114Ev();
extern void _ZN5S82C54v115Ev();
extern void _ZN5S82C54v116Ev();
extern void _ZN5S82C54v117Ev();
extern void _ZN5S82C54v118Ev();
extern void _ZN5S82C54v119Ev();
extern void _ZN5S82C54v120Ev();
extern void _ZN5S82C54v121Ev();
extern void _ZN5S82C54v122Ev();
extern void _ZN5S82C54v123Ev();
extern void _ZN5S82C54v124Ev();
extern void _ZN5S82C54v125Ev();
extern void _ZN5S82C54v126Ev();
extern void _ZN5S82C54v127Ev();
extern void _ZN5S82C54v128Ev();
extern void _ZN5S82C54v129Ev();
extern void _ZN5S82C54v130Ev();
extern void _ZN5S82C54v131Ev();
extern void _ZN5S82C54v132Ev();
extern void _ZN5S82C54v133Ev();
extern void _ZN5S82C54v134Ev();
extern void _ZN5S82C54v135Ev();
extern void _ZN5S82C54v136Ev();
extern void _ZN5S82C54v137Ev();
extern void _ZN5S82C54v138Ev();
extern void _ZN5S82C54v139Ev();
extern void _ZN5S82C54v140Ev();
extern void _ZN5S82C54v141Ev();
extern void _ZN5S82C54v142Ev();
extern void _ZN5S82C54v143Ev();
extern void _ZN5S82C54v144Ev();
extern void _ZN5S82C54v145Ev();
extern void _ZN5S82C44v146Ev();
extern void _ZN5S82C44v147Ev();
extern void _ZN5S82C44v148Ev();
extern void _ZN5S82C44v149Ev();
extern void _ZN5S82C44v150Ev();
extern void _ZN5S82C44v151Ev();
extern void _ZN5S82C44v152Ev();
extern void _ZN5S82C44v153Ev();
extern void _ZN5S82C44v154Ev();
extern void _ZN5S82C44v155Ev();
extern void _ZN5S82C44v156Ev();
extern void _ZN5S82C44v157Ev();
extern void _ZN5S82C44v158Ev();
extern void _ZN5S82C44v159Ev();
extern void _ZN5S82C44v160Ev();
extern void _ZN5S82C44v161Ev();
extern void _ZN5S82C44v162Ev();
extern void _ZN5S82C44v163Ev();
extern void _ZN5S82C44v164Ev();
extern void _ZN5S82C44v165Ev();
extern void _ZN5S82C44v166Ev();
extern void _ZN5S82C44v167Ev();
extern void _ZN5S82C44v168Ev();
extern void _ZN5S82C44v169Ev();
extern void _ZN5S82C44v170Ev();
extern void _ZN5S82C44v171Ev();
extern void _ZN5S82C44v172Ev();
extern void _ZN5S82C44v173Ev();
extern void _ZN5S82C44v174Ev();
extern void _ZN5S82C44v175Ev();
extern void _ZN5S82C44v176Ev();
extern void _ZN5S82C44v177Ev();
extern void _ZN5S82C44v178Ev();
extern void _ZN5S82C44v179Ev();
extern void _ZN5S82C44v180Ev();
extern void _ZN5S82C44v181Ev();
extern void _ZN5S82C44v182Ev();
extern void _ZN5S82C44v183Ev();
extern void _ZN5S82C44v184Ev();
static  VTBL_ENTRY vtc_S82C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C4[0]),
  (VTBL_ENTRY)&_ZN5S82C4D1Ev,
  (VTBL_ENTRY)&_ZN5S82C4D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
  (VTBL_ENTRY)&_ZN5S82C63v68Ev,
  (VTBL_ENTRY)&_ZN5S82C63v69Ev,
  (VTBL_ENTRY)&_ZN5S82C53v70Ev,
  (VTBL_ENTRY)&_ZN5S82C53v71Ev,
  (VTBL_ENTRY)&_ZN5S82C53v72Ev,
  (VTBL_ENTRY)&_ZN5S82C53v73Ev,
  (VTBL_ENTRY)&_ZN5S82C53v74Ev,
  (VTBL_ENTRY)&_ZN5S82C53v75Ev,
  (VTBL_ENTRY)&_ZN5S82C53v76Ev,
  (VTBL_ENTRY)&_ZN5S82C53v77Ev,
  (VTBL_ENTRY)&_ZN5S82C53v78Ev,
  (VTBL_ENTRY)&_ZN5S82C53v79Ev,
  (VTBL_ENTRY)&_ZN5S82C53v80Ev,
  (VTBL_ENTRY)&_ZN5S82C53v81Ev,
  (VTBL_ENTRY)&_ZN5S82C53v82Ev,
  (VTBL_ENTRY)&_ZN5S82C53v83Ev,
  (VTBL_ENTRY)&_ZN5S82C53v84Ev,
  (VTBL_ENTRY)&_ZN5S82C53v85Ev,
  (VTBL_ENTRY)&_ZN5S82C53v86Ev,
  (VTBL_ENTRY)&_ZN5S82C53v87Ev,
  (VTBL_ENTRY)&_ZN5S82C53v88Ev,
  (VTBL_ENTRY)&_ZN5S82C53v89Ev,
  (VTBL_ENTRY)&_ZN5S82C53v90Ev,
  (VTBL_ENTRY)&_ZN5S82C53v91Ev,
  (VTBL_ENTRY)&_ZN5S82C53v92Ev,
  (VTBL_ENTRY)&_ZN5S82C53v93Ev,
  (VTBL_ENTRY)&_ZN5S82C53v94Ev,
  (VTBL_ENTRY)&_ZN5S82C53v95Ev,
  (VTBL_ENTRY)&_ZN5S82C53v96Ev,
  (VTBL_ENTRY)&_ZN5S82C53v97Ev,
  (VTBL_ENTRY)&_ZN5S82C53v98Ev,
  (VTBL_ENTRY)&_ZN5S82C53v99Ev,
  (VTBL_ENTRY)&_ZN5S82C54v100Ev,
  (VTBL_ENTRY)&_ZN5S82C54v101Ev,
  (VTBL_ENTRY)&_ZN5S82C54v102Ev,
  (VTBL_ENTRY)&_ZN5S82C54v103Ev,
  (VTBL_ENTRY)&_ZN5S82C54v104Ev,
  (VTBL_ENTRY)&_ZN5S82C54v105Ev,
  (VTBL_ENTRY)&_ZN5S82C54v106Ev,
  (VTBL_ENTRY)&_ZN5S82C54v107Ev,
  (VTBL_ENTRY)&_ZN5S82C54v108Ev,
  (VTBL_ENTRY)&_ZN5S82C54v109Ev,
  (VTBL_ENTRY)&_ZN5S82C54v110Ev,
  (VTBL_ENTRY)&_ZN5S82C54v111Ev,
  (VTBL_ENTRY)&_ZN5S82C54v112Ev,
  (VTBL_ENTRY)&_ZN5S82C54v113Ev,
  (VTBL_ENTRY)&_ZN5S82C54v114Ev,
  (VTBL_ENTRY)&_ZN5S82C54v115Ev,
  (VTBL_ENTRY)&_ZN5S82C54v116Ev,
  (VTBL_ENTRY)&_ZN5S82C54v117Ev,
  (VTBL_ENTRY)&_ZN5S82C54v118Ev,
  (VTBL_ENTRY)&_ZN5S82C54v119Ev,
  (VTBL_ENTRY)&_ZN5S82C54v120Ev,
  (VTBL_ENTRY)&_ZN5S82C54v121Ev,
  (VTBL_ENTRY)&_ZN5S82C54v122Ev,
  (VTBL_ENTRY)&_ZN5S82C54v123Ev,
  (VTBL_ENTRY)&_ZN5S82C54v124Ev,
  (VTBL_ENTRY)&_ZN5S82C54v125Ev,
  (VTBL_ENTRY)&_ZN5S82C54v126Ev,
  (VTBL_ENTRY)&_ZN5S82C54v127Ev,
  (VTBL_ENTRY)&_ZN5S82C54v128Ev,
  (VTBL_ENTRY)&_ZN5S82C54v129Ev,
  (VTBL_ENTRY)&_ZN5S82C54v130Ev,
  (VTBL_ENTRY)&_ZN5S82C54v131Ev,
  (VTBL_ENTRY)&_ZN5S82C54v132Ev,
  (VTBL_ENTRY)&_ZN5S82C54v133Ev,
  (VTBL_ENTRY)&_ZN5S82C54v134Ev,
  (VTBL_ENTRY)&_ZN5S82C54v135Ev,
  (VTBL_ENTRY)&_ZN5S82C54v136Ev,
  (VTBL_ENTRY)&_ZN5S82C54v137Ev,
  (VTBL_ENTRY)&_ZN5S82C54v138Ev,
  (VTBL_ENTRY)&_ZN5S82C54v139Ev,
  (VTBL_ENTRY)&_ZN5S82C54v140Ev,
  (VTBL_ENTRY)&_ZN5S82C54v141Ev,
  (VTBL_ENTRY)&_ZN5S82C54v142Ev,
  (VTBL_ENTRY)&_ZN5S82C54v143Ev,
  (VTBL_ENTRY)&_ZN5S82C54v144Ev,
  (VTBL_ENTRY)&_ZN5S82C54v145Ev,
  (VTBL_ENTRY)&_ZN5S82C44v146Ev,
  (VTBL_ENTRY)&_ZN5S82C44v147Ev,
  (VTBL_ENTRY)&_ZN5S82C44v148Ev,
  (VTBL_ENTRY)&_ZN5S82C44v149Ev,
  (VTBL_ENTRY)&_ZN5S82C44v150Ev,
  (VTBL_ENTRY)&_ZN5S82C44v151Ev,
  (VTBL_ENTRY)&_ZN5S82C44v152Ev,
  (VTBL_ENTRY)&_ZN5S82C44v153Ev,
  (VTBL_ENTRY)&_ZN5S82C44v154Ev,
  (VTBL_ENTRY)&_ZN5S82C44v155Ev,
  (VTBL_ENTRY)&_ZN5S82C44v156Ev,
  (VTBL_ENTRY)&_ZN5S82C44v157Ev,
  (VTBL_ENTRY)&_ZN5S82C44v158Ev,
  (VTBL_ENTRY)&_ZN5S82C44v159Ev,
  (VTBL_ENTRY)&_ZN5S82C44v160Ev,
  (VTBL_ENTRY)&_ZN5S82C44v161Ev,
  (VTBL_ENTRY)&_ZN5S82C44v162Ev,
  (VTBL_ENTRY)&_ZN5S82C44v163Ev,
  (VTBL_ENTRY)&_ZN5S82C44v164Ev,
  (VTBL_ENTRY)&_ZN5S82C44v165Ev,
  (VTBL_ENTRY)&_ZN5S82C44v166Ev,
  (VTBL_ENTRY)&_ZN5S82C44v167Ev,
  (VTBL_ENTRY)&_ZN5S82C44v168Ev,
  (VTBL_ENTRY)&_ZN5S82C44v169Ev,
  (VTBL_ENTRY)&_ZN5S82C44v170Ev,
  (VTBL_ENTRY)&_ZN5S82C44v171Ev,
  (VTBL_ENTRY)&_ZN5S82C44v172Ev,
  (VTBL_ENTRY)&_ZN5S82C44v173Ev,
  (VTBL_ENTRY)&_ZN5S82C44v174Ev,
  (VTBL_ENTRY)&_ZN5S82C44v175Ev,
  (VTBL_ENTRY)&_ZN5S82C44v176Ev,
  (VTBL_ENTRY)&_ZN5S82C44v177Ev,
  (VTBL_ENTRY)&_ZN5S82C44v178Ev,
  (VTBL_ENTRY)&_ZN5S82C44v179Ev,
  (VTBL_ENTRY)&_ZN5S82C44v180Ev,
  (VTBL_ENTRY)&_ZN5S82C44v181Ev,
  (VTBL_ENTRY)&_ZN5S82C44v182Ev,
  (VTBL_ENTRY)&_ZN5S82C44v183Ev,
  (VTBL_ENTRY)&_ZN5S82C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S82C4[];
extern  VTBL_ENTRY _ZTV5S82C4[];
Class_Descriptor cd_S82C4 = {  "S82C4", // class name
  bases_S82C4, 3,
  &(vtc_S82C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S82C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S82C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C3  : S82C4 {
  unsigned int s82c3f0:1;
  unsigned int s82c3f1:1;
  unsigned int s82c3f2:1;
  unsigned int s82c3f3:1;
  unsigned int s82c3f4:1;
  unsigned int s82c3f5:1;
  void *s82c3f6[8];
  ::S80C21_nt s82c3f7;
  ::S80C21_nt s82c3f8;
  ::S80C21_nt s82c3f9;
  virtual  ~S82C3(); // _ZN5S82C3D1Ev
  virtual void  v185(); // _ZN5S82C34v185Ev
  virtual void  v186(); // _ZN5S82C34v186Ev
  virtual void  v187(); // _ZN5S82C34v187Ev
  virtual void  v188(); // _ZN5S82C34v188Ev
  virtual void  v189(); // _ZN5S82C34v189Ev
  virtual void  v190(); // _ZN5S82C34v190Ev
  virtual void  v191(); // _ZN5S82C34v191Ev
  virtual void  v192(); // _ZN5S82C34v192Ev
  virtual void  v193(); // _ZN5S82C34v193Ev
  virtual void  v194(); // _ZN5S82C34v194Ev
  virtual void  v195(); // _ZN5S82C34v195Ev
  virtual void  v196(); // _ZN5S82C34v196Ev
  virtual void  v197(); // _ZN5S82C34v197Ev
  virtual void  v198(); // _ZN5S82C34v198Ev
  virtual void  v199(); // _ZN5S82C34v199Ev
  virtual void  v200(); // _ZN5S82C34v200Ev
  virtual void  v201(); // _ZN5S82C34v201Ev
  virtual void  v202(); // _ZN5S82C34v202Ev
  virtual void  v203(); // _ZN5S82C34v203Ev
  virtual void  v204(); // _ZN5S82C34v204Ev
  virtual void  v205(); // _ZN5S82C34v205Ev
  virtual void  v206(); // _ZN5S82C34v206Ev
  virtual void  v207(); // _ZN5S82C34v207Ev
  S82C3(); // tgen
};
//SIG(-1 S82C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S82C3 ::~S82C3(){ note_dtor("S82C3", this);}
void  S82C3 ::v185(){vfunc_called(this, "_ZN5S82C34v185Ev");}
void  S82C3 ::v186(){vfunc_called(this, "_ZN5S82C34v186Ev");}
void  S82C3 ::v187(){vfunc_called(this, "_ZN5S82C34v187Ev");}
void  S82C3 ::v188(){vfunc_called(this, "_ZN5S82C34v188Ev");}
void  S82C3 ::v189(){vfunc_called(this, "_ZN5S82C34v189Ev");}
void  S82C3 ::v190(){vfunc_called(this, "_ZN5S82C34v190Ev");}
void  S82C3 ::v191(){vfunc_called(this, "_ZN5S82C34v191Ev");}
void  S82C3 ::v192(){vfunc_called(this, "_ZN5S82C34v192Ev");}
void  S82C3 ::v193(){vfunc_called(this, "_ZN5S82C34v193Ev");}
void  S82C3 ::v194(){vfunc_called(this, "_ZN5S82C34v194Ev");}
void  S82C3 ::v195(){vfunc_called(this, "_ZN5S82C34v195Ev");}
void  S82C3 ::v196(){vfunc_called(this, "_ZN5S82C34v196Ev");}
void  S82C3 ::v197(){vfunc_called(this, "_ZN5S82C34v197Ev");}
void  S82C3 ::v198(){vfunc_called(this, "_ZN5S82C34v198Ev");}
void  S82C3 ::v199(){vfunc_called(this, "_ZN5S82C34v199Ev");}
void  S82C3 ::v200(){vfunc_called(this, "_ZN5S82C34v200Ev");}
void  S82C3 ::v201(){vfunc_called(this, "_ZN5S82C34v201Ev");}
void  S82C3 ::v202(){vfunc_called(this, "_ZN5S82C34v202Ev");}
void  S82C3 ::v203(){vfunc_called(this, "_ZN5S82C34v203Ev");}
void  S82C3 ::v204(){vfunc_called(this, "_ZN5S82C34v204Ev");}
void  S82C3 ::v205(){vfunc_called(this, "_ZN5S82C34v205Ev");}
void  S82C3 ::v206(){vfunc_called(this, "_ZN5S82C34v206Ev");}
void  S82C3 ::v207(){vfunc_called(this, "_ZN5S82C34v207Ev");}
S82C3 ::S82C3(){ note_ctor("S82C3", this);} // tgen

static void Test_S82C3()
{
  extern Class_Descriptor cd_S82C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S82C3, buf);
    S82C3 *dp, &lv = *(dp=new (buf) S82C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S82C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C3)");
    check_base_class_offset(lv, (S82C7*)(S82C6*)(S82C5*)(S82C4*), 0, "S82C3");
    check_base_class_offset(lv, (S82C6*)(S82C5*)(S82C4*), 0, "S82C3");
    check_base_class_offset(lv, (S82C5*)(S82C4*), 0, "S82C3");
    check_base_class_offset(lv, (S82C4*), 0, "S82C3");
    set_bf_and_test(lv, s82c3f0, ABISELECT(744,544), 0, 1, 1, "S82C3");
    set_bf_and_test(lv, s82c3f1, ABISELECT(744,544), 1, 1, 1, "S82C3");
    set_bf_and_test(lv, s82c3f2, ABISELECT(744,544), 2, 1, 1, "S82C3");
    set_bf_and_test(lv, s82c3f3, ABISELECT(744,544), 3, 1, 1, "S82C3");
    set_bf_and_test(lv, s82c3f4, ABISELECT(744,544), 4, 1, 1, "S82C3");
    set_bf_and_test(lv, s82c3f5, ABISELECT(744,544), 5, 1, 1, "S82C3");
    check_field_offset(lv, s82c3f6, ABISELECT(752,548), "S82C3.s82c3f6");
    check_field_offset(lv, s82c3f7, ABISELECT(816,580), "S82C3.s82c3f7");
    check_field_offset(lv, s82c3f8, ABISELECT(832,592), "S82C3.s82c3f8");
    check_field_offset(lv, s82c3f9, ABISELECT(848,604), "S82C3.s82c3f9");
    test_class_info(&lv, &cd_S82C3);
    dp->~S82C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C3(Test_S82C3, "S82C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S82C3C1Ev();
extern void _ZN5S82C3D1Ev();
Name_Map name_map_S82C3[] = {
  NSPAIR(_ZN5S82C3C1Ev),
  NSPAIR(_ZN5S82C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S82C7;
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
extern Class_Descriptor cd_S82C6;
extern VTBL_ENTRY _ZTI5S82C6[];
extern  VTBL_ENTRY _ZTV5S82C6[];
extern Class_Descriptor cd_S82C5;
extern VTBL_ENTRY _ZTI5S82C5[];
extern  VTBL_ENTRY _ZTV5S82C5[];
extern Class_Descriptor cd_S82C4;
extern VTBL_ENTRY _ZTI5S82C4[];
extern  VTBL_ENTRY _ZTV5S82C4[];
static Base_Class bases_S82C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S82C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S82C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S82C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S82C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S82C3[];
extern void _ZN5S82C3D1Ev();
extern void _ZN5S82C3D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
extern void _ZN5S82C63v68Ev();
extern void _ZN5S82C63v69Ev();
extern void _ZN5S82C53v70Ev();
extern void _ZN5S82C53v71Ev();
extern void _ZN5S82C53v72Ev();
extern void _ZN5S82C53v73Ev();
extern void _ZN5S82C53v74Ev();
extern void _ZN5S82C53v75Ev();
extern void _ZN5S82C53v76Ev();
extern void _ZN5S82C53v77Ev();
extern void _ZN5S82C53v78Ev();
extern void _ZN5S82C53v79Ev();
extern void _ZN5S82C53v80Ev();
extern void _ZN5S82C53v81Ev();
extern void _ZN5S82C53v82Ev();
extern void _ZN5S82C53v83Ev();
extern void _ZN5S82C53v84Ev();
extern void _ZN5S82C53v85Ev();
extern void _ZN5S82C53v86Ev();
extern void _ZN5S82C53v87Ev();
extern void _ZN5S82C53v88Ev();
extern void _ZN5S82C53v89Ev();
extern void _ZN5S82C53v90Ev();
extern void _ZN5S82C53v91Ev();
extern void _ZN5S82C53v92Ev();
extern void _ZN5S82C53v93Ev();
extern void _ZN5S82C53v94Ev();
extern void _ZN5S82C53v95Ev();
extern void _ZN5S82C53v96Ev();
extern void _ZN5S82C53v97Ev();
extern void _ZN5S82C53v98Ev();
extern void _ZN5S82C53v99Ev();
extern void _ZN5S82C54v100Ev();
extern void _ZN5S82C54v101Ev();
extern void _ZN5S82C54v102Ev();
extern void _ZN5S82C54v103Ev();
extern void _ZN5S82C54v104Ev();
extern void _ZN5S82C54v105Ev();
extern void _ZN5S82C54v106Ev();
extern void _ZN5S82C54v107Ev();
extern void _ZN5S82C54v108Ev();
extern void _ZN5S82C54v109Ev();
extern void _ZN5S82C54v110Ev();
extern void _ZN5S82C54v111Ev();
extern void _ZN5S82C54v112Ev();
extern void _ZN5S82C54v113Ev();
extern void _ZN5S82C54v114Ev();
extern void _ZN5S82C54v115Ev();
extern void _ZN5S82C54v116Ev();
extern void _ZN5S82C54v117Ev();
extern void _ZN5S82C54v118Ev();
extern void _ZN5S82C54v119Ev();
extern void _ZN5S82C54v120Ev();
extern void _ZN5S82C54v121Ev();
extern void _ZN5S82C54v122Ev();
extern void _ZN5S82C54v123Ev();
extern void _ZN5S82C54v124Ev();
extern void _ZN5S82C54v125Ev();
extern void _ZN5S82C54v126Ev();
extern void _ZN5S82C54v127Ev();
extern void _ZN5S82C54v128Ev();
extern void _ZN5S82C54v129Ev();
extern void _ZN5S82C54v130Ev();
extern void _ZN5S82C54v131Ev();
extern void _ZN5S82C54v132Ev();
extern void _ZN5S82C54v133Ev();
extern void _ZN5S82C54v134Ev();
extern void _ZN5S82C54v135Ev();
extern void _ZN5S82C54v136Ev();
extern void _ZN5S82C54v137Ev();
extern void _ZN5S82C54v138Ev();
extern void _ZN5S82C54v139Ev();
extern void _ZN5S82C54v140Ev();
extern void _ZN5S82C54v141Ev();
extern void _ZN5S82C54v142Ev();
extern void _ZN5S82C54v143Ev();
extern void _ZN5S82C54v144Ev();
extern void _ZN5S82C54v145Ev();
extern void _ZN5S82C44v146Ev();
extern void _ZN5S82C44v147Ev();
extern void _ZN5S82C44v148Ev();
extern void _ZN5S82C44v149Ev();
extern void _ZN5S82C44v150Ev();
extern void _ZN5S82C44v151Ev();
extern void _ZN5S82C44v152Ev();
extern void _ZN5S82C44v153Ev();
extern void _ZN5S82C44v154Ev();
extern void _ZN5S82C44v155Ev();
extern void _ZN5S82C44v156Ev();
extern void _ZN5S82C44v157Ev();
extern void _ZN5S82C44v158Ev();
extern void _ZN5S82C44v159Ev();
extern void _ZN5S82C44v160Ev();
extern void _ZN5S82C44v161Ev();
extern void _ZN5S82C44v162Ev();
extern void _ZN5S82C44v163Ev();
extern void _ZN5S82C44v164Ev();
extern void _ZN5S82C44v165Ev();
extern void _ZN5S82C44v166Ev();
extern void _ZN5S82C44v167Ev();
extern void _ZN5S82C44v168Ev();
extern void _ZN5S82C44v169Ev();
extern void _ZN5S82C44v170Ev();
extern void _ZN5S82C44v171Ev();
extern void _ZN5S82C44v172Ev();
extern void _ZN5S82C44v173Ev();
extern void _ZN5S82C44v174Ev();
extern void _ZN5S82C44v175Ev();
extern void _ZN5S82C44v176Ev();
extern void _ZN5S82C44v177Ev();
extern void _ZN5S82C44v178Ev();
extern void _ZN5S82C44v179Ev();
extern void _ZN5S82C44v180Ev();
extern void _ZN5S82C44v181Ev();
extern void _ZN5S82C44v182Ev();
extern void _ZN5S82C44v183Ev();
extern void _ZN5S82C44v184Ev();
extern void _ZN5S82C34v185Ev();
extern void _ZN5S82C34v186Ev();
extern void _ZN5S82C34v187Ev();
extern void _ZN5S82C34v188Ev();
extern void _ZN5S82C34v189Ev();
extern void _ZN5S82C34v190Ev();
extern void _ZN5S82C34v191Ev();
extern void _ZN5S82C34v192Ev();
extern void _ZN5S82C34v193Ev();
extern void _ZN5S82C34v194Ev();
extern void _ZN5S82C34v195Ev();
extern void _ZN5S82C34v196Ev();
extern void _ZN5S82C34v197Ev();
extern void _ZN5S82C34v198Ev();
extern void _ZN5S82C34v199Ev();
extern void _ZN5S82C34v200Ev();
extern void _ZN5S82C34v201Ev();
extern void _ZN5S82C34v202Ev();
extern void _ZN5S82C34v203Ev();
extern void _ZN5S82C34v204Ev();
extern void _ZN5S82C34v205Ev();
extern void _ZN5S82C34v206Ev();
extern void _ZN5S82C34v207Ev();
static  VTBL_ENTRY vtc_S82C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C3[0]),
  (VTBL_ENTRY)&_ZN5S82C3D1Ev,
  (VTBL_ENTRY)&_ZN5S82C3D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
  (VTBL_ENTRY)&_ZN5S82C63v68Ev,
  (VTBL_ENTRY)&_ZN5S82C63v69Ev,
  (VTBL_ENTRY)&_ZN5S82C53v70Ev,
  (VTBL_ENTRY)&_ZN5S82C53v71Ev,
  (VTBL_ENTRY)&_ZN5S82C53v72Ev,
  (VTBL_ENTRY)&_ZN5S82C53v73Ev,
  (VTBL_ENTRY)&_ZN5S82C53v74Ev,
  (VTBL_ENTRY)&_ZN5S82C53v75Ev,
  (VTBL_ENTRY)&_ZN5S82C53v76Ev,
  (VTBL_ENTRY)&_ZN5S82C53v77Ev,
  (VTBL_ENTRY)&_ZN5S82C53v78Ev,
  (VTBL_ENTRY)&_ZN5S82C53v79Ev,
  (VTBL_ENTRY)&_ZN5S82C53v80Ev,
  (VTBL_ENTRY)&_ZN5S82C53v81Ev,
  (VTBL_ENTRY)&_ZN5S82C53v82Ev,
  (VTBL_ENTRY)&_ZN5S82C53v83Ev,
  (VTBL_ENTRY)&_ZN5S82C53v84Ev,
  (VTBL_ENTRY)&_ZN5S82C53v85Ev,
  (VTBL_ENTRY)&_ZN5S82C53v86Ev,
  (VTBL_ENTRY)&_ZN5S82C53v87Ev,
  (VTBL_ENTRY)&_ZN5S82C53v88Ev,
  (VTBL_ENTRY)&_ZN5S82C53v89Ev,
  (VTBL_ENTRY)&_ZN5S82C53v90Ev,
  (VTBL_ENTRY)&_ZN5S82C53v91Ev,
  (VTBL_ENTRY)&_ZN5S82C53v92Ev,
  (VTBL_ENTRY)&_ZN5S82C53v93Ev,
  (VTBL_ENTRY)&_ZN5S82C53v94Ev,
  (VTBL_ENTRY)&_ZN5S82C53v95Ev,
  (VTBL_ENTRY)&_ZN5S82C53v96Ev,
  (VTBL_ENTRY)&_ZN5S82C53v97Ev,
  (VTBL_ENTRY)&_ZN5S82C53v98Ev,
  (VTBL_ENTRY)&_ZN5S82C53v99Ev,
  (VTBL_ENTRY)&_ZN5S82C54v100Ev,
  (VTBL_ENTRY)&_ZN5S82C54v101Ev,
  (VTBL_ENTRY)&_ZN5S82C54v102Ev,
  (VTBL_ENTRY)&_ZN5S82C54v103Ev,
  (VTBL_ENTRY)&_ZN5S82C54v104Ev,
  (VTBL_ENTRY)&_ZN5S82C54v105Ev,
  (VTBL_ENTRY)&_ZN5S82C54v106Ev,
  (VTBL_ENTRY)&_ZN5S82C54v107Ev,
  (VTBL_ENTRY)&_ZN5S82C54v108Ev,
  (VTBL_ENTRY)&_ZN5S82C54v109Ev,
  (VTBL_ENTRY)&_ZN5S82C54v110Ev,
  (VTBL_ENTRY)&_ZN5S82C54v111Ev,
  (VTBL_ENTRY)&_ZN5S82C54v112Ev,
  (VTBL_ENTRY)&_ZN5S82C54v113Ev,
  (VTBL_ENTRY)&_ZN5S82C54v114Ev,
  (VTBL_ENTRY)&_ZN5S82C54v115Ev,
  (VTBL_ENTRY)&_ZN5S82C54v116Ev,
  (VTBL_ENTRY)&_ZN5S82C54v117Ev,
  (VTBL_ENTRY)&_ZN5S82C54v118Ev,
  (VTBL_ENTRY)&_ZN5S82C54v119Ev,
  (VTBL_ENTRY)&_ZN5S82C54v120Ev,
  (VTBL_ENTRY)&_ZN5S82C54v121Ev,
  (VTBL_ENTRY)&_ZN5S82C54v122Ev,
  (VTBL_ENTRY)&_ZN5S82C54v123Ev,
  (VTBL_ENTRY)&_ZN5S82C54v124Ev,
  (VTBL_ENTRY)&_ZN5S82C54v125Ev,
  (VTBL_ENTRY)&_ZN5S82C54v126Ev,
  (VTBL_ENTRY)&_ZN5S82C54v127Ev,
  (VTBL_ENTRY)&_ZN5S82C54v128Ev,
  (VTBL_ENTRY)&_ZN5S82C54v129Ev,
  (VTBL_ENTRY)&_ZN5S82C54v130Ev,
  (VTBL_ENTRY)&_ZN5S82C54v131Ev,
  (VTBL_ENTRY)&_ZN5S82C54v132Ev,
  (VTBL_ENTRY)&_ZN5S82C54v133Ev,
  (VTBL_ENTRY)&_ZN5S82C54v134Ev,
  (VTBL_ENTRY)&_ZN5S82C54v135Ev,
  (VTBL_ENTRY)&_ZN5S82C54v136Ev,
  (VTBL_ENTRY)&_ZN5S82C54v137Ev,
  (VTBL_ENTRY)&_ZN5S82C54v138Ev,
  (VTBL_ENTRY)&_ZN5S82C54v139Ev,
  (VTBL_ENTRY)&_ZN5S82C54v140Ev,
  (VTBL_ENTRY)&_ZN5S82C54v141Ev,
  (VTBL_ENTRY)&_ZN5S82C54v142Ev,
  (VTBL_ENTRY)&_ZN5S82C54v143Ev,
  (VTBL_ENTRY)&_ZN5S82C54v144Ev,
  (VTBL_ENTRY)&_ZN5S82C54v145Ev,
  (VTBL_ENTRY)&_ZN5S82C44v146Ev,
  (VTBL_ENTRY)&_ZN5S82C44v147Ev,
  (VTBL_ENTRY)&_ZN5S82C44v148Ev,
  (VTBL_ENTRY)&_ZN5S82C44v149Ev,
  (VTBL_ENTRY)&_ZN5S82C44v150Ev,
  (VTBL_ENTRY)&_ZN5S82C44v151Ev,
  (VTBL_ENTRY)&_ZN5S82C44v152Ev,
  (VTBL_ENTRY)&_ZN5S82C44v153Ev,
  (VTBL_ENTRY)&_ZN5S82C44v154Ev,
  (VTBL_ENTRY)&_ZN5S82C44v155Ev,
  (VTBL_ENTRY)&_ZN5S82C44v156Ev,
  (VTBL_ENTRY)&_ZN5S82C44v157Ev,
  (VTBL_ENTRY)&_ZN5S82C44v158Ev,
  (VTBL_ENTRY)&_ZN5S82C44v159Ev,
  (VTBL_ENTRY)&_ZN5S82C44v160Ev,
  (VTBL_ENTRY)&_ZN5S82C44v161Ev,
  (VTBL_ENTRY)&_ZN5S82C44v162Ev,
  (VTBL_ENTRY)&_ZN5S82C44v163Ev,
  (VTBL_ENTRY)&_ZN5S82C44v164Ev,
  (VTBL_ENTRY)&_ZN5S82C44v165Ev,
  (VTBL_ENTRY)&_ZN5S82C44v166Ev,
  (VTBL_ENTRY)&_ZN5S82C44v167Ev,
  (VTBL_ENTRY)&_ZN5S82C44v168Ev,
  (VTBL_ENTRY)&_ZN5S82C44v169Ev,
  (VTBL_ENTRY)&_ZN5S82C44v170Ev,
  (VTBL_ENTRY)&_ZN5S82C44v171Ev,
  (VTBL_ENTRY)&_ZN5S82C44v172Ev,
  (VTBL_ENTRY)&_ZN5S82C44v173Ev,
  (VTBL_ENTRY)&_ZN5S82C44v174Ev,
  (VTBL_ENTRY)&_ZN5S82C44v175Ev,
  (VTBL_ENTRY)&_ZN5S82C44v176Ev,
  (VTBL_ENTRY)&_ZN5S82C44v177Ev,
  (VTBL_ENTRY)&_ZN5S82C44v178Ev,
  (VTBL_ENTRY)&_ZN5S82C44v179Ev,
  (VTBL_ENTRY)&_ZN5S82C44v180Ev,
  (VTBL_ENTRY)&_ZN5S82C44v181Ev,
  (VTBL_ENTRY)&_ZN5S82C44v182Ev,
  (VTBL_ENTRY)&_ZN5S82C44v183Ev,
  (VTBL_ENTRY)&_ZN5S82C44v184Ev,
  (VTBL_ENTRY)&_ZN5S82C34v185Ev,
  (VTBL_ENTRY)&_ZN5S82C34v186Ev,
  (VTBL_ENTRY)&_ZN5S82C34v187Ev,
  (VTBL_ENTRY)&_ZN5S82C34v188Ev,
  (VTBL_ENTRY)&_ZN5S82C34v189Ev,
  (VTBL_ENTRY)&_ZN5S82C34v190Ev,
  (VTBL_ENTRY)&_ZN5S82C34v191Ev,
  (VTBL_ENTRY)&_ZN5S82C34v192Ev,
  (VTBL_ENTRY)&_ZN5S82C34v193Ev,
  (VTBL_ENTRY)&_ZN5S82C34v194Ev,
  (VTBL_ENTRY)&_ZN5S82C34v195Ev,
  (VTBL_ENTRY)&_ZN5S82C34v196Ev,
  (VTBL_ENTRY)&_ZN5S82C34v197Ev,
  (VTBL_ENTRY)&_ZN5S82C34v198Ev,
  (VTBL_ENTRY)&_ZN5S82C34v199Ev,
  (VTBL_ENTRY)&_ZN5S82C34v200Ev,
  (VTBL_ENTRY)&_ZN5S82C34v201Ev,
  (VTBL_ENTRY)&_ZN5S82C34v202Ev,
  (VTBL_ENTRY)&_ZN5S82C34v203Ev,
  (VTBL_ENTRY)&_ZN5S82C34v204Ev,
  (VTBL_ENTRY)&_ZN5S82C34v205Ev,
  (VTBL_ENTRY)&_ZN5S82C34v206Ev,
  (VTBL_ENTRY)&_ZN5S82C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S82C3[];
extern  VTBL_ENTRY _ZTV5S82C3[];
Class_Descriptor cd_S82C3 = {  "S82C3", // class name
  bases_S82C3, 4,
  &(vtc_S82C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S82C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S82C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C2  : S82C3 {
  virtual  ~S82C2(); // _ZN5S82C2D1Ev
  virtual void  v208(); // _ZN5S82C24v208Ev
  virtual void  v209(); // _ZN5S82C24v209Ev
  virtual void  v210(); // _ZN5S82C24v210Ev
  S82C2(); // tgen
};
//SIG(-1 S82C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3}


 S82C2 ::~S82C2(){ note_dtor("S82C2", this);}
void  S82C2 ::v208(){vfunc_called(this, "_ZN5S82C24v208Ev");}
void  S82C2 ::v209(){vfunc_called(this, "_ZN5S82C24v209Ev");}
void  S82C2 ::v210(){vfunc_called(this, "_ZN5S82C24v210Ev");}
S82C2 ::S82C2(){ note_ctor("S82C2", this);} // tgen

static void Test_S82C2()
{
  extern Class_Descriptor cd_S82C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S82C2, buf);
    S82C2 *dp, &lv = *(dp=new (buf) S82C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S82C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C2)");
    check_base_class_offset(lv, (S82C7*)(S82C6*)(S82C5*)(S82C4*)(S82C3*), 0, "S82C2");
    check_base_class_offset(lv, (S82C6*)(S82C5*)(S82C4*)(S82C3*), 0, "S82C2");
    check_base_class_offset(lv, (S82C5*)(S82C4*)(S82C3*), 0, "S82C2");
    check_base_class_offset(lv, (S82C4*)(S82C3*), 0, "S82C2");
    check_base_class_offset(lv, (S82C3*), 0, "S82C2");
    test_class_info(&lv, &cd_S82C2);
    dp->~S82C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C2(Test_S82C2, "S82C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S82C2C1Ev();
extern void _ZN5S82C2D1Ev();
Name_Map name_map_S82C2[] = {
  NSPAIR(_ZN5S82C2C1Ev),
  NSPAIR(_ZN5S82C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S82C7;
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
extern Class_Descriptor cd_S82C6;
extern VTBL_ENTRY _ZTI5S82C6[];
extern  VTBL_ENTRY _ZTV5S82C6[];
extern Class_Descriptor cd_S82C5;
extern VTBL_ENTRY _ZTI5S82C5[];
extern  VTBL_ENTRY _ZTV5S82C5[];
extern Class_Descriptor cd_S82C4;
extern VTBL_ENTRY _ZTI5S82C4[];
extern  VTBL_ENTRY _ZTV5S82C4[];
extern Class_Descriptor cd_S82C3;
extern VTBL_ENTRY _ZTI5S82C3[];
extern  VTBL_ENTRY _ZTV5S82C3[];
static Base_Class bases_S82C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S82C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S82C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S82C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S82C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S82C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S82C2[];
extern void _ZN5S82C2D1Ev();
extern void _ZN5S82C2D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
extern void _ZN5S82C63v68Ev();
extern void _ZN5S82C63v69Ev();
extern void _ZN5S82C53v70Ev();
extern void _ZN5S82C53v71Ev();
extern void _ZN5S82C53v72Ev();
extern void _ZN5S82C53v73Ev();
extern void _ZN5S82C53v74Ev();
extern void _ZN5S82C53v75Ev();
extern void _ZN5S82C53v76Ev();
extern void _ZN5S82C53v77Ev();
extern void _ZN5S82C53v78Ev();
extern void _ZN5S82C53v79Ev();
extern void _ZN5S82C53v80Ev();
extern void _ZN5S82C53v81Ev();
extern void _ZN5S82C53v82Ev();
extern void _ZN5S82C53v83Ev();
extern void _ZN5S82C53v84Ev();
extern void _ZN5S82C53v85Ev();
extern void _ZN5S82C53v86Ev();
extern void _ZN5S82C53v87Ev();
extern void _ZN5S82C53v88Ev();
extern void _ZN5S82C53v89Ev();
extern void _ZN5S82C53v90Ev();
extern void _ZN5S82C53v91Ev();
extern void _ZN5S82C53v92Ev();
extern void _ZN5S82C53v93Ev();
extern void _ZN5S82C53v94Ev();
extern void _ZN5S82C53v95Ev();
extern void _ZN5S82C53v96Ev();
extern void _ZN5S82C53v97Ev();
extern void _ZN5S82C53v98Ev();
extern void _ZN5S82C53v99Ev();
extern void _ZN5S82C54v100Ev();
extern void _ZN5S82C54v101Ev();
extern void _ZN5S82C54v102Ev();
extern void _ZN5S82C54v103Ev();
extern void _ZN5S82C54v104Ev();
extern void _ZN5S82C54v105Ev();
extern void _ZN5S82C54v106Ev();
extern void _ZN5S82C54v107Ev();
extern void _ZN5S82C54v108Ev();
extern void _ZN5S82C54v109Ev();
extern void _ZN5S82C54v110Ev();
extern void _ZN5S82C54v111Ev();
extern void _ZN5S82C54v112Ev();
extern void _ZN5S82C54v113Ev();
extern void _ZN5S82C54v114Ev();
extern void _ZN5S82C54v115Ev();
extern void _ZN5S82C54v116Ev();
extern void _ZN5S82C54v117Ev();
extern void _ZN5S82C54v118Ev();
extern void _ZN5S82C54v119Ev();
extern void _ZN5S82C54v120Ev();
extern void _ZN5S82C54v121Ev();
extern void _ZN5S82C54v122Ev();
extern void _ZN5S82C54v123Ev();
extern void _ZN5S82C54v124Ev();
extern void _ZN5S82C54v125Ev();
extern void _ZN5S82C54v126Ev();
extern void _ZN5S82C54v127Ev();
extern void _ZN5S82C54v128Ev();
extern void _ZN5S82C54v129Ev();
extern void _ZN5S82C54v130Ev();
extern void _ZN5S82C54v131Ev();
extern void _ZN5S82C54v132Ev();
extern void _ZN5S82C54v133Ev();
extern void _ZN5S82C54v134Ev();
extern void _ZN5S82C54v135Ev();
extern void _ZN5S82C54v136Ev();
extern void _ZN5S82C54v137Ev();
extern void _ZN5S82C54v138Ev();
extern void _ZN5S82C54v139Ev();
extern void _ZN5S82C54v140Ev();
extern void _ZN5S82C54v141Ev();
extern void _ZN5S82C54v142Ev();
extern void _ZN5S82C54v143Ev();
extern void _ZN5S82C54v144Ev();
extern void _ZN5S82C54v145Ev();
extern void _ZN5S82C44v146Ev();
extern void _ZN5S82C44v147Ev();
extern void _ZN5S82C44v148Ev();
extern void _ZN5S82C44v149Ev();
extern void _ZN5S82C44v150Ev();
extern void _ZN5S82C44v151Ev();
extern void _ZN5S82C44v152Ev();
extern void _ZN5S82C44v153Ev();
extern void _ZN5S82C44v154Ev();
extern void _ZN5S82C44v155Ev();
extern void _ZN5S82C44v156Ev();
extern void _ZN5S82C44v157Ev();
extern void _ZN5S82C44v158Ev();
extern void _ZN5S82C44v159Ev();
extern void _ZN5S82C44v160Ev();
extern void _ZN5S82C44v161Ev();
extern void _ZN5S82C44v162Ev();
extern void _ZN5S82C44v163Ev();
extern void _ZN5S82C44v164Ev();
extern void _ZN5S82C44v165Ev();
extern void _ZN5S82C44v166Ev();
extern void _ZN5S82C44v167Ev();
extern void _ZN5S82C44v168Ev();
extern void _ZN5S82C44v169Ev();
extern void _ZN5S82C44v170Ev();
extern void _ZN5S82C44v171Ev();
extern void _ZN5S82C44v172Ev();
extern void _ZN5S82C44v173Ev();
extern void _ZN5S82C44v174Ev();
extern void _ZN5S82C44v175Ev();
extern void _ZN5S82C44v176Ev();
extern void _ZN5S82C44v177Ev();
extern void _ZN5S82C44v178Ev();
extern void _ZN5S82C44v179Ev();
extern void _ZN5S82C44v180Ev();
extern void _ZN5S82C44v181Ev();
extern void _ZN5S82C44v182Ev();
extern void _ZN5S82C44v183Ev();
extern void _ZN5S82C44v184Ev();
extern void _ZN5S82C34v185Ev();
extern void _ZN5S82C34v186Ev();
extern void _ZN5S82C34v187Ev();
extern void _ZN5S82C34v188Ev();
extern void _ZN5S82C34v189Ev();
extern void _ZN5S82C34v190Ev();
extern void _ZN5S82C34v191Ev();
extern void _ZN5S82C34v192Ev();
extern void _ZN5S82C34v193Ev();
extern void _ZN5S82C34v194Ev();
extern void _ZN5S82C34v195Ev();
extern void _ZN5S82C34v196Ev();
extern void _ZN5S82C34v197Ev();
extern void _ZN5S82C34v198Ev();
extern void _ZN5S82C34v199Ev();
extern void _ZN5S82C34v200Ev();
extern void _ZN5S82C34v201Ev();
extern void _ZN5S82C34v202Ev();
extern void _ZN5S82C34v203Ev();
extern void _ZN5S82C34v204Ev();
extern void _ZN5S82C34v205Ev();
extern void _ZN5S82C34v206Ev();
extern void _ZN5S82C34v207Ev();
extern void _ZN5S82C24v208Ev();
extern void _ZN5S82C24v209Ev();
extern void _ZN5S82C24v210Ev();
static  VTBL_ENTRY vtc_S82C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C2[0]),
  (VTBL_ENTRY)&_ZN5S82C2D1Ev,
  (VTBL_ENTRY)&_ZN5S82C2D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
  (VTBL_ENTRY)&_ZN5S82C63v68Ev,
  (VTBL_ENTRY)&_ZN5S82C63v69Ev,
  (VTBL_ENTRY)&_ZN5S82C53v70Ev,
  (VTBL_ENTRY)&_ZN5S82C53v71Ev,
  (VTBL_ENTRY)&_ZN5S82C53v72Ev,
  (VTBL_ENTRY)&_ZN5S82C53v73Ev,
  (VTBL_ENTRY)&_ZN5S82C53v74Ev,
  (VTBL_ENTRY)&_ZN5S82C53v75Ev,
  (VTBL_ENTRY)&_ZN5S82C53v76Ev,
  (VTBL_ENTRY)&_ZN5S82C53v77Ev,
  (VTBL_ENTRY)&_ZN5S82C53v78Ev,
  (VTBL_ENTRY)&_ZN5S82C53v79Ev,
  (VTBL_ENTRY)&_ZN5S82C53v80Ev,
  (VTBL_ENTRY)&_ZN5S82C53v81Ev,
  (VTBL_ENTRY)&_ZN5S82C53v82Ev,
  (VTBL_ENTRY)&_ZN5S82C53v83Ev,
  (VTBL_ENTRY)&_ZN5S82C53v84Ev,
  (VTBL_ENTRY)&_ZN5S82C53v85Ev,
  (VTBL_ENTRY)&_ZN5S82C53v86Ev,
  (VTBL_ENTRY)&_ZN5S82C53v87Ev,
  (VTBL_ENTRY)&_ZN5S82C53v88Ev,
  (VTBL_ENTRY)&_ZN5S82C53v89Ev,
  (VTBL_ENTRY)&_ZN5S82C53v90Ev,
  (VTBL_ENTRY)&_ZN5S82C53v91Ev,
  (VTBL_ENTRY)&_ZN5S82C53v92Ev,
  (VTBL_ENTRY)&_ZN5S82C53v93Ev,
  (VTBL_ENTRY)&_ZN5S82C53v94Ev,
  (VTBL_ENTRY)&_ZN5S82C53v95Ev,
  (VTBL_ENTRY)&_ZN5S82C53v96Ev,
  (VTBL_ENTRY)&_ZN5S82C53v97Ev,
  (VTBL_ENTRY)&_ZN5S82C53v98Ev,
  (VTBL_ENTRY)&_ZN5S82C53v99Ev,
  (VTBL_ENTRY)&_ZN5S82C54v100Ev,
  (VTBL_ENTRY)&_ZN5S82C54v101Ev,
  (VTBL_ENTRY)&_ZN5S82C54v102Ev,
  (VTBL_ENTRY)&_ZN5S82C54v103Ev,
  (VTBL_ENTRY)&_ZN5S82C54v104Ev,
  (VTBL_ENTRY)&_ZN5S82C54v105Ev,
  (VTBL_ENTRY)&_ZN5S82C54v106Ev,
  (VTBL_ENTRY)&_ZN5S82C54v107Ev,
  (VTBL_ENTRY)&_ZN5S82C54v108Ev,
  (VTBL_ENTRY)&_ZN5S82C54v109Ev,
  (VTBL_ENTRY)&_ZN5S82C54v110Ev,
  (VTBL_ENTRY)&_ZN5S82C54v111Ev,
  (VTBL_ENTRY)&_ZN5S82C54v112Ev,
  (VTBL_ENTRY)&_ZN5S82C54v113Ev,
  (VTBL_ENTRY)&_ZN5S82C54v114Ev,
  (VTBL_ENTRY)&_ZN5S82C54v115Ev,
  (VTBL_ENTRY)&_ZN5S82C54v116Ev,
  (VTBL_ENTRY)&_ZN5S82C54v117Ev,
  (VTBL_ENTRY)&_ZN5S82C54v118Ev,
  (VTBL_ENTRY)&_ZN5S82C54v119Ev,
  (VTBL_ENTRY)&_ZN5S82C54v120Ev,
  (VTBL_ENTRY)&_ZN5S82C54v121Ev,
  (VTBL_ENTRY)&_ZN5S82C54v122Ev,
  (VTBL_ENTRY)&_ZN5S82C54v123Ev,
  (VTBL_ENTRY)&_ZN5S82C54v124Ev,
  (VTBL_ENTRY)&_ZN5S82C54v125Ev,
  (VTBL_ENTRY)&_ZN5S82C54v126Ev,
  (VTBL_ENTRY)&_ZN5S82C54v127Ev,
  (VTBL_ENTRY)&_ZN5S82C54v128Ev,
  (VTBL_ENTRY)&_ZN5S82C54v129Ev,
  (VTBL_ENTRY)&_ZN5S82C54v130Ev,
  (VTBL_ENTRY)&_ZN5S82C54v131Ev,
  (VTBL_ENTRY)&_ZN5S82C54v132Ev,
  (VTBL_ENTRY)&_ZN5S82C54v133Ev,
  (VTBL_ENTRY)&_ZN5S82C54v134Ev,
  (VTBL_ENTRY)&_ZN5S82C54v135Ev,
  (VTBL_ENTRY)&_ZN5S82C54v136Ev,
  (VTBL_ENTRY)&_ZN5S82C54v137Ev,
  (VTBL_ENTRY)&_ZN5S82C54v138Ev,
  (VTBL_ENTRY)&_ZN5S82C54v139Ev,
  (VTBL_ENTRY)&_ZN5S82C54v140Ev,
  (VTBL_ENTRY)&_ZN5S82C54v141Ev,
  (VTBL_ENTRY)&_ZN5S82C54v142Ev,
  (VTBL_ENTRY)&_ZN5S82C54v143Ev,
  (VTBL_ENTRY)&_ZN5S82C54v144Ev,
  (VTBL_ENTRY)&_ZN5S82C54v145Ev,
  (VTBL_ENTRY)&_ZN5S82C44v146Ev,
  (VTBL_ENTRY)&_ZN5S82C44v147Ev,
  (VTBL_ENTRY)&_ZN5S82C44v148Ev,
  (VTBL_ENTRY)&_ZN5S82C44v149Ev,
  (VTBL_ENTRY)&_ZN5S82C44v150Ev,
  (VTBL_ENTRY)&_ZN5S82C44v151Ev,
  (VTBL_ENTRY)&_ZN5S82C44v152Ev,
  (VTBL_ENTRY)&_ZN5S82C44v153Ev,
  (VTBL_ENTRY)&_ZN5S82C44v154Ev,
  (VTBL_ENTRY)&_ZN5S82C44v155Ev,
  (VTBL_ENTRY)&_ZN5S82C44v156Ev,
  (VTBL_ENTRY)&_ZN5S82C44v157Ev,
  (VTBL_ENTRY)&_ZN5S82C44v158Ev,
  (VTBL_ENTRY)&_ZN5S82C44v159Ev,
  (VTBL_ENTRY)&_ZN5S82C44v160Ev,
  (VTBL_ENTRY)&_ZN5S82C44v161Ev,
  (VTBL_ENTRY)&_ZN5S82C44v162Ev,
  (VTBL_ENTRY)&_ZN5S82C44v163Ev,
  (VTBL_ENTRY)&_ZN5S82C44v164Ev,
  (VTBL_ENTRY)&_ZN5S82C44v165Ev,
  (VTBL_ENTRY)&_ZN5S82C44v166Ev,
  (VTBL_ENTRY)&_ZN5S82C44v167Ev,
  (VTBL_ENTRY)&_ZN5S82C44v168Ev,
  (VTBL_ENTRY)&_ZN5S82C44v169Ev,
  (VTBL_ENTRY)&_ZN5S82C44v170Ev,
  (VTBL_ENTRY)&_ZN5S82C44v171Ev,
  (VTBL_ENTRY)&_ZN5S82C44v172Ev,
  (VTBL_ENTRY)&_ZN5S82C44v173Ev,
  (VTBL_ENTRY)&_ZN5S82C44v174Ev,
  (VTBL_ENTRY)&_ZN5S82C44v175Ev,
  (VTBL_ENTRY)&_ZN5S82C44v176Ev,
  (VTBL_ENTRY)&_ZN5S82C44v177Ev,
  (VTBL_ENTRY)&_ZN5S82C44v178Ev,
  (VTBL_ENTRY)&_ZN5S82C44v179Ev,
  (VTBL_ENTRY)&_ZN5S82C44v180Ev,
  (VTBL_ENTRY)&_ZN5S82C44v181Ev,
  (VTBL_ENTRY)&_ZN5S82C44v182Ev,
  (VTBL_ENTRY)&_ZN5S82C44v183Ev,
  (VTBL_ENTRY)&_ZN5S82C44v184Ev,
  (VTBL_ENTRY)&_ZN5S82C34v185Ev,
  (VTBL_ENTRY)&_ZN5S82C34v186Ev,
  (VTBL_ENTRY)&_ZN5S82C34v187Ev,
  (VTBL_ENTRY)&_ZN5S82C34v188Ev,
  (VTBL_ENTRY)&_ZN5S82C34v189Ev,
  (VTBL_ENTRY)&_ZN5S82C34v190Ev,
  (VTBL_ENTRY)&_ZN5S82C34v191Ev,
  (VTBL_ENTRY)&_ZN5S82C34v192Ev,
  (VTBL_ENTRY)&_ZN5S82C34v193Ev,
  (VTBL_ENTRY)&_ZN5S82C34v194Ev,
  (VTBL_ENTRY)&_ZN5S82C34v195Ev,
  (VTBL_ENTRY)&_ZN5S82C34v196Ev,
  (VTBL_ENTRY)&_ZN5S82C34v197Ev,
  (VTBL_ENTRY)&_ZN5S82C34v198Ev,
  (VTBL_ENTRY)&_ZN5S82C34v199Ev,
  (VTBL_ENTRY)&_ZN5S82C34v200Ev,
  (VTBL_ENTRY)&_ZN5S82C34v201Ev,
  (VTBL_ENTRY)&_ZN5S82C34v202Ev,
  (VTBL_ENTRY)&_ZN5S82C34v203Ev,
  (VTBL_ENTRY)&_ZN5S82C34v204Ev,
  (VTBL_ENTRY)&_ZN5S82C34v205Ev,
  (VTBL_ENTRY)&_ZN5S82C34v206Ev,
  (VTBL_ENTRY)&_ZN5S82C34v207Ev,
  (VTBL_ENTRY)&_ZN5S82C24v208Ev,
  (VTBL_ENTRY)&_ZN5S82C24v209Ev,
  (VTBL_ENTRY)&_ZN5S82C24v210Ev,
};
extern VTBL_ENTRY _ZTI5S82C2[];
extern  VTBL_ENTRY _ZTV5S82C2[];
Class_Descriptor cd_S82C2 = {  "S82C2", // class name
  bases_S82C2, 5,
  &(vtc_S82C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S82C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S82C2),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S82C1  : S82C2 {
  unsigned int s82c1f0:1;
  void *s82c1f1[2];
  virtual  ~S82C1(); // _ZN5S82C1D1Ev
  virtual void  v1(); // _ZN5S82C12v1Ev
  virtual void  v2(); // _ZN5S82C12v2Ev
  virtual void  v3(); // _ZN5S82C12v3Ev
  S82C1(); // tgen
};
//SIG(1 S82C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v208 v209 v210} vd v1 v2 v3 Fi:1 Fp[2]}


 S82C1 ::~S82C1(){ note_dtor("S82C1", this);}
void  S82C1 ::v1(){vfunc_called(this, "_ZN5S82C12v1Ev");}
void  S82C1 ::v2(){vfunc_called(this, "_ZN5S82C12v2Ev");}
void  S82C1 ::v3(){vfunc_called(this, "_ZN5S82C12v3Ev");}
S82C1 ::S82C1(){ note_ctor("S82C1", this);} // tgen

static void Test_S82C1()
{
  extern Class_Descriptor cd_S82C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(112,158)];
    init_test(&cd_S82C1, buf);
    S82C1 *dp, &lv = *(dp=new (buf) S82C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(888,628), "sizeof(S82C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S82C1)");
    check_base_class_offset(lv, (S82C7*)(S82C6*)(S82C5*)(S82C4*)(S82C3*)(S82C2*), 0, "S82C1");
    check_base_class_offset(lv, (S82C6*)(S82C5*)(S82C4*)(S82C3*)(S82C2*), 0, "S82C1");
    check_base_class_offset(lv, (S82C5*)(S82C4*)(S82C3*)(S82C2*), 0, "S82C1");
    check_base_class_offset(lv, (S82C4*)(S82C3*)(S82C2*), 0, "S82C1");
    check_base_class_offset(lv, (S82C3*)(S82C2*), 0, "S82C1");
    check_base_class_offset(lv, (S82C2*), 0, "S82C1");
    set_bf_and_test(lv, s82c1f0, ABISELECT(864,616), 0, 1, 1, "S82C1");
    check_field_offset(lv, s82c1f1, ABISELECT(872,620), "S82C1.s82c1f1");
    test_class_info(&lv, &cd_S82C1);
    dp->~S82C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS82C1(Test_S82C1, "S82C1", ABISELECT(888,628));

#else // __cplusplus

extern void _ZN5S82C1C1Ev();
extern void _ZN5S82C1D1Ev();
Name_Map name_map_S82C1[] = {
  NSPAIR(_ZN5S82C1C1Ev),
  NSPAIR(_ZN5S82C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S82C7;
extern VTBL_ENTRY _ZTI5S82C7[];
extern  VTBL_ENTRY _ZTV5S82C7[];
extern Class_Descriptor cd_S82C6;
extern VTBL_ENTRY _ZTI5S82C6[];
extern  VTBL_ENTRY _ZTV5S82C6[];
extern Class_Descriptor cd_S82C5;
extern VTBL_ENTRY _ZTI5S82C5[];
extern  VTBL_ENTRY _ZTV5S82C5[];
extern Class_Descriptor cd_S82C4;
extern VTBL_ENTRY _ZTI5S82C4[];
extern  VTBL_ENTRY _ZTV5S82C4[];
extern Class_Descriptor cd_S82C3;
extern VTBL_ENTRY _ZTI5S82C3[];
extern  VTBL_ENTRY _ZTV5S82C3[];
extern Class_Descriptor cd_S82C2;
extern VTBL_ENTRY _ZTI5S82C2[];
extern  VTBL_ENTRY _ZTV5S82C2[];
static Base_Class bases_S82C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S82C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S82C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S82C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S82C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S82C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S82C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S82C1[];
extern void _ZN5S82C1D1Ev();
extern void _ZN5S82C1D0Ev();
extern void _ZN5S82C72v4Ev();
extern void _ZN5S82C72v5Ev();
extern void _ZN5S82C72v6Ev();
extern void _ZN5S82C72v7Ev();
extern void _ZN5S82C72v8Ev();
extern void _ZN5S82C72v9Ev();
extern void _ZN5S82C73v10Ev();
extern void _ZN5S82C73v11Ev();
extern void _ZN5S82C73v12Ev();
extern void _ZN5S82C73v13Ev();
extern void _ZN5S82C73v14Ev();
extern void _ZN5S82C73v15Ev();
extern void _ZN5S82C73v16Ev();
extern void _ZN5S82C73v17Ev();
extern void _ZN5S82C73v18Ev();
extern void _ZN5S82C73v19Ev();
extern void _ZN5S82C73v20Ev();
extern void _ZN5S82C73v21Ev();
extern void _ZN5S82C73v22Ev();
extern void _ZN5S82C73v23Ev();
extern void _ZN5S82C73v24Ev();
extern void _ZN5S82C73v25Ev();
extern void _ZN5S82C73v26Ev();
extern void _ZN5S82C73v27Ev();
extern void _ZN5S82C73v28Ev();
extern void _ZN5S82C73v29Ev();
extern void _ZN5S82C73v30Ev();
extern void _ZN5S82C73v31Ev();
extern void _ZN5S82C73v32Ev();
extern void _ZN5S82C73v33Ev();
extern void _ZN5S82C73v34Ev();
extern void _ZN5S82C73v35Ev();
extern void _ZN5S82C73v36Ev();
extern void _ZN5S82C73v37Ev();
extern void _ZN5S82C73v38Ev();
extern void _ZN5S82C73v39Ev();
extern void _ZN5S82C73v40Ev();
extern void _ZN5S82C73v41Ev();
extern void _ZN5S82C73v42Ev();
extern void _ZN5S82C73v43Ev();
extern void _ZN5S82C73v44Ev();
extern void _ZN5S82C73v45Ev();
extern void _ZN5S82C73v46Ev();
extern void _ZN5S82C73v47Ev();
extern void _ZN5S82C73v48Ev();
extern void _ZN5S82C73v49Ev();
extern void _ZN5S82C73v50Ev();
extern void _ZN5S82C73v51Ev();
extern void _ZN5S82C73v52Ev();
extern void _ZN5S82C73v53Ev();
extern void _ZN5S82C73v54Ev();
extern void _ZN5S82C73v55Ev();
extern void _ZN5S82C73v56Ev();
extern void _ZN5S82C73v57Ev();
extern void _ZN5S82C73v58Ev();
extern void _ZN5S82C73v59Ev();
extern void _ZN5S82C73v60Ev();
extern void _ZN5S82C73v61Ev();
extern void _ZN5S82C73v62Ev();
extern void _ZN5S82C73v63Ev();
extern void _ZN5S82C73v64Ev();
extern void _ZN5S82C73v65Ev();
extern void _ZN5S82C73v66Ev();
extern void _ZN5S82C73v67Ev();
extern void _ZN5S82C63v68Ev();
extern void _ZN5S82C63v69Ev();
extern void _ZN5S82C53v70Ev();
extern void _ZN5S82C53v71Ev();
extern void _ZN5S82C53v72Ev();
extern void _ZN5S82C53v73Ev();
extern void _ZN5S82C53v74Ev();
extern void _ZN5S82C53v75Ev();
extern void _ZN5S82C53v76Ev();
extern void _ZN5S82C53v77Ev();
extern void _ZN5S82C53v78Ev();
extern void _ZN5S82C53v79Ev();
extern void _ZN5S82C53v80Ev();
extern void _ZN5S82C53v81Ev();
extern void _ZN5S82C53v82Ev();
extern void _ZN5S82C53v83Ev();
extern void _ZN5S82C53v84Ev();
extern void _ZN5S82C53v85Ev();
extern void _ZN5S82C53v86Ev();
extern void _ZN5S82C53v87Ev();
extern void _ZN5S82C53v88Ev();
extern void _ZN5S82C53v89Ev();
extern void _ZN5S82C53v90Ev();
extern void _ZN5S82C53v91Ev();
extern void _ZN5S82C53v92Ev();
extern void _ZN5S82C53v93Ev();
extern void _ZN5S82C53v94Ev();
extern void _ZN5S82C53v95Ev();
extern void _ZN5S82C53v96Ev();
extern void _ZN5S82C53v97Ev();
extern void _ZN5S82C53v98Ev();
extern void _ZN5S82C53v99Ev();
extern void _ZN5S82C54v100Ev();
extern void _ZN5S82C54v101Ev();
extern void _ZN5S82C54v102Ev();
extern void _ZN5S82C54v103Ev();
extern void _ZN5S82C54v104Ev();
extern void _ZN5S82C54v105Ev();
extern void _ZN5S82C54v106Ev();
extern void _ZN5S82C54v107Ev();
extern void _ZN5S82C54v108Ev();
extern void _ZN5S82C54v109Ev();
extern void _ZN5S82C54v110Ev();
extern void _ZN5S82C54v111Ev();
extern void _ZN5S82C54v112Ev();
extern void _ZN5S82C54v113Ev();
extern void _ZN5S82C54v114Ev();
extern void _ZN5S82C54v115Ev();
extern void _ZN5S82C54v116Ev();
extern void _ZN5S82C54v117Ev();
extern void _ZN5S82C54v118Ev();
extern void _ZN5S82C54v119Ev();
extern void _ZN5S82C54v120Ev();
extern void _ZN5S82C54v121Ev();
extern void _ZN5S82C54v122Ev();
extern void _ZN5S82C54v123Ev();
extern void _ZN5S82C54v124Ev();
extern void _ZN5S82C54v125Ev();
extern void _ZN5S82C54v126Ev();
extern void _ZN5S82C54v127Ev();
extern void _ZN5S82C54v128Ev();
extern void _ZN5S82C54v129Ev();
extern void _ZN5S82C54v130Ev();
extern void _ZN5S82C54v131Ev();
extern void _ZN5S82C54v132Ev();
extern void _ZN5S82C54v133Ev();
extern void _ZN5S82C54v134Ev();
extern void _ZN5S82C54v135Ev();
extern void _ZN5S82C54v136Ev();
extern void _ZN5S82C54v137Ev();
extern void _ZN5S82C54v138Ev();
extern void _ZN5S82C54v139Ev();
extern void _ZN5S82C54v140Ev();
extern void _ZN5S82C54v141Ev();
extern void _ZN5S82C54v142Ev();
extern void _ZN5S82C54v143Ev();
extern void _ZN5S82C54v144Ev();
extern void _ZN5S82C54v145Ev();
extern void _ZN5S82C44v146Ev();
extern void _ZN5S82C44v147Ev();
extern void _ZN5S82C44v148Ev();
extern void _ZN5S82C44v149Ev();
extern void _ZN5S82C44v150Ev();
extern void _ZN5S82C44v151Ev();
extern void _ZN5S82C44v152Ev();
extern void _ZN5S82C44v153Ev();
extern void _ZN5S82C44v154Ev();
extern void _ZN5S82C44v155Ev();
extern void _ZN5S82C44v156Ev();
extern void _ZN5S82C44v157Ev();
extern void _ZN5S82C44v158Ev();
extern void _ZN5S82C44v159Ev();
extern void _ZN5S82C44v160Ev();
extern void _ZN5S82C44v161Ev();
extern void _ZN5S82C44v162Ev();
extern void _ZN5S82C44v163Ev();
extern void _ZN5S82C44v164Ev();
extern void _ZN5S82C44v165Ev();
extern void _ZN5S82C44v166Ev();
extern void _ZN5S82C44v167Ev();
extern void _ZN5S82C44v168Ev();
extern void _ZN5S82C44v169Ev();
extern void _ZN5S82C44v170Ev();
extern void _ZN5S82C44v171Ev();
extern void _ZN5S82C44v172Ev();
extern void _ZN5S82C44v173Ev();
extern void _ZN5S82C44v174Ev();
extern void _ZN5S82C44v175Ev();
extern void _ZN5S82C44v176Ev();
extern void _ZN5S82C44v177Ev();
extern void _ZN5S82C44v178Ev();
extern void _ZN5S82C44v179Ev();
extern void _ZN5S82C44v180Ev();
extern void _ZN5S82C44v181Ev();
extern void _ZN5S82C44v182Ev();
extern void _ZN5S82C44v183Ev();
extern void _ZN5S82C44v184Ev();
extern void _ZN5S82C34v185Ev();
extern void _ZN5S82C34v186Ev();
extern void _ZN5S82C34v187Ev();
extern void _ZN5S82C34v188Ev();
extern void _ZN5S82C34v189Ev();
extern void _ZN5S82C34v190Ev();
extern void _ZN5S82C34v191Ev();
extern void _ZN5S82C34v192Ev();
extern void _ZN5S82C34v193Ev();
extern void _ZN5S82C34v194Ev();
extern void _ZN5S82C34v195Ev();
extern void _ZN5S82C34v196Ev();
extern void _ZN5S82C34v197Ev();
extern void _ZN5S82C34v198Ev();
extern void _ZN5S82C34v199Ev();
extern void _ZN5S82C34v200Ev();
extern void _ZN5S82C34v201Ev();
extern void _ZN5S82C34v202Ev();
extern void _ZN5S82C34v203Ev();
extern void _ZN5S82C34v204Ev();
extern void _ZN5S82C34v205Ev();
extern void _ZN5S82C34v206Ev();
extern void _ZN5S82C34v207Ev();
extern void _ZN5S82C24v208Ev();
extern void _ZN5S82C24v209Ev();
extern void _ZN5S82C24v210Ev();
extern void _ZN5S82C12v1Ev();
extern void _ZN5S82C12v2Ev();
extern void _ZN5S82C12v3Ev();
static  VTBL_ENTRY vtc_S82C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S82C1[0]),
  (VTBL_ENTRY)&_ZN5S82C1D1Ev,
  (VTBL_ENTRY)&_ZN5S82C1D0Ev,
  (VTBL_ENTRY)&_ZN5S82C72v4Ev,
  (VTBL_ENTRY)&_ZN5S82C72v5Ev,
  (VTBL_ENTRY)&_ZN5S82C72v6Ev,
  (VTBL_ENTRY)&_ZN5S82C72v7Ev,
  (VTBL_ENTRY)&_ZN5S82C72v8Ev,
  (VTBL_ENTRY)&_ZN5S82C72v9Ev,
  (VTBL_ENTRY)&_ZN5S82C73v10Ev,
  (VTBL_ENTRY)&_ZN5S82C73v11Ev,
  (VTBL_ENTRY)&_ZN5S82C73v12Ev,
  (VTBL_ENTRY)&_ZN5S82C73v13Ev,
  (VTBL_ENTRY)&_ZN5S82C73v14Ev,
  (VTBL_ENTRY)&_ZN5S82C73v15Ev,
  (VTBL_ENTRY)&_ZN5S82C73v16Ev,
  (VTBL_ENTRY)&_ZN5S82C73v17Ev,
  (VTBL_ENTRY)&_ZN5S82C73v18Ev,
  (VTBL_ENTRY)&_ZN5S82C73v19Ev,
  (VTBL_ENTRY)&_ZN5S82C73v20Ev,
  (VTBL_ENTRY)&_ZN5S82C73v21Ev,
  (VTBL_ENTRY)&_ZN5S82C73v22Ev,
  (VTBL_ENTRY)&_ZN5S82C73v23Ev,
  (VTBL_ENTRY)&_ZN5S82C73v24Ev,
  (VTBL_ENTRY)&_ZN5S82C73v25Ev,
  (VTBL_ENTRY)&_ZN5S82C73v26Ev,
  (VTBL_ENTRY)&_ZN5S82C73v27Ev,
  (VTBL_ENTRY)&_ZN5S82C73v28Ev,
  (VTBL_ENTRY)&_ZN5S82C73v29Ev,
  (VTBL_ENTRY)&_ZN5S82C73v30Ev,
  (VTBL_ENTRY)&_ZN5S82C73v31Ev,
  (VTBL_ENTRY)&_ZN5S82C73v32Ev,
  (VTBL_ENTRY)&_ZN5S82C73v33Ev,
  (VTBL_ENTRY)&_ZN5S82C73v34Ev,
  (VTBL_ENTRY)&_ZN5S82C73v35Ev,
  (VTBL_ENTRY)&_ZN5S82C73v36Ev,
  (VTBL_ENTRY)&_ZN5S82C73v37Ev,
  (VTBL_ENTRY)&_ZN5S82C73v38Ev,
  (VTBL_ENTRY)&_ZN5S82C73v39Ev,
  (VTBL_ENTRY)&_ZN5S82C73v40Ev,
  (VTBL_ENTRY)&_ZN5S82C73v41Ev,
  (VTBL_ENTRY)&_ZN5S82C73v42Ev,
  (VTBL_ENTRY)&_ZN5S82C73v43Ev,
  (VTBL_ENTRY)&_ZN5S82C73v44Ev,
  (VTBL_ENTRY)&_ZN5S82C73v45Ev,
  (VTBL_ENTRY)&_ZN5S82C73v46Ev,
  (VTBL_ENTRY)&_ZN5S82C73v47Ev,
  (VTBL_ENTRY)&_ZN5S82C73v48Ev,
  (VTBL_ENTRY)&_ZN5S82C73v49Ev,
  (VTBL_ENTRY)&_ZN5S82C73v50Ev,
  (VTBL_ENTRY)&_ZN5S82C73v51Ev,
  (VTBL_ENTRY)&_ZN5S82C73v52Ev,
  (VTBL_ENTRY)&_ZN5S82C73v53Ev,
  (VTBL_ENTRY)&_ZN5S82C73v54Ev,
  (VTBL_ENTRY)&_ZN5S82C73v55Ev,
  (VTBL_ENTRY)&_ZN5S82C73v56Ev,
  (VTBL_ENTRY)&_ZN5S82C73v57Ev,
  (VTBL_ENTRY)&_ZN5S82C73v58Ev,
  (VTBL_ENTRY)&_ZN5S82C73v59Ev,
  (VTBL_ENTRY)&_ZN5S82C73v60Ev,
  (VTBL_ENTRY)&_ZN5S82C73v61Ev,
  (VTBL_ENTRY)&_ZN5S82C73v62Ev,
  (VTBL_ENTRY)&_ZN5S82C73v63Ev,
  (VTBL_ENTRY)&_ZN5S82C73v64Ev,
  (VTBL_ENTRY)&_ZN5S82C73v65Ev,
  (VTBL_ENTRY)&_ZN5S82C73v66Ev,
  (VTBL_ENTRY)&_ZN5S82C73v67Ev,
  (VTBL_ENTRY)&_ZN5S82C63v68Ev,
  (VTBL_ENTRY)&_ZN5S82C63v69Ev,
  (VTBL_ENTRY)&_ZN5S82C53v70Ev,
  (VTBL_ENTRY)&_ZN5S82C53v71Ev,
  (VTBL_ENTRY)&_ZN5S82C53v72Ev,
  (VTBL_ENTRY)&_ZN5S82C53v73Ev,
  (VTBL_ENTRY)&_ZN5S82C53v74Ev,
  (VTBL_ENTRY)&_ZN5S82C53v75Ev,
  (VTBL_ENTRY)&_ZN5S82C53v76Ev,
  (VTBL_ENTRY)&_ZN5S82C53v77Ev,
  (VTBL_ENTRY)&_ZN5S82C53v78Ev,
  (VTBL_ENTRY)&_ZN5S82C53v79Ev,
  (VTBL_ENTRY)&_ZN5S82C53v80Ev,
  (VTBL_ENTRY)&_ZN5S82C53v81Ev,
  (VTBL_ENTRY)&_ZN5S82C53v82Ev,
  (VTBL_ENTRY)&_ZN5S82C53v83Ev,
  (VTBL_ENTRY)&_ZN5S82C53v84Ev,
  (VTBL_ENTRY)&_ZN5S82C53v85Ev,
  (VTBL_ENTRY)&_ZN5S82C53v86Ev,
  (VTBL_ENTRY)&_ZN5S82C53v87Ev,
  (VTBL_ENTRY)&_ZN5S82C53v88Ev,
  (VTBL_ENTRY)&_ZN5S82C53v89Ev,
  (VTBL_ENTRY)&_ZN5S82C53v90Ev,
  (VTBL_ENTRY)&_ZN5S82C53v91Ev,
  (VTBL_ENTRY)&_ZN5S82C53v92Ev,
  (VTBL_ENTRY)&_ZN5S82C53v93Ev,
  (VTBL_ENTRY)&_ZN5S82C53v94Ev,
  (VTBL_ENTRY)&_ZN5S82C53v95Ev,
  (VTBL_ENTRY)&_ZN5S82C53v96Ev,
  (VTBL_ENTRY)&_ZN5S82C53v97Ev,
  (VTBL_ENTRY)&_ZN5S82C53v98Ev,
  (VTBL_ENTRY)&_ZN5S82C53v99Ev,
  (VTBL_ENTRY)&_ZN5S82C54v100Ev,
  (VTBL_ENTRY)&_ZN5S82C54v101Ev,
  (VTBL_ENTRY)&_ZN5S82C54v102Ev,
  (VTBL_ENTRY)&_ZN5S82C54v103Ev,
  (VTBL_ENTRY)&_ZN5S82C54v104Ev,
  (VTBL_ENTRY)&_ZN5S82C54v105Ev,
  (VTBL_ENTRY)&_ZN5S82C54v106Ev,
  (VTBL_ENTRY)&_ZN5S82C54v107Ev,
  (VTBL_ENTRY)&_ZN5S82C54v108Ev,
  (VTBL_ENTRY)&_ZN5S82C54v109Ev,
  (VTBL_ENTRY)&_ZN5S82C54v110Ev,
  (VTBL_ENTRY)&_ZN5S82C54v111Ev,
  (VTBL_ENTRY)&_ZN5S82C54v112Ev,
  (VTBL_ENTRY)&_ZN5S82C54v113Ev,
  (VTBL_ENTRY)&_ZN5S82C54v114Ev,
  (VTBL_ENTRY)&_ZN5S82C54v115Ev,
  (VTBL_ENTRY)&_ZN5S82C54v116Ev,
  (VTBL_ENTRY)&_ZN5S82C54v117Ev,
  (VTBL_ENTRY)&_ZN5S82C54v118Ev,
  (VTBL_ENTRY)&_ZN5S82C54v119Ev,
  (VTBL_ENTRY)&_ZN5S82C54v120Ev,
  (VTBL_ENTRY)&_ZN5S82C54v121Ev,
  (VTBL_ENTRY)&_ZN5S82C54v122Ev,
  (VTBL_ENTRY)&_ZN5S82C54v123Ev,
  (VTBL_ENTRY)&_ZN5S82C54v124Ev,
  (VTBL_ENTRY)&_ZN5S82C54v125Ev,
  (VTBL_ENTRY)&_ZN5S82C54v126Ev,
  (VTBL_ENTRY)&_ZN5S82C54v127Ev,
  (VTBL_ENTRY)&_ZN5S82C54v128Ev,
  (VTBL_ENTRY)&_ZN5S82C54v129Ev,
  (VTBL_ENTRY)&_ZN5S82C54v130Ev,
  (VTBL_ENTRY)&_ZN5S82C54v131Ev,
  (VTBL_ENTRY)&_ZN5S82C54v132Ev,
  (VTBL_ENTRY)&_ZN5S82C54v133Ev,
  (VTBL_ENTRY)&_ZN5S82C54v134Ev,
  (VTBL_ENTRY)&_ZN5S82C54v135Ev,
  (VTBL_ENTRY)&_ZN5S82C54v136Ev,
  (VTBL_ENTRY)&_ZN5S82C54v137Ev,
  (VTBL_ENTRY)&_ZN5S82C54v138Ev,
  (VTBL_ENTRY)&_ZN5S82C54v139Ev,
  (VTBL_ENTRY)&_ZN5S82C54v140Ev,
  (VTBL_ENTRY)&_ZN5S82C54v141Ev,
  (VTBL_ENTRY)&_ZN5S82C54v142Ev,
  (VTBL_ENTRY)&_ZN5S82C54v143Ev,
  (VTBL_ENTRY)&_ZN5S82C54v144Ev,
  (VTBL_ENTRY)&_ZN5S82C54v145Ev,
  (VTBL_ENTRY)&_ZN5S82C44v146Ev,
  (VTBL_ENTRY)&_ZN5S82C44v147Ev,
  (VTBL_ENTRY)&_ZN5S82C44v148Ev,
  (VTBL_ENTRY)&_ZN5S82C44v149Ev,
  (VTBL_ENTRY)&_ZN5S82C44v150Ev,
  (VTBL_ENTRY)&_ZN5S82C44v151Ev,
  (VTBL_ENTRY)&_ZN5S82C44v152Ev,
  (VTBL_ENTRY)&_ZN5S82C44v153Ev,
  (VTBL_ENTRY)&_ZN5S82C44v154Ev,
  (VTBL_ENTRY)&_ZN5S82C44v155Ev,
  (VTBL_ENTRY)&_ZN5S82C44v156Ev,
  (VTBL_ENTRY)&_ZN5S82C44v157Ev,
  (VTBL_ENTRY)&_ZN5S82C44v158Ev,
  (VTBL_ENTRY)&_ZN5S82C44v159Ev,
  (VTBL_ENTRY)&_ZN5S82C44v160Ev,
  (VTBL_ENTRY)&_ZN5S82C44v161Ev,
  (VTBL_ENTRY)&_ZN5S82C44v162Ev,
  (VTBL_ENTRY)&_ZN5S82C44v163Ev,
  (VTBL_ENTRY)&_ZN5S82C44v164Ev,
  (VTBL_ENTRY)&_ZN5S82C44v165Ev,
  (VTBL_ENTRY)&_ZN5S82C44v166Ev,
  (VTBL_ENTRY)&_ZN5S82C44v167Ev,
  (VTBL_ENTRY)&_ZN5S82C44v168Ev,
  (VTBL_ENTRY)&_ZN5S82C44v169Ev,
  (VTBL_ENTRY)&_ZN5S82C44v170Ev,
  (VTBL_ENTRY)&_ZN5S82C44v171Ev,
  (VTBL_ENTRY)&_ZN5S82C44v172Ev,
  (VTBL_ENTRY)&_ZN5S82C44v173Ev,
  (VTBL_ENTRY)&_ZN5S82C44v174Ev,
  (VTBL_ENTRY)&_ZN5S82C44v175Ev,
  (VTBL_ENTRY)&_ZN5S82C44v176Ev,
  (VTBL_ENTRY)&_ZN5S82C44v177Ev,
  (VTBL_ENTRY)&_ZN5S82C44v178Ev,
  (VTBL_ENTRY)&_ZN5S82C44v179Ev,
  (VTBL_ENTRY)&_ZN5S82C44v180Ev,
  (VTBL_ENTRY)&_ZN5S82C44v181Ev,
  (VTBL_ENTRY)&_ZN5S82C44v182Ev,
  (VTBL_ENTRY)&_ZN5S82C44v183Ev,
  (VTBL_ENTRY)&_ZN5S82C44v184Ev,
  (VTBL_ENTRY)&_ZN5S82C34v185Ev,
  (VTBL_ENTRY)&_ZN5S82C34v186Ev,
  (VTBL_ENTRY)&_ZN5S82C34v187Ev,
  (VTBL_ENTRY)&_ZN5S82C34v188Ev,
  (VTBL_ENTRY)&_ZN5S82C34v189Ev,
  (VTBL_ENTRY)&_ZN5S82C34v190Ev,
  (VTBL_ENTRY)&_ZN5S82C34v191Ev,
  (VTBL_ENTRY)&_ZN5S82C34v192Ev,
  (VTBL_ENTRY)&_ZN5S82C34v193Ev,
  (VTBL_ENTRY)&_ZN5S82C34v194Ev,
  (VTBL_ENTRY)&_ZN5S82C34v195Ev,
  (VTBL_ENTRY)&_ZN5S82C34v196Ev,
  (VTBL_ENTRY)&_ZN5S82C34v197Ev,
  (VTBL_ENTRY)&_ZN5S82C34v198Ev,
  (VTBL_ENTRY)&_ZN5S82C34v199Ev,
  (VTBL_ENTRY)&_ZN5S82C34v200Ev,
  (VTBL_ENTRY)&_ZN5S82C34v201Ev,
  (VTBL_ENTRY)&_ZN5S82C34v202Ev,
  (VTBL_ENTRY)&_ZN5S82C34v203Ev,
  (VTBL_ENTRY)&_ZN5S82C34v204Ev,
  (VTBL_ENTRY)&_ZN5S82C34v205Ev,
  (VTBL_ENTRY)&_ZN5S82C34v206Ev,
  (VTBL_ENTRY)&_ZN5S82C34v207Ev,
  (VTBL_ENTRY)&_ZN5S82C24v208Ev,
  (VTBL_ENTRY)&_ZN5S82C24v209Ev,
  (VTBL_ENTRY)&_ZN5S82C24v210Ev,
  (VTBL_ENTRY)&_ZN5S82C12v1Ev,
  (VTBL_ENTRY)&_ZN5S82C12v2Ev,
  (VTBL_ENTRY)&_ZN5S82C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S82C1[];
extern  VTBL_ENTRY _ZTV5S82C1[];
Class_Descriptor cd_S82C1 = {  "S82C1", // class name
  bases_S82C1, 6,
  &(vtc_S82C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(888,628), // object size
  NSPAIRA(_ZTI5S82C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S82C1),214, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C7  {
  int s83c7f0;
  __tsi64 s83c7f1;
  void *s83c7f2[4];
  int s83c7f3[2];
  void *s83c7f4;
  ::S85C27_nt s83c7f5;
  void *s83c7f6[2];
  virtual  ~S83C7(); // _ZN5S83C7D1Ev
  virtual void  v4(); // _ZN5S83C72v4Ev
  virtual void  v5(); // _ZN5S83C72v5Ev
  virtual void  v6(); // _ZN5S83C72v6Ev
  virtual void  v7(); // _ZN5S83C72v7Ev
  virtual void  v8(); // _ZN5S83C72v8Ev
  virtual void  v9(); // _ZN5S83C72v9Ev
  virtual void  v10(); // _ZN5S83C73v10Ev
  virtual void  v11(); // _ZN5S83C73v11Ev
  virtual void  v12(); // _ZN5S83C73v12Ev
  virtual void  v13(); // _ZN5S83C73v13Ev
  virtual void  v14(); // _ZN5S83C73v14Ev
  virtual void  v15(); // _ZN5S83C73v15Ev
  virtual void  v16(); // _ZN5S83C73v16Ev
  virtual void  v17(); // _ZN5S83C73v17Ev
  virtual void  v18(); // _ZN5S83C73v18Ev
  virtual void  v19(); // _ZN5S83C73v19Ev
  virtual void  v20(); // _ZN5S83C73v20Ev
  virtual void  v21(); // _ZN5S83C73v21Ev
  virtual void  v22(); // _ZN5S83C73v22Ev
  virtual void  v23(); // _ZN5S83C73v23Ev
  virtual void  v24(); // _ZN5S83C73v24Ev
  virtual void  v25(); // _ZN5S83C73v25Ev
  virtual void  v26(); // _ZN5S83C73v26Ev
  virtual void  v27(); // _ZN5S83C73v27Ev
  virtual void  v28(); // _ZN5S83C73v28Ev
  virtual void  v29(); // _ZN5S83C73v29Ev
  virtual void  v30(); // _ZN5S83C73v30Ev
  virtual void  v31(); // _ZN5S83C73v31Ev
  virtual void  v32(); // _ZN5S83C73v32Ev
  virtual void  v33(); // _ZN5S83C73v33Ev
  virtual void  v34(); // _ZN5S83C73v34Ev
  virtual void  v35(); // _ZN5S83C73v35Ev
  virtual void  v36(); // _ZN5S83C73v36Ev
  virtual void  v37(); // _ZN5S83C73v37Ev
  virtual void  v38(); // _ZN5S83C73v38Ev
  virtual void  v39(); // _ZN5S83C73v39Ev
  virtual void  v40(); // _ZN5S83C73v40Ev
  virtual void  v41(); // _ZN5S83C73v41Ev
  virtual void  v42(); // _ZN5S83C73v42Ev
  virtual void  v43(); // _ZN5S83C73v43Ev
  virtual void  v44(); // _ZN5S83C73v44Ev
  virtual void  v45(); // _ZN5S83C73v45Ev
  virtual void  v46(); // _ZN5S83C73v46Ev
  virtual void  v47(); // _ZN5S83C73v47Ev
  virtual void  v48(); // _ZN5S83C73v48Ev
  virtual void  v49(); // _ZN5S83C73v49Ev
  virtual void  v50(); // _ZN5S83C73v50Ev
  virtual void  v51(); // _ZN5S83C73v51Ev
  virtual void  v52(); // _ZN5S83C73v52Ev
  virtual void  v53(); // _ZN5S83C73v53Ev
  virtual void  v54(); // _ZN5S83C73v54Ev
  virtual void  v55(); // _ZN5S83C73v55Ev
  virtual void  v56(); // _ZN5S83C73v56Ev
  virtual void  v57(); // _ZN5S83C73v57Ev
  virtual void  v58(); // _ZN5S83C73v58Ev
  virtual void  v59(); // _ZN5S83C73v59Ev
  virtual void  v60(); // _ZN5S83C73v60Ev
  virtual void  v61(); // _ZN5S83C73v61Ev
  virtual void  v62(); // _ZN5S83C73v62Ev
  virtual void  v63(); // _ZN5S83C73v63Ev
  virtual void  v64(); // _ZN5S83C73v64Ev
  virtual void  v65(); // _ZN5S83C73v65Ev
  virtual void  v66(); // _ZN5S83C73v66Ev
  virtual void  v67(); // _ZN5S83C73v67Ev
  S83C7(); // tgen
};
//SIG(-1 S83C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S83C7 ::~S83C7(){ note_dtor("S83C7", this);}
void  S83C7 ::v4(){vfunc_called(this, "_ZN5S83C72v4Ev");}
void  S83C7 ::v5(){vfunc_called(this, "_ZN5S83C72v5Ev");}
void  S83C7 ::v6(){vfunc_called(this, "_ZN5S83C72v6Ev");}
void  S83C7 ::v7(){vfunc_called(this, "_ZN5S83C72v7Ev");}
void  S83C7 ::v8(){vfunc_called(this, "_ZN5S83C72v8Ev");}
void  S83C7 ::v9(){vfunc_called(this, "_ZN5S83C72v9Ev");}
void  S83C7 ::v10(){vfunc_called(this, "_ZN5S83C73v10Ev");}
void  S83C7 ::v11(){vfunc_called(this, "_ZN5S83C73v11Ev");}
void  S83C7 ::v12(){vfunc_called(this, "_ZN5S83C73v12Ev");}
void  S83C7 ::v13(){vfunc_called(this, "_ZN5S83C73v13Ev");}
void  S83C7 ::v14(){vfunc_called(this, "_ZN5S83C73v14Ev");}
void  S83C7 ::v15(){vfunc_called(this, "_ZN5S83C73v15Ev");}
void  S83C7 ::v16(){vfunc_called(this, "_ZN5S83C73v16Ev");}
void  S83C7 ::v17(){vfunc_called(this, "_ZN5S83C73v17Ev");}
void  S83C7 ::v18(){vfunc_called(this, "_ZN5S83C73v18Ev");}
void  S83C7 ::v19(){vfunc_called(this, "_ZN5S83C73v19Ev");}
void  S83C7 ::v20(){vfunc_called(this, "_ZN5S83C73v20Ev");}
void  S83C7 ::v21(){vfunc_called(this, "_ZN5S83C73v21Ev");}
void  S83C7 ::v22(){vfunc_called(this, "_ZN5S83C73v22Ev");}
void  S83C7 ::v23(){vfunc_called(this, "_ZN5S83C73v23Ev");}
void  S83C7 ::v24(){vfunc_called(this, "_ZN5S83C73v24Ev");}
void  S83C7 ::v25(){vfunc_called(this, "_ZN5S83C73v25Ev");}
void  S83C7 ::v26(){vfunc_called(this, "_ZN5S83C73v26Ev");}
void  S83C7 ::v27(){vfunc_called(this, "_ZN5S83C73v27Ev");}
void  S83C7 ::v28(){vfunc_called(this, "_ZN5S83C73v28Ev");}
void  S83C7 ::v29(){vfunc_called(this, "_ZN5S83C73v29Ev");}
void  S83C7 ::v30(){vfunc_called(this, "_ZN5S83C73v30Ev");}
void  S83C7 ::v31(){vfunc_called(this, "_ZN5S83C73v31Ev");}
void  S83C7 ::v32(){vfunc_called(this, "_ZN5S83C73v32Ev");}
void  S83C7 ::v33(){vfunc_called(this, "_ZN5S83C73v33Ev");}
void  S83C7 ::v34(){vfunc_called(this, "_ZN5S83C73v34Ev");}
void  S83C7 ::v35(){vfunc_called(this, "_ZN5S83C73v35Ev");}
void  S83C7 ::v36(){vfunc_called(this, "_ZN5S83C73v36Ev");}
void  S83C7 ::v37(){vfunc_called(this, "_ZN5S83C73v37Ev");}
void  S83C7 ::v38(){vfunc_called(this, "_ZN5S83C73v38Ev");}
void  S83C7 ::v39(){vfunc_called(this, "_ZN5S83C73v39Ev");}
void  S83C7 ::v40(){vfunc_called(this, "_ZN5S83C73v40Ev");}
void  S83C7 ::v41(){vfunc_called(this, "_ZN5S83C73v41Ev");}
void  S83C7 ::v42(){vfunc_called(this, "_ZN5S83C73v42Ev");}
void  S83C7 ::v43(){vfunc_called(this, "_ZN5S83C73v43Ev");}
void  S83C7 ::v44(){vfunc_called(this, "_ZN5S83C73v44Ev");}
void  S83C7 ::v45(){vfunc_called(this, "_ZN5S83C73v45Ev");}
void  S83C7 ::v46(){vfunc_called(this, "_ZN5S83C73v46Ev");}
void  S83C7 ::v47(){vfunc_called(this, "_ZN5S83C73v47Ev");}
void  S83C7 ::v48(){vfunc_called(this, "_ZN5S83C73v48Ev");}
void  S83C7 ::v49(){vfunc_called(this, "_ZN5S83C73v49Ev");}
void  S83C7 ::v50(){vfunc_called(this, "_ZN5S83C73v50Ev");}
void  S83C7 ::v51(){vfunc_called(this, "_ZN5S83C73v51Ev");}
void  S83C7 ::v52(){vfunc_called(this, "_ZN5S83C73v52Ev");}
void  S83C7 ::v53(){vfunc_called(this, "_ZN5S83C73v53Ev");}
void  S83C7 ::v54(){vfunc_called(this, "_ZN5S83C73v54Ev");}
void  S83C7 ::v55(){vfunc_called(this, "_ZN5S83C73v55Ev");}
void  S83C7 ::v56(){vfunc_called(this, "_ZN5S83C73v56Ev");}
void  S83C7 ::v57(){vfunc_called(this, "_ZN5S83C73v57Ev");}
void  S83C7 ::v58(){vfunc_called(this, "_ZN5S83C73v58Ev");}
void  S83C7 ::v59(){vfunc_called(this, "_ZN5S83C73v59Ev");}
void  S83C7 ::v60(){vfunc_called(this, "_ZN5S83C73v60Ev");}
void  S83C7 ::v61(){vfunc_called(this, "_ZN5S83C73v61Ev");}
void  S83C7 ::v62(){vfunc_called(this, "_ZN5S83C73v62Ev");}
void  S83C7 ::v63(){vfunc_called(this, "_ZN5S83C73v63Ev");}
void  S83C7 ::v64(){vfunc_called(this, "_ZN5S83C73v64Ev");}
void  S83C7 ::v65(){vfunc_called(this, "_ZN5S83C73v65Ev");}
void  S83C7 ::v66(){vfunc_called(this, "_ZN5S83C73v66Ev");}
void  S83C7 ::v67(){vfunc_called(this, "_ZN5S83C73v67Ev");}
S83C7 ::S83C7(){ note_ctor("S83C7", this);} // tgen

static void Test_S83C7()
{
  extern Class_Descriptor cd_S83C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S83C7, buf);
    S83C7 *dp, &lv = *(dp=new (buf) S83C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S83C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C7)");
    check_field_offset(lv, s83c7f0, ABISELECT(8,4), "S83C7.s83c7f0");
    check_field_offset(lv, s83c7f1, ABISELECT(16,8), "S83C7.s83c7f1");
    check_field_offset(lv, s83c7f2, ABISELECT(24,16), "S83C7.s83c7f2");
    check_field_offset(lv, s83c7f3, ABISELECT(56,32), "S83C7.s83c7f3");
    check_field_offset(lv, s83c7f4, ABISELECT(64,40), "S83C7.s83c7f4");
    check_field_offset(lv, s83c7f5, ABISELECT(72,44), "S83C7.s83c7f5");
    check_field_offset(lv, s83c7f6, ABISELECT(80,52), "S83C7.s83c7f6");
    test_class_info(&lv, &cd_S83C7);
    dp->~S83C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C7(Test_S83C7, "S83C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S83C7C1Ev();
extern void _ZN5S83C7D1Ev();
Name_Map name_map_S83C7[] = {
  NSPAIR(_ZN5S83C7C1Ev),
  NSPAIR(_ZN5S83C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S83C7[];
extern void _ZN5S83C7D1Ev();
extern void _ZN5S83C7D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
static  VTBL_ENTRY vtc_S83C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C7[0]),
  (VTBL_ENTRY)&_ZN5S83C7D1Ev,
  (VTBL_ENTRY)&_ZN5S83C7D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
};
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
Class_Descriptor cd_S83C7 = {  "S83C7", // class name
  0,0,//no base classes
  &(vtc_S83C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S83C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S83C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C6  : S83C7 {
  virtual  ~S83C6(); // _ZN5S83C6D1Ev
  virtual void  v68(); // _ZN5S83C63v68Ev
  virtual void  v69(); // _ZN5S83C63v69Ev
  S83C6(); // tgen
};
//SIG(-1 S83C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S83C6 ::~S83C6(){ note_dtor("S83C6", this);}
void  S83C6 ::v68(){vfunc_called(this, "_ZN5S83C63v68Ev");}
void  S83C6 ::v69(){vfunc_called(this, "_ZN5S83C63v69Ev");}
S83C6 ::S83C6(){ note_ctor("S83C6", this);} // tgen

static void Test_S83C6()
{
  extern Class_Descriptor cd_S83C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S83C6, buf);
    S83C6 *dp, &lv = *(dp=new (buf) S83C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S83C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C6)");
    check_base_class_offset(lv, (S83C7*), 0, "S83C6");
    test_class_info(&lv, &cd_S83C6);
    dp->~S83C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C6(Test_S83C6, "S83C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S83C6C1Ev();
extern void _ZN5S83C6D1Ev();
Name_Map name_map_S83C6[] = {
  NSPAIR(_ZN5S83C6C1Ev),
  NSPAIR(_ZN5S83C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S83C7;
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
static Base_Class bases_S83C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S83C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S83C6[];
extern void _ZN5S83C6D1Ev();
extern void _ZN5S83C6D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
extern void _ZN5S83C63v68Ev();
extern void _ZN5S83C63v69Ev();
static  VTBL_ENTRY vtc_S83C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C6[0]),
  (VTBL_ENTRY)&_ZN5S83C6D1Ev,
  (VTBL_ENTRY)&_ZN5S83C6D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
  (VTBL_ENTRY)&_ZN5S83C63v68Ev,
  (VTBL_ENTRY)&_ZN5S83C63v69Ev,
};
extern VTBL_ENTRY _ZTI5S83C6[];
extern  VTBL_ENTRY _ZTV5S83C6[];
Class_Descriptor cd_S83C6 = {  "S83C6", // class name
  bases_S83C6, 1,
  &(vtc_S83C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S83C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S83C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C5  : S83C6 {
  ::S80C9_nt s83c5f0;
  int s83c5f1;
  unsigned int s83c5f2:1;
  unsigned int s83c5f3:1;
  unsigned int s83c5f4:1;
  unsigned int s83c5f5:1;
  ::S85C35 s83c5f6;
  ::S85C22_nt s83c5f7;
  void *s83c5f8;
  ::S80C31 s83c5f9;
  ::S80C31 s83c5f10;
  ::S80C29 s83c5f11;
  ::S80C19 s83c5f12;
  char s83c5f13;
  int s83c5f14;
  void *s83c5f15;
  ::S85C27_nt s83c5f16;
  ::S85C27_nt s83c5f17;
  ::S85C27_nt s83c5f18;
  ::S85C27_nt s83c5f19;
  ::S85C27_nt s83c5f20;
  ::S85C27_nt s83c5f21;
  ::S80C21_nt s83c5f22;
  ::S80C21_nt s83c5f23;
  ::S80C21_nt s83c5f24;
  ::S80C21_nt s83c5f25;
  ::S80C21_nt s83c5f26;
  ::S80C21_nt s83c5f27;
  ::S80C21_nt s83c5f28;
  ::S80C21_nt s83c5f29;
  ::S80C21_nt s83c5f30;
  ::S80C21_nt s83c5f31;
  virtual  ~S83C5(); // _ZN5S83C5D1Ev
  virtual void  v70(); // _ZN5S83C53v70Ev
  virtual void  v71(); // _ZN5S83C53v71Ev
  virtual void  v72(); // _ZN5S83C53v72Ev
  virtual void  v73(); // _ZN5S83C53v73Ev
  virtual void  v74(); // _ZN5S83C53v74Ev
  virtual void  v75(); // _ZN5S83C53v75Ev
  virtual void  v76(); // _ZN5S83C53v76Ev
  virtual void  v77(); // _ZN5S83C53v77Ev
  virtual void  v78(); // _ZN5S83C53v78Ev
  virtual void  v79(); // _ZN5S83C53v79Ev
  virtual void  v80(); // _ZN5S83C53v80Ev
  virtual void  v81(); // _ZN5S83C53v81Ev
  virtual void  v82(); // _ZN5S83C53v82Ev
  virtual void  v83(); // _ZN5S83C53v83Ev
  virtual void  v84(); // _ZN5S83C53v84Ev
  virtual void  v85(); // _ZN5S83C53v85Ev
  virtual void  v86(); // _ZN5S83C53v86Ev
  virtual void  v87(); // _ZN5S83C53v87Ev
  virtual void  v88(); // _ZN5S83C53v88Ev
  virtual void  v89(); // _ZN5S83C53v89Ev
  virtual void  v90(); // _ZN5S83C53v90Ev
  virtual void  v91(); // _ZN5S83C53v91Ev
  virtual void  v92(); // _ZN5S83C53v92Ev
  virtual void  v93(); // _ZN5S83C53v93Ev
  virtual void  v94(); // _ZN5S83C53v94Ev
  virtual void  v95(); // _ZN5S83C53v95Ev
  virtual void  v96(); // _ZN5S83C53v96Ev
  virtual void  v97(); // _ZN5S83C53v97Ev
  virtual void  v98(); // _ZN5S83C53v98Ev
  virtual void  v99(); // _ZN5S83C53v99Ev
  virtual void  v100(); // _ZN5S83C54v100Ev
  virtual void  v101(); // _ZN5S83C54v101Ev
  virtual void  v102(); // _ZN5S83C54v102Ev
  virtual void  v103(); // _ZN5S83C54v103Ev
  virtual void  v104(); // _ZN5S83C54v104Ev
  virtual void  v105(); // _ZN5S83C54v105Ev
  virtual void  v106(); // _ZN5S83C54v106Ev
  virtual void  v107(); // _ZN5S83C54v107Ev
  virtual void  v108(); // _ZN5S83C54v108Ev
  virtual void  v109(); // _ZN5S83C54v109Ev
  virtual void  v110(); // _ZN5S83C54v110Ev
  virtual void  v111(); // _ZN5S83C54v111Ev
  virtual void  v112(); // _ZN5S83C54v112Ev
  virtual void  v113(); // _ZN5S83C54v113Ev
  virtual void  v114(); // _ZN5S83C54v114Ev
  virtual void  v115(); // _ZN5S83C54v115Ev
  virtual void  v116(); // _ZN5S83C54v116Ev
  virtual void  v117(); // _ZN5S83C54v117Ev
  virtual void  v118(); // _ZN5S83C54v118Ev
  virtual void  v119(); // _ZN5S83C54v119Ev
  virtual void  v120(); // _ZN5S83C54v120Ev
  virtual void  v121(); // _ZN5S83C54v121Ev
  virtual void  v122(); // _ZN5S83C54v122Ev
  virtual void  v123(); // _ZN5S83C54v123Ev
  virtual void  v124(); // _ZN5S83C54v124Ev
  virtual void  v125(); // _ZN5S83C54v125Ev
  virtual void  v126(); // _ZN5S83C54v126Ev
  virtual void  v127(); // _ZN5S83C54v127Ev
  virtual void  v128(); // _ZN5S83C54v128Ev
  virtual void  v129(); // _ZN5S83C54v129Ev
  virtual void  v130(); // _ZN5S83C54v130Ev
  virtual void  v131(); // _ZN5S83C54v131Ev
  virtual void  v132(); // _ZN5S83C54v132Ev
  virtual void  v133(); // _ZN5S83C54v133Ev
  virtual void  v134(); // _ZN5S83C54v134Ev
  virtual void  v135(); // _ZN5S83C54v135Ev
  virtual void  v136(); // _ZN5S83C54v136Ev
  virtual void  v137(); // _ZN5S83C54v137Ev
  virtual void  v138(); // _ZN5S83C54v138Ev
  virtual void  v139(); // _ZN5S83C54v139Ev
  virtual void  v140(); // _ZN5S83C54v140Ev
  virtual void  v141(); // _ZN5S83C54v141Ev
  virtual void  v142(); // _ZN5S83C54v142Ev
  virtual void  v143(); // _ZN5S83C54v143Ev
  virtual void  v144(); // _ZN5S83C54v144Ev
  virtual void  v145(); // _ZN5S83C54v145Ev
  S83C5(); // tgen
};
//SIG(-1 S83C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S83C5 ::~S83C5(){ note_dtor("S83C5", this);}
void  S83C5 ::v70(){vfunc_called(this, "_ZN5S83C53v70Ev");}
void  S83C5 ::v71(){vfunc_called(this, "_ZN5S83C53v71Ev");}
void  S83C5 ::v72(){vfunc_called(this, "_ZN5S83C53v72Ev");}
void  S83C5 ::v73(){vfunc_called(this, "_ZN5S83C53v73Ev");}
void  S83C5 ::v74(){vfunc_called(this, "_ZN5S83C53v74Ev");}
void  S83C5 ::v75(){vfunc_called(this, "_ZN5S83C53v75Ev");}
void  S83C5 ::v76(){vfunc_called(this, "_ZN5S83C53v76Ev");}
void  S83C5 ::v77(){vfunc_called(this, "_ZN5S83C53v77Ev");}
void  S83C5 ::v78(){vfunc_called(this, "_ZN5S83C53v78Ev");}
void  S83C5 ::v79(){vfunc_called(this, "_ZN5S83C53v79Ev");}
void  S83C5 ::v80(){vfunc_called(this, "_ZN5S83C53v80Ev");}
void  S83C5 ::v81(){vfunc_called(this, "_ZN5S83C53v81Ev");}
void  S83C5 ::v82(){vfunc_called(this, "_ZN5S83C53v82Ev");}
void  S83C5 ::v83(){vfunc_called(this, "_ZN5S83C53v83Ev");}
void  S83C5 ::v84(){vfunc_called(this, "_ZN5S83C53v84Ev");}
void  S83C5 ::v85(){vfunc_called(this, "_ZN5S83C53v85Ev");}
void  S83C5 ::v86(){vfunc_called(this, "_ZN5S83C53v86Ev");}
void  S83C5 ::v87(){vfunc_called(this, "_ZN5S83C53v87Ev");}
void  S83C5 ::v88(){vfunc_called(this, "_ZN5S83C53v88Ev");}
void  S83C5 ::v89(){vfunc_called(this, "_ZN5S83C53v89Ev");}
void  S83C5 ::v90(){vfunc_called(this, "_ZN5S83C53v90Ev");}
void  S83C5 ::v91(){vfunc_called(this, "_ZN5S83C53v91Ev");}
void  S83C5 ::v92(){vfunc_called(this, "_ZN5S83C53v92Ev");}
void  S83C5 ::v93(){vfunc_called(this, "_ZN5S83C53v93Ev");}
void  S83C5 ::v94(){vfunc_called(this, "_ZN5S83C53v94Ev");}
void  S83C5 ::v95(){vfunc_called(this, "_ZN5S83C53v95Ev");}
void  S83C5 ::v96(){vfunc_called(this, "_ZN5S83C53v96Ev");}
void  S83C5 ::v97(){vfunc_called(this, "_ZN5S83C53v97Ev");}
void  S83C5 ::v98(){vfunc_called(this, "_ZN5S83C53v98Ev");}
void  S83C5 ::v99(){vfunc_called(this, "_ZN5S83C53v99Ev");}
void  S83C5 ::v100(){vfunc_called(this, "_ZN5S83C54v100Ev");}
void  S83C5 ::v101(){vfunc_called(this, "_ZN5S83C54v101Ev");}
void  S83C5 ::v102(){vfunc_called(this, "_ZN5S83C54v102Ev");}
void  S83C5 ::v103(){vfunc_called(this, "_ZN5S83C54v103Ev");}
void  S83C5 ::v104(){vfunc_called(this, "_ZN5S83C54v104Ev");}
void  S83C5 ::v105(){vfunc_called(this, "_ZN5S83C54v105Ev");}
void  S83C5 ::v106(){vfunc_called(this, "_ZN5S83C54v106Ev");}
void  S83C5 ::v107(){vfunc_called(this, "_ZN5S83C54v107Ev");}
void  S83C5 ::v108(){vfunc_called(this, "_ZN5S83C54v108Ev");}
void  S83C5 ::v109(){vfunc_called(this, "_ZN5S83C54v109Ev");}
void  S83C5 ::v110(){vfunc_called(this, "_ZN5S83C54v110Ev");}
void  S83C5 ::v111(){vfunc_called(this, "_ZN5S83C54v111Ev");}
void  S83C5 ::v112(){vfunc_called(this, "_ZN5S83C54v112Ev");}
void  S83C5 ::v113(){vfunc_called(this, "_ZN5S83C54v113Ev");}
void  S83C5 ::v114(){vfunc_called(this, "_ZN5S83C54v114Ev");}
void  S83C5 ::v115(){vfunc_called(this, "_ZN5S83C54v115Ev");}
void  S83C5 ::v116(){vfunc_called(this, "_ZN5S83C54v116Ev");}
void  S83C5 ::v117(){vfunc_called(this, "_ZN5S83C54v117Ev");}
void  S83C5 ::v118(){vfunc_called(this, "_ZN5S83C54v118Ev");}
void  S83C5 ::v119(){vfunc_called(this, "_ZN5S83C54v119Ev");}
void  S83C5 ::v120(){vfunc_called(this, "_ZN5S83C54v120Ev");}
void  S83C5 ::v121(){vfunc_called(this, "_ZN5S83C54v121Ev");}
void  S83C5 ::v122(){vfunc_called(this, "_ZN5S83C54v122Ev");}
void  S83C5 ::v123(){vfunc_called(this, "_ZN5S83C54v123Ev");}
void  S83C5 ::v124(){vfunc_called(this, "_ZN5S83C54v124Ev");}
void  S83C5 ::v125(){vfunc_called(this, "_ZN5S83C54v125Ev");}
void  S83C5 ::v126(){vfunc_called(this, "_ZN5S83C54v126Ev");}
void  S83C5 ::v127(){vfunc_called(this, "_ZN5S83C54v127Ev");}
void  S83C5 ::v128(){vfunc_called(this, "_ZN5S83C54v128Ev");}
void  S83C5 ::v129(){vfunc_called(this, "_ZN5S83C54v129Ev");}
void  S83C5 ::v130(){vfunc_called(this, "_ZN5S83C54v130Ev");}
void  S83C5 ::v131(){vfunc_called(this, "_ZN5S83C54v131Ev");}
void  S83C5 ::v132(){vfunc_called(this, "_ZN5S83C54v132Ev");}
void  S83C5 ::v133(){vfunc_called(this, "_ZN5S83C54v133Ev");}
void  S83C5 ::v134(){vfunc_called(this, "_ZN5S83C54v134Ev");}
void  S83C5 ::v135(){vfunc_called(this, "_ZN5S83C54v135Ev");}
void  S83C5 ::v136(){vfunc_called(this, "_ZN5S83C54v136Ev");}
void  S83C5 ::v137(){vfunc_called(this, "_ZN5S83C54v137Ev");}
void  S83C5 ::v138(){vfunc_called(this, "_ZN5S83C54v138Ev");}
void  S83C5 ::v139(){vfunc_called(this, "_ZN5S83C54v139Ev");}
void  S83C5 ::v140(){vfunc_called(this, "_ZN5S83C54v140Ev");}
void  S83C5 ::v141(){vfunc_called(this, "_ZN5S83C54v141Ev");}
void  S83C5 ::v142(){vfunc_called(this, "_ZN5S83C54v142Ev");}
void  S83C5 ::v143(){vfunc_called(this, "_ZN5S83C54v143Ev");}
void  S83C5 ::v144(){vfunc_called(this, "_ZN5S83C54v144Ev");}
void  S83C5 ::v145(){vfunc_called(this, "_ZN5S83C54v145Ev");}
S83C5 ::S83C5(){ note_ctor("S83C5", this);} // tgen

static void Test_S83C5()
{
  extern Class_Descriptor cd_S83C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S83C5, buf);
    S83C5 *dp, &lv = *(dp=new (buf) S83C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S83C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C5)");
    check_base_class_offset(lv, (S83C7*)(S83C6*), 0, "S83C5");
    check_base_class_offset(lv, (S83C6*), 0, "S83C5");
    check_field_offset(lv, s83c5f0, ABISELECT(96,60), "S83C5.s83c5f0");
    check_field_offset(lv, s83c5f1, ABISELECT(124,88), "S83C5.s83c5f1");
    set_bf_and_test(lv, s83c5f2, ABISELECT(128,92), 0, 1, 1, "S83C5");
    set_bf_and_test(lv, s83c5f3, ABISELECT(128,92), 1, 1, 1, "S83C5");
    set_bf_and_test(lv, s83c5f4, ABISELECT(128,92), 2, 1, 1, "S83C5");
    set_bf_and_test(lv, s83c5f5, ABISELECT(128,92), 3, 1, 1, "S83C5");
    check_field_offset(lv, s83c5f6, ABISELECT(136,96), "S83C5.s83c5f6");
    check_field_offset(lv, s83c5f7, ABISELECT(152,108), "S83C5.s83c5f7");
    check_field_offset(lv, s83c5f8, ABISELECT(168,120), "S83C5.s83c5f8");
    check_field_offset(lv, s83c5f9, ABISELECT(176,124), "S83C5.s83c5f9");
    check_field_offset(lv, s83c5f10, ABISELECT(192,136), "S83C5.s83c5f10");
    check_field_offset(lv, s83c5f11, ABISELECT(208,148), "S83C5.s83c5f11");
    check_field_offset(lv, s83c5f12, ABISELECT(224,160), "S83C5.s83c5f12");
    check_field_offset(lv, s83c5f13, ABISELECT(240,172), "S83C5.s83c5f13");
    check_field_offset(lv, s83c5f14, ABISELECT(244,176), "S83C5.s83c5f14");
    check_field_offset(lv, s83c5f15, ABISELECT(248,180), "S83C5.s83c5f15");
    check_field_offset(lv, s83c5f16, ABISELECT(256,184), "S83C5.s83c5f16");
    check_field_offset(lv, s83c5f17, ABISELECT(264,192), "S83C5.s83c5f17");
    check_field_offset(lv, s83c5f18, ABISELECT(272,200), "S83C5.s83c5f18");
    check_field_offset(lv, s83c5f19, ABISELECT(280,208), "S83C5.s83c5f19");
    check_field_offset(lv, s83c5f20, ABISELECT(288,216), "S83C5.s83c5f20");
    check_field_offset(lv, s83c5f21, ABISELECT(296,224), "S83C5.s83c5f21");
    check_field_offset(lv, s83c5f22, ABISELECT(304,232), "S83C5.s83c5f22");
    check_field_offset(lv, s83c5f23, ABISELECT(320,244), "S83C5.s83c5f23");
    check_field_offset(lv, s83c5f24, ABISELECT(336,256), "S83C5.s83c5f24");
    check_field_offset(lv, s83c5f25, ABISELECT(352,268), "S83C5.s83c5f25");
    check_field_offset(lv, s83c5f26, ABISELECT(368,280), "S83C5.s83c5f26");
    check_field_offset(lv, s83c5f27, ABISELECT(384,292), "S83C5.s83c5f27");
    check_field_offset(lv, s83c5f28, ABISELECT(400,304), "S83C5.s83c5f28");
    check_field_offset(lv, s83c5f29, ABISELECT(416,316), "S83C5.s83c5f29");
    check_field_offset(lv, s83c5f30, ABISELECT(432,328), "S83C5.s83c5f30");
    check_field_offset(lv, s83c5f31, ABISELECT(448,340), "S83C5.s83c5f31");
    test_class_info(&lv, &cd_S83C5);
    dp->~S83C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C5(Test_S83C5, "S83C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S83C5C1Ev();
extern void _ZN5S83C5D1Ev();
Name_Map name_map_S83C5[] = {
  NSPAIR(_ZN5S83C5C1Ev),
  NSPAIR(_ZN5S83C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S83C7;
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
extern Class_Descriptor cd_S83C6;
extern VTBL_ENTRY _ZTI5S83C6[];
extern  VTBL_ENTRY _ZTV5S83C6[];
static Base_Class bases_S83C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S83C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S83C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S83C5[];
extern void _ZN5S83C5D1Ev();
extern void _ZN5S83C5D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
extern void _ZN5S83C63v68Ev();
extern void _ZN5S83C63v69Ev();
extern void _ZN5S83C53v70Ev();
extern void _ZN5S83C53v71Ev();
extern void _ZN5S83C53v72Ev();
extern void _ZN5S83C53v73Ev();
extern void _ZN5S83C53v74Ev();
extern void _ZN5S83C53v75Ev();
extern void _ZN5S83C53v76Ev();
extern void _ZN5S83C53v77Ev();
extern void _ZN5S83C53v78Ev();
extern void _ZN5S83C53v79Ev();
extern void _ZN5S83C53v80Ev();
extern void _ZN5S83C53v81Ev();
extern void _ZN5S83C53v82Ev();
extern void _ZN5S83C53v83Ev();
extern void _ZN5S83C53v84Ev();
extern void _ZN5S83C53v85Ev();
extern void _ZN5S83C53v86Ev();
extern void _ZN5S83C53v87Ev();
extern void _ZN5S83C53v88Ev();
extern void _ZN5S83C53v89Ev();
extern void _ZN5S83C53v90Ev();
extern void _ZN5S83C53v91Ev();
extern void _ZN5S83C53v92Ev();
extern void _ZN5S83C53v93Ev();
extern void _ZN5S83C53v94Ev();
extern void _ZN5S83C53v95Ev();
extern void _ZN5S83C53v96Ev();
extern void _ZN5S83C53v97Ev();
extern void _ZN5S83C53v98Ev();
extern void _ZN5S83C53v99Ev();
extern void _ZN5S83C54v100Ev();
extern void _ZN5S83C54v101Ev();
extern void _ZN5S83C54v102Ev();
extern void _ZN5S83C54v103Ev();
extern void _ZN5S83C54v104Ev();
extern void _ZN5S83C54v105Ev();
extern void _ZN5S83C54v106Ev();
extern void _ZN5S83C54v107Ev();
extern void _ZN5S83C54v108Ev();
extern void _ZN5S83C54v109Ev();
extern void _ZN5S83C54v110Ev();
extern void _ZN5S83C54v111Ev();
extern void _ZN5S83C54v112Ev();
extern void _ZN5S83C54v113Ev();
extern void _ZN5S83C54v114Ev();
extern void _ZN5S83C54v115Ev();
extern void _ZN5S83C54v116Ev();
extern void _ZN5S83C54v117Ev();
extern void _ZN5S83C54v118Ev();
extern void _ZN5S83C54v119Ev();
extern void _ZN5S83C54v120Ev();
extern void _ZN5S83C54v121Ev();
extern void _ZN5S83C54v122Ev();
extern void _ZN5S83C54v123Ev();
extern void _ZN5S83C54v124Ev();
extern void _ZN5S83C54v125Ev();
extern void _ZN5S83C54v126Ev();
extern void _ZN5S83C54v127Ev();
extern void _ZN5S83C54v128Ev();
extern void _ZN5S83C54v129Ev();
extern void _ZN5S83C54v130Ev();
extern void _ZN5S83C54v131Ev();
extern void _ZN5S83C54v132Ev();
extern void _ZN5S83C54v133Ev();
extern void _ZN5S83C54v134Ev();
extern void _ZN5S83C54v135Ev();
extern void _ZN5S83C54v136Ev();
extern void _ZN5S83C54v137Ev();
extern void _ZN5S83C54v138Ev();
extern void _ZN5S83C54v139Ev();
extern void _ZN5S83C54v140Ev();
extern void _ZN5S83C54v141Ev();
extern void _ZN5S83C54v142Ev();
extern void _ZN5S83C54v143Ev();
extern void _ZN5S83C54v144Ev();
extern void _ZN5S83C54v145Ev();
static  VTBL_ENTRY vtc_S83C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C5[0]),
  (VTBL_ENTRY)&_ZN5S83C5D1Ev,
  (VTBL_ENTRY)&_ZN5S83C5D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
  (VTBL_ENTRY)&_ZN5S83C63v68Ev,
  (VTBL_ENTRY)&_ZN5S83C63v69Ev,
  (VTBL_ENTRY)&_ZN5S83C53v70Ev,
  (VTBL_ENTRY)&_ZN5S83C53v71Ev,
  (VTBL_ENTRY)&_ZN5S83C53v72Ev,
  (VTBL_ENTRY)&_ZN5S83C53v73Ev,
  (VTBL_ENTRY)&_ZN5S83C53v74Ev,
  (VTBL_ENTRY)&_ZN5S83C53v75Ev,
  (VTBL_ENTRY)&_ZN5S83C53v76Ev,
  (VTBL_ENTRY)&_ZN5S83C53v77Ev,
  (VTBL_ENTRY)&_ZN5S83C53v78Ev,
  (VTBL_ENTRY)&_ZN5S83C53v79Ev,
  (VTBL_ENTRY)&_ZN5S83C53v80Ev,
  (VTBL_ENTRY)&_ZN5S83C53v81Ev,
  (VTBL_ENTRY)&_ZN5S83C53v82Ev,
  (VTBL_ENTRY)&_ZN5S83C53v83Ev,
  (VTBL_ENTRY)&_ZN5S83C53v84Ev,
  (VTBL_ENTRY)&_ZN5S83C53v85Ev,
  (VTBL_ENTRY)&_ZN5S83C53v86Ev,
  (VTBL_ENTRY)&_ZN5S83C53v87Ev,
  (VTBL_ENTRY)&_ZN5S83C53v88Ev,
  (VTBL_ENTRY)&_ZN5S83C53v89Ev,
  (VTBL_ENTRY)&_ZN5S83C53v90Ev,
  (VTBL_ENTRY)&_ZN5S83C53v91Ev,
  (VTBL_ENTRY)&_ZN5S83C53v92Ev,
  (VTBL_ENTRY)&_ZN5S83C53v93Ev,
  (VTBL_ENTRY)&_ZN5S83C53v94Ev,
  (VTBL_ENTRY)&_ZN5S83C53v95Ev,
  (VTBL_ENTRY)&_ZN5S83C53v96Ev,
  (VTBL_ENTRY)&_ZN5S83C53v97Ev,
  (VTBL_ENTRY)&_ZN5S83C53v98Ev,
  (VTBL_ENTRY)&_ZN5S83C53v99Ev,
  (VTBL_ENTRY)&_ZN5S83C54v100Ev,
  (VTBL_ENTRY)&_ZN5S83C54v101Ev,
  (VTBL_ENTRY)&_ZN5S83C54v102Ev,
  (VTBL_ENTRY)&_ZN5S83C54v103Ev,
  (VTBL_ENTRY)&_ZN5S83C54v104Ev,
  (VTBL_ENTRY)&_ZN5S83C54v105Ev,
  (VTBL_ENTRY)&_ZN5S83C54v106Ev,
  (VTBL_ENTRY)&_ZN5S83C54v107Ev,
  (VTBL_ENTRY)&_ZN5S83C54v108Ev,
  (VTBL_ENTRY)&_ZN5S83C54v109Ev,
  (VTBL_ENTRY)&_ZN5S83C54v110Ev,
  (VTBL_ENTRY)&_ZN5S83C54v111Ev,
  (VTBL_ENTRY)&_ZN5S83C54v112Ev,
  (VTBL_ENTRY)&_ZN5S83C54v113Ev,
  (VTBL_ENTRY)&_ZN5S83C54v114Ev,
  (VTBL_ENTRY)&_ZN5S83C54v115Ev,
  (VTBL_ENTRY)&_ZN5S83C54v116Ev,
  (VTBL_ENTRY)&_ZN5S83C54v117Ev,
  (VTBL_ENTRY)&_ZN5S83C54v118Ev,
  (VTBL_ENTRY)&_ZN5S83C54v119Ev,
  (VTBL_ENTRY)&_ZN5S83C54v120Ev,
  (VTBL_ENTRY)&_ZN5S83C54v121Ev,
  (VTBL_ENTRY)&_ZN5S83C54v122Ev,
  (VTBL_ENTRY)&_ZN5S83C54v123Ev,
  (VTBL_ENTRY)&_ZN5S83C54v124Ev,
  (VTBL_ENTRY)&_ZN5S83C54v125Ev,
  (VTBL_ENTRY)&_ZN5S83C54v126Ev,
  (VTBL_ENTRY)&_ZN5S83C54v127Ev,
  (VTBL_ENTRY)&_ZN5S83C54v128Ev,
  (VTBL_ENTRY)&_ZN5S83C54v129Ev,
  (VTBL_ENTRY)&_ZN5S83C54v130Ev,
  (VTBL_ENTRY)&_ZN5S83C54v131Ev,
  (VTBL_ENTRY)&_ZN5S83C54v132Ev,
  (VTBL_ENTRY)&_ZN5S83C54v133Ev,
  (VTBL_ENTRY)&_ZN5S83C54v134Ev,
  (VTBL_ENTRY)&_ZN5S83C54v135Ev,
  (VTBL_ENTRY)&_ZN5S83C54v136Ev,
  (VTBL_ENTRY)&_ZN5S83C54v137Ev,
  (VTBL_ENTRY)&_ZN5S83C54v138Ev,
  (VTBL_ENTRY)&_ZN5S83C54v139Ev,
  (VTBL_ENTRY)&_ZN5S83C54v140Ev,
  (VTBL_ENTRY)&_ZN5S83C54v141Ev,
  (VTBL_ENTRY)&_ZN5S83C54v142Ev,
  (VTBL_ENTRY)&_ZN5S83C54v143Ev,
  (VTBL_ENTRY)&_ZN5S83C54v144Ev,
  (VTBL_ENTRY)&_ZN5S83C54v145Ev,
};
extern VTBL_ENTRY _ZTI5S83C5[];
extern  VTBL_ENTRY _ZTV5S83C5[];
Class_Descriptor cd_S83C5 = {  "S83C5", // class name
  bases_S83C5, 2,
  &(vtc_S83C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S83C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S83C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C4  : S83C5 {
  ::S85C27_nt s83c4f0;
  void *s83c4f1[9];
  ::S80C15 s83c4f2;
  ::S85C35 s83c4f3;
  ::S80C24 s83c4f4;
  int s83c4f5;
  unsigned int s83c4f6:1;
  unsigned int s83c4f7:1;
  unsigned int s83c4f8:1;
  unsigned int s83c4f9:1;
  unsigned int s83c4f10:1;
  unsigned int s83c4f11:1;
  unsigned int s83c4f12:1;
  unsigned int s83c4f13:1;
  unsigned int s83c4f14:1;
  unsigned int s83c4f15:1;
  unsigned int s83c4f16:1;
  unsigned int s83c4f17:1;
  unsigned int s83c4f18:1;
  unsigned int s83c4f19:1;
  unsigned int s83c4f20:1;
  unsigned int s83c4f21:1;
  unsigned int s83c4f22:1;
  unsigned int s83c4f23:1;
  unsigned int s83c4f24:1;
  unsigned int s83c4f25:1;
  unsigned int s83c4f26:1;
  unsigned int s83c4f27:1;
  void *s83c4f28;
  char s83c4f29[2];
  ::S80C8_nt s83c4f30;
  ::S85C27_nt s83c4f31;
  ::S85C27_nt s83c4f32;
  void *s83c4f33;
  ::S80C21_nt s83c4f34;
  ::S80C21_nt s83c4f35;
  ::S80C21_nt s83c4f36;
  ::S80C21_nt s83c4f37;
  ::S80C21_nt s83c4f38;
  virtual  ~S83C4(); // _ZN5S83C4D1Ev
  virtual void  v146(); // _ZN5S83C44v146Ev
  virtual void  v147(); // _ZN5S83C44v147Ev
  virtual void  v148(); // _ZN5S83C44v148Ev
  virtual void  v149(); // _ZN5S83C44v149Ev
  virtual void  v150(); // _ZN5S83C44v150Ev
  virtual void  v151(); // _ZN5S83C44v151Ev
  virtual void  v152(); // _ZN5S83C44v152Ev
  virtual void  v153(); // _ZN5S83C44v153Ev
  virtual void  v154(); // _ZN5S83C44v154Ev
  virtual void  v155(); // _ZN5S83C44v155Ev
  virtual void  v156(); // _ZN5S83C44v156Ev
  virtual void  v157(); // _ZN5S83C44v157Ev
  virtual void  v158(); // _ZN5S83C44v158Ev
  virtual void  v159(); // _ZN5S83C44v159Ev
  virtual void  v160(); // _ZN5S83C44v160Ev
  virtual void  v161(); // _ZN5S83C44v161Ev
  virtual void  v162(); // _ZN5S83C44v162Ev
  virtual void  v163(); // _ZN5S83C44v163Ev
  virtual void  v164(); // _ZN5S83C44v164Ev
  virtual void  v165(); // _ZN5S83C44v165Ev
  virtual void  v166(); // _ZN5S83C44v166Ev
  virtual void  v167(); // _ZN5S83C44v167Ev
  virtual void  v168(); // _ZN5S83C44v168Ev
  virtual void  v169(); // _ZN5S83C44v169Ev
  virtual void  v170(); // _ZN5S83C44v170Ev
  virtual void  v171(); // _ZN5S83C44v171Ev
  virtual void  v172(); // _ZN5S83C44v172Ev
  virtual void  v173(); // _ZN5S83C44v173Ev
  virtual void  v174(); // _ZN5S83C44v174Ev
  virtual void  v175(); // _ZN5S83C44v175Ev
  virtual void  v176(); // _ZN5S83C44v176Ev
  virtual void  v177(); // _ZN5S83C44v177Ev
  virtual void  v178(); // _ZN5S83C44v178Ev
  virtual void  v179(); // _ZN5S83C44v179Ev
  virtual void  v180(); // _ZN5S83C44v180Ev
  virtual void  v181(); // _ZN5S83C44v181Ev
  virtual void  v182(); // _ZN5S83C44v182Ev
  virtual void  v183(); // _ZN5S83C44v183Ev
  virtual void  v184(); // _ZN5S83C44v184Ev
  S83C4(); // tgen
};
//SIG(-1 S83C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S83C4 ::~S83C4(){ note_dtor("S83C4", this);}
void  S83C4 ::v146(){vfunc_called(this, "_ZN5S83C44v146Ev");}
void  S83C4 ::v147(){vfunc_called(this, "_ZN5S83C44v147Ev");}
void  S83C4 ::v148(){vfunc_called(this, "_ZN5S83C44v148Ev");}
void  S83C4 ::v149(){vfunc_called(this, "_ZN5S83C44v149Ev");}
void  S83C4 ::v150(){vfunc_called(this, "_ZN5S83C44v150Ev");}
void  S83C4 ::v151(){vfunc_called(this, "_ZN5S83C44v151Ev");}
void  S83C4 ::v152(){vfunc_called(this, "_ZN5S83C44v152Ev");}
void  S83C4 ::v153(){vfunc_called(this, "_ZN5S83C44v153Ev");}
void  S83C4 ::v154(){vfunc_called(this, "_ZN5S83C44v154Ev");}
void  S83C4 ::v155(){vfunc_called(this, "_ZN5S83C44v155Ev");}
void  S83C4 ::v156(){vfunc_called(this, "_ZN5S83C44v156Ev");}
void  S83C4 ::v157(){vfunc_called(this, "_ZN5S83C44v157Ev");}
void  S83C4 ::v158(){vfunc_called(this, "_ZN5S83C44v158Ev");}
void  S83C4 ::v159(){vfunc_called(this, "_ZN5S83C44v159Ev");}
void  S83C4 ::v160(){vfunc_called(this, "_ZN5S83C44v160Ev");}
void  S83C4 ::v161(){vfunc_called(this, "_ZN5S83C44v161Ev");}
void  S83C4 ::v162(){vfunc_called(this, "_ZN5S83C44v162Ev");}
void  S83C4 ::v163(){vfunc_called(this, "_ZN5S83C44v163Ev");}
void  S83C4 ::v164(){vfunc_called(this, "_ZN5S83C44v164Ev");}
void  S83C4 ::v165(){vfunc_called(this, "_ZN5S83C44v165Ev");}
void  S83C4 ::v166(){vfunc_called(this, "_ZN5S83C44v166Ev");}
void  S83C4 ::v167(){vfunc_called(this, "_ZN5S83C44v167Ev");}
void  S83C4 ::v168(){vfunc_called(this, "_ZN5S83C44v168Ev");}
void  S83C4 ::v169(){vfunc_called(this, "_ZN5S83C44v169Ev");}
void  S83C4 ::v170(){vfunc_called(this, "_ZN5S83C44v170Ev");}
void  S83C4 ::v171(){vfunc_called(this, "_ZN5S83C44v171Ev");}
void  S83C4 ::v172(){vfunc_called(this, "_ZN5S83C44v172Ev");}
void  S83C4 ::v173(){vfunc_called(this, "_ZN5S83C44v173Ev");}
void  S83C4 ::v174(){vfunc_called(this, "_ZN5S83C44v174Ev");}
void  S83C4 ::v175(){vfunc_called(this, "_ZN5S83C44v175Ev");}
void  S83C4 ::v176(){vfunc_called(this, "_ZN5S83C44v176Ev");}
void  S83C4 ::v177(){vfunc_called(this, "_ZN5S83C44v177Ev");}
void  S83C4 ::v178(){vfunc_called(this, "_ZN5S83C44v178Ev");}
void  S83C4 ::v179(){vfunc_called(this, "_ZN5S83C44v179Ev");}
void  S83C4 ::v180(){vfunc_called(this, "_ZN5S83C44v180Ev");}
void  S83C4 ::v181(){vfunc_called(this, "_ZN5S83C44v181Ev");}
void  S83C4 ::v182(){vfunc_called(this, "_ZN5S83C44v182Ev");}
void  S83C4 ::v183(){vfunc_called(this, "_ZN5S83C44v183Ev");}
void  S83C4 ::v184(){vfunc_called(this, "_ZN5S83C44v184Ev");}
S83C4 ::S83C4(){ note_ctor("S83C4", this);} // tgen

static void Test_S83C4()
{
  extern Class_Descriptor cd_S83C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S83C4, buf);
    S83C4 *dp, &lv = *(dp=new (buf) S83C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S83C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C4)");
    check_base_class_offset(lv, (S83C7*)(S83C6*)(S83C5*), 0, "S83C4");
    check_base_class_offset(lv, (S83C6*)(S83C5*), 0, "S83C4");
    check_base_class_offset(lv, (S83C5*), 0, "S83C4");
    check_field_offset(lv, s83c4f0, ABISELECT(464,352), "S83C4.s83c4f0");
    check_field_offset(lv, s83c4f1, ABISELECT(472,360), "S83C4.s83c4f1");
    check_field_offset(lv, s83c4f2, ABISELECT(544,396), "S83C4.s83c4f2");
    check_field_offset(lv, s83c4f3, ABISELECT(560,408), "S83C4.s83c4f3");
    check_field_offset(lv, s83c4f4, ABISELECT(576,420), "S83C4.s83c4f4");
    check_field_offset(lv, s83c4f5, ABISELECT(608,440), "S83C4.s83c4f5");
    set_bf_and_test(lv, s83c4f6, ABISELECT(612,444), 0, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f7, ABISELECT(612,444), 1, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f8, ABISELECT(612,444), 2, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f9, ABISELECT(612,444), 3, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f10, ABISELECT(612,444), 4, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f11, ABISELECT(612,444), 5, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f12, ABISELECT(612,444), 6, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f13, ABISELECT(612,444), 7, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f14, ABISELECT(613,445), 0, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f15, ABISELECT(613,445), 1, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f16, ABISELECT(613,445), 2, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f17, ABISELECT(613,445), 3, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f18, ABISELECT(613,445), 4, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f19, ABISELECT(613,445), 5, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f20, ABISELECT(613,445), 6, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f21, ABISELECT(613,445), 7, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f22, ABISELECT(614,446), 0, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f23, ABISELECT(614,446), 1, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f24, ABISELECT(614,446), 2, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f25, ABISELECT(614,446), 3, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f26, ABISELECT(614,446), 4, 1, 1, "S83C4");
    set_bf_and_test(lv, s83c4f27, ABISELECT(614,446), 5, 1, 1, "S83C4");
    check_field_offset(lv, s83c4f28, ABISELECT(616,448), "S83C4.s83c4f28");
    check_field_offset(lv, s83c4f29, ABISELECT(624,452), "S83C4.s83c4f29");
    check_field_offset(lv, s83c4f30, ABISELECT(628,456), "S83C4.s83c4f30");
    check_field_offset(lv, s83c4f31, ABISELECT(636,464), "S83C4.s83c4f31");
    check_field_offset(lv, s83c4f32, ABISELECT(644,472), "S83C4.s83c4f32");
    check_field_offset(lv, s83c4f33, ABISELECT(656,480), "S83C4.s83c4f33");
    check_field_offset(lv, s83c4f34, ABISELECT(664,484), "S83C4.s83c4f34");
    check_field_offset(lv, s83c4f35, ABISELECT(680,496), "S83C4.s83c4f35");
    check_field_offset(lv, s83c4f36, ABISELECT(696,508), "S83C4.s83c4f36");
    check_field_offset(lv, s83c4f37, ABISELECT(712,520), "S83C4.s83c4f37");
    check_field_offset(lv, s83c4f38, ABISELECT(728,532), "S83C4.s83c4f38");
    test_class_info(&lv, &cd_S83C4);
    dp->~S83C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C4(Test_S83C4, "S83C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S83C4C1Ev();
extern void _ZN5S83C4D1Ev();
Name_Map name_map_S83C4[] = {
  NSPAIR(_ZN5S83C4C1Ev),
  NSPAIR(_ZN5S83C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S83C7;
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
extern Class_Descriptor cd_S83C6;
extern VTBL_ENTRY _ZTI5S83C6[];
extern  VTBL_ENTRY _ZTV5S83C6[];
extern Class_Descriptor cd_S83C5;
extern VTBL_ENTRY _ZTI5S83C5[];
extern  VTBL_ENTRY _ZTV5S83C5[];
static Base_Class bases_S83C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S83C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S83C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S83C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S83C4[];
extern void _ZN5S83C4D1Ev();
extern void _ZN5S83C4D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
extern void _ZN5S83C63v68Ev();
extern void _ZN5S83C63v69Ev();
extern void _ZN5S83C53v70Ev();
extern void _ZN5S83C53v71Ev();
extern void _ZN5S83C53v72Ev();
extern void _ZN5S83C53v73Ev();
extern void _ZN5S83C53v74Ev();
extern void _ZN5S83C53v75Ev();
extern void _ZN5S83C53v76Ev();
extern void _ZN5S83C53v77Ev();
extern void _ZN5S83C53v78Ev();
extern void _ZN5S83C53v79Ev();
extern void _ZN5S83C53v80Ev();
extern void _ZN5S83C53v81Ev();
extern void _ZN5S83C53v82Ev();
extern void _ZN5S83C53v83Ev();
extern void _ZN5S83C53v84Ev();
extern void _ZN5S83C53v85Ev();
extern void _ZN5S83C53v86Ev();
extern void _ZN5S83C53v87Ev();
extern void _ZN5S83C53v88Ev();
extern void _ZN5S83C53v89Ev();
extern void _ZN5S83C53v90Ev();
extern void _ZN5S83C53v91Ev();
extern void _ZN5S83C53v92Ev();
extern void _ZN5S83C53v93Ev();
extern void _ZN5S83C53v94Ev();
extern void _ZN5S83C53v95Ev();
extern void _ZN5S83C53v96Ev();
extern void _ZN5S83C53v97Ev();
extern void _ZN5S83C53v98Ev();
extern void _ZN5S83C53v99Ev();
extern void _ZN5S83C54v100Ev();
extern void _ZN5S83C54v101Ev();
extern void _ZN5S83C54v102Ev();
extern void _ZN5S83C54v103Ev();
extern void _ZN5S83C54v104Ev();
extern void _ZN5S83C54v105Ev();
extern void _ZN5S83C54v106Ev();
extern void _ZN5S83C54v107Ev();
extern void _ZN5S83C54v108Ev();
extern void _ZN5S83C54v109Ev();
extern void _ZN5S83C54v110Ev();
extern void _ZN5S83C54v111Ev();
extern void _ZN5S83C54v112Ev();
extern void _ZN5S83C54v113Ev();
extern void _ZN5S83C54v114Ev();
extern void _ZN5S83C54v115Ev();
extern void _ZN5S83C54v116Ev();
extern void _ZN5S83C54v117Ev();
extern void _ZN5S83C54v118Ev();
extern void _ZN5S83C54v119Ev();
extern void _ZN5S83C54v120Ev();
extern void _ZN5S83C54v121Ev();
extern void _ZN5S83C54v122Ev();
extern void _ZN5S83C54v123Ev();
extern void _ZN5S83C54v124Ev();
extern void _ZN5S83C54v125Ev();
extern void _ZN5S83C54v126Ev();
extern void _ZN5S83C54v127Ev();
extern void _ZN5S83C54v128Ev();
extern void _ZN5S83C54v129Ev();
extern void _ZN5S83C54v130Ev();
extern void _ZN5S83C54v131Ev();
extern void _ZN5S83C54v132Ev();
extern void _ZN5S83C54v133Ev();
extern void _ZN5S83C54v134Ev();
extern void _ZN5S83C54v135Ev();
extern void _ZN5S83C54v136Ev();
extern void _ZN5S83C54v137Ev();
extern void _ZN5S83C54v138Ev();
extern void _ZN5S83C54v139Ev();
extern void _ZN5S83C54v140Ev();
extern void _ZN5S83C54v141Ev();
extern void _ZN5S83C54v142Ev();
extern void _ZN5S83C54v143Ev();
extern void _ZN5S83C54v144Ev();
extern void _ZN5S83C54v145Ev();
extern void _ZN5S83C44v146Ev();
extern void _ZN5S83C44v147Ev();
extern void _ZN5S83C44v148Ev();
extern void _ZN5S83C44v149Ev();
extern void _ZN5S83C44v150Ev();
extern void _ZN5S83C44v151Ev();
extern void _ZN5S83C44v152Ev();
extern void _ZN5S83C44v153Ev();
extern void _ZN5S83C44v154Ev();
extern void _ZN5S83C44v155Ev();
extern void _ZN5S83C44v156Ev();
extern void _ZN5S83C44v157Ev();
extern void _ZN5S83C44v158Ev();
extern void _ZN5S83C44v159Ev();
extern void _ZN5S83C44v160Ev();
extern void _ZN5S83C44v161Ev();
extern void _ZN5S83C44v162Ev();
extern void _ZN5S83C44v163Ev();
extern void _ZN5S83C44v164Ev();
extern void _ZN5S83C44v165Ev();
extern void _ZN5S83C44v166Ev();
extern void _ZN5S83C44v167Ev();
extern void _ZN5S83C44v168Ev();
extern void _ZN5S83C44v169Ev();
extern void _ZN5S83C44v170Ev();
extern void _ZN5S83C44v171Ev();
extern void _ZN5S83C44v172Ev();
extern void _ZN5S83C44v173Ev();
extern void _ZN5S83C44v174Ev();
extern void _ZN5S83C44v175Ev();
extern void _ZN5S83C44v176Ev();
extern void _ZN5S83C44v177Ev();
extern void _ZN5S83C44v178Ev();
extern void _ZN5S83C44v179Ev();
extern void _ZN5S83C44v180Ev();
extern void _ZN5S83C44v181Ev();
extern void _ZN5S83C44v182Ev();
extern void _ZN5S83C44v183Ev();
extern void _ZN5S83C44v184Ev();
static  VTBL_ENTRY vtc_S83C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C4[0]),
  (VTBL_ENTRY)&_ZN5S83C4D1Ev,
  (VTBL_ENTRY)&_ZN5S83C4D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
  (VTBL_ENTRY)&_ZN5S83C63v68Ev,
  (VTBL_ENTRY)&_ZN5S83C63v69Ev,
  (VTBL_ENTRY)&_ZN5S83C53v70Ev,
  (VTBL_ENTRY)&_ZN5S83C53v71Ev,
  (VTBL_ENTRY)&_ZN5S83C53v72Ev,
  (VTBL_ENTRY)&_ZN5S83C53v73Ev,
  (VTBL_ENTRY)&_ZN5S83C53v74Ev,
  (VTBL_ENTRY)&_ZN5S83C53v75Ev,
  (VTBL_ENTRY)&_ZN5S83C53v76Ev,
  (VTBL_ENTRY)&_ZN5S83C53v77Ev,
  (VTBL_ENTRY)&_ZN5S83C53v78Ev,
  (VTBL_ENTRY)&_ZN5S83C53v79Ev,
  (VTBL_ENTRY)&_ZN5S83C53v80Ev,
  (VTBL_ENTRY)&_ZN5S83C53v81Ev,
  (VTBL_ENTRY)&_ZN5S83C53v82Ev,
  (VTBL_ENTRY)&_ZN5S83C53v83Ev,
  (VTBL_ENTRY)&_ZN5S83C53v84Ev,
  (VTBL_ENTRY)&_ZN5S83C53v85Ev,
  (VTBL_ENTRY)&_ZN5S83C53v86Ev,
  (VTBL_ENTRY)&_ZN5S83C53v87Ev,
  (VTBL_ENTRY)&_ZN5S83C53v88Ev,
  (VTBL_ENTRY)&_ZN5S83C53v89Ev,
  (VTBL_ENTRY)&_ZN5S83C53v90Ev,
  (VTBL_ENTRY)&_ZN5S83C53v91Ev,
  (VTBL_ENTRY)&_ZN5S83C53v92Ev,
  (VTBL_ENTRY)&_ZN5S83C53v93Ev,
  (VTBL_ENTRY)&_ZN5S83C53v94Ev,
  (VTBL_ENTRY)&_ZN5S83C53v95Ev,
  (VTBL_ENTRY)&_ZN5S83C53v96Ev,
  (VTBL_ENTRY)&_ZN5S83C53v97Ev,
  (VTBL_ENTRY)&_ZN5S83C53v98Ev,
  (VTBL_ENTRY)&_ZN5S83C53v99Ev,
  (VTBL_ENTRY)&_ZN5S83C54v100Ev,
  (VTBL_ENTRY)&_ZN5S83C54v101Ev,
  (VTBL_ENTRY)&_ZN5S83C54v102Ev,
  (VTBL_ENTRY)&_ZN5S83C54v103Ev,
  (VTBL_ENTRY)&_ZN5S83C54v104Ev,
  (VTBL_ENTRY)&_ZN5S83C54v105Ev,
  (VTBL_ENTRY)&_ZN5S83C54v106Ev,
  (VTBL_ENTRY)&_ZN5S83C54v107Ev,
  (VTBL_ENTRY)&_ZN5S83C54v108Ev,
  (VTBL_ENTRY)&_ZN5S83C54v109Ev,
  (VTBL_ENTRY)&_ZN5S83C54v110Ev,
  (VTBL_ENTRY)&_ZN5S83C54v111Ev,
  (VTBL_ENTRY)&_ZN5S83C54v112Ev,
  (VTBL_ENTRY)&_ZN5S83C54v113Ev,
  (VTBL_ENTRY)&_ZN5S83C54v114Ev,
  (VTBL_ENTRY)&_ZN5S83C54v115Ev,
  (VTBL_ENTRY)&_ZN5S83C54v116Ev,
  (VTBL_ENTRY)&_ZN5S83C54v117Ev,
  (VTBL_ENTRY)&_ZN5S83C54v118Ev,
  (VTBL_ENTRY)&_ZN5S83C54v119Ev,
  (VTBL_ENTRY)&_ZN5S83C54v120Ev,
  (VTBL_ENTRY)&_ZN5S83C54v121Ev,
  (VTBL_ENTRY)&_ZN5S83C54v122Ev,
  (VTBL_ENTRY)&_ZN5S83C54v123Ev,
  (VTBL_ENTRY)&_ZN5S83C54v124Ev,
  (VTBL_ENTRY)&_ZN5S83C54v125Ev,
  (VTBL_ENTRY)&_ZN5S83C54v126Ev,
  (VTBL_ENTRY)&_ZN5S83C54v127Ev,
  (VTBL_ENTRY)&_ZN5S83C54v128Ev,
  (VTBL_ENTRY)&_ZN5S83C54v129Ev,
  (VTBL_ENTRY)&_ZN5S83C54v130Ev,
  (VTBL_ENTRY)&_ZN5S83C54v131Ev,
  (VTBL_ENTRY)&_ZN5S83C54v132Ev,
  (VTBL_ENTRY)&_ZN5S83C54v133Ev,
  (VTBL_ENTRY)&_ZN5S83C54v134Ev,
  (VTBL_ENTRY)&_ZN5S83C54v135Ev,
  (VTBL_ENTRY)&_ZN5S83C54v136Ev,
  (VTBL_ENTRY)&_ZN5S83C54v137Ev,
  (VTBL_ENTRY)&_ZN5S83C54v138Ev,
  (VTBL_ENTRY)&_ZN5S83C54v139Ev,
  (VTBL_ENTRY)&_ZN5S83C54v140Ev,
  (VTBL_ENTRY)&_ZN5S83C54v141Ev,
  (VTBL_ENTRY)&_ZN5S83C54v142Ev,
  (VTBL_ENTRY)&_ZN5S83C54v143Ev,
  (VTBL_ENTRY)&_ZN5S83C54v144Ev,
  (VTBL_ENTRY)&_ZN5S83C54v145Ev,
  (VTBL_ENTRY)&_ZN5S83C44v146Ev,
  (VTBL_ENTRY)&_ZN5S83C44v147Ev,
  (VTBL_ENTRY)&_ZN5S83C44v148Ev,
  (VTBL_ENTRY)&_ZN5S83C44v149Ev,
  (VTBL_ENTRY)&_ZN5S83C44v150Ev,
  (VTBL_ENTRY)&_ZN5S83C44v151Ev,
  (VTBL_ENTRY)&_ZN5S83C44v152Ev,
  (VTBL_ENTRY)&_ZN5S83C44v153Ev,
  (VTBL_ENTRY)&_ZN5S83C44v154Ev,
  (VTBL_ENTRY)&_ZN5S83C44v155Ev,
  (VTBL_ENTRY)&_ZN5S83C44v156Ev,
  (VTBL_ENTRY)&_ZN5S83C44v157Ev,
  (VTBL_ENTRY)&_ZN5S83C44v158Ev,
  (VTBL_ENTRY)&_ZN5S83C44v159Ev,
  (VTBL_ENTRY)&_ZN5S83C44v160Ev,
  (VTBL_ENTRY)&_ZN5S83C44v161Ev,
  (VTBL_ENTRY)&_ZN5S83C44v162Ev,
  (VTBL_ENTRY)&_ZN5S83C44v163Ev,
  (VTBL_ENTRY)&_ZN5S83C44v164Ev,
  (VTBL_ENTRY)&_ZN5S83C44v165Ev,
  (VTBL_ENTRY)&_ZN5S83C44v166Ev,
  (VTBL_ENTRY)&_ZN5S83C44v167Ev,
  (VTBL_ENTRY)&_ZN5S83C44v168Ev,
  (VTBL_ENTRY)&_ZN5S83C44v169Ev,
  (VTBL_ENTRY)&_ZN5S83C44v170Ev,
  (VTBL_ENTRY)&_ZN5S83C44v171Ev,
  (VTBL_ENTRY)&_ZN5S83C44v172Ev,
  (VTBL_ENTRY)&_ZN5S83C44v173Ev,
  (VTBL_ENTRY)&_ZN5S83C44v174Ev,
  (VTBL_ENTRY)&_ZN5S83C44v175Ev,
  (VTBL_ENTRY)&_ZN5S83C44v176Ev,
  (VTBL_ENTRY)&_ZN5S83C44v177Ev,
  (VTBL_ENTRY)&_ZN5S83C44v178Ev,
  (VTBL_ENTRY)&_ZN5S83C44v179Ev,
  (VTBL_ENTRY)&_ZN5S83C44v180Ev,
  (VTBL_ENTRY)&_ZN5S83C44v181Ev,
  (VTBL_ENTRY)&_ZN5S83C44v182Ev,
  (VTBL_ENTRY)&_ZN5S83C44v183Ev,
  (VTBL_ENTRY)&_ZN5S83C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S83C4[];
extern  VTBL_ENTRY _ZTV5S83C4[];
Class_Descriptor cd_S83C4 = {  "S83C4", // class name
  bases_S83C4, 3,
  &(vtc_S83C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S83C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S83C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C3  : S83C4 {
  unsigned int s83c3f0:1;
  unsigned int s83c3f1:1;
  unsigned int s83c3f2:1;
  unsigned int s83c3f3:1;
  unsigned int s83c3f4:1;
  unsigned int s83c3f5:1;
  void *s83c3f6[8];
  ::S80C21_nt s83c3f7;
  ::S80C21_nt s83c3f8;
  ::S80C21_nt s83c3f9;
  virtual  ~S83C3(); // _ZN5S83C3D1Ev
  virtual void  v185(); // _ZN5S83C34v185Ev
  virtual void  v186(); // _ZN5S83C34v186Ev
  virtual void  v187(); // _ZN5S83C34v187Ev
  virtual void  v188(); // _ZN5S83C34v188Ev
  virtual void  v189(); // _ZN5S83C34v189Ev
  virtual void  v190(); // _ZN5S83C34v190Ev
  virtual void  v191(); // _ZN5S83C34v191Ev
  virtual void  v192(); // _ZN5S83C34v192Ev
  virtual void  v193(); // _ZN5S83C34v193Ev
  virtual void  v194(); // _ZN5S83C34v194Ev
  virtual void  v195(); // _ZN5S83C34v195Ev
  virtual void  v196(); // _ZN5S83C34v196Ev
  virtual void  v197(); // _ZN5S83C34v197Ev
  virtual void  v198(); // _ZN5S83C34v198Ev
  virtual void  v199(); // _ZN5S83C34v199Ev
  virtual void  v200(); // _ZN5S83C34v200Ev
  virtual void  v201(); // _ZN5S83C34v201Ev
  virtual void  v202(); // _ZN5S83C34v202Ev
  virtual void  v203(); // _ZN5S83C34v203Ev
  virtual void  v204(); // _ZN5S83C34v204Ev
  virtual void  v205(); // _ZN5S83C34v205Ev
  virtual void  v206(); // _ZN5S83C34v206Ev
  virtual void  v207(); // _ZN5S83C34v207Ev
  S83C3(); // tgen
};
//SIG(-1 S83C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S83C3 ::~S83C3(){ note_dtor("S83C3", this);}
void  S83C3 ::v185(){vfunc_called(this, "_ZN5S83C34v185Ev");}
void  S83C3 ::v186(){vfunc_called(this, "_ZN5S83C34v186Ev");}
void  S83C3 ::v187(){vfunc_called(this, "_ZN5S83C34v187Ev");}
void  S83C3 ::v188(){vfunc_called(this, "_ZN5S83C34v188Ev");}
void  S83C3 ::v189(){vfunc_called(this, "_ZN5S83C34v189Ev");}
void  S83C3 ::v190(){vfunc_called(this, "_ZN5S83C34v190Ev");}
void  S83C3 ::v191(){vfunc_called(this, "_ZN5S83C34v191Ev");}
void  S83C3 ::v192(){vfunc_called(this, "_ZN5S83C34v192Ev");}
void  S83C3 ::v193(){vfunc_called(this, "_ZN5S83C34v193Ev");}
void  S83C3 ::v194(){vfunc_called(this, "_ZN5S83C34v194Ev");}
void  S83C3 ::v195(){vfunc_called(this, "_ZN5S83C34v195Ev");}
void  S83C3 ::v196(){vfunc_called(this, "_ZN5S83C34v196Ev");}
void  S83C3 ::v197(){vfunc_called(this, "_ZN5S83C34v197Ev");}
void  S83C3 ::v198(){vfunc_called(this, "_ZN5S83C34v198Ev");}
void  S83C3 ::v199(){vfunc_called(this, "_ZN5S83C34v199Ev");}
void  S83C3 ::v200(){vfunc_called(this, "_ZN5S83C34v200Ev");}
void  S83C3 ::v201(){vfunc_called(this, "_ZN5S83C34v201Ev");}
void  S83C3 ::v202(){vfunc_called(this, "_ZN5S83C34v202Ev");}
void  S83C3 ::v203(){vfunc_called(this, "_ZN5S83C34v203Ev");}
void  S83C3 ::v204(){vfunc_called(this, "_ZN5S83C34v204Ev");}
void  S83C3 ::v205(){vfunc_called(this, "_ZN5S83C34v205Ev");}
void  S83C3 ::v206(){vfunc_called(this, "_ZN5S83C34v206Ev");}
void  S83C3 ::v207(){vfunc_called(this, "_ZN5S83C34v207Ev");}
S83C3 ::S83C3(){ note_ctor("S83C3", this);} // tgen

static void Test_S83C3()
{
  extern Class_Descriptor cd_S83C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S83C3, buf);
    S83C3 *dp, &lv = *(dp=new (buf) S83C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S83C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C3)");
    check_base_class_offset(lv, (S83C7*)(S83C6*)(S83C5*)(S83C4*), 0, "S83C3");
    check_base_class_offset(lv, (S83C6*)(S83C5*)(S83C4*), 0, "S83C3");
    check_base_class_offset(lv, (S83C5*)(S83C4*), 0, "S83C3");
    check_base_class_offset(lv, (S83C4*), 0, "S83C3");
    set_bf_and_test(lv, s83c3f0, ABISELECT(744,544), 0, 1, 1, "S83C3");
    set_bf_and_test(lv, s83c3f1, ABISELECT(744,544), 1, 1, 1, "S83C3");
    set_bf_and_test(lv, s83c3f2, ABISELECT(744,544), 2, 1, 1, "S83C3");
    set_bf_and_test(lv, s83c3f3, ABISELECT(744,544), 3, 1, 1, "S83C3");
    set_bf_and_test(lv, s83c3f4, ABISELECT(744,544), 4, 1, 1, "S83C3");
    set_bf_and_test(lv, s83c3f5, ABISELECT(744,544), 5, 1, 1, "S83C3");
    check_field_offset(lv, s83c3f6, ABISELECT(752,548), "S83C3.s83c3f6");
    check_field_offset(lv, s83c3f7, ABISELECT(816,580), "S83C3.s83c3f7");
    check_field_offset(lv, s83c3f8, ABISELECT(832,592), "S83C3.s83c3f8");
    check_field_offset(lv, s83c3f9, ABISELECT(848,604), "S83C3.s83c3f9");
    test_class_info(&lv, &cd_S83C3);
    dp->~S83C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C3(Test_S83C3, "S83C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S83C3C1Ev();
extern void _ZN5S83C3D1Ev();
Name_Map name_map_S83C3[] = {
  NSPAIR(_ZN5S83C3C1Ev),
  NSPAIR(_ZN5S83C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S83C7;
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
extern Class_Descriptor cd_S83C6;
extern VTBL_ENTRY _ZTI5S83C6[];
extern  VTBL_ENTRY _ZTV5S83C6[];
extern Class_Descriptor cd_S83C5;
extern VTBL_ENTRY _ZTI5S83C5[];
extern  VTBL_ENTRY _ZTV5S83C5[];
extern Class_Descriptor cd_S83C4;
extern VTBL_ENTRY _ZTI5S83C4[];
extern  VTBL_ENTRY _ZTV5S83C4[];
static Base_Class bases_S83C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S83C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S83C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S83C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S83C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S83C3[];
extern void _ZN5S83C3D1Ev();
extern void _ZN5S83C3D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
extern void _ZN5S83C63v68Ev();
extern void _ZN5S83C63v69Ev();
extern void _ZN5S83C53v70Ev();
extern void _ZN5S83C53v71Ev();
extern void _ZN5S83C53v72Ev();
extern void _ZN5S83C53v73Ev();
extern void _ZN5S83C53v74Ev();
extern void _ZN5S83C53v75Ev();
extern void _ZN5S83C53v76Ev();
extern void _ZN5S83C53v77Ev();
extern void _ZN5S83C53v78Ev();
extern void _ZN5S83C53v79Ev();
extern void _ZN5S83C53v80Ev();
extern void _ZN5S83C53v81Ev();
extern void _ZN5S83C53v82Ev();
extern void _ZN5S83C53v83Ev();
extern void _ZN5S83C53v84Ev();
extern void _ZN5S83C53v85Ev();
extern void _ZN5S83C53v86Ev();
extern void _ZN5S83C53v87Ev();
extern void _ZN5S83C53v88Ev();
extern void _ZN5S83C53v89Ev();
extern void _ZN5S83C53v90Ev();
extern void _ZN5S83C53v91Ev();
extern void _ZN5S83C53v92Ev();
extern void _ZN5S83C53v93Ev();
extern void _ZN5S83C53v94Ev();
extern void _ZN5S83C53v95Ev();
extern void _ZN5S83C53v96Ev();
extern void _ZN5S83C53v97Ev();
extern void _ZN5S83C53v98Ev();
extern void _ZN5S83C53v99Ev();
extern void _ZN5S83C54v100Ev();
extern void _ZN5S83C54v101Ev();
extern void _ZN5S83C54v102Ev();
extern void _ZN5S83C54v103Ev();
extern void _ZN5S83C54v104Ev();
extern void _ZN5S83C54v105Ev();
extern void _ZN5S83C54v106Ev();
extern void _ZN5S83C54v107Ev();
extern void _ZN5S83C54v108Ev();
extern void _ZN5S83C54v109Ev();
extern void _ZN5S83C54v110Ev();
extern void _ZN5S83C54v111Ev();
extern void _ZN5S83C54v112Ev();
extern void _ZN5S83C54v113Ev();
extern void _ZN5S83C54v114Ev();
extern void _ZN5S83C54v115Ev();
extern void _ZN5S83C54v116Ev();
extern void _ZN5S83C54v117Ev();
extern void _ZN5S83C54v118Ev();
extern void _ZN5S83C54v119Ev();
extern void _ZN5S83C54v120Ev();
extern void _ZN5S83C54v121Ev();
extern void _ZN5S83C54v122Ev();
extern void _ZN5S83C54v123Ev();
extern void _ZN5S83C54v124Ev();
extern void _ZN5S83C54v125Ev();
extern void _ZN5S83C54v126Ev();
extern void _ZN5S83C54v127Ev();
extern void _ZN5S83C54v128Ev();
extern void _ZN5S83C54v129Ev();
extern void _ZN5S83C54v130Ev();
extern void _ZN5S83C54v131Ev();
extern void _ZN5S83C54v132Ev();
extern void _ZN5S83C54v133Ev();
extern void _ZN5S83C54v134Ev();
extern void _ZN5S83C54v135Ev();
extern void _ZN5S83C54v136Ev();
extern void _ZN5S83C54v137Ev();
extern void _ZN5S83C54v138Ev();
extern void _ZN5S83C54v139Ev();
extern void _ZN5S83C54v140Ev();
extern void _ZN5S83C54v141Ev();
extern void _ZN5S83C54v142Ev();
extern void _ZN5S83C54v143Ev();
extern void _ZN5S83C54v144Ev();
extern void _ZN5S83C54v145Ev();
extern void _ZN5S83C44v146Ev();
extern void _ZN5S83C44v147Ev();
extern void _ZN5S83C44v148Ev();
extern void _ZN5S83C44v149Ev();
extern void _ZN5S83C44v150Ev();
extern void _ZN5S83C44v151Ev();
extern void _ZN5S83C44v152Ev();
extern void _ZN5S83C44v153Ev();
extern void _ZN5S83C44v154Ev();
extern void _ZN5S83C44v155Ev();
extern void _ZN5S83C44v156Ev();
extern void _ZN5S83C44v157Ev();
extern void _ZN5S83C44v158Ev();
extern void _ZN5S83C44v159Ev();
extern void _ZN5S83C44v160Ev();
extern void _ZN5S83C44v161Ev();
extern void _ZN5S83C44v162Ev();
extern void _ZN5S83C44v163Ev();
extern void _ZN5S83C44v164Ev();
extern void _ZN5S83C44v165Ev();
extern void _ZN5S83C44v166Ev();
extern void _ZN5S83C44v167Ev();
extern void _ZN5S83C44v168Ev();
extern void _ZN5S83C44v169Ev();
extern void _ZN5S83C44v170Ev();
extern void _ZN5S83C44v171Ev();
extern void _ZN5S83C44v172Ev();
extern void _ZN5S83C44v173Ev();
extern void _ZN5S83C44v174Ev();
extern void _ZN5S83C44v175Ev();
extern void _ZN5S83C44v176Ev();
extern void _ZN5S83C44v177Ev();
extern void _ZN5S83C44v178Ev();
extern void _ZN5S83C44v179Ev();
extern void _ZN5S83C44v180Ev();
extern void _ZN5S83C44v181Ev();
extern void _ZN5S83C44v182Ev();
extern void _ZN5S83C44v183Ev();
extern void _ZN5S83C44v184Ev();
extern void _ZN5S83C34v185Ev();
extern void _ZN5S83C34v186Ev();
extern void _ZN5S83C34v187Ev();
extern void _ZN5S83C34v188Ev();
extern void _ZN5S83C34v189Ev();
extern void _ZN5S83C34v190Ev();
extern void _ZN5S83C34v191Ev();
extern void _ZN5S83C34v192Ev();
extern void _ZN5S83C34v193Ev();
extern void _ZN5S83C34v194Ev();
extern void _ZN5S83C34v195Ev();
extern void _ZN5S83C34v196Ev();
extern void _ZN5S83C34v197Ev();
extern void _ZN5S83C34v198Ev();
extern void _ZN5S83C34v199Ev();
extern void _ZN5S83C34v200Ev();
extern void _ZN5S83C34v201Ev();
extern void _ZN5S83C34v202Ev();
extern void _ZN5S83C34v203Ev();
extern void _ZN5S83C34v204Ev();
extern void _ZN5S83C34v205Ev();
extern void _ZN5S83C34v206Ev();
extern void _ZN5S83C34v207Ev();
static  VTBL_ENTRY vtc_S83C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C3[0]),
  (VTBL_ENTRY)&_ZN5S83C3D1Ev,
  (VTBL_ENTRY)&_ZN5S83C3D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
  (VTBL_ENTRY)&_ZN5S83C63v68Ev,
  (VTBL_ENTRY)&_ZN5S83C63v69Ev,
  (VTBL_ENTRY)&_ZN5S83C53v70Ev,
  (VTBL_ENTRY)&_ZN5S83C53v71Ev,
  (VTBL_ENTRY)&_ZN5S83C53v72Ev,
  (VTBL_ENTRY)&_ZN5S83C53v73Ev,
  (VTBL_ENTRY)&_ZN5S83C53v74Ev,
  (VTBL_ENTRY)&_ZN5S83C53v75Ev,
  (VTBL_ENTRY)&_ZN5S83C53v76Ev,
  (VTBL_ENTRY)&_ZN5S83C53v77Ev,
  (VTBL_ENTRY)&_ZN5S83C53v78Ev,
  (VTBL_ENTRY)&_ZN5S83C53v79Ev,
  (VTBL_ENTRY)&_ZN5S83C53v80Ev,
  (VTBL_ENTRY)&_ZN5S83C53v81Ev,
  (VTBL_ENTRY)&_ZN5S83C53v82Ev,
  (VTBL_ENTRY)&_ZN5S83C53v83Ev,
  (VTBL_ENTRY)&_ZN5S83C53v84Ev,
  (VTBL_ENTRY)&_ZN5S83C53v85Ev,
  (VTBL_ENTRY)&_ZN5S83C53v86Ev,
  (VTBL_ENTRY)&_ZN5S83C53v87Ev,
  (VTBL_ENTRY)&_ZN5S83C53v88Ev,
  (VTBL_ENTRY)&_ZN5S83C53v89Ev,
  (VTBL_ENTRY)&_ZN5S83C53v90Ev,
  (VTBL_ENTRY)&_ZN5S83C53v91Ev,
  (VTBL_ENTRY)&_ZN5S83C53v92Ev,
  (VTBL_ENTRY)&_ZN5S83C53v93Ev,
  (VTBL_ENTRY)&_ZN5S83C53v94Ev,
  (VTBL_ENTRY)&_ZN5S83C53v95Ev,
  (VTBL_ENTRY)&_ZN5S83C53v96Ev,
  (VTBL_ENTRY)&_ZN5S83C53v97Ev,
  (VTBL_ENTRY)&_ZN5S83C53v98Ev,
  (VTBL_ENTRY)&_ZN5S83C53v99Ev,
  (VTBL_ENTRY)&_ZN5S83C54v100Ev,
  (VTBL_ENTRY)&_ZN5S83C54v101Ev,
  (VTBL_ENTRY)&_ZN5S83C54v102Ev,
  (VTBL_ENTRY)&_ZN5S83C54v103Ev,
  (VTBL_ENTRY)&_ZN5S83C54v104Ev,
  (VTBL_ENTRY)&_ZN5S83C54v105Ev,
  (VTBL_ENTRY)&_ZN5S83C54v106Ev,
  (VTBL_ENTRY)&_ZN5S83C54v107Ev,
  (VTBL_ENTRY)&_ZN5S83C54v108Ev,
  (VTBL_ENTRY)&_ZN5S83C54v109Ev,
  (VTBL_ENTRY)&_ZN5S83C54v110Ev,
  (VTBL_ENTRY)&_ZN5S83C54v111Ev,
  (VTBL_ENTRY)&_ZN5S83C54v112Ev,
  (VTBL_ENTRY)&_ZN5S83C54v113Ev,
  (VTBL_ENTRY)&_ZN5S83C54v114Ev,
  (VTBL_ENTRY)&_ZN5S83C54v115Ev,
  (VTBL_ENTRY)&_ZN5S83C54v116Ev,
  (VTBL_ENTRY)&_ZN5S83C54v117Ev,
  (VTBL_ENTRY)&_ZN5S83C54v118Ev,
  (VTBL_ENTRY)&_ZN5S83C54v119Ev,
  (VTBL_ENTRY)&_ZN5S83C54v120Ev,
  (VTBL_ENTRY)&_ZN5S83C54v121Ev,
  (VTBL_ENTRY)&_ZN5S83C54v122Ev,
  (VTBL_ENTRY)&_ZN5S83C54v123Ev,
  (VTBL_ENTRY)&_ZN5S83C54v124Ev,
  (VTBL_ENTRY)&_ZN5S83C54v125Ev,
  (VTBL_ENTRY)&_ZN5S83C54v126Ev,
  (VTBL_ENTRY)&_ZN5S83C54v127Ev,
  (VTBL_ENTRY)&_ZN5S83C54v128Ev,
  (VTBL_ENTRY)&_ZN5S83C54v129Ev,
  (VTBL_ENTRY)&_ZN5S83C54v130Ev,
  (VTBL_ENTRY)&_ZN5S83C54v131Ev,
  (VTBL_ENTRY)&_ZN5S83C54v132Ev,
  (VTBL_ENTRY)&_ZN5S83C54v133Ev,
  (VTBL_ENTRY)&_ZN5S83C54v134Ev,
  (VTBL_ENTRY)&_ZN5S83C54v135Ev,
  (VTBL_ENTRY)&_ZN5S83C54v136Ev,
  (VTBL_ENTRY)&_ZN5S83C54v137Ev,
  (VTBL_ENTRY)&_ZN5S83C54v138Ev,
  (VTBL_ENTRY)&_ZN5S83C54v139Ev,
  (VTBL_ENTRY)&_ZN5S83C54v140Ev,
  (VTBL_ENTRY)&_ZN5S83C54v141Ev,
  (VTBL_ENTRY)&_ZN5S83C54v142Ev,
  (VTBL_ENTRY)&_ZN5S83C54v143Ev,
  (VTBL_ENTRY)&_ZN5S83C54v144Ev,
  (VTBL_ENTRY)&_ZN5S83C54v145Ev,
  (VTBL_ENTRY)&_ZN5S83C44v146Ev,
  (VTBL_ENTRY)&_ZN5S83C44v147Ev,
  (VTBL_ENTRY)&_ZN5S83C44v148Ev,
  (VTBL_ENTRY)&_ZN5S83C44v149Ev,
  (VTBL_ENTRY)&_ZN5S83C44v150Ev,
  (VTBL_ENTRY)&_ZN5S83C44v151Ev,
  (VTBL_ENTRY)&_ZN5S83C44v152Ev,
  (VTBL_ENTRY)&_ZN5S83C44v153Ev,
  (VTBL_ENTRY)&_ZN5S83C44v154Ev,
  (VTBL_ENTRY)&_ZN5S83C44v155Ev,
  (VTBL_ENTRY)&_ZN5S83C44v156Ev,
  (VTBL_ENTRY)&_ZN5S83C44v157Ev,
  (VTBL_ENTRY)&_ZN5S83C44v158Ev,
  (VTBL_ENTRY)&_ZN5S83C44v159Ev,
  (VTBL_ENTRY)&_ZN5S83C44v160Ev,
  (VTBL_ENTRY)&_ZN5S83C44v161Ev,
  (VTBL_ENTRY)&_ZN5S83C44v162Ev,
  (VTBL_ENTRY)&_ZN5S83C44v163Ev,
  (VTBL_ENTRY)&_ZN5S83C44v164Ev,
  (VTBL_ENTRY)&_ZN5S83C44v165Ev,
  (VTBL_ENTRY)&_ZN5S83C44v166Ev,
  (VTBL_ENTRY)&_ZN5S83C44v167Ev,
  (VTBL_ENTRY)&_ZN5S83C44v168Ev,
  (VTBL_ENTRY)&_ZN5S83C44v169Ev,
  (VTBL_ENTRY)&_ZN5S83C44v170Ev,
  (VTBL_ENTRY)&_ZN5S83C44v171Ev,
  (VTBL_ENTRY)&_ZN5S83C44v172Ev,
  (VTBL_ENTRY)&_ZN5S83C44v173Ev,
  (VTBL_ENTRY)&_ZN5S83C44v174Ev,
  (VTBL_ENTRY)&_ZN5S83C44v175Ev,
  (VTBL_ENTRY)&_ZN5S83C44v176Ev,
  (VTBL_ENTRY)&_ZN5S83C44v177Ev,
  (VTBL_ENTRY)&_ZN5S83C44v178Ev,
  (VTBL_ENTRY)&_ZN5S83C44v179Ev,
  (VTBL_ENTRY)&_ZN5S83C44v180Ev,
  (VTBL_ENTRY)&_ZN5S83C44v181Ev,
  (VTBL_ENTRY)&_ZN5S83C44v182Ev,
  (VTBL_ENTRY)&_ZN5S83C44v183Ev,
  (VTBL_ENTRY)&_ZN5S83C44v184Ev,
  (VTBL_ENTRY)&_ZN5S83C34v185Ev,
  (VTBL_ENTRY)&_ZN5S83C34v186Ev,
  (VTBL_ENTRY)&_ZN5S83C34v187Ev,
  (VTBL_ENTRY)&_ZN5S83C34v188Ev,
  (VTBL_ENTRY)&_ZN5S83C34v189Ev,
  (VTBL_ENTRY)&_ZN5S83C34v190Ev,
  (VTBL_ENTRY)&_ZN5S83C34v191Ev,
  (VTBL_ENTRY)&_ZN5S83C34v192Ev,
  (VTBL_ENTRY)&_ZN5S83C34v193Ev,
  (VTBL_ENTRY)&_ZN5S83C34v194Ev,
  (VTBL_ENTRY)&_ZN5S83C34v195Ev,
  (VTBL_ENTRY)&_ZN5S83C34v196Ev,
  (VTBL_ENTRY)&_ZN5S83C34v197Ev,
  (VTBL_ENTRY)&_ZN5S83C34v198Ev,
  (VTBL_ENTRY)&_ZN5S83C34v199Ev,
  (VTBL_ENTRY)&_ZN5S83C34v200Ev,
  (VTBL_ENTRY)&_ZN5S83C34v201Ev,
  (VTBL_ENTRY)&_ZN5S83C34v202Ev,
  (VTBL_ENTRY)&_ZN5S83C34v203Ev,
  (VTBL_ENTRY)&_ZN5S83C34v204Ev,
  (VTBL_ENTRY)&_ZN5S83C34v205Ev,
  (VTBL_ENTRY)&_ZN5S83C34v206Ev,
  (VTBL_ENTRY)&_ZN5S83C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S83C3[];
extern  VTBL_ENTRY _ZTV5S83C3[];
Class_Descriptor cd_S83C3 = {  "S83C3", // class name
  bases_S83C3, 4,
  &(vtc_S83C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S83C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S83C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C2  : S83C3 {
  virtual  ~S83C2(); // _ZN5S83C2D1Ev
  virtual void  v208(); // _ZN5S83C24v208Ev
  virtual void  v209(); // _ZN5S83C24v209Ev
  virtual void  v210(); // _ZN5S83C24v210Ev
  S83C2(); // tgen
};
//SIG(-1 S83C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3}


 S83C2 ::~S83C2(){ note_dtor("S83C2", this);}
void  S83C2 ::v208(){vfunc_called(this, "_ZN5S83C24v208Ev");}
void  S83C2 ::v209(){vfunc_called(this, "_ZN5S83C24v209Ev");}
void  S83C2 ::v210(){vfunc_called(this, "_ZN5S83C24v210Ev");}
S83C2 ::S83C2(){ note_ctor("S83C2", this);} // tgen

static void Test_S83C2()
{
  extern Class_Descriptor cd_S83C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S83C2, buf);
    S83C2 *dp, &lv = *(dp=new (buf) S83C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S83C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C2)");
    check_base_class_offset(lv, (S83C7*)(S83C6*)(S83C5*)(S83C4*)(S83C3*), 0, "S83C2");
    check_base_class_offset(lv, (S83C6*)(S83C5*)(S83C4*)(S83C3*), 0, "S83C2");
    check_base_class_offset(lv, (S83C5*)(S83C4*)(S83C3*), 0, "S83C2");
    check_base_class_offset(lv, (S83C4*)(S83C3*), 0, "S83C2");
    check_base_class_offset(lv, (S83C3*), 0, "S83C2");
    test_class_info(&lv, &cd_S83C2);
    dp->~S83C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C2(Test_S83C2, "S83C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S83C2C1Ev();
extern void _ZN5S83C2D1Ev();
Name_Map name_map_S83C2[] = {
  NSPAIR(_ZN5S83C2C1Ev),
  NSPAIR(_ZN5S83C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S83C7;
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
extern Class_Descriptor cd_S83C6;
extern VTBL_ENTRY _ZTI5S83C6[];
extern  VTBL_ENTRY _ZTV5S83C6[];
extern Class_Descriptor cd_S83C5;
extern VTBL_ENTRY _ZTI5S83C5[];
extern  VTBL_ENTRY _ZTV5S83C5[];
extern Class_Descriptor cd_S83C4;
extern VTBL_ENTRY _ZTI5S83C4[];
extern  VTBL_ENTRY _ZTV5S83C4[];
extern Class_Descriptor cd_S83C3;
extern VTBL_ENTRY _ZTI5S83C3[];
extern  VTBL_ENTRY _ZTV5S83C3[];
static Base_Class bases_S83C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S83C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S83C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S83C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S83C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S83C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S83C2[];
extern void _ZN5S83C2D1Ev();
extern void _ZN5S83C2D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
extern void _ZN5S83C63v68Ev();
extern void _ZN5S83C63v69Ev();
extern void _ZN5S83C53v70Ev();
extern void _ZN5S83C53v71Ev();
extern void _ZN5S83C53v72Ev();
extern void _ZN5S83C53v73Ev();
extern void _ZN5S83C53v74Ev();
extern void _ZN5S83C53v75Ev();
extern void _ZN5S83C53v76Ev();
extern void _ZN5S83C53v77Ev();
extern void _ZN5S83C53v78Ev();
extern void _ZN5S83C53v79Ev();
extern void _ZN5S83C53v80Ev();
extern void _ZN5S83C53v81Ev();
extern void _ZN5S83C53v82Ev();
extern void _ZN5S83C53v83Ev();
extern void _ZN5S83C53v84Ev();
extern void _ZN5S83C53v85Ev();
extern void _ZN5S83C53v86Ev();
extern void _ZN5S83C53v87Ev();
extern void _ZN5S83C53v88Ev();
extern void _ZN5S83C53v89Ev();
extern void _ZN5S83C53v90Ev();
extern void _ZN5S83C53v91Ev();
extern void _ZN5S83C53v92Ev();
extern void _ZN5S83C53v93Ev();
extern void _ZN5S83C53v94Ev();
extern void _ZN5S83C53v95Ev();
extern void _ZN5S83C53v96Ev();
extern void _ZN5S83C53v97Ev();
extern void _ZN5S83C53v98Ev();
extern void _ZN5S83C53v99Ev();
extern void _ZN5S83C54v100Ev();
extern void _ZN5S83C54v101Ev();
extern void _ZN5S83C54v102Ev();
extern void _ZN5S83C54v103Ev();
extern void _ZN5S83C54v104Ev();
extern void _ZN5S83C54v105Ev();
extern void _ZN5S83C54v106Ev();
extern void _ZN5S83C54v107Ev();
extern void _ZN5S83C54v108Ev();
extern void _ZN5S83C54v109Ev();
extern void _ZN5S83C54v110Ev();
extern void _ZN5S83C54v111Ev();
extern void _ZN5S83C54v112Ev();
extern void _ZN5S83C54v113Ev();
extern void _ZN5S83C54v114Ev();
extern void _ZN5S83C54v115Ev();
extern void _ZN5S83C54v116Ev();
extern void _ZN5S83C54v117Ev();
extern void _ZN5S83C54v118Ev();
extern void _ZN5S83C54v119Ev();
extern void _ZN5S83C54v120Ev();
extern void _ZN5S83C54v121Ev();
extern void _ZN5S83C54v122Ev();
extern void _ZN5S83C54v123Ev();
extern void _ZN5S83C54v124Ev();
extern void _ZN5S83C54v125Ev();
extern void _ZN5S83C54v126Ev();
extern void _ZN5S83C54v127Ev();
extern void _ZN5S83C54v128Ev();
extern void _ZN5S83C54v129Ev();
extern void _ZN5S83C54v130Ev();
extern void _ZN5S83C54v131Ev();
extern void _ZN5S83C54v132Ev();
extern void _ZN5S83C54v133Ev();
extern void _ZN5S83C54v134Ev();
extern void _ZN5S83C54v135Ev();
extern void _ZN5S83C54v136Ev();
extern void _ZN5S83C54v137Ev();
extern void _ZN5S83C54v138Ev();
extern void _ZN5S83C54v139Ev();
extern void _ZN5S83C54v140Ev();
extern void _ZN5S83C54v141Ev();
extern void _ZN5S83C54v142Ev();
extern void _ZN5S83C54v143Ev();
extern void _ZN5S83C54v144Ev();
extern void _ZN5S83C54v145Ev();
extern void _ZN5S83C44v146Ev();
extern void _ZN5S83C44v147Ev();
extern void _ZN5S83C44v148Ev();
extern void _ZN5S83C44v149Ev();
extern void _ZN5S83C44v150Ev();
extern void _ZN5S83C44v151Ev();
extern void _ZN5S83C44v152Ev();
extern void _ZN5S83C44v153Ev();
extern void _ZN5S83C44v154Ev();
extern void _ZN5S83C44v155Ev();
extern void _ZN5S83C44v156Ev();
extern void _ZN5S83C44v157Ev();
extern void _ZN5S83C44v158Ev();
extern void _ZN5S83C44v159Ev();
extern void _ZN5S83C44v160Ev();
extern void _ZN5S83C44v161Ev();
extern void _ZN5S83C44v162Ev();
extern void _ZN5S83C44v163Ev();
extern void _ZN5S83C44v164Ev();
extern void _ZN5S83C44v165Ev();
extern void _ZN5S83C44v166Ev();
extern void _ZN5S83C44v167Ev();
extern void _ZN5S83C44v168Ev();
extern void _ZN5S83C44v169Ev();
extern void _ZN5S83C44v170Ev();
extern void _ZN5S83C44v171Ev();
extern void _ZN5S83C44v172Ev();
extern void _ZN5S83C44v173Ev();
extern void _ZN5S83C44v174Ev();
extern void _ZN5S83C44v175Ev();
extern void _ZN5S83C44v176Ev();
extern void _ZN5S83C44v177Ev();
extern void _ZN5S83C44v178Ev();
extern void _ZN5S83C44v179Ev();
extern void _ZN5S83C44v180Ev();
extern void _ZN5S83C44v181Ev();
extern void _ZN5S83C44v182Ev();
extern void _ZN5S83C44v183Ev();
extern void _ZN5S83C44v184Ev();
extern void _ZN5S83C34v185Ev();
extern void _ZN5S83C34v186Ev();
extern void _ZN5S83C34v187Ev();
extern void _ZN5S83C34v188Ev();
extern void _ZN5S83C34v189Ev();
extern void _ZN5S83C34v190Ev();
extern void _ZN5S83C34v191Ev();
extern void _ZN5S83C34v192Ev();
extern void _ZN5S83C34v193Ev();
extern void _ZN5S83C34v194Ev();
extern void _ZN5S83C34v195Ev();
extern void _ZN5S83C34v196Ev();
extern void _ZN5S83C34v197Ev();
extern void _ZN5S83C34v198Ev();
extern void _ZN5S83C34v199Ev();
extern void _ZN5S83C34v200Ev();
extern void _ZN5S83C34v201Ev();
extern void _ZN5S83C34v202Ev();
extern void _ZN5S83C34v203Ev();
extern void _ZN5S83C34v204Ev();
extern void _ZN5S83C34v205Ev();
extern void _ZN5S83C34v206Ev();
extern void _ZN5S83C34v207Ev();
extern void _ZN5S83C24v208Ev();
extern void _ZN5S83C24v209Ev();
extern void _ZN5S83C24v210Ev();
static  VTBL_ENTRY vtc_S83C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C2[0]),
  (VTBL_ENTRY)&_ZN5S83C2D1Ev,
  (VTBL_ENTRY)&_ZN5S83C2D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
  (VTBL_ENTRY)&_ZN5S83C63v68Ev,
  (VTBL_ENTRY)&_ZN5S83C63v69Ev,
  (VTBL_ENTRY)&_ZN5S83C53v70Ev,
  (VTBL_ENTRY)&_ZN5S83C53v71Ev,
  (VTBL_ENTRY)&_ZN5S83C53v72Ev,
  (VTBL_ENTRY)&_ZN5S83C53v73Ev,
  (VTBL_ENTRY)&_ZN5S83C53v74Ev,
  (VTBL_ENTRY)&_ZN5S83C53v75Ev,
  (VTBL_ENTRY)&_ZN5S83C53v76Ev,
  (VTBL_ENTRY)&_ZN5S83C53v77Ev,
  (VTBL_ENTRY)&_ZN5S83C53v78Ev,
  (VTBL_ENTRY)&_ZN5S83C53v79Ev,
  (VTBL_ENTRY)&_ZN5S83C53v80Ev,
  (VTBL_ENTRY)&_ZN5S83C53v81Ev,
  (VTBL_ENTRY)&_ZN5S83C53v82Ev,
  (VTBL_ENTRY)&_ZN5S83C53v83Ev,
  (VTBL_ENTRY)&_ZN5S83C53v84Ev,
  (VTBL_ENTRY)&_ZN5S83C53v85Ev,
  (VTBL_ENTRY)&_ZN5S83C53v86Ev,
  (VTBL_ENTRY)&_ZN5S83C53v87Ev,
  (VTBL_ENTRY)&_ZN5S83C53v88Ev,
  (VTBL_ENTRY)&_ZN5S83C53v89Ev,
  (VTBL_ENTRY)&_ZN5S83C53v90Ev,
  (VTBL_ENTRY)&_ZN5S83C53v91Ev,
  (VTBL_ENTRY)&_ZN5S83C53v92Ev,
  (VTBL_ENTRY)&_ZN5S83C53v93Ev,
  (VTBL_ENTRY)&_ZN5S83C53v94Ev,
  (VTBL_ENTRY)&_ZN5S83C53v95Ev,
  (VTBL_ENTRY)&_ZN5S83C53v96Ev,
  (VTBL_ENTRY)&_ZN5S83C53v97Ev,
  (VTBL_ENTRY)&_ZN5S83C53v98Ev,
  (VTBL_ENTRY)&_ZN5S83C53v99Ev,
  (VTBL_ENTRY)&_ZN5S83C54v100Ev,
  (VTBL_ENTRY)&_ZN5S83C54v101Ev,
  (VTBL_ENTRY)&_ZN5S83C54v102Ev,
  (VTBL_ENTRY)&_ZN5S83C54v103Ev,
  (VTBL_ENTRY)&_ZN5S83C54v104Ev,
  (VTBL_ENTRY)&_ZN5S83C54v105Ev,
  (VTBL_ENTRY)&_ZN5S83C54v106Ev,
  (VTBL_ENTRY)&_ZN5S83C54v107Ev,
  (VTBL_ENTRY)&_ZN5S83C54v108Ev,
  (VTBL_ENTRY)&_ZN5S83C54v109Ev,
  (VTBL_ENTRY)&_ZN5S83C54v110Ev,
  (VTBL_ENTRY)&_ZN5S83C54v111Ev,
  (VTBL_ENTRY)&_ZN5S83C54v112Ev,
  (VTBL_ENTRY)&_ZN5S83C54v113Ev,
  (VTBL_ENTRY)&_ZN5S83C54v114Ev,
  (VTBL_ENTRY)&_ZN5S83C54v115Ev,
  (VTBL_ENTRY)&_ZN5S83C54v116Ev,
  (VTBL_ENTRY)&_ZN5S83C54v117Ev,
  (VTBL_ENTRY)&_ZN5S83C54v118Ev,
  (VTBL_ENTRY)&_ZN5S83C54v119Ev,
  (VTBL_ENTRY)&_ZN5S83C54v120Ev,
  (VTBL_ENTRY)&_ZN5S83C54v121Ev,
  (VTBL_ENTRY)&_ZN5S83C54v122Ev,
  (VTBL_ENTRY)&_ZN5S83C54v123Ev,
  (VTBL_ENTRY)&_ZN5S83C54v124Ev,
  (VTBL_ENTRY)&_ZN5S83C54v125Ev,
  (VTBL_ENTRY)&_ZN5S83C54v126Ev,
  (VTBL_ENTRY)&_ZN5S83C54v127Ev,
  (VTBL_ENTRY)&_ZN5S83C54v128Ev,
  (VTBL_ENTRY)&_ZN5S83C54v129Ev,
  (VTBL_ENTRY)&_ZN5S83C54v130Ev,
  (VTBL_ENTRY)&_ZN5S83C54v131Ev,
  (VTBL_ENTRY)&_ZN5S83C54v132Ev,
  (VTBL_ENTRY)&_ZN5S83C54v133Ev,
  (VTBL_ENTRY)&_ZN5S83C54v134Ev,
  (VTBL_ENTRY)&_ZN5S83C54v135Ev,
  (VTBL_ENTRY)&_ZN5S83C54v136Ev,
  (VTBL_ENTRY)&_ZN5S83C54v137Ev,
  (VTBL_ENTRY)&_ZN5S83C54v138Ev,
  (VTBL_ENTRY)&_ZN5S83C54v139Ev,
  (VTBL_ENTRY)&_ZN5S83C54v140Ev,
  (VTBL_ENTRY)&_ZN5S83C54v141Ev,
  (VTBL_ENTRY)&_ZN5S83C54v142Ev,
  (VTBL_ENTRY)&_ZN5S83C54v143Ev,
  (VTBL_ENTRY)&_ZN5S83C54v144Ev,
  (VTBL_ENTRY)&_ZN5S83C54v145Ev,
  (VTBL_ENTRY)&_ZN5S83C44v146Ev,
  (VTBL_ENTRY)&_ZN5S83C44v147Ev,
  (VTBL_ENTRY)&_ZN5S83C44v148Ev,
  (VTBL_ENTRY)&_ZN5S83C44v149Ev,
  (VTBL_ENTRY)&_ZN5S83C44v150Ev,
  (VTBL_ENTRY)&_ZN5S83C44v151Ev,
  (VTBL_ENTRY)&_ZN5S83C44v152Ev,
  (VTBL_ENTRY)&_ZN5S83C44v153Ev,
  (VTBL_ENTRY)&_ZN5S83C44v154Ev,
  (VTBL_ENTRY)&_ZN5S83C44v155Ev,
  (VTBL_ENTRY)&_ZN5S83C44v156Ev,
  (VTBL_ENTRY)&_ZN5S83C44v157Ev,
  (VTBL_ENTRY)&_ZN5S83C44v158Ev,
  (VTBL_ENTRY)&_ZN5S83C44v159Ev,
  (VTBL_ENTRY)&_ZN5S83C44v160Ev,
  (VTBL_ENTRY)&_ZN5S83C44v161Ev,
  (VTBL_ENTRY)&_ZN5S83C44v162Ev,
  (VTBL_ENTRY)&_ZN5S83C44v163Ev,
  (VTBL_ENTRY)&_ZN5S83C44v164Ev,
  (VTBL_ENTRY)&_ZN5S83C44v165Ev,
  (VTBL_ENTRY)&_ZN5S83C44v166Ev,
  (VTBL_ENTRY)&_ZN5S83C44v167Ev,
  (VTBL_ENTRY)&_ZN5S83C44v168Ev,
  (VTBL_ENTRY)&_ZN5S83C44v169Ev,
  (VTBL_ENTRY)&_ZN5S83C44v170Ev,
  (VTBL_ENTRY)&_ZN5S83C44v171Ev,
  (VTBL_ENTRY)&_ZN5S83C44v172Ev,
  (VTBL_ENTRY)&_ZN5S83C44v173Ev,
  (VTBL_ENTRY)&_ZN5S83C44v174Ev,
  (VTBL_ENTRY)&_ZN5S83C44v175Ev,
  (VTBL_ENTRY)&_ZN5S83C44v176Ev,
  (VTBL_ENTRY)&_ZN5S83C44v177Ev,
  (VTBL_ENTRY)&_ZN5S83C44v178Ev,
  (VTBL_ENTRY)&_ZN5S83C44v179Ev,
  (VTBL_ENTRY)&_ZN5S83C44v180Ev,
  (VTBL_ENTRY)&_ZN5S83C44v181Ev,
  (VTBL_ENTRY)&_ZN5S83C44v182Ev,
  (VTBL_ENTRY)&_ZN5S83C44v183Ev,
  (VTBL_ENTRY)&_ZN5S83C44v184Ev,
  (VTBL_ENTRY)&_ZN5S83C34v185Ev,
  (VTBL_ENTRY)&_ZN5S83C34v186Ev,
  (VTBL_ENTRY)&_ZN5S83C34v187Ev,
  (VTBL_ENTRY)&_ZN5S83C34v188Ev,
  (VTBL_ENTRY)&_ZN5S83C34v189Ev,
  (VTBL_ENTRY)&_ZN5S83C34v190Ev,
  (VTBL_ENTRY)&_ZN5S83C34v191Ev,
  (VTBL_ENTRY)&_ZN5S83C34v192Ev,
  (VTBL_ENTRY)&_ZN5S83C34v193Ev,
  (VTBL_ENTRY)&_ZN5S83C34v194Ev,
  (VTBL_ENTRY)&_ZN5S83C34v195Ev,
  (VTBL_ENTRY)&_ZN5S83C34v196Ev,
  (VTBL_ENTRY)&_ZN5S83C34v197Ev,
  (VTBL_ENTRY)&_ZN5S83C34v198Ev,
  (VTBL_ENTRY)&_ZN5S83C34v199Ev,
  (VTBL_ENTRY)&_ZN5S83C34v200Ev,
  (VTBL_ENTRY)&_ZN5S83C34v201Ev,
  (VTBL_ENTRY)&_ZN5S83C34v202Ev,
  (VTBL_ENTRY)&_ZN5S83C34v203Ev,
  (VTBL_ENTRY)&_ZN5S83C34v204Ev,
  (VTBL_ENTRY)&_ZN5S83C34v205Ev,
  (VTBL_ENTRY)&_ZN5S83C34v206Ev,
  (VTBL_ENTRY)&_ZN5S83C34v207Ev,
  (VTBL_ENTRY)&_ZN5S83C24v208Ev,
  (VTBL_ENTRY)&_ZN5S83C24v209Ev,
  (VTBL_ENTRY)&_ZN5S83C24v210Ev,
};
extern VTBL_ENTRY _ZTI5S83C2[];
extern  VTBL_ENTRY _ZTV5S83C2[];
Class_Descriptor cd_S83C2 = {  "S83C2", // class name
  bases_S83C2, 5,
  &(vtc_S83C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S83C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S83C2),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S83C1  : S83C2 {
  void *s83c1f0[3];
  virtual  ~S83C1(); // _ZN5S83C1D1Ev
  virtual void  v1(); // _ZN5S83C12v1Ev
  virtual void  v2(); // _ZN5S83C12v2Ev
  virtual void  v3(); // _ZN5S83C12v3Ev
  S83C1(); // tgen
};
//SIG(1 S83C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v208 v209 v210} vd v1 v2 v3 Fp[3]}


 S83C1 ::~S83C1(){ note_dtor("S83C1", this);}
void  S83C1 ::v1(){vfunc_called(this, "_ZN5S83C12v1Ev");}
void  S83C1 ::v2(){vfunc_called(this, "_ZN5S83C12v2Ev");}
void  S83C1 ::v3(){vfunc_called(this, "_ZN5S83C12v3Ev");}
S83C1 ::S83C1(){ note_ctor("S83C1", this);} // tgen

static void Test_S83C1()
{
  extern Class_Descriptor cd_S83C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(112,158)];
    init_test(&cd_S83C1, buf);
    S83C1 *dp, &lv = *(dp=new (buf) S83C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(888,628), "sizeof(S83C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S83C1)");
    check_base_class_offset(lv, (S83C7*)(S83C6*)(S83C5*)(S83C4*)(S83C3*)(S83C2*), 0, "S83C1");
    check_base_class_offset(lv, (S83C6*)(S83C5*)(S83C4*)(S83C3*)(S83C2*), 0, "S83C1");
    check_base_class_offset(lv, (S83C5*)(S83C4*)(S83C3*)(S83C2*), 0, "S83C1");
    check_base_class_offset(lv, (S83C4*)(S83C3*)(S83C2*), 0, "S83C1");
    check_base_class_offset(lv, (S83C3*)(S83C2*), 0, "S83C1");
    check_base_class_offset(lv, (S83C2*), 0, "S83C1");
    check_field_offset(lv, s83c1f0, ABISELECT(864,616), "S83C1.s83c1f0");
    test_class_info(&lv, &cd_S83C1);
    dp->~S83C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS83C1(Test_S83C1, "S83C1", ABISELECT(888,628));

#else // __cplusplus

extern void _ZN5S83C1C1Ev();
extern void _ZN5S83C1D1Ev();
Name_Map name_map_S83C1[] = {
  NSPAIR(_ZN5S83C1C1Ev),
  NSPAIR(_ZN5S83C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S83C7;
extern VTBL_ENTRY _ZTI5S83C7[];
extern  VTBL_ENTRY _ZTV5S83C7[];
extern Class_Descriptor cd_S83C6;
extern VTBL_ENTRY _ZTI5S83C6[];
extern  VTBL_ENTRY _ZTV5S83C6[];
extern Class_Descriptor cd_S83C5;
extern VTBL_ENTRY _ZTI5S83C5[];
extern  VTBL_ENTRY _ZTV5S83C5[];
extern Class_Descriptor cd_S83C4;
extern VTBL_ENTRY _ZTI5S83C4[];
extern  VTBL_ENTRY _ZTV5S83C4[];
extern Class_Descriptor cd_S83C3;
extern VTBL_ENTRY _ZTI5S83C3[];
extern  VTBL_ENTRY _ZTV5S83C3[];
extern Class_Descriptor cd_S83C2;
extern VTBL_ENTRY _ZTI5S83C2[];
extern  VTBL_ENTRY _ZTV5S83C2[];
static Base_Class bases_S83C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S83C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S83C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S83C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S83C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S83C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S83C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S83C1[];
extern void _ZN5S83C1D1Ev();
extern void _ZN5S83C1D0Ev();
extern void _ZN5S83C72v4Ev();
extern void _ZN5S83C72v5Ev();
extern void _ZN5S83C72v6Ev();
extern void _ZN5S83C72v7Ev();
extern void _ZN5S83C72v8Ev();
extern void _ZN5S83C72v9Ev();
extern void _ZN5S83C73v10Ev();
extern void _ZN5S83C73v11Ev();
extern void _ZN5S83C73v12Ev();
extern void _ZN5S83C73v13Ev();
extern void _ZN5S83C73v14Ev();
extern void _ZN5S83C73v15Ev();
extern void _ZN5S83C73v16Ev();
extern void _ZN5S83C73v17Ev();
extern void _ZN5S83C73v18Ev();
extern void _ZN5S83C73v19Ev();
extern void _ZN5S83C73v20Ev();
extern void _ZN5S83C73v21Ev();
extern void _ZN5S83C73v22Ev();
extern void _ZN5S83C73v23Ev();
extern void _ZN5S83C73v24Ev();
extern void _ZN5S83C73v25Ev();
extern void _ZN5S83C73v26Ev();
extern void _ZN5S83C73v27Ev();
extern void _ZN5S83C73v28Ev();
extern void _ZN5S83C73v29Ev();
extern void _ZN5S83C73v30Ev();
extern void _ZN5S83C73v31Ev();
extern void _ZN5S83C73v32Ev();
extern void _ZN5S83C73v33Ev();
extern void _ZN5S83C73v34Ev();
extern void _ZN5S83C73v35Ev();
extern void _ZN5S83C73v36Ev();
extern void _ZN5S83C73v37Ev();
extern void _ZN5S83C73v38Ev();
extern void _ZN5S83C73v39Ev();
extern void _ZN5S83C73v40Ev();
extern void _ZN5S83C73v41Ev();
extern void _ZN5S83C73v42Ev();
extern void _ZN5S83C73v43Ev();
extern void _ZN5S83C73v44Ev();
extern void _ZN5S83C73v45Ev();
extern void _ZN5S83C73v46Ev();
extern void _ZN5S83C73v47Ev();
extern void _ZN5S83C73v48Ev();
extern void _ZN5S83C73v49Ev();
extern void _ZN5S83C73v50Ev();
extern void _ZN5S83C73v51Ev();
extern void _ZN5S83C73v52Ev();
extern void _ZN5S83C73v53Ev();
extern void _ZN5S83C73v54Ev();
extern void _ZN5S83C73v55Ev();
extern void _ZN5S83C73v56Ev();
extern void _ZN5S83C73v57Ev();
extern void _ZN5S83C73v58Ev();
extern void _ZN5S83C73v59Ev();
extern void _ZN5S83C73v60Ev();
extern void _ZN5S83C73v61Ev();
extern void _ZN5S83C73v62Ev();
extern void _ZN5S83C73v63Ev();
extern void _ZN5S83C73v64Ev();
extern void _ZN5S83C73v65Ev();
extern void _ZN5S83C73v66Ev();
extern void _ZN5S83C73v67Ev();
extern void _ZN5S83C63v68Ev();
extern void _ZN5S83C63v69Ev();
extern void _ZN5S83C53v70Ev();
extern void _ZN5S83C53v71Ev();
extern void _ZN5S83C53v72Ev();
extern void _ZN5S83C53v73Ev();
extern void _ZN5S83C53v74Ev();
extern void _ZN5S83C53v75Ev();
extern void _ZN5S83C53v76Ev();
extern void _ZN5S83C53v77Ev();
extern void _ZN5S83C53v78Ev();
extern void _ZN5S83C53v79Ev();
extern void _ZN5S83C53v80Ev();
extern void _ZN5S83C53v81Ev();
extern void _ZN5S83C53v82Ev();
extern void _ZN5S83C53v83Ev();
extern void _ZN5S83C53v84Ev();
extern void _ZN5S83C53v85Ev();
extern void _ZN5S83C53v86Ev();
extern void _ZN5S83C53v87Ev();
extern void _ZN5S83C53v88Ev();
extern void _ZN5S83C53v89Ev();
extern void _ZN5S83C53v90Ev();
extern void _ZN5S83C53v91Ev();
extern void _ZN5S83C53v92Ev();
extern void _ZN5S83C53v93Ev();
extern void _ZN5S83C53v94Ev();
extern void _ZN5S83C53v95Ev();
extern void _ZN5S83C53v96Ev();
extern void _ZN5S83C53v97Ev();
extern void _ZN5S83C53v98Ev();
extern void _ZN5S83C53v99Ev();
extern void _ZN5S83C54v100Ev();
extern void _ZN5S83C54v101Ev();
extern void _ZN5S83C54v102Ev();
extern void _ZN5S83C54v103Ev();
extern void _ZN5S83C54v104Ev();
extern void _ZN5S83C54v105Ev();
extern void _ZN5S83C54v106Ev();
extern void _ZN5S83C54v107Ev();
extern void _ZN5S83C54v108Ev();
extern void _ZN5S83C54v109Ev();
extern void _ZN5S83C54v110Ev();
extern void _ZN5S83C54v111Ev();
extern void _ZN5S83C54v112Ev();
extern void _ZN5S83C54v113Ev();
extern void _ZN5S83C54v114Ev();
extern void _ZN5S83C54v115Ev();
extern void _ZN5S83C54v116Ev();
extern void _ZN5S83C54v117Ev();
extern void _ZN5S83C54v118Ev();
extern void _ZN5S83C54v119Ev();
extern void _ZN5S83C54v120Ev();
extern void _ZN5S83C54v121Ev();
extern void _ZN5S83C54v122Ev();
extern void _ZN5S83C54v123Ev();
extern void _ZN5S83C54v124Ev();
extern void _ZN5S83C54v125Ev();
extern void _ZN5S83C54v126Ev();
extern void _ZN5S83C54v127Ev();
extern void _ZN5S83C54v128Ev();
extern void _ZN5S83C54v129Ev();
extern void _ZN5S83C54v130Ev();
extern void _ZN5S83C54v131Ev();
extern void _ZN5S83C54v132Ev();
extern void _ZN5S83C54v133Ev();
extern void _ZN5S83C54v134Ev();
extern void _ZN5S83C54v135Ev();
extern void _ZN5S83C54v136Ev();
extern void _ZN5S83C54v137Ev();
extern void _ZN5S83C54v138Ev();
extern void _ZN5S83C54v139Ev();
extern void _ZN5S83C54v140Ev();
extern void _ZN5S83C54v141Ev();
extern void _ZN5S83C54v142Ev();
extern void _ZN5S83C54v143Ev();
extern void _ZN5S83C54v144Ev();
extern void _ZN5S83C54v145Ev();
extern void _ZN5S83C44v146Ev();
extern void _ZN5S83C44v147Ev();
extern void _ZN5S83C44v148Ev();
extern void _ZN5S83C44v149Ev();
extern void _ZN5S83C44v150Ev();
extern void _ZN5S83C44v151Ev();
extern void _ZN5S83C44v152Ev();
extern void _ZN5S83C44v153Ev();
extern void _ZN5S83C44v154Ev();
extern void _ZN5S83C44v155Ev();
extern void _ZN5S83C44v156Ev();
extern void _ZN5S83C44v157Ev();
extern void _ZN5S83C44v158Ev();
extern void _ZN5S83C44v159Ev();
extern void _ZN5S83C44v160Ev();
extern void _ZN5S83C44v161Ev();
extern void _ZN5S83C44v162Ev();
extern void _ZN5S83C44v163Ev();
extern void _ZN5S83C44v164Ev();
extern void _ZN5S83C44v165Ev();
extern void _ZN5S83C44v166Ev();
extern void _ZN5S83C44v167Ev();
extern void _ZN5S83C44v168Ev();
extern void _ZN5S83C44v169Ev();
extern void _ZN5S83C44v170Ev();
extern void _ZN5S83C44v171Ev();
extern void _ZN5S83C44v172Ev();
extern void _ZN5S83C44v173Ev();
extern void _ZN5S83C44v174Ev();
extern void _ZN5S83C44v175Ev();
extern void _ZN5S83C44v176Ev();
extern void _ZN5S83C44v177Ev();
extern void _ZN5S83C44v178Ev();
extern void _ZN5S83C44v179Ev();
extern void _ZN5S83C44v180Ev();
extern void _ZN5S83C44v181Ev();
extern void _ZN5S83C44v182Ev();
extern void _ZN5S83C44v183Ev();
extern void _ZN5S83C44v184Ev();
extern void _ZN5S83C34v185Ev();
extern void _ZN5S83C34v186Ev();
extern void _ZN5S83C34v187Ev();
extern void _ZN5S83C34v188Ev();
extern void _ZN5S83C34v189Ev();
extern void _ZN5S83C34v190Ev();
extern void _ZN5S83C34v191Ev();
extern void _ZN5S83C34v192Ev();
extern void _ZN5S83C34v193Ev();
extern void _ZN5S83C34v194Ev();
extern void _ZN5S83C34v195Ev();
extern void _ZN5S83C34v196Ev();
extern void _ZN5S83C34v197Ev();
extern void _ZN5S83C34v198Ev();
extern void _ZN5S83C34v199Ev();
extern void _ZN5S83C34v200Ev();
extern void _ZN5S83C34v201Ev();
extern void _ZN5S83C34v202Ev();
extern void _ZN5S83C34v203Ev();
extern void _ZN5S83C34v204Ev();
extern void _ZN5S83C34v205Ev();
extern void _ZN5S83C34v206Ev();
extern void _ZN5S83C34v207Ev();
extern void _ZN5S83C24v208Ev();
extern void _ZN5S83C24v209Ev();
extern void _ZN5S83C24v210Ev();
extern void _ZN5S83C12v1Ev();
extern void _ZN5S83C12v2Ev();
extern void _ZN5S83C12v3Ev();
static  VTBL_ENTRY vtc_S83C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S83C1[0]),
  (VTBL_ENTRY)&_ZN5S83C1D1Ev,
  (VTBL_ENTRY)&_ZN5S83C1D0Ev,
  (VTBL_ENTRY)&_ZN5S83C72v4Ev,
  (VTBL_ENTRY)&_ZN5S83C72v5Ev,
  (VTBL_ENTRY)&_ZN5S83C72v6Ev,
  (VTBL_ENTRY)&_ZN5S83C72v7Ev,
  (VTBL_ENTRY)&_ZN5S83C72v8Ev,
  (VTBL_ENTRY)&_ZN5S83C72v9Ev,
  (VTBL_ENTRY)&_ZN5S83C73v10Ev,
  (VTBL_ENTRY)&_ZN5S83C73v11Ev,
  (VTBL_ENTRY)&_ZN5S83C73v12Ev,
  (VTBL_ENTRY)&_ZN5S83C73v13Ev,
  (VTBL_ENTRY)&_ZN5S83C73v14Ev,
  (VTBL_ENTRY)&_ZN5S83C73v15Ev,
  (VTBL_ENTRY)&_ZN5S83C73v16Ev,
  (VTBL_ENTRY)&_ZN5S83C73v17Ev,
  (VTBL_ENTRY)&_ZN5S83C73v18Ev,
  (VTBL_ENTRY)&_ZN5S83C73v19Ev,
  (VTBL_ENTRY)&_ZN5S83C73v20Ev,
  (VTBL_ENTRY)&_ZN5S83C73v21Ev,
  (VTBL_ENTRY)&_ZN5S83C73v22Ev,
  (VTBL_ENTRY)&_ZN5S83C73v23Ev,
  (VTBL_ENTRY)&_ZN5S83C73v24Ev,
  (VTBL_ENTRY)&_ZN5S83C73v25Ev,
  (VTBL_ENTRY)&_ZN5S83C73v26Ev,
  (VTBL_ENTRY)&_ZN5S83C73v27Ev,
  (VTBL_ENTRY)&_ZN5S83C73v28Ev,
  (VTBL_ENTRY)&_ZN5S83C73v29Ev,
  (VTBL_ENTRY)&_ZN5S83C73v30Ev,
  (VTBL_ENTRY)&_ZN5S83C73v31Ev,
  (VTBL_ENTRY)&_ZN5S83C73v32Ev,
  (VTBL_ENTRY)&_ZN5S83C73v33Ev,
  (VTBL_ENTRY)&_ZN5S83C73v34Ev,
  (VTBL_ENTRY)&_ZN5S83C73v35Ev,
  (VTBL_ENTRY)&_ZN5S83C73v36Ev,
  (VTBL_ENTRY)&_ZN5S83C73v37Ev,
  (VTBL_ENTRY)&_ZN5S83C73v38Ev,
  (VTBL_ENTRY)&_ZN5S83C73v39Ev,
  (VTBL_ENTRY)&_ZN5S83C73v40Ev,
  (VTBL_ENTRY)&_ZN5S83C73v41Ev,
  (VTBL_ENTRY)&_ZN5S83C73v42Ev,
  (VTBL_ENTRY)&_ZN5S83C73v43Ev,
  (VTBL_ENTRY)&_ZN5S83C73v44Ev,
  (VTBL_ENTRY)&_ZN5S83C73v45Ev,
  (VTBL_ENTRY)&_ZN5S83C73v46Ev,
  (VTBL_ENTRY)&_ZN5S83C73v47Ev,
  (VTBL_ENTRY)&_ZN5S83C73v48Ev,
  (VTBL_ENTRY)&_ZN5S83C73v49Ev,
  (VTBL_ENTRY)&_ZN5S83C73v50Ev,
  (VTBL_ENTRY)&_ZN5S83C73v51Ev,
  (VTBL_ENTRY)&_ZN5S83C73v52Ev,
  (VTBL_ENTRY)&_ZN5S83C73v53Ev,
  (VTBL_ENTRY)&_ZN5S83C73v54Ev,
  (VTBL_ENTRY)&_ZN5S83C73v55Ev,
  (VTBL_ENTRY)&_ZN5S83C73v56Ev,
  (VTBL_ENTRY)&_ZN5S83C73v57Ev,
  (VTBL_ENTRY)&_ZN5S83C73v58Ev,
  (VTBL_ENTRY)&_ZN5S83C73v59Ev,
  (VTBL_ENTRY)&_ZN5S83C73v60Ev,
  (VTBL_ENTRY)&_ZN5S83C73v61Ev,
  (VTBL_ENTRY)&_ZN5S83C73v62Ev,
  (VTBL_ENTRY)&_ZN5S83C73v63Ev,
  (VTBL_ENTRY)&_ZN5S83C73v64Ev,
  (VTBL_ENTRY)&_ZN5S83C73v65Ev,
  (VTBL_ENTRY)&_ZN5S83C73v66Ev,
  (VTBL_ENTRY)&_ZN5S83C73v67Ev,
  (VTBL_ENTRY)&_ZN5S83C63v68Ev,
  (VTBL_ENTRY)&_ZN5S83C63v69Ev,
  (VTBL_ENTRY)&_ZN5S83C53v70Ev,
  (VTBL_ENTRY)&_ZN5S83C53v71Ev,
  (VTBL_ENTRY)&_ZN5S83C53v72Ev,
  (VTBL_ENTRY)&_ZN5S83C53v73Ev,
  (VTBL_ENTRY)&_ZN5S83C53v74Ev,
  (VTBL_ENTRY)&_ZN5S83C53v75Ev,
  (VTBL_ENTRY)&_ZN5S83C53v76Ev,
  (VTBL_ENTRY)&_ZN5S83C53v77Ev,
  (VTBL_ENTRY)&_ZN5S83C53v78Ev,
  (VTBL_ENTRY)&_ZN5S83C53v79Ev,
  (VTBL_ENTRY)&_ZN5S83C53v80Ev,
  (VTBL_ENTRY)&_ZN5S83C53v81Ev,
  (VTBL_ENTRY)&_ZN5S83C53v82Ev,
  (VTBL_ENTRY)&_ZN5S83C53v83Ev,
  (VTBL_ENTRY)&_ZN5S83C53v84Ev,
  (VTBL_ENTRY)&_ZN5S83C53v85Ev,
  (VTBL_ENTRY)&_ZN5S83C53v86Ev,
  (VTBL_ENTRY)&_ZN5S83C53v87Ev,
  (VTBL_ENTRY)&_ZN5S83C53v88Ev,
  (VTBL_ENTRY)&_ZN5S83C53v89Ev,
  (VTBL_ENTRY)&_ZN5S83C53v90Ev,
  (VTBL_ENTRY)&_ZN5S83C53v91Ev,
  (VTBL_ENTRY)&_ZN5S83C53v92Ev,
  (VTBL_ENTRY)&_ZN5S83C53v93Ev,
  (VTBL_ENTRY)&_ZN5S83C53v94Ev,
  (VTBL_ENTRY)&_ZN5S83C53v95Ev,
  (VTBL_ENTRY)&_ZN5S83C53v96Ev,
  (VTBL_ENTRY)&_ZN5S83C53v97Ev,
  (VTBL_ENTRY)&_ZN5S83C53v98Ev,
  (VTBL_ENTRY)&_ZN5S83C53v99Ev,
  (VTBL_ENTRY)&_ZN5S83C54v100Ev,
  (VTBL_ENTRY)&_ZN5S83C54v101Ev,
  (VTBL_ENTRY)&_ZN5S83C54v102Ev,
  (VTBL_ENTRY)&_ZN5S83C54v103Ev,
  (VTBL_ENTRY)&_ZN5S83C54v104Ev,
  (VTBL_ENTRY)&_ZN5S83C54v105Ev,
  (VTBL_ENTRY)&_ZN5S83C54v106Ev,
  (VTBL_ENTRY)&_ZN5S83C54v107Ev,
  (VTBL_ENTRY)&_ZN5S83C54v108Ev,
  (VTBL_ENTRY)&_ZN5S83C54v109Ev,
  (VTBL_ENTRY)&_ZN5S83C54v110Ev,
  (VTBL_ENTRY)&_ZN5S83C54v111Ev,
  (VTBL_ENTRY)&_ZN5S83C54v112Ev,
  (VTBL_ENTRY)&_ZN5S83C54v113Ev,
  (VTBL_ENTRY)&_ZN5S83C54v114Ev,
  (VTBL_ENTRY)&_ZN5S83C54v115Ev,
  (VTBL_ENTRY)&_ZN5S83C54v116Ev,
  (VTBL_ENTRY)&_ZN5S83C54v117Ev,
  (VTBL_ENTRY)&_ZN5S83C54v118Ev,
  (VTBL_ENTRY)&_ZN5S83C54v119Ev,
  (VTBL_ENTRY)&_ZN5S83C54v120Ev,
  (VTBL_ENTRY)&_ZN5S83C54v121Ev,
  (VTBL_ENTRY)&_ZN5S83C54v122Ev,
  (VTBL_ENTRY)&_ZN5S83C54v123Ev,
  (VTBL_ENTRY)&_ZN5S83C54v124Ev,
  (VTBL_ENTRY)&_ZN5S83C54v125Ev,
  (VTBL_ENTRY)&_ZN5S83C54v126Ev,
  (VTBL_ENTRY)&_ZN5S83C54v127Ev,
  (VTBL_ENTRY)&_ZN5S83C54v128Ev,
  (VTBL_ENTRY)&_ZN5S83C54v129Ev,
  (VTBL_ENTRY)&_ZN5S83C54v130Ev,
  (VTBL_ENTRY)&_ZN5S83C54v131Ev,
  (VTBL_ENTRY)&_ZN5S83C54v132Ev,
  (VTBL_ENTRY)&_ZN5S83C54v133Ev,
  (VTBL_ENTRY)&_ZN5S83C54v134Ev,
  (VTBL_ENTRY)&_ZN5S83C54v135Ev,
  (VTBL_ENTRY)&_ZN5S83C54v136Ev,
  (VTBL_ENTRY)&_ZN5S83C54v137Ev,
  (VTBL_ENTRY)&_ZN5S83C54v138Ev,
  (VTBL_ENTRY)&_ZN5S83C54v139Ev,
  (VTBL_ENTRY)&_ZN5S83C54v140Ev,
  (VTBL_ENTRY)&_ZN5S83C54v141Ev,
  (VTBL_ENTRY)&_ZN5S83C54v142Ev,
  (VTBL_ENTRY)&_ZN5S83C54v143Ev,
  (VTBL_ENTRY)&_ZN5S83C54v144Ev,
  (VTBL_ENTRY)&_ZN5S83C54v145Ev,
  (VTBL_ENTRY)&_ZN5S83C44v146Ev,
  (VTBL_ENTRY)&_ZN5S83C44v147Ev,
  (VTBL_ENTRY)&_ZN5S83C44v148Ev,
  (VTBL_ENTRY)&_ZN5S83C44v149Ev,
  (VTBL_ENTRY)&_ZN5S83C44v150Ev,
  (VTBL_ENTRY)&_ZN5S83C44v151Ev,
  (VTBL_ENTRY)&_ZN5S83C44v152Ev,
  (VTBL_ENTRY)&_ZN5S83C44v153Ev,
  (VTBL_ENTRY)&_ZN5S83C44v154Ev,
  (VTBL_ENTRY)&_ZN5S83C44v155Ev,
  (VTBL_ENTRY)&_ZN5S83C44v156Ev,
  (VTBL_ENTRY)&_ZN5S83C44v157Ev,
  (VTBL_ENTRY)&_ZN5S83C44v158Ev,
  (VTBL_ENTRY)&_ZN5S83C44v159Ev,
  (VTBL_ENTRY)&_ZN5S83C44v160Ev,
  (VTBL_ENTRY)&_ZN5S83C44v161Ev,
  (VTBL_ENTRY)&_ZN5S83C44v162Ev,
  (VTBL_ENTRY)&_ZN5S83C44v163Ev,
  (VTBL_ENTRY)&_ZN5S83C44v164Ev,
  (VTBL_ENTRY)&_ZN5S83C44v165Ev,
  (VTBL_ENTRY)&_ZN5S83C44v166Ev,
  (VTBL_ENTRY)&_ZN5S83C44v167Ev,
  (VTBL_ENTRY)&_ZN5S83C44v168Ev,
  (VTBL_ENTRY)&_ZN5S83C44v169Ev,
  (VTBL_ENTRY)&_ZN5S83C44v170Ev,
  (VTBL_ENTRY)&_ZN5S83C44v171Ev,
  (VTBL_ENTRY)&_ZN5S83C44v172Ev,
  (VTBL_ENTRY)&_ZN5S83C44v173Ev,
  (VTBL_ENTRY)&_ZN5S83C44v174Ev,
  (VTBL_ENTRY)&_ZN5S83C44v175Ev,
  (VTBL_ENTRY)&_ZN5S83C44v176Ev,
  (VTBL_ENTRY)&_ZN5S83C44v177Ev,
  (VTBL_ENTRY)&_ZN5S83C44v178Ev,
  (VTBL_ENTRY)&_ZN5S83C44v179Ev,
  (VTBL_ENTRY)&_ZN5S83C44v180Ev,
  (VTBL_ENTRY)&_ZN5S83C44v181Ev,
  (VTBL_ENTRY)&_ZN5S83C44v182Ev,
  (VTBL_ENTRY)&_ZN5S83C44v183Ev,
  (VTBL_ENTRY)&_ZN5S83C44v184Ev,
  (VTBL_ENTRY)&_ZN5S83C34v185Ev,
  (VTBL_ENTRY)&_ZN5S83C34v186Ev,
  (VTBL_ENTRY)&_ZN5S83C34v187Ev,
  (VTBL_ENTRY)&_ZN5S83C34v188Ev,
  (VTBL_ENTRY)&_ZN5S83C34v189Ev,
  (VTBL_ENTRY)&_ZN5S83C34v190Ev,
  (VTBL_ENTRY)&_ZN5S83C34v191Ev,
  (VTBL_ENTRY)&_ZN5S83C34v192Ev,
  (VTBL_ENTRY)&_ZN5S83C34v193Ev,
  (VTBL_ENTRY)&_ZN5S83C34v194Ev,
  (VTBL_ENTRY)&_ZN5S83C34v195Ev,
  (VTBL_ENTRY)&_ZN5S83C34v196Ev,
  (VTBL_ENTRY)&_ZN5S83C34v197Ev,
  (VTBL_ENTRY)&_ZN5S83C34v198Ev,
  (VTBL_ENTRY)&_ZN5S83C34v199Ev,
  (VTBL_ENTRY)&_ZN5S83C34v200Ev,
  (VTBL_ENTRY)&_ZN5S83C34v201Ev,
  (VTBL_ENTRY)&_ZN5S83C34v202Ev,
  (VTBL_ENTRY)&_ZN5S83C34v203Ev,
  (VTBL_ENTRY)&_ZN5S83C34v204Ev,
  (VTBL_ENTRY)&_ZN5S83C34v205Ev,
  (VTBL_ENTRY)&_ZN5S83C34v206Ev,
  (VTBL_ENTRY)&_ZN5S83C34v207Ev,
  (VTBL_ENTRY)&_ZN5S83C24v208Ev,
  (VTBL_ENTRY)&_ZN5S83C24v209Ev,
  (VTBL_ENTRY)&_ZN5S83C24v210Ev,
  (VTBL_ENTRY)&_ZN5S83C12v1Ev,
  (VTBL_ENTRY)&_ZN5S83C12v2Ev,
  (VTBL_ENTRY)&_ZN5S83C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S83C1[];
extern  VTBL_ENTRY _ZTV5S83C1[];
Class_Descriptor cd_S83C1 = {  "S83C1", // class name
  bases_S83C1, 6,
  &(vtc_S83C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(888,628), // object size
  NSPAIRA(_ZTI5S83C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S83C1),214, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S219C6  {
  int s219c6f0;
  __tsi64 s219c6f1;
  void *s219c6f2[4];
  int s219c6f3[2];
  void *s219c6f4;
  ::S85C27_nt s219c6f5;
  void *s219c6f6[2];
  virtual  ~S219C6(); // _ZN6S219C6D1Ev
  virtual void  v4(); // _ZN6S219C62v4Ev
  virtual void  v5(); // _ZN6S219C62v5Ev
  virtual void  v6(); // _ZN6S219C62v6Ev
  virtual void  v7(); // _ZN6S219C62v7Ev
  virtual void  v8(); // _ZN6S219C62v8Ev
  virtual void  v9(); // _ZN6S219C62v9Ev
  virtual void  v10(); // _ZN6S219C63v10Ev
  virtual void  v11(); // _ZN6S219C63v11Ev
  virtual void  v12(); // _ZN6S219C63v12Ev
  virtual void  v13(); // _ZN6S219C63v13Ev
  virtual void  v14(); // _ZN6S219C63v14Ev
  virtual void  v15(); // _ZN6S219C63v15Ev
  virtual void  v16(); // _ZN6S219C63v16Ev
  virtual void  v17(); // _ZN6S219C63v17Ev
  virtual void  v18(); // _ZN6S219C63v18Ev
  virtual void  v19(); // _ZN6S219C63v19Ev
  virtual void  v20(); // _ZN6S219C63v20Ev
  virtual void  v21(); // _ZN6S219C63v21Ev
  virtual void  v22(); // _ZN6S219C63v22Ev
  virtual void  v23(); // _ZN6S219C63v23Ev
  virtual void  v24(); // _ZN6S219C63v24Ev
  virtual void  v25(); // _ZN6S219C63v25Ev
  virtual void  v26(); // _ZN6S219C63v26Ev
  virtual void  v27(); // _ZN6S219C63v27Ev
  virtual void  v28(); // _ZN6S219C63v28Ev
  virtual void  v29(); // _ZN6S219C63v29Ev
  virtual void  v30(); // _ZN6S219C63v30Ev
  virtual void  v31(); // _ZN6S219C63v31Ev
  virtual void  v32(); // _ZN6S219C63v32Ev
  virtual void  v33(); // _ZN6S219C63v33Ev
  virtual void  v34(); // _ZN6S219C63v34Ev
  virtual void  v35(); // _ZN6S219C63v35Ev
  virtual void  v36(); // _ZN6S219C63v36Ev
  virtual void  v37(); // _ZN6S219C63v37Ev
  virtual void  v38(); // _ZN6S219C63v38Ev
  virtual void  v39(); // _ZN6S219C63v39Ev
  virtual void  v40(); // _ZN6S219C63v40Ev
  virtual void  v41(); // _ZN6S219C63v41Ev
  virtual void  v42(); // _ZN6S219C63v42Ev
  virtual void  v43(); // _ZN6S219C63v43Ev
  virtual void  v44(); // _ZN6S219C63v44Ev
  virtual void  v45(); // _ZN6S219C63v45Ev
  virtual void  v46(); // _ZN6S219C63v46Ev
  virtual void  v47(); // _ZN6S219C63v47Ev
  virtual void  v48(); // _ZN6S219C63v48Ev
  virtual void  v49(); // _ZN6S219C63v49Ev
  virtual void  v50(); // _ZN6S219C63v50Ev
  virtual void  v51(); // _ZN6S219C63v51Ev
  virtual void  v52(); // _ZN6S219C63v52Ev
  virtual void  v53(); // _ZN6S219C63v53Ev
  virtual void  v54(); // _ZN6S219C63v54Ev
  virtual void  v55(); // _ZN6S219C63v55Ev
  virtual void  v56(); // _ZN6S219C63v56Ev
  virtual void  v57(); // _ZN6S219C63v57Ev
  virtual void  v58(); // _ZN6S219C63v58Ev
  virtual void  v59(); // _ZN6S219C63v59Ev
  virtual void  v60(); // _ZN6S219C63v60Ev
  virtual void  v61(); // _ZN6S219C63v61Ev
  virtual void  v62(); // _ZN6S219C63v62Ev
  virtual void  v63(); // _ZN6S219C63v63Ev
  virtual void  v64(); // _ZN6S219C63v64Ev
  virtual void  v65(); // _ZN6S219C63v65Ev
  virtual void  v66(); // _ZN6S219C63v66Ev
  virtual void  v67(); // _ZN6S219C63v67Ev
  S219C6(); // tgen
};
//SIG(-1 S219C6) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S219C6 ::~S219C6(){ note_dtor("S219C6", this);}
void  S219C6 ::v4(){vfunc_called(this, "_ZN6S219C62v4Ev");}
void  S219C6 ::v5(){vfunc_called(this, "_ZN6S219C62v5Ev");}
void  S219C6 ::v6(){vfunc_called(this, "_ZN6S219C62v6Ev");}
void  S219C6 ::v7(){vfunc_called(this, "_ZN6S219C62v7Ev");}
void  S219C6 ::v8(){vfunc_called(this, "_ZN6S219C62v8Ev");}
void  S219C6 ::v9(){vfunc_called(this, "_ZN6S219C62v9Ev");}
void  S219C6 ::v10(){vfunc_called(this, "_ZN6S219C63v10Ev");}
void  S219C6 ::v11(){vfunc_called(this, "_ZN6S219C63v11Ev");}
void  S219C6 ::v12(){vfunc_called(this, "_ZN6S219C63v12Ev");}
void  S219C6 ::v13(){vfunc_called(this, "_ZN6S219C63v13Ev");}
void  S219C6 ::v14(){vfunc_called(this, "_ZN6S219C63v14Ev");}
void  S219C6 ::v15(){vfunc_called(this, "_ZN6S219C63v15Ev");}
void  S219C6 ::v16(){vfunc_called(this, "_ZN6S219C63v16Ev");}
void  S219C6 ::v17(){vfunc_called(this, "_ZN6S219C63v17Ev");}
void  S219C6 ::v18(){vfunc_called(this, "_ZN6S219C63v18Ev");}
void  S219C6 ::v19(){vfunc_called(this, "_ZN6S219C63v19Ev");}
void  S219C6 ::v20(){vfunc_called(this, "_ZN6S219C63v20Ev");}
void  S219C6 ::v21(){vfunc_called(this, "_ZN6S219C63v21Ev");}
void  S219C6 ::v22(){vfunc_called(this, "_ZN6S219C63v22Ev");}
void  S219C6 ::v23(){vfunc_called(this, "_ZN6S219C63v23Ev");}
void  S219C6 ::v24(){vfunc_called(this, "_ZN6S219C63v24Ev");}
void  S219C6 ::v25(){vfunc_called(this, "_ZN6S219C63v25Ev");}
void  S219C6 ::v26(){vfunc_called(this, "_ZN6S219C63v26Ev");}
void  S219C6 ::v27(){vfunc_called(this, "_ZN6S219C63v27Ev");}
void  S219C6 ::v28(){vfunc_called(this, "_ZN6S219C63v28Ev");}
void  S219C6 ::v29(){vfunc_called(this, "_ZN6S219C63v29Ev");}
void  S219C6 ::v30(){vfunc_called(this, "_ZN6S219C63v30Ev");}
void  S219C6 ::v31(){vfunc_called(this, "_ZN6S219C63v31Ev");}
void  S219C6 ::v32(){vfunc_called(this, "_ZN6S219C63v32Ev");}
void  S219C6 ::v33(){vfunc_called(this, "_ZN6S219C63v33Ev");}
void  S219C6 ::v34(){vfunc_called(this, "_ZN6S219C63v34Ev");}
void  S219C6 ::v35(){vfunc_called(this, "_ZN6S219C63v35Ev");}
void  S219C6 ::v36(){vfunc_called(this, "_ZN6S219C63v36Ev");}
void  S219C6 ::v37(){vfunc_called(this, "_ZN6S219C63v37Ev");}
void  S219C6 ::v38(){vfunc_called(this, "_ZN6S219C63v38Ev");}
void  S219C6 ::v39(){vfunc_called(this, "_ZN6S219C63v39Ev");}
void  S219C6 ::v40(){vfunc_called(this, "_ZN6S219C63v40Ev");}
void  S219C6 ::v41(){vfunc_called(this, "_ZN6S219C63v41Ev");}
void  S219C6 ::v42(){vfunc_called(this, "_ZN6S219C63v42Ev");}
void  S219C6 ::v43(){vfunc_called(this, "_ZN6S219C63v43Ev");}
void  S219C6 ::v44(){vfunc_called(this, "_ZN6S219C63v44Ev");}
void  S219C6 ::v45(){vfunc_called(this, "_ZN6S219C63v45Ev");}
void  S219C6 ::v46(){vfunc_called(this, "_ZN6S219C63v46Ev");}
void  S219C6 ::v47(){vfunc_called(this, "_ZN6S219C63v47Ev");}
void  S219C6 ::v48(){vfunc_called(this, "_ZN6S219C63v48Ev");}
void  S219C6 ::v49(){vfunc_called(this, "_ZN6S219C63v49Ev");}
void  S219C6 ::v50(){vfunc_called(this, "_ZN6S219C63v50Ev");}
void  S219C6 ::v51(){vfunc_called(this, "_ZN6S219C63v51Ev");}
void  S219C6 ::v52(){vfunc_called(this, "_ZN6S219C63v52Ev");}
void  S219C6 ::v53(){vfunc_called(this, "_ZN6S219C63v53Ev");}
void  S219C6 ::v54(){vfunc_called(this, "_ZN6S219C63v54Ev");}
void  S219C6 ::v55(){vfunc_called(this, "_ZN6S219C63v55Ev");}
void  S219C6 ::v56(){vfunc_called(this, "_ZN6S219C63v56Ev");}
void  S219C6 ::v57(){vfunc_called(this, "_ZN6S219C63v57Ev");}
void  S219C6 ::v58(){vfunc_called(this, "_ZN6S219C63v58Ev");}
void  S219C6 ::v59(){vfunc_called(this, "_ZN6S219C63v59Ev");}
void  S219C6 ::v60(){vfunc_called(this, "_ZN6S219C63v60Ev");}
void  S219C6 ::v61(){vfunc_called(this, "_ZN6S219C63v61Ev");}
void  S219C6 ::v62(){vfunc_called(this, "_ZN6S219C63v62Ev");}
void  S219C6 ::v63(){vfunc_called(this, "_ZN6S219C63v63Ev");}
void  S219C6 ::v64(){vfunc_called(this, "_ZN6S219C63v64Ev");}
void  S219C6 ::v65(){vfunc_called(this, "_ZN6S219C63v65Ev");}
void  S219C6 ::v66(){vfunc_called(this, "_ZN6S219C63v66Ev");}
void  S219C6 ::v67(){vfunc_called(this, "_ZN6S219C63v67Ev");}
S219C6 ::S219C6(){ note_ctor("S219C6", this);} // tgen

static void Test_S219C6()
{
  extern Class_Descriptor cd_S219C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S219C6, buf);
    S219C6 *dp, &lv = *(dp=new (buf) S219C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S219C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S219C6)");
    check_field_offset(lv, s219c6f0, ABISELECT(8,4), "S219C6.s219c6f0");
    check_field_offset(lv, s219c6f1, ABISELECT(16,8), "S219C6.s219c6f1");
    check_field_offset(lv, s219c6f2, ABISELECT(24,16), "S219C6.s219c6f2");
    check_field_offset(lv, s219c6f3, ABISELECT(56,32), "S219C6.s219c6f3");
    check_field_offset(lv, s219c6f4, ABISELECT(64,40), "S219C6.s219c6f4");
    check_field_offset(lv, s219c6f5, ABISELECT(72,44), "S219C6.s219c6f5");
    check_field_offset(lv, s219c6f6, ABISELECT(80,52), "S219C6.s219c6f6");
    test_class_info(&lv, &cd_S219C6);
    dp->~S219C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS219C6(Test_S219C6, "S219C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S219C6C1Ev();
extern void _ZN6S219C6D1Ev();
Name_Map name_map_S219C6[] = {
  NSPAIR(_ZN6S219C6C1Ev),
  NSPAIR(_ZN6S219C6D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S219C6[];
extern void _ZN6S219C6D1Ev();
extern void _ZN6S219C6D0Ev();
extern void _ZN6S219C62v4Ev();
extern void _ZN6S219C62v5Ev();
extern void _ZN6S219C62v6Ev();
extern void _ZN6S219C62v7Ev();
extern void _ZN6S219C62v8Ev();
extern void _ZN6S219C62v9Ev();
extern void _ZN6S219C63v10Ev();
extern void _ZN6S219C63v11Ev();
extern void _ZN6S219C63v12Ev();
extern void _ZN6S219C63v13Ev();
extern void _ZN6S219C63v14Ev();
extern void _ZN6S219C63v15Ev();
extern void _ZN6S219C63v16Ev();
extern void _ZN6S219C63v17Ev();
extern void _ZN6S219C63v18Ev();
extern void _ZN6S219C63v19Ev();
extern void _ZN6S219C63v20Ev();
extern void _ZN6S219C63v21Ev();
extern void _ZN6S219C63v22Ev();
extern void _ZN6S219C63v23Ev();
extern void _ZN6S219C63v24Ev();
extern void _ZN6S219C63v25Ev();
extern void _ZN6S219C63v26Ev();
extern void _ZN6S219C63v27Ev();
extern void _ZN6S219C63v28Ev();
extern void _ZN6S219C63v29Ev();
extern void _ZN6S219C63v30Ev();
extern void _ZN6S219C63v31Ev();
extern void _ZN6S219C63v32Ev();
extern void _ZN6S219C63v33Ev();
extern void _ZN6S219C63v34Ev();
extern void _ZN6S219C63v35Ev();
extern void _ZN6S219C63v36Ev();
extern void _ZN6S219C63v37Ev();
extern void _ZN6S219C63v38Ev();
extern void _ZN6S219C63v39Ev();
extern void _ZN6S219C63v40Ev();
extern void _ZN6S219C63v41Ev();
extern void _ZN6S219C63v42Ev();
extern void _ZN6S219C63v43Ev();
extern void _ZN6S219C63v44Ev();
extern void _ZN6S219C63v45Ev();
extern void _ZN6S219C63v46Ev();
extern void _ZN6S219C63v47Ev();
extern void _ZN6S219C63v48Ev();
extern void _ZN6S219C63v49Ev();
extern void _ZN6S219C63v50Ev();
extern void _ZN6S219C63v51Ev();
extern void _ZN6S219C63v52Ev();
extern void _ZN6S219C63v53Ev();
extern void _ZN6S219C63v54Ev();
extern void _ZN6S219C63v55Ev();
extern void _ZN6S219C63v56Ev();
extern void _ZN6S219C63v57Ev();
extern void _ZN6S219C63v58Ev();
extern void _ZN6S219C63v59Ev();
extern void _ZN6S219C63v60Ev();
extern void _ZN6S219C63v61Ev();
extern void _ZN6S219C63v62Ev();
extern void _ZN6S219C63v63Ev();
extern void _ZN6S219C63v64Ev();
extern void _ZN6S219C63v65Ev();
extern void _ZN6S219C63v66Ev();
extern void _ZN6S219C63v67Ev();
static  VTBL_ENTRY vtc_S219C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S219C6[0]),
  (VTBL_ENTRY)&_ZN6S219C6D1Ev,
  (VTBL_ENTRY)&_ZN6S219C6D0Ev,
  (VTBL_ENTRY)&_ZN6S219C62v4Ev,
  (VTBL_ENTRY)&_ZN6S219C62v5Ev,
  (VTBL_ENTRY)&_ZN6S219C62v6Ev,
  (VTBL_ENTRY)&_ZN6S219C62v7Ev,
  (VTBL_ENTRY)&_ZN6S219C62v8Ev,
  (VTBL_ENTRY)&_ZN6S219C62v9Ev,
  (VTBL_ENTRY)&_ZN6S219C63v10Ev,
  (VTBL_ENTRY)&_ZN6S219C63v11Ev,
  (VTBL_ENTRY)&_ZN6S219C63v12Ev,
  (VTBL_ENTRY)&_ZN6S219C63v13Ev,
  (VTBL_ENTRY)&_ZN6S219C63v14Ev,
  (VTBL_ENTRY)&_ZN6S219C63v15Ev,
  (VTBL_ENTRY)&_ZN6S219C63v16Ev,
  (VTBL_ENTRY)&_ZN6S219C63v17Ev,
  (VTBL_ENTRY)&_ZN6S219C63v18Ev,
  (VTBL_ENTRY)&_ZN6S219C63v19Ev,
  (VTBL_ENTRY)&_ZN6S219C63v20Ev,
  (VTBL_ENTRY)&_ZN6S219C63v21Ev,
  (VTBL_ENTRY)&_ZN6S219C63v22Ev,
  (VTBL_ENTRY)&_ZN6S219C63v23Ev,
  (VTBL_ENTRY)&_ZN6S219C63v24Ev,
  (VTBL_ENTRY)&_ZN6S219C63v25Ev,
  (VTBL_ENTRY)&_ZN6S219C63v26Ev,
  (VTBL_ENTRY)&_ZN6S219C63v27Ev,
  (VTBL_ENTRY)&_ZN6S219C63v28Ev,
  (VTBL_ENTRY)&_ZN6S219C63v29Ev,
  (VTBL_ENTRY)&_ZN6S219C63v30Ev,
  (VTBL_ENTRY)&_ZN6S219C63v31Ev,
  (VTBL_ENTRY)&_ZN6S219C63v32Ev,
  (VTBL_ENTRY)&_ZN6S219C63v33Ev,
  (VTBL_ENTRY)&_ZN6S219C63v34Ev,
  (VTBL_ENTRY)&_ZN6S219C63v35Ev,
  (VTBL_ENTRY)&_ZN6S219C63v36Ev,
  (VTBL_ENTRY)&_ZN6S219C63v37Ev,
  (VTBL_ENTRY)&_ZN6S219C63v38Ev,
  (VTBL_ENTRY)&_ZN6S219C63v39Ev,
  (VTBL_ENTRY)&_ZN6S219C63v40Ev,
  (VTBL_ENTRY)&_ZN6S219C63v41Ev,
  (VTBL_ENTRY)&_ZN6S219C63v42Ev,
  (VTBL_ENTRY)&_ZN6S219C63v43Ev,
  (VTBL_ENTRY)&_ZN6S219C63v44Ev,
  (VTBL_ENTRY)&_ZN6S219C63v45Ev,
  (VTBL_ENTRY)&_ZN6S219C63v46Ev,
  (VTBL_ENTRY)&_ZN6S219C63v47Ev,
  (VTBL_ENTRY)&_ZN6S219C63v48Ev,
  (VTBL_ENTRY)&_ZN6S219C63v49Ev,
  (VTBL_ENTRY)&_ZN6S219C63v50Ev,
  (VTBL_ENTRY)&_ZN6S219C63v51Ev,
  (VTBL_ENTRY)&_ZN6S219C63v52Ev,
  (VTBL_ENTRY)&_ZN6S219C63v53Ev,
  (VTBL_ENTRY)&_ZN6S219C63v54Ev,
  (VTBL_ENTRY)&_ZN6S219C63v55Ev,
  (VTBL_ENTRY)&_ZN6S219C63v56Ev,
  (VTBL_ENTRY)&_ZN6S219C63v57Ev,
  (VTBL_ENTRY)&_ZN6S219C63v58Ev,
  (VTBL_ENTRY)&_ZN6S219C63v59Ev,
  (VTBL_ENTRY)&_ZN6S219C63v60Ev,
  (VTBL_ENTRY)&_ZN6S219C63v61Ev,
  (VTBL_ENTRY)&_ZN6S219C63v62Ev,
  (VTBL_ENTRY)&_ZN6S219C63v63Ev,
  (VTBL_ENTRY)&_ZN6S219C63v64Ev,
  (VTBL_ENTRY)&_ZN6S219C63v65Ev,
  (VTBL_ENTRY)&_ZN6S219C63v66Ev,
  (VTBL_ENTRY)&_ZN6S219C63v67Ev,
};
extern VTBL_ENTRY _ZTI6S219C6[];
extern  VTBL_ENTRY _ZTV6S219C6[];
Class_Descriptor cd_S219C6 = {  "S219C6", // class name
  0,0,//no base classes
  &(vtc_S219C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S219C6),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S219C6),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S219C5  : S219C6 {
  virtual  ~S219C5(); // _ZN6S219C5D1Ev
  virtual void  v68(); // _ZN6S219C53v68Ev
  virtual void  v69(); // _ZN6S219C53v69Ev
  S219C5(); // tgen
};
//SIG(-1 S219C5) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S219C5 ::~S219C5(){ note_dtor("S219C5", this);}
void  S219C5 ::v68(){vfunc_called(this, "_ZN6S219C53v68Ev");}
void  S219C5 ::v69(){vfunc_called(this, "_ZN6S219C53v69Ev");}
S219C5 ::S219C5(){ note_ctor("S219C5", this);} // tgen

static void Test_S219C5()
{
  extern Class_Descriptor cd_S219C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S219C5, buf);
    S219C5 *dp, &lv = *(dp=new (buf) S219C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S219C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S219C5)");
    check_base_class_offset(lv, (S219C6*), 0, "S219C5");
    test_class_info(&lv, &cd_S219C5);
    dp->~S219C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS219C5(Test_S219C5, "S219C5", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S219C5C1Ev();
extern void _ZN6S219C5D1Ev();
Name_Map name_map_S219C5[] = {
  NSPAIR(_ZN6S219C5C1Ev),
  NSPAIR(_ZN6S219C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S219C6;
extern VTBL_ENTRY _ZTI6S219C6[];
extern  VTBL_ENTRY _ZTV6S219C6[];
static Base_Class bases_S219C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S219C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S219C5[];
extern void _ZN6S219C5D1Ev();
extern void _ZN6S219C5D0Ev();
extern void _ZN6S219C62v4Ev();
extern void _ZN6S219C62v5Ev();
extern void _ZN6S219C62v6Ev();
extern void _ZN6S219C62v7Ev();
extern void _ZN6S219C62v8Ev();
extern void _ZN6S219C62v9Ev();
extern void _ZN6S219C63v10Ev();
extern void _ZN6S219C63v11Ev();
extern void _ZN6S219C63v12Ev();
extern void _ZN6S219C63v13Ev();
extern void _ZN6S219C63v14Ev();
extern void _ZN6S219C63v15Ev();
extern void _ZN6S219C63v16Ev();
extern void _ZN6S219C63v17Ev();
extern void _ZN6S219C63v18Ev();
extern void _ZN6S219C63v19Ev();
extern void _ZN6S219C63v20Ev();
extern void _ZN6S219C63v21Ev();
extern void _ZN6S219C63v22Ev();
extern void _ZN6S219C63v23Ev();
extern void _ZN6S219C63v24Ev();
extern void _ZN6S219C63v25Ev();
extern void _ZN6S219C63v26Ev();
extern void _ZN6S219C63v27Ev();
extern void _ZN6S219C63v28Ev();
extern void _ZN6S219C63v29Ev();
extern void _ZN6S219C63v30Ev();
extern void _ZN6S219C63v31Ev();
extern void _ZN6S219C63v32Ev();
extern void _ZN6S219C63v33Ev();
extern void _ZN6S219C63v34Ev();
extern void _ZN6S219C63v35Ev();
extern void _ZN6S219C63v36Ev();
extern void _ZN6S219C63v37Ev();
extern void _ZN6S219C63v38Ev();
extern void _ZN6S219C63v39Ev();
extern void _ZN6S219C63v40Ev();
extern void _ZN6S219C63v41Ev();
extern void _ZN6S219C63v42Ev();
extern void _ZN6S219C63v43Ev();
extern void _ZN6S219C63v44Ev();
extern void _ZN6S219C63v45Ev();
extern void _ZN6S219C63v46Ev();
extern void _ZN6S219C63v47Ev();
extern void _ZN6S219C63v48Ev();
extern void _ZN6S219C63v49Ev();
extern void _ZN6S219C63v50Ev();
extern void _ZN6S219C63v51Ev();
extern void _ZN6S219C63v52Ev();
extern void _ZN6S219C63v53Ev();
extern void _ZN6S219C63v54Ev();
extern void _ZN6S219C63v55Ev();
extern void _ZN6S219C63v56Ev();
extern void _ZN6S219C63v57Ev();
extern void _ZN6S219C63v58Ev();
extern void _ZN6S219C63v59Ev();
extern void _ZN6S219C63v60Ev();
extern void _ZN6S219C63v61Ev();
extern void _ZN6S219C63v62Ev();
extern void _ZN6S219C63v63Ev();
extern void _ZN6S219C63v64Ev();
extern void _ZN6S219C63v65Ev();
extern void _ZN6S219C63v66Ev();
extern void _ZN6S219C63v67Ev();
extern void _ZN6S219C53v68Ev();
extern void _ZN6S219C53v69Ev();
static  VTBL_ENTRY vtc_S219C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S219C5[0]),
  (VTBL_ENTRY)&_ZN6S219C5D1Ev,
  (VTBL_ENTRY)&_ZN6S219C5D0Ev,
  (VTBL_ENTRY)&_ZN6S219C62v4Ev,
  (VTBL_ENTRY)&_ZN6S219C62v5Ev,
  (VTBL_ENTRY)&_ZN6S219C62v6Ev,
  (VTBL_ENTRY)&_ZN6S219C62v7Ev,
  (VTBL_ENTRY)&_ZN6S219C62v8Ev,
  (VTBL_ENTRY)&_ZN6S219C62v9Ev,
  (VTBL_ENTRY)&_ZN6S219C63v10Ev,
  (VTBL_ENTRY)&_ZN6S219C63v11Ev,
  (VTBL_ENTRY)&_ZN6S219C63v12Ev,
  (VTBL_ENTRY)&_ZN6S219C63v13Ev,
  (VTBL_ENTRY)&_ZN6S219C63v14Ev,
  (VTBL_ENTRY)&_ZN6S219C63v15Ev,
  (VTBL_ENTRY)&_ZN6S219C63v16Ev,
  (VTBL_ENTRY)&_ZN6S219C63v17Ev,
  (VTBL_ENTRY)&_ZN6S219C63v18Ev,
  (VTBL_ENTRY)&_ZN6S219C63v19Ev,
  (VTBL_ENTRY)&_ZN6S219C63v20Ev,
  (VTBL_ENTRY)&_ZN6S219C63v21Ev,
  (VTBL_ENTRY)&_ZN6S219C63v22Ev,
  (VTBL_ENTRY)&_ZN6S219C63v23Ev,
  (VTBL_ENTRY)&_ZN6S219C63v24Ev,
  (VTBL_ENTRY)&_ZN6S219C63v25Ev,
  (VTBL_ENTRY)&_ZN6S219C63v26Ev,
  (VTBL_ENTRY)&_ZN6S219C63v27Ev,
  (VTBL_ENTRY)&_ZN6S219C63v28Ev,
  (VTBL_ENTRY)&_ZN6S219C63v29Ev,
  (VTBL_ENTRY)&_ZN6S219C63v30Ev,
  (VTBL_ENTRY)&_ZN6S219C63v31Ev,
  (VTBL_ENTRY)&_ZN6S219C63v32Ev,
  (VTBL_ENTRY)&_ZN6S219C63v33Ev,
  (VTBL_ENTRY)&_ZN6S219C63v34Ev,
  (VTBL_ENTRY)&_ZN6S219C63v35Ev,
  (VTBL_ENTRY)&_ZN6S219C63v36Ev,
  (VTBL_ENTRY)&_ZN6S219C63v37Ev,
  (VTBL_ENTRY)&_ZN6S219C63v38Ev,
  (VTBL_ENTRY)&_ZN6S219C63v39Ev,
  (VTBL_ENTRY)&_ZN6S219C63v40Ev,
  (VTBL_ENTRY)&_ZN6S219C63v41Ev,
  (VTBL_ENTRY)&_ZN6S219C63v42Ev,
  (VTBL_ENTRY)&_ZN6S219C63v43Ev,
  (VTBL_ENTRY)&_ZN6S219C63v44Ev,
  (VTBL_ENTRY)&_ZN6S219C63v45Ev,
  (VTBL_ENTRY)&_ZN6S219C63v46Ev,
  (VTBL_ENTRY)&_ZN6S219C63v47Ev,
  (VTBL_ENTRY)&_ZN6S219C63v48Ev,
  (VTBL_ENTRY)&_ZN6S219C63v49Ev,
  (VTBL_ENTRY)&_ZN6S219C63v50Ev,
  (VTBL_ENTRY)&_ZN6S219C63v51Ev,
  (VTBL_ENTRY)&_ZN6S219C63v52Ev,
  (VTBL_ENTRY)&_ZN6S219C63v53Ev,
  (VTBL_ENTRY)&_ZN6S219C63v54Ev,
  (VTBL_ENTRY)&_ZN6S219C63v55Ev,
  (VTBL_ENTRY)&_ZN6S219C63v56Ev,
  (VTBL_ENTRY)&_ZN6S219C63v57Ev,
  (VTBL_ENTRY)&_ZN6S219C63v58Ev,
  (VTBL_ENTRY)&_ZN6S219C63v59Ev,
  (VTBL_ENTRY)&_ZN6S219C63v60Ev,
  (VTBL_ENTRY)&_ZN6S219C63v61Ev,
  (VTBL_ENTRY)&_ZN6S219C63v62Ev,
  (VTBL_ENTRY)&_ZN6S219C63v63Ev,
  (VTBL_ENTRY)&_ZN6S219C63v64Ev,
  (VTBL_ENTRY)&_ZN6S219C63v65Ev,
  (VTBL_ENTRY)&_ZN6S219C63v66Ev,
  (VTBL_ENTRY)&_ZN6S219C63v67Ev,
  (VTBL_ENTRY)&_ZN6S219C53v68Ev,
  (VTBL_ENTRY)&_ZN6S219C53v69Ev,
};
extern VTBL_ENTRY _ZTI6S219C5[];
extern  VTBL_ENTRY _ZTV6S219C5[];
Class_Descriptor cd_S219C5 = {  "S219C5", // class name
  bases_S219C5, 1,
  &(vtc_S219C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S219C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S219C5),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S219C4  : S219C5 {
  ::S80C9_nt s219c4f0;
  int s219c4f1;
  unsigned int s219c4f2:1;
  unsigned int s219c4f3:1;
  unsigned int s219c4f4:1;
  unsigned int s219c4f5:1;
  ::S85C35 s219c4f6;
  ::S85C22_nt s219c4f7;
  void *s219c4f8;
  ::S80C31 s219c4f9;
  ::S80C31 s219c4f10;
  ::S80C29 s219c4f11;
  ::S80C19 s219c4f12;
  char s219c4f13;
  int s219c4f14;
  void *s219c4f15;
  ::S85C27_nt s219c4f16;
  ::S85C27_nt s219c4f17;
  ::S85C27_nt s219c4f18;
  ::S85C27_nt s219c4f19;
  ::S85C27_nt s219c4f20;
  ::S85C27_nt s219c4f21;
  ::S80C21_nt s219c4f22;
  ::S80C21_nt s219c4f23;
  ::S80C21_nt s219c4f24;
  ::S80C21_nt s219c4f25;
  ::S80C21_nt s219c4f26;
  ::S80C21_nt s219c4f27;
  ::S80C21_nt s219c4f28;
  ::S80C21_nt s219c4f29;
  ::S80C21_nt s219c4f30;
  ::S80C21_nt s219c4f31;
  virtual  ~S219C4(); // _ZN6S219C4D1Ev
  virtual void  v70(); // _ZN6S219C43v70Ev
  virtual void  v71(); // _ZN6S219C43v71Ev
  virtual void  v72(); // _ZN6S219C43v72Ev
  virtual void  v73(); // _ZN6S219C43v73Ev
  virtual void  v74(); // _ZN6S219C43v74Ev
  virtual void  v75(); // _ZN6S219C43v75Ev
  virtual void  v76(); // _ZN6S219C43v76Ev
  virtual void  v77(); // _ZN6S219C43v77Ev
  virtual void  v78(); // _ZN6S219C43v78Ev
  virtual void  v79(); // _ZN6S219C43v79Ev
  virtual void  v80(); // _ZN6S219C43v80Ev
  virtual void  v81(); // _ZN6S219C43v81Ev
  virtual void  v82(); // _ZN6S219C43v82Ev
  virtual void  v83(); // _ZN6S219C43v83Ev
  virtual void  v84(); // _ZN6S219C43v84Ev
  virtual void  v85(); // _ZN6S219C43v85Ev
  virtual void  v86(); // _ZN6S219C43v86Ev
  virtual void  v87(); // _ZN6S219C43v87Ev
  virtual void  v88(); // _ZN6S219C43v88Ev
  virtual void  v89(); // _ZN6S219C43v89Ev
  virtual void  v90(); // _ZN6S219C43v90Ev
  virtual void  v91(); // _ZN6S219C43v91Ev
  virtual void  v92(); // _ZN6S219C43v92Ev
  virtual void  v93(); // _ZN6S219C43v93Ev
  virtual void  v94(); // _ZN6S219C43v94Ev
  virtual void  v95(); // _ZN6S219C43v95Ev
  virtual void  v96(); // _ZN6S219C43v96Ev
  virtual void  v97(); // _ZN6S219C43v97Ev
  virtual void  v98(); // _ZN6S219C43v98Ev
  virtual void  v99(); // _ZN6S219C43v99Ev
  virtual void  v100(); // _ZN6S219C44v100Ev
  virtual void  v101(); // _ZN6S219C44v101Ev
  virtual void  v102(); // _ZN6S219C44v102Ev
  virtual void  v103(); // _ZN6S219C44v103Ev
  virtual void  v104(); // _ZN6S219C44v104Ev
  virtual void  v105(); // _ZN6S219C44v105Ev
  virtual void  v106(); // _ZN6S219C44v106Ev
  virtual void  v107(); // _ZN6S219C44v107Ev
  virtual void  v108(); // _ZN6S219C44v108Ev
  virtual void  v109(); // _ZN6S219C44v109Ev
  virtual void  v110(); // _ZN6S219C44v110Ev
  virtual void  v111(); // _ZN6S219C44v111Ev
  virtual void  v112(); // _ZN6S219C44v112Ev
  virtual void  v113(); // _ZN6S219C44v113Ev
  virtual void  v114(); // _ZN6S219C44v114Ev
  virtual void  v115(); // _ZN6S219C44v115Ev
  virtual void  v116(); // _ZN6S219C44v116Ev
  virtual void  v117(); // _ZN6S219C44v117Ev
  virtual void  v118(); // _ZN6S219C44v118Ev
  virtual void  v119(); // _ZN6S219C44v119Ev
  virtual void  v120(); // _ZN6S219C44v120Ev
  virtual void  v121(); // _ZN6S219C44v121Ev
  virtual void  v122(); // _ZN6S219C44v122Ev
  virtual void  v123(); // _ZN6S219C44v123Ev
  virtual void  v124(); // _ZN6S219C44v124Ev
  virtual void  v125(); // _ZN6S219C44v125Ev
  virtual void  v126(); // _ZN6S219C44v126Ev
  virtual void  v127(); // _ZN6S219C44v127Ev
  virtual void  v128(); // _ZN6S219C44v128Ev
  virtual void  v129(); // _ZN6S219C44v129Ev
  virtual void  v130(); // _ZN6S219C44v130Ev
  virtual void  v131(); // _ZN6S219C44v131Ev
  virtual void  v132(); // _ZN6S219C44v132Ev
  virtual void  v133(); // _ZN6S219C44v133Ev
  virtual void  v134(); // _ZN6S219C44v134Ev
  virtual void  v135(); // _ZN6S219C44v135Ev
  virtual void  v136(); // _ZN6S219C44v136Ev
  virtual void  v137(); // _ZN6S219C44v137Ev
  virtual void  v138(); // _ZN6S219C44v138Ev
  virtual void  v139(); // _ZN6S219C44v139Ev
  virtual void  v140(); // _ZN6S219C44v140Ev
  virtual void  v141(); // _ZN6S219C44v141Ev
  virtual void  v142(); // _ZN6S219C44v142Ev
  virtual void  v143(); // _ZN6S219C44v143Ev
  virtual void  v144(); // _ZN6S219C44v144Ev
  virtual void  v145(); // _ZN6S219C44v145Ev
  S219C4(); // tgen
};
//SIG(-1 S219C4) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S219C4 ::~S219C4(){ note_dtor("S219C4", this);}
void  S219C4 ::v70(){vfunc_called(this, "_ZN6S219C43v70Ev");}
void  S219C4 ::v71(){vfunc_called(this, "_ZN6S219C43v71Ev");}
void  S219C4 ::v72(){vfunc_called(this, "_ZN6S219C43v72Ev");}
void  S219C4 ::v73(){vfunc_called(this, "_ZN6S219C43v73Ev");}
void  S219C4 ::v74(){vfunc_called(this, "_ZN6S219C43v74Ev");}
void  S219C4 ::v75(){vfunc_called(this, "_ZN6S219C43v75Ev");}
void  S219C4 ::v76(){vfunc_called(this, "_ZN6S219C43v76Ev");}
void  S219C4 ::v77(){vfunc_called(this, "_ZN6S219C43v77Ev");}
void  S219C4 ::v78(){vfunc_called(this, "_ZN6S219C43v78Ev");}
void  S219C4 ::v79(){vfunc_called(this, "_ZN6S219C43v79Ev");}
void  S219C4 ::v80(){vfunc_called(this, "_ZN6S219C43v80Ev");}
void  S219C4 ::v81(){vfunc_called(this, "_ZN6S219C43v81Ev");}
void  S219C4 ::v82(){vfunc_called(this, "_ZN6S219C43v82Ev");}
void  S219C4 ::v83(){vfunc_called(this, "_ZN6S219C43v83Ev");}
void  S219C4 ::v84(){vfunc_called(this, "_ZN6S219C43v84Ev");}
void  S219C4 ::v85(){vfunc_called(this, "_ZN6S219C43v85Ev");}
void  S219C4 ::v86(){vfunc_called(this, "_ZN6S219C43v86Ev");}
void  S219C4 ::v87(){vfunc_called(this, "_ZN6S219C43v87Ev");}
void  S219C4 ::v88(){vfunc_called(this, "_ZN6S219C43v88Ev");}
void  S219C4 ::v89(){vfunc_called(this, "_ZN6S219C43v89Ev");}
void  S219C4 ::v90(){vfunc_called(this, "_ZN6S219C43v90Ev");}
void  S219C4 ::v91(){vfunc_called(this, "_ZN6S219C43v91Ev");}
void  S219C4 ::v92(){vfunc_called(this, "_ZN6S219C43v92Ev");}
void  S219C4 ::v93(){vfunc_called(this, "_ZN6S219C43v93Ev");}
void  S219C4 ::v94(){vfunc_called(this, "_ZN6S219C43v94Ev");}
void  S219C4 ::v95(){vfunc_called(this, "_ZN6S219C43v95Ev");}
void  S219C4 ::v96(){vfunc_called(this, "_ZN6S219C43v96Ev");}
void  S219C4 ::v97(){vfunc_called(this, "_ZN6S219C43v97Ev");}
void  S219C4 ::v98(){vfunc_called(this, "_ZN6S219C43v98Ev");}
void  S219C4 ::v99(){vfunc_called(this, "_ZN6S219C43v99Ev");}
void  S219C4 ::v100(){vfunc_called(this, "_ZN6S219C44v100Ev");}
void  S219C4 ::v101(){vfunc_called(this, "_ZN6S219C44v101Ev");}
void  S219C4 ::v102(){vfunc_called(this, "_ZN6S219C44v102Ev");}
void  S219C4 ::v103(){vfunc_called(this, "_ZN6S219C44v103Ev");}
void  S219C4 ::v104(){vfunc_called(this, "_ZN6S219C44v104Ev");}
void  S219C4 ::v105(){vfunc_called(this, "_ZN6S219C44v105Ev");}
void  S219C4 ::v106(){vfunc_called(this, "_ZN6S219C44v106Ev");}
void  S219C4 ::v107(){vfunc_called(this, "_ZN6S219C44v107Ev");}
void  S219C4 ::v108(){vfunc_called(this, "_ZN6S219C44v108Ev");}
void  S219C4 ::v109(){vfunc_called(this, "_ZN6S219C44v109Ev");}
void  S219C4 ::v110(){vfunc_called(this, "_ZN6S219C44v110Ev");}
void  S219C4 ::v111(){vfunc_called(this, "_ZN6S219C44v111Ev");}
void  S219C4 ::v112(){vfunc_called(this, "_ZN6S219C44v112Ev");}
void  S219C4 ::v113(){vfunc_called(this, "_ZN6S219C44v113Ev");}
void  S219C4 ::v114(){vfunc_called(this, "_ZN6S219C44v114Ev");}
void  S219C4 ::v115(){vfunc_called(this, "_ZN6S219C44v115Ev");}
void  S219C4 ::v116(){vfunc_called(this, "_ZN6S219C44v116Ev");}
void  S219C4 ::v117(){vfunc_called(this, "_ZN6S219C44v117Ev");}
void  S219C4 ::v118(){vfunc_called(this, "_ZN6S219C44v118Ev");}
void  S219C4 ::v119(){vfunc_called(this, "_ZN6S219C44v119Ev");}
void  S219C4 ::v120(){vfunc_called(this, "_ZN6S219C44v120Ev");}
void  S219C4 ::v121(){vfunc_called(this, "_ZN6S219C44v121Ev");}
void  S219C4 ::v122(){vfunc_called(this, "_ZN6S219C44v122Ev");}
void  S219C4 ::v123(){vfunc_called(this, "_ZN6S219C44v123Ev");}
void  S219C4 ::v124(){vfunc_called(this, "_ZN6S219C44v124Ev");}
void  S219C4 ::v125(){vfunc_called(this, "_ZN6S219C44v125Ev");}
void  S219C4 ::v126(){vfunc_called(this, "_ZN6S219C44v126Ev");}
void  S219C4 ::v127(){vfunc_called(this, "_ZN6S219C44v127Ev");}
void  S219C4 ::v128(){vfunc_called(this, "_ZN6S219C44v128Ev");}
void  S219C4 ::v129(){vfunc_called(this, "_ZN6S219C44v129Ev");}
void  S219C4 ::v130(){vfunc_called(this, "_ZN6S219C44v130Ev");}
void  S219C4 ::v131(){vfunc_called(this, "_ZN6S219C44v131Ev");}
void  S219C4 ::v132(){vfunc_called(this, "_ZN6S219C44v132Ev");}
void  S219C4 ::v133(){vfunc_called(this, "_ZN6S219C44v133Ev");}
void  S219C4 ::v134(){vfunc_called(this, "_ZN6S219C44v134Ev");}
void  S219C4 ::v135(){vfunc_called(this, "_ZN6S219C44v135Ev");}
void  S219C4 ::v136(){vfunc_called(this, "_ZN6S219C44v136Ev");}
void  S219C4 ::v137(){vfunc_called(this, "_ZN6S219C44v137Ev");}
void  S219C4 ::v138(){vfunc_called(this, "_ZN6S219C44v138Ev");}
void  S219C4 ::v139(){vfunc_called(this, "_ZN6S219C44v139Ev");}
void  S219C4 ::v140(){vfunc_called(this, "_ZN6S219C44v140Ev");}
void  S219C4 ::v141(){vfunc_called(this, "_ZN6S219C44v141Ev");}
void  S219C4 ::v142(){vfunc_called(this, "_ZN6S219C44v142Ev");}
void  S219C4 ::v143(){vfunc_called(this, "_ZN6S219C44v143Ev");}
void  S219C4 ::v144(){vfunc_called(this, "_ZN6S219C44v144Ev");}
void  S219C4 ::v145(){vfunc_called(this, "_ZN6S219C44v145Ev");}
S219C4 ::S219C4(){ note_ctor("S219C4", this);} // tgen

static void Test_S219C4()
{
  extern Class_Descriptor cd_S219C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S219C4, buf);
    S219C4 *dp, &lv = *(dp=new (buf) S219C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S219C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S219C4)");
    check_base_class_offset(lv, (S219C6*)(S219C5*), 0, "S219C4");
    check_base_class_offset(lv, (S219C5*), 0, "S219C4");
    check_field_offset(lv, s219c4f0, ABISELECT(96,60), "S219C4.s219c4f0");
    check_field_offset(lv, s219c4f1, ABISELECT(124,88), "S219C4.s219c4f1");
    set_bf_and_test(lv, s219c4f2, ABISELECT(128,92), 0, 1, 1, "S219C4");
    set_bf_and_test(lv, s219c4f3, ABISELECT(128,92), 1, 1, 1, "S219C4");
    set_bf_and_test(lv, s219c4f4, ABISELECT(128,92), 2, 1, 1, "S219C4");
    set_bf_and_test(lv, s219c4f5, ABISELECT(128,92), 3, 1, 1, "S219C4");
    check_field_offset(lv, s219c4f6, ABISELECT(136,96), "S219C4.s219c4f6");
    check_field_offset(lv, s219c4f7, ABISELECT(152,108), "S219C4.s219c4f7");
    check_field_offset(lv, s219c4f8, ABISELECT(168,120), "S219C4.s219c4f8");
    check_field_offset(lv, s219c4f9, ABISELECT(176,124), "S219C4.s219c4f9");
    check_field_offset(lv, s219c4f10, ABISELECT(192,136), "S219C4.s219c4f10");
    check_field_offset(lv, s219c4f11, ABISELECT(208,148), "S219C4.s219c4f11");
    check_field_offset(lv, s219c4f12, ABISELECT(224,160), "S219C4.s219c4f12");
    check_field_offset(lv, s219c4f13, ABISELECT(240,172), "S219C4.s219c4f13");
    check_field_offset(lv, s219c4f14, ABISELECT(244,176), "S219C4.s219c4f14");
    check_field_offset(lv, s219c4f15, ABISELECT(248,180), "S219C4.s219c4f15");
    check_field_offset(lv, s219c4f16, ABISELECT(256,184), "S219C4.s219c4f16");
    check_field_offset(lv, s219c4f17, ABISELECT(264,192), "S219C4.s219c4f17");
    check_field_offset(lv, s219c4f18, ABISELECT(272,200), "S219C4.s219c4f18");
    check_field_offset(lv, s219c4f19, ABISELECT(280,208), "S219C4.s219c4f19");
    check_field_offset(lv, s219c4f20, ABISELECT(288,216), "S219C4.s219c4f20");
    check_field_offset(lv, s219c4f21, ABISELECT(296,224), "S219C4.s219c4f21");
    check_field_offset(lv, s219c4f22, ABISELECT(304,232), "S219C4.s219c4f22");
    check_field_offset(lv, s219c4f23, ABISELECT(320,244), "S219C4.s219c4f23");
    check_field_offset(lv, s219c4f24, ABISELECT(336,256), "S219C4.s219c4f24");
    check_field_offset(lv, s219c4f25, ABISELECT(352,268), "S219C4.s219c4f25");
    check_field_offset(lv, s219c4f26, ABISELECT(368,280), "S219C4.s219c4f26");
    check_field_offset(lv, s219c4f27, ABISELECT(384,292), "S219C4.s219c4f27");
    check_field_offset(lv, s219c4f28, ABISELECT(400,304), "S219C4.s219c4f28");
    check_field_offset(lv, s219c4f29, ABISELECT(416,316), "S219C4.s219c4f29");
    check_field_offset(lv, s219c4f30, ABISELECT(432,328), "S219C4.s219c4f30");
    check_field_offset(lv, s219c4f31, ABISELECT(448,340), "S219C4.s219c4f31");
    test_class_info(&lv, &cd_S219C4);
    dp->~S219C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS219C4(Test_S219C4, "S219C4", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S219C4C1Ev();
extern void _ZN6S219C4D1Ev();
Name_Map name_map_S219C4[] = {
  NSPAIR(_ZN6S219C4C1Ev),
  NSPAIR(_ZN6S219C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S219C6;
extern VTBL_ENTRY _ZTI6S219C6[];
extern  VTBL_ENTRY _ZTV6S219C6[];
extern Class_Descriptor cd_S219C5;
extern VTBL_ENTRY _ZTI6S219C5[];
extern  VTBL_ENTRY _ZTV6S219C5[];
static Base_Class bases_S219C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S219C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S219C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S219C4[];
extern void _ZN6S219C4D1Ev();
extern void _ZN6S219C4D0Ev();
extern void _ZN6S219C62v4Ev();
extern void _ZN6S219C62v5Ev();
extern void _ZN6S219C62v6Ev();
extern void _ZN6S219C62v7Ev();
extern void _ZN6S219C62v8Ev();
extern void _ZN6S219C62v9Ev();
extern void _ZN6S219C63v10Ev();
extern void _ZN6S219C63v11Ev();
extern void _ZN6S219C63v12Ev();
extern void _ZN6S219C63v13Ev();
extern void _ZN6S219C63v14Ev();
extern void _ZN6S219C63v15Ev();
extern void _ZN6S219C63v16Ev();
extern void _ZN6S219C63v17Ev();
extern void _ZN6S219C63v18Ev();
extern void _ZN6S219C63v19Ev();
extern void _ZN6S219C63v20Ev();
extern void _ZN6S219C63v21Ev();
extern void _ZN6S219C63v22Ev();
extern void _ZN6S219C63v23Ev();
extern void _ZN6S219C63v24Ev();
extern void _ZN6S219C63v25Ev();
extern void _ZN6S219C63v26Ev();
extern void _ZN6S219C63v27Ev();
extern void _ZN6S219C63v28Ev();
extern void _ZN6S219C63v29Ev();
extern void _ZN6S219C63v30Ev();
extern void _ZN6S219C63v31Ev();
extern void _ZN6S219C63v32Ev();
extern void _ZN6S219C63v33Ev();
extern void _ZN6S219C63v34Ev();
extern void _ZN6S219C63v35Ev();
extern void _ZN6S219C63v36Ev();
extern void _ZN6S219C63v37Ev();
extern void _ZN6S219C63v38Ev();
extern void _ZN6S219C63v39Ev();
extern void _ZN6S219C63v40Ev();
extern void _ZN6S219C63v41Ev();
extern void _ZN6S219C63v42Ev();
extern void _ZN6S219C63v43Ev();
extern void _ZN6S219C63v44Ev();
extern void _ZN6S219C63v45Ev();
extern void _ZN6S219C63v46Ev();
extern void _ZN6S219C63v47Ev();
extern void _ZN6S219C63v48Ev();
extern void _ZN6S219C63v49Ev();
extern void _ZN6S219C63v50Ev();
extern void _ZN6S219C63v51Ev();
extern void _ZN6S219C63v52Ev();
extern void _ZN6S219C63v53Ev();
extern void _ZN6S219C63v54Ev();
extern void _ZN6S219C63v55Ev();
extern void _ZN6S219C63v56Ev();
extern void _ZN6S219C63v57Ev();
extern void _ZN6S219C63v58Ev();
extern void _ZN6S219C63v59Ev();
extern void _ZN6S219C63v60Ev();
extern void _ZN6S219C63v61Ev();
extern void _ZN6S219C63v62Ev();
extern void _ZN6S219C63v63Ev();
extern void _ZN6S219C63v64Ev();
extern void _ZN6S219C63v65Ev();
extern void _ZN6S219C63v66Ev();
extern void _ZN6S219C63v67Ev();
extern void _ZN6S219C53v68Ev();
extern void _ZN6S219C53v69Ev();
extern void _ZN6S219C43v70Ev();
extern void _ZN6S219C43v71Ev();
extern void _ZN6S219C43v72Ev();
extern void _ZN6S219C43v73Ev();
extern void _ZN6S219C43v74Ev();
extern void _ZN6S219C43v75Ev();
extern void _ZN6S219C43v76Ev();
extern void _ZN6S219C43v77Ev();
extern void _ZN6S219C43v78Ev();
extern void _ZN6S219C43v79Ev();
extern void _ZN6S219C43v80Ev();
extern void _ZN6S219C43v81Ev();
extern void _ZN6S219C43v82Ev();
extern void _ZN6S219C43v83Ev();
extern void _ZN6S219C43v84Ev();
extern void _ZN6S219C43v85Ev();
extern void _ZN6S219C43v86Ev();
extern void _ZN6S219C43v87Ev();
extern void _ZN6S219C43v88Ev();
extern void _ZN6S219C43v89Ev();
extern void _ZN6S219C43v90Ev();
extern void _ZN6S219C43v91Ev();
extern void _ZN6S219C43v92Ev();
extern void _ZN6S219C43v93Ev();
extern void _ZN6S219C43v94Ev();
extern void _ZN6S219C43v95Ev();
extern void _ZN6S219C43v96Ev();
extern void _ZN6S219C43v97Ev();
extern void _ZN6S219C43v98Ev();
extern void _ZN6S219C43v99Ev();
extern void _ZN6S219C44v100Ev();
extern void _ZN6S219C44v101Ev();
extern void _ZN6S219C44v102Ev();
extern void _ZN6S219C44v103Ev();
extern void _ZN6S219C44v104Ev();
extern void _ZN6S219C44v105Ev();
extern void _ZN6S219C44v106Ev();
extern void _ZN6S219C44v107Ev();
extern void _ZN6S219C44v108Ev();
extern void _ZN6S219C44v109Ev();
extern void _ZN6S219C44v110Ev();
extern void _ZN6S219C44v111Ev();
extern void _ZN6S219C44v112Ev();
extern void _ZN6S219C44v113Ev();
extern void _ZN6S219C44v114Ev();
extern void _ZN6S219C44v115Ev();
extern void _ZN6S219C44v116Ev();
extern void _ZN6S219C44v117Ev();
extern void _ZN6S219C44v118Ev();
extern void _ZN6S219C44v119Ev();
extern void _ZN6S219C44v120Ev();
extern void _ZN6S219C44v121Ev();
extern void _ZN6S219C44v122Ev();
extern void _ZN6S219C44v123Ev();
extern void _ZN6S219C44v124Ev();
extern void _ZN6S219C44v125Ev();
extern void _ZN6S219C44v126Ev();
extern void _ZN6S219C44v127Ev();
extern void _ZN6S219C44v128Ev();
extern void _ZN6S219C44v129Ev();
extern void _ZN6S219C44v130Ev();
extern void _ZN6S219C44v131Ev();
extern void _ZN6S219C44v132Ev();
extern void _ZN6S219C44v133Ev();
extern void _ZN6S219C44v134Ev();
extern void _ZN6S219C44v135Ev();
extern void _ZN6S219C44v136Ev();
extern void _ZN6S219C44v137Ev();
extern void _ZN6S219C44v138Ev();
extern void _ZN6S219C44v139Ev();
extern void _ZN6S219C44v140Ev();
extern void _ZN6S219C44v141Ev();
extern void _ZN6S219C44v142Ev();
extern void _ZN6S219C44v143Ev();
extern void _ZN6S219C44v144Ev();
extern void _ZN6S219C44v145Ev();
static  VTBL_ENTRY vtc_S219C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S219C4[0]),
  (VTBL_ENTRY)&_ZN6S219C4D1Ev,
  (VTBL_ENTRY)&_ZN6S219C4D0Ev,
  (VTBL_ENTRY)&_ZN6S219C62v4Ev,
  (VTBL_ENTRY)&_ZN6S219C62v5Ev,
  (VTBL_ENTRY)&_ZN6S219C62v6Ev,
  (VTBL_ENTRY)&_ZN6S219C62v7Ev,
  (VTBL_ENTRY)&_ZN6S219C62v8Ev,
  (VTBL_ENTRY)&_ZN6S219C62v9Ev,
  (VTBL_ENTRY)&_ZN6S219C63v10Ev,
  (VTBL_ENTRY)&_ZN6S219C63v11Ev,
  (VTBL_ENTRY)&_ZN6S219C63v12Ev,
  (VTBL_ENTRY)&_ZN6S219C63v13Ev,
  (VTBL_ENTRY)&_ZN6S219C63v14Ev,
  (VTBL_ENTRY)&_ZN6S219C63v15Ev,
  (VTBL_ENTRY)&_ZN6S219C63v16Ev,
  (VTBL_ENTRY)&_ZN6S219C63v17Ev,
  (VTBL_ENTRY)&_ZN6S219C63v18Ev,
  (VTBL_ENTRY)&_ZN6S219C63v19Ev,
  (VTBL_ENTRY)&_ZN6S219C63v20Ev,
  (VTBL_ENTRY)&_ZN6S219C63v21Ev,
  (VTBL_ENTRY)&_ZN6S219C63v22Ev,
  (VTBL_ENTRY)&_ZN6S219C63v23Ev,
  (VTBL_ENTRY)&_ZN6S219C63v24Ev,
  (VTBL_ENTRY)&_ZN6S219C63v25Ev,
  (VTBL_ENTRY)&_ZN6S219C63v26Ev,
  (VTBL_ENTRY)&_ZN6S219C63v27Ev,
  (VTBL_ENTRY)&_ZN6S219C63v28Ev,
  (VTBL_ENTRY)&_ZN6S219C63v29Ev,
  (VTBL_ENTRY)&_ZN6S219C63v30Ev,
  (VTBL_ENTRY)&_ZN6S219C63v31Ev,
  (VTBL_ENTRY)&_ZN6S219C63v32Ev,
  (VTBL_ENTRY)&_ZN6S219C63v33Ev,
  (VTBL_ENTRY)&_ZN6S219C63v34Ev,
  (VTBL_ENTRY)&_ZN6S219C63v35Ev,
  (VTBL_ENTRY)&_ZN6S219C63v36Ev,
  (VTBL_ENTRY)&_ZN6S219C63v37Ev,
  (VTBL_ENTRY)&_ZN6S219C63v38Ev,
  (VTBL_ENTRY)&_ZN6S219C63v39Ev,
  (VTBL_ENTRY)&_ZN6S219C63v40Ev,
  (VTBL_ENTRY)&_ZN6S219C63v41Ev,
  (VTBL_ENTRY)&_ZN6S219C63v42Ev,
  (VTBL_ENTRY)&_ZN6S219C63v43Ev,
  (VTBL_ENTRY)&_ZN6S219C63v44Ev,
  (VTBL_ENTRY)&_ZN6S219C63v45Ev,
  (VTBL_ENTRY)&_ZN6S219C63v46Ev,
  (VTBL_ENTRY)&_ZN6S219C63v47Ev,
  (VTBL_ENTRY)&_ZN6S219C63v48Ev,
  (VTBL_ENTRY)&_ZN6S219C63v49Ev,
  (VTBL_ENTRY)&_ZN6S219C63v50Ev,
  (VTBL_ENTRY)&_ZN6S219C63v51Ev,
  (VTBL_ENTRY)&_ZN6S219C63v52Ev,
  (VTBL_ENTRY)&_ZN6S219C63v53Ev,
  (VTBL_ENTRY)&_ZN6S219C63v54Ev,
  (VTBL_ENTRY)&_ZN6S219C63v55Ev,
  (VTBL_ENTRY)&_ZN6S219C63v56Ev,
  (VTBL_ENTRY)&_ZN6S219C63v57Ev,
  (VTBL_ENTRY)&_ZN6S219C63v58Ev,
  (VTBL_ENTRY)&_ZN6S219C63v59Ev,
  (VTBL_ENTRY)&_ZN6S219C63v60Ev,
  (VTBL_ENTRY)&_ZN6S219C63v61Ev,
  (VTBL_ENTRY)&_ZN6S219C63v62Ev,
  (VTBL_ENTRY)&_ZN6S219C63v63Ev,
  (VTBL_ENTRY)&_ZN6S219C63v64Ev,
  (VTBL_ENTRY)&_ZN6S219C63v65Ev,
  (VTBL_ENTRY)&_ZN6S219C63v66Ev,
  (VTBL_ENTRY)&_ZN6S219C63v67Ev,
  (VTBL_ENTRY)&_ZN6S219C53v68Ev,
  (VTBL_ENTRY)&_ZN6S219C53v69Ev,
  (VTBL_ENTRY)&_ZN6S219C43v70Ev,
  (VTBL_ENTRY)&_ZN6S219C43v71Ev,
  (VTBL_ENTRY)&_ZN6S219C43v72Ev,
  (VTBL_ENTRY)&_ZN6S219C43v73Ev,
  (VTBL_ENTRY)&_ZN6S219C43v74Ev,
  (VTBL_ENTRY)&_ZN6S219C43v75Ev,
  (VTBL_ENTRY)&_ZN6S219C43v76Ev,
  (VTBL_ENTRY)&_ZN6S219C43v77Ev,
  (VTBL_ENTRY)&_ZN6S219C43v78Ev,
  (VTBL_ENTRY)&_ZN6S219C43v79Ev,
  (VTBL_ENTRY)&_ZN6S219C43v80Ev,
  (VTBL_ENTRY)&_ZN6S219C43v81Ev,
  (VTBL_ENTRY)&_ZN6S219C43v82Ev,
  (VTBL_ENTRY)&_ZN6S219C43v83Ev,
  (VTBL_ENTRY)&_ZN6S219C43v84Ev,
  (VTBL_ENTRY)&_ZN6S219C43v85Ev,
  (VTBL_ENTRY)&_ZN6S219C43v86Ev,
  (VTBL_ENTRY)&_ZN6S219C43v87Ev,
  (VTBL_ENTRY)&_ZN6S219C43v88Ev,
  (VTBL_ENTRY)&_ZN6S219C43v89Ev,
  (VTBL_ENTRY)&_ZN6S219C43v90Ev,
  (VTBL_ENTRY)&_ZN6S219C43v91Ev,
  (VTBL_ENTRY)&_ZN6S219C43v92Ev,
  (VTBL_ENTRY)&_ZN6S219C43v93Ev,
  (VTBL_ENTRY)&_ZN6S219C43v94Ev,
  (VTBL_ENTRY)&_ZN6S219C43v95Ev,
  (VTBL_ENTRY)&_ZN6S219C43v96Ev,
  (VTBL_ENTRY)&_ZN6S219C43v97Ev,
  (VTBL_ENTRY)&_ZN6S219C43v98Ev,
  (VTBL_ENTRY)&_ZN6S219C43v99Ev,
  (VTBL_ENTRY)&_ZN6S219C44v100Ev,
  (VTBL_ENTRY)&_ZN6S219C44v101Ev,
  (VTBL_ENTRY)&_ZN6S219C44v102Ev,
  (VTBL_ENTRY)&_ZN6S219C44v103Ev,
  (VTBL_ENTRY)&_ZN6S219C44v104Ev,
  (VTBL_ENTRY)&_ZN6S219C44v105Ev,
  (VTBL_ENTRY)&_ZN6S219C44v106Ev,
  (VTBL_ENTRY)&_ZN6S219C44v107Ev,
  (VTBL_ENTRY)&_ZN6S219C44v108Ev,
  (VTBL_ENTRY)&_ZN6S219C44v109Ev,
  (VTBL_ENTRY)&_ZN6S219C44v110Ev,
  (VTBL_ENTRY)&_ZN6S219C44v111Ev,
  (VTBL_ENTRY)&_ZN6S219C44v112Ev,
  (VTBL_ENTRY)&_ZN6S219C44v113Ev,
  (VTBL_ENTRY)&_ZN6S219C44v114Ev,
  (VTBL_ENTRY)&_ZN6S219C44v115Ev,
  (VTBL_ENTRY)&_ZN6S219C44v116Ev,
  (VTBL_ENTRY)&_ZN6S219C44v117Ev,
  (VTBL_ENTRY)&_ZN6S219C44v118Ev,
  (VTBL_ENTRY)&_ZN6S219C44v119Ev,
  (VTBL_ENTRY)&_ZN6S219C44v120Ev,
  (VTBL_ENTRY)&_ZN6S219C44v121Ev,
  (VTBL_ENTRY)&_ZN6S219C44v122Ev,
  (VTBL_ENTRY)&_ZN6S219C44v123Ev,
  (VTBL_ENTRY)&_ZN6S219C44v124Ev,
  (VTBL_ENTRY)&_ZN6S219C44v125Ev,
  (VTBL_ENTRY)&_ZN6S219C44v126Ev,
  (VTBL_ENTRY)&_ZN6S219C44v127Ev,
  (VTBL_ENTRY)&_ZN6S219C44v128Ev,
  (VTBL_ENTRY)&_ZN6S219C44v129Ev,
  (VTBL_ENTRY)&_ZN6S219C44v130Ev,
  (VTBL_ENTRY)&_ZN6S219C44v131Ev,
  (VTBL_ENTRY)&_ZN6S219C44v132Ev,
  (VTBL_ENTRY)&_ZN6S219C44v133Ev,
  (VTBL_ENTRY)&_ZN6S219C44v134Ev,
  (VTBL_ENTRY)&_ZN6S219C44v135Ev,
  (VTBL_ENTRY)&_ZN6S219C44v136Ev,
  (VTBL_ENTRY)&_ZN6S219C44v137Ev,
  (VTBL_ENTRY)&_ZN6S219C44v138Ev,
  (VTBL_ENTRY)&_ZN6S219C44v139Ev,
  (VTBL_ENTRY)&_ZN6S219C44v140Ev,
  (VTBL_ENTRY)&_ZN6S219C44v141Ev,
  (VTBL_ENTRY)&_ZN6S219C44v142Ev,
  (VTBL_ENTRY)&_ZN6S219C44v143Ev,
  (VTBL_ENTRY)&_ZN6S219C44v144Ev,
  (VTBL_ENTRY)&_ZN6S219C44v145Ev,
};
extern VTBL_ENTRY _ZTI6S219C4[];
extern  VTBL_ENTRY _ZTV6S219C4[];
Class_Descriptor cd_S219C4 = {  "S219C4", // class name
  bases_S219C4, 2,
  &(vtc_S219C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S219C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S219C4),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S219C3  : S219C4 {
  ::S85C27_nt s219c3f0;
  void *s219c3f1[9];
  ::S80C15 s219c3f2;
  ::S85C35 s219c3f3;
  ::S80C24 s219c3f4;
  int s219c3f5;
  unsigned int s219c3f6:1;
  unsigned int s219c3f7:1;
  unsigned int s219c3f8:1;
  unsigned int s219c3f9:1;
  unsigned int s219c3f10:1;
  unsigned int s219c3f11:1;
  unsigned int s219c3f12:1;
  unsigned int s219c3f13:1;
  unsigned int s219c3f14:1;
  unsigned int s219c3f15:1;
  unsigned int s219c3f16:1;
  unsigned int s219c3f17:1;
  unsigned int s219c3f18:1;
  unsigned int s219c3f19:1;
  unsigned int s219c3f20:1;
  unsigned int s219c3f21:1;
  unsigned int s219c3f22:1;
  unsigned int s219c3f23:1;
  unsigned int s219c3f24:1;
  unsigned int s219c3f25:1;
  unsigned int s219c3f26:1;
  unsigned int s219c3f27:1;
  void *s219c3f28;
  char s219c3f29[2];
  ::S80C8_nt s219c3f30;
  ::S85C27_nt s219c3f31;
  ::S85C27_nt s219c3f32;
  void *s219c3f33;
  ::S80C21_nt s219c3f34;
  ::S80C21_nt s219c3f35;
  ::S80C21_nt s219c3f36;
  ::S80C21_nt s219c3f37;
  ::S80C21_nt s219c3f38;
  virtual  ~S219C3(); // _ZN6S219C3D1Ev
  virtual void  v146(); // _ZN6S219C34v146Ev
  virtual void  v147(); // _ZN6S219C34v147Ev
  virtual void  v148(); // _ZN6S219C34v148Ev
  virtual void  v149(); // _ZN6S219C34v149Ev
  virtual void  v150(); // _ZN6S219C34v150Ev
  virtual void  v151(); // _ZN6S219C34v151Ev
  virtual void  v152(); // _ZN6S219C34v152Ev
  virtual void  v153(); // _ZN6S219C34v153Ev
  virtual void  v154(); // _ZN6S219C34v154Ev
  virtual void  v155(); // _ZN6S219C34v155Ev
  virtual void  v156(); // _ZN6S219C34v156Ev
  virtual void  v157(); // _ZN6S219C34v157Ev
  virtual void  v158(); // _ZN6S219C34v158Ev
  virtual void  v159(); // _ZN6S219C34v159Ev
  virtual void  v160(); // _ZN6S219C34v160Ev
  virtual void  v161(); // _ZN6S219C34v161Ev
  virtual void  v162(); // _ZN6S219C34v162Ev
  virtual void  v163(); // _ZN6S219C34v163Ev
  virtual void  v164(); // _ZN6S219C34v164Ev
  virtual void  v165(); // _ZN6S219C34v165Ev
  virtual void  v166(); // _ZN6S219C34v166Ev
  virtual void  v167(); // _ZN6S219C34v167Ev
  virtual void  v168(); // _ZN6S219C34v168Ev
  virtual void  v169(); // _ZN6S219C34v169Ev
  virtual void  v170(); // _ZN6S219C34v170Ev
  virtual void  v171(); // _ZN6S219C34v171Ev
  virtual void  v172(); // _ZN6S219C34v172Ev
  virtual void  v173(); // _ZN6S219C34v173Ev
  virtual void  v174(); // _ZN6S219C34v174Ev
  virtual void  v175(); // _ZN6S219C34v175Ev
  virtual void  v176(); // _ZN6S219C34v176Ev
  virtual void  v177(); // _ZN6S219C34v177Ev
  virtual void  v178(); // _ZN6S219C34v178Ev
  virtual void  v179(); // _ZN6S219C34v179Ev
  virtual void  v180(); // _ZN6S219C34v180Ev
  virtual void  v181(); // _ZN6S219C34v181Ev
  virtual void  v182(); // _ZN6S219C34v182Ev
  virtual void  v183(); // _ZN6S219C34v183Ev
  virtual void  v184(); // _ZN6S219C34v184Ev
  S219C3(); // tgen
};
//SIG(-1 S219C3) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S219C3 ::~S219C3(){ note_dtor("S219C3", this);}
void  S219C3 ::v146(){vfunc_called(this, "_ZN6S219C34v146Ev");}
void  S219C3 ::v147(){vfunc_called(this, "_ZN6S219C34v147Ev");}
void  S219C3 ::v148(){vfunc_called(this, "_ZN6S219C34v148Ev");}
void  S219C3 ::v149(){vfunc_called(this, "_ZN6S219C34v149Ev");}
void  S219C3 ::v150(){vfunc_called(this, "_ZN6S219C34v150Ev");}
void  S219C3 ::v151(){vfunc_called(this, "_ZN6S219C34v151Ev");}
void  S219C3 ::v152(){vfunc_called(this, "_ZN6S219C34v152Ev");}
void  S219C3 ::v153(){vfunc_called(this, "_ZN6S219C34v153Ev");}
void  S219C3 ::v154(){vfunc_called(this, "_ZN6S219C34v154Ev");}
void  S219C3 ::v155(){vfunc_called(this, "_ZN6S219C34v155Ev");}
void  S219C3 ::v156(){vfunc_called(this, "_ZN6S219C34v156Ev");}
void  S219C3 ::v157(){vfunc_called(this, "_ZN6S219C34v157Ev");}
void  S219C3 ::v158(){vfunc_called(this, "_ZN6S219C34v158Ev");}
void  S219C3 ::v159(){vfunc_called(this, "_ZN6S219C34v159Ev");}
void  S219C3 ::v160(){vfunc_called(this, "_ZN6S219C34v160Ev");}
void  S219C3 ::v161(){vfunc_called(this, "_ZN6S219C34v161Ev");}
void  S219C3 ::v162(){vfunc_called(this, "_ZN6S219C34v162Ev");}
void  S219C3 ::v163(){vfunc_called(this, "_ZN6S219C34v163Ev");}
void  S219C3 ::v164(){vfunc_called(this, "_ZN6S219C34v164Ev");}
void  S219C3 ::v165(){vfunc_called(this, "_ZN6S219C34v165Ev");}
void  S219C3 ::v166(){vfunc_called(this, "_ZN6S219C34v166Ev");}
void  S219C3 ::v167(){vfunc_called(this, "_ZN6S219C34v167Ev");}
void  S219C3 ::v168(){vfunc_called(this, "_ZN6S219C34v168Ev");}
void  S219C3 ::v169(){vfunc_called(this, "_ZN6S219C34v169Ev");}
void  S219C3 ::v170(){vfunc_called(this, "_ZN6S219C34v170Ev");}
void  S219C3 ::v171(){vfunc_called(this, "_ZN6S219C34v171Ev");}
void  S219C3 ::v172(){vfunc_called(this, "_ZN6S219C34v172Ev");}
void  S219C3 ::v173(){vfunc_called(this, "_ZN6S219C34v173Ev");}
void  S219C3 ::v174(){vfunc_called(this, "_ZN6S219C34v174Ev");}
void  S219C3 ::v175(){vfunc_called(this, "_ZN6S219C34v175Ev");}
void  S219C3 ::v176(){vfunc_called(this, "_ZN6S219C34v176Ev");}
void  S219C3 ::v177(){vfunc_called(this, "_ZN6S219C34v177Ev");}
void  S219C3 ::v178(){vfunc_called(this, "_ZN6S219C34v178Ev");}
void  S219C3 ::v179(){vfunc_called(this, "_ZN6S219C34v179Ev");}
void  S219C3 ::v180(){vfunc_called(this, "_ZN6S219C34v180Ev");}
void  S219C3 ::v181(){vfunc_called(this, "_ZN6S219C34v181Ev");}
void  S219C3 ::v182(){vfunc_called(this, "_ZN6S219C34v182Ev");}
void  S219C3 ::v183(){vfunc_called(this, "_ZN6S219C34v183Ev");}
void  S219C3 ::v184(){vfunc_called(this, "_ZN6S219C34v184Ev");}
S219C3 ::S219C3(){ note_ctor("S219C3", this);} // tgen

static void Test_S219C3()
{
  extern Class_Descriptor cd_S219C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S219C3, buf);
    S219C3 *dp, &lv = *(dp=new (buf) S219C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S219C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S219C3)");
    check_base_class_offset(lv, (S219C6*)(S219C5*)(S219C4*), 0, "S219C3");
    check_base_class_offset(lv, (S219C5*)(S219C4*), 0, "S219C3");
    check_base_class_offset(lv, (S219C4*), 0, "S219C3");
    check_field_offset(lv, s219c3f0, ABISELECT(464,352), "S219C3.s219c3f0");
    check_field_offset(lv, s219c3f1, ABISELECT(472,360), "S219C3.s219c3f1");
    check_field_offset(lv, s219c3f2, ABISELECT(544,396), "S219C3.s219c3f2");
    check_field_offset(lv, s219c3f3, ABISELECT(560,408), "S219C3.s219c3f3");
    check_field_offset(lv, s219c3f4, ABISELECT(576,420), "S219C3.s219c3f4");
    check_field_offset(lv, s219c3f5, ABISELECT(608,440), "S219C3.s219c3f5");
    set_bf_and_test(lv, s219c3f6, ABISELECT(612,444), 0, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f7, ABISELECT(612,444), 1, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f8, ABISELECT(612,444), 2, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f9, ABISELECT(612,444), 3, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f10, ABISELECT(612,444), 4, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f11, ABISELECT(612,444), 5, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f12, ABISELECT(612,444), 6, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f13, ABISELECT(612,444), 7, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f14, ABISELECT(613,445), 0, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f15, ABISELECT(613,445), 1, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f16, ABISELECT(613,445), 2, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f17, ABISELECT(613,445), 3, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f18, ABISELECT(613,445), 4, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f19, ABISELECT(613,445), 5, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f20, ABISELECT(613,445), 6, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f21, ABISELECT(613,445), 7, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f22, ABISELECT(614,446), 0, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f23, ABISELECT(614,446), 1, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f24, ABISELECT(614,446), 2, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f25, ABISELECT(614,446), 3, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f26, ABISELECT(614,446), 4, 1, 1, "S219C3");
    set_bf_and_test(lv, s219c3f27, ABISELECT(614,446), 5, 1, 1, "S219C3");
    check_field_offset(lv, s219c3f28, ABISELECT(616,448), "S219C3.s219c3f28");
    check_field_offset(lv, s219c3f29, ABISELECT(624,452), "S219C3.s219c3f29");
    check_field_offset(lv, s219c3f30, ABISELECT(628,456), "S219C3.s219c3f30");
    check_field_offset(lv, s219c3f31, ABISELECT(636,464), "S219C3.s219c3f31");
    check_field_offset(lv, s219c3f32, ABISELECT(644,472), "S219C3.s219c3f32");
    check_field_offset(lv, s219c3f33, ABISELECT(656,480), "S219C3.s219c3f33");
    check_field_offset(lv, s219c3f34, ABISELECT(664,484), "S219C3.s219c3f34");
    check_field_offset(lv, s219c3f35, ABISELECT(680,496), "S219C3.s219c3f35");
    check_field_offset(lv, s219c3f36, ABISELECT(696,508), "S219C3.s219c3f36");
    check_field_offset(lv, s219c3f37, ABISELECT(712,520), "S219C3.s219c3f37");
    check_field_offset(lv, s219c3f38, ABISELECT(728,532), "S219C3.s219c3f38");
    test_class_info(&lv, &cd_S219C3);
    dp->~S219C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS219C3(Test_S219C3, "S219C3", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S219C3C1Ev();
extern void _ZN6S219C3D1Ev();
Name_Map name_map_S219C3[] = {
  NSPAIR(_ZN6S219C3C1Ev),
  NSPAIR(_ZN6S219C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S219C6;
extern VTBL_ENTRY _ZTI6S219C6[];
extern  VTBL_ENTRY _ZTV6S219C6[];
extern Class_Descriptor cd_S219C5;
extern VTBL_ENTRY _ZTI6S219C5[];
extern  VTBL_ENTRY _ZTV6S219C5[];
extern Class_Descriptor cd_S219C4;
extern VTBL_ENTRY _ZTI6S219C4[];
extern  VTBL_ENTRY _ZTV6S219C4[];
static Base_Class bases_S219C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S219C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S219C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S219C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S219C3[];
extern void _ZN6S219C3D1Ev();
extern void _ZN6S219C3D0Ev();
extern void _ZN6S219C62v4Ev();
extern void _ZN6S219C62v5Ev();
extern void _ZN6S219C62v6Ev();
extern void _ZN6S219C62v7Ev();
extern void _ZN6S219C62v8Ev();
extern void _ZN6S219C62v9Ev();
extern void _ZN6S219C63v10Ev();
extern void _ZN6S219C63v11Ev();
extern void _ZN6S219C63v12Ev();
extern void _ZN6S219C63v13Ev();
extern void _ZN6S219C63v14Ev();
extern void _ZN6S219C63v15Ev();
extern void _ZN6S219C63v16Ev();
extern void _ZN6S219C63v17Ev();
extern void _ZN6S219C63v18Ev();
extern void _ZN6S219C63v19Ev();
extern void _ZN6S219C63v20Ev();
extern void _ZN6S219C63v21Ev();
extern void _ZN6S219C63v22Ev();
extern void _ZN6S219C63v23Ev();
extern void _ZN6S219C63v24Ev();
extern void _ZN6S219C63v25Ev();
extern void _ZN6S219C63v26Ev();
extern void _ZN6S219C63v27Ev();
extern void _ZN6S219C63v28Ev();
extern void _ZN6S219C63v29Ev();
extern void _ZN6S219C63v30Ev();
extern void _ZN6S219C63v31Ev();
extern void _ZN6S219C63v32Ev();
extern void _ZN6S219C63v33Ev();
extern void _ZN6S219C63v34Ev();
extern void _ZN6S219C63v35Ev();
extern void _ZN6S219C63v36Ev();
extern void _ZN6S219C63v37Ev();
extern void _ZN6S219C63v38Ev();
extern void _ZN6S219C63v39Ev();
extern void _ZN6S219C63v40Ev();
extern void _ZN6S219C63v41Ev();
extern void _ZN6S219C63v42Ev();
extern void _ZN6S219C63v43Ev();
extern void _ZN6S219C63v44Ev();
extern void _ZN6S219C63v45Ev();
extern void _ZN6S219C63v46Ev();
extern void _ZN6S219C63v47Ev();
extern void _ZN6S219C63v48Ev();
extern void _ZN6S219C63v49Ev();
extern void _ZN6S219C63v50Ev();
extern void _ZN6S219C63v51Ev();
extern void _ZN6S219C63v52Ev();
extern void _ZN6S219C63v53Ev();
extern void _ZN6S219C63v54Ev();
extern void _ZN6S219C63v55Ev();
extern void _ZN6S219C63v56Ev();
extern void _ZN6S219C63v57Ev();
extern void _ZN6S219C63v58Ev();
extern void _ZN6S219C63v59Ev();
extern void _ZN6S219C63v60Ev();
extern void _ZN6S219C63v61Ev();
extern void _ZN6S219C63v62Ev();
extern void _ZN6S219C63v63Ev();
extern void _ZN6S219C63v64Ev();
extern void _ZN6S219C63v65Ev();
extern void _ZN6S219C63v66Ev();
extern void _ZN6S219C63v67Ev();
extern void _ZN6S219C53v68Ev();
extern void _ZN6S219C53v69Ev();
extern void _ZN6S219C43v70Ev();
extern void _ZN6S219C43v71Ev();
extern void _ZN6S219C43v72Ev();
extern void _ZN6S219C43v73Ev();
extern void _ZN6S219C43v74Ev();
extern void _ZN6S219C43v75Ev();
extern void _ZN6S219C43v76Ev();
extern void _ZN6S219C43v77Ev();
extern void _ZN6S219C43v78Ev();
extern void _ZN6S219C43v79Ev();
extern void _ZN6S219C43v80Ev();
extern void _ZN6S219C43v81Ev();
extern void _ZN6S219C43v82Ev();
extern void _ZN6S219C43v83Ev();
extern void _ZN6S219C43v84Ev();
extern void _ZN6S219C43v85Ev();
extern void _ZN6S219C43v86Ev();
extern void _ZN6S219C43v87Ev();
extern void _ZN6S219C43v88Ev();
extern void _ZN6S219C43v89Ev();
extern void _ZN6S219C43v90Ev();
extern void _ZN6S219C43v91Ev();
extern void _ZN6S219C43v92Ev();
extern void _ZN6S219C43v93Ev();
extern void _ZN6S219C43v94Ev();
extern void _ZN6S219C43v95Ev();
extern void _ZN6S219C43v96Ev();
extern void _ZN6S219C43v97Ev();
extern void _ZN6S219C43v98Ev();
extern void _ZN6S219C43v99Ev();
extern void _ZN6S219C44v100Ev();
extern void _ZN6S219C44v101Ev();
extern void _ZN6S219C44v102Ev();
extern void _ZN6S219C44v103Ev();
extern void _ZN6S219C44v104Ev();
extern void _ZN6S219C44v105Ev();
extern void _ZN6S219C44v106Ev();
extern void _ZN6S219C44v107Ev();
extern void _ZN6S219C44v108Ev();
extern void _ZN6S219C44v109Ev();
extern void _ZN6S219C44v110Ev();
extern void _ZN6S219C44v111Ev();
extern void _ZN6S219C44v112Ev();
extern void _ZN6S219C44v113Ev();
extern void _ZN6S219C44v114Ev();
extern void _ZN6S219C44v115Ev();
extern void _ZN6S219C44v116Ev();
extern void _ZN6S219C44v117Ev();
extern void _ZN6S219C44v118Ev();
extern void _ZN6S219C44v119Ev();
extern void _ZN6S219C44v120Ev();
extern void _ZN6S219C44v121Ev();
extern void _ZN6S219C44v122Ev();
extern void _ZN6S219C44v123Ev();
extern void _ZN6S219C44v124Ev();
extern void _ZN6S219C44v125Ev();
extern void _ZN6S219C44v126Ev();
extern void _ZN6S219C44v127Ev();
extern void _ZN6S219C44v128Ev();
extern void _ZN6S219C44v129Ev();
extern void _ZN6S219C44v130Ev();
extern void _ZN6S219C44v131Ev();
extern void _ZN6S219C44v132Ev();
extern void _ZN6S219C44v133Ev();
extern void _ZN6S219C44v134Ev();
extern void _ZN6S219C44v135Ev();
extern void _ZN6S219C44v136Ev();
extern void _ZN6S219C44v137Ev();
extern void _ZN6S219C44v138Ev();
extern void _ZN6S219C44v139Ev();
extern void _ZN6S219C44v140Ev();
extern void _ZN6S219C44v141Ev();
extern void _ZN6S219C44v142Ev();
extern void _ZN6S219C44v143Ev();
extern void _ZN6S219C44v144Ev();
extern void _ZN6S219C44v145Ev();
extern void _ZN6S219C34v146Ev();
extern void _ZN6S219C34v147Ev();
extern void _ZN6S219C34v148Ev();
extern void _ZN6S219C34v149Ev();
extern void _ZN6S219C34v150Ev();
extern void _ZN6S219C34v151Ev();
extern void _ZN6S219C34v152Ev();
extern void _ZN6S219C34v153Ev();
extern void _ZN6S219C34v154Ev();
extern void _ZN6S219C34v155Ev();
extern void _ZN6S219C34v156Ev();
extern void _ZN6S219C34v157Ev();
extern void _ZN6S219C34v158Ev();
extern void _ZN6S219C34v159Ev();
extern void _ZN6S219C34v160Ev();
extern void _ZN6S219C34v161Ev();
extern void _ZN6S219C34v162Ev();
extern void _ZN6S219C34v163Ev();
extern void _ZN6S219C34v164Ev();
extern void _ZN6S219C34v165Ev();
extern void _ZN6S219C34v166Ev();
extern void _ZN6S219C34v167Ev();
extern void _ZN6S219C34v168Ev();
extern void _ZN6S219C34v169Ev();
extern void _ZN6S219C34v170Ev();
extern void _ZN6S219C34v171Ev();
extern void _ZN6S219C34v172Ev();
extern void _ZN6S219C34v173Ev();
extern void _ZN6S219C34v174Ev();
extern void _ZN6S219C34v175Ev();
extern void _ZN6S219C34v176Ev();
extern void _ZN6S219C34v177Ev();
extern void _ZN6S219C34v178Ev();
extern void _ZN6S219C34v179Ev();
extern void _ZN6S219C34v180Ev();
extern void _ZN6S219C34v181Ev();
extern void _ZN6S219C34v182Ev();
extern void _ZN6S219C34v183Ev();
extern void _ZN6S219C34v184Ev();
static  VTBL_ENTRY vtc_S219C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S219C3[0]),
  (VTBL_ENTRY)&_ZN6S219C3D1Ev,
  (VTBL_ENTRY)&_ZN6S219C3D0Ev,
  (VTBL_ENTRY)&_ZN6S219C62v4Ev,
  (VTBL_ENTRY)&_ZN6S219C62v5Ev,
  (VTBL_ENTRY)&_ZN6S219C62v6Ev,
  (VTBL_ENTRY)&_ZN6S219C62v7Ev,
  (VTBL_ENTRY)&_ZN6S219C62v8Ev,
  (VTBL_ENTRY)&_ZN6S219C62v9Ev,
  (VTBL_ENTRY)&_ZN6S219C63v10Ev,
  (VTBL_ENTRY)&_ZN6S219C63v11Ev,
  (VTBL_ENTRY)&_ZN6S219C63v12Ev,
  (VTBL_ENTRY)&_ZN6S219C63v13Ev,
  (VTBL_ENTRY)&_ZN6S219C63v14Ev,
  (VTBL_ENTRY)&_ZN6S219C63v15Ev,
  (VTBL_ENTRY)&_ZN6S219C63v16Ev,
  (VTBL_ENTRY)&_ZN6S219C63v17Ev,
  (VTBL_ENTRY)&_ZN6S219C63v18Ev,
  (VTBL_ENTRY)&_ZN6S219C63v19Ev,
  (VTBL_ENTRY)&_ZN6S219C63v20Ev,
  (VTBL_ENTRY)&_ZN6S219C63v21Ev,
  (VTBL_ENTRY)&_ZN6S219C63v22Ev,
  (VTBL_ENTRY)&_ZN6S219C63v23Ev,
  (VTBL_ENTRY)&_ZN6S219C63v24Ev,
  (VTBL_ENTRY)&_ZN6S219C63v25Ev,
  (VTBL_ENTRY)&_ZN6S219C63v26Ev,
  (VTBL_ENTRY)&_ZN6S219C63v27Ev,
  (VTBL_ENTRY)&_ZN6S219C63v28Ev,
  (VTBL_ENTRY)&_ZN6S219C63v29Ev,
  (VTBL_ENTRY)&_ZN6S219C63v30Ev,
  (VTBL_ENTRY)&_ZN6S219C63v31Ev,
  (VTBL_ENTRY)&_ZN6S219C63v32Ev,
  (VTBL_ENTRY)&_ZN6S219C63v33Ev,
  (VTBL_ENTRY)&_ZN6S219C63v34Ev,
  (VTBL_ENTRY)&_ZN6S219C63v35Ev,
  (VTBL_ENTRY)&_ZN6S219C63v36Ev,
  (VTBL_ENTRY)&_ZN6S219C63v37Ev,
  (VTBL_ENTRY)&_ZN6S219C63v38Ev,
  (VTBL_ENTRY)&_ZN6S219C63v39Ev,
  (VTBL_ENTRY)&_ZN6S219C63v40Ev,
  (VTBL_ENTRY)&_ZN6S219C63v41Ev,
  (VTBL_ENTRY)&_ZN6S219C63v42Ev,
  (VTBL_ENTRY)&_ZN6S219C63v43Ev,
  (VTBL_ENTRY)&_ZN6S219C63v44Ev,
  (VTBL_ENTRY)&_ZN6S219C63v45Ev,
  (VTBL_ENTRY)&_ZN6S219C63v46Ev,
  (VTBL_ENTRY)&_ZN6S219C63v47Ev,
  (VTBL_ENTRY)&_ZN6S219C63v48Ev,
  (VTBL_ENTRY)&_ZN6S219C63v49Ev,
  (VTBL_ENTRY)&_ZN6S219C63v50Ev,
  (VTBL_ENTRY)&_ZN6S219C63v51Ev,
  (VTBL_ENTRY)&_ZN6S219C63v52Ev,
  (VTBL_ENTRY)&_ZN6S219C63v53Ev,
  (VTBL_ENTRY)&_ZN6S219C63v54Ev,
  (VTBL_ENTRY)&_ZN6S219C63v55Ev,
  (VTBL_ENTRY)&_ZN6S219C63v56Ev,
  (VTBL_ENTRY)&_ZN6S219C63v57Ev,
  (VTBL_ENTRY)&_ZN6S219C63v58Ev,
  (VTBL_ENTRY)&_ZN6S219C63v59Ev,
  (VTBL_ENTRY)&_ZN6S219C63v60Ev,
  (VTBL_ENTRY)&_ZN6S219C63v61Ev,
  (VTBL_ENTRY)&_ZN6S219C63v62Ev,
  (VTBL_ENTRY)&_ZN6S219C63v63Ev,
  (VTBL_ENTRY)&_ZN6S219C63v64Ev,
  (VTBL_ENTRY)&_ZN6S219C63v65Ev,
  (VTBL_ENTRY)&_ZN6S219C63v66Ev,
  (VTBL_ENTRY)&_ZN6S219C63v67Ev,
  (VTBL_ENTRY)&_ZN6S219C53v68Ev,
  (VTBL_ENTRY)&_ZN6S219C53v69Ev,
  (VTBL_ENTRY)&_ZN6S219C43v70Ev,
  (VTBL_ENTRY)&_ZN6S219C43v71Ev,
  (VTBL_ENTRY)&_ZN6S219C43v72Ev,
  (VTBL_ENTRY)&_ZN6S219C43v73Ev,
  (VTBL_ENTRY)&_ZN6S219C43v74Ev,
  (VTBL_ENTRY)&_ZN6S219C43v75Ev,
  (VTBL_ENTRY)&_ZN6S219C43v76Ev,
  (VTBL_ENTRY)&_ZN6S219C43v77Ev,
  (VTBL_ENTRY)&_ZN6S219C43v78Ev,
  (VTBL_ENTRY)&_ZN6S219C43v79Ev,
  (VTBL_ENTRY)&_ZN6S219C43v80Ev,
  (VTBL_ENTRY)&_ZN6S219C43v81Ev,
  (VTBL_ENTRY)&_ZN6S219C43v82Ev,
  (VTBL_ENTRY)&_ZN6S219C43v83Ev,
  (VTBL_ENTRY)&_ZN6S219C43v84Ev,
  (VTBL_ENTRY)&_ZN6S219C43v85Ev,
  (VTBL_ENTRY)&_ZN6S219C43v86Ev,
  (VTBL_ENTRY)&_ZN6S219C43v87Ev,
  (VTBL_ENTRY)&_ZN6S219C43v88Ev,
  (VTBL_ENTRY)&_ZN6S219C43v89Ev,
  (VTBL_ENTRY)&_ZN6S219C43v90Ev,
  (VTBL_ENTRY)&_ZN6S219C43v91Ev,
  (VTBL_ENTRY)&_ZN6S219C43v92Ev,
  (VTBL_ENTRY)&_ZN6S219C43v93Ev,
  (VTBL_ENTRY)&_ZN6S219C43v94Ev,
  (VTBL_ENTRY)&_ZN6S219C43v95Ev,
  (VTBL_ENTRY)&_ZN6S219C43v96Ev,
  (VTBL_ENTRY)&_ZN6S219C43v97Ev,
  (VTBL_ENTRY)&_ZN6S219C43v98Ev,
  (VTBL_ENTRY)&_ZN6S219C43v99Ev,
  (VTBL_ENTRY)&_ZN6S219C44v100Ev,
  (VTBL_ENTRY)&_ZN6S219C44v101Ev,
  (VTBL_ENTRY)&_ZN6S219C44v102Ev,
  (VTBL_ENTRY)&_ZN6S219C44v103Ev,
  (VTBL_ENTRY)&_ZN6S219C44v104Ev,
  (VTBL_ENTRY)&_ZN6S219C44v105Ev,
  (VTBL_ENTRY)&_ZN6S219C44v106Ev,
  (VTBL_ENTRY)&_ZN6S219C44v107Ev,
  (VTBL_ENTRY)&_ZN6S219C44v108Ev,
  (VTBL_ENTRY)&_ZN6S219C44v109Ev,
  (VTBL_ENTRY)&_ZN6S219C44v110Ev,
  (VTBL_ENTRY)&_ZN6S219C44v111Ev,
  (VTBL_ENTRY)&_ZN6S219C44v112Ev,
  (VTBL_ENTRY)&_ZN6S219C44v113Ev,
  (VTBL_ENTRY)&_ZN6S219C44v114Ev,
  (VTBL_ENTRY)&_ZN6S219C44v115Ev,
  (VTBL_ENTRY)&_ZN6S219C44v116Ev,
  (VTBL_ENTRY)&_ZN6S219C44v117Ev,
  (VTBL_ENTRY)&_ZN6S219C44v118Ev,
  (VTBL_ENTRY)&_ZN6S219C44v119Ev,
  (VTBL_ENTRY)&_ZN6S219C44v120Ev,
  (VTBL_ENTRY)&_ZN6S219C44v121Ev,
  (VTBL_ENTRY)&_ZN6S219C44v122Ev,
  (VTBL_ENTRY)&_ZN6S219C44v123Ev,
  (VTBL_ENTRY)&_ZN6S219C44v124Ev,
  (VTBL_ENTRY)&_ZN6S219C44v125Ev,
  (VTBL_ENTRY)&_ZN6S219C44v126Ev,
  (VTBL_ENTRY)&_ZN6S219C44v127Ev,
  (VTBL_ENTRY)&_ZN6S219C44v128Ev,
  (VTBL_ENTRY)&_ZN6S219C44v129Ev,
  (VTBL_ENTRY)&_ZN6S219C44v130Ev,
  (VTBL_ENTRY)&_ZN6S219C44v131Ev,
  (VTBL_ENTRY)&_ZN6S219C44v132Ev,
  (VTBL_ENTRY)&_ZN6S219C44v133Ev,
  (VTBL_ENTRY)&_ZN6S219C44v134Ev,
  (VTBL_ENTRY)&_ZN6S219C44v135Ev,
  (VTBL_ENTRY)&_ZN6S219C44v136Ev,
  (VTBL_ENTRY)&_ZN6S219C44v137Ev,
  (VTBL_ENTRY)&_ZN6S219C44v138Ev,
  (VTBL_ENTRY)&_ZN6S219C44v139Ev,
  (VTBL_ENTRY)&_ZN6S219C44v140Ev,
  (VTBL_ENTRY)&_ZN6S219C44v141Ev,
  (VTBL_ENTRY)&_ZN6S219C44v142Ev,
  (VTBL_ENTRY)&_ZN6S219C44v143Ev,
  (VTBL_ENTRY)&_ZN6S219C44v144Ev,
  (VTBL_ENTRY)&_ZN6S219C44v145Ev,
  (VTBL_ENTRY)&_ZN6S219C34v146Ev,
  (VTBL_ENTRY)&_ZN6S219C34v147Ev,
  (VTBL_ENTRY)&_ZN6S219C34v148Ev,
  (VTBL_ENTRY)&_ZN6S219C34v149Ev,
  (VTBL_ENTRY)&_ZN6S219C34v150Ev,
  (VTBL_ENTRY)&_ZN6S219C34v151Ev,
  (VTBL_ENTRY)&_ZN6S219C34v152Ev,
  (VTBL_ENTRY)&_ZN6S219C34v153Ev,
  (VTBL_ENTRY)&_ZN6S219C34v154Ev,
  (VTBL_ENTRY)&_ZN6S219C34v155Ev,
  (VTBL_ENTRY)&_ZN6S219C34v156Ev,
  (VTBL_ENTRY)&_ZN6S219C34v157Ev,
  (VTBL_ENTRY)&_ZN6S219C34v158Ev,
  (VTBL_ENTRY)&_ZN6S219C34v159Ev,
  (VTBL_ENTRY)&_ZN6S219C34v160Ev,
  (VTBL_ENTRY)&_ZN6S219C34v161Ev,
  (VTBL_ENTRY)&_ZN6S219C34v162Ev,
  (VTBL_ENTRY)&_ZN6S219C34v163Ev,
  (VTBL_ENTRY)&_ZN6S219C34v164Ev,
  (VTBL_ENTRY)&_ZN6S219C34v165Ev,
  (VTBL_ENTRY)&_ZN6S219C34v166Ev,
  (VTBL_ENTRY)&_ZN6S219C34v167Ev,
  (VTBL_ENTRY)&_ZN6S219C34v168Ev,
  (VTBL_ENTRY)&_ZN6S219C34v169Ev,
  (VTBL_ENTRY)&_ZN6S219C34v170Ev,
  (VTBL_ENTRY)&_ZN6S219C34v171Ev,
  (VTBL_ENTRY)&_ZN6S219C34v172Ev,
  (VTBL_ENTRY)&_ZN6S219C34v173Ev,
  (VTBL_ENTRY)&_ZN6S219C34v174Ev,
  (VTBL_ENTRY)&_ZN6S219C34v175Ev,
  (VTBL_ENTRY)&_ZN6S219C34v176Ev,
  (VTBL_ENTRY)&_ZN6S219C34v177Ev,
  (VTBL_ENTRY)&_ZN6S219C34v178Ev,
  (VTBL_ENTRY)&_ZN6S219C34v179Ev,
  (VTBL_ENTRY)&_ZN6S219C34v180Ev,
  (VTBL_ENTRY)&_ZN6S219C34v181Ev,
  (VTBL_ENTRY)&_ZN6S219C34v182Ev,
  (VTBL_ENTRY)&_ZN6S219C34v183Ev,
  (VTBL_ENTRY)&_ZN6S219C34v184Ev,
};
extern VTBL_ENTRY _ZTI6S219C3[];
extern  VTBL_ENTRY _ZTV6S219C3[];
Class_Descriptor cd_S219C3 = {  "S219C3", // class name
  bases_S219C3, 3,
  &(vtc_S219C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S219C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S219C3),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S219C2  : S219C3 {
  unsigned int s219c2f0:1;
  unsigned int s219c2f1:1;
  unsigned int s219c2f2:1;
  unsigned int s219c2f3:1;
  unsigned int s219c2f4:1;
  unsigned int s219c2f5:1;
  void *s219c2f6[8];
  ::S80C21_nt s219c2f7;
  ::S80C21_nt s219c2f8;
  ::S80C21_nt s219c2f9;
  virtual  ~S219C2(); // _ZN6S219C2D1Ev
  virtual void  v185(); // _ZN6S219C24v185Ev
  virtual void  v186(); // _ZN6S219C24v186Ev
  virtual void  v187(); // _ZN6S219C24v187Ev
  virtual void  v188(); // _ZN6S219C24v188Ev
  virtual void  v189(); // _ZN6S219C24v189Ev
  virtual void  v190(); // _ZN6S219C24v190Ev
  virtual void  v191(); // _ZN6S219C24v191Ev
  virtual void  v192(); // _ZN6S219C24v192Ev
  virtual void  v193(); // _ZN6S219C24v193Ev
  virtual void  v194(); // _ZN6S219C24v194Ev
  virtual void  v195(); // _ZN6S219C24v195Ev
  virtual void  v196(); // _ZN6S219C24v196Ev
  virtual void  v197(); // _ZN6S219C24v197Ev
  virtual void  v198(); // _ZN6S219C24v198Ev
  virtual void  v199(); // _ZN6S219C24v199Ev
  virtual void  v200(); // _ZN6S219C24v200Ev
  virtual void  v201(); // _ZN6S219C24v201Ev
  virtual void  v202(); // _ZN6S219C24v202Ev
  virtual void  v203(); // _ZN6S219C24v203Ev
  virtual void  v204(); // _ZN6S219C24v204Ev
  virtual void  v205(); // _ZN6S219C24v205Ev
  virtual void  v206(); // _ZN6S219C24v206Ev
  virtual void  v207(); // _ZN6S219C24v207Ev
  S219C2(); // tgen
};
//SIG(-1 S219C2) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S219C2 ::~S219C2(){ note_dtor("S219C2", this);}
void  S219C2 ::v185(){vfunc_called(this, "_ZN6S219C24v185Ev");}
void  S219C2 ::v186(){vfunc_called(this, "_ZN6S219C24v186Ev");}
void  S219C2 ::v187(){vfunc_called(this, "_ZN6S219C24v187Ev");}
void  S219C2 ::v188(){vfunc_called(this, "_ZN6S219C24v188Ev");}
void  S219C2 ::v189(){vfunc_called(this, "_ZN6S219C24v189Ev");}
void  S219C2 ::v190(){vfunc_called(this, "_ZN6S219C24v190Ev");}
void  S219C2 ::v191(){vfunc_called(this, "_ZN6S219C24v191Ev");}
void  S219C2 ::v192(){vfunc_called(this, "_ZN6S219C24v192Ev");}
void  S219C2 ::v193(){vfunc_called(this, "_ZN6S219C24v193Ev");}
void  S219C2 ::v194(){vfunc_called(this, "_ZN6S219C24v194Ev");}
void  S219C2 ::v195(){vfunc_called(this, "_ZN6S219C24v195Ev");}
void  S219C2 ::v196(){vfunc_called(this, "_ZN6S219C24v196Ev");}
void  S219C2 ::v197(){vfunc_called(this, "_ZN6S219C24v197Ev");}
void  S219C2 ::v198(){vfunc_called(this, "_ZN6S219C24v198Ev");}
void  S219C2 ::v199(){vfunc_called(this, "_ZN6S219C24v199Ev");}
void  S219C2 ::v200(){vfunc_called(this, "_ZN6S219C24v200Ev");}
void  S219C2 ::v201(){vfunc_called(this, "_ZN6S219C24v201Ev");}
void  S219C2 ::v202(){vfunc_called(this, "_ZN6S219C24v202Ev");}
void  S219C2 ::v203(){vfunc_called(this, "_ZN6S219C24v203Ev");}
void  S219C2 ::v204(){vfunc_called(this, "_ZN6S219C24v204Ev");}
void  S219C2 ::v205(){vfunc_called(this, "_ZN6S219C24v205Ev");}
void  S219C2 ::v206(){vfunc_called(this, "_ZN6S219C24v206Ev");}
void  S219C2 ::v207(){vfunc_called(this, "_ZN6S219C24v207Ev");}
S219C2 ::S219C2(){ note_ctor("S219C2", this);} // tgen

static void Test_S219C2()
{
  extern Class_Descriptor cd_S219C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S219C2, buf);
    S219C2 *dp, &lv = *(dp=new (buf) S219C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S219C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S219C2)");
    check_base_class_offset(lv, (S219C6*)(S219C5*)(S219C4*)(S219C3*), 0, "S219C2");
    check_base_class_offset(lv, (S219C5*)(S219C4*)(S219C3*), 0, "S219C2");
    check_base_class_offset(lv, (S219C4*)(S219C3*), 0, "S219C2");
    check_base_class_offset(lv, (S219C3*), 0, "S219C2");
    set_bf_and_test(lv, s219c2f0, ABISELECT(744,544), 0, 1, 1, "S219C2");
    set_bf_and_test(lv, s219c2f1, ABISELECT(744,544), 1, 1, 1, "S219C2");
    set_bf_and_test(lv, s219c2f2, ABISELECT(744,544), 2, 1, 1, "S219C2");
    set_bf_and_test(lv, s219c2f3, ABISELECT(744,544), 3, 1, 1, "S219C2");
    set_bf_and_test(lv, s219c2f4, ABISELECT(744,544), 4, 1, 1, "S219C2");
    set_bf_and_test(lv, s219c2f5, ABISELECT(744,544), 5, 1, 1, "S219C2");
    check_field_offset(lv, s219c2f6, ABISELECT(752,548), "S219C2.s219c2f6");
    check_field_offset(lv, s219c2f7, ABISELECT(816,580), "S219C2.s219c2f7");
    check_field_offset(lv, s219c2f8, ABISELECT(832,592), "S219C2.s219c2f8");
    check_field_offset(lv, s219c2f9, ABISELECT(848,604), "S219C2.s219c2f9");
    test_class_info(&lv, &cd_S219C2);
    dp->~S219C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS219C2(Test_S219C2, "S219C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S219C2C1Ev();
extern void _ZN6S219C2D1Ev();
Name_Map name_map_S219C2[] = {
  NSPAIR(_ZN6S219C2C1Ev),
  NSPAIR(_ZN6S219C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S219C6;
extern VTBL_ENTRY _ZTI6S219C6[];
extern  VTBL_ENTRY _ZTV6S219C6[];
extern Class_Descriptor cd_S219C5;
extern VTBL_ENTRY _ZTI6S219C5[];
extern  VTBL_ENTRY _ZTV6S219C5[];
extern Class_Descriptor cd_S219C4;
extern VTBL_ENTRY _ZTI6S219C4[];
extern  VTBL_ENTRY _ZTV6S219C4[];
extern Class_Descriptor cd_S219C3;
extern VTBL_ENTRY _ZTI6S219C3[];
extern  VTBL_ENTRY _ZTV6S219C3[];
static Base_Class bases_S219C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S219C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S219C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S219C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S219C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S219C2[];
extern void _ZN6S219C2D1Ev();
extern void _ZN6S219C2D0Ev();
extern void _ZN6S219C62v4Ev();
extern void _ZN6S219C62v5Ev();
extern void _ZN6S219C62v6Ev();
extern void _ZN6S219C62v7Ev();
extern void _ZN6S219C62v8Ev();
extern void _ZN6S219C62v9Ev();
extern void _ZN6S219C63v10Ev();
extern void _ZN6S219C63v11Ev();
extern void _ZN6S219C63v12Ev();
extern void _ZN6S219C63v13Ev();
extern void _ZN6S219C63v14Ev();
extern void _ZN6S219C63v15Ev();
extern void _ZN6S219C63v16Ev();
extern void _ZN6S219C63v17Ev();
extern void _ZN6S219C63v18Ev();
extern void _ZN6S219C63v19Ev();
extern void _ZN6S219C63v20Ev();
extern void _ZN6S219C63v21Ev();
extern void _ZN6S219C63v22Ev();
extern void _ZN6S219C63v23Ev();
extern void _ZN6S219C63v24Ev();
extern void _ZN6S219C63v25Ev();
extern void _ZN6S219C63v26Ev();
extern void _ZN6S219C63v27Ev();
extern void _ZN6S219C63v28Ev();
extern void _ZN6S219C63v29Ev();
extern void _ZN6S219C63v30Ev();
extern void _ZN6S219C63v31Ev();
extern void _ZN6S219C63v32Ev();
extern void _ZN6S219C63v33Ev();
extern void _ZN6S219C63v34Ev();
extern void _ZN6S219C63v35Ev();
extern void _ZN6S219C63v36Ev();
extern void _ZN6S219C63v37Ev();
extern void _ZN6S219C63v38Ev();
extern void _ZN6S219C63v39Ev();
extern void _ZN6S219C63v40Ev();
extern void _ZN6S219C63v41Ev();
extern void _ZN6S219C63v42Ev();
extern void _ZN6S219C63v43Ev();
extern void _ZN6S219C63v44Ev();
extern void _ZN6S219C63v45Ev();
extern void _ZN6S219C63v46Ev();
extern void _ZN6S219C63v47Ev();
extern void _ZN6S219C63v48Ev();
extern void _ZN6S219C63v49Ev();
extern void _ZN6S219C63v50Ev();
extern void _ZN6S219C63v51Ev();
extern void _ZN6S219C63v52Ev();
extern void _ZN6S219C63v53Ev();
extern void _ZN6S219C63v54Ev();
extern void _ZN6S219C63v55Ev();
extern void _ZN6S219C63v56Ev();
extern void _ZN6S219C63v57Ev();
extern void _ZN6S219C63v58Ev();
extern void _ZN6S219C63v59Ev();
extern void _ZN6S219C63v60Ev();
extern void _ZN6S219C63v61Ev();
extern void _ZN6S219C63v62Ev();
extern void _ZN6S219C63v63Ev();
extern void _ZN6S219C63v64Ev();
extern void _ZN6S219C63v65Ev();
extern void _ZN6S219C63v66Ev();
extern void _ZN6S219C63v67Ev();
extern void _ZN6S219C53v68Ev();
extern void _ZN6S219C53v69Ev();
extern void _ZN6S219C43v70Ev();
extern void _ZN6S219C43v71Ev();
extern void _ZN6S219C43v72Ev();
extern void _ZN6S219C43v73Ev();
extern void _ZN6S219C43v74Ev();
extern void _ZN6S219C43v75Ev();
extern void _ZN6S219C43v76Ev();
extern void _ZN6S219C43v77Ev();
extern void _ZN6S219C43v78Ev();
extern void _ZN6S219C43v79Ev();
extern void _ZN6S219C43v80Ev();
extern void _ZN6S219C43v81Ev();
extern void _ZN6S219C43v82Ev();
extern void _ZN6S219C43v83Ev();
extern void _ZN6S219C43v84Ev();
extern void _ZN6S219C43v85Ev();
extern void _ZN6S219C43v86Ev();
extern void _ZN6S219C43v87Ev();
extern void _ZN6S219C43v88Ev();
extern void _ZN6S219C43v89Ev();
extern void _ZN6S219C43v90Ev();
extern void _ZN6S219C43v91Ev();
extern void _ZN6S219C43v92Ev();
extern void _ZN6S219C43v93Ev();
extern void _ZN6S219C43v94Ev();
extern void _ZN6S219C43v95Ev();
extern void _ZN6S219C43v96Ev();
extern void _ZN6S219C43v97Ev();
extern void _ZN6S219C43v98Ev();
extern void _ZN6S219C43v99Ev();
extern void _ZN6S219C44v100Ev();
extern void _ZN6S219C44v101Ev();
extern void _ZN6S219C44v102Ev();
extern void _ZN6S219C44v103Ev();
extern void _ZN6S219C44v104Ev();
extern void _ZN6S219C44v105Ev();
extern void _ZN6S219C44v106Ev();
extern void _ZN6S219C44v107Ev();
extern void _ZN6S219C44v108Ev();
extern void _ZN6S219C44v109Ev();
extern void _ZN6S219C44v110Ev();
extern void _ZN6S219C44v111Ev();
extern void _ZN6S219C44v112Ev();
extern void _ZN6S219C44v113Ev();
extern void _ZN6S219C44v114Ev();
extern void _ZN6S219C44v115Ev();
extern void _ZN6S219C44v116Ev();
extern void _ZN6S219C44v117Ev();
extern void _ZN6S219C44v118Ev();
extern void _ZN6S219C44v119Ev();
extern void _ZN6S219C44v120Ev();
extern void _ZN6S219C44v121Ev();
extern void _ZN6S219C44v122Ev();
extern void _ZN6S219C44v123Ev();
extern void _ZN6S219C44v124Ev();
extern void _ZN6S219C44v125Ev();
extern void _ZN6S219C44v126Ev();
extern void _ZN6S219C44v127Ev();
extern void _ZN6S219C44v128Ev();
extern void _ZN6S219C44v129Ev();
extern void _ZN6S219C44v130Ev();
extern void _ZN6S219C44v131Ev();
extern void _ZN6S219C44v132Ev();
extern void _ZN6S219C44v133Ev();
extern void _ZN6S219C44v134Ev();
extern void _ZN6S219C44v135Ev();
extern void _ZN6S219C44v136Ev();
extern void _ZN6S219C44v137Ev();
extern void _ZN6S219C44v138Ev();
extern void _ZN6S219C44v139Ev();
extern void _ZN6S219C44v140Ev();
extern void _ZN6S219C44v141Ev();
extern void _ZN6S219C44v142Ev();
extern void _ZN6S219C44v143Ev();
extern void _ZN6S219C44v144Ev();
extern void _ZN6S219C44v145Ev();
extern void _ZN6S219C34v146Ev();
extern void _ZN6S219C34v147Ev();
extern void _ZN6S219C34v148Ev();
extern void _ZN6S219C34v149Ev();
extern void _ZN6S219C34v150Ev();
extern void _ZN6S219C34v151Ev();
extern void _ZN6S219C34v152Ev();
extern void _ZN6S219C34v153Ev();
extern void _ZN6S219C34v154Ev();
extern void _ZN6S219C34v155Ev();
extern void _ZN6S219C34v156Ev();
extern void _ZN6S219C34v157Ev();
extern void _ZN6S219C34v158Ev();
extern void _ZN6S219C34v159Ev();
extern void _ZN6S219C34v160Ev();
extern void _ZN6S219C34v161Ev();
extern void _ZN6S219C34v162Ev();
extern void _ZN6S219C34v163Ev();
extern void _ZN6S219C34v164Ev();
extern void _ZN6S219C34v165Ev();
extern void _ZN6S219C34v166Ev();
extern void _ZN6S219C34v167Ev();
extern void _ZN6S219C34v168Ev();
extern void _ZN6S219C34v169Ev();
extern void _ZN6S219C34v170Ev();
extern void _ZN6S219C34v171Ev();
extern void _ZN6S219C34v172Ev();
extern void _ZN6S219C34v173Ev();
extern void _ZN6S219C34v174Ev();
extern void _ZN6S219C34v175Ev();
extern void _ZN6S219C34v176Ev();
extern void _ZN6S219C34v177Ev();
extern void _ZN6S219C34v178Ev();
extern void _ZN6S219C34v179Ev();
extern void _ZN6S219C34v180Ev();
extern void _ZN6S219C34v181Ev();
extern void _ZN6S219C34v182Ev();
extern void _ZN6S219C34v183Ev();
extern void _ZN6S219C34v184Ev();
extern void _ZN6S219C24v185Ev();
extern void _ZN6S219C24v186Ev();
extern void _ZN6S219C24v187Ev();
extern void _ZN6S219C24v188Ev();
extern void _ZN6S219C24v189Ev();
extern void _ZN6S219C24v190Ev();
extern void _ZN6S219C24v191Ev();
extern void _ZN6S219C24v192Ev();
extern void _ZN6S219C24v193Ev();
extern void _ZN6S219C24v194Ev();
extern void _ZN6S219C24v195Ev();
extern void _ZN6S219C24v196Ev();
extern void _ZN6S219C24v197Ev();
extern void _ZN6S219C24v198Ev();
extern void _ZN6S219C24v199Ev();
extern void _ZN6S219C24v200Ev();
extern void _ZN6S219C24v201Ev();
extern void _ZN6S219C24v202Ev();
extern void _ZN6S219C24v203Ev();
extern void _ZN6S219C24v204Ev();
extern void _ZN6S219C24v205Ev();
extern void _ZN6S219C24v206Ev();
extern void _ZN6S219C24v207Ev();
static  VTBL_ENTRY vtc_S219C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S219C2[0]),
  (VTBL_ENTRY)&_ZN6S219C2D1Ev,
  (VTBL_ENTRY)&_ZN6S219C2D0Ev,
  (VTBL_ENTRY)&_ZN6S219C62v4Ev,
  (VTBL_ENTRY)&_ZN6S219C62v5Ev,
  (VTBL_ENTRY)&_ZN6S219C62v6Ev,
  (VTBL_ENTRY)&_ZN6S219C62v7Ev,
  (VTBL_ENTRY)&_ZN6S219C62v8Ev,
  (VTBL_ENTRY)&_ZN6S219C62v9Ev,
  (VTBL_ENTRY)&_ZN6S219C63v10Ev,
  (VTBL_ENTRY)&_ZN6S219C63v11Ev,
  (VTBL_ENTRY)&_ZN6S219C63v12Ev,
  (VTBL_ENTRY)&_ZN6S219C63v13Ev,
  (VTBL_ENTRY)&_ZN6S219C63v14Ev,
  (VTBL_ENTRY)&_ZN6S219C63v15Ev,
  (VTBL_ENTRY)&_ZN6S219C63v16Ev,
  (VTBL_ENTRY)&_ZN6S219C63v17Ev,
  (VTBL_ENTRY)&_ZN6S219C63v18Ev,
  (VTBL_ENTRY)&_ZN6S219C63v19Ev,
  (VTBL_ENTRY)&_ZN6S219C63v20Ev,
  (VTBL_ENTRY)&_ZN6S219C63v21Ev,
  (VTBL_ENTRY)&_ZN6S219C63v22Ev,
  (VTBL_ENTRY)&_ZN6S219C63v23Ev,
  (VTBL_ENTRY)&_ZN6S219C63v24Ev,
  (VTBL_ENTRY)&_ZN6S219C63v25Ev,
  (VTBL_ENTRY)&_ZN6S219C63v26Ev,
  (VTBL_ENTRY)&_ZN6S219C63v27Ev,
  (VTBL_ENTRY)&_ZN6S219C63v28Ev,
  (VTBL_ENTRY)&_ZN6S219C63v29Ev,
  (VTBL_ENTRY)&_ZN6S219C63v30Ev,
  (VTBL_ENTRY)&_ZN6S219C63v31Ev,
  (VTBL_ENTRY)&_ZN6S219C63v32Ev,
  (VTBL_ENTRY)&_ZN6S219C63v33Ev,
  (VTBL_ENTRY)&_ZN6S219C63v34Ev,
  (VTBL_ENTRY)&_ZN6S219C63v35Ev,
  (VTBL_ENTRY)&_ZN6S219C63v36Ev,
  (VTBL_ENTRY)&_ZN6S219C63v37Ev,
  (VTBL_ENTRY)&_ZN6S219C63v38Ev,
  (VTBL_ENTRY)&_ZN6S219C63v39Ev,
  (VTBL_ENTRY)&_ZN6S219C63v40Ev,
  (VTBL_ENTRY)&_ZN6S219C63v41Ev,
  (VTBL_ENTRY)&_ZN6S219C63v42Ev,
  (VTBL_ENTRY)&_ZN6S219C63v43Ev,
  (VTBL_ENTRY)&_ZN6S219C63v44Ev,
  (VTBL_ENTRY)&_ZN6S219C63v45Ev,
  (VTBL_ENTRY)&_ZN6S219C63v46Ev,
  (VTBL_ENTRY)&_ZN6S219C63v47Ev,
  (VTBL_ENTRY)&_ZN6S219C63v48Ev,
  (VTBL_ENTRY)&_ZN6S219C63v49Ev,
  (VTBL_ENTRY)&_ZN6S219C63v50Ev,
  (VTBL_ENTRY)&_ZN6S219C63v51Ev,
  (VTBL_ENTRY)&_ZN6S219C63v52Ev,
  (VTBL_ENTRY)&_ZN6S219C63v53Ev,
  (VTBL_ENTRY)&_ZN6S219C63v54Ev,
  (VTBL_ENTRY)&_ZN6S219C63v55Ev,
  (VTBL_ENTRY)&_ZN6S219C63v56Ev,
  (VTBL_ENTRY)&_ZN6S219C63v57Ev,
  (VTBL_ENTRY)&_ZN6S219C63v58Ev,
  (VTBL_ENTRY)&_ZN6S219C63v59Ev,
  (VTBL_ENTRY)&_ZN6S219C63v60Ev,
  (VTBL_ENTRY)&_ZN6S219C63v61Ev,
  (VTBL_ENTRY)&_ZN6S219C63v62Ev,
  (VTBL_ENTRY)&_ZN6S219C63v63Ev,
  (VTBL_ENTRY)&_ZN6S219C63v64Ev,
  (VTBL_ENTRY)&_ZN6S219C63v65Ev,
  (VTBL_ENTRY)&_ZN6S219C63v66Ev,
  (VTBL_ENTRY)&_ZN6S219C63v67Ev,
  (VTBL_ENTRY)&_ZN6S219C53v68Ev,
  (VTBL_ENTRY)&_ZN6S219C53v69Ev,
  (VTBL_ENTRY)&_ZN6S219C43v70Ev,
  (VTBL_ENTRY)&_ZN6S219C43v71Ev,
  (VTBL_ENTRY)&_ZN6S219C43v72Ev,
  (VTBL_ENTRY)&_ZN6S219C43v73Ev,
  (VTBL_ENTRY)&_ZN6S219C43v74Ev,
  (VTBL_ENTRY)&_ZN6S219C43v75Ev,
  (VTBL_ENTRY)&_ZN6S219C43v76Ev,
  (VTBL_ENTRY)&_ZN6S219C43v77Ev,
  (VTBL_ENTRY)&_ZN6S219C43v78Ev,
  (VTBL_ENTRY)&_ZN6S219C43v79Ev,
  (VTBL_ENTRY)&_ZN6S219C43v80Ev,
  (VTBL_ENTRY)&_ZN6S219C43v81Ev,
  (VTBL_ENTRY)&_ZN6S219C43v82Ev,
  (VTBL_ENTRY)&_ZN6S219C43v83Ev,
  (VTBL_ENTRY)&_ZN6S219C43v84Ev,
  (VTBL_ENTRY)&_ZN6S219C43v85Ev,
  (VTBL_ENTRY)&_ZN6S219C43v86Ev,
  (VTBL_ENTRY)&_ZN6S219C43v87Ev,
  (VTBL_ENTRY)&_ZN6S219C43v88Ev,
  (VTBL_ENTRY)&_ZN6S219C43v89Ev,
  (VTBL_ENTRY)&_ZN6S219C43v90Ev,
  (VTBL_ENTRY)&_ZN6S219C43v91Ev,
  (VTBL_ENTRY)&_ZN6S219C43v92Ev,
  (VTBL_ENTRY)&_ZN6S219C43v93Ev,
  (VTBL_ENTRY)&_ZN6S219C43v94Ev,
  (VTBL_ENTRY)&_ZN6S219C43v95Ev,
  (VTBL_ENTRY)&_ZN6S219C43v96Ev,
  (VTBL_ENTRY)&_ZN6S219C43v97Ev,
  (VTBL_ENTRY)&_ZN6S219C43v98Ev,
  (VTBL_ENTRY)&_ZN6S219C43v99Ev,
  (VTBL_ENTRY)&_ZN6S219C44v100Ev,
  (VTBL_ENTRY)&_ZN6S219C44v101Ev,
  (VTBL_ENTRY)&_ZN6S219C44v102Ev,
  (VTBL_ENTRY)&_ZN6S219C44v103Ev,
  (VTBL_ENTRY)&_ZN6S219C44v104Ev,
  (VTBL_ENTRY)&_ZN6S219C44v105Ev,
  (VTBL_ENTRY)&_ZN6S219C44v106Ev,
  (VTBL_ENTRY)&_ZN6S219C44v107Ev,
  (VTBL_ENTRY)&_ZN6S219C44v108Ev,
  (VTBL_ENTRY)&_ZN6S219C44v109Ev,
  (VTBL_ENTRY)&_ZN6S219C44v110Ev,
  (VTBL_ENTRY)&_ZN6S219C44v111Ev,
  (VTBL_ENTRY)&_ZN6S219C44v112Ev,
  (VTBL_ENTRY)&_ZN6S219C44v113Ev,
  (VTBL_ENTRY)&_ZN6S219C44v114Ev,
  (VTBL_ENTRY)&_ZN6S219C44v115Ev,
  (VTBL_ENTRY)&_ZN6S219C44v116Ev,
  (VTBL_ENTRY)&_ZN6S219C44v117Ev,
  (VTBL_ENTRY)&_ZN6S219C44v118Ev,
  (VTBL_ENTRY)&_ZN6S219C44v119Ev,
  (VTBL_ENTRY)&_ZN6S219C44v120Ev,
  (VTBL_ENTRY)&_ZN6S219C44v121Ev,
  (VTBL_ENTRY)&_ZN6S219C44v122Ev,
  (VTBL_ENTRY)&_ZN6S219C44v123Ev,
  (VTBL_ENTRY)&_ZN6S219C44v124Ev,
  (VTBL_ENTRY)&_ZN6S219C44v125Ev,
  (VTBL_ENTRY)&_ZN6S219C44v126Ev,
  (VTBL_ENTRY)&_ZN6S219C44v127Ev,
  (VTBL_ENTRY)&_ZN6S219C44v128Ev,
  (VTBL_ENTRY)&_ZN6S219C44v129Ev,
  (VTBL_ENTRY)&_ZN6S219C44v130Ev,
  (VTBL_ENTRY)&_ZN6S219C44v131Ev,
  (VTBL_ENTRY)&_ZN6S219C44v132Ev,
  (VTBL_ENTRY)&_ZN6S219C44v133Ev,
  (VTBL_ENTRY)&_ZN6S219C44v134Ev,
  (VTBL_ENTRY)&_ZN6S219C44v135Ev,
  (VTBL_ENTRY)&_ZN6S219C44v136Ev,
  (VTBL_ENTRY)&_ZN6S219C44v137Ev,
  (VTBL_ENTRY)&_ZN6S219C44v138Ev,
  (VTBL_ENTRY)&_ZN6S219C44v139Ev,
  (VTBL_ENTRY)&_ZN6S219C44v140Ev,
  (VTBL_ENTRY)&_ZN6S219C44v141Ev,
  (VTBL_ENTRY)&_ZN6S219C44v142Ev,
  (VTBL_ENTRY)&_ZN6S219C44v143Ev,
  (VTBL_ENTRY)&_ZN6S219C44v144Ev,
  (VTBL_ENTRY)&_ZN6S219C44v145Ev,
  (VTBL_ENTRY)&_ZN6S219C34v146Ev,
  (VTBL_ENTRY)&_ZN6S219C34v147Ev,
  (VTBL_ENTRY)&_ZN6S219C34v148Ev,
  (VTBL_ENTRY)&_ZN6S219C34v149Ev,
  (VTBL_ENTRY)&_ZN6S219C34v150Ev,
  (VTBL_ENTRY)&_ZN6S219C34v151Ev,
  (VTBL_ENTRY)&_ZN6S219C34v152Ev,
  (VTBL_ENTRY)&_ZN6S219C34v153Ev,
  (VTBL_ENTRY)&_ZN6S219C34v154Ev,
  (VTBL_ENTRY)&_ZN6S219C34v155Ev,
  (VTBL_ENTRY)&_ZN6S219C34v156Ev,
  (VTBL_ENTRY)&_ZN6S219C34v157Ev,
  (VTBL_ENTRY)&_ZN6S219C34v158Ev,
  (VTBL_ENTRY)&_ZN6S219C34v159Ev,
  (VTBL_ENTRY)&_ZN6S219C34v160Ev,
  (VTBL_ENTRY)&_ZN6S219C34v161Ev,
  (VTBL_ENTRY)&_ZN6S219C34v162Ev,
  (VTBL_ENTRY)&_ZN6S219C34v163Ev,
  (VTBL_ENTRY)&_ZN6S219C34v164Ev,
  (VTBL_ENTRY)&_ZN6S219C34v165Ev,
  (VTBL_ENTRY)&_ZN6S219C34v166Ev,
  (VTBL_ENTRY)&_ZN6S219C34v167Ev,
  (VTBL_ENTRY)&_ZN6S219C34v168Ev,
  (VTBL_ENTRY)&_ZN6S219C34v169Ev,
  (VTBL_ENTRY)&_ZN6S219C34v170Ev,
  (VTBL_ENTRY)&_ZN6S219C34v171Ev,
  (VTBL_ENTRY)&_ZN6S219C34v172Ev,
  (VTBL_ENTRY)&_ZN6S219C34v173Ev,
  (VTBL_ENTRY)&_ZN6S219C34v174Ev,
  (VTBL_ENTRY)&_ZN6S219C34v175Ev,
  (VTBL_ENTRY)&_ZN6S219C34v176Ev,
  (VTBL_ENTRY)&_ZN6S219C34v177Ev,
  (VTBL_ENTRY)&_ZN6S219C34v178Ev,
  (VTBL_ENTRY)&_ZN6S219C34v179Ev,
  (VTBL_ENTRY)&_ZN6S219C34v180Ev,
  (VTBL_ENTRY)&_ZN6S219C34v181Ev,
  (VTBL_ENTRY)&_ZN6S219C34v182Ev,
  (VTBL_ENTRY)&_ZN6S219C34v183Ev,
  (VTBL_ENTRY)&_ZN6S219C34v184Ev,
  (VTBL_ENTRY)&_ZN6S219C24v185Ev,
  (VTBL_ENTRY)&_ZN6S219C24v186Ev,
  (VTBL_ENTRY)&_ZN6S219C24v187Ev,
  (VTBL_ENTRY)&_ZN6S219C24v188Ev,
  (VTBL_ENTRY)&_ZN6S219C24v189Ev,
  (VTBL_ENTRY)&_ZN6S219C24v190Ev,
  (VTBL_ENTRY)&_ZN6S219C24v191Ev,
  (VTBL_ENTRY)&_ZN6S219C24v192Ev,
  (VTBL_ENTRY)&_ZN6S219C24v193Ev,
  (VTBL_ENTRY)&_ZN6S219C24v194Ev,
  (VTBL_ENTRY)&_ZN6S219C24v195Ev,
  (VTBL_ENTRY)&_ZN6S219C24v196Ev,
  (VTBL_ENTRY)&_ZN6S219C24v197Ev,
  (VTBL_ENTRY)&_ZN6S219C24v198Ev,
  (VTBL_ENTRY)&_ZN6S219C24v199Ev,
  (VTBL_ENTRY)&_ZN6S219C24v200Ev,
  (VTBL_ENTRY)&_ZN6S219C24v201Ev,
  (VTBL_ENTRY)&_ZN6S219C24v202Ev,
  (VTBL_ENTRY)&_ZN6S219C24v203Ev,
  (VTBL_ENTRY)&_ZN6S219C24v204Ev,
  (VTBL_ENTRY)&_ZN6S219C24v205Ev,
  (VTBL_ENTRY)&_ZN6S219C24v206Ev,
  (VTBL_ENTRY)&_ZN6S219C24v207Ev,
};
extern VTBL_ENTRY _ZTI6S219C2[];
extern  VTBL_ENTRY _ZTV6S219C2[];
Class_Descriptor cd_S219C2 = {  "S219C2", // class name
  bases_S219C2, 4,
  &(vtc_S219C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S219C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S219C2),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S219C1  : S219C2 {
  int s219c1f0[2];
  unsigned int s219c1f1:1;
  unsigned int s219c1f2:1;
  unsigned int s219c1f3:1;
  int s219c1f4;
  ::S80C21_nt s219c1f5;
  virtual  ~S219C1(); // _ZN6S219C1D1Ev
  virtual void  v1(); // _ZN6S219C12v1Ev
  virtual void  v2(); // _ZN6S219C12v2Ev
  virtual void  v3(); // _ZN6S219C12v3Ev
  S219C1(); // tgen
};
//SIG(1 S219C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 Fi[2] Fi:1 Fi:1 Fi:1 Fi FC20}


 S219C1 ::~S219C1(){ note_dtor("S219C1", this);}
void  S219C1 ::v1(){vfunc_called(this, "_ZN6S219C12v1Ev");}
void  S219C1 ::v2(){vfunc_called(this, "_ZN6S219C12v2Ev");}
void  S219C1 ::v3(){vfunc_called(this, "_ZN6S219C12v3Ev");}
S219C1 ::S219C1(){ note_ctor("S219C1", this);} // tgen

static void Test_S219C1()
{
  extern Class_Descriptor cd_S219C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(113,162)];
    init_test(&cd_S219C1, buf);
    S219C1 *dp, &lv = *(dp=new (buf) S219C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(896,644), "sizeof(S219C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S219C1)");
    check_base_class_offset(lv, (S219C6*)(S219C5*)(S219C4*)(S219C3*)(S219C2*), 0, "S219C1");
    check_base_class_offset(lv, (S219C5*)(S219C4*)(S219C3*)(S219C2*), 0, "S219C1");
    check_base_class_offset(lv, (S219C4*)(S219C3*)(S219C2*), 0, "S219C1");
    check_base_class_offset(lv, (S219C3*)(S219C2*), 0, "S219C1");
    check_base_class_offset(lv, (S219C2*), 0, "S219C1");
    check_field_offset(lv, s219c1f0, ABISELECT(864,616), "S219C1.s219c1f0");
    set_bf_and_test(lv, s219c1f1, ABISELECT(872,624), 0, 1, 1, "S219C1");
    set_bf_and_test(lv, s219c1f2, ABISELECT(872,624), 1, 1, 1, "S219C1");
    set_bf_and_test(lv, s219c1f3, ABISELECT(872,624), 2, 1, 1, "S219C1");
    check_field_offset(lv, s219c1f4, ABISELECT(876,628), "S219C1.s219c1f4");
    check_field_offset(lv, s219c1f5, ABISELECT(880,632), "S219C1.s219c1f5");
    test_class_info(&lv, &cd_S219C1);
    dp->~S219C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS219C1(Test_S219C1, "S219C1", ABISELECT(896,644));

#else // __cplusplus

extern void _ZN6S219C1C1Ev();
extern void _ZN6S219C1D1Ev();
Name_Map name_map_S219C1[] = {
  NSPAIR(_ZN6S219C1C1Ev),
  NSPAIR(_ZN6S219C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S219C6;
extern VTBL_ENTRY _ZTI6S219C6[];
extern  VTBL_ENTRY _ZTV6S219C6[];
extern Class_Descriptor cd_S219C5;
extern VTBL_ENTRY _ZTI6S219C5[];
extern  VTBL_ENTRY _ZTV6S219C5[];
extern Class_Descriptor cd_S219C4;
extern VTBL_ENTRY _ZTI6S219C4[];
extern  VTBL_ENTRY _ZTV6S219C4[];
extern Class_Descriptor cd_S219C3;
extern VTBL_ENTRY _ZTI6S219C3[];
extern  VTBL_ENTRY _ZTV6S219C3[];
extern Class_Descriptor cd_S219C2;
extern VTBL_ENTRY _ZTI6S219C2[];
extern  VTBL_ENTRY _ZTV6S219C2[];
static Base_Class bases_S219C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S219C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S219C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S219C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S219C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S219C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S219C1[];
extern void _ZN6S219C1D1Ev();
extern void _ZN6S219C1D0Ev();
extern void _ZN6S219C62v4Ev();
extern void _ZN6S219C62v5Ev();
extern void _ZN6S219C62v6Ev();
extern void _ZN6S219C62v7Ev();
extern void _ZN6S219C62v8Ev();
extern void _ZN6S219C62v9Ev();
extern void _ZN6S219C63v10Ev();
extern void _ZN6S219C63v11Ev();
extern void _ZN6S219C63v12Ev();
extern void _ZN6S219C63v13Ev();
extern void _ZN6S219C63v14Ev();
extern void _ZN6S219C63v15Ev();
extern void _ZN6S219C63v16Ev();
extern void _ZN6S219C63v17Ev();
extern void _ZN6S219C63v18Ev();
extern void _ZN6S219C63v19Ev();
extern void _ZN6S219C63v20Ev();
extern void _ZN6S219C63v21Ev();
extern void _ZN6S219C63v22Ev();
extern void _ZN6S219C63v23Ev();
extern void _ZN6S219C63v24Ev();
extern void _ZN6S219C63v25Ev();
extern void _ZN6S219C63v26Ev();
extern void _ZN6S219C63v27Ev();
extern void _ZN6S219C63v28Ev();
extern void _ZN6S219C63v29Ev();
extern void _ZN6S219C63v30Ev();
extern void _ZN6S219C63v31Ev();
extern void _ZN6S219C63v32Ev();
extern void _ZN6S219C63v33Ev();
extern void _ZN6S219C63v34Ev();
extern void _ZN6S219C63v35Ev();
extern void _ZN6S219C63v36Ev();
extern void _ZN6S219C63v37Ev();
extern void _ZN6S219C63v38Ev();
extern void _ZN6S219C63v39Ev();
extern void _ZN6S219C63v40Ev();
extern void _ZN6S219C63v41Ev();
extern void _ZN6S219C63v42Ev();
extern void _ZN6S219C63v43Ev();
extern void _ZN6S219C63v44Ev();
extern void _ZN6S219C63v45Ev();
extern void _ZN6S219C63v46Ev();
extern void _ZN6S219C63v47Ev();
extern void _ZN6S219C63v48Ev();
extern void _ZN6S219C63v49Ev();
extern void _ZN6S219C63v50Ev();
extern void _ZN6S219C63v51Ev();
extern void _ZN6S219C63v52Ev();
extern void _ZN6S219C63v53Ev();
extern void _ZN6S219C63v54Ev();
extern void _ZN6S219C63v55Ev();
extern void _ZN6S219C63v56Ev();
extern void _ZN6S219C63v57Ev();
extern void _ZN6S219C63v58Ev();
extern void _ZN6S219C63v59Ev();
extern void _ZN6S219C63v60Ev();
extern void _ZN6S219C63v61Ev();
extern void _ZN6S219C63v62Ev();
extern void _ZN6S219C63v63Ev();
extern void _ZN6S219C63v64Ev();
extern void _ZN6S219C63v65Ev();
extern void _ZN6S219C63v66Ev();
extern void _ZN6S219C63v67Ev();
extern void _ZN6S219C53v68Ev();
extern void _ZN6S219C53v69Ev();
extern void _ZN6S219C43v70Ev();
extern void _ZN6S219C43v71Ev();
extern void _ZN6S219C43v72Ev();
extern void _ZN6S219C43v73Ev();
extern void _ZN6S219C43v74Ev();
extern void _ZN6S219C43v75Ev();
extern void _ZN6S219C43v76Ev();
extern void _ZN6S219C43v77Ev();
extern void _ZN6S219C43v78Ev();
extern void _ZN6S219C43v79Ev();
extern void _ZN6S219C43v80Ev();
extern void _ZN6S219C43v81Ev();
extern void _ZN6S219C43v82Ev();
extern void _ZN6S219C43v83Ev();
extern void _ZN6S219C43v84Ev();
extern void _ZN6S219C43v85Ev();
extern void _ZN6S219C43v86Ev();
extern void _ZN6S219C43v87Ev();
extern void _ZN6S219C43v88Ev();
extern void _ZN6S219C43v89Ev();
extern void _ZN6S219C43v90Ev();
extern void _ZN6S219C43v91Ev();
extern void _ZN6S219C43v92Ev();
extern void _ZN6S219C43v93Ev();
extern void _ZN6S219C43v94Ev();
extern void _ZN6S219C43v95Ev();
extern void _ZN6S219C43v96Ev();
extern void _ZN6S219C43v97Ev();
extern void _ZN6S219C43v98Ev();
extern void _ZN6S219C43v99Ev();
extern void _ZN6S219C44v100Ev();
extern void _ZN6S219C44v101Ev();
extern void _ZN6S219C44v102Ev();
extern void _ZN6S219C44v103Ev();
extern void _ZN6S219C44v104Ev();
extern void _ZN6S219C44v105Ev();
extern void _ZN6S219C44v106Ev();
extern void _ZN6S219C44v107Ev();
extern void _ZN6S219C44v108Ev();
extern void _ZN6S219C44v109Ev();
extern void _ZN6S219C44v110Ev();
extern void _ZN6S219C44v111Ev();
extern void _ZN6S219C44v112Ev();
extern void _ZN6S219C44v113Ev();
extern void _ZN6S219C44v114Ev();
extern void _ZN6S219C44v115Ev();
extern void _ZN6S219C44v116Ev();
extern void _ZN6S219C44v117Ev();
extern void _ZN6S219C44v118Ev();
extern void _ZN6S219C44v119Ev();
extern void _ZN6S219C44v120Ev();
extern void _ZN6S219C44v121Ev();
extern void _ZN6S219C44v122Ev();
extern void _ZN6S219C44v123Ev();
extern void _ZN6S219C44v124Ev();
extern void _ZN6S219C44v125Ev();
extern void _ZN6S219C44v126Ev();
extern void _ZN6S219C44v127Ev();
extern void _ZN6S219C44v128Ev();
extern void _ZN6S219C44v129Ev();
extern void _ZN6S219C44v130Ev();
extern void _ZN6S219C44v131Ev();
extern void _ZN6S219C44v132Ev();
extern void _ZN6S219C44v133Ev();
extern void _ZN6S219C44v134Ev();
extern void _ZN6S219C44v135Ev();
extern void _ZN6S219C44v136Ev();
extern void _ZN6S219C44v137Ev();
extern void _ZN6S219C44v138Ev();
extern void _ZN6S219C44v139Ev();
extern void _ZN6S219C44v140Ev();
extern void _ZN6S219C44v141Ev();
extern void _ZN6S219C44v142Ev();
extern void _ZN6S219C44v143Ev();
extern void _ZN6S219C44v144Ev();
extern void _ZN6S219C44v145Ev();
extern void _ZN6S219C34v146Ev();
extern void _ZN6S219C34v147Ev();
extern void _ZN6S219C34v148Ev();
extern void _ZN6S219C34v149Ev();
extern void _ZN6S219C34v150Ev();
extern void _ZN6S219C34v151Ev();
extern void _ZN6S219C34v152Ev();
extern void _ZN6S219C34v153Ev();
extern void _ZN6S219C34v154Ev();
extern void _ZN6S219C34v155Ev();
extern void _ZN6S219C34v156Ev();
extern void _ZN6S219C34v157Ev();
extern void _ZN6S219C34v158Ev();
extern void _ZN6S219C34v159Ev();
extern void _ZN6S219C34v160Ev();
extern void _ZN6S219C34v161Ev();
extern void _ZN6S219C34v162Ev();
extern void _ZN6S219C34v163Ev();
extern void _ZN6S219C34v164Ev();
extern void _ZN6S219C34v165Ev();
extern void _ZN6S219C34v166Ev();
extern void _ZN6S219C34v167Ev();
extern void _ZN6S219C34v168Ev();
extern void _ZN6S219C34v169Ev();
extern void _ZN6S219C34v170Ev();
extern void _ZN6S219C34v171Ev();
extern void _ZN6S219C34v172Ev();
extern void _ZN6S219C34v173Ev();
extern void _ZN6S219C34v174Ev();
extern void _ZN6S219C34v175Ev();
extern void _ZN6S219C34v176Ev();
extern void _ZN6S219C34v177Ev();
extern void _ZN6S219C34v178Ev();
extern void _ZN6S219C34v179Ev();
extern void _ZN6S219C34v180Ev();
extern void _ZN6S219C34v181Ev();
extern void _ZN6S219C34v182Ev();
extern void _ZN6S219C34v183Ev();
extern void _ZN6S219C34v184Ev();
extern void _ZN6S219C24v185Ev();
extern void _ZN6S219C24v186Ev();
extern void _ZN6S219C24v187Ev();
extern void _ZN6S219C24v188Ev();
extern void _ZN6S219C24v189Ev();
extern void _ZN6S219C24v190Ev();
extern void _ZN6S219C24v191Ev();
extern void _ZN6S219C24v192Ev();
extern void _ZN6S219C24v193Ev();
extern void _ZN6S219C24v194Ev();
extern void _ZN6S219C24v195Ev();
extern void _ZN6S219C24v196Ev();
extern void _ZN6S219C24v197Ev();
extern void _ZN6S219C24v198Ev();
extern void _ZN6S219C24v199Ev();
extern void _ZN6S219C24v200Ev();
extern void _ZN6S219C24v201Ev();
extern void _ZN6S219C24v202Ev();
extern void _ZN6S219C24v203Ev();
extern void _ZN6S219C24v204Ev();
extern void _ZN6S219C24v205Ev();
extern void _ZN6S219C24v206Ev();
extern void _ZN6S219C24v207Ev();
extern void _ZN6S219C12v1Ev();
extern void _ZN6S219C12v2Ev();
extern void _ZN6S219C12v3Ev();
static  VTBL_ENTRY vtc_S219C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S219C1[0]),
  (VTBL_ENTRY)&_ZN6S219C1D1Ev,
  (VTBL_ENTRY)&_ZN6S219C1D0Ev,
  (VTBL_ENTRY)&_ZN6S219C62v4Ev,
  (VTBL_ENTRY)&_ZN6S219C62v5Ev,
  (VTBL_ENTRY)&_ZN6S219C62v6Ev,
  (VTBL_ENTRY)&_ZN6S219C62v7Ev,
  (VTBL_ENTRY)&_ZN6S219C62v8Ev,
  (VTBL_ENTRY)&_ZN6S219C62v9Ev,
  (VTBL_ENTRY)&_ZN6S219C63v10Ev,
  (VTBL_ENTRY)&_ZN6S219C63v11Ev,
  (VTBL_ENTRY)&_ZN6S219C63v12Ev,
  (VTBL_ENTRY)&_ZN6S219C63v13Ev,
  (VTBL_ENTRY)&_ZN6S219C63v14Ev,
  (VTBL_ENTRY)&_ZN6S219C63v15Ev,
  (VTBL_ENTRY)&_ZN6S219C63v16Ev,
  (VTBL_ENTRY)&_ZN6S219C63v17Ev,
  (VTBL_ENTRY)&_ZN6S219C63v18Ev,
  (VTBL_ENTRY)&_ZN6S219C63v19Ev,
  (VTBL_ENTRY)&_ZN6S219C63v20Ev,
  (VTBL_ENTRY)&_ZN6S219C63v21Ev,
  (VTBL_ENTRY)&_ZN6S219C63v22Ev,
  (VTBL_ENTRY)&_ZN6S219C63v23Ev,
  (VTBL_ENTRY)&_ZN6S219C63v24Ev,
  (VTBL_ENTRY)&_ZN6S219C63v25Ev,
  (VTBL_ENTRY)&_ZN6S219C63v26Ev,
  (VTBL_ENTRY)&_ZN6S219C63v27Ev,
  (VTBL_ENTRY)&_ZN6S219C63v28Ev,
  (VTBL_ENTRY)&_ZN6S219C63v29Ev,
  (VTBL_ENTRY)&_ZN6S219C63v30Ev,
  (VTBL_ENTRY)&_ZN6S219C63v31Ev,
  (VTBL_ENTRY)&_ZN6S219C63v32Ev,
  (VTBL_ENTRY)&_ZN6S219C63v33Ev,
  (VTBL_ENTRY)&_ZN6S219C63v34Ev,
  (VTBL_ENTRY)&_ZN6S219C63v35Ev,
  (VTBL_ENTRY)&_ZN6S219C63v36Ev,
  (VTBL_ENTRY)&_ZN6S219C63v37Ev,
  (VTBL_ENTRY)&_ZN6S219C63v38Ev,
  (VTBL_ENTRY)&_ZN6S219C63v39Ev,
  (VTBL_ENTRY)&_ZN6S219C63v40Ev,
  (VTBL_ENTRY)&_ZN6S219C63v41Ev,
  (VTBL_ENTRY)&_ZN6S219C63v42Ev,
  (VTBL_ENTRY)&_ZN6S219C63v43Ev,
  (VTBL_ENTRY)&_ZN6S219C63v44Ev,
  (VTBL_ENTRY)&_ZN6S219C63v45Ev,
  (VTBL_ENTRY)&_ZN6S219C63v46Ev,
  (VTBL_ENTRY)&_ZN6S219C63v47Ev,
  (VTBL_ENTRY)&_ZN6S219C63v48Ev,
  (VTBL_ENTRY)&_ZN6S219C63v49Ev,
  (VTBL_ENTRY)&_ZN6S219C63v50Ev,
  (VTBL_ENTRY)&_ZN6S219C63v51Ev,
  (VTBL_ENTRY)&_ZN6S219C63v52Ev,
  (VTBL_ENTRY)&_ZN6S219C63v53Ev,
  (VTBL_ENTRY)&_ZN6S219C63v54Ev,
  (VTBL_ENTRY)&_ZN6S219C63v55Ev,
  (VTBL_ENTRY)&_ZN6S219C63v56Ev,
  (VTBL_ENTRY)&_ZN6S219C63v57Ev,
  (VTBL_ENTRY)&_ZN6S219C63v58Ev,
  (VTBL_ENTRY)&_ZN6S219C63v59Ev,
  (VTBL_ENTRY)&_ZN6S219C63v60Ev,
  (VTBL_ENTRY)&_ZN6S219C63v61Ev,
  (VTBL_ENTRY)&_ZN6S219C63v62Ev,
  (VTBL_ENTRY)&_ZN6S219C63v63Ev,
  (VTBL_ENTRY)&_ZN6S219C63v64Ev,
  (VTBL_ENTRY)&_ZN6S219C63v65Ev,
  (VTBL_ENTRY)&_ZN6S219C63v66Ev,
  (VTBL_ENTRY)&_ZN6S219C63v67Ev,
  (VTBL_ENTRY)&_ZN6S219C53v68Ev,
  (VTBL_ENTRY)&_ZN6S219C53v69Ev,
  (VTBL_ENTRY)&_ZN6S219C43v70Ev,
  (VTBL_ENTRY)&_ZN6S219C43v71Ev,
  (VTBL_ENTRY)&_ZN6S219C43v72Ev,
  (VTBL_ENTRY)&_ZN6S219C43v73Ev,
  (VTBL_ENTRY)&_ZN6S219C43v74Ev,
  (VTBL_ENTRY)&_ZN6S219C43v75Ev,
  (VTBL_ENTRY)&_ZN6S219C43v76Ev,
  (VTBL_ENTRY)&_ZN6S219C43v77Ev,
  (VTBL_ENTRY)&_ZN6S219C43v78Ev,
  (VTBL_ENTRY)&_ZN6S219C43v79Ev,
  (VTBL_ENTRY)&_ZN6S219C43v80Ev,
  (VTBL_ENTRY)&_ZN6S219C43v81Ev,
  (VTBL_ENTRY)&_ZN6S219C43v82Ev,
  (VTBL_ENTRY)&_ZN6S219C43v83Ev,
  (VTBL_ENTRY)&_ZN6S219C43v84Ev,
  (VTBL_ENTRY)&_ZN6S219C43v85Ev,
  (VTBL_ENTRY)&_ZN6S219C43v86Ev,
  (VTBL_ENTRY)&_ZN6S219C43v87Ev,
  (VTBL_ENTRY)&_ZN6S219C43v88Ev,
  (VTBL_ENTRY)&_ZN6S219C43v89Ev,
  (VTBL_ENTRY)&_ZN6S219C43v90Ev,
  (VTBL_ENTRY)&_ZN6S219C43v91Ev,
  (VTBL_ENTRY)&_ZN6S219C43v92Ev,
  (VTBL_ENTRY)&_ZN6S219C43v93Ev,
  (VTBL_ENTRY)&_ZN6S219C43v94Ev,
  (VTBL_ENTRY)&_ZN6S219C43v95Ev,
  (VTBL_ENTRY)&_ZN6S219C43v96Ev,
  (VTBL_ENTRY)&_ZN6S219C43v97Ev,
  (VTBL_ENTRY)&_ZN6S219C43v98Ev,
  (VTBL_ENTRY)&_ZN6S219C43v99Ev,
  (VTBL_ENTRY)&_ZN6S219C44v100Ev,
  (VTBL_ENTRY)&_ZN6S219C44v101Ev,
  (VTBL_ENTRY)&_ZN6S219C44v102Ev,
  (VTBL_ENTRY)&_ZN6S219C44v103Ev,
  (VTBL_ENTRY)&_ZN6S219C44v104Ev,
  (VTBL_ENTRY)&_ZN6S219C44v105Ev,
  (VTBL_ENTRY)&_ZN6S219C44v106Ev,
  (VTBL_ENTRY)&_ZN6S219C44v107Ev,
  (VTBL_ENTRY)&_ZN6S219C44v108Ev,
  (VTBL_ENTRY)&_ZN6S219C44v109Ev,
  (VTBL_ENTRY)&_ZN6S219C44v110Ev,
  (VTBL_ENTRY)&_ZN6S219C44v111Ev,
  (VTBL_ENTRY)&_ZN6S219C44v112Ev,
  (VTBL_ENTRY)&_ZN6S219C44v113Ev,
  (VTBL_ENTRY)&_ZN6S219C44v114Ev,
  (VTBL_ENTRY)&_ZN6S219C44v115Ev,
  (VTBL_ENTRY)&_ZN6S219C44v116Ev,
  (VTBL_ENTRY)&_ZN6S219C44v117Ev,
  (VTBL_ENTRY)&_ZN6S219C44v118Ev,
  (VTBL_ENTRY)&_ZN6S219C44v119Ev,
  (VTBL_ENTRY)&_ZN6S219C44v120Ev,
  (VTBL_ENTRY)&_ZN6S219C44v121Ev,
  (VTBL_ENTRY)&_ZN6S219C44v122Ev,
  (VTBL_ENTRY)&_ZN6S219C44v123Ev,
  (VTBL_ENTRY)&_ZN6S219C44v124Ev,
  (VTBL_ENTRY)&_ZN6S219C44v125Ev,
  (VTBL_ENTRY)&_ZN6S219C44v126Ev,
  (VTBL_ENTRY)&_ZN6S219C44v127Ev,
  (VTBL_ENTRY)&_ZN6S219C44v128Ev,
  (VTBL_ENTRY)&_ZN6S219C44v129Ev,
  (VTBL_ENTRY)&_ZN6S219C44v130Ev,
  (VTBL_ENTRY)&_ZN6S219C44v131Ev,
  (VTBL_ENTRY)&_ZN6S219C44v132Ev,
  (VTBL_ENTRY)&_ZN6S219C44v133Ev,
  (VTBL_ENTRY)&_ZN6S219C44v134Ev,
  (VTBL_ENTRY)&_ZN6S219C44v135Ev,
  (VTBL_ENTRY)&_ZN6S219C44v136Ev,
  (VTBL_ENTRY)&_ZN6S219C44v137Ev,
  (VTBL_ENTRY)&_ZN6S219C44v138Ev,
  (VTBL_ENTRY)&_ZN6S219C44v139Ev,
  (VTBL_ENTRY)&_ZN6S219C44v140Ev,
  (VTBL_ENTRY)&_ZN6S219C44v141Ev,
  (VTBL_ENTRY)&_ZN6S219C44v142Ev,
  (VTBL_ENTRY)&_ZN6S219C44v143Ev,
  (VTBL_ENTRY)&_ZN6S219C44v144Ev,
  (VTBL_ENTRY)&_ZN6S219C44v145Ev,
  (VTBL_ENTRY)&_ZN6S219C34v146Ev,
  (VTBL_ENTRY)&_ZN6S219C34v147Ev,
  (VTBL_ENTRY)&_ZN6S219C34v148Ev,
  (VTBL_ENTRY)&_ZN6S219C34v149Ev,
  (VTBL_ENTRY)&_ZN6S219C34v150Ev,
  (VTBL_ENTRY)&_ZN6S219C34v151Ev,
  (VTBL_ENTRY)&_ZN6S219C34v152Ev,
  (VTBL_ENTRY)&_ZN6S219C34v153Ev,
  (VTBL_ENTRY)&_ZN6S219C34v154Ev,
  (VTBL_ENTRY)&_ZN6S219C34v155Ev,
  (VTBL_ENTRY)&_ZN6S219C34v156Ev,
  (VTBL_ENTRY)&_ZN6S219C34v157Ev,
  (VTBL_ENTRY)&_ZN6S219C34v158Ev,
  (VTBL_ENTRY)&_ZN6S219C34v159Ev,
  (VTBL_ENTRY)&_ZN6S219C34v160Ev,
  (VTBL_ENTRY)&_ZN6S219C34v161Ev,
  (VTBL_ENTRY)&_ZN6S219C34v162Ev,
  (VTBL_ENTRY)&_ZN6S219C34v163Ev,
  (VTBL_ENTRY)&_ZN6S219C34v164Ev,
  (VTBL_ENTRY)&_ZN6S219C34v165Ev,
  (VTBL_ENTRY)&_ZN6S219C34v166Ev,
  (VTBL_ENTRY)&_ZN6S219C34v167Ev,
  (VTBL_ENTRY)&_ZN6S219C34v168Ev,
  (VTBL_ENTRY)&_ZN6S219C34v169Ev,
  (VTBL_ENTRY)&_ZN6S219C34v170Ev,
  (VTBL_ENTRY)&_ZN6S219C34v171Ev,
  (VTBL_ENTRY)&_ZN6S219C34v172Ev,
  (VTBL_ENTRY)&_ZN6S219C34v173Ev,
  (VTBL_ENTRY)&_ZN6S219C34v174Ev,
  (VTBL_ENTRY)&_ZN6S219C34v175Ev,
  (VTBL_ENTRY)&_ZN6S219C34v176Ev,
  (VTBL_ENTRY)&_ZN6S219C34v177Ev,
  (VTBL_ENTRY)&_ZN6S219C34v178Ev,
  (VTBL_ENTRY)&_ZN6S219C34v179Ev,
  (VTBL_ENTRY)&_ZN6S219C34v180Ev,
  (VTBL_ENTRY)&_ZN6S219C34v181Ev,
  (VTBL_ENTRY)&_ZN6S219C34v182Ev,
  (VTBL_ENTRY)&_ZN6S219C34v183Ev,
  (VTBL_ENTRY)&_ZN6S219C34v184Ev,
  (VTBL_ENTRY)&_ZN6S219C24v185Ev,
  (VTBL_ENTRY)&_ZN6S219C24v186Ev,
  (VTBL_ENTRY)&_ZN6S219C24v187Ev,
  (VTBL_ENTRY)&_ZN6S219C24v188Ev,
  (VTBL_ENTRY)&_ZN6S219C24v189Ev,
  (VTBL_ENTRY)&_ZN6S219C24v190Ev,
  (VTBL_ENTRY)&_ZN6S219C24v191Ev,
  (VTBL_ENTRY)&_ZN6S219C24v192Ev,
  (VTBL_ENTRY)&_ZN6S219C24v193Ev,
  (VTBL_ENTRY)&_ZN6S219C24v194Ev,
  (VTBL_ENTRY)&_ZN6S219C24v195Ev,
  (VTBL_ENTRY)&_ZN6S219C24v196Ev,
  (VTBL_ENTRY)&_ZN6S219C24v197Ev,
  (VTBL_ENTRY)&_ZN6S219C24v198Ev,
  (VTBL_ENTRY)&_ZN6S219C24v199Ev,
  (VTBL_ENTRY)&_ZN6S219C24v200Ev,
  (VTBL_ENTRY)&_ZN6S219C24v201Ev,
  (VTBL_ENTRY)&_ZN6S219C24v202Ev,
  (VTBL_ENTRY)&_ZN6S219C24v203Ev,
  (VTBL_ENTRY)&_ZN6S219C24v204Ev,
  (VTBL_ENTRY)&_ZN6S219C24v205Ev,
  (VTBL_ENTRY)&_ZN6S219C24v206Ev,
  (VTBL_ENTRY)&_ZN6S219C24v207Ev,
  (VTBL_ENTRY)&_ZN6S219C12v1Ev,
  (VTBL_ENTRY)&_ZN6S219C12v2Ev,
  (VTBL_ENTRY)&_ZN6S219C12v3Ev,
};
extern VTBL_ENTRY _ZTI6S219C1[];
extern  VTBL_ENTRY _ZTV6S219C1[];
Class_Descriptor cd_S219C1 = {  "S219C1", // class name
  bases_S219C1, 5,
  &(vtc_S219C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(896,644), // object size
  NSPAIRA(_ZTI6S219C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S219C1),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C7  {
  int s84c7f0;
  __tsi64 s84c7f1;
  void *s84c7f2[4];
  int s84c7f3[2];
  void *s84c7f4;
  ::S85C27_nt s84c7f5;
  void *s84c7f6[2];
  virtual  ~S84C7(); // _ZN5S84C7D1Ev
  virtual void  v4(); // _ZN5S84C72v4Ev
  virtual void  v5(); // _ZN5S84C72v5Ev
  virtual void  v6(); // _ZN5S84C72v6Ev
  virtual void  v7(); // _ZN5S84C72v7Ev
  virtual void  v8(); // _ZN5S84C72v8Ev
  virtual void  v9(); // _ZN5S84C72v9Ev
  virtual void  v10(); // _ZN5S84C73v10Ev
  virtual void  v11(); // _ZN5S84C73v11Ev
  virtual void  v12(); // _ZN5S84C73v12Ev
  virtual void  v13(); // _ZN5S84C73v13Ev
  virtual void  v14(); // _ZN5S84C73v14Ev
  virtual void  v15(); // _ZN5S84C73v15Ev
  virtual void  v16(); // _ZN5S84C73v16Ev
  virtual void  v17(); // _ZN5S84C73v17Ev
  virtual void  v18(); // _ZN5S84C73v18Ev
  virtual void  v19(); // _ZN5S84C73v19Ev
  virtual void  v20(); // _ZN5S84C73v20Ev
  virtual void  v21(); // _ZN5S84C73v21Ev
  virtual void  v22(); // _ZN5S84C73v22Ev
  virtual void  v23(); // _ZN5S84C73v23Ev
  virtual void  v24(); // _ZN5S84C73v24Ev
  virtual void  v25(); // _ZN5S84C73v25Ev
  virtual void  v26(); // _ZN5S84C73v26Ev
  virtual void  v27(); // _ZN5S84C73v27Ev
  virtual void  v28(); // _ZN5S84C73v28Ev
  virtual void  v29(); // _ZN5S84C73v29Ev
  virtual void  v30(); // _ZN5S84C73v30Ev
  virtual void  v31(); // _ZN5S84C73v31Ev
  virtual void  v32(); // _ZN5S84C73v32Ev
  virtual void  v33(); // _ZN5S84C73v33Ev
  virtual void  v34(); // _ZN5S84C73v34Ev
  virtual void  v35(); // _ZN5S84C73v35Ev
  virtual void  v36(); // _ZN5S84C73v36Ev
  virtual void  v37(); // _ZN5S84C73v37Ev
  virtual void  v38(); // _ZN5S84C73v38Ev
  virtual void  v39(); // _ZN5S84C73v39Ev
  virtual void  v40(); // _ZN5S84C73v40Ev
  virtual void  v41(); // _ZN5S84C73v41Ev
  virtual void  v42(); // _ZN5S84C73v42Ev
  virtual void  v43(); // _ZN5S84C73v43Ev
  virtual void  v44(); // _ZN5S84C73v44Ev
  virtual void  v45(); // _ZN5S84C73v45Ev
  virtual void  v46(); // _ZN5S84C73v46Ev
  virtual void  v47(); // _ZN5S84C73v47Ev
  virtual void  v48(); // _ZN5S84C73v48Ev
  virtual void  v49(); // _ZN5S84C73v49Ev
  virtual void  v50(); // _ZN5S84C73v50Ev
  virtual void  v51(); // _ZN5S84C73v51Ev
  virtual void  v52(); // _ZN5S84C73v52Ev
  virtual void  v53(); // _ZN5S84C73v53Ev
  virtual void  v54(); // _ZN5S84C73v54Ev
  virtual void  v55(); // _ZN5S84C73v55Ev
  virtual void  v56(); // _ZN5S84C73v56Ev
  virtual void  v57(); // _ZN5S84C73v57Ev
  virtual void  v58(); // _ZN5S84C73v58Ev
  virtual void  v59(); // _ZN5S84C73v59Ev
  virtual void  v60(); // _ZN5S84C73v60Ev
  virtual void  v61(); // _ZN5S84C73v61Ev
  virtual void  v62(); // _ZN5S84C73v62Ev
  virtual void  v63(); // _ZN5S84C73v63Ev
  virtual void  v64(); // _ZN5S84C73v64Ev
  virtual void  v65(); // _ZN5S84C73v65Ev
  virtual void  v66(); // _ZN5S84C73v66Ev
  virtual void  v67(); // _ZN5S84C73v67Ev
  S84C7(); // tgen
};
//SIG(-1 S84C7) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S84C7 ::~S84C7(){ note_dtor("S84C7", this);}
void  S84C7 ::v4(){vfunc_called(this, "_ZN5S84C72v4Ev");}
void  S84C7 ::v5(){vfunc_called(this, "_ZN5S84C72v5Ev");}
void  S84C7 ::v6(){vfunc_called(this, "_ZN5S84C72v6Ev");}
void  S84C7 ::v7(){vfunc_called(this, "_ZN5S84C72v7Ev");}
void  S84C7 ::v8(){vfunc_called(this, "_ZN5S84C72v8Ev");}
void  S84C7 ::v9(){vfunc_called(this, "_ZN5S84C72v9Ev");}
void  S84C7 ::v10(){vfunc_called(this, "_ZN5S84C73v10Ev");}
void  S84C7 ::v11(){vfunc_called(this, "_ZN5S84C73v11Ev");}
void  S84C7 ::v12(){vfunc_called(this, "_ZN5S84C73v12Ev");}
void  S84C7 ::v13(){vfunc_called(this, "_ZN5S84C73v13Ev");}
void  S84C7 ::v14(){vfunc_called(this, "_ZN5S84C73v14Ev");}
void  S84C7 ::v15(){vfunc_called(this, "_ZN5S84C73v15Ev");}
void  S84C7 ::v16(){vfunc_called(this, "_ZN5S84C73v16Ev");}
void  S84C7 ::v17(){vfunc_called(this, "_ZN5S84C73v17Ev");}
void  S84C7 ::v18(){vfunc_called(this, "_ZN5S84C73v18Ev");}
void  S84C7 ::v19(){vfunc_called(this, "_ZN5S84C73v19Ev");}
void  S84C7 ::v20(){vfunc_called(this, "_ZN5S84C73v20Ev");}
void  S84C7 ::v21(){vfunc_called(this, "_ZN5S84C73v21Ev");}
void  S84C7 ::v22(){vfunc_called(this, "_ZN5S84C73v22Ev");}
void  S84C7 ::v23(){vfunc_called(this, "_ZN5S84C73v23Ev");}
void  S84C7 ::v24(){vfunc_called(this, "_ZN5S84C73v24Ev");}
void  S84C7 ::v25(){vfunc_called(this, "_ZN5S84C73v25Ev");}
void  S84C7 ::v26(){vfunc_called(this, "_ZN5S84C73v26Ev");}
void  S84C7 ::v27(){vfunc_called(this, "_ZN5S84C73v27Ev");}
void  S84C7 ::v28(){vfunc_called(this, "_ZN5S84C73v28Ev");}
void  S84C7 ::v29(){vfunc_called(this, "_ZN5S84C73v29Ev");}
void  S84C7 ::v30(){vfunc_called(this, "_ZN5S84C73v30Ev");}
void  S84C7 ::v31(){vfunc_called(this, "_ZN5S84C73v31Ev");}
void  S84C7 ::v32(){vfunc_called(this, "_ZN5S84C73v32Ev");}
void  S84C7 ::v33(){vfunc_called(this, "_ZN5S84C73v33Ev");}
void  S84C7 ::v34(){vfunc_called(this, "_ZN5S84C73v34Ev");}
void  S84C7 ::v35(){vfunc_called(this, "_ZN5S84C73v35Ev");}
void  S84C7 ::v36(){vfunc_called(this, "_ZN5S84C73v36Ev");}
void  S84C7 ::v37(){vfunc_called(this, "_ZN5S84C73v37Ev");}
void  S84C7 ::v38(){vfunc_called(this, "_ZN5S84C73v38Ev");}
void  S84C7 ::v39(){vfunc_called(this, "_ZN5S84C73v39Ev");}
void  S84C7 ::v40(){vfunc_called(this, "_ZN5S84C73v40Ev");}
void  S84C7 ::v41(){vfunc_called(this, "_ZN5S84C73v41Ev");}
void  S84C7 ::v42(){vfunc_called(this, "_ZN5S84C73v42Ev");}
void  S84C7 ::v43(){vfunc_called(this, "_ZN5S84C73v43Ev");}
void  S84C7 ::v44(){vfunc_called(this, "_ZN5S84C73v44Ev");}
void  S84C7 ::v45(){vfunc_called(this, "_ZN5S84C73v45Ev");}
void  S84C7 ::v46(){vfunc_called(this, "_ZN5S84C73v46Ev");}
void  S84C7 ::v47(){vfunc_called(this, "_ZN5S84C73v47Ev");}
void  S84C7 ::v48(){vfunc_called(this, "_ZN5S84C73v48Ev");}
void  S84C7 ::v49(){vfunc_called(this, "_ZN5S84C73v49Ev");}
void  S84C7 ::v50(){vfunc_called(this, "_ZN5S84C73v50Ev");}
void  S84C7 ::v51(){vfunc_called(this, "_ZN5S84C73v51Ev");}
void  S84C7 ::v52(){vfunc_called(this, "_ZN5S84C73v52Ev");}
void  S84C7 ::v53(){vfunc_called(this, "_ZN5S84C73v53Ev");}
void  S84C7 ::v54(){vfunc_called(this, "_ZN5S84C73v54Ev");}
void  S84C7 ::v55(){vfunc_called(this, "_ZN5S84C73v55Ev");}
void  S84C7 ::v56(){vfunc_called(this, "_ZN5S84C73v56Ev");}
void  S84C7 ::v57(){vfunc_called(this, "_ZN5S84C73v57Ev");}
void  S84C7 ::v58(){vfunc_called(this, "_ZN5S84C73v58Ev");}
void  S84C7 ::v59(){vfunc_called(this, "_ZN5S84C73v59Ev");}
void  S84C7 ::v60(){vfunc_called(this, "_ZN5S84C73v60Ev");}
void  S84C7 ::v61(){vfunc_called(this, "_ZN5S84C73v61Ev");}
void  S84C7 ::v62(){vfunc_called(this, "_ZN5S84C73v62Ev");}
void  S84C7 ::v63(){vfunc_called(this, "_ZN5S84C73v63Ev");}
void  S84C7 ::v64(){vfunc_called(this, "_ZN5S84C73v64Ev");}
void  S84C7 ::v65(){vfunc_called(this, "_ZN5S84C73v65Ev");}
void  S84C7 ::v66(){vfunc_called(this, "_ZN5S84C73v66Ev");}
void  S84C7 ::v67(){vfunc_called(this, "_ZN5S84C73v67Ev");}
S84C7 ::S84C7(){ note_ctor("S84C7", this);} // tgen

static void Test_S84C7()
{
  extern Class_Descriptor cd_S84C7;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S84C7, buf);
    S84C7 *dp, &lv = *(dp=new (buf) S84C7());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S84C7)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C7)");
    check_field_offset(lv, s84c7f0, ABISELECT(8,4), "S84C7.s84c7f0");
    check_field_offset(lv, s84c7f1, ABISELECT(16,8), "S84C7.s84c7f1");
    check_field_offset(lv, s84c7f2, ABISELECT(24,16), "S84C7.s84c7f2");
    check_field_offset(lv, s84c7f3, ABISELECT(56,32), "S84C7.s84c7f3");
    check_field_offset(lv, s84c7f4, ABISELECT(64,40), "S84C7.s84c7f4");
    check_field_offset(lv, s84c7f5, ABISELECT(72,44), "S84C7.s84c7f5");
    check_field_offset(lv, s84c7f6, ABISELECT(80,52), "S84C7.s84c7f6");
    test_class_info(&lv, &cd_S84C7);
    dp->~S84C7();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C7(Test_S84C7, "S84C7", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S84C7C1Ev();
extern void _ZN5S84C7D1Ev();
Name_Map name_map_S84C7[] = {
  NSPAIR(_ZN5S84C7C1Ev),
  NSPAIR(_ZN5S84C7D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI5S84C7[];
extern void _ZN5S84C7D1Ev();
extern void _ZN5S84C7D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
static  VTBL_ENTRY vtc_S84C7[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C7[0]),
  (VTBL_ENTRY)&_ZN5S84C7D1Ev,
  (VTBL_ENTRY)&_ZN5S84C7D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
};
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
Class_Descriptor cd_S84C7 = {  "S84C7", // class name
  0,0,//no base classes
  &(vtc_S84C7[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S84C7),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV5S84C7),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C6  : S84C7 {
  virtual  ~S84C6(); // _ZN5S84C6D1Ev
  virtual void  v68(); // _ZN5S84C63v68Ev
  virtual void  v69(); // _ZN5S84C63v69Ev
  S84C6(); // tgen
};
//SIG(-1 S84C6) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S84C6 ::~S84C6(){ note_dtor("S84C6", this);}
void  S84C6 ::v68(){vfunc_called(this, "_ZN5S84C63v68Ev");}
void  S84C6 ::v69(){vfunc_called(this, "_ZN5S84C63v69Ev");}
S84C6 ::S84C6(){ note_ctor("S84C6", this);} // tgen

static void Test_S84C6()
{
  extern Class_Descriptor cd_S84C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S84C6, buf);
    S84C6 *dp, &lv = *(dp=new (buf) S84C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S84C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C6)");
    check_base_class_offset(lv, (S84C7*), 0, "S84C6");
    test_class_info(&lv, &cd_S84C6);
    dp->~S84C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C6(Test_S84C6, "S84C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN5S84C6C1Ev();
extern void _ZN5S84C6D1Ev();
Name_Map name_map_S84C6[] = {
  NSPAIR(_ZN5S84C6C1Ev),
  NSPAIR(_ZN5S84C6D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S84C7;
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
static Base_Class bases_S84C6[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S84C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S84C6[];
extern void _ZN5S84C6D1Ev();
extern void _ZN5S84C6D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
extern void _ZN5S84C63v68Ev();
extern void _ZN5S84C63v69Ev();
static  VTBL_ENTRY vtc_S84C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C6[0]),
  (VTBL_ENTRY)&_ZN5S84C6D1Ev,
  (VTBL_ENTRY)&_ZN5S84C6D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
  (VTBL_ENTRY)&_ZN5S84C63v68Ev,
  (VTBL_ENTRY)&_ZN5S84C63v69Ev,
};
extern VTBL_ENTRY _ZTI5S84C6[];
extern  VTBL_ENTRY _ZTV5S84C6[];
Class_Descriptor cd_S84C6 = {  "S84C6", // class name
  bases_S84C6, 1,
  &(vtc_S84C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI5S84C6),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S84C6),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C5  : S84C6 {
  ::S80C9_nt s84c5f0;
  int s84c5f1;
  unsigned int s84c5f2:1;
  unsigned int s84c5f3:1;
  unsigned int s84c5f4:1;
  unsigned int s84c5f5:1;
  ::S85C35 s84c5f6;
  ::S85C22_nt s84c5f7;
  void *s84c5f8;
  ::S80C31 s84c5f9;
  ::S80C31 s84c5f10;
  ::S80C29 s84c5f11;
  ::S80C19 s84c5f12;
  char s84c5f13;
  int s84c5f14;
  void *s84c5f15;
  ::S85C27_nt s84c5f16;
  ::S85C27_nt s84c5f17;
  ::S85C27_nt s84c5f18;
  ::S85C27_nt s84c5f19;
  ::S85C27_nt s84c5f20;
  ::S85C27_nt s84c5f21;
  ::S80C21_nt s84c5f22;
  ::S80C21_nt s84c5f23;
  ::S80C21_nt s84c5f24;
  ::S80C21_nt s84c5f25;
  ::S80C21_nt s84c5f26;
  ::S80C21_nt s84c5f27;
  ::S80C21_nt s84c5f28;
  ::S80C21_nt s84c5f29;
  ::S80C21_nt s84c5f30;
  ::S80C21_nt s84c5f31;
  virtual  ~S84C5(); // _ZN5S84C5D1Ev
  virtual void  v70(); // _ZN5S84C53v70Ev
  virtual void  v71(); // _ZN5S84C53v71Ev
  virtual void  v72(); // _ZN5S84C53v72Ev
  virtual void  v73(); // _ZN5S84C53v73Ev
  virtual void  v74(); // _ZN5S84C53v74Ev
  virtual void  v75(); // _ZN5S84C53v75Ev
  virtual void  v76(); // _ZN5S84C53v76Ev
  virtual void  v77(); // _ZN5S84C53v77Ev
  virtual void  v78(); // _ZN5S84C53v78Ev
  virtual void  v79(); // _ZN5S84C53v79Ev
  virtual void  v80(); // _ZN5S84C53v80Ev
  virtual void  v81(); // _ZN5S84C53v81Ev
  virtual void  v82(); // _ZN5S84C53v82Ev
  virtual void  v83(); // _ZN5S84C53v83Ev
  virtual void  v84(); // _ZN5S84C53v84Ev
  virtual void  v85(); // _ZN5S84C53v85Ev
  virtual void  v86(); // _ZN5S84C53v86Ev
  virtual void  v87(); // _ZN5S84C53v87Ev
  virtual void  v88(); // _ZN5S84C53v88Ev
  virtual void  v89(); // _ZN5S84C53v89Ev
  virtual void  v90(); // _ZN5S84C53v90Ev
  virtual void  v91(); // _ZN5S84C53v91Ev
  virtual void  v92(); // _ZN5S84C53v92Ev
  virtual void  v93(); // _ZN5S84C53v93Ev
  virtual void  v94(); // _ZN5S84C53v94Ev
  virtual void  v95(); // _ZN5S84C53v95Ev
  virtual void  v96(); // _ZN5S84C53v96Ev
  virtual void  v97(); // _ZN5S84C53v97Ev
  virtual void  v98(); // _ZN5S84C53v98Ev
  virtual void  v99(); // _ZN5S84C53v99Ev
  virtual void  v100(); // _ZN5S84C54v100Ev
  virtual void  v101(); // _ZN5S84C54v101Ev
  virtual void  v102(); // _ZN5S84C54v102Ev
  virtual void  v103(); // _ZN5S84C54v103Ev
  virtual void  v104(); // _ZN5S84C54v104Ev
  virtual void  v105(); // _ZN5S84C54v105Ev
  virtual void  v106(); // _ZN5S84C54v106Ev
  virtual void  v107(); // _ZN5S84C54v107Ev
  virtual void  v108(); // _ZN5S84C54v108Ev
  virtual void  v109(); // _ZN5S84C54v109Ev
  virtual void  v110(); // _ZN5S84C54v110Ev
  virtual void  v111(); // _ZN5S84C54v111Ev
  virtual void  v112(); // _ZN5S84C54v112Ev
  virtual void  v113(); // _ZN5S84C54v113Ev
  virtual void  v114(); // _ZN5S84C54v114Ev
  virtual void  v115(); // _ZN5S84C54v115Ev
  virtual void  v116(); // _ZN5S84C54v116Ev
  virtual void  v117(); // _ZN5S84C54v117Ev
  virtual void  v118(); // _ZN5S84C54v118Ev
  virtual void  v119(); // _ZN5S84C54v119Ev
  virtual void  v120(); // _ZN5S84C54v120Ev
  virtual void  v121(); // _ZN5S84C54v121Ev
  virtual void  v122(); // _ZN5S84C54v122Ev
  virtual void  v123(); // _ZN5S84C54v123Ev
  virtual void  v124(); // _ZN5S84C54v124Ev
  virtual void  v125(); // _ZN5S84C54v125Ev
  virtual void  v126(); // _ZN5S84C54v126Ev
  virtual void  v127(); // _ZN5S84C54v127Ev
  virtual void  v128(); // _ZN5S84C54v128Ev
  virtual void  v129(); // _ZN5S84C54v129Ev
  virtual void  v130(); // _ZN5S84C54v130Ev
  virtual void  v131(); // _ZN5S84C54v131Ev
  virtual void  v132(); // _ZN5S84C54v132Ev
  virtual void  v133(); // _ZN5S84C54v133Ev
  virtual void  v134(); // _ZN5S84C54v134Ev
  virtual void  v135(); // _ZN5S84C54v135Ev
  virtual void  v136(); // _ZN5S84C54v136Ev
  virtual void  v137(); // _ZN5S84C54v137Ev
  virtual void  v138(); // _ZN5S84C54v138Ev
  virtual void  v139(); // _ZN5S84C54v139Ev
  virtual void  v140(); // _ZN5S84C54v140Ev
  virtual void  v141(); // _ZN5S84C54v141Ev
  virtual void  v142(); // _ZN5S84C54v142Ev
  virtual void  v143(); // _ZN5S84C54v143Ev
  virtual void  v144(); // _ZN5S84C54v144Ev
  virtual void  v145(); // _ZN5S84C54v145Ev
  S84C5(); // tgen
};
//SIG(-1 S84C5) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S84C5 ::~S84C5(){ note_dtor("S84C5", this);}
void  S84C5 ::v70(){vfunc_called(this, "_ZN5S84C53v70Ev");}
void  S84C5 ::v71(){vfunc_called(this, "_ZN5S84C53v71Ev");}
void  S84C5 ::v72(){vfunc_called(this, "_ZN5S84C53v72Ev");}
void  S84C5 ::v73(){vfunc_called(this, "_ZN5S84C53v73Ev");}
void  S84C5 ::v74(){vfunc_called(this, "_ZN5S84C53v74Ev");}
void  S84C5 ::v75(){vfunc_called(this, "_ZN5S84C53v75Ev");}
void  S84C5 ::v76(){vfunc_called(this, "_ZN5S84C53v76Ev");}
void  S84C5 ::v77(){vfunc_called(this, "_ZN5S84C53v77Ev");}
void  S84C5 ::v78(){vfunc_called(this, "_ZN5S84C53v78Ev");}
void  S84C5 ::v79(){vfunc_called(this, "_ZN5S84C53v79Ev");}
void  S84C5 ::v80(){vfunc_called(this, "_ZN5S84C53v80Ev");}
void  S84C5 ::v81(){vfunc_called(this, "_ZN5S84C53v81Ev");}
void  S84C5 ::v82(){vfunc_called(this, "_ZN5S84C53v82Ev");}
void  S84C5 ::v83(){vfunc_called(this, "_ZN5S84C53v83Ev");}
void  S84C5 ::v84(){vfunc_called(this, "_ZN5S84C53v84Ev");}
void  S84C5 ::v85(){vfunc_called(this, "_ZN5S84C53v85Ev");}
void  S84C5 ::v86(){vfunc_called(this, "_ZN5S84C53v86Ev");}
void  S84C5 ::v87(){vfunc_called(this, "_ZN5S84C53v87Ev");}
void  S84C5 ::v88(){vfunc_called(this, "_ZN5S84C53v88Ev");}
void  S84C5 ::v89(){vfunc_called(this, "_ZN5S84C53v89Ev");}
void  S84C5 ::v90(){vfunc_called(this, "_ZN5S84C53v90Ev");}
void  S84C5 ::v91(){vfunc_called(this, "_ZN5S84C53v91Ev");}
void  S84C5 ::v92(){vfunc_called(this, "_ZN5S84C53v92Ev");}
void  S84C5 ::v93(){vfunc_called(this, "_ZN5S84C53v93Ev");}
void  S84C5 ::v94(){vfunc_called(this, "_ZN5S84C53v94Ev");}
void  S84C5 ::v95(){vfunc_called(this, "_ZN5S84C53v95Ev");}
void  S84C5 ::v96(){vfunc_called(this, "_ZN5S84C53v96Ev");}
void  S84C5 ::v97(){vfunc_called(this, "_ZN5S84C53v97Ev");}
void  S84C5 ::v98(){vfunc_called(this, "_ZN5S84C53v98Ev");}
void  S84C5 ::v99(){vfunc_called(this, "_ZN5S84C53v99Ev");}
void  S84C5 ::v100(){vfunc_called(this, "_ZN5S84C54v100Ev");}
void  S84C5 ::v101(){vfunc_called(this, "_ZN5S84C54v101Ev");}
void  S84C5 ::v102(){vfunc_called(this, "_ZN5S84C54v102Ev");}
void  S84C5 ::v103(){vfunc_called(this, "_ZN5S84C54v103Ev");}
void  S84C5 ::v104(){vfunc_called(this, "_ZN5S84C54v104Ev");}
void  S84C5 ::v105(){vfunc_called(this, "_ZN5S84C54v105Ev");}
void  S84C5 ::v106(){vfunc_called(this, "_ZN5S84C54v106Ev");}
void  S84C5 ::v107(){vfunc_called(this, "_ZN5S84C54v107Ev");}
void  S84C5 ::v108(){vfunc_called(this, "_ZN5S84C54v108Ev");}
void  S84C5 ::v109(){vfunc_called(this, "_ZN5S84C54v109Ev");}
void  S84C5 ::v110(){vfunc_called(this, "_ZN5S84C54v110Ev");}
void  S84C5 ::v111(){vfunc_called(this, "_ZN5S84C54v111Ev");}
void  S84C5 ::v112(){vfunc_called(this, "_ZN5S84C54v112Ev");}
void  S84C5 ::v113(){vfunc_called(this, "_ZN5S84C54v113Ev");}
void  S84C5 ::v114(){vfunc_called(this, "_ZN5S84C54v114Ev");}
void  S84C5 ::v115(){vfunc_called(this, "_ZN5S84C54v115Ev");}
void  S84C5 ::v116(){vfunc_called(this, "_ZN5S84C54v116Ev");}
void  S84C5 ::v117(){vfunc_called(this, "_ZN5S84C54v117Ev");}
void  S84C5 ::v118(){vfunc_called(this, "_ZN5S84C54v118Ev");}
void  S84C5 ::v119(){vfunc_called(this, "_ZN5S84C54v119Ev");}
void  S84C5 ::v120(){vfunc_called(this, "_ZN5S84C54v120Ev");}
void  S84C5 ::v121(){vfunc_called(this, "_ZN5S84C54v121Ev");}
void  S84C5 ::v122(){vfunc_called(this, "_ZN5S84C54v122Ev");}
void  S84C5 ::v123(){vfunc_called(this, "_ZN5S84C54v123Ev");}
void  S84C5 ::v124(){vfunc_called(this, "_ZN5S84C54v124Ev");}
void  S84C5 ::v125(){vfunc_called(this, "_ZN5S84C54v125Ev");}
void  S84C5 ::v126(){vfunc_called(this, "_ZN5S84C54v126Ev");}
void  S84C5 ::v127(){vfunc_called(this, "_ZN5S84C54v127Ev");}
void  S84C5 ::v128(){vfunc_called(this, "_ZN5S84C54v128Ev");}
void  S84C5 ::v129(){vfunc_called(this, "_ZN5S84C54v129Ev");}
void  S84C5 ::v130(){vfunc_called(this, "_ZN5S84C54v130Ev");}
void  S84C5 ::v131(){vfunc_called(this, "_ZN5S84C54v131Ev");}
void  S84C5 ::v132(){vfunc_called(this, "_ZN5S84C54v132Ev");}
void  S84C5 ::v133(){vfunc_called(this, "_ZN5S84C54v133Ev");}
void  S84C5 ::v134(){vfunc_called(this, "_ZN5S84C54v134Ev");}
void  S84C5 ::v135(){vfunc_called(this, "_ZN5S84C54v135Ev");}
void  S84C5 ::v136(){vfunc_called(this, "_ZN5S84C54v136Ev");}
void  S84C5 ::v137(){vfunc_called(this, "_ZN5S84C54v137Ev");}
void  S84C5 ::v138(){vfunc_called(this, "_ZN5S84C54v138Ev");}
void  S84C5 ::v139(){vfunc_called(this, "_ZN5S84C54v139Ev");}
void  S84C5 ::v140(){vfunc_called(this, "_ZN5S84C54v140Ev");}
void  S84C5 ::v141(){vfunc_called(this, "_ZN5S84C54v141Ev");}
void  S84C5 ::v142(){vfunc_called(this, "_ZN5S84C54v142Ev");}
void  S84C5 ::v143(){vfunc_called(this, "_ZN5S84C54v143Ev");}
void  S84C5 ::v144(){vfunc_called(this, "_ZN5S84C54v144Ev");}
void  S84C5 ::v145(){vfunc_called(this, "_ZN5S84C54v145Ev");}
S84C5 ::S84C5(){ note_ctor("S84C5", this);} // tgen

static void Test_S84C5()
{
  extern Class_Descriptor cd_S84C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S84C5, buf);
    S84C5 *dp, &lv = *(dp=new (buf) S84C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S84C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C5)");
    check_base_class_offset(lv, (S84C7*)(S84C6*), 0, "S84C5");
    check_base_class_offset(lv, (S84C6*), 0, "S84C5");
    check_field_offset(lv, s84c5f0, ABISELECT(96,60), "S84C5.s84c5f0");
    check_field_offset(lv, s84c5f1, ABISELECT(124,88), "S84C5.s84c5f1");
    set_bf_and_test(lv, s84c5f2, ABISELECT(128,92), 0, 1, 1, "S84C5");
    set_bf_and_test(lv, s84c5f3, ABISELECT(128,92), 1, 1, 1, "S84C5");
    set_bf_and_test(lv, s84c5f4, ABISELECT(128,92), 2, 1, 1, "S84C5");
    set_bf_and_test(lv, s84c5f5, ABISELECT(128,92), 3, 1, 1, "S84C5");
    check_field_offset(lv, s84c5f6, ABISELECT(136,96), "S84C5.s84c5f6");
    check_field_offset(lv, s84c5f7, ABISELECT(152,108), "S84C5.s84c5f7");
    check_field_offset(lv, s84c5f8, ABISELECT(168,120), "S84C5.s84c5f8");
    check_field_offset(lv, s84c5f9, ABISELECT(176,124), "S84C5.s84c5f9");
    check_field_offset(lv, s84c5f10, ABISELECT(192,136), "S84C5.s84c5f10");
    check_field_offset(lv, s84c5f11, ABISELECT(208,148), "S84C5.s84c5f11");
    check_field_offset(lv, s84c5f12, ABISELECT(224,160), "S84C5.s84c5f12");
    check_field_offset(lv, s84c5f13, ABISELECT(240,172), "S84C5.s84c5f13");
    check_field_offset(lv, s84c5f14, ABISELECT(244,176), "S84C5.s84c5f14");
    check_field_offset(lv, s84c5f15, ABISELECT(248,180), "S84C5.s84c5f15");
    check_field_offset(lv, s84c5f16, ABISELECT(256,184), "S84C5.s84c5f16");
    check_field_offset(lv, s84c5f17, ABISELECT(264,192), "S84C5.s84c5f17");
    check_field_offset(lv, s84c5f18, ABISELECT(272,200), "S84C5.s84c5f18");
    check_field_offset(lv, s84c5f19, ABISELECT(280,208), "S84C5.s84c5f19");
    check_field_offset(lv, s84c5f20, ABISELECT(288,216), "S84C5.s84c5f20");
    check_field_offset(lv, s84c5f21, ABISELECT(296,224), "S84C5.s84c5f21");
    check_field_offset(lv, s84c5f22, ABISELECT(304,232), "S84C5.s84c5f22");
    check_field_offset(lv, s84c5f23, ABISELECT(320,244), "S84C5.s84c5f23");
    check_field_offset(lv, s84c5f24, ABISELECT(336,256), "S84C5.s84c5f24");
    check_field_offset(lv, s84c5f25, ABISELECT(352,268), "S84C5.s84c5f25");
    check_field_offset(lv, s84c5f26, ABISELECT(368,280), "S84C5.s84c5f26");
    check_field_offset(lv, s84c5f27, ABISELECT(384,292), "S84C5.s84c5f27");
    check_field_offset(lv, s84c5f28, ABISELECT(400,304), "S84C5.s84c5f28");
    check_field_offset(lv, s84c5f29, ABISELECT(416,316), "S84C5.s84c5f29");
    check_field_offset(lv, s84c5f30, ABISELECT(432,328), "S84C5.s84c5f30");
    check_field_offset(lv, s84c5f31, ABISELECT(448,340), "S84C5.s84c5f31");
    test_class_info(&lv, &cd_S84C5);
    dp->~S84C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C5(Test_S84C5, "S84C5", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN5S84C5C1Ev();
extern void _ZN5S84C5D1Ev();
Name_Map name_map_S84C5[] = {
  NSPAIR(_ZN5S84C5C1Ev),
  NSPAIR(_ZN5S84C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S84C7;
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
extern Class_Descriptor cd_S84C6;
extern VTBL_ENTRY _ZTI5S84C6[];
extern  VTBL_ENTRY _ZTV5S84C6[];
static Base_Class bases_S84C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S84C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S84C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S84C5[];
extern void _ZN5S84C5D1Ev();
extern void _ZN5S84C5D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
extern void _ZN5S84C63v68Ev();
extern void _ZN5S84C63v69Ev();
extern void _ZN5S84C53v70Ev();
extern void _ZN5S84C53v71Ev();
extern void _ZN5S84C53v72Ev();
extern void _ZN5S84C53v73Ev();
extern void _ZN5S84C53v74Ev();
extern void _ZN5S84C53v75Ev();
extern void _ZN5S84C53v76Ev();
extern void _ZN5S84C53v77Ev();
extern void _ZN5S84C53v78Ev();
extern void _ZN5S84C53v79Ev();
extern void _ZN5S84C53v80Ev();
extern void _ZN5S84C53v81Ev();
extern void _ZN5S84C53v82Ev();
extern void _ZN5S84C53v83Ev();
extern void _ZN5S84C53v84Ev();
extern void _ZN5S84C53v85Ev();
extern void _ZN5S84C53v86Ev();
extern void _ZN5S84C53v87Ev();
extern void _ZN5S84C53v88Ev();
extern void _ZN5S84C53v89Ev();
extern void _ZN5S84C53v90Ev();
extern void _ZN5S84C53v91Ev();
extern void _ZN5S84C53v92Ev();
extern void _ZN5S84C53v93Ev();
extern void _ZN5S84C53v94Ev();
extern void _ZN5S84C53v95Ev();
extern void _ZN5S84C53v96Ev();
extern void _ZN5S84C53v97Ev();
extern void _ZN5S84C53v98Ev();
extern void _ZN5S84C53v99Ev();
extern void _ZN5S84C54v100Ev();
extern void _ZN5S84C54v101Ev();
extern void _ZN5S84C54v102Ev();
extern void _ZN5S84C54v103Ev();
extern void _ZN5S84C54v104Ev();
extern void _ZN5S84C54v105Ev();
extern void _ZN5S84C54v106Ev();
extern void _ZN5S84C54v107Ev();
extern void _ZN5S84C54v108Ev();
extern void _ZN5S84C54v109Ev();
extern void _ZN5S84C54v110Ev();
extern void _ZN5S84C54v111Ev();
extern void _ZN5S84C54v112Ev();
extern void _ZN5S84C54v113Ev();
extern void _ZN5S84C54v114Ev();
extern void _ZN5S84C54v115Ev();
extern void _ZN5S84C54v116Ev();
extern void _ZN5S84C54v117Ev();
extern void _ZN5S84C54v118Ev();
extern void _ZN5S84C54v119Ev();
extern void _ZN5S84C54v120Ev();
extern void _ZN5S84C54v121Ev();
extern void _ZN5S84C54v122Ev();
extern void _ZN5S84C54v123Ev();
extern void _ZN5S84C54v124Ev();
extern void _ZN5S84C54v125Ev();
extern void _ZN5S84C54v126Ev();
extern void _ZN5S84C54v127Ev();
extern void _ZN5S84C54v128Ev();
extern void _ZN5S84C54v129Ev();
extern void _ZN5S84C54v130Ev();
extern void _ZN5S84C54v131Ev();
extern void _ZN5S84C54v132Ev();
extern void _ZN5S84C54v133Ev();
extern void _ZN5S84C54v134Ev();
extern void _ZN5S84C54v135Ev();
extern void _ZN5S84C54v136Ev();
extern void _ZN5S84C54v137Ev();
extern void _ZN5S84C54v138Ev();
extern void _ZN5S84C54v139Ev();
extern void _ZN5S84C54v140Ev();
extern void _ZN5S84C54v141Ev();
extern void _ZN5S84C54v142Ev();
extern void _ZN5S84C54v143Ev();
extern void _ZN5S84C54v144Ev();
extern void _ZN5S84C54v145Ev();
static  VTBL_ENTRY vtc_S84C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C5[0]),
  (VTBL_ENTRY)&_ZN5S84C5D1Ev,
  (VTBL_ENTRY)&_ZN5S84C5D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
  (VTBL_ENTRY)&_ZN5S84C63v68Ev,
  (VTBL_ENTRY)&_ZN5S84C63v69Ev,
  (VTBL_ENTRY)&_ZN5S84C53v70Ev,
  (VTBL_ENTRY)&_ZN5S84C53v71Ev,
  (VTBL_ENTRY)&_ZN5S84C53v72Ev,
  (VTBL_ENTRY)&_ZN5S84C53v73Ev,
  (VTBL_ENTRY)&_ZN5S84C53v74Ev,
  (VTBL_ENTRY)&_ZN5S84C53v75Ev,
  (VTBL_ENTRY)&_ZN5S84C53v76Ev,
  (VTBL_ENTRY)&_ZN5S84C53v77Ev,
  (VTBL_ENTRY)&_ZN5S84C53v78Ev,
  (VTBL_ENTRY)&_ZN5S84C53v79Ev,
  (VTBL_ENTRY)&_ZN5S84C53v80Ev,
  (VTBL_ENTRY)&_ZN5S84C53v81Ev,
  (VTBL_ENTRY)&_ZN5S84C53v82Ev,
  (VTBL_ENTRY)&_ZN5S84C53v83Ev,
  (VTBL_ENTRY)&_ZN5S84C53v84Ev,
  (VTBL_ENTRY)&_ZN5S84C53v85Ev,
  (VTBL_ENTRY)&_ZN5S84C53v86Ev,
  (VTBL_ENTRY)&_ZN5S84C53v87Ev,
  (VTBL_ENTRY)&_ZN5S84C53v88Ev,
  (VTBL_ENTRY)&_ZN5S84C53v89Ev,
  (VTBL_ENTRY)&_ZN5S84C53v90Ev,
  (VTBL_ENTRY)&_ZN5S84C53v91Ev,
  (VTBL_ENTRY)&_ZN5S84C53v92Ev,
  (VTBL_ENTRY)&_ZN5S84C53v93Ev,
  (VTBL_ENTRY)&_ZN5S84C53v94Ev,
  (VTBL_ENTRY)&_ZN5S84C53v95Ev,
  (VTBL_ENTRY)&_ZN5S84C53v96Ev,
  (VTBL_ENTRY)&_ZN5S84C53v97Ev,
  (VTBL_ENTRY)&_ZN5S84C53v98Ev,
  (VTBL_ENTRY)&_ZN5S84C53v99Ev,
  (VTBL_ENTRY)&_ZN5S84C54v100Ev,
  (VTBL_ENTRY)&_ZN5S84C54v101Ev,
  (VTBL_ENTRY)&_ZN5S84C54v102Ev,
  (VTBL_ENTRY)&_ZN5S84C54v103Ev,
  (VTBL_ENTRY)&_ZN5S84C54v104Ev,
  (VTBL_ENTRY)&_ZN5S84C54v105Ev,
  (VTBL_ENTRY)&_ZN5S84C54v106Ev,
  (VTBL_ENTRY)&_ZN5S84C54v107Ev,
  (VTBL_ENTRY)&_ZN5S84C54v108Ev,
  (VTBL_ENTRY)&_ZN5S84C54v109Ev,
  (VTBL_ENTRY)&_ZN5S84C54v110Ev,
  (VTBL_ENTRY)&_ZN5S84C54v111Ev,
  (VTBL_ENTRY)&_ZN5S84C54v112Ev,
  (VTBL_ENTRY)&_ZN5S84C54v113Ev,
  (VTBL_ENTRY)&_ZN5S84C54v114Ev,
  (VTBL_ENTRY)&_ZN5S84C54v115Ev,
  (VTBL_ENTRY)&_ZN5S84C54v116Ev,
  (VTBL_ENTRY)&_ZN5S84C54v117Ev,
  (VTBL_ENTRY)&_ZN5S84C54v118Ev,
  (VTBL_ENTRY)&_ZN5S84C54v119Ev,
  (VTBL_ENTRY)&_ZN5S84C54v120Ev,
  (VTBL_ENTRY)&_ZN5S84C54v121Ev,
  (VTBL_ENTRY)&_ZN5S84C54v122Ev,
  (VTBL_ENTRY)&_ZN5S84C54v123Ev,
  (VTBL_ENTRY)&_ZN5S84C54v124Ev,
  (VTBL_ENTRY)&_ZN5S84C54v125Ev,
  (VTBL_ENTRY)&_ZN5S84C54v126Ev,
  (VTBL_ENTRY)&_ZN5S84C54v127Ev,
  (VTBL_ENTRY)&_ZN5S84C54v128Ev,
  (VTBL_ENTRY)&_ZN5S84C54v129Ev,
  (VTBL_ENTRY)&_ZN5S84C54v130Ev,
  (VTBL_ENTRY)&_ZN5S84C54v131Ev,
  (VTBL_ENTRY)&_ZN5S84C54v132Ev,
  (VTBL_ENTRY)&_ZN5S84C54v133Ev,
  (VTBL_ENTRY)&_ZN5S84C54v134Ev,
  (VTBL_ENTRY)&_ZN5S84C54v135Ev,
  (VTBL_ENTRY)&_ZN5S84C54v136Ev,
  (VTBL_ENTRY)&_ZN5S84C54v137Ev,
  (VTBL_ENTRY)&_ZN5S84C54v138Ev,
  (VTBL_ENTRY)&_ZN5S84C54v139Ev,
  (VTBL_ENTRY)&_ZN5S84C54v140Ev,
  (VTBL_ENTRY)&_ZN5S84C54v141Ev,
  (VTBL_ENTRY)&_ZN5S84C54v142Ev,
  (VTBL_ENTRY)&_ZN5S84C54v143Ev,
  (VTBL_ENTRY)&_ZN5S84C54v144Ev,
  (VTBL_ENTRY)&_ZN5S84C54v145Ev,
};
extern VTBL_ENTRY _ZTI5S84C5[];
extern  VTBL_ENTRY _ZTV5S84C5[];
Class_Descriptor cd_S84C5 = {  "S84C5", // class name
  bases_S84C5, 2,
  &(vtc_S84C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI5S84C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S84C5),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C4  : S84C5 {
  ::S85C27_nt s84c4f0;
  void *s84c4f1[9];
  ::S80C15 s84c4f2;
  ::S85C35 s84c4f3;
  ::S80C24 s84c4f4;
  int s84c4f5;
  unsigned int s84c4f6:1;
  unsigned int s84c4f7:1;
  unsigned int s84c4f8:1;
  unsigned int s84c4f9:1;
  unsigned int s84c4f10:1;
  unsigned int s84c4f11:1;
  unsigned int s84c4f12:1;
  unsigned int s84c4f13:1;
  unsigned int s84c4f14:1;
  unsigned int s84c4f15:1;
  unsigned int s84c4f16:1;
  unsigned int s84c4f17:1;
  unsigned int s84c4f18:1;
  unsigned int s84c4f19:1;
  unsigned int s84c4f20:1;
  unsigned int s84c4f21:1;
  unsigned int s84c4f22:1;
  unsigned int s84c4f23:1;
  unsigned int s84c4f24:1;
  unsigned int s84c4f25:1;
  unsigned int s84c4f26:1;
  unsigned int s84c4f27:1;
  void *s84c4f28;
  char s84c4f29[2];
  ::S80C8_nt s84c4f30;
  ::S85C27_nt s84c4f31;
  ::S85C27_nt s84c4f32;
  void *s84c4f33;
  ::S80C21_nt s84c4f34;
  ::S80C21_nt s84c4f35;
  ::S80C21_nt s84c4f36;
  ::S80C21_nt s84c4f37;
  ::S80C21_nt s84c4f38;
  virtual  ~S84C4(); // _ZN5S84C4D1Ev
  virtual void  v146(); // _ZN5S84C44v146Ev
  virtual void  v147(); // _ZN5S84C44v147Ev
  virtual void  v148(); // _ZN5S84C44v148Ev
  virtual void  v149(); // _ZN5S84C44v149Ev
  virtual void  v150(); // _ZN5S84C44v150Ev
  virtual void  v151(); // _ZN5S84C44v151Ev
  virtual void  v152(); // _ZN5S84C44v152Ev
  virtual void  v153(); // _ZN5S84C44v153Ev
  virtual void  v154(); // _ZN5S84C44v154Ev
  virtual void  v155(); // _ZN5S84C44v155Ev
  virtual void  v156(); // _ZN5S84C44v156Ev
  virtual void  v157(); // _ZN5S84C44v157Ev
  virtual void  v158(); // _ZN5S84C44v158Ev
  virtual void  v159(); // _ZN5S84C44v159Ev
  virtual void  v160(); // _ZN5S84C44v160Ev
  virtual void  v161(); // _ZN5S84C44v161Ev
  virtual void  v162(); // _ZN5S84C44v162Ev
  virtual void  v163(); // _ZN5S84C44v163Ev
  virtual void  v164(); // _ZN5S84C44v164Ev
  virtual void  v165(); // _ZN5S84C44v165Ev
  virtual void  v166(); // _ZN5S84C44v166Ev
  virtual void  v167(); // _ZN5S84C44v167Ev
  virtual void  v168(); // _ZN5S84C44v168Ev
  virtual void  v169(); // _ZN5S84C44v169Ev
  virtual void  v170(); // _ZN5S84C44v170Ev
  virtual void  v171(); // _ZN5S84C44v171Ev
  virtual void  v172(); // _ZN5S84C44v172Ev
  virtual void  v173(); // _ZN5S84C44v173Ev
  virtual void  v174(); // _ZN5S84C44v174Ev
  virtual void  v175(); // _ZN5S84C44v175Ev
  virtual void  v176(); // _ZN5S84C44v176Ev
  virtual void  v177(); // _ZN5S84C44v177Ev
  virtual void  v178(); // _ZN5S84C44v178Ev
  virtual void  v179(); // _ZN5S84C44v179Ev
  virtual void  v180(); // _ZN5S84C44v180Ev
  virtual void  v181(); // _ZN5S84C44v181Ev
  virtual void  v182(); // _ZN5S84C44v182Ev
  virtual void  v183(); // _ZN5S84C44v183Ev
  virtual void  v184(); // _ZN5S84C44v184Ev
  S84C4(); // tgen
};
//SIG(-1 S84C4) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S84C4 ::~S84C4(){ note_dtor("S84C4", this);}
void  S84C4 ::v146(){vfunc_called(this, "_ZN5S84C44v146Ev");}
void  S84C4 ::v147(){vfunc_called(this, "_ZN5S84C44v147Ev");}
void  S84C4 ::v148(){vfunc_called(this, "_ZN5S84C44v148Ev");}
void  S84C4 ::v149(){vfunc_called(this, "_ZN5S84C44v149Ev");}
void  S84C4 ::v150(){vfunc_called(this, "_ZN5S84C44v150Ev");}
void  S84C4 ::v151(){vfunc_called(this, "_ZN5S84C44v151Ev");}
void  S84C4 ::v152(){vfunc_called(this, "_ZN5S84C44v152Ev");}
void  S84C4 ::v153(){vfunc_called(this, "_ZN5S84C44v153Ev");}
void  S84C4 ::v154(){vfunc_called(this, "_ZN5S84C44v154Ev");}
void  S84C4 ::v155(){vfunc_called(this, "_ZN5S84C44v155Ev");}
void  S84C4 ::v156(){vfunc_called(this, "_ZN5S84C44v156Ev");}
void  S84C4 ::v157(){vfunc_called(this, "_ZN5S84C44v157Ev");}
void  S84C4 ::v158(){vfunc_called(this, "_ZN5S84C44v158Ev");}
void  S84C4 ::v159(){vfunc_called(this, "_ZN5S84C44v159Ev");}
void  S84C4 ::v160(){vfunc_called(this, "_ZN5S84C44v160Ev");}
void  S84C4 ::v161(){vfunc_called(this, "_ZN5S84C44v161Ev");}
void  S84C4 ::v162(){vfunc_called(this, "_ZN5S84C44v162Ev");}
void  S84C4 ::v163(){vfunc_called(this, "_ZN5S84C44v163Ev");}
void  S84C4 ::v164(){vfunc_called(this, "_ZN5S84C44v164Ev");}
void  S84C4 ::v165(){vfunc_called(this, "_ZN5S84C44v165Ev");}
void  S84C4 ::v166(){vfunc_called(this, "_ZN5S84C44v166Ev");}
void  S84C4 ::v167(){vfunc_called(this, "_ZN5S84C44v167Ev");}
void  S84C4 ::v168(){vfunc_called(this, "_ZN5S84C44v168Ev");}
void  S84C4 ::v169(){vfunc_called(this, "_ZN5S84C44v169Ev");}
void  S84C4 ::v170(){vfunc_called(this, "_ZN5S84C44v170Ev");}
void  S84C4 ::v171(){vfunc_called(this, "_ZN5S84C44v171Ev");}
void  S84C4 ::v172(){vfunc_called(this, "_ZN5S84C44v172Ev");}
void  S84C4 ::v173(){vfunc_called(this, "_ZN5S84C44v173Ev");}
void  S84C4 ::v174(){vfunc_called(this, "_ZN5S84C44v174Ev");}
void  S84C4 ::v175(){vfunc_called(this, "_ZN5S84C44v175Ev");}
void  S84C4 ::v176(){vfunc_called(this, "_ZN5S84C44v176Ev");}
void  S84C4 ::v177(){vfunc_called(this, "_ZN5S84C44v177Ev");}
void  S84C4 ::v178(){vfunc_called(this, "_ZN5S84C44v178Ev");}
void  S84C4 ::v179(){vfunc_called(this, "_ZN5S84C44v179Ev");}
void  S84C4 ::v180(){vfunc_called(this, "_ZN5S84C44v180Ev");}
void  S84C4 ::v181(){vfunc_called(this, "_ZN5S84C44v181Ev");}
void  S84C4 ::v182(){vfunc_called(this, "_ZN5S84C44v182Ev");}
void  S84C4 ::v183(){vfunc_called(this, "_ZN5S84C44v183Ev");}
void  S84C4 ::v184(){vfunc_called(this, "_ZN5S84C44v184Ev");}
S84C4 ::S84C4(){ note_ctor("S84C4", this);} // tgen

static void Test_S84C4()
{
  extern Class_Descriptor cd_S84C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S84C4, buf);
    S84C4 *dp, &lv = *(dp=new (buf) S84C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S84C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C4)");
    check_base_class_offset(lv, (S84C7*)(S84C6*)(S84C5*), 0, "S84C4");
    check_base_class_offset(lv, (S84C6*)(S84C5*), 0, "S84C4");
    check_base_class_offset(lv, (S84C5*), 0, "S84C4");
    check_field_offset(lv, s84c4f0, ABISELECT(464,352), "S84C4.s84c4f0");
    check_field_offset(lv, s84c4f1, ABISELECT(472,360), "S84C4.s84c4f1");
    check_field_offset(lv, s84c4f2, ABISELECT(544,396), "S84C4.s84c4f2");
    check_field_offset(lv, s84c4f3, ABISELECT(560,408), "S84C4.s84c4f3");
    check_field_offset(lv, s84c4f4, ABISELECT(576,420), "S84C4.s84c4f4");
    check_field_offset(lv, s84c4f5, ABISELECT(608,440), "S84C4.s84c4f5");
    set_bf_and_test(lv, s84c4f6, ABISELECT(612,444), 0, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f7, ABISELECT(612,444), 1, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f8, ABISELECT(612,444), 2, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f9, ABISELECT(612,444), 3, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f10, ABISELECT(612,444), 4, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f11, ABISELECT(612,444), 5, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f12, ABISELECT(612,444), 6, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f13, ABISELECT(612,444), 7, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f14, ABISELECT(613,445), 0, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f15, ABISELECT(613,445), 1, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f16, ABISELECT(613,445), 2, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f17, ABISELECT(613,445), 3, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f18, ABISELECT(613,445), 4, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f19, ABISELECT(613,445), 5, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f20, ABISELECT(613,445), 6, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f21, ABISELECT(613,445), 7, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f22, ABISELECT(614,446), 0, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f23, ABISELECT(614,446), 1, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f24, ABISELECT(614,446), 2, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f25, ABISELECT(614,446), 3, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f26, ABISELECT(614,446), 4, 1, 1, "S84C4");
    set_bf_and_test(lv, s84c4f27, ABISELECT(614,446), 5, 1, 1, "S84C4");
    check_field_offset(lv, s84c4f28, ABISELECT(616,448), "S84C4.s84c4f28");
    check_field_offset(lv, s84c4f29, ABISELECT(624,452), "S84C4.s84c4f29");
    check_field_offset(lv, s84c4f30, ABISELECT(628,456), "S84C4.s84c4f30");
    check_field_offset(lv, s84c4f31, ABISELECT(636,464), "S84C4.s84c4f31");
    check_field_offset(lv, s84c4f32, ABISELECT(644,472), "S84C4.s84c4f32");
    check_field_offset(lv, s84c4f33, ABISELECT(656,480), "S84C4.s84c4f33");
    check_field_offset(lv, s84c4f34, ABISELECT(664,484), "S84C4.s84c4f34");
    check_field_offset(lv, s84c4f35, ABISELECT(680,496), "S84C4.s84c4f35");
    check_field_offset(lv, s84c4f36, ABISELECT(696,508), "S84C4.s84c4f36");
    check_field_offset(lv, s84c4f37, ABISELECT(712,520), "S84C4.s84c4f37");
    check_field_offset(lv, s84c4f38, ABISELECT(728,532), "S84C4.s84c4f38");
    test_class_info(&lv, &cd_S84C4);
    dp->~S84C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C4(Test_S84C4, "S84C4", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN5S84C4C1Ev();
extern void _ZN5S84C4D1Ev();
Name_Map name_map_S84C4[] = {
  NSPAIR(_ZN5S84C4C1Ev),
  NSPAIR(_ZN5S84C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S84C7;
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
extern Class_Descriptor cd_S84C6;
extern VTBL_ENTRY _ZTI5S84C6[];
extern  VTBL_ENTRY _ZTV5S84C6[];
extern Class_Descriptor cd_S84C5;
extern VTBL_ENTRY _ZTI5S84C5[];
extern  VTBL_ENTRY _ZTV5S84C5[];
static Base_Class bases_S84C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S84C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S84C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S84C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S84C4[];
extern void _ZN5S84C4D1Ev();
extern void _ZN5S84C4D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
extern void _ZN5S84C63v68Ev();
extern void _ZN5S84C63v69Ev();
extern void _ZN5S84C53v70Ev();
extern void _ZN5S84C53v71Ev();
extern void _ZN5S84C53v72Ev();
extern void _ZN5S84C53v73Ev();
extern void _ZN5S84C53v74Ev();
extern void _ZN5S84C53v75Ev();
extern void _ZN5S84C53v76Ev();
extern void _ZN5S84C53v77Ev();
extern void _ZN5S84C53v78Ev();
extern void _ZN5S84C53v79Ev();
extern void _ZN5S84C53v80Ev();
extern void _ZN5S84C53v81Ev();
extern void _ZN5S84C53v82Ev();
extern void _ZN5S84C53v83Ev();
extern void _ZN5S84C53v84Ev();
extern void _ZN5S84C53v85Ev();
extern void _ZN5S84C53v86Ev();
extern void _ZN5S84C53v87Ev();
extern void _ZN5S84C53v88Ev();
extern void _ZN5S84C53v89Ev();
extern void _ZN5S84C53v90Ev();
extern void _ZN5S84C53v91Ev();
extern void _ZN5S84C53v92Ev();
extern void _ZN5S84C53v93Ev();
extern void _ZN5S84C53v94Ev();
extern void _ZN5S84C53v95Ev();
extern void _ZN5S84C53v96Ev();
extern void _ZN5S84C53v97Ev();
extern void _ZN5S84C53v98Ev();
extern void _ZN5S84C53v99Ev();
extern void _ZN5S84C54v100Ev();
extern void _ZN5S84C54v101Ev();
extern void _ZN5S84C54v102Ev();
extern void _ZN5S84C54v103Ev();
extern void _ZN5S84C54v104Ev();
extern void _ZN5S84C54v105Ev();
extern void _ZN5S84C54v106Ev();
extern void _ZN5S84C54v107Ev();
extern void _ZN5S84C54v108Ev();
extern void _ZN5S84C54v109Ev();
extern void _ZN5S84C54v110Ev();
extern void _ZN5S84C54v111Ev();
extern void _ZN5S84C54v112Ev();
extern void _ZN5S84C54v113Ev();
extern void _ZN5S84C54v114Ev();
extern void _ZN5S84C54v115Ev();
extern void _ZN5S84C54v116Ev();
extern void _ZN5S84C54v117Ev();
extern void _ZN5S84C54v118Ev();
extern void _ZN5S84C54v119Ev();
extern void _ZN5S84C54v120Ev();
extern void _ZN5S84C54v121Ev();
extern void _ZN5S84C54v122Ev();
extern void _ZN5S84C54v123Ev();
extern void _ZN5S84C54v124Ev();
extern void _ZN5S84C54v125Ev();
extern void _ZN5S84C54v126Ev();
extern void _ZN5S84C54v127Ev();
extern void _ZN5S84C54v128Ev();
extern void _ZN5S84C54v129Ev();
extern void _ZN5S84C54v130Ev();
extern void _ZN5S84C54v131Ev();
extern void _ZN5S84C54v132Ev();
extern void _ZN5S84C54v133Ev();
extern void _ZN5S84C54v134Ev();
extern void _ZN5S84C54v135Ev();
extern void _ZN5S84C54v136Ev();
extern void _ZN5S84C54v137Ev();
extern void _ZN5S84C54v138Ev();
extern void _ZN5S84C54v139Ev();
extern void _ZN5S84C54v140Ev();
extern void _ZN5S84C54v141Ev();
extern void _ZN5S84C54v142Ev();
extern void _ZN5S84C54v143Ev();
extern void _ZN5S84C54v144Ev();
extern void _ZN5S84C54v145Ev();
extern void _ZN5S84C44v146Ev();
extern void _ZN5S84C44v147Ev();
extern void _ZN5S84C44v148Ev();
extern void _ZN5S84C44v149Ev();
extern void _ZN5S84C44v150Ev();
extern void _ZN5S84C44v151Ev();
extern void _ZN5S84C44v152Ev();
extern void _ZN5S84C44v153Ev();
extern void _ZN5S84C44v154Ev();
extern void _ZN5S84C44v155Ev();
extern void _ZN5S84C44v156Ev();
extern void _ZN5S84C44v157Ev();
extern void _ZN5S84C44v158Ev();
extern void _ZN5S84C44v159Ev();
extern void _ZN5S84C44v160Ev();
extern void _ZN5S84C44v161Ev();
extern void _ZN5S84C44v162Ev();
extern void _ZN5S84C44v163Ev();
extern void _ZN5S84C44v164Ev();
extern void _ZN5S84C44v165Ev();
extern void _ZN5S84C44v166Ev();
extern void _ZN5S84C44v167Ev();
extern void _ZN5S84C44v168Ev();
extern void _ZN5S84C44v169Ev();
extern void _ZN5S84C44v170Ev();
extern void _ZN5S84C44v171Ev();
extern void _ZN5S84C44v172Ev();
extern void _ZN5S84C44v173Ev();
extern void _ZN5S84C44v174Ev();
extern void _ZN5S84C44v175Ev();
extern void _ZN5S84C44v176Ev();
extern void _ZN5S84C44v177Ev();
extern void _ZN5S84C44v178Ev();
extern void _ZN5S84C44v179Ev();
extern void _ZN5S84C44v180Ev();
extern void _ZN5S84C44v181Ev();
extern void _ZN5S84C44v182Ev();
extern void _ZN5S84C44v183Ev();
extern void _ZN5S84C44v184Ev();
static  VTBL_ENTRY vtc_S84C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C4[0]),
  (VTBL_ENTRY)&_ZN5S84C4D1Ev,
  (VTBL_ENTRY)&_ZN5S84C4D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
  (VTBL_ENTRY)&_ZN5S84C63v68Ev,
  (VTBL_ENTRY)&_ZN5S84C63v69Ev,
  (VTBL_ENTRY)&_ZN5S84C53v70Ev,
  (VTBL_ENTRY)&_ZN5S84C53v71Ev,
  (VTBL_ENTRY)&_ZN5S84C53v72Ev,
  (VTBL_ENTRY)&_ZN5S84C53v73Ev,
  (VTBL_ENTRY)&_ZN5S84C53v74Ev,
  (VTBL_ENTRY)&_ZN5S84C53v75Ev,
  (VTBL_ENTRY)&_ZN5S84C53v76Ev,
  (VTBL_ENTRY)&_ZN5S84C53v77Ev,
  (VTBL_ENTRY)&_ZN5S84C53v78Ev,
  (VTBL_ENTRY)&_ZN5S84C53v79Ev,
  (VTBL_ENTRY)&_ZN5S84C53v80Ev,
  (VTBL_ENTRY)&_ZN5S84C53v81Ev,
  (VTBL_ENTRY)&_ZN5S84C53v82Ev,
  (VTBL_ENTRY)&_ZN5S84C53v83Ev,
  (VTBL_ENTRY)&_ZN5S84C53v84Ev,
  (VTBL_ENTRY)&_ZN5S84C53v85Ev,
  (VTBL_ENTRY)&_ZN5S84C53v86Ev,
  (VTBL_ENTRY)&_ZN5S84C53v87Ev,
  (VTBL_ENTRY)&_ZN5S84C53v88Ev,
  (VTBL_ENTRY)&_ZN5S84C53v89Ev,
  (VTBL_ENTRY)&_ZN5S84C53v90Ev,
  (VTBL_ENTRY)&_ZN5S84C53v91Ev,
  (VTBL_ENTRY)&_ZN5S84C53v92Ev,
  (VTBL_ENTRY)&_ZN5S84C53v93Ev,
  (VTBL_ENTRY)&_ZN5S84C53v94Ev,
  (VTBL_ENTRY)&_ZN5S84C53v95Ev,
  (VTBL_ENTRY)&_ZN5S84C53v96Ev,
  (VTBL_ENTRY)&_ZN5S84C53v97Ev,
  (VTBL_ENTRY)&_ZN5S84C53v98Ev,
  (VTBL_ENTRY)&_ZN5S84C53v99Ev,
  (VTBL_ENTRY)&_ZN5S84C54v100Ev,
  (VTBL_ENTRY)&_ZN5S84C54v101Ev,
  (VTBL_ENTRY)&_ZN5S84C54v102Ev,
  (VTBL_ENTRY)&_ZN5S84C54v103Ev,
  (VTBL_ENTRY)&_ZN5S84C54v104Ev,
  (VTBL_ENTRY)&_ZN5S84C54v105Ev,
  (VTBL_ENTRY)&_ZN5S84C54v106Ev,
  (VTBL_ENTRY)&_ZN5S84C54v107Ev,
  (VTBL_ENTRY)&_ZN5S84C54v108Ev,
  (VTBL_ENTRY)&_ZN5S84C54v109Ev,
  (VTBL_ENTRY)&_ZN5S84C54v110Ev,
  (VTBL_ENTRY)&_ZN5S84C54v111Ev,
  (VTBL_ENTRY)&_ZN5S84C54v112Ev,
  (VTBL_ENTRY)&_ZN5S84C54v113Ev,
  (VTBL_ENTRY)&_ZN5S84C54v114Ev,
  (VTBL_ENTRY)&_ZN5S84C54v115Ev,
  (VTBL_ENTRY)&_ZN5S84C54v116Ev,
  (VTBL_ENTRY)&_ZN5S84C54v117Ev,
  (VTBL_ENTRY)&_ZN5S84C54v118Ev,
  (VTBL_ENTRY)&_ZN5S84C54v119Ev,
  (VTBL_ENTRY)&_ZN5S84C54v120Ev,
  (VTBL_ENTRY)&_ZN5S84C54v121Ev,
  (VTBL_ENTRY)&_ZN5S84C54v122Ev,
  (VTBL_ENTRY)&_ZN5S84C54v123Ev,
  (VTBL_ENTRY)&_ZN5S84C54v124Ev,
  (VTBL_ENTRY)&_ZN5S84C54v125Ev,
  (VTBL_ENTRY)&_ZN5S84C54v126Ev,
  (VTBL_ENTRY)&_ZN5S84C54v127Ev,
  (VTBL_ENTRY)&_ZN5S84C54v128Ev,
  (VTBL_ENTRY)&_ZN5S84C54v129Ev,
  (VTBL_ENTRY)&_ZN5S84C54v130Ev,
  (VTBL_ENTRY)&_ZN5S84C54v131Ev,
  (VTBL_ENTRY)&_ZN5S84C54v132Ev,
  (VTBL_ENTRY)&_ZN5S84C54v133Ev,
  (VTBL_ENTRY)&_ZN5S84C54v134Ev,
  (VTBL_ENTRY)&_ZN5S84C54v135Ev,
  (VTBL_ENTRY)&_ZN5S84C54v136Ev,
  (VTBL_ENTRY)&_ZN5S84C54v137Ev,
  (VTBL_ENTRY)&_ZN5S84C54v138Ev,
  (VTBL_ENTRY)&_ZN5S84C54v139Ev,
  (VTBL_ENTRY)&_ZN5S84C54v140Ev,
  (VTBL_ENTRY)&_ZN5S84C54v141Ev,
  (VTBL_ENTRY)&_ZN5S84C54v142Ev,
  (VTBL_ENTRY)&_ZN5S84C54v143Ev,
  (VTBL_ENTRY)&_ZN5S84C54v144Ev,
  (VTBL_ENTRY)&_ZN5S84C54v145Ev,
  (VTBL_ENTRY)&_ZN5S84C44v146Ev,
  (VTBL_ENTRY)&_ZN5S84C44v147Ev,
  (VTBL_ENTRY)&_ZN5S84C44v148Ev,
  (VTBL_ENTRY)&_ZN5S84C44v149Ev,
  (VTBL_ENTRY)&_ZN5S84C44v150Ev,
  (VTBL_ENTRY)&_ZN5S84C44v151Ev,
  (VTBL_ENTRY)&_ZN5S84C44v152Ev,
  (VTBL_ENTRY)&_ZN5S84C44v153Ev,
  (VTBL_ENTRY)&_ZN5S84C44v154Ev,
  (VTBL_ENTRY)&_ZN5S84C44v155Ev,
  (VTBL_ENTRY)&_ZN5S84C44v156Ev,
  (VTBL_ENTRY)&_ZN5S84C44v157Ev,
  (VTBL_ENTRY)&_ZN5S84C44v158Ev,
  (VTBL_ENTRY)&_ZN5S84C44v159Ev,
  (VTBL_ENTRY)&_ZN5S84C44v160Ev,
  (VTBL_ENTRY)&_ZN5S84C44v161Ev,
  (VTBL_ENTRY)&_ZN5S84C44v162Ev,
  (VTBL_ENTRY)&_ZN5S84C44v163Ev,
  (VTBL_ENTRY)&_ZN5S84C44v164Ev,
  (VTBL_ENTRY)&_ZN5S84C44v165Ev,
  (VTBL_ENTRY)&_ZN5S84C44v166Ev,
  (VTBL_ENTRY)&_ZN5S84C44v167Ev,
  (VTBL_ENTRY)&_ZN5S84C44v168Ev,
  (VTBL_ENTRY)&_ZN5S84C44v169Ev,
  (VTBL_ENTRY)&_ZN5S84C44v170Ev,
  (VTBL_ENTRY)&_ZN5S84C44v171Ev,
  (VTBL_ENTRY)&_ZN5S84C44v172Ev,
  (VTBL_ENTRY)&_ZN5S84C44v173Ev,
  (VTBL_ENTRY)&_ZN5S84C44v174Ev,
  (VTBL_ENTRY)&_ZN5S84C44v175Ev,
  (VTBL_ENTRY)&_ZN5S84C44v176Ev,
  (VTBL_ENTRY)&_ZN5S84C44v177Ev,
  (VTBL_ENTRY)&_ZN5S84C44v178Ev,
  (VTBL_ENTRY)&_ZN5S84C44v179Ev,
  (VTBL_ENTRY)&_ZN5S84C44v180Ev,
  (VTBL_ENTRY)&_ZN5S84C44v181Ev,
  (VTBL_ENTRY)&_ZN5S84C44v182Ev,
  (VTBL_ENTRY)&_ZN5S84C44v183Ev,
  (VTBL_ENTRY)&_ZN5S84C44v184Ev,
};
extern VTBL_ENTRY _ZTI5S84C4[];
extern  VTBL_ENTRY _ZTV5S84C4[];
Class_Descriptor cd_S84C4 = {  "S84C4", // class name
  bases_S84C4, 3,
  &(vtc_S84C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI5S84C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S84C4),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C3  : S84C4 {
  unsigned int s84c3f0:1;
  unsigned int s84c3f1:1;
  unsigned int s84c3f2:1;
  unsigned int s84c3f3:1;
  unsigned int s84c3f4:1;
  unsigned int s84c3f5:1;
  void *s84c3f6[8];
  ::S80C21_nt s84c3f7;
  ::S80C21_nt s84c3f8;
  ::S80C21_nt s84c3f9;
  virtual  ~S84C3(); // _ZN5S84C3D1Ev
  virtual void  v185(); // _ZN5S84C34v185Ev
  virtual void  v186(); // _ZN5S84C34v186Ev
  virtual void  v187(); // _ZN5S84C34v187Ev
  virtual void  v188(); // _ZN5S84C34v188Ev
  virtual void  v189(); // _ZN5S84C34v189Ev
  virtual void  v190(); // _ZN5S84C34v190Ev
  virtual void  v191(); // _ZN5S84C34v191Ev
  virtual void  v192(); // _ZN5S84C34v192Ev
  virtual void  v193(); // _ZN5S84C34v193Ev
  virtual void  v194(); // _ZN5S84C34v194Ev
  virtual void  v195(); // _ZN5S84C34v195Ev
  virtual void  v196(); // _ZN5S84C34v196Ev
  virtual void  v197(); // _ZN5S84C34v197Ev
  virtual void  v198(); // _ZN5S84C34v198Ev
  virtual void  v199(); // _ZN5S84C34v199Ev
  virtual void  v200(); // _ZN5S84C34v200Ev
  virtual void  v201(); // _ZN5S84C34v201Ev
  virtual void  v202(); // _ZN5S84C34v202Ev
  virtual void  v203(); // _ZN5S84C34v203Ev
  virtual void  v204(); // _ZN5S84C34v204Ev
  virtual void  v205(); // _ZN5S84C34v205Ev
  virtual void  v206(); // _ZN5S84C34v206Ev
  virtual void  v207(); // _ZN5S84C34v207Ev
  S84C3(); // tgen
};
//SIG(-1 S84C3) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S84C3 ::~S84C3(){ note_dtor("S84C3", this);}
void  S84C3 ::v185(){vfunc_called(this, "_ZN5S84C34v185Ev");}
void  S84C3 ::v186(){vfunc_called(this, "_ZN5S84C34v186Ev");}
void  S84C3 ::v187(){vfunc_called(this, "_ZN5S84C34v187Ev");}
void  S84C3 ::v188(){vfunc_called(this, "_ZN5S84C34v188Ev");}
void  S84C3 ::v189(){vfunc_called(this, "_ZN5S84C34v189Ev");}
void  S84C3 ::v190(){vfunc_called(this, "_ZN5S84C34v190Ev");}
void  S84C3 ::v191(){vfunc_called(this, "_ZN5S84C34v191Ev");}
void  S84C3 ::v192(){vfunc_called(this, "_ZN5S84C34v192Ev");}
void  S84C3 ::v193(){vfunc_called(this, "_ZN5S84C34v193Ev");}
void  S84C3 ::v194(){vfunc_called(this, "_ZN5S84C34v194Ev");}
void  S84C3 ::v195(){vfunc_called(this, "_ZN5S84C34v195Ev");}
void  S84C3 ::v196(){vfunc_called(this, "_ZN5S84C34v196Ev");}
void  S84C3 ::v197(){vfunc_called(this, "_ZN5S84C34v197Ev");}
void  S84C3 ::v198(){vfunc_called(this, "_ZN5S84C34v198Ev");}
void  S84C3 ::v199(){vfunc_called(this, "_ZN5S84C34v199Ev");}
void  S84C3 ::v200(){vfunc_called(this, "_ZN5S84C34v200Ev");}
void  S84C3 ::v201(){vfunc_called(this, "_ZN5S84C34v201Ev");}
void  S84C3 ::v202(){vfunc_called(this, "_ZN5S84C34v202Ev");}
void  S84C3 ::v203(){vfunc_called(this, "_ZN5S84C34v203Ev");}
void  S84C3 ::v204(){vfunc_called(this, "_ZN5S84C34v204Ev");}
void  S84C3 ::v205(){vfunc_called(this, "_ZN5S84C34v205Ev");}
void  S84C3 ::v206(){vfunc_called(this, "_ZN5S84C34v206Ev");}
void  S84C3 ::v207(){vfunc_called(this, "_ZN5S84C34v207Ev");}
S84C3 ::S84C3(){ note_ctor("S84C3", this);} // tgen

static void Test_S84C3()
{
  extern Class_Descriptor cd_S84C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S84C3, buf);
    S84C3 *dp, &lv = *(dp=new (buf) S84C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S84C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C3)");
    check_base_class_offset(lv, (S84C7*)(S84C6*)(S84C5*)(S84C4*), 0, "S84C3");
    check_base_class_offset(lv, (S84C6*)(S84C5*)(S84C4*), 0, "S84C3");
    check_base_class_offset(lv, (S84C5*)(S84C4*), 0, "S84C3");
    check_base_class_offset(lv, (S84C4*), 0, "S84C3");
    set_bf_and_test(lv, s84c3f0, ABISELECT(744,544), 0, 1, 1, "S84C3");
    set_bf_and_test(lv, s84c3f1, ABISELECT(744,544), 1, 1, 1, "S84C3");
    set_bf_and_test(lv, s84c3f2, ABISELECT(744,544), 2, 1, 1, "S84C3");
    set_bf_and_test(lv, s84c3f3, ABISELECT(744,544), 3, 1, 1, "S84C3");
    set_bf_and_test(lv, s84c3f4, ABISELECT(744,544), 4, 1, 1, "S84C3");
    set_bf_and_test(lv, s84c3f5, ABISELECT(744,544), 5, 1, 1, "S84C3");
    check_field_offset(lv, s84c3f6, ABISELECT(752,548), "S84C3.s84c3f6");
    check_field_offset(lv, s84c3f7, ABISELECT(816,580), "S84C3.s84c3f7");
    check_field_offset(lv, s84c3f8, ABISELECT(832,592), "S84C3.s84c3f8");
    check_field_offset(lv, s84c3f9, ABISELECT(848,604), "S84C3.s84c3f9");
    test_class_info(&lv, &cd_S84C3);
    dp->~S84C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C3(Test_S84C3, "S84C3", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S84C3C1Ev();
extern void _ZN5S84C3D1Ev();
Name_Map name_map_S84C3[] = {
  NSPAIR(_ZN5S84C3C1Ev),
  NSPAIR(_ZN5S84C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S84C7;
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
extern Class_Descriptor cd_S84C6;
extern VTBL_ENTRY _ZTI5S84C6[];
extern  VTBL_ENTRY _ZTV5S84C6[];
extern Class_Descriptor cd_S84C5;
extern VTBL_ENTRY _ZTI5S84C5[];
extern  VTBL_ENTRY _ZTV5S84C5[];
extern Class_Descriptor cd_S84C4;
extern VTBL_ENTRY _ZTI5S84C4[];
extern  VTBL_ENTRY _ZTV5S84C4[];
static Base_Class bases_S84C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S84C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S84C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S84C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S84C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S84C3[];
extern void _ZN5S84C3D1Ev();
extern void _ZN5S84C3D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
extern void _ZN5S84C63v68Ev();
extern void _ZN5S84C63v69Ev();
extern void _ZN5S84C53v70Ev();
extern void _ZN5S84C53v71Ev();
extern void _ZN5S84C53v72Ev();
extern void _ZN5S84C53v73Ev();
extern void _ZN5S84C53v74Ev();
extern void _ZN5S84C53v75Ev();
extern void _ZN5S84C53v76Ev();
extern void _ZN5S84C53v77Ev();
extern void _ZN5S84C53v78Ev();
extern void _ZN5S84C53v79Ev();
extern void _ZN5S84C53v80Ev();
extern void _ZN5S84C53v81Ev();
extern void _ZN5S84C53v82Ev();
extern void _ZN5S84C53v83Ev();
extern void _ZN5S84C53v84Ev();
extern void _ZN5S84C53v85Ev();
extern void _ZN5S84C53v86Ev();
extern void _ZN5S84C53v87Ev();
extern void _ZN5S84C53v88Ev();
extern void _ZN5S84C53v89Ev();
extern void _ZN5S84C53v90Ev();
extern void _ZN5S84C53v91Ev();
extern void _ZN5S84C53v92Ev();
extern void _ZN5S84C53v93Ev();
extern void _ZN5S84C53v94Ev();
extern void _ZN5S84C53v95Ev();
extern void _ZN5S84C53v96Ev();
extern void _ZN5S84C53v97Ev();
extern void _ZN5S84C53v98Ev();
extern void _ZN5S84C53v99Ev();
extern void _ZN5S84C54v100Ev();
extern void _ZN5S84C54v101Ev();
extern void _ZN5S84C54v102Ev();
extern void _ZN5S84C54v103Ev();
extern void _ZN5S84C54v104Ev();
extern void _ZN5S84C54v105Ev();
extern void _ZN5S84C54v106Ev();
extern void _ZN5S84C54v107Ev();
extern void _ZN5S84C54v108Ev();
extern void _ZN5S84C54v109Ev();
extern void _ZN5S84C54v110Ev();
extern void _ZN5S84C54v111Ev();
extern void _ZN5S84C54v112Ev();
extern void _ZN5S84C54v113Ev();
extern void _ZN5S84C54v114Ev();
extern void _ZN5S84C54v115Ev();
extern void _ZN5S84C54v116Ev();
extern void _ZN5S84C54v117Ev();
extern void _ZN5S84C54v118Ev();
extern void _ZN5S84C54v119Ev();
extern void _ZN5S84C54v120Ev();
extern void _ZN5S84C54v121Ev();
extern void _ZN5S84C54v122Ev();
extern void _ZN5S84C54v123Ev();
extern void _ZN5S84C54v124Ev();
extern void _ZN5S84C54v125Ev();
extern void _ZN5S84C54v126Ev();
extern void _ZN5S84C54v127Ev();
extern void _ZN5S84C54v128Ev();
extern void _ZN5S84C54v129Ev();
extern void _ZN5S84C54v130Ev();
extern void _ZN5S84C54v131Ev();
extern void _ZN5S84C54v132Ev();
extern void _ZN5S84C54v133Ev();
extern void _ZN5S84C54v134Ev();
extern void _ZN5S84C54v135Ev();
extern void _ZN5S84C54v136Ev();
extern void _ZN5S84C54v137Ev();
extern void _ZN5S84C54v138Ev();
extern void _ZN5S84C54v139Ev();
extern void _ZN5S84C54v140Ev();
extern void _ZN5S84C54v141Ev();
extern void _ZN5S84C54v142Ev();
extern void _ZN5S84C54v143Ev();
extern void _ZN5S84C54v144Ev();
extern void _ZN5S84C54v145Ev();
extern void _ZN5S84C44v146Ev();
extern void _ZN5S84C44v147Ev();
extern void _ZN5S84C44v148Ev();
extern void _ZN5S84C44v149Ev();
extern void _ZN5S84C44v150Ev();
extern void _ZN5S84C44v151Ev();
extern void _ZN5S84C44v152Ev();
extern void _ZN5S84C44v153Ev();
extern void _ZN5S84C44v154Ev();
extern void _ZN5S84C44v155Ev();
extern void _ZN5S84C44v156Ev();
extern void _ZN5S84C44v157Ev();
extern void _ZN5S84C44v158Ev();
extern void _ZN5S84C44v159Ev();
extern void _ZN5S84C44v160Ev();
extern void _ZN5S84C44v161Ev();
extern void _ZN5S84C44v162Ev();
extern void _ZN5S84C44v163Ev();
extern void _ZN5S84C44v164Ev();
extern void _ZN5S84C44v165Ev();
extern void _ZN5S84C44v166Ev();
extern void _ZN5S84C44v167Ev();
extern void _ZN5S84C44v168Ev();
extern void _ZN5S84C44v169Ev();
extern void _ZN5S84C44v170Ev();
extern void _ZN5S84C44v171Ev();
extern void _ZN5S84C44v172Ev();
extern void _ZN5S84C44v173Ev();
extern void _ZN5S84C44v174Ev();
extern void _ZN5S84C44v175Ev();
extern void _ZN5S84C44v176Ev();
extern void _ZN5S84C44v177Ev();
extern void _ZN5S84C44v178Ev();
extern void _ZN5S84C44v179Ev();
extern void _ZN5S84C44v180Ev();
extern void _ZN5S84C44v181Ev();
extern void _ZN5S84C44v182Ev();
extern void _ZN5S84C44v183Ev();
extern void _ZN5S84C44v184Ev();
extern void _ZN5S84C34v185Ev();
extern void _ZN5S84C34v186Ev();
extern void _ZN5S84C34v187Ev();
extern void _ZN5S84C34v188Ev();
extern void _ZN5S84C34v189Ev();
extern void _ZN5S84C34v190Ev();
extern void _ZN5S84C34v191Ev();
extern void _ZN5S84C34v192Ev();
extern void _ZN5S84C34v193Ev();
extern void _ZN5S84C34v194Ev();
extern void _ZN5S84C34v195Ev();
extern void _ZN5S84C34v196Ev();
extern void _ZN5S84C34v197Ev();
extern void _ZN5S84C34v198Ev();
extern void _ZN5S84C34v199Ev();
extern void _ZN5S84C34v200Ev();
extern void _ZN5S84C34v201Ev();
extern void _ZN5S84C34v202Ev();
extern void _ZN5S84C34v203Ev();
extern void _ZN5S84C34v204Ev();
extern void _ZN5S84C34v205Ev();
extern void _ZN5S84C34v206Ev();
extern void _ZN5S84C34v207Ev();
static  VTBL_ENTRY vtc_S84C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C3[0]),
  (VTBL_ENTRY)&_ZN5S84C3D1Ev,
  (VTBL_ENTRY)&_ZN5S84C3D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
  (VTBL_ENTRY)&_ZN5S84C63v68Ev,
  (VTBL_ENTRY)&_ZN5S84C63v69Ev,
  (VTBL_ENTRY)&_ZN5S84C53v70Ev,
  (VTBL_ENTRY)&_ZN5S84C53v71Ev,
  (VTBL_ENTRY)&_ZN5S84C53v72Ev,
  (VTBL_ENTRY)&_ZN5S84C53v73Ev,
  (VTBL_ENTRY)&_ZN5S84C53v74Ev,
  (VTBL_ENTRY)&_ZN5S84C53v75Ev,
  (VTBL_ENTRY)&_ZN5S84C53v76Ev,
  (VTBL_ENTRY)&_ZN5S84C53v77Ev,
  (VTBL_ENTRY)&_ZN5S84C53v78Ev,
  (VTBL_ENTRY)&_ZN5S84C53v79Ev,
  (VTBL_ENTRY)&_ZN5S84C53v80Ev,
  (VTBL_ENTRY)&_ZN5S84C53v81Ev,
  (VTBL_ENTRY)&_ZN5S84C53v82Ev,
  (VTBL_ENTRY)&_ZN5S84C53v83Ev,
  (VTBL_ENTRY)&_ZN5S84C53v84Ev,
  (VTBL_ENTRY)&_ZN5S84C53v85Ev,
  (VTBL_ENTRY)&_ZN5S84C53v86Ev,
  (VTBL_ENTRY)&_ZN5S84C53v87Ev,
  (VTBL_ENTRY)&_ZN5S84C53v88Ev,
  (VTBL_ENTRY)&_ZN5S84C53v89Ev,
  (VTBL_ENTRY)&_ZN5S84C53v90Ev,
  (VTBL_ENTRY)&_ZN5S84C53v91Ev,
  (VTBL_ENTRY)&_ZN5S84C53v92Ev,
  (VTBL_ENTRY)&_ZN5S84C53v93Ev,
  (VTBL_ENTRY)&_ZN5S84C53v94Ev,
  (VTBL_ENTRY)&_ZN5S84C53v95Ev,
  (VTBL_ENTRY)&_ZN5S84C53v96Ev,
  (VTBL_ENTRY)&_ZN5S84C53v97Ev,
  (VTBL_ENTRY)&_ZN5S84C53v98Ev,
  (VTBL_ENTRY)&_ZN5S84C53v99Ev,
  (VTBL_ENTRY)&_ZN5S84C54v100Ev,
  (VTBL_ENTRY)&_ZN5S84C54v101Ev,
  (VTBL_ENTRY)&_ZN5S84C54v102Ev,
  (VTBL_ENTRY)&_ZN5S84C54v103Ev,
  (VTBL_ENTRY)&_ZN5S84C54v104Ev,
  (VTBL_ENTRY)&_ZN5S84C54v105Ev,
  (VTBL_ENTRY)&_ZN5S84C54v106Ev,
  (VTBL_ENTRY)&_ZN5S84C54v107Ev,
  (VTBL_ENTRY)&_ZN5S84C54v108Ev,
  (VTBL_ENTRY)&_ZN5S84C54v109Ev,
  (VTBL_ENTRY)&_ZN5S84C54v110Ev,
  (VTBL_ENTRY)&_ZN5S84C54v111Ev,
  (VTBL_ENTRY)&_ZN5S84C54v112Ev,
  (VTBL_ENTRY)&_ZN5S84C54v113Ev,
  (VTBL_ENTRY)&_ZN5S84C54v114Ev,
  (VTBL_ENTRY)&_ZN5S84C54v115Ev,
  (VTBL_ENTRY)&_ZN5S84C54v116Ev,
  (VTBL_ENTRY)&_ZN5S84C54v117Ev,
  (VTBL_ENTRY)&_ZN5S84C54v118Ev,
  (VTBL_ENTRY)&_ZN5S84C54v119Ev,
  (VTBL_ENTRY)&_ZN5S84C54v120Ev,
  (VTBL_ENTRY)&_ZN5S84C54v121Ev,
  (VTBL_ENTRY)&_ZN5S84C54v122Ev,
  (VTBL_ENTRY)&_ZN5S84C54v123Ev,
  (VTBL_ENTRY)&_ZN5S84C54v124Ev,
  (VTBL_ENTRY)&_ZN5S84C54v125Ev,
  (VTBL_ENTRY)&_ZN5S84C54v126Ev,
  (VTBL_ENTRY)&_ZN5S84C54v127Ev,
  (VTBL_ENTRY)&_ZN5S84C54v128Ev,
  (VTBL_ENTRY)&_ZN5S84C54v129Ev,
  (VTBL_ENTRY)&_ZN5S84C54v130Ev,
  (VTBL_ENTRY)&_ZN5S84C54v131Ev,
  (VTBL_ENTRY)&_ZN5S84C54v132Ev,
  (VTBL_ENTRY)&_ZN5S84C54v133Ev,
  (VTBL_ENTRY)&_ZN5S84C54v134Ev,
  (VTBL_ENTRY)&_ZN5S84C54v135Ev,
  (VTBL_ENTRY)&_ZN5S84C54v136Ev,
  (VTBL_ENTRY)&_ZN5S84C54v137Ev,
  (VTBL_ENTRY)&_ZN5S84C54v138Ev,
  (VTBL_ENTRY)&_ZN5S84C54v139Ev,
  (VTBL_ENTRY)&_ZN5S84C54v140Ev,
  (VTBL_ENTRY)&_ZN5S84C54v141Ev,
  (VTBL_ENTRY)&_ZN5S84C54v142Ev,
  (VTBL_ENTRY)&_ZN5S84C54v143Ev,
  (VTBL_ENTRY)&_ZN5S84C54v144Ev,
  (VTBL_ENTRY)&_ZN5S84C54v145Ev,
  (VTBL_ENTRY)&_ZN5S84C44v146Ev,
  (VTBL_ENTRY)&_ZN5S84C44v147Ev,
  (VTBL_ENTRY)&_ZN5S84C44v148Ev,
  (VTBL_ENTRY)&_ZN5S84C44v149Ev,
  (VTBL_ENTRY)&_ZN5S84C44v150Ev,
  (VTBL_ENTRY)&_ZN5S84C44v151Ev,
  (VTBL_ENTRY)&_ZN5S84C44v152Ev,
  (VTBL_ENTRY)&_ZN5S84C44v153Ev,
  (VTBL_ENTRY)&_ZN5S84C44v154Ev,
  (VTBL_ENTRY)&_ZN5S84C44v155Ev,
  (VTBL_ENTRY)&_ZN5S84C44v156Ev,
  (VTBL_ENTRY)&_ZN5S84C44v157Ev,
  (VTBL_ENTRY)&_ZN5S84C44v158Ev,
  (VTBL_ENTRY)&_ZN5S84C44v159Ev,
  (VTBL_ENTRY)&_ZN5S84C44v160Ev,
  (VTBL_ENTRY)&_ZN5S84C44v161Ev,
  (VTBL_ENTRY)&_ZN5S84C44v162Ev,
  (VTBL_ENTRY)&_ZN5S84C44v163Ev,
  (VTBL_ENTRY)&_ZN5S84C44v164Ev,
  (VTBL_ENTRY)&_ZN5S84C44v165Ev,
  (VTBL_ENTRY)&_ZN5S84C44v166Ev,
  (VTBL_ENTRY)&_ZN5S84C44v167Ev,
  (VTBL_ENTRY)&_ZN5S84C44v168Ev,
  (VTBL_ENTRY)&_ZN5S84C44v169Ev,
  (VTBL_ENTRY)&_ZN5S84C44v170Ev,
  (VTBL_ENTRY)&_ZN5S84C44v171Ev,
  (VTBL_ENTRY)&_ZN5S84C44v172Ev,
  (VTBL_ENTRY)&_ZN5S84C44v173Ev,
  (VTBL_ENTRY)&_ZN5S84C44v174Ev,
  (VTBL_ENTRY)&_ZN5S84C44v175Ev,
  (VTBL_ENTRY)&_ZN5S84C44v176Ev,
  (VTBL_ENTRY)&_ZN5S84C44v177Ev,
  (VTBL_ENTRY)&_ZN5S84C44v178Ev,
  (VTBL_ENTRY)&_ZN5S84C44v179Ev,
  (VTBL_ENTRY)&_ZN5S84C44v180Ev,
  (VTBL_ENTRY)&_ZN5S84C44v181Ev,
  (VTBL_ENTRY)&_ZN5S84C44v182Ev,
  (VTBL_ENTRY)&_ZN5S84C44v183Ev,
  (VTBL_ENTRY)&_ZN5S84C44v184Ev,
  (VTBL_ENTRY)&_ZN5S84C34v185Ev,
  (VTBL_ENTRY)&_ZN5S84C34v186Ev,
  (VTBL_ENTRY)&_ZN5S84C34v187Ev,
  (VTBL_ENTRY)&_ZN5S84C34v188Ev,
  (VTBL_ENTRY)&_ZN5S84C34v189Ev,
  (VTBL_ENTRY)&_ZN5S84C34v190Ev,
  (VTBL_ENTRY)&_ZN5S84C34v191Ev,
  (VTBL_ENTRY)&_ZN5S84C34v192Ev,
  (VTBL_ENTRY)&_ZN5S84C34v193Ev,
  (VTBL_ENTRY)&_ZN5S84C34v194Ev,
  (VTBL_ENTRY)&_ZN5S84C34v195Ev,
  (VTBL_ENTRY)&_ZN5S84C34v196Ev,
  (VTBL_ENTRY)&_ZN5S84C34v197Ev,
  (VTBL_ENTRY)&_ZN5S84C34v198Ev,
  (VTBL_ENTRY)&_ZN5S84C34v199Ev,
  (VTBL_ENTRY)&_ZN5S84C34v200Ev,
  (VTBL_ENTRY)&_ZN5S84C34v201Ev,
  (VTBL_ENTRY)&_ZN5S84C34v202Ev,
  (VTBL_ENTRY)&_ZN5S84C34v203Ev,
  (VTBL_ENTRY)&_ZN5S84C34v204Ev,
  (VTBL_ENTRY)&_ZN5S84C34v205Ev,
  (VTBL_ENTRY)&_ZN5S84C34v206Ev,
  (VTBL_ENTRY)&_ZN5S84C34v207Ev,
};
extern VTBL_ENTRY _ZTI5S84C3[];
extern  VTBL_ENTRY _ZTV5S84C3[];
Class_Descriptor cd_S84C3 = {  "S84C3", // class name
  bases_S84C3, 4,
  &(vtc_S84C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S84C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S84C3),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C2  : S84C3 {
  virtual  ~S84C2(); // _ZN5S84C2D1Ev
  virtual void  v208(); // _ZN5S84C24v208Ev
  virtual void  v209(); // _ZN5S84C24v209Ev
  virtual void  v210(); // _ZN5S84C24v210Ev
  S84C2(); // tgen
};
//SIG(-1 S84C2) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3}


 S84C2 ::~S84C2(){ note_dtor("S84C2", this);}
void  S84C2 ::v208(){vfunc_called(this, "_ZN5S84C24v208Ev");}
void  S84C2 ::v209(){vfunc_called(this, "_ZN5S84C24v209Ev");}
void  S84C2 ::v210(){vfunc_called(this, "_ZN5S84C24v210Ev");}
S84C2 ::S84C2(){ note_ctor("S84C2", this);} // tgen

static void Test_S84C2()
{
  extern Class_Descriptor cd_S84C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S84C2, buf);
    S84C2 *dp, &lv = *(dp=new (buf) S84C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S84C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C2)");
    check_base_class_offset(lv, (S84C7*)(S84C6*)(S84C5*)(S84C4*)(S84C3*), 0, "S84C2");
    check_base_class_offset(lv, (S84C6*)(S84C5*)(S84C4*)(S84C3*), 0, "S84C2");
    check_base_class_offset(lv, (S84C5*)(S84C4*)(S84C3*), 0, "S84C2");
    check_base_class_offset(lv, (S84C4*)(S84C3*), 0, "S84C2");
    check_base_class_offset(lv, (S84C3*), 0, "S84C2");
    test_class_info(&lv, &cd_S84C2);
    dp->~S84C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C2(Test_S84C2, "S84C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN5S84C2C1Ev();
extern void _ZN5S84C2D1Ev();
Name_Map name_map_S84C2[] = {
  NSPAIR(_ZN5S84C2C1Ev),
  NSPAIR(_ZN5S84C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S84C7;
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
extern Class_Descriptor cd_S84C6;
extern VTBL_ENTRY _ZTI5S84C6[];
extern  VTBL_ENTRY _ZTV5S84C6[];
extern Class_Descriptor cd_S84C5;
extern VTBL_ENTRY _ZTI5S84C5[];
extern  VTBL_ENTRY _ZTV5S84C5[];
extern Class_Descriptor cd_S84C4;
extern VTBL_ENTRY _ZTI5S84C4[];
extern  VTBL_ENTRY _ZTV5S84C4[];
extern Class_Descriptor cd_S84C3;
extern VTBL_ENTRY _ZTI5S84C3[];
extern  VTBL_ENTRY _ZTV5S84C3[];
static Base_Class bases_S84C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S84C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S84C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S84C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S84C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S84C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S84C2[];
extern void _ZN5S84C2D1Ev();
extern void _ZN5S84C2D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
extern void _ZN5S84C63v68Ev();
extern void _ZN5S84C63v69Ev();
extern void _ZN5S84C53v70Ev();
extern void _ZN5S84C53v71Ev();
extern void _ZN5S84C53v72Ev();
extern void _ZN5S84C53v73Ev();
extern void _ZN5S84C53v74Ev();
extern void _ZN5S84C53v75Ev();
extern void _ZN5S84C53v76Ev();
extern void _ZN5S84C53v77Ev();
extern void _ZN5S84C53v78Ev();
extern void _ZN5S84C53v79Ev();
extern void _ZN5S84C53v80Ev();
extern void _ZN5S84C53v81Ev();
extern void _ZN5S84C53v82Ev();
extern void _ZN5S84C53v83Ev();
extern void _ZN5S84C53v84Ev();
extern void _ZN5S84C53v85Ev();
extern void _ZN5S84C53v86Ev();
extern void _ZN5S84C53v87Ev();
extern void _ZN5S84C53v88Ev();
extern void _ZN5S84C53v89Ev();
extern void _ZN5S84C53v90Ev();
extern void _ZN5S84C53v91Ev();
extern void _ZN5S84C53v92Ev();
extern void _ZN5S84C53v93Ev();
extern void _ZN5S84C53v94Ev();
extern void _ZN5S84C53v95Ev();
extern void _ZN5S84C53v96Ev();
extern void _ZN5S84C53v97Ev();
extern void _ZN5S84C53v98Ev();
extern void _ZN5S84C53v99Ev();
extern void _ZN5S84C54v100Ev();
extern void _ZN5S84C54v101Ev();
extern void _ZN5S84C54v102Ev();
extern void _ZN5S84C54v103Ev();
extern void _ZN5S84C54v104Ev();
extern void _ZN5S84C54v105Ev();
extern void _ZN5S84C54v106Ev();
extern void _ZN5S84C54v107Ev();
extern void _ZN5S84C54v108Ev();
extern void _ZN5S84C54v109Ev();
extern void _ZN5S84C54v110Ev();
extern void _ZN5S84C54v111Ev();
extern void _ZN5S84C54v112Ev();
extern void _ZN5S84C54v113Ev();
extern void _ZN5S84C54v114Ev();
extern void _ZN5S84C54v115Ev();
extern void _ZN5S84C54v116Ev();
extern void _ZN5S84C54v117Ev();
extern void _ZN5S84C54v118Ev();
extern void _ZN5S84C54v119Ev();
extern void _ZN5S84C54v120Ev();
extern void _ZN5S84C54v121Ev();
extern void _ZN5S84C54v122Ev();
extern void _ZN5S84C54v123Ev();
extern void _ZN5S84C54v124Ev();
extern void _ZN5S84C54v125Ev();
extern void _ZN5S84C54v126Ev();
extern void _ZN5S84C54v127Ev();
extern void _ZN5S84C54v128Ev();
extern void _ZN5S84C54v129Ev();
extern void _ZN5S84C54v130Ev();
extern void _ZN5S84C54v131Ev();
extern void _ZN5S84C54v132Ev();
extern void _ZN5S84C54v133Ev();
extern void _ZN5S84C54v134Ev();
extern void _ZN5S84C54v135Ev();
extern void _ZN5S84C54v136Ev();
extern void _ZN5S84C54v137Ev();
extern void _ZN5S84C54v138Ev();
extern void _ZN5S84C54v139Ev();
extern void _ZN5S84C54v140Ev();
extern void _ZN5S84C54v141Ev();
extern void _ZN5S84C54v142Ev();
extern void _ZN5S84C54v143Ev();
extern void _ZN5S84C54v144Ev();
extern void _ZN5S84C54v145Ev();
extern void _ZN5S84C44v146Ev();
extern void _ZN5S84C44v147Ev();
extern void _ZN5S84C44v148Ev();
extern void _ZN5S84C44v149Ev();
extern void _ZN5S84C44v150Ev();
extern void _ZN5S84C44v151Ev();
extern void _ZN5S84C44v152Ev();
extern void _ZN5S84C44v153Ev();
extern void _ZN5S84C44v154Ev();
extern void _ZN5S84C44v155Ev();
extern void _ZN5S84C44v156Ev();
extern void _ZN5S84C44v157Ev();
extern void _ZN5S84C44v158Ev();
extern void _ZN5S84C44v159Ev();
extern void _ZN5S84C44v160Ev();
extern void _ZN5S84C44v161Ev();
extern void _ZN5S84C44v162Ev();
extern void _ZN5S84C44v163Ev();
extern void _ZN5S84C44v164Ev();
extern void _ZN5S84C44v165Ev();
extern void _ZN5S84C44v166Ev();
extern void _ZN5S84C44v167Ev();
extern void _ZN5S84C44v168Ev();
extern void _ZN5S84C44v169Ev();
extern void _ZN5S84C44v170Ev();
extern void _ZN5S84C44v171Ev();
extern void _ZN5S84C44v172Ev();
extern void _ZN5S84C44v173Ev();
extern void _ZN5S84C44v174Ev();
extern void _ZN5S84C44v175Ev();
extern void _ZN5S84C44v176Ev();
extern void _ZN5S84C44v177Ev();
extern void _ZN5S84C44v178Ev();
extern void _ZN5S84C44v179Ev();
extern void _ZN5S84C44v180Ev();
extern void _ZN5S84C44v181Ev();
extern void _ZN5S84C44v182Ev();
extern void _ZN5S84C44v183Ev();
extern void _ZN5S84C44v184Ev();
extern void _ZN5S84C34v185Ev();
extern void _ZN5S84C34v186Ev();
extern void _ZN5S84C34v187Ev();
extern void _ZN5S84C34v188Ev();
extern void _ZN5S84C34v189Ev();
extern void _ZN5S84C34v190Ev();
extern void _ZN5S84C34v191Ev();
extern void _ZN5S84C34v192Ev();
extern void _ZN5S84C34v193Ev();
extern void _ZN5S84C34v194Ev();
extern void _ZN5S84C34v195Ev();
extern void _ZN5S84C34v196Ev();
extern void _ZN5S84C34v197Ev();
extern void _ZN5S84C34v198Ev();
extern void _ZN5S84C34v199Ev();
extern void _ZN5S84C34v200Ev();
extern void _ZN5S84C34v201Ev();
extern void _ZN5S84C34v202Ev();
extern void _ZN5S84C34v203Ev();
extern void _ZN5S84C34v204Ev();
extern void _ZN5S84C34v205Ev();
extern void _ZN5S84C34v206Ev();
extern void _ZN5S84C34v207Ev();
extern void _ZN5S84C24v208Ev();
extern void _ZN5S84C24v209Ev();
extern void _ZN5S84C24v210Ev();
static  VTBL_ENTRY vtc_S84C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C2[0]),
  (VTBL_ENTRY)&_ZN5S84C2D1Ev,
  (VTBL_ENTRY)&_ZN5S84C2D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
  (VTBL_ENTRY)&_ZN5S84C63v68Ev,
  (VTBL_ENTRY)&_ZN5S84C63v69Ev,
  (VTBL_ENTRY)&_ZN5S84C53v70Ev,
  (VTBL_ENTRY)&_ZN5S84C53v71Ev,
  (VTBL_ENTRY)&_ZN5S84C53v72Ev,
  (VTBL_ENTRY)&_ZN5S84C53v73Ev,
  (VTBL_ENTRY)&_ZN5S84C53v74Ev,
  (VTBL_ENTRY)&_ZN5S84C53v75Ev,
  (VTBL_ENTRY)&_ZN5S84C53v76Ev,
  (VTBL_ENTRY)&_ZN5S84C53v77Ev,
  (VTBL_ENTRY)&_ZN5S84C53v78Ev,
  (VTBL_ENTRY)&_ZN5S84C53v79Ev,
  (VTBL_ENTRY)&_ZN5S84C53v80Ev,
  (VTBL_ENTRY)&_ZN5S84C53v81Ev,
  (VTBL_ENTRY)&_ZN5S84C53v82Ev,
  (VTBL_ENTRY)&_ZN5S84C53v83Ev,
  (VTBL_ENTRY)&_ZN5S84C53v84Ev,
  (VTBL_ENTRY)&_ZN5S84C53v85Ev,
  (VTBL_ENTRY)&_ZN5S84C53v86Ev,
  (VTBL_ENTRY)&_ZN5S84C53v87Ev,
  (VTBL_ENTRY)&_ZN5S84C53v88Ev,
  (VTBL_ENTRY)&_ZN5S84C53v89Ev,
  (VTBL_ENTRY)&_ZN5S84C53v90Ev,
  (VTBL_ENTRY)&_ZN5S84C53v91Ev,
  (VTBL_ENTRY)&_ZN5S84C53v92Ev,
  (VTBL_ENTRY)&_ZN5S84C53v93Ev,
  (VTBL_ENTRY)&_ZN5S84C53v94Ev,
  (VTBL_ENTRY)&_ZN5S84C53v95Ev,
  (VTBL_ENTRY)&_ZN5S84C53v96Ev,
  (VTBL_ENTRY)&_ZN5S84C53v97Ev,
  (VTBL_ENTRY)&_ZN5S84C53v98Ev,
  (VTBL_ENTRY)&_ZN5S84C53v99Ev,
  (VTBL_ENTRY)&_ZN5S84C54v100Ev,
  (VTBL_ENTRY)&_ZN5S84C54v101Ev,
  (VTBL_ENTRY)&_ZN5S84C54v102Ev,
  (VTBL_ENTRY)&_ZN5S84C54v103Ev,
  (VTBL_ENTRY)&_ZN5S84C54v104Ev,
  (VTBL_ENTRY)&_ZN5S84C54v105Ev,
  (VTBL_ENTRY)&_ZN5S84C54v106Ev,
  (VTBL_ENTRY)&_ZN5S84C54v107Ev,
  (VTBL_ENTRY)&_ZN5S84C54v108Ev,
  (VTBL_ENTRY)&_ZN5S84C54v109Ev,
  (VTBL_ENTRY)&_ZN5S84C54v110Ev,
  (VTBL_ENTRY)&_ZN5S84C54v111Ev,
  (VTBL_ENTRY)&_ZN5S84C54v112Ev,
  (VTBL_ENTRY)&_ZN5S84C54v113Ev,
  (VTBL_ENTRY)&_ZN5S84C54v114Ev,
  (VTBL_ENTRY)&_ZN5S84C54v115Ev,
  (VTBL_ENTRY)&_ZN5S84C54v116Ev,
  (VTBL_ENTRY)&_ZN5S84C54v117Ev,
  (VTBL_ENTRY)&_ZN5S84C54v118Ev,
  (VTBL_ENTRY)&_ZN5S84C54v119Ev,
  (VTBL_ENTRY)&_ZN5S84C54v120Ev,
  (VTBL_ENTRY)&_ZN5S84C54v121Ev,
  (VTBL_ENTRY)&_ZN5S84C54v122Ev,
  (VTBL_ENTRY)&_ZN5S84C54v123Ev,
  (VTBL_ENTRY)&_ZN5S84C54v124Ev,
  (VTBL_ENTRY)&_ZN5S84C54v125Ev,
  (VTBL_ENTRY)&_ZN5S84C54v126Ev,
  (VTBL_ENTRY)&_ZN5S84C54v127Ev,
  (VTBL_ENTRY)&_ZN5S84C54v128Ev,
  (VTBL_ENTRY)&_ZN5S84C54v129Ev,
  (VTBL_ENTRY)&_ZN5S84C54v130Ev,
  (VTBL_ENTRY)&_ZN5S84C54v131Ev,
  (VTBL_ENTRY)&_ZN5S84C54v132Ev,
  (VTBL_ENTRY)&_ZN5S84C54v133Ev,
  (VTBL_ENTRY)&_ZN5S84C54v134Ev,
  (VTBL_ENTRY)&_ZN5S84C54v135Ev,
  (VTBL_ENTRY)&_ZN5S84C54v136Ev,
  (VTBL_ENTRY)&_ZN5S84C54v137Ev,
  (VTBL_ENTRY)&_ZN5S84C54v138Ev,
  (VTBL_ENTRY)&_ZN5S84C54v139Ev,
  (VTBL_ENTRY)&_ZN5S84C54v140Ev,
  (VTBL_ENTRY)&_ZN5S84C54v141Ev,
  (VTBL_ENTRY)&_ZN5S84C54v142Ev,
  (VTBL_ENTRY)&_ZN5S84C54v143Ev,
  (VTBL_ENTRY)&_ZN5S84C54v144Ev,
  (VTBL_ENTRY)&_ZN5S84C54v145Ev,
  (VTBL_ENTRY)&_ZN5S84C44v146Ev,
  (VTBL_ENTRY)&_ZN5S84C44v147Ev,
  (VTBL_ENTRY)&_ZN5S84C44v148Ev,
  (VTBL_ENTRY)&_ZN5S84C44v149Ev,
  (VTBL_ENTRY)&_ZN5S84C44v150Ev,
  (VTBL_ENTRY)&_ZN5S84C44v151Ev,
  (VTBL_ENTRY)&_ZN5S84C44v152Ev,
  (VTBL_ENTRY)&_ZN5S84C44v153Ev,
  (VTBL_ENTRY)&_ZN5S84C44v154Ev,
  (VTBL_ENTRY)&_ZN5S84C44v155Ev,
  (VTBL_ENTRY)&_ZN5S84C44v156Ev,
  (VTBL_ENTRY)&_ZN5S84C44v157Ev,
  (VTBL_ENTRY)&_ZN5S84C44v158Ev,
  (VTBL_ENTRY)&_ZN5S84C44v159Ev,
  (VTBL_ENTRY)&_ZN5S84C44v160Ev,
  (VTBL_ENTRY)&_ZN5S84C44v161Ev,
  (VTBL_ENTRY)&_ZN5S84C44v162Ev,
  (VTBL_ENTRY)&_ZN5S84C44v163Ev,
  (VTBL_ENTRY)&_ZN5S84C44v164Ev,
  (VTBL_ENTRY)&_ZN5S84C44v165Ev,
  (VTBL_ENTRY)&_ZN5S84C44v166Ev,
  (VTBL_ENTRY)&_ZN5S84C44v167Ev,
  (VTBL_ENTRY)&_ZN5S84C44v168Ev,
  (VTBL_ENTRY)&_ZN5S84C44v169Ev,
  (VTBL_ENTRY)&_ZN5S84C44v170Ev,
  (VTBL_ENTRY)&_ZN5S84C44v171Ev,
  (VTBL_ENTRY)&_ZN5S84C44v172Ev,
  (VTBL_ENTRY)&_ZN5S84C44v173Ev,
  (VTBL_ENTRY)&_ZN5S84C44v174Ev,
  (VTBL_ENTRY)&_ZN5S84C44v175Ev,
  (VTBL_ENTRY)&_ZN5S84C44v176Ev,
  (VTBL_ENTRY)&_ZN5S84C44v177Ev,
  (VTBL_ENTRY)&_ZN5S84C44v178Ev,
  (VTBL_ENTRY)&_ZN5S84C44v179Ev,
  (VTBL_ENTRY)&_ZN5S84C44v180Ev,
  (VTBL_ENTRY)&_ZN5S84C44v181Ev,
  (VTBL_ENTRY)&_ZN5S84C44v182Ev,
  (VTBL_ENTRY)&_ZN5S84C44v183Ev,
  (VTBL_ENTRY)&_ZN5S84C44v184Ev,
  (VTBL_ENTRY)&_ZN5S84C34v185Ev,
  (VTBL_ENTRY)&_ZN5S84C34v186Ev,
  (VTBL_ENTRY)&_ZN5S84C34v187Ev,
  (VTBL_ENTRY)&_ZN5S84C34v188Ev,
  (VTBL_ENTRY)&_ZN5S84C34v189Ev,
  (VTBL_ENTRY)&_ZN5S84C34v190Ev,
  (VTBL_ENTRY)&_ZN5S84C34v191Ev,
  (VTBL_ENTRY)&_ZN5S84C34v192Ev,
  (VTBL_ENTRY)&_ZN5S84C34v193Ev,
  (VTBL_ENTRY)&_ZN5S84C34v194Ev,
  (VTBL_ENTRY)&_ZN5S84C34v195Ev,
  (VTBL_ENTRY)&_ZN5S84C34v196Ev,
  (VTBL_ENTRY)&_ZN5S84C34v197Ev,
  (VTBL_ENTRY)&_ZN5S84C34v198Ev,
  (VTBL_ENTRY)&_ZN5S84C34v199Ev,
  (VTBL_ENTRY)&_ZN5S84C34v200Ev,
  (VTBL_ENTRY)&_ZN5S84C34v201Ev,
  (VTBL_ENTRY)&_ZN5S84C34v202Ev,
  (VTBL_ENTRY)&_ZN5S84C34v203Ev,
  (VTBL_ENTRY)&_ZN5S84C34v204Ev,
  (VTBL_ENTRY)&_ZN5S84C34v205Ev,
  (VTBL_ENTRY)&_ZN5S84C34v206Ev,
  (VTBL_ENTRY)&_ZN5S84C34v207Ev,
  (VTBL_ENTRY)&_ZN5S84C24v208Ev,
  (VTBL_ENTRY)&_ZN5S84C24v209Ev,
  (VTBL_ENTRY)&_ZN5S84C24v210Ev,
};
extern VTBL_ENTRY _ZTI5S84C2[];
extern  VTBL_ENTRY _ZTV5S84C2[];
Class_Descriptor cd_S84C2 = {  "S84C2", // class name
  bases_S84C2, 5,
  &(vtc_S84C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI5S84C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S84C2),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S84C1  : S84C2 {
  void *s84c1f0;
  virtual  ~S84C1(); // _ZN5S84C1D1Ev
  virtual void  v1(); // _ZN5S84C12v1Ev
  virtual void  v2(); // _ZN5S84C12v2Ev
  virtual void  v3(); // _ZN5S84C12v3Ev
  S84C1(); // tgen
};
//SIG(1 S84C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ BC7{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC8{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC9{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC10{ BC11{ BC12{ m Fp Fi[2]}}} FC13{ BC14{ BC12}} Fp FC15{ BC16{ BC12}} FC15 FC17{ BC18{ BC12}} FC19{ BC20{ BC12}} Fc Fi Fp FC8 FC8 FC8 FC8 FC8 FC8 FC21{ m Fp FC22{ m Fi[2]}} FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21 FC21} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC8 Fp[9] FC23{ BC24{ BC12}} FC10 FC25{ BC26{ m FC27{ BC12} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC22 FC8 FC8 Fp FC21 FC21 FC21 FC21 FC21} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC21 FC21 FC21} vd v208 v209 v210} vd v1 v2 v3 Fp}


 S84C1 ::~S84C1(){ note_dtor("S84C1", this);}
void  S84C1 ::v1(){vfunc_called(this, "_ZN5S84C12v1Ev");}
void  S84C1 ::v2(){vfunc_called(this, "_ZN5S84C12v2Ev");}
void  S84C1 ::v3(){vfunc_called(this, "_ZN5S84C12v3Ev");}
S84C1 ::S84C1(){ note_ctor("S84C1", this);} // tgen

static void Test_S84C1()
{
  extern Class_Descriptor cd_S84C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(110,156)];
    init_test(&cd_S84C1, buf);
    S84C1 *dp, &lv = *(dp=new (buf) S84C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(872,620), "sizeof(S84C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S84C1)");
    check_base_class_offset(lv, (S84C7*)(S84C6*)(S84C5*)(S84C4*)(S84C3*)(S84C2*), 0, "S84C1");
    check_base_class_offset(lv, (S84C6*)(S84C5*)(S84C4*)(S84C3*)(S84C2*), 0, "S84C1");
    check_base_class_offset(lv, (S84C5*)(S84C4*)(S84C3*)(S84C2*), 0, "S84C1");
    check_base_class_offset(lv, (S84C4*)(S84C3*)(S84C2*), 0, "S84C1");
    check_base_class_offset(lv, (S84C3*)(S84C2*), 0, "S84C1");
    check_base_class_offset(lv, (S84C2*), 0, "S84C1");
    check_field_offset(lv, s84c1f0, ABISELECT(864,616), "S84C1.s84c1f0");
    test_class_info(&lv, &cd_S84C1);
    dp->~S84C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS84C1(Test_S84C1, "S84C1", ABISELECT(872,620));

#else // __cplusplus

extern void _ZN5S84C1C1Ev();
extern void _ZN5S84C1D1Ev();
Name_Map name_map_S84C1[] = {
  NSPAIR(_ZN5S84C1C1Ev),
  NSPAIR(_ZN5S84C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S84C7;
extern VTBL_ENTRY _ZTI5S84C7[];
extern  VTBL_ENTRY _ZTV5S84C7[];
extern Class_Descriptor cd_S84C6;
extern VTBL_ENTRY _ZTI5S84C6[];
extern  VTBL_ENTRY _ZTV5S84C6[];
extern Class_Descriptor cd_S84C5;
extern VTBL_ENTRY _ZTI5S84C5[];
extern  VTBL_ENTRY _ZTV5S84C5[];
extern Class_Descriptor cd_S84C4;
extern VTBL_ENTRY _ZTI5S84C4[];
extern  VTBL_ENTRY _ZTV5S84C4[];
extern Class_Descriptor cd_S84C3;
extern VTBL_ENTRY _ZTI5S84C3[];
extern  VTBL_ENTRY _ZTV5S84C3[];
extern Class_Descriptor cd_S84C2;
extern VTBL_ENTRY _ZTI5S84C2[];
extern  VTBL_ENTRY _ZTV5S84C2[];
static Base_Class bases_S84C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S84C7,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S84C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S84C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S84C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S84C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    5, //immediately_derived
  0, 0},
  {&cd_S84C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    6, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI5S84C1[];
extern void _ZN5S84C1D1Ev();
extern void _ZN5S84C1D0Ev();
extern void _ZN5S84C72v4Ev();
extern void _ZN5S84C72v5Ev();
extern void _ZN5S84C72v6Ev();
extern void _ZN5S84C72v7Ev();
extern void _ZN5S84C72v8Ev();
extern void _ZN5S84C72v9Ev();
extern void _ZN5S84C73v10Ev();
extern void _ZN5S84C73v11Ev();
extern void _ZN5S84C73v12Ev();
extern void _ZN5S84C73v13Ev();
extern void _ZN5S84C73v14Ev();
extern void _ZN5S84C73v15Ev();
extern void _ZN5S84C73v16Ev();
extern void _ZN5S84C73v17Ev();
extern void _ZN5S84C73v18Ev();
extern void _ZN5S84C73v19Ev();
extern void _ZN5S84C73v20Ev();
extern void _ZN5S84C73v21Ev();
extern void _ZN5S84C73v22Ev();
extern void _ZN5S84C73v23Ev();
extern void _ZN5S84C73v24Ev();
extern void _ZN5S84C73v25Ev();
extern void _ZN5S84C73v26Ev();
extern void _ZN5S84C73v27Ev();
extern void _ZN5S84C73v28Ev();
extern void _ZN5S84C73v29Ev();
extern void _ZN5S84C73v30Ev();
extern void _ZN5S84C73v31Ev();
extern void _ZN5S84C73v32Ev();
extern void _ZN5S84C73v33Ev();
extern void _ZN5S84C73v34Ev();
extern void _ZN5S84C73v35Ev();
extern void _ZN5S84C73v36Ev();
extern void _ZN5S84C73v37Ev();
extern void _ZN5S84C73v38Ev();
extern void _ZN5S84C73v39Ev();
extern void _ZN5S84C73v40Ev();
extern void _ZN5S84C73v41Ev();
extern void _ZN5S84C73v42Ev();
extern void _ZN5S84C73v43Ev();
extern void _ZN5S84C73v44Ev();
extern void _ZN5S84C73v45Ev();
extern void _ZN5S84C73v46Ev();
extern void _ZN5S84C73v47Ev();
extern void _ZN5S84C73v48Ev();
extern void _ZN5S84C73v49Ev();
extern void _ZN5S84C73v50Ev();
extern void _ZN5S84C73v51Ev();
extern void _ZN5S84C73v52Ev();
extern void _ZN5S84C73v53Ev();
extern void _ZN5S84C73v54Ev();
extern void _ZN5S84C73v55Ev();
extern void _ZN5S84C73v56Ev();
extern void _ZN5S84C73v57Ev();
extern void _ZN5S84C73v58Ev();
extern void _ZN5S84C73v59Ev();
extern void _ZN5S84C73v60Ev();
extern void _ZN5S84C73v61Ev();
extern void _ZN5S84C73v62Ev();
extern void _ZN5S84C73v63Ev();
extern void _ZN5S84C73v64Ev();
extern void _ZN5S84C73v65Ev();
extern void _ZN5S84C73v66Ev();
extern void _ZN5S84C73v67Ev();
extern void _ZN5S84C63v68Ev();
extern void _ZN5S84C63v69Ev();
extern void _ZN5S84C53v70Ev();
extern void _ZN5S84C53v71Ev();
extern void _ZN5S84C53v72Ev();
extern void _ZN5S84C53v73Ev();
extern void _ZN5S84C53v74Ev();
extern void _ZN5S84C53v75Ev();
extern void _ZN5S84C53v76Ev();
extern void _ZN5S84C53v77Ev();
extern void _ZN5S84C53v78Ev();
extern void _ZN5S84C53v79Ev();
extern void _ZN5S84C53v80Ev();
extern void _ZN5S84C53v81Ev();
extern void _ZN5S84C53v82Ev();
extern void _ZN5S84C53v83Ev();
extern void _ZN5S84C53v84Ev();
extern void _ZN5S84C53v85Ev();
extern void _ZN5S84C53v86Ev();
extern void _ZN5S84C53v87Ev();
extern void _ZN5S84C53v88Ev();
extern void _ZN5S84C53v89Ev();
extern void _ZN5S84C53v90Ev();
extern void _ZN5S84C53v91Ev();
extern void _ZN5S84C53v92Ev();
extern void _ZN5S84C53v93Ev();
extern void _ZN5S84C53v94Ev();
extern void _ZN5S84C53v95Ev();
extern void _ZN5S84C53v96Ev();
extern void _ZN5S84C53v97Ev();
extern void _ZN5S84C53v98Ev();
extern void _ZN5S84C53v99Ev();
extern void _ZN5S84C54v100Ev();
extern void _ZN5S84C54v101Ev();
extern void _ZN5S84C54v102Ev();
extern void _ZN5S84C54v103Ev();
extern void _ZN5S84C54v104Ev();
extern void _ZN5S84C54v105Ev();
extern void _ZN5S84C54v106Ev();
extern void _ZN5S84C54v107Ev();
extern void _ZN5S84C54v108Ev();
extern void _ZN5S84C54v109Ev();
extern void _ZN5S84C54v110Ev();
extern void _ZN5S84C54v111Ev();
extern void _ZN5S84C54v112Ev();
extern void _ZN5S84C54v113Ev();
extern void _ZN5S84C54v114Ev();
extern void _ZN5S84C54v115Ev();
extern void _ZN5S84C54v116Ev();
extern void _ZN5S84C54v117Ev();
extern void _ZN5S84C54v118Ev();
extern void _ZN5S84C54v119Ev();
extern void _ZN5S84C54v120Ev();
extern void _ZN5S84C54v121Ev();
extern void _ZN5S84C54v122Ev();
extern void _ZN5S84C54v123Ev();
extern void _ZN5S84C54v124Ev();
extern void _ZN5S84C54v125Ev();
extern void _ZN5S84C54v126Ev();
extern void _ZN5S84C54v127Ev();
extern void _ZN5S84C54v128Ev();
extern void _ZN5S84C54v129Ev();
extern void _ZN5S84C54v130Ev();
extern void _ZN5S84C54v131Ev();
extern void _ZN5S84C54v132Ev();
extern void _ZN5S84C54v133Ev();
extern void _ZN5S84C54v134Ev();
extern void _ZN5S84C54v135Ev();
extern void _ZN5S84C54v136Ev();
extern void _ZN5S84C54v137Ev();
extern void _ZN5S84C54v138Ev();
extern void _ZN5S84C54v139Ev();
extern void _ZN5S84C54v140Ev();
extern void _ZN5S84C54v141Ev();
extern void _ZN5S84C54v142Ev();
extern void _ZN5S84C54v143Ev();
extern void _ZN5S84C54v144Ev();
extern void _ZN5S84C54v145Ev();
extern void _ZN5S84C44v146Ev();
extern void _ZN5S84C44v147Ev();
extern void _ZN5S84C44v148Ev();
extern void _ZN5S84C44v149Ev();
extern void _ZN5S84C44v150Ev();
extern void _ZN5S84C44v151Ev();
extern void _ZN5S84C44v152Ev();
extern void _ZN5S84C44v153Ev();
extern void _ZN5S84C44v154Ev();
extern void _ZN5S84C44v155Ev();
extern void _ZN5S84C44v156Ev();
extern void _ZN5S84C44v157Ev();
extern void _ZN5S84C44v158Ev();
extern void _ZN5S84C44v159Ev();
extern void _ZN5S84C44v160Ev();
extern void _ZN5S84C44v161Ev();
extern void _ZN5S84C44v162Ev();
extern void _ZN5S84C44v163Ev();
extern void _ZN5S84C44v164Ev();
extern void _ZN5S84C44v165Ev();
extern void _ZN5S84C44v166Ev();
extern void _ZN5S84C44v167Ev();
extern void _ZN5S84C44v168Ev();
extern void _ZN5S84C44v169Ev();
extern void _ZN5S84C44v170Ev();
extern void _ZN5S84C44v171Ev();
extern void _ZN5S84C44v172Ev();
extern void _ZN5S84C44v173Ev();
extern void _ZN5S84C44v174Ev();
extern void _ZN5S84C44v175Ev();
extern void _ZN5S84C44v176Ev();
extern void _ZN5S84C44v177Ev();
extern void _ZN5S84C44v178Ev();
extern void _ZN5S84C44v179Ev();
extern void _ZN5S84C44v180Ev();
extern void _ZN5S84C44v181Ev();
extern void _ZN5S84C44v182Ev();
extern void _ZN5S84C44v183Ev();
extern void _ZN5S84C44v184Ev();
extern void _ZN5S84C34v185Ev();
extern void _ZN5S84C34v186Ev();
extern void _ZN5S84C34v187Ev();
extern void _ZN5S84C34v188Ev();
extern void _ZN5S84C34v189Ev();
extern void _ZN5S84C34v190Ev();
extern void _ZN5S84C34v191Ev();
extern void _ZN5S84C34v192Ev();
extern void _ZN5S84C34v193Ev();
extern void _ZN5S84C34v194Ev();
extern void _ZN5S84C34v195Ev();
extern void _ZN5S84C34v196Ev();
extern void _ZN5S84C34v197Ev();
extern void _ZN5S84C34v198Ev();
extern void _ZN5S84C34v199Ev();
extern void _ZN5S84C34v200Ev();
extern void _ZN5S84C34v201Ev();
extern void _ZN5S84C34v202Ev();
extern void _ZN5S84C34v203Ev();
extern void _ZN5S84C34v204Ev();
extern void _ZN5S84C34v205Ev();
extern void _ZN5S84C34v206Ev();
extern void _ZN5S84C34v207Ev();
extern void _ZN5S84C24v208Ev();
extern void _ZN5S84C24v209Ev();
extern void _ZN5S84C24v210Ev();
extern void _ZN5S84C12v1Ev();
extern void _ZN5S84C12v2Ev();
extern void _ZN5S84C12v3Ev();
static  VTBL_ENTRY vtc_S84C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI5S84C1[0]),
  (VTBL_ENTRY)&_ZN5S84C1D1Ev,
  (VTBL_ENTRY)&_ZN5S84C1D0Ev,
  (VTBL_ENTRY)&_ZN5S84C72v4Ev,
  (VTBL_ENTRY)&_ZN5S84C72v5Ev,
  (VTBL_ENTRY)&_ZN5S84C72v6Ev,
  (VTBL_ENTRY)&_ZN5S84C72v7Ev,
  (VTBL_ENTRY)&_ZN5S84C72v8Ev,
  (VTBL_ENTRY)&_ZN5S84C72v9Ev,
  (VTBL_ENTRY)&_ZN5S84C73v10Ev,
  (VTBL_ENTRY)&_ZN5S84C73v11Ev,
  (VTBL_ENTRY)&_ZN5S84C73v12Ev,
  (VTBL_ENTRY)&_ZN5S84C73v13Ev,
  (VTBL_ENTRY)&_ZN5S84C73v14Ev,
  (VTBL_ENTRY)&_ZN5S84C73v15Ev,
  (VTBL_ENTRY)&_ZN5S84C73v16Ev,
  (VTBL_ENTRY)&_ZN5S84C73v17Ev,
  (VTBL_ENTRY)&_ZN5S84C73v18Ev,
  (VTBL_ENTRY)&_ZN5S84C73v19Ev,
  (VTBL_ENTRY)&_ZN5S84C73v20Ev,
  (VTBL_ENTRY)&_ZN5S84C73v21Ev,
  (VTBL_ENTRY)&_ZN5S84C73v22Ev,
  (VTBL_ENTRY)&_ZN5S84C73v23Ev,
  (VTBL_ENTRY)&_ZN5S84C73v24Ev,
  (VTBL_ENTRY)&_ZN5S84C73v25Ev,
  (VTBL_ENTRY)&_ZN5S84C73v26Ev,
  (VTBL_ENTRY)&_ZN5S84C73v27Ev,
  (VTBL_ENTRY)&_ZN5S84C73v28Ev,
  (VTBL_ENTRY)&_ZN5S84C73v29Ev,
  (VTBL_ENTRY)&_ZN5S84C73v30Ev,
  (VTBL_ENTRY)&_ZN5S84C73v31Ev,
  (VTBL_ENTRY)&_ZN5S84C73v32Ev,
  (VTBL_ENTRY)&_ZN5S84C73v33Ev,
  (VTBL_ENTRY)&_ZN5S84C73v34Ev,
  (VTBL_ENTRY)&_ZN5S84C73v35Ev,
  (VTBL_ENTRY)&_ZN5S84C73v36Ev,
  (VTBL_ENTRY)&_ZN5S84C73v37Ev,
  (VTBL_ENTRY)&_ZN5S84C73v38Ev,
  (VTBL_ENTRY)&_ZN5S84C73v39Ev,
  (VTBL_ENTRY)&_ZN5S84C73v40Ev,
  (VTBL_ENTRY)&_ZN5S84C73v41Ev,
  (VTBL_ENTRY)&_ZN5S84C73v42Ev,
  (VTBL_ENTRY)&_ZN5S84C73v43Ev,
  (VTBL_ENTRY)&_ZN5S84C73v44Ev,
  (VTBL_ENTRY)&_ZN5S84C73v45Ev,
  (VTBL_ENTRY)&_ZN5S84C73v46Ev,
  (VTBL_ENTRY)&_ZN5S84C73v47Ev,
  (VTBL_ENTRY)&_ZN5S84C73v48Ev,
  (VTBL_ENTRY)&_ZN5S84C73v49Ev,
  (VTBL_ENTRY)&_ZN5S84C73v50Ev,
  (VTBL_ENTRY)&_ZN5S84C73v51Ev,
  (VTBL_ENTRY)&_ZN5S84C73v52Ev,
  (VTBL_ENTRY)&_ZN5S84C73v53Ev,
  (VTBL_ENTRY)&_ZN5S84C73v54Ev,
  (VTBL_ENTRY)&_ZN5S84C73v55Ev,
  (VTBL_ENTRY)&_ZN5S84C73v56Ev,
  (VTBL_ENTRY)&_ZN5S84C73v57Ev,
  (VTBL_ENTRY)&_ZN5S84C73v58Ev,
  (VTBL_ENTRY)&_ZN5S84C73v59Ev,
  (VTBL_ENTRY)&_ZN5S84C73v60Ev,
  (VTBL_ENTRY)&_ZN5S84C73v61Ev,
  (VTBL_ENTRY)&_ZN5S84C73v62Ev,
  (VTBL_ENTRY)&_ZN5S84C73v63Ev,
  (VTBL_ENTRY)&_ZN5S84C73v64Ev,
  (VTBL_ENTRY)&_ZN5S84C73v65Ev,
  (VTBL_ENTRY)&_ZN5S84C73v66Ev,
  (VTBL_ENTRY)&_ZN5S84C73v67Ev,
  (VTBL_ENTRY)&_ZN5S84C63v68Ev,
  (VTBL_ENTRY)&_ZN5S84C63v69Ev,
  (VTBL_ENTRY)&_ZN5S84C53v70Ev,
  (VTBL_ENTRY)&_ZN5S84C53v71Ev,
  (VTBL_ENTRY)&_ZN5S84C53v72Ev,
  (VTBL_ENTRY)&_ZN5S84C53v73Ev,
  (VTBL_ENTRY)&_ZN5S84C53v74Ev,
  (VTBL_ENTRY)&_ZN5S84C53v75Ev,
  (VTBL_ENTRY)&_ZN5S84C53v76Ev,
  (VTBL_ENTRY)&_ZN5S84C53v77Ev,
  (VTBL_ENTRY)&_ZN5S84C53v78Ev,
  (VTBL_ENTRY)&_ZN5S84C53v79Ev,
  (VTBL_ENTRY)&_ZN5S84C53v80Ev,
  (VTBL_ENTRY)&_ZN5S84C53v81Ev,
  (VTBL_ENTRY)&_ZN5S84C53v82Ev,
  (VTBL_ENTRY)&_ZN5S84C53v83Ev,
  (VTBL_ENTRY)&_ZN5S84C53v84Ev,
  (VTBL_ENTRY)&_ZN5S84C53v85Ev,
  (VTBL_ENTRY)&_ZN5S84C53v86Ev,
  (VTBL_ENTRY)&_ZN5S84C53v87Ev,
  (VTBL_ENTRY)&_ZN5S84C53v88Ev,
  (VTBL_ENTRY)&_ZN5S84C53v89Ev,
  (VTBL_ENTRY)&_ZN5S84C53v90Ev,
  (VTBL_ENTRY)&_ZN5S84C53v91Ev,
  (VTBL_ENTRY)&_ZN5S84C53v92Ev,
  (VTBL_ENTRY)&_ZN5S84C53v93Ev,
  (VTBL_ENTRY)&_ZN5S84C53v94Ev,
  (VTBL_ENTRY)&_ZN5S84C53v95Ev,
  (VTBL_ENTRY)&_ZN5S84C53v96Ev,
  (VTBL_ENTRY)&_ZN5S84C53v97Ev,
  (VTBL_ENTRY)&_ZN5S84C53v98Ev,
  (VTBL_ENTRY)&_ZN5S84C53v99Ev,
  (VTBL_ENTRY)&_ZN5S84C54v100Ev,
  (VTBL_ENTRY)&_ZN5S84C54v101Ev,
  (VTBL_ENTRY)&_ZN5S84C54v102Ev,
  (VTBL_ENTRY)&_ZN5S84C54v103Ev,
  (VTBL_ENTRY)&_ZN5S84C54v104Ev,
  (VTBL_ENTRY)&_ZN5S84C54v105Ev,
  (VTBL_ENTRY)&_ZN5S84C54v106Ev,
  (VTBL_ENTRY)&_ZN5S84C54v107Ev,
  (VTBL_ENTRY)&_ZN5S84C54v108Ev,
  (VTBL_ENTRY)&_ZN5S84C54v109Ev,
  (VTBL_ENTRY)&_ZN5S84C54v110Ev,
  (VTBL_ENTRY)&_ZN5S84C54v111Ev,
  (VTBL_ENTRY)&_ZN5S84C54v112Ev,
  (VTBL_ENTRY)&_ZN5S84C54v113Ev,
  (VTBL_ENTRY)&_ZN5S84C54v114Ev,
  (VTBL_ENTRY)&_ZN5S84C54v115Ev,
  (VTBL_ENTRY)&_ZN5S84C54v116Ev,
  (VTBL_ENTRY)&_ZN5S84C54v117Ev,
  (VTBL_ENTRY)&_ZN5S84C54v118Ev,
  (VTBL_ENTRY)&_ZN5S84C54v119Ev,
  (VTBL_ENTRY)&_ZN5S84C54v120Ev,
  (VTBL_ENTRY)&_ZN5S84C54v121Ev,
  (VTBL_ENTRY)&_ZN5S84C54v122Ev,
  (VTBL_ENTRY)&_ZN5S84C54v123Ev,
  (VTBL_ENTRY)&_ZN5S84C54v124Ev,
  (VTBL_ENTRY)&_ZN5S84C54v125Ev,
  (VTBL_ENTRY)&_ZN5S84C54v126Ev,
  (VTBL_ENTRY)&_ZN5S84C54v127Ev,
  (VTBL_ENTRY)&_ZN5S84C54v128Ev,
  (VTBL_ENTRY)&_ZN5S84C54v129Ev,
  (VTBL_ENTRY)&_ZN5S84C54v130Ev,
  (VTBL_ENTRY)&_ZN5S84C54v131Ev,
  (VTBL_ENTRY)&_ZN5S84C54v132Ev,
  (VTBL_ENTRY)&_ZN5S84C54v133Ev,
  (VTBL_ENTRY)&_ZN5S84C54v134Ev,
  (VTBL_ENTRY)&_ZN5S84C54v135Ev,
  (VTBL_ENTRY)&_ZN5S84C54v136Ev,
  (VTBL_ENTRY)&_ZN5S84C54v137Ev,
  (VTBL_ENTRY)&_ZN5S84C54v138Ev,
  (VTBL_ENTRY)&_ZN5S84C54v139Ev,
  (VTBL_ENTRY)&_ZN5S84C54v140Ev,
  (VTBL_ENTRY)&_ZN5S84C54v141Ev,
  (VTBL_ENTRY)&_ZN5S84C54v142Ev,
  (VTBL_ENTRY)&_ZN5S84C54v143Ev,
  (VTBL_ENTRY)&_ZN5S84C54v144Ev,
  (VTBL_ENTRY)&_ZN5S84C54v145Ev,
  (VTBL_ENTRY)&_ZN5S84C44v146Ev,
  (VTBL_ENTRY)&_ZN5S84C44v147Ev,
  (VTBL_ENTRY)&_ZN5S84C44v148Ev,
  (VTBL_ENTRY)&_ZN5S84C44v149Ev,
  (VTBL_ENTRY)&_ZN5S84C44v150Ev,
  (VTBL_ENTRY)&_ZN5S84C44v151Ev,
  (VTBL_ENTRY)&_ZN5S84C44v152Ev,
  (VTBL_ENTRY)&_ZN5S84C44v153Ev,
  (VTBL_ENTRY)&_ZN5S84C44v154Ev,
  (VTBL_ENTRY)&_ZN5S84C44v155Ev,
  (VTBL_ENTRY)&_ZN5S84C44v156Ev,
  (VTBL_ENTRY)&_ZN5S84C44v157Ev,
  (VTBL_ENTRY)&_ZN5S84C44v158Ev,
  (VTBL_ENTRY)&_ZN5S84C44v159Ev,
  (VTBL_ENTRY)&_ZN5S84C44v160Ev,
  (VTBL_ENTRY)&_ZN5S84C44v161Ev,
  (VTBL_ENTRY)&_ZN5S84C44v162Ev,
  (VTBL_ENTRY)&_ZN5S84C44v163Ev,
  (VTBL_ENTRY)&_ZN5S84C44v164Ev,
  (VTBL_ENTRY)&_ZN5S84C44v165Ev,
  (VTBL_ENTRY)&_ZN5S84C44v166Ev,
  (VTBL_ENTRY)&_ZN5S84C44v167Ev,
  (VTBL_ENTRY)&_ZN5S84C44v168Ev,
  (VTBL_ENTRY)&_ZN5S84C44v169Ev,
  (VTBL_ENTRY)&_ZN5S84C44v170Ev,
  (VTBL_ENTRY)&_ZN5S84C44v171Ev,
  (VTBL_ENTRY)&_ZN5S84C44v172Ev,
  (VTBL_ENTRY)&_ZN5S84C44v173Ev,
  (VTBL_ENTRY)&_ZN5S84C44v174Ev,
  (VTBL_ENTRY)&_ZN5S84C44v175Ev,
  (VTBL_ENTRY)&_ZN5S84C44v176Ev,
  (VTBL_ENTRY)&_ZN5S84C44v177Ev,
  (VTBL_ENTRY)&_ZN5S84C44v178Ev,
  (VTBL_ENTRY)&_ZN5S84C44v179Ev,
  (VTBL_ENTRY)&_ZN5S84C44v180Ev,
  (VTBL_ENTRY)&_ZN5S84C44v181Ev,
  (VTBL_ENTRY)&_ZN5S84C44v182Ev,
  (VTBL_ENTRY)&_ZN5S84C44v183Ev,
  (VTBL_ENTRY)&_ZN5S84C44v184Ev,
  (VTBL_ENTRY)&_ZN5S84C34v185Ev,
  (VTBL_ENTRY)&_ZN5S84C34v186Ev,
  (VTBL_ENTRY)&_ZN5S84C34v187Ev,
  (VTBL_ENTRY)&_ZN5S84C34v188Ev,
  (VTBL_ENTRY)&_ZN5S84C34v189Ev,
  (VTBL_ENTRY)&_ZN5S84C34v190Ev,
  (VTBL_ENTRY)&_ZN5S84C34v191Ev,
  (VTBL_ENTRY)&_ZN5S84C34v192Ev,
  (VTBL_ENTRY)&_ZN5S84C34v193Ev,
  (VTBL_ENTRY)&_ZN5S84C34v194Ev,
  (VTBL_ENTRY)&_ZN5S84C34v195Ev,
  (VTBL_ENTRY)&_ZN5S84C34v196Ev,
  (VTBL_ENTRY)&_ZN5S84C34v197Ev,
  (VTBL_ENTRY)&_ZN5S84C34v198Ev,
  (VTBL_ENTRY)&_ZN5S84C34v199Ev,
  (VTBL_ENTRY)&_ZN5S84C34v200Ev,
  (VTBL_ENTRY)&_ZN5S84C34v201Ev,
  (VTBL_ENTRY)&_ZN5S84C34v202Ev,
  (VTBL_ENTRY)&_ZN5S84C34v203Ev,
  (VTBL_ENTRY)&_ZN5S84C34v204Ev,
  (VTBL_ENTRY)&_ZN5S84C34v205Ev,
  (VTBL_ENTRY)&_ZN5S84C34v206Ev,
  (VTBL_ENTRY)&_ZN5S84C34v207Ev,
  (VTBL_ENTRY)&_ZN5S84C24v208Ev,
  (VTBL_ENTRY)&_ZN5S84C24v209Ev,
  (VTBL_ENTRY)&_ZN5S84C24v210Ev,
  (VTBL_ENTRY)&_ZN5S84C12v1Ev,
  (VTBL_ENTRY)&_ZN5S84C12v2Ev,
  (VTBL_ENTRY)&_ZN5S84C12v3Ev,
};
extern VTBL_ENTRY _ZTI5S84C1[];
extern  VTBL_ENTRY _ZTV5S84C1[];
Class_Descriptor cd_S84C1 = {  "S84C1", // class name
  bases_S84C1, 6,
  &(vtc_S84C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(872,620), // object size
  NSPAIRA(_ZTI5S84C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV5S84C1),214, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  6, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S220C6  {
  int s220c6f0;
  __tsi64 s220c6f1;
  void *s220c6f2[4];
  int s220c6f3[2];
  void *s220c6f4;
  ::S85C27_nt s220c6f5;
  void *s220c6f6[2];
  virtual  ~S220C6(); // _ZN6S220C6D1Ev
  virtual void  v4(); // _ZN6S220C62v4Ev
  virtual void  v5(); // _ZN6S220C62v5Ev
  virtual void  v6(); // _ZN6S220C62v6Ev
  virtual void  v7(); // _ZN6S220C62v7Ev
  virtual void  v8(); // _ZN6S220C62v8Ev
  virtual void  v9(); // _ZN6S220C62v9Ev
  virtual void  v10(); // _ZN6S220C63v10Ev
  virtual void  v11(); // _ZN6S220C63v11Ev
  virtual void  v12(); // _ZN6S220C63v12Ev
  virtual void  v13(); // _ZN6S220C63v13Ev
  virtual void  v14(); // _ZN6S220C63v14Ev
  virtual void  v15(); // _ZN6S220C63v15Ev
  virtual void  v16(); // _ZN6S220C63v16Ev
  virtual void  v17(); // _ZN6S220C63v17Ev
  virtual void  v18(); // _ZN6S220C63v18Ev
  virtual void  v19(); // _ZN6S220C63v19Ev
  virtual void  v20(); // _ZN6S220C63v20Ev
  virtual void  v21(); // _ZN6S220C63v21Ev
  virtual void  v22(); // _ZN6S220C63v22Ev
  virtual void  v23(); // _ZN6S220C63v23Ev
  virtual void  v24(); // _ZN6S220C63v24Ev
  virtual void  v25(); // _ZN6S220C63v25Ev
  virtual void  v26(); // _ZN6S220C63v26Ev
  virtual void  v27(); // _ZN6S220C63v27Ev
  virtual void  v28(); // _ZN6S220C63v28Ev
  virtual void  v29(); // _ZN6S220C63v29Ev
  virtual void  v30(); // _ZN6S220C63v30Ev
  virtual void  v31(); // _ZN6S220C63v31Ev
  virtual void  v32(); // _ZN6S220C63v32Ev
  virtual void  v33(); // _ZN6S220C63v33Ev
  virtual void  v34(); // _ZN6S220C63v34Ev
  virtual void  v35(); // _ZN6S220C63v35Ev
  virtual void  v36(); // _ZN6S220C63v36Ev
  virtual void  v37(); // _ZN6S220C63v37Ev
  virtual void  v38(); // _ZN6S220C63v38Ev
  virtual void  v39(); // _ZN6S220C63v39Ev
  virtual void  v40(); // _ZN6S220C63v40Ev
  virtual void  v41(); // _ZN6S220C63v41Ev
  virtual void  v42(); // _ZN6S220C63v42Ev
  virtual void  v43(); // _ZN6S220C63v43Ev
  virtual void  v44(); // _ZN6S220C63v44Ev
  virtual void  v45(); // _ZN6S220C63v45Ev
  virtual void  v46(); // _ZN6S220C63v46Ev
  virtual void  v47(); // _ZN6S220C63v47Ev
  virtual void  v48(); // _ZN6S220C63v48Ev
  virtual void  v49(); // _ZN6S220C63v49Ev
  virtual void  v50(); // _ZN6S220C63v50Ev
  virtual void  v51(); // _ZN6S220C63v51Ev
  virtual void  v52(); // _ZN6S220C63v52Ev
  virtual void  v53(); // _ZN6S220C63v53Ev
  virtual void  v54(); // _ZN6S220C63v54Ev
  virtual void  v55(); // _ZN6S220C63v55Ev
  virtual void  v56(); // _ZN6S220C63v56Ev
  virtual void  v57(); // _ZN6S220C63v57Ev
  virtual void  v58(); // _ZN6S220C63v58Ev
  virtual void  v59(); // _ZN6S220C63v59Ev
  virtual void  v60(); // _ZN6S220C63v60Ev
  virtual void  v61(); // _ZN6S220C63v61Ev
  virtual void  v62(); // _ZN6S220C63v62Ev
  virtual void  v63(); // _ZN6S220C63v63Ev
  virtual void  v64(); // _ZN6S220C63v64Ev
  virtual void  v65(); // _ZN6S220C63v65Ev
  virtual void  v66(); // _ZN6S220C63v66Ev
  virtual void  v67(); // _ZN6S220C63v67Ev
  S220C6(); // tgen
};
//SIG(-1 S220C6) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S220C6 ::~S220C6(){ note_dtor("S220C6", this);}
void  S220C6 ::v4(){vfunc_called(this, "_ZN6S220C62v4Ev");}
void  S220C6 ::v5(){vfunc_called(this, "_ZN6S220C62v5Ev");}
void  S220C6 ::v6(){vfunc_called(this, "_ZN6S220C62v6Ev");}
void  S220C6 ::v7(){vfunc_called(this, "_ZN6S220C62v7Ev");}
void  S220C6 ::v8(){vfunc_called(this, "_ZN6S220C62v8Ev");}
void  S220C6 ::v9(){vfunc_called(this, "_ZN6S220C62v9Ev");}
void  S220C6 ::v10(){vfunc_called(this, "_ZN6S220C63v10Ev");}
void  S220C6 ::v11(){vfunc_called(this, "_ZN6S220C63v11Ev");}
void  S220C6 ::v12(){vfunc_called(this, "_ZN6S220C63v12Ev");}
void  S220C6 ::v13(){vfunc_called(this, "_ZN6S220C63v13Ev");}
void  S220C6 ::v14(){vfunc_called(this, "_ZN6S220C63v14Ev");}
void  S220C6 ::v15(){vfunc_called(this, "_ZN6S220C63v15Ev");}
void  S220C6 ::v16(){vfunc_called(this, "_ZN6S220C63v16Ev");}
void  S220C6 ::v17(){vfunc_called(this, "_ZN6S220C63v17Ev");}
void  S220C6 ::v18(){vfunc_called(this, "_ZN6S220C63v18Ev");}
void  S220C6 ::v19(){vfunc_called(this, "_ZN6S220C63v19Ev");}
void  S220C6 ::v20(){vfunc_called(this, "_ZN6S220C63v20Ev");}
void  S220C6 ::v21(){vfunc_called(this, "_ZN6S220C63v21Ev");}
void  S220C6 ::v22(){vfunc_called(this, "_ZN6S220C63v22Ev");}
void  S220C6 ::v23(){vfunc_called(this, "_ZN6S220C63v23Ev");}
void  S220C6 ::v24(){vfunc_called(this, "_ZN6S220C63v24Ev");}
void  S220C6 ::v25(){vfunc_called(this, "_ZN6S220C63v25Ev");}
void  S220C6 ::v26(){vfunc_called(this, "_ZN6S220C63v26Ev");}
void  S220C6 ::v27(){vfunc_called(this, "_ZN6S220C63v27Ev");}
void  S220C6 ::v28(){vfunc_called(this, "_ZN6S220C63v28Ev");}
void  S220C6 ::v29(){vfunc_called(this, "_ZN6S220C63v29Ev");}
void  S220C6 ::v30(){vfunc_called(this, "_ZN6S220C63v30Ev");}
void  S220C6 ::v31(){vfunc_called(this, "_ZN6S220C63v31Ev");}
void  S220C6 ::v32(){vfunc_called(this, "_ZN6S220C63v32Ev");}
void  S220C6 ::v33(){vfunc_called(this, "_ZN6S220C63v33Ev");}
void  S220C6 ::v34(){vfunc_called(this, "_ZN6S220C63v34Ev");}
void  S220C6 ::v35(){vfunc_called(this, "_ZN6S220C63v35Ev");}
void  S220C6 ::v36(){vfunc_called(this, "_ZN6S220C63v36Ev");}
void  S220C6 ::v37(){vfunc_called(this, "_ZN6S220C63v37Ev");}
void  S220C6 ::v38(){vfunc_called(this, "_ZN6S220C63v38Ev");}
void  S220C6 ::v39(){vfunc_called(this, "_ZN6S220C63v39Ev");}
void  S220C6 ::v40(){vfunc_called(this, "_ZN6S220C63v40Ev");}
void  S220C6 ::v41(){vfunc_called(this, "_ZN6S220C63v41Ev");}
void  S220C6 ::v42(){vfunc_called(this, "_ZN6S220C63v42Ev");}
void  S220C6 ::v43(){vfunc_called(this, "_ZN6S220C63v43Ev");}
void  S220C6 ::v44(){vfunc_called(this, "_ZN6S220C63v44Ev");}
void  S220C6 ::v45(){vfunc_called(this, "_ZN6S220C63v45Ev");}
void  S220C6 ::v46(){vfunc_called(this, "_ZN6S220C63v46Ev");}
void  S220C6 ::v47(){vfunc_called(this, "_ZN6S220C63v47Ev");}
void  S220C6 ::v48(){vfunc_called(this, "_ZN6S220C63v48Ev");}
void  S220C6 ::v49(){vfunc_called(this, "_ZN6S220C63v49Ev");}
void  S220C6 ::v50(){vfunc_called(this, "_ZN6S220C63v50Ev");}
void  S220C6 ::v51(){vfunc_called(this, "_ZN6S220C63v51Ev");}
void  S220C6 ::v52(){vfunc_called(this, "_ZN6S220C63v52Ev");}
void  S220C6 ::v53(){vfunc_called(this, "_ZN6S220C63v53Ev");}
void  S220C6 ::v54(){vfunc_called(this, "_ZN6S220C63v54Ev");}
void  S220C6 ::v55(){vfunc_called(this, "_ZN6S220C63v55Ev");}
void  S220C6 ::v56(){vfunc_called(this, "_ZN6S220C63v56Ev");}
void  S220C6 ::v57(){vfunc_called(this, "_ZN6S220C63v57Ev");}
void  S220C6 ::v58(){vfunc_called(this, "_ZN6S220C63v58Ev");}
void  S220C6 ::v59(){vfunc_called(this, "_ZN6S220C63v59Ev");}
void  S220C6 ::v60(){vfunc_called(this, "_ZN6S220C63v60Ev");}
void  S220C6 ::v61(){vfunc_called(this, "_ZN6S220C63v61Ev");}
void  S220C6 ::v62(){vfunc_called(this, "_ZN6S220C63v62Ev");}
void  S220C6 ::v63(){vfunc_called(this, "_ZN6S220C63v63Ev");}
void  S220C6 ::v64(){vfunc_called(this, "_ZN6S220C63v64Ev");}
void  S220C6 ::v65(){vfunc_called(this, "_ZN6S220C63v65Ev");}
void  S220C6 ::v66(){vfunc_called(this, "_ZN6S220C63v66Ev");}
void  S220C6 ::v67(){vfunc_called(this, "_ZN6S220C63v67Ev");}
S220C6 ::S220C6(){ note_ctor("S220C6", this);} // tgen

static void Test_S220C6()
{
  extern Class_Descriptor cd_S220C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S220C6, buf);
    S220C6 *dp, &lv = *(dp=new (buf) S220C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S220C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S220C6)");
    check_field_offset(lv, s220c6f0, ABISELECT(8,4), "S220C6.s220c6f0");
    check_field_offset(lv, s220c6f1, ABISELECT(16,8), "S220C6.s220c6f1");
    check_field_offset(lv, s220c6f2, ABISELECT(24,16), "S220C6.s220c6f2");
    check_field_offset(lv, s220c6f3, ABISELECT(56,32), "S220C6.s220c6f3");
    check_field_offset(lv, s220c6f4, ABISELECT(64,40), "S220C6.s220c6f4");
    check_field_offset(lv, s220c6f5, ABISELECT(72,44), "S220C6.s220c6f5");
    check_field_offset(lv, s220c6f6, ABISELECT(80,52), "S220C6.s220c6f6");
    test_class_info(&lv, &cd_S220C6);
    dp->~S220C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS220C6(Test_S220C6, "S220C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S220C6C1Ev();
extern void _ZN6S220C6D1Ev();
Name_Map name_map_S220C6[] = {
  NSPAIR(_ZN6S220C6C1Ev),
  NSPAIR(_ZN6S220C6D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S220C6[];
extern void _ZN6S220C6D1Ev();
extern void _ZN6S220C6D0Ev();
extern void _ZN6S220C62v4Ev();
extern void _ZN6S220C62v5Ev();
extern void _ZN6S220C62v6Ev();
extern void _ZN6S220C62v7Ev();
extern void _ZN6S220C62v8Ev();
extern void _ZN6S220C62v9Ev();
extern void _ZN6S220C63v10Ev();
extern void _ZN6S220C63v11Ev();
extern void _ZN6S220C63v12Ev();
extern void _ZN6S220C63v13Ev();
extern void _ZN6S220C63v14Ev();
extern void _ZN6S220C63v15Ev();
extern void _ZN6S220C63v16Ev();
extern void _ZN6S220C63v17Ev();
extern void _ZN6S220C63v18Ev();
extern void _ZN6S220C63v19Ev();
extern void _ZN6S220C63v20Ev();
extern void _ZN6S220C63v21Ev();
extern void _ZN6S220C63v22Ev();
extern void _ZN6S220C63v23Ev();
extern void _ZN6S220C63v24Ev();
extern void _ZN6S220C63v25Ev();
extern void _ZN6S220C63v26Ev();
extern void _ZN6S220C63v27Ev();
extern void _ZN6S220C63v28Ev();
extern void _ZN6S220C63v29Ev();
extern void _ZN6S220C63v30Ev();
extern void _ZN6S220C63v31Ev();
extern void _ZN6S220C63v32Ev();
extern void _ZN6S220C63v33Ev();
extern void _ZN6S220C63v34Ev();
extern void _ZN6S220C63v35Ev();
extern void _ZN6S220C63v36Ev();
extern void _ZN6S220C63v37Ev();
extern void _ZN6S220C63v38Ev();
extern void _ZN6S220C63v39Ev();
extern void _ZN6S220C63v40Ev();
extern void _ZN6S220C63v41Ev();
extern void _ZN6S220C63v42Ev();
extern void _ZN6S220C63v43Ev();
extern void _ZN6S220C63v44Ev();
extern void _ZN6S220C63v45Ev();
extern void _ZN6S220C63v46Ev();
extern void _ZN6S220C63v47Ev();
extern void _ZN6S220C63v48Ev();
extern void _ZN6S220C63v49Ev();
extern void _ZN6S220C63v50Ev();
extern void _ZN6S220C63v51Ev();
extern void _ZN6S220C63v52Ev();
extern void _ZN6S220C63v53Ev();
extern void _ZN6S220C63v54Ev();
extern void _ZN6S220C63v55Ev();
extern void _ZN6S220C63v56Ev();
extern void _ZN6S220C63v57Ev();
extern void _ZN6S220C63v58Ev();
extern void _ZN6S220C63v59Ev();
extern void _ZN6S220C63v60Ev();
extern void _ZN6S220C63v61Ev();
extern void _ZN6S220C63v62Ev();
extern void _ZN6S220C63v63Ev();
extern void _ZN6S220C63v64Ev();
extern void _ZN6S220C63v65Ev();
extern void _ZN6S220C63v66Ev();
extern void _ZN6S220C63v67Ev();
static  VTBL_ENTRY vtc_S220C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S220C6[0]),
  (VTBL_ENTRY)&_ZN6S220C6D1Ev,
  (VTBL_ENTRY)&_ZN6S220C6D0Ev,
  (VTBL_ENTRY)&_ZN6S220C62v4Ev,
  (VTBL_ENTRY)&_ZN6S220C62v5Ev,
  (VTBL_ENTRY)&_ZN6S220C62v6Ev,
  (VTBL_ENTRY)&_ZN6S220C62v7Ev,
  (VTBL_ENTRY)&_ZN6S220C62v8Ev,
  (VTBL_ENTRY)&_ZN6S220C62v9Ev,
  (VTBL_ENTRY)&_ZN6S220C63v10Ev,
  (VTBL_ENTRY)&_ZN6S220C63v11Ev,
  (VTBL_ENTRY)&_ZN6S220C63v12Ev,
  (VTBL_ENTRY)&_ZN6S220C63v13Ev,
  (VTBL_ENTRY)&_ZN6S220C63v14Ev,
  (VTBL_ENTRY)&_ZN6S220C63v15Ev,
  (VTBL_ENTRY)&_ZN6S220C63v16Ev,
  (VTBL_ENTRY)&_ZN6S220C63v17Ev,
  (VTBL_ENTRY)&_ZN6S220C63v18Ev,
  (VTBL_ENTRY)&_ZN6S220C63v19Ev,
  (VTBL_ENTRY)&_ZN6S220C63v20Ev,
  (VTBL_ENTRY)&_ZN6S220C63v21Ev,
  (VTBL_ENTRY)&_ZN6S220C63v22Ev,
  (VTBL_ENTRY)&_ZN6S220C63v23Ev,
  (VTBL_ENTRY)&_ZN6S220C63v24Ev,
  (VTBL_ENTRY)&_ZN6S220C63v25Ev,
  (VTBL_ENTRY)&_ZN6S220C63v26Ev,
  (VTBL_ENTRY)&_ZN6S220C63v27Ev,
  (VTBL_ENTRY)&_ZN6S220C63v28Ev,
  (VTBL_ENTRY)&_ZN6S220C63v29Ev,
  (VTBL_ENTRY)&_ZN6S220C63v30Ev,
  (VTBL_ENTRY)&_ZN6S220C63v31Ev,
  (VTBL_ENTRY)&_ZN6S220C63v32Ev,
  (VTBL_ENTRY)&_ZN6S220C63v33Ev,
  (VTBL_ENTRY)&_ZN6S220C63v34Ev,
  (VTBL_ENTRY)&_ZN6S220C63v35Ev,
  (VTBL_ENTRY)&_ZN6S220C63v36Ev,
  (VTBL_ENTRY)&_ZN6S220C63v37Ev,
  (VTBL_ENTRY)&_ZN6S220C63v38Ev,
  (VTBL_ENTRY)&_ZN6S220C63v39Ev,
  (VTBL_ENTRY)&_ZN6S220C63v40Ev,
  (VTBL_ENTRY)&_ZN6S220C63v41Ev,
  (VTBL_ENTRY)&_ZN6S220C63v42Ev,
  (VTBL_ENTRY)&_ZN6S220C63v43Ev,
  (VTBL_ENTRY)&_ZN6S220C63v44Ev,
  (VTBL_ENTRY)&_ZN6S220C63v45Ev,
  (VTBL_ENTRY)&_ZN6S220C63v46Ev,
  (VTBL_ENTRY)&_ZN6S220C63v47Ev,
  (VTBL_ENTRY)&_ZN6S220C63v48Ev,
  (VTBL_ENTRY)&_ZN6S220C63v49Ev,
  (VTBL_ENTRY)&_ZN6S220C63v50Ev,
  (VTBL_ENTRY)&_ZN6S220C63v51Ev,
  (VTBL_ENTRY)&_ZN6S220C63v52Ev,
  (VTBL_ENTRY)&_ZN6S220C63v53Ev,
  (VTBL_ENTRY)&_ZN6S220C63v54Ev,
  (VTBL_ENTRY)&_ZN6S220C63v55Ev,
  (VTBL_ENTRY)&_ZN6S220C63v56Ev,
  (VTBL_ENTRY)&_ZN6S220C63v57Ev,
  (VTBL_ENTRY)&_ZN6S220C63v58Ev,
  (VTBL_ENTRY)&_ZN6S220C63v59Ev,
  (VTBL_ENTRY)&_ZN6S220C63v60Ev,
  (VTBL_ENTRY)&_ZN6S220C63v61Ev,
  (VTBL_ENTRY)&_ZN6S220C63v62Ev,
  (VTBL_ENTRY)&_ZN6S220C63v63Ev,
  (VTBL_ENTRY)&_ZN6S220C63v64Ev,
  (VTBL_ENTRY)&_ZN6S220C63v65Ev,
  (VTBL_ENTRY)&_ZN6S220C63v66Ev,
  (VTBL_ENTRY)&_ZN6S220C63v67Ev,
};
extern VTBL_ENTRY _ZTI6S220C6[];
extern  VTBL_ENTRY _ZTV6S220C6[];
Class_Descriptor cd_S220C6 = {  "S220C6", // class name
  0,0,//no base classes
  &(vtc_S220C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S220C6),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S220C6),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S220C5  : S220C6 {
  virtual  ~S220C5(); // _ZN6S220C5D1Ev
  virtual void  v68(); // _ZN6S220C53v68Ev
  virtual void  v69(); // _ZN6S220C53v69Ev
  S220C5(); // tgen
};
//SIG(-1 S220C5) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S220C5 ::~S220C5(){ note_dtor("S220C5", this);}
void  S220C5 ::v68(){vfunc_called(this, "_ZN6S220C53v68Ev");}
void  S220C5 ::v69(){vfunc_called(this, "_ZN6S220C53v69Ev");}
S220C5 ::S220C5(){ note_ctor("S220C5", this);} // tgen

static void Test_S220C5()
{
  extern Class_Descriptor cd_S220C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S220C5, buf);
    S220C5 *dp, &lv = *(dp=new (buf) S220C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S220C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S220C5)");
    check_base_class_offset(lv, (S220C6*), 0, "S220C5");
    test_class_info(&lv, &cd_S220C5);
    dp->~S220C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS220C5(Test_S220C5, "S220C5", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S220C5C1Ev();
extern void _ZN6S220C5D1Ev();
Name_Map name_map_S220C5[] = {
  NSPAIR(_ZN6S220C5C1Ev),
  NSPAIR(_ZN6S220C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S220C6;
extern VTBL_ENTRY _ZTI6S220C6[];
extern  VTBL_ENTRY _ZTV6S220C6[];
static Base_Class bases_S220C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S220C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S220C5[];
extern void _ZN6S220C5D1Ev();
extern void _ZN6S220C5D0Ev();
extern void _ZN6S220C62v4Ev();
extern void _ZN6S220C62v5Ev();
extern void _ZN6S220C62v6Ev();
extern void _ZN6S220C62v7Ev();
extern void _ZN6S220C62v8Ev();
extern void _ZN6S220C62v9Ev();
extern void _ZN6S220C63v10Ev();
extern void _ZN6S220C63v11Ev();
extern void _ZN6S220C63v12Ev();
extern void _ZN6S220C63v13Ev();
extern void _ZN6S220C63v14Ev();
extern void _ZN6S220C63v15Ev();
extern void _ZN6S220C63v16Ev();
extern void _ZN6S220C63v17Ev();
extern void _ZN6S220C63v18Ev();
extern void _ZN6S220C63v19Ev();
extern void _ZN6S220C63v20Ev();
extern void _ZN6S220C63v21Ev();
extern void _ZN6S220C63v22Ev();
extern void _ZN6S220C63v23Ev();
extern void _ZN6S220C63v24Ev();
extern void _ZN6S220C63v25Ev();
extern void _ZN6S220C63v26Ev();
extern void _ZN6S220C63v27Ev();
extern void _ZN6S220C63v28Ev();
extern void _ZN6S220C63v29Ev();
extern void _ZN6S220C63v30Ev();
extern void _ZN6S220C63v31Ev();
extern void _ZN6S220C63v32Ev();
extern void _ZN6S220C63v33Ev();
extern void _ZN6S220C63v34Ev();
extern void _ZN6S220C63v35Ev();
extern void _ZN6S220C63v36Ev();
extern void _ZN6S220C63v37Ev();
extern void _ZN6S220C63v38Ev();
extern void _ZN6S220C63v39Ev();
extern void _ZN6S220C63v40Ev();
extern void _ZN6S220C63v41Ev();
extern void _ZN6S220C63v42Ev();
extern void _ZN6S220C63v43Ev();
extern void _ZN6S220C63v44Ev();
extern void _ZN6S220C63v45Ev();
extern void _ZN6S220C63v46Ev();
extern void _ZN6S220C63v47Ev();
extern void _ZN6S220C63v48Ev();
extern void _ZN6S220C63v49Ev();
extern void _ZN6S220C63v50Ev();
extern void _ZN6S220C63v51Ev();
extern void _ZN6S220C63v52Ev();
extern void _ZN6S220C63v53Ev();
extern void _ZN6S220C63v54Ev();
extern void _ZN6S220C63v55Ev();
extern void _ZN6S220C63v56Ev();
extern void _ZN6S220C63v57Ev();
extern void _ZN6S220C63v58Ev();
extern void _ZN6S220C63v59Ev();
extern void _ZN6S220C63v60Ev();
extern void _ZN6S220C63v61Ev();
extern void _ZN6S220C63v62Ev();
extern void _ZN6S220C63v63Ev();
extern void _ZN6S220C63v64Ev();
extern void _ZN6S220C63v65Ev();
extern void _ZN6S220C63v66Ev();
extern void _ZN6S220C63v67Ev();
extern void _ZN6S220C53v68Ev();
extern void _ZN6S220C53v69Ev();
static  VTBL_ENTRY vtc_S220C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S220C5[0]),
  (VTBL_ENTRY)&_ZN6S220C5D1Ev,
  (VTBL_ENTRY)&_ZN6S220C5D0Ev,
  (VTBL_ENTRY)&_ZN6S220C62v4Ev,
  (VTBL_ENTRY)&_ZN6S220C62v5Ev,
  (VTBL_ENTRY)&_ZN6S220C62v6Ev,
  (VTBL_ENTRY)&_ZN6S220C62v7Ev,
  (VTBL_ENTRY)&_ZN6S220C62v8Ev,
  (VTBL_ENTRY)&_ZN6S220C62v9Ev,
  (VTBL_ENTRY)&_ZN6S220C63v10Ev,
  (VTBL_ENTRY)&_ZN6S220C63v11Ev,
  (VTBL_ENTRY)&_ZN6S220C63v12Ev,
  (VTBL_ENTRY)&_ZN6S220C63v13Ev,
  (VTBL_ENTRY)&_ZN6S220C63v14Ev,
  (VTBL_ENTRY)&_ZN6S220C63v15Ev,
  (VTBL_ENTRY)&_ZN6S220C63v16Ev,
  (VTBL_ENTRY)&_ZN6S220C63v17Ev,
  (VTBL_ENTRY)&_ZN6S220C63v18Ev,
  (VTBL_ENTRY)&_ZN6S220C63v19Ev,
  (VTBL_ENTRY)&_ZN6S220C63v20Ev,
  (VTBL_ENTRY)&_ZN6S220C63v21Ev,
  (VTBL_ENTRY)&_ZN6S220C63v22Ev,
  (VTBL_ENTRY)&_ZN6S220C63v23Ev,
  (VTBL_ENTRY)&_ZN6S220C63v24Ev,
  (VTBL_ENTRY)&_ZN6S220C63v25Ev,
  (VTBL_ENTRY)&_ZN6S220C63v26Ev,
  (VTBL_ENTRY)&_ZN6S220C63v27Ev,
  (VTBL_ENTRY)&_ZN6S220C63v28Ev,
  (VTBL_ENTRY)&_ZN6S220C63v29Ev,
  (VTBL_ENTRY)&_ZN6S220C63v30Ev,
  (VTBL_ENTRY)&_ZN6S220C63v31Ev,
  (VTBL_ENTRY)&_ZN6S220C63v32Ev,
  (VTBL_ENTRY)&_ZN6S220C63v33Ev,
  (VTBL_ENTRY)&_ZN6S220C63v34Ev,
  (VTBL_ENTRY)&_ZN6S220C63v35Ev,
  (VTBL_ENTRY)&_ZN6S220C63v36Ev,
  (VTBL_ENTRY)&_ZN6S220C63v37Ev,
  (VTBL_ENTRY)&_ZN6S220C63v38Ev,
  (VTBL_ENTRY)&_ZN6S220C63v39Ev,
  (VTBL_ENTRY)&_ZN6S220C63v40Ev,
  (VTBL_ENTRY)&_ZN6S220C63v41Ev,
  (VTBL_ENTRY)&_ZN6S220C63v42Ev,
  (VTBL_ENTRY)&_ZN6S220C63v43Ev,
  (VTBL_ENTRY)&_ZN6S220C63v44Ev,
  (VTBL_ENTRY)&_ZN6S220C63v45Ev,
  (VTBL_ENTRY)&_ZN6S220C63v46Ev,
  (VTBL_ENTRY)&_ZN6S220C63v47Ev,
  (VTBL_ENTRY)&_ZN6S220C63v48Ev,
  (VTBL_ENTRY)&_ZN6S220C63v49Ev,
  (VTBL_ENTRY)&_ZN6S220C63v50Ev,
  (VTBL_ENTRY)&_ZN6S220C63v51Ev,
  (VTBL_ENTRY)&_ZN6S220C63v52Ev,
  (VTBL_ENTRY)&_ZN6S220C63v53Ev,
  (VTBL_ENTRY)&_ZN6S220C63v54Ev,
  (VTBL_ENTRY)&_ZN6S220C63v55Ev,
  (VTBL_ENTRY)&_ZN6S220C63v56Ev,
  (VTBL_ENTRY)&_ZN6S220C63v57Ev,
  (VTBL_ENTRY)&_ZN6S220C63v58Ev,
  (VTBL_ENTRY)&_ZN6S220C63v59Ev,
  (VTBL_ENTRY)&_ZN6S220C63v60Ev,
  (VTBL_ENTRY)&_ZN6S220C63v61Ev,
  (VTBL_ENTRY)&_ZN6S220C63v62Ev,
  (VTBL_ENTRY)&_ZN6S220C63v63Ev,
  (VTBL_ENTRY)&_ZN6S220C63v64Ev,
  (VTBL_ENTRY)&_ZN6S220C63v65Ev,
  (VTBL_ENTRY)&_ZN6S220C63v66Ev,
  (VTBL_ENTRY)&_ZN6S220C63v67Ev,
  (VTBL_ENTRY)&_ZN6S220C53v68Ev,
  (VTBL_ENTRY)&_ZN6S220C53v69Ev,
};
extern VTBL_ENTRY _ZTI6S220C5[];
extern  VTBL_ENTRY _ZTV6S220C5[];
Class_Descriptor cd_S220C5 = {  "S220C5", // class name
  bases_S220C5, 1,
  &(vtc_S220C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S220C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S220C5),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S220C4  : S220C5 {
  ::S80C9_nt s220c4f0;
  int s220c4f1;
  unsigned int s220c4f2:1;
  unsigned int s220c4f3:1;
  unsigned int s220c4f4:1;
  unsigned int s220c4f5:1;
  ::S85C35 s220c4f6;
  ::S85C22_nt s220c4f7;
  void *s220c4f8;
  ::S80C31 s220c4f9;
  ::S80C31 s220c4f10;
  ::S80C29 s220c4f11;
  ::S80C19 s220c4f12;
  char s220c4f13;
  int s220c4f14;
  void *s220c4f15;
  ::S85C27_nt s220c4f16;
  ::S85C27_nt s220c4f17;
  ::S85C27_nt s220c4f18;
  ::S85C27_nt s220c4f19;
  ::S85C27_nt s220c4f20;
  ::S85C27_nt s220c4f21;
  ::S80C21_nt s220c4f22;
  ::S80C21_nt s220c4f23;
  ::S80C21_nt s220c4f24;
  ::S80C21_nt s220c4f25;
  ::S80C21_nt s220c4f26;
  ::S80C21_nt s220c4f27;
  ::S80C21_nt s220c4f28;
  ::S80C21_nt s220c4f29;
  ::S80C21_nt s220c4f30;
  ::S80C21_nt s220c4f31;
  virtual  ~S220C4(); // _ZN6S220C4D1Ev
  virtual void  v70(); // _ZN6S220C43v70Ev
  virtual void  v71(); // _ZN6S220C43v71Ev
  virtual void  v72(); // _ZN6S220C43v72Ev
  virtual void  v73(); // _ZN6S220C43v73Ev
  virtual void  v74(); // _ZN6S220C43v74Ev
  virtual void  v75(); // _ZN6S220C43v75Ev
  virtual void  v76(); // _ZN6S220C43v76Ev
  virtual void  v77(); // _ZN6S220C43v77Ev
  virtual void  v78(); // _ZN6S220C43v78Ev
  virtual void  v79(); // _ZN6S220C43v79Ev
  virtual void  v80(); // _ZN6S220C43v80Ev
  virtual void  v81(); // _ZN6S220C43v81Ev
  virtual void  v82(); // _ZN6S220C43v82Ev
  virtual void  v83(); // _ZN6S220C43v83Ev
  virtual void  v84(); // _ZN6S220C43v84Ev
  virtual void  v85(); // _ZN6S220C43v85Ev
  virtual void  v86(); // _ZN6S220C43v86Ev
  virtual void  v87(); // _ZN6S220C43v87Ev
  virtual void  v88(); // _ZN6S220C43v88Ev
  virtual void  v89(); // _ZN6S220C43v89Ev
  virtual void  v90(); // _ZN6S220C43v90Ev
  virtual void  v91(); // _ZN6S220C43v91Ev
  virtual void  v92(); // _ZN6S220C43v92Ev
  virtual void  v93(); // _ZN6S220C43v93Ev
  virtual void  v94(); // _ZN6S220C43v94Ev
  virtual void  v95(); // _ZN6S220C43v95Ev
  virtual void  v96(); // _ZN6S220C43v96Ev
  virtual void  v97(); // _ZN6S220C43v97Ev
  virtual void  v98(); // _ZN6S220C43v98Ev
  virtual void  v99(); // _ZN6S220C43v99Ev
  virtual void  v100(); // _ZN6S220C44v100Ev
  virtual void  v101(); // _ZN6S220C44v101Ev
  virtual void  v102(); // _ZN6S220C44v102Ev
  virtual void  v103(); // _ZN6S220C44v103Ev
  virtual void  v104(); // _ZN6S220C44v104Ev
  virtual void  v105(); // _ZN6S220C44v105Ev
  virtual void  v106(); // _ZN6S220C44v106Ev
  virtual void  v107(); // _ZN6S220C44v107Ev
  virtual void  v108(); // _ZN6S220C44v108Ev
  virtual void  v109(); // _ZN6S220C44v109Ev
  virtual void  v110(); // _ZN6S220C44v110Ev
  virtual void  v111(); // _ZN6S220C44v111Ev
  virtual void  v112(); // _ZN6S220C44v112Ev
  virtual void  v113(); // _ZN6S220C44v113Ev
  virtual void  v114(); // _ZN6S220C44v114Ev
  virtual void  v115(); // _ZN6S220C44v115Ev
  virtual void  v116(); // _ZN6S220C44v116Ev
  virtual void  v117(); // _ZN6S220C44v117Ev
  virtual void  v118(); // _ZN6S220C44v118Ev
  virtual void  v119(); // _ZN6S220C44v119Ev
  virtual void  v120(); // _ZN6S220C44v120Ev
  virtual void  v121(); // _ZN6S220C44v121Ev
  virtual void  v122(); // _ZN6S220C44v122Ev
  virtual void  v123(); // _ZN6S220C44v123Ev
  virtual void  v124(); // _ZN6S220C44v124Ev
  virtual void  v125(); // _ZN6S220C44v125Ev
  virtual void  v126(); // _ZN6S220C44v126Ev
  virtual void  v127(); // _ZN6S220C44v127Ev
  virtual void  v128(); // _ZN6S220C44v128Ev
  virtual void  v129(); // _ZN6S220C44v129Ev
  virtual void  v130(); // _ZN6S220C44v130Ev
  virtual void  v131(); // _ZN6S220C44v131Ev
  virtual void  v132(); // _ZN6S220C44v132Ev
  virtual void  v133(); // _ZN6S220C44v133Ev
  virtual void  v134(); // _ZN6S220C44v134Ev
  virtual void  v135(); // _ZN6S220C44v135Ev
  virtual void  v136(); // _ZN6S220C44v136Ev
  virtual void  v137(); // _ZN6S220C44v137Ev
  virtual void  v138(); // _ZN6S220C44v138Ev
  virtual void  v139(); // _ZN6S220C44v139Ev
  virtual void  v140(); // _ZN6S220C44v140Ev
  virtual void  v141(); // _ZN6S220C44v141Ev
  virtual void  v142(); // _ZN6S220C44v142Ev
  virtual void  v143(); // _ZN6S220C44v143Ev
  virtual void  v144(); // _ZN6S220C44v144Ev
  virtual void  v145(); // _ZN6S220C44v145Ev
  S220C4(); // tgen
};
//SIG(-1 S220C4) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S220C4 ::~S220C4(){ note_dtor("S220C4", this);}
void  S220C4 ::v70(){vfunc_called(this, "_ZN6S220C43v70Ev");}
void  S220C4 ::v71(){vfunc_called(this, "_ZN6S220C43v71Ev");}
void  S220C4 ::v72(){vfunc_called(this, "_ZN6S220C43v72Ev");}
void  S220C4 ::v73(){vfunc_called(this, "_ZN6S220C43v73Ev");}
void  S220C4 ::v74(){vfunc_called(this, "_ZN6S220C43v74Ev");}
void  S220C4 ::v75(){vfunc_called(this, "_ZN6S220C43v75Ev");}
void  S220C4 ::v76(){vfunc_called(this, "_ZN6S220C43v76Ev");}
void  S220C4 ::v77(){vfunc_called(this, "_ZN6S220C43v77Ev");}
void  S220C4 ::v78(){vfunc_called(this, "_ZN6S220C43v78Ev");}
void  S220C4 ::v79(){vfunc_called(this, "_ZN6S220C43v79Ev");}
void  S220C4 ::v80(){vfunc_called(this, "_ZN6S220C43v80Ev");}
void  S220C4 ::v81(){vfunc_called(this, "_ZN6S220C43v81Ev");}
void  S220C4 ::v82(){vfunc_called(this, "_ZN6S220C43v82Ev");}
void  S220C4 ::v83(){vfunc_called(this, "_ZN6S220C43v83Ev");}
void  S220C4 ::v84(){vfunc_called(this, "_ZN6S220C43v84Ev");}
void  S220C4 ::v85(){vfunc_called(this, "_ZN6S220C43v85Ev");}
void  S220C4 ::v86(){vfunc_called(this, "_ZN6S220C43v86Ev");}
void  S220C4 ::v87(){vfunc_called(this, "_ZN6S220C43v87Ev");}
void  S220C4 ::v88(){vfunc_called(this, "_ZN6S220C43v88Ev");}
void  S220C4 ::v89(){vfunc_called(this, "_ZN6S220C43v89Ev");}
void  S220C4 ::v90(){vfunc_called(this, "_ZN6S220C43v90Ev");}
void  S220C4 ::v91(){vfunc_called(this, "_ZN6S220C43v91Ev");}
void  S220C4 ::v92(){vfunc_called(this, "_ZN6S220C43v92Ev");}
void  S220C4 ::v93(){vfunc_called(this, "_ZN6S220C43v93Ev");}
void  S220C4 ::v94(){vfunc_called(this, "_ZN6S220C43v94Ev");}
void  S220C4 ::v95(){vfunc_called(this, "_ZN6S220C43v95Ev");}
void  S220C4 ::v96(){vfunc_called(this, "_ZN6S220C43v96Ev");}
void  S220C4 ::v97(){vfunc_called(this, "_ZN6S220C43v97Ev");}
void  S220C4 ::v98(){vfunc_called(this, "_ZN6S220C43v98Ev");}
void  S220C4 ::v99(){vfunc_called(this, "_ZN6S220C43v99Ev");}
void  S220C4 ::v100(){vfunc_called(this, "_ZN6S220C44v100Ev");}
void  S220C4 ::v101(){vfunc_called(this, "_ZN6S220C44v101Ev");}
void  S220C4 ::v102(){vfunc_called(this, "_ZN6S220C44v102Ev");}
void  S220C4 ::v103(){vfunc_called(this, "_ZN6S220C44v103Ev");}
void  S220C4 ::v104(){vfunc_called(this, "_ZN6S220C44v104Ev");}
void  S220C4 ::v105(){vfunc_called(this, "_ZN6S220C44v105Ev");}
void  S220C4 ::v106(){vfunc_called(this, "_ZN6S220C44v106Ev");}
void  S220C4 ::v107(){vfunc_called(this, "_ZN6S220C44v107Ev");}
void  S220C4 ::v108(){vfunc_called(this, "_ZN6S220C44v108Ev");}
void  S220C4 ::v109(){vfunc_called(this, "_ZN6S220C44v109Ev");}
void  S220C4 ::v110(){vfunc_called(this, "_ZN6S220C44v110Ev");}
void  S220C4 ::v111(){vfunc_called(this, "_ZN6S220C44v111Ev");}
void  S220C4 ::v112(){vfunc_called(this, "_ZN6S220C44v112Ev");}
void  S220C4 ::v113(){vfunc_called(this, "_ZN6S220C44v113Ev");}
void  S220C4 ::v114(){vfunc_called(this, "_ZN6S220C44v114Ev");}
void  S220C4 ::v115(){vfunc_called(this, "_ZN6S220C44v115Ev");}
void  S220C4 ::v116(){vfunc_called(this, "_ZN6S220C44v116Ev");}
void  S220C4 ::v117(){vfunc_called(this, "_ZN6S220C44v117Ev");}
void  S220C4 ::v118(){vfunc_called(this, "_ZN6S220C44v118Ev");}
void  S220C4 ::v119(){vfunc_called(this, "_ZN6S220C44v119Ev");}
void  S220C4 ::v120(){vfunc_called(this, "_ZN6S220C44v120Ev");}
void  S220C4 ::v121(){vfunc_called(this, "_ZN6S220C44v121Ev");}
void  S220C4 ::v122(){vfunc_called(this, "_ZN6S220C44v122Ev");}
void  S220C4 ::v123(){vfunc_called(this, "_ZN6S220C44v123Ev");}
void  S220C4 ::v124(){vfunc_called(this, "_ZN6S220C44v124Ev");}
void  S220C4 ::v125(){vfunc_called(this, "_ZN6S220C44v125Ev");}
void  S220C4 ::v126(){vfunc_called(this, "_ZN6S220C44v126Ev");}
void  S220C4 ::v127(){vfunc_called(this, "_ZN6S220C44v127Ev");}
void  S220C4 ::v128(){vfunc_called(this, "_ZN6S220C44v128Ev");}
void  S220C4 ::v129(){vfunc_called(this, "_ZN6S220C44v129Ev");}
void  S220C4 ::v130(){vfunc_called(this, "_ZN6S220C44v130Ev");}
void  S220C4 ::v131(){vfunc_called(this, "_ZN6S220C44v131Ev");}
void  S220C4 ::v132(){vfunc_called(this, "_ZN6S220C44v132Ev");}
void  S220C4 ::v133(){vfunc_called(this, "_ZN6S220C44v133Ev");}
void  S220C4 ::v134(){vfunc_called(this, "_ZN6S220C44v134Ev");}
void  S220C4 ::v135(){vfunc_called(this, "_ZN6S220C44v135Ev");}
void  S220C4 ::v136(){vfunc_called(this, "_ZN6S220C44v136Ev");}
void  S220C4 ::v137(){vfunc_called(this, "_ZN6S220C44v137Ev");}
void  S220C4 ::v138(){vfunc_called(this, "_ZN6S220C44v138Ev");}
void  S220C4 ::v139(){vfunc_called(this, "_ZN6S220C44v139Ev");}
void  S220C4 ::v140(){vfunc_called(this, "_ZN6S220C44v140Ev");}
void  S220C4 ::v141(){vfunc_called(this, "_ZN6S220C44v141Ev");}
void  S220C4 ::v142(){vfunc_called(this, "_ZN6S220C44v142Ev");}
void  S220C4 ::v143(){vfunc_called(this, "_ZN6S220C44v143Ev");}
void  S220C4 ::v144(){vfunc_called(this, "_ZN6S220C44v144Ev");}
void  S220C4 ::v145(){vfunc_called(this, "_ZN6S220C44v145Ev");}
S220C4 ::S220C4(){ note_ctor("S220C4", this);} // tgen

static void Test_S220C4()
{
  extern Class_Descriptor cd_S220C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S220C4, buf);
    S220C4 *dp, &lv = *(dp=new (buf) S220C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S220C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S220C4)");
    check_base_class_offset(lv, (S220C6*)(S220C5*), 0, "S220C4");
    check_base_class_offset(lv, (S220C5*), 0, "S220C4");
    check_field_offset(lv, s220c4f0, ABISELECT(96,60), "S220C4.s220c4f0");
    check_field_offset(lv, s220c4f1, ABISELECT(124,88), "S220C4.s220c4f1");
    set_bf_and_test(lv, s220c4f2, ABISELECT(128,92), 0, 1, 1, "S220C4");
    set_bf_and_test(lv, s220c4f3, ABISELECT(128,92), 1, 1, 1, "S220C4");
    set_bf_and_test(lv, s220c4f4, ABISELECT(128,92), 2, 1, 1, "S220C4");
    set_bf_and_test(lv, s220c4f5, ABISELECT(128,92), 3, 1, 1, "S220C4");
    check_field_offset(lv, s220c4f6, ABISELECT(136,96), "S220C4.s220c4f6");
    check_field_offset(lv, s220c4f7, ABISELECT(152,108), "S220C4.s220c4f7");
    check_field_offset(lv, s220c4f8, ABISELECT(168,120), "S220C4.s220c4f8");
    check_field_offset(lv, s220c4f9, ABISELECT(176,124), "S220C4.s220c4f9");
    check_field_offset(lv, s220c4f10, ABISELECT(192,136), "S220C4.s220c4f10");
    check_field_offset(lv, s220c4f11, ABISELECT(208,148), "S220C4.s220c4f11");
    check_field_offset(lv, s220c4f12, ABISELECT(224,160), "S220C4.s220c4f12");
    check_field_offset(lv, s220c4f13, ABISELECT(240,172), "S220C4.s220c4f13");
    check_field_offset(lv, s220c4f14, ABISELECT(244,176), "S220C4.s220c4f14");
    check_field_offset(lv, s220c4f15, ABISELECT(248,180), "S220C4.s220c4f15");
    check_field_offset(lv, s220c4f16, ABISELECT(256,184), "S220C4.s220c4f16");
    check_field_offset(lv, s220c4f17, ABISELECT(264,192), "S220C4.s220c4f17");
    check_field_offset(lv, s220c4f18, ABISELECT(272,200), "S220C4.s220c4f18");
    check_field_offset(lv, s220c4f19, ABISELECT(280,208), "S220C4.s220c4f19");
    check_field_offset(lv, s220c4f20, ABISELECT(288,216), "S220C4.s220c4f20");
    check_field_offset(lv, s220c4f21, ABISELECT(296,224), "S220C4.s220c4f21");
    check_field_offset(lv, s220c4f22, ABISELECT(304,232), "S220C4.s220c4f22");
    check_field_offset(lv, s220c4f23, ABISELECT(320,244), "S220C4.s220c4f23");
    check_field_offset(lv, s220c4f24, ABISELECT(336,256), "S220C4.s220c4f24");
    check_field_offset(lv, s220c4f25, ABISELECT(352,268), "S220C4.s220c4f25");
    check_field_offset(lv, s220c4f26, ABISELECT(368,280), "S220C4.s220c4f26");
    check_field_offset(lv, s220c4f27, ABISELECT(384,292), "S220C4.s220c4f27");
    check_field_offset(lv, s220c4f28, ABISELECT(400,304), "S220C4.s220c4f28");
    check_field_offset(lv, s220c4f29, ABISELECT(416,316), "S220C4.s220c4f29");
    check_field_offset(lv, s220c4f30, ABISELECT(432,328), "S220C4.s220c4f30");
    check_field_offset(lv, s220c4f31, ABISELECT(448,340), "S220C4.s220c4f31");
    test_class_info(&lv, &cd_S220C4);
    dp->~S220C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS220C4(Test_S220C4, "S220C4", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S220C4C1Ev();
extern void _ZN6S220C4D1Ev();
Name_Map name_map_S220C4[] = {
  NSPAIR(_ZN6S220C4C1Ev),
  NSPAIR(_ZN6S220C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S220C6;
extern VTBL_ENTRY _ZTI6S220C6[];
extern  VTBL_ENTRY _ZTV6S220C6[];
extern Class_Descriptor cd_S220C5;
extern VTBL_ENTRY _ZTI6S220C5[];
extern  VTBL_ENTRY _ZTV6S220C5[];
static Base_Class bases_S220C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S220C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S220C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S220C4[];
extern void _ZN6S220C4D1Ev();
extern void _ZN6S220C4D0Ev();
extern void _ZN6S220C62v4Ev();
extern void _ZN6S220C62v5Ev();
extern void _ZN6S220C62v6Ev();
extern void _ZN6S220C62v7Ev();
extern void _ZN6S220C62v8Ev();
extern void _ZN6S220C62v9Ev();
extern void _ZN6S220C63v10Ev();
extern void _ZN6S220C63v11Ev();
extern void _ZN6S220C63v12Ev();
extern void _ZN6S220C63v13Ev();
extern void _ZN6S220C63v14Ev();
extern void _ZN6S220C63v15Ev();
extern void _ZN6S220C63v16Ev();
extern void _ZN6S220C63v17Ev();
extern void _ZN6S220C63v18Ev();
extern void _ZN6S220C63v19Ev();
extern void _ZN6S220C63v20Ev();
extern void _ZN6S220C63v21Ev();
extern void _ZN6S220C63v22Ev();
extern void _ZN6S220C63v23Ev();
extern void _ZN6S220C63v24Ev();
extern void _ZN6S220C63v25Ev();
extern void _ZN6S220C63v26Ev();
extern void _ZN6S220C63v27Ev();
extern void _ZN6S220C63v28Ev();
extern void _ZN6S220C63v29Ev();
extern void _ZN6S220C63v30Ev();
extern void _ZN6S220C63v31Ev();
extern void _ZN6S220C63v32Ev();
extern void _ZN6S220C63v33Ev();
extern void _ZN6S220C63v34Ev();
extern void _ZN6S220C63v35Ev();
extern void _ZN6S220C63v36Ev();
extern void _ZN6S220C63v37Ev();
extern void _ZN6S220C63v38Ev();
extern void _ZN6S220C63v39Ev();
extern void _ZN6S220C63v40Ev();
extern void _ZN6S220C63v41Ev();
extern void _ZN6S220C63v42Ev();
extern void _ZN6S220C63v43Ev();
extern void _ZN6S220C63v44Ev();
extern void _ZN6S220C63v45Ev();
extern void _ZN6S220C63v46Ev();
extern void _ZN6S220C63v47Ev();
extern void _ZN6S220C63v48Ev();
extern void _ZN6S220C63v49Ev();
extern void _ZN6S220C63v50Ev();
extern void _ZN6S220C63v51Ev();
extern void _ZN6S220C63v52Ev();
extern void _ZN6S220C63v53Ev();
extern void _ZN6S220C63v54Ev();
extern void _ZN6S220C63v55Ev();
extern void _ZN6S220C63v56Ev();
extern void _ZN6S220C63v57Ev();
extern void _ZN6S220C63v58Ev();
extern void _ZN6S220C63v59Ev();
extern void _ZN6S220C63v60Ev();
extern void _ZN6S220C63v61Ev();
extern void _ZN6S220C63v62Ev();
extern void _ZN6S220C63v63Ev();
extern void _ZN6S220C63v64Ev();
extern void _ZN6S220C63v65Ev();
extern void _ZN6S220C63v66Ev();
extern void _ZN6S220C63v67Ev();
extern void _ZN6S220C53v68Ev();
extern void _ZN6S220C53v69Ev();
extern void _ZN6S220C43v70Ev();
extern void _ZN6S220C43v71Ev();
extern void _ZN6S220C43v72Ev();
extern void _ZN6S220C43v73Ev();
extern void _ZN6S220C43v74Ev();
extern void _ZN6S220C43v75Ev();
extern void _ZN6S220C43v76Ev();
extern void _ZN6S220C43v77Ev();
extern void _ZN6S220C43v78Ev();
extern void _ZN6S220C43v79Ev();
extern void _ZN6S220C43v80Ev();
extern void _ZN6S220C43v81Ev();
extern void _ZN6S220C43v82Ev();
extern void _ZN6S220C43v83Ev();
extern void _ZN6S220C43v84Ev();
extern void _ZN6S220C43v85Ev();
extern void _ZN6S220C43v86Ev();
extern void _ZN6S220C43v87Ev();
extern void _ZN6S220C43v88Ev();
extern void _ZN6S220C43v89Ev();
extern void _ZN6S220C43v90Ev();
extern void _ZN6S220C43v91Ev();
extern void _ZN6S220C43v92Ev();
extern void _ZN6S220C43v93Ev();
extern void _ZN6S220C43v94Ev();
extern void _ZN6S220C43v95Ev();
extern void _ZN6S220C43v96Ev();
extern void _ZN6S220C43v97Ev();
extern void _ZN6S220C43v98Ev();
extern void _ZN6S220C43v99Ev();
extern void _ZN6S220C44v100Ev();
extern void _ZN6S220C44v101Ev();
extern void _ZN6S220C44v102Ev();
extern void _ZN6S220C44v103Ev();
extern void _ZN6S220C44v104Ev();
extern void _ZN6S220C44v105Ev();
extern void _ZN6S220C44v106Ev();
extern void _ZN6S220C44v107Ev();
extern void _ZN6S220C44v108Ev();
extern void _ZN6S220C44v109Ev();
extern void _ZN6S220C44v110Ev();
extern void _ZN6S220C44v111Ev();
extern void _ZN6S220C44v112Ev();
extern void _ZN6S220C44v113Ev();
extern void _ZN6S220C44v114Ev();
extern void _ZN6S220C44v115Ev();
extern void _ZN6S220C44v116Ev();
extern void _ZN6S220C44v117Ev();
extern void _ZN6S220C44v118Ev();
extern void _ZN6S220C44v119Ev();
extern void _ZN6S220C44v120Ev();
extern void _ZN6S220C44v121Ev();
extern void _ZN6S220C44v122Ev();
extern void _ZN6S220C44v123Ev();
extern void _ZN6S220C44v124Ev();
extern void _ZN6S220C44v125Ev();
extern void _ZN6S220C44v126Ev();
extern void _ZN6S220C44v127Ev();
extern void _ZN6S220C44v128Ev();
extern void _ZN6S220C44v129Ev();
extern void _ZN6S220C44v130Ev();
extern void _ZN6S220C44v131Ev();
extern void _ZN6S220C44v132Ev();
extern void _ZN6S220C44v133Ev();
extern void _ZN6S220C44v134Ev();
extern void _ZN6S220C44v135Ev();
extern void _ZN6S220C44v136Ev();
extern void _ZN6S220C44v137Ev();
extern void _ZN6S220C44v138Ev();
extern void _ZN6S220C44v139Ev();
extern void _ZN6S220C44v140Ev();
extern void _ZN6S220C44v141Ev();
extern void _ZN6S220C44v142Ev();
extern void _ZN6S220C44v143Ev();
extern void _ZN6S220C44v144Ev();
extern void _ZN6S220C44v145Ev();
static  VTBL_ENTRY vtc_S220C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S220C4[0]),
  (VTBL_ENTRY)&_ZN6S220C4D1Ev,
  (VTBL_ENTRY)&_ZN6S220C4D0Ev,
  (VTBL_ENTRY)&_ZN6S220C62v4Ev,
  (VTBL_ENTRY)&_ZN6S220C62v5Ev,
  (VTBL_ENTRY)&_ZN6S220C62v6Ev,
  (VTBL_ENTRY)&_ZN6S220C62v7Ev,
  (VTBL_ENTRY)&_ZN6S220C62v8Ev,
  (VTBL_ENTRY)&_ZN6S220C62v9Ev,
  (VTBL_ENTRY)&_ZN6S220C63v10Ev,
  (VTBL_ENTRY)&_ZN6S220C63v11Ev,
  (VTBL_ENTRY)&_ZN6S220C63v12Ev,
  (VTBL_ENTRY)&_ZN6S220C63v13Ev,
  (VTBL_ENTRY)&_ZN6S220C63v14Ev,
  (VTBL_ENTRY)&_ZN6S220C63v15Ev,
  (VTBL_ENTRY)&_ZN6S220C63v16Ev,
  (VTBL_ENTRY)&_ZN6S220C63v17Ev,
  (VTBL_ENTRY)&_ZN6S220C63v18Ev,
  (VTBL_ENTRY)&_ZN6S220C63v19Ev,
  (VTBL_ENTRY)&_ZN6S220C63v20Ev,
  (VTBL_ENTRY)&_ZN6S220C63v21Ev,
  (VTBL_ENTRY)&_ZN6S220C63v22Ev,
  (VTBL_ENTRY)&_ZN6S220C63v23Ev,
  (VTBL_ENTRY)&_ZN6S220C63v24Ev,
  (VTBL_ENTRY)&_ZN6S220C63v25Ev,
  (VTBL_ENTRY)&_ZN6S220C63v26Ev,
  (VTBL_ENTRY)&_ZN6S220C63v27Ev,
  (VTBL_ENTRY)&_ZN6S220C63v28Ev,
  (VTBL_ENTRY)&_ZN6S220C63v29Ev,
  (VTBL_ENTRY)&_ZN6S220C63v30Ev,
  (VTBL_ENTRY)&_ZN6S220C63v31Ev,
  (VTBL_ENTRY)&_ZN6S220C63v32Ev,
  (VTBL_ENTRY)&_ZN6S220C63v33Ev,
  (VTBL_ENTRY)&_ZN6S220C63v34Ev,
  (VTBL_ENTRY)&_ZN6S220C63v35Ev,
  (VTBL_ENTRY)&_ZN6S220C63v36Ev,
  (VTBL_ENTRY)&_ZN6S220C63v37Ev,
  (VTBL_ENTRY)&_ZN6S220C63v38Ev,
  (VTBL_ENTRY)&_ZN6S220C63v39Ev,
  (VTBL_ENTRY)&_ZN6S220C63v40Ev,
  (VTBL_ENTRY)&_ZN6S220C63v41Ev,
  (VTBL_ENTRY)&_ZN6S220C63v42Ev,
  (VTBL_ENTRY)&_ZN6S220C63v43Ev,
  (VTBL_ENTRY)&_ZN6S220C63v44Ev,
  (VTBL_ENTRY)&_ZN6S220C63v45Ev,
  (VTBL_ENTRY)&_ZN6S220C63v46Ev,
  (VTBL_ENTRY)&_ZN6S220C63v47Ev,
  (VTBL_ENTRY)&_ZN6S220C63v48Ev,
  (VTBL_ENTRY)&_ZN6S220C63v49Ev,
  (VTBL_ENTRY)&_ZN6S220C63v50Ev,
  (VTBL_ENTRY)&_ZN6S220C63v51Ev,
  (VTBL_ENTRY)&_ZN6S220C63v52Ev,
  (VTBL_ENTRY)&_ZN6S220C63v53Ev,
  (VTBL_ENTRY)&_ZN6S220C63v54Ev,
  (VTBL_ENTRY)&_ZN6S220C63v55Ev,
  (VTBL_ENTRY)&_ZN6S220C63v56Ev,
  (VTBL_ENTRY)&_ZN6S220C63v57Ev,
  (VTBL_ENTRY)&_ZN6S220C63v58Ev,
  (VTBL_ENTRY)&_ZN6S220C63v59Ev,
  (VTBL_ENTRY)&_ZN6S220C63v60Ev,
  (VTBL_ENTRY)&_ZN6S220C63v61Ev,
  (VTBL_ENTRY)&_ZN6S220C63v62Ev,
  (VTBL_ENTRY)&_ZN6S220C63v63Ev,
  (VTBL_ENTRY)&_ZN6S220C63v64Ev,
  (VTBL_ENTRY)&_ZN6S220C63v65Ev,
  (VTBL_ENTRY)&_ZN6S220C63v66Ev,
  (VTBL_ENTRY)&_ZN6S220C63v67Ev,
  (VTBL_ENTRY)&_ZN6S220C53v68Ev,
  (VTBL_ENTRY)&_ZN6S220C53v69Ev,
  (VTBL_ENTRY)&_ZN6S220C43v70Ev,
  (VTBL_ENTRY)&_ZN6S220C43v71Ev,
  (VTBL_ENTRY)&_ZN6S220C43v72Ev,
  (VTBL_ENTRY)&_ZN6S220C43v73Ev,
  (VTBL_ENTRY)&_ZN6S220C43v74Ev,
  (VTBL_ENTRY)&_ZN6S220C43v75Ev,
  (VTBL_ENTRY)&_ZN6S220C43v76Ev,
  (VTBL_ENTRY)&_ZN6S220C43v77Ev,
  (VTBL_ENTRY)&_ZN6S220C43v78Ev,
  (VTBL_ENTRY)&_ZN6S220C43v79Ev,
  (VTBL_ENTRY)&_ZN6S220C43v80Ev,
  (VTBL_ENTRY)&_ZN6S220C43v81Ev,
  (VTBL_ENTRY)&_ZN6S220C43v82Ev,
  (VTBL_ENTRY)&_ZN6S220C43v83Ev,
  (VTBL_ENTRY)&_ZN6S220C43v84Ev,
  (VTBL_ENTRY)&_ZN6S220C43v85Ev,
  (VTBL_ENTRY)&_ZN6S220C43v86Ev,
  (VTBL_ENTRY)&_ZN6S220C43v87Ev,
  (VTBL_ENTRY)&_ZN6S220C43v88Ev,
  (VTBL_ENTRY)&_ZN6S220C43v89Ev,
  (VTBL_ENTRY)&_ZN6S220C43v90Ev,
  (VTBL_ENTRY)&_ZN6S220C43v91Ev,
  (VTBL_ENTRY)&_ZN6S220C43v92Ev,
  (VTBL_ENTRY)&_ZN6S220C43v93Ev,
  (VTBL_ENTRY)&_ZN6S220C43v94Ev,
  (VTBL_ENTRY)&_ZN6S220C43v95Ev,
  (VTBL_ENTRY)&_ZN6S220C43v96Ev,
  (VTBL_ENTRY)&_ZN6S220C43v97Ev,
  (VTBL_ENTRY)&_ZN6S220C43v98Ev,
  (VTBL_ENTRY)&_ZN6S220C43v99Ev,
  (VTBL_ENTRY)&_ZN6S220C44v100Ev,
  (VTBL_ENTRY)&_ZN6S220C44v101Ev,
  (VTBL_ENTRY)&_ZN6S220C44v102Ev,
  (VTBL_ENTRY)&_ZN6S220C44v103Ev,
  (VTBL_ENTRY)&_ZN6S220C44v104Ev,
  (VTBL_ENTRY)&_ZN6S220C44v105Ev,
  (VTBL_ENTRY)&_ZN6S220C44v106Ev,
  (VTBL_ENTRY)&_ZN6S220C44v107Ev,
  (VTBL_ENTRY)&_ZN6S220C44v108Ev,
  (VTBL_ENTRY)&_ZN6S220C44v109Ev,
  (VTBL_ENTRY)&_ZN6S220C44v110Ev,
  (VTBL_ENTRY)&_ZN6S220C44v111Ev,
  (VTBL_ENTRY)&_ZN6S220C44v112Ev,
  (VTBL_ENTRY)&_ZN6S220C44v113Ev,
  (VTBL_ENTRY)&_ZN6S220C44v114Ev,
  (VTBL_ENTRY)&_ZN6S220C44v115Ev,
  (VTBL_ENTRY)&_ZN6S220C44v116Ev,
  (VTBL_ENTRY)&_ZN6S220C44v117Ev,
  (VTBL_ENTRY)&_ZN6S220C44v118Ev,
  (VTBL_ENTRY)&_ZN6S220C44v119Ev,
  (VTBL_ENTRY)&_ZN6S220C44v120Ev,
  (VTBL_ENTRY)&_ZN6S220C44v121Ev,
  (VTBL_ENTRY)&_ZN6S220C44v122Ev,
  (VTBL_ENTRY)&_ZN6S220C44v123Ev,
  (VTBL_ENTRY)&_ZN6S220C44v124Ev,
  (VTBL_ENTRY)&_ZN6S220C44v125Ev,
  (VTBL_ENTRY)&_ZN6S220C44v126Ev,
  (VTBL_ENTRY)&_ZN6S220C44v127Ev,
  (VTBL_ENTRY)&_ZN6S220C44v128Ev,
  (VTBL_ENTRY)&_ZN6S220C44v129Ev,
  (VTBL_ENTRY)&_ZN6S220C44v130Ev,
  (VTBL_ENTRY)&_ZN6S220C44v131Ev,
  (VTBL_ENTRY)&_ZN6S220C44v132Ev,
  (VTBL_ENTRY)&_ZN6S220C44v133Ev,
  (VTBL_ENTRY)&_ZN6S220C44v134Ev,
  (VTBL_ENTRY)&_ZN6S220C44v135Ev,
  (VTBL_ENTRY)&_ZN6S220C44v136Ev,
  (VTBL_ENTRY)&_ZN6S220C44v137Ev,
  (VTBL_ENTRY)&_ZN6S220C44v138Ev,
  (VTBL_ENTRY)&_ZN6S220C44v139Ev,
  (VTBL_ENTRY)&_ZN6S220C44v140Ev,
  (VTBL_ENTRY)&_ZN6S220C44v141Ev,
  (VTBL_ENTRY)&_ZN6S220C44v142Ev,
  (VTBL_ENTRY)&_ZN6S220C44v143Ev,
  (VTBL_ENTRY)&_ZN6S220C44v144Ev,
  (VTBL_ENTRY)&_ZN6S220C44v145Ev,
};
extern VTBL_ENTRY _ZTI6S220C4[];
extern  VTBL_ENTRY _ZTV6S220C4[];
Class_Descriptor cd_S220C4 = {  "S220C4", // class name
  bases_S220C4, 2,
  &(vtc_S220C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S220C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S220C4),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S220C3  : S220C4 {
  ::S85C27_nt s220c3f0;
  void *s220c3f1[9];
  ::S80C15 s220c3f2;
  ::S85C35 s220c3f3;
  ::S80C24 s220c3f4;
  int s220c3f5;
  unsigned int s220c3f6:1;
  unsigned int s220c3f7:1;
  unsigned int s220c3f8:1;
  unsigned int s220c3f9:1;
  unsigned int s220c3f10:1;
  unsigned int s220c3f11:1;
  unsigned int s220c3f12:1;
  unsigned int s220c3f13:1;
  unsigned int s220c3f14:1;
  unsigned int s220c3f15:1;
  unsigned int s220c3f16:1;
  unsigned int s220c3f17:1;
  unsigned int s220c3f18:1;
  unsigned int s220c3f19:1;
  unsigned int s220c3f20:1;
  unsigned int s220c3f21:1;
  unsigned int s220c3f22:1;
  unsigned int s220c3f23:1;
  unsigned int s220c3f24:1;
  unsigned int s220c3f25:1;
  unsigned int s220c3f26:1;
  unsigned int s220c3f27:1;
  void *s220c3f28;
  char s220c3f29[2];
  ::S80C8_nt s220c3f30;
  ::S85C27_nt s220c3f31;
  ::S85C27_nt s220c3f32;
  void *s220c3f33;
  ::S80C21_nt s220c3f34;
  ::S80C21_nt s220c3f35;
  ::S80C21_nt s220c3f36;
  ::S80C21_nt s220c3f37;
  ::S80C21_nt s220c3f38;
  virtual  ~S220C3(); // _ZN6S220C3D1Ev
  virtual void  v146(); // _ZN6S220C34v146Ev
  virtual void  v147(); // _ZN6S220C34v147Ev
  virtual void  v148(); // _ZN6S220C34v148Ev
  virtual void  v149(); // _ZN6S220C34v149Ev
  virtual void  v150(); // _ZN6S220C34v150Ev
  virtual void  v151(); // _ZN6S220C34v151Ev
  virtual void  v152(); // _ZN6S220C34v152Ev
  virtual void  v153(); // _ZN6S220C34v153Ev
  virtual void  v154(); // _ZN6S220C34v154Ev
  virtual void  v155(); // _ZN6S220C34v155Ev
  virtual void  v156(); // _ZN6S220C34v156Ev
  virtual void  v157(); // _ZN6S220C34v157Ev
  virtual void  v158(); // _ZN6S220C34v158Ev
  virtual void  v159(); // _ZN6S220C34v159Ev
  virtual void  v160(); // _ZN6S220C34v160Ev
  virtual void  v161(); // _ZN6S220C34v161Ev
  virtual void  v162(); // _ZN6S220C34v162Ev
  virtual void  v163(); // _ZN6S220C34v163Ev
  virtual void  v164(); // _ZN6S220C34v164Ev
  virtual void  v165(); // _ZN6S220C34v165Ev
  virtual void  v166(); // _ZN6S220C34v166Ev
  virtual void  v167(); // _ZN6S220C34v167Ev
  virtual void  v168(); // _ZN6S220C34v168Ev
  virtual void  v169(); // _ZN6S220C34v169Ev
  virtual void  v170(); // _ZN6S220C34v170Ev
  virtual void  v171(); // _ZN6S220C34v171Ev
  virtual void  v172(); // _ZN6S220C34v172Ev
  virtual void  v173(); // _ZN6S220C34v173Ev
  virtual void  v174(); // _ZN6S220C34v174Ev
  virtual void  v175(); // _ZN6S220C34v175Ev
  virtual void  v176(); // _ZN6S220C34v176Ev
  virtual void  v177(); // _ZN6S220C34v177Ev
  virtual void  v178(); // _ZN6S220C34v178Ev
  virtual void  v179(); // _ZN6S220C34v179Ev
  virtual void  v180(); // _ZN6S220C34v180Ev
  virtual void  v181(); // _ZN6S220C34v181Ev
  virtual void  v182(); // _ZN6S220C34v182Ev
  virtual void  v183(); // _ZN6S220C34v183Ev
  virtual void  v184(); // _ZN6S220C34v184Ev
  S220C3(); // tgen
};
//SIG(-1 S220C3) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S220C3 ::~S220C3(){ note_dtor("S220C3", this);}
void  S220C3 ::v146(){vfunc_called(this, "_ZN6S220C34v146Ev");}
void  S220C3 ::v147(){vfunc_called(this, "_ZN6S220C34v147Ev");}
void  S220C3 ::v148(){vfunc_called(this, "_ZN6S220C34v148Ev");}
void  S220C3 ::v149(){vfunc_called(this, "_ZN6S220C34v149Ev");}
void  S220C3 ::v150(){vfunc_called(this, "_ZN6S220C34v150Ev");}
void  S220C3 ::v151(){vfunc_called(this, "_ZN6S220C34v151Ev");}
void  S220C3 ::v152(){vfunc_called(this, "_ZN6S220C34v152Ev");}
void  S220C3 ::v153(){vfunc_called(this, "_ZN6S220C34v153Ev");}
void  S220C3 ::v154(){vfunc_called(this, "_ZN6S220C34v154Ev");}
void  S220C3 ::v155(){vfunc_called(this, "_ZN6S220C34v155Ev");}
void  S220C3 ::v156(){vfunc_called(this, "_ZN6S220C34v156Ev");}
void  S220C3 ::v157(){vfunc_called(this, "_ZN6S220C34v157Ev");}
void  S220C3 ::v158(){vfunc_called(this, "_ZN6S220C34v158Ev");}
void  S220C3 ::v159(){vfunc_called(this, "_ZN6S220C34v159Ev");}
void  S220C3 ::v160(){vfunc_called(this, "_ZN6S220C34v160Ev");}
void  S220C3 ::v161(){vfunc_called(this, "_ZN6S220C34v161Ev");}
void  S220C3 ::v162(){vfunc_called(this, "_ZN6S220C34v162Ev");}
void  S220C3 ::v163(){vfunc_called(this, "_ZN6S220C34v163Ev");}
void  S220C3 ::v164(){vfunc_called(this, "_ZN6S220C34v164Ev");}
void  S220C3 ::v165(){vfunc_called(this, "_ZN6S220C34v165Ev");}
void  S220C3 ::v166(){vfunc_called(this, "_ZN6S220C34v166Ev");}
void  S220C3 ::v167(){vfunc_called(this, "_ZN6S220C34v167Ev");}
void  S220C3 ::v168(){vfunc_called(this, "_ZN6S220C34v168Ev");}
void  S220C3 ::v169(){vfunc_called(this, "_ZN6S220C34v169Ev");}
void  S220C3 ::v170(){vfunc_called(this, "_ZN6S220C34v170Ev");}
void  S220C3 ::v171(){vfunc_called(this, "_ZN6S220C34v171Ev");}
void  S220C3 ::v172(){vfunc_called(this, "_ZN6S220C34v172Ev");}
void  S220C3 ::v173(){vfunc_called(this, "_ZN6S220C34v173Ev");}
void  S220C3 ::v174(){vfunc_called(this, "_ZN6S220C34v174Ev");}
void  S220C3 ::v175(){vfunc_called(this, "_ZN6S220C34v175Ev");}
void  S220C3 ::v176(){vfunc_called(this, "_ZN6S220C34v176Ev");}
void  S220C3 ::v177(){vfunc_called(this, "_ZN6S220C34v177Ev");}
void  S220C3 ::v178(){vfunc_called(this, "_ZN6S220C34v178Ev");}
void  S220C3 ::v179(){vfunc_called(this, "_ZN6S220C34v179Ev");}
void  S220C3 ::v180(){vfunc_called(this, "_ZN6S220C34v180Ev");}
void  S220C3 ::v181(){vfunc_called(this, "_ZN6S220C34v181Ev");}
void  S220C3 ::v182(){vfunc_called(this, "_ZN6S220C34v182Ev");}
void  S220C3 ::v183(){vfunc_called(this, "_ZN6S220C34v183Ev");}
void  S220C3 ::v184(){vfunc_called(this, "_ZN6S220C34v184Ev");}
S220C3 ::S220C3(){ note_ctor("S220C3", this);} // tgen

static void Test_S220C3()
{
  extern Class_Descriptor cd_S220C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S220C3, buf);
    S220C3 *dp, &lv = *(dp=new (buf) S220C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S220C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S220C3)");
    check_base_class_offset(lv, (S220C6*)(S220C5*)(S220C4*), 0, "S220C3");
    check_base_class_offset(lv, (S220C5*)(S220C4*), 0, "S220C3");
    check_base_class_offset(lv, (S220C4*), 0, "S220C3");
    check_field_offset(lv, s220c3f0, ABISELECT(464,352), "S220C3.s220c3f0");
    check_field_offset(lv, s220c3f1, ABISELECT(472,360), "S220C3.s220c3f1");
    check_field_offset(lv, s220c3f2, ABISELECT(544,396), "S220C3.s220c3f2");
    check_field_offset(lv, s220c3f3, ABISELECT(560,408), "S220C3.s220c3f3");
    check_field_offset(lv, s220c3f4, ABISELECT(576,420), "S220C3.s220c3f4");
    check_field_offset(lv, s220c3f5, ABISELECT(608,440), "S220C3.s220c3f5");
    set_bf_and_test(lv, s220c3f6, ABISELECT(612,444), 0, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f7, ABISELECT(612,444), 1, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f8, ABISELECT(612,444), 2, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f9, ABISELECT(612,444), 3, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f10, ABISELECT(612,444), 4, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f11, ABISELECT(612,444), 5, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f12, ABISELECT(612,444), 6, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f13, ABISELECT(612,444), 7, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f14, ABISELECT(613,445), 0, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f15, ABISELECT(613,445), 1, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f16, ABISELECT(613,445), 2, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f17, ABISELECT(613,445), 3, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f18, ABISELECT(613,445), 4, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f19, ABISELECT(613,445), 5, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f20, ABISELECT(613,445), 6, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f21, ABISELECT(613,445), 7, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f22, ABISELECT(614,446), 0, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f23, ABISELECT(614,446), 1, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f24, ABISELECT(614,446), 2, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f25, ABISELECT(614,446), 3, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f26, ABISELECT(614,446), 4, 1, 1, "S220C3");
    set_bf_and_test(lv, s220c3f27, ABISELECT(614,446), 5, 1, 1, "S220C3");
    check_field_offset(lv, s220c3f28, ABISELECT(616,448), "S220C3.s220c3f28");
    check_field_offset(lv, s220c3f29, ABISELECT(624,452), "S220C3.s220c3f29");
    check_field_offset(lv, s220c3f30, ABISELECT(628,456), "S220C3.s220c3f30");
    check_field_offset(lv, s220c3f31, ABISELECT(636,464), "S220C3.s220c3f31");
    check_field_offset(lv, s220c3f32, ABISELECT(644,472), "S220C3.s220c3f32");
    check_field_offset(lv, s220c3f33, ABISELECT(656,480), "S220C3.s220c3f33");
    check_field_offset(lv, s220c3f34, ABISELECT(664,484), "S220C3.s220c3f34");
    check_field_offset(lv, s220c3f35, ABISELECT(680,496), "S220C3.s220c3f35");
    check_field_offset(lv, s220c3f36, ABISELECT(696,508), "S220C3.s220c3f36");
    check_field_offset(lv, s220c3f37, ABISELECT(712,520), "S220C3.s220c3f37");
    check_field_offset(lv, s220c3f38, ABISELECT(728,532), "S220C3.s220c3f38");
    test_class_info(&lv, &cd_S220C3);
    dp->~S220C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS220C3(Test_S220C3, "S220C3", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S220C3C1Ev();
extern void _ZN6S220C3D1Ev();
Name_Map name_map_S220C3[] = {
  NSPAIR(_ZN6S220C3C1Ev),
  NSPAIR(_ZN6S220C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S220C6;
extern VTBL_ENTRY _ZTI6S220C6[];
extern  VTBL_ENTRY _ZTV6S220C6[];
extern Class_Descriptor cd_S220C5;
extern VTBL_ENTRY _ZTI6S220C5[];
extern  VTBL_ENTRY _ZTV6S220C5[];
extern Class_Descriptor cd_S220C4;
extern VTBL_ENTRY _ZTI6S220C4[];
extern  VTBL_ENTRY _ZTV6S220C4[];
static Base_Class bases_S220C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S220C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S220C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S220C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S220C3[];
extern void _ZN6S220C3D1Ev();
extern void _ZN6S220C3D0Ev();
extern void _ZN6S220C62v4Ev();
extern void _ZN6S220C62v5Ev();
extern void _ZN6S220C62v6Ev();
extern void _ZN6S220C62v7Ev();
extern void _ZN6S220C62v8Ev();
extern void _ZN6S220C62v9Ev();
extern void _ZN6S220C63v10Ev();
extern void _ZN6S220C63v11Ev();
extern void _ZN6S220C63v12Ev();
extern void _ZN6S220C63v13Ev();
extern void _ZN6S220C63v14Ev();
extern void _ZN6S220C63v15Ev();
extern void _ZN6S220C63v16Ev();
extern void _ZN6S220C63v17Ev();
extern void _ZN6S220C63v18Ev();
extern void _ZN6S220C63v19Ev();
extern void _ZN6S220C63v20Ev();
extern void _ZN6S220C63v21Ev();
extern void _ZN6S220C63v22Ev();
extern void _ZN6S220C63v23Ev();
extern void _ZN6S220C63v24Ev();
extern void _ZN6S220C63v25Ev();
extern void _ZN6S220C63v26Ev();
extern void _ZN6S220C63v27Ev();
extern void _ZN6S220C63v28Ev();
extern void _ZN6S220C63v29Ev();
extern void _ZN6S220C63v30Ev();
extern void _ZN6S220C63v31Ev();
extern void _ZN6S220C63v32Ev();
extern void _ZN6S220C63v33Ev();
extern void _ZN6S220C63v34Ev();
extern void _ZN6S220C63v35Ev();
extern void _ZN6S220C63v36Ev();
extern void _ZN6S220C63v37Ev();
extern void _ZN6S220C63v38Ev();
extern void _ZN6S220C63v39Ev();
extern void _ZN6S220C63v40Ev();
extern void _ZN6S220C63v41Ev();
extern void _ZN6S220C63v42Ev();
extern void _ZN6S220C63v43Ev();
extern void _ZN6S220C63v44Ev();
extern void _ZN6S220C63v45Ev();
extern void _ZN6S220C63v46Ev();
extern void _ZN6S220C63v47Ev();
extern void _ZN6S220C63v48Ev();
extern void _ZN6S220C63v49Ev();
extern void _ZN6S220C63v50Ev();
extern void _ZN6S220C63v51Ev();
extern void _ZN6S220C63v52Ev();
extern void _ZN6S220C63v53Ev();
extern void _ZN6S220C63v54Ev();
extern void _ZN6S220C63v55Ev();
extern void _ZN6S220C63v56Ev();
extern void _ZN6S220C63v57Ev();
extern void _ZN6S220C63v58Ev();
extern void _ZN6S220C63v59Ev();
extern void _ZN6S220C63v60Ev();
extern void _ZN6S220C63v61Ev();
extern void _ZN6S220C63v62Ev();
extern void _ZN6S220C63v63Ev();
extern void _ZN6S220C63v64Ev();
extern void _ZN6S220C63v65Ev();
extern void _ZN6S220C63v66Ev();
extern void _ZN6S220C63v67Ev();
extern void _ZN6S220C53v68Ev();
extern void _ZN6S220C53v69Ev();
extern void _ZN6S220C43v70Ev();
extern void _ZN6S220C43v71Ev();
extern void _ZN6S220C43v72Ev();
extern void _ZN6S220C43v73Ev();
extern void _ZN6S220C43v74Ev();
extern void _ZN6S220C43v75Ev();
extern void _ZN6S220C43v76Ev();
extern void _ZN6S220C43v77Ev();
extern void _ZN6S220C43v78Ev();
extern void _ZN6S220C43v79Ev();
extern void _ZN6S220C43v80Ev();
extern void _ZN6S220C43v81Ev();
extern void _ZN6S220C43v82Ev();
extern void _ZN6S220C43v83Ev();
extern void _ZN6S220C43v84Ev();
extern void _ZN6S220C43v85Ev();
extern void _ZN6S220C43v86Ev();
extern void _ZN6S220C43v87Ev();
extern void _ZN6S220C43v88Ev();
extern void _ZN6S220C43v89Ev();
extern void _ZN6S220C43v90Ev();
extern void _ZN6S220C43v91Ev();
extern void _ZN6S220C43v92Ev();
extern void _ZN6S220C43v93Ev();
extern void _ZN6S220C43v94Ev();
extern void _ZN6S220C43v95Ev();
extern void _ZN6S220C43v96Ev();
extern void _ZN6S220C43v97Ev();
extern void _ZN6S220C43v98Ev();
extern void _ZN6S220C43v99Ev();
extern void _ZN6S220C44v100Ev();
extern void _ZN6S220C44v101Ev();
extern void _ZN6S220C44v102Ev();
extern void _ZN6S220C44v103Ev();
extern void _ZN6S220C44v104Ev();
extern void _ZN6S220C44v105Ev();
extern void _ZN6S220C44v106Ev();
extern void _ZN6S220C44v107Ev();
extern void _ZN6S220C44v108Ev();
extern void _ZN6S220C44v109Ev();
extern void _ZN6S220C44v110Ev();
extern void _ZN6S220C44v111Ev();
extern void _ZN6S220C44v112Ev();
extern void _ZN6S220C44v113Ev();
extern void _ZN6S220C44v114Ev();
extern void _ZN6S220C44v115Ev();
extern void _ZN6S220C44v116Ev();
extern void _ZN6S220C44v117Ev();
extern void _ZN6S220C44v118Ev();
extern void _ZN6S220C44v119Ev();
extern void _ZN6S220C44v120Ev();
extern void _ZN6S220C44v121Ev();
extern void _ZN6S220C44v122Ev();
extern void _ZN6S220C44v123Ev();
extern void _ZN6S220C44v124Ev();
extern void _ZN6S220C44v125Ev();
extern void _ZN6S220C44v126Ev();
extern void _ZN6S220C44v127Ev();
extern void _ZN6S220C44v128Ev();
extern void _ZN6S220C44v129Ev();
extern void _ZN6S220C44v130Ev();
extern void _ZN6S220C44v131Ev();
extern void _ZN6S220C44v132Ev();
extern void _ZN6S220C44v133Ev();
extern void _ZN6S220C44v134Ev();
extern void _ZN6S220C44v135Ev();
extern void _ZN6S220C44v136Ev();
extern void _ZN6S220C44v137Ev();
extern void _ZN6S220C44v138Ev();
extern void _ZN6S220C44v139Ev();
extern void _ZN6S220C44v140Ev();
extern void _ZN6S220C44v141Ev();
extern void _ZN6S220C44v142Ev();
extern void _ZN6S220C44v143Ev();
extern void _ZN6S220C44v144Ev();
extern void _ZN6S220C44v145Ev();
extern void _ZN6S220C34v146Ev();
extern void _ZN6S220C34v147Ev();
extern void _ZN6S220C34v148Ev();
extern void _ZN6S220C34v149Ev();
extern void _ZN6S220C34v150Ev();
extern void _ZN6S220C34v151Ev();
extern void _ZN6S220C34v152Ev();
extern void _ZN6S220C34v153Ev();
extern void _ZN6S220C34v154Ev();
extern void _ZN6S220C34v155Ev();
extern void _ZN6S220C34v156Ev();
extern void _ZN6S220C34v157Ev();
extern void _ZN6S220C34v158Ev();
extern void _ZN6S220C34v159Ev();
extern void _ZN6S220C34v160Ev();
extern void _ZN6S220C34v161Ev();
extern void _ZN6S220C34v162Ev();
extern void _ZN6S220C34v163Ev();
extern void _ZN6S220C34v164Ev();
extern void _ZN6S220C34v165Ev();
extern void _ZN6S220C34v166Ev();
extern void _ZN6S220C34v167Ev();
extern void _ZN6S220C34v168Ev();
extern void _ZN6S220C34v169Ev();
extern void _ZN6S220C34v170Ev();
extern void _ZN6S220C34v171Ev();
extern void _ZN6S220C34v172Ev();
extern void _ZN6S220C34v173Ev();
extern void _ZN6S220C34v174Ev();
extern void _ZN6S220C34v175Ev();
extern void _ZN6S220C34v176Ev();
extern void _ZN6S220C34v177Ev();
extern void _ZN6S220C34v178Ev();
extern void _ZN6S220C34v179Ev();
extern void _ZN6S220C34v180Ev();
extern void _ZN6S220C34v181Ev();
extern void _ZN6S220C34v182Ev();
extern void _ZN6S220C34v183Ev();
extern void _ZN6S220C34v184Ev();
static  VTBL_ENTRY vtc_S220C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S220C3[0]),
  (VTBL_ENTRY)&_ZN6S220C3D1Ev,
  (VTBL_ENTRY)&_ZN6S220C3D0Ev,
  (VTBL_ENTRY)&_ZN6S220C62v4Ev,
  (VTBL_ENTRY)&_ZN6S220C62v5Ev,
  (VTBL_ENTRY)&_ZN6S220C62v6Ev,
  (VTBL_ENTRY)&_ZN6S220C62v7Ev,
  (VTBL_ENTRY)&_ZN6S220C62v8Ev,
  (VTBL_ENTRY)&_ZN6S220C62v9Ev,
  (VTBL_ENTRY)&_ZN6S220C63v10Ev,
  (VTBL_ENTRY)&_ZN6S220C63v11Ev,
  (VTBL_ENTRY)&_ZN6S220C63v12Ev,
  (VTBL_ENTRY)&_ZN6S220C63v13Ev,
  (VTBL_ENTRY)&_ZN6S220C63v14Ev,
  (VTBL_ENTRY)&_ZN6S220C63v15Ev,
  (VTBL_ENTRY)&_ZN6S220C63v16Ev,
  (VTBL_ENTRY)&_ZN6S220C63v17Ev,
  (VTBL_ENTRY)&_ZN6S220C63v18Ev,
  (VTBL_ENTRY)&_ZN6S220C63v19Ev,
  (VTBL_ENTRY)&_ZN6S220C63v20Ev,
  (VTBL_ENTRY)&_ZN6S220C63v21Ev,
  (VTBL_ENTRY)&_ZN6S220C63v22Ev,
  (VTBL_ENTRY)&_ZN6S220C63v23Ev,
  (VTBL_ENTRY)&_ZN6S220C63v24Ev,
  (VTBL_ENTRY)&_ZN6S220C63v25Ev,
  (VTBL_ENTRY)&_ZN6S220C63v26Ev,
  (VTBL_ENTRY)&_ZN6S220C63v27Ev,
  (VTBL_ENTRY)&_ZN6S220C63v28Ev,
  (VTBL_ENTRY)&_ZN6S220C63v29Ev,
  (VTBL_ENTRY)&_ZN6S220C63v30Ev,
  (VTBL_ENTRY)&_ZN6S220C63v31Ev,
  (VTBL_ENTRY)&_ZN6S220C63v32Ev,
  (VTBL_ENTRY)&_ZN6S220C63v33Ev,
  (VTBL_ENTRY)&_ZN6S220C63v34Ev,
  (VTBL_ENTRY)&_ZN6S220C63v35Ev,
  (VTBL_ENTRY)&_ZN6S220C63v36Ev,
  (VTBL_ENTRY)&_ZN6S220C63v37Ev,
  (VTBL_ENTRY)&_ZN6S220C63v38Ev,
  (VTBL_ENTRY)&_ZN6S220C63v39Ev,
  (VTBL_ENTRY)&_ZN6S220C63v40Ev,
  (VTBL_ENTRY)&_ZN6S220C63v41Ev,
  (VTBL_ENTRY)&_ZN6S220C63v42Ev,
  (VTBL_ENTRY)&_ZN6S220C63v43Ev,
  (VTBL_ENTRY)&_ZN6S220C63v44Ev,
  (VTBL_ENTRY)&_ZN6S220C63v45Ev,
  (VTBL_ENTRY)&_ZN6S220C63v46Ev,
  (VTBL_ENTRY)&_ZN6S220C63v47Ev,
  (VTBL_ENTRY)&_ZN6S220C63v48Ev,
  (VTBL_ENTRY)&_ZN6S220C63v49Ev,
  (VTBL_ENTRY)&_ZN6S220C63v50Ev,
  (VTBL_ENTRY)&_ZN6S220C63v51Ev,
  (VTBL_ENTRY)&_ZN6S220C63v52Ev,
  (VTBL_ENTRY)&_ZN6S220C63v53Ev,
  (VTBL_ENTRY)&_ZN6S220C63v54Ev,
  (VTBL_ENTRY)&_ZN6S220C63v55Ev,
  (VTBL_ENTRY)&_ZN6S220C63v56Ev,
  (VTBL_ENTRY)&_ZN6S220C63v57Ev,
  (VTBL_ENTRY)&_ZN6S220C63v58Ev,
  (VTBL_ENTRY)&_ZN6S220C63v59Ev,
  (VTBL_ENTRY)&_ZN6S220C63v60Ev,
  (VTBL_ENTRY)&_ZN6S220C63v61Ev,
  (VTBL_ENTRY)&_ZN6S220C63v62Ev,
  (VTBL_ENTRY)&_ZN6S220C63v63Ev,
  (VTBL_ENTRY)&_ZN6S220C63v64Ev,
  (VTBL_ENTRY)&_ZN6S220C63v65Ev,
  (VTBL_ENTRY)&_ZN6S220C63v66Ev,
  (VTBL_ENTRY)&_ZN6S220C63v67Ev,
  (VTBL_ENTRY)&_ZN6S220C53v68Ev,
  (VTBL_ENTRY)&_ZN6S220C53v69Ev,
  (VTBL_ENTRY)&_ZN6S220C43v70Ev,
  (VTBL_ENTRY)&_ZN6S220C43v71Ev,
  (VTBL_ENTRY)&_ZN6S220C43v72Ev,
  (VTBL_ENTRY)&_ZN6S220C43v73Ev,
  (VTBL_ENTRY)&_ZN6S220C43v74Ev,
  (VTBL_ENTRY)&_ZN6S220C43v75Ev,
  (VTBL_ENTRY)&_ZN6S220C43v76Ev,
  (VTBL_ENTRY)&_ZN6S220C43v77Ev,
  (VTBL_ENTRY)&_ZN6S220C43v78Ev,
  (VTBL_ENTRY)&_ZN6S220C43v79Ev,
  (VTBL_ENTRY)&_ZN6S220C43v80Ev,
  (VTBL_ENTRY)&_ZN6S220C43v81Ev,
  (VTBL_ENTRY)&_ZN6S220C43v82Ev,
  (VTBL_ENTRY)&_ZN6S220C43v83Ev,
  (VTBL_ENTRY)&_ZN6S220C43v84Ev,
  (VTBL_ENTRY)&_ZN6S220C43v85Ev,
  (VTBL_ENTRY)&_ZN6S220C43v86Ev,
  (VTBL_ENTRY)&_ZN6S220C43v87Ev,
  (VTBL_ENTRY)&_ZN6S220C43v88Ev,
  (VTBL_ENTRY)&_ZN6S220C43v89Ev,
  (VTBL_ENTRY)&_ZN6S220C43v90Ev,
  (VTBL_ENTRY)&_ZN6S220C43v91Ev,
  (VTBL_ENTRY)&_ZN6S220C43v92Ev,
  (VTBL_ENTRY)&_ZN6S220C43v93Ev,
  (VTBL_ENTRY)&_ZN6S220C43v94Ev,
  (VTBL_ENTRY)&_ZN6S220C43v95Ev,
  (VTBL_ENTRY)&_ZN6S220C43v96Ev,
  (VTBL_ENTRY)&_ZN6S220C43v97Ev,
  (VTBL_ENTRY)&_ZN6S220C43v98Ev,
  (VTBL_ENTRY)&_ZN6S220C43v99Ev,
  (VTBL_ENTRY)&_ZN6S220C44v100Ev,
  (VTBL_ENTRY)&_ZN6S220C44v101Ev,
  (VTBL_ENTRY)&_ZN6S220C44v102Ev,
  (VTBL_ENTRY)&_ZN6S220C44v103Ev,
  (VTBL_ENTRY)&_ZN6S220C44v104Ev,
  (VTBL_ENTRY)&_ZN6S220C44v105Ev,
  (VTBL_ENTRY)&_ZN6S220C44v106Ev,
  (VTBL_ENTRY)&_ZN6S220C44v107Ev,
  (VTBL_ENTRY)&_ZN6S220C44v108Ev,
  (VTBL_ENTRY)&_ZN6S220C44v109Ev,
  (VTBL_ENTRY)&_ZN6S220C44v110Ev,
  (VTBL_ENTRY)&_ZN6S220C44v111Ev,
  (VTBL_ENTRY)&_ZN6S220C44v112Ev,
  (VTBL_ENTRY)&_ZN6S220C44v113Ev,
  (VTBL_ENTRY)&_ZN6S220C44v114Ev,
  (VTBL_ENTRY)&_ZN6S220C44v115Ev,
  (VTBL_ENTRY)&_ZN6S220C44v116Ev,
  (VTBL_ENTRY)&_ZN6S220C44v117Ev,
  (VTBL_ENTRY)&_ZN6S220C44v118Ev,
  (VTBL_ENTRY)&_ZN6S220C44v119Ev,
  (VTBL_ENTRY)&_ZN6S220C44v120Ev,
  (VTBL_ENTRY)&_ZN6S220C44v121Ev,
  (VTBL_ENTRY)&_ZN6S220C44v122Ev,
  (VTBL_ENTRY)&_ZN6S220C44v123Ev,
  (VTBL_ENTRY)&_ZN6S220C44v124Ev,
  (VTBL_ENTRY)&_ZN6S220C44v125Ev,
  (VTBL_ENTRY)&_ZN6S220C44v126Ev,
  (VTBL_ENTRY)&_ZN6S220C44v127Ev,
  (VTBL_ENTRY)&_ZN6S220C44v128Ev,
  (VTBL_ENTRY)&_ZN6S220C44v129Ev,
  (VTBL_ENTRY)&_ZN6S220C44v130Ev,
  (VTBL_ENTRY)&_ZN6S220C44v131Ev,
  (VTBL_ENTRY)&_ZN6S220C44v132Ev,
  (VTBL_ENTRY)&_ZN6S220C44v133Ev,
  (VTBL_ENTRY)&_ZN6S220C44v134Ev,
  (VTBL_ENTRY)&_ZN6S220C44v135Ev,
  (VTBL_ENTRY)&_ZN6S220C44v136Ev,
  (VTBL_ENTRY)&_ZN6S220C44v137Ev,
  (VTBL_ENTRY)&_ZN6S220C44v138Ev,
  (VTBL_ENTRY)&_ZN6S220C44v139Ev,
  (VTBL_ENTRY)&_ZN6S220C44v140Ev,
  (VTBL_ENTRY)&_ZN6S220C44v141Ev,
  (VTBL_ENTRY)&_ZN6S220C44v142Ev,
  (VTBL_ENTRY)&_ZN6S220C44v143Ev,
  (VTBL_ENTRY)&_ZN6S220C44v144Ev,
  (VTBL_ENTRY)&_ZN6S220C44v145Ev,
  (VTBL_ENTRY)&_ZN6S220C34v146Ev,
  (VTBL_ENTRY)&_ZN6S220C34v147Ev,
  (VTBL_ENTRY)&_ZN6S220C34v148Ev,
  (VTBL_ENTRY)&_ZN6S220C34v149Ev,
  (VTBL_ENTRY)&_ZN6S220C34v150Ev,
  (VTBL_ENTRY)&_ZN6S220C34v151Ev,
  (VTBL_ENTRY)&_ZN6S220C34v152Ev,
  (VTBL_ENTRY)&_ZN6S220C34v153Ev,
  (VTBL_ENTRY)&_ZN6S220C34v154Ev,
  (VTBL_ENTRY)&_ZN6S220C34v155Ev,
  (VTBL_ENTRY)&_ZN6S220C34v156Ev,
  (VTBL_ENTRY)&_ZN6S220C34v157Ev,
  (VTBL_ENTRY)&_ZN6S220C34v158Ev,
  (VTBL_ENTRY)&_ZN6S220C34v159Ev,
  (VTBL_ENTRY)&_ZN6S220C34v160Ev,
  (VTBL_ENTRY)&_ZN6S220C34v161Ev,
  (VTBL_ENTRY)&_ZN6S220C34v162Ev,
  (VTBL_ENTRY)&_ZN6S220C34v163Ev,
  (VTBL_ENTRY)&_ZN6S220C34v164Ev,
  (VTBL_ENTRY)&_ZN6S220C34v165Ev,
  (VTBL_ENTRY)&_ZN6S220C34v166Ev,
  (VTBL_ENTRY)&_ZN6S220C34v167Ev,
  (VTBL_ENTRY)&_ZN6S220C34v168Ev,
  (VTBL_ENTRY)&_ZN6S220C34v169Ev,
  (VTBL_ENTRY)&_ZN6S220C34v170Ev,
  (VTBL_ENTRY)&_ZN6S220C34v171Ev,
  (VTBL_ENTRY)&_ZN6S220C34v172Ev,
  (VTBL_ENTRY)&_ZN6S220C34v173Ev,
  (VTBL_ENTRY)&_ZN6S220C34v174Ev,
  (VTBL_ENTRY)&_ZN6S220C34v175Ev,
  (VTBL_ENTRY)&_ZN6S220C34v176Ev,
  (VTBL_ENTRY)&_ZN6S220C34v177Ev,
  (VTBL_ENTRY)&_ZN6S220C34v178Ev,
  (VTBL_ENTRY)&_ZN6S220C34v179Ev,
  (VTBL_ENTRY)&_ZN6S220C34v180Ev,
  (VTBL_ENTRY)&_ZN6S220C34v181Ev,
  (VTBL_ENTRY)&_ZN6S220C34v182Ev,
  (VTBL_ENTRY)&_ZN6S220C34v183Ev,
  (VTBL_ENTRY)&_ZN6S220C34v184Ev,
};
extern VTBL_ENTRY _ZTI6S220C3[];
extern  VTBL_ENTRY _ZTV6S220C3[];
Class_Descriptor cd_S220C3 = {  "S220C3", // class name
  bases_S220C3, 3,
  &(vtc_S220C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S220C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S220C3),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S220C2  : S220C3 {
  unsigned int s220c2f0:1;
  unsigned int s220c2f1:1;
  unsigned int s220c2f2:1;
  unsigned int s220c2f3:1;
  unsigned int s220c2f4:1;
  unsigned int s220c2f5:1;
  void *s220c2f6[8];
  ::S80C21_nt s220c2f7;
  ::S80C21_nt s220c2f8;
  ::S80C21_nt s220c2f9;
  virtual  ~S220C2(); // _ZN6S220C2D1Ev
  virtual void  v185(); // _ZN6S220C24v185Ev
  virtual void  v186(); // _ZN6S220C24v186Ev
  virtual void  v187(); // _ZN6S220C24v187Ev
  virtual void  v188(); // _ZN6S220C24v188Ev
  virtual void  v189(); // _ZN6S220C24v189Ev
  virtual void  v190(); // _ZN6S220C24v190Ev
  virtual void  v191(); // _ZN6S220C24v191Ev
  virtual void  v192(); // _ZN6S220C24v192Ev
  virtual void  v193(); // _ZN6S220C24v193Ev
  virtual void  v194(); // _ZN6S220C24v194Ev
  virtual void  v195(); // _ZN6S220C24v195Ev
  virtual void  v196(); // _ZN6S220C24v196Ev
  virtual void  v197(); // _ZN6S220C24v197Ev
  virtual void  v198(); // _ZN6S220C24v198Ev
  virtual void  v199(); // _ZN6S220C24v199Ev
  virtual void  v200(); // _ZN6S220C24v200Ev
  virtual void  v201(); // _ZN6S220C24v201Ev
  virtual void  v202(); // _ZN6S220C24v202Ev
  virtual void  v203(); // _ZN6S220C24v203Ev
  virtual void  v204(); // _ZN6S220C24v204Ev
  virtual void  v205(); // _ZN6S220C24v205Ev
  virtual void  v206(); // _ZN6S220C24v206Ev
  virtual void  v207(); // _ZN6S220C24v207Ev
  S220C2(); // tgen
};
//SIG(-1 S220C2) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S220C2 ::~S220C2(){ note_dtor("S220C2", this);}
void  S220C2 ::v185(){vfunc_called(this, "_ZN6S220C24v185Ev");}
void  S220C2 ::v186(){vfunc_called(this, "_ZN6S220C24v186Ev");}
void  S220C2 ::v187(){vfunc_called(this, "_ZN6S220C24v187Ev");}
void  S220C2 ::v188(){vfunc_called(this, "_ZN6S220C24v188Ev");}
void  S220C2 ::v189(){vfunc_called(this, "_ZN6S220C24v189Ev");}
void  S220C2 ::v190(){vfunc_called(this, "_ZN6S220C24v190Ev");}
void  S220C2 ::v191(){vfunc_called(this, "_ZN6S220C24v191Ev");}
void  S220C2 ::v192(){vfunc_called(this, "_ZN6S220C24v192Ev");}
void  S220C2 ::v193(){vfunc_called(this, "_ZN6S220C24v193Ev");}
void  S220C2 ::v194(){vfunc_called(this, "_ZN6S220C24v194Ev");}
void  S220C2 ::v195(){vfunc_called(this, "_ZN6S220C24v195Ev");}
void  S220C2 ::v196(){vfunc_called(this, "_ZN6S220C24v196Ev");}
void  S220C2 ::v197(){vfunc_called(this, "_ZN6S220C24v197Ev");}
void  S220C2 ::v198(){vfunc_called(this, "_ZN6S220C24v198Ev");}
void  S220C2 ::v199(){vfunc_called(this, "_ZN6S220C24v199Ev");}
void  S220C2 ::v200(){vfunc_called(this, "_ZN6S220C24v200Ev");}
void  S220C2 ::v201(){vfunc_called(this, "_ZN6S220C24v201Ev");}
void  S220C2 ::v202(){vfunc_called(this, "_ZN6S220C24v202Ev");}
void  S220C2 ::v203(){vfunc_called(this, "_ZN6S220C24v203Ev");}
void  S220C2 ::v204(){vfunc_called(this, "_ZN6S220C24v204Ev");}
void  S220C2 ::v205(){vfunc_called(this, "_ZN6S220C24v205Ev");}
void  S220C2 ::v206(){vfunc_called(this, "_ZN6S220C24v206Ev");}
void  S220C2 ::v207(){vfunc_called(this, "_ZN6S220C24v207Ev");}
S220C2 ::S220C2(){ note_ctor("S220C2", this);} // tgen

static void Test_S220C2()
{
  extern Class_Descriptor cd_S220C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S220C2, buf);
    S220C2 *dp, &lv = *(dp=new (buf) S220C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S220C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S220C2)");
    check_base_class_offset(lv, (S220C6*)(S220C5*)(S220C4*)(S220C3*), 0, "S220C2");
    check_base_class_offset(lv, (S220C5*)(S220C4*)(S220C3*), 0, "S220C2");
    check_base_class_offset(lv, (S220C4*)(S220C3*), 0, "S220C2");
    check_base_class_offset(lv, (S220C3*), 0, "S220C2");
    set_bf_and_test(lv, s220c2f0, ABISELECT(744,544), 0, 1, 1, "S220C2");
    set_bf_and_test(lv, s220c2f1, ABISELECT(744,544), 1, 1, 1, "S220C2");
    set_bf_and_test(lv, s220c2f2, ABISELECT(744,544), 2, 1, 1, "S220C2");
    set_bf_and_test(lv, s220c2f3, ABISELECT(744,544), 3, 1, 1, "S220C2");
    set_bf_and_test(lv, s220c2f4, ABISELECT(744,544), 4, 1, 1, "S220C2");
    set_bf_and_test(lv, s220c2f5, ABISELECT(744,544), 5, 1, 1, "S220C2");
    check_field_offset(lv, s220c2f6, ABISELECT(752,548), "S220C2.s220c2f6");
    check_field_offset(lv, s220c2f7, ABISELECT(816,580), "S220C2.s220c2f7");
    check_field_offset(lv, s220c2f8, ABISELECT(832,592), "S220C2.s220c2f8");
    check_field_offset(lv, s220c2f9, ABISELECT(848,604), "S220C2.s220c2f9");
    test_class_info(&lv, &cd_S220C2);
    dp->~S220C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS220C2(Test_S220C2, "S220C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S220C2C1Ev();
extern void _ZN6S220C2D1Ev();
Name_Map name_map_S220C2[] = {
  NSPAIR(_ZN6S220C2C1Ev),
  NSPAIR(_ZN6S220C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S220C6;
extern VTBL_ENTRY _ZTI6S220C6[];
extern  VTBL_ENTRY _ZTV6S220C6[];
extern Class_Descriptor cd_S220C5;
extern VTBL_ENTRY _ZTI6S220C5[];
extern  VTBL_ENTRY _ZTV6S220C5[];
extern Class_Descriptor cd_S220C4;
extern VTBL_ENTRY _ZTI6S220C4[];
extern  VTBL_ENTRY _ZTV6S220C4[];
extern Class_Descriptor cd_S220C3;
extern VTBL_ENTRY _ZTI6S220C3[];
extern  VTBL_ENTRY _ZTV6S220C3[];
static Base_Class bases_S220C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S220C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S220C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S220C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S220C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S220C2[];
extern void _ZN6S220C2D1Ev();
extern void _ZN6S220C2D0Ev();
extern void _ZN6S220C62v4Ev();
extern void _ZN6S220C62v5Ev();
extern void _ZN6S220C62v6Ev();
extern void _ZN6S220C62v7Ev();
extern void _ZN6S220C62v8Ev();
extern void _ZN6S220C62v9Ev();
extern void _ZN6S220C63v10Ev();
extern void _ZN6S220C63v11Ev();
extern void _ZN6S220C63v12Ev();
extern void _ZN6S220C63v13Ev();
extern void _ZN6S220C63v14Ev();
extern void _ZN6S220C63v15Ev();
extern void _ZN6S220C63v16Ev();
extern void _ZN6S220C63v17Ev();
extern void _ZN6S220C63v18Ev();
extern void _ZN6S220C63v19Ev();
extern void _ZN6S220C63v20Ev();
extern void _ZN6S220C63v21Ev();
extern void _ZN6S220C63v22Ev();
extern void _ZN6S220C63v23Ev();
extern void _ZN6S220C63v24Ev();
extern void _ZN6S220C63v25Ev();
extern void _ZN6S220C63v26Ev();
extern void _ZN6S220C63v27Ev();
extern void _ZN6S220C63v28Ev();
extern void _ZN6S220C63v29Ev();
extern void _ZN6S220C63v30Ev();
extern void _ZN6S220C63v31Ev();
extern void _ZN6S220C63v32Ev();
extern void _ZN6S220C63v33Ev();
extern void _ZN6S220C63v34Ev();
extern void _ZN6S220C63v35Ev();
extern void _ZN6S220C63v36Ev();
extern void _ZN6S220C63v37Ev();
extern void _ZN6S220C63v38Ev();
extern void _ZN6S220C63v39Ev();
extern void _ZN6S220C63v40Ev();
extern void _ZN6S220C63v41Ev();
extern void _ZN6S220C63v42Ev();
extern void _ZN6S220C63v43Ev();
extern void _ZN6S220C63v44Ev();
extern void _ZN6S220C63v45Ev();
extern void _ZN6S220C63v46Ev();
extern void _ZN6S220C63v47Ev();
extern void _ZN6S220C63v48Ev();
extern void _ZN6S220C63v49Ev();
extern void _ZN6S220C63v50Ev();
extern void _ZN6S220C63v51Ev();
extern void _ZN6S220C63v52Ev();
extern void _ZN6S220C63v53Ev();
extern void _ZN6S220C63v54Ev();
extern void _ZN6S220C63v55Ev();
extern void _ZN6S220C63v56Ev();
extern void _ZN6S220C63v57Ev();
extern void _ZN6S220C63v58Ev();
extern void _ZN6S220C63v59Ev();
extern void _ZN6S220C63v60Ev();
extern void _ZN6S220C63v61Ev();
extern void _ZN6S220C63v62Ev();
extern void _ZN6S220C63v63Ev();
extern void _ZN6S220C63v64Ev();
extern void _ZN6S220C63v65Ev();
extern void _ZN6S220C63v66Ev();
extern void _ZN6S220C63v67Ev();
extern void _ZN6S220C53v68Ev();
extern void _ZN6S220C53v69Ev();
extern void _ZN6S220C43v70Ev();
extern void _ZN6S220C43v71Ev();
extern void _ZN6S220C43v72Ev();
extern void _ZN6S220C43v73Ev();
extern void _ZN6S220C43v74Ev();
extern void _ZN6S220C43v75Ev();
extern void _ZN6S220C43v76Ev();
extern void _ZN6S220C43v77Ev();
extern void _ZN6S220C43v78Ev();
extern void _ZN6S220C43v79Ev();
extern void _ZN6S220C43v80Ev();
extern void _ZN6S220C43v81Ev();
extern void _ZN6S220C43v82Ev();
extern void _ZN6S220C43v83Ev();
extern void _ZN6S220C43v84Ev();
extern void _ZN6S220C43v85Ev();
extern void _ZN6S220C43v86Ev();
extern void _ZN6S220C43v87Ev();
extern void _ZN6S220C43v88Ev();
extern void _ZN6S220C43v89Ev();
extern void _ZN6S220C43v90Ev();
extern void _ZN6S220C43v91Ev();
extern void _ZN6S220C43v92Ev();
extern void _ZN6S220C43v93Ev();
extern void _ZN6S220C43v94Ev();
extern void _ZN6S220C43v95Ev();
extern void _ZN6S220C43v96Ev();
extern void _ZN6S220C43v97Ev();
extern void _ZN6S220C43v98Ev();
extern void _ZN6S220C43v99Ev();
extern void _ZN6S220C44v100Ev();
extern void _ZN6S220C44v101Ev();
extern void _ZN6S220C44v102Ev();
extern void _ZN6S220C44v103Ev();
extern void _ZN6S220C44v104Ev();
extern void _ZN6S220C44v105Ev();
extern void _ZN6S220C44v106Ev();
extern void _ZN6S220C44v107Ev();
extern void _ZN6S220C44v108Ev();
extern void _ZN6S220C44v109Ev();
extern void _ZN6S220C44v110Ev();
extern void _ZN6S220C44v111Ev();
extern void _ZN6S220C44v112Ev();
extern void _ZN6S220C44v113Ev();
extern void _ZN6S220C44v114Ev();
extern void _ZN6S220C44v115Ev();
extern void _ZN6S220C44v116Ev();
extern void _ZN6S220C44v117Ev();
extern void _ZN6S220C44v118Ev();
extern void _ZN6S220C44v119Ev();
extern void _ZN6S220C44v120Ev();
extern void _ZN6S220C44v121Ev();
extern void _ZN6S220C44v122Ev();
extern void _ZN6S220C44v123Ev();
extern void _ZN6S220C44v124Ev();
extern void _ZN6S220C44v125Ev();
extern void _ZN6S220C44v126Ev();
extern void _ZN6S220C44v127Ev();
extern void _ZN6S220C44v128Ev();
extern void _ZN6S220C44v129Ev();
extern void _ZN6S220C44v130Ev();
extern void _ZN6S220C44v131Ev();
extern void _ZN6S220C44v132Ev();
extern void _ZN6S220C44v133Ev();
extern void _ZN6S220C44v134Ev();
extern void _ZN6S220C44v135Ev();
extern void _ZN6S220C44v136Ev();
extern void _ZN6S220C44v137Ev();
extern void _ZN6S220C44v138Ev();
extern void _ZN6S220C44v139Ev();
extern void _ZN6S220C44v140Ev();
extern void _ZN6S220C44v141Ev();
extern void _ZN6S220C44v142Ev();
extern void _ZN6S220C44v143Ev();
extern void _ZN6S220C44v144Ev();
extern void _ZN6S220C44v145Ev();
extern void _ZN6S220C34v146Ev();
extern void _ZN6S220C34v147Ev();
extern void _ZN6S220C34v148Ev();
extern void _ZN6S220C34v149Ev();
extern void _ZN6S220C34v150Ev();
extern void _ZN6S220C34v151Ev();
extern void _ZN6S220C34v152Ev();
extern void _ZN6S220C34v153Ev();
extern void _ZN6S220C34v154Ev();
extern void _ZN6S220C34v155Ev();
extern void _ZN6S220C34v156Ev();
extern void _ZN6S220C34v157Ev();
extern void _ZN6S220C34v158Ev();
extern void _ZN6S220C34v159Ev();
extern void _ZN6S220C34v160Ev();
extern void _ZN6S220C34v161Ev();
extern void _ZN6S220C34v162Ev();
extern void _ZN6S220C34v163Ev();
extern void _ZN6S220C34v164Ev();
extern void _ZN6S220C34v165Ev();
extern void _ZN6S220C34v166Ev();
extern void _ZN6S220C34v167Ev();
extern void _ZN6S220C34v168Ev();
extern void _ZN6S220C34v169Ev();
extern void _ZN6S220C34v170Ev();
extern void _ZN6S220C34v171Ev();
extern void _ZN6S220C34v172Ev();
extern void _ZN6S220C34v173Ev();
extern void _ZN6S220C34v174Ev();
extern void _ZN6S220C34v175Ev();
extern void _ZN6S220C34v176Ev();
extern void _ZN6S220C34v177Ev();
extern void _ZN6S220C34v178Ev();
extern void _ZN6S220C34v179Ev();
extern void _ZN6S220C34v180Ev();
extern void _ZN6S220C34v181Ev();
extern void _ZN6S220C34v182Ev();
extern void _ZN6S220C34v183Ev();
extern void _ZN6S220C34v184Ev();
extern void _ZN6S220C24v185Ev();
extern void _ZN6S220C24v186Ev();
extern void _ZN6S220C24v187Ev();
extern void _ZN6S220C24v188Ev();
extern void _ZN6S220C24v189Ev();
extern void _ZN6S220C24v190Ev();
extern void _ZN6S220C24v191Ev();
extern void _ZN6S220C24v192Ev();
extern void _ZN6S220C24v193Ev();
extern void _ZN6S220C24v194Ev();
extern void _ZN6S220C24v195Ev();
extern void _ZN6S220C24v196Ev();
extern void _ZN6S220C24v197Ev();
extern void _ZN6S220C24v198Ev();
extern void _ZN6S220C24v199Ev();
extern void _ZN6S220C24v200Ev();
extern void _ZN6S220C24v201Ev();
extern void _ZN6S220C24v202Ev();
extern void _ZN6S220C24v203Ev();
extern void _ZN6S220C24v204Ev();
extern void _ZN6S220C24v205Ev();
extern void _ZN6S220C24v206Ev();
extern void _ZN6S220C24v207Ev();
static  VTBL_ENTRY vtc_S220C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S220C2[0]),
  (VTBL_ENTRY)&_ZN6S220C2D1Ev,
  (VTBL_ENTRY)&_ZN6S220C2D0Ev,
  (VTBL_ENTRY)&_ZN6S220C62v4Ev,
  (VTBL_ENTRY)&_ZN6S220C62v5Ev,
  (VTBL_ENTRY)&_ZN6S220C62v6Ev,
  (VTBL_ENTRY)&_ZN6S220C62v7Ev,
  (VTBL_ENTRY)&_ZN6S220C62v8Ev,
  (VTBL_ENTRY)&_ZN6S220C62v9Ev,
  (VTBL_ENTRY)&_ZN6S220C63v10Ev,
  (VTBL_ENTRY)&_ZN6S220C63v11Ev,
  (VTBL_ENTRY)&_ZN6S220C63v12Ev,
  (VTBL_ENTRY)&_ZN6S220C63v13Ev,
  (VTBL_ENTRY)&_ZN6S220C63v14Ev,
  (VTBL_ENTRY)&_ZN6S220C63v15Ev,
  (VTBL_ENTRY)&_ZN6S220C63v16Ev,
  (VTBL_ENTRY)&_ZN6S220C63v17Ev,
  (VTBL_ENTRY)&_ZN6S220C63v18Ev,
  (VTBL_ENTRY)&_ZN6S220C63v19Ev,
  (VTBL_ENTRY)&_ZN6S220C63v20Ev,
  (VTBL_ENTRY)&_ZN6S220C63v21Ev,
  (VTBL_ENTRY)&_ZN6S220C63v22Ev,
  (VTBL_ENTRY)&_ZN6S220C63v23Ev,
  (VTBL_ENTRY)&_ZN6S220C63v24Ev,
  (VTBL_ENTRY)&_ZN6S220C63v25Ev,
  (VTBL_ENTRY)&_ZN6S220C63v26Ev,
  (VTBL_ENTRY)&_ZN6S220C63v27Ev,
  (VTBL_ENTRY)&_ZN6S220C63v28Ev,
  (VTBL_ENTRY)&_ZN6S220C63v29Ev,
  (VTBL_ENTRY)&_ZN6S220C63v30Ev,
  (VTBL_ENTRY)&_ZN6S220C63v31Ev,
  (VTBL_ENTRY)&_ZN6S220C63v32Ev,
  (VTBL_ENTRY)&_ZN6S220C63v33Ev,
  (VTBL_ENTRY)&_ZN6S220C63v34Ev,
  (VTBL_ENTRY)&_ZN6S220C63v35Ev,
  (VTBL_ENTRY)&_ZN6S220C63v36Ev,
  (VTBL_ENTRY)&_ZN6S220C63v37Ev,
  (VTBL_ENTRY)&_ZN6S220C63v38Ev,
  (VTBL_ENTRY)&_ZN6S220C63v39Ev,
  (VTBL_ENTRY)&_ZN6S220C63v40Ev,
  (VTBL_ENTRY)&_ZN6S220C63v41Ev,
  (VTBL_ENTRY)&_ZN6S220C63v42Ev,
  (VTBL_ENTRY)&_ZN6S220C63v43Ev,
  (VTBL_ENTRY)&_ZN6S220C63v44Ev,
  (VTBL_ENTRY)&_ZN6S220C63v45Ev,
  (VTBL_ENTRY)&_ZN6S220C63v46Ev,
  (VTBL_ENTRY)&_ZN6S220C63v47Ev,
  (VTBL_ENTRY)&_ZN6S220C63v48Ev,
  (VTBL_ENTRY)&_ZN6S220C63v49Ev,
  (VTBL_ENTRY)&_ZN6S220C63v50Ev,
  (VTBL_ENTRY)&_ZN6S220C63v51Ev,
  (VTBL_ENTRY)&_ZN6S220C63v52Ev,
  (VTBL_ENTRY)&_ZN6S220C63v53Ev,
  (VTBL_ENTRY)&_ZN6S220C63v54Ev,
  (VTBL_ENTRY)&_ZN6S220C63v55Ev,
  (VTBL_ENTRY)&_ZN6S220C63v56Ev,
  (VTBL_ENTRY)&_ZN6S220C63v57Ev,
  (VTBL_ENTRY)&_ZN6S220C63v58Ev,
  (VTBL_ENTRY)&_ZN6S220C63v59Ev,
  (VTBL_ENTRY)&_ZN6S220C63v60Ev,
  (VTBL_ENTRY)&_ZN6S220C63v61Ev,
  (VTBL_ENTRY)&_ZN6S220C63v62Ev,
  (VTBL_ENTRY)&_ZN6S220C63v63Ev,
  (VTBL_ENTRY)&_ZN6S220C63v64Ev,
  (VTBL_ENTRY)&_ZN6S220C63v65Ev,
  (VTBL_ENTRY)&_ZN6S220C63v66Ev,
  (VTBL_ENTRY)&_ZN6S220C63v67Ev,
  (VTBL_ENTRY)&_ZN6S220C53v68Ev,
  (VTBL_ENTRY)&_ZN6S220C53v69Ev,
  (VTBL_ENTRY)&_ZN6S220C43v70Ev,
  (VTBL_ENTRY)&_ZN6S220C43v71Ev,
  (VTBL_ENTRY)&_ZN6S220C43v72Ev,
  (VTBL_ENTRY)&_ZN6S220C43v73Ev,
  (VTBL_ENTRY)&_ZN6S220C43v74Ev,
  (VTBL_ENTRY)&_ZN6S220C43v75Ev,
  (VTBL_ENTRY)&_ZN6S220C43v76Ev,
  (VTBL_ENTRY)&_ZN6S220C43v77Ev,
  (VTBL_ENTRY)&_ZN6S220C43v78Ev,
  (VTBL_ENTRY)&_ZN6S220C43v79Ev,
  (VTBL_ENTRY)&_ZN6S220C43v80Ev,
  (VTBL_ENTRY)&_ZN6S220C43v81Ev,
  (VTBL_ENTRY)&_ZN6S220C43v82Ev,
  (VTBL_ENTRY)&_ZN6S220C43v83Ev,
  (VTBL_ENTRY)&_ZN6S220C43v84Ev,
  (VTBL_ENTRY)&_ZN6S220C43v85Ev,
  (VTBL_ENTRY)&_ZN6S220C43v86Ev,
  (VTBL_ENTRY)&_ZN6S220C43v87Ev,
  (VTBL_ENTRY)&_ZN6S220C43v88Ev,
  (VTBL_ENTRY)&_ZN6S220C43v89Ev,
  (VTBL_ENTRY)&_ZN6S220C43v90Ev,
  (VTBL_ENTRY)&_ZN6S220C43v91Ev,
  (VTBL_ENTRY)&_ZN6S220C43v92Ev,
  (VTBL_ENTRY)&_ZN6S220C43v93Ev,
  (VTBL_ENTRY)&_ZN6S220C43v94Ev,
  (VTBL_ENTRY)&_ZN6S220C43v95Ev,
  (VTBL_ENTRY)&_ZN6S220C43v96Ev,
  (VTBL_ENTRY)&_ZN6S220C43v97Ev,
  (VTBL_ENTRY)&_ZN6S220C43v98Ev,
  (VTBL_ENTRY)&_ZN6S220C43v99Ev,
  (VTBL_ENTRY)&_ZN6S220C44v100Ev,
  (VTBL_ENTRY)&_ZN6S220C44v101Ev,
  (VTBL_ENTRY)&_ZN6S220C44v102Ev,
  (VTBL_ENTRY)&_ZN6S220C44v103Ev,
  (VTBL_ENTRY)&_ZN6S220C44v104Ev,
  (VTBL_ENTRY)&_ZN6S220C44v105Ev,
  (VTBL_ENTRY)&_ZN6S220C44v106Ev,
  (VTBL_ENTRY)&_ZN6S220C44v107Ev,
  (VTBL_ENTRY)&_ZN6S220C44v108Ev,
  (VTBL_ENTRY)&_ZN6S220C44v109Ev,
  (VTBL_ENTRY)&_ZN6S220C44v110Ev,
  (VTBL_ENTRY)&_ZN6S220C44v111Ev,
  (VTBL_ENTRY)&_ZN6S220C44v112Ev,
  (VTBL_ENTRY)&_ZN6S220C44v113Ev,
  (VTBL_ENTRY)&_ZN6S220C44v114Ev,
  (VTBL_ENTRY)&_ZN6S220C44v115Ev,
  (VTBL_ENTRY)&_ZN6S220C44v116Ev,
  (VTBL_ENTRY)&_ZN6S220C44v117Ev,
  (VTBL_ENTRY)&_ZN6S220C44v118Ev,
  (VTBL_ENTRY)&_ZN6S220C44v119Ev,
  (VTBL_ENTRY)&_ZN6S220C44v120Ev,
  (VTBL_ENTRY)&_ZN6S220C44v121Ev,
  (VTBL_ENTRY)&_ZN6S220C44v122Ev,
  (VTBL_ENTRY)&_ZN6S220C44v123Ev,
  (VTBL_ENTRY)&_ZN6S220C44v124Ev,
  (VTBL_ENTRY)&_ZN6S220C44v125Ev,
  (VTBL_ENTRY)&_ZN6S220C44v126Ev,
  (VTBL_ENTRY)&_ZN6S220C44v127Ev,
  (VTBL_ENTRY)&_ZN6S220C44v128Ev,
  (VTBL_ENTRY)&_ZN6S220C44v129Ev,
  (VTBL_ENTRY)&_ZN6S220C44v130Ev,
  (VTBL_ENTRY)&_ZN6S220C44v131Ev,
  (VTBL_ENTRY)&_ZN6S220C44v132Ev,
  (VTBL_ENTRY)&_ZN6S220C44v133Ev,
  (VTBL_ENTRY)&_ZN6S220C44v134Ev,
  (VTBL_ENTRY)&_ZN6S220C44v135Ev,
  (VTBL_ENTRY)&_ZN6S220C44v136Ev,
  (VTBL_ENTRY)&_ZN6S220C44v137Ev,
  (VTBL_ENTRY)&_ZN6S220C44v138Ev,
  (VTBL_ENTRY)&_ZN6S220C44v139Ev,
  (VTBL_ENTRY)&_ZN6S220C44v140Ev,
  (VTBL_ENTRY)&_ZN6S220C44v141Ev,
  (VTBL_ENTRY)&_ZN6S220C44v142Ev,
  (VTBL_ENTRY)&_ZN6S220C44v143Ev,
  (VTBL_ENTRY)&_ZN6S220C44v144Ev,
  (VTBL_ENTRY)&_ZN6S220C44v145Ev,
  (VTBL_ENTRY)&_ZN6S220C34v146Ev,
  (VTBL_ENTRY)&_ZN6S220C34v147Ev,
  (VTBL_ENTRY)&_ZN6S220C34v148Ev,
  (VTBL_ENTRY)&_ZN6S220C34v149Ev,
  (VTBL_ENTRY)&_ZN6S220C34v150Ev,
  (VTBL_ENTRY)&_ZN6S220C34v151Ev,
  (VTBL_ENTRY)&_ZN6S220C34v152Ev,
  (VTBL_ENTRY)&_ZN6S220C34v153Ev,
  (VTBL_ENTRY)&_ZN6S220C34v154Ev,
  (VTBL_ENTRY)&_ZN6S220C34v155Ev,
  (VTBL_ENTRY)&_ZN6S220C34v156Ev,
  (VTBL_ENTRY)&_ZN6S220C34v157Ev,
  (VTBL_ENTRY)&_ZN6S220C34v158Ev,
  (VTBL_ENTRY)&_ZN6S220C34v159Ev,
  (VTBL_ENTRY)&_ZN6S220C34v160Ev,
  (VTBL_ENTRY)&_ZN6S220C34v161Ev,
  (VTBL_ENTRY)&_ZN6S220C34v162Ev,
  (VTBL_ENTRY)&_ZN6S220C34v163Ev,
  (VTBL_ENTRY)&_ZN6S220C34v164Ev,
  (VTBL_ENTRY)&_ZN6S220C34v165Ev,
  (VTBL_ENTRY)&_ZN6S220C34v166Ev,
  (VTBL_ENTRY)&_ZN6S220C34v167Ev,
  (VTBL_ENTRY)&_ZN6S220C34v168Ev,
  (VTBL_ENTRY)&_ZN6S220C34v169Ev,
  (VTBL_ENTRY)&_ZN6S220C34v170Ev,
  (VTBL_ENTRY)&_ZN6S220C34v171Ev,
  (VTBL_ENTRY)&_ZN6S220C34v172Ev,
  (VTBL_ENTRY)&_ZN6S220C34v173Ev,
  (VTBL_ENTRY)&_ZN6S220C34v174Ev,
  (VTBL_ENTRY)&_ZN6S220C34v175Ev,
  (VTBL_ENTRY)&_ZN6S220C34v176Ev,
  (VTBL_ENTRY)&_ZN6S220C34v177Ev,
  (VTBL_ENTRY)&_ZN6S220C34v178Ev,
  (VTBL_ENTRY)&_ZN6S220C34v179Ev,
  (VTBL_ENTRY)&_ZN6S220C34v180Ev,
  (VTBL_ENTRY)&_ZN6S220C34v181Ev,
  (VTBL_ENTRY)&_ZN6S220C34v182Ev,
  (VTBL_ENTRY)&_ZN6S220C34v183Ev,
  (VTBL_ENTRY)&_ZN6S220C34v184Ev,
  (VTBL_ENTRY)&_ZN6S220C24v185Ev,
  (VTBL_ENTRY)&_ZN6S220C24v186Ev,
  (VTBL_ENTRY)&_ZN6S220C24v187Ev,
  (VTBL_ENTRY)&_ZN6S220C24v188Ev,
  (VTBL_ENTRY)&_ZN6S220C24v189Ev,
  (VTBL_ENTRY)&_ZN6S220C24v190Ev,
  (VTBL_ENTRY)&_ZN6S220C24v191Ev,
  (VTBL_ENTRY)&_ZN6S220C24v192Ev,
  (VTBL_ENTRY)&_ZN6S220C24v193Ev,
  (VTBL_ENTRY)&_ZN6S220C24v194Ev,
  (VTBL_ENTRY)&_ZN6S220C24v195Ev,
  (VTBL_ENTRY)&_ZN6S220C24v196Ev,
  (VTBL_ENTRY)&_ZN6S220C24v197Ev,
  (VTBL_ENTRY)&_ZN6S220C24v198Ev,
  (VTBL_ENTRY)&_ZN6S220C24v199Ev,
  (VTBL_ENTRY)&_ZN6S220C24v200Ev,
  (VTBL_ENTRY)&_ZN6S220C24v201Ev,
  (VTBL_ENTRY)&_ZN6S220C24v202Ev,
  (VTBL_ENTRY)&_ZN6S220C24v203Ev,
  (VTBL_ENTRY)&_ZN6S220C24v204Ev,
  (VTBL_ENTRY)&_ZN6S220C24v205Ev,
  (VTBL_ENTRY)&_ZN6S220C24v206Ev,
  (VTBL_ENTRY)&_ZN6S220C24v207Ev,
};
extern VTBL_ENTRY _ZTI6S220C2[];
extern  VTBL_ENTRY _ZTV6S220C2[];
Class_Descriptor cd_S220C2 = {  "S220C2", // class name
  bases_S220C2, 4,
  &(vtc_S220C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S220C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S220C2),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S220C1  : S220C2 {
  void *s220c1f0;
  int s220c1f1;
  unsigned int s220c1f2:1;
  int s220c1f3;
  virtual  ~S220C1(); // _ZN6S220C1D1Ev
  virtual void  v1(); // _ZN6S220C12v1Ev
  virtual void  v2(); // _ZN6S220C12v2Ev
  virtual void  v3(); // _ZN6S220C12v3Ev
  S220C1(); // tgen
};
//SIG(1 S220C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 Fp Fi Fi:1 Fi}


 S220C1 ::~S220C1(){ note_dtor("S220C1", this);}
void  S220C1 ::v1(){vfunc_called(this, "_ZN6S220C12v1Ev");}
void  S220C1 ::v2(){vfunc_called(this, "_ZN6S220C12v2Ev");}
void  S220C1 ::v3(){vfunc_called(this, "_ZN6S220C12v3Ev");}
S220C1 ::S220C1(){ note_ctor("S220C1", this);} // tgen

static void Test_S220C1()
{
  extern Class_Descriptor cd_S220C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(112,159)];
    init_test(&cd_S220C1, buf);
    S220C1 *dp, &lv = *(dp=new (buf) S220C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(888,632), "sizeof(S220C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S220C1)");
    check_base_class_offset(lv, (S220C6*)(S220C5*)(S220C4*)(S220C3*)(S220C2*), 0, "S220C1");
    check_base_class_offset(lv, (S220C5*)(S220C4*)(S220C3*)(S220C2*), 0, "S220C1");
    check_base_class_offset(lv, (S220C4*)(S220C3*)(S220C2*), 0, "S220C1");
    check_base_class_offset(lv, (S220C3*)(S220C2*), 0, "S220C1");
    check_base_class_offset(lv, (S220C2*), 0, "S220C1");
    check_field_offset(lv, s220c1f0, ABISELECT(864,616), "S220C1.s220c1f0");
    check_field_offset(lv, s220c1f1, ABISELECT(872,620), "S220C1.s220c1f1");
    set_bf_and_test(lv, s220c1f2, ABISELECT(876,624), 0, 1, 1, "S220C1");
    check_field_offset(lv, s220c1f3, ABISELECT(880,628), "S220C1.s220c1f3");
    test_class_info(&lv, &cd_S220C1);
    dp->~S220C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS220C1(Test_S220C1, "S220C1", ABISELECT(888,632));

#else // __cplusplus

extern void _ZN6S220C1C1Ev();
extern void _ZN6S220C1D1Ev();
Name_Map name_map_S220C1[] = {
  NSPAIR(_ZN6S220C1C1Ev),
  NSPAIR(_ZN6S220C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S220C6;
extern VTBL_ENTRY _ZTI6S220C6[];
extern  VTBL_ENTRY _ZTV6S220C6[];
extern Class_Descriptor cd_S220C5;
extern VTBL_ENTRY _ZTI6S220C5[];
extern  VTBL_ENTRY _ZTV6S220C5[];
extern Class_Descriptor cd_S220C4;
extern VTBL_ENTRY _ZTI6S220C4[];
extern  VTBL_ENTRY _ZTV6S220C4[];
extern Class_Descriptor cd_S220C3;
extern VTBL_ENTRY _ZTI6S220C3[];
extern  VTBL_ENTRY _ZTV6S220C3[];
extern Class_Descriptor cd_S220C2;
extern VTBL_ENTRY _ZTI6S220C2[];
extern  VTBL_ENTRY _ZTV6S220C2[];
static Base_Class bases_S220C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S220C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S220C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S220C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S220C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S220C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S220C1[];
extern void _ZN6S220C1D1Ev();
extern void _ZN6S220C1D0Ev();
extern void _ZN6S220C62v4Ev();
extern void _ZN6S220C62v5Ev();
extern void _ZN6S220C62v6Ev();
extern void _ZN6S220C62v7Ev();
extern void _ZN6S220C62v8Ev();
extern void _ZN6S220C62v9Ev();
extern void _ZN6S220C63v10Ev();
extern void _ZN6S220C63v11Ev();
extern void _ZN6S220C63v12Ev();
extern void _ZN6S220C63v13Ev();
extern void _ZN6S220C63v14Ev();
extern void _ZN6S220C63v15Ev();
extern void _ZN6S220C63v16Ev();
extern void _ZN6S220C63v17Ev();
extern void _ZN6S220C63v18Ev();
extern void _ZN6S220C63v19Ev();
extern void _ZN6S220C63v20Ev();
extern void _ZN6S220C63v21Ev();
extern void _ZN6S220C63v22Ev();
extern void _ZN6S220C63v23Ev();
extern void _ZN6S220C63v24Ev();
extern void _ZN6S220C63v25Ev();
extern void _ZN6S220C63v26Ev();
extern void _ZN6S220C63v27Ev();
extern void _ZN6S220C63v28Ev();
extern void _ZN6S220C63v29Ev();
extern void _ZN6S220C63v30Ev();
extern void _ZN6S220C63v31Ev();
extern void _ZN6S220C63v32Ev();
extern void _ZN6S220C63v33Ev();
extern void _ZN6S220C63v34Ev();
extern void _ZN6S220C63v35Ev();
extern void _ZN6S220C63v36Ev();
extern void _ZN6S220C63v37Ev();
extern void _ZN6S220C63v38Ev();
extern void _ZN6S220C63v39Ev();
extern void _ZN6S220C63v40Ev();
extern void _ZN6S220C63v41Ev();
extern void _ZN6S220C63v42Ev();
extern void _ZN6S220C63v43Ev();
extern void _ZN6S220C63v44Ev();
extern void _ZN6S220C63v45Ev();
extern void _ZN6S220C63v46Ev();
extern void _ZN6S220C63v47Ev();
extern void _ZN6S220C63v48Ev();
extern void _ZN6S220C63v49Ev();
extern void _ZN6S220C63v50Ev();
extern void _ZN6S220C63v51Ev();
extern void _ZN6S220C63v52Ev();
extern void _ZN6S220C63v53Ev();
extern void _ZN6S220C63v54Ev();
extern void _ZN6S220C63v55Ev();
extern void _ZN6S220C63v56Ev();
extern void _ZN6S220C63v57Ev();
extern void _ZN6S220C63v58Ev();
extern void _ZN6S220C63v59Ev();
extern void _ZN6S220C63v60Ev();
extern void _ZN6S220C63v61Ev();
extern void _ZN6S220C63v62Ev();
extern void _ZN6S220C63v63Ev();
extern void _ZN6S220C63v64Ev();
extern void _ZN6S220C63v65Ev();
extern void _ZN6S220C63v66Ev();
extern void _ZN6S220C63v67Ev();
extern void _ZN6S220C53v68Ev();
extern void _ZN6S220C53v69Ev();
extern void _ZN6S220C43v70Ev();
extern void _ZN6S220C43v71Ev();
extern void _ZN6S220C43v72Ev();
extern void _ZN6S220C43v73Ev();
extern void _ZN6S220C43v74Ev();
extern void _ZN6S220C43v75Ev();
extern void _ZN6S220C43v76Ev();
extern void _ZN6S220C43v77Ev();
extern void _ZN6S220C43v78Ev();
extern void _ZN6S220C43v79Ev();
extern void _ZN6S220C43v80Ev();
extern void _ZN6S220C43v81Ev();
extern void _ZN6S220C43v82Ev();
extern void _ZN6S220C43v83Ev();
extern void _ZN6S220C43v84Ev();
extern void _ZN6S220C43v85Ev();
extern void _ZN6S220C43v86Ev();
extern void _ZN6S220C43v87Ev();
extern void _ZN6S220C43v88Ev();
extern void _ZN6S220C43v89Ev();
extern void _ZN6S220C43v90Ev();
extern void _ZN6S220C43v91Ev();
extern void _ZN6S220C43v92Ev();
extern void _ZN6S220C43v93Ev();
extern void _ZN6S220C43v94Ev();
extern void _ZN6S220C43v95Ev();
extern void _ZN6S220C43v96Ev();
extern void _ZN6S220C43v97Ev();
extern void _ZN6S220C43v98Ev();
extern void _ZN6S220C43v99Ev();
extern void _ZN6S220C44v100Ev();
extern void _ZN6S220C44v101Ev();
extern void _ZN6S220C44v102Ev();
extern void _ZN6S220C44v103Ev();
extern void _ZN6S220C44v104Ev();
extern void _ZN6S220C44v105Ev();
extern void _ZN6S220C44v106Ev();
extern void _ZN6S220C44v107Ev();
extern void _ZN6S220C44v108Ev();
extern void _ZN6S220C44v109Ev();
extern void _ZN6S220C44v110Ev();
extern void _ZN6S220C44v111Ev();
extern void _ZN6S220C44v112Ev();
extern void _ZN6S220C44v113Ev();
extern void _ZN6S220C44v114Ev();
extern void _ZN6S220C44v115Ev();
extern void _ZN6S220C44v116Ev();
extern void _ZN6S220C44v117Ev();
extern void _ZN6S220C44v118Ev();
extern void _ZN6S220C44v119Ev();
extern void _ZN6S220C44v120Ev();
extern void _ZN6S220C44v121Ev();
extern void _ZN6S220C44v122Ev();
extern void _ZN6S220C44v123Ev();
extern void _ZN6S220C44v124Ev();
extern void _ZN6S220C44v125Ev();
extern void _ZN6S220C44v126Ev();
extern void _ZN6S220C44v127Ev();
extern void _ZN6S220C44v128Ev();
extern void _ZN6S220C44v129Ev();
extern void _ZN6S220C44v130Ev();
extern void _ZN6S220C44v131Ev();
extern void _ZN6S220C44v132Ev();
extern void _ZN6S220C44v133Ev();
extern void _ZN6S220C44v134Ev();
extern void _ZN6S220C44v135Ev();
extern void _ZN6S220C44v136Ev();
extern void _ZN6S220C44v137Ev();
extern void _ZN6S220C44v138Ev();
extern void _ZN6S220C44v139Ev();
extern void _ZN6S220C44v140Ev();
extern void _ZN6S220C44v141Ev();
extern void _ZN6S220C44v142Ev();
extern void _ZN6S220C44v143Ev();
extern void _ZN6S220C44v144Ev();
extern void _ZN6S220C44v145Ev();
extern void _ZN6S220C34v146Ev();
extern void _ZN6S220C34v147Ev();
extern void _ZN6S220C34v148Ev();
extern void _ZN6S220C34v149Ev();
extern void _ZN6S220C34v150Ev();
extern void _ZN6S220C34v151Ev();
extern void _ZN6S220C34v152Ev();
extern void _ZN6S220C34v153Ev();
extern void _ZN6S220C34v154Ev();
extern void _ZN6S220C34v155Ev();
extern void _ZN6S220C34v156Ev();
extern void _ZN6S220C34v157Ev();
extern void _ZN6S220C34v158Ev();
extern void _ZN6S220C34v159Ev();
extern void _ZN6S220C34v160Ev();
extern void _ZN6S220C34v161Ev();
extern void _ZN6S220C34v162Ev();
extern void _ZN6S220C34v163Ev();
extern void _ZN6S220C34v164Ev();
extern void _ZN6S220C34v165Ev();
extern void _ZN6S220C34v166Ev();
extern void _ZN6S220C34v167Ev();
extern void _ZN6S220C34v168Ev();
extern void _ZN6S220C34v169Ev();
extern void _ZN6S220C34v170Ev();
extern void _ZN6S220C34v171Ev();
extern void _ZN6S220C34v172Ev();
extern void _ZN6S220C34v173Ev();
extern void _ZN6S220C34v174Ev();
extern void _ZN6S220C34v175Ev();
extern void _ZN6S220C34v176Ev();
extern void _ZN6S220C34v177Ev();
extern void _ZN6S220C34v178Ev();
extern void _ZN6S220C34v179Ev();
extern void _ZN6S220C34v180Ev();
extern void _ZN6S220C34v181Ev();
extern void _ZN6S220C34v182Ev();
extern void _ZN6S220C34v183Ev();
extern void _ZN6S220C34v184Ev();
extern void _ZN6S220C24v185Ev();
extern void _ZN6S220C24v186Ev();
extern void _ZN6S220C24v187Ev();
extern void _ZN6S220C24v188Ev();
extern void _ZN6S220C24v189Ev();
extern void _ZN6S220C24v190Ev();
extern void _ZN6S220C24v191Ev();
extern void _ZN6S220C24v192Ev();
extern void _ZN6S220C24v193Ev();
extern void _ZN6S220C24v194Ev();
extern void _ZN6S220C24v195Ev();
extern void _ZN6S220C24v196Ev();
extern void _ZN6S220C24v197Ev();
extern void _ZN6S220C24v198Ev();
extern void _ZN6S220C24v199Ev();
extern void _ZN6S220C24v200Ev();
extern void _ZN6S220C24v201Ev();
extern void _ZN6S220C24v202Ev();
extern void _ZN6S220C24v203Ev();
extern void _ZN6S220C24v204Ev();
extern void _ZN6S220C24v205Ev();
extern void _ZN6S220C24v206Ev();
extern void _ZN6S220C24v207Ev();
extern void _ZN6S220C12v1Ev();
extern void _ZN6S220C12v2Ev();
extern void _ZN6S220C12v3Ev();
static  VTBL_ENTRY vtc_S220C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S220C1[0]),
  (VTBL_ENTRY)&_ZN6S220C1D1Ev,
  (VTBL_ENTRY)&_ZN6S220C1D0Ev,
  (VTBL_ENTRY)&_ZN6S220C62v4Ev,
  (VTBL_ENTRY)&_ZN6S220C62v5Ev,
  (VTBL_ENTRY)&_ZN6S220C62v6Ev,
  (VTBL_ENTRY)&_ZN6S220C62v7Ev,
  (VTBL_ENTRY)&_ZN6S220C62v8Ev,
  (VTBL_ENTRY)&_ZN6S220C62v9Ev,
  (VTBL_ENTRY)&_ZN6S220C63v10Ev,
  (VTBL_ENTRY)&_ZN6S220C63v11Ev,
  (VTBL_ENTRY)&_ZN6S220C63v12Ev,
  (VTBL_ENTRY)&_ZN6S220C63v13Ev,
  (VTBL_ENTRY)&_ZN6S220C63v14Ev,
  (VTBL_ENTRY)&_ZN6S220C63v15Ev,
  (VTBL_ENTRY)&_ZN6S220C63v16Ev,
  (VTBL_ENTRY)&_ZN6S220C63v17Ev,
  (VTBL_ENTRY)&_ZN6S220C63v18Ev,
  (VTBL_ENTRY)&_ZN6S220C63v19Ev,
  (VTBL_ENTRY)&_ZN6S220C63v20Ev,
  (VTBL_ENTRY)&_ZN6S220C63v21Ev,
  (VTBL_ENTRY)&_ZN6S220C63v22Ev,
  (VTBL_ENTRY)&_ZN6S220C63v23Ev,
  (VTBL_ENTRY)&_ZN6S220C63v24Ev,
  (VTBL_ENTRY)&_ZN6S220C63v25Ev,
  (VTBL_ENTRY)&_ZN6S220C63v26Ev,
  (VTBL_ENTRY)&_ZN6S220C63v27Ev,
  (VTBL_ENTRY)&_ZN6S220C63v28Ev,
  (VTBL_ENTRY)&_ZN6S220C63v29Ev,
  (VTBL_ENTRY)&_ZN6S220C63v30Ev,
  (VTBL_ENTRY)&_ZN6S220C63v31Ev,
  (VTBL_ENTRY)&_ZN6S220C63v32Ev,
  (VTBL_ENTRY)&_ZN6S220C63v33Ev,
  (VTBL_ENTRY)&_ZN6S220C63v34Ev,
  (VTBL_ENTRY)&_ZN6S220C63v35Ev,
  (VTBL_ENTRY)&_ZN6S220C63v36Ev,
  (VTBL_ENTRY)&_ZN6S220C63v37Ev,
  (VTBL_ENTRY)&_ZN6S220C63v38Ev,
  (VTBL_ENTRY)&_ZN6S220C63v39Ev,
  (VTBL_ENTRY)&_ZN6S220C63v40Ev,
  (VTBL_ENTRY)&_ZN6S220C63v41Ev,
  (VTBL_ENTRY)&_ZN6S220C63v42Ev,
  (VTBL_ENTRY)&_ZN6S220C63v43Ev,
  (VTBL_ENTRY)&_ZN6S220C63v44Ev,
  (VTBL_ENTRY)&_ZN6S220C63v45Ev,
  (VTBL_ENTRY)&_ZN6S220C63v46Ev,
  (VTBL_ENTRY)&_ZN6S220C63v47Ev,
  (VTBL_ENTRY)&_ZN6S220C63v48Ev,
  (VTBL_ENTRY)&_ZN6S220C63v49Ev,
  (VTBL_ENTRY)&_ZN6S220C63v50Ev,
  (VTBL_ENTRY)&_ZN6S220C63v51Ev,
  (VTBL_ENTRY)&_ZN6S220C63v52Ev,
  (VTBL_ENTRY)&_ZN6S220C63v53Ev,
  (VTBL_ENTRY)&_ZN6S220C63v54Ev,
  (VTBL_ENTRY)&_ZN6S220C63v55Ev,
  (VTBL_ENTRY)&_ZN6S220C63v56Ev,
  (VTBL_ENTRY)&_ZN6S220C63v57Ev,
  (VTBL_ENTRY)&_ZN6S220C63v58Ev,
  (VTBL_ENTRY)&_ZN6S220C63v59Ev,
  (VTBL_ENTRY)&_ZN6S220C63v60Ev,
  (VTBL_ENTRY)&_ZN6S220C63v61Ev,
  (VTBL_ENTRY)&_ZN6S220C63v62Ev,
  (VTBL_ENTRY)&_ZN6S220C63v63Ev,
  (VTBL_ENTRY)&_ZN6S220C63v64Ev,
  (VTBL_ENTRY)&_ZN6S220C63v65Ev,
  (VTBL_ENTRY)&_ZN6S220C63v66Ev,
  (VTBL_ENTRY)&_ZN6S220C63v67Ev,
  (VTBL_ENTRY)&_ZN6S220C53v68Ev,
  (VTBL_ENTRY)&_ZN6S220C53v69Ev,
  (VTBL_ENTRY)&_ZN6S220C43v70Ev,
  (VTBL_ENTRY)&_ZN6S220C43v71Ev,
  (VTBL_ENTRY)&_ZN6S220C43v72Ev,
  (VTBL_ENTRY)&_ZN6S220C43v73Ev,
  (VTBL_ENTRY)&_ZN6S220C43v74Ev,
  (VTBL_ENTRY)&_ZN6S220C43v75Ev,
  (VTBL_ENTRY)&_ZN6S220C43v76Ev,
  (VTBL_ENTRY)&_ZN6S220C43v77Ev,
  (VTBL_ENTRY)&_ZN6S220C43v78Ev,
  (VTBL_ENTRY)&_ZN6S220C43v79Ev,
  (VTBL_ENTRY)&_ZN6S220C43v80Ev,
  (VTBL_ENTRY)&_ZN6S220C43v81Ev,
  (VTBL_ENTRY)&_ZN6S220C43v82Ev,
  (VTBL_ENTRY)&_ZN6S220C43v83Ev,
  (VTBL_ENTRY)&_ZN6S220C43v84Ev,
  (VTBL_ENTRY)&_ZN6S220C43v85Ev,
  (VTBL_ENTRY)&_ZN6S220C43v86Ev,
  (VTBL_ENTRY)&_ZN6S220C43v87Ev,
  (VTBL_ENTRY)&_ZN6S220C43v88Ev,
  (VTBL_ENTRY)&_ZN6S220C43v89Ev,
  (VTBL_ENTRY)&_ZN6S220C43v90Ev,
  (VTBL_ENTRY)&_ZN6S220C43v91Ev,
  (VTBL_ENTRY)&_ZN6S220C43v92Ev,
  (VTBL_ENTRY)&_ZN6S220C43v93Ev,
  (VTBL_ENTRY)&_ZN6S220C43v94Ev,
  (VTBL_ENTRY)&_ZN6S220C43v95Ev,
  (VTBL_ENTRY)&_ZN6S220C43v96Ev,
  (VTBL_ENTRY)&_ZN6S220C43v97Ev,
  (VTBL_ENTRY)&_ZN6S220C43v98Ev,
  (VTBL_ENTRY)&_ZN6S220C43v99Ev,
  (VTBL_ENTRY)&_ZN6S220C44v100Ev,
  (VTBL_ENTRY)&_ZN6S220C44v101Ev,
  (VTBL_ENTRY)&_ZN6S220C44v102Ev,
  (VTBL_ENTRY)&_ZN6S220C44v103Ev,
  (VTBL_ENTRY)&_ZN6S220C44v104Ev,
  (VTBL_ENTRY)&_ZN6S220C44v105Ev,
  (VTBL_ENTRY)&_ZN6S220C44v106Ev,
  (VTBL_ENTRY)&_ZN6S220C44v107Ev,
  (VTBL_ENTRY)&_ZN6S220C44v108Ev,
  (VTBL_ENTRY)&_ZN6S220C44v109Ev,
  (VTBL_ENTRY)&_ZN6S220C44v110Ev,
  (VTBL_ENTRY)&_ZN6S220C44v111Ev,
  (VTBL_ENTRY)&_ZN6S220C44v112Ev,
  (VTBL_ENTRY)&_ZN6S220C44v113Ev,
  (VTBL_ENTRY)&_ZN6S220C44v114Ev,
  (VTBL_ENTRY)&_ZN6S220C44v115Ev,
  (VTBL_ENTRY)&_ZN6S220C44v116Ev,
  (VTBL_ENTRY)&_ZN6S220C44v117Ev,
  (VTBL_ENTRY)&_ZN6S220C44v118Ev,
  (VTBL_ENTRY)&_ZN6S220C44v119Ev,
  (VTBL_ENTRY)&_ZN6S220C44v120Ev,
  (VTBL_ENTRY)&_ZN6S220C44v121Ev,
  (VTBL_ENTRY)&_ZN6S220C44v122Ev,
  (VTBL_ENTRY)&_ZN6S220C44v123Ev,
  (VTBL_ENTRY)&_ZN6S220C44v124Ev,
  (VTBL_ENTRY)&_ZN6S220C44v125Ev,
  (VTBL_ENTRY)&_ZN6S220C44v126Ev,
  (VTBL_ENTRY)&_ZN6S220C44v127Ev,
  (VTBL_ENTRY)&_ZN6S220C44v128Ev,
  (VTBL_ENTRY)&_ZN6S220C44v129Ev,
  (VTBL_ENTRY)&_ZN6S220C44v130Ev,
  (VTBL_ENTRY)&_ZN6S220C44v131Ev,
  (VTBL_ENTRY)&_ZN6S220C44v132Ev,
  (VTBL_ENTRY)&_ZN6S220C44v133Ev,
  (VTBL_ENTRY)&_ZN6S220C44v134Ev,
  (VTBL_ENTRY)&_ZN6S220C44v135Ev,
  (VTBL_ENTRY)&_ZN6S220C44v136Ev,
  (VTBL_ENTRY)&_ZN6S220C44v137Ev,
  (VTBL_ENTRY)&_ZN6S220C44v138Ev,
  (VTBL_ENTRY)&_ZN6S220C44v139Ev,
  (VTBL_ENTRY)&_ZN6S220C44v140Ev,
  (VTBL_ENTRY)&_ZN6S220C44v141Ev,
  (VTBL_ENTRY)&_ZN6S220C44v142Ev,
  (VTBL_ENTRY)&_ZN6S220C44v143Ev,
  (VTBL_ENTRY)&_ZN6S220C44v144Ev,
  (VTBL_ENTRY)&_ZN6S220C44v145Ev,
  (VTBL_ENTRY)&_ZN6S220C34v146Ev,
  (VTBL_ENTRY)&_ZN6S220C34v147Ev,
  (VTBL_ENTRY)&_ZN6S220C34v148Ev,
  (VTBL_ENTRY)&_ZN6S220C34v149Ev,
  (VTBL_ENTRY)&_ZN6S220C34v150Ev,
  (VTBL_ENTRY)&_ZN6S220C34v151Ev,
  (VTBL_ENTRY)&_ZN6S220C34v152Ev,
  (VTBL_ENTRY)&_ZN6S220C34v153Ev,
  (VTBL_ENTRY)&_ZN6S220C34v154Ev,
  (VTBL_ENTRY)&_ZN6S220C34v155Ev,
  (VTBL_ENTRY)&_ZN6S220C34v156Ev,
  (VTBL_ENTRY)&_ZN6S220C34v157Ev,
  (VTBL_ENTRY)&_ZN6S220C34v158Ev,
  (VTBL_ENTRY)&_ZN6S220C34v159Ev,
  (VTBL_ENTRY)&_ZN6S220C34v160Ev,
  (VTBL_ENTRY)&_ZN6S220C34v161Ev,
  (VTBL_ENTRY)&_ZN6S220C34v162Ev,
  (VTBL_ENTRY)&_ZN6S220C34v163Ev,
  (VTBL_ENTRY)&_ZN6S220C34v164Ev,
  (VTBL_ENTRY)&_ZN6S220C34v165Ev,
  (VTBL_ENTRY)&_ZN6S220C34v166Ev,
  (VTBL_ENTRY)&_ZN6S220C34v167Ev,
  (VTBL_ENTRY)&_ZN6S220C34v168Ev,
  (VTBL_ENTRY)&_ZN6S220C34v169Ev,
  (VTBL_ENTRY)&_ZN6S220C34v170Ev,
  (VTBL_ENTRY)&_ZN6S220C34v171Ev,
  (VTBL_ENTRY)&_ZN6S220C34v172Ev,
  (VTBL_ENTRY)&_ZN6S220C34v173Ev,
  (VTBL_ENTRY)&_ZN6S220C34v174Ev,
  (VTBL_ENTRY)&_ZN6S220C34v175Ev,
  (VTBL_ENTRY)&_ZN6S220C34v176Ev,
  (VTBL_ENTRY)&_ZN6S220C34v177Ev,
  (VTBL_ENTRY)&_ZN6S220C34v178Ev,
  (VTBL_ENTRY)&_ZN6S220C34v179Ev,
  (VTBL_ENTRY)&_ZN6S220C34v180Ev,
  (VTBL_ENTRY)&_ZN6S220C34v181Ev,
  (VTBL_ENTRY)&_ZN6S220C34v182Ev,
  (VTBL_ENTRY)&_ZN6S220C34v183Ev,
  (VTBL_ENTRY)&_ZN6S220C34v184Ev,
  (VTBL_ENTRY)&_ZN6S220C24v185Ev,
  (VTBL_ENTRY)&_ZN6S220C24v186Ev,
  (VTBL_ENTRY)&_ZN6S220C24v187Ev,
  (VTBL_ENTRY)&_ZN6S220C24v188Ev,
  (VTBL_ENTRY)&_ZN6S220C24v189Ev,
  (VTBL_ENTRY)&_ZN6S220C24v190Ev,
  (VTBL_ENTRY)&_ZN6S220C24v191Ev,
  (VTBL_ENTRY)&_ZN6S220C24v192Ev,
  (VTBL_ENTRY)&_ZN6S220C24v193Ev,
  (VTBL_ENTRY)&_ZN6S220C24v194Ev,
  (VTBL_ENTRY)&_ZN6S220C24v195Ev,
  (VTBL_ENTRY)&_ZN6S220C24v196Ev,
  (VTBL_ENTRY)&_ZN6S220C24v197Ev,
  (VTBL_ENTRY)&_ZN6S220C24v198Ev,
  (VTBL_ENTRY)&_ZN6S220C24v199Ev,
  (VTBL_ENTRY)&_ZN6S220C24v200Ev,
  (VTBL_ENTRY)&_ZN6S220C24v201Ev,
  (VTBL_ENTRY)&_ZN6S220C24v202Ev,
  (VTBL_ENTRY)&_ZN6S220C24v203Ev,
  (VTBL_ENTRY)&_ZN6S220C24v204Ev,
  (VTBL_ENTRY)&_ZN6S220C24v205Ev,
  (VTBL_ENTRY)&_ZN6S220C24v206Ev,
  (VTBL_ENTRY)&_ZN6S220C24v207Ev,
  (VTBL_ENTRY)&_ZN6S220C12v1Ev,
  (VTBL_ENTRY)&_ZN6S220C12v2Ev,
  (VTBL_ENTRY)&_ZN6S220C12v3Ev,
};
extern VTBL_ENTRY _ZTI6S220C1[];
extern  VTBL_ENTRY _ZTV6S220C1[];
Class_Descriptor cd_S220C1 = {  "S220C1", // class name
  bases_S220C1, 5,
  &(vtc_S220C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(888,632), // object size
  NSPAIRA(_ZTI6S220C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S220C1),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S221C6  {
  int s221c6f0;
  __tsi64 s221c6f1;
  void *s221c6f2[4];
  int s221c6f3[2];
  void *s221c6f4;
  ::S85C27_nt s221c6f5;
  void *s221c6f6[2];
  virtual  ~S221C6(); // _ZN6S221C6D1Ev
  virtual void  v4(); // _ZN6S221C62v4Ev
  virtual void  v5(); // _ZN6S221C62v5Ev
  virtual void  v6(); // _ZN6S221C62v6Ev
  virtual void  v7(); // _ZN6S221C62v7Ev
  virtual void  v8(); // _ZN6S221C62v8Ev
  virtual void  v9(); // _ZN6S221C62v9Ev
  virtual void  v10(); // _ZN6S221C63v10Ev
  virtual void  v11(); // _ZN6S221C63v11Ev
  virtual void  v12(); // _ZN6S221C63v12Ev
  virtual void  v13(); // _ZN6S221C63v13Ev
  virtual void  v14(); // _ZN6S221C63v14Ev
  virtual void  v15(); // _ZN6S221C63v15Ev
  virtual void  v16(); // _ZN6S221C63v16Ev
  virtual void  v17(); // _ZN6S221C63v17Ev
  virtual void  v18(); // _ZN6S221C63v18Ev
  virtual void  v19(); // _ZN6S221C63v19Ev
  virtual void  v20(); // _ZN6S221C63v20Ev
  virtual void  v21(); // _ZN6S221C63v21Ev
  virtual void  v22(); // _ZN6S221C63v22Ev
  virtual void  v23(); // _ZN6S221C63v23Ev
  virtual void  v24(); // _ZN6S221C63v24Ev
  virtual void  v25(); // _ZN6S221C63v25Ev
  virtual void  v26(); // _ZN6S221C63v26Ev
  virtual void  v27(); // _ZN6S221C63v27Ev
  virtual void  v28(); // _ZN6S221C63v28Ev
  virtual void  v29(); // _ZN6S221C63v29Ev
  virtual void  v30(); // _ZN6S221C63v30Ev
  virtual void  v31(); // _ZN6S221C63v31Ev
  virtual void  v32(); // _ZN6S221C63v32Ev
  virtual void  v33(); // _ZN6S221C63v33Ev
  virtual void  v34(); // _ZN6S221C63v34Ev
  virtual void  v35(); // _ZN6S221C63v35Ev
  virtual void  v36(); // _ZN6S221C63v36Ev
  virtual void  v37(); // _ZN6S221C63v37Ev
  virtual void  v38(); // _ZN6S221C63v38Ev
  virtual void  v39(); // _ZN6S221C63v39Ev
  virtual void  v40(); // _ZN6S221C63v40Ev
  virtual void  v41(); // _ZN6S221C63v41Ev
  virtual void  v42(); // _ZN6S221C63v42Ev
  virtual void  v43(); // _ZN6S221C63v43Ev
  virtual void  v44(); // _ZN6S221C63v44Ev
  virtual void  v45(); // _ZN6S221C63v45Ev
  virtual void  v46(); // _ZN6S221C63v46Ev
  virtual void  v47(); // _ZN6S221C63v47Ev
  virtual void  v48(); // _ZN6S221C63v48Ev
  virtual void  v49(); // _ZN6S221C63v49Ev
  virtual void  v50(); // _ZN6S221C63v50Ev
  virtual void  v51(); // _ZN6S221C63v51Ev
  virtual void  v52(); // _ZN6S221C63v52Ev
  virtual void  v53(); // _ZN6S221C63v53Ev
  virtual void  v54(); // _ZN6S221C63v54Ev
  virtual void  v55(); // _ZN6S221C63v55Ev
  virtual void  v56(); // _ZN6S221C63v56Ev
  virtual void  v57(); // _ZN6S221C63v57Ev
  virtual void  v58(); // _ZN6S221C63v58Ev
  virtual void  v59(); // _ZN6S221C63v59Ev
  virtual void  v60(); // _ZN6S221C63v60Ev
  virtual void  v61(); // _ZN6S221C63v61Ev
  virtual void  v62(); // _ZN6S221C63v62Ev
  virtual void  v63(); // _ZN6S221C63v63Ev
  virtual void  v64(); // _ZN6S221C63v64Ev
  virtual void  v65(); // _ZN6S221C63v65Ev
  virtual void  v66(); // _ZN6S221C63v66Ev
  virtual void  v67(); // _ZN6S221C63v67Ev
  S221C6(); // tgen
};
//SIG(-1 S221C6) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S221C6 ::~S221C6(){ note_dtor("S221C6", this);}
void  S221C6 ::v4(){vfunc_called(this, "_ZN6S221C62v4Ev");}
void  S221C6 ::v5(){vfunc_called(this, "_ZN6S221C62v5Ev");}
void  S221C6 ::v6(){vfunc_called(this, "_ZN6S221C62v6Ev");}
void  S221C6 ::v7(){vfunc_called(this, "_ZN6S221C62v7Ev");}
void  S221C6 ::v8(){vfunc_called(this, "_ZN6S221C62v8Ev");}
void  S221C6 ::v9(){vfunc_called(this, "_ZN6S221C62v9Ev");}
void  S221C6 ::v10(){vfunc_called(this, "_ZN6S221C63v10Ev");}
void  S221C6 ::v11(){vfunc_called(this, "_ZN6S221C63v11Ev");}
void  S221C6 ::v12(){vfunc_called(this, "_ZN6S221C63v12Ev");}
void  S221C6 ::v13(){vfunc_called(this, "_ZN6S221C63v13Ev");}
void  S221C6 ::v14(){vfunc_called(this, "_ZN6S221C63v14Ev");}
void  S221C6 ::v15(){vfunc_called(this, "_ZN6S221C63v15Ev");}
void  S221C6 ::v16(){vfunc_called(this, "_ZN6S221C63v16Ev");}
void  S221C6 ::v17(){vfunc_called(this, "_ZN6S221C63v17Ev");}
void  S221C6 ::v18(){vfunc_called(this, "_ZN6S221C63v18Ev");}
void  S221C6 ::v19(){vfunc_called(this, "_ZN6S221C63v19Ev");}
void  S221C6 ::v20(){vfunc_called(this, "_ZN6S221C63v20Ev");}
void  S221C6 ::v21(){vfunc_called(this, "_ZN6S221C63v21Ev");}
void  S221C6 ::v22(){vfunc_called(this, "_ZN6S221C63v22Ev");}
void  S221C6 ::v23(){vfunc_called(this, "_ZN6S221C63v23Ev");}
void  S221C6 ::v24(){vfunc_called(this, "_ZN6S221C63v24Ev");}
void  S221C6 ::v25(){vfunc_called(this, "_ZN6S221C63v25Ev");}
void  S221C6 ::v26(){vfunc_called(this, "_ZN6S221C63v26Ev");}
void  S221C6 ::v27(){vfunc_called(this, "_ZN6S221C63v27Ev");}
void  S221C6 ::v28(){vfunc_called(this, "_ZN6S221C63v28Ev");}
void  S221C6 ::v29(){vfunc_called(this, "_ZN6S221C63v29Ev");}
void  S221C6 ::v30(){vfunc_called(this, "_ZN6S221C63v30Ev");}
void  S221C6 ::v31(){vfunc_called(this, "_ZN6S221C63v31Ev");}
void  S221C6 ::v32(){vfunc_called(this, "_ZN6S221C63v32Ev");}
void  S221C6 ::v33(){vfunc_called(this, "_ZN6S221C63v33Ev");}
void  S221C6 ::v34(){vfunc_called(this, "_ZN6S221C63v34Ev");}
void  S221C6 ::v35(){vfunc_called(this, "_ZN6S221C63v35Ev");}
void  S221C6 ::v36(){vfunc_called(this, "_ZN6S221C63v36Ev");}
void  S221C6 ::v37(){vfunc_called(this, "_ZN6S221C63v37Ev");}
void  S221C6 ::v38(){vfunc_called(this, "_ZN6S221C63v38Ev");}
void  S221C6 ::v39(){vfunc_called(this, "_ZN6S221C63v39Ev");}
void  S221C6 ::v40(){vfunc_called(this, "_ZN6S221C63v40Ev");}
void  S221C6 ::v41(){vfunc_called(this, "_ZN6S221C63v41Ev");}
void  S221C6 ::v42(){vfunc_called(this, "_ZN6S221C63v42Ev");}
void  S221C6 ::v43(){vfunc_called(this, "_ZN6S221C63v43Ev");}
void  S221C6 ::v44(){vfunc_called(this, "_ZN6S221C63v44Ev");}
void  S221C6 ::v45(){vfunc_called(this, "_ZN6S221C63v45Ev");}
void  S221C6 ::v46(){vfunc_called(this, "_ZN6S221C63v46Ev");}
void  S221C6 ::v47(){vfunc_called(this, "_ZN6S221C63v47Ev");}
void  S221C6 ::v48(){vfunc_called(this, "_ZN6S221C63v48Ev");}
void  S221C6 ::v49(){vfunc_called(this, "_ZN6S221C63v49Ev");}
void  S221C6 ::v50(){vfunc_called(this, "_ZN6S221C63v50Ev");}
void  S221C6 ::v51(){vfunc_called(this, "_ZN6S221C63v51Ev");}
void  S221C6 ::v52(){vfunc_called(this, "_ZN6S221C63v52Ev");}
void  S221C6 ::v53(){vfunc_called(this, "_ZN6S221C63v53Ev");}
void  S221C6 ::v54(){vfunc_called(this, "_ZN6S221C63v54Ev");}
void  S221C6 ::v55(){vfunc_called(this, "_ZN6S221C63v55Ev");}
void  S221C6 ::v56(){vfunc_called(this, "_ZN6S221C63v56Ev");}
void  S221C6 ::v57(){vfunc_called(this, "_ZN6S221C63v57Ev");}
void  S221C6 ::v58(){vfunc_called(this, "_ZN6S221C63v58Ev");}
void  S221C6 ::v59(){vfunc_called(this, "_ZN6S221C63v59Ev");}
void  S221C6 ::v60(){vfunc_called(this, "_ZN6S221C63v60Ev");}
void  S221C6 ::v61(){vfunc_called(this, "_ZN6S221C63v61Ev");}
void  S221C6 ::v62(){vfunc_called(this, "_ZN6S221C63v62Ev");}
void  S221C6 ::v63(){vfunc_called(this, "_ZN6S221C63v63Ev");}
void  S221C6 ::v64(){vfunc_called(this, "_ZN6S221C63v64Ev");}
void  S221C6 ::v65(){vfunc_called(this, "_ZN6S221C63v65Ev");}
void  S221C6 ::v66(){vfunc_called(this, "_ZN6S221C63v66Ev");}
void  S221C6 ::v67(){vfunc_called(this, "_ZN6S221C63v67Ev");}
S221C6 ::S221C6(){ note_ctor("S221C6", this);} // tgen

static void Test_S221C6()
{
  extern Class_Descriptor cd_S221C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S221C6, buf);
    S221C6 *dp, &lv = *(dp=new (buf) S221C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S221C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S221C6)");
    check_field_offset(lv, s221c6f0, ABISELECT(8,4), "S221C6.s221c6f0");
    check_field_offset(lv, s221c6f1, ABISELECT(16,8), "S221C6.s221c6f1");
    check_field_offset(lv, s221c6f2, ABISELECT(24,16), "S221C6.s221c6f2");
    check_field_offset(lv, s221c6f3, ABISELECT(56,32), "S221C6.s221c6f3");
    check_field_offset(lv, s221c6f4, ABISELECT(64,40), "S221C6.s221c6f4");
    check_field_offset(lv, s221c6f5, ABISELECT(72,44), "S221C6.s221c6f5");
    check_field_offset(lv, s221c6f6, ABISELECT(80,52), "S221C6.s221c6f6");
    test_class_info(&lv, &cd_S221C6);
    dp->~S221C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS221C6(Test_S221C6, "S221C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S221C6C1Ev();
extern void _ZN6S221C6D1Ev();
Name_Map name_map_S221C6[] = {
  NSPAIR(_ZN6S221C6C1Ev),
  NSPAIR(_ZN6S221C6D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S221C6[];
extern void _ZN6S221C6D1Ev();
extern void _ZN6S221C6D0Ev();
extern void _ZN6S221C62v4Ev();
extern void _ZN6S221C62v5Ev();
extern void _ZN6S221C62v6Ev();
extern void _ZN6S221C62v7Ev();
extern void _ZN6S221C62v8Ev();
extern void _ZN6S221C62v9Ev();
extern void _ZN6S221C63v10Ev();
extern void _ZN6S221C63v11Ev();
extern void _ZN6S221C63v12Ev();
extern void _ZN6S221C63v13Ev();
extern void _ZN6S221C63v14Ev();
extern void _ZN6S221C63v15Ev();
extern void _ZN6S221C63v16Ev();
extern void _ZN6S221C63v17Ev();
extern void _ZN6S221C63v18Ev();
extern void _ZN6S221C63v19Ev();
extern void _ZN6S221C63v20Ev();
extern void _ZN6S221C63v21Ev();
extern void _ZN6S221C63v22Ev();
extern void _ZN6S221C63v23Ev();
extern void _ZN6S221C63v24Ev();
extern void _ZN6S221C63v25Ev();
extern void _ZN6S221C63v26Ev();
extern void _ZN6S221C63v27Ev();
extern void _ZN6S221C63v28Ev();
extern void _ZN6S221C63v29Ev();
extern void _ZN6S221C63v30Ev();
extern void _ZN6S221C63v31Ev();
extern void _ZN6S221C63v32Ev();
extern void _ZN6S221C63v33Ev();
extern void _ZN6S221C63v34Ev();
extern void _ZN6S221C63v35Ev();
extern void _ZN6S221C63v36Ev();
extern void _ZN6S221C63v37Ev();
extern void _ZN6S221C63v38Ev();
extern void _ZN6S221C63v39Ev();
extern void _ZN6S221C63v40Ev();
extern void _ZN6S221C63v41Ev();
extern void _ZN6S221C63v42Ev();
extern void _ZN6S221C63v43Ev();
extern void _ZN6S221C63v44Ev();
extern void _ZN6S221C63v45Ev();
extern void _ZN6S221C63v46Ev();
extern void _ZN6S221C63v47Ev();
extern void _ZN6S221C63v48Ev();
extern void _ZN6S221C63v49Ev();
extern void _ZN6S221C63v50Ev();
extern void _ZN6S221C63v51Ev();
extern void _ZN6S221C63v52Ev();
extern void _ZN6S221C63v53Ev();
extern void _ZN6S221C63v54Ev();
extern void _ZN6S221C63v55Ev();
extern void _ZN6S221C63v56Ev();
extern void _ZN6S221C63v57Ev();
extern void _ZN6S221C63v58Ev();
extern void _ZN6S221C63v59Ev();
extern void _ZN6S221C63v60Ev();
extern void _ZN6S221C63v61Ev();
extern void _ZN6S221C63v62Ev();
extern void _ZN6S221C63v63Ev();
extern void _ZN6S221C63v64Ev();
extern void _ZN6S221C63v65Ev();
extern void _ZN6S221C63v66Ev();
extern void _ZN6S221C63v67Ev();
static  VTBL_ENTRY vtc_S221C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S221C6[0]),
  (VTBL_ENTRY)&_ZN6S221C6D1Ev,
  (VTBL_ENTRY)&_ZN6S221C6D0Ev,
  (VTBL_ENTRY)&_ZN6S221C62v4Ev,
  (VTBL_ENTRY)&_ZN6S221C62v5Ev,
  (VTBL_ENTRY)&_ZN6S221C62v6Ev,
  (VTBL_ENTRY)&_ZN6S221C62v7Ev,
  (VTBL_ENTRY)&_ZN6S221C62v8Ev,
  (VTBL_ENTRY)&_ZN6S221C62v9Ev,
  (VTBL_ENTRY)&_ZN6S221C63v10Ev,
  (VTBL_ENTRY)&_ZN6S221C63v11Ev,
  (VTBL_ENTRY)&_ZN6S221C63v12Ev,
  (VTBL_ENTRY)&_ZN6S221C63v13Ev,
  (VTBL_ENTRY)&_ZN6S221C63v14Ev,
  (VTBL_ENTRY)&_ZN6S221C63v15Ev,
  (VTBL_ENTRY)&_ZN6S221C63v16Ev,
  (VTBL_ENTRY)&_ZN6S221C63v17Ev,
  (VTBL_ENTRY)&_ZN6S221C63v18Ev,
  (VTBL_ENTRY)&_ZN6S221C63v19Ev,
  (VTBL_ENTRY)&_ZN6S221C63v20Ev,
  (VTBL_ENTRY)&_ZN6S221C63v21Ev,
  (VTBL_ENTRY)&_ZN6S221C63v22Ev,
  (VTBL_ENTRY)&_ZN6S221C63v23Ev,
  (VTBL_ENTRY)&_ZN6S221C63v24Ev,
  (VTBL_ENTRY)&_ZN6S221C63v25Ev,
  (VTBL_ENTRY)&_ZN6S221C63v26Ev,
  (VTBL_ENTRY)&_ZN6S221C63v27Ev,
  (VTBL_ENTRY)&_ZN6S221C63v28Ev,
  (VTBL_ENTRY)&_ZN6S221C63v29Ev,
  (VTBL_ENTRY)&_ZN6S221C63v30Ev,
  (VTBL_ENTRY)&_ZN6S221C63v31Ev,
  (VTBL_ENTRY)&_ZN6S221C63v32Ev,
  (VTBL_ENTRY)&_ZN6S221C63v33Ev,
  (VTBL_ENTRY)&_ZN6S221C63v34Ev,
  (VTBL_ENTRY)&_ZN6S221C63v35Ev,
  (VTBL_ENTRY)&_ZN6S221C63v36Ev,
  (VTBL_ENTRY)&_ZN6S221C63v37Ev,
  (VTBL_ENTRY)&_ZN6S221C63v38Ev,
  (VTBL_ENTRY)&_ZN6S221C63v39Ev,
  (VTBL_ENTRY)&_ZN6S221C63v40Ev,
  (VTBL_ENTRY)&_ZN6S221C63v41Ev,
  (VTBL_ENTRY)&_ZN6S221C63v42Ev,
  (VTBL_ENTRY)&_ZN6S221C63v43Ev,
  (VTBL_ENTRY)&_ZN6S221C63v44Ev,
  (VTBL_ENTRY)&_ZN6S221C63v45Ev,
  (VTBL_ENTRY)&_ZN6S221C63v46Ev,
  (VTBL_ENTRY)&_ZN6S221C63v47Ev,
  (VTBL_ENTRY)&_ZN6S221C63v48Ev,
  (VTBL_ENTRY)&_ZN6S221C63v49Ev,
  (VTBL_ENTRY)&_ZN6S221C63v50Ev,
  (VTBL_ENTRY)&_ZN6S221C63v51Ev,
  (VTBL_ENTRY)&_ZN6S221C63v52Ev,
  (VTBL_ENTRY)&_ZN6S221C63v53Ev,
  (VTBL_ENTRY)&_ZN6S221C63v54Ev,
  (VTBL_ENTRY)&_ZN6S221C63v55Ev,
  (VTBL_ENTRY)&_ZN6S221C63v56Ev,
  (VTBL_ENTRY)&_ZN6S221C63v57Ev,
  (VTBL_ENTRY)&_ZN6S221C63v58Ev,
  (VTBL_ENTRY)&_ZN6S221C63v59Ev,
  (VTBL_ENTRY)&_ZN6S221C63v60Ev,
  (VTBL_ENTRY)&_ZN6S221C63v61Ev,
  (VTBL_ENTRY)&_ZN6S221C63v62Ev,
  (VTBL_ENTRY)&_ZN6S221C63v63Ev,
  (VTBL_ENTRY)&_ZN6S221C63v64Ev,
  (VTBL_ENTRY)&_ZN6S221C63v65Ev,
  (VTBL_ENTRY)&_ZN6S221C63v66Ev,
  (VTBL_ENTRY)&_ZN6S221C63v67Ev,
};
extern VTBL_ENTRY _ZTI6S221C6[];
extern  VTBL_ENTRY _ZTV6S221C6[];
Class_Descriptor cd_S221C6 = {  "S221C6", // class name
  0,0,//no base classes
  &(vtc_S221C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S221C6),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S221C6),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S221C5  : S221C6 {
  virtual  ~S221C5(); // _ZN6S221C5D1Ev
  virtual void  v68(); // _ZN6S221C53v68Ev
  virtual void  v69(); // _ZN6S221C53v69Ev
  S221C5(); // tgen
};
//SIG(-1 S221C5) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S221C5 ::~S221C5(){ note_dtor("S221C5", this);}
void  S221C5 ::v68(){vfunc_called(this, "_ZN6S221C53v68Ev");}
void  S221C5 ::v69(){vfunc_called(this, "_ZN6S221C53v69Ev");}
S221C5 ::S221C5(){ note_ctor("S221C5", this);} // tgen

static void Test_S221C5()
{
  extern Class_Descriptor cd_S221C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S221C5, buf);
    S221C5 *dp, &lv = *(dp=new (buf) S221C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S221C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S221C5)");
    check_base_class_offset(lv, (S221C6*), 0, "S221C5");
    test_class_info(&lv, &cd_S221C5);
    dp->~S221C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS221C5(Test_S221C5, "S221C5", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S221C5C1Ev();
extern void _ZN6S221C5D1Ev();
Name_Map name_map_S221C5[] = {
  NSPAIR(_ZN6S221C5C1Ev),
  NSPAIR(_ZN6S221C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S221C6;
extern VTBL_ENTRY _ZTI6S221C6[];
extern  VTBL_ENTRY _ZTV6S221C6[];
static Base_Class bases_S221C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S221C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S221C5[];
extern void _ZN6S221C5D1Ev();
extern void _ZN6S221C5D0Ev();
extern void _ZN6S221C62v4Ev();
extern void _ZN6S221C62v5Ev();
extern void _ZN6S221C62v6Ev();
extern void _ZN6S221C62v7Ev();
extern void _ZN6S221C62v8Ev();
extern void _ZN6S221C62v9Ev();
extern void _ZN6S221C63v10Ev();
extern void _ZN6S221C63v11Ev();
extern void _ZN6S221C63v12Ev();
extern void _ZN6S221C63v13Ev();
extern void _ZN6S221C63v14Ev();
extern void _ZN6S221C63v15Ev();
extern void _ZN6S221C63v16Ev();
extern void _ZN6S221C63v17Ev();
extern void _ZN6S221C63v18Ev();
extern void _ZN6S221C63v19Ev();
extern void _ZN6S221C63v20Ev();
extern void _ZN6S221C63v21Ev();
extern void _ZN6S221C63v22Ev();
extern void _ZN6S221C63v23Ev();
extern void _ZN6S221C63v24Ev();
extern void _ZN6S221C63v25Ev();
extern void _ZN6S221C63v26Ev();
extern void _ZN6S221C63v27Ev();
extern void _ZN6S221C63v28Ev();
extern void _ZN6S221C63v29Ev();
extern void _ZN6S221C63v30Ev();
extern void _ZN6S221C63v31Ev();
extern void _ZN6S221C63v32Ev();
extern void _ZN6S221C63v33Ev();
extern void _ZN6S221C63v34Ev();
extern void _ZN6S221C63v35Ev();
extern void _ZN6S221C63v36Ev();
extern void _ZN6S221C63v37Ev();
extern void _ZN6S221C63v38Ev();
extern void _ZN6S221C63v39Ev();
extern void _ZN6S221C63v40Ev();
extern void _ZN6S221C63v41Ev();
extern void _ZN6S221C63v42Ev();
extern void _ZN6S221C63v43Ev();
extern void _ZN6S221C63v44Ev();
extern void _ZN6S221C63v45Ev();
extern void _ZN6S221C63v46Ev();
extern void _ZN6S221C63v47Ev();
extern void _ZN6S221C63v48Ev();
extern void _ZN6S221C63v49Ev();
extern void _ZN6S221C63v50Ev();
extern void _ZN6S221C63v51Ev();
extern void _ZN6S221C63v52Ev();
extern void _ZN6S221C63v53Ev();
extern void _ZN6S221C63v54Ev();
extern void _ZN6S221C63v55Ev();
extern void _ZN6S221C63v56Ev();
extern void _ZN6S221C63v57Ev();
extern void _ZN6S221C63v58Ev();
extern void _ZN6S221C63v59Ev();
extern void _ZN6S221C63v60Ev();
extern void _ZN6S221C63v61Ev();
extern void _ZN6S221C63v62Ev();
extern void _ZN6S221C63v63Ev();
extern void _ZN6S221C63v64Ev();
extern void _ZN6S221C63v65Ev();
extern void _ZN6S221C63v66Ev();
extern void _ZN6S221C63v67Ev();
extern void _ZN6S221C53v68Ev();
extern void _ZN6S221C53v69Ev();
static  VTBL_ENTRY vtc_S221C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S221C5[0]),
  (VTBL_ENTRY)&_ZN6S221C5D1Ev,
  (VTBL_ENTRY)&_ZN6S221C5D0Ev,
  (VTBL_ENTRY)&_ZN6S221C62v4Ev,
  (VTBL_ENTRY)&_ZN6S221C62v5Ev,
  (VTBL_ENTRY)&_ZN6S221C62v6Ev,
  (VTBL_ENTRY)&_ZN6S221C62v7Ev,
  (VTBL_ENTRY)&_ZN6S221C62v8Ev,
  (VTBL_ENTRY)&_ZN6S221C62v9Ev,
  (VTBL_ENTRY)&_ZN6S221C63v10Ev,
  (VTBL_ENTRY)&_ZN6S221C63v11Ev,
  (VTBL_ENTRY)&_ZN6S221C63v12Ev,
  (VTBL_ENTRY)&_ZN6S221C63v13Ev,
  (VTBL_ENTRY)&_ZN6S221C63v14Ev,
  (VTBL_ENTRY)&_ZN6S221C63v15Ev,
  (VTBL_ENTRY)&_ZN6S221C63v16Ev,
  (VTBL_ENTRY)&_ZN6S221C63v17Ev,
  (VTBL_ENTRY)&_ZN6S221C63v18Ev,
  (VTBL_ENTRY)&_ZN6S221C63v19Ev,
  (VTBL_ENTRY)&_ZN6S221C63v20Ev,
  (VTBL_ENTRY)&_ZN6S221C63v21Ev,
  (VTBL_ENTRY)&_ZN6S221C63v22Ev,
  (VTBL_ENTRY)&_ZN6S221C63v23Ev,
  (VTBL_ENTRY)&_ZN6S221C63v24Ev,
  (VTBL_ENTRY)&_ZN6S221C63v25Ev,
  (VTBL_ENTRY)&_ZN6S221C63v26Ev,
  (VTBL_ENTRY)&_ZN6S221C63v27Ev,
  (VTBL_ENTRY)&_ZN6S221C63v28Ev,
  (VTBL_ENTRY)&_ZN6S221C63v29Ev,
  (VTBL_ENTRY)&_ZN6S221C63v30Ev,
  (VTBL_ENTRY)&_ZN6S221C63v31Ev,
  (VTBL_ENTRY)&_ZN6S221C63v32Ev,
  (VTBL_ENTRY)&_ZN6S221C63v33Ev,
  (VTBL_ENTRY)&_ZN6S221C63v34Ev,
  (VTBL_ENTRY)&_ZN6S221C63v35Ev,
  (VTBL_ENTRY)&_ZN6S221C63v36Ev,
  (VTBL_ENTRY)&_ZN6S221C63v37Ev,
  (VTBL_ENTRY)&_ZN6S221C63v38Ev,
  (VTBL_ENTRY)&_ZN6S221C63v39Ev,
  (VTBL_ENTRY)&_ZN6S221C63v40Ev,
  (VTBL_ENTRY)&_ZN6S221C63v41Ev,
  (VTBL_ENTRY)&_ZN6S221C63v42Ev,
  (VTBL_ENTRY)&_ZN6S221C63v43Ev,
  (VTBL_ENTRY)&_ZN6S221C63v44Ev,
  (VTBL_ENTRY)&_ZN6S221C63v45Ev,
  (VTBL_ENTRY)&_ZN6S221C63v46Ev,
  (VTBL_ENTRY)&_ZN6S221C63v47Ev,
  (VTBL_ENTRY)&_ZN6S221C63v48Ev,
  (VTBL_ENTRY)&_ZN6S221C63v49Ev,
  (VTBL_ENTRY)&_ZN6S221C63v50Ev,
  (VTBL_ENTRY)&_ZN6S221C63v51Ev,
  (VTBL_ENTRY)&_ZN6S221C63v52Ev,
  (VTBL_ENTRY)&_ZN6S221C63v53Ev,
  (VTBL_ENTRY)&_ZN6S221C63v54Ev,
  (VTBL_ENTRY)&_ZN6S221C63v55Ev,
  (VTBL_ENTRY)&_ZN6S221C63v56Ev,
  (VTBL_ENTRY)&_ZN6S221C63v57Ev,
  (VTBL_ENTRY)&_ZN6S221C63v58Ev,
  (VTBL_ENTRY)&_ZN6S221C63v59Ev,
  (VTBL_ENTRY)&_ZN6S221C63v60Ev,
  (VTBL_ENTRY)&_ZN6S221C63v61Ev,
  (VTBL_ENTRY)&_ZN6S221C63v62Ev,
  (VTBL_ENTRY)&_ZN6S221C63v63Ev,
  (VTBL_ENTRY)&_ZN6S221C63v64Ev,
  (VTBL_ENTRY)&_ZN6S221C63v65Ev,
  (VTBL_ENTRY)&_ZN6S221C63v66Ev,
  (VTBL_ENTRY)&_ZN6S221C63v67Ev,
  (VTBL_ENTRY)&_ZN6S221C53v68Ev,
  (VTBL_ENTRY)&_ZN6S221C53v69Ev,
};
extern VTBL_ENTRY _ZTI6S221C5[];
extern  VTBL_ENTRY _ZTV6S221C5[];
Class_Descriptor cd_S221C5 = {  "S221C5", // class name
  bases_S221C5, 1,
  &(vtc_S221C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S221C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S221C5),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S221C4  : S221C5 {
  ::S80C9_nt s221c4f0;
  int s221c4f1;
  unsigned int s221c4f2:1;
  unsigned int s221c4f3:1;
  unsigned int s221c4f4:1;
  unsigned int s221c4f5:1;
  ::S85C35 s221c4f6;
  ::S85C22_nt s221c4f7;
  void *s221c4f8;
  ::S80C31 s221c4f9;
  ::S80C31 s221c4f10;
  ::S80C29 s221c4f11;
  ::S80C19 s221c4f12;
  char s221c4f13;
  int s221c4f14;
  void *s221c4f15;
  ::S85C27_nt s221c4f16;
  ::S85C27_nt s221c4f17;
  ::S85C27_nt s221c4f18;
  ::S85C27_nt s221c4f19;
  ::S85C27_nt s221c4f20;
  ::S85C27_nt s221c4f21;
  ::S80C21_nt s221c4f22;
  ::S80C21_nt s221c4f23;
  ::S80C21_nt s221c4f24;
  ::S80C21_nt s221c4f25;
  ::S80C21_nt s221c4f26;
  ::S80C21_nt s221c4f27;
  ::S80C21_nt s221c4f28;
  ::S80C21_nt s221c4f29;
  ::S80C21_nt s221c4f30;
  ::S80C21_nt s221c4f31;
  virtual  ~S221C4(); // _ZN6S221C4D1Ev
  virtual void  v70(); // _ZN6S221C43v70Ev
  virtual void  v71(); // _ZN6S221C43v71Ev
  virtual void  v72(); // _ZN6S221C43v72Ev
  virtual void  v73(); // _ZN6S221C43v73Ev
  virtual void  v74(); // _ZN6S221C43v74Ev
  virtual void  v75(); // _ZN6S221C43v75Ev
  virtual void  v76(); // _ZN6S221C43v76Ev
  virtual void  v77(); // _ZN6S221C43v77Ev
  virtual void  v78(); // _ZN6S221C43v78Ev
  virtual void  v79(); // _ZN6S221C43v79Ev
  virtual void  v80(); // _ZN6S221C43v80Ev
  virtual void  v81(); // _ZN6S221C43v81Ev
  virtual void  v82(); // _ZN6S221C43v82Ev
  virtual void  v83(); // _ZN6S221C43v83Ev
  virtual void  v84(); // _ZN6S221C43v84Ev
  virtual void  v85(); // _ZN6S221C43v85Ev
  virtual void  v86(); // _ZN6S221C43v86Ev
  virtual void  v87(); // _ZN6S221C43v87Ev
  virtual void  v88(); // _ZN6S221C43v88Ev
  virtual void  v89(); // _ZN6S221C43v89Ev
  virtual void  v90(); // _ZN6S221C43v90Ev
  virtual void  v91(); // _ZN6S221C43v91Ev
  virtual void  v92(); // _ZN6S221C43v92Ev
  virtual void  v93(); // _ZN6S221C43v93Ev
  virtual void  v94(); // _ZN6S221C43v94Ev
  virtual void  v95(); // _ZN6S221C43v95Ev
  virtual void  v96(); // _ZN6S221C43v96Ev
  virtual void  v97(); // _ZN6S221C43v97Ev
  virtual void  v98(); // _ZN6S221C43v98Ev
  virtual void  v99(); // _ZN6S221C43v99Ev
  virtual void  v100(); // _ZN6S221C44v100Ev
  virtual void  v101(); // _ZN6S221C44v101Ev
  virtual void  v102(); // _ZN6S221C44v102Ev
  virtual void  v103(); // _ZN6S221C44v103Ev
  virtual void  v104(); // _ZN6S221C44v104Ev
  virtual void  v105(); // _ZN6S221C44v105Ev
  virtual void  v106(); // _ZN6S221C44v106Ev
  virtual void  v107(); // _ZN6S221C44v107Ev
  virtual void  v108(); // _ZN6S221C44v108Ev
  virtual void  v109(); // _ZN6S221C44v109Ev
  virtual void  v110(); // _ZN6S221C44v110Ev
  virtual void  v111(); // _ZN6S221C44v111Ev
  virtual void  v112(); // _ZN6S221C44v112Ev
  virtual void  v113(); // _ZN6S221C44v113Ev
  virtual void  v114(); // _ZN6S221C44v114Ev
  virtual void  v115(); // _ZN6S221C44v115Ev
  virtual void  v116(); // _ZN6S221C44v116Ev
  virtual void  v117(); // _ZN6S221C44v117Ev
  virtual void  v118(); // _ZN6S221C44v118Ev
  virtual void  v119(); // _ZN6S221C44v119Ev
  virtual void  v120(); // _ZN6S221C44v120Ev
  virtual void  v121(); // _ZN6S221C44v121Ev
  virtual void  v122(); // _ZN6S221C44v122Ev
  virtual void  v123(); // _ZN6S221C44v123Ev
  virtual void  v124(); // _ZN6S221C44v124Ev
  virtual void  v125(); // _ZN6S221C44v125Ev
  virtual void  v126(); // _ZN6S221C44v126Ev
  virtual void  v127(); // _ZN6S221C44v127Ev
  virtual void  v128(); // _ZN6S221C44v128Ev
  virtual void  v129(); // _ZN6S221C44v129Ev
  virtual void  v130(); // _ZN6S221C44v130Ev
  virtual void  v131(); // _ZN6S221C44v131Ev
  virtual void  v132(); // _ZN6S221C44v132Ev
  virtual void  v133(); // _ZN6S221C44v133Ev
  virtual void  v134(); // _ZN6S221C44v134Ev
  virtual void  v135(); // _ZN6S221C44v135Ev
  virtual void  v136(); // _ZN6S221C44v136Ev
  virtual void  v137(); // _ZN6S221C44v137Ev
  virtual void  v138(); // _ZN6S221C44v138Ev
  virtual void  v139(); // _ZN6S221C44v139Ev
  virtual void  v140(); // _ZN6S221C44v140Ev
  virtual void  v141(); // _ZN6S221C44v141Ev
  virtual void  v142(); // _ZN6S221C44v142Ev
  virtual void  v143(); // _ZN6S221C44v143Ev
  virtual void  v144(); // _ZN6S221C44v144Ev
  virtual void  v145(); // _ZN6S221C44v145Ev
  S221C4(); // tgen
};
//SIG(-1 S221C4) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S221C4 ::~S221C4(){ note_dtor("S221C4", this);}
void  S221C4 ::v70(){vfunc_called(this, "_ZN6S221C43v70Ev");}
void  S221C4 ::v71(){vfunc_called(this, "_ZN6S221C43v71Ev");}
void  S221C4 ::v72(){vfunc_called(this, "_ZN6S221C43v72Ev");}
void  S221C4 ::v73(){vfunc_called(this, "_ZN6S221C43v73Ev");}
void  S221C4 ::v74(){vfunc_called(this, "_ZN6S221C43v74Ev");}
void  S221C4 ::v75(){vfunc_called(this, "_ZN6S221C43v75Ev");}
void  S221C4 ::v76(){vfunc_called(this, "_ZN6S221C43v76Ev");}
void  S221C4 ::v77(){vfunc_called(this, "_ZN6S221C43v77Ev");}
void  S221C4 ::v78(){vfunc_called(this, "_ZN6S221C43v78Ev");}
void  S221C4 ::v79(){vfunc_called(this, "_ZN6S221C43v79Ev");}
void  S221C4 ::v80(){vfunc_called(this, "_ZN6S221C43v80Ev");}
void  S221C4 ::v81(){vfunc_called(this, "_ZN6S221C43v81Ev");}
void  S221C4 ::v82(){vfunc_called(this, "_ZN6S221C43v82Ev");}
void  S221C4 ::v83(){vfunc_called(this, "_ZN6S221C43v83Ev");}
void  S221C4 ::v84(){vfunc_called(this, "_ZN6S221C43v84Ev");}
void  S221C4 ::v85(){vfunc_called(this, "_ZN6S221C43v85Ev");}
void  S221C4 ::v86(){vfunc_called(this, "_ZN6S221C43v86Ev");}
void  S221C4 ::v87(){vfunc_called(this, "_ZN6S221C43v87Ev");}
void  S221C4 ::v88(){vfunc_called(this, "_ZN6S221C43v88Ev");}
void  S221C4 ::v89(){vfunc_called(this, "_ZN6S221C43v89Ev");}
void  S221C4 ::v90(){vfunc_called(this, "_ZN6S221C43v90Ev");}
void  S221C4 ::v91(){vfunc_called(this, "_ZN6S221C43v91Ev");}
void  S221C4 ::v92(){vfunc_called(this, "_ZN6S221C43v92Ev");}
void  S221C4 ::v93(){vfunc_called(this, "_ZN6S221C43v93Ev");}
void  S221C4 ::v94(){vfunc_called(this, "_ZN6S221C43v94Ev");}
void  S221C4 ::v95(){vfunc_called(this, "_ZN6S221C43v95Ev");}
void  S221C4 ::v96(){vfunc_called(this, "_ZN6S221C43v96Ev");}
void  S221C4 ::v97(){vfunc_called(this, "_ZN6S221C43v97Ev");}
void  S221C4 ::v98(){vfunc_called(this, "_ZN6S221C43v98Ev");}
void  S221C4 ::v99(){vfunc_called(this, "_ZN6S221C43v99Ev");}
void  S221C4 ::v100(){vfunc_called(this, "_ZN6S221C44v100Ev");}
void  S221C4 ::v101(){vfunc_called(this, "_ZN6S221C44v101Ev");}
void  S221C4 ::v102(){vfunc_called(this, "_ZN6S221C44v102Ev");}
void  S221C4 ::v103(){vfunc_called(this, "_ZN6S221C44v103Ev");}
void  S221C4 ::v104(){vfunc_called(this, "_ZN6S221C44v104Ev");}
void  S221C4 ::v105(){vfunc_called(this, "_ZN6S221C44v105Ev");}
void  S221C4 ::v106(){vfunc_called(this, "_ZN6S221C44v106Ev");}
void  S221C4 ::v107(){vfunc_called(this, "_ZN6S221C44v107Ev");}
void  S221C4 ::v108(){vfunc_called(this, "_ZN6S221C44v108Ev");}
void  S221C4 ::v109(){vfunc_called(this, "_ZN6S221C44v109Ev");}
void  S221C4 ::v110(){vfunc_called(this, "_ZN6S221C44v110Ev");}
void  S221C4 ::v111(){vfunc_called(this, "_ZN6S221C44v111Ev");}
void  S221C4 ::v112(){vfunc_called(this, "_ZN6S221C44v112Ev");}
void  S221C4 ::v113(){vfunc_called(this, "_ZN6S221C44v113Ev");}
void  S221C4 ::v114(){vfunc_called(this, "_ZN6S221C44v114Ev");}
void  S221C4 ::v115(){vfunc_called(this, "_ZN6S221C44v115Ev");}
void  S221C4 ::v116(){vfunc_called(this, "_ZN6S221C44v116Ev");}
void  S221C4 ::v117(){vfunc_called(this, "_ZN6S221C44v117Ev");}
void  S221C4 ::v118(){vfunc_called(this, "_ZN6S221C44v118Ev");}
void  S221C4 ::v119(){vfunc_called(this, "_ZN6S221C44v119Ev");}
void  S221C4 ::v120(){vfunc_called(this, "_ZN6S221C44v120Ev");}
void  S221C4 ::v121(){vfunc_called(this, "_ZN6S221C44v121Ev");}
void  S221C4 ::v122(){vfunc_called(this, "_ZN6S221C44v122Ev");}
void  S221C4 ::v123(){vfunc_called(this, "_ZN6S221C44v123Ev");}
void  S221C4 ::v124(){vfunc_called(this, "_ZN6S221C44v124Ev");}
void  S221C4 ::v125(){vfunc_called(this, "_ZN6S221C44v125Ev");}
void  S221C4 ::v126(){vfunc_called(this, "_ZN6S221C44v126Ev");}
void  S221C4 ::v127(){vfunc_called(this, "_ZN6S221C44v127Ev");}
void  S221C4 ::v128(){vfunc_called(this, "_ZN6S221C44v128Ev");}
void  S221C4 ::v129(){vfunc_called(this, "_ZN6S221C44v129Ev");}
void  S221C4 ::v130(){vfunc_called(this, "_ZN6S221C44v130Ev");}
void  S221C4 ::v131(){vfunc_called(this, "_ZN6S221C44v131Ev");}
void  S221C4 ::v132(){vfunc_called(this, "_ZN6S221C44v132Ev");}
void  S221C4 ::v133(){vfunc_called(this, "_ZN6S221C44v133Ev");}
void  S221C4 ::v134(){vfunc_called(this, "_ZN6S221C44v134Ev");}
void  S221C4 ::v135(){vfunc_called(this, "_ZN6S221C44v135Ev");}
void  S221C4 ::v136(){vfunc_called(this, "_ZN6S221C44v136Ev");}
void  S221C4 ::v137(){vfunc_called(this, "_ZN6S221C44v137Ev");}
void  S221C4 ::v138(){vfunc_called(this, "_ZN6S221C44v138Ev");}
void  S221C4 ::v139(){vfunc_called(this, "_ZN6S221C44v139Ev");}
void  S221C4 ::v140(){vfunc_called(this, "_ZN6S221C44v140Ev");}
void  S221C4 ::v141(){vfunc_called(this, "_ZN6S221C44v141Ev");}
void  S221C4 ::v142(){vfunc_called(this, "_ZN6S221C44v142Ev");}
void  S221C4 ::v143(){vfunc_called(this, "_ZN6S221C44v143Ev");}
void  S221C4 ::v144(){vfunc_called(this, "_ZN6S221C44v144Ev");}
void  S221C4 ::v145(){vfunc_called(this, "_ZN6S221C44v145Ev");}
S221C4 ::S221C4(){ note_ctor("S221C4", this);} // tgen

static void Test_S221C4()
{
  extern Class_Descriptor cd_S221C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S221C4, buf);
    S221C4 *dp, &lv = *(dp=new (buf) S221C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S221C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S221C4)");
    check_base_class_offset(lv, (S221C6*)(S221C5*), 0, "S221C4");
    check_base_class_offset(lv, (S221C5*), 0, "S221C4");
    check_field_offset(lv, s221c4f0, ABISELECT(96,60), "S221C4.s221c4f0");
    check_field_offset(lv, s221c4f1, ABISELECT(124,88), "S221C4.s221c4f1");
    set_bf_and_test(lv, s221c4f2, ABISELECT(128,92), 0, 1, 1, "S221C4");
    set_bf_and_test(lv, s221c4f3, ABISELECT(128,92), 1, 1, 1, "S221C4");
    set_bf_and_test(lv, s221c4f4, ABISELECT(128,92), 2, 1, 1, "S221C4");
    set_bf_and_test(lv, s221c4f5, ABISELECT(128,92), 3, 1, 1, "S221C4");
    check_field_offset(lv, s221c4f6, ABISELECT(136,96), "S221C4.s221c4f6");
    check_field_offset(lv, s221c4f7, ABISELECT(152,108), "S221C4.s221c4f7");
    check_field_offset(lv, s221c4f8, ABISELECT(168,120), "S221C4.s221c4f8");
    check_field_offset(lv, s221c4f9, ABISELECT(176,124), "S221C4.s221c4f9");
    check_field_offset(lv, s221c4f10, ABISELECT(192,136), "S221C4.s221c4f10");
    check_field_offset(lv, s221c4f11, ABISELECT(208,148), "S221C4.s221c4f11");
    check_field_offset(lv, s221c4f12, ABISELECT(224,160), "S221C4.s221c4f12");
    check_field_offset(lv, s221c4f13, ABISELECT(240,172), "S221C4.s221c4f13");
    check_field_offset(lv, s221c4f14, ABISELECT(244,176), "S221C4.s221c4f14");
    check_field_offset(lv, s221c4f15, ABISELECT(248,180), "S221C4.s221c4f15");
    check_field_offset(lv, s221c4f16, ABISELECT(256,184), "S221C4.s221c4f16");
    check_field_offset(lv, s221c4f17, ABISELECT(264,192), "S221C4.s221c4f17");
    check_field_offset(lv, s221c4f18, ABISELECT(272,200), "S221C4.s221c4f18");
    check_field_offset(lv, s221c4f19, ABISELECT(280,208), "S221C4.s221c4f19");
    check_field_offset(lv, s221c4f20, ABISELECT(288,216), "S221C4.s221c4f20");
    check_field_offset(lv, s221c4f21, ABISELECT(296,224), "S221C4.s221c4f21");
    check_field_offset(lv, s221c4f22, ABISELECT(304,232), "S221C4.s221c4f22");
    check_field_offset(lv, s221c4f23, ABISELECT(320,244), "S221C4.s221c4f23");
    check_field_offset(lv, s221c4f24, ABISELECT(336,256), "S221C4.s221c4f24");
    check_field_offset(lv, s221c4f25, ABISELECT(352,268), "S221C4.s221c4f25");
    check_field_offset(lv, s221c4f26, ABISELECT(368,280), "S221C4.s221c4f26");
    check_field_offset(lv, s221c4f27, ABISELECT(384,292), "S221C4.s221c4f27");
    check_field_offset(lv, s221c4f28, ABISELECT(400,304), "S221C4.s221c4f28");
    check_field_offset(lv, s221c4f29, ABISELECT(416,316), "S221C4.s221c4f29");
    check_field_offset(lv, s221c4f30, ABISELECT(432,328), "S221C4.s221c4f30");
    check_field_offset(lv, s221c4f31, ABISELECT(448,340), "S221C4.s221c4f31");
    test_class_info(&lv, &cd_S221C4);
    dp->~S221C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS221C4(Test_S221C4, "S221C4", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S221C4C1Ev();
extern void _ZN6S221C4D1Ev();
Name_Map name_map_S221C4[] = {
  NSPAIR(_ZN6S221C4C1Ev),
  NSPAIR(_ZN6S221C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S221C6;
extern VTBL_ENTRY _ZTI6S221C6[];
extern  VTBL_ENTRY _ZTV6S221C6[];
extern Class_Descriptor cd_S221C5;
extern VTBL_ENTRY _ZTI6S221C5[];
extern  VTBL_ENTRY _ZTV6S221C5[];
static Base_Class bases_S221C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S221C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S221C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S221C4[];
extern void _ZN6S221C4D1Ev();
extern void _ZN6S221C4D0Ev();
extern void _ZN6S221C62v4Ev();
extern void _ZN6S221C62v5Ev();
extern void _ZN6S221C62v6Ev();
extern void _ZN6S221C62v7Ev();
extern void _ZN6S221C62v8Ev();
extern void _ZN6S221C62v9Ev();
extern void _ZN6S221C63v10Ev();
extern void _ZN6S221C63v11Ev();
extern void _ZN6S221C63v12Ev();
extern void _ZN6S221C63v13Ev();
extern void _ZN6S221C63v14Ev();
extern void _ZN6S221C63v15Ev();
extern void _ZN6S221C63v16Ev();
extern void _ZN6S221C63v17Ev();
extern void _ZN6S221C63v18Ev();
extern void _ZN6S221C63v19Ev();
extern void _ZN6S221C63v20Ev();
extern void _ZN6S221C63v21Ev();
extern void _ZN6S221C63v22Ev();
extern void _ZN6S221C63v23Ev();
extern void _ZN6S221C63v24Ev();
extern void _ZN6S221C63v25Ev();
extern void _ZN6S221C63v26Ev();
extern void _ZN6S221C63v27Ev();
extern void _ZN6S221C63v28Ev();
extern void _ZN6S221C63v29Ev();
extern void _ZN6S221C63v30Ev();
extern void _ZN6S221C63v31Ev();
extern void _ZN6S221C63v32Ev();
extern void _ZN6S221C63v33Ev();
extern void _ZN6S221C63v34Ev();
extern void _ZN6S221C63v35Ev();
extern void _ZN6S221C63v36Ev();
extern void _ZN6S221C63v37Ev();
extern void _ZN6S221C63v38Ev();
extern void _ZN6S221C63v39Ev();
extern void _ZN6S221C63v40Ev();
extern void _ZN6S221C63v41Ev();
extern void _ZN6S221C63v42Ev();
extern void _ZN6S221C63v43Ev();
extern void _ZN6S221C63v44Ev();
extern void _ZN6S221C63v45Ev();
extern void _ZN6S221C63v46Ev();
extern void _ZN6S221C63v47Ev();
extern void _ZN6S221C63v48Ev();
extern void _ZN6S221C63v49Ev();
extern void _ZN6S221C63v50Ev();
extern void _ZN6S221C63v51Ev();
extern void _ZN6S221C63v52Ev();
extern void _ZN6S221C63v53Ev();
extern void _ZN6S221C63v54Ev();
extern void _ZN6S221C63v55Ev();
extern void _ZN6S221C63v56Ev();
extern void _ZN6S221C63v57Ev();
extern void _ZN6S221C63v58Ev();
extern void _ZN6S221C63v59Ev();
extern void _ZN6S221C63v60Ev();
extern void _ZN6S221C63v61Ev();
extern void _ZN6S221C63v62Ev();
extern void _ZN6S221C63v63Ev();
extern void _ZN6S221C63v64Ev();
extern void _ZN6S221C63v65Ev();
extern void _ZN6S221C63v66Ev();
extern void _ZN6S221C63v67Ev();
extern void _ZN6S221C53v68Ev();
extern void _ZN6S221C53v69Ev();
extern void _ZN6S221C43v70Ev();
extern void _ZN6S221C43v71Ev();
extern void _ZN6S221C43v72Ev();
extern void _ZN6S221C43v73Ev();
extern void _ZN6S221C43v74Ev();
extern void _ZN6S221C43v75Ev();
extern void _ZN6S221C43v76Ev();
extern void _ZN6S221C43v77Ev();
extern void _ZN6S221C43v78Ev();
extern void _ZN6S221C43v79Ev();
extern void _ZN6S221C43v80Ev();
extern void _ZN6S221C43v81Ev();
extern void _ZN6S221C43v82Ev();
extern void _ZN6S221C43v83Ev();
extern void _ZN6S221C43v84Ev();
extern void _ZN6S221C43v85Ev();
extern void _ZN6S221C43v86Ev();
extern void _ZN6S221C43v87Ev();
extern void _ZN6S221C43v88Ev();
extern void _ZN6S221C43v89Ev();
extern void _ZN6S221C43v90Ev();
extern void _ZN6S221C43v91Ev();
extern void _ZN6S221C43v92Ev();
extern void _ZN6S221C43v93Ev();
extern void _ZN6S221C43v94Ev();
extern void _ZN6S221C43v95Ev();
extern void _ZN6S221C43v96Ev();
extern void _ZN6S221C43v97Ev();
extern void _ZN6S221C43v98Ev();
extern void _ZN6S221C43v99Ev();
extern void _ZN6S221C44v100Ev();
extern void _ZN6S221C44v101Ev();
extern void _ZN6S221C44v102Ev();
extern void _ZN6S221C44v103Ev();
extern void _ZN6S221C44v104Ev();
extern void _ZN6S221C44v105Ev();
extern void _ZN6S221C44v106Ev();
extern void _ZN6S221C44v107Ev();
extern void _ZN6S221C44v108Ev();
extern void _ZN6S221C44v109Ev();
extern void _ZN6S221C44v110Ev();
extern void _ZN6S221C44v111Ev();
extern void _ZN6S221C44v112Ev();
extern void _ZN6S221C44v113Ev();
extern void _ZN6S221C44v114Ev();
extern void _ZN6S221C44v115Ev();
extern void _ZN6S221C44v116Ev();
extern void _ZN6S221C44v117Ev();
extern void _ZN6S221C44v118Ev();
extern void _ZN6S221C44v119Ev();
extern void _ZN6S221C44v120Ev();
extern void _ZN6S221C44v121Ev();
extern void _ZN6S221C44v122Ev();
extern void _ZN6S221C44v123Ev();
extern void _ZN6S221C44v124Ev();
extern void _ZN6S221C44v125Ev();
extern void _ZN6S221C44v126Ev();
extern void _ZN6S221C44v127Ev();
extern void _ZN6S221C44v128Ev();
extern void _ZN6S221C44v129Ev();
extern void _ZN6S221C44v130Ev();
extern void _ZN6S221C44v131Ev();
extern void _ZN6S221C44v132Ev();
extern void _ZN6S221C44v133Ev();
extern void _ZN6S221C44v134Ev();
extern void _ZN6S221C44v135Ev();
extern void _ZN6S221C44v136Ev();
extern void _ZN6S221C44v137Ev();
extern void _ZN6S221C44v138Ev();
extern void _ZN6S221C44v139Ev();
extern void _ZN6S221C44v140Ev();
extern void _ZN6S221C44v141Ev();
extern void _ZN6S221C44v142Ev();
extern void _ZN6S221C44v143Ev();
extern void _ZN6S221C44v144Ev();
extern void _ZN6S221C44v145Ev();
static  VTBL_ENTRY vtc_S221C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S221C4[0]),
  (VTBL_ENTRY)&_ZN6S221C4D1Ev,
  (VTBL_ENTRY)&_ZN6S221C4D0Ev,
  (VTBL_ENTRY)&_ZN6S221C62v4Ev,
  (VTBL_ENTRY)&_ZN6S221C62v5Ev,
  (VTBL_ENTRY)&_ZN6S221C62v6Ev,
  (VTBL_ENTRY)&_ZN6S221C62v7Ev,
  (VTBL_ENTRY)&_ZN6S221C62v8Ev,
  (VTBL_ENTRY)&_ZN6S221C62v9Ev,
  (VTBL_ENTRY)&_ZN6S221C63v10Ev,
  (VTBL_ENTRY)&_ZN6S221C63v11Ev,
  (VTBL_ENTRY)&_ZN6S221C63v12Ev,
  (VTBL_ENTRY)&_ZN6S221C63v13Ev,
  (VTBL_ENTRY)&_ZN6S221C63v14Ev,
  (VTBL_ENTRY)&_ZN6S221C63v15Ev,
  (VTBL_ENTRY)&_ZN6S221C63v16Ev,
  (VTBL_ENTRY)&_ZN6S221C63v17Ev,
  (VTBL_ENTRY)&_ZN6S221C63v18Ev,
  (VTBL_ENTRY)&_ZN6S221C63v19Ev,
  (VTBL_ENTRY)&_ZN6S221C63v20Ev,
  (VTBL_ENTRY)&_ZN6S221C63v21Ev,
  (VTBL_ENTRY)&_ZN6S221C63v22Ev,
  (VTBL_ENTRY)&_ZN6S221C63v23Ev,
  (VTBL_ENTRY)&_ZN6S221C63v24Ev,
  (VTBL_ENTRY)&_ZN6S221C63v25Ev,
  (VTBL_ENTRY)&_ZN6S221C63v26Ev,
  (VTBL_ENTRY)&_ZN6S221C63v27Ev,
  (VTBL_ENTRY)&_ZN6S221C63v28Ev,
  (VTBL_ENTRY)&_ZN6S221C63v29Ev,
  (VTBL_ENTRY)&_ZN6S221C63v30Ev,
  (VTBL_ENTRY)&_ZN6S221C63v31Ev,
  (VTBL_ENTRY)&_ZN6S221C63v32Ev,
  (VTBL_ENTRY)&_ZN6S221C63v33Ev,
  (VTBL_ENTRY)&_ZN6S221C63v34Ev,
  (VTBL_ENTRY)&_ZN6S221C63v35Ev,
  (VTBL_ENTRY)&_ZN6S221C63v36Ev,
  (VTBL_ENTRY)&_ZN6S221C63v37Ev,
  (VTBL_ENTRY)&_ZN6S221C63v38Ev,
  (VTBL_ENTRY)&_ZN6S221C63v39Ev,
  (VTBL_ENTRY)&_ZN6S221C63v40Ev,
  (VTBL_ENTRY)&_ZN6S221C63v41Ev,
  (VTBL_ENTRY)&_ZN6S221C63v42Ev,
  (VTBL_ENTRY)&_ZN6S221C63v43Ev,
  (VTBL_ENTRY)&_ZN6S221C63v44Ev,
  (VTBL_ENTRY)&_ZN6S221C63v45Ev,
  (VTBL_ENTRY)&_ZN6S221C63v46Ev,
  (VTBL_ENTRY)&_ZN6S221C63v47Ev,
  (VTBL_ENTRY)&_ZN6S221C63v48Ev,
  (VTBL_ENTRY)&_ZN6S221C63v49Ev,
  (VTBL_ENTRY)&_ZN6S221C63v50Ev,
  (VTBL_ENTRY)&_ZN6S221C63v51Ev,
  (VTBL_ENTRY)&_ZN6S221C63v52Ev,
  (VTBL_ENTRY)&_ZN6S221C63v53Ev,
  (VTBL_ENTRY)&_ZN6S221C63v54Ev,
  (VTBL_ENTRY)&_ZN6S221C63v55Ev,
  (VTBL_ENTRY)&_ZN6S221C63v56Ev,
  (VTBL_ENTRY)&_ZN6S221C63v57Ev,
  (VTBL_ENTRY)&_ZN6S221C63v58Ev,
  (VTBL_ENTRY)&_ZN6S221C63v59Ev,
  (VTBL_ENTRY)&_ZN6S221C63v60Ev,
  (VTBL_ENTRY)&_ZN6S221C63v61Ev,
  (VTBL_ENTRY)&_ZN6S221C63v62Ev,
  (VTBL_ENTRY)&_ZN6S221C63v63Ev,
  (VTBL_ENTRY)&_ZN6S221C63v64Ev,
  (VTBL_ENTRY)&_ZN6S221C63v65Ev,
  (VTBL_ENTRY)&_ZN6S221C63v66Ev,
  (VTBL_ENTRY)&_ZN6S221C63v67Ev,
  (VTBL_ENTRY)&_ZN6S221C53v68Ev,
  (VTBL_ENTRY)&_ZN6S221C53v69Ev,
  (VTBL_ENTRY)&_ZN6S221C43v70Ev,
  (VTBL_ENTRY)&_ZN6S221C43v71Ev,
  (VTBL_ENTRY)&_ZN6S221C43v72Ev,
  (VTBL_ENTRY)&_ZN6S221C43v73Ev,
  (VTBL_ENTRY)&_ZN6S221C43v74Ev,
  (VTBL_ENTRY)&_ZN6S221C43v75Ev,
  (VTBL_ENTRY)&_ZN6S221C43v76Ev,
  (VTBL_ENTRY)&_ZN6S221C43v77Ev,
  (VTBL_ENTRY)&_ZN6S221C43v78Ev,
  (VTBL_ENTRY)&_ZN6S221C43v79Ev,
  (VTBL_ENTRY)&_ZN6S221C43v80Ev,
  (VTBL_ENTRY)&_ZN6S221C43v81Ev,
  (VTBL_ENTRY)&_ZN6S221C43v82Ev,
  (VTBL_ENTRY)&_ZN6S221C43v83Ev,
  (VTBL_ENTRY)&_ZN6S221C43v84Ev,
  (VTBL_ENTRY)&_ZN6S221C43v85Ev,
  (VTBL_ENTRY)&_ZN6S221C43v86Ev,
  (VTBL_ENTRY)&_ZN6S221C43v87Ev,
  (VTBL_ENTRY)&_ZN6S221C43v88Ev,
  (VTBL_ENTRY)&_ZN6S221C43v89Ev,
  (VTBL_ENTRY)&_ZN6S221C43v90Ev,
  (VTBL_ENTRY)&_ZN6S221C43v91Ev,
  (VTBL_ENTRY)&_ZN6S221C43v92Ev,
  (VTBL_ENTRY)&_ZN6S221C43v93Ev,
  (VTBL_ENTRY)&_ZN6S221C43v94Ev,
  (VTBL_ENTRY)&_ZN6S221C43v95Ev,
  (VTBL_ENTRY)&_ZN6S221C43v96Ev,
  (VTBL_ENTRY)&_ZN6S221C43v97Ev,
  (VTBL_ENTRY)&_ZN6S221C43v98Ev,
  (VTBL_ENTRY)&_ZN6S221C43v99Ev,
  (VTBL_ENTRY)&_ZN6S221C44v100Ev,
  (VTBL_ENTRY)&_ZN6S221C44v101Ev,
  (VTBL_ENTRY)&_ZN6S221C44v102Ev,
  (VTBL_ENTRY)&_ZN6S221C44v103Ev,
  (VTBL_ENTRY)&_ZN6S221C44v104Ev,
  (VTBL_ENTRY)&_ZN6S221C44v105Ev,
  (VTBL_ENTRY)&_ZN6S221C44v106Ev,
  (VTBL_ENTRY)&_ZN6S221C44v107Ev,
  (VTBL_ENTRY)&_ZN6S221C44v108Ev,
  (VTBL_ENTRY)&_ZN6S221C44v109Ev,
  (VTBL_ENTRY)&_ZN6S221C44v110Ev,
  (VTBL_ENTRY)&_ZN6S221C44v111Ev,
  (VTBL_ENTRY)&_ZN6S221C44v112Ev,
  (VTBL_ENTRY)&_ZN6S221C44v113Ev,
  (VTBL_ENTRY)&_ZN6S221C44v114Ev,
  (VTBL_ENTRY)&_ZN6S221C44v115Ev,
  (VTBL_ENTRY)&_ZN6S221C44v116Ev,
  (VTBL_ENTRY)&_ZN6S221C44v117Ev,
  (VTBL_ENTRY)&_ZN6S221C44v118Ev,
  (VTBL_ENTRY)&_ZN6S221C44v119Ev,
  (VTBL_ENTRY)&_ZN6S221C44v120Ev,
  (VTBL_ENTRY)&_ZN6S221C44v121Ev,
  (VTBL_ENTRY)&_ZN6S221C44v122Ev,
  (VTBL_ENTRY)&_ZN6S221C44v123Ev,
  (VTBL_ENTRY)&_ZN6S221C44v124Ev,
  (VTBL_ENTRY)&_ZN6S221C44v125Ev,
  (VTBL_ENTRY)&_ZN6S221C44v126Ev,
  (VTBL_ENTRY)&_ZN6S221C44v127Ev,
  (VTBL_ENTRY)&_ZN6S221C44v128Ev,
  (VTBL_ENTRY)&_ZN6S221C44v129Ev,
  (VTBL_ENTRY)&_ZN6S221C44v130Ev,
  (VTBL_ENTRY)&_ZN6S221C44v131Ev,
  (VTBL_ENTRY)&_ZN6S221C44v132Ev,
  (VTBL_ENTRY)&_ZN6S221C44v133Ev,
  (VTBL_ENTRY)&_ZN6S221C44v134Ev,
  (VTBL_ENTRY)&_ZN6S221C44v135Ev,
  (VTBL_ENTRY)&_ZN6S221C44v136Ev,
  (VTBL_ENTRY)&_ZN6S221C44v137Ev,
  (VTBL_ENTRY)&_ZN6S221C44v138Ev,
  (VTBL_ENTRY)&_ZN6S221C44v139Ev,
  (VTBL_ENTRY)&_ZN6S221C44v140Ev,
  (VTBL_ENTRY)&_ZN6S221C44v141Ev,
  (VTBL_ENTRY)&_ZN6S221C44v142Ev,
  (VTBL_ENTRY)&_ZN6S221C44v143Ev,
  (VTBL_ENTRY)&_ZN6S221C44v144Ev,
  (VTBL_ENTRY)&_ZN6S221C44v145Ev,
};
extern VTBL_ENTRY _ZTI6S221C4[];
extern  VTBL_ENTRY _ZTV6S221C4[];
Class_Descriptor cd_S221C4 = {  "S221C4", // class name
  bases_S221C4, 2,
  &(vtc_S221C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S221C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S221C4),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S221C3  : S221C4 {
  ::S85C27_nt s221c3f0;
  void *s221c3f1[9];
  ::S80C15 s221c3f2;
  ::S85C35 s221c3f3;
  ::S80C24 s221c3f4;
  int s221c3f5;
  unsigned int s221c3f6:1;
  unsigned int s221c3f7:1;
  unsigned int s221c3f8:1;
  unsigned int s221c3f9:1;
  unsigned int s221c3f10:1;
  unsigned int s221c3f11:1;
  unsigned int s221c3f12:1;
  unsigned int s221c3f13:1;
  unsigned int s221c3f14:1;
  unsigned int s221c3f15:1;
  unsigned int s221c3f16:1;
  unsigned int s221c3f17:1;
  unsigned int s221c3f18:1;
  unsigned int s221c3f19:1;
  unsigned int s221c3f20:1;
  unsigned int s221c3f21:1;
  unsigned int s221c3f22:1;
  unsigned int s221c3f23:1;
  unsigned int s221c3f24:1;
  unsigned int s221c3f25:1;
  unsigned int s221c3f26:1;
  unsigned int s221c3f27:1;
  void *s221c3f28;
  char s221c3f29[2];
  ::S80C8_nt s221c3f30;
  ::S85C27_nt s221c3f31;
  ::S85C27_nt s221c3f32;
  void *s221c3f33;
  ::S80C21_nt s221c3f34;
  ::S80C21_nt s221c3f35;
  ::S80C21_nt s221c3f36;
  ::S80C21_nt s221c3f37;
  ::S80C21_nt s221c3f38;
  virtual  ~S221C3(); // _ZN6S221C3D1Ev
  virtual void  v146(); // _ZN6S221C34v146Ev
  virtual void  v147(); // _ZN6S221C34v147Ev
  virtual void  v148(); // _ZN6S221C34v148Ev
  virtual void  v149(); // _ZN6S221C34v149Ev
  virtual void  v150(); // _ZN6S221C34v150Ev
  virtual void  v151(); // _ZN6S221C34v151Ev
  virtual void  v152(); // _ZN6S221C34v152Ev
  virtual void  v153(); // _ZN6S221C34v153Ev
  virtual void  v154(); // _ZN6S221C34v154Ev
  virtual void  v155(); // _ZN6S221C34v155Ev
  virtual void  v156(); // _ZN6S221C34v156Ev
  virtual void  v157(); // _ZN6S221C34v157Ev
  virtual void  v158(); // _ZN6S221C34v158Ev
  virtual void  v159(); // _ZN6S221C34v159Ev
  virtual void  v160(); // _ZN6S221C34v160Ev
  virtual void  v161(); // _ZN6S221C34v161Ev
  virtual void  v162(); // _ZN6S221C34v162Ev
  virtual void  v163(); // _ZN6S221C34v163Ev
  virtual void  v164(); // _ZN6S221C34v164Ev
  virtual void  v165(); // _ZN6S221C34v165Ev
  virtual void  v166(); // _ZN6S221C34v166Ev
  virtual void  v167(); // _ZN6S221C34v167Ev
  virtual void  v168(); // _ZN6S221C34v168Ev
  virtual void  v169(); // _ZN6S221C34v169Ev
  virtual void  v170(); // _ZN6S221C34v170Ev
  virtual void  v171(); // _ZN6S221C34v171Ev
  virtual void  v172(); // _ZN6S221C34v172Ev
  virtual void  v173(); // _ZN6S221C34v173Ev
  virtual void  v174(); // _ZN6S221C34v174Ev
  virtual void  v175(); // _ZN6S221C34v175Ev
  virtual void  v176(); // _ZN6S221C34v176Ev
  virtual void  v177(); // _ZN6S221C34v177Ev
  virtual void  v178(); // _ZN6S221C34v178Ev
  virtual void  v179(); // _ZN6S221C34v179Ev
  virtual void  v180(); // _ZN6S221C34v180Ev
  virtual void  v181(); // _ZN6S221C34v181Ev
  virtual void  v182(); // _ZN6S221C34v182Ev
  virtual void  v183(); // _ZN6S221C34v183Ev
  virtual void  v184(); // _ZN6S221C34v184Ev
  S221C3(); // tgen
};
//SIG(-1 S221C3) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S221C3 ::~S221C3(){ note_dtor("S221C3", this);}
void  S221C3 ::v146(){vfunc_called(this, "_ZN6S221C34v146Ev");}
void  S221C3 ::v147(){vfunc_called(this, "_ZN6S221C34v147Ev");}
void  S221C3 ::v148(){vfunc_called(this, "_ZN6S221C34v148Ev");}
void  S221C3 ::v149(){vfunc_called(this, "_ZN6S221C34v149Ev");}
void  S221C3 ::v150(){vfunc_called(this, "_ZN6S221C34v150Ev");}
void  S221C3 ::v151(){vfunc_called(this, "_ZN6S221C34v151Ev");}
void  S221C3 ::v152(){vfunc_called(this, "_ZN6S221C34v152Ev");}
void  S221C3 ::v153(){vfunc_called(this, "_ZN6S221C34v153Ev");}
void  S221C3 ::v154(){vfunc_called(this, "_ZN6S221C34v154Ev");}
void  S221C3 ::v155(){vfunc_called(this, "_ZN6S221C34v155Ev");}
void  S221C3 ::v156(){vfunc_called(this, "_ZN6S221C34v156Ev");}
void  S221C3 ::v157(){vfunc_called(this, "_ZN6S221C34v157Ev");}
void  S221C3 ::v158(){vfunc_called(this, "_ZN6S221C34v158Ev");}
void  S221C3 ::v159(){vfunc_called(this, "_ZN6S221C34v159Ev");}
void  S221C3 ::v160(){vfunc_called(this, "_ZN6S221C34v160Ev");}
void  S221C3 ::v161(){vfunc_called(this, "_ZN6S221C34v161Ev");}
void  S221C3 ::v162(){vfunc_called(this, "_ZN6S221C34v162Ev");}
void  S221C3 ::v163(){vfunc_called(this, "_ZN6S221C34v163Ev");}
void  S221C3 ::v164(){vfunc_called(this, "_ZN6S221C34v164Ev");}
void  S221C3 ::v165(){vfunc_called(this, "_ZN6S221C34v165Ev");}
void  S221C3 ::v166(){vfunc_called(this, "_ZN6S221C34v166Ev");}
void  S221C3 ::v167(){vfunc_called(this, "_ZN6S221C34v167Ev");}
void  S221C3 ::v168(){vfunc_called(this, "_ZN6S221C34v168Ev");}
void  S221C3 ::v169(){vfunc_called(this, "_ZN6S221C34v169Ev");}
void  S221C3 ::v170(){vfunc_called(this, "_ZN6S221C34v170Ev");}
void  S221C3 ::v171(){vfunc_called(this, "_ZN6S221C34v171Ev");}
void  S221C3 ::v172(){vfunc_called(this, "_ZN6S221C34v172Ev");}
void  S221C3 ::v173(){vfunc_called(this, "_ZN6S221C34v173Ev");}
void  S221C3 ::v174(){vfunc_called(this, "_ZN6S221C34v174Ev");}
void  S221C3 ::v175(){vfunc_called(this, "_ZN6S221C34v175Ev");}
void  S221C3 ::v176(){vfunc_called(this, "_ZN6S221C34v176Ev");}
void  S221C3 ::v177(){vfunc_called(this, "_ZN6S221C34v177Ev");}
void  S221C3 ::v178(){vfunc_called(this, "_ZN6S221C34v178Ev");}
void  S221C3 ::v179(){vfunc_called(this, "_ZN6S221C34v179Ev");}
void  S221C3 ::v180(){vfunc_called(this, "_ZN6S221C34v180Ev");}
void  S221C3 ::v181(){vfunc_called(this, "_ZN6S221C34v181Ev");}
void  S221C3 ::v182(){vfunc_called(this, "_ZN6S221C34v182Ev");}
void  S221C3 ::v183(){vfunc_called(this, "_ZN6S221C34v183Ev");}
void  S221C3 ::v184(){vfunc_called(this, "_ZN6S221C34v184Ev");}
S221C3 ::S221C3(){ note_ctor("S221C3", this);} // tgen

static void Test_S221C3()
{
  extern Class_Descriptor cd_S221C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S221C3, buf);
    S221C3 *dp, &lv = *(dp=new (buf) S221C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S221C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S221C3)");
    check_base_class_offset(lv, (S221C6*)(S221C5*)(S221C4*), 0, "S221C3");
    check_base_class_offset(lv, (S221C5*)(S221C4*), 0, "S221C3");
    check_base_class_offset(lv, (S221C4*), 0, "S221C3");
    check_field_offset(lv, s221c3f0, ABISELECT(464,352), "S221C3.s221c3f0");
    check_field_offset(lv, s221c3f1, ABISELECT(472,360), "S221C3.s221c3f1");
    check_field_offset(lv, s221c3f2, ABISELECT(544,396), "S221C3.s221c3f2");
    check_field_offset(lv, s221c3f3, ABISELECT(560,408), "S221C3.s221c3f3");
    check_field_offset(lv, s221c3f4, ABISELECT(576,420), "S221C3.s221c3f4");
    check_field_offset(lv, s221c3f5, ABISELECT(608,440), "S221C3.s221c3f5");
    set_bf_and_test(lv, s221c3f6, ABISELECT(612,444), 0, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f7, ABISELECT(612,444), 1, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f8, ABISELECT(612,444), 2, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f9, ABISELECT(612,444), 3, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f10, ABISELECT(612,444), 4, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f11, ABISELECT(612,444), 5, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f12, ABISELECT(612,444), 6, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f13, ABISELECT(612,444), 7, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f14, ABISELECT(613,445), 0, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f15, ABISELECT(613,445), 1, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f16, ABISELECT(613,445), 2, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f17, ABISELECT(613,445), 3, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f18, ABISELECT(613,445), 4, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f19, ABISELECT(613,445), 5, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f20, ABISELECT(613,445), 6, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f21, ABISELECT(613,445), 7, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f22, ABISELECT(614,446), 0, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f23, ABISELECT(614,446), 1, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f24, ABISELECT(614,446), 2, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f25, ABISELECT(614,446), 3, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f26, ABISELECT(614,446), 4, 1, 1, "S221C3");
    set_bf_and_test(lv, s221c3f27, ABISELECT(614,446), 5, 1, 1, "S221C3");
    check_field_offset(lv, s221c3f28, ABISELECT(616,448), "S221C3.s221c3f28");
    check_field_offset(lv, s221c3f29, ABISELECT(624,452), "S221C3.s221c3f29");
    check_field_offset(lv, s221c3f30, ABISELECT(628,456), "S221C3.s221c3f30");
    check_field_offset(lv, s221c3f31, ABISELECT(636,464), "S221C3.s221c3f31");
    check_field_offset(lv, s221c3f32, ABISELECT(644,472), "S221C3.s221c3f32");
    check_field_offset(lv, s221c3f33, ABISELECT(656,480), "S221C3.s221c3f33");
    check_field_offset(lv, s221c3f34, ABISELECT(664,484), "S221C3.s221c3f34");
    check_field_offset(lv, s221c3f35, ABISELECT(680,496), "S221C3.s221c3f35");
    check_field_offset(lv, s221c3f36, ABISELECT(696,508), "S221C3.s221c3f36");
    check_field_offset(lv, s221c3f37, ABISELECT(712,520), "S221C3.s221c3f37");
    check_field_offset(lv, s221c3f38, ABISELECT(728,532), "S221C3.s221c3f38");
    test_class_info(&lv, &cd_S221C3);
    dp->~S221C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS221C3(Test_S221C3, "S221C3", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S221C3C1Ev();
extern void _ZN6S221C3D1Ev();
Name_Map name_map_S221C3[] = {
  NSPAIR(_ZN6S221C3C1Ev),
  NSPAIR(_ZN6S221C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S221C6;
extern VTBL_ENTRY _ZTI6S221C6[];
extern  VTBL_ENTRY _ZTV6S221C6[];
extern Class_Descriptor cd_S221C5;
extern VTBL_ENTRY _ZTI6S221C5[];
extern  VTBL_ENTRY _ZTV6S221C5[];
extern Class_Descriptor cd_S221C4;
extern VTBL_ENTRY _ZTI6S221C4[];
extern  VTBL_ENTRY _ZTV6S221C4[];
static Base_Class bases_S221C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S221C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S221C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S221C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S221C3[];
extern void _ZN6S221C3D1Ev();
extern void _ZN6S221C3D0Ev();
extern void _ZN6S221C62v4Ev();
extern void _ZN6S221C62v5Ev();
extern void _ZN6S221C62v6Ev();
extern void _ZN6S221C62v7Ev();
extern void _ZN6S221C62v8Ev();
extern void _ZN6S221C62v9Ev();
extern void _ZN6S221C63v10Ev();
extern void _ZN6S221C63v11Ev();
extern void _ZN6S221C63v12Ev();
extern void _ZN6S221C63v13Ev();
extern void _ZN6S221C63v14Ev();
extern void _ZN6S221C63v15Ev();
extern void _ZN6S221C63v16Ev();
extern void _ZN6S221C63v17Ev();
extern void _ZN6S221C63v18Ev();
extern void _ZN6S221C63v19Ev();
extern void _ZN6S221C63v20Ev();
extern void _ZN6S221C63v21Ev();
extern void _ZN6S221C63v22Ev();
extern void _ZN6S221C63v23Ev();
extern void _ZN6S221C63v24Ev();
extern void _ZN6S221C63v25Ev();
extern void _ZN6S221C63v26Ev();
extern void _ZN6S221C63v27Ev();
extern void _ZN6S221C63v28Ev();
extern void _ZN6S221C63v29Ev();
extern void _ZN6S221C63v30Ev();
extern void _ZN6S221C63v31Ev();
extern void _ZN6S221C63v32Ev();
extern void _ZN6S221C63v33Ev();
extern void _ZN6S221C63v34Ev();
extern void _ZN6S221C63v35Ev();
extern void _ZN6S221C63v36Ev();
extern void _ZN6S221C63v37Ev();
extern void _ZN6S221C63v38Ev();
extern void _ZN6S221C63v39Ev();
extern void _ZN6S221C63v40Ev();
extern void _ZN6S221C63v41Ev();
extern void _ZN6S221C63v42Ev();
extern void _ZN6S221C63v43Ev();
extern void _ZN6S221C63v44Ev();
extern void _ZN6S221C63v45Ev();
extern void _ZN6S221C63v46Ev();
extern void _ZN6S221C63v47Ev();
extern void _ZN6S221C63v48Ev();
extern void _ZN6S221C63v49Ev();
extern void _ZN6S221C63v50Ev();
extern void _ZN6S221C63v51Ev();
extern void _ZN6S221C63v52Ev();
extern void _ZN6S221C63v53Ev();
extern void _ZN6S221C63v54Ev();
extern void _ZN6S221C63v55Ev();
extern void _ZN6S221C63v56Ev();
extern void _ZN6S221C63v57Ev();
extern void _ZN6S221C63v58Ev();
extern void _ZN6S221C63v59Ev();
extern void _ZN6S221C63v60Ev();
extern void _ZN6S221C63v61Ev();
extern void _ZN6S221C63v62Ev();
extern void _ZN6S221C63v63Ev();
extern void _ZN6S221C63v64Ev();
extern void _ZN6S221C63v65Ev();
extern void _ZN6S221C63v66Ev();
extern void _ZN6S221C63v67Ev();
extern void _ZN6S221C53v68Ev();
extern void _ZN6S221C53v69Ev();
extern void _ZN6S221C43v70Ev();
extern void _ZN6S221C43v71Ev();
extern void _ZN6S221C43v72Ev();
extern void _ZN6S221C43v73Ev();
extern void _ZN6S221C43v74Ev();
extern void _ZN6S221C43v75Ev();
extern void _ZN6S221C43v76Ev();
extern void _ZN6S221C43v77Ev();
extern void _ZN6S221C43v78Ev();
extern void _ZN6S221C43v79Ev();
extern void _ZN6S221C43v80Ev();
extern void _ZN6S221C43v81Ev();
extern void _ZN6S221C43v82Ev();
extern void _ZN6S221C43v83Ev();
extern void _ZN6S221C43v84Ev();
extern void _ZN6S221C43v85Ev();
extern void _ZN6S221C43v86Ev();
extern void _ZN6S221C43v87Ev();
extern void _ZN6S221C43v88Ev();
extern void _ZN6S221C43v89Ev();
extern void _ZN6S221C43v90Ev();
extern void _ZN6S221C43v91Ev();
extern void _ZN6S221C43v92Ev();
extern void _ZN6S221C43v93Ev();
extern void _ZN6S221C43v94Ev();
extern void _ZN6S221C43v95Ev();
extern void _ZN6S221C43v96Ev();
extern void _ZN6S221C43v97Ev();
extern void _ZN6S221C43v98Ev();
extern void _ZN6S221C43v99Ev();
extern void _ZN6S221C44v100Ev();
extern void _ZN6S221C44v101Ev();
extern void _ZN6S221C44v102Ev();
extern void _ZN6S221C44v103Ev();
extern void _ZN6S221C44v104Ev();
extern void _ZN6S221C44v105Ev();
extern void _ZN6S221C44v106Ev();
extern void _ZN6S221C44v107Ev();
extern void _ZN6S221C44v108Ev();
extern void _ZN6S221C44v109Ev();
extern void _ZN6S221C44v110Ev();
extern void _ZN6S221C44v111Ev();
extern void _ZN6S221C44v112Ev();
extern void _ZN6S221C44v113Ev();
extern void _ZN6S221C44v114Ev();
extern void _ZN6S221C44v115Ev();
extern void _ZN6S221C44v116Ev();
extern void _ZN6S221C44v117Ev();
extern void _ZN6S221C44v118Ev();
extern void _ZN6S221C44v119Ev();
extern void _ZN6S221C44v120Ev();
extern void _ZN6S221C44v121Ev();
extern void _ZN6S221C44v122Ev();
extern void _ZN6S221C44v123Ev();
extern void _ZN6S221C44v124Ev();
extern void _ZN6S221C44v125Ev();
extern void _ZN6S221C44v126Ev();
extern void _ZN6S221C44v127Ev();
extern void _ZN6S221C44v128Ev();
extern void _ZN6S221C44v129Ev();
extern void _ZN6S221C44v130Ev();
extern void _ZN6S221C44v131Ev();
extern void _ZN6S221C44v132Ev();
extern void _ZN6S221C44v133Ev();
extern void _ZN6S221C44v134Ev();
extern void _ZN6S221C44v135Ev();
extern void _ZN6S221C44v136Ev();
extern void _ZN6S221C44v137Ev();
extern void _ZN6S221C44v138Ev();
extern void _ZN6S221C44v139Ev();
extern void _ZN6S221C44v140Ev();
extern void _ZN6S221C44v141Ev();
extern void _ZN6S221C44v142Ev();
extern void _ZN6S221C44v143Ev();
extern void _ZN6S221C44v144Ev();
extern void _ZN6S221C44v145Ev();
extern void _ZN6S221C34v146Ev();
extern void _ZN6S221C34v147Ev();
extern void _ZN6S221C34v148Ev();
extern void _ZN6S221C34v149Ev();
extern void _ZN6S221C34v150Ev();
extern void _ZN6S221C34v151Ev();
extern void _ZN6S221C34v152Ev();
extern void _ZN6S221C34v153Ev();
extern void _ZN6S221C34v154Ev();
extern void _ZN6S221C34v155Ev();
extern void _ZN6S221C34v156Ev();
extern void _ZN6S221C34v157Ev();
extern void _ZN6S221C34v158Ev();
extern void _ZN6S221C34v159Ev();
extern void _ZN6S221C34v160Ev();
extern void _ZN6S221C34v161Ev();
extern void _ZN6S221C34v162Ev();
extern void _ZN6S221C34v163Ev();
extern void _ZN6S221C34v164Ev();
extern void _ZN6S221C34v165Ev();
extern void _ZN6S221C34v166Ev();
extern void _ZN6S221C34v167Ev();
extern void _ZN6S221C34v168Ev();
extern void _ZN6S221C34v169Ev();
extern void _ZN6S221C34v170Ev();
extern void _ZN6S221C34v171Ev();
extern void _ZN6S221C34v172Ev();
extern void _ZN6S221C34v173Ev();
extern void _ZN6S221C34v174Ev();
extern void _ZN6S221C34v175Ev();
extern void _ZN6S221C34v176Ev();
extern void _ZN6S221C34v177Ev();
extern void _ZN6S221C34v178Ev();
extern void _ZN6S221C34v179Ev();
extern void _ZN6S221C34v180Ev();
extern void _ZN6S221C34v181Ev();
extern void _ZN6S221C34v182Ev();
extern void _ZN6S221C34v183Ev();
extern void _ZN6S221C34v184Ev();
static  VTBL_ENTRY vtc_S221C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S221C3[0]),
  (VTBL_ENTRY)&_ZN6S221C3D1Ev,
  (VTBL_ENTRY)&_ZN6S221C3D0Ev,
  (VTBL_ENTRY)&_ZN6S221C62v4Ev,
  (VTBL_ENTRY)&_ZN6S221C62v5Ev,
  (VTBL_ENTRY)&_ZN6S221C62v6Ev,
  (VTBL_ENTRY)&_ZN6S221C62v7Ev,
  (VTBL_ENTRY)&_ZN6S221C62v8Ev,
  (VTBL_ENTRY)&_ZN6S221C62v9Ev,
  (VTBL_ENTRY)&_ZN6S221C63v10Ev,
  (VTBL_ENTRY)&_ZN6S221C63v11Ev,
  (VTBL_ENTRY)&_ZN6S221C63v12Ev,
  (VTBL_ENTRY)&_ZN6S221C63v13Ev,
  (VTBL_ENTRY)&_ZN6S221C63v14Ev,
  (VTBL_ENTRY)&_ZN6S221C63v15Ev,
  (VTBL_ENTRY)&_ZN6S221C63v16Ev,
  (VTBL_ENTRY)&_ZN6S221C63v17Ev,
  (VTBL_ENTRY)&_ZN6S221C63v18Ev,
  (VTBL_ENTRY)&_ZN6S221C63v19Ev,
  (VTBL_ENTRY)&_ZN6S221C63v20Ev,
  (VTBL_ENTRY)&_ZN6S221C63v21Ev,
  (VTBL_ENTRY)&_ZN6S221C63v22Ev,
  (VTBL_ENTRY)&_ZN6S221C63v23Ev,
  (VTBL_ENTRY)&_ZN6S221C63v24Ev,
  (VTBL_ENTRY)&_ZN6S221C63v25Ev,
  (VTBL_ENTRY)&_ZN6S221C63v26Ev,
  (VTBL_ENTRY)&_ZN6S221C63v27Ev,
  (VTBL_ENTRY)&_ZN6S221C63v28Ev,
  (VTBL_ENTRY)&_ZN6S221C63v29Ev,
  (VTBL_ENTRY)&_ZN6S221C63v30Ev,
  (VTBL_ENTRY)&_ZN6S221C63v31Ev,
  (VTBL_ENTRY)&_ZN6S221C63v32Ev,
  (VTBL_ENTRY)&_ZN6S221C63v33Ev,
  (VTBL_ENTRY)&_ZN6S221C63v34Ev,
  (VTBL_ENTRY)&_ZN6S221C63v35Ev,
  (VTBL_ENTRY)&_ZN6S221C63v36Ev,
  (VTBL_ENTRY)&_ZN6S221C63v37Ev,
  (VTBL_ENTRY)&_ZN6S221C63v38Ev,
  (VTBL_ENTRY)&_ZN6S221C63v39Ev,
  (VTBL_ENTRY)&_ZN6S221C63v40Ev,
  (VTBL_ENTRY)&_ZN6S221C63v41Ev,
  (VTBL_ENTRY)&_ZN6S221C63v42Ev,
  (VTBL_ENTRY)&_ZN6S221C63v43Ev,
  (VTBL_ENTRY)&_ZN6S221C63v44Ev,
  (VTBL_ENTRY)&_ZN6S221C63v45Ev,
  (VTBL_ENTRY)&_ZN6S221C63v46Ev,
  (VTBL_ENTRY)&_ZN6S221C63v47Ev,
  (VTBL_ENTRY)&_ZN6S221C63v48Ev,
  (VTBL_ENTRY)&_ZN6S221C63v49Ev,
  (VTBL_ENTRY)&_ZN6S221C63v50Ev,
  (VTBL_ENTRY)&_ZN6S221C63v51Ev,
  (VTBL_ENTRY)&_ZN6S221C63v52Ev,
  (VTBL_ENTRY)&_ZN6S221C63v53Ev,
  (VTBL_ENTRY)&_ZN6S221C63v54Ev,
  (VTBL_ENTRY)&_ZN6S221C63v55Ev,
  (VTBL_ENTRY)&_ZN6S221C63v56Ev,
  (VTBL_ENTRY)&_ZN6S221C63v57Ev,
  (VTBL_ENTRY)&_ZN6S221C63v58Ev,
  (VTBL_ENTRY)&_ZN6S221C63v59Ev,
  (VTBL_ENTRY)&_ZN6S221C63v60Ev,
  (VTBL_ENTRY)&_ZN6S221C63v61Ev,
  (VTBL_ENTRY)&_ZN6S221C63v62Ev,
  (VTBL_ENTRY)&_ZN6S221C63v63Ev,
  (VTBL_ENTRY)&_ZN6S221C63v64Ev,
  (VTBL_ENTRY)&_ZN6S221C63v65Ev,
  (VTBL_ENTRY)&_ZN6S221C63v66Ev,
  (VTBL_ENTRY)&_ZN6S221C63v67Ev,
  (VTBL_ENTRY)&_ZN6S221C53v68Ev,
  (VTBL_ENTRY)&_ZN6S221C53v69Ev,
  (VTBL_ENTRY)&_ZN6S221C43v70Ev,
  (VTBL_ENTRY)&_ZN6S221C43v71Ev,
  (VTBL_ENTRY)&_ZN6S221C43v72Ev,
  (VTBL_ENTRY)&_ZN6S221C43v73Ev,
  (VTBL_ENTRY)&_ZN6S221C43v74Ev,
  (VTBL_ENTRY)&_ZN6S221C43v75Ev,
  (VTBL_ENTRY)&_ZN6S221C43v76Ev,
  (VTBL_ENTRY)&_ZN6S221C43v77Ev,
  (VTBL_ENTRY)&_ZN6S221C43v78Ev,
  (VTBL_ENTRY)&_ZN6S221C43v79Ev,
  (VTBL_ENTRY)&_ZN6S221C43v80Ev,
  (VTBL_ENTRY)&_ZN6S221C43v81Ev,
  (VTBL_ENTRY)&_ZN6S221C43v82Ev,
  (VTBL_ENTRY)&_ZN6S221C43v83Ev,
  (VTBL_ENTRY)&_ZN6S221C43v84Ev,
  (VTBL_ENTRY)&_ZN6S221C43v85Ev,
  (VTBL_ENTRY)&_ZN6S221C43v86Ev,
  (VTBL_ENTRY)&_ZN6S221C43v87Ev,
  (VTBL_ENTRY)&_ZN6S221C43v88Ev,
  (VTBL_ENTRY)&_ZN6S221C43v89Ev,
  (VTBL_ENTRY)&_ZN6S221C43v90Ev,
  (VTBL_ENTRY)&_ZN6S221C43v91Ev,
  (VTBL_ENTRY)&_ZN6S221C43v92Ev,
  (VTBL_ENTRY)&_ZN6S221C43v93Ev,
  (VTBL_ENTRY)&_ZN6S221C43v94Ev,
  (VTBL_ENTRY)&_ZN6S221C43v95Ev,
  (VTBL_ENTRY)&_ZN6S221C43v96Ev,
  (VTBL_ENTRY)&_ZN6S221C43v97Ev,
  (VTBL_ENTRY)&_ZN6S221C43v98Ev,
  (VTBL_ENTRY)&_ZN6S221C43v99Ev,
  (VTBL_ENTRY)&_ZN6S221C44v100Ev,
  (VTBL_ENTRY)&_ZN6S221C44v101Ev,
  (VTBL_ENTRY)&_ZN6S221C44v102Ev,
  (VTBL_ENTRY)&_ZN6S221C44v103Ev,
  (VTBL_ENTRY)&_ZN6S221C44v104Ev,
  (VTBL_ENTRY)&_ZN6S221C44v105Ev,
  (VTBL_ENTRY)&_ZN6S221C44v106Ev,
  (VTBL_ENTRY)&_ZN6S221C44v107Ev,
  (VTBL_ENTRY)&_ZN6S221C44v108Ev,
  (VTBL_ENTRY)&_ZN6S221C44v109Ev,
  (VTBL_ENTRY)&_ZN6S221C44v110Ev,
  (VTBL_ENTRY)&_ZN6S221C44v111Ev,
  (VTBL_ENTRY)&_ZN6S221C44v112Ev,
  (VTBL_ENTRY)&_ZN6S221C44v113Ev,
  (VTBL_ENTRY)&_ZN6S221C44v114Ev,
  (VTBL_ENTRY)&_ZN6S221C44v115Ev,
  (VTBL_ENTRY)&_ZN6S221C44v116Ev,
  (VTBL_ENTRY)&_ZN6S221C44v117Ev,
  (VTBL_ENTRY)&_ZN6S221C44v118Ev,
  (VTBL_ENTRY)&_ZN6S221C44v119Ev,
  (VTBL_ENTRY)&_ZN6S221C44v120Ev,
  (VTBL_ENTRY)&_ZN6S221C44v121Ev,
  (VTBL_ENTRY)&_ZN6S221C44v122Ev,
  (VTBL_ENTRY)&_ZN6S221C44v123Ev,
  (VTBL_ENTRY)&_ZN6S221C44v124Ev,
  (VTBL_ENTRY)&_ZN6S221C44v125Ev,
  (VTBL_ENTRY)&_ZN6S221C44v126Ev,
  (VTBL_ENTRY)&_ZN6S221C44v127Ev,
  (VTBL_ENTRY)&_ZN6S221C44v128Ev,
  (VTBL_ENTRY)&_ZN6S221C44v129Ev,
  (VTBL_ENTRY)&_ZN6S221C44v130Ev,
  (VTBL_ENTRY)&_ZN6S221C44v131Ev,
  (VTBL_ENTRY)&_ZN6S221C44v132Ev,
  (VTBL_ENTRY)&_ZN6S221C44v133Ev,
  (VTBL_ENTRY)&_ZN6S221C44v134Ev,
  (VTBL_ENTRY)&_ZN6S221C44v135Ev,
  (VTBL_ENTRY)&_ZN6S221C44v136Ev,
  (VTBL_ENTRY)&_ZN6S221C44v137Ev,
  (VTBL_ENTRY)&_ZN6S221C44v138Ev,
  (VTBL_ENTRY)&_ZN6S221C44v139Ev,
  (VTBL_ENTRY)&_ZN6S221C44v140Ev,
  (VTBL_ENTRY)&_ZN6S221C44v141Ev,
  (VTBL_ENTRY)&_ZN6S221C44v142Ev,
  (VTBL_ENTRY)&_ZN6S221C44v143Ev,
  (VTBL_ENTRY)&_ZN6S221C44v144Ev,
  (VTBL_ENTRY)&_ZN6S221C44v145Ev,
  (VTBL_ENTRY)&_ZN6S221C34v146Ev,
  (VTBL_ENTRY)&_ZN6S221C34v147Ev,
  (VTBL_ENTRY)&_ZN6S221C34v148Ev,
  (VTBL_ENTRY)&_ZN6S221C34v149Ev,
  (VTBL_ENTRY)&_ZN6S221C34v150Ev,
  (VTBL_ENTRY)&_ZN6S221C34v151Ev,
  (VTBL_ENTRY)&_ZN6S221C34v152Ev,
  (VTBL_ENTRY)&_ZN6S221C34v153Ev,
  (VTBL_ENTRY)&_ZN6S221C34v154Ev,
  (VTBL_ENTRY)&_ZN6S221C34v155Ev,
  (VTBL_ENTRY)&_ZN6S221C34v156Ev,
  (VTBL_ENTRY)&_ZN6S221C34v157Ev,
  (VTBL_ENTRY)&_ZN6S221C34v158Ev,
  (VTBL_ENTRY)&_ZN6S221C34v159Ev,
  (VTBL_ENTRY)&_ZN6S221C34v160Ev,
  (VTBL_ENTRY)&_ZN6S221C34v161Ev,
  (VTBL_ENTRY)&_ZN6S221C34v162Ev,
  (VTBL_ENTRY)&_ZN6S221C34v163Ev,
  (VTBL_ENTRY)&_ZN6S221C34v164Ev,
  (VTBL_ENTRY)&_ZN6S221C34v165Ev,
  (VTBL_ENTRY)&_ZN6S221C34v166Ev,
  (VTBL_ENTRY)&_ZN6S221C34v167Ev,
  (VTBL_ENTRY)&_ZN6S221C34v168Ev,
  (VTBL_ENTRY)&_ZN6S221C34v169Ev,
  (VTBL_ENTRY)&_ZN6S221C34v170Ev,
  (VTBL_ENTRY)&_ZN6S221C34v171Ev,
  (VTBL_ENTRY)&_ZN6S221C34v172Ev,
  (VTBL_ENTRY)&_ZN6S221C34v173Ev,
  (VTBL_ENTRY)&_ZN6S221C34v174Ev,
  (VTBL_ENTRY)&_ZN6S221C34v175Ev,
  (VTBL_ENTRY)&_ZN6S221C34v176Ev,
  (VTBL_ENTRY)&_ZN6S221C34v177Ev,
  (VTBL_ENTRY)&_ZN6S221C34v178Ev,
  (VTBL_ENTRY)&_ZN6S221C34v179Ev,
  (VTBL_ENTRY)&_ZN6S221C34v180Ev,
  (VTBL_ENTRY)&_ZN6S221C34v181Ev,
  (VTBL_ENTRY)&_ZN6S221C34v182Ev,
  (VTBL_ENTRY)&_ZN6S221C34v183Ev,
  (VTBL_ENTRY)&_ZN6S221C34v184Ev,
};
extern VTBL_ENTRY _ZTI6S221C3[];
extern  VTBL_ENTRY _ZTV6S221C3[];
Class_Descriptor cd_S221C3 = {  "S221C3", // class name
  bases_S221C3, 3,
  &(vtc_S221C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S221C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S221C3),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S221C2  : S221C3 {
  unsigned int s221c2f0:1;
  unsigned int s221c2f1:1;
  unsigned int s221c2f2:1;
  unsigned int s221c2f3:1;
  unsigned int s221c2f4:1;
  unsigned int s221c2f5:1;
  void *s221c2f6[8];
  ::S80C21_nt s221c2f7;
  ::S80C21_nt s221c2f8;
  ::S80C21_nt s221c2f9;
  virtual  ~S221C2(); // _ZN6S221C2D1Ev
  virtual void  v185(); // _ZN6S221C24v185Ev
  virtual void  v186(); // _ZN6S221C24v186Ev
  virtual void  v187(); // _ZN6S221C24v187Ev
  virtual void  v188(); // _ZN6S221C24v188Ev
  virtual void  v189(); // _ZN6S221C24v189Ev
  virtual void  v190(); // _ZN6S221C24v190Ev
  virtual void  v191(); // _ZN6S221C24v191Ev
  virtual void  v192(); // _ZN6S221C24v192Ev
  virtual void  v193(); // _ZN6S221C24v193Ev
  virtual void  v194(); // _ZN6S221C24v194Ev
  virtual void  v195(); // _ZN6S221C24v195Ev
  virtual void  v196(); // _ZN6S221C24v196Ev
  virtual void  v197(); // _ZN6S221C24v197Ev
  virtual void  v198(); // _ZN6S221C24v198Ev
  virtual void  v199(); // _ZN6S221C24v199Ev
  virtual void  v200(); // _ZN6S221C24v200Ev
  virtual void  v201(); // _ZN6S221C24v201Ev
  virtual void  v202(); // _ZN6S221C24v202Ev
  virtual void  v203(); // _ZN6S221C24v203Ev
  virtual void  v204(); // _ZN6S221C24v204Ev
  virtual void  v205(); // _ZN6S221C24v205Ev
  virtual void  v206(); // _ZN6S221C24v206Ev
  virtual void  v207(); // _ZN6S221C24v207Ev
  S221C2(); // tgen
};
//SIG(-1 S221C2) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S221C2 ::~S221C2(){ note_dtor("S221C2", this);}
void  S221C2 ::v185(){vfunc_called(this, "_ZN6S221C24v185Ev");}
void  S221C2 ::v186(){vfunc_called(this, "_ZN6S221C24v186Ev");}
void  S221C2 ::v187(){vfunc_called(this, "_ZN6S221C24v187Ev");}
void  S221C2 ::v188(){vfunc_called(this, "_ZN6S221C24v188Ev");}
void  S221C2 ::v189(){vfunc_called(this, "_ZN6S221C24v189Ev");}
void  S221C2 ::v190(){vfunc_called(this, "_ZN6S221C24v190Ev");}
void  S221C2 ::v191(){vfunc_called(this, "_ZN6S221C24v191Ev");}
void  S221C2 ::v192(){vfunc_called(this, "_ZN6S221C24v192Ev");}
void  S221C2 ::v193(){vfunc_called(this, "_ZN6S221C24v193Ev");}
void  S221C2 ::v194(){vfunc_called(this, "_ZN6S221C24v194Ev");}
void  S221C2 ::v195(){vfunc_called(this, "_ZN6S221C24v195Ev");}
void  S221C2 ::v196(){vfunc_called(this, "_ZN6S221C24v196Ev");}
void  S221C2 ::v197(){vfunc_called(this, "_ZN6S221C24v197Ev");}
void  S221C2 ::v198(){vfunc_called(this, "_ZN6S221C24v198Ev");}
void  S221C2 ::v199(){vfunc_called(this, "_ZN6S221C24v199Ev");}
void  S221C2 ::v200(){vfunc_called(this, "_ZN6S221C24v200Ev");}
void  S221C2 ::v201(){vfunc_called(this, "_ZN6S221C24v201Ev");}
void  S221C2 ::v202(){vfunc_called(this, "_ZN6S221C24v202Ev");}
void  S221C2 ::v203(){vfunc_called(this, "_ZN6S221C24v203Ev");}
void  S221C2 ::v204(){vfunc_called(this, "_ZN6S221C24v204Ev");}
void  S221C2 ::v205(){vfunc_called(this, "_ZN6S221C24v205Ev");}
void  S221C2 ::v206(){vfunc_called(this, "_ZN6S221C24v206Ev");}
void  S221C2 ::v207(){vfunc_called(this, "_ZN6S221C24v207Ev");}
S221C2 ::S221C2(){ note_ctor("S221C2", this);} // tgen

static void Test_S221C2()
{
  extern Class_Descriptor cd_S221C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S221C2, buf);
    S221C2 *dp, &lv = *(dp=new (buf) S221C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S221C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S221C2)");
    check_base_class_offset(lv, (S221C6*)(S221C5*)(S221C4*)(S221C3*), 0, "S221C2");
    check_base_class_offset(lv, (S221C5*)(S221C4*)(S221C3*), 0, "S221C2");
    check_base_class_offset(lv, (S221C4*)(S221C3*), 0, "S221C2");
    check_base_class_offset(lv, (S221C3*), 0, "S221C2");
    set_bf_and_test(lv, s221c2f0, ABISELECT(744,544), 0, 1, 1, "S221C2");
    set_bf_and_test(lv, s221c2f1, ABISELECT(744,544), 1, 1, 1, "S221C2");
    set_bf_and_test(lv, s221c2f2, ABISELECT(744,544), 2, 1, 1, "S221C2");
    set_bf_and_test(lv, s221c2f3, ABISELECT(744,544), 3, 1, 1, "S221C2");
    set_bf_and_test(lv, s221c2f4, ABISELECT(744,544), 4, 1, 1, "S221C2");
    set_bf_and_test(lv, s221c2f5, ABISELECT(744,544), 5, 1, 1, "S221C2");
    check_field_offset(lv, s221c2f6, ABISELECT(752,548), "S221C2.s221c2f6");
    check_field_offset(lv, s221c2f7, ABISELECT(816,580), "S221C2.s221c2f7");
    check_field_offset(lv, s221c2f8, ABISELECT(832,592), "S221C2.s221c2f8");
    check_field_offset(lv, s221c2f9, ABISELECT(848,604), "S221C2.s221c2f9");
    test_class_info(&lv, &cd_S221C2);
    dp->~S221C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS221C2(Test_S221C2, "S221C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S221C2C1Ev();
extern void _ZN6S221C2D1Ev();
Name_Map name_map_S221C2[] = {
  NSPAIR(_ZN6S221C2C1Ev),
  NSPAIR(_ZN6S221C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S221C6;
extern VTBL_ENTRY _ZTI6S221C6[];
extern  VTBL_ENTRY _ZTV6S221C6[];
extern Class_Descriptor cd_S221C5;
extern VTBL_ENTRY _ZTI6S221C5[];
extern  VTBL_ENTRY _ZTV6S221C5[];
extern Class_Descriptor cd_S221C4;
extern VTBL_ENTRY _ZTI6S221C4[];
extern  VTBL_ENTRY _ZTV6S221C4[];
extern Class_Descriptor cd_S221C3;
extern VTBL_ENTRY _ZTI6S221C3[];
extern  VTBL_ENTRY _ZTV6S221C3[];
static Base_Class bases_S221C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S221C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S221C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S221C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S221C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S221C2[];
extern void _ZN6S221C2D1Ev();
extern void _ZN6S221C2D0Ev();
extern void _ZN6S221C62v4Ev();
extern void _ZN6S221C62v5Ev();
extern void _ZN6S221C62v6Ev();
extern void _ZN6S221C62v7Ev();
extern void _ZN6S221C62v8Ev();
extern void _ZN6S221C62v9Ev();
extern void _ZN6S221C63v10Ev();
extern void _ZN6S221C63v11Ev();
extern void _ZN6S221C63v12Ev();
extern void _ZN6S221C63v13Ev();
extern void _ZN6S221C63v14Ev();
extern void _ZN6S221C63v15Ev();
extern void _ZN6S221C63v16Ev();
extern void _ZN6S221C63v17Ev();
extern void _ZN6S221C63v18Ev();
extern void _ZN6S221C63v19Ev();
extern void _ZN6S221C63v20Ev();
extern void _ZN6S221C63v21Ev();
extern void _ZN6S221C63v22Ev();
extern void _ZN6S221C63v23Ev();
extern void _ZN6S221C63v24Ev();
extern void _ZN6S221C63v25Ev();
extern void _ZN6S221C63v26Ev();
extern void _ZN6S221C63v27Ev();
extern void _ZN6S221C63v28Ev();
extern void _ZN6S221C63v29Ev();
extern void _ZN6S221C63v30Ev();
extern void _ZN6S221C63v31Ev();
extern void _ZN6S221C63v32Ev();
extern void _ZN6S221C63v33Ev();
extern void _ZN6S221C63v34Ev();
extern void _ZN6S221C63v35Ev();
extern void _ZN6S221C63v36Ev();
extern void _ZN6S221C63v37Ev();
extern void _ZN6S221C63v38Ev();
extern void _ZN6S221C63v39Ev();
extern void _ZN6S221C63v40Ev();
extern void _ZN6S221C63v41Ev();
extern void _ZN6S221C63v42Ev();
extern void _ZN6S221C63v43Ev();
extern void _ZN6S221C63v44Ev();
extern void _ZN6S221C63v45Ev();
extern void _ZN6S221C63v46Ev();
extern void _ZN6S221C63v47Ev();
extern void _ZN6S221C63v48Ev();
extern void _ZN6S221C63v49Ev();
extern void _ZN6S221C63v50Ev();
extern void _ZN6S221C63v51Ev();
extern void _ZN6S221C63v52Ev();
extern void _ZN6S221C63v53Ev();
extern void _ZN6S221C63v54Ev();
extern void _ZN6S221C63v55Ev();
extern void _ZN6S221C63v56Ev();
extern void _ZN6S221C63v57Ev();
extern void _ZN6S221C63v58Ev();
extern void _ZN6S221C63v59Ev();
extern void _ZN6S221C63v60Ev();
extern void _ZN6S221C63v61Ev();
extern void _ZN6S221C63v62Ev();
extern void _ZN6S221C63v63Ev();
extern void _ZN6S221C63v64Ev();
extern void _ZN6S221C63v65Ev();
extern void _ZN6S221C63v66Ev();
extern void _ZN6S221C63v67Ev();
extern void _ZN6S221C53v68Ev();
extern void _ZN6S221C53v69Ev();
extern void _ZN6S221C43v70Ev();
extern void _ZN6S221C43v71Ev();
extern void _ZN6S221C43v72Ev();
extern void _ZN6S221C43v73Ev();
extern void _ZN6S221C43v74Ev();
extern void _ZN6S221C43v75Ev();
extern void _ZN6S221C43v76Ev();
extern void _ZN6S221C43v77Ev();
extern void _ZN6S221C43v78Ev();
extern void _ZN6S221C43v79Ev();
extern void _ZN6S221C43v80Ev();
extern void _ZN6S221C43v81Ev();
extern void _ZN6S221C43v82Ev();
extern void _ZN6S221C43v83Ev();
extern void _ZN6S221C43v84Ev();
extern void _ZN6S221C43v85Ev();
extern void _ZN6S221C43v86Ev();
extern void _ZN6S221C43v87Ev();
extern void _ZN6S221C43v88Ev();
extern void _ZN6S221C43v89Ev();
extern void _ZN6S221C43v90Ev();
extern void _ZN6S221C43v91Ev();
extern void _ZN6S221C43v92Ev();
extern void _ZN6S221C43v93Ev();
extern void _ZN6S221C43v94Ev();
extern void _ZN6S221C43v95Ev();
extern void _ZN6S221C43v96Ev();
extern void _ZN6S221C43v97Ev();
extern void _ZN6S221C43v98Ev();
extern void _ZN6S221C43v99Ev();
extern void _ZN6S221C44v100Ev();
extern void _ZN6S221C44v101Ev();
extern void _ZN6S221C44v102Ev();
extern void _ZN6S221C44v103Ev();
extern void _ZN6S221C44v104Ev();
extern void _ZN6S221C44v105Ev();
extern void _ZN6S221C44v106Ev();
extern void _ZN6S221C44v107Ev();
extern void _ZN6S221C44v108Ev();
extern void _ZN6S221C44v109Ev();
extern void _ZN6S221C44v110Ev();
extern void _ZN6S221C44v111Ev();
extern void _ZN6S221C44v112Ev();
extern void _ZN6S221C44v113Ev();
extern void _ZN6S221C44v114Ev();
extern void _ZN6S221C44v115Ev();
extern void _ZN6S221C44v116Ev();
extern void _ZN6S221C44v117Ev();
extern void _ZN6S221C44v118Ev();
extern void _ZN6S221C44v119Ev();
extern void _ZN6S221C44v120Ev();
extern void _ZN6S221C44v121Ev();
extern void _ZN6S221C44v122Ev();
extern void _ZN6S221C44v123Ev();
extern void _ZN6S221C44v124Ev();
extern void _ZN6S221C44v125Ev();
extern void _ZN6S221C44v126Ev();
extern void _ZN6S221C44v127Ev();
extern void _ZN6S221C44v128Ev();
extern void _ZN6S221C44v129Ev();
extern void _ZN6S221C44v130Ev();
extern void _ZN6S221C44v131Ev();
extern void _ZN6S221C44v132Ev();
extern void _ZN6S221C44v133Ev();
extern void _ZN6S221C44v134Ev();
extern void _ZN6S221C44v135Ev();
extern void _ZN6S221C44v136Ev();
extern void _ZN6S221C44v137Ev();
extern void _ZN6S221C44v138Ev();
extern void _ZN6S221C44v139Ev();
extern void _ZN6S221C44v140Ev();
extern void _ZN6S221C44v141Ev();
extern void _ZN6S221C44v142Ev();
extern void _ZN6S221C44v143Ev();
extern void _ZN6S221C44v144Ev();
extern void _ZN6S221C44v145Ev();
extern void _ZN6S221C34v146Ev();
extern void _ZN6S221C34v147Ev();
extern void _ZN6S221C34v148Ev();
extern void _ZN6S221C34v149Ev();
extern void _ZN6S221C34v150Ev();
extern void _ZN6S221C34v151Ev();
extern void _ZN6S221C34v152Ev();
extern void _ZN6S221C34v153Ev();
extern void _ZN6S221C34v154Ev();
extern void _ZN6S221C34v155Ev();
extern void _ZN6S221C34v156Ev();
extern void _ZN6S221C34v157Ev();
extern void _ZN6S221C34v158Ev();
extern void _ZN6S221C34v159Ev();
extern void _ZN6S221C34v160Ev();
extern void _ZN6S221C34v161Ev();
extern void _ZN6S221C34v162Ev();
extern void _ZN6S221C34v163Ev();
extern void _ZN6S221C34v164Ev();
extern void _ZN6S221C34v165Ev();
extern void _ZN6S221C34v166Ev();
extern void _ZN6S221C34v167Ev();
extern void _ZN6S221C34v168Ev();
extern void _ZN6S221C34v169Ev();
extern void _ZN6S221C34v170Ev();
extern void _ZN6S221C34v171Ev();
extern void _ZN6S221C34v172Ev();
extern void _ZN6S221C34v173Ev();
extern void _ZN6S221C34v174Ev();
extern void _ZN6S221C34v175Ev();
extern void _ZN6S221C34v176Ev();
extern void _ZN6S221C34v177Ev();
extern void _ZN6S221C34v178Ev();
extern void _ZN6S221C34v179Ev();
extern void _ZN6S221C34v180Ev();
extern void _ZN6S221C34v181Ev();
extern void _ZN6S221C34v182Ev();
extern void _ZN6S221C34v183Ev();
extern void _ZN6S221C34v184Ev();
extern void _ZN6S221C24v185Ev();
extern void _ZN6S221C24v186Ev();
extern void _ZN6S221C24v187Ev();
extern void _ZN6S221C24v188Ev();
extern void _ZN6S221C24v189Ev();
extern void _ZN6S221C24v190Ev();
extern void _ZN6S221C24v191Ev();
extern void _ZN6S221C24v192Ev();
extern void _ZN6S221C24v193Ev();
extern void _ZN6S221C24v194Ev();
extern void _ZN6S221C24v195Ev();
extern void _ZN6S221C24v196Ev();
extern void _ZN6S221C24v197Ev();
extern void _ZN6S221C24v198Ev();
extern void _ZN6S221C24v199Ev();
extern void _ZN6S221C24v200Ev();
extern void _ZN6S221C24v201Ev();
extern void _ZN6S221C24v202Ev();
extern void _ZN6S221C24v203Ev();
extern void _ZN6S221C24v204Ev();
extern void _ZN6S221C24v205Ev();
extern void _ZN6S221C24v206Ev();
extern void _ZN6S221C24v207Ev();
static  VTBL_ENTRY vtc_S221C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S221C2[0]),
  (VTBL_ENTRY)&_ZN6S221C2D1Ev,
  (VTBL_ENTRY)&_ZN6S221C2D0Ev,
  (VTBL_ENTRY)&_ZN6S221C62v4Ev,
  (VTBL_ENTRY)&_ZN6S221C62v5Ev,
  (VTBL_ENTRY)&_ZN6S221C62v6Ev,
  (VTBL_ENTRY)&_ZN6S221C62v7Ev,
  (VTBL_ENTRY)&_ZN6S221C62v8Ev,
  (VTBL_ENTRY)&_ZN6S221C62v9Ev,
  (VTBL_ENTRY)&_ZN6S221C63v10Ev,
  (VTBL_ENTRY)&_ZN6S221C63v11Ev,
  (VTBL_ENTRY)&_ZN6S221C63v12Ev,
  (VTBL_ENTRY)&_ZN6S221C63v13Ev,
  (VTBL_ENTRY)&_ZN6S221C63v14Ev,
  (VTBL_ENTRY)&_ZN6S221C63v15Ev,
  (VTBL_ENTRY)&_ZN6S221C63v16Ev,
  (VTBL_ENTRY)&_ZN6S221C63v17Ev,
  (VTBL_ENTRY)&_ZN6S221C63v18Ev,
  (VTBL_ENTRY)&_ZN6S221C63v19Ev,
  (VTBL_ENTRY)&_ZN6S221C63v20Ev,
  (VTBL_ENTRY)&_ZN6S221C63v21Ev,
  (VTBL_ENTRY)&_ZN6S221C63v22Ev,
  (VTBL_ENTRY)&_ZN6S221C63v23Ev,
  (VTBL_ENTRY)&_ZN6S221C63v24Ev,
  (VTBL_ENTRY)&_ZN6S221C63v25Ev,
  (VTBL_ENTRY)&_ZN6S221C63v26Ev,
  (VTBL_ENTRY)&_ZN6S221C63v27Ev,
  (VTBL_ENTRY)&_ZN6S221C63v28Ev,
  (VTBL_ENTRY)&_ZN6S221C63v29Ev,
  (VTBL_ENTRY)&_ZN6S221C63v30Ev,
  (VTBL_ENTRY)&_ZN6S221C63v31Ev,
  (VTBL_ENTRY)&_ZN6S221C63v32Ev,
  (VTBL_ENTRY)&_ZN6S221C63v33Ev,
  (VTBL_ENTRY)&_ZN6S221C63v34Ev,
  (VTBL_ENTRY)&_ZN6S221C63v35Ev,
  (VTBL_ENTRY)&_ZN6S221C63v36Ev,
  (VTBL_ENTRY)&_ZN6S221C63v37Ev,
  (VTBL_ENTRY)&_ZN6S221C63v38Ev,
  (VTBL_ENTRY)&_ZN6S221C63v39Ev,
  (VTBL_ENTRY)&_ZN6S221C63v40Ev,
  (VTBL_ENTRY)&_ZN6S221C63v41Ev,
  (VTBL_ENTRY)&_ZN6S221C63v42Ev,
  (VTBL_ENTRY)&_ZN6S221C63v43Ev,
  (VTBL_ENTRY)&_ZN6S221C63v44Ev,
  (VTBL_ENTRY)&_ZN6S221C63v45Ev,
  (VTBL_ENTRY)&_ZN6S221C63v46Ev,
  (VTBL_ENTRY)&_ZN6S221C63v47Ev,
  (VTBL_ENTRY)&_ZN6S221C63v48Ev,
  (VTBL_ENTRY)&_ZN6S221C63v49Ev,
  (VTBL_ENTRY)&_ZN6S221C63v50Ev,
  (VTBL_ENTRY)&_ZN6S221C63v51Ev,
  (VTBL_ENTRY)&_ZN6S221C63v52Ev,
  (VTBL_ENTRY)&_ZN6S221C63v53Ev,
  (VTBL_ENTRY)&_ZN6S221C63v54Ev,
  (VTBL_ENTRY)&_ZN6S221C63v55Ev,
  (VTBL_ENTRY)&_ZN6S221C63v56Ev,
  (VTBL_ENTRY)&_ZN6S221C63v57Ev,
  (VTBL_ENTRY)&_ZN6S221C63v58Ev,
  (VTBL_ENTRY)&_ZN6S221C63v59Ev,
  (VTBL_ENTRY)&_ZN6S221C63v60Ev,
  (VTBL_ENTRY)&_ZN6S221C63v61Ev,
  (VTBL_ENTRY)&_ZN6S221C63v62Ev,
  (VTBL_ENTRY)&_ZN6S221C63v63Ev,
  (VTBL_ENTRY)&_ZN6S221C63v64Ev,
  (VTBL_ENTRY)&_ZN6S221C63v65Ev,
  (VTBL_ENTRY)&_ZN6S221C63v66Ev,
  (VTBL_ENTRY)&_ZN6S221C63v67Ev,
  (VTBL_ENTRY)&_ZN6S221C53v68Ev,
  (VTBL_ENTRY)&_ZN6S221C53v69Ev,
  (VTBL_ENTRY)&_ZN6S221C43v70Ev,
  (VTBL_ENTRY)&_ZN6S221C43v71Ev,
  (VTBL_ENTRY)&_ZN6S221C43v72Ev,
  (VTBL_ENTRY)&_ZN6S221C43v73Ev,
  (VTBL_ENTRY)&_ZN6S221C43v74Ev,
  (VTBL_ENTRY)&_ZN6S221C43v75Ev,
  (VTBL_ENTRY)&_ZN6S221C43v76Ev,
  (VTBL_ENTRY)&_ZN6S221C43v77Ev,
  (VTBL_ENTRY)&_ZN6S221C43v78Ev,
  (VTBL_ENTRY)&_ZN6S221C43v79Ev,
  (VTBL_ENTRY)&_ZN6S221C43v80Ev,
  (VTBL_ENTRY)&_ZN6S221C43v81Ev,
  (VTBL_ENTRY)&_ZN6S221C43v82Ev,
  (VTBL_ENTRY)&_ZN6S221C43v83Ev,
  (VTBL_ENTRY)&_ZN6S221C43v84Ev,
  (VTBL_ENTRY)&_ZN6S221C43v85Ev,
  (VTBL_ENTRY)&_ZN6S221C43v86Ev,
  (VTBL_ENTRY)&_ZN6S221C43v87Ev,
  (VTBL_ENTRY)&_ZN6S221C43v88Ev,
  (VTBL_ENTRY)&_ZN6S221C43v89Ev,
  (VTBL_ENTRY)&_ZN6S221C43v90Ev,
  (VTBL_ENTRY)&_ZN6S221C43v91Ev,
  (VTBL_ENTRY)&_ZN6S221C43v92Ev,
  (VTBL_ENTRY)&_ZN6S221C43v93Ev,
  (VTBL_ENTRY)&_ZN6S221C43v94Ev,
  (VTBL_ENTRY)&_ZN6S221C43v95Ev,
  (VTBL_ENTRY)&_ZN6S221C43v96Ev,
  (VTBL_ENTRY)&_ZN6S221C43v97Ev,
  (VTBL_ENTRY)&_ZN6S221C43v98Ev,
  (VTBL_ENTRY)&_ZN6S221C43v99Ev,
  (VTBL_ENTRY)&_ZN6S221C44v100Ev,
  (VTBL_ENTRY)&_ZN6S221C44v101Ev,
  (VTBL_ENTRY)&_ZN6S221C44v102Ev,
  (VTBL_ENTRY)&_ZN6S221C44v103Ev,
  (VTBL_ENTRY)&_ZN6S221C44v104Ev,
  (VTBL_ENTRY)&_ZN6S221C44v105Ev,
  (VTBL_ENTRY)&_ZN6S221C44v106Ev,
  (VTBL_ENTRY)&_ZN6S221C44v107Ev,
  (VTBL_ENTRY)&_ZN6S221C44v108Ev,
  (VTBL_ENTRY)&_ZN6S221C44v109Ev,
  (VTBL_ENTRY)&_ZN6S221C44v110Ev,
  (VTBL_ENTRY)&_ZN6S221C44v111Ev,
  (VTBL_ENTRY)&_ZN6S221C44v112Ev,
  (VTBL_ENTRY)&_ZN6S221C44v113Ev,
  (VTBL_ENTRY)&_ZN6S221C44v114Ev,
  (VTBL_ENTRY)&_ZN6S221C44v115Ev,
  (VTBL_ENTRY)&_ZN6S221C44v116Ev,
  (VTBL_ENTRY)&_ZN6S221C44v117Ev,
  (VTBL_ENTRY)&_ZN6S221C44v118Ev,
  (VTBL_ENTRY)&_ZN6S221C44v119Ev,
  (VTBL_ENTRY)&_ZN6S221C44v120Ev,
  (VTBL_ENTRY)&_ZN6S221C44v121Ev,
  (VTBL_ENTRY)&_ZN6S221C44v122Ev,
  (VTBL_ENTRY)&_ZN6S221C44v123Ev,
  (VTBL_ENTRY)&_ZN6S221C44v124Ev,
  (VTBL_ENTRY)&_ZN6S221C44v125Ev,
  (VTBL_ENTRY)&_ZN6S221C44v126Ev,
  (VTBL_ENTRY)&_ZN6S221C44v127Ev,
  (VTBL_ENTRY)&_ZN6S221C44v128Ev,
  (VTBL_ENTRY)&_ZN6S221C44v129Ev,
  (VTBL_ENTRY)&_ZN6S221C44v130Ev,
  (VTBL_ENTRY)&_ZN6S221C44v131Ev,
  (VTBL_ENTRY)&_ZN6S221C44v132Ev,
  (VTBL_ENTRY)&_ZN6S221C44v133Ev,
  (VTBL_ENTRY)&_ZN6S221C44v134Ev,
  (VTBL_ENTRY)&_ZN6S221C44v135Ev,
  (VTBL_ENTRY)&_ZN6S221C44v136Ev,
  (VTBL_ENTRY)&_ZN6S221C44v137Ev,
  (VTBL_ENTRY)&_ZN6S221C44v138Ev,
  (VTBL_ENTRY)&_ZN6S221C44v139Ev,
  (VTBL_ENTRY)&_ZN6S221C44v140Ev,
  (VTBL_ENTRY)&_ZN6S221C44v141Ev,
  (VTBL_ENTRY)&_ZN6S221C44v142Ev,
  (VTBL_ENTRY)&_ZN6S221C44v143Ev,
  (VTBL_ENTRY)&_ZN6S221C44v144Ev,
  (VTBL_ENTRY)&_ZN6S221C44v145Ev,
  (VTBL_ENTRY)&_ZN6S221C34v146Ev,
  (VTBL_ENTRY)&_ZN6S221C34v147Ev,
  (VTBL_ENTRY)&_ZN6S221C34v148Ev,
  (VTBL_ENTRY)&_ZN6S221C34v149Ev,
  (VTBL_ENTRY)&_ZN6S221C34v150Ev,
  (VTBL_ENTRY)&_ZN6S221C34v151Ev,
  (VTBL_ENTRY)&_ZN6S221C34v152Ev,
  (VTBL_ENTRY)&_ZN6S221C34v153Ev,
  (VTBL_ENTRY)&_ZN6S221C34v154Ev,
  (VTBL_ENTRY)&_ZN6S221C34v155Ev,
  (VTBL_ENTRY)&_ZN6S221C34v156Ev,
  (VTBL_ENTRY)&_ZN6S221C34v157Ev,
  (VTBL_ENTRY)&_ZN6S221C34v158Ev,
  (VTBL_ENTRY)&_ZN6S221C34v159Ev,
  (VTBL_ENTRY)&_ZN6S221C34v160Ev,
  (VTBL_ENTRY)&_ZN6S221C34v161Ev,
  (VTBL_ENTRY)&_ZN6S221C34v162Ev,
  (VTBL_ENTRY)&_ZN6S221C34v163Ev,
  (VTBL_ENTRY)&_ZN6S221C34v164Ev,
  (VTBL_ENTRY)&_ZN6S221C34v165Ev,
  (VTBL_ENTRY)&_ZN6S221C34v166Ev,
  (VTBL_ENTRY)&_ZN6S221C34v167Ev,
  (VTBL_ENTRY)&_ZN6S221C34v168Ev,
  (VTBL_ENTRY)&_ZN6S221C34v169Ev,
  (VTBL_ENTRY)&_ZN6S221C34v170Ev,
  (VTBL_ENTRY)&_ZN6S221C34v171Ev,
  (VTBL_ENTRY)&_ZN6S221C34v172Ev,
  (VTBL_ENTRY)&_ZN6S221C34v173Ev,
  (VTBL_ENTRY)&_ZN6S221C34v174Ev,
  (VTBL_ENTRY)&_ZN6S221C34v175Ev,
  (VTBL_ENTRY)&_ZN6S221C34v176Ev,
  (VTBL_ENTRY)&_ZN6S221C34v177Ev,
  (VTBL_ENTRY)&_ZN6S221C34v178Ev,
  (VTBL_ENTRY)&_ZN6S221C34v179Ev,
  (VTBL_ENTRY)&_ZN6S221C34v180Ev,
  (VTBL_ENTRY)&_ZN6S221C34v181Ev,
  (VTBL_ENTRY)&_ZN6S221C34v182Ev,
  (VTBL_ENTRY)&_ZN6S221C34v183Ev,
  (VTBL_ENTRY)&_ZN6S221C34v184Ev,
  (VTBL_ENTRY)&_ZN6S221C24v185Ev,
  (VTBL_ENTRY)&_ZN6S221C24v186Ev,
  (VTBL_ENTRY)&_ZN6S221C24v187Ev,
  (VTBL_ENTRY)&_ZN6S221C24v188Ev,
  (VTBL_ENTRY)&_ZN6S221C24v189Ev,
  (VTBL_ENTRY)&_ZN6S221C24v190Ev,
  (VTBL_ENTRY)&_ZN6S221C24v191Ev,
  (VTBL_ENTRY)&_ZN6S221C24v192Ev,
  (VTBL_ENTRY)&_ZN6S221C24v193Ev,
  (VTBL_ENTRY)&_ZN6S221C24v194Ev,
  (VTBL_ENTRY)&_ZN6S221C24v195Ev,
  (VTBL_ENTRY)&_ZN6S221C24v196Ev,
  (VTBL_ENTRY)&_ZN6S221C24v197Ev,
  (VTBL_ENTRY)&_ZN6S221C24v198Ev,
  (VTBL_ENTRY)&_ZN6S221C24v199Ev,
  (VTBL_ENTRY)&_ZN6S221C24v200Ev,
  (VTBL_ENTRY)&_ZN6S221C24v201Ev,
  (VTBL_ENTRY)&_ZN6S221C24v202Ev,
  (VTBL_ENTRY)&_ZN6S221C24v203Ev,
  (VTBL_ENTRY)&_ZN6S221C24v204Ev,
  (VTBL_ENTRY)&_ZN6S221C24v205Ev,
  (VTBL_ENTRY)&_ZN6S221C24v206Ev,
  (VTBL_ENTRY)&_ZN6S221C24v207Ev,
};
extern VTBL_ENTRY _ZTI6S221C2[];
extern  VTBL_ENTRY _ZTV6S221C2[];
Class_Descriptor cd_S221C2 = {  "S221C2", // class name
  bases_S221C2, 4,
  &(vtc_S221C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S221C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S221C2),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S221C1  : S221C2 {
  void *s221c1f0;
  unsigned int s221c1f1:1;
  int s221c1f2;
  virtual  ~S221C1(); // _ZN6S221C1D1Ev
  virtual void  v1(); // _ZN6S221C12v1Ev
  virtual void  v2(); // _ZN6S221C12v2Ev
  virtual void  v3(); // _ZN6S221C12v3Ev
  S221C1(); // tgen
};
//SIG(1 S221C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 Fp Fi:1 Fi}


 S221C1 ::~S221C1(){ note_dtor("S221C1", this);}
void  S221C1 ::v1(){vfunc_called(this, "_ZN6S221C12v1Ev");}
void  S221C1 ::v2(){vfunc_called(this, "_ZN6S221C12v2Ev");}
void  S221C1 ::v3(){vfunc_called(this, "_ZN6S221C12v3Ev");}
S221C1 ::S221C1(){ note_ctor("S221C1", this);} // tgen

static void Test_S221C1()
{
  extern Class_Descriptor cd_S221C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(111,158)];
    init_test(&cd_S221C1, buf);
    S221C1 *dp, &lv = *(dp=new (buf) S221C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(880,628), "sizeof(S221C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S221C1)");
    check_base_class_offset(lv, (S221C6*)(S221C5*)(S221C4*)(S221C3*)(S221C2*), 0, "S221C1");
    check_base_class_offset(lv, (S221C5*)(S221C4*)(S221C3*)(S221C2*), 0, "S221C1");
    check_base_class_offset(lv, (S221C4*)(S221C3*)(S221C2*), 0, "S221C1");
    check_base_class_offset(lv, (S221C3*)(S221C2*), 0, "S221C1");
    check_base_class_offset(lv, (S221C2*), 0, "S221C1");
    check_field_offset(lv, s221c1f0, ABISELECT(864,616), "S221C1.s221c1f0");
    set_bf_and_test(lv, s221c1f1, ABISELECT(872,620), 0, 1, 1, "S221C1");
    check_field_offset(lv, s221c1f2, ABISELECT(876,624), "S221C1.s221c1f2");
    test_class_info(&lv, &cd_S221C1);
    dp->~S221C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS221C1(Test_S221C1, "S221C1", ABISELECT(880,628));

#else // __cplusplus

extern void _ZN6S221C1C1Ev();
extern void _ZN6S221C1D1Ev();
Name_Map name_map_S221C1[] = {
  NSPAIR(_ZN6S221C1C1Ev),
  NSPAIR(_ZN6S221C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S221C6;
extern VTBL_ENTRY _ZTI6S221C6[];
extern  VTBL_ENTRY _ZTV6S221C6[];
extern Class_Descriptor cd_S221C5;
extern VTBL_ENTRY _ZTI6S221C5[];
extern  VTBL_ENTRY _ZTV6S221C5[];
extern Class_Descriptor cd_S221C4;
extern VTBL_ENTRY _ZTI6S221C4[];
extern  VTBL_ENTRY _ZTV6S221C4[];
extern Class_Descriptor cd_S221C3;
extern VTBL_ENTRY _ZTI6S221C3[];
extern  VTBL_ENTRY _ZTV6S221C3[];
extern Class_Descriptor cd_S221C2;
extern VTBL_ENTRY _ZTI6S221C2[];
extern  VTBL_ENTRY _ZTV6S221C2[];
static Base_Class bases_S221C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S221C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S221C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S221C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S221C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S221C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S221C1[];
extern void _ZN6S221C1D1Ev();
extern void _ZN6S221C1D0Ev();
extern void _ZN6S221C62v4Ev();
extern void _ZN6S221C62v5Ev();
extern void _ZN6S221C62v6Ev();
extern void _ZN6S221C62v7Ev();
extern void _ZN6S221C62v8Ev();
extern void _ZN6S221C62v9Ev();
extern void _ZN6S221C63v10Ev();
extern void _ZN6S221C63v11Ev();
extern void _ZN6S221C63v12Ev();
extern void _ZN6S221C63v13Ev();
extern void _ZN6S221C63v14Ev();
extern void _ZN6S221C63v15Ev();
extern void _ZN6S221C63v16Ev();
extern void _ZN6S221C63v17Ev();
extern void _ZN6S221C63v18Ev();
extern void _ZN6S221C63v19Ev();
extern void _ZN6S221C63v20Ev();
extern void _ZN6S221C63v21Ev();
extern void _ZN6S221C63v22Ev();
extern void _ZN6S221C63v23Ev();
extern void _ZN6S221C63v24Ev();
extern void _ZN6S221C63v25Ev();
extern void _ZN6S221C63v26Ev();
extern void _ZN6S221C63v27Ev();
extern void _ZN6S221C63v28Ev();
extern void _ZN6S221C63v29Ev();
extern void _ZN6S221C63v30Ev();
extern void _ZN6S221C63v31Ev();
extern void _ZN6S221C63v32Ev();
extern void _ZN6S221C63v33Ev();
extern void _ZN6S221C63v34Ev();
extern void _ZN6S221C63v35Ev();
extern void _ZN6S221C63v36Ev();
extern void _ZN6S221C63v37Ev();
extern void _ZN6S221C63v38Ev();
extern void _ZN6S221C63v39Ev();
extern void _ZN6S221C63v40Ev();
extern void _ZN6S221C63v41Ev();
extern void _ZN6S221C63v42Ev();
extern void _ZN6S221C63v43Ev();
extern void _ZN6S221C63v44Ev();
extern void _ZN6S221C63v45Ev();
extern void _ZN6S221C63v46Ev();
extern void _ZN6S221C63v47Ev();
extern void _ZN6S221C63v48Ev();
extern void _ZN6S221C63v49Ev();
extern void _ZN6S221C63v50Ev();
extern void _ZN6S221C63v51Ev();
extern void _ZN6S221C63v52Ev();
extern void _ZN6S221C63v53Ev();
extern void _ZN6S221C63v54Ev();
extern void _ZN6S221C63v55Ev();
extern void _ZN6S221C63v56Ev();
extern void _ZN6S221C63v57Ev();
extern void _ZN6S221C63v58Ev();
extern void _ZN6S221C63v59Ev();
extern void _ZN6S221C63v60Ev();
extern void _ZN6S221C63v61Ev();
extern void _ZN6S221C63v62Ev();
extern void _ZN6S221C63v63Ev();
extern void _ZN6S221C63v64Ev();
extern void _ZN6S221C63v65Ev();
extern void _ZN6S221C63v66Ev();
extern void _ZN6S221C63v67Ev();
extern void _ZN6S221C53v68Ev();
extern void _ZN6S221C53v69Ev();
extern void _ZN6S221C43v70Ev();
extern void _ZN6S221C43v71Ev();
extern void _ZN6S221C43v72Ev();
extern void _ZN6S221C43v73Ev();
extern void _ZN6S221C43v74Ev();
extern void _ZN6S221C43v75Ev();
extern void _ZN6S221C43v76Ev();
extern void _ZN6S221C43v77Ev();
extern void _ZN6S221C43v78Ev();
extern void _ZN6S221C43v79Ev();
extern void _ZN6S221C43v80Ev();
extern void _ZN6S221C43v81Ev();
extern void _ZN6S221C43v82Ev();
extern void _ZN6S221C43v83Ev();
extern void _ZN6S221C43v84Ev();
extern void _ZN6S221C43v85Ev();
extern void _ZN6S221C43v86Ev();
extern void _ZN6S221C43v87Ev();
extern void _ZN6S221C43v88Ev();
extern void _ZN6S221C43v89Ev();
extern void _ZN6S221C43v90Ev();
extern void _ZN6S221C43v91Ev();
extern void _ZN6S221C43v92Ev();
extern void _ZN6S221C43v93Ev();
extern void _ZN6S221C43v94Ev();
extern void _ZN6S221C43v95Ev();
extern void _ZN6S221C43v96Ev();
extern void _ZN6S221C43v97Ev();
extern void _ZN6S221C43v98Ev();
extern void _ZN6S221C43v99Ev();
extern void _ZN6S221C44v100Ev();
extern void _ZN6S221C44v101Ev();
extern void _ZN6S221C44v102Ev();
extern void _ZN6S221C44v103Ev();
extern void _ZN6S221C44v104Ev();
extern void _ZN6S221C44v105Ev();
extern void _ZN6S221C44v106Ev();
extern void _ZN6S221C44v107Ev();
extern void _ZN6S221C44v108Ev();
extern void _ZN6S221C44v109Ev();
extern void _ZN6S221C44v110Ev();
extern void _ZN6S221C44v111Ev();
extern void _ZN6S221C44v112Ev();
extern void _ZN6S221C44v113Ev();
extern void _ZN6S221C44v114Ev();
extern void _ZN6S221C44v115Ev();
extern void _ZN6S221C44v116Ev();
extern void _ZN6S221C44v117Ev();
extern void _ZN6S221C44v118Ev();
extern void _ZN6S221C44v119Ev();
extern void _ZN6S221C44v120Ev();
extern void _ZN6S221C44v121Ev();
extern void _ZN6S221C44v122Ev();
extern void _ZN6S221C44v123Ev();
extern void _ZN6S221C44v124Ev();
extern void _ZN6S221C44v125Ev();
extern void _ZN6S221C44v126Ev();
extern void _ZN6S221C44v127Ev();
extern void _ZN6S221C44v128Ev();
extern void _ZN6S221C44v129Ev();
extern void _ZN6S221C44v130Ev();
extern void _ZN6S221C44v131Ev();
extern void _ZN6S221C44v132Ev();
extern void _ZN6S221C44v133Ev();
extern void _ZN6S221C44v134Ev();
extern void _ZN6S221C44v135Ev();
extern void _ZN6S221C44v136Ev();
extern void _ZN6S221C44v137Ev();
extern void _ZN6S221C44v138Ev();
extern void _ZN6S221C44v139Ev();
extern void _ZN6S221C44v140Ev();
extern void _ZN6S221C44v141Ev();
extern void _ZN6S221C44v142Ev();
extern void _ZN6S221C44v143Ev();
extern void _ZN6S221C44v144Ev();
extern void _ZN6S221C44v145Ev();
extern void _ZN6S221C34v146Ev();
extern void _ZN6S221C34v147Ev();
extern void _ZN6S221C34v148Ev();
extern void _ZN6S221C34v149Ev();
extern void _ZN6S221C34v150Ev();
extern void _ZN6S221C34v151Ev();
extern void _ZN6S221C34v152Ev();
extern void _ZN6S221C34v153Ev();
extern void _ZN6S221C34v154Ev();
extern void _ZN6S221C34v155Ev();
extern void _ZN6S221C34v156Ev();
extern void _ZN6S221C34v157Ev();
extern void _ZN6S221C34v158Ev();
extern void _ZN6S221C34v159Ev();
extern void _ZN6S221C34v160Ev();
extern void _ZN6S221C34v161Ev();
extern void _ZN6S221C34v162Ev();
extern void _ZN6S221C34v163Ev();
extern void _ZN6S221C34v164Ev();
extern void _ZN6S221C34v165Ev();
extern void _ZN6S221C34v166Ev();
extern void _ZN6S221C34v167Ev();
extern void _ZN6S221C34v168Ev();
extern void _ZN6S221C34v169Ev();
extern void _ZN6S221C34v170Ev();
extern void _ZN6S221C34v171Ev();
extern void _ZN6S221C34v172Ev();
extern void _ZN6S221C34v173Ev();
extern void _ZN6S221C34v174Ev();
extern void _ZN6S221C34v175Ev();
extern void _ZN6S221C34v176Ev();
extern void _ZN6S221C34v177Ev();
extern void _ZN6S221C34v178Ev();
extern void _ZN6S221C34v179Ev();
extern void _ZN6S221C34v180Ev();
extern void _ZN6S221C34v181Ev();
extern void _ZN6S221C34v182Ev();
extern void _ZN6S221C34v183Ev();
extern void _ZN6S221C34v184Ev();
extern void _ZN6S221C24v185Ev();
extern void _ZN6S221C24v186Ev();
extern void _ZN6S221C24v187Ev();
extern void _ZN6S221C24v188Ev();
extern void _ZN6S221C24v189Ev();
extern void _ZN6S221C24v190Ev();
extern void _ZN6S221C24v191Ev();
extern void _ZN6S221C24v192Ev();
extern void _ZN6S221C24v193Ev();
extern void _ZN6S221C24v194Ev();
extern void _ZN6S221C24v195Ev();
extern void _ZN6S221C24v196Ev();
extern void _ZN6S221C24v197Ev();
extern void _ZN6S221C24v198Ev();
extern void _ZN6S221C24v199Ev();
extern void _ZN6S221C24v200Ev();
extern void _ZN6S221C24v201Ev();
extern void _ZN6S221C24v202Ev();
extern void _ZN6S221C24v203Ev();
extern void _ZN6S221C24v204Ev();
extern void _ZN6S221C24v205Ev();
extern void _ZN6S221C24v206Ev();
extern void _ZN6S221C24v207Ev();
extern void _ZN6S221C12v1Ev();
extern void _ZN6S221C12v2Ev();
extern void _ZN6S221C12v3Ev();
static  VTBL_ENTRY vtc_S221C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S221C1[0]),
  (VTBL_ENTRY)&_ZN6S221C1D1Ev,
  (VTBL_ENTRY)&_ZN6S221C1D0Ev,
  (VTBL_ENTRY)&_ZN6S221C62v4Ev,
  (VTBL_ENTRY)&_ZN6S221C62v5Ev,
  (VTBL_ENTRY)&_ZN6S221C62v6Ev,
  (VTBL_ENTRY)&_ZN6S221C62v7Ev,
  (VTBL_ENTRY)&_ZN6S221C62v8Ev,
  (VTBL_ENTRY)&_ZN6S221C62v9Ev,
  (VTBL_ENTRY)&_ZN6S221C63v10Ev,
  (VTBL_ENTRY)&_ZN6S221C63v11Ev,
  (VTBL_ENTRY)&_ZN6S221C63v12Ev,
  (VTBL_ENTRY)&_ZN6S221C63v13Ev,
  (VTBL_ENTRY)&_ZN6S221C63v14Ev,
  (VTBL_ENTRY)&_ZN6S221C63v15Ev,
  (VTBL_ENTRY)&_ZN6S221C63v16Ev,
  (VTBL_ENTRY)&_ZN6S221C63v17Ev,
  (VTBL_ENTRY)&_ZN6S221C63v18Ev,
  (VTBL_ENTRY)&_ZN6S221C63v19Ev,
  (VTBL_ENTRY)&_ZN6S221C63v20Ev,
  (VTBL_ENTRY)&_ZN6S221C63v21Ev,
  (VTBL_ENTRY)&_ZN6S221C63v22Ev,
  (VTBL_ENTRY)&_ZN6S221C63v23Ev,
  (VTBL_ENTRY)&_ZN6S221C63v24Ev,
  (VTBL_ENTRY)&_ZN6S221C63v25Ev,
  (VTBL_ENTRY)&_ZN6S221C63v26Ev,
  (VTBL_ENTRY)&_ZN6S221C63v27Ev,
  (VTBL_ENTRY)&_ZN6S221C63v28Ev,
  (VTBL_ENTRY)&_ZN6S221C63v29Ev,
  (VTBL_ENTRY)&_ZN6S221C63v30Ev,
  (VTBL_ENTRY)&_ZN6S221C63v31Ev,
  (VTBL_ENTRY)&_ZN6S221C63v32Ev,
  (VTBL_ENTRY)&_ZN6S221C63v33Ev,
  (VTBL_ENTRY)&_ZN6S221C63v34Ev,
  (VTBL_ENTRY)&_ZN6S221C63v35Ev,
  (VTBL_ENTRY)&_ZN6S221C63v36Ev,
  (VTBL_ENTRY)&_ZN6S221C63v37Ev,
  (VTBL_ENTRY)&_ZN6S221C63v38Ev,
  (VTBL_ENTRY)&_ZN6S221C63v39Ev,
  (VTBL_ENTRY)&_ZN6S221C63v40Ev,
  (VTBL_ENTRY)&_ZN6S221C63v41Ev,
  (VTBL_ENTRY)&_ZN6S221C63v42Ev,
  (VTBL_ENTRY)&_ZN6S221C63v43Ev,
  (VTBL_ENTRY)&_ZN6S221C63v44Ev,
  (VTBL_ENTRY)&_ZN6S221C63v45Ev,
  (VTBL_ENTRY)&_ZN6S221C63v46Ev,
  (VTBL_ENTRY)&_ZN6S221C63v47Ev,
  (VTBL_ENTRY)&_ZN6S221C63v48Ev,
  (VTBL_ENTRY)&_ZN6S221C63v49Ev,
  (VTBL_ENTRY)&_ZN6S221C63v50Ev,
  (VTBL_ENTRY)&_ZN6S221C63v51Ev,
  (VTBL_ENTRY)&_ZN6S221C63v52Ev,
  (VTBL_ENTRY)&_ZN6S221C63v53Ev,
  (VTBL_ENTRY)&_ZN6S221C63v54Ev,
  (VTBL_ENTRY)&_ZN6S221C63v55Ev,
  (VTBL_ENTRY)&_ZN6S221C63v56Ev,
  (VTBL_ENTRY)&_ZN6S221C63v57Ev,
  (VTBL_ENTRY)&_ZN6S221C63v58Ev,
  (VTBL_ENTRY)&_ZN6S221C63v59Ev,
  (VTBL_ENTRY)&_ZN6S221C63v60Ev,
  (VTBL_ENTRY)&_ZN6S221C63v61Ev,
  (VTBL_ENTRY)&_ZN6S221C63v62Ev,
  (VTBL_ENTRY)&_ZN6S221C63v63Ev,
  (VTBL_ENTRY)&_ZN6S221C63v64Ev,
  (VTBL_ENTRY)&_ZN6S221C63v65Ev,
  (VTBL_ENTRY)&_ZN6S221C63v66Ev,
  (VTBL_ENTRY)&_ZN6S221C63v67Ev,
  (VTBL_ENTRY)&_ZN6S221C53v68Ev,
  (VTBL_ENTRY)&_ZN6S221C53v69Ev,
  (VTBL_ENTRY)&_ZN6S221C43v70Ev,
  (VTBL_ENTRY)&_ZN6S221C43v71Ev,
  (VTBL_ENTRY)&_ZN6S221C43v72Ev,
  (VTBL_ENTRY)&_ZN6S221C43v73Ev,
  (VTBL_ENTRY)&_ZN6S221C43v74Ev,
  (VTBL_ENTRY)&_ZN6S221C43v75Ev,
  (VTBL_ENTRY)&_ZN6S221C43v76Ev,
  (VTBL_ENTRY)&_ZN6S221C43v77Ev,
  (VTBL_ENTRY)&_ZN6S221C43v78Ev,
  (VTBL_ENTRY)&_ZN6S221C43v79Ev,
  (VTBL_ENTRY)&_ZN6S221C43v80Ev,
  (VTBL_ENTRY)&_ZN6S221C43v81Ev,
  (VTBL_ENTRY)&_ZN6S221C43v82Ev,
  (VTBL_ENTRY)&_ZN6S221C43v83Ev,
  (VTBL_ENTRY)&_ZN6S221C43v84Ev,
  (VTBL_ENTRY)&_ZN6S221C43v85Ev,
  (VTBL_ENTRY)&_ZN6S221C43v86Ev,
  (VTBL_ENTRY)&_ZN6S221C43v87Ev,
  (VTBL_ENTRY)&_ZN6S221C43v88Ev,
  (VTBL_ENTRY)&_ZN6S221C43v89Ev,
  (VTBL_ENTRY)&_ZN6S221C43v90Ev,
  (VTBL_ENTRY)&_ZN6S221C43v91Ev,
  (VTBL_ENTRY)&_ZN6S221C43v92Ev,
  (VTBL_ENTRY)&_ZN6S221C43v93Ev,
  (VTBL_ENTRY)&_ZN6S221C43v94Ev,
  (VTBL_ENTRY)&_ZN6S221C43v95Ev,
  (VTBL_ENTRY)&_ZN6S221C43v96Ev,
  (VTBL_ENTRY)&_ZN6S221C43v97Ev,
  (VTBL_ENTRY)&_ZN6S221C43v98Ev,
  (VTBL_ENTRY)&_ZN6S221C43v99Ev,
  (VTBL_ENTRY)&_ZN6S221C44v100Ev,
  (VTBL_ENTRY)&_ZN6S221C44v101Ev,
  (VTBL_ENTRY)&_ZN6S221C44v102Ev,
  (VTBL_ENTRY)&_ZN6S221C44v103Ev,
  (VTBL_ENTRY)&_ZN6S221C44v104Ev,
  (VTBL_ENTRY)&_ZN6S221C44v105Ev,
  (VTBL_ENTRY)&_ZN6S221C44v106Ev,
  (VTBL_ENTRY)&_ZN6S221C44v107Ev,
  (VTBL_ENTRY)&_ZN6S221C44v108Ev,
  (VTBL_ENTRY)&_ZN6S221C44v109Ev,
  (VTBL_ENTRY)&_ZN6S221C44v110Ev,
  (VTBL_ENTRY)&_ZN6S221C44v111Ev,
  (VTBL_ENTRY)&_ZN6S221C44v112Ev,
  (VTBL_ENTRY)&_ZN6S221C44v113Ev,
  (VTBL_ENTRY)&_ZN6S221C44v114Ev,
  (VTBL_ENTRY)&_ZN6S221C44v115Ev,
  (VTBL_ENTRY)&_ZN6S221C44v116Ev,
  (VTBL_ENTRY)&_ZN6S221C44v117Ev,
  (VTBL_ENTRY)&_ZN6S221C44v118Ev,
  (VTBL_ENTRY)&_ZN6S221C44v119Ev,
  (VTBL_ENTRY)&_ZN6S221C44v120Ev,
  (VTBL_ENTRY)&_ZN6S221C44v121Ev,
  (VTBL_ENTRY)&_ZN6S221C44v122Ev,
  (VTBL_ENTRY)&_ZN6S221C44v123Ev,
  (VTBL_ENTRY)&_ZN6S221C44v124Ev,
  (VTBL_ENTRY)&_ZN6S221C44v125Ev,
  (VTBL_ENTRY)&_ZN6S221C44v126Ev,
  (VTBL_ENTRY)&_ZN6S221C44v127Ev,
  (VTBL_ENTRY)&_ZN6S221C44v128Ev,
  (VTBL_ENTRY)&_ZN6S221C44v129Ev,
  (VTBL_ENTRY)&_ZN6S221C44v130Ev,
  (VTBL_ENTRY)&_ZN6S221C44v131Ev,
  (VTBL_ENTRY)&_ZN6S221C44v132Ev,
  (VTBL_ENTRY)&_ZN6S221C44v133Ev,
  (VTBL_ENTRY)&_ZN6S221C44v134Ev,
  (VTBL_ENTRY)&_ZN6S221C44v135Ev,
  (VTBL_ENTRY)&_ZN6S221C44v136Ev,
  (VTBL_ENTRY)&_ZN6S221C44v137Ev,
  (VTBL_ENTRY)&_ZN6S221C44v138Ev,
  (VTBL_ENTRY)&_ZN6S221C44v139Ev,
  (VTBL_ENTRY)&_ZN6S221C44v140Ev,
  (VTBL_ENTRY)&_ZN6S221C44v141Ev,
  (VTBL_ENTRY)&_ZN6S221C44v142Ev,
  (VTBL_ENTRY)&_ZN6S221C44v143Ev,
  (VTBL_ENTRY)&_ZN6S221C44v144Ev,
  (VTBL_ENTRY)&_ZN6S221C44v145Ev,
  (VTBL_ENTRY)&_ZN6S221C34v146Ev,
  (VTBL_ENTRY)&_ZN6S221C34v147Ev,
  (VTBL_ENTRY)&_ZN6S221C34v148Ev,
  (VTBL_ENTRY)&_ZN6S221C34v149Ev,
  (VTBL_ENTRY)&_ZN6S221C34v150Ev,
  (VTBL_ENTRY)&_ZN6S221C34v151Ev,
  (VTBL_ENTRY)&_ZN6S221C34v152Ev,
  (VTBL_ENTRY)&_ZN6S221C34v153Ev,
  (VTBL_ENTRY)&_ZN6S221C34v154Ev,
  (VTBL_ENTRY)&_ZN6S221C34v155Ev,
  (VTBL_ENTRY)&_ZN6S221C34v156Ev,
  (VTBL_ENTRY)&_ZN6S221C34v157Ev,
  (VTBL_ENTRY)&_ZN6S221C34v158Ev,
  (VTBL_ENTRY)&_ZN6S221C34v159Ev,
  (VTBL_ENTRY)&_ZN6S221C34v160Ev,
  (VTBL_ENTRY)&_ZN6S221C34v161Ev,
  (VTBL_ENTRY)&_ZN6S221C34v162Ev,
  (VTBL_ENTRY)&_ZN6S221C34v163Ev,
  (VTBL_ENTRY)&_ZN6S221C34v164Ev,
  (VTBL_ENTRY)&_ZN6S221C34v165Ev,
  (VTBL_ENTRY)&_ZN6S221C34v166Ev,
  (VTBL_ENTRY)&_ZN6S221C34v167Ev,
  (VTBL_ENTRY)&_ZN6S221C34v168Ev,
  (VTBL_ENTRY)&_ZN6S221C34v169Ev,
  (VTBL_ENTRY)&_ZN6S221C34v170Ev,
  (VTBL_ENTRY)&_ZN6S221C34v171Ev,
  (VTBL_ENTRY)&_ZN6S221C34v172Ev,
  (VTBL_ENTRY)&_ZN6S221C34v173Ev,
  (VTBL_ENTRY)&_ZN6S221C34v174Ev,
  (VTBL_ENTRY)&_ZN6S221C34v175Ev,
  (VTBL_ENTRY)&_ZN6S221C34v176Ev,
  (VTBL_ENTRY)&_ZN6S221C34v177Ev,
  (VTBL_ENTRY)&_ZN6S221C34v178Ev,
  (VTBL_ENTRY)&_ZN6S221C34v179Ev,
  (VTBL_ENTRY)&_ZN6S221C34v180Ev,
  (VTBL_ENTRY)&_ZN6S221C34v181Ev,
  (VTBL_ENTRY)&_ZN6S221C34v182Ev,
  (VTBL_ENTRY)&_ZN6S221C34v183Ev,
  (VTBL_ENTRY)&_ZN6S221C34v184Ev,
  (VTBL_ENTRY)&_ZN6S221C24v185Ev,
  (VTBL_ENTRY)&_ZN6S221C24v186Ev,
  (VTBL_ENTRY)&_ZN6S221C24v187Ev,
  (VTBL_ENTRY)&_ZN6S221C24v188Ev,
  (VTBL_ENTRY)&_ZN6S221C24v189Ev,
  (VTBL_ENTRY)&_ZN6S221C24v190Ev,
  (VTBL_ENTRY)&_ZN6S221C24v191Ev,
  (VTBL_ENTRY)&_ZN6S221C24v192Ev,
  (VTBL_ENTRY)&_ZN6S221C24v193Ev,
  (VTBL_ENTRY)&_ZN6S221C24v194Ev,
  (VTBL_ENTRY)&_ZN6S221C24v195Ev,
  (VTBL_ENTRY)&_ZN6S221C24v196Ev,
  (VTBL_ENTRY)&_ZN6S221C24v197Ev,
  (VTBL_ENTRY)&_ZN6S221C24v198Ev,
  (VTBL_ENTRY)&_ZN6S221C24v199Ev,
  (VTBL_ENTRY)&_ZN6S221C24v200Ev,
  (VTBL_ENTRY)&_ZN6S221C24v201Ev,
  (VTBL_ENTRY)&_ZN6S221C24v202Ev,
  (VTBL_ENTRY)&_ZN6S221C24v203Ev,
  (VTBL_ENTRY)&_ZN6S221C24v204Ev,
  (VTBL_ENTRY)&_ZN6S221C24v205Ev,
  (VTBL_ENTRY)&_ZN6S221C24v206Ev,
  (VTBL_ENTRY)&_ZN6S221C24v207Ev,
  (VTBL_ENTRY)&_ZN6S221C12v1Ev,
  (VTBL_ENTRY)&_ZN6S221C12v2Ev,
  (VTBL_ENTRY)&_ZN6S221C12v3Ev,
};
extern VTBL_ENTRY _ZTI6S221C1[];
extern  VTBL_ENTRY _ZTV6S221C1[];
Class_Descriptor cd_S221C1 = {  "S221C1", // class name
  bases_S221C1, 5,
  &(vtc_S221C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(880,628), // object size
  NSPAIRA(_ZTI6S221C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S221C1),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S218C6  {
  int s218c6f0;
  __tsi64 s218c6f1;
  void *s218c6f2[4];
  int s218c6f3[2];
  void *s218c6f4;
  ::S85C27_nt s218c6f5;
  void *s218c6f6[2];
  virtual  ~S218C6(); // _ZN6S218C6D1Ev
  virtual void  v4(); // _ZN6S218C62v4Ev
  virtual void  v5(); // _ZN6S218C62v5Ev
  virtual void  v6(); // _ZN6S218C62v6Ev
  virtual void  v7(); // _ZN6S218C62v7Ev
  virtual void  v8(); // _ZN6S218C62v8Ev
  virtual void  v9(); // _ZN6S218C62v9Ev
  virtual void  v10(); // _ZN6S218C63v10Ev
  virtual void  v11(); // _ZN6S218C63v11Ev
  virtual void  v12(); // _ZN6S218C63v12Ev
  virtual void  v13(); // _ZN6S218C63v13Ev
  virtual void  v14(); // _ZN6S218C63v14Ev
  virtual void  v15(); // _ZN6S218C63v15Ev
  virtual void  v16(); // _ZN6S218C63v16Ev
  virtual void  v17(); // _ZN6S218C63v17Ev
  virtual void  v18(); // _ZN6S218C63v18Ev
  virtual void  v19(); // _ZN6S218C63v19Ev
  virtual void  v20(); // _ZN6S218C63v20Ev
  virtual void  v21(); // _ZN6S218C63v21Ev
  virtual void  v22(); // _ZN6S218C63v22Ev
  virtual void  v23(); // _ZN6S218C63v23Ev
  virtual void  v24(); // _ZN6S218C63v24Ev
  virtual void  v25(); // _ZN6S218C63v25Ev
  virtual void  v26(); // _ZN6S218C63v26Ev
  virtual void  v27(); // _ZN6S218C63v27Ev
  virtual void  v28(); // _ZN6S218C63v28Ev
  virtual void  v29(); // _ZN6S218C63v29Ev
  virtual void  v30(); // _ZN6S218C63v30Ev
  virtual void  v31(); // _ZN6S218C63v31Ev
  virtual void  v32(); // _ZN6S218C63v32Ev
  virtual void  v33(); // _ZN6S218C63v33Ev
  virtual void  v34(); // _ZN6S218C63v34Ev
  virtual void  v35(); // _ZN6S218C63v35Ev
  virtual void  v36(); // _ZN6S218C63v36Ev
  virtual void  v37(); // _ZN6S218C63v37Ev
  virtual void  v38(); // _ZN6S218C63v38Ev
  virtual void  v39(); // _ZN6S218C63v39Ev
  virtual void  v40(); // _ZN6S218C63v40Ev
  virtual void  v41(); // _ZN6S218C63v41Ev
  virtual void  v42(); // _ZN6S218C63v42Ev
  virtual void  v43(); // _ZN6S218C63v43Ev
  virtual void  v44(); // _ZN6S218C63v44Ev
  virtual void  v45(); // _ZN6S218C63v45Ev
  virtual void  v46(); // _ZN6S218C63v46Ev
  virtual void  v47(); // _ZN6S218C63v47Ev
  virtual void  v48(); // _ZN6S218C63v48Ev
  virtual void  v49(); // _ZN6S218C63v49Ev
  virtual void  v50(); // _ZN6S218C63v50Ev
  virtual void  v51(); // _ZN6S218C63v51Ev
  virtual void  v52(); // _ZN6S218C63v52Ev
  virtual void  v53(); // _ZN6S218C63v53Ev
  virtual void  v54(); // _ZN6S218C63v54Ev
  virtual void  v55(); // _ZN6S218C63v55Ev
  virtual void  v56(); // _ZN6S218C63v56Ev
  virtual void  v57(); // _ZN6S218C63v57Ev
  virtual void  v58(); // _ZN6S218C63v58Ev
  virtual void  v59(); // _ZN6S218C63v59Ev
  virtual void  v60(); // _ZN6S218C63v60Ev
  virtual void  v61(); // _ZN6S218C63v61Ev
  virtual void  v62(); // _ZN6S218C63v62Ev
  virtual void  v63(); // _ZN6S218C63v63Ev
  virtual void  v64(); // _ZN6S218C63v64Ev
  virtual void  v65(); // _ZN6S218C63v65Ev
  virtual void  v66(); // _ZN6S218C63v66Ev
  virtual void  v67(); // _ZN6S218C63v67Ev
  S218C6(); // tgen
};
//SIG(-1 S218C6) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S218C6 ::~S218C6(){ note_dtor("S218C6", this);}
void  S218C6 ::v4(){vfunc_called(this, "_ZN6S218C62v4Ev");}
void  S218C6 ::v5(){vfunc_called(this, "_ZN6S218C62v5Ev");}
void  S218C6 ::v6(){vfunc_called(this, "_ZN6S218C62v6Ev");}
void  S218C6 ::v7(){vfunc_called(this, "_ZN6S218C62v7Ev");}
void  S218C6 ::v8(){vfunc_called(this, "_ZN6S218C62v8Ev");}
void  S218C6 ::v9(){vfunc_called(this, "_ZN6S218C62v9Ev");}
void  S218C6 ::v10(){vfunc_called(this, "_ZN6S218C63v10Ev");}
void  S218C6 ::v11(){vfunc_called(this, "_ZN6S218C63v11Ev");}
void  S218C6 ::v12(){vfunc_called(this, "_ZN6S218C63v12Ev");}
void  S218C6 ::v13(){vfunc_called(this, "_ZN6S218C63v13Ev");}
void  S218C6 ::v14(){vfunc_called(this, "_ZN6S218C63v14Ev");}
void  S218C6 ::v15(){vfunc_called(this, "_ZN6S218C63v15Ev");}
void  S218C6 ::v16(){vfunc_called(this, "_ZN6S218C63v16Ev");}
void  S218C6 ::v17(){vfunc_called(this, "_ZN6S218C63v17Ev");}
void  S218C6 ::v18(){vfunc_called(this, "_ZN6S218C63v18Ev");}
void  S218C6 ::v19(){vfunc_called(this, "_ZN6S218C63v19Ev");}
void  S218C6 ::v20(){vfunc_called(this, "_ZN6S218C63v20Ev");}
void  S218C6 ::v21(){vfunc_called(this, "_ZN6S218C63v21Ev");}
void  S218C6 ::v22(){vfunc_called(this, "_ZN6S218C63v22Ev");}
void  S218C6 ::v23(){vfunc_called(this, "_ZN6S218C63v23Ev");}
void  S218C6 ::v24(){vfunc_called(this, "_ZN6S218C63v24Ev");}
void  S218C6 ::v25(){vfunc_called(this, "_ZN6S218C63v25Ev");}
void  S218C6 ::v26(){vfunc_called(this, "_ZN6S218C63v26Ev");}
void  S218C6 ::v27(){vfunc_called(this, "_ZN6S218C63v27Ev");}
void  S218C6 ::v28(){vfunc_called(this, "_ZN6S218C63v28Ev");}
void  S218C6 ::v29(){vfunc_called(this, "_ZN6S218C63v29Ev");}
void  S218C6 ::v30(){vfunc_called(this, "_ZN6S218C63v30Ev");}
void  S218C6 ::v31(){vfunc_called(this, "_ZN6S218C63v31Ev");}
void  S218C6 ::v32(){vfunc_called(this, "_ZN6S218C63v32Ev");}
void  S218C6 ::v33(){vfunc_called(this, "_ZN6S218C63v33Ev");}
void  S218C6 ::v34(){vfunc_called(this, "_ZN6S218C63v34Ev");}
void  S218C6 ::v35(){vfunc_called(this, "_ZN6S218C63v35Ev");}
void  S218C6 ::v36(){vfunc_called(this, "_ZN6S218C63v36Ev");}
void  S218C6 ::v37(){vfunc_called(this, "_ZN6S218C63v37Ev");}
void  S218C6 ::v38(){vfunc_called(this, "_ZN6S218C63v38Ev");}
void  S218C6 ::v39(){vfunc_called(this, "_ZN6S218C63v39Ev");}
void  S218C6 ::v40(){vfunc_called(this, "_ZN6S218C63v40Ev");}
void  S218C6 ::v41(){vfunc_called(this, "_ZN6S218C63v41Ev");}
void  S218C6 ::v42(){vfunc_called(this, "_ZN6S218C63v42Ev");}
void  S218C6 ::v43(){vfunc_called(this, "_ZN6S218C63v43Ev");}
void  S218C6 ::v44(){vfunc_called(this, "_ZN6S218C63v44Ev");}
void  S218C6 ::v45(){vfunc_called(this, "_ZN6S218C63v45Ev");}
void  S218C6 ::v46(){vfunc_called(this, "_ZN6S218C63v46Ev");}
void  S218C6 ::v47(){vfunc_called(this, "_ZN6S218C63v47Ev");}
void  S218C6 ::v48(){vfunc_called(this, "_ZN6S218C63v48Ev");}
void  S218C6 ::v49(){vfunc_called(this, "_ZN6S218C63v49Ev");}
void  S218C6 ::v50(){vfunc_called(this, "_ZN6S218C63v50Ev");}
void  S218C6 ::v51(){vfunc_called(this, "_ZN6S218C63v51Ev");}
void  S218C6 ::v52(){vfunc_called(this, "_ZN6S218C63v52Ev");}
void  S218C6 ::v53(){vfunc_called(this, "_ZN6S218C63v53Ev");}
void  S218C6 ::v54(){vfunc_called(this, "_ZN6S218C63v54Ev");}
void  S218C6 ::v55(){vfunc_called(this, "_ZN6S218C63v55Ev");}
void  S218C6 ::v56(){vfunc_called(this, "_ZN6S218C63v56Ev");}
void  S218C6 ::v57(){vfunc_called(this, "_ZN6S218C63v57Ev");}
void  S218C6 ::v58(){vfunc_called(this, "_ZN6S218C63v58Ev");}
void  S218C6 ::v59(){vfunc_called(this, "_ZN6S218C63v59Ev");}
void  S218C6 ::v60(){vfunc_called(this, "_ZN6S218C63v60Ev");}
void  S218C6 ::v61(){vfunc_called(this, "_ZN6S218C63v61Ev");}
void  S218C6 ::v62(){vfunc_called(this, "_ZN6S218C63v62Ev");}
void  S218C6 ::v63(){vfunc_called(this, "_ZN6S218C63v63Ev");}
void  S218C6 ::v64(){vfunc_called(this, "_ZN6S218C63v64Ev");}
void  S218C6 ::v65(){vfunc_called(this, "_ZN6S218C63v65Ev");}
void  S218C6 ::v66(){vfunc_called(this, "_ZN6S218C63v66Ev");}
void  S218C6 ::v67(){vfunc_called(this, "_ZN6S218C63v67Ev");}
S218C6 ::S218C6(){ note_ctor("S218C6", this);} // tgen

static void Test_S218C6()
{
  extern Class_Descriptor cd_S218C6;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S218C6, buf);
    S218C6 *dp, &lv = *(dp=new (buf) S218C6());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S218C6)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S218C6)");
    check_field_offset(lv, s218c6f0, ABISELECT(8,4), "S218C6.s218c6f0");
    check_field_offset(lv, s218c6f1, ABISELECT(16,8), "S218C6.s218c6f1");
    check_field_offset(lv, s218c6f2, ABISELECT(24,16), "S218C6.s218c6f2");
    check_field_offset(lv, s218c6f3, ABISELECT(56,32), "S218C6.s218c6f3");
    check_field_offset(lv, s218c6f4, ABISELECT(64,40), "S218C6.s218c6f4");
    check_field_offset(lv, s218c6f5, ABISELECT(72,44), "S218C6.s218c6f5");
    check_field_offset(lv, s218c6f6, ABISELECT(80,52), "S218C6.s218c6f6");
    test_class_info(&lv, &cd_S218C6);
    dp->~S218C6();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS218C6(Test_S218C6, "S218C6", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S218C6C1Ev();
extern void _ZN6S218C6D1Ev();
Name_Map name_map_S218C6[] = {
  NSPAIR(_ZN6S218C6C1Ev),
  NSPAIR(_ZN6S218C6D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S218C6[];
extern void _ZN6S218C6D1Ev();
extern void _ZN6S218C6D0Ev();
extern void _ZN6S218C62v4Ev();
extern void _ZN6S218C62v5Ev();
extern void _ZN6S218C62v6Ev();
extern void _ZN6S218C62v7Ev();
extern void _ZN6S218C62v8Ev();
extern void _ZN6S218C62v9Ev();
extern void _ZN6S218C63v10Ev();
extern void _ZN6S218C63v11Ev();
extern void _ZN6S218C63v12Ev();
extern void _ZN6S218C63v13Ev();
extern void _ZN6S218C63v14Ev();
extern void _ZN6S218C63v15Ev();
extern void _ZN6S218C63v16Ev();
extern void _ZN6S218C63v17Ev();
extern void _ZN6S218C63v18Ev();
extern void _ZN6S218C63v19Ev();
extern void _ZN6S218C63v20Ev();
extern void _ZN6S218C63v21Ev();
extern void _ZN6S218C63v22Ev();
extern void _ZN6S218C63v23Ev();
extern void _ZN6S218C63v24Ev();
extern void _ZN6S218C63v25Ev();
extern void _ZN6S218C63v26Ev();
extern void _ZN6S218C63v27Ev();
extern void _ZN6S218C63v28Ev();
extern void _ZN6S218C63v29Ev();
extern void _ZN6S218C63v30Ev();
extern void _ZN6S218C63v31Ev();
extern void _ZN6S218C63v32Ev();
extern void _ZN6S218C63v33Ev();
extern void _ZN6S218C63v34Ev();
extern void _ZN6S218C63v35Ev();
extern void _ZN6S218C63v36Ev();
extern void _ZN6S218C63v37Ev();
extern void _ZN6S218C63v38Ev();
extern void _ZN6S218C63v39Ev();
extern void _ZN6S218C63v40Ev();
extern void _ZN6S218C63v41Ev();
extern void _ZN6S218C63v42Ev();
extern void _ZN6S218C63v43Ev();
extern void _ZN6S218C63v44Ev();
extern void _ZN6S218C63v45Ev();
extern void _ZN6S218C63v46Ev();
extern void _ZN6S218C63v47Ev();
extern void _ZN6S218C63v48Ev();
extern void _ZN6S218C63v49Ev();
extern void _ZN6S218C63v50Ev();
extern void _ZN6S218C63v51Ev();
extern void _ZN6S218C63v52Ev();
extern void _ZN6S218C63v53Ev();
extern void _ZN6S218C63v54Ev();
extern void _ZN6S218C63v55Ev();
extern void _ZN6S218C63v56Ev();
extern void _ZN6S218C63v57Ev();
extern void _ZN6S218C63v58Ev();
extern void _ZN6S218C63v59Ev();
extern void _ZN6S218C63v60Ev();
extern void _ZN6S218C63v61Ev();
extern void _ZN6S218C63v62Ev();
extern void _ZN6S218C63v63Ev();
extern void _ZN6S218C63v64Ev();
extern void _ZN6S218C63v65Ev();
extern void _ZN6S218C63v66Ev();
extern void _ZN6S218C63v67Ev();
static  VTBL_ENTRY vtc_S218C6[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S218C6[0]),
  (VTBL_ENTRY)&_ZN6S218C6D1Ev,
  (VTBL_ENTRY)&_ZN6S218C6D0Ev,
  (VTBL_ENTRY)&_ZN6S218C62v4Ev,
  (VTBL_ENTRY)&_ZN6S218C62v5Ev,
  (VTBL_ENTRY)&_ZN6S218C62v6Ev,
  (VTBL_ENTRY)&_ZN6S218C62v7Ev,
  (VTBL_ENTRY)&_ZN6S218C62v8Ev,
  (VTBL_ENTRY)&_ZN6S218C62v9Ev,
  (VTBL_ENTRY)&_ZN6S218C63v10Ev,
  (VTBL_ENTRY)&_ZN6S218C63v11Ev,
  (VTBL_ENTRY)&_ZN6S218C63v12Ev,
  (VTBL_ENTRY)&_ZN6S218C63v13Ev,
  (VTBL_ENTRY)&_ZN6S218C63v14Ev,
  (VTBL_ENTRY)&_ZN6S218C63v15Ev,
  (VTBL_ENTRY)&_ZN6S218C63v16Ev,
  (VTBL_ENTRY)&_ZN6S218C63v17Ev,
  (VTBL_ENTRY)&_ZN6S218C63v18Ev,
  (VTBL_ENTRY)&_ZN6S218C63v19Ev,
  (VTBL_ENTRY)&_ZN6S218C63v20Ev,
  (VTBL_ENTRY)&_ZN6S218C63v21Ev,
  (VTBL_ENTRY)&_ZN6S218C63v22Ev,
  (VTBL_ENTRY)&_ZN6S218C63v23Ev,
  (VTBL_ENTRY)&_ZN6S218C63v24Ev,
  (VTBL_ENTRY)&_ZN6S218C63v25Ev,
  (VTBL_ENTRY)&_ZN6S218C63v26Ev,
  (VTBL_ENTRY)&_ZN6S218C63v27Ev,
  (VTBL_ENTRY)&_ZN6S218C63v28Ev,
  (VTBL_ENTRY)&_ZN6S218C63v29Ev,
  (VTBL_ENTRY)&_ZN6S218C63v30Ev,
  (VTBL_ENTRY)&_ZN6S218C63v31Ev,
  (VTBL_ENTRY)&_ZN6S218C63v32Ev,
  (VTBL_ENTRY)&_ZN6S218C63v33Ev,
  (VTBL_ENTRY)&_ZN6S218C63v34Ev,
  (VTBL_ENTRY)&_ZN6S218C63v35Ev,
  (VTBL_ENTRY)&_ZN6S218C63v36Ev,
  (VTBL_ENTRY)&_ZN6S218C63v37Ev,
  (VTBL_ENTRY)&_ZN6S218C63v38Ev,
  (VTBL_ENTRY)&_ZN6S218C63v39Ev,
  (VTBL_ENTRY)&_ZN6S218C63v40Ev,
  (VTBL_ENTRY)&_ZN6S218C63v41Ev,
  (VTBL_ENTRY)&_ZN6S218C63v42Ev,
  (VTBL_ENTRY)&_ZN6S218C63v43Ev,
  (VTBL_ENTRY)&_ZN6S218C63v44Ev,
  (VTBL_ENTRY)&_ZN6S218C63v45Ev,
  (VTBL_ENTRY)&_ZN6S218C63v46Ev,
  (VTBL_ENTRY)&_ZN6S218C63v47Ev,
  (VTBL_ENTRY)&_ZN6S218C63v48Ev,
  (VTBL_ENTRY)&_ZN6S218C63v49Ev,
  (VTBL_ENTRY)&_ZN6S218C63v50Ev,
  (VTBL_ENTRY)&_ZN6S218C63v51Ev,
  (VTBL_ENTRY)&_ZN6S218C63v52Ev,
  (VTBL_ENTRY)&_ZN6S218C63v53Ev,
  (VTBL_ENTRY)&_ZN6S218C63v54Ev,
  (VTBL_ENTRY)&_ZN6S218C63v55Ev,
  (VTBL_ENTRY)&_ZN6S218C63v56Ev,
  (VTBL_ENTRY)&_ZN6S218C63v57Ev,
  (VTBL_ENTRY)&_ZN6S218C63v58Ev,
  (VTBL_ENTRY)&_ZN6S218C63v59Ev,
  (VTBL_ENTRY)&_ZN6S218C63v60Ev,
  (VTBL_ENTRY)&_ZN6S218C63v61Ev,
  (VTBL_ENTRY)&_ZN6S218C63v62Ev,
  (VTBL_ENTRY)&_ZN6S218C63v63Ev,
  (VTBL_ENTRY)&_ZN6S218C63v64Ev,
  (VTBL_ENTRY)&_ZN6S218C63v65Ev,
  (VTBL_ENTRY)&_ZN6S218C63v66Ev,
  (VTBL_ENTRY)&_ZN6S218C63v67Ev,
};
extern VTBL_ENTRY _ZTI6S218C6[];
extern  VTBL_ENTRY _ZTV6S218C6[];
Class_Descriptor cd_S218C6 = {  "S218C6", // class name
  0,0,//no base classes
  &(vtc_S218C6[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S218C6),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S218C6),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S218C5  : S218C6 {
  virtual  ~S218C5(); // _ZN6S218C5D1Ev
  virtual void  v68(); // _ZN6S218C53v68Ev
  virtual void  v69(); // _ZN6S218C53v69Ev
  S218C5(); // tgen
};
//SIG(-1 S218C5) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S218C5 ::~S218C5(){ note_dtor("S218C5", this);}
void  S218C5 ::v68(){vfunc_called(this, "_ZN6S218C53v68Ev");}
void  S218C5 ::v69(){vfunc_called(this, "_ZN6S218C53v69Ev");}
S218C5 ::S218C5(){ note_ctor("S218C5", this);} // tgen

static void Test_S218C5()
{
  extern Class_Descriptor cd_S218C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S218C5, buf);
    S218C5 *dp, &lv = *(dp=new (buf) S218C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S218C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S218C5)");
    check_base_class_offset(lv, (S218C6*), 0, "S218C5");
    test_class_info(&lv, &cd_S218C5);
    dp->~S218C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS218C5(Test_S218C5, "S218C5", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S218C5C1Ev();
extern void _ZN6S218C5D1Ev();
Name_Map name_map_S218C5[] = {
  NSPAIR(_ZN6S218C5C1Ev),
  NSPAIR(_ZN6S218C5D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S218C6;
extern VTBL_ENTRY _ZTI6S218C6[];
extern  VTBL_ENTRY _ZTV6S218C6[];
static Base_Class bases_S218C5[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S218C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S218C5[];
extern void _ZN6S218C5D1Ev();
extern void _ZN6S218C5D0Ev();
extern void _ZN6S218C62v4Ev();
extern void _ZN6S218C62v5Ev();
extern void _ZN6S218C62v6Ev();
extern void _ZN6S218C62v7Ev();
extern void _ZN6S218C62v8Ev();
extern void _ZN6S218C62v9Ev();
extern void _ZN6S218C63v10Ev();
extern void _ZN6S218C63v11Ev();
extern void _ZN6S218C63v12Ev();
extern void _ZN6S218C63v13Ev();
extern void _ZN6S218C63v14Ev();
extern void _ZN6S218C63v15Ev();
extern void _ZN6S218C63v16Ev();
extern void _ZN6S218C63v17Ev();
extern void _ZN6S218C63v18Ev();
extern void _ZN6S218C63v19Ev();
extern void _ZN6S218C63v20Ev();
extern void _ZN6S218C63v21Ev();
extern void _ZN6S218C63v22Ev();
extern void _ZN6S218C63v23Ev();
extern void _ZN6S218C63v24Ev();
extern void _ZN6S218C63v25Ev();
extern void _ZN6S218C63v26Ev();
extern void _ZN6S218C63v27Ev();
extern void _ZN6S218C63v28Ev();
extern void _ZN6S218C63v29Ev();
extern void _ZN6S218C63v30Ev();
extern void _ZN6S218C63v31Ev();
extern void _ZN6S218C63v32Ev();
extern void _ZN6S218C63v33Ev();
extern void _ZN6S218C63v34Ev();
extern void _ZN6S218C63v35Ev();
extern void _ZN6S218C63v36Ev();
extern void _ZN6S218C63v37Ev();
extern void _ZN6S218C63v38Ev();
extern void _ZN6S218C63v39Ev();
extern void _ZN6S218C63v40Ev();
extern void _ZN6S218C63v41Ev();
extern void _ZN6S218C63v42Ev();
extern void _ZN6S218C63v43Ev();
extern void _ZN6S218C63v44Ev();
extern void _ZN6S218C63v45Ev();
extern void _ZN6S218C63v46Ev();
extern void _ZN6S218C63v47Ev();
extern void _ZN6S218C63v48Ev();
extern void _ZN6S218C63v49Ev();
extern void _ZN6S218C63v50Ev();
extern void _ZN6S218C63v51Ev();
extern void _ZN6S218C63v52Ev();
extern void _ZN6S218C63v53Ev();
extern void _ZN6S218C63v54Ev();
extern void _ZN6S218C63v55Ev();
extern void _ZN6S218C63v56Ev();
extern void _ZN6S218C63v57Ev();
extern void _ZN6S218C63v58Ev();
extern void _ZN6S218C63v59Ev();
extern void _ZN6S218C63v60Ev();
extern void _ZN6S218C63v61Ev();
extern void _ZN6S218C63v62Ev();
extern void _ZN6S218C63v63Ev();
extern void _ZN6S218C63v64Ev();
extern void _ZN6S218C63v65Ev();
extern void _ZN6S218C63v66Ev();
extern void _ZN6S218C63v67Ev();
extern void _ZN6S218C53v68Ev();
extern void _ZN6S218C53v69Ev();
static  VTBL_ENTRY vtc_S218C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S218C5[0]),
  (VTBL_ENTRY)&_ZN6S218C5D1Ev,
  (VTBL_ENTRY)&_ZN6S218C5D0Ev,
  (VTBL_ENTRY)&_ZN6S218C62v4Ev,
  (VTBL_ENTRY)&_ZN6S218C62v5Ev,
  (VTBL_ENTRY)&_ZN6S218C62v6Ev,
  (VTBL_ENTRY)&_ZN6S218C62v7Ev,
  (VTBL_ENTRY)&_ZN6S218C62v8Ev,
  (VTBL_ENTRY)&_ZN6S218C62v9Ev,
  (VTBL_ENTRY)&_ZN6S218C63v10Ev,
  (VTBL_ENTRY)&_ZN6S218C63v11Ev,
  (VTBL_ENTRY)&_ZN6S218C63v12Ev,
  (VTBL_ENTRY)&_ZN6S218C63v13Ev,
  (VTBL_ENTRY)&_ZN6S218C63v14Ev,
  (VTBL_ENTRY)&_ZN6S218C63v15Ev,
  (VTBL_ENTRY)&_ZN6S218C63v16Ev,
  (VTBL_ENTRY)&_ZN6S218C63v17Ev,
  (VTBL_ENTRY)&_ZN6S218C63v18Ev,
  (VTBL_ENTRY)&_ZN6S218C63v19Ev,
  (VTBL_ENTRY)&_ZN6S218C63v20Ev,
  (VTBL_ENTRY)&_ZN6S218C63v21Ev,
  (VTBL_ENTRY)&_ZN6S218C63v22Ev,
  (VTBL_ENTRY)&_ZN6S218C63v23Ev,
  (VTBL_ENTRY)&_ZN6S218C63v24Ev,
  (VTBL_ENTRY)&_ZN6S218C63v25Ev,
  (VTBL_ENTRY)&_ZN6S218C63v26Ev,
  (VTBL_ENTRY)&_ZN6S218C63v27Ev,
  (VTBL_ENTRY)&_ZN6S218C63v28Ev,
  (VTBL_ENTRY)&_ZN6S218C63v29Ev,
  (VTBL_ENTRY)&_ZN6S218C63v30Ev,
  (VTBL_ENTRY)&_ZN6S218C63v31Ev,
  (VTBL_ENTRY)&_ZN6S218C63v32Ev,
  (VTBL_ENTRY)&_ZN6S218C63v33Ev,
  (VTBL_ENTRY)&_ZN6S218C63v34Ev,
  (VTBL_ENTRY)&_ZN6S218C63v35Ev,
  (VTBL_ENTRY)&_ZN6S218C63v36Ev,
  (VTBL_ENTRY)&_ZN6S218C63v37Ev,
  (VTBL_ENTRY)&_ZN6S218C63v38Ev,
  (VTBL_ENTRY)&_ZN6S218C63v39Ev,
  (VTBL_ENTRY)&_ZN6S218C63v40Ev,
  (VTBL_ENTRY)&_ZN6S218C63v41Ev,
  (VTBL_ENTRY)&_ZN6S218C63v42Ev,
  (VTBL_ENTRY)&_ZN6S218C63v43Ev,
  (VTBL_ENTRY)&_ZN6S218C63v44Ev,
  (VTBL_ENTRY)&_ZN6S218C63v45Ev,
  (VTBL_ENTRY)&_ZN6S218C63v46Ev,
  (VTBL_ENTRY)&_ZN6S218C63v47Ev,
  (VTBL_ENTRY)&_ZN6S218C63v48Ev,
  (VTBL_ENTRY)&_ZN6S218C63v49Ev,
  (VTBL_ENTRY)&_ZN6S218C63v50Ev,
  (VTBL_ENTRY)&_ZN6S218C63v51Ev,
  (VTBL_ENTRY)&_ZN6S218C63v52Ev,
  (VTBL_ENTRY)&_ZN6S218C63v53Ev,
  (VTBL_ENTRY)&_ZN6S218C63v54Ev,
  (VTBL_ENTRY)&_ZN6S218C63v55Ev,
  (VTBL_ENTRY)&_ZN6S218C63v56Ev,
  (VTBL_ENTRY)&_ZN6S218C63v57Ev,
  (VTBL_ENTRY)&_ZN6S218C63v58Ev,
  (VTBL_ENTRY)&_ZN6S218C63v59Ev,
  (VTBL_ENTRY)&_ZN6S218C63v60Ev,
  (VTBL_ENTRY)&_ZN6S218C63v61Ev,
  (VTBL_ENTRY)&_ZN6S218C63v62Ev,
  (VTBL_ENTRY)&_ZN6S218C63v63Ev,
  (VTBL_ENTRY)&_ZN6S218C63v64Ev,
  (VTBL_ENTRY)&_ZN6S218C63v65Ev,
  (VTBL_ENTRY)&_ZN6S218C63v66Ev,
  (VTBL_ENTRY)&_ZN6S218C63v67Ev,
  (VTBL_ENTRY)&_ZN6S218C53v68Ev,
  (VTBL_ENTRY)&_ZN6S218C53v69Ev,
};
extern VTBL_ENTRY _ZTI6S218C5[];
extern  VTBL_ENTRY _ZTV6S218C5[];
Class_Descriptor cd_S218C5 = {  "S218C5", // class name
  bases_S218C5, 1,
  &(vtc_S218C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S218C5),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S218C5),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S218C4  : S218C5 {
  ::S80C9_nt s218c4f0;
  int s218c4f1;
  unsigned int s218c4f2:1;
  unsigned int s218c4f3:1;
  unsigned int s218c4f4:1;
  unsigned int s218c4f5:1;
  ::S85C35 s218c4f6;
  ::S85C22_nt s218c4f7;
  void *s218c4f8;
  ::S80C31 s218c4f9;
  ::S80C31 s218c4f10;
  ::S80C29 s218c4f11;
  ::S80C19 s218c4f12;
  char s218c4f13;
  int s218c4f14;
  void *s218c4f15;
  ::S85C27_nt s218c4f16;
  ::S85C27_nt s218c4f17;
  ::S85C27_nt s218c4f18;
  ::S85C27_nt s218c4f19;
  ::S85C27_nt s218c4f20;
  ::S85C27_nt s218c4f21;
  ::S80C21_nt s218c4f22;
  ::S80C21_nt s218c4f23;
  ::S80C21_nt s218c4f24;
  ::S80C21_nt s218c4f25;
  ::S80C21_nt s218c4f26;
  ::S80C21_nt s218c4f27;
  ::S80C21_nt s218c4f28;
  ::S80C21_nt s218c4f29;
  ::S80C21_nt s218c4f30;
  ::S80C21_nt s218c4f31;
  virtual  ~S218C4(); // _ZN6S218C4D1Ev
  virtual void  v70(); // _ZN6S218C43v70Ev
  virtual void  v71(); // _ZN6S218C43v71Ev
  virtual void  v72(); // _ZN6S218C43v72Ev
  virtual void  v73(); // _ZN6S218C43v73Ev
  virtual void  v74(); // _ZN6S218C43v74Ev
  virtual void  v75(); // _ZN6S218C43v75Ev
  virtual void  v76(); // _ZN6S218C43v76Ev
  virtual void  v77(); // _ZN6S218C43v77Ev
  virtual void  v78(); // _ZN6S218C43v78Ev
  virtual void  v79(); // _ZN6S218C43v79Ev
  virtual void  v80(); // _ZN6S218C43v80Ev
  virtual void  v81(); // _ZN6S218C43v81Ev
  virtual void  v82(); // _ZN6S218C43v82Ev
  virtual void  v83(); // _ZN6S218C43v83Ev
  virtual void  v84(); // _ZN6S218C43v84Ev
  virtual void  v85(); // _ZN6S218C43v85Ev
  virtual void  v86(); // _ZN6S218C43v86Ev
  virtual void  v87(); // _ZN6S218C43v87Ev
  virtual void  v88(); // _ZN6S218C43v88Ev
  virtual void  v89(); // _ZN6S218C43v89Ev
  virtual void  v90(); // _ZN6S218C43v90Ev
  virtual void  v91(); // _ZN6S218C43v91Ev
  virtual void  v92(); // _ZN6S218C43v92Ev
  virtual void  v93(); // _ZN6S218C43v93Ev
  virtual void  v94(); // _ZN6S218C43v94Ev
  virtual void  v95(); // _ZN6S218C43v95Ev
  virtual void  v96(); // _ZN6S218C43v96Ev
  virtual void  v97(); // _ZN6S218C43v97Ev
  virtual void  v98(); // _ZN6S218C43v98Ev
  virtual void  v99(); // _ZN6S218C43v99Ev
  virtual void  v100(); // _ZN6S218C44v100Ev
  virtual void  v101(); // _ZN6S218C44v101Ev
  virtual void  v102(); // _ZN6S218C44v102Ev
  virtual void  v103(); // _ZN6S218C44v103Ev
  virtual void  v104(); // _ZN6S218C44v104Ev
  virtual void  v105(); // _ZN6S218C44v105Ev
  virtual void  v106(); // _ZN6S218C44v106Ev
  virtual void  v107(); // _ZN6S218C44v107Ev
  virtual void  v108(); // _ZN6S218C44v108Ev
  virtual void  v109(); // _ZN6S218C44v109Ev
  virtual void  v110(); // _ZN6S218C44v110Ev
  virtual void  v111(); // _ZN6S218C44v111Ev
  virtual void  v112(); // _ZN6S218C44v112Ev
  virtual void  v113(); // _ZN6S218C44v113Ev
  virtual void  v114(); // _ZN6S218C44v114Ev
  virtual void  v115(); // _ZN6S218C44v115Ev
  virtual void  v116(); // _ZN6S218C44v116Ev
  virtual void  v117(); // _ZN6S218C44v117Ev
  virtual void  v118(); // _ZN6S218C44v118Ev
  virtual void  v119(); // _ZN6S218C44v119Ev
  virtual void  v120(); // _ZN6S218C44v120Ev
  virtual void  v121(); // _ZN6S218C44v121Ev
  virtual void  v122(); // _ZN6S218C44v122Ev
  virtual void  v123(); // _ZN6S218C44v123Ev
  virtual void  v124(); // _ZN6S218C44v124Ev
  virtual void  v125(); // _ZN6S218C44v125Ev
  virtual void  v126(); // _ZN6S218C44v126Ev
  virtual void  v127(); // _ZN6S218C44v127Ev
  virtual void  v128(); // _ZN6S218C44v128Ev
  virtual void  v129(); // _ZN6S218C44v129Ev
  virtual void  v130(); // _ZN6S218C44v130Ev
  virtual void  v131(); // _ZN6S218C44v131Ev
  virtual void  v132(); // _ZN6S218C44v132Ev
  virtual void  v133(); // _ZN6S218C44v133Ev
  virtual void  v134(); // _ZN6S218C44v134Ev
  virtual void  v135(); // _ZN6S218C44v135Ev
  virtual void  v136(); // _ZN6S218C44v136Ev
  virtual void  v137(); // _ZN6S218C44v137Ev
  virtual void  v138(); // _ZN6S218C44v138Ev
  virtual void  v139(); // _ZN6S218C44v139Ev
  virtual void  v140(); // _ZN6S218C44v140Ev
  virtual void  v141(); // _ZN6S218C44v141Ev
  virtual void  v142(); // _ZN6S218C44v142Ev
  virtual void  v143(); // _ZN6S218C44v143Ev
  virtual void  v144(); // _ZN6S218C44v144Ev
  virtual void  v145(); // _ZN6S218C44v145Ev
  S218C4(); // tgen
};
//SIG(-1 S218C4) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S218C4 ::~S218C4(){ note_dtor("S218C4", this);}
void  S218C4 ::v70(){vfunc_called(this, "_ZN6S218C43v70Ev");}
void  S218C4 ::v71(){vfunc_called(this, "_ZN6S218C43v71Ev");}
void  S218C4 ::v72(){vfunc_called(this, "_ZN6S218C43v72Ev");}
void  S218C4 ::v73(){vfunc_called(this, "_ZN6S218C43v73Ev");}
void  S218C4 ::v74(){vfunc_called(this, "_ZN6S218C43v74Ev");}
void  S218C4 ::v75(){vfunc_called(this, "_ZN6S218C43v75Ev");}
void  S218C4 ::v76(){vfunc_called(this, "_ZN6S218C43v76Ev");}
void  S218C4 ::v77(){vfunc_called(this, "_ZN6S218C43v77Ev");}
void  S218C4 ::v78(){vfunc_called(this, "_ZN6S218C43v78Ev");}
void  S218C4 ::v79(){vfunc_called(this, "_ZN6S218C43v79Ev");}
void  S218C4 ::v80(){vfunc_called(this, "_ZN6S218C43v80Ev");}
void  S218C4 ::v81(){vfunc_called(this, "_ZN6S218C43v81Ev");}
void  S218C4 ::v82(){vfunc_called(this, "_ZN6S218C43v82Ev");}
void  S218C4 ::v83(){vfunc_called(this, "_ZN6S218C43v83Ev");}
void  S218C4 ::v84(){vfunc_called(this, "_ZN6S218C43v84Ev");}
void  S218C4 ::v85(){vfunc_called(this, "_ZN6S218C43v85Ev");}
void  S218C4 ::v86(){vfunc_called(this, "_ZN6S218C43v86Ev");}
void  S218C4 ::v87(){vfunc_called(this, "_ZN6S218C43v87Ev");}
void  S218C4 ::v88(){vfunc_called(this, "_ZN6S218C43v88Ev");}
void  S218C4 ::v89(){vfunc_called(this, "_ZN6S218C43v89Ev");}
void  S218C4 ::v90(){vfunc_called(this, "_ZN6S218C43v90Ev");}
void  S218C4 ::v91(){vfunc_called(this, "_ZN6S218C43v91Ev");}
void  S218C4 ::v92(){vfunc_called(this, "_ZN6S218C43v92Ev");}
void  S218C4 ::v93(){vfunc_called(this, "_ZN6S218C43v93Ev");}
void  S218C4 ::v94(){vfunc_called(this, "_ZN6S218C43v94Ev");}
void  S218C4 ::v95(){vfunc_called(this, "_ZN6S218C43v95Ev");}
void  S218C4 ::v96(){vfunc_called(this, "_ZN6S218C43v96Ev");}
void  S218C4 ::v97(){vfunc_called(this, "_ZN6S218C43v97Ev");}
void  S218C4 ::v98(){vfunc_called(this, "_ZN6S218C43v98Ev");}
void  S218C4 ::v99(){vfunc_called(this, "_ZN6S218C43v99Ev");}
void  S218C4 ::v100(){vfunc_called(this, "_ZN6S218C44v100Ev");}
void  S218C4 ::v101(){vfunc_called(this, "_ZN6S218C44v101Ev");}
void  S218C4 ::v102(){vfunc_called(this, "_ZN6S218C44v102Ev");}
void  S218C4 ::v103(){vfunc_called(this, "_ZN6S218C44v103Ev");}
void  S218C4 ::v104(){vfunc_called(this, "_ZN6S218C44v104Ev");}
void  S218C4 ::v105(){vfunc_called(this, "_ZN6S218C44v105Ev");}
void  S218C4 ::v106(){vfunc_called(this, "_ZN6S218C44v106Ev");}
void  S218C4 ::v107(){vfunc_called(this, "_ZN6S218C44v107Ev");}
void  S218C4 ::v108(){vfunc_called(this, "_ZN6S218C44v108Ev");}
void  S218C4 ::v109(){vfunc_called(this, "_ZN6S218C44v109Ev");}
void  S218C4 ::v110(){vfunc_called(this, "_ZN6S218C44v110Ev");}
void  S218C4 ::v111(){vfunc_called(this, "_ZN6S218C44v111Ev");}
void  S218C4 ::v112(){vfunc_called(this, "_ZN6S218C44v112Ev");}
void  S218C4 ::v113(){vfunc_called(this, "_ZN6S218C44v113Ev");}
void  S218C4 ::v114(){vfunc_called(this, "_ZN6S218C44v114Ev");}
void  S218C4 ::v115(){vfunc_called(this, "_ZN6S218C44v115Ev");}
void  S218C4 ::v116(){vfunc_called(this, "_ZN6S218C44v116Ev");}
void  S218C4 ::v117(){vfunc_called(this, "_ZN6S218C44v117Ev");}
void  S218C4 ::v118(){vfunc_called(this, "_ZN6S218C44v118Ev");}
void  S218C4 ::v119(){vfunc_called(this, "_ZN6S218C44v119Ev");}
void  S218C4 ::v120(){vfunc_called(this, "_ZN6S218C44v120Ev");}
void  S218C4 ::v121(){vfunc_called(this, "_ZN6S218C44v121Ev");}
void  S218C4 ::v122(){vfunc_called(this, "_ZN6S218C44v122Ev");}
void  S218C4 ::v123(){vfunc_called(this, "_ZN6S218C44v123Ev");}
void  S218C4 ::v124(){vfunc_called(this, "_ZN6S218C44v124Ev");}
void  S218C4 ::v125(){vfunc_called(this, "_ZN6S218C44v125Ev");}
void  S218C4 ::v126(){vfunc_called(this, "_ZN6S218C44v126Ev");}
void  S218C4 ::v127(){vfunc_called(this, "_ZN6S218C44v127Ev");}
void  S218C4 ::v128(){vfunc_called(this, "_ZN6S218C44v128Ev");}
void  S218C4 ::v129(){vfunc_called(this, "_ZN6S218C44v129Ev");}
void  S218C4 ::v130(){vfunc_called(this, "_ZN6S218C44v130Ev");}
void  S218C4 ::v131(){vfunc_called(this, "_ZN6S218C44v131Ev");}
void  S218C4 ::v132(){vfunc_called(this, "_ZN6S218C44v132Ev");}
void  S218C4 ::v133(){vfunc_called(this, "_ZN6S218C44v133Ev");}
void  S218C4 ::v134(){vfunc_called(this, "_ZN6S218C44v134Ev");}
void  S218C4 ::v135(){vfunc_called(this, "_ZN6S218C44v135Ev");}
void  S218C4 ::v136(){vfunc_called(this, "_ZN6S218C44v136Ev");}
void  S218C4 ::v137(){vfunc_called(this, "_ZN6S218C44v137Ev");}
void  S218C4 ::v138(){vfunc_called(this, "_ZN6S218C44v138Ev");}
void  S218C4 ::v139(){vfunc_called(this, "_ZN6S218C44v139Ev");}
void  S218C4 ::v140(){vfunc_called(this, "_ZN6S218C44v140Ev");}
void  S218C4 ::v141(){vfunc_called(this, "_ZN6S218C44v141Ev");}
void  S218C4 ::v142(){vfunc_called(this, "_ZN6S218C44v142Ev");}
void  S218C4 ::v143(){vfunc_called(this, "_ZN6S218C44v143Ev");}
void  S218C4 ::v144(){vfunc_called(this, "_ZN6S218C44v144Ev");}
void  S218C4 ::v145(){vfunc_called(this, "_ZN6S218C44v145Ev");}
S218C4 ::S218C4(){ note_ctor("S218C4", this);} // tgen

static void Test_S218C4()
{
  extern Class_Descriptor cd_S218C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S218C4, buf);
    S218C4 *dp, &lv = *(dp=new (buf) S218C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S218C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S218C4)");
    check_base_class_offset(lv, (S218C6*)(S218C5*), 0, "S218C4");
    check_base_class_offset(lv, (S218C5*), 0, "S218C4");
    check_field_offset(lv, s218c4f0, ABISELECT(96,60), "S218C4.s218c4f0");
    check_field_offset(lv, s218c4f1, ABISELECT(124,88), "S218C4.s218c4f1");
    set_bf_and_test(lv, s218c4f2, ABISELECT(128,92), 0, 1, 1, "S218C4");
    set_bf_and_test(lv, s218c4f3, ABISELECT(128,92), 1, 1, 1, "S218C4");
    set_bf_and_test(lv, s218c4f4, ABISELECT(128,92), 2, 1, 1, "S218C4");
    set_bf_and_test(lv, s218c4f5, ABISELECT(128,92), 3, 1, 1, "S218C4");
    check_field_offset(lv, s218c4f6, ABISELECT(136,96), "S218C4.s218c4f6");
    check_field_offset(lv, s218c4f7, ABISELECT(152,108), "S218C4.s218c4f7");
    check_field_offset(lv, s218c4f8, ABISELECT(168,120), "S218C4.s218c4f8");
    check_field_offset(lv, s218c4f9, ABISELECT(176,124), "S218C4.s218c4f9");
    check_field_offset(lv, s218c4f10, ABISELECT(192,136), "S218C4.s218c4f10");
    check_field_offset(lv, s218c4f11, ABISELECT(208,148), "S218C4.s218c4f11");
    check_field_offset(lv, s218c4f12, ABISELECT(224,160), "S218C4.s218c4f12");
    check_field_offset(lv, s218c4f13, ABISELECT(240,172), "S218C4.s218c4f13");
    check_field_offset(lv, s218c4f14, ABISELECT(244,176), "S218C4.s218c4f14");
    check_field_offset(lv, s218c4f15, ABISELECT(248,180), "S218C4.s218c4f15");
    check_field_offset(lv, s218c4f16, ABISELECT(256,184), "S218C4.s218c4f16");
    check_field_offset(lv, s218c4f17, ABISELECT(264,192), "S218C4.s218c4f17");
    check_field_offset(lv, s218c4f18, ABISELECT(272,200), "S218C4.s218c4f18");
    check_field_offset(lv, s218c4f19, ABISELECT(280,208), "S218C4.s218c4f19");
    check_field_offset(lv, s218c4f20, ABISELECT(288,216), "S218C4.s218c4f20");
    check_field_offset(lv, s218c4f21, ABISELECT(296,224), "S218C4.s218c4f21");
    check_field_offset(lv, s218c4f22, ABISELECT(304,232), "S218C4.s218c4f22");
    check_field_offset(lv, s218c4f23, ABISELECT(320,244), "S218C4.s218c4f23");
    check_field_offset(lv, s218c4f24, ABISELECT(336,256), "S218C4.s218c4f24");
    check_field_offset(lv, s218c4f25, ABISELECT(352,268), "S218C4.s218c4f25");
    check_field_offset(lv, s218c4f26, ABISELECT(368,280), "S218C4.s218c4f26");
    check_field_offset(lv, s218c4f27, ABISELECT(384,292), "S218C4.s218c4f27");
    check_field_offset(lv, s218c4f28, ABISELECT(400,304), "S218C4.s218c4f28");
    check_field_offset(lv, s218c4f29, ABISELECT(416,316), "S218C4.s218c4f29");
    check_field_offset(lv, s218c4f30, ABISELECT(432,328), "S218C4.s218c4f30");
    check_field_offset(lv, s218c4f31, ABISELECT(448,340), "S218C4.s218c4f31");
    test_class_info(&lv, &cd_S218C4);
    dp->~S218C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS218C4(Test_S218C4, "S218C4", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S218C4C1Ev();
extern void _ZN6S218C4D1Ev();
Name_Map name_map_S218C4[] = {
  NSPAIR(_ZN6S218C4C1Ev),
  NSPAIR(_ZN6S218C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S218C6;
extern VTBL_ENTRY _ZTI6S218C6[];
extern  VTBL_ENTRY _ZTV6S218C6[];
extern Class_Descriptor cd_S218C5;
extern VTBL_ENTRY _ZTI6S218C5[];
extern  VTBL_ENTRY _ZTV6S218C5[];
static Base_Class bases_S218C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S218C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S218C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S218C4[];
extern void _ZN6S218C4D1Ev();
extern void _ZN6S218C4D0Ev();
extern void _ZN6S218C62v4Ev();
extern void _ZN6S218C62v5Ev();
extern void _ZN6S218C62v6Ev();
extern void _ZN6S218C62v7Ev();
extern void _ZN6S218C62v8Ev();
extern void _ZN6S218C62v9Ev();
extern void _ZN6S218C63v10Ev();
extern void _ZN6S218C63v11Ev();
extern void _ZN6S218C63v12Ev();
extern void _ZN6S218C63v13Ev();
extern void _ZN6S218C63v14Ev();
extern void _ZN6S218C63v15Ev();
extern void _ZN6S218C63v16Ev();
extern void _ZN6S218C63v17Ev();
extern void _ZN6S218C63v18Ev();
extern void _ZN6S218C63v19Ev();
extern void _ZN6S218C63v20Ev();
extern void _ZN6S218C63v21Ev();
extern void _ZN6S218C63v22Ev();
extern void _ZN6S218C63v23Ev();
extern void _ZN6S218C63v24Ev();
extern void _ZN6S218C63v25Ev();
extern void _ZN6S218C63v26Ev();
extern void _ZN6S218C63v27Ev();
extern void _ZN6S218C63v28Ev();
extern void _ZN6S218C63v29Ev();
extern void _ZN6S218C63v30Ev();
extern void _ZN6S218C63v31Ev();
extern void _ZN6S218C63v32Ev();
extern void _ZN6S218C63v33Ev();
extern void _ZN6S218C63v34Ev();
extern void _ZN6S218C63v35Ev();
extern void _ZN6S218C63v36Ev();
extern void _ZN6S218C63v37Ev();
extern void _ZN6S218C63v38Ev();
extern void _ZN6S218C63v39Ev();
extern void _ZN6S218C63v40Ev();
extern void _ZN6S218C63v41Ev();
extern void _ZN6S218C63v42Ev();
extern void _ZN6S218C63v43Ev();
extern void _ZN6S218C63v44Ev();
extern void _ZN6S218C63v45Ev();
extern void _ZN6S218C63v46Ev();
extern void _ZN6S218C63v47Ev();
extern void _ZN6S218C63v48Ev();
extern void _ZN6S218C63v49Ev();
extern void _ZN6S218C63v50Ev();
extern void _ZN6S218C63v51Ev();
extern void _ZN6S218C63v52Ev();
extern void _ZN6S218C63v53Ev();
extern void _ZN6S218C63v54Ev();
extern void _ZN6S218C63v55Ev();
extern void _ZN6S218C63v56Ev();
extern void _ZN6S218C63v57Ev();
extern void _ZN6S218C63v58Ev();
extern void _ZN6S218C63v59Ev();
extern void _ZN6S218C63v60Ev();
extern void _ZN6S218C63v61Ev();
extern void _ZN6S218C63v62Ev();
extern void _ZN6S218C63v63Ev();
extern void _ZN6S218C63v64Ev();
extern void _ZN6S218C63v65Ev();
extern void _ZN6S218C63v66Ev();
extern void _ZN6S218C63v67Ev();
extern void _ZN6S218C53v68Ev();
extern void _ZN6S218C53v69Ev();
extern void _ZN6S218C43v70Ev();
extern void _ZN6S218C43v71Ev();
extern void _ZN6S218C43v72Ev();
extern void _ZN6S218C43v73Ev();
extern void _ZN6S218C43v74Ev();
extern void _ZN6S218C43v75Ev();
extern void _ZN6S218C43v76Ev();
extern void _ZN6S218C43v77Ev();
extern void _ZN6S218C43v78Ev();
extern void _ZN6S218C43v79Ev();
extern void _ZN6S218C43v80Ev();
extern void _ZN6S218C43v81Ev();
extern void _ZN6S218C43v82Ev();
extern void _ZN6S218C43v83Ev();
extern void _ZN6S218C43v84Ev();
extern void _ZN6S218C43v85Ev();
extern void _ZN6S218C43v86Ev();
extern void _ZN6S218C43v87Ev();
extern void _ZN6S218C43v88Ev();
extern void _ZN6S218C43v89Ev();
extern void _ZN6S218C43v90Ev();
extern void _ZN6S218C43v91Ev();
extern void _ZN6S218C43v92Ev();
extern void _ZN6S218C43v93Ev();
extern void _ZN6S218C43v94Ev();
extern void _ZN6S218C43v95Ev();
extern void _ZN6S218C43v96Ev();
extern void _ZN6S218C43v97Ev();
extern void _ZN6S218C43v98Ev();
extern void _ZN6S218C43v99Ev();
extern void _ZN6S218C44v100Ev();
extern void _ZN6S218C44v101Ev();
extern void _ZN6S218C44v102Ev();
extern void _ZN6S218C44v103Ev();
extern void _ZN6S218C44v104Ev();
extern void _ZN6S218C44v105Ev();
extern void _ZN6S218C44v106Ev();
extern void _ZN6S218C44v107Ev();
extern void _ZN6S218C44v108Ev();
extern void _ZN6S218C44v109Ev();
extern void _ZN6S218C44v110Ev();
extern void _ZN6S218C44v111Ev();
extern void _ZN6S218C44v112Ev();
extern void _ZN6S218C44v113Ev();
extern void _ZN6S218C44v114Ev();
extern void _ZN6S218C44v115Ev();
extern void _ZN6S218C44v116Ev();
extern void _ZN6S218C44v117Ev();
extern void _ZN6S218C44v118Ev();
extern void _ZN6S218C44v119Ev();
extern void _ZN6S218C44v120Ev();
extern void _ZN6S218C44v121Ev();
extern void _ZN6S218C44v122Ev();
extern void _ZN6S218C44v123Ev();
extern void _ZN6S218C44v124Ev();
extern void _ZN6S218C44v125Ev();
extern void _ZN6S218C44v126Ev();
extern void _ZN6S218C44v127Ev();
extern void _ZN6S218C44v128Ev();
extern void _ZN6S218C44v129Ev();
extern void _ZN6S218C44v130Ev();
extern void _ZN6S218C44v131Ev();
extern void _ZN6S218C44v132Ev();
extern void _ZN6S218C44v133Ev();
extern void _ZN6S218C44v134Ev();
extern void _ZN6S218C44v135Ev();
extern void _ZN6S218C44v136Ev();
extern void _ZN6S218C44v137Ev();
extern void _ZN6S218C44v138Ev();
extern void _ZN6S218C44v139Ev();
extern void _ZN6S218C44v140Ev();
extern void _ZN6S218C44v141Ev();
extern void _ZN6S218C44v142Ev();
extern void _ZN6S218C44v143Ev();
extern void _ZN6S218C44v144Ev();
extern void _ZN6S218C44v145Ev();
static  VTBL_ENTRY vtc_S218C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S218C4[0]),
  (VTBL_ENTRY)&_ZN6S218C4D1Ev,
  (VTBL_ENTRY)&_ZN6S218C4D0Ev,
  (VTBL_ENTRY)&_ZN6S218C62v4Ev,
  (VTBL_ENTRY)&_ZN6S218C62v5Ev,
  (VTBL_ENTRY)&_ZN6S218C62v6Ev,
  (VTBL_ENTRY)&_ZN6S218C62v7Ev,
  (VTBL_ENTRY)&_ZN6S218C62v8Ev,
  (VTBL_ENTRY)&_ZN6S218C62v9Ev,
  (VTBL_ENTRY)&_ZN6S218C63v10Ev,
  (VTBL_ENTRY)&_ZN6S218C63v11Ev,
  (VTBL_ENTRY)&_ZN6S218C63v12Ev,
  (VTBL_ENTRY)&_ZN6S218C63v13Ev,
  (VTBL_ENTRY)&_ZN6S218C63v14Ev,
  (VTBL_ENTRY)&_ZN6S218C63v15Ev,
  (VTBL_ENTRY)&_ZN6S218C63v16Ev,
  (VTBL_ENTRY)&_ZN6S218C63v17Ev,
  (VTBL_ENTRY)&_ZN6S218C63v18Ev,
  (VTBL_ENTRY)&_ZN6S218C63v19Ev,
  (VTBL_ENTRY)&_ZN6S218C63v20Ev,
  (VTBL_ENTRY)&_ZN6S218C63v21Ev,
  (VTBL_ENTRY)&_ZN6S218C63v22Ev,
  (VTBL_ENTRY)&_ZN6S218C63v23Ev,
  (VTBL_ENTRY)&_ZN6S218C63v24Ev,
  (VTBL_ENTRY)&_ZN6S218C63v25Ev,
  (VTBL_ENTRY)&_ZN6S218C63v26Ev,
  (VTBL_ENTRY)&_ZN6S218C63v27Ev,
  (VTBL_ENTRY)&_ZN6S218C63v28Ev,
  (VTBL_ENTRY)&_ZN6S218C63v29Ev,
  (VTBL_ENTRY)&_ZN6S218C63v30Ev,
  (VTBL_ENTRY)&_ZN6S218C63v31Ev,
  (VTBL_ENTRY)&_ZN6S218C63v32Ev,
  (VTBL_ENTRY)&_ZN6S218C63v33Ev,
  (VTBL_ENTRY)&_ZN6S218C63v34Ev,
  (VTBL_ENTRY)&_ZN6S218C63v35Ev,
  (VTBL_ENTRY)&_ZN6S218C63v36Ev,
  (VTBL_ENTRY)&_ZN6S218C63v37Ev,
  (VTBL_ENTRY)&_ZN6S218C63v38Ev,
  (VTBL_ENTRY)&_ZN6S218C63v39Ev,
  (VTBL_ENTRY)&_ZN6S218C63v40Ev,
  (VTBL_ENTRY)&_ZN6S218C63v41Ev,
  (VTBL_ENTRY)&_ZN6S218C63v42Ev,
  (VTBL_ENTRY)&_ZN6S218C63v43Ev,
  (VTBL_ENTRY)&_ZN6S218C63v44Ev,
  (VTBL_ENTRY)&_ZN6S218C63v45Ev,
  (VTBL_ENTRY)&_ZN6S218C63v46Ev,
  (VTBL_ENTRY)&_ZN6S218C63v47Ev,
  (VTBL_ENTRY)&_ZN6S218C63v48Ev,
  (VTBL_ENTRY)&_ZN6S218C63v49Ev,
  (VTBL_ENTRY)&_ZN6S218C63v50Ev,
  (VTBL_ENTRY)&_ZN6S218C63v51Ev,
  (VTBL_ENTRY)&_ZN6S218C63v52Ev,
  (VTBL_ENTRY)&_ZN6S218C63v53Ev,
  (VTBL_ENTRY)&_ZN6S218C63v54Ev,
  (VTBL_ENTRY)&_ZN6S218C63v55Ev,
  (VTBL_ENTRY)&_ZN6S218C63v56Ev,
  (VTBL_ENTRY)&_ZN6S218C63v57Ev,
  (VTBL_ENTRY)&_ZN6S218C63v58Ev,
  (VTBL_ENTRY)&_ZN6S218C63v59Ev,
  (VTBL_ENTRY)&_ZN6S218C63v60Ev,
  (VTBL_ENTRY)&_ZN6S218C63v61Ev,
  (VTBL_ENTRY)&_ZN6S218C63v62Ev,
  (VTBL_ENTRY)&_ZN6S218C63v63Ev,
  (VTBL_ENTRY)&_ZN6S218C63v64Ev,
  (VTBL_ENTRY)&_ZN6S218C63v65Ev,
  (VTBL_ENTRY)&_ZN6S218C63v66Ev,
  (VTBL_ENTRY)&_ZN6S218C63v67Ev,
  (VTBL_ENTRY)&_ZN6S218C53v68Ev,
  (VTBL_ENTRY)&_ZN6S218C53v69Ev,
  (VTBL_ENTRY)&_ZN6S218C43v70Ev,
  (VTBL_ENTRY)&_ZN6S218C43v71Ev,
  (VTBL_ENTRY)&_ZN6S218C43v72Ev,
  (VTBL_ENTRY)&_ZN6S218C43v73Ev,
  (VTBL_ENTRY)&_ZN6S218C43v74Ev,
  (VTBL_ENTRY)&_ZN6S218C43v75Ev,
  (VTBL_ENTRY)&_ZN6S218C43v76Ev,
  (VTBL_ENTRY)&_ZN6S218C43v77Ev,
  (VTBL_ENTRY)&_ZN6S218C43v78Ev,
  (VTBL_ENTRY)&_ZN6S218C43v79Ev,
  (VTBL_ENTRY)&_ZN6S218C43v80Ev,
  (VTBL_ENTRY)&_ZN6S218C43v81Ev,
  (VTBL_ENTRY)&_ZN6S218C43v82Ev,
  (VTBL_ENTRY)&_ZN6S218C43v83Ev,
  (VTBL_ENTRY)&_ZN6S218C43v84Ev,
  (VTBL_ENTRY)&_ZN6S218C43v85Ev,
  (VTBL_ENTRY)&_ZN6S218C43v86Ev,
  (VTBL_ENTRY)&_ZN6S218C43v87Ev,
  (VTBL_ENTRY)&_ZN6S218C43v88Ev,
  (VTBL_ENTRY)&_ZN6S218C43v89Ev,
  (VTBL_ENTRY)&_ZN6S218C43v90Ev,
  (VTBL_ENTRY)&_ZN6S218C43v91Ev,
  (VTBL_ENTRY)&_ZN6S218C43v92Ev,
  (VTBL_ENTRY)&_ZN6S218C43v93Ev,
  (VTBL_ENTRY)&_ZN6S218C43v94Ev,
  (VTBL_ENTRY)&_ZN6S218C43v95Ev,
  (VTBL_ENTRY)&_ZN6S218C43v96Ev,
  (VTBL_ENTRY)&_ZN6S218C43v97Ev,
  (VTBL_ENTRY)&_ZN6S218C43v98Ev,
  (VTBL_ENTRY)&_ZN6S218C43v99Ev,
  (VTBL_ENTRY)&_ZN6S218C44v100Ev,
  (VTBL_ENTRY)&_ZN6S218C44v101Ev,
  (VTBL_ENTRY)&_ZN6S218C44v102Ev,
  (VTBL_ENTRY)&_ZN6S218C44v103Ev,
  (VTBL_ENTRY)&_ZN6S218C44v104Ev,
  (VTBL_ENTRY)&_ZN6S218C44v105Ev,
  (VTBL_ENTRY)&_ZN6S218C44v106Ev,
  (VTBL_ENTRY)&_ZN6S218C44v107Ev,
  (VTBL_ENTRY)&_ZN6S218C44v108Ev,
  (VTBL_ENTRY)&_ZN6S218C44v109Ev,
  (VTBL_ENTRY)&_ZN6S218C44v110Ev,
  (VTBL_ENTRY)&_ZN6S218C44v111Ev,
  (VTBL_ENTRY)&_ZN6S218C44v112Ev,
  (VTBL_ENTRY)&_ZN6S218C44v113Ev,
  (VTBL_ENTRY)&_ZN6S218C44v114Ev,
  (VTBL_ENTRY)&_ZN6S218C44v115Ev,
  (VTBL_ENTRY)&_ZN6S218C44v116Ev,
  (VTBL_ENTRY)&_ZN6S218C44v117Ev,
  (VTBL_ENTRY)&_ZN6S218C44v118Ev,
  (VTBL_ENTRY)&_ZN6S218C44v119Ev,
  (VTBL_ENTRY)&_ZN6S218C44v120Ev,
  (VTBL_ENTRY)&_ZN6S218C44v121Ev,
  (VTBL_ENTRY)&_ZN6S218C44v122Ev,
  (VTBL_ENTRY)&_ZN6S218C44v123Ev,
  (VTBL_ENTRY)&_ZN6S218C44v124Ev,
  (VTBL_ENTRY)&_ZN6S218C44v125Ev,
  (VTBL_ENTRY)&_ZN6S218C44v126Ev,
  (VTBL_ENTRY)&_ZN6S218C44v127Ev,
  (VTBL_ENTRY)&_ZN6S218C44v128Ev,
  (VTBL_ENTRY)&_ZN6S218C44v129Ev,
  (VTBL_ENTRY)&_ZN6S218C44v130Ev,
  (VTBL_ENTRY)&_ZN6S218C44v131Ev,
  (VTBL_ENTRY)&_ZN6S218C44v132Ev,
  (VTBL_ENTRY)&_ZN6S218C44v133Ev,
  (VTBL_ENTRY)&_ZN6S218C44v134Ev,
  (VTBL_ENTRY)&_ZN6S218C44v135Ev,
  (VTBL_ENTRY)&_ZN6S218C44v136Ev,
  (VTBL_ENTRY)&_ZN6S218C44v137Ev,
  (VTBL_ENTRY)&_ZN6S218C44v138Ev,
  (VTBL_ENTRY)&_ZN6S218C44v139Ev,
  (VTBL_ENTRY)&_ZN6S218C44v140Ev,
  (VTBL_ENTRY)&_ZN6S218C44v141Ev,
  (VTBL_ENTRY)&_ZN6S218C44v142Ev,
  (VTBL_ENTRY)&_ZN6S218C44v143Ev,
  (VTBL_ENTRY)&_ZN6S218C44v144Ev,
  (VTBL_ENTRY)&_ZN6S218C44v145Ev,
};
extern VTBL_ENTRY _ZTI6S218C4[];
extern  VTBL_ENTRY _ZTV6S218C4[];
Class_Descriptor cd_S218C4 = {  "S218C4", // class name
  bases_S218C4, 2,
  &(vtc_S218C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S218C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S218C4),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S218C3  : S218C4 {
  ::S85C27_nt s218c3f0;
  void *s218c3f1[9];
  ::S80C15 s218c3f2;
  ::S85C35 s218c3f3;
  ::S80C24 s218c3f4;
  int s218c3f5;
  unsigned int s218c3f6:1;
  unsigned int s218c3f7:1;
  unsigned int s218c3f8:1;
  unsigned int s218c3f9:1;
  unsigned int s218c3f10:1;
  unsigned int s218c3f11:1;
  unsigned int s218c3f12:1;
  unsigned int s218c3f13:1;
  unsigned int s218c3f14:1;
  unsigned int s218c3f15:1;
  unsigned int s218c3f16:1;
  unsigned int s218c3f17:1;
  unsigned int s218c3f18:1;
  unsigned int s218c3f19:1;
  unsigned int s218c3f20:1;
  unsigned int s218c3f21:1;
  unsigned int s218c3f22:1;
  unsigned int s218c3f23:1;
  unsigned int s218c3f24:1;
  unsigned int s218c3f25:1;
  unsigned int s218c3f26:1;
  unsigned int s218c3f27:1;
  void *s218c3f28;
  char s218c3f29[2];
  ::S80C8_nt s218c3f30;
  ::S85C27_nt s218c3f31;
  ::S85C27_nt s218c3f32;
  void *s218c3f33;
  ::S80C21_nt s218c3f34;
  ::S80C21_nt s218c3f35;
  ::S80C21_nt s218c3f36;
  ::S80C21_nt s218c3f37;
  ::S80C21_nt s218c3f38;
  virtual  ~S218C3(); // _ZN6S218C3D1Ev
  virtual void  v146(); // _ZN6S218C34v146Ev
  virtual void  v147(); // _ZN6S218C34v147Ev
  virtual void  v148(); // _ZN6S218C34v148Ev
  virtual void  v149(); // _ZN6S218C34v149Ev
  virtual void  v150(); // _ZN6S218C34v150Ev
  virtual void  v151(); // _ZN6S218C34v151Ev
  virtual void  v152(); // _ZN6S218C34v152Ev
  virtual void  v153(); // _ZN6S218C34v153Ev
  virtual void  v154(); // _ZN6S218C34v154Ev
  virtual void  v155(); // _ZN6S218C34v155Ev
  virtual void  v156(); // _ZN6S218C34v156Ev
  virtual void  v157(); // _ZN6S218C34v157Ev
  virtual void  v158(); // _ZN6S218C34v158Ev
  virtual void  v159(); // _ZN6S218C34v159Ev
  virtual void  v160(); // _ZN6S218C34v160Ev
  virtual void  v161(); // _ZN6S218C34v161Ev
  virtual void  v162(); // _ZN6S218C34v162Ev
  virtual void  v163(); // _ZN6S218C34v163Ev
  virtual void  v164(); // _ZN6S218C34v164Ev
  virtual void  v165(); // _ZN6S218C34v165Ev
  virtual void  v166(); // _ZN6S218C34v166Ev
  virtual void  v167(); // _ZN6S218C34v167Ev
  virtual void  v168(); // _ZN6S218C34v168Ev
  virtual void  v169(); // _ZN6S218C34v169Ev
  virtual void  v170(); // _ZN6S218C34v170Ev
  virtual void  v171(); // _ZN6S218C34v171Ev
  virtual void  v172(); // _ZN6S218C34v172Ev
  virtual void  v173(); // _ZN6S218C34v173Ev
  virtual void  v174(); // _ZN6S218C34v174Ev
  virtual void  v175(); // _ZN6S218C34v175Ev
  virtual void  v176(); // _ZN6S218C34v176Ev
  virtual void  v177(); // _ZN6S218C34v177Ev
  virtual void  v178(); // _ZN6S218C34v178Ev
  virtual void  v179(); // _ZN6S218C34v179Ev
  virtual void  v180(); // _ZN6S218C34v180Ev
  virtual void  v181(); // _ZN6S218C34v181Ev
  virtual void  v182(); // _ZN6S218C34v182Ev
  virtual void  v183(); // _ZN6S218C34v183Ev
  virtual void  v184(); // _ZN6S218C34v184Ev
  S218C3(); // tgen
};
//SIG(-1 S218C3) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S218C3 ::~S218C3(){ note_dtor("S218C3", this);}
void  S218C3 ::v146(){vfunc_called(this, "_ZN6S218C34v146Ev");}
void  S218C3 ::v147(){vfunc_called(this, "_ZN6S218C34v147Ev");}
void  S218C3 ::v148(){vfunc_called(this, "_ZN6S218C34v148Ev");}
void  S218C3 ::v149(){vfunc_called(this, "_ZN6S218C34v149Ev");}
void  S218C3 ::v150(){vfunc_called(this, "_ZN6S218C34v150Ev");}
void  S218C3 ::v151(){vfunc_called(this, "_ZN6S218C34v151Ev");}
void  S218C3 ::v152(){vfunc_called(this, "_ZN6S218C34v152Ev");}
void  S218C3 ::v153(){vfunc_called(this, "_ZN6S218C34v153Ev");}
void  S218C3 ::v154(){vfunc_called(this, "_ZN6S218C34v154Ev");}
void  S218C3 ::v155(){vfunc_called(this, "_ZN6S218C34v155Ev");}
void  S218C3 ::v156(){vfunc_called(this, "_ZN6S218C34v156Ev");}
void  S218C3 ::v157(){vfunc_called(this, "_ZN6S218C34v157Ev");}
void  S218C3 ::v158(){vfunc_called(this, "_ZN6S218C34v158Ev");}
void  S218C3 ::v159(){vfunc_called(this, "_ZN6S218C34v159Ev");}
void  S218C3 ::v160(){vfunc_called(this, "_ZN6S218C34v160Ev");}
void  S218C3 ::v161(){vfunc_called(this, "_ZN6S218C34v161Ev");}
void  S218C3 ::v162(){vfunc_called(this, "_ZN6S218C34v162Ev");}
void  S218C3 ::v163(){vfunc_called(this, "_ZN6S218C34v163Ev");}
void  S218C3 ::v164(){vfunc_called(this, "_ZN6S218C34v164Ev");}
void  S218C3 ::v165(){vfunc_called(this, "_ZN6S218C34v165Ev");}
void  S218C3 ::v166(){vfunc_called(this, "_ZN6S218C34v166Ev");}
void  S218C3 ::v167(){vfunc_called(this, "_ZN6S218C34v167Ev");}
void  S218C3 ::v168(){vfunc_called(this, "_ZN6S218C34v168Ev");}
void  S218C3 ::v169(){vfunc_called(this, "_ZN6S218C34v169Ev");}
void  S218C3 ::v170(){vfunc_called(this, "_ZN6S218C34v170Ev");}
void  S218C3 ::v171(){vfunc_called(this, "_ZN6S218C34v171Ev");}
void  S218C3 ::v172(){vfunc_called(this, "_ZN6S218C34v172Ev");}
void  S218C3 ::v173(){vfunc_called(this, "_ZN6S218C34v173Ev");}
void  S218C3 ::v174(){vfunc_called(this, "_ZN6S218C34v174Ev");}
void  S218C3 ::v175(){vfunc_called(this, "_ZN6S218C34v175Ev");}
void  S218C3 ::v176(){vfunc_called(this, "_ZN6S218C34v176Ev");}
void  S218C3 ::v177(){vfunc_called(this, "_ZN6S218C34v177Ev");}
void  S218C3 ::v178(){vfunc_called(this, "_ZN6S218C34v178Ev");}
void  S218C3 ::v179(){vfunc_called(this, "_ZN6S218C34v179Ev");}
void  S218C3 ::v180(){vfunc_called(this, "_ZN6S218C34v180Ev");}
void  S218C3 ::v181(){vfunc_called(this, "_ZN6S218C34v181Ev");}
void  S218C3 ::v182(){vfunc_called(this, "_ZN6S218C34v182Ev");}
void  S218C3 ::v183(){vfunc_called(this, "_ZN6S218C34v183Ev");}
void  S218C3 ::v184(){vfunc_called(this, "_ZN6S218C34v184Ev");}
S218C3 ::S218C3(){ note_ctor("S218C3", this);} // tgen

static void Test_S218C3()
{
  extern Class_Descriptor cd_S218C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S218C3, buf);
    S218C3 *dp, &lv = *(dp=new (buf) S218C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S218C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S218C3)");
    check_base_class_offset(lv, (S218C6*)(S218C5*)(S218C4*), 0, "S218C3");
    check_base_class_offset(lv, (S218C5*)(S218C4*), 0, "S218C3");
    check_base_class_offset(lv, (S218C4*), 0, "S218C3");
    check_field_offset(lv, s218c3f0, ABISELECT(464,352), "S218C3.s218c3f0");
    check_field_offset(lv, s218c3f1, ABISELECT(472,360), "S218C3.s218c3f1");
    check_field_offset(lv, s218c3f2, ABISELECT(544,396), "S218C3.s218c3f2");
    check_field_offset(lv, s218c3f3, ABISELECT(560,408), "S218C3.s218c3f3");
    check_field_offset(lv, s218c3f4, ABISELECT(576,420), "S218C3.s218c3f4");
    check_field_offset(lv, s218c3f5, ABISELECT(608,440), "S218C3.s218c3f5");
    set_bf_and_test(lv, s218c3f6, ABISELECT(612,444), 0, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f7, ABISELECT(612,444), 1, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f8, ABISELECT(612,444), 2, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f9, ABISELECT(612,444), 3, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f10, ABISELECT(612,444), 4, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f11, ABISELECT(612,444), 5, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f12, ABISELECT(612,444), 6, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f13, ABISELECT(612,444), 7, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f14, ABISELECT(613,445), 0, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f15, ABISELECT(613,445), 1, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f16, ABISELECT(613,445), 2, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f17, ABISELECT(613,445), 3, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f18, ABISELECT(613,445), 4, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f19, ABISELECT(613,445), 5, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f20, ABISELECT(613,445), 6, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f21, ABISELECT(613,445), 7, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f22, ABISELECT(614,446), 0, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f23, ABISELECT(614,446), 1, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f24, ABISELECT(614,446), 2, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f25, ABISELECT(614,446), 3, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f26, ABISELECT(614,446), 4, 1, 1, "S218C3");
    set_bf_and_test(lv, s218c3f27, ABISELECT(614,446), 5, 1, 1, "S218C3");
    check_field_offset(lv, s218c3f28, ABISELECT(616,448), "S218C3.s218c3f28");
    check_field_offset(lv, s218c3f29, ABISELECT(624,452), "S218C3.s218c3f29");
    check_field_offset(lv, s218c3f30, ABISELECT(628,456), "S218C3.s218c3f30");
    check_field_offset(lv, s218c3f31, ABISELECT(636,464), "S218C3.s218c3f31");
    check_field_offset(lv, s218c3f32, ABISELECT(644,472), "S218C3.s218c3f32");
    check_field_offset(lv, s218c3f33, ABISELECT(656,480), "S218C3.s218c3f33");
    check_field_offset(lv, s218c3f34, ABISELECT(664,484), "S218C3.s218c3f34");
    check_field_offset(lv, s218c3f35, ABISELECT(680,496), "S218C3.s218c3f35");
    check_field_offset(lv, s218c3f36, ABISELECT(696,508), "S218C3.s218c3f36");
    check_field_offset(lv, s218c3f37, ABISELECT(712,520), "S218C3.s218c3f37");
    check_field_offset(lv, s218c3f38, ABISELECT(728,532), "S218C3.s218c3f38");
    test_class_info(&lv, &cd_S218C3);
    dp->~S218C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS218C3(Test_S218C3, "S218C3", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S218C3C1Ev();
extern void _ZN6S218C3D1Ev();
Name_Map name_map_S218C3[] = {
  NSPAIR(_ZN6S218C3C1Ev),
  NSPAIR(_ZN6S218C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S218C6;
extern VTBL_ENTRY _ZTI6S218C6[];
extern  VTBL_ENTRY _ZTV6S218C6[];
extern Class_Descriptor cd_S218C5;
extern VTBL_ENTRY _ZTI6S218C5[];
extern  VTBL_ENTRY _ZTV6S218C5[];
extern Class_Descriptor cd_S218C4;
extern VTBL_ENTRY _ZTI6S218C4[];
extern  VTBL_ENTRY _ZTV6S218C4[];
static Base_Class bases_S218C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S218C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S218C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S218C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S218C3[];
extern void _ZN6S218C3D1Ev();
extern void _ZN6S218C3D0Ev();
extern void _ZN6S218C62v4Ev();
extern void _ZN6S218C62v5Ev();
extern void _ZN6S218C62v6Ev();
extern void _ZN6S218C62v7Ev();
extern void _ZN6S218C62v8Ev();
extern void _ZN6S218C62v9Ev();
extern void _ZN6S218C63v10Ev();
extern void _ZN6S218C63v11Ev();
extern void _ZN6S218C63v12Ev();
extern void _ZN6S218C63v13Ev();
extern void _ZN6S218C63v14Ev();
extern void _ZN6S218C63v15Ev();
extern void _ZN6S218C63v16Ev();
extern void _ZN6S218C63v17Ev();
extern void _ZN6S218C63v18Ev();
extern void _ZN6S218C63v19Ev();
extern void _ZN6S218C63v20Ev();
extern void _ZN6S218C63v21Ev();
extern void _ZN6S218C63v22Ev();
extern void _ZN6S218C63v23Ev();
extern void _ZN6S218C63v24Ev();
extern void _ZN6S218C63v25Ev();
extern void _ZN6S218C63v26Ev();
extern void _ZN6S218C63v27Ev();
extern void _ZN6S218C63v28Ev();
extern void _ZN6S218C63v29Ev();
extern void _ZN6S218C63v30Ev();
extern void _ZN6S218C63v31Ev();
extern void _ZN6S218C63v32Ev();
extern void _ZN6S218C63v33Ev();
extern void _ZN6S218C63v34Ev();
extern void _ZN6S218C63v35Ev();
extern void _ZN6S218C63v36Ev();
extern void _ZN6S218C63v37Ev();
extern void _ZN6S218C63v38Ev();
extern void _ZN6S218C63v39Ev();
extern void _ZN6S218C63v40Ev();
extern void _ZN6S218C63v41Ev();
extern void _ZN6S218C63v42Ev();
extern void _ZN6S218C63v43Ev();
extern void _ZN6S218C63v44Ev();
extern void _ZN6S218C63v45Ev();
extern void _ZN6S218C63v46Ev();
extern void _ZN6S218C63v47Ev();
extern void _ZN6S218C63v48Ev();
extern void _ZN6S218C63v49Ev();
extern void _ZN6S218C63v50Ev();
extern void _ZN6S218C63v51Ev();
extern void _ZN6S218C63v52Ev();
extern void _ZN6S218C63v53Ev();
extern void _ZN6S218C63v54Ev();
extern void _ZN6S218C63v55Ev();
extern void _ZN6S218C63v56Ev();
extern void _ZN6S218C63v57Ev();
extern void _ZN6S218C63v58Ev();
extern void _ZN6S218C63v59Ev();
extern void _ZN6S218C63v60Ev();
extern void _ZN6S218C63v61Ev();
extern void _ZN6S218C63v62Ev();
extern void _ZN6S218C63v63Ev();
extern void _ZN6S218C63v64Ev();
extern void _ZN6S218C63v65Ev();
extern void _ZN6S218C63v66Ev();
extern void _ZN6S218C63v67Ev();
extern void _ZN6S218C53v68Ev();
extern void _ZN6S218C53v69Ev();
extern void _ZN6S218C43v70Ev();
extern void _ZN6S218C43v71Ev();
extern void _ZN6S218C43v72Ev();
extern void _ZN6S218C43v73Ev();
extern void _ZN6S218C43v74Ev();
extern void _ZN6S218C43v75Ev();
extern void _ZN6S218C43v76Ev();
extern void _ZN6S218C43v77Ev();
extern void _ZN6S218C43v78Ev();
extern void _ZN6S218C43v79Ev();
extern void _ZN6S218C43v80Ev();
extern void _ZN6S218C43v81Ev();
extern void _ZN6S218C43v82Ev();
extern void _ZN6S218C43v83Ev();
extern void _ZN6S218C43v84Ev();
extern void _ZN6S218C43v85Ev();
extern void _ZN6S218C43v86Ev();
extern void _ZN6S218C43v87Ev();
extern void _ZN6S218C43v88Ev();
extern void _ZN6S218C43v89Ev();
extern void _ZN6S218C43v90Ev();
extern void _ZN6S218C43v91Ev();
extern void _ZN6S218C43v92Ev();
extern void _ZN6S218C43v93Ev();
extern void _ZN6S218C43v94Ev();
extern void _ZN6S218C43v95Ev();
extern void _ZN6S218C43v96Ev();
extern void _ZN6S218C43v97Ev();
extern void _ZN6S218C43v98Ev();
extern void _ZN6S218C43v99Ev();
extern void _ZN6S218C44v100Ev();
extern void _ZN6S218C44v101Ev();
extern void _ZN6S218C44v102Ev();
extern void _ZN6S218C44v103Ev();
extern void _ZN6S218C44v104Ev();
extern void _ZN6S218C44v105Ev();
extern void _ZN6S218C44v106Ev();
extern void _ZN6S218C44v107Ev();
extern void _ZN6S218C44v108Ev();
extern void _ZN6S218C44v109Ev();
extern void _ZN6S218C44v110Ev();
extern void _ZN6S218C44v111Ev();
extern void _ZN6S218C44v112Ev();
extern void _ZN6S218C44v113Ev();
extern void _ZN6S218C44v114Ev();
extern void _ZN6S218C44v115Ev();
extern void _ZN6S218C44v116Ev();
extern void _ZN6S218C44v117Ev();
extern void _ZN6S218C44v118Ev();
extern void _ZN6S218C44v119Ev();
extern void _ZN6S218C44v120Ev();
extern void _ZN6S218C44v121Ev();
extern void _ZN6S218C44v122Ev();
extern void _ZN6S218C44v123Ev();
extern void _ZN6S218C44v124Ev();
extern void _ZN6S218C44v125Ev();
extern void _ZN6S218C44v126Ev();
extern void _ZN6S218C44v127Ev();
extern void _ZN6S218C44v128Ev();
extern void _ZN6S218C44v129Ev();
extern void _ZN6S218C44v130Ev();
extern void _ZN6S218C44v131Ev();
extern void _ZN6S218C44v132Ev();
extern void _ZN6S218C44v133Ev();
extern void _ZN6S218C44v134Ev();
extern void _ZN6S218C44v135Ev();
extern void _ZN6S218C44v136Ev();
extern void _ZN6S218C44v137Ev();
extern void _ZN6S218C44v138Ev();
extern void _ZN6S218C44v139Ev();
extern void _ZN6S218C44v140Ev();
extern void _ZN6S218C44v141Ev();
extern void _ZN6S218C44v142Ev();
extern void _ZN6S218C44v143Ev();
extern void _ZN6S218C44v144Ev();
extern void _ZN6S218C44v145Ev();
extern void _ZN6S218C34v146Ev();
extern void _ZN6S218C34v147Ev();
extern void _ZN6S218C34v148Ev();
extern void _ZN6S218C34v149Ev();
extern void _ZN6S218C34v150Ev();
extern void _ZN6S218C34v151Ev();
extern void _ZN6S218C34v152Ev();
extern void _ZN6S218C34v153Ev();
extern void _ZN6S218C34v154Ev();
extern void _ZN6S218C34v155Ev();
extern void _ZN6S218C34v156Ev();
extern void _ZN6S218C34v157Ev();
extern void _ZN6S218C34v158Ev();
extern void _ZN6S218C34v159Ev();
extern void _ZN6S218C34v160Ev();
extern void _ZN6S218C34v161Ev();
extern void _ZN6S218C34v162Ev();
extern void _ZN6S218C34v163Ev();
extern void _ZN6S218C34v164Ev();
extern void _ZN6S218C34v165Ev();
extern void _ZN6S218C34v166Ev();
extern void _ZN6S218C34v167Ev();
extern void _ZN6S218C34v168Ev();
extern void _ZN6S218C34v169Ev();
extern void _ZN6S218C34v170Ev();
extern void _ZN6S218C34v171Ev();
extern void _ZN6S218C34v172Ev();
extern void _ZN6S218C34v173Ev();
extern void _ZN6S218C34v174Ev();
extern void _ZN6S218C34v175Ev();
extern void _ZN6S218C34v176Ev();
extern void _ZN6S218C34v177Ev();
extern void _ZN6S218C34v178Ev();
extern void _ZN6S218C34v179Ev();
extern void _ZN6S218C34v180Ev();
extern void _ZN6S218C34v181Ev();
extern void _ZN6S218C34v182Ev();
extern void _ZN6S218C34v183Ev();
extern void _ZN6S218C34v184Ev();
static  VTBL_ENTRY vtc_S218C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S218C3[0]),
  (VTBL_ENTRY)&_ZN6S218C3D1Ev,
  (VTBL_ENTRY)&_ZN6S218C3D0Ev,
  (VTBL_ENTRY)&_ZN6S218C62v4Ev,
  (VTBL_ENTRY)&_ZN6S218C62v5Ev,
  (VTBL_ENTRY)&_ZN6S218C62v6Ev,
  (VTBL_ENTRY)&_ZN6S218C62v7Ev,
  (VTBL_ENTRY)&_ZN6S218C62v8Ev,
  (VTBL_ENTRY)&_ZN6S218C62v9Ev,
  (VTBL_ENTRY)&_ZN6S218C63v10Ev,
  (VTBL_ENTRY)&_ZN6S218C63v11Ev,
  (VTBL_ENTRY)&_ZN6S218C63v12Ev,
  (VTBL_ENTRY)&_ZN6S218C63v13Ev,
  (VTBL_ENTRY)&_ZN6S218C63v14Ev,
  (VTBL_ENTRY)&_ZN6S218C63v15Ev,
  (VTBL_ENTRY)&_ZN6S218C63v16Ev,
  (VTBL_ENTRY)&_ZN6S218C63v17Ev,
  (VTBL_ENTRY)&_ZN6S218C63v18Ev,
  (VTBL_ENTRY)&_ZN6S218C63v19Ev,
  (VTBL_ENTRY)&_ZN6S218C63v20Ev,
  (VTBL_ENTRY)&_ZN6S218C63v21Ev,
  (VTBL_ENTRY)&_ZN6S218C63v22Ev,
  (VTBL_ENTRY)&_ZN6S218C63v23Ev,
  (VTBL_ENTRY)&_ZN6S218C63v24Ev,
  (VTBL_ENTRY)&_ZN6S218C63v25Ev,
  (VTBL_ENTRY)&_ZN6S218C63v26Ev,
  (VTBL_ENTRY)&_ZN6S218C63v27Ev,
  (VTBL_ENTRY)&_ZN6S218C63v28Ev,
  (VTBL_ENTRY)&_ZN6S218C63v29Ev,
  (VTBL_ENTRY)&_ZN6S218C63v30Ev,
  (VTBL_ENTRY)&_ZN6S218C63v31Ev,
  (VTBL_ENTRY)&_ZN6S218C63v32Ev,
  (VTBL_ENTRY)&_ZN6S218C63v33Ev,
  (VTBL_ENTRY)&_ZN6S218C63v34Ev,
  (VTBL_ENTRY)&_ZN6S218C63v35Ev,
  (VTBL_ENTRY)&_ZN6S218C63v36Ev,
  (VTBL_ENTRY)&_ZN6S218C63v37Ev,
  (VTBL_ENTRY)&_ZN6S218C63v38Ev,
  (VTBL_ENTRY)&_ZN6S218C63v39Ev,
  (VTBL_ENTRY)&_ZN6S218C63v40Ev,
  (VTBL_ENTRY)&_ZN6S218C63v41Ev,
  (VTBL_ENTRY)&_ZN6S218C63v42Ev,
  (VTBL_ENTRY)&_ZN6S218C63v43Ev,
  (VTBL_ENTRY)&_ZN6S218C63v44Ev,
  (VTBL_ENTRY)&_ZN6S218C63v45Ev,
  (VTBL_ENTRY)&_ZN6S218C63v46Ev,
  (VTBL_ENTRY)&_ZN6S218C63v47Ev,
  (VTBL_ENTRY)&_ZN6S218C63v48Ev,
  (VTBL_ENTRY)&_ZN6S218C63v49Ev,
  (VTBL_ENTRY)&_ZN6S218C63v50Ev,
  (VTBL_ENTRY)&_ZN6S218C63v51Ev,
  (VTBL_ENTRY)&_ZN6S218C63v52Ev,
  (VTBL_ENTRY)&_ZN6S218C63v53Ev,
  (VTBL_ENTRY)&_ZN6S218C63v54Ev,
  (VTBL_ENTRY)&_ZN6S218C63v55Ev,
  (VTBL_ENTRY)&_ZN6S218C63v56Ev,
  (VTBL_ENTRY)&_ZN6S218C63v57Ev,
  (VTBL_ENTRY)&_ZN6S218C63v58Ev,
  (VTBL_ENTRY)&_ZN6S218C63v59Ev,
  (VTBL_ENTRY)&_ZN6S218C63v60Ev,
  (VTBL_ENTRY)&_ZN6S218C63v61Ev,
  (VTBL_ENTRY)&_ZN6S218C63v62Ev,
  (VTBL_ENTRY)&_ZN6S218C63v63Ev,
  (VTBL_ENTRY)&_ZN6S218C63v64Ev,
  (VTBL_ENTRY)&_ZN6S218C63v65Ev,
  (VTBL_ENTRY)&_ZN6S218C63v66Ev,
  (VTBL_ENTRY)&_ZN6S218C63v67Ev,
  (VTBL_ENTRY)&_ZN6S218C53v68Ev,
  (VTBL_ENTRY)&_ZN6S218C53v69Ev,
  (VTBL_ENTRY)&_ZN6S218C43v70Ev,
  (VTBL_ENTRY)&_ZN6S218C43v71Ev,
  (VTBL_ENTRY)&_ZN6S218C43v72Ev,
  (VTBL_ENTRY)&_ZN6S218C43v73Ev,
  (VTBL_ENTRY)&_ZN6S218C43v74Ev,
  (VTBL_ENTRY)&_ZN6S218C43v75Ev,
  (VTBL_ENTRY)&_ZN6S218C43v76Ev,
  (VTBL_ENTRY)&_ZN6S218C43v77Ev,
  (VTBL_ENTRY)&_ZN6S218C43v78Ev,
  (VTBL_ENTRY)&_ZN6S218C43v79Ev,
  (VTBL_ENTRY)&_ZN6S218C43v80Ev,
  (VTBL_ENTRY)&_ZN6S218C43v81Ev,
  (VTBL_ENTRY)&_ZN6S218C43v82Ev,
  (VTBL_ENTRY)&_ZN6S218C43v83Ev,
  (VTBL_ENTRY)&_ZN6S218C43v84Ev,
  (VTBL_ENTRY)&_ZN6S218C43v85Ev,
  (VTBL_ENTRY)&_ZN6S218C43v86Ev,
  (VTBL_ENTRY)&_ZN6S218C43v87Ev,
  (VTBL_ENTRY)&_ZN6S218C43v88Ev,
  (VTBL_ENTRY)&_ZN6S218C43v89Ev,
  (VTBL_ENTRY)&_ZN6S218C43v90Ev,
  (VTBL_ENTRY)&_ZN6S218C43v91Ev,
  (VTBL_ENTRY)&_ZN6S218C43v92Ev,
  (VTBL_ENTRY)&_ZN6S218C43v93Ev,
  (VTBL_ENTRY)&_ZN6S218C43v94Ev,
  (VTBL_ENTRY)&_ZN6S218C43v95Ev,
  (VTBL_ENTRY)&_ZN6S218C43v96Ev,
  (VTBL_ENTRY)&_ZN6S218C43v97Ev,
  (VTBL_ENTRY)&_ZN6S218C43v98Ev,
  (VTBL_ENTRY)&_ZN6S218C43v99Ev,
  (VTBL_ENTRY)&_ZN6S218C44v100Ev,
  (VTBL_ENTRY)&_ZN6S218C44v101Ev,
  (VTBL_ENTRY)&_ZN6S218C44v102Ev,
  (VTBL_ENTRY)&_ZN6S218C44v103Ev,
  (VTBL_ENTRY)&_ZN6S218C44v104Ev,
  (VTBL_ENTRY)&_ZN6S218C44v105Ev,
  (VTBL_ENTRY)&_ZN6S218C44v106Ev,
  (VTBL_ENTRY)&_ZN6S218C44v107Ev,
  (VTBL_ENTRY)&_ZN6S218C44v108Ev,
  (VTBL_ENTRY)&_ZN6S218C44v109Ev,
  (VTBL_ENTRY)&_ZN6S218C44v110Ev,
  (VTBL_ENTRY)&_ZN6S218C44v111Ev,
  (VTBL_ENTRY)&_ZN6S218C44v112Ev,
  (VTBL_ENTRY)&_ZN6S218C44v113Ev,
  (VTBL_ENTRY)&_ZN6S218C44v114Ev,
  (VTBL_ENTRY)&_ZN6S218C44v115Ev,
  (VTBL_ENTRY)&_ZN6S218C44v116Ev,
  (VTBL_ENTRY)&_ZN6S218C44v117Ev,
  (VTBL_ENTRY)&_ZN6S218C44v118Ev,
  (VTBL_ENTRY)&_ZN6S218C44v119Ev,
  (VTBL_ENTRY)&_ZN6S218C44v120Ev,
  (VTBL_ENTRY)&_ZN6S218C44v121Ev,
  (VTBL_ENTRY)&_ZN6S218C44v122Ev,
  (VTBL_ENTRY)&_ZN6S218C44v123Ev,
  (VTBL_ENTRY)&_ZN6S218C44v124Ev,
  (VTBL_ENTRY)&_ZN6S218C44v125Ev,
  (VTBL_ENTRY)&_ZN6S218C44v126Ev,
  (VTBL_ENTRY)&_ZN6S218C44v127Ev,
  (VTBL_ENTRY)&_ZN6S218C44v128Ev,
  (VTBL_ENTRY)&_ZN6S218C44v129Ev,
  (VTBL_ENTRY)&_ZN6S218C44v130Ev,
  (VTBL_ENTRY)&_ZN6S218C44v131Ev,
  (VTBL_ENTRY)&_ZN6S218C44v132Ev,
  (VTBL_ENTRY)&_ZN6S218C44v133Ev,
  (VTBL_ENTRY)&_ZN6S218C44v134Ev,
  (VTBL_ENTRY)&_ZN6S218C44v135Ev,
  (VTBL_ENTRY)&_ZN6S218C44v136Ev,
  (VTBL_ENTRY)&_ZN6S218C44v137Ev,
  (VTBL_ENTRY)&_ZN6S218C44v138Ev,
  (VTBL_ENTRY)&_ZN6S218C44v139Ev,
  (VTBL_ENTRY)&_ZN6S218C44v140Ev,
  (VTBL_ENTRY)&_ZN6S218C44v141Ev,
  (VTBL_ENTRY)&_ZN6S218C44v142Ev,
  (VTBL_ENTRY)&_ZN6S218C44v143Ev,
  (VTBL_ENTRY)&_ZN6S218C44v144Ev,
  (VTBL_ENTRY)&_ZN6S218C44v145Ev,
  (VTBL_ENTRY)&_ZN6S218C34v146Ev,
  (VTBL_ENTRY)&_ZN6S218C34v147Ev,
  (VTBL_ENTRY)&_ZN6S218C34v148Ev,
  (VTBL_ENTRY)&_ZN6S218C34v149Ev,
  (VTBL_ENTRY)&_ZN6S218C34v150Ev,
  (VTBL_ENTRY)&_ZN6S218C34v151Ev,
  (VTBL_ENTRY)&_ZN6S218C34v152Ev,
  (VTBL_ENTRY)&_ZN6S218C34v153Ev,
  (VTBL_ENTRY)&_ZN6S218C34v154Ev,
  (VTBL_ENTRY)&_ZN6S218C34v155Ev,
  (VTBL_ENTRY)&_ZN6S218C34v156Ev,
  (VTBL_ENTRY)&_ZN6S218C34v157Ev,
  (VTBL_ENTRY)&_ZN6S218C34v158Ev,
  (VTBL_ENTRY)&_ZN6S218C34v159Ev,
  (VTBL_ENTRY)&_ZN6S218C34v160Ev,
  (VTBL_ENTRY)&_ZN6S218C34v161Ev,
  (VTBL_ENTRY)&_ZN6S218C34v162Ev,
  (VTBL_ENTRY)&_ZN6S218C34v163Ev,
  (VTBL_ENTRY)&_ZN6S218C34v164Ev,
  (VTBL_ENTRY)&_ZN6S218C34v165Ev,
  (VTBL_ENTRY)&_ZN6S218C34v166Ev,
  (VTBL_ENTRY)&_ZN6S218C34v167Ev,
  (VTBL_ENTRY)&_ZN6S218C34v168Ev,
  (VTBL_ENTRY)&_ZN6S218C34v169Ev,
  (VTBL_ENTRY)&_ZN6S218C34v170Ev,
  (VTBL_ENTRY)&_ZN6S218C34v171Ev,
  (VTBL_ENTRY)&_ZN6S218C34v172Ev,
  (VTBL_ENTRY)&_ZN6S218C34v173Ev,
  (VTBL_ENTRY)&_ZN6S218C34v174Ev,
  (VTBL_ENTRY)&_ZN6S218C34v175Ev,
  (VTBL_ENTRY)&_ZN6S218C34v176Ev,
  (VTBL_ENTRY)&_ZN6S218C34v177Ev,
  (VTBL_ENTRY)&_ZN6S218C34v178Ev,
  (VTBL_ENTRY)&_ZN6S218C34v179Ev,
  (VTBL_ENTRY)&_ZN6S218C34v180Ev,
  (VTBL_ENTRY)&_ZN6S218C34v181Ev,
  (VTBL_ENTRY)&_ZN6S218C34v182Ev,
  (VTBL_ENTRY)&_ZN6S218C34v183Ev,
  (VTBL_ENTRY)&_ZN6S218C34v184Ev,
};
extern VTBL_ENTRY _ZTI6S218C3[];
extern  VTBL_ENTRY _ZTV6S218C3[];
Class_Descriptor cd_S218C3 = {  "S218C3", // class name
  bases_S218C3, 3,
  &(vtc_S218C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S218C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S218C3),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S218C2  : S218C3 {
  unsigned int s218c2f0:1;
  unsigned int s218c2f1:1;
  unsigned int s218c2f2:1;
  unsigned int s218c2f3:1;
  unsigned int s218c2f4:1;
  unsigned int s218c2f5:1;
  void *s218c2f6[8];
  ::S80C21_nt s218c2f7;
  ::S80C21_nt s218c2f8;
  ::S80C21_nt s218c2f9;
  virtual  ~S218C2(); // _ZN6S218C2D1Ev
  virtual void  v185(); // _ZN6S218C24v185Ev
  virtual void  v186(); // _ZN6S218C24v186Ev
  virtual void  v187(); // _ZN6S218C24v187Ev
  virtual void  v188(); // _ZN6S218C24v188Ev
  virtual void  v189(); // _ZN6S218C24v189Ev
  virtual void  v190(); // _ZN6S218C24v190Ev
  virtual void  v191(); // _ZN6S218C24v191Ev
  virtual void  v192(); // _ZN6S218C24v192Ev
  virtual void  v193(); // _ZN6S218C24v193Ev
  virtual void  v194(); // _ZN6S218C24v194Ev
  virtual void  v195(); // _ZN6S218C24v195Ev
  virtual void  v196(); // _ZN6S218C24v196Ev
  virtual void  v197(); // _ZN6S218C24v197Ev
  virtual void  v198(); // _ZN6S218C24v198Ev
  virtual void  v199(); // _ZN6S218C24v199Ev
  virtual void  v200(); // _ZN6S218C24v200Ev
  virtual void  v201(); // _ZN6S218C24v201Ev
  virtual void  v202(); // _ZN6S218C24v202Ev
  virtual void  v203(); // _ZN6S218C24v203Ev
  virtual void  v204(); // _ZN6S218C24v204Ev
  virtual void  v205(); // _ZN6S218C24v205Ev
  virtual void  v206(); // _ZN6S218C24v206Ev
  virtual void  v207(); // _ZN6S218C24v207Ev
  S218C2(); // tgen
};
//SIG(-1 S218C2) C1{ BC2{ BC3{ BC4{ BC5{ vd v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v88 v89} vd v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC19 FC19 FC19}


 S218C2 ::~S218C2(){ note_dtor("S218C2", this);}
void  S218C2 ::v185(){vfunc_called(this, "_ZN6S218C24v185Ev");}
void  S218C2 ::v186(){vfunc_called(this, "_ZN6S218C24v186Ev");}
void  S218C2 ::v187(){vfunc_called(this, "_ZN6S218C24v187Ev");}
void  S218C2 ::v188(){vfunc_called(this, "_ZN6S218C24v188Ev");}
void  S218C2 ::v189(){vfunc_called(this, "_ZN6S218C24v189Ev");}
void  S218C2 ::v190(){vfunc_called(this, "_ZN6S218C24v190Ev");}
void  S218C2 ::v191(){vfunc_called(this, "_ZN6S218C24v191Ev");}
void  S218C2 ::v192(){vfunc_called(this, "_ZN6S218C24v192Ev");}
void  S218C2 ::v193(){vfunc_called(this, "_ZN6S218C24v193Ev");}
void  S218C2 ::v194(){vfunc_called(this, "_ZN6S218C24v194Ev");}
void  S218C2 ::v195(){vfunc_called(this, "_ZN6S218C24v195Ev");}
void  S218C2 ::v196(){vfunc_called(this, "_ZN6S218C24v196Ev");}
void  S218C2 ::v197(){vfunc_called(this, "_ZN6S218C24v197Ev");}
void  S218C2 ::v198(){vfunc_called(this, "_ZN6S218C24v198Ev");}
void  S218C2 ::v199(){vfunc_called(this, "_ZN6S218C24v199Ev");}
void  S218C2 ::v200(){vfunc_called(this, "_ZN6S218C24v200Ev");}
void  S218C2 ::v201(){vfunc_called(this, "_ZN6S218C24v201Ev");}
void  S218C2 ::v202(){vfunc_called(this, "_ZN6S218C24v202Ev");}
void  S218C2 ::v203(){vfunc_called(this, "_ZN6S218C24v203Ev");}
void  S218C2 ::v204(){vfunc_called(this, "_ZN6S218C24v204Ev");}
void  S218C2 ::v205(){vfunc_called(this, "_ZN6S218C24v205Ev");}
void  S218C2 ::v206(){vfunc_called(this, "_ZN6S218C24v206Ev");}
void  S218C2 ::v207(){vfunc_called(this, "_ZN6S218C24v207Ev");}
S218C2 ::S218C2(){ note_ctor("S218C2", this);} // tgen

static void Test_S218C2()
{
  extern Class_Descriptor cd_S218C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(109,155)];
    init_test(&cd_S218C2, buf);
    S218C2 *dp, &lv = *(dp=new (buf) S218C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(864,616), "sizeof(S218C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S218C2)");
    check_base_class_offset(lv, (S218C6*)(S218C5*)(S218C4*)(S218C3*), 0, "S218C2");
    check_base_class_offset(lv, (S218C5*)(S218C4*)(S218C3*), 0, "S218C2");
    check_base_class_offset(lv, (S218C4*)(S218C3*), 0, "S218C2");
    check_base_class_offset(lv, (S218C3*), 0, "S218C2");
    set_bf_and_test(lv, s218c2f0, ABISELECT(744,544), 0, 1, 1, "S218C2");
    set_bf_and_test(lv, s218c2f1, ABISELECT(744,544), 1, 1, 1, "S218C2");
    set_bf_and_test(lv, s218c2f2, ABISELECT(744,544), 2, 1, 1, "S218C2");
    set_bf_and_test(lv, s218c2f3, ABISELECT(744,544), 3, 1, 1, "S218C2");
    set_bf_and_test(lv, s218c2f4, ABISELECT(744,544), 4, 1, 1, "S218C2");
    set_bf_and_test(lv, s218c2f5, ABISELECT(744,544), 5, 1, 1, "S218C2");
    check_field_offset(lv, s218c2f6, ABISELECT(752,548), "S218C2.s218c2f6");
    check_field_offset(lv, s218c2f7, ABISELECT(816,580), "S218C2.s218c2f7");
    check_field_offset(lv, s218c2f8, ABISELECT(832,592), "S218C2.s218c2f8");
    check_field_offset(lv, s218c2f9, ABISELECT(848,604), "S218C2.s218c2f9");
    test_class_info(&lv, &cd_S218C2);
    dp->~S218C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS218C2(Test_S218C2, "S218C2", ABISELECT(864,616));

#else // __cplusplus

extern void _ZN6S218C2C1Ev();
extern void _ZN6S218C2D1Ev();
Name_Map name_map_S218C2[] = {
  NSPAIR(_ZN6S218C2C1Ev),
  NSPAIR(_ZN6S218C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S218C6;
extern VTBL_ENTRY _ZTI6S218C6[];
extern  VTBL_ENTRY _ZTV6S218C6[];
extern Class_Descriptor cd_S218C5;
extern VTBL_ENTRY _ZTI6S218C5[];
extern  VTBL_ENTRY _ZTV6S218C5[];
extern Class_Descriptor cd_S218C4;
extern VTBL_ENTRY _ZTI6S218C4[];
extern  VTBL_ENTRY _ZTV6S218C4[];
extern Class_Descriptor cd_S218C3;
extern VTBL_ENTRY _ZTI6S218C3[];
extern  VTBL_ENTRY _ZTV6S218C3[];
static Base_Class bases_S218C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S218C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S218C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S218C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S218C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S218C2[];
extern void _ZN6S218C2D1Ev();
extern void _ZN6S218C2D0Ev();
extern void _ZN6S218C62v4Ev();
extern void _ZN6S218C62v5Ev();
extern void _ZN6S218C62v6Ev();
extern void _ZN6S218C62v7Ev();
extern void _ZN6S218C62v8Ev();
extern void _ZN6S218C62v9Ev();
extern void _ZN6S218C63v10Ev();
extern void _ZN6S218C63v11Ev();
extern void _ZN6S218C63v12Ev();
extern void _ZN6S218C63v13Ev();
extern void _ZN6S218C63v14Ev();
extern void _ZN6S218C63v15Ev();
extern void _ZN6S218C63v16Ev();
extern void _ZN6S218C63v17Ev();
extern void _ZN6S218C63v18Ev();
extern void _ZN6S218C63v19Ev();
extern void _ZN6S218C63v20Ev();
extern void _ZN6S218C63v21Ev();
extern void _ZN6S218C63v22Ev();
extern void _ZN6S218C63v23Ev();
extern void _ZN6S218C63v24Ev();
extern void _ZN6S218C63v25Ev();
extern void _ZN6S218C63v26Ev();
extern void _ZN6S218C63v27Ev();
extern void _ZN6S218C63v28Ev();
extern void _ZN6S218C63v29Ev();
extern void _ZN6S218C63v30Ev();
extern void _ZN6S218C63v31Ev();
extern void _ZN6S218C63v32Ev();
extern void _ZN6S218C63v33Ev();
extern void _ZN6S218C63v34Ev();
extern void _ZN6S218C63v35Ev();
extern void _ZN6S218C63v36Ev();
extern void _ZN6S218C63v37Ev();
extern void _ZN6S218C63v38Ev();
extern void _ZN6S218C63v39Ev();
extern void _ZN6S218C63v40Ev();
extern void _ZN6S218C63v41Ev();
extern void _ZN6S218C63v42Ev();
extern void _ZN6S218C63v43Ev();
extern void _ZN6S218C63v44Ev();
extern void _ZN6S218C63v45Ev();
extern void _ZN6S218C63v46Ev();
extern void _ZN6S218C63v47Ev();
extern void _ZN6S218C63v48Ev();
extern void _ZN6S218C63v49Ev();
extern void _ZN6S218C63v50Ev();
extern void _ZN6S218C63v51Ev();
extern void _ZN6S218C63v52Ev();
extern void _ZN6S218C63v53Ev();
extern void _ZN6S218C63v54Ev();
extern void _ZN6S218C63v55Ev();
extern void _ZN6S218C63v56Ev();
extern void _ZN6S218C63v57Ev();
extern void _ZN6S218C63v58Ev();
extern void _ZN6S218C63v59Ev();
extern void _ZN6S218C63v60Ev();
extern void _ZN6S218C63v61Ev();
extern void _ZN6S218C63v62Ev();
extern void _ZN6S218C63v63Ev();
extern void _ZN6S218C63v64Ev();
extern void _ZN6S218C63v65Ev();
extern void _ZN6S218C63v66Ev();
extern void _ZN6S218C63v67Ev();
extern void _ZN6S218C53v68Ev();
extern void _ZN6S218C53v69Ev();
extern void _ZN6S218C43v70Ev();
extern void _ZN6S218C43v71Ev();
extern void _ZN6S218C43v72Ev();
extern void _ZN6S218C43v73Ev();
extern void _ZN6S218C43v74Ev();
extern void _ZN6S218C43v75Ev();
extern void _ZN6S218C43v76Ev();
extern void _ZN6S218C43v77Ev();
extern void _ZN6S218C43v78Ev();
extern void _ZN6S218C43v79Ev();
extern void _ZN6S218C43v80Ev();
extern void _ZN6S218C43v81Ev();
extern void _ZN6S218C43v82Ev();
extern void _ZN6S218C43v83Ev();
extern void _ZN6S218C43v84Ev();
extern void _ZN6S218C43v85Ev();
extern void _ZN6S218C43v86Ev();
extern void _ZN6S218C43v87Ev();
extern void _ZN6S218C43v88Ev();
extern void _ZN6S218C43v89Ev();
extern void _ZN6S218C43v90Ev();
extern void _ZN6S218C43v91Ev();
extern void _ZN6S218C43v92Ev();
extern void _ZN6S218C43v93Ev();
extern void _ZN6S218C43v94Ev();
extern void _ZN6S218C43v95Ev();
extern void _ZN6S218C43v96Ev();
extern void _ZN6S218C43v97Ev();
extern void _ZN6S218C43v98Ev();
extern void _ZN6S218C43v99Ev();
extern void _ZN6S218C44v100Ev();
extern void _ZN6S218C44v101Ev();
extern void _ZN6S218C44v102Ev();
extern void _ZN6S218C44v103Ev();
extern void _ZN6S218C44v104Ev();
extern void _ZN6S218C44v105Ev();
extern void _ZN6S218C44v106Ev();
extern void _ZN6S218C44v107Ev();
extern void _ZN6S218C44v108Ev();
extern void _ZN6S218C44v109Ev();
extern void _ZN6S218C44v110Ev();
extern void _ZN6S218C44v111Ev();
extern void _ZN6S218C44v112Ev();
extern void _ZN6S218C44v113Ev();
extern void _ZN6S218C44v114Ev();
extern void _ZN6S218C44v115Ev();
extern void _ZN6S218C44v116Ev();
extern void _ZN6S218C44v117Ev();
extern void _ZN6S218C44v118Ev();
extern void _ZN6S218C44v119Ev();
extern void _ZN6S218C44v120Ev();
extern void _ZN6S218C44v121Ev();
extern void _ZN6S218C44v122Ev();
extern void _ZN6S218C44v123Ev();
extern void _ZN6S218C44v124Ev();
extern void _ZN6S218C44v125Ev();
extern void _ZN6S218C44v126Ev();
extern void _ZN6S218C44v127Ev();
extern void _ZN6S218C44v128Ev();
extern void _ZN6S218C44v129Ev();
extern void _ZN6S218C44v130Ev();
extern void _ZN6S218C44v131Ev();
extern void _ZN6S218C44v132Ev();
extern void _ZN6S218C44v133Ev();
extern void _ZN6S218C44v134Ev();
extern void _ZN6S218C44v135Ev();
extern void _ZN6S218C44v136Ev();
extern void _ZN6S218C44v137Ev();
extern void _ZN6S218C44v138Ev();
extern void _ZN6S218C44v139Ev();
extern void _ZN6S218C44v140Ev();
extern void _ZN6S218C44v141Ev();
extern void _ZN6S218C44v142Ev();
extern void _ZN6S218C44v143Ev();
extern void _ZN6S218C44v144Ev();
extern void _ZN6S218C44v145Ev();
extern void _ZN6S218C34v146Ev();
extern void _ZN6S218C34v147Ev();
extern void _ZN6S218C34v148Ev();
extern void _ZN6S218C34v149Ev();
extern void _ZN6S218C34v150Ev();
extern void _ZN6S218C34v151Ev();
extern void _ZN6S218C34v152Ev();
extern void _ZN6S218C34v153Ev();
extern void _ZN6S218C34v154Ev();
extern void _ZN6S218C34v155Ev();
extern void _ZN6S218C34v156Ev();
extern void _ZN6S218C34v157Ev();
extern void _ZN6S218C34v158Ev();
extern void _ZN6S218C34v159Ev();
extern void _ZN6S218C34v160Ev();
extern void _ZN6S218C34v161Ev();
extern void _ZN6S218C34v162Ev();
extern void _ZN6S218C34v163Ev();
extern void _ZN6S218C34v164Ev();
extern void _ZN6S218C34v165Ev();
extern void _ZN6S218C34v166Ev();
extern void _ZN6S218C34v167Ev();
extern void _ZN6S218C34v168Ev();
extern void _ZN6S218C34v169Ev();
extern void _ZN6S218C34v170Ev();
extern void _ZN6S218C34v171Ev();
extern void _ZN6S218C34v172Ev();
extern void _ZN6S218C34v173Ev();
extern void _ZN6S218C34v174Ev();
extern void _ZN6S218C34v175Ev();
extern void _ZN6S218C34v176Ev();
extern void _ZN6S218C34v177Ev();
extern void _ZN6S218C34v178Ev();
extern void _ZN6S218C34v179Ev();
extern void _ZN6S218C34v180Ev();
extern void _ZN6S218C34v181Ev();
extern void _ZN6S218C34v182Ev();
extern void _ZN6S218C34v183Ev();
extern void _ZN6S218C34v184Ev();
extern void _ZN6S218C24v185Ev();
extern void _ZN6S218C24v186Ev();
extern void _ZN6S218C24v187Ev();
extern void _ZN6S218C24v188Ev();
extern void _ZN6S218C24v189Ev();
extern void _ZN6S218C24v190Ev();
extern void _ZN6S218C24v191Ev();
extern void _ZN6S218C24v192Ev();
extern void _ZN6S218C24v193Ev();
extern void _ZN6S218C24v194Ev();
extern void _ZN6S218C24v195Ev();
extern void _ZN6S218C24v196Ev();
extern void _ZN6S218C24v197Ev();
extern void _ZN6S218C24v198Ev();
extern void _ZN6S218C24v199Ev();
extern void _ZN6S218C24v200Ev();
extern void _ZN6S218C24v201Ev();
extern void _ZN6S218C24v202Ev();
extern void _ZN6S218C24v203Ev();
extern void _ZN6S218C24v204Ev();
extern void _ZN6S218C24v205Ev();
extern void _ZN6S218C24v206Ev();
extern void _ZN6S218C24v207Ev();
static  VTBL_ENTRY vtc_S218C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S218C2[0]),
  (VTBL_ENTRY)&_ZN6S218C2D1Ev,
  (VTBL_ENTRY)&_ZN6S218C2D0Ev,
  (VTBL_ENTRY)&_ZN6S218C62v4Ev,
  (VTBL_ENTRY)&_ZN6S218C62v5Ev,
  (VTBL_ENTRY)&_ZN6S218C62v6Ev,
  (VTBL_ENTRY)&_ZN6S218C62v7Ev,
  (VTBL_ENTRY)&_ZN6S218C62v8Ev,
  (VTBL_ENTRY)&_ZN6S218C62v9Ev,
  (VTBL_ENTRY)&_ZN6S218C63v10Ev,
  (VTBL_ENTRY)&_ZN6S218C63v11Ev,
  (VTBL_ENTRY)&_ZN6S218C63v12Ev,
  (VTBL_ENTRY)&_ZN6S218C63v13Ev,
  (VTBL_ENTRY)&_ZN6S218C63v14Ev,
  (VTBL_ENTRY)&_ZN6S218C63v15Ev,
  (VTBL_ENTRY)&_ZN6S218C63v16Ev,
  (VTBL_ENTRY)&_ZN6S218C63v17Ev,
  (VTBL_ENTRY)&_ZN6S218C63v18Ev,
  (VTBL_ENTRY)&_ZN6S218C63v19Ev,
  (VTBL_ENTRY)&_ZN6S218C63v20Ev,
  (VTBL_ENTRY)&_ZN6S218C63v21Ev,
  (VTBL_ENTRY)&_ZN6S218C63v22Ev,
  (VTBL_ENTRY)&_ZN6S218C63v23Ev,
  (VTBL_ENTRY)&_ZN6S218C63v24Ev,
  (VTBL_ENTRY)&_ZN6S218C63v25Ev,
  (VTBL_ENTRY)&_ZN6S218C63v26Ev,
  (VTBL_ENTRY)&_ZN6S218C63v27Ev,
  (VTBL_ENTRY)&_ZN6S218C63v28Ev,
  (VTBL_ENTRY)&_ZN6S218C63v29Ev,
  (VTBL_ENTRY)&_ZN6S218C63v30Ev,
  (VTBL_ENTRY)&_ZN6S218C63v31Ev,
  (VTBL_ENTRY)&_ZN6S218C63v32Ev,
  (VTBL_ENTRY)&_ZN6S218C63v33Ev,
  (VTBL_ENTRY)&_ZN6S218C63v34Ev,
  (VTBL_ENTRY)&_ZN6S218C63v35Ev,
  (VTBL_ENTRY)&_ZN6S218C63v36Ev,
  (VTBL_ENTRY)&_ZN6S218C63v37Ev,
  (VTBL_ENTRY)&_ZN6S218C63v38Ev,
  (VTBL_ENTRY)&_ZN6S218C63v39Ev,
  (VTBL_ENTRY)&_ZN6S218C63v40Ev,
  (VTBL_ENTRY)&_ZN6S218C63v41Ev,
  (VTBL_ENTRY)&_ZN6S218C63v42Ev,
  (VTBL_ENTRY)&_ZN6S218C63v43Ev,
  (VTBL_ENTRY)&_ZN6S218C63v44Ev,
  (VTBL_ENTRY)&_ZN6S218C63v45Ev,
  (VTBL_ENTRY)&_ZN6S218C63v46Ev,
  (VTBL_ENTRY)&_ZN6S218C63v47Ev,
  (VTBL_ENTRY)&_ZN6S218C63v48Ev,
  (VTBL_ENTRY)&_ZN6S218C63v49Ev,
  (VTBL_ENTRY)&_ZN6S218C63v50Ev,
  (VTBL_ENTRY)&_ZN6S218C63v51Ev,
  (VTBL_ENTRY)&_ZN6S218C63v52Ev,
  (VTBL_ENTRY)&_ZN6S218C63v53Ev,
  (VTBL_ENTRY)&_ZN6S218C63v54Ev,
  (VTBL_ENTRY)&_ZN6S218C63v55Ev,
  (VTBL_ENTRY)&_ZN6S218C63v56Ev,
  (VTBL_ENTRY)&_ZN6S218C63v57Ev,
  (VTBL_ENTRY)&_ZN6S218C63v58Ev,
  (VTBL_ENTRY)&_ZN6S218C63v59Ev,
  (VTBL_ENTRY)&_ZN6S218C63v60Ev,
  (VTBL_ENTRY)&_ZN6S218C63v61Ev,
  (VTBL_ENTRY)&_ZN6S218C63v62Ev,
  (VTBL_ENTRY)&_ZN6S218C63v63Ev,
  (VTBL_ENTRY)&_ZN6S218C63v64Ev,
  (VTBL_ENTRY)&_ZN6S218C63v65Ev,
  (VTBL_ENTRY)&_ZN6S218C63v66Ev,
  (VTBL_ENTRY)&_ZN6S218C63v67Ev,
  (VTBL_ENTRY)&_ZN6S218C53v68Ev,
  (VTBL_ENTRY)&_ZN6S218C53v69Ev,
  (VTBL_ENTRY)&_ZN6S218C43v70Ev,
  (VTBL_ENTRY)&_ZN6S218C43v71Ev,
  (VTBL_ENTRY)&_ZN6S218C43v72Ev,
  (VTBL_ENTRY)&_ZN6S218C43v73Ev,
  (VTBL_ENTRY)&_ZN6S218C43v74Ev,
  (VTBL_ENTRY)&_ZN6S218C43v75Ev,
  (VTBL_ENTRY)&_ZN6S218C43v76Ev,
  (VTBL_ENTRY)&_ZN6S218C43v77Ev,
  (VTBL_ENTRY)&_ZN6S218C43v78Ev,
  (VTBL_ENTRY)&_ZN6S218C43v79Ev,
  (VTBL_ENTRY)&_ZN6S218C43v80Ev,
  (VTBL_ENTRY)&_ZN6S218C43v81Ev,
  (VTBL_ENTRY)&_ZN6S218C43v82Ev,
  (VTBL_ENTRY)&_ZN6S218C43v83Ev,
  (VTBL_ENTRY)&_ZN6S218C43v84Ev,
  (VTBL_ENTRY)&_ZN6S218C43v85Ev,
  (VTBL_ENTRY)&_ZN6S218C43v86Ev,
  (VTBL_ENTRY)&_ZN6S218C43v87Ev,
  (VTBL_ENTRY)&_ZN6S218C43v88Ev,
  (VTBL_ENTRY)&_ZN6S218C43v89Ev,
  (VTBL_ENTRY)&_ZN6S218C43v90Ev,
  (VTBL_ENTRY)&_ZN6S218C43v91Ev,
  (VTBL_ENTRY)&_ZN6S218C43v92Ev,
  (VTBL_ENTRY)&_ZN6S218C43v93Ev,
  (VTBL_ENTRY)&_ZN6S218C43v94Ev,
  (VTBL_ENTRY)&_ZN6S218C43v95Ev,
  (VTBL_ENTRY)&_ZN6S218C43v96Ev,
  (VTBL_ENTRY)&_ZN6S218C43v97Ev,
  (VTBL_ENTRY)&_ZN6S218C43v98Ev,
  (VTBL_ENTRY)&_ZN6S218C43v99Ev,
  (VTBL_ENTRY)&_ZN6S218C44v100Ev,
  (VTBL_ENTRY)&_ZN6S218C44v101Ev,
  (VTBL_ENTRY)&_ZN6S218C44v102Ev,
  (VTBL_ENTRY)&_ZN6S218C44v103Ev,
  (VTBL_ENTRY)&_ZN6S218C44v104Ev,
  (VTBL_ENTRY)&_ZN6S218C44v105Ev,
  (VTBL_ENTRY)&_ZN6S218C44v106Ev,
  (VTBL_ENTRY)&_ZN6S218C44v107Ev,
  (VTBL_ENTRY)&_ZN6S218C44v108Ev,
  (VTBL_ENTRY)&_ZN6S218C44v109Ev,
  (VTBL_ENTRY)&_ZN6S218C44v110Ev,
  (VTBL_ENTRY)&_ZN6S218C44v111Ev,
  (VTBL_ENTRY)&_ZN6S218C44v112Ev,
  (VTBL_ENTRY)&_ZN6S218C44v113Ev,
  (VTBL_ENTRY)&_ZN6S218C44v114Ev,
  (VTBL_ENTRY)&_ZN6S218C44v115Ev,
  (VTBL_ENTRY)&_ZN6S218C44v116Ev,
  (VTBL_ENTRY)&_ZN6S218C44v117Ev,
  (VTBL_ENTRY)&_ZN6S218C44v118Ev,
  (VTBL_ENTRY)&_ZN6S218C44v119Ev,
  (VTBL_ENTRY)&_ZN6S218C44v120Ev,
  (VTBL_ENTRY)&_ZN6S218C44v121Ev,
  (VTBL_ENTRY)&_ZN6S218C44v122Ev,
  (VTBL_ENTRY)&_ZN6S218C44v123Ev,
  (VTBL_ENTRY)&_ZN6S218C44v124Ev,
  (VTBL_ENTRY)&_ZN6S218C44v125Ev,
  (VTBL_ENTRY)&_ZN6S218C44v126Ev,
  (VTBL_ENTRY)&_ZN6S218C44v127Ev,
  (VTBL_ENTRY)&_ZN6S218C44v128Ev,
  (VTBL_ENTRY)&_ZN6S218C44v129Ev,
  (VTBL_ENTRY)&_ZN6S218C44v130Ev,
  (VTBL_ENTRY)&_ZN6S218C44v131Ev,
  (VTBL_ENTRY)&_ZN6S218C44v132Ev,
  (VTBL_ENTRY)&_ZN6S218C44v133Ev,
  (VTBL_ENTRY)&_ZN6S218C44v134Ev,
  (VTBL_ENTRY)&_ZN6S218C44v135Ev,
  (VTBL_ENTRY)&_ZN6S218C44v136Ev,
  (VTBL_ENTRY)&_ZN6S218C44v137Ev,
  (VTBL_ENTRY)&_ZN6S218C44v138Ev,
  (VTBL_ENTRY)&_ZN6S218C44v139Ev,
  (VTBL_ENTRY)&_ZN6S218C44v140Ev,
  (VTBL_ENTRY)&_ZN6S218C44v141Ev,
  (VTBL_ENTRY)&_ZN6S218C44v142Ev,
  (VTBL_ENTRY)&_ZN6S218C44v143Ev,
  (VTBL_ENTRY)&_ZN6S218C44v144Ev,
  (VTBL_ENTRY)&_ZN6S218C44v145Ev,
  (VTBL_ENTRY)&_ZN6S218C34v146Ev,
  (VTBL_ENTRY)&_ZN6S218C34v147Ev,
  (VTBL_ENTRY)&_ZN6S218C34v148Ev,
  (VTBL_ENTRY)&_ZN6S218C34v149Ev,
  (VTBL_ENTRY)&_ZN6S218C34v150Ev,
  (VTBL_ENTRY)&_ZN6S218C34v151Ev,
  (VTBL_ENTRY)&_ZN6S218C34v152Ev,
  (VTBL_ENTRY)&_ZN6S218C34v153Ev,
  (VTBL_ENTRY)&_ZN6S218C34v154Ev,
  (VTBL_ENTRY)&_ZN6S218C34v155Ev,
  (VTBL_ENTRY)&_ZN6S218C34v156Ev,
  (VTBL_ENTRY)&_ZN6S218C34v157Ev,
  (VTBL_ENTRY)&_ZN6S218C34v158Ev,
  (VTBL_ENTRY)&_ZN6S218C34v159Ev,
  (VTBL_ENTRY)&_ZN6S218C34v160Ev,
  (VTBL_ENTRY)&_ZN6S218C34v161Ev,
  (VTBL_ENTRY)&_ZN6S218C34v162Ev,
  (VTBL_ENTRY)&_ZN6S218C34v163Ev,
  (VTBL_ENTRY)&_ZN6S218C34v164Ev,
  (VTBL_ENTRY)&_ZN6S218C34v165Ev,
  (VTBL_ENTRY)&_ZN6S218C34v166Ev,
  (VTBL_ENTRY)&_ZN6S218C34v167Ev,
  (VTBL_ENTRY)&_ZN6S218C34v168Ev,
  (VTBL_ENTRY)&_ZN6S218C34v169Ev,
  (VTBL_ENTRY)&_ZN6S218C34v170Ev,
  (VTBL_ENTRY)&_ZN6S218C34v171Ev,
  (VTBL_ENTRY)&_ZN6S218C34v172Ev,
  (VTBL_ENTRY)&_ZN6S218C34v173Ev,
  (VTBL_ENTRY)&_ZN6S218C34v174Ev,
  (VTBL_ENTRY)&_ZN6S218C34v175Ev,
  (VTBL_ENTRY)&_ZN6S218C34v176Ev,
  (VTBL_ENTRY)&_ZN6S218C34v177Ev,
  (VTBL_ENTRY)&_ZN6S218C34v178Ev,
  (VTBL_ENTRY)&_ZN6S218C34v179Ev,
  (VTBL_ENTRY)&_ZN6S218C34v180Ev,
  (VTBL_ENTRY)&_ZN6S218C34v181Ev,
  (VTBL_ENTRY)&_ZN6S218C34v182Ev,
  (VTBL_ENTRY)&_ZN6S218C34v183Ev,
  (VTBL_ENTRY)&_ZN6S218C34v184Ev,
  (VTBL_ENTRY)&_ZN6S218C24v185Ev,
  (VTBL_ENTRY)&_ZN6S218C24v186Ev,
  (VTBL_ENTRY)&_ZN6S218C24v187Ev,
  (VTBL_ENTRY)&_ZN6S218C24v188Ev,
  (VTBL_ENTRY)&_ZN6S218C24v189Ev,
  (VTBL_ENTRY)&_ZN6S218C24v190Ev,
  (VTBL_ENTRY)&_ZN6S218C24v191Ev,
  (VTBL_ENTRY)&_ZN6S218C24v192Ev,
  (VTBL_ENTRY)&_ZN6S218C24v193Ev,
  (VTBL_ENTRY)&_ZN6S218C24v194Ev,
  (VTBL_ENTRY)&_ZN6S218C24v195Ev,
  (VTBL_ENTRY)&_ZN6S218C24v196Ev,
  (VTBL_ENTRY)&_ZN6S218C24v197Ev,
  (VTBL_ENTRY)&_ZN6S218C24v198Ev,
  (VTBL_ENTRY)&_ZN6S218C24v199Ev,
  (VTBL_ENTRY)&_ZN6S218C24v200Ev,
  (VTBL_ENTRY)&_ZN6S218C24v201Ev,
  (VTBL_ENTRY)&_ZN6S218C24v202Ev,
  (VTBL_ENTRY)&_ZN6S218C24v203Ev,
  (VTBL_ENTRY)&_ZN6S218C24v204Ev,
  (VTBL_ENTRY)&_ZN6S218C24v205Ev,
  (VTBL_ENTRY)&_ZN6S218C24v206Ev,
  (VTBL_ENTRY)&_ZN6S218C24v207Ev,
};
extern VTBL_ENTRY _ZTI6S218C2[];
extern  VTBL_ENTRY _ZTV6S218C2[];
Class_Descriptor cd_S218C2 = {  "S218C2", // class name
  bases_S218C2, 4,
  &(vtc_S218C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(864,616), // object size
  NSPAIRA(_ZTI6S218C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S218C2),208, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  4, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S218C1  : S218C2 {
  void *s218c1f0[2];
  virtual  ~S218C1(); // _ZN6S218C1D1Ev
  virtual void  v1(); // _ZN6S218C12v1Ev
  virtual void  v2(); // _ZN6S218C12v2Ev
  virtual void  v3(); // _ZN6S218C12v3Ev
  S218C1(); // tgen
};
//SIG(1 S218C1) C1{ BC2{ BC3{ BC4{ BC5{ BC6{ vd v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 Fi FL Fp[4] Fi[2] Fp FC7{ m Fi[2]} Fp[2]} vd v68 v69} vd v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 FC8{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC9{ BC10{ BC11{ m Fp Fi[2]}}} FC12{ BC13{ BC11}} Fp FC14{ BC15{ BC11}} FC14 FC16{ BC17{ BC11}} FC18{ BC19{ BC11}} Fc Fi Fp FC7 FC7 FC7 FC7 FC7 FC7 FC20{ m Fp FC21{ m Fi[2]}} FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20 FC20} vd v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 FC7 Fp[9] FC22{ BC23{ BC11}} FC9 FC24{ BC25{ m FC26{ BC11} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC21 FC7 FC7 Fp FC20 FC20 FC20 FC20 FC20} vd v185 v186 v187 v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204 v205 v206 v207 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp[8] FC20 FC20 FC20} vd v1 v2 v3 Fp[2]}


 S218C1 ::~S218C1(){ note_dtor("S218C1", this);}
void  S218C1 ::v1(){vfunc_called(this, "_ZN6S218C12v1Ev");}
void  S218C1 ::v2(){vfunc_called(this, "_ZN6S218C12v2Ev");}
void  S218C1 ::v3(){vfunc_called(this, "_ZN6S218C12v3Ev");}
S218C1 ::S218C1(){ note_ctor("S218C1", this);} // tgen

static void Test_S218C1()
{
  extern Class_Descriptor cd_S218C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(111,157)];
    init_test(&cd_S218C1, buf);
    S218C1 *dp, &lv = *(dp=new (buf) S218C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(880,624), "sizeof(S218C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S218C1)");
    check_base_class_offset(lv, (S218C6*)(S218C5*)(S218C4*)(S218C3*)(S218C2*), 0, "S218C1");
    check_base_class_offset(lv, (S218C5*)(S218C4*)(S218C3*)(S218C2*), 0, "S218C1");
    check_base_class_offset(lv, (S218C4*)(S218C3*)(S218C2*), 0, "S218C1");
    check_base_class_offset(lv, (S218C3*)(S218C2*), 0, "S218C1");
    check_base_class_offset(lv, (S218C2*), 0, "S218C1");
    check_field_offset(lv, s218c1f0, ABISELECT(864,616), "S218C1.s218c1f0");
    test_class_info(&lv, &cd_S218C1);
    dp->~S218C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS218C1(Test_S218C1, "S218C1", ABISELECT(880,624));

#else // __cplusplus

extern void _ZN6S218C1C1Ev();
extern void _ZN6S218C1D1Ev();
Name_Map name_map_S218C1[] = {
  NSPAIR(_ZN6S218C1C1Ev),
  NSPAIR(_ZN6S218C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S218C6;
extern VTBL_ENTRY _ZTI6S218C6[];
extern  VTBL_ENTRY _ZTV6S218C6[];
extern Class_Descriptor cd_S218C5;
extern VTBL_ENTRY _ZTI6S218C5[];
extern  VTBL_ENTRY _ZTV6S218C5[];
extern Class_Descriptor cd_S218C4;
extern VTBL_ENTRY _ZTI6S218C4[];
extern  VTBL_ENTRY _ZTV6S218C4[];
extern Class_Descriptor cd_S218C3;
extern VTBL_ENTRY _ZTI6S218C3[];
extern  VTBL_ENTRY _ZTV6S218C3[];
extern Class_Descriptor cd_S218C2;
extern VTBL_ENTRY _ZTI6S218C2[];
extern  VTBL_ENTRY _ZTV6S218C2[];
static Base_Class bases_S218C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S218C6,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S218C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S218C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S218C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    4, //immediately_derived
  0, 0},
  {&cd_S218C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S218C1[];
extern void _ZN6S218C1D1Ev();
extern void _ZN6S218C1D0Ev();
extern void _ZN6S218C62v4Ev();
extern void _ZN6S218C62v5Ev();
extern void _ZN6S218C62v6Ev();
extern void _ZN6S218C62v7Ev();
extern void _ZN6S218C62v8Ev();
extern void _ZN6S218C62v9Ev();
extern void _ZN6S218C63v10Ev();
extern void _ZN6S218C63v11Ev();
extern void _ZN6S218C63v12Ev();
extern void _ZN6S218C63v13Ev();
extern void _ZN6S218C63v14Ev();
extern void _ZN6S218C63v15Ev();
extern void _ZN6S218C63v16Ev();
extern void _ZN6S218C63v17Ev();
extern void _ZN6S218C63v18Ev();
extern void _ZN6S218C63v19Ev();
extern void _ZN6S218C63v20Ev();
extern void _ZN6S218C63v21Ev();
extern void _ZN6S218C63v22Ev();
extern void _ZN6S218C63v23Ev();
extern void _ZN6S218C63v24Ev();
extern void _ZN6S218C63v25Ev();
extern void _ZN6S218C63v26Ev();
extern void _ZN6S218C63v27Ev();
extern void _ZN6S218C63v28Ev();
extern void _ZN6S218C63v29Ev();
extern void _ZN6S218C63v30Ev();
extern void _ZN6S218C63v31Ev();
extern void _ZN6S218C63v32Ev();
extern void _ZN6S218C63v33Ev();
extern void _ZN6S218C63v34Ev();
extern void _ZN6S218C63v35Ev();
extern void _ZN6S218C63v36Ev();
extern void _ZN6S218C63v37Ev();
extern void _ZN6S218C63v38Ev();
extern void _ZN6S218C63v39Ev();
extern void _ZN6S218C63v40Ev();
extern void _ZN6S218C63v41Ev();
extern void _ZN6S218C63v42Ev();
extern void _ZN6S218C63v43Ev();
extern void _ZN6S218C63v44Ev();
extern void _ZN6S218C63v45Ev();
extern void _ZN6S218C63v46Ev();
extern void _ZN6S218C63v47Ev();
extern void _ZN6S218C63v48Ev();
extern void _ZN6S218C63v49Ev();
extern void _ZN6S218C63v50Ev();
extern void _ZN6S218C63v51Ev();
extern void _ZN6S218C63v52Ev();
extern void _ZN6S218C63v53Ev();
extern void _ZN6S218C63v54Ev();
extern void _ZN6S218C63v55Ev();
extern void _ZN6S218C63v56Ev();
extern void _ZN6S218C63v57Ev();
extern void _ZN6S218C63v58Ev();
extern void _ZN6S218C63v59Ev();
extern void _ZN6S218C63v60Ev();
extern void _ZN6S218C63v61Ev();
extern void _ZN6S218C63v62Ev();
extern void _ZN6S218C63v63Ev();
extern void _ZN6S218C63v64Ev();
extern void _ZN6S218C63v65Ev();
extern void _ZN6S218C63v66Ev();
extern void _ZN6S218C63v67Ev();
extern void _ZN6S218C53v68Ev();
extern void _ZN6S218C53v69Ev();
extern void _ZN6S218C43v70Ev();
extern void _ZN6S218C43v71Ev();
extern void _ZN6S218C43v72Ev();
extern void _ZN6S218C43v73Ev();
extern void _ZN6S218C43v74Ev();
extern void _ZN6S218C43v75Ev();
extern void _ZN6S218C43v76Ev();
extern void _ZN6S218C43v77Ev();
extern void _ZN6S218C43v78Ev();
extern void _ZN6S218C43v79Ev();
extern void _ZN6S218C43v80Ev();
extern void _ZN6S218C43v81Ev();
extern void _ZN6S218C43v82Ev();
extern void _ZN6S218C43v83Ev();
extern void _ZN6S218C43v84Ev();
extern void _ZN6S218C43v85Ev();
extern void _ZN6S218C43v86Ev();
extern void _ZN6S218C43v87Ev();
extern void _ZN6S218C43v88Ev();
extern void _ZN6S218C43v89Ev();
extern void _ZN6S218C43v90Ev();
extern void _ZN6S218C43v91Ev();
extern void _ZN6S218C43v92Ev();
extern void _ZN6S218C43v93Ev();
extern void _ZN6S218C43v94Ev();
extern void _ZN6S218C43v95Ev();
extern void _ZN6S218C43v96Ev();
extern void _ZN6S218C43v97Ev();
extern void _ZN6S218C43v98Ev();
extern void _ZN6S218C43v99Ev();
extern void _ZN6S218C44v100Ev();
extern void _ZN6S218C44v101Ev();
extern void _ZN6S218C44v102Ev();
extern void _ZN6S218C44v103Ev();
extern void _ZN6S218C44v104Ev();
extern void _ZN6S218C44v105Ev();
extern void _ZN6S218C44v106Ev();
extern void _ZN6S218C44v107Ev();
extern void _ZN6S218C44v108Ev();
extern void _ZN6S218C44v109Ev();
extern void _ZN6S218C44v110Ev();
extern void _ZN6S218C44v111Ev();
extern void _ZN6S218C44v112Ev();
extern void _ZN6S218C44v113Ev();
extern void _ZN6S218C44v114Ev();
extern void _ZN6S218C44v115Ev();
extern void _ZN6S218C44v116Ev();
extern void _ZN6S218C44v117Ev();
extern void _ZN6S218C44v118Ev();
extern void _ZN6S218C44v119Ev();
extern void _ZN6S218C44v120Ev();
extern void _ZN6S218C44v121Ev();
extern void _ZN6S218C44v122Ev();
extern void _ZN6S218C44v123Ev();
extern void _ZN6S218C44v124Ev();
extern void _ZN6S218C44v125Ev();
extern void _ZN6S218C44v126Ev();
extern void _ZN6S218C44v127Ev();
extern void _ZN6S218C44v128Ev();
extern void _ZN6S218C44v129Ev();
extern void _ZN6S218C44v130Ev();
extern void _ZN6S218C44v131Ev();
extern void _ZN6S218C44v132Ev();
extern void _ZN6S218C44v133Ev();
extern void _ZN6S218C44v134Ev();
extern void _ZN6S218C44v135Ev();
extern void _ZN6S218C44v136Ev();
extern void _ZN6S218C44v137Ev();
extern void _ZN6S218C44v138Ev();
extern void _ZN6S218C44v139Ev();
extern void _ZN6S218C44v140Ev();
extern void _ZN6S218C44v141Ev();
extern void _ZN6S218C44v142Ev();
extern void _ZN6S218C44v143Ev();
extern void _ZN6S218C44v144Ev();
extern void _ZN6S218C44v145Ev();
extern void _ZN6S218C34v146Ev();
extern void _ZN6S218C34v147Ev();
extern void _ZN6S218C34v148Ev();
extern void _ZN6S218C34v149Ev();
extern void _ZN6S218C34v150Ev();
extern void _ZN6S218C34v151Ev();
extern void _ZN6S218C34v152Ev();
extern void _ZN6S218C34v153Ev();
extern void _ZN6S218C34v154Ev();
extern void _ZN6S218C34v155Ev();
extern void _ZN6S218C34v156Ev();
extern void _ZN6S218C34v157Ev();
extern void _ZN6S218C34v158Ev();
extern void _ZN6S218C34v159Ev();
extern void _ZN6S218C34v160Ev();
extern void _ZN6S218C34v161Ev();
extern void _ZN6S218C34v162Ev();
extern void _ZN6S218C34v163Ev();
extern void _ZN6S218C34v164Ev();
extern void _ZN6S218C34v165Ev();
extern void _ZN6S218C34v166Ev();
extern void _ZN6S218C34v167Ev();
extern void _ZN6S218C34v168Ev();
extern void _ZN6S218C34v169Ev();
extern void _ZN6S218C34v170Ev();
extern void _ZN6S218C34v171Ev();
extern void _ZN6S218C34v172Ev();
extern void _ZN6S218C34v173Ev();
extern void _ZN6S218C34v174Ev();
extern void _ZN6S218C34v175Ev();
extern void _ZN6S218C34v176Ev();
extern void _ZN6S218C34v177Ev();
extern void _ZN6S218C34v178Ev();
extern void _ZN6S218C34v179Ev();
extern void _ZN6S218C34v180Ev();
extern void _ZN6S218C34v181Ev();
extern void _ZN6S218C34v182Ev();
extern void _ZN6S218C34v183Ev();
extern void _ZN6S218C34v184Ev();
extern void _ZN6S218C24v185Ev();
extern void _ZN6S218C24v186Ev();
extern void _ZN6S218C24v187Ev();
extern void _ZN6S218C24v188Ev();
extern void _ZN6S218C24v189Ev();
extern void _ZN6S218C24v190Ev();
extern void _ZN6S218C24v191Ev();
extern void _ZN6S218C24v192Ev();
extern void _ZN6S218C24v193Ev();
extern void _ZN6S218C24v194Ev();
extern void _ZN6S218C24v195Ev();
extern void _ZN6S218C24v196Ev();
extern void _ZN6S218C24v197Ev();
extern void _ZN6S218C24v198Ev();
extern void _ZN6S218C24v199Ev();
extern void _ZN6S218C24v200Ev();
extern void _ZN6S218C24v201Ev();
extern void _ZN6S218C24v202Ev();
extern void _ZN6S218C24v203Ev();
extern void _ZN6S218C24v204Ev();
extern void _ZN6S218C24v205Ev();
extern void _ZN6S218C24v206Ev();
extern void _ZN6S218C24v207Ev();
extern void _ZN6S218C12v1Ev();
extern void _ZN6S218C12v2Ev();
extern void _ZN6S218C12v3Ev();
static  VTBL_ENTRY vtc_S218C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S218C1[0]),
  (VTBL_ENTRY)&_ZN6S218C1D1Ev,
  (VTBL_ENTRY)&_ZN6S218C1D0Ev,
  (VTBL_ENTRY)&_ZN6S218C62v4Ev,
  (VTBL_ENTRY)&_ZN6S218C62v5Ev,
  (VTBL_ENTRY)&_ZN6S218C62v6Ev,
  (VTBL_ENTRY)&_ZN6S218C62v7Ev,
  (VTBL_ENTRY)&_ZN6S218C62v8Ev,
  (VTBL_ENTRY)&_ZN6S218C62v9Ev,
  (VTBL_ENTRY)&_ZN6S218C63v10Ev,
  (VTBL_ENTRY)&_ZN6S218C63v11Ev,
  (VTBL_ENTRY)&_ZN6S218C63v12Ev,
  (VTBL_ENTRY)&_ZN6S218C63v13Ev,
  (VTBL_ENTRY)&_ZN6S218C63v14Ev,
  (VTBL_ENTRY)&_ZN6S218C63v15Ev,
  (VTBL_ENTRY)&_ZN6S218C63v16Ev,
  (VTBL_ENTRY)&_ZN6S218C63v17Ev,
  (VTBL_ENTRY)&_ZN6S218C63v18Ev,
  (VTBL_ENTRY)&_ZN6S218C63v19Ev,
  (VTBL_ENTRY)&_ZN6S218C63v20Ev,
  (VTBL_ENTRY)&_ZN6S218C63v21Ev,
  (VTBL_ENTRY)&_ZN6S218C63v22Ev,
  (VTBL_ENTRY)&_ZN6S218C63v23Ev,
  (VTBL_ENTRY)&_ZN6S218C63v24Ev,
  (VTBL_ENTRY)&_ZN6S218C63v25Ev,
  (VTBL_ENTRY)&_ZN6S218C63v26Ev,
  (VTBL_ENTRY)&_ZN6S218C63v27Ev,
  (VTBL_ENTRY)&_ZN6S218C63v28Ev,
  (VTBL_ENTRY)&_ZN6S218C63v29Ev,
  (VTBL_ENTRY)&_ZN6S218C63v30Ev,
  (VTBL_ENTRY)&_ZN6S218C63v31Ev,
  (VTBL_ENTRY)&_ZN6S218C63v32Ev,
  (VTBL_ENTRY)&_ZN6S218C63v33Ev,
  (VTBL_ENTRY)&_ZN6S218C63v34Ev,
  (VTBL_ENTRY)&_ZN6S218C63v35Ev,
  (VTBL_ENTRY)&_ZN6S218C63v36Ev,
  (VTBL_ENTRY)&_ZN6S218C63v37Ev,
  (VTBL_ENTRY)&_ZN6S218C63v38Ev,
  (VTBL_ENTRY)&_ZN6S218C63v39Ev,
  (VTBL_ENTRY)&_ZN6S218C63v40Ev,
  (VTBL_ENTRY)&_ZN6S218C63v41Ev,
  (VTBL_ENTRY)&_ZN6S218C63v42Ev,
  (VTBL_ENTRY)&_ZN6S218C63v43Ev,
  (VTBL_ENTRY)&_ZN6S218C63v44Ev,
  (VTBL_ENTRY)&_ZN6S218C63v45Ev,
  (VTBL_ENTRY)&_ZN6S218C63v46Ev,
  (VTBL_ENTRY)&_ZN6S218C63v47Ev,
  (VTBL_ENTRY)&_ZN6S218C63v48Ev,
  (VTBL_ENTRY)&_ZN6S218C63v49Ev,
  (VTBL_ENTRY)&_ZN6S218C63v50Ev,
  (VTBL_ENTRY)&_ZN6S218C63v51Ev,
  (VTBL_ENTRY)&_ZN6S218C63v52Ev,
  (VTBL_ENTRY)&_ZN6S218C63v53Ev,
  (VTBL_ENTRY)&_ZN6S218C63v54Ev,
  (VTBL_ENTRY)&_ZN6S218C63v55Ev,
  (VTBL_ENTRY)&_ZN6S218C63v56Ev,
  (VTBL_ENTRY)&_ZN6S218C63v57Ev,
  (VTBL_ENTRY)&_ZN6S218C63v58Ev,
  (VTBL_ENTRY)&_ZN6S218C63v59Ev,
  (VTBL_ENTRY)&_ZN6S218C63v60Ev,
  (VTBL_ENTRY)&_ZN6S218C63v61Ev,
  (VTBL_ENTRY)&_ZN6S218C63v62Ev,
  (VTBL_ENTRY)&_ZN6S218C63v63Ev,
  (VTBL_ENTRY)&_ZN6S218C63v64Ev,
  (VTBL_ENTRY)&_ZN6S218C63v65Ev,
  (VTBL_ENTRY)&_ZN6S218C63v66Ev,
  (VTBL_ENTRY)&_ZN6S218C63v67Ev,
  (VTBL_ENTRY)&_ZN6S218C53v68Ev,
  (VTBL_ENTRY)&_ZN6S218C53v69Ev,
  (VTBL_ENTRY)&_ZN6S218C43v70Ev,
  (VTBL_ENTRY)&_ZN6S218C43v71Ev,
  (VTBL_ENTRY)&_ZN6S218C43v72Ev,
  (VTBL_ENTRY)&_ZN6S218C43v73Ev,
  (VTBL_ENTRY)&_ZN6S218C43v74Ev,
  (VTBL_ENTRY)&_ZN6S218C43v75Ev,
  (VTBL_ENTRY)&_ZN6S218C43v76Ev,
  (VTBL_ENTRY)&_ZN6S218C43v77Ev,
  (VTBL_ENTRY)&_ZN6S218C43v78Ev,
  (VTBL_ENTRY)&_ZN6S218C43v79Ev,
  (VTBL_ENTRY)&_ZN6S218C43v80Ev,
  (VTBL_ENTRY)&_ZN6S218C43v81Ev,
  (VTBL_ENTRY)&_ZN6S218C43v82Ev,
  (VTBL_ENTRY)&_ZN6S218C43v83Ev,
  (VTBL_ENTRY)&_ZN6S218C43v84Ev,
  (VTBL_ENTRY)&_ZN6S218C43v85Ev,
  (VTBL_ENTRY)&_ZN6S218C43v86Ev,
  (VTBL_ENTRY)&_ZN6S218C43v87Ev,
  (VTBL_ENTRY)&_ZN6S218C43v88Ev,
  (VTBL_ENTRY)&_ZN6S218C43v89Ev,
  (VTBL_ENTRY)&_ZN6S218C43v90Ev,
  (VTBL_ENTRY)&_ZN6S218C43v91Ev,
  (VTBL_ENTRY)&_ZN6S218C43v92Ev,
  (VTBL_ENTRY)&_ZN6S218C43v93Ev,
  (VTBL_ENTRY)&_ZN6S218C43v94Ev,
  (VTBL_ENTRY)&_ZN6S218C43v95Ev,
  (VTBL_ENTRY)&_ZN6S218C43v96Ev,
  (VTBL_ENTRY)&_ZN6S218C43v97Ev,
  (VTBL_ENTRY)&_ZN6S218C43v98Ev,
  (VTBL_ENTRY)&_ZN6S218C43v99Ev,
  (VTBL_ENTRY)&_ZN6S218C44v100Ev,
  (VTBL_ENTRY)&_ZN6S218C44v101Ev,
  (VTBL_ENTRY)&_ZN6S218C44v102Ev,
  (VTBL_ENTRY)&_ZN6S218C44v103Ev,
  (VTBL_ENTRY)&_ZN6S218C44v104Ev,
  (VTBL_ENTRY)&_ZN6S218C44v105Ev,
  (VTBL_ENTRY)&_ZN6S218C44v106Ev,
  (VTBL_ENTRY)&_ZN6S218C44v107Ev,
  (VTBL_ENTRY)&_ZN6S218C44v108Ev,
  (VTBL_ENTRY)&_ZN6S218C44v109Ev,
  (VTBL_ENTRY)&_ZN6S218C44v110Ev,
  (VTBL_ENTRY)&_ZN6S218C44v111Ev,
  (VTBL_ENTRY)&_ZN6S218C44v112Ev,
  (VTBL_ENTRY)&_ZN6S218C44v113Ev,
  (VTBL_ENTRY)&_ZN6S218C44v114Ev,
  (VTBL_ENTRY)&_ZN6S218C44v115Ev,
  (VTBL_ENTRY)&_ZN6S218C44v116Ev,
  (VTBL_ENTRY)&_ZN6S218C44v117Ev,
  (VTBL_ENTRY)&_ZN6S218C44v118Ev,
  (VTBL_ENTRY)&_ZN6S218C44v119Ev,
  (VTBL_ENTRY)&_ZN6S218C44v120Ev,
  (VTBL_ENTRY)&_ZN6S218C44v121Ev,
  (VTBL_ENTRY)&_ZN6S218C44v122Ev,
  (VTBL_ENTRY)&_ZN6S218C44v123Ev,
  (VTBL_ENTRY)&_ZN6S218C44v124Ev,
  (VTBL_ENTRY)&_ZN6S218C44v125Ev,
  (VTBL_ENTRY)&_ZN6S218C44v126Ev,
  (VTBL_ENTRY)&_ZN6S218C44v127Ev,
  (VTBL_ENTRY)&_ZN6S218C44v128Ev,
  (VTBL_ENTRY)&_ZN6S218C44v129Ev,
  (VTBL_ENTRY)&_ZN6S218C44v130Ev,
  (VTBL_ENTRY)&_ZN6S218C44v131Ev,
  (VTBL_ENTRY)&_ZN6S218C44v132Ev,
  (VTBL_ENTRY)&_ZN6S218C44v133Ev,
  (VTBL_ENTRY)&_ZN6S218C44v134Ev,
  (VTBL_ENTRY)&_ZN6S218C44v135Ev,
  (VTBL_ENTRY)&_ZN6S218C44v136Ev,
  (VTBL_ENTRY)&_ZN6S218C44v137Ev,
  (VTBL_ENTRY)&_ZN6S218C44v138Ev,
  (VTBL_ENTRY)&_ZN6S218C44v139Ev,
  (VTBL_ENTRY)&_ZN6S218C44v140Ev,
  (VTBL_ENTRY)&_ZN6S218C44v141Ev,
  (VTBL_ENTRY)&_ZN6S218C44v142Ev,
  (VTBL_ENTRY)&_ZN6S218C44v143Ev,
  (VTBL_ENTRY)&_ZN6S218C44v144Ev,
  (VTBL_ENTRY)&_ZN6S218C44v145Ev,
  (VTBL_ENTRY)&_ZN6S218C34v146Ev,
  (VTBL_ENTRY)&_ZN6S218C34v147Ev,
  (VTBL_ENTRY)&_ZN6S218C34v148Ev,
  (VTBL_ENTRY)&_ZN6S218C34v149Ev,
  (VTBL_ENTRY)&_ZN6S218C34v150Ev,
  (VTBL_ENTRY)&_ZN6S218C34v151Ev,
  (VTBL_ENTRY)&_ZN6S218C34v152Ev,
  (VTBL_ENTRY)&_ZN6S218C34v153Ev,
  (VTBL_ENTRY)&_ZN6S218C34v154Ev,
  (VTBL_ENTRY)&_ZN6S218C34v155Ev,
  (VTBL_ENTRY)&_ZN6S218C34v156Ev,
  (VTBL_ENTRY)&_ZN6S218C34v157Ev,
  (VTBL_ENTRY)&_ZN6S218C34v158Ev,
  (VTBL_ENTRY)&_ZN6S218C34v159Ev,
  (VTBL_ENTRY)&_ZN6S218C34v160Ev,
  (VTBL_ENTRY)&_ZN6S218C34v161Ev,
  (VTBL_ENTRY)&_ZN6S218C34v162Ev,
  (VTBL_ENTRY)&_ZN6S218C34v163Ev,
  (VTBL_ENTRY)&_ZN6S218C34v164Ev,
  (VTBL_ENTRY)&_ZN6S218C34v165Ev,
  (VTBL_ENTRY)&_ZN6S218C34v166Ev,
  (VTBL_ENTRY)&_ZN6S218C34v167Ev,
  (VTBL_ENTRY)&_ZN6S218C34v168Ev,
  (VTBL_ENTRY)&_ZN6S218C34v169Ev,
  (VTBL_ENTRY)&_ZN6S218C34v170Ev,
  (VTBL_ENTRY)&_ZN6S218C34v171Ev,
  (VTBL_ENTRY)&_ZN6S218C34v172Ev,
  (VTBL_ENTRY)&_ZN6S218C34v173Ev,
  (VTBL_ENTRY)&_ZN6S218C34v174Ev,
  (VTBL_ENTRY)&_ZN6S218C34v175Ev,
  (VTBL_ENTRY)&_ZN6S218C34v176Ev,
  (VTBL_ENTRY)&_ZN6S218C34v177Ev,
  (VTBL_ENTRY)&_ZN6S218C34v178Ev,
  (VTBL_ENTRY)&_ZN6S218C34v179Ev,
  (VTBL_ENTRY)&_ZN6S218C34v180Ev,
  (VTBL_ENTRY)&_ZN6S218C34v181Ev,
  (VTBL_ENTRY)&_ZN6S218C34v182Ev,
  (VTBL_ENTRY)&_ZN6S218C34v183Ev,
  (VTBL_ENTRY)&_ZN6S218C34v184Ev,
  (VTBL_ENTRY)&_ZN6S218C24v185Ev,
  (VTBL_ENTRY)&_ZN6S218C24v186Ev,
  (VTBL_ENTRY)&_ZN6S218C24v187Ev,
  (VTBL_ENTRY)&_ZN6S218C24v188Ev,
  (VTBL_ENTRY)&_ZN6S218C24v189Ev,
  (VTBL_ENTRY)&_ZN6S218C24v190Ev,
  (VTBL_ENTRY)&_ZN6S218C24v191Ev,
  (VTBL_ENTRY)&_ZN6S218C24v192Ev,
  (VTBL_ENTRY)&_ZN6S218C24v193Ev,
  (VTBL_ENTRY)&_ZN6S218C24v194Ev,
  (VTBL_ENTRY)&_ZN6S218C24v195Ev,
  (VTBL_ENTRY)&_ZN6S218C24v196Ev,
  (VTBL_ENTRY)&_ZN6S218C24v197Ev,
  (VTBL_ENTRY)&_ZN6S218C24v198Ev,
  (VTBL_ENTRY)&_ZN6S218C24v199Ev,
  (VTBL_ENTRY)&_ZN6S218C24v200Ev,
  (VTBL_ENTRY)&_ZN6S218C24v201Ev,
  (VTBL_ENTRY)&_ZN6S218C24v202Ev,
  (VTBL_ENTRY)&_ZN6S218C24v203Ev,
  (VTBL_ENTRY)&_ZN6S218C24v204Ev,
  (VTBL_ENTRY)&_ZN6S218C24v205Ev,
  (VTBL_ENTRY)&_ZN6S218C24v206Ev,
  (VTBL_ENTRY)&_ZN6S218C24v207Ev,
  (VTBL_ENTRY)&_ZN6S218C12v1Ev,
  (VTBL_ENTRY)&_ZN6S218C12v2Ev,
  (VTBL_ENTRY)&_ZN6S218C12v3Ev,
};
extern VTBL_ENTRY _ZTI6S218C1[];
extern  VTBL_ENTRY _ZTV6S218C1[];
Class_Descriptor cd_S218C1 = {  "S218C1", // class name
  bases_S218C1, 5,
  &(vtc_S218C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(880,624), // object size
  NSPAIRA(_ZTI6S218C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S218C1),211, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S709C5  {
  int s709c5f0;
  __tsi64 s709c5f1;
  void *s709c5f2[4];
  int s709c5f3[2];
  void *s709c5f4;
  ::S85C27_nt s709c5f5;
  void *s709c5f6[2];
  virtual  ~S709C5(); // _ZN6S709C5D1Ev
  virtual void  v9(); // _ZN6S709C52v9Ev
  virtual void  v10(); // _ZN6S709C53v10Ev
  virtual void  v11(); // _ZN6S709C53v11Ev
  virtual void  v12(); // _ZN6S709C53v12Ev
  virtual void  v13(); // _ZN6S709C53v13Ev
  virtual void  v14(); // _ZN6S709C53v14Ev
  virtual void  v15(); // _ZN6S709C53v15Ev
  virtual void  v16(); // _ZN6S709C53v16Ev
  virtual void  v17(); // _ZN6S709C53v17Ev
  virtual void  v18(); // _ZN6S709C53v18Ev
  virtual void  v19(); // _ZN6S709C53v19Ev
  virtual void  v20(); // _ZN6S709C53v20Ev
  virtual void  v21(); // _ZN6S709C53v21Ev
  virtual void  v22(); // _ZN6S709C53v22Ev
  virtual void  v23(); // _ZN6S709C53v23Ev
  virtual void  v24(); // _ZN6S709C53v24Ev
  virtual void  v25(); // _ZN6S709C53v25Ev
  virtual void  v26(); // _ZN6S709C53v26Ev
  virtual void  v27(); // _ZN6S709C53v27Ev
  virtual void  v28(); // _ZN6S709C53v28Ev
  virtual void  v29(); // _ZN6S709C53v29Ev
  virtual void  v30(); // _ZN6S709C53v30Ev
  virtual void  v31(); // _ZN6S709C53v31Ev
  virtual void  v32(); // _ZN6S709C53v32Ev
  virtual void  v33(); // _ZN6S709C53v33Ev
  virtual void  v34(); // _ZN6S709C53v34Ev
  virtual void  v35(); // _ZN6S709C53v35Ev
  virtual void  v36(); // _ZN6S709C53v36Ev
  virtual void  v37(); // _ZN6S709C53v37Ev
  virtual void  v38(); // _ZN6S709C53v38Ev
  virtual void  v39(); // _ZN6S709C53v39Ev
  virtual void  v40(); // _ZN6S709C53v40Ev
  virtual void  v41(); // _ZN6S709C53v41Ev
  virtual void  v42(); // _ZN6S709C53v42Ev
  virtual void  v43(); // _ZN6S709C53v43Ev
  virtual void  v44(); // _ZN6S709C53v44Ev
  virtual void  v45(); // _ZN6S709C53v45Ev
  virtual void  v46(); // _ZN6S709C53v46Ev
  virtual void  v47(); // _ZN6S709C53v47Ev
  virtual void  v48(); // _ZN6S709C53v48Ev
  virtual void  v49(); // _ZN6S709C53v49Ev
  virtual void  v50(); // _ZN6S709C53v50Ev
  virtual void  v51(); // _ZN6S709C53v51Ev
  virtual void  v52(); // _ZN6S709C53v52Ev
  virtual void  v53(); // _ZN6S709C53v53Ev
  virtual void  v54(); // _ZN6S709C53v54Ev
  virtual void  v55(); // _ZN6S709C53v55Ev
  virtual void  v56(); // _ZN6S709C53v56Ev
  virtual void  v57(); // _ZN6S709C53v57Ev
  virtual void  v58(); // _ZN6S709C53v58Ev
  virtual void  v59(); // _ZN6S709C53v59Ev
  virtual void  v60(); // _ZN6S709C53v60Ev
  virtual void  v61(); // _ZN6S709C53v61Ev
  virtual void  v62(); // _ZN6S709C53v62Ev
  virtual void  v63(); // _ZN6S709C53v63Ev
  virtual void  v64(); // _ZN6S709C53v64Ev
  virtual void  v65(); // _ZN6S709C53v65Ev
  virtual void  v66(); // _ZN6S709C53v66Ev
  virtual void  v67(); // _ZN6S709C53v67Ev
  virtual void  v68(); // _ZN6S709C53v68Ev
  virtual void  v69(); // _ZN6S709C53v69Ev
  virtual void  v70(); // _ZN6S709C53v70Ev
  virtual void  v71(); // _ZN6S709C53v71Ev
  virtual void  v72(); // _ZN6S709C53v72Ev
  S709C5(); // tgen
};
//SIG(-1 S709C5) C1{ vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 Fi FL Fp[4] Fi[2] Fp FC2{ m Fi[2]} Fp[2]}


 S709C5 ::~S709C5(){ note_dtor("S709C5", this);}
void  S709C5 ::v9(){vfunc_called(this, "_ZN6S709C52v9Ev");}
void  S709C5 ::v10(){vfunc_called(this, "_ZN6S709C53v10Ev");}
void  S709C5 ::v11(){vfunc_called(this, "_ZN6S709C53v11Ev");}
void  S709C5 ::v12(){vfunc_called(this, "_ZN6S709C53v12Ev");}
void  S709C5 ::v13(){vfunc_called(this, "_ZN6S709C53v13Ev");}
void  S709C5 ::v14(){vfunc_called(this, "_ZN6S709C53v14Ev");}
void  S709C5 ::v15(){vfunc_called(this, "_ZN6S709C53v15Ev");}
void  S709C5 ::v16(){vfunc_called(this, "_ZN6S709C53v16Ev");}
void  S709C5 ::v17(){vfunc_called(this, "_ZN6S709C53v17Ev");}
void  S709C5 ::v18(){vfunc_called(this, "_ZN6S709C53v18Ev");}
void  S709C5 ::v19(){vfunc_called(this, "_ZN6S709C53v19Ev");}
void  S709C5 ::v20(){vfunc_called(this, "_ZN6S709C53v20Ev");}
void  S709C5 ::v21(){vfunc_called(this, "_ZN6S709C53v21Ev");}
void  S709C5 ::v22(){vfunc_called(this, "_ZN6S709C53v22Ev");}
void  S709C5 ::v23(){vfunc_called(this, "_ZN6S709C53v23Ev");}
void  S709C5 ::v24(){vfunc_called(this, "_ZN6S709C53v24Ev");}
void  S709C5 ::v25(){vfunc_called(this, "_ZN6S709C53v25Ev");}
void  S709C5 ::v26(){vfunc_called(this, "_ZN6S709C53v26Ev");}
void  S709C5 ::v27(){vfunc_called(this, "_ZN6S709C53v27Ev");}
void  S709C5 ::v28(){vfunc_called(this, "_ZN6S709C53v28Ev");}
void  S709C5 ::v29(){vfunc_called(this, "_ZN6S709C53v29Ev");}
void  S709C5 ::v30(){vfunc_called(this, "_ZN6S709C53v30Ev");}
void  S709C5 ::v31(){vfunc_called(this, "_ZN6S709C53v31Ev");}
void  S709C5 ::v32(){vfunc_called(this, "_ZN6S709C53v32Ev");}
void  S709C5 ::v33(){vfunc_called(this, "_ZN6S709C53v33Ev");}
void  S709C5 ::v34(){vfunc_called(this, "_ZN6S709C53v34Ev");}
void  S709C5 ::v35(){vfunc_called(this, "_ZN6S709C53v35Ev");}
void  S709C5 ::v36(){vfunc_called(this, "_ZN6S709C53v36Ev");}
void  S709C5 ::v37(){vfunc_called(this, "_ZN6S709C53v37Ev");}
void  S709C5 ::v38(){vfunc_called(this, "_ZN6S709C53v38Ev");}
void  S709C5 ::v39(){vfunc_called(this, "_ZN6S709C53v39Ev");}
void  S709C5 ::v40(){vfunc_called(this, "_ZN6S709C53v40Ev");}
void  S709C5 ::v41(){vfunc_called(this, "_ZN6S709C53v41Ev");}
void  S709C5 ::v42(){vfunc_called(this, "_ZN6S709C53v42Ev");}
void  S709C5 ::v43(){vfunc_called(this, "_ZN6S709C53v43Ev");}
void  S709C5 ::v44(){vfunc_called(this, "_ZN6S709C53v44Ev");}
void  S709C5 ::v45(){vfunc_called(this, "_ZN6S709C53v45Ev");}
void  S709C5 ::v46(){vfunc_called(this, "_ZN6S709C53v46Ev");}
void  S709C5 ::v47(){vfunc_called(this, "_ZN6S709C53v47Ev");}
void  S709C5 ::v48(){vfunc_called(this, "_ZN6S709C53v48Ev");}
void  S709C5 ::v49(){vfunc_called(this, "_ZN6S709C53v49Ev");}
void  S709C5 ::v50(){vfunc_called(this, "_ZN6S709C53v50Ev");}
void  S709C5 ::v51(){vfunc_called(this, "_ZN6S709C53v51Ev");}
void  S709C5 ::v52(){vfunc_called(this, "_ZN6S709C53v52Ev");}
void  S709C5 ::v53(){vfunc_called(this, "_ZN6S709C53v53Ev");}
void  S709C5 ::v54(){vfunc_called(this, "_ZN6S709C53v54Ev");}
void  S709C5 ::v55(){vfunc_called(this, "_ZN6S709C53v55Ev");}
void  S709C5 ::v56(){vfunc_called(this, "_ZN6S709C53v56Ev");}
void  S709C5 ::v57(){vfunc_called(this, "_ZN6S709C53v57Ev");}
void  S709C5 ::v58(){vfunc_called(this, "_ZN6S709C53v58Ev");}
void  S709C5 ::v59(){vfunc_called(this, "_ZN6S709C53v59Ev");}
void  S709C5 ::v60(){vfunc_called(this, "_ZN6S709C53v60Ev");}
void  S709C5 ::v61(){vfunc_called(this, "_ZN6S709C53v61Ev");}
void  S709C5 ::v62(){vfunc_called(this, "_ZN6S709C53v62Ev");}
void  S709C5 ::v63(){vfunc_called(this, "_ZN6S709C53v63Ev");}
void  S709C5 ::v64(){vfunc_called(this, "_ZN6S709C53v64Ev");}
void  S709C5 ::v65(){vfunc_called(this, "_ZN6S709C53v65Ev");}
void  S709C5 ::v66(){vfunc_called(this, "_ZN6S709C53v66Ev");}
void  S709C5 ::v67(){vfunc_called(this, "_ZN6S709C53v67Ev");}
void  S709C5 ::v68(){vfunc_called(this, "_ZN6S709C53v68Ev");}
void  S709C5 ::v69(){vfunc_called(this, "_ZN6S709C53v69Ev");}
void  S709C5 ::v70(){vfunc_called(this, "_ZN6S709C53v70Ev");}
void  S709C5 ::v71(){vfunc_called(this, "_ZN6S709C53v71Ev");}
void  S709C5 ::v72(){vfunc_called(this, "_ZN6S709C53v72Ev");}
S709C5 ::S709C5(){ note_ctor("S709C5", this);} // tgen

static void Test_S709C5()
{
  extern Class_Descriptor cd_S709C5;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S709C5, buf);
    S709C5 *dp, &lv = *(dp=new (buf) S709C5());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S709C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S709C5)");
    check_field_offset(lv, s709c5f0, ABISELECT(8,4), "S709C5.s709c5f0");
    check_field_offset(lv, s709c5f1, ABISELECT(16,8), "S709C5.s709c5f1");
    check_field_offset(lv, s709c5f2, ABISELECT(24,16), "S709C5.s709c5f2");
    check_field_offset(lv, s709c5f3, ABISELECT(56,32), "S709C5.s709c5f3");
    check_field_offset(lv, s709c5f4, ABISELECT(64,40), "S709C5.s709c5f4");
    check_field_offset(lv, s709c5f5, ABISELECT(72,44), "S709C5.s709c5f5");
    check_field_offset(lv, s709c5f6, ABISELECT(80,52), "S709C5.s709c5f6");
    test_class_info(&lv, &cd_S709C5);
    dp->~S709C5();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS709C5(Test_S709C5, "S709C5", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S709C5C1Ev();
extern void _ZN6S709C5D1Ev();
Name_Map name_map_S709C5[] = {
  NSPAIR(_ZN6S709C5C1Ev),
  NSPAIR(_ZN6S709C5D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI6S709C5[];
extern void _ZN6S709C5D1Ev();
extern void _ZN6S709C5D0Ev();
extern void _ZN6S709C52v9Ev();
extern void _ZN6S709C53v10Ev();
extern void _ZN6S709C53v11Ev();
extern void _ZN6S709C53v12Ev();
extern void _ZN6S709C53v13Ev();
extern void _ZN6S709C53v14Ev();
extern void _ZN6S709C53v15Ev();
extern void _ZN6S709C53v16Ev();
extern void _ZN6S709C53v17Ev();
extern void _ZN6S709C53v18Ev();
extern void _ZN6S709C53v19Ev();
extern void _ZN6S709C53v20Ev();
extern void _ZN6S709C53v21Ev();
extern void _ZN6S709C53v22Ev();
extern void _ZN6S709C53v23Ev();
extern void _ZN6S709C53v24Ev();
extern void _ZN6S709C53v25Ev();
extern void _ZN6S709C53v26Ev();
extern void _ZN6S709C53v27Ev();
extern void _ZN6S709C53v28Ev();
extern void _ZN6S709C53v29Ev();
extern void _ZN6S709C53v30Ev();
extern void _ZN6S709C53v31Ev();
extern void _ZN6S709C53v32Ev();
extern void _ZN6S709C53v33Ev();
extern void _ZN6S709C53v34Ev();
extern void _ZN6S709C53v35Ev();
extern void _ZN6S709C53v36Ev();
extern void _ZN6S709C53v37Ev();
extern void _ZN6S709C53v38Ev();
extern void _ZN6S709C53v39Ev();
extern void _ZN6S709C53v40Ev();
extern void _ZN6S709C53v41Ev();
extern void _ZN6S709C53v42Ev();
extern void _ZN6S709C53v43Ev();
extern void _ZN6S709C53v44Ev();
extern void _ZN6S709C53v45Ev();
extern void _ZN6S709C53v46Ev();
extern void _ZN6S709C53v47Ev();
extern void _ZN6S709C53v48Ev();
extern void _ZN6S709C53v49Ev();
extern void _ZN6S709C53v50Ev();
extern void _ZN6S709C53v51Ev();
extern void _ZN6S709C53v52Ev();
extern void _ZN6S709C53v53Ev();
extern void _ZN6S709C53v54Ev();
extern void _ZN6S709C53v55Ev();
extern void _ZN6S709C53v56Ev();
extern void _ZN6S709C53v57Ev();
extern void _ZN6S709C53v58Ev();
extern void _ZN6S709C53v59Ev();
extern void _ZN6S709C53v60Ev();
extern void _ZN6S709C53v61Ev();
extern void _ZN6S709C53v62Ev();
extern void _ZN6S709C53v63Ev();
extern void _ZN6S709C53v64Ev();
extern void _ZN6S709C53v65Ev();
extern void _ZN6S709C53v66Ev();
extern void _ZN6S709C53v67Ev();
extern void _ZN6S709C53v68Ev();
extern void _ZN6S709C53v69Ev();
extern void _ZN6S709C53v70Ev();
extern void _ZN6S709C53v71Ev();
extern void _ZN6S709C53v72Ev();
static  VTBL_ENTRY vtc_S709C5[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S709C5[0]),
  (VTBL_ENTRY)&_ZN6S709C5D1Ev,
  (VTBL_ENTRY)&_ZN6S709C5D0Ev,
  (VTBL_ENTRY)&_ZN6S709C52v9Ev,
  (VTBL_ENTRY)&_ZN6S709C53v10Ev,
  (VTBL_ENTRY)&_ZN6S709C53v11Ev,
  (VTBL_ENTRY)&_ZN6S709C53v12Ev,
  (VTBL_ENTRY)&_ZN6S709C53v13Ev,
  (VTBL_ENTRY)&_ZN6S709C53v14Ev,
  (VTBL_ENTRY)&_ZN6S709C53v15Ev,
  (VTBL_ENTRY)&_ZN6S709C53v16Ev,
  (VTBL_ENTRY)&_ZN6S709C53v17Ev,
  (VTBL_ENTRY)&_ZN6S709C53v18Ev,
  (VTBL_ENTRY)&_ZN6S709C53v19Ev,
  (VTBL_ENTRY)&_ZN6S709C53v20Ev,
  (VTBL_ENTRY)&_ZN6S709C53v21Ev,
  (VTBL_ENTRY)&_ZN6S709C53v22Ev,
  (VTBL_ENTRY)&_ZN6S709C53v23Ev,
  (VTBL_ENTRY)&_ZN6S709C53v24Ev,
  (VTBL_ENTRY)&_ZN6S709C53v25Ev,
  (VTBL_ENTRY)&_ZN6S709C53v26Ev,
  (VTBL_ENTRY)&_ZN6S709C53v27Ev,
  (VTBL_ENTRY)&_ZN6S709C53v28Ev,
  (VTBL_ENTRY)&_ZN6S709C53v29Ev,
  (VTBL_ENTRY)&_ZN6S709C53v30Ev,
  (VTBL_ENTRY)&_ZN6S709C53v31Ev,
  (VTBL_ENTRY)&_ZN6S709C53v32Ev,
  (VTBL_ENTRY)&_ZN6S709C53v33Ev,
  (VTBL_ENTRY)&_ZN6S709C53v34Ev,
  (VTBL_ENTRY)&_ZN6S709C53v35Ev,
  (VTBL_ENTRY)&_ZN6S709C53v36Ev,
  (VTBL_ENTRY)&_ZN6S709C53v37Ev,
  (VTBL_ENTRY)&_ZN6S709C53v38Ev,
  (VTBL_ENTRY)&_ZN6S709C53v39Ev,
  (VTBL_ENTRY)&_ZN6S709C53v40Ev,
  (VTBL_ENTRY)&_ZN6S709C53v41Ev,
  (VTBL_ENTRY)&_ZN6S709C53v42Ev,
  (VTBL_ENTRY)&_ZN6S709C53v43Ev,
  (VTBL_ENTRY)&_ZN6S709C53v44Ev,
  (VTBL_ENTRY)&_ZN6S709C53v45Ev,
  (VTBL_ENTRY)&_ZN6S709C53v46Ev,
  (VTBL_ENTRY)&_ZN6S709C53v47Ev,
  (VTBL_ENTRY)&_ZN6S709C53v48Ev,
  (VTBL_ENTRY)&_ZN6S709C53v49Ev,
  (VTBL_ENTRY)&_ZN6S709C53v50Ev,
  (VTBL_ENTRY)&_ZN6S709C53v51Ev,
  (VTBL_ENTRY)&_ZN6S709C53v52Ev,
  (VTBL_ENTRY)&_ZN6S709C53v53Ev,
  (VTBL_ENTRY)&_ZN6S709C53v54Ev,
  (VTBL_ENTRY)&_ZN6S709C53v55Ev,
  (VTBL_ENTRY)&_ZN6S709C53v56Ev,
  (VTBL_ENTRY)&_ZN6S709C53v57Ev,
  (VTBL_ENTRY)&_ZN6S709C53v58Ev,
  (VTBL_ENTRY)&_ZN6S709C53v59Ev,
  (VTBL_ENTRY)&_ZN6S709C53v60Ev,
  (VTBL_ENTRY)&_ZN6S709C53v61Ev,
  (VTBL_ENTRY)&_ZN6S709C53v62Ev,
  (VTBL_ENTRY)&_ZN6S709C53v63Ev,
  (VTBL_ENTRY)&_ZN6S709C53v64Ev,
  (VTBL_ENTRY)&_ZN6S709C53v65Ev,
  (VTBL_ENTRY)&_ZN6S709C53v66Ev,
  (VTBL_ENTRY)&_ZN6S709C53v67Ev,
  (VTBL_ENTRY)&_ZN6S709C53v68Ev,
  (VTBL_ENTRY)&_ZN6S709C53v69Ev,
  (VTBL_ENTRY)&_ZN6S709C53v70Ev,
  (VTBL_ENTRY)&_ZN6S709C53v71Ev,
  (VTBL_ENTRY)&_ZN6S709C53v72Ev,
};
extern VTBL_ENTRY _ZTI6S709C5[];
extern  VTBL_ENTRY _ZTV6S709C5[];
Class_Descriptor cd_S709C5 = {  "S709C5", // class name
  0,0,//no base classes
  &(vtc_S709C5[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S709C5),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV6S709C5),68, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S709C4  : S709C5 {
  virtual  ~S709C4(); // _ZN6S709C4D1Ev
  virtual void  v73(); // _ZN6S709C43v73Ev
  virtual void  v74(); // _ZN6S709C43v74Ev
  S709C4(); // tgen
};
//SIG(-1 S709C4) C1{ BC2{ vd v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 Fi FL Fp[4] Fi[2] Fp FC3{ m Fi[2]} Fp[2]} vd v1 v2}


 S709C4 ::~S709C4(){ note_dtor("S709C4", this);}
void  S709C4 ::v73(){vfunc_called(this, "_ZN6S709C43v73Ev");}
void  S709C4 ::v74(){vfunc_called(this, "_ZN6S709C43v74Ev");}
S709C4 ::S709C4(){ note_ctor("S709C4", this);} // tgen

static void Test_S709C4()
{
  extern Class_Descriptor cd_S709C4;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,16)];
    init_test(&cd_S709C4, buf);
    S709C4 *dp, &lv = *(dp=new (buf) S709C4());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,60), "sizeof(S709C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S709C4)");
    check_base_class_offset(lv, (S709C5*), 0, "S709C4");
    test_class_info(&lv, &cd_S709C4);
    dp->~S709C4();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS709C4(Test_S709C4, "S709C4", ABISELECT(96,60));

#else // __cplusplus

extern void _ZN6S709C4C1Ev();
extern void _ZN6S709C4D1Ev();
Name_Map name_map_S709C4[] = {
  NSPAIR(_ZN6S709C4C1Ev),
  NSPAIR(_ZN6S709C4D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S709C5;
extern VTBL_ENTRY _ZTI6S709C5[];
extern  VTBL_ENTRY _ZTV6S709C5[];
static Base_Class bases_S709C4[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S709C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S709C4[];
extern void _ZN6S709C4D1Ev();
extern void _ZN6S709C4D0Ev();
extern void _ZN6S709C52v9Ev();
extern void _ZN6S709C53v10Ev();
extern void _ZN6S709C53v11Ev();
extern void _ZN6S709C53v12Ev();
extern void _ZN6S709C53v13Ev();
extern void _ZN6S709C53v14Ev();
extern void _ZN6S709C53v15Ev();
extern void _ZN6S709C53v16Ev();
extern void _ZN6S709C53v17Ev();
extern void _ZN6S709C53v18Ev();
extern void _ZN6S709C53v19Ev();
extern void _ZN6S709C53v20Ev();
extern void _ZN6S709C53v21Ev();
extern void _ZN6S709C53v22Ev();
extern void _ZN6S709C53v23Ev();
extern void _ZN6S709C53v24Ev();
extern void _ZN6S709C53v25Ev();
extern void _ZN6S709C53v26Ev();
extern void _ZN6S709C53v27Ev();
extern void _ZN6S709C53v28Ev();
extern void _ZN6S709C53v29Ev();
extern void _ZN6S709C53v30Ev();
extern void _ZN6S709C53v31Ev();
extern void _ZN6S709C53v32Ev();
extern void _ZN6S709C53v33Ev();
extern void _ZN6S709C53v34Ev();
extern void _ZN6S709C53v35Ev();
extern void _ZN6S709C53v36Ev();
extern void _ZN6S709C53v37Ev();
extern void _ZN6S709C53v38Ev();
extern void _ZN6S709C53v39Ev();
extern void _ZN6S709C53v40Ev();
extern void _ZN6S709C53v41Ev();
extern void _ZN6S709C53v42Ev();
extern void _ZN6S709C53v43Ev();
extern void _ZN6S709C53v44Ev();
extern void _ZN6S709C53v45Ev();
extern void _ZN6S709C53v46Ev();
extern void _ZN6S709C53v47Ev();
extern void _ZN6S709C53v48Ev();
extern void _ZN6S709C53v49Ev();
extern void _ZN6S709C53v50Ev();
extern void _ZN6S709C53v51Ev();
extern void _ZN6S709C53v52Ev();
extern void _ZN6S709C53v53Ev();
extern void _ZN6S709C53v54Ev();
extern void _ZN6S709C53v55Ev();
extern void _ZN6S709C53v56Ev();
extern void _ZN6S709C53v57Ev();
extern void _ZN6S709C53v58Ev();
extern void _ZN6S709C53v59Ev();
extern void _ZN6S709C53v60Ev();
extern void _ZN6S709C53v61Ev();
extern void _ZN6S709C53v62Ev();
extern void _ZN6S709C53v63Ev();
extern void _ZN6S709C53v64Ev();
extern void _ZN6S709C53v65Ev();
extern void _ZN6S709C53v66Ev();
extern void _ZN6S709C53v67Ev();
extern void _ZN6S709C53v68Ev();
extern void _ZN6S709C53v69Ev();
extern void _ZN6S709C53v70Ev();
extern void _ZN6S709C53v71Ev();
extern void _ZN6S709C53v72Ev();
extern void _ZN6S709C43v73Ev();
extern void _ZN6S709C43v74Ev();
static  VTBL_ENTRY vtc_S709C4[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S709C4[0]),
  (VTBL_ENTRY)&_ZN6S709C4D1Ev,
  (VTBL_ENTRY)&_ZN6S709C4D0Ev,
  (VTBL_ENTRY)&_ZN6S709C52v9Ev,
  (VTBL_ENTRY)&_ZN6S709C53v10Ev,
  (VTBL_ENTRY)&_ZN6S709C53v11Ev,
  (VTBL_ENTRY)&_ZN6S709C53v12Ev,
  (VTBL_ENTRY)&_ZN6S709C53v13Ev,
  (VTBL_ENTRY)&_ZN6S709C53v14Ev,
  (VTBL_ENTRY)&_ZN6S709C53v15Ev,
  (VTBL_ENTRY)&_ZN6S709C53v16Ev,
  (VTBL_ENTRY)&_ZN6S709C53v17Ev,
  (VTBL_ENTRY)&_ZN6S709C53v18Ev,
  (VTBL_ENTRY)&_ZN6S709C53v19Ev,
  (VTBL_ENTRY)&_ZN6S709C53v20Ev,
  (VTBL_ENTRY)&_ZN6S709C53v21Ev,
  (VTBL_ENTRY)&_ZN6S709C53v22Ev,
  (VTBL_ENTRY)&_ZN6S709C53v23Ev,
  (VTBL_ENTRY)&_ZN6S709C53v24Ev,
  (VTBL_ENTRY)&_ZN6S709C53v25Ev,
  (VTBL_ENTRY)&_ZN6S709C53v26Ev,
  (VTBL_ENTRY)&_ZN6S709C53v27Ev,
  (VTBL_ENTRY)&_ZN6S709C53v28Ev,
  (VTBL_ENTRY)&_ZN6S709C53v29Ev,
  (VTBL_ENTRY)&_ZN6S709C53v30Ev,
  (VTBL_ENTRY)&_ZN6S709C53v31Ev,
  (VTBL_ENTRY)&_ZN6S709C53v32Ev,
  (VTBL_ENTRY)&_ZN6S709C53v33Ev,
  (VTBL_ENTRY)&_ZN6S709C53v34Ev,
  (VTBL_ENTRY)&_ZN6S709C53v35Ev,
  (VTBL_ENTRY)&_ZN6S709C53v36Ev,
  (VTBL_ENTRY)&_ZN6S709C53v37Ev,
  (VTBL_ENTRY)&_ZN6S709C53v38Ev,
  (VTBL_ENTRY)&_ZN6S709C53v39Ev,
  (VTBL_ENTRY)&_ZN6S709C53v40Ev,
  (VTBL_ENTRY)&_ZN6S709C53v41Ev,
  (VTBL_ENTRY)&_ZN6S709C53v42Ev,
  (VTBL_ENTRY)&_ZN6S709C53v43Ev,
  (VTBL_ENTRY)&_ZN6S709C53v44Ev,
  (VTBL_ENTRY)&_ZN6S709C53v45Ev,
  (VTBL_ENTRY)&_ZN6S709C53v46Ev,
  (VTBL_ENTRY)&_ZN6S709C53v47Ev,
  (VTBL_ENTRY)&_ZN6S709C53v48Ev,
  (VTBL_ENTRY)&_ZN6S709C53v49Ev,
  (VTBL_ENTRY)&_ZN6S709C53v50Ev,
  (VTBL_ENTRY)&_ZN6S709C53v51Ev,
  (VTBL_ENTRY)&_ZN6S709C53v52Ev,
  (VTBL_ENTRY)&_ZN6S709C53v53Ev,
  (VTBL_ENTRY)&_ZN6S709C53v54Ev,
  (VTBL_ENTRY)&_ZN6S709C53v55Ev,
  (VTBL_ENTRY)&_ZN6S709C53v56Ev,
  (VTBL_ENTRY)&_ZN6S709C53v57Ev,
  (VTBL_ENTRY)&_ZN6S709C53v58Ev,
  (VTBL_ENTRY)&_ZN6S709C53v59Ev,
  (VTBL_ENTRY)&_ZN6S709C53v60Ev,
  (VTBL_ENTRY)&_ZN6S709C53v61Ev,
  (VTBL_ENTRY)&_ZN6S709C53v62Ev,
  (VTBL_ENTRY)&_ZN6S709C53v63Ev,
  (VTBL_ENTRY)&_ZN6S709C53v64Ev,
  (VTBL_ENTRY)&_ZN6S709C53v65Ev,
  (VTBL_ENTRY)&_ZN6S709C53v66Ev,
  (VTBL_ENTRY)&_ZN6S709C53v67Ev,
  (VTBL_ENTRY)&_ZN6S709C53v68Ev,
  (VTBL_ENTRY)&_ZN6S709C53v69Ev,
  (VTBL_ENTRY)&_ZN6S709C53v70Ev,
  (VTBL_ENTRY)&_ZN6S709C53v71Ev,
  (VTBL_ENTRY)&_ZN6S709C53v72Ev,
  (VTBL_ENTRY)&_ZN6S709C43v73Ev,
  (VTBL_ENTRY)&_ZN6S709C43v74Ev,
};
extern VTBL_ENTRY _ZTI6S709C4[];
extern  VTBL_ENTRY _ZTV6S709C4[];
Class_Descriptor cd_S709C4 = {  "S709C4", // class name
  bases_S709C4, 1,
  &(vtc_S709C4[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,60), // object size
  NSPAIRA(_ZTI6S709C4),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S709C4),70, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S709C3  : S709C4 {
  ::S80C9_nt s709c3f0;
  int s709c3f1;
  unsigned int s709c3f2:1;
  unsigned int s709c3f3:1;
  unsigned int s709c3f4:1;
  unsigned int s709c3f5:1;
  ::S85C35 s709c3f6;
  ::S85C22_nt s709c3f7;
  void *s709c3f8;
  ::S80C31 s709c3f9;
  ::S80C31 s709c3f10;
  ::S80C29 s709c3f11;
  ::S80C19 s709c3f12;
  char s709c3f13;
  int s709c3f14;
  void *s709c3f15;
  ::S85C27_nt s709c3f16;
  ::S85C27_nt s709c3f17;
  ::S85C27_nt s709c3f18;
  ::S85C27_nt s709c3f19;
  ::S85C27_nt s709c3f20;
  ::S85C27_nt s709c3f21;
  ::S80C21_nt s709c3f22;
  ::S80C21_nt s709c3f23;
  ::S80C21_nt s709c3f24;
  ::S80C21_nt s709c3f25;
  ::S80C21_nt s709c3f26;
  ::S80C21_nt s709c3f27;
  ::S80C21_nt s709c3f28;
  ::S80C21_nt s709c3f29;
  ::S80C21_nt s709c3f30;
  ::S80C21_nt s709c3f31;
  virtual  ~S709C3(); // _ZN6S709C3D1Ev
  virtual void  v75(); // _ZN6S709C33v75Ev
  virtual void  v76(); // _ZN6S709C33v76Ev
  virtual void  v77(); // _ZN6S709C33v77Ev
  virtual void  v78(); // _ZN6S709C33v78Ev
  virtual void  v79(); // _ZN6S709C33v79Ev
  virtual void  v80(); // _ZN6S709C33v80Ev
  virtual void  v81(); // _ZN6S709C33v81Ev
  virtual void  v82(); // _ZN6S709C33v82Ev
  virtual void  v83(); // _ZN6S709C33v83Ev
  virtual void  v84(); // _ZN6S709C33v84Ev
  virtual void  v85(); // _ZN6S709C33v85Ev
  virtual void  v86(); // _ZN6S709C33v86Ev
  virtual void  v87(); // _ZN6S709C33v87Ev
  virtual void  v88(); // _ZN6S709C33v88Ev
  virtual void  v89(); // _ZN6S709C33v89Ev
  virtual void  v90(); // _ZN6S709C33v90Ev
  virtual void  v91(); // _ZN6S709C33v91Ev
  virtual void  v92(); // _ZN6S709C33v92Ev
  virtual void  v93(); // _ZN6S709C33v93Ev
  virtual void  v94(); // _ZN6S709C33v94Ev
  virtual void  v95(); // _ZN6S709C33v95Ev
  virtual void  v96(); // _ZN6S709C33v96Ev
  virtual void  v97(); // _ZN6S709C33v97Ev
  virtual void  v98(); // _ZN6S709C33v98Ev
  virtual void  v99(); // _ZN6S709C33v99Ev
  virtual void  v100(); // _ZN6S709C34v100Ev
  virtual void  v101(); // _ZN6S709C34v101Ev
  virtual void  v102(); // _ZN6S709C34v102Ev
  virtual void  v103(); // _ZN6S709C34v103Ev
  virtual void  v104(); // _ZN6S709C34v104Ev
  virtual void  v105(); // _ZN6S709C34v105Ev
  virtual void  v106(); // _ZN6S709C34v106Ev
  virtual void  v107(); // _ZN6S709C34v107Ev
  virtual void  v108(); // _ZN6S709C34v108Ev
  virtual void  v109(); // _ZN6S709C34v109Ev
  virtual void  v110(); // _ZN6S709C34v110Ev
  virtual void  v111(); // _ZN6S709C34v111Ev
  virtual void  v112(); // _ZN6S709C34v112Ev
  virtual void  v113(); // _ZN6S709C34v113Ev
  virtual void  v114(); // _ZN6S709C34v114Ev
  virtual void  v115(); // _ZN6S709C34v115Ev
  virtual void  v116(); // _ZN6S709C34v116Ev
  virtual void  v117(); // _ZN6S709C34v117Ev
  virtual void  v118(); // _ZN6S709C34v118Ev
  virtual void  v119(); // _ZN6S709C34v119Ev
  virtual void  v120(); // _ZN6S709C34v120Ev
  virtual void  v121(); // _ZN6S709C34v121Ev
  virtual void  v122(); // _ZN6S709C34v122Ev
  virtual void  v123(); // _ZN6S709C34v123Ev
  virtual void  v124(); // _ZN6S709C34v124Ev
  virtual void  v125(); // _ZN6S709C34v125Ev
  virtual void  v126(); // _ZN6S709C34v126Ev
  virtual void  v127(); // _ZN6S709C34v127Ev
  virtual void  v128(); // _ZN6S709C34v128Ev
  virtual void  v129(); // _ZN6S709C34v129Ev
  virtual void  v130(); // _ZN6S709C34v130Ev
  virtual void  v131(); // _ZN6S709C34v131Ev
  virtual void  v132(); // _ZN6S709C34v132Ev
  virtual void  v133(); // _ZN6S709C34v133Ev
  virtual void  v134(); // _ZN6S709C34v134Ev
  virtual void  v135(); // _ZN6S709C34v135Ev
  virtual void  v136(); // _ZN6S709C34v136Ev
  virtual void  v137(); // _ZN6S709C34v137Ev
  virtual void  v138(); // _ZN6S709C34v138Ev
  virtual void  v139(); // _ZN6S709C34v139Ev
  virtual void  v140(); // _ZN6S709C34v140Ev
  virtual void  v141(); // _ZN6S709C34v141Ev
  virtual void  v142(); // _ZN6S709C34v142Ev
  virtual void  v143(); // _ZN6S709C34v143Ev
  virtual void  v144(); // _ZN6S709C34v144Ev
  virtual void  v145(); // _ZN6S709C34v145Ev
  virtual void  v146(); // _ZN6S709C34v146Ev
  virtual void  v147(); // _ZN6S709C34v147Ev
  virtual void  v148(); // _ZN6S709C34v148Ev
  virtual void  v149(); // _ZN6S709C34v149Ev
  virtual void  v150(); // _ZN6S709C34v150Ev
  S709C3(); // tgen
};
//SIG(-1 S709C3) C1{ BC2{ BC3{ vd v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 Fi FL Fp[4] Fi[2] Fp FC4{ m Fi[2]} Fp[2]} vd v141 v142} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 FC5{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC6{ BC7{ BC8{ m Fp Fi[2]}}} FC9{ BC10{ BC8}} Fp FC11{ BC12{ BC8}} FC11 FC13{ BC14{ BC8}} FC15{ BC16{ BC8}} Fc Fi Fp FC4 FC4 FC4 FC4 FC4 FC4 FC17{ m Fp FC18{ m Fi[2]}} FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17 FC17}


 S709C3 ::~S709C3(){ note_dtor("S709C3", this);}
void  S709C3 ::v75(){vfunc_called(this, "_ZN6S709C33v75Ev");}
void  S709C3 ::v76(){vfunc_called(this, "_ZN6S709C33v76Ev");}
void  S709C3 ::v77(){vfunc_called(this, "_ZN6S709C33v77Ev");}
void  S709C3 ::v78(){vfunc_called(this, "_ZN6S709C33v78Ev");}
void  S709C3 ::v79(){vfunc_called(this, "_ZN6S709C33v79Ev");}
void  S709C3 ::v80(){vfunc_called(this, "_ZN6S709C33v80Ev");}
void  S709C3 ::v81(){vfunc_called(this, "_ZN6S709C33v81Ev");}
void  S709C3 ::v82(){vfunc_called(this, "_ZN6S709C33v82Ev");}
void  S709C3 ::v83(){vfunc_called(this, "_ZN6S709C33v83Ev");}
void  S709C3 ::v84(){vfunc_called(this, "_ZN6S709C33v84Ev");}
void  S709C3 ::v85(){vfunc_called(this, "_ZN6S709C33v85Ev");}
void  S709C3 ::v86(){vfunc_called(this, "_ZN6S709C33v86Ev");}
void  S709C3 ::v87(){vfunc_called(this, "_ZN6S709C33v87Ev");}
void  S709C3 ::v88(){vfunc_called(this, "_ZN6S709C33v88Ev");}
void  S709C3 ::v89(){vfunc_called(this, "_ZN6S709C33v89Ev");}
void  S709C3 ::v90(){vfunc_called(this, "_ZN6S709C33v90Ev");}
void  S709C3 ::v91(){vfunc_called(this, "_ZN6S709C33v91Ev");}
void  S709C3 ::v92(){vfunc_called(this, "_ZN6S709C33v92Ev");}
void  S709C3 ::v93(){vfunc_called(this, "_ZN6S709C33v93Ev");}
void  S709C3 ::v94(){vfunc_called(this, "_ZN6S709C33v94Ev");}
void  S709C3 ::v95(){vfunc_called(this, "_ZN6S709C33v95Ev");}
void  S709C3 ::v96(){vfunc_called(this, "_ZN6S709C33v96Ev");}
void  S709C3 ::v97(){vfunc_called(this, "_ZN6S709C33v97Ev");}
void  S709C3 ::v98(){vfunc_called(this, "_ZN6S709C33v98Ev");}
void  S709C3 ::v99(){vfunc_called(this, "_ZN6S709C33v99Ev");}
void  S709C3 ::v100(){vfunc_called(this, "_ZN6S709C34v100Ev");}
void  S709C3 ::v101(){vfunc_called(this, "_ZN6S709C34v101Ev");}
void  S709C3 ::v102(){vfunc_called(this, "_ZN6S709C34v102Ev");}
void  S709C3 ::v103(){vfunc_called(this, "_ZN6S709C34v103Ev");}
void  S709C3 ::v104(){vfunc_called(this, "_ZN6S709C34v104Ev");}
void  S709C3 ::v105(){vfunc_called(this, "_ZN6S709C34v105Ev");}
void  S709C3 ::v106(){vfunc_called(this, "_ZN6S709C34v106Ev");}
void  S709C3 ::v107(){vfunc_called(this, "_ZN6S709C34v107Ev");}
void  S709C3 ::v108(){vfunc_called(this, "_ZN6S709C34v108Ev");}
void  S709C3 ::v109(){vfunc_called(this, "_ZN6S709C34v109Ev");}
void  S709C3 ::v110(){vfunc_called(this, "_ZN6S709C34v110Ev");}
void  S709C3 ::v111(){vfunc_called(this, "_ZN6S709C34v111Ev");}
void  S709C3 ::v112(){vfunc_called(this, "_ZN6S709C34v112Ev");}
void  S709C3 ::v113(){vfunc_called(this, "_ZN6S709C34v113Ev");}
void  S709C3 ::v114(){vfunc_called(this, "_ZN6S709C34v114Ev");}
void  S709C3 ::v115(){vfunc_called(this, "_ZN6S709C34v115Ev");}
void  S709C3 ::v116(){vfunc_called(this, "_ZN6S709C34v116Ev");}
void  S709C3 ::v117(){vfunc_called(this, "_ZN6S709C34v117Ev");}
void  S709C3 ::v118(){vfunc_called(this, "_ZN6S709C34v118Ev");}
void  S709C3 ::v119(){vfunc_called(this, "_ZN6S709C34v119Ev");}
void  S709C3 ::v120(){vfunc_called(this, "_ZN6S709C34v120Ev");}
void  S709C3 ::v121(){vfunc_called(this, "_ZN6S709C34v121Ev");}
void  S709C3 ::v122(){vfunc_called(this, "_ZN6S709C34v122Ev");}
void  S709C3 ::v123(){vfunc_called(this, "_ZN6S709C34v123Ev");}
void  S709C3 ::v124(){vfunc_called(this, "_ZN6S709C34v124Ev");}
void  S709C3 ::v125(){vfunc_called(this, "_ZN6S709C34v125Ev");}
void  S709C3 ::v126(){vfunc_called(this, "_ZN6S709C34v126Ev");}
void  S709C3 ::v127(){vfunc_called(this, "_ZN6S709C34v127Ev");}
void  S709C3 ::v128(){vfunc_called(this, "_ZN6S709C34v128Ev");}
void  S709C3 ::v129(){vfunc_called(this, "_ZN6S709C34v129Ev");}
void  S709C3 ::v130(){vfunc_called(this, "_ZN6S709C34v130Ev");}
void  S709C3 ::v131(){vfunc_called(this, "_ZN6S709C34v131Ev");}
void  S709C3 ::v132(){vfunc_called(this, "_ZN6S709C34v132Ev");}
void  S709C3 ::v133(){vfunc_called(this, "_ZN6S709C34v133Ev");}
void  S709C3 ::v134(){vfunc_called(this, "_ZN6S709C34v134Ev");}
void  S709C3 ::v135(){vfunc_called(this, "_ZN6S709C34v135Ev");}
void  S709C3 ::v136(){vfunc_called(this, "_ZN6S709C34v136Ev");}
void  S709C3 ::v137(){vfunc_called(this, "_ZN6S709C34v137Ev");}
void  S709C3 ::v138(){vfunc_called(this, "_ZN6S709C34v138Ev");}
void  S709C3 ::v139(){vfunc_called(this, "_ZN6S709C34v139Ev");}
void  S709C3 ::v140(){vfunc_called(this, "_ZN6S709C34v140Ev");}
void  S709C3 ::v141(){vfunc_called(this, "_ZN6S709C34v141Ev");}
void  S709C3 ::v142(){vfunc_called(this, "_ZN6S709C34v142Ev");}
void  S709C3 ::v143(){vfunc_called(this, "_ZN6S709C34v143Ev");}
void  S709C3 ::v144(){vfunc_called(this, "_ZN6S709C34v144Ev");}
void  S709C3 ::v145(){vfunc_called(this, "_ZN6S709C34v145Ev");}
void  S709C3 ::v146(){vfunc_called(this, "_ZN6S709C34v146Ev");}
void  S709C3 ::v147(){vfunc_called(this, "_ZN6S709C34v147Ev");}
void  S709C3 ::v148(){vfunc_called(this, "_ZN6S709C34v148Ev");}
void  S709C3 ::v149(){vfunc_called(this, "_ZN6S709C34v149Ev");}
void  S709C3 ::v150(){vfunc_called(this, "_ZN6S709C34v150Ev");}
S709C3 ::S709C3(){ note_ctor("S709C3", this);} // tgen

static void Test_S709C3()
{
  extern Class_Descriptor cd_S709C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(59,89)];
    init_test(&cd_S709C3, buf);
    S709C3 *dp, &lv = *(dp=new (buf) S709C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(464,352), "sizeof(S709C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S709C3)");
    check_base_class_offset(lv, (S709C5*)(S709C4*), 0, "S709C3");
    check_base_class_offset(lv, (S709C4*), 0, "S709C3");
    check_field_offset(lv, s709c3f0, ABISELECT(96,60), "S709C3.s709c3f0");
    check_field_offset(lv, s709c3f1, ABISELECT(124,88), "S709C3.s709c3f1");
    set_bf_and_test(lv, s709c3f2, ABISELECT(128,92), 0, 1, 1, "S709C3");
    set_bf_and_test(lv, s709c3f3, ABISELECT(128,92), 1, 1, 1, "S709C3");
    set_bf_and_test(lv, s709c3f4, ABISELECT(128,92), 2, 1, 1, "S709C3");
    set_bf_and_test(lv, s709c3f5, ABISELECT(128,92), 3, 1, 1, "S709C3");
    check_field_offset(lv, s709c3f6, ABISELECT(136,96), "S709C3.s709c3f6");
    check_field_offset(lv, s709c3f7, ABISELECT(152,108), "S709C3.s709c3f7");
    check_field_offset(lv, s709c3f8, ABISELECT(168,120), "S709C3.s709c3f8");
    check_field_offset(lv, s709c3f9, ABISELECT(176,124), "S709C3.s709c3f9");
    check_field_offset(lv, s709c3f10, ABISELECT(192,136), "S709C3.s709c3f10");
    check_field_offset(lv, s709c3f11, ABISELECT(208,148), "S709C3.s709c3f11");
    check_field_offset(lv, s709c3f12, ABISELECT(224,160), "S709C3.s709c3f12");
    check_field_offset(lv, s709c3f13, ABISELECT(240,172), "S709C3.s709c3f13");
    check_field_offset(lv, s709c3f14, ABISELECT(244,176), "S709C3.s709c3f14");
    check_field_offset(lv, s709c3f15, ABISELECT(248,180), "S709C3.s709c3f15");
    check_field_offset(lv, s709c3f16, ABISELECT(256,184), "S709C3.s709c3f16");
    check_field_offset(lv, s709c3f17, ABISELECT(264,192), "S709C3.s709c3f17");
    check_field_offset(lv, s709c3f18, ABISELECT(272,200), "S709C3.s709c3f18");
    check_field_offset(lv, s709c3f19, ABISELECT(280,208), "S709C3.s709c3f19");
    check_field_offset(lv, s709c3f20, ABISELECT(288,216), "S709C3.s709c3f20");
    check_field_offset(lv, s709c3f21, ABISELECT(296,224), "S709C3.s709c3f21");
    check_field_offset(lv, s709c3f22, ABISELECT(304,232), "S709C3.s709c3f22");
    check_field_offset(lv, s709c3f23, ABISELECT(320,244), "S709C3.s709c3f23");
    check_field_offset(lv, s709c3f24, ABISELECT(336,256), "S709C3.s709c3f24");
    check_field_offset(lv, s709c3f25, ABISELECT(352,268), "S709C3.s709c3f25");
    check_field_offset(lv, s709c3f26, ABISELECT(368,280), "S709C3.s709c3f26");
    check_field_offset(lv, s709c3f27, ABISELECT(384,292), "S709C3.s709c3f27");
    check_field_offset(lv, s709c3f28, ABISELECT(400,304), "S709C3.s709c3f28");
    check_field_offset(lv, s709c3f29, ABISELECT(416,316), "S709C3.s709c3f29");
    check_field_offset(lv, s709c3f30, ABISELECT(432,328), "S709C3.s709c3f30");
    check_field_offset(lv, s709c3f31, ABISELECT(448,340), "S709C3.s709c3f31");
    test_class_info(&lv, &cd_S709C3);
    dp->~S709C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS709C3(Test_S709C3, "S709C3", ABISELECT(464,352));

#else // __cplusplus

extern void _ZN6S709C3C1Ev();
extern void _ZN6S709C3D1Ev();
Name_Map name_map_S709C3[] = {
  NSPAIR(_ZN6S709C3C1Ev),
  NSPAIR(_ZN6S709C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S709C5;
extern VTBL_ENTRY _ZTI6S709C5[];
extern  VTBL_ENTRY _ZTV6S709C5[];
extern Class_Descriptor cd_S709C4;
extern VTBL_ENTRY _ZTI6S709C4[];
extern  VTBL_ENTRY _ZTV6S709C4[];
static Base_Class bases_S709C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S709C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S709C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S709C3[];
extern void _ZN6S709C3D1Ev();
extern void _ZN6S709C3D0Ev();
extern void _ZN6S709C52v9Ev();
extern void _ZN6S709C53v10Ev();
extern void _ZN6S709C53v11Ev();
extern void _ZN6S709C53v12Ev();
extern void _ZN6S709C53v13Ev();
extern void _ZN6S709C53v14Ev();
extern void _ZN6S709C53v15Ev();
extern void _ZN6S709C53v16Ev();
extern void _ZN6S709C53v17Ev();
extern void _ZN6S709C53v18Ev();
extern void _ZN6S709C53v19Ev();
extern void _ZN6S709C53v20Ev();
extern void _ZN6S709C53v21Ev();
extern void _ZN6S709C53v22Ev();
extern void _ZN6S709C53v23Ev();
extern void _ZN6S709C53v24Ev();
extern void _ZN6S709C53v25Ev();
extern void _ZN6S709C53v26Ev();
extern void _ZN6S709C53v27Ev();
extern void _ZN6S709C53v28Ev();
extern void _ZN6S709C53v29Ev();
extern void _ZN6S709C53v30Ev();
extern void _ZN6S709C53v31Ev();
extern void _ZN6S709C53v32Ev();
extern void _ZN6S709C53v33Ev();
extern void _ZN6S709C53v34Ev();
extern void _ZN6S709C53v35Ev();
extern void _ZN6S709C53v36Ev();
extern void _ZN6S709C53v37Ev();
extern void _ZN6S709C53v38Ev();
extern void _ZN6S709C53v39Ev();
extern void _ZN6S709C53v40Ev();
extern void _ZN6S709C53v41Ev();
extern void _ZN6S709C53v42Ev();
extern void _ZN6S709C53v43Ev();
extern void _ZN6S709C53v44Ev();
extern void _ZN6S709C53v45Ev();
extern void _ZN6S709C53v46Ev();
extern void _ZN6S709C53v47Ev();
extern void _ZN6S709C53v48Ev();
extern void _ZN6S709C53v49Ev();
extern void _ZN6S709C53v50Ev();
extern void _ZN6S709C53v51Ev();
extern void _ZN6S709C53v52Ev();
extern void _ZN6S709C53v53Ev();
extern void _ZN6S709C53v54Ev();
extern void _ZN6S709C53v55Ev();
extern void _ZN6S709C53v56Ev();
extern void _ZN6S709C53v57Ev();
extern void _ZN6S709C53v58Ev();
extern void _ZN6S709C53v59Ev();
extern void _ZN6S709C53v60Ev();
extern void _ZN6S709C53v61Ev();
extern void _ZN6S709C53v62Ev();
extern void _ZN6S709C53v63Ev();
extern void _ZN6S709C53v64Ev();
extern void _ZN6S709C53v65Ev();
extern void _ZN6S709C53v66Ev();
extern void _ZN6S709C53v67Ev();
extern void _ZN6S709C53v68Ev();
extern void _ZN6S709C53v69Ev();
extern void _ZN6S709C53v70Ev();
extern void _ZN6S709C53v71Ev();
extern void _ZN6S709C53v72Ev();
extern void _ZN6S709C43v73Ev();
extern void _ZN6S709C43v74Ev();
extern void _ZN6S709C33v75Ev();
extern void _ZN6S709C33v76Ev();
extern void _ZN6S709C33v77Ev();
extern void _ZN6S709C33v78Ev();
extern void _ZN6S709C33v79Ev();
extern void _ZN6S709C33v80Ev();
extern void _ZN6S709C33v81Ev();
extern void _ZN6S709C33v82Ev();
extern void _ZN6S709C33v83Ev();
extern void _ZN6S709C33v84Ev();
extern void _ZN6S709C33v85Ev();
extern void _ZN6S709C33v86Ev();
extern void _ZN6S709C33v87Ev();
extern void _ZN6S709C33v88Ev();
extern void _ZN6S709C33v89Ev();
extern void _ZN6S709C33v90Ev();
extern void _ZN6S709C33v91Ev();
extern void _ZN6S709C33v92Ev();
extern void _ZN6S709C33v93Ev();
extern void _ZN6S709C33v94Ev();
extern void _ZN6S709C33v95Ev();
extern void _ZN6S709C33v96Ev();
extern void _ZN6S709C33v97Ev();
extern void _ZN6S709C33v98Ev();
extern void _ZN6S709C33v99Ev();
extern void _ZN6S709C34v100Ev();
extern void _ZN6S709C34v101Ev();
extern void _ZN6S709C34v102Ev();
extern void _ZN6S709C34v103Ev();
extern void _ZN6S709C34v104Ev();
extern void _ZN6S709C34v105Ev();
extern void _ZN6S709C34v106Ev();
extern void _ZN6S709C34v107Ev();
extern void _ZN6S709C34v108Ev();
extern void _ZN6S709C34v109Ev();
extern void _ZN6S709C34v110Ev();
extern void _ZN6S709C34v111Ev();
extern void _ZN6S709C34v112Ev();
extern void _ZN6S709C34v113Ev();
extern void _ZN6S709C34v114Ev();
extern void _ZN6S709C34v115Ev();
extern void _ZN6S709C34v116Ev();
extern void _ZN6S709C34v117Ev();
extern void _ZN6S709C34v118Ev();
extern void _ZN6S709C34v119Ev();
extern void _ZN6S709C34v120Ev();
extern void _ZN6S709C34v121Ev();
extern void _ZN6S709C34v122Ev();
extern void _ZN6S709C34v123Ev();
extern void _ZN6S709C34v124Ev();
extern void _ZN6S709C34v125Ev();
extern void _ZN6S709C34v126Ev();
extern void _ZN6S709C34v127Ev();
extern void _ZN6S709C34v128Ev();
extern void _ZN6S709C34v129Ev();
extern void _ZN6S709C34v130Ev();
extern void _ZN6S709C34v131Ev();
extern void _ZN6S709C34v132Ev();
extern void _ZN6S709C34v133Ev();
extern void _ZN6S709C34v134Ev();
extern void _ZN6S709C34v135Ev();
extern void _ZN6S709C34v136Ev();
extern void _ZN6S709C34v137Ev();
extern void _ZN6S709C34v138Ev();
extern void _ZN6S709C34v139Ev();
extern void _ZN6S709C34v140Ev();
extern void _ZN6S709C34v141Ev();
extern void _ZN6S709C34v142Ev();
extern void _ZN6S709C34v143Ev();
extern void _ZN6S709C34v144Ev();
extern void _ZN6S709C34v145Ev();
extern void _ZN6S709C34v146Ev();
extern void _ZN6S709C34v147Ev();
extern void _ZN6S709C34v148Ev();
extern void _ZN6S709C34v149Ev();
extern void _ZN6S709C34v150Ev();
static  VTBL_ENTRY vtc_S709C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S709C3[0]),
  (VTBL_ENTRY)&_ZN6S709C3D1Ev,
  (VTBL_ENTRY)&_ZN6S709C3D0Ev,
  (VTBL_ENTRY)&_ZN6S709C52v9Ev,
  (VTBL_ENTRY)&_ZN6S709C53v10Ev,
  (VTBL_ENTRY)&_ZN6S709C53v11Ev,
  (VTBL_ENTRY)&_ZN6S709C53v12Ev,
  (VTBL_ENTRY)&_ZN6S709C53v13Ev,
  (VTBL_ENTRY)&_ZN6S709C53v14Ev,
  (VTBL_ENTRY)&_ZN6S709C53v15Ev,
  (VTBL_ENTRY)&_ZN6S709C53v16Ev,
  (VTBL_ENTRY)&_ZN6S709C53v17Ev,
  (VTBL_ENTRY)&_ZN6S709C53v18Ev,
  (VTBL_ENTRY)&_ZN6S709C53v19Ev,
  (VTBL_ENTRY)&_ZN6S709C53v20Ev,
  (VTBL_ENTRY)&_ZN6S709C53v21Ev,
  (VTBL_ENTRY)&_ZN6S709C53v22Ev,
  (VTBL_ENTRY)&_ZN6S709C53v23Ev,
  (VTBL_ENTRY)&_ZN6S709C53v24Ev,
  (VTBL_ENTRY)&_ZN6S709C53v25Ev,
  (VTBL_ENTRY)&_ZN6S709C53v26Ev,
  (VTBL_ENTRY)&_ZN6S709C53v27Ev,
  (VTBL_ENTRY)&_ZN6S709C53v28Ev,
  (VTBL_ENTRY)&_ZN6S709C53v29Ev,
  (VTBL_ENTRY)&_ZN6S709C53v30Ev,
  (VTBL_ENTRY)&_ZN6S709C53v31Ev,
  (VTBL_ENTRY)&_ZN6S709C53v32Ev,
  (VTBL_ENTRY)&_ZN6S709C53v33Ev,
  (VTBL_ENTRY)&_ZN6S709C53v34Ev,
  (VTBL_ENTRY)&_ZN6S709C53v35Ev,
  (VTBL_ENTRY)&_ZN6S709C53v36Ev,
  (VTBL_ENTRY)&_ZN6S709C53v37Ev,
  (VTBL_ENTRY)&_ZN6S709C53v38Ev,
  (VTBL_ENTRY)&_ZN6S709C53v39Ev,
  (VTBL_ENTRY)&_ZN6S709C53v40Ev,
  (VTBL_ENTRY)&_ZN6S709C53v41Ev,
  (VTBL_ENTRY)&_ZN6S709C53v42Ev,
  (VTBL_ENTRY)&_ZN6S709C53v43Ev,
  (VTBL_ENTRY)&_ZN6S709C53v44Ev,
  (VTBL_ENTRY)&_ZN6S709C53v45Ev,
  (VTBL_ENTRY)&_ZN6S709C53v46Ev,
  (VTBL_ENTRY)&_ZN6S709C53v47Ev,
  (VTBL_ENTRY)&_ZN6S709C53v48Ev,
  (VTBL_ENTRY)&_ZN6S709C53v49Ev,
  (VTBL_ENTRY)&_ZN6S709C53v50Ev,
  (VTBL_ENTRY)&_ZN6S709C53v51Ev,
  (VTBL_ENTRY)&_ZN6S709C53v52Ev,
  (VTBL_ENTRY)&_ZN6S709C53v53Ev,
  (VTBL_ENTRY)&_ZN6S709C53v54Ev,
  (VTBL_ENTRY)&_ZN6S709C53v55Ev,
  (VTBL_ENTRY)&_ZN6S709C53v56Ev,
  (VTBL_ENTRY)&_ZN6S709C53v57Ev,
  (VTBL_ENTRY)&_ZN6S709C53v58Ev,
  (VTBL_ENTRY)&_ZN6S709C53v59Ev,
  (VTBL_ENTRY)&_ZN6S709C53v60Ev,
  (VTBL_ENTRY)&_ZN6S709C53v61Ev,
  (VTBL_ENTRY)&_ZN6S709C53v62Ev,
  (VTBL_ENTRY)&_ZN6S709C53v63Ev,
  (VTBL_ENTRY)&_ZN6S709C53v64Ev,
  (VTBL_ENTRY)&_ZN6S709C53v65Ev,
  (VTBL_ENTRY)&_ZN6S709C53v66Ev,
  (VTBL_ENTRY)&_ZN6S709C53v67Ev,
  (VTBL_ENTRY)&_ZN6S709C53v68Ev,
  (VTBL_ENTRY)&_ZN6S709C53v69Ev,
  (VTBL_ENTRY)&_ZN6S709C53v70Ev,
  (VTBL_ENTRY)&_ZN6S709C53v71Ev,
  (VTBL_ENTRY)&_ZN6S709C53v72Ev,
  (VTBL_ENTRY)&_ZN6S709C43v73Ev,
  (VTBL_ENTRY)&_ZN6S709C43v74Ev,
  (VTBL_ENTRY)&_ZN6S709C33v75Ev,
  (VTBL_ENTRY)&_ZN6S709C33v76Ev,
  (VTBL_ENTRY)&_ZN6S709C33v77Ev,
  (VTBL_ENTRY)&_ZN6S709C33v78Ev,
  (VTBL_ENTRY)&_ZN6S709C33v79Ev,
  (VTBL_ENTRY)&_ZN6S709C33v80Ev,
  (VTBL_ENTRY)&_ZN6S709C33v81Ev,
  (VTBL_ENTRY)&_ZN6S709C33v82Ev,
  (VTBL_ENTRY)&_ZN6S709C33v83Ev,
  (VTBL_ENTRY)&_ZN6S709C33v84Ev,
  (VTBL_ENTRY)&_ZN6S709C33v85Ev,
  (VTBL_ENTRY)&_ZN6S709C33v86Ev,
  (VTBL_ENTRY)&_ZN6S709C33v87Ev,
  (VTBL_ENTRY)&_ZN6S709C33v88Ev,
  (VTBL_ENTRY)&_ZN6S709C33v89Ev,
  (VTBL_ENTRY)&_ZN6S709C33v90Ev,
  (VTBL_ENTRY)&_ZN6S709C33v91Ev,
  (VTBL_ENTRY)&_ZN6S709C33v92Ev,
  (VTBL_ENTRY)&_ZN6S709C33v93Ev,
  (VTBL_ENTRY)&_ZN6S709C33v94Ev,
  (VTBL_ENTRY)&_ZN6S709C33v95Ev,
  (VTBL_ENTRY)&_ZN6S709C33v96Ev,
  (VTBL_ENTRY)&_ZN6S709C33v97Ev,
  (VTBL_ENTRY)&_ZN6S709C33v98Ev,
  (VTBL_ENTRY)&_ZN6S709C33v99Ev,
  (VTBL_ENTRY)&_ZN6S709C34v100Ev,
  (VTBL_ENTRY)&_ZN6S709C34v101Ev,
  (VTBL_ENTRY)&_ZN6S709C34v102Ev,
  (VTBL_ENTRY)&_ZN6S709C34v103Ev,
  (VTBL_ENTRY)&_ZN6S709C34v104Ev,
  (VTBL_ENTRY)&_ZN6S709C34v105Ev,
  (VTBL_ENTRY)&_ZN6S709C34v106Ev,
  (VTBL_ENTRY)&_ZN6S709C34v107Ev,
  (VTBL_ENTRY)&_ZN6S709C34v108Ev,
  (VTBL_ENTRY)&_ZN6S709C34v109Ev,
  (VTBL_ENTRY)&_ZN6S709C34v110Ev,
  (VTBL_ENTRY)&_ZN6S709C34v111Ev,
  (VTBL_ENTRY)&_ZN6S709C34v112Ev,
  (VTBL_ENTRY)&_ZN6S709C34v113Ev,
  (VTBL_ENTRY)&_ZN6S709C34v114Ev,
  (VTBL_ENTRY)&_ZN6S709C34v115Ev,
  (VTBL_ENTRY)&_ZN6S709C34v116Ev,
  (VTBL_ENTRY)&_ZN6S709C34v117Ev,
  (VTBL_ENTRY)&_ZN6S709C34v118Ev,
  (VTBL_ENTRY)&_ZN6S709C34v119Ev,
  (VTBL_ENTRY)&_ZN6S709C34v120Ev,
  (VTBL_ENTRY)&_ZN6S709C34v121Ev,
  (VTBL_ENTRY)&_ZN6S709C34v122Ev,
  (VTBL_ENTRY)&_ZN6S709C34v123Ev,
  (VTBL_ENTRY)&_ZN6S709C34v124Ev,
  (VTBL_ENTRY)&_ZN6S709C34v125Ev,
  (VTBL_ENTRY)&_ZN6S709C34v126Ev,
  (VTBL_ENTRY)&_ZN6S709C34v127Ev,
  (VTBL_ENTRY)&_ZN6S709C34v128Ev,
  (VTBL_ENTRY)&_ZN6S709C34v129Ev,
  (VTBL_ENTRY)&_ZN6S709C34v130Ev,
  (VTBL_ENTRY)&_ZN6S709C34v131Ev,
  (VTBL_ENTRY)&_ZN6S709C34v132Ev,
  (VTBL_ENTRY)&_ZN6S709C34v133Ev,
  (VTBL_ENTRY)&_ZN6S709C34v134Ev,
  (VTBL_ENTRY)&_ZN6S709C34v135Ev,
  (VTBL_ENTRY)&_ZN6S709C34v136Ev,
  (VTBL_ENTRY)&_ZN6S709C34v137Ev,
  (VTBL_ENTRY)&_ZN6S709C34v138Ev,
  (VTBL_ENTRY)&_ZN6S709C34v139Ev,
  (VTBL_ENTRY)&_ZN6S709C34v140Ev,
  (VTBL_ENTRY)&_ZN6S709C34v141Ev,
  (VTBL_ENTRY)&_ZN6S709C34v142Ev,
  (VTBL_ENTRY)&_ZN6S709C34v143Ev,
  (VTBL_ENTRY)&_ZN6S709C34v144Ev,
  (VTBL_ENTRY)&_ZN6S709C34v145Ev,
  (VTBL_ENTRY)&_ZN6S709C34v146Ev,
  (VTBL_ENTRY)&_ZN6S709C34v147Ev,
  (VTBL_ENTRY)&_ZN6S709C34v148Ev,
  (VTBL_ENTRY)&_ZN6S709C34v149Ev,
  (VTBL_ENTRY)&_ZN6S709C34v150Ev,
};
extern VTBL_ENTRY _ZTI6S709C3[];
extern  VTBL_ENTRY _ZTV6S709C3[];
Class_Descriptor cd_S709C3 = {  "S709C3", // class name
  bases_S709C3, 2,
  &(vtc_S709C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(464,352), // object size
  NSPAIRA(_ZTI6S709C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S709C3),146, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S709C2  : S709C3 {
  ::S85C27_nt s709c2f0;
  void *s709c2f1[9];
  ::S80C15 s709c2f2;
  ::S85C35 s709c2f3;
  ::S80C24 s709c2f4;
  int s709c2f5;
  unsigned int s709c2f6:1;
  unsigned int s709c2f7:1;
  unsigned int s709c2f8:1;
  unsigned int s709c2f9:1;
  unsigned int s709c2f10:1;
  unsigned int s709c2f11:1;
  unsigned int s709c2f12:1;
  unsigned int s709c2f13:1;
  unsigned int s709c2f14:1;
  unsigned int s709c2f15:1;
  unsigned int s709c2f16:1;
  unsigned int s709c2f17:1;
  unsigned int s709c2f18:1;
  unsigned int s709c2f19:1;
  unsigned int s709c2f20:1;
  unsigned int s709c2f21:1;
  unsigned int s709c2f22:1;
  unsigned int s709c2f23:1;
  unsigned int s709c2f24:1;
  unsigned int s709c2f25:1;
  unsigned int s709c2f26:1;
  unsigned int s709c2f27:1;
  void *s709c2f28;
  char s709c2f29[2];
  ::S80C8_nt s709c2f30;
  ::S85C27_nt s709c2f31;
  ::S85C27_nt s709c2f32;
  void *s709c2f33;
  ::S80C21_nt s709c2f34;
  ::S80C21_nt s709c2f35;
  ::S80C21_nt s709c2f36;
  ::S80C21_nt s709c2f37;
  ::S80C21_nt s709c2f38;
  virtual  ~S709C2(); // _ZN6S709C2D1Ev
  virtual void  v151(); // _ZN6S709C24v151Ev
  virtual void  v152(); // _ZN6S709C24v152Ev
  virtual void  v153(); // _ZN6S709C24v153Ev
  virtual void  v154(); // _ZN6S709C24v154Ev
  virtual void  v155(); // _ZN6S709C24v155Ev
  virtual void  v156(); // _ZN6S709C24v156Ev
  virtual void  v157(); // _ZN6S709C24v157Ev
  virtual void  v158(); // _ZN6S709C24v158Ev
  virtual void  v159(); // _ZN6S709C24v159Ev
  virtual void  v160(); // _ZN6S709C24v160Ev
  virtual void  v161(); // _ZN6S709C24v161Ev
  virtual void  v162(); // _ZN6S709C24v162Ev
  virtual void  v163(); // _ZN6S709C24v163Ev
  virtual void  v164(); // _ZN6S709C24v164Ev
  virtual void  v165(); // _ZN6S709C24v165Ev
  virtual void  v166(); // _ZN6S709C24v166Ev
  virtual void  v167(); // _ZN6S709C24v167Ev
  virtual void  v168(); // _ZN6S709C24v168Ev
  virtual void  v169(); // _ZN6S709C24v169Ev
  virtual void  v170(); // _ZN6S709C24v170Ev
  virtual void  v171(); // _ZN6S709C24v171Ev
  virtual void  v172(); // _ZN6S709C24v172Ev
  virtual void  v173(); // _ZN6S709C24v173Ev
  virtual void  v174(); // _ZN6S709C24v174Ev
  virtual void  v175(); // _ZN6S709C24v175Ev
  virtual void  v176(); // _ZN6S709C24v176Ev
  virtual void  v177(); // _ZN6S709C24v177Ev
  virtual void  v178(); // _ZN6S709C24v178Ev
  virtual void  v179(); // _ZN6S709C24v179Ev
  virtual void  v180(); // _ZN6S709C24v180Ev
  virtual void  v181(); // _ZN6S709C24v181Ev
  virtual void  v182(); // _ZN6S709C24v182Ev
  virtual void  v183(); // _ZN6S709C24v183Ev
  virtual void  v184(); // _ZN6S709C24v184Ev
  virtual void  v185(); // _ZN6S709C24v185Ev
  virtual void  v186(); // _ZN6S709C24v186Ev
  virtual void  v187(); // _ZN6S709C24v187Ev
  virtual void  v188(); // _ZN6S709C24v188Ev
  virtual void  v189(); // _ZN6S709C24v189Ev
  S709C2(); // tgen
};
//SIG(-1 S709C2) C1{ BC2{ BC3{ BC4{ vd v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 v73 v74 v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 Fi FL Fp[4] Fi[2] Fp FC5{ m Fi[2]} Fp[2]} vd v104 v105} vd v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 FC6{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC7{ BC8{ BC9{ m Fp Fi[2]}}} FC10{ BC11{ BC9}} Fp FC12{ BC13{ BC9}} FC12 FC14{ BC15{ BC9}} FC16{ BC17{ BC9}} Fc Fi Fp FC5 FC5 FC5 FC5 FC5 FC5 FC18{ m Fp FC19{ m Fi[2]}} FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18 FC18} vd v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 FC5 Fp[9] FC20{ BC21{ BC9}} FC7 FC22{ BC23{ m FC24{ BC9} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC19 FC5 FC5 Fp FC18 FC18 FC18 FC18 FC18}


 S709C2 ::~S709C2(){ note_dtor("S709C2", this);}
void  S709C2 ::v151(){vfunc_called(this, "_ZN6S709C24v151Ev");}
void  S709C2 ::v152(){vfunc_called(this, "_ZN6S709C24v152Ev");}
void  S709C2 ::v153(){vfunc_called(this, "_ZN6S709C24v153Ev");}
void  S709C2 ::v154(){vfunc_called(this, "_ZN6S709C24v154Ev");}
void  S709C2 ::v155(){vfunc_called(this, "_ZN6S709C24v155Ev");}
void  S709C2 ::v156(){vfunc_called(this, "_ZN6S709C24v156Ev");}
void  S709C2 ::v157(){vfunc_called(this, "_ZN6S709C24v157Ev");}
void  S709C2 ::v158(){vfunc_called(this, "_ZN6S709C24v158Ev");}
void  S709C2 ::v159(){vfunc_called(this, "_ZN6S709C24v159Ev");}
void  S709C2 ::v160(){vfunc_called(this, "_ZN6S709C24v160Ev");}
void  S709C2 ::v161(){vfunc_called(this, "_ZN6S709C24v161Ev");}
void  S709C2 ::v162(){vfunc_called(this, "_ZN6S709C24v162Ev");}
void  S709C2 ::v163(){vfunc_called(this, "_ZN6S709C24v163Ev");}
void  S709C2 ::v164(){vfunc_called(this, "_ZN6S709C24v164Ev");}
void  S709C2 ::v165(){vfunc_called(this, "_ZN6S709C24v165Ev");}
void  S709C2 ::v166(){vfunc_called(this, "_ZN6S709C24v166Ev");}
void  S709C2 ::v167(){vfunc_called(this, "_ZN6S709C24v167Ev");}
void  S709C2 ::v168(){vfunc_called(this, "_ZN6S709C24v168Ev");}
void  S709C2 ::v169(){vfunc_called(this, "_ZN6S709C24v169Ev");}
void  S709C2 ::v170(){vfunc_called(this, "_ZN6S709C24v170Ev");}
void  S709C2 ::v171(){vfunc_called(this, "_ZN6S709C24v171Ev");}
void  S709C2 ::v172(){vfunc_called(this, "_ZN6S709C24v172Ev");}
void  S709C2 ::v173(){vfunc_called(this, "_ZN6S709C24v173Ev");}
void  S709C2 ::v174(){vfunc_called(this, "_ZN6S709C24v174Ev");}
void  S709C2 ::v175(){vfunc_called(this, "_ZN6S709C24v175Ev");}
void  S709C2 ::v176(){vfunc_called(this, "_ZN6S709C24v176Ev");}
void  S709C2 ::v177(){vfunc_called(this, "_ZN6S709C24v177Ev");}
void  S709C2 ::v178(){vfunc_called(this, "_ZN6S709C24v178Ev");}
void  S709C2 ::v179(){vfunc_called(this, "_ZN6S709C24v179Ev");}
void  S709C2 ::v180(){vfunc_called(this, "_ZN6S709C24v180Ev");}
void  S709C2 ::v181(){vfunc_called(this, "_ZN6S709C24v181Ev");}
void  S709C2 ::v182(){vfunc_called(this, "_ZN6S709C24v182Ev");}
void  S709C2 ::v183(){vfunc_called(this, "_ZN6S709C24v183Ev");}
void  S709C2 ::v184(){vfunc_called(this, "_ZN6S709C24v184Ev");}
void  S709C2 ::v185(){vfunc_called(this, "_ZN6S709C24v185Ev");}
void  S709C2 ::v186(){vfunc_called(this, "_ZN6S709C24v186Ev");}
void  S709C2 ::v187(){vfunc_called(this, "_ZN6S709C24v187Ev");}
void  S709C2 ::v188(){vfunc_called(this, "_ZN6S709C24v188Ev");}
void  S709C2 ::v189(){vfunc_called(this, "_ZN6S709C24v189Ev");}
S709C2 ::S709C2(){ note_ctor("S709C2", this);} // tgen

static void Test_S709C2()
{
  extern Class_Descriptor cd_S709C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(94,137)];
    init_test(&cd_S709C2, buf);
    S709C2 *dp, &lv = *(dp=new (buf) S709C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(744,544), "sizeof(S709C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S709C2)");
    check_base_class_offset(lv, (S709C5*)(S709C4*)(S709C3*), 0, "S709C2");
    check_base_class_offset(lv, (S709C4*)(S709C3*), 0, "S709C2");
    check_base_class_offset(lv, (S709C3*), 0, "S709C2");
    check_field_offset(lv, s709c2f0, ABISELECT(464,352), "S709C2.s709c2f0");
    check_field_offset(lv, s709c2f1, ABISELECT(472,360), "S709C2.s709c2f1");
    check_field_offset(lv, s709c2f2, ABISELECT(544,396), "S709C2.s709c2f2");
    check_field_offset(lv, s709c2f3, ABISELECT(560,408), "S709C2.s709c2f3");
    check_field_offset(lv, s709c2f4, ABISELECT(576,420), "S709C2.s709c2f4");
    check_field_offset(lv, s709c2f5, ABISELECT(608,440), "S709C2.s709c2f5");
    set_bf_and_test(lv, s709c2f6, ABISELECT(612,444), 0, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f7, ABISELECT(612,444), 1, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f8, ABISELECT(612,444), 2, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f9, ABISELECT(612,444), 3, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f10, ABISELECT(612,444), 4, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f11, ABISELECT(612,444), 5, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f12, ABISELECT(612,444), 6, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f13, ABISELECT(612,444), 7, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f14, ABISELECT(613,445), 0, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f15, ABISELECT(613,445), 1, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f16, ABISELECT(613,445), 2, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f17, ABISELECT(613,445), 3, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f18, ABISELECT(613,445), 4, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f19, ABISELECT(613,445), 5, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f20, ABISELECT(613,445), 6, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f21, ABISELECT(613,445), 7, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f22, ABISELECT(614,446), 0, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f23, ABISELECT(614,446), 1, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f24, ABISELECT(614,446), 2, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f25, ABISELECT(614,446), 3, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f26, ABISELECT(614,446), 4, 1, 1, "S709C2");
    set_bf_and_test(lv, s709c2f27, ABISELECT(614,446), 5, 1, 1, "S709C2");
    check_field_offset(lv, s709c2f28, ABISELECT(616,448), "S709C2.s709c2f28");
    check_field_offset(lv, s709c2f29, ABISELECT(624,452), "S709C2.s709c2f29");
    check_field_offset(lv, s709c2f30, ABISELECT(628,456), "S709C2.s709c2f30");
    check_field_offset(lv, s709c2f31, ABISELECT(636,464), "S709C2.s709c2f31");
    check_field_offset(lv, s709c2f32, ABISELECT(644,472), "S709C2.s709c2f32");
    check_field_offset(lv, s709c2f33, ABISELECT(656,480), "S709C2.s709c2f33");
    check_field_offset(lv, s709c2f34, ABISELECT(664,484), "S709C2.s709c2f34");
    check_field_offset(lv, s709c2f35, ABISELECT(680,496), "S709C2.s709c2f35");
    check_field_offset(lv, s709c2f36, ABISELECT(696,508), "S709C2.s709c2f36");
    check_field_offset(lv, s709c2f37, ABISELECT(712,520), "S709C2.s709c2f37");
    check_field_offset(lv, s709c2f38, ABISELECT(728,532), "S709C2.s709c2f38");
    test_class_info(&lv, &cd_S709C2);
    dp->~S709C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS709C2(Test_S709C2, "S709C2", ABISELECT(744,544));

#else // __cplusplus

extern void _ZN6S709C2C1Ev();
extern void _ZN6S709C2D1Ev();
Name_Map name_map_S709C2[] = {
  NSPAIR(_ZN6S709C2C1Ev),
  NSPAIR(_ZN6S709C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S709C5;
extern VTBL_ENTRY _ZTI6S709C5[];
extern  VTBL_ENTRY _ZTV6S709C5[];
extern Class_Descriptor cd_S709C4;
extern VTBL_ENTRY _ZTI6S709C4[];
extern  VTBL_ENTRY _ZTV6S709C4[];
extern Class_Descriptor cd_S709C3;
extern VTBL_ENTRY _ZTI6S709C3[];
extern  VTBL_ENTRY _ZTV6S709C3[];
static Base_Class bases_S709C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S709C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S709C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S709C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S709C2[];
extern void _ZN6S709C2D1Ev();
extern void _ZN6S709C2D0Ev();
extern void _ZN6S709C52v9Ev();
extern void _ZN6S709C53v10Ev();
extern void _ZN6S709C53v11Ev();
extern void _ZN6S709C53v12Ev();
extern void _ZN6S709C53v13Ev();
extern void _ZN6S709C53v14Ev();
extern void _ZN6S709C53v15Ev();
extern void _ZN6S709C53v16Ev();
extern void _ZN6S709C53v17Ev();
extern void _ZN6S709C53v18Ev();
extern void _ZN6S709C53v19Ev();
extern void _ZN6S709C53v20Ev();
extern void _ZN6S709C53v21Ev();
extern void _ZN6S709C53v22Ev();
extern void _ZN6S709C53v23Ev();
extern void _ZN6S709C53v24Ev();
extern void _ZN6S709C53v25Ev();
extern void _ZN6S709C53v26Ev();
extern void _ZN6S709C53v27Ev();
extern void _ZN6S709C53v28Ev();
extern void _ZN6S709C53v29Ev();
extern void _ZN6S709C53v30Ev();
extern void _ZN6S709C53v31Ev();
extern void _ZN6S709C53v32Ev();
extern void _ZN6S709C53v33Ev();
extern void _ZN6S709C53v34Ev();
extern void _ZN6S709C53v35Ev();
extern void _ZN6S709C53v36Ev();
extern void _ZN6S709C53v37Ev();
extern void _ZN6S709C53v38Ev();
extern void _ZN6S709C53v39Ev();
extern void _ZN6S709C53v40Ev();
extern void _ZN6S709C53v41Ev();
extern void _ZN6S709C53v42Ev();
extern void _ZN6S709C53v43Ev();
extern void _ZN6S709C53v44Ev();
extern void _ZN6S709C53v45Ev();
extern void _ZN6S709C53v46Ev();
extern void _ZN6S709C53v47Ev();
extern void _ZN6S709C53v48Ev();
extern void _ZN6S709C53v49Ev();
extern void _ZN6S709C53v50Ev();
extern void _ZN6S709C53v51Ev();
extern void _ZN6S709C53v52Ev();
extern void _ZN6S709C53v53Ev();
extern void _ZN6S709C53v54Ev();
extern void _ZN6S709C53v55Ev();
extern void _ZN6S709C53v56Ev();
extern void _ZN6S709C53v57Ev();
extern void _ZN6S709C53v58Ev();
extern void _ZN6S709C53v59Ev();
extern void _ZN6S709C53v60Ev();
extern void _ZN6S709C53v61Ev();
extern void _ZN6S709C53v62Ev();
extern void _ZN6S709C53v63Ev();
extern void _ZN6S709C53v64Ev();
extern void _ZN6S709C53v65Ev();
extern void _ZN6S709C53v66Ev();
extern void _ZN6S709C53v67Ev();
extern void _ZN6S709C53v68Ev();
extern void _ZN6S709C53v69Ev();
extern void _ZN6S709C53v70Ev();
extern void _ZN6S709C53v71Ev();
extern void _ZN6S709C53v72Ev();
extern void _ZN6S709C43v73Ev();
extern void _ZN6S709C43v74Ev();
extern void _ZN6S709C33v75Ev();
extern void _ZN6S709C33v76Ev();
extern void _ZN6S709C33v77Ev();
extern void _ZN6S709C33v78Ev();
extern void _ZN6S709C33v79Ev();
extern void _ZN6S709C33v80Ev();
extern void _ZN6S709C33v81Ev();
extern void _ZN6S709C33v82Ev();
extern void _ZN6S709C33v83Ev();
extern void _ZN6S709C33v84Ev();
extern void _ZN6S709C33v85Ev();
extern void _ZN6S709C33v86Ev();
extern void _ZN6S709C33v87Ev();
extern void _ZN6S709C33v88Ev();
extern void _ZN6S709C33v89Ev();
extern void _ZN6S709C33v90Ev();
extern void _ZN6S709C33v91Ev();
extern void _ZN6S709C33v92Ev();
extern void _ZN6S709C33v93Ev();
extern void _ZN6S709C33v94Ev();
extern void _ZN6S709C33v95Ev();
extern void _ZN6S709C33v96Ev();
extern void _ZN6S709C33v97Ev();
extern void _ZN6S709C33v98Ev();
extern void _ZN6S709C33v99Ev();
extern void _ZN6S709C34v100Ev();
extern void _ZN6S709C34v101Ev();
extern void _ZN6S709C34v102Ev();
extern void _ZN6S709C34v103Ev();
extern void _ZN6S709C34v104Ev();
extern void _ZN6S709C34v105Ev();
extern void _ZN6S709C34v106Ev();
extern void _ZN6S709C34v107Ev();
extern void _ZN6S709C34v108Ev();
extern void _ZN6S709C34v109Ev();
extern void _ZN6S709C34v110Ev();
extern void _ZN6S709C34v111Ev();
extern void _ZN6S709C34v112Ev();
extern void _ZN6S709C34v113Ev();
extern void _ZN6S709C34v114Ev();
extern void _ZN6S709C34v115Ev();
extern void _ZN6S709C34v116Ev();
extern void _ZN6S709C34v117Ev();
extern void _ZN6S709C34v118Ev();
extern void _ZN6S709C34v119Ev();
extern void _ZN6S709C34v120Ev();
extern void _ZN6S709C34v121Ev();
extern void _ZN6S709C34v122Ev();
extern void _ZN6S709C34v123Ev();
extern void _ZN6S709C34v124Ev();
extern void _ZN6S709C34v125Ev();
extern void _ZN6S709C34v126Ev();
extern void _ZN6S709C34v127Ev();
extern void _ZN6S709C34v128Ev();
extern void _ZN6S709C34v129Ev();
extern void _ZN6S709C34v130Ev();
extern void _ZN6S709C34v131Ev();
extern void _ZN6S709C34v132Ev();
extern void _ZN6S709C34v133Ev();
extern void _ZN6S709C34v134Ev();
extern void _ZN6S709C34v135Ev();
extern void _ZN6S709C34v136Ev();
extern void _ZN6S709C34v137Ev();
extern void _ZN6S709C34v138Ev();
extern void _ZN6S709C34v139Ev();
extern void _ZN6S709C34v140Ev();
extern void _ZN6S709C34v141Ev();
extern void _ZN6S709C34v142Ev();
extern void _ZN6S709C34v143Ev();
extern void _ZN6S709C34v144Ev();
extern void _ZN6S709C34v145Ev();
extern void _ZN6S709C34v146Ev();
extern void _ZN6S709C34v147Ev();
extern void _ZN6S709C34v148Ev();
extern void _ZN6S709C34v149Ev();
extern void _ZN6S709C34v150Ev();
extern void _ZN6S709C24v151Ev();
extern void _ZN6S709C24v152Ev();
extern void _ZN6S709C24v153Ev();
extern void _ZN6S709C24v154Ev();
extern void _ZN6S709C24v155Ev();
extern void _ZN6S709C24v156Ev();
extern void _ZN6S709C24v157Ev();
extern void _ZN6S709C24v158Ev();
extern void _ZN6S709C24v159Ev();
extern void _ZN6S709C24v160Ev();
extern void _ZN6S709C24v161Ev();
extern void _ZN6S709C24v162Ev();
extern void _ZN6S709C24v163Ev();
extern void _ZN6S709C24v164Ev();
extern void _ZN6S709C24v165Ev();
extern void _ZN6S709C24v166Ev();
extern void _ZN6S709C24v167Ev();
extern void _ZN6S709C24v168Ev();
extern void _ZN6S709C24v169Ev();
extern void _ZN6S709C24v170Ev();
extern void _ZN6S709C24v171Ev();
extern void _ZN6S709C24v172Ev();
extern void _ZN6S709C24v173Ev();
extern void _ZN6S709C24v174Ev();
extern void _ZN6S709C24v175Ev();
extern void _ZN6S709C24v176Ev();
extern void _ZN6S709C24v177Ev();
extern void _ZN6S709C24v178Ev();
extern void _ZN6S709C24v179Ev();
extern void _ZN6S709C24v180Ev();
extern void _ZN6S709C24v181Ev();
extern void _ZN6S709C24v182Ev();
extern void _ZN6S709C24v183Ev();
extern void _ZN6S709C24v184Ev();
extern void _ZN6S709C24v185Ev();
extern void _ZN6S709C24v186Ev();
extern void _ZN6S709C24v187Ev();
extern void _ZN6S709C24v188Ev();
extern void _ZN6S709C24v189Ev();
static  VTBL_ENTRY vtc_S709C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S709C2[0]),
  (VTBL_ENTRY)&_ZN6S709C2D1Ev,
  (VTBL_ENTRY)&_ZN6S709C2D0Ev,
  (VTBL_ENTRY)&_ZN6S709C52v9Ev,
  (VTBL_ENTRY)&_ZN6S709C53v10Ev,
  (VTBL_ENTRY)&_ZN6S709C53v11Ev,
  (VTBL_ENTRY)&_ZN6S709C53v12Ev,
  (VTBL_ENTRY)&_ZN6S709C53v13Ev,
  (VTBL_ENTRY)&_ZN6S709C53v14Ev,
  (VTBL_ENTRY)&_ZN6S709C53v15Ev,
  (VTBL_ENTRY)&_ZN6S709C53v16Ev,
  (VTBL_ENTRY)&_ZN6S709C53v17Ev,
  (VTBL_ENTRY)&_ZN6S709C53v18Ev,
  (VTBL_ENTRY)&_ZN6S709C53v19Ev,
  (VTBL_ENTRY)&_ZN6S709C53v20Ev,
  (VTBL_ENTRY)&_ZN6S709C53v21Ev,
  (VTBL_ENTRY)&_ZN6S709C53v22Ev,
  (VTBL_ENTRY)&_ZN6S709C53v23Ev,
  (VTBL_ENTRY)&_ZN6S709C53v24Ev,
  (VTBL_ENTRY)&_ZN6S709C53v25Ev,
  (VTBL_ENTRY)&_ZN6S709C53v26Ev,
  (VTBL_ENTRY)&_ZN6S709C53v27Ev,
  (VTBL_ENTRY)&_ZN6S709C53v28Ev,
  (VTBL_ENTRY)&_ZN6S709C53v29Ev,
  (VTBL_ENTRY)&_ZN6S709C53v30Ev,
  (VTBL_ENTRY)&_ZN6S709C53v31Ev,
  (VTBL_ENTRY)&_ZN6S709C53v32Ev,
  (VTBL_ENTRY)&_ZN6S709C53v33Ev,
  (VTBL_ENTRY)&_ZN6S709C53v34Ev,
  (VTBL_ENTRY)&_ZN6S709C53v35Ev,
  (VTBL_ENTRY)&_ZN6S709C53v36Ev,
  (VTBL_ENTRY)&_ZN6S709C53v37Ev,
  (VTBL_ENTRY)&_ZN6S709C53v38Ev,
  (VTBL_ENTRY)&_ZN6S709C53v39Ev,
  (VTBL_ENTRY)&_ZN6S709C53v40Ev,
  (VTBL_ENTRY)&_ZN6S709C53v41Ev,
  (VTBL_ENTRY)&_ZN6S709C53v42Ev,
  (VTBL_ENTRY)&_ZN6S709C53v43Ev,
  (VTBL_ENTRY)&_ZN6S709C53v44Ev,
  (VTBL_ENTRY)&_ZN6S709C53v45Ev,
  (VTBL_ENTRY)&_ZN6S709C53v46Ev,
  (VTBL_ENTRY)&_ZN6S709C53v47Ev,
  (VTBL_ENTRY)&_ZN6S709C53v48Ev,
  (VTBL_ENTRY)&_ZN6S709C53v49Ev,
  (VTBL_ENTRY)&_ZN6S709C53v50Ev,
  (VTBL_ENTRY)&_ZN6S709C53v51Ev,
  (VTBL_ENTRY)&_ZN6S709C53v52Ev,
  (VTBL_ENTRY)&_ZN6S709C53v53Ev,
  (VTBL_ENTRY)&_ZN6S709C53v54Ev,
  (VTBL_ENTRY)&_ZN6S709C53v55Ev,
  (VTBL_ENTRY)&_ZN6S709C53v56Ev,
  (VTBL_ENTRY)&_ZN6S709C53v57Ev,
  (VTBL_ENTRY)&_ZN6S709C53v58Ev,
  (VTBL_ENTRY)&_ZN6S709C53v59Ev,
  (VTBL_ENTRY)&_ZN6S709C53v60Ev,
  (VTBL_ENTRY)&_ZN6S709C53v61Ev,
  (VTBL_ENTRY)&_ZN6S709C53v62Ev,
  (VTBL_ENTRY)&_ZN6S709C53v63Ev,
  (VTBL_ENTRY)&_ZN6S709C53v64Ev,
  (VTBL_ENTRY)&_ZN6S709C53v65Ev,
  (VTBL_ENTRY)&_ZN6S709C53v66Ev,
  (VTBL_ENTRY)&_ZN6S709C53v67Ev,
  (VTBL_ENTRY)&_ZN6S709C53v68Ev,
  (VTBL_ENTRY)&_ZN6S709C53v69Ev,
  (VTBL_ENTRY)&_ZN6S709C53v70Ev,
  (VTBL_ENTRY)&_ZN6S709C53v71Ev,
  (VTBL_ENTRY)&_ZN6S709C53v72Ev,
  (VTBL_ENTRY)&_ZN6S709C43v73Ev,
  (VTBL_ENTRY)&_ZN6S709C43v74Ev,
  (VTBL_ENTRY)&_ZN6S709C33v75Ev,
  (VTBL_ENTRY)&_ZN6S709C33v76Ev,
  (VTBL_ENTRY)&_ZN6S709C33v77Ev,
  (VTBL_ENTRY)&_ZN6S709C33v78Ev,
  (VTBL_ENTRY)&_ZN6S709C33v79Ev,
  (VTBL_ENTRY)&_ZN6S709C33v80Ev,
  (VTBL_ENTRY)&_ZN6S709C33v81Ev,
  (VTBL_ENTRY)&_ZN6S709C33v82Ev,
  (VTBL_ENTRY)&_ZN6S709C33v83Ev,
  (VTBL_ENTRY)&_ZN6S709C33v84Ev,
  (VTBL_ENTRY)&_ZN6S709C33v85Ev,
  (VTBL_ENTRY)&_ZN6S709C33v86Ev,
  (VTBL_ENTRY)&_ZN6S709C33v87Ev,
  (VTBL_ENTRY)&_ZN6S709C33v88Ev,
  (VTBL_ENTRY)&_ZN6S709C33v89Ev,
  (VTBL_ENTRY)&_ZN6S709C33v90Ev,
  (VTBL_ENTRY)&_ZN6S709C33v91Ev,
  (VTBL_ENTRY)&_ZN6S709C33v92Ev,
  (VTBL_ENTRY)&_ZN6S709C33v93Ev,
  (VTBL_ENTRY)&_ZN6S709C33v94Ev,
  (VTBL_ENTRY)&_ZN6S709C33v95Ev,
  (VTBL_ENTRY)&_ZN6S709C33v96Ev,
  (VTBL_ENTRY)&_ZN6S709C33v97Ev,
  (VTBL_ENTRY)&_ZN6S709C33v98Ev,
  (VTBL_ENTRY)&_ZN6S709C33v99Ev,
  (VTBL_ENTRY)&_ZN6S709C34v100Ev,
  (VTBL_ENTRY)&_ZN6S709C34v101Ev,
  (VTBL_ENTRY)&_ZN6S709C34v102Ev,
  (VTBL_ENTRY)&_ZN6S709C34v103Ev,
  (VTBL_ENTRY)&_ZN6S709C34v104Ev,
  (VTBL_ENTRY)&_ZN6S709C34v105Ev,
  (VTBL_ENTRY)&_ZN6S709C34v106Ev,
  (VTBL_ENTRY)&_ZN6S709C34v107Ev,
  (VTBL_ENTRY)&_ZN6S709C34v108Ev,
  (VTBL_ENTRY)&_ZN6S709C34v109Ev,
  (VTBL_ENTRY)&_ZN6S709C34v110Ev,
  (VTBL_ENTRY)&_ZN6S709C34v111Ev,
  (VTBL_ENTRY)&_ZN6S709C34v112Ev,
  (VTBL_ENTRY)&_ZN6S709C34v113Ev,
  (VTBL_ENTRY)&_ZN6S709C34v114Ev,
  (VTBL_ENTRY)&_ZN6S709C34v115Ev,
  (VTBL_ENTRY)&_ZN6S709C34v116Ev,
  (VTBL_ENTRY)&_ZN6S709C34v117Ev,
  (VTBL_ENTRY)&_ZN6S709C34v118Ev,
  (VTBL_ENTRY)&_ZN6S709C34v119Ev,
  (VTBL_ENTRY)&_ZN6S709C34v120Ev,
  (VTBL_ENTRY)&_ZN6S709C34v121Ev,
  (VTBL_ENTRY)&_ZN6S709C34v122Ev,
  (VTBL_ENTRY)&_ZN6S709C34v123Ev,
  (VTBL_ENTRY)&_ZN6S709C34v124Ev,
  (VTBL_ENTRY)&_ZN6S709C34v125Ev,
  (VTBL_ENTRY)&_ZN6S709C34v126Ev,
  (VTBL_ENTRY)&_ZN6S709C34v127Ev,
  (VTBL_ENTRY)&_ZN6S709C34v128Ev,
  (VTBL_ENTRY)&_ZN6S709C34v129Ev,
  (VTBL_ENTRY)&_ZN6S709C34v130Ev,
  (VTBL_ENTRY)&_ZN6S709C34v131Ev,
  (VTBL_ENTRY)&_ZN6S709C34v132Ev,
  (VTBL_ENTRY)&_ZN6S709C34v133Ev,
  (VTBL_ENTRY)&_ZN6S709C34v134Ev,
  (VTBL_ENTRY)&_ZN6S709C34v135Ev,
  (VTBL_ENTRY)&_ZN6S709C34v136Ev,
  (VTBL_ENTRY)&_ZN6S709C34v137Ev,
  (VTBL_ENTRY)&_ZN6S709C34v138Ev,
  (VTBL_ENTRY)&_ZN6S709C34v139Ev,
  (VTBL_ENTRY)&_ZN6S709C34v140Ev,
  (VTBL_ENTRY)&_ZN6S709C34v141Ev,
  (VTBL_ENTRY)&_ZN6S709C34v142Ev,
  (VTBL_ENTRY)&_ZN6S709C34v143Ev,
  (VTBL_ENTRY)&_ZN6S709C34v144Ev,
  (VTBL_ENTRY)&_ZN6S709C34v145Ev,
  (VTBL_ENTRY)&_ZN6S709C34v146Ev,
  (VTBL_ENTRY)&_ZN6S709C34v147Ev,
  (VTBL_ENTRY)&_ZN6S709C34v148Ev,
  (VTBL_ENTRY)&_ZN6S709C34v149Ev,
  (VTBL_ENTRY)&_ZN6S709C34v150Ev,
  (VTBL_ENTRY)&_ZN6S709C24v151Ev,
  (VTBL_ENTRY)&_ZN6S709C24v152Ev,
  (VTBL_ENTRY)&_ZN6S709C24v153Ev,
  (VTBL_ENTRY)&_ZN6S709C24v154Ev,
  (VTBL_ENTRY)&_ZN6S709C24v155Ev,
  (VTBL_ENTRY)&_ZN6S709C24v156Ev,
  (VTBL_ENTRY)&_ZN6S709C24v157Ev,
  (VTBL_ENTRY)&_ZN6S709C24v158Ev,
  (VTBL_ENTRY)&_ZN6S709C24v159Ev,
  (VTBL_ENTRY)&_ZN6S709C24v160Ev,
  (VTBL_ENTRY)&_ZN6S709C24v161Ev,
  (VTBL_ENTRY)&_ZN6S709C24v162Ev,
  (VTBL_ENTRY)&_ZN6S709C24v163Ev,
  (VTBL_ENTRY)&_ZN6S709C24v164Ev,
  (VTBL_ENTRY)&_ZN6S709C24v165Ev,
  (VTBL_ENTRY)&_ZN6S709C24v166Ev,
  (VTBL_ENTRY)&_ZN6S709C24v167Ev,
  (VTBL_ENTRY)&_ZN6S709C24v168Ev,
  (VTBL_ENTRY)&_ZN6S709C24v169Ev,
  (VTBL_ENTRY)&_ZN6S709C24v170Ev,
  (VTBL_ENTRY)&_ZN6S709C24v171Ev,
  (VTBL_ENTRY)&_ZN6S709C24v172Ev,
  (VTBL_ENTRY)&_ZN6S709C24v173Ev,
  (VTBL_ENTRY)&_ZN6S709C24v174Ev,
  (VTBL_ENTRY)&_ZN6S709C24v175Ev,
  (VTBL_ENTRY)&_ZN6S709C24v176Ev,
  (VTBL_ENTRY)&_ZN6S709C24v177Ev,
  (VTBL_ENTRY)&_ZN6S709C24v178Ev,
  (VTBL_ENTRY)&_ZN6S709C24v179Ev,
  (VTBL_ENTRY)&_ZN6S709C24v180Ev,
  (VTBL_ENTRY)&_ZN6S709C24v181Ev,
  (VTBL_ENTRY)&_ZN6S709C24v182Ev,
  (VTBL_ENTRY)&_ZN6S709C24v183Ev,
  (VTBL_ENTRY)&_ZN6S709C24v184Ev,
  (VTBL_ENTRY)&_ZN6S709C24v185Ev,
  (VTBL_ENTRY)&_ZN6S709C24v186Ev,
  (VTBL_ENTRY)&_ZN6S709C24v187Ev,
  (VTBL_ENTRY)&_ZN6S709C24v188Ev,
  (VTBL_ENTRY)&_ZN6S709C24v189Ev,
};
extern VTBL_ENTRY _ZTI6S709C2[];
extern  VTBL_ENTRY _ZTV6S709C2[];
Class_Descriptor cd_S709C2 = {  "S709C2", // class name
  bases_S709C2, 3,
  &(vtc_S709C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(744,544), // object size
  NSPAIRA(_ZTI6S709C2),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV6S709C2),185, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S709C26_nt  {
  virtual  ~S709C26_nt(); // _ZN10S709C26_ntD1Ev
  virtual void  v190(); // _ZN10S709C26_nt4v190Ev
  virtual void  v191(); // _ZN10S709C26_nt4v191Ev
  virtual void  v192(); // _ZN10S709C26_nt4v192Ev
  virtual void  v193(); // _ZN10S709C26_nt4v193Ev
  virtual void  v194(); // _ZN10S709C26_nt4v194Ev
  virtual void  v195(); // _ZN10S709C26_nt4v195Ev
  virtual void  v196(); // _ZN10S709C26_nt4v196Ev
  S709C26_nt(); // tgen
};
//SIG(-1 S709C26_nt) C1{ vd v1 v2 v3 v4 v5 v6 v7}


 S709C26_nt ::~S709C26_nt(){ note_dtor("S709C26_nt", this);}
void  S709C26_nt ::v190(){vfunc_called(this, "_ZN10S709C26_nt4v190Ev");}
void  S709C26_nt ::v191(){vfunc_called(this, "_ZN10S709C26_nt4v191Ev");}
void  S709C26_nt ::v192(){vfunc_called(this, "_ZN10S709C26_nt4v192Ev");}
void  S709C26_nt ::v193(){vfunc_called(this, "_ZN10S709C26_nt4v193Ev");}
void  S709C26_nt ::v194(){vfunc_called(this, "_ZN10S709C26_nt4v194Ev");}
void  S709C26_nt ::v195(){vfunc_called(this, "_ZN10S709C26_nt4v195Ev");}
void  S709C26_nt ::v196(){vfunc_called(this, "_ZN10S709C26_nt4v196Ev");}
S709C26_nt ::S709C26_nt(){ note_ctor("S709C26_nt", this);} // tgen

//skip512 S709C26_nt

#else // __cplusplus

extern void _ZN10S709C26_ntC1Ev();
extern void _ZN10S709C26_ntD1Ev();
Name_Map name_map_S709C26_nt[] = {
  NSPAIR(_ZN10S709C26_ntC1Ev),
  NSPAIR(_ZN10S709C26_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S709C26_nt[];
extern void _ZN10S709C26_ntD1Ev();
extern void _ZN10S709C26_ntD0Ev();
extern void _ZN10S709C26_nt4v190Ev();
extern void _ZN10S709C26_nt4v191Ev();
extern void _ZN10S709C26_nt4v192Ev();
extern void _ZN10S709C26_nt4v193Ev();
extern void _ZN10S709C26_nt4v194Ev();
extern void _ZN10S709C26_nt4v195Ev();
extern void _ZN10S709C26_nt4v196Ev();
static  VTBL_ENTRY vtc_S709C26_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S709C26_nt[0]),
  (VTBL_ENTRY)&_ZN10S709C26_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S709C26_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v190Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v191Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v192Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v193Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v194Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v195Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v196Ev,
};
extern VTBL_ENTRY _ZTI10S709C26_nt[];
VTBL_ENTRY *P__ZTI10S709C26_nt = _ZTI10S709C26_nt; 
extern  VTBL_ENTRY _ZTV10S709C26_nt[];
Class_Descriptor cd_S709C26_nt = {  "S709C26_nt", // class name
  0,0,//no base classes
  &(vtc_S709C26_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI10S709C26_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S709C26_nt),11, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S709C1  : S709C2 , S709C26_nt {
  virtual  ~S709C1(); // _ZN6S709C1D1Ev
  virtual void  v1(); // _ZN6S709C12v1Ev
  virtual void  v2(); // _ZN6S709C12v2Ev
  virtual void  v3(); // _ZN6S709C12v3Ev
  virtual void  v4(); // _ZN6S709C12v4Ev
  virtual void  v5(); // _ZN6S709C12v5Ev
  virtual void  v6(); // _ZN6S709C12v6Ev
  virtual void  v7(); // _ZN6S709C12v7Ev
  virtual void  v8(); // _ZN6S709C12v8Ev
  S709C1(); // tgen
};
//SIG(1 S709C1) C1{ BC2{ BC3{ BC4{ BC5{ vd v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55 v56 v57 v58 v59 v60 v61 v62 v63 v64 v65 v66 v67 v68 v69 v70 v71 v72 Fi FL Fp[4] Fi[2] Fp FC6{ m Fi[2]} Fp[2]} vd v73 v74} vd v75 v76 v77 v78 v79 v80 v81 v82 v83 v84 v85 v86 v87 v88 v89 v90 v91 v92 v93 v94 v95 v96 v97 v98 v99 v100 v101 v102 v103 v104 v105 v106 v107 v108 v109 v110 v111 v112 v113 v114 v115 v116 v117 v118 v119 v120 v121 v122 v123 v124 v125 v126 v127 v128 v129 v130 v131 v132 v133 v134 v135 v136 v137 v138 v139 v140 v141 v142 v143 v144 v145 v146 v147 v148 v149 v150 FC7{ m Fi[4] Fc[9]} Fi Fi:1 Fi:1 Fi:1 Fi:1 FC8{ BC9{ BC10{ m Fp Fi[2]}}} FC11{ BC12{ BC10}} Fp FC13{ BC14{ BC10}} FC13 FC15{ BC16{ BC10}} FC17{ BC18{ BC10}} Fc Fi Fp FC6 FC6 FC6 FC6 FC6 FC6 FC19{ m Fp FC20{ m Fi[2]}} FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19 FC19} vd v151 v152 v153 v154 v155 v156 v157 v158 v159 v160 v161 v162 v163 v164 v165 v166 v167 v168 v169 v170 v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187 v188 v189 FC6 Fp[9] FC21{ BC22{ BC10}} FC8 FC23{ BC24{ m FC25{ BC10} Fp Fi}} Fi Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fi:1 Fp Fc[2] FC20 FC6 FC6 Fp FC19 FC19 FC19 FC19 FC19} BC26{ vd v190 v191 v192 v193 v194 v195 v196} vd v1 v2 v3 v4 v5 v6 v7 v8}


 S709C1 ::~S709C1(){ note_dtor("S709C1", this);}
void  S709C1 ::v1(){vfunc_called(this, "_ZN6S709C12v1Ev");}
void  S709C1 ::v2(){vfunc_called(this, "_ZN6S709C12v2Ev");}
void  S709C1 ::v3(){vfunc_called(this, "_ZN6S709C12v3Ev");}
void  S709C1 ::v4(){vfunc_called(this, "_ZN6S709C12v4Ev");}
void  S709C1 ::v5(){vfunc_called(this, "_ZN6S709C12v5Ev");}
void  S709C1 ::v6(){vfunc_called(this, "_ZN6S709C12v6Ev");}
void  S709C1 ::v7(){vfunc_called(this, "_ZN6S709C12v7Ev");}
void  S709C1 ::v8(){vfunc_called(this, "_ZN6S709C12v8Ev");}
S709C1 ::S709C1(){ note_ctor("S709C1", this);} // tgen

static void Test_S709C1()
{
  extern Class_Descriptor cd_S709C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(95,138)];
    init_test(&cd_S709C1, buf);
    S709C1 *dp, &lv = *(dp=new (buf) S709C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(752,548), "sizeof(S709C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S709C1)");
    check_base_class_offset(lv, (S709C5*)(S709C4*)(S709C3*)(S709C2*), 0, "S709C1");
    check_base_class_offset(lv, (S709C4*)(S709C3*)(S709C2*), 0, "S709C1");
    check_base_class_offset(lv, (S709C3*)(S709C2*), 0, "S709C1");
    check_base_class_offset(lv, (S709C2*), 0, "S709C1");
    check_base_class_offset(lv, (S709C26_nt*), ABISELECT(744,544), "S709C1");
    test_class_info(&lv, &cd_S709C1);
    dp->~S709C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS709C1(Test_S709C1, "S709C1", ABISELECT(752,548));

#else // __cplusplus

extern void _ZN6S709C1C1Ev();
extern void _ZN6S709C1D1Ev();
Name_Map name_map_S709C1[] = {
  NSPAIR(_ZN6S709C1C1Ev),
  NSPAIR(_ZN6S709C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S709C5;
extern VTBL_ENTRY _ZTI6S709C5[];
extern  VTBL_ENTRY _ZTV6S709C5[];
extern Class_Descriptor cd_S709C4;
extern VTBL_ENTRY _ZTI6S709C4[];
extern  VTBL_ENTRY _ZTV6S709C4[];
extern Class_Descriptor cd_S709C3;
extern VTBL_ENTRY _ZTI6S709C3[];
extern  VTBL_ENTRY _ZTV6S709C3[];
extern Class_Descriptor cd_S709C2;
extern VTBL_ENTRY _ZTI6S709C2[];
extern  VTBL_ENTRY _ZTV6S709C2[];
extern Class_Descriptor cd_S709C26_nt;
extern VTBL_ENTRY _ZTI10S709C26_nt[];
extern  VTBL_ENTRY _ZTV10S709C26_nt[];
static Base_Class bases_S709C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S709C5,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S709C4,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S709C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    3, //immediately_derived
  0, 0},
  {&cd_S709C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    4, //init_seq
    -1, //immediately_derived
  1, 0},
  {&cd_S709C26_nt,    ABISELECT(744,544), //bcp->offset
    193, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    5, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI6S709C1[];
extern void _ZN6S709C1D1Ev();
extern void _ZN6S709C1D0Ev();
extern void _ZN6S709C52v9Ev();
extern void _ZN6S709C53v10Ev();
extern void _ZN6S709C53v11Ev();
extern void _ZN6S709C53v12Ev();
extern void _ZN6S709C53v13Ev();
extern void _ZN6S709C53v14Ev();
extern void _ZN6S709C53v15Ev();
extern void _ZN6S709C53v16Ev();
extern void _ZN6S709C53v17Ev();
extern void _ZN6S709C53v18Ev();
extern void _ZN6S709C53v19Ev();
extern void _ZN6S709C53v20Ev();
extern void _ZN6S709C53v21Ev();
extern void _ZN6S709C53v22Ev();
extern void _ZN6S709C53v23Ev();
extern void _ZN6S709C53v24Ev();
extern void _ZN6S709C53v25Ev();
extern void _ZN6S709C53v26Ev();
extern void _ZN6S709C53v27Ev();
extern void _ZN6S709C53v28Ev();
extern void _ZN6S709C53v29Ev();
extern void _ZN6S709C53v30Ev();
extern void _ZN6S709C53v31Ev();
extern void _ZN6S709C53v32Ev();
extern void _ZN6S709C53v33Ev();
extern void _ZN6S709C53v34Ev();
extern void _ZN6S709C53v35Ev();
extern void _ZN6S709C53v36Ev();
extern void _ZN6S709C53v37Ev();
extern void _ZN6S709C53v38Ev();
extern void _ZN6S709C53v39Ev();
extern void _ZN6S709C53v40Ev();
extern void _ZN6S709C53v41Ev();
extern void _ZN6S709C53v42Ev();
extern void _ZN6S709C53v43Ev();
extern void _ZN6S709C53v44Ev();
extern void _ZN6S709C53v45Ev();
extern void _ZN6S709C53v46Ev();
extern void _ZN6S709C53v47Ev();
extern void _ZN6S709C53v48Ev();
extern void _ZN6S709C53v49Ev();
extern void _ZN6S709C53v50Ev();
extern void _ZN6S709C53v51Ev();
extern void _ZN6S709C53v52Ev();
extern void _ZN6S709C53v53Ev();
extern void _ZN6S709C53v54Ev();
extern void _ZN6S709C53v55Ev();
extern void _ZN6S709C53v56Ev();
extern void _ZN6S709C53v57Ev();
extern void _ZN6S709C53v58Ev();
extern void _ZN6S709C53v59Ev();
extern void _ZN6S709C53v60Ev();
extern void _ZN6S709C53v61Ev();
extern void _ZN6S709C53v62Ev();
extern void _ZN6S709C53v63Ev();
extern void _ZN6S709C53v64Ev();
extern void _ZN6S709C53v65Ev();
extern void _ZN6S709C53v66Ev();
extern void _ZN6S709C53v67Ev();
extern void _ZN6S709C53v68Ev();
extern void _ZN6S709C53v69Ev();
extern void _ZN6S709C53v70Ev();
extern void _ZN6S709C53v71Ev();
extern void _ZN6S709C53v72Ev();
extern void _ZN6S709C43v73Ev();
extern void _ZN6S709C43v74Ev();
extern void _ZN6S709C33v75Ev();
extern void _ZN6S709C33v76Ev();
extern void _ZN6S709C33v77Ev();
extern void _ZN6S709C33v78Ev();
extern void _ZN6S709C33v79Ev();
extern void _ZN6S709C33v80Ev();
extern void _ZN6S709C33v81Ev();
extern void _ZN6S709C33v82Ev();
extern void _ZN6S709C33v83Ev();
extern void _ZN6S709C33v84Ev();
extern void _ZN6S709C33v85Ev();
extern void _ZN6S709C33v86Ev();
extern void _ZN6S709C33v87Ev();
extern void _ZN6S709C33v88Ev();
extern void _ZN6S709C33v89Ev();
extern void _ZN6S709C33v90Ev();
extern void _ZN6S709C33v91Ev();
extern void _ZN6S709C33v92Ev();
extern void _ZN6S709C33v93Ev();
extern void _ZN6S709C33v94Ev();
extern void _ZN6S709C33v95Ev();
extern void _ZN6S709C33v96Ev();
extern void _ZN6S709C33v97Ev();
extern void _ZN6S709C33v98Ev();
extern void _ZN6S709C33v99Ev();
extern void _ZN6S709C34v100Ev();
extern void _ZN6S709C34v101Ev();
extern void _ZN6S709C34v102Ev();
extern void _ZN6S709C34v103Ev();
extern void _ZN6S709C34v104Ev();
extern void _ZN6S709C34v105Ev();
extern void _ZN6S709C34v106Ev();
extern void _ZN6S709C34v107Ev();
extern void _ZN6S709C34v108Ev();
extern void _ZN6S709C34v109Ev();
extern void _ZN6S709C34v110Ev();
extern void _ZN6S709C34v111Ev();
extern void _ZN6S709C34v112Ev();
extern void _ZN6S709C34v113Ev();
extern void _ZN6S709C34v114Ev();
extern void _ZN6S709C34v115Ev();
extern void _ZN6S709C34v116Ev();
extern void _ZN6S709C34v117Ev();
extern void _ZN6S709C34v118Ev();
extern void _ZN6S709C34v119Ev();
extern void _ZN6S709C34v120Ev();
extern void _ZN6S709C34v121Ev();
extern void _ZN6S709C34v122Ev();
extern void _ZN6S709C34v123Ev();
extern void _ZN6S709C34v124Ev();
extern void _ZN6S709C34v125Ev();
extern void _ZN6S709C34v126Ev();
extern void _ZN6S709C34v127Ev();
extern void _ZN6S709C34v128Ev();
extern void _ZN6S709C34v129Ev();
extern void _ZN6S709C34v130Ev();
extern void _ZN6S709C34v131Ev();
extern void _ZN6S709C34v132Ev();
extern void _ZN6S709C34v133Ev();
extern void _ZN6S709C34v134Ev();
extern void _ZN6S709C34v135Ev();
extern void _ZN6S709C34v136Ev();
extern void _ZN6S709C34v137Ev();
extern void _ZN6S709C34v138Ev();
extern void _ZN6S709C34v139Ev();
extern void _ZN6S709C34v140Ev();
extern void _ZN6S709C34v141Ev();
extern void _ZN6S709C34v142Ev();
extern void _ZN6S709C34v143Ev();
extern void _ZN6S709C34v144Ev();
extern void _ZN6S709C34v145Ev();
extern void _ZN6S709C34v146Ev();
extern void _ZN6S709C34v147Ev();
extern void _ZN6S709C34v148Ev();
extern void _ZN6S709C34v149Ev();
extern void _ZN6S709C34v150Ev();
extern void _ZN6S709C24v151Ev();
extern void _ZN6S709C24v152Ev();
extern void _ZN6S709C24v153Ev();
extern void _ZN6S709C24v154Ev();
extern void _ZN6S709C24v155Ev();
extern void _ZN6S709C24v156Ev();
extern void _ZN6S709C24v157Ev();
extern void _ZN6S709C24v158Ev();
extern void _ZN6S709C24v159Ev();
extern void _ZN6S709C24v160Ev();
extern void _ZN6S709C24v161Ev();
extern void _ZN6S709C24v162Ev();
extern void _ZN6S709C24v163Ev();
extern void _ZN6S709C24v164Ev();
extern void _ZN6S709C24v165Ev();
extern void _ZN6S709C24v166Ev();
extern void _ZN6S709C24v167Ev();
extern void _ZN6S709C24v168Ev();
extern void _ZN6S709C24v169Ev();
extern void _ZN6S709C24v170Ev();
extern void _ZN6S709C24v171Ev();
extern void _ZN6S709C24v172Ev();
extern void _ZN6S709C24v173Ev();
extern void _ZN6S709C24v174Ev();
extern void _ZN6S709C24v175Ev();
extern void _ZN6S709C24v176Ev();
extern void _ZN6S709C24v177Ev();
extern void _ZN6S709C24v178Ev();
extern void _ZN6S709C24v179Ev();
extern void _ZN6S709C24v180Ev();
extern void _ZN6S709C24v181Ev();
extern void _ZN6S709C24v182Ev();
extern void _ZN6S709C24v183Ev();
extern void _ZN6S709C24v184Ev();
extern void _ZN6S709C24v185Ev();
extern void _ZN6S709C24v186Ev();
extern void _ZN6S709C24v187Ev();
extern void _ZN6S709C24v188Ev();
extern void _ZN6S709C24v189Ev();
extern void _ZN6S709C12v1Ev();
extern void _ZN6S709C12v2Ev();
extern void _ZN6S709C12v3Ev();
extern void _ZN6S709C12v4Ev();
extern void _ZN6S709C12v5Ev();
extern void _ZN6S709C12v6Ev();
extern void _ZN6S709C12v7Ev();
extern void _ZN6S709C12v8Ev();
extern void ABISELECT(_ZThn744_N6S709C1D1Ev,_ZThn544_N6S709C1D1Ev)();
extern void ABISELECT(_ZThn744_N6S709C1D0Ev,_ZThn544_N6S709C1D0Ev)();
extern void _ZN10S709C26_nt4v190Ev();
extern void _ZN10S709C26_nt4v191Ev();
extern void _ZN10S709C26_nt4v192Ev();
extern void _ZN10S709C26_nt4v193Ev();
extern void _ZN10S709C26_nt4v194Ev();
extern void _ZN10S709C26_nt4v195Ev();
extern void _ZN10S709C26_nt4v196Ev();
static  VTBL_ENTRY vtc_S709C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI6S709C1[0]),
  (VTBL_ENTRY)&_ZN6S709C1D1Ev,
  (VTBL_ENTRY)&_ZN6S709C1D0Ev,
  (VTBL_ENTRY)&_ZN6S709C52v9Ev,
  (VTBL_ENTRY)&_ZN6S709C53v10Ev,
  (VTBL_ENTRY)&_ZN6S709C53v11Ev,
  (VTBL_ENTRY)&_ZN6S709C53v12Ev,
  (VTBL_ENTRY)&_ZN6S709C53v13Ev,
  (VTBL_ENTRY)&_ZN6S709C53v14Ev,
  (VTBL_ENTRY)&_ZN6S709C53v15Ev,
  (VTBL_ENTRY)&_ZN6S709C53v16Ev,
  (VTBL_ENTRY)&_ZN6S709C53v17Ev,
  (VTBL_ENTRY)&_ZN6S709C53v18Ev,
  (VTBL_ENTRY)&_ZN6S709C53v19Ev,
  (VTBL_ENTRY)&_ZN6S709C53v20Ev,
  (VTBL_ENTRY)&_ZN6S709C53v21Ev,
  (VTBL_ENTRY)&_ZN6S709C53v22Ev,
  (VTBL_ENTRY)&_ZN6S709C53v23Ev,
  (VTBL_ENTRY)&_ZN6S709C53v24Ev,
  (VTBL_ENTRY)&_ZN6S709C53v25Ev,
  (VTBL_ENTRY)&_ZN6S709C53v26Ev,
  (VTBL_ENTRY)&_ZN6S709C53v27Ev,
  (VTBL_ENTRY)&_ZN6S709C53v28Ev,
  (VTBL_ENTRY)&_ZN6S709C53v29Ev,
  (VTBL_ENTRY)&_ZN6S709C53v30Ev,
  (VTBL_ENTRY)&_ZN6S709C53v31Ev,
  (VTBL_ENTRY)&_ZN6S709C53v32Ev,
  (VTBL_ENTRY)&_ZN6S709C53v33Ev,
  (VTBL_ENTRY)&_ZN6S709C53v34Ev,
  (VTBL_ENTRY)&_ZN6S709C53v35Ev,
  (VTBL_ENTRY)&_ZN6S709C53v36Ev,
  (VTBL_ENTRY)&_ZN6S709C53v37Ev,
  (VTBL_ENTRY)&_ZN6S709C53v38Ev,
  (VTBL_ENTRY)&_ZN6S709C53v39Ev,
  (VTBL_ENTRY)&_ZN6S709C53v40Ev,
  (VTBL_ENTRY)&_ZN6S709C53v41Ev,
  (VTBL_ENTRY)&_ZN6S709C53v42Ev,
  (VTBL_ENTRY)&_ZN6S709C53v43Ev,
  (VTBL_ENTRY)&_ZN6S709C53v44Ev,
  (VTBL_ENTRY)&_ZN6S709C53v45Ev,
  (VTBL_ENTRY)&_ZN6S709C53v46Ev,
  (VTBL_ENTRY)&_ZN6S709C53v47Ev,
  (VTBL_ENTRY)&_ZN6S709C53v48Ev,
  (VTBL_ENTRY)&_ZN6S709C53v49Ev,
  (VTBL_ENTRY)&_ZN6S709C53v50Ev,
  (VTBL_ENTRY)&_ZN6S709C53v51Ev,
  (VTBL_ENTRY)&_ZN6S709C53v52Ev,
  (VTBL_ENTRY)&_ZN6S709C53v53Ev,
  (VTBL_ENTRY)&_ZN6S709C53v54Ev,
  (VTBL_ENTRY)&_ZN6S709C53v55Ev,
  (VTBL_ENTRY)&_ZN6S709C53v56Ev,
  (VTBL_ENTRY)&_ZN6S709C53v57Ev,
  (VTBL_ENTRY)&_ZN6S709C53v58Ev,
  (VTBL_ENTRY)&_ZN6S709C53v59Ev,
  (VTBL_ENTRY)&_ZN6S709C53v60Ev,
  (VTBL_ENTRY)&_ZN6S709C53v61Ev,
  (VTBL_ENTRY)&_ZN6S709C53v62Ev,
  (VTBL_ENTRY)&_ZN6S709C53v63Ev,
  (VTBL_ENTRY)&_ZN6S709C53v64Ev,
  (VTBL_ENTRY)&_ZN6S709C53v65Ev,
  (VTBL_ENTRY)&_ZN6S709C53v66Ev,
  (VTBL_ENTRY)&_ZN6S709C53v67Ev,
  (VTBL_ENTRY)&_ZN6S709C53v68Ev,
  (VTBL_ENTRY)&_ZN6S709C53v69Ev,
  (VTBL_ENTRY)&_ZN6S709C53v70Ev,
  (VTBL_ENTRY)&_ZN6S709C53v71Ev,
  (VTBL_ENTRY)&_ZN6S709C53v72Ev,
  (VTBL_ENTRY)&_ZN6S709C43v73Ev,
  (VTBL_ENTRY)&_ZN6S709C43v74Ev,
  (VTBL_ENTRY)&_ZN6S709C33v75Ev,
  (VTBL_ENTRY)&_ZN6S709C33v76Ev,
  (VTBL_ENTRY)&_ZN6S709C33v77Ev,
  (VTBL_ENTRY)&_ZN6S709C33v78Ev,
  (VTBL_ENTRY)&_ZN6S709C33v79Ev,
  (VTBL_ENTRY)&_ZN6S709C33v80Ev,
  (VTBL_ENTRY)&_ZN6S709C33v81Ev,
  (VTBL_ENTRY)&_ZN6S709C33v82Ev,
  (VTBL_ENTRY)&_ZN6S709C33v83Ev,
  (VTBL_ENTRY)&_ZN6S709C33v84Ev,
  (VTBL_ENTRY)&_ZN6S709C33v85Ev,
  (VTBL_ENTRY)&_ZN6S709C33v86Ev,
  (VTBL_ENTRY)&_ZN6S709C33v87Ev,
  (VTBL_ENTRY)&_ZN6S709C33v88Ev,
  (VTBL_ENTRY)&_ZN6S709C33v89Ev,
  (VTBL_ENTRY)&_ZN6S709C33v90Ev,
  (VTBL_ENTRY)&_ZN6S709C33v91Ev,
  (VTBL_ENTRY)&_ZN6S709C33v92Ev,
  (VTBL_ENTRY)&_ZN6S709C33v93Ev,
  (VTBL_ENTRY)&_ZN6S709C33v94Ev,
  (VTBL_ENTRY)&_ZN6S709C33v95Ev,
  (VTBL_ENTRY)&_ZN6S709C33v96Ev,
  (VTBL_ENTRY)&_ZN6S709C33v97Ev,
  (VTBL_ENTRY)&_ZN6S709C33v98Ev,
  (VTBL_ENTRY)&_ZN6S709C33v99Ev,
  (VTBL_ENTRY)&_ZN6S709C34v100Ev,
  (VTBL_ENTRY)&_ZN6S709C34v101Ev,
  (VTBL_ENTRY)&_ZN6S709C34v102Ev,
  (VTBL_ENTRY)&_ZN6S709C34v103Ev,
  (VTBL_ENTRY)&_ZN6S709C34v104Ev,
  (VTBL_ENTRY)&_ZN6S709C34v105Ev,
  (VTBL_ENTRY)&_ZN6S709C34v106Ev,
  (VTBL_ENTRY)&_ZN6S709C34v107Ev,
  (VTBL_ENTRY)&_ZN6S709C34v108Ev,
  (VTBL_ENTRY)&_ZN6S709C34v109Ev,
  (VTBL_ENTRY)&_ZN6S709C34v110Ev,
  (VTBL_ENTRY)&_ZN6S709C34v111Ev,
  (VTBL_ENTRY)&_ZN6S709C34v112Ev,
  (VTBL_ENTRY)&_ZN6S709C34v113Ev,
  (VTBL_ENTRY)&_ZN6S709C34v114Ev,
  (VTBL_ENTRY)&_ZN6S709C34v115Ev,
  (VTBL_ENTRY)&_ZN6S709C34v116Ev,
  (VTBL_ENTRY)&_ZN6S709C34v117Ev,
  (VTBL_ENTRY)&_ZN6S709C34v118Ev,
  (VTBL_ENTRY)&_ZN6S709C34v119Ev,
  (VTBL_ENTRY)&_ZN6S709C34v120Ev,
  (VTBL_ENTRY)&_ZN6S709C34v121Ev,
  (VTBL_ENTRY)&_ZN6S709C34v122Ev,
  (VTBL_ENTRY)&_ZN6S709C34v123Ev,
  (VTBL_ENTRY)&_ZN6S709C34v124Ev,
  (VTBL_ENTRY)&_ZN6S709C34v125Ev,
  (VTBL_ENTRY)&_ZN6S709C34v126Ev,
  (VTBL_ENTRY)&_ZN6S709C34v127Ev,
  (VTBL_ENTRY)&_ZN6S709C34v128Ev,
  (VTBL_ENTRY)&_ZN6S709C34v129Ev,
  (VTBL_ENTRY)&_ZN6S709C34v130Ev,
  (VTBL_ENTRY)&_ZN6S709C34v131Ev,
  (VTBL_ENTRY)&_ZN6S709C34v132Ev,
  (VTBL_ENTRY)&_ZN6S709C34v133Ev,
  (VTBL_ENTRY)&_ZN6S709C34v134Ev,
  (VTBL_ENTRY)&_ZN6S709C34v135Ev,
  (VTBL_ENTRY)&_ZN6S709C34v136Ev,
  (VTBL_ENTRY)&_ZN6S709C34v137Ev,
  (VTBL_ENTRY)&_ZN6S709C34v138Ev,
  (VTBL_ENTRY)&_ZN6S709C34v139Ev,
  (VTBL_ENTRY)&_ZN6S709C34v140Ev,
  (VTBL_ENTRY)&_ZN6S709C34v141Ev,
  (VTBL_ENTRY)&_ZN6S709C34v142Ev,
  (VTBL_ENTRY)&_ZN6S709C34v143Ev,
  (VTBL_ENTRY)&_ZN6S709C34v144Ev,
  (VTBL_ENTRY)&_ZN6S709C34v145Ev,
  (VTBL_ENTRY)&_ZN6S709C34v146Ev,
  (VTBL_ENTRY)&_ZN6S709C34v147Ev,
  (VTBL_ENTRY)&_ZN6S709C34v148Ev,
  (VTBL_ENTRY)&_ZN6S709C34v149Ev,
  (VTBL_ENTRY)&_ZN6S709C34v150Ev,
  (VTBL_ENTRY)&_ZN6S709C24v151Ev,
  (VTBL_ENTRY)&_ZN6S709C24v152Ev,
  (VTBL_ENTRY)&_ZN6S709C24v153Ev,
  (VTBL_ENTRY)&_ZN6S709C24v154Ev,
  (VTBL_ENTRY)&_ZN6S709C24v155Ev,
  (VTBL_ENTRY)&_ZN6S709C24v156Ev,
  (VTBL_ENTRY)&_ZN6S709C24v157Ev,
  (VTBL_ENTRY)&_ZN6S709C24v158Ev,
  (VTBL_ENTRY)&_ZN6S709C24v159Ev,
  (VTBL_ENTRY)&_ZN6S709C24v160Ev,
  (VTBL_ENTRY)&_ZN6S709C24v161Ev,
  (VTBL_ENTRY)&_ZN6S709C24v162Ev,
  (VTBL_ENTRY)&_ZN6S709C24v163Ev,
  (VTBL_ENTRY)&_ZN6S709C24v164Ev,
  (VTBL_ENTRY)&_ZN6S709C24v165Ev,
  (VTBL_ENTRY)&_ZN6S709C24v166Ev,
  (VTBL_ENTRY)&_ZN6S709C24v167Ev,
  (VTBL_ENTRY)&_ZN6S709C24v168Ev,
  (VTBL_ENTRY)&_ZN6S709C24v169Ev,
  (VTBL_ENTRY)&_ZN6S709C24v170Ev,
  (VTBL_ENTRY)&_ZN6S709C24v171Ev,
  (VTBL_ENTRY)&_ZN6S709C24v172Ev,
  (VTBL_ENTRY)&_ZN6S709C24v173Ev,
  (VTBL_ENTRY)&_ZN6S709C24v174Ev,
  (VTBL_ENTRY)&_ZN6S709C24v175Ev,
  (VTBL_ENTRY)&_ZN6S709C24v176Ev,
  (VTBL_ENTRY)&_ZN6S709C24v177Ev,
  (VTBL_ENTRY)&_ZN6S709C24v178Ev,
  (VTBL_ENTRY)&_ZN6S709C24v179Ev,
  (VTBL_ENTRY)&_ZN6S709C24v180Ev,
  (VTBL_ENTRY)&_ZN6S709C24v181Ev,
  (VTBL_ENTRY)&_ZN6S709C24v182Ev,
  (VTBL_ENTRY)&_ZN6S709C24v183Ev,
  (VTBL_ENTRY)&_ZN6S709C24v184Ev,
  (VTBL_ENTRY)&_ZN6S709C24v185Ev,
  (VTBL_ENTRY)&_ZN6S709C24v186Ev,
  (VTBL_ENTRY)&_ZN6S709C24v187Ev,
  (VTBL_ENTRY)&_ZN6S709C24v188Ev,
  (VTBL_ENTRY)&_ZN6S709C24v189Ev,
  (VTBL_ENTRY)&_ZN6S709C12v1Ev,
  (VTBL_ENTRY)&_ZN6S709C12v2Ev,
  (VTBL_ENTRY)&_ZN6S709C12v3Ev,
  (VTBL_ENTRY)&_ZN6S709C12v4Ev,
  (VTBL_ENTRY)&_ZN6S709C12v5Ev,
  (VTBL_ENTRY)&_ZN6S709C12v6Ev,
  (VTBL_ENTRY)&_ZN6S709C12v7Ev,
  (VTBL_ENTRY)&_ZN6S709C12v8Ev,
  ABISELECT(-744,-544),
  (VTBL_ENTRY)&(_ZTI6S709C1[0]),
  (VTBL_ENTRY)&ABISELECT(_ZThn744_N6S709C1D1Ev,_ZThn544_N6S709C1D1Ev),
  (VTBL_ENTRY)&ABISELECT(_ZThn744_N6S709C1D0Ev,_ZThn544_N6S709C1D0Ev),
  (VTBL_ENTRY)&_ZN10S709C26_nt4v190Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v191Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v192Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v193Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v194Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v195Ev,
  (VTBL_ENTRY)&_ZN10S709C26_nt4v196Ev,
};
extern VTBL_ENTRY _ZTI6S709C1[];
extern  VTBL_ENTRY _ZTV6S709C1[];
Class_Descriptor cd_S709C1 = {  "S709C1", // class name
  bases_S709C1, 5,
  &(vtc_S709C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(752,548), // object size
  NSPAIRA(_ZTI6S709C1),ABISELECT(56,32), //typeinfo_var
  NSPAIRA(_ZTV6S709C1),204, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  5, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21969C2_nt  {
  void *s21969c2f0;
  void  mf21969c2(); // _ZN11S21969C2_nt9mf21969c2Ev
};
//SIG(-1 S21969C2_nt) C1{ m Fp}


void  S21969C2_nt ::mf21969c2(){}

//skip512 S21969C2_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21969C4_nt  {
  void *s21969c4f0;
  int s21969c4f1[4];
  void  mf21969c4(); // _ZN11S21969C4_nt9mf21969c4Ev
};
//SIG(-1 S21969C4_nt) C1{ m Fp Fi[4]}


void  S21969C4_nt ::mf21969c4(){}

//skip512 S21969C4_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21969C3_nt  {
  ::S21969C4_nt s21969c3f0;
  void  mf21969c3(); // _ZN11S21969C3_nt9mf21969c3Ev
};
//SIG(-1 S21969C3_nt) C1{ m FC2{ m Fp Fi[4]}}


void  S21969C3_nt ::mf21969c3(){}

//skip512 S21969C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21969C7_nt  {
  int s21969c7f0;
  void  mf21969c7(); // _ZN11S21969C7_nt9mf21969c7Ev
};
//SIG(-1 S21969C7_nt) C1{ m Fi}


void  S21969C7_nt ::mf21969c7(){}

//skip512 S21969C7_nt

#else // __cplusplus

extern VTBL_ENTRY _ZTI11S21969C7_nt[];
VTBL_ENTRY *P__ZTI11S21969C7_nt = _ZTI11S21969C7_nt; 
Class_Descriptor cd_S21969C7_nt = {  "S21969C7_nt", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI11S21969C7_nt),ABISELECT(16,8), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21969C1  {
  int s21969c1f0[4];
  ::S21969C2_nt s21969c1f1;
  ::S21969C3_nt s21969c1f2;
  ::S21969C3_nt s21969c1f3;
  ::S21969C3_nt s21969c1f4;
  int s21969c1f5[3];
  ::S21969C7_nt s21969c1f6;
  void *s21969c1f7;
  virtual  ~S21969C1(); // _ZN8S21969C1D1Ev
  virtual void  v1(); // _ZN8S21969C12v1Ev
  virtual void  v2(); // _ZN8S21969C12v2Ev
  virtual void  v3(); // _ZN8S21969C12v3Ev
  S21969C1(); // tgen
};
//SIG(1 S21969C1) C1{ vd v1 v2 v3 Fi[4] FC2{ m Fp} FC3{ m FC4{ m Fp Fi[4]}} FC3 FC3 Fi[3] FC5{ m Fi} Fp}


 S21969C1 ::~S21969C1(){ note_dtor("S21969C1", this);}
void  S21969C1 ::v1(){vfunc_called(this, "_ZN8S21969C12v1Ev");}
void  S21969C1 ::v2(){vfunc_called(this, "_ZN8S21969C12v2Ev");}
void  S21969C1 ::v3(){vfunc_called(this, "_ZN8S21969C12v3Ev");}
S21969C1 ::S21969C1(){ note_ctor("S21969C1", this);} // tgen

static void Test_S21969C1()
{
  extern Class_Descriptor cd_S21969C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(17,27)];
    init_test(&cd_S21969C1, buf);
    S21969C1 *dp, &lv = *(dp=new (buf) S21969C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(128,104), "sizeof(S21969C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S21969C1)");
    check_field_offset(lv, s21969c1f0, ABISELECT(8,4), "S21969C1.s21969c1f0");
    check_field_offset(lv, s21969c1f1, ABISELECT(24,20), "S21969C1.s21969c1f1");
    check_field_offset(lv, s21969c1f2, ABISELECT(32,24), "S21969C1.s21969c1f2");
    check_field_offset(lv, s21969c1f3, ABISELECT(56,44), "S21969C1.s21969c1f3");
    check_field_offset(lv, s21969c1f4, ABISELECT(80,64), "S21969C1.s21969c1f4");
    check_field_offset(lv, s21969c1f5, ABISELECT(104,84), "S21969C1.s21969c1f5");
    check_field_offset(lv, s21969c1f6, ABISELECT(116,96), "S21969C1.s21969c1f6");
    check_field_offset(lv, s21969c1f7, ABISELECT(120,100), "S21969C1.s21969c1f7");
    test_class_info(&lv, &cd_S21969C1);
    dp->~S21969C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS21969C1(Test_S21969C1, "S21969C1", ABISELECT(128,104));

#else // __cplusplus

extern void _ZN8S21969C1C1Ev();
extern void _ZN8S21969C1D1Ev();
Name_Map name_map_S21969C1[] = {
  NSPAIR(_ZN8S21969C1C1Ev),
  NSPAIR(_ZN8S21969C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S21969C1[];
extern void _ZN8S21969C1D1Ev();
extern void _ZN8S21969C1D0Ev();
extern void _ZN8S21969C12v1Ev();
extern void _ZN8S21969C12v2Ev();
extern void _ZN8S21969C12v3Ev();
static  VTBL_ENTRY vtc_S21969C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S21969C1[0]),
  (VTBL_ENTRY)&_ZN8S21969C1D1Ev,
  (VTBL_ENTRY)&_ZN8S21969C1D0Ev,
  (VTBL_ENTRY)&_ZN8S21969C12v1Ev,
  (VTBL_ENTRY)&_ZN8S21969C12v2Ev,
  (VTBL_ENTRY)&_ZN8S21969C12v3Ev,
};
extern VTBL_ENTRY _ZTI8S21969C1[];
extern  VTBL_ENTRY _ZTV8S21969C1[];
Class_Descriptor cd_S21969C1 = {  "S21969C1", // class name
  0,0,//no base classes
  &(vtc_S21969C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(128,104), // object size
  NSPAIRA(_ZTI8S21969C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S21969C1),7, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9701C4_nt  {
  void  mf9701c4(); // _ZN10S9701C4_nt8mf9701c4Ev
};
//SIG(-1 S9701C4_nt) C1{ m}


void  S9701C4_nt ::mf9701c4(){}

//skip512 S9701C4_nt

#else // __cplusplus

extern VTBL_ENTRY _ZTI10S9701C4_nt[];
VTBL_ENTRY *P__ZTI10S9701C4_nt = _ZTI10S9701C4_nt; 
Class_Descriptor cd_S9701C4_nt = {  "S9701C4_nt", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  1, // object size
  NSPAIRA(_ZTI10S9701C4_nt),ABISELECT(16,8), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9701C3_nt  {
  void *s9701c3f0;
  int s9701c3f1;
  ::S9701C4_nt s9701c3f2;
  void  mf9701c3(); // _ZN10S9701C3_nt8mf9701c3Ev
};
//SIG(-1 S9701C3_nt) C1{ m Fp Fi FC2{ m}}


void  S9701C3_nt ::mf9701c3(){}

//skip512 S9701C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9701C2_nt  {
  ::S9701C3_nt s9701c2f0;
  int s9701c2f1[2];
  char s9701c2f2;
  virtual  ~S9701C2_nt(); // _ZN10S9701C2_ntD1Ev
  virtual void  v4(); // _ZN10S9701C2_nt2v4Ev
  virtual void  v5(); // _ZN10S9701C2_nt2v5Ev
  virtual void  v6(); // _ZN10S9701C2_nt2v6Ev
  S9701C2_nt(); // tgen
};
//SIG(-1 S9701C2_nt) C1{ vd v1 v2 v3 FC2{ m Fp Fi FC3{ m}} Fi[2] Fc}


 S9701C2_nt ::~S9701C2_nt(){ note_dtor("S9701C2_nt", this);}
void  S9701C2_nt ::v4(){vfunc_called(this, "_ZN10S9701C2_nt2v4Ev");}
void  S9701C2_nt ::v5(){vfunc_called(this, "_ZN10S9701C2_nt2v5Ev");}
void  S9701C2_nt ::v6(){vfunc_called(this, "_ZN10S9701C2_nt2v6Ev");}
S9701C2_nt ::S9701C2_nt(){ note_ctor("S9701C2_nt", this);} // tgen

//skip512 S9701C2_nt

#else // __cplusplus

extern void _ZN10S9701C2_ntC1Ev();
extern void _ZN10S9701C2_ntD1Ev();
Name_Map name_map_S9701C2_nt[] = {
  NSPAIR(_ZN10S9701C2_ntC1Ev),
  NSPAIR(_ZN10S9701C2_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S9701C2_nt[];
extern void _ZN10S9701C2_ntD1Ev();
extern void _ZN10S9701C2_ntD0Ev();
extern void _ZN10S9701C2_nt2v4Ev();
extern void _ZN10S9701C2_nt2v5Ev();
extern void _ZN10S9701C2_nt2v6Ev();
static  VTBL_ENTRY vtc_S9701C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S9701C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S9701C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_nt2v4Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_nt2v5Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_nt2v6Ev,
};
extern VTBL_ENTRY _ZTI10S9701C2_nt[];
VTBL_ENTRY *P__ZTI10S9701C2_nt = _ZTI10S9701C2_nt; 
extern  VTBL_ENTRY _ZTV10S9701C2_nt[];
Class_Descriptor cd_S9701C2_nt = {  "S9701C2_nt", // class name
  0,0,//no base classes
  &(vtc_S9701C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,28), // object size
  NSPAIRA(_ZTI10S9701C2_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S9701C2_nt),7, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9701C1  : S9701C2_nt {
  void *s9701c1f0;
  ::S21969C2_nt s9701c1f1;
  void *s9701c1f2[5];
  char s9701c1f3;
  int s9701c1f4[2];
  char s9701c1f5;
  __tsi64 s9701c1f6;
  int s9701c1f7;
  virtual  ~S9701C1(); // _ZN7S9701C1D1Ev
  virtual void  v1(); // _ZN7S9701C12v1Ev
  virtual void  v2(); // _ZN7S9701C12v2Ev
  virtual void  v3(); // _ZN7S9701C12v3Ev
  S9701C1(); // tgen
};
//SIG(1 S9701C1) C1{ BC2{ vd v4 v5 v6 FC3{ m Fp Fi FC4{ m}} Fi[2] Fc} vd v1 v2 v3 Fp FC5{ m Fp} Fp[5] Fc Fi[2] Fc FL Fi}


 S9701C1 ::~S9701C1(){ note_dtor("S9701C1", this);}
void  S9701C1 ::v1(){vfunc_called(this, "_ZN7S9701C12v1Ev");}
void  S9701C1 ::v2(){vfunc_called(this, "_ZN7S9701C12v2Ev");}
void  S9701C1 ::v3(){vfunc_called(this, "_ZN7S9701C12v3Ev");}
S9701C1 ::S9701C1(){ note_ctor("S9701C1", this);} // tgen

static void Test_S9701C1()
{
  extern Class_Descriptor cd_S9701C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(17,22)];
    init_test(&cd_S9701C1, buf);
    S9701C1 *dp, &lv = *(dp=new (buf) S9701C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(128,84), "sizeof(S9701C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9701C1)");
    check_base_class_offset(lv, (S9701C2_nt*), 0, "S9701C1");
    check_field_offset(lv, s9701c1f0, ABISELECT(40,28), "S9701C1.s9701c1f0");
    check_field_offset(lv, s9701c1f1, ABISELECT(48,32), "S9701C1.s9701c1f1");
    check_field_offset(lv, s9701c1f2, ABISELECT(56,36), "S9701C1.s9701c1f2");
    check_field_offset(lv, s9701c1f3, ABISELECT(96,56), "S9701C1.s9701c1f3");
    check_field_offset(lv, s9701c1f4, ABISELECT(100,60), "S9701C1.s9701c1f4");
    check_field_offset(lv, s9701c1f5, ABISELECT(108,68), "S9701C1.s9701c1f5");
    check_field_offset(lv, s9701c1f6, ABISELECT(112,72), "S9701C1.s9701c1f6");
    check_field_offset(lv, s9701c1f7, ABISELECT(120,80), "S9701C1.s9701c1f7");
    test_class_info(&lv, &cd_S9701C1);
    dp->~S9701C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9701C1(Test_S9701C1, "S9701C1", ABISELECT(128,84));

#else // __cplusplus

extern void _ZN7S9701C1C1Ev();
extern void _ZN7S9701C1D1Ev();
Name_Map name_map_S9701C1[] = {
  NSPAIR(_ZN7S9701C1C1Ev),
  NSPAIR(_ZN7S9701C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9701C2_nt;
extern VTBL_ENTRY _ZTI10S9701C2_nt[];
extern  VTBL_ENTRY _ZTV10S9701C2_nt[];
static Base_Class bases_S9701C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9701C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S9701C1[];
extern void _ZN7S9701C1D1Ev();
extern void _ZN7S9701C1D0Ev();
extern void _ZN10S9701C2_nt2v4Ev();
extern void _ZN10S9701C2_nt2v5Ev();
extern void _ZN10S9701C2_nt2v6Ev();
extern void _ZN7S9701C12v1Ev();
extern void _ZN7S9701C12v2Ev();
extern void _ZN7S9701C12v3Ev();
static  VTBL_ENTRY vtc_S9701C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9701C1[0]),
  (VTBL_ENTRY)&_ZN7S9701C1D1Ev,
  (VTBL_ENTRY)&_ZN7S9701C1D0Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_nt2v4Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_nt2v5Ev,
  (VTBL_ENTRY)&_ZN10S9701C2_nt2v6Ev,
  (VTBL_ENTRY)&_ZN7S9701C12v1Ev,
  (VTBL_ENTRY)&_ZN7S9701C12v2Ev,
  (VTBL_ENTRY)&_ZN7S9701C12v3Ev,
};
extern VTBL_ENTRY _ZTI7S9701C1[];
extern  VTBL_ENTRY _ZTV7S9701C1[];
Class_Descriptor cd_S9701C1 = {  "S9701C1", // class name
  bases_S9701C1, 1,
  &(vtc_S9701C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(128,84), // object size
  NSPAIRA(_ZTI7S9701C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S9701C1),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S15999C1  {
  ::S85C27_nt s15999c1f0;
  ::S80C8_nt s15999c1f1;
  ::S80C8_nt s15999c1f2;
  ::S85C35 s15999c1f3;
  ::S85C27_nt s15999c1f4;
  ::S85C27_nt s15999c1f5;
  ::S85C27_nt s15999c1f6;
  ::S85C27_nt s15999c1f7;
  ::S85C27_nt s15999c1f8;
  ::S85C27_nt s15999c1f9;
  ::S85C27_nt s15999c1f10;
  ::S85C27_nt s15999c1f11;
  ::S85C27_nt s15999c1f12;
  void  mf15999c1(); // _ZN8S15999C19mf15999c1Ev
};
//SIG(1 S15999C1) C1{ m FC2{ m Fi[2]} FC3{ m Fi[2]} FC3 FC4{ BC5{ BC6{ m Fp Fi[2]}}} FC2 FC2 FC2 FC2 FC2 FC2 FC2 FC2 FC2}


void  S15999C1 ::mf15999c1(){}

static void Test_S15999C1()
{
  {
    init_simple_test("S15999C1");
    S15999C1 lv;
    check2(sizeof(lv), ABISELECT(112,108), "sizeof(S15999C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S15999C1)");
    check_field_offset(lv, s15999c1f0, 0, "S15999C1.s15999c1f0");
    check_field_offset(lv, s15999c1f1, 8, "S15999C1.s15999c1f1");
    check_field_offset(lv, s15999c1f2, 16, "S15999C1.s15999c1f2");
    check_field_offset(lv, s15999c1f3, 24, "S15999C1.s15999c1f3");
    check_field_offset(lv, s15999c1f4, ABISELECT(40,36), "S15999C1.s15999c1f4");
    check_field_offset(lv, s15999c1f5, ABISELECT(48,44), "S15999C1.s15999c1f5");
    check_field_offset(lv, s15999c1f6, ABISELECT(56,52), "S15999C1.s15999c1f6");
    check_field_offset(lv, s15999c1f7, ABISELECT(64,60), "S15999C1.s15999c1f7");
    check_field_offset(lv, s15999c1f8, ABISELECT(72,68), "S15999C1.s15999c1f8");
    check_field_offset(lv, s15999c1f9, ABISELECT(80,76), "S15999C1.s15999c1f9");
    check_field_offset(lv, s15999c1f10, ABISELECT(88,84), "S15999C1.s15999c1f10");
    check_field_offset(lv, s15999c1f11, ABISELECT(96,92), "S15999C1.s15999c1f11");
    check_field_offset(lv, s15999c1f12, ABISELECT(104,100), "S15999C1.s15999c1f12");
  }
}
static Arrange_To_Call_Me vS15999C1(Test_S15999C1, "S15999C1", ABISELECT(112,108));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10090C2_nt  {
  virtual  ~S10090C2_nt(); // _ZN11S10090C2_ntD1Ev
  virtual void  v6(); // _ZN11S10090C2_nt2v6Ev
  virtual void  v7(); // _ZN11S10090C2_nt2v7Ev
  virtual void  v8(); // _ZN11S10090C2_nt2v8Ev
  virtual void  v9(); // _ZN11S10090C2_nt2v9Ev
  virtual void  v10(); // _ZN11S10090C2_nt3v10Ev
  S10090C2_nt(); // tgen
};
//SIG(-1 S10090C2_nt) C1{ vd v1 v2 v3 v4 v5}


 S10090C2_nt ::~S10090C2_nt(){ note_dtor("S10090C2_nt", this);}
void  S10090C2_nt ::v6(){vfunc_called(this, "_ZN11S10090C2_nt2v6Ev");}
void  S10090C2_nt ::v7(){vfunc_called(this, "_ZN11S10090C2_nt2v7Ev");}
void  S10090C2_nt ::v8(){vfunc_called(this, "_ZN11S10090C2_nt2v8Ev");}
void  S10090C2_nt ::v9(){vfunc_called(this, "_ZN11S10090C2_nt2v9Ev");}
void  S10090C2_nt ::v10(){vfunc_called(this, "_ZN11S10090C2_nt3v10Ev");}
S10090C2_nt ::S10090C2_nt(){ note_ctor("S10090C2_nt", this);} // tgen

//skip512 S10090C2_nt

#else // __cplusplus

extern void _ZN11S10090C2_ntC1Ev();
extern void _ZN11S10090C2_ntD1Ev();
Name_Map name_map_S10090C2_nt[] = {
  NSPAIR(_ZN11S10090C2_ntC1Ev),
  NSPAIR(_ZN11S10090C2_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI11S10090C2_nt[];
extern void _ZN11S10090C2_ntD1Ev();
extern void _ZN11S10090C2_ntD0Ev();
extern void _ZN11S10090C2_nt2v6Ev();
extern void _ZN11S10090C2_nt2v7Ev();
extern void _ZN11S10090C2_nt2v8Ev();
extern void _ZN11S10090C2_nt2v9Ev();
extern void _ZN11S10090C2_nt3v10Ev();
static  VTBL_ENTRY vtc_S10090C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI11S10090C2_nt[0]),
  (VTBL_ENTRY)&_ZN11S10090C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v6Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v7Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v8Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v9Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt3v10Ev,
};
extern VTBL_ENTRY _ZTI11S10090C2_nt[];
VTBL_ENTRY *P__ZTI11S10090C2_nt = _ZTI11S10090C2_nt; 
extern  VTBL_ENTRY _ZTV11S10090C2_nt[];
Class_Descriptor cd_S10090C2_nt = {  "S10090C2_nt", // class name
  0,0,//no base classes
  &(vtc_S10090C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI11S10090C2_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV11S10090C2_nt),9, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10090C3_nt  {
  void *s10090c3f0[2];
  void  mf10090c3(); // _ZN11S10090C3_nt9mf10090c3Ev
};
//SIG(-1 S10090C3_nt) C1{ m Fp[2]}


void  S10090C3_nt ::mf10090c3(){}

//skip512 S10090C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10090C1  : S10090C2_nt {
  void *s10090c1f0[3];
  int s10090c1f1;
  void *s10090c1f2;
  ::S10090C3_nt s10090c1f3;
  char s10090c1f4;
  void *s10090c1f5;
  __tsi64 s10090c1f6;
  int s10090c1f7;
  char s10090c1f8[2];
  __tsi64 s10090c1f9;
  int s10090c1f10;
  virtual  ~S10090C1(); // _ZN8S10090C1D1Ev
  virtual void  v1(); // _ZN8S10090C12v1Ev
  virtual void  v2(); // _ZN8S10090C12v2Ev
  virtual void  v3(); // _ZN8S10090C12v3Ev
  virtual void  v4(); // _ZN8S10090C12v4Ev
  virtual void  v5(); // _ZN8S10090C12v5Ev
  S10090C1(); // tgen
};
//SIG(1 S10090C1) C1{ BC2{ vd v6 v7 v8 v9 v10} vd v1 v2 v3 v4 v5 Fp[3] Fi Fp FC3{ m Fp[2]} Fc Fp FL Fi Fc[2] FL Fi}


 S10090C1 ::~S10090C1(){ note_dtor("S10090C1", this);}
void  S10090C1 ::v1(){vfunc_called(this, "_ZN8S10090C12v1Ev");}
void  S10090C1 ::v2(){vfunc_called(this, "_ZN8S10090C12v2Ev");}
void  S10090C1 ::v3(){vfunc_called(this, "_ZN8S10090C12v3Ev");}
void  S10090C1 ::v4(){vfunc_called(this, "_ZN8S10090C12v4Ev");}
void  S10090C1 ::v5(){vfunc_called(this, "_ZN8S10090C12v5Ev");}
S10090C1 ::S10090C1(){ note_ctor("S10090C1", this);} // tgen

static void Test_S10090C1()
{
  extern Class_Descriptor cd_S10090C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(15,18)];
    init_test(&cd_S10090C1, buf);
    S10090C1 *dp, &lv = *(dp=new (buf) S10090C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(112,68), "sizeof(S10090C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S10090C1)");
    check_base_class_offset(lv, (S10090C2_nt*), 0, "S10090C1");
    check_field_offset(lv, s10090c1f0, ABISELECT(8,4), "S10090C1.s10090c1f0");
    check_field_offset(lv, s10090c1f1, ABISELECT(32,16), "S10090C1.s10090c1f1");
    check_field_offset(lv, s10090c1f2, ABISELECT(40,20), "S10090C1.s10090c1f2");
    check_field_offset(lv, s10090c1f3, ABISELECT(48,24), "S10090C1.s10090c1f3");
    check_field_offset(lv, s10090c1f4, ABISELECT(64,32), "S10090C1.s10090c1f4");
    check_field_offset(lv, s10090c1f5, ABISELECT(72,36), "S10090C1.s10090c1f5");
    check_field_offset(lv, s10090c1f6, ABISELECT(80,40), "S10090C1.s10090c1f6");
    check_field_offset(lv, s10090c1f7, ABISELECT(88,48), "S10090C1.s10090c1f7");
    check_field_offset(lv, s10090c1f8, ABISELECT(92,52), "S10090C1.s10090c1f8");
    check_field_offset(lv, s10090c1f9, ABISELECT(96,56), "S10090C1.s10090c1f9");
    check_field_offset(lv, s10090c1f10, ABISELECT(104,64), "S10090C1.s10090c1f10");
    test_class_info(&lv, &cd_S10090C1);
    dp->~S10090C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS10090C1(Test_S10090C1, "S10090C1", ABISELECT(112,68));

#else // __cplusplus

extern void _ZN8S10090C1C1Ev();
extern void _ZN8S10090C1D1Ev();
Name_Map name_map_S10090C1[] = {
  NSPAIR(_ZN8S10090C1C1Ev),
  NSPAIR(_ZN8S10090C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S10090C2_nt;
extern VTBL_ENTRY _ZTI11S10090C2_nt[];
extern  VTBL_ENTRY _ZTV11S10090C2_nt[];
static Base_Class bases_S10090C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S10090C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI8S10090C1[];
extern void _ZN8S10090C1D1Ev();
extern void _ZN8S10090C1D0Ev();
extern void _ZN11S10090C2_nt2v6Ev();
extern void _ZN11S10090C2_nt2v7Ev();
extern void _ZN11S10090C2_nt2v8Ev();
extern void _ZN11S10090C2_nt2v9Ev();
extern void _ZN11S10090C2_nt3v10Ev();
extern void _ZN8S10090C12v1Ev();
extern void _ZN8S10090C12v2Ev();
extern void _ZN8S10090C12v3Ev();
extern void _ZN8S10090C12v4Ev();
extern void _ZN8S10090C12v5Ev();
static  VTBL_ENTRY vtc_S10090C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S10090C1[0]),
  (VTBL_ENTRY)&_ZN8S10090C1D1Ev,
  (VTBL_ENTRY)&_ZN8S10090C1D0Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v6Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v7Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v8Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt2v9Ev,
  (VTBL_ENTRY)&_ZN11S10090C2_nt3v10Ev,
  (VTBL_ENTRY)&_ZN8S10090C12v1Ev,
  (VTBL_ENTRY)&_ZN8S10090C12v2Ev,
  (VTBL_ENTRY)&_ZN8S10090C12v3Ev,
  (VTBL_ENTRY)&_ZN8S10090C12v4Ev,
  (VTBL_ENTRY)&_ZN8S10090C12v5Ev,
};
extern VTBL_ENTRY _ZTI8S10090C1[];
extern  VTBL_ENTRY _ZTV8S10090C1[];
Class_Descriptor cd_S10090C1 = {  "S10090C1", // class name
  bases_S10090C1, 1,
  &(vtc_S10090C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(112,68), // object size
  NSPAIRA(_ZTI8S10090C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV8S10090C1),14, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21912C4_nt  {
  void *s21912c4f0;
  int s21912c4f1[2];
  ::S9701C4_nt s21912c4f2;
  void  mf21912c4(); // _ZN11S21912C4_nt9mf21912c4Ev
};
//SIG(-1 S21912C4_nt) C1{ m Fp Fi[2] FC2{ m}}


void  S21912C4_nt ::mf21912c4(){}

//skip512 S21912C4_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21912C1  {
  __tsi64 s21912c1f0;
  ::S9701C3_nt s21912c1f1;
  ::S9701C3_nt s21912c1f2;
  ::S9701C3_nt s21912c1f3;
  ::S9701C3_nt s21912c1f4;
  ::S21912C4_nt s21912c1f5;
  ::S9701C3_nt s21912c1f6;
  ::S9701C3_nt s21912c1f7;
  ::S9701C3_nt s21912c1f8;
  ::S9701C3_nt s21912c1f9;
  ::S9701C3_nt s21912c1f10;
  int s21912c1f11;
  __tsi64 s21912c1f12;
  virtual  ~S21912C1(); // _ZN8S21912C1D1Ev
  virtual void  v1(); // _ZN8S21912C12v1Ev
  S21912C1(); // tgen
};
//SIG(1 S21912C1) C1{ vd v1 FL FC2{ m Fp Fi FC3{ m}} FC2 FC2 FC2 FC4{ m Fp Fi[2] FC3} FC2 FC2 FC2 FC2 FC2 Fi FL}


 S21912C1 ::~S21912C1(){ note_dtor("S21912C1", this);}
void  S21912C1 ::v1(){vfunc_called(this, "_ZN8S21912C12v1Ev");}
S21912C1 ::S21912C1(){ note_ctor("S21912C1", this);} // tgen

static void Test_S21912C1()
{
  extern Class_Descriptor cd_S21912C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(26,38)];
    init_test(&cd_S21912C1, buf);
    S21912C1 *dp, &lv = *(dp=new (buf) S21912C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(200,148), "sizeof(S21912C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S21912C1)");
    check_field_offset(lv, s21912c1f0, ABISELECT(8,4), "S21912C1.s21912c1f0");
    check_field_offset(lv, s21912c1f1, ABISELECT(16,12), "S21912C1.s21912c1f1");
    check_field_offset(lv, s21912c1f2, ABISELECT(32,24), "S21912C1.s21912c1f2");
    check_field_offset(lv, s21912c1f3, ABISELECT(48,36), "S21912C1.s21912c1f3");
    check_field_offset(lv, s21912c1f4, ABISELECT(64,48), "S21912C1.s21912c1f4");
    check_field_offset(lv, s21912c1f5, ABISELECT(80,60), "S21912C1.s21912c1f5");
    check_field_offset(lv, s21912c1f6, ABISELECT(104,76), "S21912C1.s21912c1f6");
    check_field_offset(lv, s21912c1f7, ABISELECT(120,88), "S21912C1.s21912c1f7");
    check_field_offset(lv, s21912c1f8, ABISELECT(136,100), "S21912C1.s21912c1f8");
    check_field_offset(lv, s21912c1f9, ABISELECT(152,112), "S21912C1.s21912c1f9");
    check_field_offset(lv, s21912c1f10, ABISELECT(168,124), "S21912C1.s21912c1f10");
    check_field_offset(lv, s21912c1f11, ABISELECT(184,136), "S21912C1.s21912c1f11");
    check_field_offset(lv, s21912c1f12, ABISELECT(192,140), "S21912C1.s21912c1f12");
    test_class_info(&lv, &cd_S21912C1);
    dp->~S21912C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS21912C1(Test_S21912C1, "S21912C1", ABISELECT(200,148));

#else // __cplusplus

extern void _ZN8S21912C1C1Ev();
extern void _ZN8S21912C1D1Ev();
Name_Map name_map_S21912C1[] = {
  NSPAIR(_ZN8S21912C1C1Ev),
  NSPAIR(_ZN8S21912C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S21912C1[];
extern void _ZN8S21912C1D1Ev();
extern void _ZN8S21912C1D0Ev();
extern void _ZN8S21912C12v1Ev();
static  VTBL_ENTRY vtc_S21912C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S21912C1[0]),
  (VTBL_ENTRY)&_ZN8S21912C1D1Ev,
  (VTBL_ENTRY)&_ZN8S21912C1D0Ev,
  (VTBL_ENTRY)&_ZN8S21912C12v1Ev,
};
extern VTBL_ENTRY _ZTI8S21912C1[];
extern  VTBL_ENTRY _ZTV8S21912C1[];
Class_Descriptor cd_S21912C1 = {  "S21912C1", // class name
  0,0,//no base classes
  &(vtc_S21912C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(200,148), // object size
  NSPAIRA(_ZTI8S21912C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S21912C1),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9405C2  {
  ::S9701C3_nt s9405c2f0;
  int s9405c2f1[2];
  char s9405c2f2;
  virtual  ~S9405C2(); // _ZN7S9405C2D1Ev
  virtual void  v3(); // _ZN7S9405C22v3Ev
  virtual void  v4(); // _ZN7S9405C22v4Ev
  virtual void  v5(); // _ZN7S9405C22v5Ev
  S9405C2(); // tgen
};
//SIG(-1 S9405C2) C1{ vd v1 v2 v3 FC2{ m Fp Fi FC3{ m}} Fi[2] Fc}


 S9405C2 ::~S9405C2(){ note_dtor("S9405C2", this);}
void  S9405C2 ::v3(){vfunc_called(this, "_ZN7S9405C22v3Ev");}
void  S9405C2 ::v4(){vfunc_called(this, "_ZN7S9405C22v4Ev");}
void  S9405C2 ::v5(){vfunc_called(this, "_ZN7S9405C22v5Ev");}
S9405C2 ::S9405C2(){ note_ctor("S9405C2", this);} // tgen

static void Test_S9405C2()
{
  extern Class_Descriptor cd_S9405C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,8)];
    init_test(&cd_S9405C2, buf);
    S9405C2 *dp, &lv = *(dp=new (buf) S9405C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S9405C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9405C2)");
    check_field_offset(lv, s9405c2f0, ABISELECT(8,4), "S9405C2.s9405c2f0");
    check_field_offset(lv, s9405c2f1, ABISELECT(24,16), "S9405C2.s9405c2f1");
    check_field_offset(lv, s9405c2f2, ABISELECT(32,24), "S9405C2.s9405c2f2");
    test_class_info(&lv, &cd_S9405C2);
    dp->~S9405C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9405C2(Test_S9405C2, "S9405C2", ABISELECT(40,28));

#else // __cplusplus

extern void _ZN7S9405C2C1Ev();
extern void _ZN7S9405C2D1Ev();
Name_Map name_map_S9405C2[] = {
  NSPAIR(_ZN7S9405C2C1Ev),
  NSPAIR(_ZN7S9405C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S9405C2[];
extern void _ZN7S9405C2D1Ev();
extern void _ZN7S9405C2D0Ev();
extern void _ZN7S9405C22v3Ev();
extern void _ZN7S9405C22v4Ev();
extern void _ZN7S9405C22v5Ev();
static  VTBL_ENTRY vtc_S9405C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9405C2[0]),
  (VTBL_ENTRY)&_ZN7S9405C2D1Ev,
  (VTBL_ENTRY)&_ZN7S9405C2D0Ev,
  (VTBL_ENTRY)&_ZN7S9405C22v3Ev,
  (VTBL_ENTRY)&_ZN7S9405C22v4Ev,
  (VTBL_ENTRY)&_ZN7S9405C22v5Ev,
};
extern VTBL_ENTRY _ZTI7S9405C2[];
extern  VTBL_ENTRY _ZTV7S9405C2[];
Class_Descriptor cd_S9405C2 = {  "S9405C2", // class name
  0,0,//no base classes
  &(vtc_S9405C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,28), // object size
  NSPAIRA(_ZTI7S9405C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S9405C2),7, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9405C1  : S9405C2 {
  void *s9405c1f0[3];
  ::S21969C2_nt s9405c1f1;
  __tsi64 s9405c1f2[2];
  void *s9405c1f3;
  int s9405c1f4;
  void *s9405c1f5;
  int s9405c1f6;
  virtual  ~S9405C1(); // _ZN7S9405C1D1Ev
  virtual void  v1(); // _ZN7S9405C12v1Ev
  virtual void  v2(); // _ZN7S9405C12v2Ev
  S9405C1(); // tgen
};
//SIG(1 S9405C1) C1{ BC2{ vd v3 v4 v5 FC3{ m Fp Fi FC4{ m}} Fi[2] Fc} vd v1 v2 Fp[3] FC5{ m Fp} FL[2] Fp Fi Fp Fi}


 S9405C1 ::~S9405C1(){ note_dtor("S9405C1", this);}
void  S9405C1 ::v1(){vfunc_called(this, "_ZN7S9405C12v1Ev");}
void  S9405C1 ::v2(){vfunc_called(this, "_ZN7S9405C12v2Ev");}
S9405C1 ::S9405C1(){ note_ctor("S9405C1", this);} // tgen

static void Test_S9405C1()
{
  extern Class_Descriptor cd_S9405C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(16,20)];
    init_test(&cd_S9405C1, buf);
    S9405C1 *dp, &lv = *(dp=new (buf) S9405C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(120,76), "sizeof(S9405C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9405C1)");
    check_base_class_offset(lv, (S9405C2*), 0, "S9405C1");
    check_field_offset(lv, s9405c1f0, ABISELECT(40,28), "S9405C1.s9405c1f0");
    check_field_offset(lv, s9405c1f1, ABISELECT(64,40), "S9405C1.s9405c1f1");
    check_field_offset(lv, s9405c1f2, ABISELECT(72,44), "S9405C1.s9405c1f2");
    check_field_offset(lv, s9405c1f3, ABISELECT(88,60), "S9405C1.s9405c1f3");
    check_field_offset(lv, s9405c1f4, ABISELECT(96,64), "S9405C1.s9405c1f4");
    check_field_offset(lv, s9405c1f5, ABISELECT(104,68), "S9405C1.s9405c1f5");
    check_field_offset(lv, s9405c1f6, ABISELECT(112,72), "S9405C1.s9405c1f6");
    test_class_info(&lv, &cd_S9405C1);
    dp->~S9405C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9405C1(Test_S9405C1, "S9405C1", ABISELECT(120,76));

#else // __cplusplus

extern void _ZN7S9405C1C1Ev();
extern void _ZN7S9405C1D1Ev();
Name_Map name_map_S9405C1[] = {
  NSPAIR(_ZN7S9405C1C1Ev),
  NSPAIR(_ZN7S9405C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9405C2;
extern VTBL_ENTRY _ZTI7S9405C2[];
extern  VTBL_ENTRY _ZTV7S9405C2[];
static Base_Class bases_S9405C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9405C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S9405C1[];
extern void _ZN7S9405C1D1Ev();
extern void _ZN7S9405C1D0Ev();
extern void _ZN7S9405C22v3Ev();
extern void _ZN7S9405C22v4Ev();
extern void _ZN7S9405C22v5Ev();
extern void _ZN7S9405C12v1Ev();
extern void _ZN7S9405C12v2Ev();
static  VTBL_ENTRY vtc_S9405C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9405C1[0]),
  (VTBL_ENTRY)&_ZN7S9405C1D1Ev,
  (VTBL_ENTRY)&_ZN7S9405C1D0Ev,
  (VTBL_ENTRY)&_ZN7S9405C22v3Ev,
  (VTBL_ENTRY)&_ZN7S9405C22v4Ev,
  (VTBL_ENTRY)&_ZN7S9405C22v5Ev,
  (VTBL_ENTRY)&_ZN7S9405C12v1Ev,
  (VTBL_ENTRY)&_ZN7S9405C12v2Ev,
};
extern VTBL_ENTRY _ZTI7S9405C1[];
extern  VTBL_ENTRY _ZTV7S9405C1[];
Class_Descriptor cd_S9405C1 = {  "S9405C1", // class name
  bases_S9405C1, 1,
  &(vtc_S9405C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(120,76), // object size
  NSPAIRA(_ZTI7S9405C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S9405C1),9, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C4_nt  {
  int s1726c4f0;
  void  mf1726c4(); // _ZN10S1726C4_nt8mf1726c4Ev
  virtual  ~S1726C4_nt(); // _ZN10S1726C4_ntD1Ev
  S1726C4_nt(); // tgen
};
//SIG(-1 S1726C4_nt) C1{ vd m Fi}


void  S1726C4_nt ::mf1726c4(){}
 S1726C4_nt ::~S1726C4_nt(){ note_dtor("S1726C4_nt", this);}
S1726C4_nt ::S1726C4_nt(){ note_ctor("S1726C4_nt", this);} // tgen

//skip512 S1726C4_nt

#else // __cplusplus

extern void _ZN10S1726C4_ntC1Ev();
extern void _ZN10S1726C4_ntD1Ev();
Name_Map name_map_S1726C4_nt[] = {
  NSPAIR(_ZN10S1726C4_ntC1Ev),
  NSPAIR(_ZN10S1726C4_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S1726C4_nt[];
extern void _ZN10S1726C4_ntD1Ev();
extern void _ZN10S1726C4_ntD0Ev();
static  VTBL_ENTRY vtc_S1726C4_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S1726C4_nt[0]),
  (VTBL_ENTRY)&_ZN10S1726C4_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S1726C4_ntD0Ev,
};
extern VTBL_ENTRY _ZTI10S1726C4_nt[];
VTBL_ENTRY *P__ZTI10S1726C4_nt = _ZTI10S1726C4_nt; 
extern  VTBL_ENTRY _ZTV10S1726C4_nt[];
Class_Descriptor cd_S1726C4_nt = {  "S1726C4_nt", // class name
  0,0,//no base classes
  &(vtc_S1726C4_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI10S1726C4_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S1726C4_nt),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C3_nt  : S1726C4_nt {
  int s1726c3f0;
  virtual  ~S1726C3_nt(); // _ZN10S1726C3_ntD1Ev
  S1726C3_nt(); // tgen
};
//SIG(-1 S1726C3_nt) C1{ BC2{ vd m Fi} vd Fi}


 S1726C3_nt ::~S1726C3_nt(){ note_dtor("S1726C3_nt", this);}
S1726C3_nt ::S1726C3_nt(){ note_ctor("S1726C3_nt", this);} // tgen

//skip512 S1726C3_nt

#else // __cplusplus

extern void _ZN10S1726C3_ntC1Ev();
extern void _ZN10S1726C3_ntD1Ev();
Name_Map name_map_S1726C3_nt[] = {
  NSPAIR(_ZN10S1726C3_ntC1Ev),
  NSPAIR(_ZN10S1726C3_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S1726C4_nt;
extern VTBL_ENTRY _ZTI10S1726C4_nt[];
extern  VTBL_ENTRY _ZTV10S1726C4_nt[];
static Base_Class bases_S1726C3_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S1726C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S1726C3_nt[];
extern void _ZN10S1726C3_ntD1Ev();
extern void _ZN10S1726C3_ntD0Ev();
static  VTBL_ENTRY vtc_S1726C3_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S1726C3_nt[0]),
  (VTBL_ENTRY)&_ZN10S1726C3_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S1726C3_ntD0Ev,
};
extern VTBL_ENTRY _ZTI10S1726C3_nt[];
VTBL_ENTRY *P__ZTI10S1726C3_nt = _ZTI10S1726C3_nt; 
extern  VTBL_ENTRY _ZTV10S1726C3_nt[];
Class_Descriptor cd_S1726C3_nt = {  "S1726C3_nt", // class name
  bases_S1726C3_nt, 1,
  &(vtc_S1726C3_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,12), // object size
  NSPAIRA(_ZTI10S1726C3_nt),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV10S1726C3_nt),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C2_nt  : S1726C3_nt {
  virtual void  v2(); // _ZN10S1726C2_nt2v2Ev
  ~S1726C2_nt(); // tgen
  S1726C2_nt(); // tgen
};
//SIG(-1 S1726C2_nt) C1{ BC2{ BC3{ vd m Fi} vd Fi} v1}


void  S1726C2_nt ::v2(){vfunc_called(this, "_ZN10S1726C2_nt2v2Ev");}
S1726C2_nt ::~S1726C2_nt(){ note_dtor("S1726C2_nt", this);} // tgen
S1726C2_nt ::S1726C2_nt(){ note_ctor("S1726C2_nt", this);} // tgen

//skip512 S1726C2_nt

#else // __cplusplus

extern void _ZN10S1726C2_ntC1Ev();
extern void _ZN10S1726C2_ntD1Ev();
Name_Map name_map_S1726C2_nt[] = {
  NSPAIR(_ZN10S1726C2_ntC1Ev),
  NSPAIR(_ZN10S1726C2_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S1726C4_nt;
extern VTBL_ENTRY _ZTI10S1726C4_nt[];
extern  VTBL_ENTRY _ZTV10S1726C4_nt[];
extern Class_Descriptor cd_S1726C3_nt;
extern VTBL_ENTRY _ZTI10S1726C3_nt[];
extern  VTBL_ENTRY _ZTV10S1726C3_nt[];
static Base_Class bases_S1726C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S1726C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1726C3_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S1726C2_nt[];
extern void _ZN10S1726C2_ntD1Ev();
extern void _ZN10S1726C2_ntD0Ev();
extern void _ZN10S1726C2_nt2v2Ev();
static  VTBL_ENTRY vtc_S1726C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S1726C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S1726C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S1726C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S1726C2_nt2v2Ev,
};
extern VTBL_ENTRY _ZTI10S1726C2_nt[];
VTBL_ENTRY *P__ZTI10S1726C2_nt = _ZTI10S1726C2_nt; 
extern  VTBL_ENTRY _ZTV10S1726C2_nt[];
Class_Descriptor cd_S1726C2_nt = {  "S1726C2_nt", // class name
  bases_S1726C2_nt, 2,
  &(vtc_S1726C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,12), // object size
  NSPAIRA(_ZTI10S1726C2_nt),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV10S1726C2_nt),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C8  {
  void  mf1726c8(); // _ZN7S1726C88mf1726c8Ev
};
//SIG(-1 S1726C8) C1{ m}


void  S1726C8 ::mf1726c8(){}

static void Test_S1726C8()
{
  {
    init_simple_test("S1726C8");
    S1726C8 lv;
    check2(sizeof(lv), 1, "sizeof(S1726C8)");
    check2(__alignof__(lv), 1, "__alignof__(S1726C8)");
  }
}
static Arrange_To_Call_Me vS1726C8(Test_S1726C8, "S1726C8", 1);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C6_nt  {
  void *s1726c6f0;
  int s1726c6f1;
  ::S9701C4_nt s1726c6f2;
  ::S1726C8 s1726c6f3;
  void  mf1726c6(); // _ZN10S1726C6_nt8mf1726c6Ev
};
//SIG(-1 S1726C6_nt) C1{ m Fp Fi FC2{ m} FC3{ m}}


void  S1726C6_nt ::mf1726c6(){}

//skip512 S1726C6_nt

#else // __cplusplus

Class_Descriptor cd_S1726C6_nt = {  "S1726C6_nt", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  ABISELECT(16,12), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C5_nt  : S1726C6_nt {
};
//SIG(-1 S1726C5_nt) C1{ BC2{ m Fp Fi FC3{ m} FC4{ m}}}



//skip512 S1726C5_nt

#else // __cplusplus

extern Class_Descriptor cd_S1726C6_nt;
static Base_Class bases_S1726C5_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S1726C6_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C10_nt  {
  __tsi64 s1726c10f0[4];
};
//SIG(-1 S1726C10_nt) C1{ FL[4]}



//skip512 S1726C10_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C9_nt  {
  ::S1726C10_nt s1726c9f0;
  void  mf1726c9(); // _ZN10S1726C9_nt8mf1726c9Ev
};
//SIG(-1 S1726C9_nt) C1{ m FC2{ FL[4]}}


void  S1726C9_nt ::mf1726c9(){}

//skip512 S1726C9_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1726C1  : S1726C2_nt {
  ::S1726C5_nt s1726c1f0;
  ::S1726C9_nt s1726c1f1;
  virtual  ~S1726C1(); // _ZN7S1726C1D1Ev
  virtual void  v1(); // _ZN7S1726C12v1Ev
  S1726C1(); // tgen
};
//SIG(1 S1726C1) C1{ BC2{ BC3{ BC4{ vd m Fi} vd Fi} v2} vd v1 FC5{ BC6{ m Fp Fi FC7{ m} FC8{ m}}} FC9{ m FC10{ FL[4]}}}


 S1726C1 ::~S1726C1(){ note_dtor("S1726C1", this);}
void  S1726C1 ::v1(){vfunc_called(this, "_ZN7S1726C12v1Ev");}
S1726C1 ::S1726C1(){ note_ctor("S1726C1", this);} // tgen

static void Test_S1726C1()
{
  extern Class_Descriptor cd_S1726C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(9,15)];
    init_test(&cd_S1726C1, buf);
    S1726C1 *dp, &lv = *(dp=new (buf) S1726C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(64,56), "sizeof(S1726C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1726C1)");
    check_base_class_offset(lv, (S1726C4_nt*)(S1726C3_nt*)(S1726C2_nt*), 0, "S1726C1");
    check_base_class_offset(lv, (S1726C3_nt*)(S1726C2_nt*), 0, "S1726C1");
    check_base_class_offset(lv, (S1726C2_nt*), 0, "S1726C1");
    check_field_offset(lv, s1726c1f0, ABISELECT(16,12), "S1726C1.s1726c1f0");
    check_field_offset(lv, s1726c1f1, ABISELECT(32,24), "S1726C1.s1726c1f1");
    test_class_info(&lv, &cd_S1726C1);
    dp->~S1726C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1726C1(Test_S1726C1, "S1726C1", ABISELECT(64,56));

#else // __cplusplus

extern void _ZN7S1726C1C1Ev();
extern void _ZN7S1726C1D1Ev();
Name_Map name_map_S1726C1[] = {
  NSPAIR(_ZN7S1726C1C1Ev),
  NSPAIR(_ZN7S1726C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S1726C4_nt;
extern VTBL_ENTRY _ZTI10S1726C4_nt[];
extern  VTBL_ENTRY _ZTV10S1726C4_nt[];
extern Class_Descriptor cd_S1726C3_nt;
extern VTBL_ENTRY _ZTI10S1726C3_nt[];
extern  VTBL_ENTRY _ZTV10S1726C3_nt[];
extern Class_Descriptor cd_S1726C2_nt;
extern VTBL_ENTRY _ZTI10S1726C2_nt[];
extern  VTBL_ENTRY _ZTV10S1726C2_nt[];
static Base_Class bases_S1726C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S1726C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1726C3_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1726C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    3, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1726C1[];
extern void _ZN7S1726C1D1Ev();
extern void _ZN7S1726C1D0Ev();
extern void _ZN10S1726C2_nt2v2Ev();
extern void _ZN7S1726C12v1Ev();
static  VTBL_ENTRY vtc_S1726C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1726C1[0]),
  (VTBL_ENTRY)&_ZN7S1726C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1726C1D0Ev,
  (VTBL_ENTRY)&_ZN10S1726C2_nt2v2Ev,
  (VTBL_ENTRY)&_ZN7S1726C12v1Ev,
};
extern VTBL_ENTRY _ZTI7S1726C1[];
extern  VTBL_ENTRY _ZTV7S1726C1[];
Class_Descriptor cd_S1726C1 = {  "S1726C1", // class name
  bases_S1726C1, 3,
  &(vtc_S1726C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(64,56), // object size
  NSPAIRA(_ZTI7S1726C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1726C1),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  3, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1115C3_nt  : S21969C7_nt {
};
//SIG(-1 S1115C3_nt) C1{ BC2{ m Fi}}



//skip512 S1115C3_nt

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1115C3_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S1115C3_nt[];
VTBL_ENTRY *P__ZTI10S1115C3_nt = _ZTI10S1115C3_nt; 
Class_Descriptor cd_S1115C3_nt = {  "S1115C3_nt", // class name
  bases_S1115C3_nt, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI10S1115C3_nt),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1115C2_nt  : S1115C3_nt {
  virtual  ~S1115C2_nt(); // _ZN10S1115C2_ntD1Ev
  virtual void  v7(); // _ZN10S1115C2_nt2v7Ev
  virtual void  v8(); // _ZN10S1115C2_nt2v8Ev
  virtual void  v9(); // _ZN10S1115C2_nt2v9Ev
  virtual void  v10(); // _ZN10S1115C2_nt3v10Ev
  virtual void  v11(); // _ZN10S1115C2_nt3v11Ev
  virtual void  v12(); // _ZN10S1115C2_nt3v12Ev
  S1115C2_nt(); // tgen
};
//SIG(-1 S1115C2_nt) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1115C2_nt ::~S1115C2_nt(){ note_dtor("S1115C2_nt", this);}
void  S1115C2_nt ::v7(){vfunc_called(this, "_ZN10S1115C2_nt2v7Ev");}
void  S1115C2_nt ::v8(){vfunc_called(this, "_ZN10S1115C2_nt2v8Ev");}
void  S1115C2_nt ::v9(){vfunc_called(this, "_ZN10S1115C2_nt2v9Ev");}
void  S1115C2_nt ::v10(){vfunc_called(this, "_ZN10S1115C2_nt3v10Ev");}
void  S1115C2_nt ::v11(){vfunc_called(this, "_ZN10S1115C2_nt3v11Ev");}
void  S1115C2_nt ::v12(){vfunc_called(this, "_ZN10S1115C2_nt3v12Ev");}
S1115C2_nt ::S1115C2_nt(){ note_ctor("S1115C2_nt", this);} // tgen

//skip512 S1115C2_nt

#else // __cplusplus

extern void _ZN10S1115C2_ntC1Ev();
extern void _ZN10S1115C2_ntD1Ev();
Name_Map name_map_S1115C2_nt[] = {
  NSPAIR(_ZN10S1115C2_ntC1Ev),
  NSPAIR(_ZN10S1115C2_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1115C3_nt;
extern VTBL_ENTRY _ZTI10S1115C3_nt[];
static Base_Class bases_S1115C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1115C3_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S1115C2_nt[];
extern void _ZN10S1115C2_ntD1Ev();
extern void _ZN10S1115C2_ntD0Ev();
extern void _ZN10S1115C2_nt2v7Ev();
extern void _ZN10S1115C2_nt2v8Ev();
extern void _ZN10S1115C2_nt2v9Ev();
extern void _ZN10S1115C2_nt3v10Ev();
extern void _ZN10S1115C2_nt3v11Ev();
extern void _ZN10S1115C2_nt3v12Ev();
static  VTBL_ENTRY vtc_S1115C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S1115C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S1115C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt2v7Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt2v8Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt2v9Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt3v10Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt3v11Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt3v12Ev,
};
extern VTBL_ENTRY _ZTI10S1115C2_nt[];
VTBL_ENTRY *P__ZTI10S1115C2_nt = _ZTI10S1115C2_nt; 
extern  VTBL_ENTRY _ZTV10S1115C2_nt[];
Class_Descriptor cd_S1115C2_nt = {  "S1115C2_nt", // class name
  bases_S1115C2_nt, 2,
  &(vtc_S1115C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI10S1115C2_nt),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV10S1115C2_nt),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1115C5_nt  {
  char s1115c5f0[3];
  void  mf1115c5(); // _ZN10S1115C5_nt8mf1115c5Ev
};
//SIG(-1 S1115C5_nt) C1{ m Fc[3]}


void  S1115C5_nt ::mf1115c5(){}

//skip512 S1115C5_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1115C1  : S1115C2_nt {
  ::S1115C5_nt s1115c1f0;
  ::S1115C5_nt s1115c1f1;
  ::S1115C5_nt s1115c1f2;
  int s1115c1f3;
  virtual void  v1(); // _ZN7S1115C12v1Ev
  virtual void  v2(); // _ZN7S1115C12v2Ev
  virtual void  v3(); // _ZN7S1115C12v3Ev
  virtual void  v4(); // _ZN7S1115C12v4Ev
  virtual void  v5(); // _ZN7S1115C12v5Ev
  virtual void  v6(); // _ZN7S1115C12v6Ev
  ~S1115C1(); // tgen
  S1115C1(); // tgen
};
//SIG(1 S1115C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FC5{ m Fc[3]} FC5 FC5 Fi}


void  S1115C1 ::v1(){vfunc_called(this, "_ZN7S1115C12v1Ev");}
void  S1115C1 ::v2(){vfunc_called(this, "_ZN7S1115C12v2Ev");}
void  S1115C1 ::v3(){vfunc_called(this, "_ZN7S1115C12v3Ev");}
void  S1115C1 ::v4(){vfunc_called(this, "_ZN7S1115C12v4Ev");}
void  S1115C1 ::v5(){vfunc_called(this, "_ZN7S1115C12v5Ev");}
void  S1115C1 ::v6(){vfunc_called(this, "_ZN7S1115C12v6Ev");}
S1115C1 ::~S1115C1(){ note_dtor("S1115C1", this);} // tgen
S1115C1 ::S1115C1(){ note_ctor("S1115C1", this);} // tgen

static void Test_S1115C1()
{
  extern Class_Descriptor cd_S1115C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(5,7)];
    init_test(&cd_S1115C1, buf);
    S1115C1 *dp, &lv = *(dp=new (buf) S1115C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(32,24), "sizeof(S1115C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1115C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1115C3_nt*)(S1115C2_nt*), ABISELECT(8,4), "S1115C1");
    check_base_class_offset(lv, (S1115C3_nt*)(S1115C2_nt*), ABISELECT(8,4), "S1115C1");
    check_base_class_offset(lv, (S1115C2_nt*), 0, "S1115C1");
    check_field_offset(lv, s1115c1f0, ABISELECT(12,8), "S1115C1.s1115c1f0");
    check_field_offset(lv, s1115c1f1, ABISELECT(15,11), "S1115C1.s1115c1f1");
    check_field_offset(lv, s1115c1f2, ABISELECT(18,14), "S1115C1.s1115c1f2");
    check_field_offset(lv, s1115c1f3, ABISELECT(24,20), "S1115C1.s1115c1f3");
    test_class_info(&lv, &cd_S1115C1);
    dp->~S1115C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1115C1(Test_S1115C1, "S1115C1", ABISELECT(32,24));

#else // __cplusplus

extern void _ZN7S1115C1C1Ev();
extern void _ZN7S1115C1D1Ev();
Name_Map name_map_S1115C1[] = {
  NSPAIR(_ZN7S1115C1C1Ev),
  NSPAIR(_ZN7S1115C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1115C3_nt;
extern VTBL_ENTRY _ZTI10S1115C3_nt[];
extern Class_Descriptor cd_S1115C2_nt;
extern VTBL_ENTRY _ZTI10S1115C2_nt[];
extern  VTBL_ENTRY _ZTV10S1115C2_nt[];
static Base_Class bases_S1115C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1115C3_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1115C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1115C1[];
extern void _ZN7S1115C1D1Ev();
extern void _ZN7S1115C1D0Ev();
extern void _ZN10S1115C2_nt2v7Ev();
extern void _ZN10S1115C2_nt2v8Ev();
extern void _ZN10S1115C2_nt2v9Ev();
extern void _ZN10S1115C2_nt3v10Ev();
extern void _ZN10S1115C2_nt3v11Ev();
extern void _ZN10S1115C2_nt3v12Ev();
extern void _ZN7S1115C12v1Ev();
extern void _ZN7S1115C12v2Ev();
extern void _ZN7S1115C12v3Ev();
extern void _ZN7S1115C12v4Ev();
extern void _ZN7S1115C12v5Ev();
extern void _ZN7S1115C12v6Ev();
static  VTBL_ENTRY vtc_S1115C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1115C1[0]),
  (VTBL_ENTRY)&_ZN7S1115C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1115C1D0Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt2v7Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt2v8Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt2v9Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt3v10Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt3v11Ev,
  (VTBL_ENTRY)&_ZN10S1115C2_nt3v12Ev,
  (VTBL_ENTRY)&_ZN7S1115C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1115C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1115C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1115C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1115C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1115C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1115C1[];
extern  VTBL_ENTRY _ZTV7S1115C1[];
Class_Descriptor cd_S1115C1 = {  "S1115C1", // class name
  bases_S1115C1, 3,
  &(vtc_S1115C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(32,24), // object size
  NSPAIRA(_ZTI7S1115C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1115C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14749C2  {
  long s14749c2f0;
  short s14749c2f1[2];
  void  mf14749c2(); // _ZN8S14749C29mf14749c2Ev
};
//SIG(-1 S14749C2) C1{ m Fl Fs[2]}


void  S14749C2 ::mf14749c2(){}

static void Test_S14749C2()
{
  {
    init_simple_test("S14749C2");
    S14749C2 lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S14749C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14749C2)");
    check_field_offset(lv, s14749c2f0, 0, "S14749C2.s14749c2f0");
    check_field_offset(lv, s14749c2f1, ABISELECT(8,4), "S14749C2.s14749c2f1");
  }
}
static Arrange_To_Call_Me vS14749C2(Test_S14749C2, "S14749C2", ABISELECT(16,8));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14749C1  {
  short s14749c1f0;
  char s14749c1f1;
  int s14749c1f2;
  void *s14749c1f3[7];
  short s14749c1f4[2];
  void *s14749c1f5[3];
  ::S14749C2 s14749c1f6;
  void *s14749c1f7;
  char s14749c1f8[5];
  ::S1726C10_nt s14749c1f9;
  __tsi64 s14749c1f10[3];
  void *s14749c1f11;
  short s14749c1f12;
  char s14749c1f13[122];
};
//SIG(1 S14749C1) C1{ Fs Fc Fi Fp[7] Fs[2] Fp[3] FC2{ m Fl Fs[2]} Fp Fc[5] FC3{ FL[4]} FL[3] Fp Fs Fc[122]}



static void Test_S14749C1()
{
  {
    init_simple_test("S14749C1");
    S14749C1 lv;
    check2(sizeof(lv), ABISELECT(320,256), "sizeof(S14749C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14749C1)");
    check_field_offset(lv, s14749c1f0, 0, "S14749C1.s14749c1f0");
    check_field_offset(lv, s14749c1f1, 2, "S14749C1.s14749c1f1");
    check_field_offset(lv, s14749c1f2, 4, "S14749C1.s14749c1f2");
    check_field_offset(lv, s14749c1f3, 8, "S14749C1.s14749c1f3");
    check_field_offset(lv, s14749c1f4, ABISELECT(64,36), "S14749C1.s14749c1f4");
    check_field_offset(lv, s14749c1f5, ABISELECT(72,40), "S14749C1.s14749c1f5");
    check_field_offset(lv, s14749c1f6, ABISELECT(96,52), "S14749C1.s14749c1f6");
    check_field_offset(lv, s14749c1f7, ABISELECT(112,60), "S14749C1.s14749c1f7");
    check_field_offset(lv, s14749c1f8, ABISELECT(120,64), "S14749C1.s14749c1f8");
    check_field_offset(lv, s14749c1f9, ABISELECT(128,72), "S14749C1.s14749c1f9");
    check_field_offset(lv, s14749c1f10, ABISELECT(160,104), "S14749C1.s14749c1f10");
    check_field_offset(lv, s14749c1f11, ABISELECT(184,128), "S14749C1.s14749c1f11");
    check_field_offset(lv, s14749c1f12, ABISELECT(192,132), "S14749C1.s14749c1f12");
    check_field_offset(lv, s14749c1f13, ABISELECT(194,134), "S14749C1.s14749c1f13");
  }
}
static Arrange_To_Call_Me vS14749C1(Test_S14749C1, "S14749C1", ABISELECT(320,256));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6601C2_nt  {
  virtual  ~S6601C2_nt(); // _ZN10S6601C2_ntD1Ev
  virtual void  v2(); // _ZN10S6601C2_nt2v2Ev
  S6601C2_nt(); // tgen
};
//SIG(-1 S6601C2_nt) C1{ vd v1}


 S6601C2_nt ::~S6601C2_nt(){ note_dtor("S6601C2_nt", this);}
void  S6601C2_nt ::v2(){vfunc_called(this, "_ZN10S6601C2_nt2v2Ev");}
S6601C2_nt ::S6601C2_nt(){ note_ctor("S6601C2_nt", this);} // tgen

//skip512 S6601C2_nt

#else // __cplusplus

extern void _ZN10S6601C2_ntC1Ev();
extern void _ZN10S6601C2_ntD1Ev();
Name_Map name_map_S6601C2_nt[] = {
  NSPAIR(_ZN10S6601C2_ntC1Ev),
  NSPAIR(_ZN10S6601C2_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S6601C2_nt[];
extern void _ZN10S6601C2_ntD1Ev();
extern void _ZN10S6601C2_ntD0Ev();
extern void _ZN10S6601C2_nt2v2Ev();
static  VTBL_ENTRY vtc_S6601C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S6601C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S6601C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S6601C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S6601C2_nt2v2Ev,
};
extern VTBL_ENTRY _ZTI10S6601C2_nt[];
VTBL_ENTRY *P__ZTI10S6601C2_nt = _ZTI10S6601C2_nt; 
extern  VTBL_ENTRY _ZTV10S6601C2_nt[];
Class_Descriptor cd_S6601C2_nt = {  "S6601C2_nt", // class name
  0,0,//no base classes
  &(vtc_S6601C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI10S6601C2_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S6601C2_nt),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6601C4_nt  {
  virtual  ~S6601C4_nt(); // _ZN10S6601C4_ntD1Ev
  virtual void  v5(); // _ZN10S6601C4_nt2v5Ev
  virtual void  v6(); // _ZN10S6601C4_nt2v6Ev
  virtual void  v7(); // _ZN10S6601C4_nt2v7Ev
  virtual void  v8(); // _ZN10S6601C4_nt2v8Ev
  virtual void  v9(); // _ZN10S6601C4_nt2v9Ev
  virtual void  v10(); // _ZN10S6601C4_nt3v10Ev
  S6601C4_nt(); // tgen
};
//SIG(-1 S6601C4_nt) C1{ vd v1 v2 v3 v4 v5 v6}


 S6601C4_nt ::~S6601C4_nt(){ note_dtor("S6601C4_nt", this);}
void  S6601C4_nt ::v5(){vfunc_called(this, "_ZN10S6601C4_nt2v5Ev");}
void  S6601C4_nt ::v6(){vfunc_called(this, "_ZN10S6601C4_nt2v6Ev");}
void  S6601C4_nt ::v7(){vfunc_called(this, "_ZN10S6601C4_nt2v7Ev");}
void  S6601C4_nt ::v8(){vfunc_called(this, "_ZN10S6601C4_nt2v8Ev");}
void  S6601C4_nt ::v9(){vfunc_called(this, "_ZN10S6601C4_nt2v9Ev");}
void  S6601C4_nt ::v10(){vfunc_called(this, "_ZN10S6601C4_nt3v10Ev");}
S6601C4_nt ::S6601C4_nt(){ note_ctor("S6601C4_nt", this);} // tgen

//skip512 S6601C4_nt

#else // __cplusplus

extern void _ZN10S6601C4_ntC1Ev();
extern void _ZN10S6601C4_ntD1Ev();
Name_Map name_map_S6601C4_nt[] = {
  NSPAIR(_ZN10S6601C4_ntC1Ev),
  NSPAIR(_ZN10S6601C4_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S6601C4_nt[];
extern void _ZN10S6601C4_ntD1Ev();
extern void _ZN10S6601C4_ntD0Ev();
extern void _ZN10S6601C4_nt2v5Ev();
extern void _ZN10S6601C4_nt2v6Ev();
extern void _ZN10S6601C4_nt2v7Ev();
extern void _ZN10S6601C4_nt2v8Ev();
extern void _ZN10S6601C4_nt2v9Ev();
extern void _ZN10S6601C4_nt3v10Ev();
static  VTBL_ENTRY vtc_S6601C4_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S6601C4_nt[0]),
  (VTBL_ENTRY)&_ZN10S6601C4_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v5Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v6Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v7Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v8Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v9Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt3v10Ev,
};
extern VTBL_ENTRY _ZTI10S6601C4_nt[];
VTBL_ENTRY *P__ZTI10S6601C4_nt = _ZTI10S6601C4_nt; 
extern  VTBL_ENTRY _ZTV10S6601C4_nt[];
Class_Descriptor cd_S6601C4_nt = {  "S6601C4_nt", // class name
  0,0,//no base classes
  &(vtc_S6601C4_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI10S6601C4_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S6601C4_nt),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6601C3  : S6601C4_nt {
  int s6601c3f0;
  ::S85C27_nt s6601c3f1;
  virtual void  v3(); // _ZN7S6601C32v3Ev
  virtual void  v4(); // _ZN7S6601C32v4Ev
  ~S6601C3(); // tgen
  S6601C3(); // tgen
};
//SIG(-1 S6601C3) C1{ BC2{ vd v3 v4 v5 v6 v7 v8} v1 v2 Fi FC3{ m Fi[2]}}


void  S6601C3 ::v3(){vfunc_called(this, "_ZN7S6601C32v3Ev");}
void  S6601C3 ::v4(){vfunc_called(this, "_ZN7S6601C32v4Ev");}
S6601C3 ::~S6601C3(){ note_dtor("S6601C3", this);} // tgen
S6601C3 ::S6601C3(){ note_ctor("S6601C3", this);} // tgen

static void Test_S6601C3()
{
  extern Class_Descriptor cd_S6601C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(4,5)];
    init_test(&cd_S6601C3, buf);
    S6601C3 *dp, &lv = *(dp=new (buf) S6601C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(24,16), "sizeof(S6601C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6601C3)");
    check_base_class_offset(lv, (S6601C4_nt*), 0, "S6601C3");
    check_field_offset(lv, s6601c3f0, ABISELECT(8,4), "S6601C3.s6601c3f0");
    check_field_offset(lv, s6601c3f1, ABISELECT(12,8), "S6601C3.s6601c3f1");
    test_class_info(&lv, &cd_S6601C3);
    dp->~S6601C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6601C3(Test_S6601C3, "S6601C3", ABISELECT(24,16));

#else // __cplusplus

extern void _ZN7S6601C3C1Ev();
extern void _ZN7S6601C3D1Ev();
Name_Map name_map_S6601C3[] = {
  NSPAIR(_ZN7S6601C3C1Ev),
  NSPAIR(_ZN7S6601C3D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6601C4_nt;
extern VTBL_ENTRY _ZTI10S6601C4_nt[];
extern  VTBL_ENTRY _ZTV10S6601C4_nt[];
static Base_Class bases_S6601C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6601C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6601C3[];
extern void _ZN7S6601C3D1Ev();
extern void _ZN7S6601C3D0Ev();
extern void _ZN10S6601C4_nt2v5Ev();
extern void _ZN10S6601C4_nt2v6Ev();
extern void _ZN10S6601C4_nt2v7Ev();
extern void _ZN10S6601C4_nt2v8Ev();
extern void _ZN10S6601C4_nt2v9Ev();
extern void _ZN10S6601C4_nt3v10Ev();
extern void _ZN7S6601C32v3Ev();
extern void _ZN7S6601C32v4Ev();
static  VTBL_ENTRY vtc_S6601C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6601C3[0]),
  (VTBL_ENTRY)&_ZN7S6601C3D1Ev,
  (VTBL_ENTRY)&_ZN7S6601C3D0Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v5Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v6Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v7Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v8Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt2v9Ev,
  (VTBL_ENTRY)&_ZN10S6601C4_nt3v10Ev,
  (VTBL_ENTRY)&_ZN7S6601C32v3Ev,
  (VTBL_ENTRY)&_ZN7S6601C32v4Ev,
};
extern VTBL_ENTRY _ZTI7S6601C3[];
extern  VTBL_ENTRY _ZTV7S6601C3[];
Class_Descriptor cd_S6601C3 = {  "S6601C3", // class name
  bases_S6601C3, 1,
  &(vtc_S6601C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(24,16), // object size
  NSPAIRA(_ZTI7S6601C3),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6601C3),12, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6601C1  : S6601C2_nt {
  ::S6601C3 s6601c1f0;
  void *s6601c1f1[2];
  int s6601c1f2[2];
  virtual  ~S6601C1(); // _ZN7S6601C1D1Ev
  virtual void  v1(); // _ZN7S6601C12v1Ev
  S6601C1(); // tgen
};
//SIG(1 S6601C1) C1{ BC2{ vd v2} vd v1 FC3{ BC4{ vd v5 v6 v7 v8 v9 v10} v3 v4 Fi FC5{ m Fi[2]}} Fp[2] Fi[2]}


 S6601C1 ::~S6601C1(){ note_dtor("S6601C1", this);}
void  S6601C1 ::v1(){vfunc_called(this, "_ZN7S6601C12v1Ev");}
S6601C1 ::S6601C1(){ note_ctor("S6601C1", this);} // tgen

static void Test_S6601C1()
{
  extern Class_Descriptor cd_S6601C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,10)];
    init_test(&cd_S6601C1, buf);
    S6601C1 *dp, &lv = *(dp=new (buf) S6601C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,36), "sizeof(S6601C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6601C1)");
    check_base_class_offset(lv, (S6601C2_nt*), 0, "S6601C1");
    check_field_offset(lv, s6601c1f0, ABISELECT(8,4), "S6601C1.s6601c1f0");
    check_field_offset(lv, s6601c1f1, ABISELECT(32,20), "S6601C1.s6601c1f1");
    check_field_offset(lv, s6601c1f2, ABISELECT(48,28), "S6601C1.s6601c1f2");
    test_class_info(&lv, &cd_S6601C1);
    dp->~S6601C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6601C1(Test_S6601C1, "S6601C1", ABISELECT(56,36));

#else // __cplusplus

extern void _ZN7S6601C1C1Ev();
extern void _ZN7S6601C1D1Ev();
Name_Map name_map_S6601C1[] = {
  NSPAIR(_ZN7S6601C1C1Ev),
  NSPAIR(_ZN7S6601C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6601C2_nt;
extern VTBL_ENTRY _ZTI10S6601C2_nt[];
extern  VTBL_ENTRY _ZTV10S6601C2_nt[];
static Base_Class bases_S6601C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6601C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6601C1[];
extern void _ZN7S6601C1D1Ev();
extern void _ZN7S6601C1D0Ev();
extern void _ZN10S6601C2_nt2v2Ev();
extern void _ZN7S6601C12v1Ev();
static  VTBL_ENTRY vtc_S6601C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6601C1[0]),
  (VTBL_ENTRY)&_ZN7S6601C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6601C1D0Ev,
  (VTBL_ENTRY)&_ZN10S6601C2_nt2v2Ev,
  (VTBL_ENTRY)&_ZN7S6601C12v1Ev,
};
extern VTBL_ENTRY _ZTI7S6601C1[];
extern  VTBL_ENTRY _ZTV7S6601C1[];
Class_Descriptor cd_S6601C1 = {  "S6601C1", // class name
  bases_S6601C1, 1,
  &(vtc_S6601C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(56,36), // object size
  NSPAIRA(_ZTI7S6601C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6601C1),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1072C3  : S21969C7_nt {
};
//SIG(-1 S1072C3) C1{ BC2{ m Fi}}



static void Test_S1072C3()
{
  extern Class_Descriptor cd_S1072C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1072C3, buf);
    S1072C3 &lv = *(new (buf) S1072C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1072C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1072C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1072C3");
    test_class_info(&lv, &cd_S1072C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1072C3(Test_S1072C3, "S1072C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1072C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1072C3[];
Class_Descriptor cd_S1072C3 = {  "S1072C3", // class name
  bases_S1072C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1072C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1072C2_nt  : S1072C3 {
  virtual  ~S1072C2_nt(); // _ZN10S1072C2_ntD1Ev
  virtual void  v2(); // _ZN10S1072C2_nt2v2Ev
  S1072C2_nt(); // tgen
};
//SIG(-1 S1072C2_nt) C1{ BC2{ BC3{ m Fi}} vd v1}


 S1072C2_nt ::~S1072C2_nt(){ note_dtor("S1072C2_nt", this);}
void  S1072C2_nt ::v2(){vfunc_called(this, "_ZN10S1072C2_nt2v2Ev");}
S1072C2_nt ::S1072C2_nt(){ note_ctor("S1072C2_nt", this);} // tgen

//skip512 S1072C2_nt

#else // __cplusplus

extern void _ZN10S1072C2_ntC1Ev();
extern void _ZN10S1072C2_ntD1Ev();
Name_Map name_map_S1072C2_nt[] = {
  NSPAIR(_ZN10S1072C2_ntC1Ev),
  NSPAIR(_ZN10S1072C2_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1072C3;
extern VTBL_ENTRY _ZTI7S1072C3[];
static Base_Class bases_S1072C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1072C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S1072C2_nt[];
extern void _ZN10S1072C2_ntD1Ev();
extern void _ZN10S1072C2_ntD0Ev();
extern void _ZN10S1072C2_nt2v2Ev();
static  VTBL_ENTRY vtc_S1072C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S1072C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S1072C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S1072C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S1072C2_nt2v2Ev,
};
extern VTBL_ENTRY _ZTI10S1072C2_nt[];
VTBL_ENTRY *P__ZTI10S1072C2_nt = _ZTI10S1072C2_nt; 
extern  VTBL_ENTRY _ZTV10S1072C2_nt[];
Class_Descriptor cd_S1072C2_nt = {  "S1072C2_nt", // class name
  bases_S1072C2_nt, 2,
  &(vtc_S1072C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI10S1072C2_nt),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV10S1072C2_nt),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1072C7_nt  {
  ::S21969C4_nt s1072c7f0;
  void  mf1072c7(); // _ZN10S1072C7_nt8mf1072c7Ev
};
//SIG(-1 S1072C7_nt) C1{ m FC2{ m Fp Fi[4]}}


void  S1072C7_nt ::mf1072c7(){}

//skip512 S1072C7_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1072C1  : S1072C2_nt {
  void *s1072c1f0;
  ::S21969C3_nt s1072c1f1;
  ::S1072C7_nt s1072c1f2;
  virtual  ~S1072C1(); // _ZN7S1072C1D1Ev
  virtual void  v1(); // _ZN7S1072C12v1Ev
  S1072C1(); // tgen
};
//SIG(1 S1072C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v2} vd v1 Fp FC5{ m FC6{ m Fp Fi[4]}} FC7{ m FC6}}


 S1072C1 ::~S1072C1(){ note_dtor("S1072C1", this);}
void  S1072C1 ::v1(){vfunc_called(this, "_ZN7S1072C12v1Ev");}
S1072C1 ::S1072C1(){ note_ctor("S1072C1", this);} // tgen

static void Test_S1072C1()
{
  extern Class_Descriptor cd_S1072C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(10,14)];
    init_test(&cd_S1072C1, buf);
    S1072C1 *dp, &lv = *(dp=new (buf) S1072C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(72,52), "sizeof(S1072C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1072C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1072C3*)(S1072C2_nt*), ABISELECT(8,4), "S1072C1");
    check_base_class_offset(lv, (S1072C3*)(S1072C2_nt*), ABISELECT(8,4), "S1072C1");
    check_base_class_offset(lv, (S1072C2_nt*), 0, "S1072C1");
    check_field_offset(lv, s1072c1f0, ABISELECT(16,8), "S1072C1.s1072c1f0");
    check_field_offset(lv, s1072c1f1, ABISELECT(24,12), "S1072C1.s1072c1f1");
    check_field_offset(lv, s1072c1f2, ABISELECT(48,32), "S1072C1.s1072c1f2");
    test_class_info(&lv, &cd_S1072C1);
    dp->~S1072C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1072C1(Test_S1072C1, "S1072C1", ABISELECT(72,52));

#else // __cplusplus

extern void _ZN7S1072C1C1Ev();
extern void _ZN7S1072C1D1Ev();
Name_Map name_map_S1072C1[] = {
  NSPAIR(_ZN7S1072C1C1Ev),
  NSPAIR(_ZN7S1072C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1072C3;
extern VTBL_ENTRY _ZTI7S1072C3[];
extern Class_Descriptor cd_S1072C2_nt;
extern VTBL_ENTRY _ZTI10S1072C2_nt[];
extern  VTBL_ENTRY _ZTV10S1072C2_nt[];
static Base_Class bases_S1072C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1072C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1072C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1072C1[];
extern void _ZN7S1072C1D1Ev();
extern void _ZN7S1072C1D0Ev();
extern void _ZN10S1072C2_nt2v2Ev();
extern void _ZN7S1072C12v1Ev();
static  VTBL_ENTRY vtc_S1072C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1072C1[0]),
  (VTBL_ENTRY)&_ZN7S1072C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1072C1D0Ev,
  (VTBL_ENTRY)&_ZN10S1072C2_nt2v2Ev,
  (VTBL_ENTRY)&_ZN7S1072C12v1Ev,
};
extern VTBL_ENTRY _ZTI7S1072C1[];
extern  VTBL_ENTRY _ZTV7S1072C1[];
Class_Descriptor cd_S1072C1 = {  "S1072C1", // class name
  bases_S1072C1, 3,
  &(vtc_S1072C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(72,52), // object size
  NSPAIRA(_ZTI7S1072C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1072C1),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S4753C3  {
  ::S9701C3_nt s4753c3f0;
  int s4753c3f1[2];
  char s4753c3f2;
  virtual  ~S4753C3(); // _ZN7S4753C3D1Ev
  virtual void  v3(); // _ZN7S4753C32v3Ev
  virtual void  v4(); // _ZN7S4753C32v4Ev
  virtual void  v5(); // _ZN7S4753C32v5Ev
  S4753C3(); // tgen
};
//SIG(-1 S4753C3) C1{ vd v1 v2 v3 FC2{ m Fp Fi FC3{ m}} Fi[2] Fc}


 S4753C3 ::~S4753C3(){ note_dtor("S4753C3", this);}
void  S4753C3 ::v3(){vfunc_called(this, "_ZN7S4753C32v3Ev");}
void  S4753C3 ::v4(){vfunc_called(this, "_ZN7S4753C32v4Ev");}
void  S4753C3 ::v5(){vfunc_called(this, "_ZN7S4753C32v5Ev");}
S4753C3 ::S4753C3(){ note_ctor("S4753C3", this);} // tgen

static void Test_S4753C3()
{
  extern Class_Descriptor cd_S4753C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,8)];
    init_test(&cd_S4753C3, buf);
    S4753C3 *dp, &lv = *(dp=new (buf) S4753C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S4753C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S4753C3)");
    check_field_offset(lv, s4753c3f0, ABISELECT(8,4), "S4753C3.s4753c3f0");
    check_field_offset(lv, s4753c3f1, ABISELECT(24,16), "S4753C3.s4753c3f1");
    check_field_offset(lv, s4753c3f2, ABISELECT(32,24), "S4753C3.s4753c3f2");
    test_class_info(&lv, &cd_S4753C3);
    dp->~S4753C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS4753C3(Test_S4753C3, "S4753C3", ABISELECT(40,28));

#else // __cplusplus

extern void _ZN7S4753C3C1Ev();
extern void _ZN7S4753C3D1Ev();
Name_Map name_map_S4753C3[] = {
  NSPAIR(_ZN7S4753C3C1Ev),
  NSPAIR(_ZN7S4753C3D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S4753C3[];
extern void _ZN7S4753C3D1Ev();
extern void _ZN7S4753C3D0Ev();
extern void _ZN7S4753C32v3Ev();
extern void _ZN7S4753C32v4Ev();
extern void _ZN7S4753C32v5Ev();
static  VTBL_ENTRY vtc_S4753C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S4753C3[0]),
  (VTBL_ENTRY)&_ZN7S4753C3D1Ev,
  (VTBL_ENTRY)&_ZN7S4753C3D0Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v3Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v4Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v5Ev,
};
extern VTBL_ENTRY _ZTI7S4753C3[];
extern  VTBL_ENTRY _ZTV7S4753C3[];
Class_Descriptor cd_S4753C3 = {  "S4753C3", // class name
  0,0,//no base classes
  &(vtc_S4753C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,28), // object size
  NSPAIRA(_ZTI7S4753C3),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S4753C3),7, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S4753C2_nt  : S4753C3 {
  void *s4753c2f0;
  virtual void  v6(); // _ZN10S4753C2_nt2v6Ev
  virtual void  v7(); // _ZN10S4753C2_nt2v7Ev
  ~S4753C2_nt(); // tgen
  S4753C2_nt(); // tgen
};
//SIG(-1 S4753C2_nt) C1{ BC2{ vd v3 v4 v5 FC3{ m Fp Fi FC4{ m}} Fi[2] Fc} v1 v2 Fp}


void  S4753C2_nt ::v6(){vfunc_called(this, "_ZN10S4753C2_nt2v6Ev");}
void  S4753C2_nt ::v7(){vfunc_called(this, "_ZN10S4753C2_nt2v7Ev");}
S4753C2_nt ::~S4753C2_nt(){ note_dtor("S4753C2_nt", this);} // tgen
S4753C2_nt ::S4753C2_nt(){ note_ctor("S4753C2_nt", this);} // tgen

//skip512 S4753C2_nt

#else // __cplusplus

extern void _ZN10S4753C2_ntC1Ev();
extern void _ZN10S4753C2_ntD1Ev();
Name_Map name_map_S4753C2_nt[] = {
  NSPAIR(_ZN10S4753C2_ntC1Ev),
  NSPAIR(_ZN10S4753C2_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S4753C3;
extern VTBL_ENTRY _ZTI7S4753C3[];
extern  VTBL_ENTRY _ZTV7S4753C3[];
static Base_Class bases_S4753C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S4753C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S4753C2_nt[];
extern void _ZN10S4753C2_ntD1Ev();
extern void _ZN10S4753C2_ntD0Ev();
extern void _ZN7S4753C32v3Ev();
extern void _ZN7S4753C32v4Ev();
extern void _ZN7S4753C32v5Ev();
extern void _ZN10S4753C2_nt2v6Ev();
extern void _ZN10S4753C2_nt2v7Ev();
static  VTBL_ENTRY vtc_S4753C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S4753C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S4753C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S4753C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v3Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v4Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v5Ev,
  (VTBL_ENTRY)&_ZN10S4753C2_nt2v6Ev,
  (VTBL_ENTRY)&_ZN10S4753C2_nt2v7Ev,
};
extern VTBL_ENTRY _ZTI10S4753C2_nt[];
VTBL_ENTRY *P__ZTI10S4753C2_nt = _ZTI10S4753C2_nt; 
extern  VTBL_ENTRY _ZTV10S4753C2_nt[];
Class_Descriptor cd_S4753C2_nt = {  "S4753C2_nt", // class name
  bases_S4753C2_nt, 1,
  &(vtc_S4753C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(48,32), // object size
  NSPAIRA(_ZTI10S4753C2_nt),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV10S4753C2_nt),9, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S4753C1  : S4753C2_nt {
  ::S9701C3_nt s4753c1f0;
  int s4753c1f1;
  __tsi64 s4753c1f2;
  virtual  ~S4753C1(); // _ZN7S4753C1D1Ev
  virtual void  v1(); // _ZN7S4753C12v1Ev
  virtual void  v2(); // _ZN7S4753C12v2Ev
  S4753C1(); // tgen
};
//SIG(1 S4753C1) C1{ BC2{ BC3{ vd v3 v4 v5 FC4{ m Fp Fi FC5{ m}} Fi[2] Fc} v6 v7 Fp} vd v1 v2 FC4 Fi FL}


 S4753C1 ::~S4753C1(){ note_dtor("S4753C1", this);}
void  S4753C1 ::v1(){vfunc_called(this, "_ZN7S4753C12v1Ev");}
void  S4753C1 ::v2(){vfunc_called(this, "_ZN7S4753C12v2Ev");}
S4753C1 ::S4753C1(){ note_ctor("S4753C1", this);} // tgen

static void Test_S4753C1()
{
  extern Class_Descriptor cd_S4753C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(11,15)];
    init_test(&cd_S4753C1, buf);
    S4753C1 *dp, &lv = *(dp=new (buf) S4753C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(80,56), "sizeof(S4753C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S4753C1)");
    check_base_class_offset(lv, (S4753C3*)(S4753C2_nt*), 0, "S4753C1");
    check_base_class_offset(lv, (S4753C2_nt*), 0, "S4753C1");
    check_field_offset(lv, s4753c1f0, ABISELECT(48,32), "S4753C1.s4753c1f0");
    check_field_offset(lv, s4753c1f1, ABISELECT(64,44), "S4753C1.s4753c1f1");
    check_field_offset(lv, s4753c1f2, ABISELECT(72,48), "S4753C1.s4753c1f2");
    test_class_info(&lv, &cd_S4753C1);
    dp->~S4753C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS4753C1(Test_S4753C1, "S4753C1", ABISELECT(80,56));

#else // __cplusplus

extern void _ZN7S4753C1C1Ev();
extern void _ZN7S4753C1D1Ev();
Name_Map name_map_S4753C1[] = {
  NSPAIR(_ZN7S4753C1C1Ev),
  NSPAIR(_ZN7S4753C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S4753C3;
extern VTBL_ENTRY _ZTI7S4753C3[];
extern  VTBL_ENTRY _ZTV7S4753C3[];
extern Class_Descriptor cd_S4753C2_nt;
extern VTBL_ENTRY _ZTI10S4753C2_nt[];
extern  VTBL_ENTRY _ZTV10S4753C2_nt[];
static Base_Class bases_S4753C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S4753C3,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S4753C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S4753C1[];
extern void _ZN7S4753C1D1Ev();
extern void _ZN7S4753C1D0Ev();
extern void _ZN7S4753C32v3Ev();
extern void _ZN7S4753C32v4Ev();
extern void _ZN7S4753C32v5Ev();
extern void _ZN10S4753C2_nt2v6Ev();
extern void _ZN10S4753C2_nt2v7Ev();
extern void _ZN7S4753C12v1Ev();
extern void _ZN7S4753C12v2Ev();
static  VTBL_ENTRY vtc_S4753C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S4753C1[0]),
  (VTBL_ENTRY)&_ZN7S4753C1D1Ev,
  (VTBL_ENTRY)&_ZN7S4753C1D0Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v3Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v4Ev,
  (VTBL_ENTRY)&_ZN7S4753C32v5Ev,
  (VTBL_ENTRY)&_ZN10S4753C2_nt2v6Ev,
  (VTBL_ENTRY)&_ZN10S4753C2_nt2v7Ev,
  (VTBL_ENTRY)&_ZN7S4753C12v1Ev,
  (VTBL_ENTRY)&_ZN7S4753C12v2Ev,
};
extern VTBL_ENTRY _ZTI7S4753C1[];
extern  VTBL_ENTRY _ZTV7S4753C1[];
Class_Descriptor cd_S4753C1 = {  "S4753C1", // class name
  bases_S4753C1, 2,
  &(vtc_S4753C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(80,56), // object size
  NSPAIRA(_ZTI7S4753C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S4753C1),11, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6871C2  {
  virtual  ~S6871C2(); // _ZN7S6871C2D1Ev
  virtual void  v4(); // _ZN7S6871C22v4Ev
  virtual void  v5(); // _ZN7S6871C22v5Ev
  virtual void  v6(); // _ZN7S6871C22v6Ev
  virtual void  v7(); // _ZN7S6871C22v7Ev
  virtual void  v8(); // _ZN7S6871C22v8Ev
  virtual void  v9(); // _ZN7S6871C22v9Ev
  S6871C2(); // tgen
};
//SIG(-1 S6871C2) C1{ vd v1 v2 v3 v4 v5 v6}


 S6871C2 ::~S6871C2(){ note_dtor("S6871C2", this);}
void  S6871C2 ::v4(){vfunc_called(this, "_ZN7S6871C22v4Ev");}
void  S6871C2 ::v5(){vfunc_called(this, "_ZN7S6871C22v5Ev");}
void  S6871C2 ::v6(){vfunc_called(this, "_ZN7S6871C22v6Ev");}
void  S6871C2 ::v7(){vfunc_called(this, "_ZN7S6871C22v7Ev");}
void  S6871C2 ::v8(){vfunc_called(this, "_ZN7S6871C22v8Ev");}
void  S6871C2 ::v9(){vfunc_called(this, "_ZN7S6871C22v9Ev");}
S6871C2 ::S6871C2(){ note_ctor("S6871C2", this);} // tgen

static void Test_S6871C2()
{
  extern Class_Descriptor cd_S6871C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[2];
    init_test(&cd_S6871C2, buf);
    S6871C2 *dp, &lv = *(dp=new (buf) S6871C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(S6871C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6871C2)");
    test_class_info(&lv, &cd_S6871C2);
    dp->~S6871C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6871C2(Test_S6871C2, "S6871C2", ABISELECT(8,4));

#else // __cplusplus

extern void _ZN7S6871C2C1Ev();
extern void _ZN7S6871C2D1Ev();
Name_Map name_map_S6871C2[] = {
  NSPAIR(_ZN7S6871C2C1Ev),
  NSPAIR(_ZN7S6871C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6871C2[];
extern void _ZN7S6871C2D1Ev();
extern void _ZN7S6871C2D0Ev();
extern void _ZN7S6871C22v4Ev();
extern void _ZN7S6871C22v5Ev();
extern void _ZN7S6871C22v6Ev();
extern void _ZN7S6871C22v7Ev();
extern void _ZN7S6871C22v8Ev();
extern void _ZN7S6871C22v9Ev();
static  VTBL_ENTRY vtc_S6871C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6871C2[0]),
  (VTBL_ENTRY)&_ZN7S6871C2D1Ev,
  (VTBL_ENTRY)&_ZN7S6871C2D0Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v8Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v9Ev,
};
extern VTBL_ENTRY _ZTI7S6871C2[];
extern  VTBL_ENTRY _ZTV7S6871C2[];
Class_Descriptor cd_S6871C2 = {  "S6871C2", // class name
  0,0,//no base classes
  &(vtc_S6871C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI7S6871C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6871C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6871C4_nt  {
  long s6871c4f0[4];
};
//SIG(-1 S6871C4_nt) C1{ Fl[4]}



//skip512 S6871C4_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6871C3_nt  {
  ::S6871C4_nt s6871c3f0;
  void  mf6871c3(); // _ZN10S6871C3_nt8mf6871c3Ev
};
//SIG(-1 S6871C3_nt) C1{ m FC2{ Fl[4]}}


void  S6871C3_nt ::mf6871c3(){}

//skip512 S6871C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6871C1  : S6871C2 {
  void *s6871c1f0[3];
  __tsi64 s6871c1f1;
  int s6871c1f2[3];
  ::S6871C3_nt s6871c1f3;
  char s6871c1f4[2];
  virtual  ~S6871C1(); // _ZN7S6871C1D1Ev
  virtual void  v1(); // _ZN7S6871C12v1Ev
  virtual void  v2(); // _ZN7S6871C12v2Ev
  virtual void  v3(); // _ZN7S6871C12v3Ev
  S6871C1(); // tgen
};
//SIG(1 S6871C1) C1{ BC2{ vd v4 v5 v6 v7 v8 v9} vd v1 v2 v3 Fp[3] FL Fi[3] FC3{ m FC4{ Fl[4]}} Fc[2]}


 S6871C1 ::~S6871C1(){ note_dtor("S6871C1", this);}
void  S6871C1 ::v1(){vfunc_called(this, "_ZN7S6871C12v1Ev");}
void  S6871C1 ::v2(){vfunc_called(this, "_ZN7S6871C12v2Ev");}
void  S6871C1 ::v3(){vfunc_called(this, "_ZN7S6871C12v3Ev");}
S6871C1 ::S6871C1(){ note_ctor("S6871C1", this);} // tgen

static void Test_S6871C1()
{
  extern Class_Descriptor cd_S6871C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(13,15)];
    init_test(&cd_S6871C1, buf);
    S6871C1 *dp, &lv = *(dp=new (buf) S6871C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,56), "sizeof(S6871C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6871C1)");
    check_base_class_offset(lv, (S6871C2*), 0, "S6871C1");
    check_field_offset(lv, s6871c1f0, ABISELECT(8,4), "S6871C1.s6871c1f0");
    check_field_offset(lv, s6871c1f1, ABISELECT(32,16), "S6871C1.s6871c1f1");
    check_field_offset(lv, s6871c1f2, ABISELECT(40,24), "S6871C1.s6871c1f2");
    check_field_offset(lv, s6871c1f3, ABISELECT(56,36), "S6871C1.s6871c1f3");
    check_field_offset(lv, s6871c1f4, ABISELECT(88,52), "S6871C1.s6871c1f4");
    test_class_info(&lv, &cd_S6871C1);
    dp->~S6871C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6871C1(Test_S6871C1, "S6871C1", ABISELECT(96,56));

#else // __cplusplus

extern void _ZN7S6871C1C1Ev();
extern void _ZN7S6871C1D1Ev();
Name_Map name_map_S6871C1[] = {
  NSPAIR(_ZN7S6871C1C1Ev),
  NSPAIR(_ZN7S6871C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6871C2;
extern VTBL_ENTRY _ZTI7S6871C2[];
extern  VTBL_ENTRY _ZTV7S6871C2[];
static Base_Class bases_S6871C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6871C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6871C1[];
extern void _ZN7S6871C1D1Ev();
extern void _ZN7S6871C1D0Ev();
extern void _ZN7S6871C22v4Ev();
extern void _ZN7S6871C22v5Ev();
extern void _ZN7S6871C22v6Ev();
extern void _ZN7S6871C22v7Ev();
extern void _ZN7S6871C22v8Ev();
extern void _ZN7S6871C22v9Ev();
extern void _ZN7S6871C12v1Ev();
extern void _ZN7S6871C12v2Ev();
extern void _ZN7S6871C12v3Ev();
static  VTBL_ENTRY vtc_S6871C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6871C1[0]),
  (VTBL_ENTRY)&_ZN7S6871C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6871C1D0Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v8Ev,
  (VTBL_ENTRY)&_ZN7S6871C22v9Ev,
  (VTBL_ENTRY)&_ZN7S6871C12v1Ev,
  (VTBL_ENTRY)&_ZN7S6871C12v2Ev,
  (VTBL_ENTRY)&_ZN7S6871C12v3Ev,
};
extern VTBL_ENTRY _ZTI7S6871C1[];
extern  VTBL_ENTRY _ZTV7S6871C1[];
Class_Descriptor cd_S6871C1 = {  "S6871C1", // class name
  bases_S6871C1, 1,
  &(vtc_S6871C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,56), // object size
  NSPAIRA(_ZTI7S6871C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6871C1),13, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9664C2  {
  ::S9701C3_nt s9664c2f0;
  int s9664c2f1[2];
  char s9664c2f2;
  virtual  ~S9664C2(); // _ZN7S9664C2D1Ev
  virtual void  v4(); // _ZN7S9664C22v4Ev
  virtual void  v5(); // _ZN7S9664C22v5Ev
  virtual void  v6(); // _ZN7S9664C22v6Ev
  S9664C2(); // tgen
};
//SIG(-1 S9664C2) C1{ vd v1 v2 v3 FC2{ m Fp Fi FC3{ m}} Fi[2] Fc}


 S9664C2 ::~S9664C2(){ note_dtor("S9664C2", this);}
void  S9664C2 ::v4(){vfunc_called(this, "_ZN7S9664C22v4Ev");}
void  S9664C2 ::v5(){vfunc_called(this, "_ZN7S9664C22v5Ev");}
void  S9664C2 ::v6(){vfunc_called(this, "_ZN7S9664C22v6Ev");}
S9664C2 ::S9664C2(){ note_ctor("S9664C2", this);} // tgen

static void Test_S9664C2()
{
  extern Class_Descriptor cd_S9664C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,8)];
    init_test(&cd_S9664C2, buf);
    S9664C2 *dp, &lv = *(dp=new (buf) S9664C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S9664C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9664C2)");
    check_field_offset(lv, s9664c2f0, ABISELECT(8,4), "S9664C2.s9664c2f0");
    check_field_offset(lv, s9664c2f1, ABISELECT(24,16), "S9664C2.s9664c2f1");
    check_field_offset(lv, s9664c2f2, ABISELECT(32,24), "S9664C2.s9664c2f2");
    test_class_info(&lv, &cd_S9664C2);
    dp->~S9664C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9664C2(Test_S9664C2, "S9664C2", ABISELECT(40,28));

#else // __cplusplus

extern void _ZN7S9664C2C1Ev();
extern void _ZN7S9664C2D1Ev();
Name_Map name_map_S9664C2[] = {
  NSPAIR(_ZN7S9664C2C1Ev),
  NSPAIR(_ZN7S9664C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S9664C2[];
extern void _ZN7S9664C2D1Ev();
extern void _ZN7S9664C2D0Ev();
extern void _ZN7S9664C22v4Ev();
extern void _ZN7S9664C22v5Ev();
extern void _ZN7S9664C22v6Ev();
static  VTBL_ENTRY vtc_S9664C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9664C2[0]),
  (VTBL_ENTRY)&_ZN7S9664C2D1Ev,
  (VTBL_ENTRY)&_ZN7S9664C2D0Ev,
  (VTBL_ENTRY)&_ZN7S9664C22v4Ev,
  (VTBL_ENTRY)&_ZN7S9664C22v5Ev,
  (VTBL_ENTRY)&_ZN7S9664C22v6Ev,
};
extern VTBL_ENTRY _ZTI7S9664C2[];
extern  VTBL_ENTRY _ZTV7S9664C2[];
Class_Descriptor cd_S9664C2 = {  "S9664C2", // class name
  0,0,//no base classes
  &(vtc_S9664C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,28), // object size
  NSPAIRA(_ZTI7S9664C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S9664C2),7, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9664C5_nt  {
  __tsi64 s9664c5f0[4];
  void  mf9664c5(); // _ZN10S9664C5_nt8mf9664c5Ev
};
//SIG(-1 S9664C5_nt) C1{ m FL[4]}


void  S9664C5_nt ::mf9664c5(){}

//skip512 S9664C5_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9664C1  : S9664C2 {
  ::S9664C5_nt s9664c1f0;
  void *s9664c1f1;
  int s9664c1f2;
  virtual  ~S9664C1(); // _ZN7S9664C1D1Ev
  virtual void  v1(); // _ZN7S9664C12v1Ev
  virtual void  v2(); // _ZN7S9664C12v2Ev
  virtual void  v3(); // _ZN7S9664C12v3Ev
  S9664C1(); // tgen
};
//SIG(1 S9664C1) C1{ BC2{ vd v4 v5 v6 FC3{ m Fp Fi FC4{ m}} Fi[2] Fc} vd v1 v2 v3 FC5{ m FL[4]} Fp Fi}


 S9664C1 ::~S9664C1(){ note_dtor("S9664C1", this);}
void  S9664C1 ::v1(){vfunc_called(this, "_ZN7S9664C12v1Ev");}
void  S9664C1 ::v2(){vfunc_called(this, "_ZN7S9664C12v2Ev");}
void  S9664C1 ::v3(){vfunc_called(this, "_ZN7S9664C12v3Ev");}
S9664C1 ::S9664C1(){ note_ctor("S9664C1", this);} // tgen

static void Test_S9664C1()
{
  extern Class_Descriptor cd_S9664C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(12,18)];
    init_test(&cd_S9664C1, buf);
    S9664C1 *dp, &lv = *(dp=new (buf) S9664C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(88,68), "sizeof(S9664C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9664C1)");
    check_base_class_offset(lv, (S9664C2*), 0, "S9664C1");
    check_field_offset(lv, s9664c1f0, ABISELECT(40,28), "S9664C1.s9664c1f0");
    check_field_offset(lv, s9664c1f1, ABISELECT(72,60), "S9664C1.s9664c1f1");
    check_field_offset(lv, s9664c1f2, ABISELECT(80,64), "S9664C1.s9664c1f2");
    test_class_info(&lv, &cd_S9664C1);
    dp->~S9664C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9664C1(Test_S9664C1, "S9664C1", ABISELECT(88,68));

#else // __cplusplus

extern void _ZN7S9664C1C1Ev();
extern void _ZN7S9664C1D1Ev();
Name_Map name_map_S9664C1[] = {
  NSPAIR(_ZN7S9664C1C1Ev),
  NSPAIR(_ZN7S9664C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9664C2;
extern VTBL_ENTRY _ZTI7S9664C2[];
extern  VTBL_ENTRY _ZTV7S9664C2[];
static Base_Class bases_S9664C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9664C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S9664C1[];
extern void _ZN7S9664C1D1Ev();
extern void _ZN7S9664C1D0Ev();
extern void _ZN7S9664C22v4Ev();
extern void _ZN7S9664C22v5Ev();
extern void _ZN7S9664C22v6Ev();
extern void _ZN7S9664C12v1Ev();
extern void _ZN7S9664C12v2Ev();
extern void _ZN7S9664C12v3Ev();
static  VTBL_ENTRY vtc_S9664C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9664C1[0]),
  (VTBL_ENTRY)&_ZN7S9664C1D1Ev,
  (VTBL_ENTRY)&_ZN7S9664C1D0Ev,
  (VTBL_ENTRY)&_ZN7S9664C22v4Ev,
  (VTBL_ENTRY)&_ZN7S9664C22v5Ev,
  (VTBL_ENTRY)&_ZN7S9664C22v6Ev,
  (VTBL_ENTRY)&_ZN7S9664C12v1Ev,
  (VTBL_ENTRY)&_ZN7S9664C12v2Ev,
  (VTBL_ENTRY)&_ZN7S9664C12v3Ev,
};
extern VTBL_ENTRY _ZTI7S9664C1[];
extern  VTBL_ENTRY _ZTV7S9664C1[];
Class_Descriptor cd_S9664C1 = {  "S9664C1", // class name
  bases_S9664C1, 1,
  &(vtc_S9664C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(88,68), // object size
  NSPAIRA(_ZTI7S9664C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S9664C1),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1117C3  : S21969C7_nt {
};
//SIG(-1 S1117C3) C1{ BC2{ m Fi}}



static void Test_S1117C3()
{
  extern Class_Descriptor cd_S1117C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1117C3, buf);
    S1117C3 &lv = *(new (buf) S1117C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1117C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1117C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1117C3");
    test_class_info(&lv, &cd_S1117C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1117C3(Test_S1117C3, "S1117C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1117C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1117C3[];
Class_Descriptor cd_S1117C3 = {  "S1117C3", // class name
  bases_S1117C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1117C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1117C2  : S1117C3 {
  virtual  ~S1117C2(); // _ZN7S1117C2D1Ev
  virtual void  v7(); // _ZN7S1117C22v7Ev
  virtual void  v8(); // _ZN7S1117C22v8Ev
  virtual void  v9(); // _ZN7S1117C22v9Ev
  virtual void  v10(); // _ZN7S1117C23v10Ev
  virtual void  v11(); // _ZN7S1117C23v11Ev
  virtual void  v12(); // _ZN7S1117C23v12Ev
  S1117C2(); // tgen
};
//SIG(-1 S1117C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1117C2 ::~S1117C2(){ note_dtor("S1117C2", this);}
void  S1117C2 ::v7(){vfunc_called(this, "_ZN7S1117C22v7Ev");}
void  S1117C2 ::v8(){vfunc_called(this, "_ZN7S1117C22v8Ev");}
void  S1117C2 ::v9(){vfunc_called(this, "_ZN7S1117C22v9Ev");}
void  S1117C2 ::v10(){vfunc_called(this, "_ZN7S1117C23v10Ev");}
void  S1117C2 ::v11(){vfunc_called(this, "_ZN7S1117C23v11Ev");}
void  S1117C2 ::v12(){vfunc_called(this, "_ZN7S1117C23v12Ev");}
S1117C2 ::S1117C2(){ note_ctor("S1117C2", this);} // tgen

static void Test_S1117C2()
{
  extern Class_Descriptor cd_S1117C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1117C2, buf);
    S1117C2 *dp, &lv = *(dp=new (buf) S1117C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1117C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1117C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1117C3*), ABISELECT(8,4), "S1117C2");
    check_base_class_offset(lv, (S1117C3*), ABISELECT(8,4), "S1117C2");
    test_class_info(&lv, &cd_S1117C2);
    dp->~S1117C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1117C2(Test_S1117C2, "S1117C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1117C2C1Ev();
extern void _ZN7S1117C2D1Ev();
Name_Map name_map_S1117C2[] = {
  NSPAIR(_ZN7S1117C2C1Ev),
  NSPAIR(_ZN7S1117C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1117C3;
extern VTBL_ENTRY _ZTI7S1117C3[];
static Base_Class bases_S1117C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1117C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1117C2[];
extern void _ZN7S1117C2D1Ev();
extern void _ZN7S1117C2D0Ev();
extern void _ZN7S1117C22v7Ev();
extern void _ZN7S1117C22v8Ev();
extern void _ZN7S1117C22v9Ev();
extern void _ZN7S1117C23v10Ev();
extern void _ZN7S1117C23v11Ev();
extern void _ZN7S1117C23v12Ev();
static  VTBL_ENTRY vtc_S1117C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1117C2[0]),
  (VTBL_ENTRY)&_ZN7S1117C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1117C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1117C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1117C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1117C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1117C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1117C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1117C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1117C2[];
extern  VTBL_ENTRY _ZTV7S1117C2[];
Class_Descriptor cd_S1117C2 = {  "S1117C2", // class name
  bases_S1117C2, 2,
  &(vtc_S1117C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1117C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1117C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1117C5  {
  __tsi64 s1117c5f0[16];
  void  mf1117c5(); // _ZN7S1117C58mf1117c5Ev
};
//SIG(-1 S1117C5) C1{ m FL[16]}


void  S1117C5 ::mf1117c5(){}

static void Test_S1117C5()
{
  {
    init_simple_test("S1117C5");
    S1117C5 lv;
    check2(sizeof(lv), 128, "sizeof(S1117C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1117C5)");
    check_field_offset(lv, s1117c5f0, 0, "S1117C5.s1117c5f0");
  }
}
static Arrange_To_Call_Me vS1117C5(Test_S1117C5, "S1117C5", 128);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1117C1  : S1117C2 {
  ::S1117C5 s1117c1f0;
  virtual void  v1(); // _ZN7S1117C12v1Ev
  virtual void  v2(); // _ZN7S1117C12v2Ev
  virtual void  v3(); // _ZN7S1117C12v3Ev
  virtual void  v4(); // _ZN7S1117C12v4Ev
  virtual void  v5(); // _ZN7S1117C12v5Ev
  virtual void  v6(); // _ZN7S1117C12v6Ev
  ~S1117C1(); // tgen
  S1117C1(); // tgen
};
//SIG(1 S1117C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FC5{ m FL[16]}}


void  S1117C1 ::v1(){vfunc_called(this, "_ZN7S1117C12v1Ev");}
void  S1117C1 ::v2(){vfunc_called(this, "_ZN7S1117C12v2Ev");}
void  S1117C1 ::v3(){vfunc_called(this, "_ZN7S1117C12v3Ev");}
void  S1117C1 ::v4(){vfunc_called(this, "_ZN7S1117C12v4Ev");}
void  S1117C1 ::v5(){vfunc_called(this, "_ZN7S1117C12v5Ev");}
void  S1117C1 ::v6(){vfunc_called(this, "_ZN7S1117C12v6Ev");}
S1117C1 ::~S1117C1(){ note_dtor("S1117C1", this);} // tgen
S1117C1 ::S1117C1(){ note_ctor("S1117C1", this);} // tgen

static void Test_S1117C1()
{
  extern Class_Descriptor cd_S1117C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(19,35)];
    init_test(&cd_S1117C1, buf);
    S1117C1 *dp, &lv = *(dp=new (buf) S1117C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(144,136), "sizeof(S1117C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1117C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1117C3*)(S1117C2*), ABISELECT(8,4), "S1117C1");
    check_base_class_offset(lv, (S1117C3*)(S1117C2*), ABISELECT(8,4), "S1117C1");
    check_base_class_offset(lv, (S1117C2*), 0, "S1117C1");
    check_field_offset(lv, s1117c1f0, ABISELECT(16,8), "S1117C1.s1117c1f0");
    test_class_info(&lv, &cd_S1117C1);
    dp->~S1117C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1117C1(Test_S1117C1, "S1117C1", ABISELECT(144,136));

#else // __cplusplus

extern void _ZN7S1117C1C1Ev();
extern void _ZN7S1117C1D1Ev();
Name_Map name_map_S1117C1[] = {
  NSPAIR(_ZN7S1117C1C1Ev),
  NSPAIR(_ZN7S1117C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1117C3;
extern VTBL_ENTRY _ZTI7S1117C3[];
extern Class_Descriptor cd_S1117C2;
extern VTBL_ENTRY _ZTI7S1117C2[];
extern  VTBL_ENTRY _ZTV7S1117C2[];
static Base_Class bases_S1117C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1117C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1117C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1117C1[];
extern void _ZN7S1117C1D1Ev();
extern void _ZN7S1117C1D0Ev();
extern void _ZN7S1117C22v7Ev();
extern void _ZN7S1117C22v8Ev();
extern void _ZN7S1117C22v9Ev();
extern void _ZN7S1117C23v10Ev();
extern void _ZN7S1117C23v11Ev();
extern void _ZN7S1117C23v12Ev();
extern void _ZN7S1117C12v1Ev();
extern void _ZN7S1117C12v2Ev();
extern void _ZN7S1117C12v3Ev();
extern void _ZN7S1117C12v4Ev();
extern void _ZN7S1117C12v5Ev();
extern void _ZN7S1117C12v6Ev();
static  VTBL_ENTRY vtc_S1117C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1117C1[0]),
  (VTBL_ENTRY)&_ZN7S1117C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1117C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1117C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1117C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1117C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1117C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1117C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1117C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1117C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1117C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1117C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1117C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1117C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1117C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1117C1[];
extern  VTBL_ENTRY _ZTV7S1117C1[];
Class_Descriptor cd_S1117C1 = {  "S1117C1", // class name
  bases_S1117C1, 3,
  &(vtc_S1117C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(144,136), // object size
  NSPAIRA(_ZTI7S1117C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1117C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1116C3  : S21969C7_nt {
};
//SIG(-1 S1116C3) C1{ BC2{ m Fi}}



static void Test_S1116C3()
{
  extern Class_Descriptor cd_S1116C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1116C3, buf);
    S1116C3 &lv = *(new (buf) S1116C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1116C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1116C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1116C3");
    test_class_info(&lv, &cd_S1116C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1116C3(Test_S1116C3, "S1116C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1116C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1116C3[];
Class_Descriptor cd_S1116C3 = {  "S1116C3", // class name
  bases_S1116C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1116C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1116C2  : S1116C3 {
  virtual  ~S1116C2(); // _ZN7S1116C2D1Ev
  virtual void  v7(); // _ZN7S1116C22v7Ev
  virtual void  v8(); // _ZN7S1116C22v8Ev
  virtual void  v9(); // _ZN7S1116C22v9Ev
  virtual void  v10(); // _ZN7S1116C23v10Ev
  virtual void  v11(); // _ZN7S1116C23v11Ev
  virtual void  v12(); // _ZN7S1116C23v12Ev
  S1116C2(); // tgen
};
//SIG(-1 S1116C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1116C2 ::~S1116C2(){ note_dtor("S1116C2", this);}
void  S1116C2 ::v7(){vfunc_called(this, "_ZN7S1116C22v7Ev");}
void  S1116C2 ::v8(){vfunc_called(this, "_ZN7S1116C22v8Ev");}
void  S1116C2 ::v9(){vfunc_called(this, "_ZN7S1116C22v9Ev");}
void  S1116C2 ::v10(){vfunc_called(this, "_ZN7S1116C23v10Ev");}
void  S1116C2 ::v11(){vfunc_called(this, "_ZN7S1116C23v11Ev");}
void  S1116C2 ::v12(){vfunc_called(this, "_ZN7S1116C23v12Ev");}
S1116C2 ::S1116C2(){ note_ctor("S1116C2", this);} // tgen

static void Test_S1116C2()
{
  extern Class_Descriptor cd_S1116C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1116C2, buf);
    S1116C2 *dp, &lv = *(dp=new (buf) S1116C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1116C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1116C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1116C3*), ABISELECT(8,4), "S1116C2");
    check_base_class_offset(lv, (S1116C3*), ABISELECT(8,4), "S1116C2");
    test_class_info(&lv, &cd_S1116C2);
    dp->~S1116C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1116C2(Test_S1116C2, "S1116C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1116C2C1Ev();
extern void _ZN7S1116C2D1Ev();
Name_Map name_map_S1116C2[] = {
  NSPAIR(_ZN7S1116C2C1Ev),
  NSPAIR(_ZN7S1116C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1116C3;
extern VTBL_ENTRY _ZTI7S1116C3[];
static Base_Class bases_S1116C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1116C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1116C2[];
extern void _ZN7S1116C2D1Ev();
extern void _ZN7S1116C2D0Ev();
extern void _ZN7S1116C22v7Ev();
extern void _ZN7S1116C22v8Ev();
extern void _ZN7S1116C22v9Ev();
extern void _ZN7S1116C23v10Ev();
extern void _ZN7S1116C23v11Ev();
extern void _ZN7S1116C23v12Ev();
static  VTBL_ENTRY vtc_S1116C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1116C2[0]),
  (VTBL_ENTRY)&_ZN7S1116C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1116C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1116C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1116C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1116C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1116C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1116C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1116C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1116C2[];
extern  VTBL_ENTRY _ZTV7S1116C2[];
Class_Descriptor cd_S1116C2 = {  "S1116C2", // class name
  bases_S1116C2, 2,
  &(vtc_S1116C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1116C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1116C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1116C1  : S1116C2 {
  ::S1115C5_nt s1116c1f0;
  virtual void  v1(); // _ZN7S1116C12v1Ev
  virtual void  v2(); // _ZN7S1116C12v2Ev
  virtual void  v3(); // _ZN7S1116C12v3Ev
  virtual void  v4(); // _ZN7S1116C12v4Ev
  virtual void  v5(); // _ZN7S1116C12v5Ev
  virtual void  v6(); // _ZN7S1116C12v6Ev
  ~S1116C1(); // tgen
  S1116C1(); // tgen
};
//SIG(1 S1116C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FC5{ m Fc[3]}}


void  S1116C1 ::v1(){vfunc_called(this, "_ZN7S1116C12v1Ev");}
void  S1116C1 ::v2(){vfunc_called(this, "_ZN7S1116C12v2Ev");}
void  S1116C1 ::v3(){vfunc_called(this, "_ZN7S1116C12v3Ev");}
void  S1116C1 ::v4(){vfunc_called(this, "_ZN7S1116C12v4Ev");}
void  S1116C1 ::v5(){vfunc_called(this, "_ZN7S1116C12v5Ev");}
void  S1116C1 ::v6(){vfunc_called(this, "_ZN7S1116C12v6Ev");}
S1116C1 ::~S1116C1(){ note_dtor("S1116C1", this);} // tgen
S1116C1 ::S1116C1(){ note_ctor("S1116C1", this);} // tgen

static void Test_S1116C1()
{
  extern Class_Descriptor cd_S1116C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(3,4)];
    init_test(&cd_S1116C1, buf);
    S1116C1 *dp, &lv = *(dp=new (buf) S1116C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(S1116C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1116C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1116C3*)(S1116C2*), ABISELECT(8,4), "S1116C1");
    check_base_class_offset(lv, (S1116C3*)(S1116C2*), ABISELECT(8,4), "S1116C1");
    check_base_class_offset(lv, (S1116C2*), 0, "S1116C1");
    check_field_offset(lv, s1116c1f0, ABISELECT(12,8), "S1116C1.s1116c1f0");
    test_class_info(&lv, &cd_S1116C1);
    dp->~S1116C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1116C1(Test_S1116C1, "S1116C1", ABISELECT(16,12));

#else // __cplusplus

extern void _ZN7S1116C1C1Ev();
extern void _ZN7S1116C1D1Ev();
Name_Map name_map_S1116C1[] = {
  NSPAIR(_ZN7S1116C1C1Ev),
  NSPAIR(_ZN7S1116C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1116C3;
extern VTBL_ENTRY _ZTI7S1116C3[];
extern Class_Descriptor cd_S1116C2;
extern VTBL_ENTRY _ZTI7S1116C2[];
extern  VTBL_ENTRY _ZTV7S1116C2[];
static Base_Class bases_S1116C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1116C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1116C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1116C1[];
extern void _ZN7S1116C1D1Ev();
extern void _ZN7S1116C1D0Ev();
extern void _ZN7S1116C22v7Ev();
extern void _ZN7S1116C22v8Ev();
extern void _ZN7S1116C22v9Ev();
extern void _ZN7S1116C23v10Ev();
extern void _ZN7S1116C23v11Ev();
extern void _ZN7S1116C23v12Ev();
extern void _ZN7S1116C12v1Ev();
extern void _ZN7S1116C12v2Ev();
extern void _ZN7S1116C12v3Ev();
extern void _ZN7S1116C12v4Ev();
extern void _ZN7S1116C12v5Ev();
extern void _ZN7S1116C12v6Ev();
static  VTBL_ENTRY vtc_S1116C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1116C1[0]),
  (VTBL_ENTRY)&_ZN7S1116C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1116C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1116C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1116C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1116C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1116C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1116C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1116C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1116C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1116C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1116C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1116C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1116C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1116C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1116C1[];
extern  VTBL_ENTRY _ZTV7S1116C1[];
Class_Descriptor cd_S1116C1 = {  "S1116C1", // class name
  bases_S1116C1, 3,
  &(vtc_S1116C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,12), // object size
  NSPAIRA(_ZTI7S1116C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1116C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S15513C2_nt  {
  char s15513c2f0[16];
};
//SIG(-1 S15513C2_nt) C1{ Fc[16]}



//skip512 S15513C2_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S15513C1  {
  ::S15513C2_nt s15513c1f0;
  int s15513c1f1[2];
  void *s15513c1f2[3];
  int s15513c1f3;
  ::S1726C5_nt s15513c1f4;
  __tsi64 s15513c1f5[2];
  void *s15513c1f6[4];
  void  mf15513c1(); // _ZN8S15513C19mf15513c1Ev
};
//SIG(1 S15513C1) C1{ m FC2{ Fc[16]} Fi[2] Fp[3] Fi FC3{ BC4{ m Fp Fi FC5{ m} FC6{ m}}} FL[2] Fp[4]}


void  S15513C1 ::mf15513c1(){}

static void Test_S15513C1()
{
  {
    init_simple_test("S15513C1");
    S15513C1 lv;
    check2(sizeof(lv), ABISELECT(120,84), "sizeof(S15513C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S15513C1)");
    check_field_offset(lv, s15513c1f0, 0, "S15513C1.s15513c1f0");
    check_field_offset(lv, s15513c1f1, 16, "S15513C1.s15513c1f1");
    check_field_offset(lv, s15513c1f2, 24, "S15513C1.s15513c1f2");
    check_field_offset(lv, s15513c1f3, ABISELECT(48,36), "S15513C1.s15513c1f3");
    check_field_offset(lv, s15513c1f4, ABISELECT(56,40), "S15513C1.s15513c1f4");
    check_field_offset(lv, s15513c1f5, ABISELECT(72,52), "S15513C1.s15513c1f5");
    check_field_offset(lv, s15513c1f6, ABISELECT(88,68), "S15513C1.s15513c1f6");
  }
}
static Arrange_To_Call_Me vS15513C1(Test_S15513C1, "S15513C1", ABISELECT(120,84));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C3  : S21969C7_nt {
};
//SIG(-1 S1058C3) C1{ BC2{ m Fi}}



static void Test_S1058C3()
{
  extern Class_Descriptor cd_S1058C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1058C3, buf);
    S1058C3 &lv = *(new (buf) S1058C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1058C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1058C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1058C3");
    test_class_info(&lv, &cd_S1058C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1058C3(Test_S1058C3, "S1058C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1058C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1058C3[];
Class_Descriptor cd_S1058C3 = {  "S1058C3", // class name
  bases_S1058C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1058C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C2  : S1058C3 {
  virtual  ~S1058C2(); // _ZN7S1058C2D1Ev
  virtual void  v2(); // _ZN7S1058C22v2Ev
  S1058C2(); // tgen
};
//SIG(-1 S1058C2) C1{ BC2{ BC3{ m Fi}} vd v1}


 S1058C2 ::~S1058C2(){ note_dtor("S1058C2", this);}
void  S1058C2 ::v2(){vfunc_called(this, "_ZN7S1058C22v2Ev");}
S1058C2 ::S1058C2(){ note_ctor("S1058C2", this);} // tgen

static void Test_S1058C2()
{
  extern Class_Descriptor cd_S1058C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1058C2, buf);
    S1058C2 *dp, &lv = *(dp=new (buf) S1058C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1058C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1058C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1058C3*), ABISELECT(8,4), "S1058C2");
    check_base_class_offset(lv, (S1058C3*), ABISELECT(8,4), "S1058C2");
    test_class_info(&lv, &cd_S1058C2);
    dp->~S1058C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1058C2(Test_S1058C2, "S1058C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1058C2C1Ev();
extern void _ZN7S1058C2D1Ev();
Name_Map name_map_S1058C2[] = {
  NSPAIR(_ZN7S1058C2C1Ev),
  NSPAIR(_ZN7S1058C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1058C3;
extern VTBL_ENTRY _ZTI7S1058C3[];
static Base_Class bases_S1058C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1058C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1058C2[];
extern void _ZN7S1058C2D1Ev();
extern void _ZN7S1058C2D0Ev();
extern void _ZN7S1058C22v2Ev();
static  VTBL_ENTRY vtc_S1058C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1058C2[0]),
  (VTBL_ENTRY)&_ZN7S1058C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1058C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1058C22v2Ev,
};
extern VTBL_ENTRY _ZTI7S1058C2[];
extern  VTBL_ENTRY _ZTV7S1058C2[];
Class_Descriptor cd_S1058C2 = {  "S1058C2", // class name
  bases_S1058C2, 2,
  &(vtc_S1058C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1058C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1058C2),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C8_nt  {
  void *s1058c8f0;
  int s1058c8f1;
  void  mf1058c8(); // _ZN10S1058C8_nt8mf1058c8Ev
};
//SIG(-1 S1058C8_nt) C1{ m Fp Fi}


void  S1058C8_nt ::mf1058c8(){}

//skip512 S1058C8_nt

#else // __cplusplus

Class_Descriptor cd_S1058C8_nt = {  "S1058C8_nt", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  ABISELECT(16,8), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C7_nt  : S1058C8_nt {
};
//SIG(-1 S1058C7_nt) C1{ BC2{ m Fp Fi}}



//skip512 S1058C7_nt

#else // __cplusplus

extern Class_Descriptor cd_S1058C8_nt;
static Base_Class bases_S1058C7_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S1058C8_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C6_nt  {
  int s1058c6f0;
  ::S1058C7_nt s1058c6f1;
  void  mf1058c6(); // _ZN10S1058C6_nt8mf1058c6Ev
};
//SIG(-1 S1058C6_nt) C1{ m Fi FC2{ BC3{ m Fp Fi}}}


void  S1058C6_nt ::mf1058c6(){}

//skip512 S1058C6_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C5  {
  char s1058c5f0;
  ::S1058C6_nt s1058c5f1;
  ::S1058C6_nt s1058c5f2;
};
//SIG(-1 S1058C5) C1{ Fc FC2{ m Fi FC3{ BC4{ m Fp Fi}}} FC2}



static void Test_S1058C5()
{
  {
    init_simple_test("S1058C5");
    S1058C5 lv;
    check2(sizeof(lv), ABISELECT(56,28), "sizeof(S1058C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1058C5)");
    check_field_offset(lv, s1058c5f0, 0, "S1058C5.s1058c5f0");
    check_field_offset(lv, s1058c5f1, ABISELECT(8,4), "S1058C5.s1058c5f1");
    check_field_offset(lv, s1058c5f2, ABISELECT(32,16), "S1058C5.s1058c5f2");
  }
}
static Arrange_To_Call_Me vS1058C5(Test_S1058C5, "S1058C5", ABISELECT(56,28));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1058C1  : S1058C2 {
  ::S1058C5 s1058c1f0;
  virtual  ~S1058C1(); // _ZN7S1058C1D1Ev
  virtual void  v1(); // _ZN7S1058C12v1Ev
  S1058C1(); // tgen
};
//SIG(1 S1058C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v2} vd v1 FC5{ Fc FC6{ m Fi FC7{ BC8{ m Fp Fi}}} FC6}}


 S1058C1 ::~S1058C1(){ note_dtor("S1058C1", this);}
void  S1058C1 ::v1(){vfunc_called(this, "_ZN7S1058C12v1Ev");}
S1058C1 ::S1058C1(){ note_ctor("S1058C1", this);} // tgen

static void Test_S1058C1()
{
  extern Class_Descriptor cd_S1058C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[10];
    init_test(&cd_S1058C1, buf);
    S1058C1 *dp, &lv = *(dp=new (buf) S1058C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(72,36), "sizeof(S1058C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1058C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1058C3*)(S1058C2*), ABISELECT(8,4), "S1058C1");
    check_base_class_offset(lv, (S1058C3*)(S1058C2*), ABISELECT(8,4), "S1058C1");
    check_base_class_offset(lv, (S1058C2*), 0, "S1058C1");
    check_field_offset(lv, s1058c1f0, ABISELECT(16,8), "S1058C1.s1058c1f0");
    test_class_info(&lv, &cd_S1058C1);
    dp->~S1058C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1058C1(Test_S1058C1, "S1058C1", ABISELECT(72,36));

#else // __cplusplus

extern void _ZN7S1058C1C1Ev();
extern void _ZN7S1058C1D1Ev();
Name_Map name_map_S1058C1[] = {
  NSPAIR(_ZN7S1058C1C1Ev),
  NSPAIR(_ZN7S1058C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1058C3;
extern VTBL_ENTRY _ZTI7S1058C3[];
extern Class_Descriptor cd_S1058C2;
extern VTBL_ENTRY _ZTI7S1058C2[];
extern  VTBL_ENTRY _ZTV7S1058C2[];
static Base_Class bases_S1058C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1058C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1058C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1058C1[];
extern void _ZN7S1058C1D1Ev();
extern void _ZN7S1058C1D0Ev();
extern void _ZN7S1058C22v2Ev();
extern void _ZN7S1058C12v1Ev();
static  VTBL_ENTRY vtc_S1058C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1058C1[0]),
  (VTBL_ENTRY)&_ZN7S1058C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1058C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1058C22v2Ev,
  (VTBL_ENTRY)&_ZN7S1058C12v1Ev,
};
extern VTBL_ENTRY _ZTI7S1058C1[];
extern  VTBL_ENTRY _ZTV7S1058C1[];
Class_Descriptor cd_S1058C1 = {  "S1058C1", // class name
  bases_S1058C1, 3,
  &(vtc_S1058C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(72,36), // object size
  NSPAIRA(_ZTI7S1058C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1058C1),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1120C3  : S21969C7_nt {
};
//SIG(-1 S1120C3) C1{ BC2{ m Fi}}



static void Test_S1120C3()
{
  extern Class_Descriptor cd_S1120C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1120C3, buf);
    S1120C3 &lv = *(new (buf) S1120C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1120C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1120C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1120C3");
    test_class_info(&lv, &cd_S1120C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1120C3(Test_S1120C3, "S1120C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1120C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1120C3[];
Class_Descriptor cd_S1120C3 = {  "S1120C3", // class name
  bases_S1120C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1120C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1120C2  : S1120C3 {
  virtual  ~S1120C2(); // _ZN7S1120C2D1Ev
  virtual void  v7(); // _ZN7S1120C22v7Ev
  virtual void  v8(); // _ZN7S1120C22v8Ev
  virtual void  v9(); // _ZN7S1120C22v9Ev
  virtual void  v10(); // _ZN7S1120C23v10Ev
  virtual void  v11(); // _ZN7S1120C23v11Ev
  virtual void  v12(); // _ZN7S1120C23v12Ev
  S1120C2(); // tgen
};
//SIG(-1 S1120C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1120C2 ::~S1120C2(){ note_dtor("S1120C2", this);}
void  S1120C2 ::v7(){vfunc_called(this, "_ZN7S1120C22v7Ev");}
void  S1120C2 ::v8(){vfunc_called(this, "_ZN7S1120C22v8Ev");}
void  S1120C2 ::v9(){vfunc_called(this, "_ZN7S1120C22v9Ev");}
void  S1120C2 ::v10(){vfunc_called(this, "_ZN7S1120C23v10Ev");}
void  S1120C2 ::v11(){vfunc_called(this, "_ZN7S1120C23v11Ev");}
void  S1120C2 ::v12(){vfunc_called(this, "_ZN7S1120C23v12Ev");}
S1120C2 ::S1120C2(){ note_ctor("S1120C2", this);} // tgen

static void Test_S1120C2()
{
  extern Class_Descriptor cd_S1120C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1120C2, buf);
    S1120C2 *dp, &lv = *(dp=new (buf) S1120C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1120C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1120C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1120C3*), ABISELECT(8,4), "S1120C2");
    check_base_class_offset(lv, (S1120C3*), ABISELECT(8,4), "S1120C2");
    test_class_info(&lv, &cd_S1120C2);
    dp->~S1120C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1120C2(Test_S1120C2, "S1120C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1120C2C1Ev();
extern void _ZN7S1120C2D1Ev();
Name_Map name_map_S1120C2[] = {
  NSPAIR(_ZN7S1120C2C1Ev),
  NSPAIR(_ZN7S1120C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1120C3;
extern VTBL_ENTRY _ZTI7S1120C3[];
static Base_Class bases_S1120C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1120C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1120C2[];
extern void _ZN7S1120C2D1Ev();
extern void _ZN7S1120C2D0Ev();
extern void _ZN7S1120C22v7Ev();
extern void _ZN7S1120C22v8Ev();
extern void _ZN7S1120C22v9Ev();
extern void _ZN7S1120C23v10Ev();
extern void _ZN7S1120C23v11Ev();
extern void _ZN7S1120C23v12Ev();
static  VTBL_ENTRY vtc_S1120C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1120C2[0]),
  (VTBL_ENTRY)&_ZN7S1120C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1120C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1120C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1120C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1120C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1120C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1120C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1120C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1120C2[];
extern  VTBL_ENTRY _ZTV7S1120C2[];
Class_Descriptor cd_S1120C2 = {  "S1120C2", // class name
  bases_S1120C2, 2,
  &(vtc_S1120C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1120C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1120C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1120C1  : S1120C2 {
  __tsi64 s1120c1f0[4];
  int s1120c1f1;
  virtual void  v1(); // _ZN7S1120C12v1Ev
  virtual void  v2(); // _ZN7S1120C12v2Ev
  virtual void  v3(); // _ZN7S1120C12v3Ev
  virtual void  v4(); // _ZN7S1120C12v4Ev
  virtual void  v5(); // _ZN7S1120C12v5Ev
  virtual void  v6(); // _ZN7S1120C12v6Ev
  ~S1120C1(); // tgen
  S1120C1(); // tgen
};
//SIG(1 S1120C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FL[4] Fi}


void  S1120C1 ::v1(){vfunc_called(this, "_ZN7S1120C12v1Ev");}
void  S1120C1 ::v2(){vfunc_called(this, "_ZN7S1120C12v2Ev");}
void  S1120C1 ::v3(){vfunc_called(this, "_ZN7S1120C12v3Ev");}
void  S1120C1 ::v4(){vfunc_called(this, "_ZN7S1120C12v4Ev");}
void  S1120C1 ::v5(){vfunc_called(this, "_ZN7S1120C12v5Ev");}
void  S1120C1 ::v6(){vfunc_called(this, "_ZN7S1120C12v6Ev");}
S1120C1 ::~S1120C1(){ note_dtor("S1120C1", this);} // tgen
S1120C1 ::S1120C1(){ note_ctor("S1120C1", this);} // tgen

static void Test_S1120C1()
{
  extern Class_Descriptor cd_S1120C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,12)];
    init_test(&cd_S1120C1, buf);
    S1120C1 *dp, &lv = *(dp=new (buf) S1120C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,44), "sizeof(S1120C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1120C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1120C3*)(S1120C2*), ABISELECT(8,4), "S1120C1");
    check_base_class_offset(lv, (S1120C3*)(S1120C2*), ABISELECT(8,4), "S1120C1");
    check_base_class_offset(lv, (S1120C2*), 0, "S1120C1");
    check_field_offset(lv, s1120c1f0, ABISELECT(16,8), "S1120C1.s1120c1f0");
    check_field_offset(lv, s1120c1f1, ABISELECT(48,40), "S1120C1.s1120c1f1");
    test_class_info(&lv, &cd_S1120C1);
    dp->~S1120C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1120C1(Test_S1120C1, "S1120C1", ABISELECT(56,44));

#else // __cplusplus

extern void _ZN7S1120C1C1Ev();
extern void _ZN7S1120C1D1Ev();
Name_Map name_map_S1120C1[] = {
  NSPAIR(_ZN7S1120C1C1Ev),
  NSPAIR(_ZN7S1120C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1120C3;
extern VTBL_ENTRY _ZTI7S1120C3[];
extern Class_Descriptor cd_S1120C2;
extern VTBL_ENTRY _ZTI7S1120C2[];
extern  VTBL_ENTRY _ZTV7S1120C2[];
static Base_Class bases_S1120C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1120C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1120C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1120C1[];
extern void _ZN7S1120C1D1Ev();
extern void _ZN7S1120C1D0Ev();
extern void _ZN7S1120C22v7Ev();
extern void _ZN7S1120C22v8Ev();
extern void _ZN7S1120C22v9Ev();
extern void _ZN7S1120C23v10Ev();
extern void _ZN7S1120C23v11Ev();
extern void _ZN7S1120C23v12Ev();
extern void _ZN7S1120C12v1Ev();
extern void _ZN7S1120C12v2Ev();
extern void _ZN7S1120C12v3Ev();
extern void _ZN7S1120C12v4Ev();
extern void _ZN7S1120C12v5Ev();
extern void _ZN7S1120C12v6Ev();
static  VTBL_ENTRY vtc_S1120C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1120C1[0]),
  (VTBL_ENTRY)&_ZN7S1120C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1120C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1120C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1120C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1120C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1120C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1120C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1120C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1120C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1120C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1120C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1120C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1120C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1120C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1120C1[];
extern  VTBL_ENTRY _ZTV7S1120C1[];
Class_Descriptor cd_S1120C1 = {  "S1120C1", // class name
  bases_S1120C1, 3,
  &(vtc_S1120C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(56,44), // object size
  NSPAIRA(_ZTI7S1120C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1120C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1119C3  : S21969C7_nt {
};
//SIG(-1 S1119C3) C1{ BC2{ m Fi}}



static void Test_S1119C3()
{
  extern Class_Descriptor cd_S1119C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1119C3, buf);
    S1119C3 &lv = *(new (buf) S1119C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1119C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1119C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1119C3");
    test_class_info(&lv, &cd_S1119C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1119C3(Test_S1119C3, "S1119C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1119C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1119C3[];
Class_Descriptor cd_S1119C3 = {  "S1119C3", // class name
  bases_S1119C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1119C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1119C2  : S1119C3 {
  virtual  ~S1119C2(); // _ZN7S1119C2D1Ev
  virtual void  v7(); // _ZN7S1119C22v7Ev
  virtual void  v8(); // _ZN7S1119C22v8Ev
  virtual void  v9(); // _ZN7S1119C22v9Ev
  virtual void  v10(); // _ZN7S1119C23v10Ev
  virtual void  v11(); // _ZN7S1119C23v11Ev
  virtual void  v12(); // _ZN7S1119C23v12Ev
  S1119C2(); // tgen
};
//SIG(-1 S1119C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1119C2 ::~S1119C2(){ note_dtor("S1119C2", this);}
void  S1119C2 ::v7(){vfunc_called(this, "_ZN7S1119C22v7Ev");}
void  S1119C2 ::v8(){vfunc_called(this, "_ZN7S1119C22v8Ev");}
void  S1119C2 ::v9(){vfunc_called(this, "_ZN7S1119C22v9Ev");}
void  S1119C2 ::v10(){vfunc_called(this, "_ZN7S1119C23v10Ev");}
void  S1119C2 ::v11(){vfunc_called(this, "_ZN7S1119C23v11Ev");}
void  S1119C2 ::v12(){vfunc_called(this, "_ZN7S1119C23v12Ev");}
S1119C2 ::S1119C2(){ note_ctor("S1119C2", this);} // tgen

static void Test_S1119C2()
{
  extern Class_Descriptor cd_S1119C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1119C2, buf);
    S1119C2 *dp, &lv = *(dp=new (buf) S1119C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1119C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1119C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1119C3*), ABISELECT(8,4), "S1119C2");
    check_base_class_offset(lv, (S1119C3*), ABISELECT(8,4), "S1119C2");
    test_class_info(&lv, &cd_S1119C2);
    dp->~S1119C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1119C2(Test_S1119C2, "S1119C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1119C2C1Ev();
extern void _ZN7S1119C2D1Ev();
Name_Map name_map_S1119C2[] = {
  NSPAIR(_ZN7S1119C2C1Ev),
  NSPAIR(_ZN7S1119C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1119C3;
extern VTBL_ENTRY _ZTI7S1119C3[];
static Base_Class bases_S1119C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1119C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1119C2[];
extern void _ZN7S1119C2D1Ev();
extern void _ZN7S1119C2D0Ev();
extern void _ZN7S1119C22v7Ev();
extern void _ZN7S1119C22v8Ev();
extern void _ZN7S1119C22v9Ev();
extern void _ZN7S1119C23v10Ev();
extern void _ZN7S1119C23v11Ev();
extern void _ZN7S1119C23v12Ev();
static  VTBL_ENTRY vtc_S1119C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1119C2[0]),
  (VTBL_ENTRY)&_ZN7S1119C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1119C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1119C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1119C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1119C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1119C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1119C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1119C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1119C2[];
extern  VTBL_ENTRY _ZTV7S1119C2[];
Class_Descriptor cd_S1119C2 = {  "S1119C2", // class name
  bases_S1119C2, 2,
  &(vtc_S1119C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1119C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1119C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1119C1  : S1119C2 {
  __tsi64 s1119c1f0[3];
  int s1119c1f1;
  virtual void  v1(); // _ZN7S1119C12v1Ev
  virtual void  v2(); // _ZN7S1119C12v2Ev
  virtual void  v3(); // _ZN7S1119C12v3Ev
  virtual void  v4(); // _ZN7S1119C12v4Ev
  virtual void  v5(); // _ZN7S1119C12v5Ev
  virtual void  v6(); // _ZN7S1119C12v6Ev
  ~S1119C1(); // tgen
  S1119C1(); // tgen
};
//SIG(1 S1119C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FL[3] Fi}


void  S1119C1 ::v1(){vfunc_called(this, "_ZN7S1119C12v1Ev");}
void  S1119C1 ::v2(){vfunc_called(this, "_ZN7S1119C12v2Ev");}
void  S1119C1 ::v3(){vfunc_called(this, "_ZN7S1119C12v3Ev");}
void  S1119C1 ::v4(){vfunc_called(this, "_ZN7S1119C12v4Ev");}
void  S1119C1 ::v5(){vfunc_called(this, "_ZN7S1119C12v5Ev");}
void  S1119C1 ::v6(){vfunc_called(this, "_ZN7S1119C12v6Ev");}
S1119C1 ::~S1119C1(){ note_dtor("S1119C1", this);} // tgen
S1119C1 ::S1119C1(){ note_ctor("S1119C1", this);} // tgen

static void Test_S1119C1()
{
  extern Class_Descriptor cd_S1119C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(7,10)];
    init_test(&cd_S1119C1, buf);
    S1119C1 *dp, &lv = *(dp=new (buf) S1119C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(48,36), "sizeof(S1119C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1119C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1119C3*)(S1119C2*), ABISELECT(8,4), "S1119C1");
    check_base_class_offset(lv, (S1119C3*)(S1119C2*), ABISELECT(8,4), "S1119C1");
    check_base_class_offset(lv, (S1119C2*), 0, "S1119C1");
    check_field_offset(lv, s1119c1f0, ABISELECT(16,8), "S1119C1.s1119c1f0");
    check_field_offset(lv, s1119c1f1, ABISELECT(40,32), "S1119C1.s1119c1f1");
    test_class_info(&lv, &cd_S1119C1);
    dp->~S1119C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1119C1(Test_S1119C1, "S1119C1", ABISELECT(48,36));

#else // __cplusplus

extern void _ZN7S1119C1C1Ev();
extern void _ZN7S1119C1D1Ev();
Name_Map name_map_S1119C1[] = {
  NSPAIR(_ZN7S1119C1C1Ev),
  NSPAIR(_ZN7S1119C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1119C3;
extern VTBL_ENTRY _ZTI7S1119C3[];
extern Class_Descriptor cd_S1119C2;
extern VTBL_ENTRY _ZTI7S1119C2[];
extern  VTBL_ENTRY _ZTV7S1119C2[];
static Base_Class bases_S1119C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1119C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1119C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1119C1[];
extern void _ZN7S1119C1D1Ev();
extern void _ZN7S1119C1D0Ev();
extern void _ZN7S1119C22v7Ev();
extern void _ZN7S1119C22v8Ev();
extern void _ZN7S1119C22v9Ev();
extern void _ZN7S1119C23v10Ev();
extern void _ZN7S1119C23v11Ev();
extern void _ZN7S1119C23v12Ev();
extern void _ZN7S1119C12v1Ev();
extern void _ZN7S1119C12v2Ev();
extern void _ZN7S1119C12v3Ev();
extern void _ZN7S1119C12v4Ev();
extern void _ZN7S1119C12v5Ev();
extern void _ZN7S1119C12v6Ev();
static  VTBL_ENTRY vtc_S1119C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1119C1[0]),
  (VTBL_ENTRY)&_ZN7S1119C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1119C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1119C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1119C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1119C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1119C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1119C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1119C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1119C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1119C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1119C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1119C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1119C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1119C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1119C1[];
extern  VTBL_ENTRY _ZTV7S1119C1[];
Class_Descriptor cd_S1119C1 = {  "S1119C1", // class name
  bases_S1119C1, 3,
  &(vtc_S1119C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(48,36), // object size
  NSPAIRA(_ZTI7S1119C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1119C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1118C3  : S21969C7_nt {
};
//SIG(-1 S1118C3) C1{ BC2{ m Fi}}



static void Test_S1118C3()
{
  extern Class_Descriptor cd_S1118C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1118C3, buf);
    S1118C3 &lv = *(new (buf) S1118C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1118C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1118C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1118C3");
    test_class_info(&lv, &cd_S1118C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1118C3(Test_S1118C3, "S1118C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1118C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1118C3[];
Class_Descriptor cd_S1118C3 = {  "S1118C3", // class name
  bases_S1118C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1118C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1118C2  : S1118C3 {
  virtual  ~S1118C2(); // _ZN7S1118C2D1Ev
  virtual void  v7(); // _ZN7S1118C22v7Ev
  virtual void  v8(); // _ZN7S1118C22v8Ev
  virtual void  v9(); // _ZN7S1118C22v9Ev
  virtual void  v10(); // _ZN7S1118C23v10Ev
  virtual void  v11(); // _ZN7S1118C23v11Ev
  virtual void  v12(); // _ZN7S1118C23v12Ev
  S1118C2(); // tgen
};
//SIG(-1 S1118C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1118C2 ::~S1118C2(){ note_dtor("S1118C2", this);}
void  S1118C2 ::v7(){vfunc_called(this, "_ZN7S1118C22v7Ev");}
void  S1118C2 ::v8(){vfunc_called(this, "_ZN7S1118C22v8Ev");}
void  S1118C2 ::v9(){vfunc_called(this, "_ZN7S1118C22v9Ev");}
void  S1118C2 ::v10(){vfunc_called(this, "_ZN7S1118C23v10Ev");}
void  S1118C2 ::v11(){vfunc_called(this, "_ZN7S1118C23v11Ev");}
void  S1118C2 ::v12(){vfunc_called(this, "_ZN7S1118C23v12Ev");}
S1118C2 ::S1118C2(){ note_ctor("S1118C2", this);} // tgen

static void Test_S1118C2()
{
  extern Class_Descriptor cd_S1118C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1118C2, buf);
    S1118C2 *dp, &lv = *(dp=new (buf) S1118C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1118C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1118C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1118C3*), ABISELECT(8,4), "S1118C2");
    check_base_class_offset(lv, (S1118C3*), ABISELECT(8,4), "S1118C2");
    test_class_info(&lv, &cd_S1118C2);
    dp->~S1118C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1118C2(Test_S1118C2, "S1118C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1118C2C1Ev();
extern void _ZN7S1118C2D1Ev();
Name_Map name_map_S1118C2[] = {
  NSPAIR(_ZN7S1118C2C1Ev),
  NSPAIR(_ZN7S1118C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1118C3;
extern VTBL_ENTRY _ZTI7S1118C3[];
static Base_Class bases_S1118C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1118C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1118C2[];
extern void _ZN7S1118C2D1Ev();
extern void _ZN7S1118C2D0Ev();
extern void _ZN7S1118C22v7Ev();
extern void _ZN7S1118C22v8Ev();
extern void _ZN7S1118C22v9Ev();
extern void _ZN7S1118C23v10Ev();
extern void _ZN7S1118C23v11Ev();
extern void _ZN7S1118C23v12Ev();
static  VTBL_ENTRY vtc_S1118C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1118C2[0]),
  (VTBL_ENTRY)&_ZN7S1118C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1118C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1118C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1118C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1118C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1118C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1118C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1118C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1118C2[];
extern  VTBL_ENTRY _ZTV7S1118C2[];
Class_Descriptor cd_S1118C2 = {  "S1118C2", // class name
  bases_S1118C2, 2,
  &(vtc_S1118C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1118C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1118C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1118C1  : S1118C2 {
  __tsi64 s1118c1f0[2];
  int s1118c1f1;
  virtual void  v1(); // _ZN7S1118C12v1Ev
  virtual void  v2(); // _ZN7S1118C12v2Ev
  virtual void  v3(); // _ZN7S1118C12v3Ev
  virtual void  v4(); // _ZN7S1118C12v4Ev
  virtual void  v5(); // _ZN7S1118C12v5Ev
  virtual void  v6(); // _ZN7S1118C12v6Ev
  ~S1118C1(); // tgen
  S1118C1(); // tgen
};
//SIG(1 S1118C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FL[2] Fi}


void  S1118C1 ::v1(){vfunc_called(this, "_ZN7S1118C12v1Ev");}
void  S1118C1 ::v2(){vfunc_called(this, "_ZN7S1118C12v2Ev");}
void  S1118C1 ::v3(){vfunc_called(this, "_ZN7S1118C12v3Ev");}
void  S1118C1 ::v4(){vfunc_called(this, "_ZN7S1118C12v4Ev");}
void  S1118C1 ::v5(){vfunc_called(this, "_ZN7S1118C12v5Ev");}
void  S1118C1 ::v6(){vfunc_called(this, "_ZN7S1118C12v6Ev");}
S1118C1 ::~S1118C1(){ note_dtor("S1118C1", this);} // tgen
S1118C1 ::S1118C1(){ note_ctor("S1118C1", this);} // tgen

static void Test_S1118C1()
{
  extern Class_Descriptor cd_S1118C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,8)];
    init_test(&cd_S1118C1, buf);
    S1118C1 *dp, &lv = *(dp=new (buf) S1118C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S1118C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1118C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1118C3*)(S1118C2*), ABISELECT(8,4), "S1118C1");
    check_base_class_offset(lv, (S1118C3*)(S1118C2*), ABISELECT(8,4), "S1118C1");
    check_base_class_offset(lv, (S1118C2*), 0, "S1118C1");
    check_field_offset(lv, s1118c1f0, ABISELECT(16,8), "S1118C1.s1118c1f0");
    check_field_offset(lv, s1118c1f1, ABISELECT(32,24), "S1118C1.s1118c1f1");
    test_class_info(&lv, &cd_S1118C1);
    dp->~S1118C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1118C1(Test_S1118C1, "S1118C1", ABISELECT(40,28));

#else // __cplusplus

extern void _ZN7S1118C1C1Ev();
extern void _ZN7S1118C1D1Ev();
Name_Map name_map_S1118C1[] = {
  NSPAIR(_ZN7S1118C1C1Ev),
  NSPAIR(_ZN7S1118C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1118C3;
extern VTBL_ENTRY _ZTI7S1118C3[];
extern Class_Descriptor cd_S1118C2;
extern VTBL_ENTRY _ZTI7S1118C2[];
extern  VTBL_ENTRY _ZTV7S1118C2[];
static Base_Class bases_S1118C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1118C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1118C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1118C1[];
extern void _ZN7S1118C1D1Ev();
extern void _ZN7S1118C1D0Ev();
extern void _ZN7S1118C22v7Ev();
extern void _ZN7S1118C22v8Ev();
extern void _ZN7S1118C22v9Ev();
extern void _ZN7S1118C23v10Ev();
extern void _ZN7S1118C23v11Ev();
extern void _ZN7S1118C23v12Ev();
extern void _ZN7S1118C12v1Ev();
extern void _ZN7S1118C12v2Ev();
extern void _ZN7S1118C12v3Ev();
extern void _ZN7S1118C12v4Ev();
extern void _ZN7S1118C12v5Ev();
extern void _ZN7S1118C12v6Ev();
static  VTBL_ENTRY vtc_S1118C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1118C1[0]),
  (VTBL_ENTRY)&_ZN7S1118C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1118C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1118C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1118C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1118C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1118C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1118C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1118C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1118C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1118C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1118C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1118C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1118C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1118C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1118C1[];
extern  VTBL_ENTRY _ZTV7S1118C1[];
Class_Descriptor cd_S1118C1 = {  "S1118C1", // class name
  bases_S1118C1, 3,
  &(vtc_S1118C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,28), // object size
  NSPAIRA(_ZTI7S1118C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1118C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1121C3  : S21969C7_nt {
};
//SIG(-1 S1121C3) C1{ BC2{ m Fi}}



static void Test_S1121C3()
{
  extern Class_Descriptor cd_S1121C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1121C3, buf);
    S1121C3 &lv = *(new (buf) S1121C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1121C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1121C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1121C3");
    test_class_info(&lv, &cd_S1121C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1121C3(Test_S1121C3, "S1121C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1121C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1121C3[];
Class_Descriptor cd_S1121C3 = {  "S1121C3", // class name
  bases_S1121C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1121C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1121C2  : S1121C3 {
  virtual  ~S1121C2(); // _ZN7S1121C2D1Ev
  virtual void  v7(); // _ZN7S1121C22v7Ev
  virtual void  v8(); // _ZN7S1121C22v8Ev
  virtual void  v9(); // _ZN7S1121C22v9Ev
  virtual void  v10(); // _ZN7S1121C23v10Ev
  virtual void  v11(); // _ZN7S1121C23v11Ev
  virtual void  v12(); // _ZN7S1121C23v12Ev
  S1121C2(); // tgen
};
//SIG(-1 S1121C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1121C2 ::~S1121C2(){ note_dtor("S1121C2", this);}
void  S1121C2 ::v7(){vfunc_called(this, "_ZN7S1121C22v7Ev");}
void  S1121C2 ::v8(){vfunc_called(this, "_ZN7S1121C22v8Ev");}
void  S1121C2 ::v9(){vfunc_called(this, "_ZN7S1121C22v9Ev");}
void  S1121C2 ::v10(){vfunc_called(this, "_ZN7S1121C23v10Ev");}
void  S1121C2 ::v11(){vfunc_called(this, "_ZN7S1121C23v11Ev");}
void  S1121C2 ::v12(){vfunc_called(this, "_ZN7S1121C23v12Ev");}
S1121C2 ::S1121C2(){ note_ctor("S1121C2", this);} // tgen

static void Test_S1121C2()
{
  extern Class_Descriptor cd_S1121C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1121C2, buf);
    S1121C2 *dp, &lv = *(dp=new (buf) S1121C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1121C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1121C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1121C3*), ABISELECT(8,4), "S1121C2");
    check_base_class_offset(lv, (S1121C3*), ABISELECT(8,4), "S1121C2");
    test_class_info(&lv, &cd_S1121C2);
    dp->~S1121C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1121C2(Test_S1121C2, "S1121C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1121C2C1Ev();
extern void _ZN7S1121C2D1Ev();
Name_Map name_map_S1121C2[] = {
  NSPAIR(_ZN7S1121C2C1Ev),
  NSPAIR(_ZN7S1121C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1121C3;
extern VTBL_ENTRY _ZTI7S1121C3[];
static Base_Class bases_S1121C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1121C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1121C2[];
extern void _ZN7S1121C2D1Ev();
extern void _ZN7S1121C2D0Ev();
extern void _ZN7S1121C22v7Ev();
extern void _ZN7S1121C22v8Ev();
extern void _ZN7S1121C22v9Ev();
extern void _ZN7S1121C23v10Ev();
extern void _ZN7S1121C23v11Ev();
extern void _ZN7S1121C23v12Ev();
static  VTBL_ENTRY vtc_S1121C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1121C2[0]),
  (VTBL_ENTRY)&_ZN7S1121C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1121C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1121C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1121C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1121C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1121C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1121C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1121C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1121C2[];
extern  VTBL_ENTRY _ZTV7S1121C2[];
Class_Descriptor cd_S1121C2 = {  "S1121C2", // class name
  bases_S1121C2, 2,
  &(vtc_S1121C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1121C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1121C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1121C1  : S1121C2 {
  __tsi64 s1121c1f0[6];
  virtual void  v1(); // _ZN7S1121C12v1Ev
  virtual void  v2(); // _ZN7S1121C12v2Ev
  virtual void  v3(); // _ZN7S1121C12v3Ev
  virtual void  v4(); // _ZN7S1121C12v4Ev
  virtual void  v5(); // _ZN7S1121C12v5Ev
  virtual void  v6(); // _ZN7S1121C12v6Ev
  ~S1121C1(); // tgen
  S1121C1(); // tgen
};
//SIG(1 S1121C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6 FL[6]}


void  S1121C1 ::v1(){vfunc_called(this, "_ZN7S1121C12v1Ev");}
void  S1121C1 ::v2(){vfunc_called(this, "_ZN7S1121C12v2Ev");}
void  S1121C1 ::v3(){vfunc_called(this, "_ZN7S1121C12v3Ev");}
void  S1121C1 ::v4(){vfunc_called(this, "_ZN7S1121C12v4Ev");}
void  S1121C1 ::v5(){vfunc_called(this, "_ZN7S1121C12v5Ev");}
void  S1121C1 ::v6(){vfunc_called(this, "_ZN7S1121C12v6Ev");}
S1121C1 ::~S1121C1(){ note_dtor("S1121C1", this);} // tgen
S1121C1 ::S1121C1(){ note_ctor("S1121C1", this);} // tgen

static void Test_S1121C1()
{
  extern Class_Descriptor cd_S1121C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(9,15)];
    init_test(&cd_S1121C1, buf);
    S1121C1 *dp, &lv = *(dp=new (buf) S1121C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(64,56), "sizeof(S1121C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1121C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1121C3*)(S1121C2*), ABISELECT(8,4), "S1121C1");
    check_base_class_offset(lv, (S1121C3*)(S1121C2*), ABISELECT(8,4), "S1121C1");
    check_base_class_offset(lv, (S1121C2*), 0, "S1121C1");
    check_field_offset(lv, s1121c1f0, ABISELECT(16,8), "S1121C1.s1121c1f0");
    test_class_info(&lv, &cd_S1121C1);
    dp->~S1121C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1121C1(Test_S1121C1, "S1121C1", ABISELECT(64,56));

#else // __cplusplus

extern void _ZN7S1121C1C1Ev();
extern void _ZN7S1121C1D1Ev();
Name_Map name_map_S1121C1[] = {
  NSPAIR(_ZN7S1121C1C1Ev),
  NSPAIR(_ZN7S1121C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1121C3;
extern VTBL_ENTRY _ZTI7S1121C3[];
extern Class_Descriptor cd_S1121C2;
extern VTBL_ENTRY _ZTI7S1121C2[];
extern  VTBL_ENTRY _ZTV7S1121C2[];
static Base_Class bases_S1121C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1121C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1121C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1121C1[];
extern void _ZN7S1121C1D1Ev();
extern void _ZN7S1121C1D0Ev();
extern void _ZN7S1121C22v7Ev();
extern void _ZN7S1121C22v8Ev();
extern void _ZN7S1121C22v9Ev();
extern void _ZN7S1121C23v10Ev();
extern void _ZN7S1121C23v11Ev();
extern void _ZN7S1121C23v12Ev();
extern void _ZN7S1121C12v1Ev();
extern void _ZN7S1121C12v2Ev();
extern void _ZN7S1121C12v3Ev();
extern void _ZN7S1121C12v4Ev();
extern void _ZN7S1121C12v5Ev();
extern void _ZN7S1121C12v6Ev();
static  VTBL_ENTRY vtc_S1121C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1121C1[0]),
  (VTBL_ENTRY)&_ZN7S1121C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1121C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1121C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1121C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1121C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1121C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1121C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1121C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1121C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1121C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1121C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1121C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1121C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1121C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1121C1[];
extern  VTBL_ENTRY _ZTV7S1121C1[];
Class_Descriptor cd_S1121C1 = {  "S1121C1", // class name
  bases_S1121C1, 3,
  &(vtc_S1121C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(64,56), // object size
  NSPAIRA(_ZTI7S1121C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1121C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2690C2  : S21969C7_nt {
};
//SIG(-1 S2690C2) C1{ BC2{ m Fi}}



static void Test_S2690C2()
{
  extern Class_Descriptor cd_S2690C2;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S2690C2, buf);
    S2690C2 &lv = *(new (buf) S2690C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S2690C2)");
    check2(__alignof__(lv), 4, "__alignof__(S2690C2)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S2690C2");
    test_class_info(&lv, &cd_S2690C2);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2690C2(Test_S2690C2, "S2690C2", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S2690C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2690C2 = {  "S2690C2", // class name
  bases_S2690C2, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2690C1  : S2690C2 {
  int s2690c1f0[2];
  ::S1115C5_nt s2690c1f1;
  int s2690c1f2;
  int s2690c1f3:3;
  int s2690c1f4:3;
  int s2690c1f5:3;
  int s2690c1f6:2;
  int s2690c1f7:2;
  int s2690c1f8:3;
};
//SIG(1 S2690C1) C1{ BC2{ BC3{ m Fi}} Fi[2] FC4{ m Fc[3]} Fi Fi:3 Fi:3 Fi:3 Fi:2 Fi:2 Fi:3}



static void Test_S2690C1()
{
  extern Class_Descriptor cd_S2690C1;
  void *lvp;
  {
    int buf[7];
    init_test(&cd_S2690C1, buf);
    S2690C1 &lv = *(new (buf) S2690C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), 24, "sizeof(S2690C1)");
    check2(__alignof__(lv), 4, "__alignof__(S2690C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S2690C2*), 0, "S2690C1");
    check_base_class_offset(lv, (S2690C2*), 0, "S2690C1");
    check_field_offset(lv, s2690c1f0, 4, "S2690C1.s2690c1f0");
    check_field_offset(lv, s2690c1f1, 12, "S2690C1.s2690c1f1");
    check_field_offset(lv, s2690c1f2, 16, "S2690C1.s2690c1f2");
    set_bf_and_test(lv, s2690c1f3, 20, 0, 3, 1, "S2690C1");
    set_bf_and_test(lv, s2690c1f3, 20, 0, 3, hide_sll(1LL<<2), "S2690C1");
    set_bf_and_test(lv, s2690c1f4, 20, 3, 3, 1, "S2690C1");
    set_bf_and_test(lv, s2690c1f4, 20, 3, 3, hide_sll(1LL<<2), "S2690C1");
    set_bf_and_test(lv, s2690c1f5, 20, 6, 3, 1, "S2690C1");
    set_bf_and_test(lv, s2690c1f5, 20, 6, 3, hide_sll(1LL<<2), "S2690C1");
    set_bf_and_test(lv, s2690c1f6, 21, 1, 2, 1, "S2690C1");
    set_bf_and_test(lv, s2690c1f6, 21, 1, 2, hide_sll(1LL<<1), "S2690C1");
    set_bf_and_test(lv, s2690c1f7, 21, 3, 2, 1, "S2690C1");
    set_bf_and_test(lv, s2690c1f7, 21, 3, 2, hide_sll(1LL<<1), "S2690C1");
    set_bf_and_test(lv, s2690c1f8, 21, 5, 3, 1, "S2690C1");
    set_bf_and_test(lv, s2690c1f8, 21, 5, 3, hide_sll(1LL<<2), "S2690C1");
    test_class_info(&lv, &cd_S2690C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2690C1(Test_S2690C1, "S2690C1", 24);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S2690C2;
static Base_Class bases_S2690C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S2690C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2690C1 = {  "S2690C1", // class name
  bases_S2690C1, 2,
  0, // no vftv
  0, //no vtt
  24, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2617C2  : S21969C7_nt {
};
//SIG(-1 S2617C2) C1{ BC2{ m Fi}}



static void Test_S2617C2()
{
  extern Class_Descriptor cd_S2617C2;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S2617C2, buf);
    S2617C2 &lv = *(new (buf) S2617C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S2617C2)");
    check2(__alignof__(lv), 4, "__alignof__(S2617C2)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S2617C2");
    test_class_info(&lv, &cd_S2617C2);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2617C2(Test_S2617C2, "S2617C2", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S2617C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2617C2 = {  "S2617C2", // class name
  bases_S2617C2, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2617C1  : S2617C2 {
  ::S1115C5_nt s2617c1f0;
  ::S1115C5_nt s2617c1f1;
  ::S1115C5_nt s2617c1f2;
  ::S1115C5_nt s2617c1f3;
  ::S1115C5_nt s2617c1f4;
  ::S1115C5_nt s2617c1f5;
  ::S1115C5_nt s2617c1f6;
  int s2617c1f7;
  unsigned char s2617c1f8:1;
  unsigned int s2617c1f9:1;
};
//SIG(1 S2617C1) C1{ BC2{ BC3{ m Fi}} FC4{ m Fc[3]} FC4 FC4 FC4 FC4 FC4 FC4 Fi Fc:1 Fi:1}



static void Test_S2617C1()
{
  extern Class_Descriptor cd_S2617C1;
  void *lvp;
  {
    int buf[10];
    init_test(&cd_S2617C1, buf);
    S2617C1 &lv = *(new (buf) S2617C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), 36, "sizeof(S2617C1)");
    check2(__alignof__(lv), 4, "__alignof__(S2617C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S2617C2*), 0, "S2617C1");
    check_base_class_offset(lv, (S2617C2*), 0, "S2617C1");
    check_field_offset(lv, s2617c1f0, 4, "S2617C1.s2617c1f0");
    check_field_offset(lv, s2617c1f1, 7, "S2617C1.s2617c1f1");
    check_field_offset(lv, s2617c1f2, 10, "S2617C1.s2617c1f2");
    check_field_offset(lv, s2617c1f3, 13, "S2617C1.s2617c1f3");
    check_field_offset(lv, s2617c1f4, 16, "S2617C1.s2617c1f4");
    check_field_offset(lv, s2617c1f5, 19, "S2617C1.s2617c1f5");
    check_field_offset(lv, s2617c1f6, 22, "S2617C1.s2617c1f6");
    check_field_offset(lv, s2617c1f7, 28, "S2617C1.s2617c1f7");
    set_bf_and_test(lv, s2617c1f8, 32, 0, 1, 1, "S2617C1");
    set_bf_and_test(lv, s2617c1f9, 32, 1, 1, 1, "S2617C1");
    test_class_info(&lv, &cd_S2617C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2617C1(Test_S2617C1, "S2617C1", 36);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S2617C2;
static Base_Class bases_S2617C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S2617C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2617C1 = {  "S2617C1", // class name
  bases_S2617C1, 2,
  0, // no vftv
  0, //no vtt
  36, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9617C2_nt  {
  virtual  ~S9617C2_nt(); // _ZN10S9617C2_ntD1Ev
  virtual void  v3(); // _ZN10S9617C2_nt2v3Ev
  virtual void  v4(); // _ZN10S9617C2_nt2v4Ev
  S9617C2_nt(); // tgen
};
//SIG(-1 S9617C2_nt) C1{ vd v1 v2}


 S9617C2_nt ::~S9617C2_nt(){ note_dtor("S9617C2_nt", this);}
void  S9617C2_nt ::v3(){vfunc_called(this, "_ZN10S9617C2_nt2v3Ev");}
void  S9617C2_nt ::v4(){vfunc_called(this, "_ZN10S9617C2_nt2v4Ev");}
S9617C2_nt ::S9617C2_nt(){ note_ctor("S9617C2_nt", this);} // tgen

//skip512 S9617C2_nt

#else // __cplusplus

extern void _ZN10S9617C2_ntC1Ev();
extern void _ZN10S9617C2_ntD1Ev();
Name_Map name_map_S9617C2_nt[] = {
  NSPAIR(_ZN10S9617C2_ntC1Ev),
  NSPAIR(_ZN10S9617C2_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S9617C2_nt[];
extern void _ZN10S9617C2_ntD1Ev();
extern void _ZN10S9617C2_ntD0Ev();
extern void _ZN10S9617C2_nt2v3Ev();
extern void _ZN10S9617C2_nt2v4Ev();
static  VTBL_ENTRY vtc_S9617C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S9617C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S9617C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S9617C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S9617C2_nt2v3Ev,
  (VTBL_ENTRY)&_ZN10S9617C2_nt2v4Ev,
};
extern VTBL_ENTRY _ZTI10S9617C2_nt[];
VTBL_ENTRY *P__ZTI10S9617C2_nt = _ZTI10S9617C2_nt; 
extern  VTBL_ENTRY _ZTV10S9617C2_nt[];
Class_Descriptor cd_S9617C2_nt = {  "S9617C2_nt", // class name
  0,0,//no base classes
  &(vtc_S9617C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI10S9617C2_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S9617C2_nt),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9617C5_nt  {
  long s9617c5f0;
};
//SIG(-1 S9617C5_nt) C1{ Fl}



//skip512 S9617C5_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9617C1  : S9617C2_nt {
  void *s9617c1f0[4];
  ::S9701C3_nt s9617c1f1;
  ::S9701C3_nt s9617c1f2;
  ::S9617C5_nt s9617c1f3;
  ::S9617C5_nt s9617c1f4;
  virtual  ~S9617C1(); // _ZN7S9617C1D1Ev
  virtual void  v1(); // _ZN7S9617C12v1Ev
  virtual void  v2(); // _ZN7S9617C12v2Ev
  S9617C1(); // tgen
};
//SIG(1 S9617C1) C1{ BC2{ vd v3 v4} vd v1 v2 Fp[4] FC3{ m Fp Fi FC4{ m}} FC3 FC5{ Fl} FC5}


 S9617C1 ::~S9617C1(){ note_dtor("S9617C1", this);}
void  S9617C1 ::v1(){vfunc_called(this, "_ZN7S9617C12v1Ev");}
void  S9617C1 ::v2(){vfunc_called(this, "_ZN7S9617C12v2Ev");}
S9617C1 ::S9617C1(){ note_ctor("S9617C1", this);} // tgen

static void Test_S9617C1()
{
  extern Class_Descriptor cd_S9617C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(12,14)];
    init_test(&cd_S9617C1, buf);
    S9617C1 *dp, &lv = *(dp=new (buf) S9617C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(88,52), "sizeof(S9617C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9617C1)");
    check_base_class_offset(lv, (S9617C2_nt*), 0, "S9617C1");
    check_field_offset(lv, s9617c1f0, ABISELECT(8,4), "S9617C1.s9617c1f0");
    check_field_offset(lv, s9617c1f1, ABISELECT(40,20), "S9617C1.s9617c1f1");
    check_field_offset(lv, s9617c1f2, ABISELECT(56,32), "S9617C1.s9617c1f2");
    check_field_offset(lv, s9617c1f3, ABISELECT(72,44), "S9617C1.s9617c1f3");
    check_field_offset(lv, s9617c1f4, ABISELECT(80,48), "S9617C1.s9617c1f4");
    test_class_info(&lv, &cd_S9617C1);
    dp->~S9617C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9617C1(Test_S9617C1, "S9617C1", ABISELECT(88,52));

#else // __cplusplus

extern void _ZN7S9617C1C1Ev();
extern void _ZN7S9617C1D1Ev();
Name_Map name_map_S9617C1[] = {
  NSPAIR(_ZN7S9617C1C1Ev),
  NSPAIR(_ZN7S9617C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9617C2_nt;
extern VTBL_ENTRY _ZTI10S9617C2_nt[];
extern  VTBL_ENTRY _ZTV10S9617C2_nt[];
static Base_Class bases_S9617C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9617C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S9617C1[];
extern void _ZN7S9617C1D1Ev();
extern void _ZN7S9617C1D0Ev();
extern void _ZN10S9617C2_nt2v3Ev();
extern void _ZN10S9617C2_nt2v4Ev();
extern void _ZN7S9617C12v1Ev();
extern void _ZN7S9617C12v2Ev();
static  VTBL_ENTRY vtc_S9617C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9617C1[0]),
  (VTBL_ENTRY)&_ZN7S9617C1D1Ev,
  (VTBL_ENTRY)&_ZN7S9617C1D0Ev,
  (VTBL_ENTRY)&_ZN10S9617C2_nt2v3Ev,
  (VTBL_ENTRY)&_ZN10S9617C2_nt2v4Ev,
  (VTBL_ENTRY)&_ZN7S9617C12v1Ev,
  (VTBL_ENTRY)&_ZN7S9617C12v2Ev,
};
extern VTBL_ENTRY _ZTI7S9617C1[];
extern  VTBL_ENTRY _ZTV7S9617C1[];
Class_Descriptor cd_S9617C1 = {  "S9617C1", // class name
  bases_S9617C1, 1,
  &(vtc_S9617C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(88,52), // object size
  NSPAIRA(_ZTI7S9617C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S9617C1),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6556C2_nt  {
  __tsi64 s6556c2f0;
  void *s6556c2f1;
  virtual void  v2(); // _ZN10S6556C2_nt2v2Ev
  virtual void  v3(); // _ZN10S6556C2_nt2v3Ev
  virtual void  v4(); // _ZN10S6556C2_nt2v4Ev
  virtual void  v5(); // _ZN10S6556C2_nt2v5Ev
  ~S6556C2_nt(); // tgen
  S6556C2_nt(); // tgen
};
//SIG(-1 S6556C2_nt) C1{ v1 v2 v3 v4 FL Fp}


void  S6556C2_nt ::v2(){vfunc_called(this, "_ZN10S6556C2_nt2v2Ev");}
void  S6556C2_nt ::v3(){vfunc_called(this, "_ZN10S6556C2_nt2v3Ev");}
void  S6556C2_nt ::v4(){vfunc_called(this, "_ZN10S6556C2_nt2v4Ev");}
void  S6556C2_nt ::v5(){vfunc_called(this, "_ZN10S6556C2_nt2v5Ev");}
S6556C2_nt ::~S6556C2_nt(){ note_dtor("S6556C2_nt", this);} // tgen
S6556C2_nt ::S6556C2_nt(){ note_ctor("S6556C2_nt", this);} // tgen

//skip512 S6556C2_nt

#else // __cplusplus

extern void _ZN10S6556C2_ntC1Ev();
extern void _ZN10S6556C2_ntD1Ev();
Name_Map name_map_S6556C2_nt[] = {
  NSPAIR(_ZN10S6556C2_ntC1Ev),
  NSPAIR(_ZN10S6556C2_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S6556C2_nt[];
extern void _ZN10S6556C2_nt2v2Ev();
extern void _ZN10S6556C2_nt2v3Ev();
extern void _ZN10S6556C2_nt2v4Ev();
extern void _ZN10S6556C2_nt2v5Ev();
static  VTBL_ENTRY vtc_S6556C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S6556C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v2Ev,
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v3Ev,
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v4Ev,
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v5Ev,
};
extern VTBL_ENTRY _ZTI10S6556C2_nt[];
VTBL_ENTRY *P__ZTI10S6556C2_nt = _ZTI10S6556C2_nt; 
extern  VTBL_ENTRY _ZTV10S6556C2_nt[];
Class_Descriptor cd_S6556C2_nt = {  "S6556C2_nt", // class name
  0,0,//no base classes
  &(vtc_S6556C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(24,16), // object size
  NSPAIRA(_ZTI10S6556C2_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S6556C2_nt),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6556C3  {
  int s6556c3f0[2];
  void *s6556c3f1;
  int s6556c3f2;
  virtual void  v6(); // _ZN7S6556C32v6Ev
  virtual void  v7(); // _ZN7S6556C32v7Ev
  virtual void  v8(); // _ZN7S6556C32v8Ev
  virtual void  v9(); // _ZN7S6556C32v9Ev
  virtual void  v10(); // _ZN7S6556C33v10Ev
  virtual void  v11(); // _ZN7S6556C33v11Ev
  ~S6556C3(); // tgen
  S6556C3(); // tgen
};
//SIG(-1 S6556C3) C1{ v1 v2 v3 v4 v5 v6 Fi[2] Fp Fi}


void  S6556C3 ::v6(){vfunc_called(this, "_ZN7S6556C32v6Ev");}
void  S6556C3 ::v7(){vfunc_called(this, "_ZN7S6556C32v7Ev");}
void  S6556C3 ::v8(){vfunc_called(this, "_ZN7S6556C32v8Ev");}
void  S6556C3 ::v9(){vfunc_called(this, "_ZN7S6556C32v9Ev");}
void  S6556C3 ::v10(){vfunc_called(this, "_ZN7S6556C33v10Ev");}
void  S6556C3 ::v11(){vfunc_called(this, "_ZN7S6556C33v11Ev");}
S6556C3 ::~S6556C3(){ note_dtor("S6556C3", this);} // tgen
S6556C3 ::S6556C3(){ note_ctor("S6556C3", this);} // tgen

static void Test_S6556C3()
{
  extern Class_Descriptor cd_S6556C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(5,6)];
    init_test(&cd_S6556C3, buf);
    S6556C3 *dp, &lv = *(dp=new (buf) S6556C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S6556C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6556C3)");
    check_field_offset(lv, s6556c3f0, ABISELECT(8,4), "S6556C3.s6556c3f0");
    check_field_offset(lv, s6556c3f1, ABISELECT(16,12), "S6556C3.s6556c3f1");
    check_field_offset(lv, s6556c3f2, ABISELECT(24,16), "S6556C3.s6556c3f2");
    test_class_info(&lv, &cd_S6556C3);
    dp->~S6556C3();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6556C3(Test_S6556C3, "S6556C3", ABISELECT(32,20));

#else // __cplusplus

extern void _ZN7S6556C3C1Ev();
extern void _ZN7S6556C3D1Ev();
Name_Map name_map_S6556C3[] = {
  NSPAIR(_ZN7S6556C3C1Ev),
  NSPAIR(_ZN7S6556C3D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6556C3[];
extern void _ZN7S6556C32v6Ev();
extern void _ZN7S6556C32v7Ev();
extern void _ZN7S6556C32v8Ev();
extern void _ZN7S6556C32v9Ev();
extern void _ZN7S6556C33v10Ev();
extern void _ZN7S6556C33v11Ev();
static  VTBL_ENTRY vtc_S6556C3[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6556C3[0]),
  (VTBL_ENTRY)&_ZN7S6556C32v6Ev,
  (VTBL_ENTRY)&_ZN7S6556C32v7Ev,
  (VTBL_ENTRY)&_ZN7S6556C32v8Ev,
  (VTBL_ENTRY)&_ZN7S6556C32v9Ev,
  (VTBL_ENTRY)&_ZN7S6556C33v10Ev,
  (VTBL_ENTRY)&_ZN7S6556C33v11Ev,
};
extern VTBL_ENTRY _ZTI7S6556C3[];
extern  VTBL_ENTRY _ZTV7S6556C3[];
Class_Descriptor cd_S6556C3 = {  "S6556C3", // class name
  0,0,//no base classes
  &(vtc_S6556C3[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(32,20), // object size
  NSPAIRA(_ZTI7S6556C3),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6556C3),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6556C1  : S6556C2_nt , S6556C3 {
  virtual void  v1(); // _ZN7S6556C12v1Ev
  ~S6556C1(); // tgen
  S6556C1(); // tgen
};
//SIG(1 S6556C1) C1{ BC2{ v2 v3 v4 v5 FL Fp} BC3{ v6 v7 v8 v9 v10 v11 Fi[2] Fp Fi} v1}


void  S6556C1 ::v1(){vfunc_called(this, "_ZN7S6556C12v1Ev");}
S6556C1 ::~S6556C1(){ note_dtor("S6556C1", this);} // tgen
S6556C1 ::S6556C1(){ note_ctor("S6556C1", this);} // tgen

static void Test_S6556C1()
{
  extern Class_Descriptor cd_S6556C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,10)];
    init_test(&cd_S6556C1, buf);
    S6556C1 *dp, &lv = *(dp=new (buf) S6556C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,36), "sizeof(S6556C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6556C1)");
    check_base_class_offset(lv, (S6556C2_nt*), 0, "S6556C1");
    check_base_class_offset(lv, (S6556C3*), ABISELECT(24,16), "S6556C1");
    test_class_info(&lv, &cd_S6556C1);
    dp->~S6556C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6556C1(Test_S6556C1, "S6556C1", ABISELECT(56,36));

#else // __cplusplus

extern void _ZN7S6556C1C1Ev();
extern void _ZN7S6556C1D1Ev();
Name_Map name_map_S6556C1[] = {
  NSPAIR(_ZN7S6556C1C1Ev),
  NSPAIR(_ZN7S6556C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6556C2_nt;
extern VTBL_ENTRY _ZTI10S6556C2_nt[];
extern  VTBL_ENTRY _ZTV10S6556C2_nt[];
extern Class_Descriptor cd_S6556C3;
extern VTBL_ENTRY _ZTI7S6556C3[];
extern  VTBL_ENTRY _ZTV7S6556C3[];
static Base_Class bases_S6556C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6556C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {&cd_S6556C3,    ABISELECT(24,16), //bcp->offset
    7, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    2, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6556C1[];
extern void _ZN10S6556C2_nt2v2Ev();
extern void _ZN10S6556C2_nt2v3Ev();
extern void _ZN10S6556C2_nt2v4Ev();
extern void _ZN10S6556C2_nt2v5Ev();
extern void _ZN7S6556C12v1Ev();
extern void _ZN7S6556C32v6Ev();
extern void _ZN7S6556C32v7Ev();
extern void _ZN7S6556C32v8Ev();
extern void _ZN7S6556C32v9Ev();
extern void _ZN7S6556C33v10Ev();
extern void _ZN7S6556C33v11Ev();
static  VTBL_ENTRY vtc_S6556C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6556C1[0]),
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v2Ev,
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v3Ev,
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v4Ev,
  (VTBL_ENTRY)&_ZN10S6556C2_nt2v5Ev,
  (VTBL_ENTRY)&_ZN7S6556C12v1Ev,
  ABISELECT(-24,-16),
  (VTBL_ENTRY)&(_ZTI7S6556C1[0]),
  (VTBL_ENTRY)&_ZN7S6556C32v6Ev,
  (VTBL_ENTRY)&_ZN7S6556C32v7Ev,
  (VTBL_ENTRY)&_ZN7S6556C32v8Ev,
  (VTBL_ENTRY)&_ZN7S6556C32v9Ev,
  (VTBL_ENTRY)&_ZN7S6556C33v10Ev,
  (VTBL_ENTRY)&_ZN7S6556C33v11Ev,
};
extern VTBL_ENTRY _ZTI7S6556C1[];
extern  VTBL_ENTRY _ZTV7S6556C1[];
Class_Descriptor cd_S6556C1 = {  "S6556C1", // class name
  bases_S6556C1, 2,
  &(vtc_S6556C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(56,36), // object size
  NSPAIRA(_ZTI7S6556C1),ABISELECT(56,32), //typeinfo_var
  NSPAIRA(_ZTV7S6556C1),15, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  2, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1122C3  : S21969C7_nt {
};
//SIG(-1 S1122C3) C1{ BC2{ m Fi}}



static void Test_S1122C3()
{
  extern Class_Descriptor cd_S1122C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1122C3, buf);
    S1122C3 &lv = *(new (buf) S1122C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1122C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1122C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1122C3");
    test_class_info(&lv, &cd_S1122C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1122C3(Test_S1122C3, "S1122C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1122C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1122C3[];
Class_Descriptor cd_S1122C3 = {  "S1122C3", // class name
  bases_S1122C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1122C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1122C2  : S1122C3 {
  virtual  ~S1122C2(); // _ZN7S1122C2D1Ev
  virtual void  v7(); // _ZN7S1122C22v7Ev
  virtual void  v8(); // _ZN7S1122C22v8Ev
  virtual void  v9(); // _ZN7S1122C22v9Ev
  virtual void  v10(); // _ZN7S1122C23v10Ev
  virtual void  v11(); // _ZN7S1122C23v11Ev
  virtual void  v12(); // _ZN7S1122C23v12Ev
  S1122C2(); // tgen
};
//SIG(-1 S1122C2) C1{ BC2{ BC3{ m Fi}} vd v1 v2 v3 v4 v5 v6}


 S1122C2 ::~S1122C2(){ note_dtor("S1122C2", this);}
void  S1122C2 ::v7(){vfunc_called(this, "_ZN7S1122C22v7Ev");}
void  S1122C2 ::v8(){vfunc_called(this, "_ZN7S1122C22v8Ev");}
void  S1122C2 ::v9(){vfunc_called(this, "_ZN7S1122C22v9Ev");}
void  S1122C2 ::v10(){vfunc_called(this, "_ZN7S1122C23v10Ev");}
void  S1122C2 ::v11(){vfunc_called(this, "_ZN7S1122C23v11Ev");}
void  S1122C2 ::v12(){vfunc_called(this, "_ZN7S1122C23v12Ev");}
S1122C2 ::S1122C2(){ note_ctor("S1122C2", this);} // tgen

static void Test_S1122C2()
{
  extern Class_Descriptor cd_S1122C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1122C2, buf);
    S1122C2 *dp, &lv = *(dp=new (buf) S1122C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1122C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1122C2)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1122C3*), ABISELECT(8,4), "S1122C2");
    check_base_class_offset(lv, (S1122C3*), ABISELECT(8,4), "S1122C2");
    test_class_info(&lv, &cd_S1122C2);
    dp->~S1122C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1122C2(Test_S1122C2, "S1122C2", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1122C2C1Ev();
extern void _ZN7S1122C2D1Ev();
Name_Map name_map_S1122C2[] = {
  NSPAIR(_ZN7S1122C2C1Ev),
  NSPAIR(_ZN7S1122C2D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1122C3;
extern VTBL_ENTRY _ZTI7S1122C3[];
static Base_Class bases_S1122C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1122C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1122C2[];
extern void _ZN7S1122C2D1Ev();
extern void _ZN7S1122C2D0Ev();
extern void _ZN7S1122C22v7Ev();
extern void _ZN7S1122C22v8Ev();
extern void _ZN7S1122C22v9Ev();
extern void _ZN7S1122C23v10Ev();
extern void _ZN7S1122C23v11Ev();
extern void _ZN7S1122C23v12Ev();
static  VTBL_ENTRY vtc_S1122C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1122C2[0]),
  (VTBL_ENTRY)&_ZN7S1122C2D1Ev,
  (VTBL_ENTRY)&_ZN7S1122C2D0Ev,
  (VTBL_ENTRY)&_ZN7S1122C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1122C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1122C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1122C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1122C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1122C23v12Ev,
};
extern VTBL_ENTRY _ZTI7S1122C2[];
extern  VTBL_ENTRY _ZTV7S1122C2[];
Class_Descriptor cd_S1122C2 = {  "S1122C2", // class name
  bases_S1122C2, 2,
  &(vtc_S1122C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1122C2),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV7S1122C2),10, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1122C1  : S1122C2 {
  virtual void  v1(); // _ZN7S1122C12v1Ev
  virtual void  v2(); // _ZN7S1122C12v2Ev
  virtual void  v3(); // _ZN7S1122C12v3Ev
  virtual void  v4(); // _ZN7S1122C12v4Ev
  virtual void  v5(); // _ZN7S1122C12v5Ev
  virtual void  v6(); // _ZN7S1122C12v6Ev
  ~S1122C1(); // tgen
  S1122C1(); // tgen
};
//SIG(1 S1122C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v7 v8 v9 v10 v11 v12} v1 v2 v3 v4 v5 v6}


void  S1122C1 ::v1(){vfunc_called(this, "_ZN7S1122C12v1Ev");}
void  S1122C1 ::v2(){vfunc_called(this, "_ZN7S1122C12v2Ev");}
void  S1122C1 ::v3(){vfunc_called(this, "_ZN7S1122C12v3Ev");}
void  S1122C1 ::v4(){vfunc_called(this, "_ZN7S1122C12v4Ev");}
void  S1122C1 ::v5(){vfunc_called(this, "_ZN7S1122C12v5Ev");}
void  S1122C1 ::v6(){vfunc_called(this, "_ZN7S1122C12v6Ev");}
S1122C1 ::~S1122C1(){ note_dtor("S1122C1", this);} // tgen
S1122C1 ::S1122C1(){ note_ctor("S1122C1", this);} // tgen

static void Test_S1122C1()
{
  extern Class_Descriptor cd_S1122C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S1122C1, buf);
    S1122C1 *dp, &lv = *(dp=new (buf) S1122C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S1122C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1122C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1122C3*)(S1122C2*), ABISELECT(8,4), "S1122C1");
    check_base_class_offset(lv, (S1122C3*)(S1122C2*), ABISELECT(8,4), "S1122C1");
    check_base_class_offset(lv, (S1122C2*), 0, "S1122C1");
    test_class_info(&lv, &cd_S1122C1);
    dp->~S1122C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1122C1(Test_S1122C1, "S1122C1", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S1122C1C1Ev();
extern void _ZN7S1122C1D1Ev();
Name_Map name_map_S1122C1[] = {
  NSPAIR(_ZN7S1122C1C1Ev),
  NSPAIR(_ZN7S1122C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1122C3;
extern VTBL_ENTRY _ZTI7S1122C3[];
extern Class_Descriptor cd_S1122C2;
extern VTBL_ENTRY _ZTI7S1122C2[];
extern  VTBL_ENTRY _ZTV7S1122C2[];
static Base_Class bases_S1122C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1122C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1122C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1122C1[];
extern void _ZN7S1122C1D1Ev();
extern void _ZN7S1122C1D0Ev();
extern void _ZN7S1122C22v7Ev();
extern void _ZN7S1122C22v8Ev();
extern void _ZN7S1122C22v9Ev();
extern void _ZN7S1122C23v10Ev();
extern void _ZN7S1122C23v11Ev();
extern void _ZN7S1122C23v12Ev();
extern void _ZN7S1122C12v1Ev();
extern void _ZN7S1122C12v2Ev();
extern void _ZN7S1122C12v3Ev();
extern void _ZN7S1122C12v4Ev();
extern void _ZN7S1122C12v5Ev();
extern void _ZN7S1122C12v6Ev();
static  VTBL_ENTRY vtc_S1122C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1122C1[0]),
  (VTBL_ENTRY)&_ZN7S1122C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1122C1D0Ev,
  (VTBL_ENTRY)&_ZN7S1122C22v7Ev,
  (VTBL_ENTRY)&_ZN7S1122C22v8Ev,
  (VTBL_ENTRY)&_ZN7S1122C22v9Ev,
  (VTBL_ENTRY)&_ZN7S1122C23v10Ev,
  (VTBL_ENTRY)&_ZN7S1122C23v11Ev,
  (VTBL_ENTRY)&_ZN7S1122C23v12Ev,
  (VTBL_ENTRY)&_ZN7S1122C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1122C12v2Ev,
  (VTBL_ENTRY)&_ZN7S1122C12v3Ev,
  (VTBL_ENTRY)&_ZN7S1122C12v4Ev,
  (VTBL_ENTRY)&_ZN7S1122C12v5Ev,
  (VTBL_ENTRY)&_ZN7S1122C12v6Ev,
};
extern VTBL_ENTRY _ZTI7S1122C1[];
extern  VTBL_ENTRY _ZTV7S1122C1[];
Class_Descriptor cd_S1122C1 = {  "S1122C1", // class name
  bases_S1122C1, 3,
  &(vtc_S1122C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S1122C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1122C1),16, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S20302C2  {
  void *s20302c2f0[8];
  int s20302c2f1;
  long double s20302c2f2;
  virtual void  v6(); // _ZN8S20302C22v6Ev
  virtual void  v7(); // _ZN8S20302C22v7Ev
  virtual void  v8(); // _ZN8S20302C22v8Ev
  virtual void  v9(); // _ZN8S20302C22v9Ev
  virtual void  v10(); // _ZN8S20302C23v10Ev
  ~S20302C2(); // tgen
  S20302C2(); // tgen
};
//SIG(-1 S20302C2) C1{ v1 v2 v3 v4 v5 Fp[8] Fi FD}


void  S20302C2 ::v6(){vfunc_called(this, "_ZN8S20302C22v6Ev");}
void  S20302C2 ::v7(){vfunc_called(this, "_ZN8S20302C22v7Ev");}
void  S20302C2 ::v8(){vfunc_called(this, "_ZN8S20302C22v8Ev");}
void  S20302C2 ::v9(){vfunc_called(this, "_ZN8S20302C22v9Ev");}
void  S20302C2 ::v10(){vfunc_called(this, "_ZN8S20302C23v10Ev");}
S20302C2 ::~S20302C2(){ note_dtor("S20302C2", this);} // tgen
S20302C2 ::S20302C2(){ note_ctor("S20302C2", this);} // tgen

static void Test_S20302C2()
{
  extern Class_Descriptor cd_S20302C2;
  void *lvp;
  {
    ABISELECT(sal_16,int) buf[ABISELECT(7,14)];
    init_test(&cd_S20302C2, buf);
    S20302C2 *dp, &lv = *(dp=new (buf) S20302C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(96,52), "sizeof(S20302C2)");
    check2(__alignof__(lv), ABISELECT(16,4), "__alignof__(S20302C2)");
    check_field_offset(lv, s20302c2f0, ABISELECT(8,4), "S20302C2.s20302c2f0");
    check_field_offset(lv, s20302c2f1, ABISELECT(72,36), "S20302C2.s20302c2f1");
    check_field_offset(lv, s20302c2f2, ABISELECT(80,40), "S20302C2.s20302c2f2");
    test_class_info(&lv, &cd_S20302C2);
    dp->~S20302C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS20302C2(Test_S20302C2, "S20302C2", ABISELECT(96,52));

#else // __cplusplus

extern void _ZN8S20302C2C1Ev();
extern void _ZN8S20302C2D1Ev();
Name_Map name_map_S20302C2[] = {
  NSPAIR(_ZN8S20302C2C1Ev),
  NSPAIR(_ZN8S20302C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S20302C2[];
extern void _ZN8S20302C22v6Ev();
extern void _ZN8S20302C22v7Ev();
extern void _ZN8S20302C22v8Ev();
extern void _ZN8S20302C22v9Ev();
extern void _ZN8S20302C23v10Ev();
static  VTBL_ENTRY vtc_S20302C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S20302C2[0]),
  (VTBL_ENTRY)&_ZN8S20302C22v6Ev,
  (VTBL_ENTRY)&_ZN8S20302C22v7Ev,
  (VTBL_ENTRY)&_ZN8S20302C22v8Ev,
  (VTBL_ENTRY)&_ZN8S20302C22v9Ev,
  (VTBL_ENTRY)&_ZN8S20302C23v10Ev,
};
extern VTBL_ENTRY _ZTI8S20302C2[];
extern  VTBL_ENTRY _ZTV8S20302C2[];
Class_Descriptor cd_S20302C2 = {  "S20302C2", // class name
  0,0,//no base classes
  &(vtc_S20302C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(96,52), // object size
  NSPAIRA(_ZTI8S20302C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S20302C2),7, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S20302C1  : virtual S20302C2 {
  int s20302c1f0;
  ::S20302C2 s20302c1f1[9];
  virtual void  v1(); // _ZN8S20302C12v1Ev
  virtual void  v2(); // _ZN8S20302C12v2Ev
  virtual void  v3(); // _ZN8S20302C12v3Ev
  virtual void  v4(); // _ZN8S20302C12v4Ev
  virtual void  v5(); // _ZN8S20302C12v5Ev
  ~S20302C1(); // tgen
  S20302C1(); // tgen
};
//SIG(1 S20302C1) C1{ VBC2{ v6 v7 v8 v9 v10 Fp[8] Fi FD} v1 v2 v3 v4 v5 Fi FC2[9]}


void  S20302C1 ::v1(){vfunc_called(this, "_ZN8S20302C12v1Ev");}
void  S20302C1 ::v2(){vfunc_called(this, "_ZN8S20302C12v2Ev");}
void  S20302C1 ::v3(){vfunc_called(this, "_ZN8S20302C12v3Ev");}
void  S20302C1 ::v4(){vfunc_called(this, "_ZN8S20302C12v4Ev");}
void  S20302C1 ::v5(){vfunc_called(this, "_ZN8S20302C12v5Ev");}
S20302C1 ::~S20302C1(){ note_dtor("S20302C1", this);} // tgen
S20302C1 ::S20302C1(){ note_ctor("S20302C1", this);} // tgen

static void Test_S20302C1()
{
  extern Class_Descriptor cd_S20302C1;
  void *lvp;
  {
    ABISELECT(sal_16,int) buf[ABISELECT(62,133)];
    init_test(&cd_S20302C1, buf);
    S20302C1 *dp, &lv = *(dp=new (buf) S20302C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(976,528), "sizeof(S20302C1)");
    check2(__alignof__(lv), ABISELECT(16,4), "__alignof__(S20302C1)");
    check_base_class_offset(lv, (S20302C2*), ABISELECT(880,476), "S20302C1");
    check_field_offset(lv, s20302c1f0, ABISELECT(8,4), "S20302C1.s20302c1f0");
    check_field_offset(lv, s20302c1f1, ABISELECT(16,8), "S20302C1.s20302c1f1");
    test_class_info(&lv, &cd_S20302C1);
    dp->~S20302C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS20302C1(Test_S20302C1, "S20302C1", ABISELECT(976,528));

#else // __cplusplus

extern void _ZN8S20302C1C1Ev();
extern void _ZN8S20302C1D1Ev();
Name_Map name_map_S20302C1[] = {
  NSPAIR(_ZN8S20302C1C1Ev),
  NSPAIR(_ZN8S20302C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S20302C2;
extern VTBL_ENTRY _ZTI8S20302C2[];
extern  VTBL_ENTRY _ZTV8S20302C2[];
static Base_Class bases_S20302C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S20302C2,    ABISELECT(880,476), //bcp->offset
    8, //bcp->virtual_function_table_offset
    7, //num_negative_vtable_entries(t, bcp)
    2, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 1},
  {0}};
extern VTBL_ENTRY _ZTI8S20302C1[];
extern void _ZN8S20302C12v1Ev();
extern void _ZN8S20302C12v2Ev();
extern void _ZN8S20302C12v3Ev();
extern void _ZN8S20302C12v4Ev();
extern void _ZN8S20302C12v5Ev();
extern void _ZN8S20302C22v6Ev();
extern void _ZN8S20302C22v7Ev();
extern void _ZN8S20302C22v8Ev();
extern void _ZN8S20302C22v9Ev();
extern void _ZN8S20302C23v10Ev();
static  VTBL_ENTRY vtc_S20302C1[] = {
  ABISELECT(880,476),
  0,
  (VTBL_ENTRY)&(_ZTI8S20302C1[0]),
  (VTBL_ENTRY)&_ZN8S20302C12v1Ev,
  (VTBL_ENTRY)&_ZN8S20302C12v2Ev,
  (VTBL_ENTRY)&_ZN8S20302C12v3Ev,
  (VTBL_ENTRY)&_ZN8S20302C12v4Ev,
  (VTBL_ENTRY)&_ZN8S20302C12v5Ev,
  0,
  0,
  0,
  0,
  0,
  ABISELECT(-880,-476),
  (VTBL_ENTRY)&(_ZTI8S20302C1[0]),
  (VTBL_ENTRY)&_ZN8S20302C22v6Ev,
  (VTBL_ENTRY)&_ZN8S20302C22v7Ev,
  (VTBL_ENTRY)&_ZN8S20302C22v8Ev,
  (VTBL_ENTRY)&_ZN8S20302C22v9Ev,
  (VTBL_ENTRY)&_ZN8S20302C23v10Ev,
};
extern VTBL_ENTRY _ZTV8S20302C1[];
static  VTT_ENTRY vtt_S20302C1[] = {
  {&(_ZTV8S20302C1[3]),  3,20},
  {&(_ZTV8S20302C1[15]),  15,20},
};
extern VTBL_ENTRY _ZTI8S20302C1[];
extern  VTBL_ENTRY _ZTV8S20302C1[];
extern  VTBL_ENTRY * __attribute__((weak))_ZTT8S20302C1[];
Class_Descriptor cd_S20302C1 = {  "S20302C1", // class name
  bases_S20302C1, 1,
  &(vtc_S20302C1[0]), // expected_vtbl_contents
  &(vtt_S20302C1[0]), // expected_vtt_contents
  ABISELECT(976,528), // object size
  NSPAIRA(_ZTI8S20302C1),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV8S20302C1),20, //virtual function table var
  3, // offset into main vftv pointed to by object[0]
  NSPAIRA(_ZTT8S20302C1),2, //virtual table table var
  1, // n_initialized_bases
  1, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16544C1  {
  int s16544c1f0;
  char s16544c1f1;
  int s16544c1f2;
  char s16544c1f3;
  int s16544c1f4;
  char s16544c1f5;
  int s16544c1f6;
  char s16544c1f7[9];
  ::S1058C6_nt s16544c1f8;
  void  mf16544c1(); // _ZN8S16544C19mf16544c1Ev
};
//SIG(1 S16544C1) C1{ m Fi Fc Fi Fc Fi Fc Fi Fc[9] FC2{ m Fi FC3{ BC4{ m Fp Fi}}}}


void  S16544C1 ::mf16544c1(){}

static void Test_S16544C1()
{
  {
    init_simple_test("S16544C1");
    S16544C1 lv;
    check2(sizeof(lv), ABISELECT(64,52), "sizeof(S16544C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16544C1)");
    check_field_offset(lv, s16544c1f0, 0, "S16544C1.s16544c1f0");
    check_field_offset(lv, s16544c1f1, 4, "S16544C1.s16544c1f1");
    check_field_offset(lv, s16544c1f2, 8, "S16544C1.s16544c1f2");
    check_field_offset(lv, s16544c1f3, 12, "S16544C1.s16544c1f3");
    check_field_offset(lv, s16544c1f4, 16, "S16544C1.s16544c1f4");
    check_field_offset(lv, s16544c1f5, 20, "S16544C1.s16544c1f5");
    check_field_offset(lv, s16544c1f6, 24, "S16544C1.s16544c1f6");
    check_field_offset(lv, s16544c1f7, 28, "S16544C1.s16544c1f7");
    check_field_offset(lv, s16544c1f8, 40, "S16544C1.s16544c1f8");
  }
}
static Arrange_To_Call_Me vS16544C1(Test_S16544C1, "S16544C1", ABISELECT(64,52));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2966C2_nt  : S9701C4_nt {
};
//SIG(-1 S2966C2_nt) C1{ BC2{ m}}



//skip512 S2966C2_nt

#else // __cplusplus

extern Class_Descriptor cd_S9701C4_nt;
extern VTBL_ENTRY _ZTI10S9701C4_nt[];
static Base_Class bases_S2966C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9701C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2966C2_nt = {  "S2966C2_nt", // class name
  bases_S2966C2_nt, 1,
  0, // no vftv
  0, //no vtt
  1, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2966C1  : S2966C2_nt {
  ::S9664C5_nt s2966c1f0;
  ::S1726C5_nt s2966c1f1;
  void *s2966c1f2;
};
//SIG(1 S2966C1) C1{ BC2{ BC3{ m}} FC4{ m FL[4]} FC5{ BC6{ m Fp Fi FC3 FC7{ m}}} Fp}



static void Test_S2966C1()
{
  extern Class_Descriptor cd_S2966C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,13)];
    init_test(&cd_S2966C1, buf);
    S2966C1 &lv = *(new (buf) S2966C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,48), "sizeof(S2966C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S2966C1)");
    check_base_class_offset(lv, (S9701C4_nt*)(S2966C2_nt*), 0, "S2966C1");
    check_base_class_offset(lv, (S2966C2_nt*), 0, "S2966C1");
    check_field_offset(lv, s2966c1f0, 0, "S2966C1.s2966c1f0");
    check_field_offset(lv, s2966c1f1, 32, "S2966C1.s2966c1f1");
    check_field_offset(lv, s2966c1f2, ABISELECT(48,44), "S2966C1.s2966c1f2");
    test_class_info(&lv, &cd_S2966C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2966C1(Test_S2966C1, "S2966C1", ABISELECT(56,48));

#else // __cplusplus

extern Class_Descriptor cd_S9701C4_nt;
extern VTBL_ENTRY _ZTI10S9701C4_nt[];
extern Class_Descriptor cd_S2966C2_nt;
static Base_Class bases_S2966C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9701C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S2966C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2966C1 = {  "S2966C1", // class name
  bases_S2966C1, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(56,48), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2705C2  : S21969C7_nt {
};
//SIG(-1 S2705C2) C1{ BC2{ m Fi}}



static void Test_S2705C2()
{
  extern Class_Descriptor cd_S2705C2;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S2705C2, buf);
    S2705C2 &lv = *(new (buf) S2705C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S2705C2)");
    check2(__alignof__(lv), 4, "__alignof__(S2705C2)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S2705C2");
    test_class_info(&lv, &cd_S2705C2);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2705C2(Test_S2705C2, "S2705C2", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S2705C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2705C2 = {  "S2705C2", // class name
  bases_S2705C2, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2705C1  : S2705C2 {
  void *s2705c1f0;
  ::S1058C5 s2705c1f1;
};
//SIG(1 S2705C1) C1{ BC2{ BC3{ m Fi}} Fp FC4{ Fc FC5{ m Fi FC6{ BC7{ m Fp Fi}}} FC5}}



static void Test_S2705C1()
{
  extern Class_Descriptor cd_S2705C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[10];
    init_test(&cd_S2705C1, buf);
    S2705C1 &lv = *(new (buf) S2705C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(72,36), "sizeof(S2705C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S2705C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S2705C2*), 0, "S2705C1");
    check_base_class_offset(lv, (S2705C2*), 0, "S2705C1");
    check_field_offset(lv, s2705c1f0, ABISELECT(8,4), "S2705C1.s2705c1f0");
    check_field_offset(lv, s2705c1f1, ABISELECT(16,8), "S2705C1.s2705c1f1");
    test_class_info(&lv, &cd_S2705C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2705C1(Test_S2705C1, "S2705C1", ABISELECT(72,36));

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S2705C2;
static Base_Class bases_S2705C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S2705C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2705C1 = {  "S2705C1", // class name
  bases_S2705C1, 2,
  0, // no vftv
  0, //no vtt
  ABISELECT(72,36), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1011C3  : S21969C7_nt {
};
//SIG(-1 S1011C3) C1{ BC2{ m Fi}}



static void Test_S1011C3()
{
  extern Class_Descriptor cd_S1011C3;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S1011C3, buf);
    S1011C3 &lv = *(new (buf) S1011C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S1011C3)");
    check2(__alignof__(lv), 4, "__alignof__(S1011C3)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S1011C3");
    test_class_info(&lv, &cd_S1011C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1011C3(Test_S1011C3, "S1011C3", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S1011C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1011C3[];
Class_Descriptor cd_S1011C3 = {  "S1011C3", // class name
  bases_S1011C3, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  NSPAIRA(_ZTI7S1011C3),ABISELECT(24,12), //typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1011C2_nt  : S1011C3 {
  virtual  ~S1011C2_nt(); // _ZN10S1011C2_ntD1Ev
  virtual void  v3(); // _ZN10S1011C2_nt2v3Ev
  virtual void  v4(); // _ZN10S1011C2_nt2v4Ev
  S1011C2_nt(); // tgen
};
//SIG(-1 S1011C2_nt) C1{ BC2{ BC3{ m Fi}} vd v1 v2}


 S1011C2_nt ::~S1011C2_nt(){ note_dtor("S1011C2_nt", this);}
void  S1011C2_nt ::v3(){vfunc_called(this, "_ZN10S1011C2_nt2v3Ev");}
void  S1011C2_nt ::v4(){vfunc_called(this, "_ZN10S1011C2_nt2v4Ev");}
S1011C2_nt ::S1011C2_nt(){ note_ctor("S1011C2_nt", this);} // tgen

//skip512 S1011C2_nt

#else // __cplusplus

extern void _ZN10S1011C2_ntC1Ev();
extern void _ZN10S1011C2_ntD1Ev();
Name_Map name_map_S1011C2_nt[] = {
  NSPAIR(_ZN10S1011C2_ntC1Ev),
  NSPAIR(_ZN10S1011C2_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1011C3;
extern VTBL_ENTRY _ZTI7S1011C3[];
static Base_Class bases_S1011C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1011C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S1011C2_nt[];
extern void _ZN10S1011C2_ntD1Ev();
extern void _ZN10S1011C2_ntD0Ev();
extern void _ZN10S1011C2_nt2v3Ev();
extern void _ZN10S1011C2_nt2v4Ev();
static  VTBL_ENTRY vtc_S1011C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S1011C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S1011C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S1011C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S1011C2_nt2v3Ev,
  (VTBL_ENTRY)&_ZN10S1011C2_nt2v4Ev,
};
extern VTBL_ENTRY _ZTI10S1011C2_nt[];
VTBL_ENTRY *P__ZTI10S1011C2_nt = _ZTI10S1011C2_nt; 
extern  VTBL_ENTRY _ZTV10S1011C2_nt[];
Class_Descriptor cd_S1011C2_nt = {  "S1011C2_nt", // class name
  bases_S1011C2_nt, 2,
  &(vtc_S1011C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI10S1011C2_nt),ABISELECT(40,24), //typeinfo_var
  NSPAIRA(_ZTV10S1011C2_nt),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S1011C1  : S1011C2_nt {
  ::S21969C2_nt s1011c1f0;
  ::S21969C2_nt s1011c1f1;
  ::S21969C2_nt s1011c1f2;
  ::S21969C2_nt s1011c1f3;
  virtual void  v1(); // _ZN7S1011C12v1Ev
  virtual void  v2(); // _ZN7S1011C12v2Ev
  ~S1011C1(); // tgen
  S1011C1(); // tgen
};
//SIG(1 S1011C1) C1{ BC2{ BC3{ BC4{ m Fi}} vd v3 v4} v1 v2 FC5{ m Fp} FC5 FC5 FC5}


void  S1011C1 ::v1(){vfunc_called(this, "_ZN7S1011C12v1Ev");}
void  S1011C1 ::v2(){vfunc_called(this, "_ZN7S1011C12v2Ev");}
S1011C1 ::~S1011C1(){ note_dtor("S1011C1", this);} // tgen
S1011C1 ::S1011C1(){ note_ctor("S1011C1", this);} // tgen

static void Test_S1011C1()
{
  extern Class_Descriptor cd_S1011C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[7];
    init_test(&cd_S1011C1, buf);
    S1011C1 *dp, &lv = *(dp=new (buf) S1011C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(48,24), "sizeof(S1011C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S1011C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S1011C3*)(S1011C2_nt*), ABISELECT(8,4), "S1011C1");
    check_base_class_offset(lv, (S1011C3*)(S1011C2_nt*), ABISELECT(8,4), "S1011C1");
    check_base_class_offset(lv, (S1011C2_nt*), 0, "S1011C1");
    check_field_offset(lv, s1011c1f0, ABISELECT(16,8), "S1011C1.s1011c1f0");
    check_field_offset(lv, s1011c1f1, ABISELECT(24,12), "S1011C1.s1011c1f1");
    check_field_offset(lv, s1011c1f2, ABISELECT(32,16), "S1011C1.s1011c1f2");
    check_field_offset(lv, s1011c1f3, ABISELECT(40,20), "S1011C1.s1011c1f3");
    test_class_info(&lv, &cd_S1011C1);
    dp->~S1011C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS1011C1(Test_S1011C1, "S1011C1", ABISELECT(48,24));

#else // __cplusplus

extern void _ZN7S1011C1C1Ev();
extern void _ZN7S1011C1D1Ev();
Name_Map name_map_S1011C1[] = {
  NSPAIR(_ZN7S1011C1C1Ev),
  NSPAIR(_ZN7S1011C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S1011C3;
extern VTBL_ENTRY _ZTI7S1011C3[];
extern Class_Descriptor cd_S1011C2_nt;
extern VTBL_ENTRY _ZTI10S1011C2_nt[];
extern  VTBL_ENTRY _ZTV10S1011C2_nt[];
static Base_Class bases_S1011C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S1011C3,    ABISELECT(8,4), //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    2, //immediately_derived
  0, 0},
  {&cd_S1011C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S1011C1[];
extern void _ZN7S1011C1D1Ev();
extern void _ZN7S1011C1D0Ev();
extern void _ZN10S1011C2_nt2v3Ev();
extern void _ZN10S1011C2_nt2v4Ev();
extern void _ZN7S1011C12v1Ev();
extern void _ZN7S1011C12v2Ev();
static  VTBL_ENTRY vtc_S1011C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S1011C1[0]),
  (VTBL_ENTRY)&_ZN7S1011C1D1Ev,
  (VTBL_ENTRY)&_ZN7S1011C1D0Ev,
  (VTBL_ENTRY)&_ZN10S1011C2_nt2v3Ev,
  (VTBL_ENTRY)&_ZN10S1011C2_nt2v4Ev,
  (VTBL_ENTRY)&_ZN7S1011C12v1Ev,
  (VTBL_ENTRY)&_ZN7S1011C12v2Ev,
};
extern VTBL_ENTRY _ZTI7S1011C1[];
extern  VTBL_ENTRY _ZTV7S1011C1[];
Class_Descriptor cd_S1011C1 = {  "S1011C1", // class name
  bases_S1011C1, 3,
  &(vtc_S1011C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(48,24), // object size
  NSPAIRA(_ZTI7S1011C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S1011C1),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S7047C2  {
  int s7047c2f0[4];
  char s7047c2f1[16];
  virtual  ~S7047C2(); // _ZN7S7047C2D1Ev
  virtual void  v6(); // _ZN7S7047C22v6Ev
  virtual void  v7(); // _ZN7S7047C22v7Ev
  virtual void  v8(); // _ZN7S7047C22v8Ev
  virtual void  v9(); // _ZN7S7047C22v9Ev
  S7047C2(); // tgen
};
//SIG(-1 S7047C2) C1{ vd v1 v2 v3 v4 Fi[4] Fc[16]}


 S7047C2 ::~S7047C2(){ note_dtor("S7047C2", this);}
void  S7047C2 ::v6(){vfunc_called(this, "_ZN7S7047C22v6Ev");}
void  S7047C2 ::v7(){vfunc_called(this, "_ZN7S7047C22v7Ev");}
void  S7047C2 ::v8(){vfunc_called(this, "_ZN7S7047C22v8Ev");}
void  S7047C2 ::v9(){vfunc_called(this, "_ZN7S7047C22v9Ev");}
S7047C2 ::S7047C2(){ note_ctor("S7047C2", this);} // tgen

static void Test_S7047C2()
{
  extern Class_Descriptor cd_S7047C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,10)];
    init_test(&cd_S7047C2, buf);
    S7047C2 *dp, &lv = *(dp=new (buf) S7047C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,36), "sizeof(S7047C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S7047C2)");
    check_field_offset(lv, s7047c2f0, ABISELECT(8,4), "S7047C2.s7047c2f0");
    check_field_offset(lv, s7047c2f1, ABISELECT(24,20), "S7047C2.s7047c2f1");
    test_class_info(&lv, &cd_S7047C2);
    dp->~S7047C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS7047C2(Test_S7047C2, "S7047C2", ABISELECT(40,36));

#else // __cplusplus

extern void _ZN7S7047C2C1Ev();
extern void _ZN7S7047C2D1Ev();
Name_Map name_map_S7047C2[] = {
  NSPAIR(_ZN7S7047C2C1Ev),
  NSPAIR(_ZN7S7047C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S7047C2[];
extern void _ZN7S7047C2D1Ev();
extern void _ZN7S7047C2D0Ev();
extern void _ZN7S7047C22v6Ev();
extern void _ZN7S7047C22v7Ev();
extern void _ZN7S7047C22v8Ev();
extern void _ZN7S7047C22v9Ev();
static  VTBL_ENTRY vtc_S7047C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S7047C2[0]),
  (VTBL_ENTRY)&_ZN7S7047C2D1Ev,
  (VTBL_ENTRY)&_ZN7S7047C2D0Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v6Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v7Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v8Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v9Ev,
};
extern VTBL_ENTRY _ZTI7S7047C2[];
extern  VTBL_ENTRY _ZTV7S7047C2[];
Class_Descriptor cd_S7047C2 = {  "S7047C2", // class name
  0,0,//no base classes
  &(vtc_S7047C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,36), // object size
  NSPAIRA(_ZTI7S7047C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S7047C2),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S7047C1  : S7047C2 {
  void *s7047c1f0;
  virtual  ~S7047C1(); // _ZN7S7047C1D1Ev
  virtual void  v1(); // _ZN7S7047C12v1Ev
  virtual void  v2(); // _ZN7S7047C12v2Ev
  virtual void  v3(); // _ZN7S7047C12v3Ev
  virtual void  v4(); // _ZN7S7047C12v4Ev
  virtual void  v5(); // _ZN7S7047C12v5Ev
  S7047C1(); // tgen
};
//SIG(1 S7047C1) C1{ BC2{ vd v6 v7 v8 v9 Fi[4] Fc[16]} vd v1 v2 v3 v4 v5 Fp}


 S7047C1 ::~S7047C1(){ note_dtor("S7047C1", this);}
void  S7047C1 ::v1(){vfunc_called(this, "_ZN7S7047C12v1Ev");}
void  S7047C1 ::v2(){vfunc_called(this, "_ZN7S7047C12v2Ev");}
void  S7047C1 ::v3(){vfunc_called(this, "_ZN7S7047C12v3Ev");}
void  S7047C1 ::v4(){vfunc_called(this, "_ZN7S7047C12v4Ev");}
void  S7047C1 ::v5(){vfunc_called(this, "_ZN7S7047C12v5Ev");}
S7047C1 ::S7047C1(){ note_ctor("S7047C1", this);} // tgen

static void Test_S7047C1()
{
  extern Class_Descriptor cd_S7047C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(7,11)];
    init_test(&cd_S7047C1, buf);
    S7047C1 *dp, &lv = *(dp=new (buf) S7047C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(48,40), "sizeof(S7047C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S7047C1)");
    check_base_class_offset(lv, (S7047C2*), 0, "S7047C1");
    check_field_offset(lv, s7047c1f0, ABISELECT(40,36), "S7047C1.s7047c1f0");
    test_class_info(&lv, &cd_S7047C1);
    dp->~S7047C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS7047C1(Test_S7047C1, "S7047C1", ABISELECT(48,40));

#else // __cplusplus

extern void _ZN7S7047C1C1Ev();
extern void _ZN7S7047C1D1Ev();
Name_Map name_map_S7047C1[] = {
  NSPAIR(_ZN7S7047C1C1Ev),
  NSPAIR(_ZN7S7047C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S7047C2;
extern VTBL_ENTRY _ZTI7S7047C2[];
extern  VTBL_ENTRY _ZTV7S7047C2[];
static Base_Class bases_S7047C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S7047C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S7047C1[];
extern void _ZN7S7047C1D1Ev();
extern void _ZN7S7047C1D0Ev();
extern void _ZN7S7047C22v6Ev();
extern void _ZN7S7047C22v7Ev();
extern void _ZN7S7047C22v8Ev();
extern void _ZN7S7047C22v9Ev();
extern void _ZN7S7047C12v1Ev();
extern void _ZN7S7047C12v2Ev();
extern void _ZN7S7047C12v3Ev();
extern void _ZN7S7047C12v4Ev();
extern void _ZN7S7047C12v5Ev();
static  VTBL_ENTRY vtc_S7047C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S7047C1[0]),
  (VTBL_ENTRY)&_ZN7S7047C1D1Ev,
  (VTBL_ENTRY)&_ZN7S7047C1D0Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v6Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v7Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v8Ev,
  (VTBL_ENTRY)&_ZN7S7047C22v9Ev,
  (VTBL_ENTRY)&_ZN7S7047C12v1Ev,
  (VTBL_ENTRY)&_ZN7S7047C12v2Ev,
  (VTBL_ENTRY)&_ZN7S7047C12v3Ev,
  (VTBL_ENTRY)&_ZN7S7047C12v4Ev,
  (VTBL_ENTRY)&_ZN7S7047C12v5Ev,
};
extern VTBL_ENTRY _ZTI7S7047C1[];
extern  VTBL_ENTRY _ZTV7S7047C1[];
Class_Descriptor cd_S7047C1 = {  "S7047C1", // class name
  bases_S7047C1, 1,
  &(vtc_S7047C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(48,40), // object size
  NSPAIRA(_ZTI7S7047C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S7047C1),13, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6826C2  {
  int s6826c2f0[4];
  char s6826c2f1[16];
  virtual  ~S6826C2(); // _ZN7S6826C2D1Ev
  virtual void  v4(); // _ZN7S6826C22v4Ev
  virtual void  v5(); // _ZN7S6826C22v5Ev
  virtual void  v6(); // _ZN7S6826C22v6Ev
  virtual void  v7(); // _ZN7S6826C22v7Ev
  S6826C2(); // tgen
};
//SIG(-1 S6826C2) C1{ vd v1 v2 v3 v4 Fi[4] Fc[16]}


 S6826C2 ::~S6826C2(){ note_dtor("S6826C2", this);}
void  S6826C2 ::v4(){vfunc_called(this, "_ZN7S6826C22v4Ev");}
void  S6826C2 ::v5(){vfunc_called(this, "_ZN7S6826C22v5Ev");}
void  S6826C2 ::v6(){vfunc_called(this, "_ZN7S6826C22v6Ev");}
void  S6826C2 ::v7(){vfunc_called(this, "_ZN7S6826C22v7Ev");}
S6826C2 ::S6826C2(){ note_ctor("S6826C2", this);} // tgen

static void Test_S6826C2()
{
  extern Class_Descriptor cd_S6826C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,10)];
    init_test(&cd_S6826C2, buf);
    S6826C2 *dp, &lv = *(dp=new (buf) S6826C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,36), "sizeof(S6826C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6826C2)");
    check_field_offset(lv, s6826c2f0, ABISELECT(8,4), "S6826C2.s6826c2f0");
    check_field_offset(lv, s6826c2f1, ABISELECT(24,20), "S6826C2.s6826c2f1");
    test_class_info(&lv, &cd_S6826C2);
    dp->~S6826C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6826C2(Test_S6826C2, "S6826C2", ABISELECT(40,36));

#else // __cplusplus

extern void _ZN7S6826C2C1Ev();
extern void _ZN7S6826C2D1Ev();
Name_Map name_map_S6826C2[] = {
  NSPAIR(_ZN7S6826C2C1Ev),
  NSPAIR(_ZN7S6826C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6826C2[];
extern void _ZN7S6826C2D1Ev();
extern void _ZN7S6826C2D0Ev();
extern void _ZN7S6826C22v4Ev();
extern void _ZN7S6826C22v5Ev();
extern void _ZN7S6826C22v6Ev();
extern void _ZN7S6826C22v7Ev();
static  VTBL_ENTRY vtc_S6826C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6826C2[0]),
  (VTBL_ENTRY)&_ZN7S6826C2D1Ev,
  (VTBL_ENTRY)&_ZN7S6826C2D0Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v7Ev,
};
extern VTBL_ENTRY _ZTI7S6826C2[];
extern  VTBL_ENTRY _ZTV7S6826C2[];
Class_Descriptor cd_S6826C2 = {  "S6826C2", // class name
  0,0,//no base classes
  &(vtc_S6826C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,36), // object size
  NSPAIRA(_ZTI7S6826C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6826C2),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6826C1  : S6826C2 {
  void *s6826c1f0;
  int s6826c1f1[2];
  virtual  ~S6826C1(); // _ZN7S6826C1D1Ev
  virtual void  v1(); // _ZN7S6826C12v1Ev
  virtual void  v2(); // _ZN7S6826C12v2Ev
  virtual void  v3(); // _ZN7S6826C12v3Ev
  S6826C1(); // tgen
};
//SIG(1 S6826C1) C1{ BC2{ vd v4 v5 v6 v7 Fi[4] Fc[16]} vd v1 v2 v3 Fp Fi[2]}


 S6826C1 ::~S6826C1(){ note_dtor("S6826C1", this);}
void  S6826C1 ::v1(){vfunc_called(this, "_ZN7S6826C12v1Ev");}
void  S6826C1 ::v2(){vfunc_called(this, "_ZN7S6826C12v2Ev");}
void  S6826C1 ::v3(){vfunc_called(this, "_ZN7S6826C12v3Ev");}
S6826C1 ::S6826C1(){ note_ctor("S6826C1", this);} // tgen

static void Test_S6826C1()
{
  extern Class_Descriptor cd_S6826C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,13)];
    init_test(&cd_S6826C1, buf);
    S6826C1 *dp, &lv = *(dp=new (buf) S6826C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,48), "sizeof(S6826C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6826C1)");
    check_base_class_offset(lv, (S6826C2*), 0, "S6826C1");
    check_field_offset(lv, s6826c1f0, ABISELECT(40,36), "S6826C1.s6826c1f0");
    check_field_offset(lv, s6826c1f1, ABISELECT(48,40), "S6826C1.s6826c1f1");
    test_class_info(&lv, &cd_S6826C1);
    dp->~S6826C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6826C1(Test_S6826C1, "S6826C1", ABISELECT(56,48));

#else // __cplusplus

extern void _ZN7S6826C1C1Ev();
extern void _ZN7S6826C1D1Ev();
Name_Map name_map_S6826C1[] = {
  NSPAIR(_ZN7S6826C1C1Ev),
  NSPAIR(_ZN7S6826C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6826C2;
extern VTBL_ENTRY _ZTI7S6826C2[];
extern  VTBL_ENTRY _ZTV7S6826C2[];
static Base_Class bases_S6826C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6826C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6826C1[];
extern void _ZN7S6826C1D1Ev();
extern void _ZN7S6826C1D0Ev();
extern void _ZN7S6826C22v4Ev();
extern void _ZN7S6826C22v5Ev();
extern void _ZN7S6826C22v6Ev();
extern void _ZN7S6826C22v7Ev();
extern void _ZN7S6826C12v1Ev();
extern void _ZN7S6826C12v2Ev();
extern void _ZN7S6826C12v3Ev();
static  VTBL_ENTRY vtc_S6826C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6826C1[0]),
  (VTBL_ENTRY)&_ZN7S6826C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6826C1D0Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6826C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6826C12v1Ev,
  (VTBL_ENTRY)&_ZN7S6826C12v2Ev,
  (VTBL_ENTRY)&_ZN7S6826C12v3Ev,
};
extern VTBL_ENTRY _ZTI7S6826C1[];
extern  VTBL_ENTRY _ZTV7S6826C1[];
Class_Descriptor cd_S6826C1 = {  "S6826C1", // class name
  bases_S6826C1, 1,
  &(vtc_S6826C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(56,48), // object size
  NSPAIRA(_ZTI7S6826C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6826C1),11, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17645C3_nt  {
  void *s17645c3f0;
  int s17645c3f1[2];
  void  mf17645c3(); // _ZN11S17645C3_nt9mf17645c3Ev
};
//SIG(-1 S17645C3_nt) C1{ m Fp Fi[2]}


void  S17645C3_nt ::mf17645c3(){}

//skip512 S17645C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17645C4_nt  {
  char s17645c4f0;
  void  mf17645c4(); // _ZN11S17645C4_nt9mf17645c4Ev
};
//SIG(-1 S17645C4_nt) C1{ m Fc}


void  S17645C4_nt ::mf17645c4(){}

//skip512 S17645C4_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17645C1  {
  void *s17645c1f0;
  ::S80C12_nt s17645c1f1;
  ::S80C12_nt s17645c1f2;
  ::S17645C3_nt s17645c1f3;
  ::S17645C4_nt s17645c1f4;
  ::S17645C4_nt s17645c1f5;
  void  mf17645c1(); // _ZN8S17645C19mf17645c1Ev
};
//SIG(1 S17645C1) C1{ m Fp FC2{ m Fp Fi[2]} FC2 FC3{ m Fp Fi[2]} FC4{ m Fc} FC4}


void  S17645C1 ::mf17645c1(){}

static void Test_S17645C1()
{
  {
    init_simple_test("S17645C1");
    S17645C1 lv;
    check2(sizeof(lv), ABISELECT(64,44), "sizeof(S17645C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17645C1)");
    check_field_offset(lv, s17645c1f0, 0, "S17645C1.s17645c1f0");
    check_field_offset(lv, s17645c1f1, ABISELECT(8,4), "S17645C1.s17645c1f1");
    check_field_offset(lv, s17645c1f2, ABISELECT(24,16), "S17645C1.s17645c1f2");
    check_field_offset(lv, s17645c1f3, ABISELECT(40,28), "S17645C1.s17645c1f3");
    check_field_offset(lv, s17645c1f4, ABISELECT(56,40), "S17645C1.s17645c1f4");
    check_field_offset(lv, s17645c1f5, ABISELECT(57,41), "S17645C1.s17645c1f5");
  }
}
static Arrange_To_Call_Me vS17645C1(Test_S17645C1, "S17645C1", ABISELECT(64,44));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S15721C1  {
  ::S6871C3_nt s15721c1f0;
  ::S9701C3_nt s15721c1f1;
  ::S9701C3_nt s15721c1f2;
  void *s15721c1f3;
  int s15721c1f4;
  char s15721c1f5;
  void  mf15721c1(); // _ZN8S15721C19mf15721c1Ev
};
//SIG(1 S15721C1) C1{ m FC2{ m FC3{ Fl[4]}} FC4{ m Fp Fi FC5{ m}} FC4 Fp Fi Fc}


void  S15721C1 ::mf15721c1(){}

static void Test_S15721C1()
{
  {
    init_simple_test("S15721C1");
    S15721C1 lv;
    check2(sizeof(lv), ABISELECT(80,52), "sizeof(S15721C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S15721C1)");
    check_field_offset(lv, s15721c1f0, 0, "S15721C1.s15721c1f0");
    check_field_offset(lv, s15721c1f1, ABISELECT(32,16), "S15721C1.s15721c1f1");
    check_field_offset(lv, s15721c1f2, ABISELECT(48,28), "S15721C1.s15721c1f2");
    check_field_offset(lv, s15721c1f3, ABISELECT(64,40), "S15721C1.s15721c1f3");
    check_field_offset(lv, s15721c1f4, ABISELECT(72,44), "S15721C1.s15721c1f4");
    check_field_offset(lv, s15721c1f5, ABISELECT(76,48), "S15721C1.s15721c1f5");
  }
}
static Arrange_To_Call_Me vS15721C1(Test_S15721C1, "S15721C1", ABISELECT(80,52));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6825C2  {
  int s6825c2f0[4];
  char s6825c2f1[16];
  virtual  ~S6825C2(); // _ZN7S6825C2D1Ev
  virtual void  v4(); // _ZN7S6825C22v4Ev
  virtual void  v5(); // _ZN7S6825C22v5Ev
  virtual void  v6(); // _ZN7S6825C22v6Ev
  virtual void  v7(); // _ZN7S6825C22v7Ev
  S6825C2(); // tgen
};
//SIG(-1 S6825C2) C1{ vd v1 v2 v3 v4 Fi[4] Fc[16]}


 S6825C2 ::~S6825C2(){ note_dtor("S6825C2", this);}
void  S6825C2 ::v4(){vfunc_called(this, "_ZN7S6825C22v4Ev");}
void  S6825C2 ::v5(){vfunc_called(this, "_ZN7S6825C22v5Ev");}
void  S6825C2 ::v6(){vfunc_called(this, "_ZN7S6825C22v6Ev");}
void  S6825C2 ::v7(){vfunc_called(this, "_ZN7S6825C22v7Ev");}
S6825C2 ::S6825C2(){ note_ctor("S6825C2", this);} // tgen

static void Test_S6825C2()
{
  extern Class_Descriptor cd_S6825C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,10)];
    init_test(&cd_S6825C2, buf);
    S6825C2 *dp, &lv = *(dp=new (buf) S6825C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,36), "sizeof(S6825C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6825C2)");
    check_field_offset(lv, s6825c2f0, ABISELECT(8,4), "S6825C2.s6825c2f0");
    check_field_offset(lv, s6825c2f1, ABISELECT(24,20), "S6825C2.s6825c2f1");
    test_class_info(&lv, &cd_S6825C2);
    dp->~S6825C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6825C2(Test_S6825C2, "S6825C2", ABISELECT(40,36));

#else // __cplusplus

extern void _ZN7S6825C2C1Ev();
extern void _ZN7S6825C2D1Ev();
Name_Map name_map_S6825C2[] = {
  NSPAIR(_ZN7S6825C2C1Ev),
  NSPAIR(_ZN7S6825C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6825C2[];
extern void _ZN7S6825C2D1Ev();
extern void _ZN7S6825C2D0Ev();
extern void _ZN7S6825C22v4Ev();
extern void _ZN7S6825C22v5Ev();
extern void _ZN7S6825C22v6Ev();
extern void _ZN7S6825C22v7Ev();
static  VTBL_ENTRY vtc_S6825C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6825C2[0]),
  (VTBL_ENTRY)&_ZN7S6825C2D1Ev,
  (VTBL_ENTRY)&_ZN7S6825C2D0Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v7Ev,
};
extern VTBL_ENTRY _ZTI7S6825C2[];
extern  VTBL_ENTRY _ZTV7S6825C2[];
Class_Descriptor cd_S6825C2 = {  "S6825C2", // class name
  0,0,//no base classes
  &(vtc_S6825C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,36), // object size
  NSPAIRA(_ZTI7S6825C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6825C2),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6825C1  : S6825C2 {
  int s6825c1f0[6];
  virtual  ~S6825C1(); // _ZN7S6825C1D1Ev
  virtual void  v1(); // _ZN7S6825C12v1Ev
  virtual void  v2(); // _ZN7S6825C12v2Ev
  virtual void  v3(); // _ZN7S6825C12v3Ev
  S6825C1(); // tgen
};
//SIG(1 S6825C1) C1{ BC2{ vd v4 v5 v6 v7 Fi[4] Fc[16]} vd v1 v2 v3 Fi[6]}


 S6825C1 ::~S6825C1(){ note_dtor("S6825C1", this);}
void  S6825C1 ::v1(){vfunc_called(this, "_ZN7S6825C12v1Ev");}
void  S6825C1 ::v2(){vfunc_called(this, "_ZN7S6825C12v2Ev");}
void  S6825C1 ::v3(){vfunc_called(this, "_ZN7S6825C12v3Ev");}
S6825C1 ::S6825C1(){ note_ctor("S6825C1", this);} // tgen

static void Test_S6825C1()
{
  extern Class_Descriptor cd_S6825C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(9,16)];
    init_test(&cd_S6825C1, buf);
    S6825C1 *dp, &lv = *(dp=new (buf) S6825C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(64,60), "sizeof(S6825C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6825C1)");
    check_base_class_offset(lv, (S6825C2*), 0, "S6825C1");
    check_field_offset(lv, s6825c1f0, ABISELECT(40,36), "S6825C1.s6825c1f0");
    test_class_info(&lv, &cd_S6825C1);
    dp->~S6825C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6825C1(Test_S6825C1, "S6825C1", ABISELECT(64,60));

#else // __cplusplus

extern void _ZN7S6825C1C1Ev();
extern void _ZN7S6825C1D1Ev();
Name_Map name_map_S6825C1[] = {
  NSPAIR(_ZN7S6825C1C1Ev),
  NSPAIR(_ZN7S6825C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6825C2;
extern VTBL_ENTRY _ZTI7S6825C2[];
extern  VTBL_ENTRY _ZTV7S6825C2[];
static Base_Class bases_S6825C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6825C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6825C1[];
extern void _ZN7S6825C1D1Ev();
extern void _ZN7S6825C1D0Ev();
extern void _ZN7S6825C22v4Ev();
extern void _ZN7S6825C22v5Ev();
extern void _ZN7S6825C22v6Ev();
extern void _ZN7S6825C22v7Ev();
extern void _ZN7S6825C12v1Ev();
extern void _ZN7S6825C12v2Ev();
extern void _ZN7S6825C12v3Ev();
static  VTBL_ENTRY vtc_S6825C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6825C1[0]),
  (VTBL_ENTRY)&_ZN7S6825C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6825C1D0Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6825C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6825C12v1Ev,
  (VTBL_ENTRY)&_ZN7S6825C12v2Ev,
  (VTBL_ENTRY)&_ZN7S6825C12v3Ev,
};
extern VTBL_ENTRY _ZTI7S6825C1[];
extern  VTBL_ENTRY _ZTV7S6825C1[];
Class_Descriptor cd_S6825C1 = {  "S6825C1", // class name
  bases_S6825C1, 1,
  &(vtc_S6825C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(64,60), // object size
  NSPAIRA(_ZTI7S6825C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6825C1),11, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6824C2  {
  int s6824c2f0[4];
  char s6824c2f1[16];
  virtual  ~S6824C2(); // _ZN7S6824C2D1Ev
  virtual void  v4(); // _ZN7S6824C22v4Ev
  virtual void  v5(); // _ZN7S6824C22v5Ev
  virtual void  v6(); // _ZN7S6824C22v6Ev
  virtual void  v7(); // _ZN7S6824C22v7Ev
  S6824C2(); // tgen
};
//SIG(-1 S6824C2) C1{ vd v1 v2 v3 v4 Fi[4] Fc[16]}


 S6824C2 ::~S6824C2(){ note_dtor("S6824C2", this);}
void  S6824C2 ::v4(){vfunc_called(this, "_ZN7S6824C22v4Ev");}
void  S6824C2 ::v5(){vfunc_called(this, "_ZN7S6824C22v5Ev");}
void  S6824C2 ::v6(){vfunc_called(this, "_ZN7S6824C22v6Ev");}
void  S6824C2 ::v7(){vfunc_called(this, "_ZN7S6824C22v7Ev");}
S6824C2 ::S6824C2(){ note_ctor("S6824C2", this);} // tgen

static void Test_S6824C2()
{
  extern Class_Descriptor cd_S6824C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,10)];
    init_test(&cd_S6824C2, buf);
    S6824C2 *dp, &lv = *(dp=new (buf) S6824C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,36), "sizeof(S6824C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6824C2)");
    check_field_offset(lv, s6824c2f0, ABISELECT(8,4), "S6824C2.s6824c2f0");
    check_field_offset(lv, s6824c2f1, ABISELECT(24,20), "S6824C2.s6824c2f1");
    test_class_info(&lv, &cd_S6824C2);
    dp->~S6824C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6824C2(Test_S6824C2, "S6824C2", ABISELECT(40,36));

#else // __cplusplus

extern void _ZN7S6824C2C1Ev();
extern void _ZN7S6824C2D1Ev();
Name_Map name_map_S6824C2[] = {
  NSPAIR(_ZN7S6824C2C1Ev),
  NSPAIR(_ZN7S6824C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6824C2[];
extern void _ZN7S6824C2D1Ev();
extern void _ZN7S6824C2D0Ev();
extern void _ZN7S6824C22v4Ev();
extern void _ZN7S6824C22v5Ev();
extern void _ZN7S6824C22v6Ev();
extern void _ZN7S6824C22v7Ev();
static  VTBL_ENTRY vtc_S6824C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6824C2[0]),
  (VTBL_ENTRY)&_ZN7S6824C2D1Ev,
  (VTBL_ENTRY)&_ZN7S6824C2D0Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v7Ev,
};
extern VTBL_ENTRY _ZTI7S6824C2[];
extern  VTBL_ENTRY _ZTV7S6824C2[];
Class_Descriptor cd_S6824C2 = {  "S6824C2", // class name
  0,0,//no base classes
  &(vtc_S6824C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,36), // object size
  NSPAIRA(_ZTI7S6824C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6824C2),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6824C1  : S6824C2 {
  int s6824c1f0;
  void *s6824c1f1;
  virtual  ~S6824C1(); // _ZN7S6824C1D1Ev
  virtual void  v1(); // _ZN7S6824C12v1Ev
  virtual void  v2(); // _ZN7S6824C12v2Ev
  virtual void  v3(); // _ZN7S6824C12v3Ev
  S6824C1(); // tgen
};
//SIG(1 S6824C1) C1{ BC2{ vd v4 v5 v6 v7 Fi[4] Fc[16]} vd v1 v2 v3 Fi Fp}


 S6824C1 ::~S6824C1(){ note_dtor("S6824C1", this);}
void  S6824C1 ::v1(){vfunc_called(this, "_ZN7S6824C12v1Ev");}
void  S6824C1 ::v2(){vfunc_called(this, "_ZN7S6824C12v2Ev");}
void  S6824C1 ::v3(){vfunc_called(this, "_ZN7S6824C12v3Ev");}
S6824C1 ::S6824C1(){ note_ctor("S6824C1", this);} // tgen

static void Test_S6824C1()
{
  extern Class_Descriptor cd_S6824C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,12)];
    init_test(&cd_S6824C1, buf);
    S6824C1 *dp, &lv = *(dp=new (buf) S6824C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,44), "sizeof(S6824C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6824C1)");
    check_base_class_offset(lv, (S6824C2*), 0, "S6824C1");
    check_field_offset(lv, s6824c1f0, ABISELECT(40,36), "S6824C1.s6824c1f0");
    check_field_offset(lv, s6824c1f1, ABISELECT(48,40), "S6824C1.s6824c1f1");
    test_class_info(&lv, &cd_S6824C1);
    dp->~S6824C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6824C1(Test_S6824C1, "S6824C1", ABISELECT(56,44));

#else // __cplusplus

extern void _ZN7S6824C1C1Ev();
extern void _ZN7S6824C1D1Ev();
Name_Map name_map_S6824C1[] = {
  NSPAIR(_ZN7S6824C1C1Ev),
  NSPAIR(_ZN7S6824C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6824C2;
extern VTBL_ENTRY _ZTI7S6824C2[];
extern  VTBL_ENTRY _ZTV7S6824C2[];
static Base_Class bases_S6824C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6824C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6824C1[];
extern void _ZN7S6824C1D1Ev();
extern void _ZN7S6824C1D0Ev();
extern void _ZN7S6824C22v4Ev();
extern void _ZN7S6824C22v5Ev();
extern void _ZN7S6824C22v6Ev();
extern void _ZN7S6824C22v7Ev();
extern void _ZN7S6824C12v1Ev();
extern void _ZN7S6824C12v2Ev();
extern void _ZN7S6824C12v3Ev();
static  VTBL_ENTRY vtc_S6824C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6824C1[0]),
  (VTBL_ENTRY)&_ZN7S6824C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6824C1D0Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6824C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6824C12v1Ev,
  (VTBL_ENTRY)&_ZN7S6824C12v2Ev,
  (VTBL_ENTRY)&_ZN7S6824C12v3Ev,
};
extern VTBL_ENTRY _ZTI7S6824C1[];
extern  VTBL_ENTRY _ZTV7S6824C1[];
Class_Descriptor cd_S6824C1 = {  "S6824C1", // class name
  bases_S6824C1, 1,
  &(vtc_S6824C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(56,44), // object size
  NSPAIRA(_ZTI7S6824C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6824C1),11, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6928C2  {
  int s6928c2f0[4];
  char s6928c2f1[16];
  virtual  ~S6928C2(); // _ZN7S6928C2D1Ev
  virtual void  v5(); // _ZN7S6928C22v5Ev
  virtual void  v6(); // _ZN7S6928C22v6Ev
  virtual void  v7(); // _ZN7S6928C22v7Ev
  virtual void  v8(); // _ZN7S6928C22v8Ev
  S6928C2(); // tgen
};
//SIG(-1 S6928C2) C1{ vd v1 v2 v3 v4 Fi[4] Fc[16]}


 S6928C2 ::~S6928C2(){ note_dtor("S6928C2", this);}
void  S6928C2 ::v5(){vfunc_called(this, "_ZN7S6928C22v5Ev");}
void  S6928C2 ::v6(){vfunc_called(this, "_ZN7S6928C22v6Ev");}
void  S6928C2 ::v7(){vfunc_called(this, "_ZN7S6928C22v7Ev");}
void  S6928C2 ::v8(){vfunc_called(this, "_ZN7S6928C22v8Ev");}
S6928C2 ::S6928C2(){ note_ctor("S6928C2", this);} // tgen

static void Test_S6928C2()
{
  extern Class_Descriptor cd_S6928C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,10)];
    init_test(&cd_S6928C2, buf);
    S6928C2 *dp, &lv = *(dp=new (buf) S6928C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,36), "sizeof(S6928C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6928C2)");
    check_field_offset(lv, s6928c2f0, ABISELECT(8,4), "S6928C2.s6928c2f0");
    check_field_offset(lv, s6928c2f1, ABISELECT(24,20), "S6928C2.s6928c2f1");
    test_class_info(&lv, &cd_S6928C2);
    dp->~S6928C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6928C2(Test_S6928C2, "S6928C2", ABISELECT(40,36));

#else // __cplusplus

extern void _ZN7S6928C2C1Ev();
extern void _ZN7S6928C2D1Ev();
Name_Map name_map_S6928C2[] = {
  NSPAIR(_ZN7S6928C2C1Ev),
  NSPAIR(_ZN7S6928C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6928C2[];
extern void _ZN7S6928C2D1Ev();
extern void _ZN7S6928C2D0Ev();
extern void _ZN7S6928C22v5Ev();
extern void _ZN7S6928C22v6Ev();
extern void _ZN7S6928C22v7Ev();
extern void _ZN7S6928C22v8Ev();
static  VTBL_ENTRY vtc_S6928C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6928C2[0]),
  (VTBL_ENTRY)&_ZN7S6928C2D1Ev,
  (VTBL_ENTRY)&_ZN7S6928C2D0Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v8Ev,
};
extern VTBL_ENTRY _ZTI7S6928C2[];
extern  VTBL_ENTRY _ZTV7S6928C2[];
Class_Descriptor cd_S6928C2 = {  "S6928C2", // class name
  0,0,//no base classes
  &(vtc_S6928C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,36), // object size
  NSPAIRA(_ZTI7S6928C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6928C2),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6928C1  : S6928C2 {
  void *s6928c1f0;
  virtual  ~S6928C1(); // _ZN7S6928C1D1Ev
  virtual void  v1(); // _ZN7S6928C12v1Ev
  virtual void  v2(); // _ZN7S6928C12v2Ev
  virtual void  v3(); // _ZN7S6928C12v3Ev
  virtual void  v4(); // _ZN7S6928C12v4Ev
  S6928C1(); // tgen
};
//SIG(1 S6928C1) C1{ BC2{ vd v5 v6 v7 v8 Fi[4] Fc[16]} vd v1 v2 v3 v4 Fp}


 S6928C1 ::~S6928C1(){ note_dtor("S6928C1", this);}
void  S6928C1 ::v1(){vfunc_called(this, "_ZN7S6928C12v1Ev");}
void  S6928C1 ::v2(){vfunc_called(this, "_ZN7S6928C12v2Ev");}
void  S6928C1 ::v3(){vfunc_called(this, "_ZN7S6928C12v3Ev");}
void  S6928C1 ::v4(){vfunc_called(this, "_ZN7S6928C12v4Ev");}
S6928C1 ::S6928C1(){ note_ctor("S6928C1", this);} // tgen

static void Test_S6928C1()
{
  extern Class_Descriptor cd_S6928C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(7,11)];
    init_test(&cd_S6928C1, buf);
    S6928C1 *dp, &lv = *(dp=new (buf) S6928C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(48,40), "sizeof(S6928C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6928C1)");
    check_base_class_offset(lv, (S6928C2*), 0, "S6928C1");
    check_field_offset(lv, s6928c1f0, ABISELECT(40,36), "S6928C1.s6928c1f0");
    test_class_info(&lv, &cd_S6928C1);
    dp->~S6928C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6928C1(Test_S6928C1, "S6928C1", ABISELECT(48,40));

#else // __cplusplus

extern void _ZN7S6928C1C1Ev();
extern void _ZN7S6928C1D1Ev();
Name_Map name_map_S6928C1[] = {
  NSPAIR(_ZN7S6928C1C1Ev),
  NSPAIR(_ZN7S6928C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6928C2;
extern VTBL_ENTRY _ZTI7S6928C2[];
extern  VTBL_ENTRY _ZTV7S6928C2[];
static Base_Class bases_S6928C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6928C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6928C1[];
extern void _ZN7S6928C1D1Ev();
extern void _ZN7S6928C1D0Ev();
extern void _ZN7S6928C22v5Ev();
extern void _ZN7S6928C22v6Ev();
extern void _ZN7S6928C22v7Ev();
extern void _ZN7S6928C22v8Ev();
extern void _ZN7S6928C12v1Ev();
extern void _ZN7S6928C12v2Ev();
extern void _ZN7S6928C12v3Ev();
extern void _ZN7S6928C12v4Ev();
static  VTBL_ENTRY vtc_S6928C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6928C1[0]),
  (VTBL_ENTRY)&_ZN7S6928C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6928C1D0Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v5Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v6Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v7Ev,
  (VTBL_ENTRY)&_ZN7S6928C22v8Ev,
  (VTBL_ENTRY)&_ZN7S6928C12v1Ev,
  (VTBL_ENTRY)&_ZN7S6928C12v2Ev,
  (VTBL_ENTRY)&_ZN7S6928C12v3Ev,
  (VTBL_ENTRY)&_ZN7S6928C12v4Ev,
};
extern VTBL_ENTRY _ZTI7S6928C1[];
extern  VTBL_ENTRY _ZTV7S6928C1[];
Class_Descriptor cd_S6928C1 = {  "S6928C1", // class name
  bases_S6928C1, 1,
  &(vtc_S6928C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(48,40), // object size
  NSPAIRA(_ZTI7S6928C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6928C1),12, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9589C2  {
  virtual  ~S9589C2(); // _ZN7S9589C2D1Ev
  virtual void  v3(); // _ZN7S9589C22v3Ev
  virtual void  v4(); // _ZN7S9589C22v4Ev
  S9589C2(); // tgen
};
//SIG(-1 S9589C2) C1{ vd v1 v2}


 S9589C2 ::~S9589C2(){ note_dtor("S9589C2", this);}
void  S9589C2 ::v3(){vfunc_called(this, "_ZN7S9589C22v3Ev");}
void  S9589C2 ::v4(){vfunc_called(this, "_ZN7S9589C22v4Ev");}
S9589C2 ::S9589C2(){ note_ctor("S9589C2", this);} // tgen

static void Test_S9589C2()
{
  extern Class_Descriptor cd_S9589C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[2];
    init_test(&cd_S9589C2, buf);
    S9589C2 *dp, &lv = *(dp=new (buf) S9589C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(S9589C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9589C2)");
    test_class_info(&lv, &cd_S9589C2);
    dp->~S9589C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9589C2(Test_S9589C2, "S9589C2", ABISELECT(8,4));

#else // __cplusplus

extern void _ZN7S9589C2C1Ev();
extern void _ZN7S9589C2D1Ev();
Name_Map name_map_S9589C2[] = {
  NSPAIR(_ZN7S9589C2C1Ev),
  NSPAIR(_ZN7S9589C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S9589C2[];
extern void _ZN7S9589C2D1Ev();
extern void _ZN7S9589C2D0Ev();
extern void _ZN7S9589C22v3Ev();
extern void _ZN7S9589C22v4Ev();
static  VTBL_ENTRY vtc_S9589C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9589C2[0]),
  (VTBL_ENTRY)&_ZN7S9589C2D1Ev,
  (VTBL_ENTRY)&_ZN7S9589C2D0Ev,
  (VTBL_ENTRY)&_ZN7S9589C22v3Ev,
  (VTBL_ENTRY)&_ZN7S9589C22v4Ev,
};
extern VTBL_ENTRY _ZTI7S9589C2[];
extern  VTBL_ENTRY _ZTV7S9589C2[];
Class_Descriptor cd_S9589C2 = {  "S9589C2", // class name
  0,0,//no base classes
  &(vtc_S9589C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI7S9589C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S9589C2),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9589C1  : S9589C2 {
  ::S85C27_nt s9589c1f0;
  ::S80C8_nt s9589c1f1;
  virtual  ~S9589C1(); // _ZN7S9589C1D1Ev
  virtual void  v1(); // _ZN7S9589C12v1Ev
  virtual void  v2(); // _ZN7S9589C12v2Ev
  S9589C1(); // tgen
};
//SIG(1 S9589C1) C1{ BC2{ vd v3 v4} vd v1 v2 FC3{ m Fi[2]} FC4{ m Fi[2]}}


 S9589C1 ::~S9589C1(){ note_dtor("S9589C1", this);}
void  S9589C1 ::v1(){vfunc_called(this, "_ZN7S9589C12v1Ev");}
void  S9589C1 ::v2(){vfunc_called(this, "_ZN7S9589C12v2Ev");}
S9589C1 ::S9589C1(){ note_ctor("S9589C1", this);} // tgen

static void Test_S9589C1()
{
  extern Class_Descriptor cd_S9589C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(4,6)];
    init_test(&cd_S9589C1, buf);
    S9589C1 *dp, &lv = *(dp=new (buf) S9589C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(24,20), "sizeof(S9589C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9589C1)");
    check_base_class_offset(lv, (S9589C2*), 0, "S9589C1");
    check_field_offset(lv, s9589c1f0, ABISELECT(8,4), "S9589C1.s9589c1f0");
    check_field_offset(lv, s9589c1f1, ABISELECT(16,12), "S9589C1.s9589c1f1");
    test_class_info(&lv, &cd_S9589C1);
    dp->~S9589C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9589C1(Test_S9589C1, "S9589C1", ABISELECT(24,20));

#else // __cplusplus

extern void _ZN7S9589C1C1Ev();
extern void _ZN7S9589C1D1Ev();
Name_Map name_map_S9589C1[] = {
  NSPAIR(_ZN7S9589C1C1Ev),
  NSPAIR(_ZN7S9589C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9589C2;
extern VTBL_ENTRY _ZTI7S9589C2[];
extern  VTBL_ENTRY _ZTV7S9589C2[];
static Base_Class bases_S9589C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9589C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S9589C1[];
extern void _ZN7S9589C1D1Ev();
extern void _ZN7S9589C1D0Ev();
extern void _ZN7S9589C22v3Ev();
extern void _ZN7S9589C22v4Ev();
extern void _ZN7S9589C12v1Ev();
extern void _ZN7S9589C12v2Ev();
static  VTBL_ENTRY vtc_S9589C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9589C1[0]),
  (VTBL_ENTRY)&_ZN7S9589C1D1Ev,
  (VTBL_ENTRY)&_ZN7S9589C1D0Ev,
  (VTBL_ENTRY)&_ZN7S9589C22v3Ev,
  (VTBL_ENTRY)&_ZN7S9589C22v4Ev,
  (VTBL_ENTRY)&_ZN7S9589C12v1Ev,
  (VTBL_ENTRY)&_ZN7S9589C12v2Ev,
};
extern VTBL_ENTRY _ZTI7S9589C1[];
extern  VTBL_ENTRY _ZTV7S9589C1[];
Class_Descriptor cd_S9589C1 = {  "S9589C1", // class name
  bases_S9589C1, 1,
  &(vtc_S9589C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(24,20), // object size
  NSPAIRA(_ZTI7S9589C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S9589C1),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10758C1  {
  char s10758c1f0[21];
  int s10758c1f1[3];
  char s10758c1f2[256];
  int s10758c1f3;
  char s10758c1f4[256];
  int s10758c1f5[3];
  char s10758c1f6[393];
};
//SIG(1 S10758C1) C1{ Fc[21] Fi[3] Fc[256] Fi Fc[256] Fi[3] Fc[393]}



static void Test_S10758C1()
{
  {
    init_simple_test("S10758C1");
    S10758C1 lv;
    check2(sizeof(lv), 960, "sizeof(S10758C1)");
    check2(__alignof__(lv), 4, "__alignof__(S10758C1)");
    check_field_offset(lv, s10758c1f0, 0, "S10758C1.s10758c1f0");
    check_field_offset(lv, s10758c1f1, 24, "S10758C1.s10758c1f1");
    check_field_offset(lv, s10758c1f2, 36, "S10758C1.s10758c1f2");
    check_field_offset(lv, s10758c1f3, 292, "S10758C1.s10758c1f3");
    check_field_offset(lv, s10758c1f4, 296, "S10758C1.s10758c1f4");
    check_field_offset(lv, s10758c1f5, 552, "S10758C1.s10758c1f5");
    check_field_offset(lv, s10758c1f6, 564, "S10758C1.s10758c1f6");
  }
}
static Arrange_To_Call_Me vS10758C1(Test_S10758C1, "S10758C1", 960);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17654C1  {
  void *s17654c1f0;
  ::S10090C3_nt s17654c1f1;
  void *s17654c1f2[2];
  ::S21912C4_nt s17654c1f3;
  void  mf17654c1(); // _ZN8S17654C19mf17654c1Ev
};
//SIG(1 S17654C1) C1{ m Fp FC2{ m Fp[2]} Fp[2] FC3{ m Fp Fi[2] FC4{ m}}}


void  S17654C1 ::mf17654c1(){}

static void Test_S17654C1()
{
  {
    init_simple_test("S17654C1");
    S17654C1 lv;
    check2(sizeof(lv), ABISELECT(64,36), "sizeof(S17654C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17654C1)");
    check_field_offset(lv, s17654c1f0, 0, "S17654C1.s17654c1f0");
    check_field_offset(lv, s17654c1f1, ABISELECT(8,4), "S17654C1.s17654c1f1");
    check_field_offset(lv, s17654c1f2, ABISELECT(24,12), "S17654C1.s17654c1f2");
    check_field_offset(lv, s17654c1f3, ABISELECT(40,20), "S17654C1.s17654c1f3");
  }
}
static Arrange_To_Call_Me vS17654C1(Test_S17654C1, "S17654C1", ABISELECT(64,36));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18392C1  {
  void *s18392c1f0[7];
  int s18392c1f1;
  void *s18392c1f2[3];
  ::S9701C3_nt s18392c1f3;
  int s18392c1f4;
  __tsi64 s18392c1f5;
  int s18392c1f6;
  void  mf18392c1(); // _ZN8S18392C19mf18392c1Ev
};
//SIG(1 S18392C1) C1{ m Fp[7] Fi Fp[3] FC2{ m Fp Fi FC3{ m}} Fi FL Fi}


void  S18392C1 ::mf18392c1(){}

static void Test_S18392C1()
{
  {
    init_simple_test("S18392C1");
    S18392C1 lv;
    check2(sizeof(lv), ABISELECT(128,72), "sizeof(S18392C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S18392C1)");
    check_field_offset(lv, s18392c1f0, 0, "S18392C1.s18392c1f0");
    check_field_offset(lv, s18392c1f1, ABISELECT(56,28), "S18392C1.s18392c1f1");
    check_field_offset(lv, s18392c1f2, ABISELECT(64,32), "S18392C1.s18392c1f2");
    check_field_offset(lv, s18392c1f3, ABISELECT(88,44), "S18392C1.s18392c1f3");
    check_field_offset(lv, s18392c1f4, ABISELECT(104,56), "S18392C1.s18392c1f4");
    check_field_offset(lv, s18392c1f5, ABISELECT(112,60), "S18392C1.s18392c1f5");
    check_field_offset(lv, s18392c1f6, ABISELECT(120,68), "S18392C1.s18392c1f6");
  }
}
static Arrange_To_Call_Me vS18392C1(Test_S18392C1, "S18392C1", ABISELECT(128,72));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13420C3  {
  int s13420c3f0;
  void *s13420c3f1;
  int s13420c3f2[2];
};
//SIG(1 S13420C3) C1{ Fi Fp Fi[2]}



static void Test_S13420C3()
{
  {
    init_simple_test("S13420C3");
    S13420C3 lv;
    check2(sizeof(lv), ABISELECT(24,16), "sizeof(S13420C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13420C3)");
    check_field_offset(lv, s13420c3f0, 0, "S13420C3.s13420c3f0");
    check_field_offset(lv, s13420c3f1, ABISELECT(8,4), "S13420C3.s13420c3f1");
    check_field_offset(lv, s13420c3f2, ABISELECT(16,8), "S13420C3.s13420c3f2");
  }
}
static Arrange_To_Call_Me vS13420C3(Test_S13420C3, "S13420C3", ABISELECT(24,16));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13420C4  {
  void *s13420c4f0;
  void *s13420c4f1;
  void *s13420c4f2;
  void *s13420c4f3;
};
//SIG(1 S13420C4) C1{ Fp[4]}



static void Test_S13420C4()
{
  {
    init_simple_test("S13420C4");
    S13420C4 lv;
    check2(sizeof(lv), ABISELECT(32,16), "sizeof(S13420C4)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13420C4)");
    check_field_offset(lv, s13420c4f0, 0, "S13420C4.s13420c4f0");
    check_field_offset(lv, s13420c4f1, ABISELECT(8,4), "S13420C4.s13420c4f1");
    check_field_offset(lv, s13420c4f2, ABISELECT(16,8), "S13420C4.s13420c4f2");
    check_field_offset(lv, s13420c4f3, ABISELECT(24,12), "S13420C4.s13420c4f3");
  }
}
static Arrange_To_Call_Me vS13420C4(Test_S13420C4, "S13420C4", ABISELECT(32,16));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

union  S13420C2  {
  ::S13420C3 s13420c2f0;
  ::S13420C4 s13420c2f1;
};
//SIG(1 S13420C2) U1{ FC2{ Fi Fp Fi[2]} FC3{ Fp Fp Fp Fp}}

#endif // __cplusplus
#ifdef __cplusplus

struct  S13420C1  {
  int s13420c1f0[3];
  ::S13420C2 s13420c1f1;
};
//SIG(1 S13420C1) C1{ Fi[3] FU2{ FC3{ Fi Fp Fi[2]} FC4{ Fp Fp Fp Fp}}}



static void Test_S13420C1()
{
  {
    init_simple_test("S13420C1");
    S13420C1 lv;
    check2(sizeof(lv), ABISELECT(48,28), "sizeof(S13420C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13420C1)");
    check_field_offset(lv, s13420c1f0, 0, "S13420C1.s13420c1f0");
    check_field_offset(lv, s13420c1f1, ABISELECT(16,12), "S13420C1.s13420c1f1");
  }
}
static Arrange_To_Call_Me vS13420C1(Test_S13420C1, "S13420C1", ABISELECT(48,28));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16728C5  {
  __tsi64 s16728c5f0[16];
};
//SIG(-1 S16728C5) C1{ FL[16]}



static void Test_S16728C5()
{
  {
    init_simple_test("S16728C5");
    S16728C5 lv;
    check2(sizeof(lv), 128, "sizeof(S16728C5)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16728C5)");
    check_field_offset(lv, s16728c5f0, 0, "S16728C5.s16728c5f0");
  }
}
static Arrange_To_Call_Me vS16728C5(Test_S16728C5, "S16728C5", 128);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16728C3  : S1058C8_nt {
  ::S16728C5 s16728c3f0;
};
//SIG(-1 S16728C3) C1{ BC2{ m Fp Fi} FC3{ FL[16]}}



static void Test_S16728C3()
{
  extern Class_Descriptor cd_S16728C3;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(19,35)];
    init_test(&cd_S16728C3, buf);
    S16728C3 &lv = *(new (buf) S16728C3());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(144,136), "sizeof(S16728C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16728C3)");
    check_base_class_offset(lv, (S1058C8_nt*), 0, "S16728C3");
    check_field_offset(lv, s16728c3f0, ABISELECT(16,8), "S16728C3.s16728c3f0");
    test_class_info(&lv, &cd_S16728C3);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS16728C3(Test_S16728C3, "S16728C3", ABISELECT(144,136));

#else // __cplusplus

extern Class_Descriptor cd_S1058C8_nt;
static Base_Class bases_S16728C3[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S1058C8_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S16728C3 = {  "S16728C3", // class name
  bases_S16728C3, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(144,136), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16728C2  {
  int s16728c2f0;
  ::S16728C3 s16728c2f1;
  void  mf16728c2(); // _ZN8S16728C29mf16728c2Ev
};
//SIG(-1 S16728C2) C1{ m Fi FC2{ BC3{ m Fp Fi} FC4{ FL[16]}}}


void  S16728C2 ::mf16728c2(){}

static void Test_S16728C2()
{
  {
    init_simple_test("S16728C2");
    S16728C2 lv;
    check2(sizeof(lv), ABISELECT(152,140), "sizeof(S16728C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16728C2)");
    check_field_offset(lv, s16728c2f0, 0, "S16728C2.s16728c2f0");
    check_field_offset(lv, s16728c2f1, ABISELECT(8,4), "S16728C2.s16728c2f1");
  }
}
static Arrange_To_Call_Me vS16728C2(Test_S16728C2, "S16728C2", ABISELECT(152,140));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16728C1  {
  int s16728c1f0;
  ::S16728C2 s16728c1f1;
  void  mf16728c1(); // _ZN8S16728C19mf16728c1Ev
};
//SIG(1 S16728C1) C1{ m Fi FC2{ m Fi FC3{ BC4{ m Fp Fi} FC5{ FL[16]}}}}


void  S16728C1 ::mf16728c1(){}

static void Test_S16728C1()
{
  {
    init_simple_test("S16728C1");
    S16728C1 lv;
    check2(sizeof(lv), ABISELECT(160,144), "sizeof(S16728C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16728C1)");
    check_field_offset(lv, s16728c1f0, 0, "S16728C1.s16728c1f0");
    check_field_offset(lv, s16728c1f1, ABISELECT(8,4), "S16728C1.s16728c1f1");
  }
}
static Arrange_To_Call_Me vS16728C1(Test_S16728C1, "S16728C1", ABISELECT(160,144));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17335C1  {
  __tsi64 s17335c1f0;
  ::S9701C3_nt s17335c1f1;
  int s17335c1f2[2];
  ::S9701C3_nt s17335c1f3;
  int s17335c1f4;
  char s17335c1f5;
  int s17335c1f6;
  void  mf17335c1(); // _ZN8S17335C19mf17335c1Ev
};
//SIG(1 S17335C1) C1{ m FL FC2{ m Fp Fi FC3{ m}} Fi[2] FC2 Fi Fc Fi}


void  S17335C1 ::mf17335c1(){}

static void Test_S17335C1()
{
  {
    init_simple_test("S17335C1");
    S17335C1 lv;
    check2(sizeof(lv), ABISELECT(64,52), "sizeof(S17335C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17335C1)");
    check_field_offset(lv, s17335c1f0, 0, "S17335C1.s17335c1f0");
    check_field_offset(lv, s17335c1f1, 8, "S17335C1.s17335c1f1");
    check_field_offset(lv, s17335c1f2, ABISELECT(24,20), "S17335C1.s17335c1f2");
    check_field_offset(lv, s17335c1f3, ABISELECT(32,28), "S17335C1.s17335c1f3");
    check_field_offset(lv, s17335c1f4, ABISELECT(48,40), "S17335C1.s17335c1f4");
    check_field_offset(lv, s17335c1f5, ABISELECT(52,44), "S17335C1.s17335c1f5");
    check_field_offset(lv, s17335c1f6, ABISELECT(56,48), "S17335C1.s17335c1f6");
  }
}
static Arrange_To_Call_Me vS17335C1(Test_S17335C1, "S17335C1", ABISELECT(64,52));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17921C2  {
  int s17921c2f0[2];
  long s17921c2f1;
  ::S9701C3_nt s17921c2f2;
};
//SIG(-1 S17921C2) C1{ Fi[2] Fl FC2{ m Fp Fi FC3{ m}}}



static void Test_S17921C2()
{
  {
    init_simple_test("S17921C2");
    S17921C2 lv;
    check2(sizeof(lv), ABISELECT(32,24), "sizeof(S17921C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17921C2)");
    check_field_offset(lv, s17921c2f0, 0, "S17921C2.s17921c2f0");
    check_field_offset(lv, s17921c2f1, 8, "S17921C2.s17921c2f1");
    check_field_offset(lv, s17921c2f2, ABISELECT(16,12), "S17921C2.s17921c2f2");
  }
}
static Arrange_To_Call_Me vS17921C2(Test_S17921C2, "S17921C2", ABISELECT(32,24));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17921C1  {
  void *s17921c1f0[2];
  ::S17921C2 s17921c1f1;
  void  mf17921c1(); // _ZN8S17921C19mf17921c1Ev
};
//SIG(1 S17921C1) C1{ m Fp[2] FC2{ Fi[2] Fl FC3{ m Fp Fi FC4{ m}}}}


void  S17921C1 ::mf17921c1(){}

static void Test_S17921C1()
{
  {
    init_simple_test("S17921C1");
    S17921C1 lv;
    check2(sizeof(lv), ABISELECT(48,32), "sizeof(S17921C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17921C1)");
    check_field_offset(lv, s17921c1f0, 0, "S17921C1.s17921c1f0");
    check_field_offset(lv, s17921c1f1, ABISELECT(16,8), "S17921C1.s17921c1f1");
  }
}
static Arrange_To_Call_Me vS17921C1(Test_S17921C1, "S17921C1", ABISELECT(48,32));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2618C2  : S21969C7_nt {
};
//SIG(-1 S2618C2) C1{ BC2{ m Fi}}



static void Test_S2618C2()
{
  extern Class_Descriptor cd_S2618C2;
  void *lvp;
  {
    int buf[2];
    init_test(&cd_S2618C2, buf);
    S2618C2 &lv = *(new (buf) S2618C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), 4, "sizeof(S2618C2)");
    check2(__alignof__(lv), 4, "__alignof__(S2618C2)");
    check_base_class_offset(lv, (S21969C7_nt*), 0, "S2618C2");
    test_class_info(&lv, &cd_S2618C2);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2618C2(Test_S2618C2, "S2618C2", 4);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
static Base_Class bases_S2618C2[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2618C2 = {  "S2618C2", // class name
  bases_S2618C2, 1,
  0, // no vftv
  0, //no vtt
  4, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2618C1  : S2618C2 {
  ::S1115C5_nt s2618c1f0;
  int s2618c1f1[2];
  int s2618c1f2:2;
  int s2618c1f3:3;
};
//SIG(1 S2618C1) C1{ BC2{ BC3{ m Fi}} FC4{ m Fc[3]} Fi[2] Fi:2 Fi:3}



static void Test_S2618C1()
{
  extern Class_Descriptor cd_S2618C1;
  void *lvp;
  {
    int buf[6];
    init_test(&cd_S2618C1, buf);
    S2618C1 &lv = *(new (buf) S2618C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), 20, "sizeof(S2618C1)");
    check2(__alignof__(lv), 4, "__alignof__(S2618C1)");
    check_base_class_offset(lv, (S21969C7_nt*)(S2618C2*), 0, "S2618C1");
    check_base_class_offset(lv, (S2618C2*), 0, "S2618C1");
    check_field_offset(lv, s2618c1f0, 4, "S2618C1.s2618c1f0");
    check_field_offset(lv, s2618c1f1, 8, "S2618C1.s2618c1f1");
    set_bf_and_test(lv, s2618c1f2, 16, 0, 2, 1, "S2618C1");
    set_bf_and_test(lv, s2618c1f2, 16, 0, 2, hide_sll(1LL<<1), "S2618C1");
    set_bf_and_test(lv, s2618c1f3, 16, 2, 3, 1, "S2618C1");
    set_bf_and_test(lv, s2618c1f3, 16, 2, 3, hide_sll(1LL<<2), "S2618C1");
    test_class_info(&lv, &cd_S2618C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2618C1(Test_S2618C1, "S2618C1", 20);

#else // __cplusplus

extern Class_Descriptor cd_S21969C7_nt;
extern VTBL_ENTRY _ZTI11S21969C7_nt[];
extern Class_Descriptor cd_S2618C2;
static Base_Class bases_S2618C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S21969C7_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S2618C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S2618C1 = {  "S2618C1", // class name
  bases_S2618C1, 2,
  0, // no vftv
  0, //no vtt
  20, // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12886C3_nt  {
  void *s12886c3f0;
  void *s12886c3f1;
};
//SIG(1 S12886C3_nt) C1{ Fp[2]}



//skip512 S12886C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

union  S12886C2  {
  void *s12886c2f0;
  void *s12886c2f1;
  ::S12886C3_nt s12886c2f2;
  ::S13420C4 s12886c2f3;
};
//SIG(1 S12886C2) U1{ Fp Fp FC2{ Fp Fp} FC3{ Fp Fp Fp Fp}}

#endif // __cplusplus
#ifdef __cplusplus

struct  S12886C1  {
  int s12886c1f0;
  ::S12886C2 s12886c1f1;
};
//SIG(1 S12886C1) C1{ Fi FU2{ Fp Fp FC3{ Fp Fp} FC4{ Fp Fp Fp Fp}}}



static void Test_S12886C1()
{
  {
    init_simple_test("S12886C1");
    S12886C1 lv;
    check2(sizeof(lv), ABISELECT(40,20), "sizeof(S12886C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S12886C1)");
    check_field_offset(lv, s12886c1f0, 0, "S12886C1.s12886c1f0");
    check_field_offset(lv, s12886c1f1, ABISELECT(8,4), "S12886C1.s12886c1f1");
  }
}
static Arrange_To_Call_Me vS12886C1(Test_S12886C1, "S12886C1", ABISELECT(40,20));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21837C1  {
  void *s21837c1f0[3];
  int s21837c1f1;
  ::S1726C6_nt s21837c1f2;
  void  mf21837c1(); // _ZN8S21837C19mf21837c1Ev
  virtual  ~S21837C1(); // _ZN8S21837C1D1Ev
  S21837C1(); // tgen
};
//SIG(1 S21837C1) C1{ vd m Fp[3] Fi FC2{ m Fp Fi FC3{ m} FC4{ m}}}


void  S21837C1 ::mf21837c1(){}
 S21837C1 ::~S21837C1(){ note_dtor("S21837C1", this);}
S21837C1 ::S21837C1(){ note_ctor("S21837C1", this);} // tgen

static void Test_S21837C1()
{
  extern Class_Descriptor cd_S21837C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(8,9)];
    init_test(&cd_S21837C1, buf);
    S21837C1 *dp, &lv = *(dp=new (buf) S21837C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(56,32), "sizeof(S21837C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S21837C1)");
    check_field_offset(lv, s21837c1f0, ABISELECT(8,4), "S21837C1.s21837c1f0");
    check_field_offset(lv, s21837c1f1, ABISELECT(32,16), "S21837C1.s21837c1f1");
    check_field_offset(lv, s21837c1f2, ABISELECT(40,20), "S21837C1.s21837c1f2");
    test_class_info(&lv, &cd_S21837C1);
    dp->~S21837C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS21837C1(Test_S21837C1, "S21837C1", ABISELECT(56,32));

#else // __cplusplus

extern void _ZN8S21837C1C1Ev();
extern void _ZN8S21837C1D1Ev();
Name_Map name_map_S21837C1[] = {
  NSPAIR(_ZN8S21837C1C1Ev),
  NSPAIR(_ZN8S21837C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S21837C1[];
extern void _ZN8S21837C1D1Ev();
extern void _ZN8S21837C1D0Ev();
static  VTBL_ENTRY vtc_S21837C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S21837C1[0]),
  (VTBL_ENTRY)&_ZN8S21837C1D1Ev,
  (VTBL_ENTRY)&_ZN8S21837C1D0Ev,
};
extern VTBL_ENTRY _ZTI8S21837C1[];
extern  VTBL_ENTRY _ZTV8S21837C1[];
Class_Descriptor cd_S21837C1 = {  "S21837C1", // class name
  0,0,//no base classes
  &(vtc_S21837C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(56,32), // object size
  NSPAIRA(_ZTI8S21837C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S21837C1),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17484C1  {
  void *s17484c1f0;
  ::S85C35 s17484c1f1;
  ::S85C36 s17484c1f2;
  void  mf17484c1(); // _ZN8S17484C19mf17484c1Ev
};
//SIG(1 S17484C1) C1{ m Fp FC2{ BC3{ BC4{ m Fp Fi[2]}}} FC3}


void  S17484C1 ::mf17484c1(){}

static void Test_S17484C1()
{
  {
    init_simple_test("S17484C1");
    S17484C1 lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S17484C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17484C1)");
    check_field_offset(lv, s17484c1f0, 0, "S17484C1.s17484c1f0");
    check_field_offset(lv, s17484c1f1, ABISELECT(8,4), "S17484C1.s17484c1f1");
    check_field_offset(lv, s17484c1f2, ABISELECT(24,16), "S17484C1.s17484c1f2");
  }
}
static Arrange_To_Call_Me vS17484C1(Test_S17484C1, "S17484C1", ABISELECT(40,28));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18110C1  {
  void *s18110c1f0[2];
  int s18110c1f1[3];
  ::S21912C4_nt s18110c1f2;
  char s18110c1f3;
  void  mf18110c1(); // _ZN8S18110C19mf18110c1Ev
};
//SIG(1 S18110C1) C1{ m Fp[2] Fi[3] FC2{ m Fp Fi[2] FC3{ m}} Fc}


void  S18110C1 ::mf18110c1(){}

static void Test_S18110C1()
{
  {
    init_simple_test("S18110C1");
    S18110C1 lv;
    check2(sizeof(lv), ABISELECT(64,40), "sizeof(S18110C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S18110C1)");
    check_field_offset(lv, s18110c1f0, 0, "S18110C1.s18110c1f0");
    check_field_offset(lv, s18110c1f1, ABISELECT(16,8), "S18110C1.s18110c1f1");
    check_field_offset(lv, s18110c1f2, ABISELECT(32,20), "S18110C1.s18110c1f2");
    check_field_offset(lv, s18110c1f3, ABISELECT(56,36), "S18110C1.s18110c1f3");
  }
}
static Arrange_To_Call_Me vS18110C1(Test_S18110C1, "S18110C1", ABISELECT(64,40));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16534C1  {
  int s16534c1f0;
  char s16534c1f1;
  ::S9701C3_nt s16534c1f2;
  ::S9701C3_nt s16534c1f3;
  ::S9701C3_nt s16534c1f4;
  char s16534c1f5;
  void  mf16534c1(); // _ZN8S16534C19mf16534c1Ev
};
//SIG(1 S16534C1) C1{ m Fi Fc FC2{ m Fp Fi FC3{ m}} FC2 FC2 Fc}


void  S16534C1 ::mf16534c1(){}

static void Test_S16534C1()
{
  {
    init_simple_test("S16534C1");
    S16534C1 lv;
    check2(sizeof(lv), ABISELECT(64,48), "sizeof(S16534C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16534C1)");
    check_field_offset(lv, s16534c1f0, 0, "S16534C1.s16534c1f0");
    check_field_offset(lv, s16534c1f1, 4, "S16534C1.s16534c1f1");
    check_field_offset(lv, s16534c1f2, 8, "S16534C1.s16534c1f2");
    check_field_offset(lv, s16534c1f3, ABISELECT(24,20), "S16534C1.s16534c1f3");
    check_field_offset(lv, s16534c1f4, ABISELECT(40,32), "S16534C1.s16534c1f4");
    check_field_offset(lv, s16534c1f5, ABISELECT(56,44), "S16534C1.s16534c1f5");
  }
}
static Arrange_To_Call_Me vS16534C1(Test_S16534C1, "S16534C1", ABISELECT(64,48));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S15330C1  {
  ::S85C35 s15330c1f0;
  ::S85C35 s15330c1f1;
  ::S85C35 s15330c1f2;
  void *s15330c1f3;
  void  mf15330c1(); // _ZN8S15330C19mf15330c1Ev
};
//SIG(1 S15330C1) C1{ m FC2{ BC3{ BC4{ m Fp Fi[2]}}} FC2 FC2 Fp}


void  S15330C1 ::mf15330c1(){}

static void Test_S15330C1()
{
  {
    init_simple_test("S15330C1");
    S15330C1 lv;
    check2(sizeof(lv), ABISELECT(56,40), "sizeof(S15330C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S15330C1)");
    check_field_offset(lv, s15330c1f0, 0, "S15330C1.s15330c1f0");
    check_field_offset(lv, s15330c1f1, ABISELECT(16,12), "S15330C1.s15330c1f1");
    check_field_offset(lv, s15330c1f2, ABISELECT(32,24), "S15330C1.s15330c1f2");
    check_field_offset(lv, s15330c1f3, ABISELECT(48,36), "S15330C1.s15330c1f3");
  }
}
static Arrange_To_Call_Me vS15330C1(Test_S15330C1, "S15330C1", ABISELECT(56,40));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2900C2_nt  : S9701C4_nt {
  virtual  ~S2900C2_nt(); // _ZN10S2900C2_ntD1Ev
  virtual void  v2(); // _ZN10S2900C2_nt2v2Ev
  S2900C2_nt(); // tgen
};
//SIG(-1 S2900C2_nt) C1{ BC2{ m} vd v1}


 S2900C2_nt ::~S2900C2_nt(){ note_dtor("S2900C2_nt", this);}
void  S2900C2_nt ::v2(){vfunc_called(this, "_ZN10S2900C2_nt2v2Ev");}
S2900C2_nt ::S2900C2_nt(){ note_ctor("S2900C2_nt", this);} // tgen

//skip512 S2900C2_nt

#else // __cplusplus

extern void _ZN10S2900C2_ntC1Ev();
extern void _ZN10S2900C2_ntD1Ev();
Name_Map name_map_S2900C2_nt[] = {
  NSPAIR(_ZN10S2900C2_ntC1Ev),
  NSPAIR(_ZN10S2900C2_ntD1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9701C4_nt;
extern VTBL_ENTRY _ZTI10S9701C4_nt[];
static Base_Class bases_S2900C2_nt[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9701C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI10S2900C2_nt[];
extern void _ZN10S2900C2_ntD1Ev();
extern void _ZN10S2900C2_ntD0Ev();
extern void _ZN10S2900C2_nt2v2Ev();
static  VTBL_ENTRY vtc_S2900C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S2900C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S2900C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S2900C2_ntD0Ev,
  (VTBL_ENTRY)&_ZN10S2900C2_nt2v2Ev,
};
extern VTBL_ENTRY _ZTI10S2900C2_nt[];
VTBL_ENTRY *P__ZTI10S2900C2_nt = _ZTI10S2900C2_nt; 
extern  VTBL_ENTRY _ZTV10S2900C2_nt[];
Class_Descriptor cd_S2900C2_nt = {  "S2900C2_nt", // class name
  bases_S2900C2_nt, 1,
  &(vtc_S2900C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI10S2900C2_nt),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV10S2900C2_nt),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S2900C1  : S2900C2_nt {
  int s2900c1f0[4];
  void *s2900c1f1;
  int s2900c1f2[2];
  virtual  ~S2900C1(); // _ZN7S2900C1D1Ev
  virtual void  v1(); // _ZN7S2900C12v1Ev
  S2900C1(); // tgen
};
//SIG(1 S2900C1) C1{ BC2{ BC3{ m} vd v2} vd v1 Fi[4] Fp Fi[2]}


 S2900C1 ::~S2900C1(){ note_dtor("S2900C1", this);}
void  S2900C1 ::v1(){vfunc_called(this, "_ZN7S2900C12v1Ev");}
S2900C1 ::S2900C1(){ note_ctor("S2900C1", this);} // tgen

static void Test_S2900C1()
{
  extern Class_Descriptor cd_S2900C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,9)];
    init_test(&cd_S2900C1, buf);
    S2900C1 *dp, &lv = *(dp=new (buf) S2900C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,32), "sizeof(S2900C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S2900C1)");
    check_base_class_offset(lv, (S9701C4_nt*)(S2900C2_nt*), 0, "S2900C1");
    check_base_class_offset(lv, (S2900C2_nt*), 0, "S2900C1");
    check_field_offset(lv, s2900c1f0, ABISELECT(8,4), "S2900C1.s2900c1f0");
    check_field_offset(lv, s2900c1f1, ABISELECT(24,20), "S2900C1.s2900c1f1");
    check_field_offset(lv, s2900c1f2, ABISELECT(32,24), "S2900C1.s2900c1f2");
    test_class_info(&lv, &cd_S2900C1);
    dp->~S2900C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS2900C1(Test_S2900C1, "S2900C1", ABISELECT(40,32));

#else // __cplusplus

extern void _ZN7S2900C1C1Ev();
extern void _ZN7S2900C1D1Ev();
Name_Map name_map_S2900C1[] = {
  NSPAIR(_ZN7S2900C1C1Ev),
  NSPAIR(_ZN7S2900C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9701C4_nt;
extern VTBL_ENTRY _ZTI10S9701C4_nt[];
extern Class_Descriptor cd_S2900C2_nt;
extern VTBL_ENTRY _ZTI10S2900C2_nt[];
extern  VTBL_ENTRY _ZTV10S2900C2_nt[];
static Base_Class bases_S2900C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9701C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    1, //immediately_derived
  0, 0},
  {&cd_S2900C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S2900C1[];
extern void _ZN7S2900C1D1Ev();
extern void _ZN7S2900C1D0Ev();
extern void _ZN10S2900C2_nt2v2Ev();
extern void _ZN7S2900C12v1Ev();
static  VTBL_ENTRY vtc_S2900C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S2900C1[0]),
  (VTBL_ENTRY)&_ZN7S2900C1D1Ev,
  (VTBL_ENTRY)&_ZN7S2900C1D0Ev,
  (VTBL_ENTRY)&_ZN10S2900C2_nt2v2Ev,
  (VTBL_ENTRY)&_ZN7S2900C12v1Ev,
};
extern VTBL_ENTRY _ZTI7S2900C1[];
extern  VTBL_ENTRY _ZTV7S2900C1[];
Class_Descriptor cd_S2900C1 = {  "S2900C1", // class name
  bases_S2900C1, 2,
  &(vtc_S2900C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,32), // object size
  NSPAIRA(_ZTI7S2900C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S2900C1),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10906C2_nt  {
  char s10906c2f0[16];
  int s10906c2f1;
};
//SIG(1 S10906C2_nt) C1{ Fc[16] Fi}



//skip512 S10906C2_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10906C1  {
  char s10906c1f0[4];
  int s10906c1f1[2];
  char s10906c1f2[4];
  ::S10906C2_nt s10906c1f3[3];
};
//SIG(1 S10906C1) C1{ Fc[4] Fi[2] Fc[4] FC2{ Fc[16] Fi}[3]}



static void Test_S10906C1()
{
  {
    init_simple_test("S10906C1");
    S10906C1 lv;
    check2(sizeof(lv), 76, "sizeof(S10906C1)");
    check2(__alignof__(lv), 4, "__alignof__(S10906C1)");
    check_field_offset(lv, s10906c1f0, 0, "S10906C1.s10906c1f0");
    check_field_offset(lv, s10906c1f1, 4, "S10906C1.s10906c1f1");
    check_field_offset(lv, s10906c1f2, 12, "S10906C1.s10906c1f2");
    check_field_offset(lv, s10906c1f3, 16, "S10906C1.s10906c1f3");
  }
}
static Arrange_To_Call_Me vS10906C1(Test_S10906C1, "S10906C1", 76);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S15097C1  {
  char s15097c1f0;
  int s15097c1f1[2];
  ::S9701C3_nt s15097c1f2;
  int s15097c1f3;
  __tsi64 s15097c1f4;
  void  mf15097c1(); // _ZN8S15097C19mf15097c1Ev
};
//SIG(1 S15097C1) C1{ m Fc Fi[2] FC2{ m Fp Fi FC3{ m}} Fi FL}


void  S15097C1 ::mf15097c1(){}

static void Test_S15097C1()
{
  {
    init_simple_test("S15097C1");
    S15097C1 lv;
    check2(sizeof(lv), ABISELECT(48,36), "sizeof(S15097C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S15097C1)");
    check_field_offset(lv, s15097c1f0, 0, "S15097C1.s15097c1f0");
    check_field_offset(lv, s15097c1f1, 4, "S15097C1.s15097c1f1");
    check_field_offset(lv, s15097c1f2, ABISELECT(16,12), "S15097C1.s15097c1f2");
    check_field_offset(lv, s15097c1f3, ABISELECT(32,24), "S15097C1.s15097c1f3");
    check_field_offset(lv, s15097c1f4, ABISELECT(40,28), "S15097C1.s15097c1f4");
  }
}
static Arrange_To_Call_Me vS15097C1(Test_S15097C1, "S15097C1", ABISELECT(48,36));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S5590C2_nt  {
  ::S85C35 s5590c2f0;
  char s5590c2f1;
  void  mf5590c2(); // _ZN10S5590C2_nt8mf5590c2Ev
};
//SIG(-1 S5590C2_nt) C1{ m FC2{ BC3{ BC4{ m Fp Fi[2]}}} Fc}


void  S5590C2_nt ::mf5590c2(){}

//skip512 S5590C2_nt

#else // __cplusplus

Class_Descriptor cd_S5590C2_nt = {  "S5590C2_nt", // class name
  0,0,//no base classes
  0, // no vftv
  0, //no vtt
  ABISELECT(24,16), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S5590C1  : S5590C2_nt {
};
//SIG(1 S5590C1) C1{ BC2{ m FC3{ BC4{ BC5{ m Fp Fi[2]}}} Fc}}



static void Test_S5590C1()
{
  extern Class_Descriptor cd_S5590C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(4,5)];
    init_test(&cd_S5590C1, buf);
    S5590C1 &lv = *(new (buf) S5590C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(24,16), "sizeof(S5590C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S5590C1)");
    check_base_class_offset(lv, (S5590C2_nt*), 0, "S5590C1");
    test_class_info(&lv, &cd_S5590C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS5590C1(Test_S5590C1, "S5590C1", ABISELECT(24,16));

#else // __cplusplus

extern Class_Descriptor cd_S5590C2_nt;
static Base_Class bases_S5590C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S5590C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S5590C1 = {  "S5590C1", // class name
  bases_S5590C1, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(24,16), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17963C3_nt  {
  __tsi64 s17963c3f0[2];
  void  mf17963c3(); // _ZN11S17963C3_nt9mf17963c3Ev
};
//SIG(-1 S17963C3_nt) C1{ m FL[2]}


void  S17963C3_nt ::mf17963c3(){}

//skip512 S17963C3_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17963C2_nt  {
  ::S17963C3_nt s17963c2f0;
  void  mf17963c2(); // _ZN11S17963C2_nt9mf17963c2Ev
};
//SIG(-1 S17963C2_nt) C1{ m FC2{ m FL[2]}}


void  S17963C2_nt ::mf17963c2(){}

//skip512 S17963C2_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17963C1  {
  void *s17963c1f0[2];
  ::S17963C2_nt s17963c1f1;
  ::S17963C2_nt s17963c1f2;
  void *s17963c1f3;
  void  mf17963c1(); // _ZN8S17963C19mf17963c1Ev
};
//SIG(1 S17963C1) C1{ m Fp[2] FC2{ m FC3{ m FL[2]}} FC2 Fp}


void  S17963C1 ::mf17963c1(){}

static void Test_S17963C1()
{
  {
    init_simple_test("S17963C1");
    S17963C1 lv;
    check2(sizeof(lv), ABISELECT(56,44), "sizeof(S17963C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17963C1)");
    check_field_offset(lv, s17963c1f0, 0, "S17963C1.s17963c1f0");
    check_field_offset(lv, s17963c1f1, ABISELECT(16,8), "S17963C1.s17963c1f1");
    check_field_offset(lv, s17963c1f2, ABISELECT(32,24), "S17963C1.s17963c1f2");
    check_field_offset(lv, s17963c1f3, ABISELECT(48,40), "S17963C1.s17963c1f3");
  }
}
static Arrange_To_Call_Me vS17963C1(Test_S17963C1, "S17963C1", ABISELECT(56,44));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18109C1  {
  void *s18109c1f0[2];
  int s18109c1f1[3];
  ::S9701C3_nt s18109c1f2;
  void  mf18109c1(); // _ZN8S18109C19mf18109c1Ev
};
//SIG(1 S18109C1) C1{ m Fp[2] Fi[3] FC2{ m Fp Fi FC3{ m}}}


void  S18109C1 ::mf18109c1(){}

static void Test_S18109C1()
{
  {
    init_simple_test("S18109C1");
    S18109C1 lv;
    check2(sizeof(lv), ABISELECT(48,32), "sizeof(S18109C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S18109C1)");
    check_field_offset(lv, s18109c1f0, 0, "S18109C1.s18109c1f0");
    check_field_offset(lv, s18109c1f1, ABISELECT(16,8), "S18109C1.s18109c1f1");
    check_field_offset(lv, s18109c1f2, ABISELECT(32,20), "S18109C1.s18109c1f2");
  }
}
static Arrange_To_Call_Me vS18109C1(Test_S18109C1, "S18109C1", ABISELECT(48,32));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12166C1  {
  ::S17645C3_nt s12166c1f0;
  int s12166c1f1[7];
  ::S17645C4_nt s12166c1f2;
  void *s12166c1f3;
};
//SIG(1 S12166C1) C1{ FC2{ m Fp Fi[2]} Fi[7] FC3{ m Fc} Fp}



static void Test_S12166C1()
{
  {
    init_simple_test("S12166C1");
    S12166C1 lv;
    check2(sizeof(lv), ABISELECT(56,48), "sizeof(S12166C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S12166C1)");
    check_field_offset(lv, s12166c1f0, 0, "S12166C1.s12166c1f0");
    check_field_offset(lv, s12166c1f1, ABISELECT(16,12), "S12166C1.s12166c1f1");
    check_field_offset(lv, s12166c1f2, ABISELECT(44,40), "S12166C1.s12166c1f2");
    check_field_offset(lv, s12166c1f3, ABISELECT(48,44), "S12166C1.s12166c1f3");
  }
}
static Arrange_To_Call_Me vS12166C1(Test_S12166C1, "S12166C1", ABISELECT(56,48));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16338C1  {
  ::S17645C3_nt s16338c1f0;
  ::S80C12_nt s16338c1f1;
  void  mf16338c1(); // _ZN8S16338C19mf16338c1Ev
};
//SIG(1 S16338C1) C1{ m FC2{ m Fp Fi[2]} FC3{ m Fp Fi[2]}}


void  S16338C1 ::mf16338c1(){}

static void Test_S16338C1()
{
  {
    init_simple_test("S16338C1");
    S16338C1 lv;
    check2(sizeof(lv), ABISELECT(32,24), "sizeof(S16338C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16338C1)");
    check_field_offset(lv, s16338c1f0, 0, "S16338C1.s16338c1f0");
    check_field_offset(lv, s16338c1f1, ABISELECT(16,12), "S16338C1.s16338c1f1");
  }
}
static Arrange_To_Call_Me vS16338C1(Test_S16338C1, "S16338C1", ABISELECT(32,24));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16765C1  {
  int s16765c1f0;
  ::S80C36_nt s16765c1f1[16];
  int s16765c1f2[32];
  char s16765c1f3;
  void  mf16765c1(); // _ZN8S16765C19mf16765c1Ev
};
//SIG(1 S16765C1) C1{ m Fi FC2{ m Fi[3]}[16] Fi[32] Fc}


void  S16765C1 ::mf16765c1(){}

static void Test_S16765C1()
{
  {
    init_simple_test("S16765C1");
    S16765C1 lv;
    check2(sizeof(lv), 328, "sizeof(S16765C1)");
    check2(__alignof__(lv), 4, "__alignof__(S16765C1)");
    check_field_offset(lv, s16765c1f0, 0, "S16765C1.s16765c1f0");
    check_field_offset(lv, s16765c1f1, 4, "S16765C1.s16765c1f1");
    check_field_offset(lv, s16765c1f2, 196, "S16765C1.s16765c1f2");
    check_field_offset(lv, s16765c1f3, 324, "S16765C1.s16765c1f3");
  }
}
static Arrange_To_Call_Me vS16765C1(Test_S16765C1, "S16765C1", 328);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6181C1  : S9701C4_nt {
  ::S21912C4_nt s6181c1f0;
  short s6181c1f1;
};
//SIG(1 S6181C1) C1{ BC2{ m} FC3{ m Fp Fi[2] FC2} Fs}



static void Test_S6181C1()
{
  extern Class_Descriptor cd_S6181C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(5,6)];
    init_test(&cd_S6181C1, buf);
    S6181C1 &lv = *(new (buf) S6181C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S6181C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6181C1)");
    check_base_class_offset(lv, (S9701C4_nt*), 0, "S6181C1");
    check_field_offset(lv, s6181c1f0, 0, "S6181C1.s6181c1f0");
    check_field_offset(lv, s6181c1f1, ABISELECT(24,16), "S6181C1.s6181c1f1");
    test_class_info(&lv, &cd_S6181C1);
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6181C1(Test_S6181C1, "S6181C1", ABISELECT(32,20));

#else // __cplusplus

extern Class_Descriptor cd_S9701C4_nt;
extern VTBL_ENTRY _ZTI10S9701C4_nt[];
static Base_Class bases_S6181C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9701C4_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    -1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
Class_Descriptor cd_S6181C1 = {  "S6181C1", // class name
  bases_S6181C1, 1,
  0, // no vftv
  0, //no vtt
  ABISELECT(32,20), // object size
  {0,0},0, // typeinfo_var
  {0,0},0, // virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14430C1  {
  void *s14430c1f0[10];
  int s14430c1f1;
  void *s14430c1f2[4];
  int s14430c1f3[16];
  char s14430c1f4[256];
};
//SIG(1 S14430C1) C1{ Fp[10] Fi Fp[4] Fi[16] Fc[256]}



static void Test_S14430C1()
{
  {
    init_simple_test("S14430C1");
    S14430C1 lv;
    check2(sizeof(lv), ABISELECT(440,380), "sizeof(S14430C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14430C1)");
    check_field_offset(lv, s14430c1f0, 0, "S14430C1.s14430c1f0");
    check_field_offset(lv, s14430c1f1, ABISELECT(80,40), "S14430C1.s14430c1f1");
    check_field_offset(lv, s14430c1f2, ABISELECT(88,44), "S14430C1.s14430c1f2");
    check_field_offset(lv, s14430c1f3, ABISELECT(120,60), "S14430C1.s14430c1f3");
    check_field_offset(lv, s14430c1f4, ABISELECT(184,124), "S14430C1.s14430c1f4");
  }
}
static Arrange_To_Call_Me vS14430C1(Test_S14430C1, "S14430C1", ABISELECT(440,380));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13807C2  {
  long s13807c2f0[3];
  short s13807c2f1[2];
  long s13807c2f2;
};
//SIG(-1 S13807C2) C1{ Fl[3] Fs[2] Fl}



static void Test_S13807C2()
{
  {
    init_simple_test("S13807C2");
    S13807C2 lv;
    check2(sizeof(lv), ABISELECT(40,20), "sizeof(S13807C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13807C2)");
    check_field_offset(lv, s13807c2f0, 0, "S13807C2.s13807c2f0");
    check_field_offset(lv, s13807c2f1, ABISELECT(24,12), "S13807C2.s13807c2f1");
    check_field_offset(lv, s13807c2f2, ABISELECT(32,16), "S13807C2.s13807c2f2");
  }
}
static Arrange_To_Call_Me vS13807C2(Test_S13807C2, "S13807C2", ABISELECT(40,20));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13807C1  {
  __tsi64 s13807c1f0;
  long s13807c1f1;
  ::S13807C2 s13807c1f2;
  void *s13807c1f3[3];
};
//SIG(1 S13807C1) C1{ FL Fl FC2{ Fl[3] Fs[2] Fl} Fp[3]}



static void Test_S13807C1()
{
  {
    init_simple_test("S13807C1");
    S13807C1 lv;
    check2(sizeof(lv), ABISELECT(80,44), "sizeof(S13807C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13807C1)");
    check_field_offset(lv, s13807c1f0, 0, "S13807C1.s13807c1f0");
    check_field_offset(lv, s13807c1f1, 8, "S13807C1.s13807c1f1");
    check_field_offset(lv, s13807c1f2, ABISELECT(16,12), "S13807C1.s13807c1f2");
    check_field_offset(lv, s13807c1f3, ABISELECT(56,32), "S13807C1.s13807c1f3");
  }
}
static Arrange_To_Call_Me vS13807C1(Test_S13807C1, "S13807C1", ABISELECT(80,44));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16347C1  {
  ::S1058C8_nt s16347c1f0;
  int s16347c1f1;
  ::S10090C3_nt s16347c1f2;
  void  mf16347c1(); // _ZN8S16347C19mf16347c1Ev
};
//SIG(1 S16347C1) C1{ m FC2{ m Fp Fi} Fi FC3{ m Fp[2]}}


void  S16347C1 ::mf16347c1(){}

static void Test_S16347C1()
{
  {
    init_simple_test("S16347C1");
    S16347C1 lv;
    check2(sizeof(lv), ABISELECT(40,20), "sizeof(S16347C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S16347C1)");
    check_field_offset(lv, s16347c1f0, 0, "S16347C1.s16347c1f0");
    check_field_offset(lv, s16347c1f1, ABISELECT(16,8), "S16347C1.s16347c1f1");
    check_field_offset(lv, s16347c1f2, ABISELECT(24,12), "S16347C1.s16347c1f2");
  }
}
static Arrange_To_Call_Me vS16347C1(Test_S16347C1, "S16347C1", ABISELECT(40,20));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12912C1  {
  int s12912c1f0:16;
  unsigned int s12912c1f1:1;
  int s12912c1f2:5;
  int s12912c1f3:2;
  int s12912c1f4:8;
  char s12912c1f5;
};
//SIG(1 S12912C1) C1{ Fi:16 Fi:1 Fi:5 Fi:2 Fi:8 Fc}



static void Test_S12912C1()
{
  {
    init_simple_test("S12912C1");
    static S12912C1 lv;
    check2(sizeof(lv), 8, "sizeof(S12912C1)");
    check2(__alignof__(lv), 4, "__alignof__(S12912C1)");
    set_bf_and_test(lv, s12912c1f0, 0, 0, 16, 1, "S12912C1");
    set_bf_and_test(lv, s12912c1f0, 0, 0, 16, hide_sll(1LL<<15), "S12912C1");
    set_bf_and_test(lv, s12912c1f1, 2, 0, 1, 1, "S12912C1");
    set_bf_and_test(lv, s12912c1f2, 2, 1, 5, 1, "S12912C1");
    set_bf_and_test(lv, s12912c1f2, 2, 1, 5, hide_sll(1LL<<4), "S12912C1");
    set_bf_and_test(lv, s12912c1f3, 2, 6, 2, 1, "S12912C1");
    set_bf_and_test(lv, s12912c1f3, 2, 6, 2, hide_sll(1LL<<1), "S12912C1");
    set_bf_and_test(lv, s12912c1f4, 3, 0, 8, 1, "S12912C1");
    set_bf_and_test(lv, s12912c1f4, 3, 0, 8, hide_sll(1LL<<7), "S12912C1");
    check_field_offset(lv, s12912c1f5, 4, "S12912C1.s12912c1f5");
  }
}
static Arrange_To_Call_Me vS12912C1(Test_S12912C1, "S12912C1", 8);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18065C1  {
  void *s18065c1f0[2];
  int s18065c1f1;
  char s18065c1f2[2];
  void *s18065c1f3[3];
  char s18065c1f4;
  void *s18065c1f5;
  void  mf18065c1(); // _ZN8S18065C19mf18065c1Ev
};
//SIG(1 S18065C1) C1{ m Fp[2] Fi Fc[2] Fp[3] Fc Fp}


void  S18065C1 ::mf18065c1(){}

static void Test_S18065C1()
{
  {
    init_simple_test("S18065C1");
    S18065C1 lv;
    check2(sizeof(lv), ABISELECT(64,36), "sizeof(S18065C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S18065C1)");
    check_field_offset(lv, s18065c1f0, 0, "S18065C1.s18065c1f0");
    check_field_offset(lv, s18065c1f1, ABISELECT(16,8), "S18065C1.s18065c1f1");
    check_field_offset(lv, s18065c1f2, ABISELECT(20,12), "S18065C1.s18065c1f2");
    check_field_offset(lv, s18065c1f3, ABISELECT(24,16), "S18065C1.s18065c1f3");
    check_field_offset(lv, s18065c1f4, ABISELECT(48,28), "S18065C1.s18065c1f4");
    check_field_offset(lv, s18065c1f5, ABISELECT(56,32), "S18065C1.s18065c1f5");
  }
}
static Arrange_To_Call_Me vS18065C1(Test_S18065C1, "S18065C1", ABISELECT(64,36));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21479C1  {
  ::S9701C3_nt s21479c1f0;
  ::S9701C3_nt s21479c1f1;
  void  mf21479c1(); // _ZN8S21479C19mf21479c1Ev
  virtual  ~S21479C1(); // _ZN8S21479C1D1Ev
  S21479C1(); // tgen
};
//SIG(1 S21479C1) C1{ vd m FC2{ m Fp Fi FC3{ m}} FC2}


void  S21479C1 ::mf21479c1(){}
 S21479C1 ::~S21479C1(){ note_dtor("S21479C1", this);}
S21479C1 ::S21479C1(){ note_ctor("S21479C1", this);} // tgen

static void Test_S21479C1()
{
  extern Class_Descriptor cd_S21479C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(6,8)];
    init_test(&cd_S21479C1, buf);
    S21479C1 *dp, &lv = *(dp=new (buf) S21479C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S21479C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S21479C1)");
    check_field_offset(lv, s21479c1f0, ABISELECT(8,4), "S21479C1.s21479c1f0");
    check_field_offset(lv, s21479c1f1, ABISELECT(24,16), "S21479C1.s21479c1f1");
    test_class_info(&lv, &cd_S21479C1);
    dp->~S21479C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS21479C1(Test_S21479C1, "S21479C1", ABISELECT(40,28));

#else // __cplusplus

extern void _ZN8S21479C1C1Ev();
extern void _ZN8S21479C1D1Ev();
Name_Map name_map_S21479C1[] = {
  NSPAIR(_ZN8S21479C1C1Ev),
  NSPAIR(_ZN8S21479C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S21479C1[];
extern void _ZN8S21479C1D1Ev();
extern void _ZN8S21479C1D0Ev();
static  VTBL_ENTRY vtc_S21479C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S21479C1[0]),
  (VTBL_ENTRY)&_ZN8S21479C1D1Ev,
  (VTBL_ENTRY)&_ZN8S21479C1D0Ev,
};
extern VTBL_ENTRY _ZTI8S21479C1[];
extern  VTBL_ENTRY _ZTV8S21479C1[];
Class_Descriptor cd_S21479C1 = {  "S21479C1", // class name
  0,0,//no base classes
  &(vtc_S21479C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,28), // object size
  NSPAIRA(_ZTI8S21479C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S21479C1),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12173C3  {
  ::S21969C7_nt s12173c3f0;
  void *s12173c3f1;
  void  mf12173c3(); // _ZN8S12173C39mf12173c3Ev
};
//SIG(-1 S12173C3) C1{ m FC2{ m Fi} Fp}


void  S12173C3 ::mf12173c3(){}

static void Test_S12173C3()
{
  {
    init_simple_test("S12173C3");
    S12173C3 lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S12173C3)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S12173C3)");
    check_field_offset(lv, s12173c3f0, 0, "S12173C3.s12173c3f0");
    check_field_offset(lv, s12173c3f1, ABISELECT(8,4), "S12173C3.s12173c3f1");
  }
}
static Arrange_To_Call_Me vS12173C3(Test_S12173C3, "S12173C3", ABISELECT(16,8));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12173C1  {
  ::S21969C2_nt s12173c1f0;
  ::S12173C3 s12173c1f1;
};
//SIG(1 S12173C1) C1{ FC2{ m Fp} FC3{ m FC4{ m Fi} Fp}}



static void Test_S12173C1()
{
  {
    init_simple_test("S12173C1");
    S12173C1 lv;
    check2(sizeof(lv), ABISELECT(24,12), "sizeof(S12173C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S12173C1)");
    check_field_offset(lv, s12173c1f0, 0, "S12173C1.s12173c1f0");
    check_field_offset(lv, s12173c1f1, ABISELECT(8,4), "S12173C1.s12173c1f1");
  }
}
static Arrange_To_Call_Me vS12173C1(Test_S12173C1, "S12173C1", ABISELECT(24,12));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13400C1  {
  int s13400c1f0[3];
  void *s13400c1f1[3];
  int s13400c1f2[4];
  void *s13400c1f3;
  int s13400c1f4[4];
};
//SIG(1 S13400C1) C1{ Fi[3] Fp[3] Fi[4] Fp Fi[4]}



static void Test_S13400C1()
{
  {
    init_simple_test("S13400C1");
    S13400C1 lv;
    check2(sizeof(lv), ABISELECT(80,60), "sizeof(S13400C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13400C1)");
    check_field_offset(lv, s13400c1f0, 0, "S13400C1.s13400c1f0");
    check_field_offset(lv, s13400c1f1, ABISELECT(16,12), "S13400C1.s13400c1f1");
    check_field_offset(lv, s13400c1f2, ABISELECT(40,24), "S13400C1.s13400c1f2");
    check_field_offset(lv, s13400c1f3, ABISELECT(56,40), "S13400C1.s13400c1f3");
    check_field_offset(lv, s13400c1f4, ABISELECT(64,44), "S13400C1.s13400c1f4");
  }
}
static Arrange_To_Call_Me vS13400C1(Test_S13400C1, "S13400C1", ABISELECT(80,60));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14247C1  {
  void *s14247c1f0;
  int s14247c1f1;
  void *s14247c1f2[3];
  int s14247c1f3;
  char s14247c1f4[3];
  void *s14247c1f5[6];
};
//SIG(1 S14247C1) C1{ Fp Fi Fp[3] Fi Fc[3] Fp[6]}



static void Test_S14247C1()
{
  {
    init_simple_test("S14247C1");
    S14247C1 lv;
    check2(sizeof(lv), ABISELECT(96,52), "sizeof(S14247C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14247C1)");
    check_field_offset(lv, s14247c1f0, 0, "S14247C1.s14247c1f0");
    check_field_offset(lv, s14247c1f1, ABISELECT(8,4), "S14247C1.s14247c1f1");
    check_field_offset(lv, s14247c1f2, ABISELECT(16,8), "S14247C1.s14247c1f2");
    check_field_offset(lv, s14247c1f3, ABISELECT(40,20), "S14247C1.s14247c1f3");
    check_field_offset(lv, s14247c1f4, ABISELECT(44,24), "S14247C1.s14247c1f4");
    check_field_offset(lv, s14247c1f5, ABISELECT(48,28), "S14247C1.s14247c1f5");
  }
}
static Arrange_To_Call_Me vS14247C1(Test_S14247C1, "S14247C1", ABISELECT(96,52));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14693C1  {
  void *s14693c1f0[5];
  int s14693c1f1;
  char s14693c1f2[3];
  int s14693c1f3[2];
  void *s14693c1f4;
  int s14693c1f5;
};
//SIG(1 S14693C1) C1{ Fp[5] Fi Fc[3] Fi[2] Fp Fi}



static void Test_S14693C1()
{
  {
    init_simple_test("S14693C1");
    S14693C1 lv;
    check2(sizeof(lv), ABISELECT(72,44), "sizeof(S14693C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14693C1)");
    check_field_offset(lv, s14693c1f0, 0, "S14693C1.s14693c1f0");
    check_field_offset(lv, s14693c1f1, ABISELECT(40,20), "S14693C1.s14693c1f1");
    check_field_offset(lv, s14693c1f2, ABISELECT(44,24), "S14693C1.s14693c1f2");
    check_field_offset(lv, s14693c1f3, ABISELECT(48,28), "S14693C1.s14693c1f3");
    check_field_offset(lv, s14693c1f4, ABISELECT(56,36), "S14693C1.s14693c1f4");
    check_field_offset(lv, s14693c1f5, ABISELECT(64,40), "S14693C1.s14693c1f5");
  }
}
static Arrange_To_Call_Me vS14693C1(Test_S14693C1, "S14693C1", ABISELECT(72,44));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9030C2  {
  virtual  ~S9030C2(); // _ZN7S9030C2D1Ev
  virtual void  v2(); // _ZN7S9030C22v2Ev
  S9030C2(); // tgen
};
//SIG(-1 S9030C2) C1{ vd v1}


 S9030C2 ::~S9030C2(){ note_dtor("S9030C2", this);}
void  S9030C2 ::v2(){vfunc_called(this, "_ZN7S9030C22v2Ev");}
S9030C2 ::S9030C2(){ note_ctor("S9030C2", this);} // tgen

static void Test_S9030C2()
{
  extern Class_Descriptor cd_S9030C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[2];
    init_test(&cd_S9030C2, buf);
    S9030C2 *dp, &lv = *(dp=new (buf) S9030C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(S9030C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9030C2)");
    test_class_info(&lv, &cd_S9030C2);
    dp->~S9030C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9030C2(Test_S9030C2, "S9030C2", ABISELECT(8,4));

#else // __cplusplus

extern void _ZN7S9030C2C1Ev();
extern void _ZN7S9030C2D1Ev();
Name_Map name_map_S9030C2[] = {
  NSPAIR(_ZN7S9030C2C1Ev),
  NSPAIR(_ZN7S9030C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S9030C2[];
extern void _ZN7S9030C2D1Ev();
extern void _ZN7S9030C2D0Ev();
extern void _ZN7S9030C22v2Ev();
static  VTBL_ENTRY vtc_S9030C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9030C2[0]),
  (VTBL_ENTRY)&_ZN7S9030C2D1Ev,
  (VTBL_ENTRY)&_ZN7S9030C2D0Ev,
  (VTBL_ENTRY)&_ZN7S9030C22v2Ev,
};
extern VTBL_ENTRY _ZTI7S9030C2[];
extern  VTBL_ENTRY _ZTV7S9030C2[];
Class_Descriptor cd_S9030C2 = {  "S9030C2", // class name
  0,0,//no base classes
  &(vtc_S9030C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI7S9030C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S9030C2),5, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S9030C1  : S9030C2 {
  ::S1115C5_nt s9030c1f0;
  virtual void  v1(); // _ZN7S9030C12v1Ev
  ~S9030C1(); // tgen
  S9030C1(); // tgen
};
//SIG(1 S9030C1) C1{ BC2{ vd v2} v1 FC3{ m Fc[3]}}


void  S9030C1 ::v1(){vfunc_called(this, "_ZN7S9030C12v1Ev");}
S9030C1 ::~S9030C1(){ note_dtor("S9030C1", this);} // tgen
S9030C1 ::S9030C1(){ note_ctor("S9030C1", this);} // tgen

static void Test_S9030C1()
{
  extern Class_Descriptor cd_S9030C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S9030C1, buf);
    S9030C1 *dp, &lv = *(dp=new (buf) S9030C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S9030C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S9030C1)");
    check_base_class_offset(lv, (S9030C2*), 0, "S9030C1");
    check_field_offset(lv, s9030c1f0, ABISELECT(8,4), "S9030C1.s9030c1f0");
    test_class_info(&lv, &cd_S9030C1);
    dp->~S9030C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS9030C1(Test_S9030C1, "S9030C1", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S9030C1C1Ev();
extern void _ZN7S9030C1D1Ev();
Name_Map name_map_S9030C1[] = {
  NSPAIR(_ZN7S9030C1C1Ev),
  NSPAIR(_ZN7S9030C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S9030C2;
extern VTBL_ENTRY _ZTI7S9030C2[];
extern  VTBL_ENTRY _ZTV7S9030C2[];
static Base_Class bases_S9030C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S9030C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S9030C1[];
extern void _ZN7S9030C1D1Ev();
extern void _ZN7S9030C1D0Ev();
extern void _ZN7S9030C22v2Ev();
extern void _ZN7S9030C12v1Ev();
static  VTBL_ENTRY vtc_S9030C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S9030C1[0]),
  (VTBL_ENTRY)&_ZN7S9030C1D1Ev,
  (VTBL_ENTRY)&_ZN7S9030C1D0Ev,
  (VTBL_ENTRY)&_ZN7S9030C22v2Ev,
  (VTBL_ENTRY)&_ZN7S9030C12v1Ev,
};
extern VTBL_ENTRY _ZTI7S9030C1[];
extern  VTBL_ENTRY _ZTV7S9030C1[];
Class_Descriptor cd_S9030C1 = {  "S9030C1", // class name
  bases_S9030C1, 1,
  &(vtc_S9030C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S9030C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S9030C1),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12668C1  {
  int s12668c1f0;
  void *s12668c1f1;
  ::S17963C2_nt s12668c1f2;
};
//SIG(1 S12668C1) C1{ Fi Fp FC2{ m FC3{ m FL[2]}}}



static void Test_S12668C1()
{
  {
    init_simple_test("S12668C1");
    S12668C1 lv;
    check2(sizeof(lv), ABISELECT(32,24), "sizeof(S12668C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S12668C1)");
    check_field_offset(lv, s12668c1f0, 0, "S12668C1.s12668c1f0");
    check_field_offset(lv, s12668c1f1, ABISELECT(8,4), "S12668C1.s12668c1f1");
    check_field_offset(lv, s12668c1f2, ABISELECT(16,8), "S12668C1.s12668c1f2");
  }
}
static Arrange_To_Call_Me vS12668C1(Test_S12668C1, "S12668C1", ABISELECT(32,24));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

union  S17455C2  {
  char s17455c2f0[6144];
  __tsi64 s17455c2f1;
};
//SIG(1 S17455C2) U1{ Fc[6144] FL}

#endif // __cplusplus
#ifdef __cplusplus

struct  S17455C1  {
  void *s17455c1f0;
  char s17455c1f1;
  ::S17455C2 s17455c1f2;
  void  mf17455c1(); // _ZN8S17455C19mf17455c1Ev
};
//SIG(1 S17455C1) C1{ m Fp Fc FU2{ Fc[6144] FL}}


void  S17455C1 ::mf17455c1(){}

static void Test_S17455C1()
{
  {
    init_simple_test("S17455C1");
    S17455C1 lv;
    check2(sizeof(lv), ABISELECT(6160,6152), "sizeof(S17455C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17455C1)");
    check_field_offset(lv, s17455c1f0, 0, "S17455C1.s17455c1f0");
    check_field_offset(lv, s17455c1f1, ABISELECT(8,4), "S17455C1.s17455c1f1");
    check_field_offset(lv, s17455c1f2, ABISELECT(16,8), "S17455C1.s17455c1f2");
  }
}
static Arrange_To_Call_Me vS17455C1(Test_S17455C1, "S17455C1", ABISELECT(6160,6152));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S11744C1  {
  ::S13807C2 s11744c1f0;
  void *s11744c1f1[3];
};
//SIG(1 S11744C1) C1{ FC2{ Fl[3] Fs[2] Fl} Fp[3]}



static void Test_S11744C1()
{
  {
    init_simple_test("S11744C1");
    S11744C1 lv;
    check2(sizeof(lv), ABISELECT(64,32), "sizeof(S11744C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S11744C1)");
    check_field_offset(lv, s11744c1f0, 0, "S11744C1.s11744c1f0");
    check_field_offset(lv, s11744c1f1, ABISELECT(40,20), "S11744C1.s11744c1f1");
  }
}
static Arrange_To_Call_Me vS11744C1(Test_S11744C1, "S11744C1", ABISELECT(64,32));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17199C1  {
  int s17199c1f0[3];
  unsigned int s17199c1f1:1;
  unsigned int s17199c1f2:1;
  void *s17199c1f3[2];
  void  mf17199c1(); // _ZN8S17199C19mf17199c1Ev
};
//SIG(1 S17199C1) C1{ m Fi[3] Fi:1 Fi:1 Fp[2]}


void  S17199C1 ::mf17199c1(){}

static void Test_S17199C1()
{
  {
    init_simple_test("S17199C1");
    static S17199C1 lv;
    check2(sizeof(lv), ABISELECT(32,24), "sizeof(S17199C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17199C1)");
    check_field_offset(lv, s17199c1f0, 0, "S17199C1.s17199c1f0");
    set_bf_and_test(lv, s17199c1f1, 12, 0, 1, 1, "S17199C1");
    set_bf_and_test(lv, s17199c1f2, 12, 1, 1, 1, "S17199C1");
    check_field_offset(lv, s17199c1f3, 16, "S17199C1.s17199c1f3");
  }
}
static Arrange_To_Call_Me vS17199C1(Test_S17199C1, "S17199C1", ABISELECT(32,24));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13968C1  {
  long s13968c1f0[3];
  char s13968c1f1[5];
  short s13968c1f2;
  char s13968c1f3[2];
  short s13968c1f4;
};
//SIG(1 S13968C1) C1{ Fl[3] Fc[5] Fs Fc[2] Fs}



static void Test_S13968C1()
{
  {
    init_simple_test("S13968C1");
    S13968C1 lv;
    check2(sizeof(lv), ABISELECT(40,24), "sizeof(S13968C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13968C1)");
    check_field_offset(lv, s13968c1f0, 0, "S13968C1.s13968c1f0");
    check_field_offset(lv, s13968c1f1, ABISELECT(24,12), "S13968C1.s13968c1f1");
    check_field_offset(lv, s13968c1f2, ABISELECT(30,18), "S13968C1.s13968c1f2");
    check_field_offset(lv, s13968c1f3, ABISELECT(32,20), "S13968C1.s13968c1f3");
    check_field_offset(lv, s13968c1f4, ABISELECT(34,22), "S13968C1.s13968c1f4");
  }
}
static Arrange_To_Call_Me vS13968C1(Test_S13968C1, "S13968C1", ABISELECT(40,24));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S8307C2_nt  {
  void  mf8307c2(); // _ZN10S8307C2_nt8mf8307c2Ev
  virtual  ~S8307C2_nt(); // _ZN10S8307C2_ntD1Ev
  S8307C2_nt(); // tgen
};
//SIG(-1 S8307C2_nt) C1{ vd m}


void  S8307C2_nt ::mf8307c2(){}
 S8307C2_nt ::~S8307C2_nt(){ note_dtor("S8307C2_nt", this);}
S8307C2_nt ::S8307C2_nt(){ note_ctor("S8307C2_nt", this);} // tgen

//skip512 S8307C2_nt

#else // __cplusplus

extern void _ZN10S8307C2_ntC1Ev();
extern void _ZN10S8307C2_ntD1Ev();
Name_Map name_map_S8307C2_nt[] = {
  NSPAIR(_ZN10S8307C2_ntC1Ev),
  NSPAIR(_ZN10S8307C2_ntD1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI10S8307C2_nt[];
extern void _ZN10S8307C2_ntD1Ev();
extern void _ZN10S8307C2_ntD0Ev();
static  VTBL_ENTRY vtc_S8307C2_nt[] = {
  0,
  (VTBL_ENTRY)&(_ZTI10S8307C2_nt[0]),
  (VTBL_ENTRY)&_ZN10S8307C2_ntD1Ev,
  (VTBL_ENTRY)&_ZN10S8307C2_ntD0Ev,
};
extern VTBL_ENTRY _ZTI10S8307C2_nt[];
VTBL_ENTRY *P__ZTI10S8307C2_nt = _ZTI10S8307C2_nt; 
extern  VTBL_ENTRY _ZTV10S8307C2_nt[];
Class_Descriptor cd_S8307C2_nt = {  "S8307C2_nt", // class name
  0,0,//no base classes
  &(vtc_S8307C2_nt[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI10S8307C2_nt),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV10S8307C2_nt),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S8307C1  : S8307C2_nt {
  ::S6871C4_nt s8307c1f0;
  virtual  ~S8307C1(); // _ZN7S8307C1D1Ev
  S8307C1(); // tgen
};
//SIG(1 S8307C1) C1{ BC2{ vd m} vd FC3{ Fl[4]}}


 S8307C1 ::~S8307C1(){ note_dtor("S8307C1", this);}
S8307C1 ::S8307C1(){ note_ctor("S8307C1", this);} // tgen

static void Test_S8307C1()
{
  extern Class_Descriptor cd_S8307C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[6];
    init_test(&cd_S8307C1, buf);
    S8307C1 *dp, &lv = *(dp=new (buf) S8307C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(40,20), "sizeof(S8307C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S8307C1)");
    check_base_class_offset(lv, (S8307C2_nt*), 0, "S8307C1");
    check_field_offset(lv, s8307c1f0, ABISELECT(8,4), "S8307C1.s8307c1f0");
    test_class_info(&lv, &cd_S8307C1);
    dp->~S8307C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS8307C1(Test_S8307C1, "S8307C1", ABISELECT(40,20));

#else // __cplusplus

extern void _ZN7S8307C1C1Ev();
extern void _ZN7S8307C1D1Ev();
Name_Map name_map_S8307C1[] = {
  NSPAIR(_ZN7S8307C1C1Ev),
  NSPAIR(_ZN7S8307C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S8307C2_nt;
extern VTBL_ENTRY _ZTI10S8307C2_nt[];
extern  VTBL_ENTRY _ZTV10S8307C2_nt[];
static Base_Class bases_S8307C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S8307C2_nt,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S8307C1[];
extern void _ZN7S8307C1D1Ev();
extern void _ZN7S8307C1D0Ev();
static  VTBL_ENTRY vtc_S8307C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S8307C1[0]),
  (VTBL_ENTRY)&_ZN7S8307C1D1Ev,
  (VTBL_ENTRY)&_ZN7S8307C1D0Ev,
};
extern VTBL_ENTRY _ZTI7S8307C1[];
extern  VTBL_ENTRY _ZTV7S8307C1[];
Class_Descriptor cd_S8307C1 = {  "S8307C1", // class name
  bases_S8307C1, 1,
  &(vtc_S8307C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(40,20), // object size
  NSPAIRA(_ZTI7S8307C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S8307C1),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S11088C1  {
  ::S85C36 s11088c1f0;
  __tsi64 s11088c1f1;
};
//SIG(1 S11088C1) C1{ FC2{ BC3{ m Fp Fi[2]}} FL}



static void Test_S11088C1()
{
  {
    init_simple_test("S11088C1");
    S11088C1 lv;
    check2(sizeof(lv), ABISELECT(24,20), "sizeof(S11088C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S11088C1)");
    check_field_offset(lv, s11088c1f0, 0, "S11088C1.s11088c1f0");
    check_field_offset(lv, s11088c1f1, ABISELECT(16,12), "S11088C1.s11088c1f1");
  }
}
static Arrange_To_Call_Me vS11088C1(Test_S11088C1, "S11088C1", ABISELECT(24,20));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6758C2  {
  virtual  ~S6758C2(); // _ZN7S6758C2D1Ev
  virtual void  v3(); // _ZN7S6758C22v3Ev
  virtual void  v4(); // _ZN7S6758C22v4Ev
  S6758C2(); // tgen
};
//SIG(-1 S6758C2) C1{ vd v1 v2}


 S6758C2 ::~S6758C2(){ note_dtor("S6758C2", this);}
void  S6758C2 ::v3(){vfunc_called(this, "_ZN7S6758C22v3Ev");}
void  S6758C2 ::v4(){vfunc_called(this, "_ZN7S6758C22v4Ev");}
S6758C2 ::S6758C2(){ note_ctor("S6758C2", this);} // tgen

static void Test_S6758C2()
{
  extern Class_Descriptor cd_S6758C2;
  void *lvp;
  {
    ABISELECT(double,int) buf[2];
    init_test(&cd_S6758C2, buf);
    S6758C2 *dp, &lv = *(dp=new (buf) S6758C2());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(S6758C2)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6758C2)");
    test_class_info(&lv, &cd_S6758C2);
    dp->~S6758C2();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6758C2(Test_S6758C2, "S6758C2", ABISELECT(8,4));

#else // __cplusplus

extern void _ZN7S6758C2C1Ev();
extern void _ZN7S6758C2D1Ev();
Name_Map name_map_S6758C2[] = {
  NSPAIR(_ZN7S6758C2C1Ev),
  NSPAIR(_ZN7S6758C2D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI7S6758C2[];
extern void _ZN7S6758C2D1Ev();
extern void _ZN7S6758C2D0Ev();
extern void _ZN7S6758C22v3Ev();
extern void _ZN7S6758C22v4Ev();
static  VTBL_ENTRY vtc_S6758C2[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6758C2[0]),
  (VTBL_ENTRY)&_ZN7S6758C2D1Ev,
  (VTBL_ENTRY)&_ZN7S6758C2D0Ev,
  (VTBL_ENTRY)&_ZN7S6758C22v3Ev,
  (VTBL_ENTRY)&_ZN7S6758C22v4Ev,
};
extern VTBL_ENTRY _ZTI7S6758C2[];
extern  VTBL_ENTRY _ZTV7S6758C2[];
Class_Descriptor cd_S6758C2 = {  "S6758C2", // class name
  0,0,//no base classes
  &(vtc_S6758C2[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(8,4), // object size
  NSPAIRA(_ZTI7S6758C2),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV7S6758C2),6, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S6758C1  : S6758C2 {
  void *s6758c1f0;
  virtual void  v1(); // _ZN7S6758C12v1Ev
  virtual void  v2(); // _ZN7S6758C12v2Ev
  ~S6758C1(); // tgen
  S6758C1(); // tgen
};
//SIG(1 S6758C1) C1{ BC2{ vd v3 v4} v1 v2 Fp}


void  S6758C1 ::v1(){vfunc_called(this, "_ZN7S6758C12v1Ev");}
void  S6758C1 ::v2(){vfunc_called(this, "_ZN7S6758C12v2Ev");}
S6758C1 ::~S6758C1(){ note_dtor("S6758C1", this);} // tgen
S6758C1 ::S6758C1(){ note_ctor("S6758C1", this);} // tgen

static void Test_S6758C1()
{
  extern Class_Descriptor cd_S6758C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S6758C1, buf);
    S6758C1 *dp, &lv = *(dp=new (buf) S6758C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S6758C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S6758C1)");
    check_base_class_offset(lv, (S6758C2*), 0, "S6758C1");
    check_field_offset(lv, s6758c1f0, ABISELECT(8,4), "S6758C1.s6758c1f0");
    test_class_info(&lv, &cd_S6758C1);
    dp->~S6758C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS6758C1(Test_S6758C1, "S6758C1", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN7S6758C1C1Ev();
extern void _ZN7S6758C1D1Ev();
Name_Map name_map_S6758C1[] = {
  NSPAIR(_ZN7S6758C1C1Ev),
  NSPAIR(_ZN7S6758C1D1Ev),
  {0,0}
};
extern Class_Descriptor cd_S6758C2;
extern VTBL_ENTRY _ZTI7S6758C2[];
extern  VTBL_ENTRY _ZTV7S6758C2[];
static Base_Class bases_S6758C1[] = {
  // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
  {&cd_S6758C2,    0, //bcp->offset
    -1, //bcp->virtual_function_table_offset
    2, //num_negative_vtable_entries(t, bcp)
    0, //bcp->index_in_construction_vtbl_array
    0, //bcp->base_subarray_index_in_construction_vtbl_array
    1, //init_seq
    -1, //immediately_derived
  1, 0},
  {0}};
extern VTBL_ENTRY _ZTI7S6758C1[];
extern void _ZN7S6758C1D1Ev();
extern void _ZN7S6758C1D0Ev();
extern void _ZN7S6758C22v3Ev();
extern void _ZN7S6758C22v4Ev();
extern void _ZN7S6758C12v1Ev();
extern void _ZN7S6758C12v2Ev();
static  VTBL_ENTRY vtc_S6758C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI7S6758C1[0]),
  (VTBL_ENTRY)&_ZN7S6758C1D1Ev,
  (VTBL_ENTRY)&_ZN7S6758C1D0Ev,
  (VTBL_ENTRY)&_ZN7S6758C22v3Ev,
  (VTBL_ENTRY)&_ZN7S6758C22v4Ev,
  (VTBL_ENTRY)&_ZN7S6758C12v1Ev,
  (VTBL_ENTRY)&_ZN7S6758C12v2Ev,
};
extern VTBL_ENTRY _ZTI7S6758C1[];
extern  VTBL_ENTRY _ZTV7S6758C1[];
Class_Descriptor cd_S6758C1 = {  "S6758C1", // class name
  bases_S6758C1, 1,
  &(vtc_S6758C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI7S6758C1),ABISELECT(24,12), //typeinfo_var
  NSPAIRA(_ZTV7S6758C1),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  1, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14777C1  {
  short s14777c1f0;
  char s14777c1f1[2];
  short s14777c1f2;
  char s14777c1f3[16];
  short s14777c1f4;
};
//SIG(1 S14777C1) C1{ Fs Fc[2] Fs Fc[16] Fs}



static void Test_S14777C1()
{
  {
    init_simple_test("S14777C1");
    S14777C1 lv;
    check2(sizeof(lv), 24, "sizeof(S14777C1)");
    check2(__alignof__(lv), 2, "__alignof__(S14777C1)");
    check_field_offset(lv, s14777c1f0, 0, "S14777C1.s14777c1f0");
    check_field_offset(lv, s14777c1f1, 2, "S14777C1.s14777c1f1");
    check_field_offset(lv, s14777c1f2, 4, "S14777C1.s14777c1f2");
    check_field_offset(lv, s14777c1f3, 6, "S14777C1.s14777c1f3");
    check_field_offset(lv, s14777c1f4, 22, "S14777C1.s14777c1f4");
  }
}
static Arrange_To_Call_Me vS14777C1(Test_S14777C1, "S14777C1", 24);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14358C1  {
  void *s14358c1f0;
  int s14358c1f1[5];
  long s14358c1f2;
  void *s14358c1f3[3];
  int s14358c1f4;
};
//SIG(1 S14358C1) C1{ Fp Fi[5] Fl Fp[3] Fi}



static void Test_S14358C1()
{
  {
    init_simple_test("S14358C1");
    S14358C1 lv;
    check2(sizeof(lv), ABISELECT(72,44), "sizeof(S14358C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14358C1)");
    check_field_offset(lv, s14358c1f0, 0, "S14358C1.s14358c1f0");
    check_field_offset(lv, s14358c1f1, ABISELECT(8,4), "S14358C1.s14358c1f1");
    check_field_offset(lv, s14358c1f2, ABISELECT(32,24), "S14358C1.s14358c1f2");
    check_field_offset(lv, s14358c1f3, ABISELECT(40,28), "S14358C1.s14358c1f3");
    check_field_offset(lv, s14358c1f4, ABISELECT(64,40), "S14358C1.s14358c1f4");
  }
}
static Arrange_To_Call_Me vS14358C1(Test_S14358C1, "S14358C1", ABISELECT(72,44));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S16533C1  {
  int s16533c1f0;
  char s16533c1f1;
  ::S85C27_nt s16533c1f2;
  void  mf16533c1(); // _ZN8S16533C19mf16533c1Ev
};
//SIG(1 S16533C1) C1{ m Fi Fc FC2{ m Fi[2]}}


void  S16533C1 ::mf16533c1(){}

static void Test_S16533C1()
{
  {
    init_simple_test("S16533C1");
    S16533C1 lv;
    check2(sizeof(lv), 16, "sizeof(S16533C1)");
    check2(__alignof__(lv), 4, "__alignof__(S16533C1)");
    check_field_offset(lv, s16533c1f0, 0, "S16533C1.s16533c1f0");
    check_field_offset(lv, s16533c1f1, 4, "S16533C1.s16533c1f1");
    check_field_offset(lv, s16533c1f2, 8, "S16533C1.s16533c1f2");
  }
}
static Arrange_To_Call_Me vS16533C1(Test_S16533C1, "S16533C1", 16);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18512C1  {
  int s18512c1f0[3];
  char s18512c1f1;
  long s18512c1f2;
  short s18512c1f3[8];
  virtual void  v1(); // _ZN8S18512C12v1Ev
  ~S18512C1(); // tgen
  S18512C1(); // tgen
};
//SIG(1 S18512C1) C1{ v1 Fi[3] Fc Fl Fs[8]}


void  S18512C1 ::v1(){vfunc_called(this, "_ZN8S18512C12v1Ev");}
S18512C1 ::~S18512C1(){ note_dtor("S18512C1", this);} // tgen
S18512C1 ::S18512C1(){ note_ctor("S18512C1", this);} // tgen

static void Test_S18512C1()
{
  extern Class_Descriptor cd_S18512C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(7,11)];
    init_test(&cd_S18512C1, buf);
    S18512C1 *dp, &lv = *(dp=new (buf) S18512C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(48,40), "sizeof(S18512C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S18512C1)");
    check_field_offset(lv, s18512c1f0, ABISELECT(8,4), "S18512C1.s18512c1f0");
    check_field_offset(lv, s18512c1f1, ABISELECT(20,16), "S18512C1.s18512c1f1");
    check_field_offset(lv, s18512c1f2, ABISELECT(24,20), "S18512C1.s18512c1f2");
    check_field_offset(lv, s18512c1f3, ABISELECT(32,24), "S18512C1.s18512c1f3");
    test_class_info(&lv, &cd_S18512C1);
    dp->~S18512C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS18512C1(Test_S18512C1, "S18512C1", ABISELECT(48,40));

#else // __cplusplus

extern void _ZN8S18512C1C1Ev();
extern void _ZN8S18512C1D1Ev();
Name_Map name_map_S18512C1[] = {
  NSPAIR(_ZN8S18512C1C1Ev),
  NSPAIR(_ZN8S18512C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S18512C1[];
extern void _ZN8S18512C12v1Ev();
static  VTBL_ENTRY vtc_S18512C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S18512C1[0]),
  (VTBL_ENTRY)&_ZN8S18512C12v1Ev,
};
extern VTBL_ENTRY _ZTI8S18512C1[];
extern  VTBL_ENTRY _ZTV8S18512C1[];
Class_Descriptor cd_S18512C1 = {  "S18512C1", // class name
  0,0,//no base classes
  &(vtc_S18512C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(48,40), // object size
  NSPAIRA(_ZTI8S18512C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S18512C1),3, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13093C2_nt  {
  int s13093c2f0[3];
};
//SIG(-1 S13093C2_nt) C1{ Fi[3]}



//skip512 S13093C2_nt

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13093C1  {
  int s13093c1f0[2];
  ::S13093C2_nt s13093c1f1;
  ::S13093C2_nt s13093c1f2;
};
//SIG(1 S13093C1) C1{ Fi[2] FC2{ Fi[3]} FC2}



static void Test_S13093C1()
{
  {
    init_simple_test("S13093C1");
    S13093C1 lv;
    check2(sizeof(lv), 32, "sizeof(S13093C1)");
    check2(__alignof__(lv), 4, "__alignof__(S13093C1)");
    check_field_offset(lv, s13093c1f0, 0, "S13093C1.s13093c1f0");
    check_field_offset(lv, s13093c1f1, 8, "S13093C1.s13093c1f1");
    check_field_offset(lv, s13093c1f2, 20, "S13093C1.s13093c1f2");
  }
}
static Arrange_To_Call_Me vS13093C1(Test_S13093C1, "S13093C1", 32);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21816C1  {
  void *s21816c1f0[255];
  ::S9701C4_nt s21816c1f1;
  void  mf21816c1(); // _ZN8S21816C19mf21816c1Ev
  virtual  ~S21816C1(); // _ZN8S21816C1D1Ev
  S21816C1(); // tgen
};
//SIG(1 S21816C1) C1{ vd m Fp[255] FC2{ m}}


void  S21816C1 ::mf21816c1(){}
 S21816C1 ::~S21816C1(){ note_dtor("S21816C1", this);}
S21816C1 ::S21816C1(){ note_ctor("S21816C1", this);} // tgen

static void Test_S21816C1()
{
  extern Class_Descriptor cd_S21816C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[258];
    init_test(&cd_S21816C1, buf);
    S21816C1 *dp, &lv = *(dp=new (buf) S21816C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(2056,1028), "sizeof(S21816C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S21816C1)");
    check_field_offset(lv, s21816c1f0, ABISELECT(8,4), "S21816C1.s21816c1f0");
    check_field_offset(lv, s21816c1f1, ABISELECT(2048,1024), "S21816C1.s21816c1f1");
    test_class_info(&lv, &cd_S21816C1);
    dp->~S21816C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS21816C1(Test_S21816C1, "S21816C1", ABISELECT(2056,1028));

#else // __cplusplus

extern void _ZN8S21816C1C1Ev();
extern void _ZN8S21816C1D1Ev();
Name_Map name_map_S21816C1[] = {
  NSPAIR(_ZN8S21816C1C1Ev),
  NSPAIR(_ZN8S21816C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S21816C1[];
extern void _ZN8S21816C1D1Ev();
extern void _ZN8S21816C1D0Ev();
static  VTBL_ENTRY vtc_S21816C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S21816C1[0]),
  (VTBL_ENTRY)&_ZN8S21816C1D1Ev,
  (VTBL_ENTRY)&_ZN8S21816C1D0Ev,
};
extern VTBL_ENTRY _ZTI8S21816C1[];
extern  VTBL_ENTRY _ZTV8S21816C1[];
Class_Descriptor cd_S21816C1 = {  "S21816C1", // class name
  0,0,//no base classes
  &(vtc_S21816C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(2056,1028), // object size
  NSPAIRA(_ZTI8S21816C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S21816C1),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  1, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10584C1  {
  char s10584c1f0[12];
  short s10584c1f1[4];
  char s10584c1f2[2];
};
//SIG(1 S10584C1) C1{ Fc[12] Fs[4] Fc[2]}



static void Test_S10584C1()
{
  {
    init_simple_test("S10584C1");
    S10584C1 lv;
    check2(sizeof(lv), 22, "sizeof(S10584C1)");
    check2(__alignof__(lv), 2, "__alignof__(S10584C1)");
    check_field_offset(lv, s10584c1f0, 0, "S10584C1.s10584c1f0");
    check_field_offset(lv, s10584c1f1, 12, "S10584C1.s10584c1f1");
    check_field_offset(lv, s10584c1f2, 20, "S10584C1.s10584c1f2");
  }
}
static Arrange_To_Call_Me vS10584C1(Test_S10584C1, "S10584C1", 22);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13734C1  {
  __tsi64 s13734c1f0;
  ::S14749C2 s13734c1f1;
};
//SIG(1 S13734C1) C1{ FL FC2{ m Fl Fs[2]}}



static void Test_S13734C1()
{
  {
    init_simple_test("S13734C1");
    S13734C1 lv;
    check2(sizeof(lv), ABISELECT(24,16), "sizeof(S13734C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13734C1)");
    check_field_offset(lv, s13734c1f0, 0, "S13734C1.s13734c1f0");
    check_field_offset(lv, s13734c1f1, 8, "S13734C1.s13734c1f1");
  }
}
static Arrange_To_Call_Me vS13734C1(Test_S13734C1, "S13734C1", ABISELECT(24,16));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18897C1  {
  long s18897c1f0;
  virtual  ~S18897C1(); // _ZN8S18897C1D1Ev
  virtual void  v1(); // _ZN8S18897C12v1Ev
  virtual void  v2(); // _ZN8S18897C12v2Ev
  virtual void  v3(); // _ZN8S18897C12v3Ev
  virtual void  v4(); // _ZN8S18897C12v4Ev
  S18897C1(); // tgen
};
//SIG(1 S18897C1) C1{ vd v1 v2 v3 v4 Fl}


 S18897C1 ::~S18897C1(){ note_dtor("S18897C1", this);}
void  S18897C1 ::v1(){vfunc_called(this, "_ZN8S18897C12v1Ev");}
void  S18897C1 ::v2(){vfunc_called(this, "_ZN8S18897C12v2Ev");}
void  S18897C1 ::v3(){vfunc_called(this, "_ZN8S18897C12v3Ev");}
void  S18897C1 ::v4(){vfunc_called(this, "_ZN8S18897C12v4Ev");}
S18897C1 ::S18897C1(){ note_ctor("S18897C1", this);} // tgen

static void Test_S18897C1()
{
  extern Class_Descriptor cd_S18897C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[3];
    init_test(&cd_S18897C1, buf);
    S18897C1 *dp, &lv = *(dp=new (buf) S18897C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(S18897C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S18897C1)");
    check_field_offset(lv, s18897c1f0, ABISELECT(8,4), "S18897C1.s18897c1f0");
    test_class_info(&lv, &cd_S18897C1);
    dp->~S18897C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS18897C1(Test_S18897C1, "S18897C1", ABISELECT(16,8));

#else // __cplusplus

extern void _ZN8S18897C1C1Ev();
extern void _ZN8S18897C1D1Ev();
Name_Map name_map_S18897C1[] = {
  NSPAIR(_ZN8S18897C1C1Ev),
  NSPAIR(_ZN8S18897C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S18897C1[];
extern void _ZN8S18897C1D1Ev();
extern void _ZN8S18897C1D0Ev();
extern void _ZN8S18897C12v1Ev();
extern void _ZN8S18897C12v2Ev();
extern void _ZN8S18897C12v3Ev();
extern void _ZN8S18897C12v4Ev();
static  VTBL_ENTRY vtc_S18897C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S18897C1[0]),
  (VTBL_ENTRY)&_ZN8S18897C1D1Ev,
  (VTBL_ENTRY)&_ZN8S18897C1D0Ev,
  (VTBL_ENTRY)&_ZN8S18897C12v1Ev,
  (VTBL_ENTRY)&_ZN8S18897C12v2Ev,
  (VTBL_ENTRY)&_ZN8S18897C12v3Ev,
  (VTBL_ENTRY)&_ZN8S18897C12v4Ev,
};
extern VTBL_ENTRY _ZTI8S18897C1[];
extern  VTBL_ENTRY _ZTV8S18897C1[];
Class_Descriptor cd_S18897C1 = {  "S18897C1", // class name
  0,0,//no base classes
  &(vtc_S18897C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(16,8), // object size
  NSPAIRA(_ZTI8S18897C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S18897C1),8, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13849C1  {
  long s13849c1f0;
  void *s13849c1f1[2];
  long s13849c1f2[3];
  char s13849c1f3;
};
//SIG(1 S13849C1) C1{ Fl Fp[2] Fl[3] Fc}



static void Test_S13849C1()
{
  {
    init_simple_test("S13849C1");
    S13849C1 lv;
    check2(sizeof(lv), ABISELECT(56,28), "sizeof(S13849C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13849C1)");
    check_field_offset(lv, s13849c1f0, 0, "S13849C1.s13849c1f0");
    check_field_offset(lv, s13849c1f1, ABISELECT(8,4), "S13849C1.s13849c1f1");
    check_field_offset(lv, s13849c1f2, ABISELECT(24,12), "S13849C1.s13849c1f2");
    check_field_offset(lv, s13849c1f3, ABISELECT(48,24), "S13849C1.s13849c1f3");
  }
}
static Arrange_To_Call_Me vS13849C1(Test_S13849C1, "S13849C1", ABISELECT(56,28));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S11715C1  {
  ::S16728C5 s11715c1f0;
  char s11715c1f1[32];
};
//SIG(1 S11715C1) C1{ FC2{ FL[16]} Fc[32]}



static void Test_S11715C1()
{
  {
    init_simple_test("S11715C1");
    S11715C1 lv;
    check2(sizeof(lv), 160, "sizeof(S11715C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S11715C1)");
    check_field_offset(lv, s11715c1f0, 0, "S11715C1.s11715c1f0");
    check_field_offset(lv, s11715c1f1, 128, "S11715C1.s11715c1f1");
  }
}
static Arrange_To_Call_Me vS11715C1(Test_S11715C1, "S11715C1", 160);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17243C1  {
  int s17243c1f0[4];
  void *s17243c1f1[3];
  int s17243c1f2;
  void  mf17243c1(); // _ZN8S17243C19mf17243c1Ev
};
//SIG(1 S17243C1) C1{ m Fi[4] Fp[3] Fi}


void  S17243C1 ::mf17243c1(){}

static void Test_S17243C1()
{
  {
    init_simple_test("S17243C1");
    S17243C1 lv;
    check2(sizeof(lv), ABISELECT(48,32), "sizeof(S17243C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17243C1)");
    check_field_offset(lv, s17243c1f0, 0, "S17243C1.s17243c1f0");
    check_field_offset(lv, s17243c1f1, 16, "S17243C1.s17243c1f1");
    check_field_offset(lv, s17243c1f2, ABISELECT(40,28), "S17243C1.s17243c1f2");
  }
}
static Arrange_To_Call_Me vS17243C1(Test_S17243C1, "S17243C1", ABISELECT(48,32));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S11717C1  {
  ::S16728C5 s11717c1f0;
  char s11717c1f1[8];
};
//SIG(1 S11717C1) C1{ FC2{ FL[16]} Fc[8]}



static void Test_S11717C1()
{
  {
    init_simple_test("S11717C1");
    S11717C1 lv;
    check2(sizeof(lv), 136, "sizeof(S11717C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S11717C1)");
    check_field_offset(lv, s11717c1f0, 0, "S11717C1.s11717c1f0");
    check_field_offset(lv, s11717c1f1, 128, "S11717C1.s11717c1f1");
  }
}
static Arrange_To_Call_Me vS11717C1(Test_S11717C1, "S11717C1", 136);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17137C1  {
  int s17137c1f0[2];
  void *s17137c1f1;
  int s17137c1f2;
  void *s17137c1f3;
  void  mf17137c1(); // _ZN8S17137C19mf17137c1Ev
};
//SIG(1 S17137C1) C1{ m Fi[2] Fp Fi Fp}


void  S17137C1 ::mf17137c1(){}

static void Test_S17137C1()
{
  {
    init_simple_test("S17137C1");
    S17137C1 lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S17137C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17137C1)");
    check_field_offset(lv, s17137c1f0, 0, "S17137C1.s17137c1f0");
    check_field_offset(lv, s17137c1f1, 8, "S17137C1.s17137c1f1");
    check_field_offset(lv, s17137c1f2, ABISELECT(16,12), "S17137C1.s17137c1f2");
    check_field_offset(lv, s17137c1f3, ABISELECT(24,16), "S17137C1.s17137c1f3");
  }
}
static Arrange_To_Call_Me vS17137C1(Test_S17137C1, "S17137C1", ABISELECT(32,20));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17396C1  {
  __tsi64 s17396c1f0[2];
  char s17396c1f1[257];
  void  mf17396c1(); // _ZN8S17396C19mf17396c1Ev
};
//SIG(1 S17396C1) C1{ m FL[2] Fc[257]}


void  S17396C1 ::mf17396c1(){}

static void Test_S17396C1()
{
  {
    init_simple_test("S17396C1");
    S17396C1 lv;
    check2(sizeof(lv), ABISELECT(280,276), "sizeof(S17396C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17396C1)");
    check_field_offset(lv, s17396c1f0, 0, "S17396C1.s17396c1f0");
    check_field_offset(lv, s17396c1f1, 16, "S17396C1.s17396c1f1");
  }
}
static Arrange_To_Call_Me vS17396C1(Test_S17396C1, "S17396C1", ABISELECT(280,276));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12967C1  {
  int s12967c1f0[16];
  char s12967c1f1[104];
};
//SIG(1 S12967C1) C1{ Fi[16] Fc[104]}



static void Test_S12967C1()
{
  {
    init_simple_test("S12967C1");
    S12967C1 lv;
    check2(sizeof(lv), 168, "sizeof(S12967C1)");
    check2(__alignof__(lv), 4, "__alignof__(S12967C1)");
    check_field_offset(lv, s12967c1f0, 0, "S12967C1.s12967c1f0");
    check_field_offset(lv, s12967c1f1, 64, "S12967C1.s12967c1f1");
  }
}
static Arrange_To_Call_Me vS12967C1(Test_S12967C1, "S12967C1", 168);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S13907C1  {
  __tsi64 s13907c1f0[2];
  char s13907c1f1[1024];
};
//SIG(1 S13907C1) C1{ FL[2] Fc[1024]}



static void Test_S13907C1()
{
  {
    init_simple_test("S13907C1");
    S13907C1 lv;
    check2(sizeof(lv), 1040, "sizeof(S13907C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S13907C1)");
    check_field_offset(lv, s13907c1f0, 0, "S13907C1.s13907c1f0");
    check_field_offset(lv, s13907c1f1, 16, "S13907C1.s13907c1f1");
  }
}
static Arrange_To_Call_Me vS13907C1(Test_S13907C1, "S13907C1", 1040);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14230C1  {
  void *s14230c1f0;
  int s14230c1f1;
  void *s14230c1f2;
  int s14230c1f3[2];
};
//SIG(1 S14230C1) C1{ Fp Fi Fp Fi[2]}



static void Test_S14230C1()
{
  {
    init_simple_test("S14230C1");
    S14230C1 lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S14230C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14230C1)");
    check_field_offset(lv, s14230c1f0, 0, "S14230C1.s14230c1f0");
    check_field_offset(lv, s14230c1f1, ABISELECT(8,4), "S14230C1.s14230c1f1");
    check_field_offset(lv, s14230c1f2, ABISELECT(16,8), "S14230C1.s14230c1f2");
    check_field_offset(lv, s14230c1f3, ABISELECT(24,12), "S14230C1.s14230c1f3");
  }
}
static Arrange_To_Call_Me vS14230C1(Test_S14230C1, "S14230C1", ABISELECT(32,20));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S21768C1  {
  void *s21768c1f0;
  __tsi64 s21768c1f1;
  char s21768c1f2;
  void  mf21768c1(); // _ZN8S21768C19mf21768c1Ev
  virtual  ~S21768C1(); // _ZN8S21768C1D1Ev
  S21768C1(); // tgen
};
//SIG(1 S21768C1) C1{ vd m Fp FL Fc}


void  S21768C1 ::mf21768c1(){}
 S21768C1 ::~S21768C1(){ note_dtor("S21768C1", this);}
S21768C1 ::S21768C1(){ note_ctor("S21768C1", this);} // tgen

static void Test_S21768C1()
{
  extern Class_Descriptor cd_S21768C1;
  void *lvp;
  {
    ABISELECT(double,int) buf[ABISELECT(5,6)];
    init_test(&cd_S21768C1, buf);
    S21768C1 *dp, &lv = *(dp=new (buf) S21768C1());
    lvp = (void*)&lv;
    check2(sizeof(lv), ABISELECT(32,20), "sizeof(S21768C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S21768C1)");
    check_field_offset(lv, s21768c1f0, ABISELECT(8,4), "S21768C1.s21768c1f0");
    check_field_offset(lv, s21768c1f1, ABISELECT(16,8), "S21768C1.s21768c1f1");
    check_field_offset(lv, s21768c1f2, ABISELECT(24,16), "S21768C1.s21768c1f2");
    test_class_info(&lv, &cd_S21768C1);
    dp->~S21768C1();
  }
  Check_Ctor_Dtor_Calls(lvp);
}
static Arrange_To_Call_Me vS21768C1(Test_S21768C1, "S21768C1", ABISELECT(32,20));

#else // __cplusplus

extern void _ZN8S21768C1C1Ev();
extern void _ZN8S21768C1D1Ev();
Name_Map name_map_S21768C1[] = {
  NSPAIR(_ZN8S21768C1C1Ev),
  NSPAIR(_ZN8S21768C1D1Ev),
  {0,0}
};
extern VTBL_ENTRY _ZTI8S21768C1[];
extern void _ZN8S21768C1D1Ev();
extern void _ZN8S21768C1D0Ev();
static  VTBL_ENTRY vtc_S21768C1[] = {
  0,
  (VTBL_ENTRY)&(_ZTI8S21768C1[0]),
  (VTBL_ENTRY)&_ZN8S21768C1D1Ev,
  (VTBL_ENTRY)&_ZN8S21768C1D0Ev,
};
extern VTBL_ENTRY _ZTI8S21768C1[];
extern  VTBL_ENTRY _ZTV8S21768C1[];
Class_Descriptor cd_S21768C1 = {  "S21768C1", // class name
  0,0,//no base classes
  &(vtc_S21768C1[0]), // expected_vtbl_contents
  0, //no vtt
  ABISELECT(32,20), // object size
  NSPAIRA(_ZTI8S21768C1),ABISELECT(16,8), //typeinfo_var
  NSPAIRA(_ZTV8S21768C1),4, //virtual function table var
  2, // offset into main vftv pointed to by object[0]
  {0,0},0, // virtual table table var
  0, // n_initialized_bases
  0, // has_virtual_bases
  0, // has_class_type_fields
  0, // alt-thunk-names
};
#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17244C1  {
  int s17244c1f0[4];
  void *s17244c1f1[4];
  void  mf17244c1(); // _ZN8S17244C19mf17244c1Ev
};
//SIG(1 S17244C1) C1{ m Fi[4] Fp[4]}


void  S17244C1 ::mf17244c1(){}

static void Test_S17244C1()
{
  {
    init_simple_test("S17244C1");
    S17244C1 lv;
    check2(sizeof(lv), ABISELECT(48,32), "sizeof(S17244C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17244C1)");
    check_field_offset(lv, s17244c1f0, 0, "S17244C1.s17244c1f0");
    check_field_offset(lv, s17244c1f1, 16, "S17244C1.s17244c1f1");
  }
}
static Arrange_To_Call_Me vS17244C1(Test_S17244C1, "S17244C1", ABISELECT(48,32));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S10997C1  {
  char s10997c1f0[65];
  int s10997c1f1[2];
};
//SIG(1 S10997C1) C1{ Fc[65] Fi[2]}



static void Test_S10997C1()
{
  {
    init_simple_test("S10997C1");
    S10997C1 lv;
    check2(sizeof(lv), 76, "sizeof(S10997C1)");
    check2(__alignof__(lv), 4, "__alignof__(S10997C1)");
    check_field_offset(lv, s10997c1f0, 0, "S10997C1.s10997c1f0");
    check_field_offset(lv, s10997c1f1, 68, "S10997C1.s10997c1f1");
  }
}
static Arrange_To_Call_Me vS10997C1(Test_S10997C1, "S10997C1", 76);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12271C1  {
  int s12271c1f0;
  char s12271c1f1[32];
  int s12271c1f2;
};
//SIG(1 S12271C1) C1{ Fi Fc[32] Fi}



static void Test_S12271C1()
{
  {
    init_simple_test("S12271C1");
    S12271C1 lv;
    check2(sizeof(lv), 40, "sizeof(S12271C1)");
    check2(__alignof__(lv), 4, "__alignof__(S12271C1)");
    check_field_offset(lv, s12271c1f0, 0, "S12271C1.s12271c1f0");
    check_field_offset(lv, s12271c1f1, 4, "S12271C1.s12271c1f1");
    check_field_offset(lv, s12271c1f2, 36, "S12271C1.s12271c1f2");
  }
}
static Arrange_To_Call_Me vS12271C1(Test_S12271C1, "S12271C1", 40);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14632C1  {
  void *s14632c1f0[3];
  int s14632c1f1[4];
};
//SIG(1 S14632C1) C1{ Fp[3] Fi[4]}



static void Test_S14632C1()
{
  {
    init_simple_test("S14632C1");
    S14632C1 lv;
    check2(sizeof(lv), ABISELECT(40,28), "sizeof(S14632C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14632C1)");
    check_field_offset(lv, s14632c1f0, 0, "S14632C1.s14632c1f0");
    check_field_offset(lv, s14632c1f1, ABISELECT(24,12), "S14632C1.s14632c1f1");
  }
}
static Arrange_To_Call_Me vS14632C1(Test_S14632C1, "S14632C1", ABISELECT(40,28));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14943C1  {
  short s14943c1f0[4];
  void *s14943c1f1;
  int s14943c1f2;
};
//SIG(1 S14943C1) C1{ Fs[4] Fp Fi}



static void Test_S14943C1()
{
  {
    init_simple_test("S14943C1");
    S14943C1 lv;
    check2(sizeof(lv), ABISELECT(24,16), "sizeof(S14943C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14943C1)");
    check_field_offset(lv, s14943c1f0, 0, "S14943C1.s14943c1f0");
    check_field_offset(lv, s14943c1f1, 8, "S14943C1.s14943c1f1");
    check_field_offset(lv, s14943c1f2, ABISELECT(16,12), "S14943C1.s14943c1f2");
  }
}
static Arrange_To_Call_Me vS14943C1(Test_S14943C1, "S14943C1", ABISELECT(24,16));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S11719C1  {
  ::S16728C5 s11719c1f0;
};
//SIG(1 S11719C1) C1{ FC2{ FL[16]}}



static void Test_S11719C1()
{
  {
    init_simple_test("S11719C1");
    S11719C1 lv;
    check2(sizeof(lv), 128, "sizeof(S11719C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S11719C1)");
    check_field_offset(lv, s11719c1f0, 0, "S11719C1.s11719c1f0");
  }
}
static Arrange_To_Call_Me vS11719C1(Test_S11719C1, "S11719C1", 128);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S17357C1  {
  __tsi64 s17357c1f0;
  int s17357c1f1;
  void *s17357c1f2;
  void  mf17357c1(); // _ZN8S17357C19mf17357c1Ev
};
//SIG(1 S17357C1) C1{ m FL Fi Fp}


void  S17357C1 ::mf17357c1(){}

static void Test_S17357C1()
{
  {
    init_simple_test("S17357C1");
    S17357C1 lv;
    check2(sizeof(lv), ABISELECT(24,16), "sizeof(S17357C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S17357C1)");
    check_field_offset(lv, s17357c1f0, 0, "S17357C1.s17357c1f0");
    check_field_offset(lv, s17357c1f1, 8, "S17357C1.s17357c1f1");
    check_field_offset(lv, s17357c1f2, ABISELECT(16,12), "S17357C1.s17357c1f2");
  }
}
static Arrange_To_Call_Me vS17357C1(Test_S17357C1, "S17357C1", ABISELECT(24,16));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14849C1  {
  short s14849c1f0[12342];
};
//SIG(1 S14849C1) C1{ Fs[12342]}



static void Test_S14849C1()
{
  {
    init_simple_test("S14849C1");
    S14849C1 lv;
    check2(sizeof(lv), 24684, "sizeof(S14849C1)");
    check2(__alignof__(lv), 2, "__alignof__(S14849C1)");
    check_field_offset(lv, s14849c1f0, 0, "S14849C1.s14849c1f0");
  }
}
static Arrange_To_Call_Me vS14849C1(Test_S14849C1, "S14849C1", 24684);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S12910C1  {
  int s12910c1f0:13;
  int s12910c1f1;
};
//SIG(1 S12910C1) C1{ Fi:13 Fi}



static void Test_S12910C1()
{
  {
    init_simple_test("S12910C1");
    static S12910C1 lv;
    check2(sizeof(lv), 8, "sizeof(S12910C1)");
    check2(__alignof__(lv), 4, "__alignof__(S12910C1)");
    set_bf_and_test(lv, s12910c1f0, 0, 0, 13, 1, "S12910C1");
    set_bf_and_test(lv, s12910c1f0, 0, 0, 13, hide_sll(1LL<<12), "S12910C1");
    check_field_offset(lv, s12910c1f1, 4, "S12910C1.s12910c1f1");
  }
}
static Arrange_To_Call_Me vS12910C1(Test_S12910C1, "S12910C1", 8);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S18425C1  {
  short s18425c1f0;
  int s18425c1f1;
  void  mf18425c1(); // _ZN8S18425C19mf18425c1Ev
};
//SIG(1 S18425C1) C1{ m Fs Fi}


void  S18425C1 ::mf18425c1(){}

static void Test_S18425C1()
{
  {
    init_simple_test("S18425C1");
    S18425C1 lv;
    check2(sizeof(lv), 8, "sizeof(S18425C1)");
    check2(__alignof__(lv), 4, "__alignof__(S18425C1)");
    check_field_offset(lv, s18425c1f0, 0, "S18425C1.s18425c1f0");
    check_field_offset(lv, s18425c1f1, 4, "S18425C1.s18425c1f1");
  }
}
static Arrange_To_Call_Me vS18425C1(Test_S18425C1, "S18425C1", 8);

#else // __cplusplus

#endif // __cplusplus

//============================================================================

#ifdef __cplusplus

struct  S14656C1  {
  void *s14656c1f0[35];
};
//SIG(1 S14656C1) C1{ Fp[35]}



static void Test_S14656C1()
{
  {
    init_simple_test("S14656C1");
    S14656C1 lv;
    check2(sizeof(lv), ABISELECT(280,140), "sizeof(S14656C1)");
    check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(S14656C1)");
    check_field_offset(lv, s14656c1f0, 0, "S14656C1.s14656c1f0");
  }
}
static Arrange_To_Call_Me vS14656C1(Test_S14656C1, "S14656C1", ABISELECT(280,140));

#else // __cplusplus

#endif // __cplusplus

//============================================================================

