/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "compile_to_c.h"


void r274mapping_cast(T274* C){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_15696)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms54_15696)),'\50');
r274c_type_for_target_in(C,((T0*)ms54_15696));
r7extend((T7*)(((T0*)ms54_15696)),'\51');
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_15696));
/*]*/
}


T6 r274need_c_struct(T274* C){
T6 R=0;
/*[IF*/
if(r274is_dummy_expanded(C)){
}
 else if(r274is_expanded(C)){
R=1;
}
 else if(r24is_tagged((T24*)(r274run_class(C)))){
R=1;
}
else{
R=(r24writable_attributes((T24*)(r274run_class(C))))!=((void*)(NULL));
}
/*FI]*/
return R;
}


void r274standard_gc_define2_for_expanded(T274* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r274run_class(C);
/*[IF*/
if(r24gc_mark_to_follow(((T24*)_rc))){
_rcid=(((T24*)_rc))->_id/*4*/;
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r274gc_mark_in(C,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_254aa));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_600a));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_3077376)))))->_count)=(0);
/*]*/
r24gc_mark_fixed_size(((T24*)_rc),1,((T0*)ms54_3077376));
r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
}
/*FI]*/
}
/*No:TYPE_GENERIC.fz_is_invalid*/


void r274standard_gc_info_in(T274* C,T0* a1){
r7append(((T7*)a1),((T0*)ms13_7104));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),r274run_time_mark(C));
r7append(((T7*)a1),((T0*)ms13_6030));
r274gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms13_348));
r7append(((T7*)a1),((T0*)ms13_7104));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r274gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms13_6030));
r274gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms13_348));
}
/*No:TYPE_GENERIC.header*/


T0* r274twin(T274* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T274*)R)=*C;
return R;
}


T2 r274standard_space_for_object(T274* C){
T2 R=0;
T2 _i=0;
T0* _a=NULL;
T0* _wa=NULL;
T0* _rc=NULL;
_rc=r274run_class(C);
/*[IF*/
if(r24is_tagged(((T24*)_rc))){
R=r274space_for_integer();
}
/*FI]*/
_wa=r24writable_attributes(((T24*)_rc));
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(((T361*)_wa))->_upper/*12*/;
while (!((_i)==(0))) {
_a=r361item(((T361*)_wa),_i);
R=(R)+(X54space_for_variable((((T356*)_a))->_result_type/*28*/));
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if((R)==(0)){
R=r274space_for_integer();
}
/*FI]*/
return R;
}


T6 r274is_written_runnable(T274* C){
T6 R=0;
T0* _t=NULL;
T2 _i=0;
/*[IF*/
if(((C)->_run_type_memory/*16*/)==((void*)(C))){
R=1;
}
 else if(((C)->_run_type_memory/*16*/)==((void*)(NULL))){
R=1;
_i=((T261*)((C)->_generic_list/*8*/))->_upper/*8*/;
while (!((!(R))||((_i)==(0)))) {
_t=r261item((T261*)((C)->_generic_list/*8*/),_i);
/*[IF*/
if(X54is_run_type(_t)){
/*[IF*/
if((X54run_type(_t))==((void*)(_t))){
}
else{
R=0;
}
/*FI]*/
}
else{
R=0;
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if(R){
C->_run_type_memory=(T0*)C;
r274basic_checks(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_GENERIC.is_basic_eiffel_expanded*/


void r274gc_store_chunk_in(T274* C,T0* a1){
r7append(((T7*)a1),((T0*)ms54_19239));
r2append_in(r274id(C),a1);
}


T6 r274need_gc_mark_function(T274* C){
T6 R=0;
/*[IF*/
if(r274is_reference(C)){
R=1;
}
else{
R=r24gc_mark_to_follow((T24*)(r274run_class(C)));
}
/*FI]*/
return R;
}
/*No:TYPE_GENERIC.is_string*/


void r274gc_align_mark_in(T274* C,T0* a1){
r7append(((T7*)a1),((T0*)ms54_24804));
r2append_in(r274id(C),a1);
}
/*No:TYPE_GENERIC.is_anchored*/


T6 r274is_reference(T274* C){
T6 R=0;
R=!(((T63*)(r274base_class(C)))->_is_expanded/*20*/);
return R;
}
/*No:TYPE_GENERIC.is_none*/


void r274just_before_gc_mark_in(T274* C,T0* a1){
/*[IF*/
if(r274is_reference(C)){
r274standard_just_before_gc_mark_in(C,a1);
}
/*FI]*/
}
/*No:TYPE_GENERIC.mapping_cast_memory*/
/*No:TYPE_GENERIC.fz_gc*/
/*No:TYPE_GENERIC.fz_void*/
/*No:TYPE_GENERIC.start_position*/


void r274standard_c_print_function(T274* C){
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
r24c_print_function((T24*)(r274run_class(C)));
}
/*FI]*/
}
/*No:TYPE_GENERIC.run_type_memory*/


T2 r274id(T274* C){
T2 R=0;
R=((T24*)(r274run_class(C)))->_id/*4*/;
return R;
}


void r274c_initialize_in(T274* C,T0* a1){
/*[IF*/
if(r274is_expanded(C)){
/*[IF*/
if(r274need_c_struct(C)){
r24c_object_model_in((T24*)(r274run_class(C)),a1);
}
else{
r7extend(((T7*)a1),'0');
}
/*FI]*/
}
else{
r7append(((T7*)a1),((T0*)ms13_1300));
}
/*FI]*/
}


void r274to_reference(T274* C){
/*[IF*/
if(r274is_expanded(C)){
r25to_reference((T25*)(oBC12cpp),(T0*)C,r24to_reference((T24*)(r274run_class(C))));
}
/*FI]*/
}


T0* r274run_class(T274* C){
T0* R=NULL;
/*[IF*/
if(r274is_run_type(C)){
R=r22run_class((C)->_run_type_memory/*16*/);
}
/*FI]*/
return R;
}


void r274c_header_pass4(T274* C){
/*[IF*/
if(r274is_reference(C)){
/*[IF*/
if(r274need_c_struct(C)){
r274standard_c_struct(C);
r274standard_c_object_model(C);
}
/*FI]*/
}
/*FI]*/
r274standard_c_print_function(C);
}
/*No:TYPE_GENERIC.is_like_current*/
/*No:TYPE_GENERIC.is_bit*/
/*No:TYPE_GENERIC.fatal_error*/
/*No:TYPE_GENERIC.fz_eq_h*/
/*No:TYPE_GENERIC.set_run_type_memory*/


T6 r274is_expanded(T274* C){
T6 R=0;
R=((T63*)(r274base_class(C)))->_is_expanded/*20*/;
return R;
}
/*No:TYPE_GENERIC.fz_dot*/
/*No:TYPE_GENERIC.is_character*/
T0*oBC274tmp_mark=NULL;


void r274standard_gc_define1(T274* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r274run_class(C);
_rcid=(((T24*)_rc))->_id/*4*/;
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_6568));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024a)),'B');
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_144));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024a)),'B');
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_420));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_78962));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_12312));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024a));
/*]*/
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\52');
r274gc_store_in(C,((T0*)ms54_785024a));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1011));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r274gc_store_left_in(C,((T0*)ms54_785024a));
r25put_extern2((T25*)(oBC12cpp),((T0*)ms54_785024a),'0');
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms54_2420));
r274gc_store_chunk_in(C,((T0*)ms54_785024a));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\52');
r274gc_free_in(C,((T0*)ms54_785024a));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
/*[IF*/
if(((T330*)(oBC12gc_handler))->_info_flag/*4*/){
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1011));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r274gc_info_nb_in(C,((T0*)ms54_785024a));
r25put_extern2((T25*)(oBC12cpp),((T0*)ms54_785024a),'0');
}
/*FI]*/
}
/*No:TYPE_GENERIC.fz_typedef*/
/*No:TYPE_GENERIC.is_array*/
/*No:TYPE_GENERIC.fz_int*/
/*No:TYPE_GENERIC.fz_bga*/
/*No:TYPE_GENERIC.tmp_string*/


T6 r274is_dummy_expanded(T274* C){
T6 R=0;
/*[IF*/
if(r274is_user_expanded(C)){
R=(r24writable_attributes((T24*)(r274run_class(C))))==((void*)(NULL));
}
/*FI]*/
return R;
}
/*No:TYPE_GENERIC.to_expanded*/


T0* r274base_class(T274* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r64base_class(((T64*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}


void r274cast_to_ref(T274* C){
r274cast_to_ref((T274*)(r274run_type(C)));
}
/*No:TYPE_GENERIC.base_class_name*/


T6 r274is_a_in(T274* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((C)->_written_mark/*12*/)==((void*)(X54written_mark(a1)))){
R=1;
}
else{
_ct=(((T24*)a2))->_current_type/*0*/;
_t1=r274to_runnable(C,_ct);
_t2=X54to_runnable(a1,_ct);
/*[IF*/
if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
R=1;
}
else{
R=X54is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r274look_up_for(T274* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r274base_class(C)),a1,a2);
return R;
}
/*No:TYPE_GENERIC.fz_00*/
/*No:TYPE_GENERIC.fz_10*/
/*No:TYPE_GENERIC.c_header_pass1*/


void r274c_type_for_target_in(T274* C,T0* a1){
/*[IF*/
if(r274is_dummy_expanded(C)){
r7append(((T7*)a1),((T0*)ms13_1011));
}
else{
r7extend(((T7*)a1),'T');
r2append_in(r274id(C),a1);
r7extend(((T7*)a1),'\52');
}
/*FI]*/
}


void r274c_type_for_result_in(T274* C,T0* a1){
/*[IF*/
if(r274is_reference(C)){
r7append(((T7*)a1),((T0*)ms13_540));
}
 else if(r274is_dummy_expanded(C)){
r7append(((T7*)a1),((T0*)ms13_1011));
}
else{
r7extend(((T7*)a1),'T');
r2append_in(r274id(C),a1);
}
/*FI]*/
}


void r274basic_checks(T274* C){
T0* _fgl=NULL;
T0* _bc=NULL;
_bc=r274base_class(C);
_fgl=(((T63*)_bc))->_formal_generic_list/*28*/;
/*[IF*/
if((_fgl)==((void*)(NULL))){
r21add_position(/*(IRF4.6start_position*/(((T64*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/);
/*[IRF3.6append*/{T0* b1=((T64*)((((T63*)_bc))->_name/*24*/))->_to_string/*0*/;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms274_36312);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
 else if((/*(IRF4.6count*/(((T279*)((((T94*)_fgl))->_list/*4*/)))->_upper/*8*//*)*/)!=(r261count((T261*)((C)->_generic_list/*8*/)))){
r21add_position(/*(IRF4.6start_position*/(((T64*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/);
r21add_position((((T94*)_fgl))->_start_position/*0*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_60544);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}


T0* r274expanded_initializer(T274* C){
T0* R=NULL;
/*[IF*/
if(r274is_expanded(C)){
R=r63expanded_initializer((T63*)(r274base_class(C)),(T0*)C);
}
/*FI]*/
return R;
}


T6 r274has_creation(T274* C,T0* a1){
T6 R=0;
R=r63has_creation((T63*)(r274base_class(C)),a1);
return R;
}


T2 r274space_for_integer(void){
T2 R=0;
R=sizeof(T2);
return R;
}


T2 r274space_for_pointer(void){
T2 R=0;
T8 _p=0;
R=sizeof(T8);
return R;
}
/*No:TYPE_GENERIC.fz_14*/
/*No:TYPE_GENERIC.fz_new*/
/*No:TYPE_GENERIC.is_generic*/
/*No:TYPE_GENERIC.fz_struct*/
/*No:TYPE_GENERIC.is_real*/
/*No:TYPE_GENERIC.is_any*/


void r274c_initialize_expanded(T274* C){
T0* _rf=NULL;
T2 _i=0;
T0* _wa=NULL;
/*[IF*/
if(r274is_dummy_expanded(C)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='0';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\173';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
_wa=r24writable_attributes((T24*)(r274run_class(C)));
_i=(((T361*)_wa))->_upper/*12*/;
while (!((_i)==(0))) {
_rf=r361item(((T361*)_wa),_i);
X54c_initialize((((T356*)_rf))->_result_type/*28*/);
_i=(_i)-(1);
/*[IF*/
if((_i)>(0)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\175';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}


void r274standard_c_struct(T274* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=r274id(C);
_wa=r24writable_attributes((T24*)(r274run_class(C)));
r7copy((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024)),'S');
r2append_in(_mem_id,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\173');
/*[IF*/
if(r274is_reference(C)){
/*[IF*/
if(r24is_tagged((T24*)(r274run_class(C)))){
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_6272));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(((T361*)_wa))->_upper/*12*/;
while (!((_i)==(0))) {
_a=r361item(((T361*)_wa),_i);
_t=X54run_type((((T356*)_a))->_result_type/*28*/);
X54c_type_for_result_in(_t,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7extend((T7*)(((T0*)ms54_785024)),'\137');
r7append((T7*)(((T0*)ms54_785024)),X83to_string((((T356*)_a))->_name/*16*/));
r7extend((T7*)(((T0*)ms54_785024)),'\73');
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(((T0*)ms54_785024)),'\175');
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
/*]*/
/*[IF*/
if(r274is_expanded(C)){
r7copy((T7*)(((T0*)ms54_785024)),((T0*)ms13_1011));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_7854));
r2append_in(_mem_id,((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_254));
r2append_in(_mem_id,((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_1675));
r2append_in(_mem_id,((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_976));
r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024),((T0*)ms54_87822));
}
/*FI]*/
}
/*No:TYPE_GENERIC.fz_gc_mark*/


T0* r274type_any(void){
if(fBC12type_any==0){
fBC12type_any=1;
{T259*n=malloc(sizeof(*n));
*n=M259;
r259make(n,NULL);
oBC12type_any=(T0*)n;
}
}
return oBC12type_any;}


T6 r274is_native_array(T274* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 263: 
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_GENERIC.is_integer*/


T6 r274is_run_type(T274* C){
T6 R=0;
/*[IF*/
if(((C)->_run_type_memory/*16*/)!=((void*)(NULL))){
R=1;
}
 else if(r274is_written_runnable(C)){
R=1;
}
/*FI]*/
return R;
}


void r274standard_c_object_model(T274* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=r274run_class(C);
_mem_id=(((T24*)_rc))->_id/*4*/;
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms54_785024)),'T');
r2append_in(_mem_id,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7extend((T7*)(((T0*)ms54_785024)),'M');
r2append_in(_mem_id,((T0*)ms54_785024));
r25put_extern7((T25*)(oBC12cpp),((T0*)ms54_785024));
/*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
/*]*/
r24c_object_model_in(((T24*)_rc),((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
/*]*/
r25swap_on_h((T25*)(oBC12cpp));
}


void r274standard_just_before_gc_mark_in(T274* C,T0* a1){
r274gc_free_in(C,a1);
r7extend(((T7*)a1),'\75');
r7append(((T7*)a1),((T0*)ms13_1300));
r7append(((T7*)a1),((T0*)ms13_144));
}
/*No:TYPE_GENERIC.fz_inako*/
/*No:TYPE_GENERIC.fz_c_void_args*/


void r274gc_store_left_in(T274* C,T0* a1){
r7append(((T7*)a1),((T0*)ms54_17320));
r2append_in(r274id(C),a1);
}
/*No:TYPE_GENERIC.is_like_argument*/
/*No:TYPE_GENERIC.is_double*/


void r274standard_c_typedef(T274* C){
T2 _mem_id=0;
_mem_id=r274id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
/*]*/
/*[IF*/
if(r274need_c_struct(C)){
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024)),'S');
r2append_in(_mem_id,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7extend((T7*)(((T0*)ms54_785024)),'T');
r2append_in(_mem_id,((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
}
 else if(r274is_dummy_expanded(C)){
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_1011));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7extend((T7*)(((T0*)ms54_785024)),'T');
r2append_in(_mem_id,((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
}
 else if(r274is_reference(C)){
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_1776a));
r7extend((T7*)(((T0*)ms54_785024)),'\52');
r7extend((T7*)(((T0*)ms54_785024)),'T');
r2append_in(_mem_id,((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
/*]*/
}
/*No:TYPE_STRING.fz_null*/
/*No:TYPE_STRING.fz_void*/
/*No:TYPE_STRING.start_position*/
/*No:TYPE_STRING.used_as_reference*/
/*No:TYPE_STRING.id*/
/*No:TYPE_STRING.is_user_expanded*/
/*No:TYPE_STRING.is_pointer*/
/*No:TYPE_STRING.to_runnable*/
/*No:TYPE_STRING.c_initialize_in*/
/*No:TYPE_STRING.gc_define1*/
/*No:TYPE_STRING.to_reference*/


void r272gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms13_8869));
r2append_in(7,a1);
}


T0* r272run_class(T272* C){
T0* R=NULL;
R=r22run_class((T0*)C);
return R;
}
/*No:TYPE_STRING.c_header_pass2*/
/*No:TYPE_STRING.us_string*/


void r272c_header_pass4(T272* C){
r272standard_c_struct(C);
r272standard_c_object_model(C);
}
/*No:TYPE_STRING.is_like_current*/
/*No:TYPE_STRING.is_bit*/


void r272gc_store_in(T0* a1){
r7append(((T7*)a1),((T0*)ms54_2860));
r2append_in(7,a1);
}
/*No:TYPE_STRING.us_storage*/
int fBC272set_at_run_time=0;


void r272set_at_run_time(void){
if (fBC272set_at_run_time==0){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _bc=NULL;
fBC272set_at_run_time=1;
_bc=r272base_class((T272*)(r272type_string()));
_rc=r272run_class((T272*)(r272type_string()));
r24set_at_run_time(((T24*)_rc));
_rf=r24get_feature_with(((T24*)_rc),((T0*)ms14_11896));
_rf=r24get_feature_with(((T24*)_rc),((T0*)ms14_2840a));
_rf=r24get_feature_with(((T24*)_rc),((T0*)ms14_8925));
r24set_at_run_time((T24*)(X54run_class(X51result_type(_rf))));
}}


T0* r272smallest_ancestor(T272* C,T0* a1){
T0* R=NULL;
T0* _rto_bc=NULL;
T0* _rto=NULL;
_rto=X54run_type(a1);
/*[IF*/
if(X54is_string(_rto)){
R=(T0*)C;
}
 else if(X54is_none(_rto)){
R=(T0*)C;
}
 else if(X54is_expanded(_rto)){
R=X54smallest_ancestor(_rto,(T0*)C);
}
else{
_rto_bc=X54base_class(_rto);
/*[IF*/
if(r63is_subclass_of(((T63*)_rto_bc),r272base_class(C))){
R=(T0*)C;
}
else{
R=X54smallest_ancestor(_rto,(T0*)C);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r272gc_info_nb_in(T0* a1){
r7append(((T7*)a1),((T0*)ms54_15070));
r2append_in(7,a1);
}
/*No:TYPE_STRING.fz_eq_h*/


T0* r272run_time_mark(void){
T0* R=NULL;
R=((T0*)ms14_5046);
return R;
}
/*No:TYPE_STRING.is_expanded*/


void r272standard_gc_define2(T272* C){
T6 _gc_check_id=0;
T2 _rcid=0;
T0* _rc=NULL;
_rc=r272run_class(C);
_rcid=(((T24*)_rc))->_id/*4*/;
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_11536));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_6480));
r7copy((T7*)(((T0*)ms54_3077376)),((T0*)ms54_410));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_667749));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_629541));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_7450784));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_14432));
r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r272gc_mark_in(((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_254a));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_600));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_3077376)))))->_count)=(0);
/*]*/
_gc_check_id=(r24is_tagged(((T24*)_rc)))&&(r43no_check((T43*)(oBC12run_control)));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_21692));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_972));
}
/*FI]*/
r24gc_mark_fixed_size(((T24*)_rc),0,((T0*)ms54_3077376));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_276));
}
/*FI]*/
r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r272gc_align_mark_in(((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_14720));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_603));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_3077376)))))->_count)=(0);
/*]*/
r24gc_align_mark_fixed_size(((T24*)_rc),((T0*)ms54_3077376));
r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms54_5436));
r2append_in(_rcid,((T0*)ms54_785024a));
r7copy((T7*)(((T0*)ms54_3077376)),((T0*)ms54_455742));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_78450));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_345762));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1580));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024a)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms54_785024a)),'T');
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\52');
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1008));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_4410));
r7copy((T7*)(((T0*)ms54_3077376)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_924));
/*[IF*/
if(((T330*)(oBC12gc_handler))->_info_flag/*4*/){
r272gc_info_nb_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_660));
}
/*FI]*/
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_759));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1500));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_3900));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_13425));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11209));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_39879));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_2460));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_752));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_104196));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11970));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11264));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_55955));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_9790aa));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11214aa));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_34360aa));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_32340));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1433339));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_52000));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1305));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_9790a));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11214a));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_34360a));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_76164));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1800));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_free_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_16175));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_15246));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_9790));
r272gc_store_chunk_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11214));
r272gc_store_left_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_34360));
r272gc_store_in(((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_25650));
/*[IF*/
{/*AT*/r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_14168));
r2append_in(_rcid,((T0*)ms54_3077376));
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
}
/*FI]*/
r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_12699));
r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
}
/*No:TYPE_STRING.gc_info_in*/
/*No:TYPE_STRING.gc_define2*/
/*No:TYPE_STRING.is_like_feature*/
/*No:TYPE_STRING.fz_dot*/


T6 r272is_a(T272* C,T0* a1){
T6 R=0;
/*[IF*/
if(X54is_string(a1)){
R=1;
}
else{
R=r63is_subclass_of((T63*)(r272base_class(C)),X54base_class(a1));
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_type((T0*)C,((T0*)ms13_17730));
r21add_type(a1,((T0*)ms13_47));
}
/*FI]*/
return R;
}


void r272gc_free_in(T0* a1){
r7append(((T7*)a1),((T0*)ms54_8645));
r2append_in(7,a1);
}
/*No:TYPE_STRING.c_initialize*/
/*No:TYPE_STRING.is_character*/


T0* r272written_mark(void){
T0* R=NULL;
R=((T0*)ms14_5046);
return R;
}


void r272make(T272* C,T0* a1){
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,((T0*)ms14_5046),a1);
C->_base_class_name=(T0*)n;
}
}


void r272demangling_in(T0* a1){
/*[IF*/
{/*AT*/r7extend(((T7*)a1),'R');
}
/*FI]*/
r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r272run_time_mark());
}


void r272standard_gc_define1(T272* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r272run_class(C);
_rcid=(((T24*)_rc))->_id/*4*/;
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_6568));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024a)),'B');
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_144));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024a)),'B');
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_420));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_78962));
r2append_in(_rcid,((T0*)ms54_785024a));
r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_12312));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024a));
/*]*/
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\52');
r272gc_store_in(((T0*)ms54_785024a));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1011));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r272gc_store_left_in(((T0*)ms54_785024a));
r25put_extern2((T25*)(oBC12cpp),((T0*)ms54_785024a),'0');
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms54_2420));
r272gc_store_chunk_in(((T0*)ms54_785024a));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
r2append_in(_rcid,((T0*)ms54_785024a));
r7extend((T7*)(((T0*)ms54_785024a)),'\52');
r272gc_free_in(((T0*)ms54_785024a));
r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
/*[IF*/
if(((T330*)(oBC12gc_handler))->_info_flag/*4*/){
r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1011));
r7extend((T7*)(((T0*)ms54_785024a)),'\40');
r272gc_info_nb_in(((T0*)ms54_785024a));
r25put_extern2((T25*)(oBC12cpp),((T0*)ms54_785024a),'0');
}
/*FI]*/
}
/*No:TYPE_STRING.fz_typedef*/


void r272fatal_error_generic_list(T272* C){
r21add_type((T0*)C,((T0*)ms54_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:TYPE_STRING.is_array*/
/*No:TYPE_STRING.fz_int*/
/*No:TYPE_STRING.tmp_string*/
/*No:TYPE_STRING.is_dummy_expanded*/
/*No:TYPE_STRING.space_for_variable*/
/*No:TYPE_STRING.to_expanded*/


T0* r272type_string(void){
if(fBC12type_string==0){
fBC12type_string=1;
{T272*n=malloc(sizeof(*n));
*n=M272;
r272make(n,NULL);
oBC12type_string=(T0*)n;
}
}
return oBC12type_string;}


T0* r272generic_list(T272* C){
T0* R=NULL;
r272fatal_error_generic_list(C);
return R;
}


T0* r272base_class(T272* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r64base_class(((T64*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}


void r272cast_to_ref(T272* C){
X54cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
}
/*No:TYPE_STRING.base_class_name*/
/*No:TYPE_STRING.fz_se_cmpt*/
/*No:TYPE_STRING.us_capacity*/
/*No:TYPE_STRING.is_formal_generic*/


T6 r272is_a_in(T272* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r272written_mark())==((void*)(X54written_mark(a1)))){
R=1;
}
else{
_ct=(((T24*)a2))->_current_type/*0*/;
_t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
_t2=X54to_runnable(a1,_ct);
/*[IF*/
if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
R=1;
}
else{
R=X54is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_STRING.body*/


T0* r272look_up_for(T272* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r272base_class(C)),a1,a2);
return R;
}
/*No:TYPE_STRING.fz_00*/
/*No:TYPE_STRING.fz_10*/


void r272c_type_for_external_in(T0* a1){
/*[IF*/
{/*AT*/r7append(((T7*)a1),((T0*)ms13_1776a));
r7extend(((T7*)a1),'\52');
}
/*FI]*/
}
/*No:TYPE_STRING.c_type_for_argument_in*/
/*No:TYPE_STRING.c_header_pass1*/
/*No:TYPE_STRING.fz_printf*/
/*No:TYPE_STRING.c_type_for_target_in*/
/*No:TYPE_STRING.c_type_for_result_in*/
/*No:TYPE_STRING.run_type*/
/*No:TYPE_STRING.fz_gc_sweep*/
/*No:TYPE_STRING.expanded_initializer*/
/*No:TYPE_STRING.c_frame_descriptor*/


T6 r272has_creation(T272* C,T0* a1){
T6 R=0;
R=r63has_creation((T63*)(r272base_class(C)),a1);
return R;
}
/*No:TYPE_STRING.fz_t0_star*/


T2 r272space_for_pointer(void){
T2 R=0;
T8 _p=0;
R=sizeof(T8);
return R;
}
/*No:TYPE_STRING.c_header_pass3*/
/*No:TYPE_STRING.fz_14*/


void r272gc_call_new_in(T0* a1){
r7append(((T7*)a1),((T0*)ms13_1008));
r2append_in(7,a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_STRING.fz_new*/
/*No:TYPE_STRING.is_boolean*/
/*No:TYPE_STRING.mapping_cast*/
/*No:TYPE_STRING.is_generic*/
/*No:TYPE_STRING.fz_struct*/
/*No:TYPE_STRING.is_real*/
/*No:TYPE_STRING.need_c_struct*/
/*No:TYPE_STRING.is_any*/


void r272standard_gc_info_in(T0* a1){
r7append(((T7*)a1),((T0*)ms13_7104));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),r272run_time_mark());
r7append(((T7*)a1),((T0*)ms13_6030));
r272gc_info_nb_in(a1);
r7append(((T7*)a1),((T0*)ms13_348));
r7append(((T7*)a1),((T0*)ms13_7104));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r272gc_store_left_in(a1);
r7append(((T7*)a1),((T0*)ms13_6030));
r272gc_store_left_in(a1);
r7append(((T7*)a1),((T0*)ms13_348));
}
/*No:TYPE_STRING.header*/


void r272standard_c_struct(T272* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=7;
_wa=r24writable_attributes((T24*)(r272run_class(C)));
r7copy((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
r7extend((T7*)(((T0*)ms54_785024)),'S');
r2append_in(_mem_id,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\173');
/*[IF*/
{/*AT*//*[IF*/
if(r24is_tagged((T24*)(r272run_class(C)))){
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_6272));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(((T361*)_wa))->_upper/*12*/;
while (!((_i)==(0))) {
_a=r361item(((T361*)_wa),_i);
_t=X54run_type((((T356*)_a))->_result_type/*28*/);
X54c_type_for_result_in(_t,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7extend((T7*)(((T0*)ms54_785024)),'\137');
r7append((T7*)(((T0*)ms54_785024)),X83to_string((((T356*)_a))->_name/*16*/));
r7extend((T7*)(((T0*)ms54_785024)),'\73');
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(((T0*)ms54_785024)),'\175');
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:TYPE_STRING.is_basic_eiffel_expanded*/
/*No:TYPE_STRING.fz_gc_mark*/


void r272gc_store_chunk_in(T0* a1){
r7append(((T7*)a1),((T0*)ms54_19239));
r2append_in(7,a1);
}
/*No:TYPE_STRING.us_count*/
/*No:TYPE_STRING.need_gc_mark_function*/


T6 r272is_native_array(T272* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 263: 
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_STRING.is_string*/


void r272gc_align_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms54_24804));
r2append_in(7,a1);
}
/*No:TYPE_STRING.is_integer*/
/*No:TYPE_STRING.is_anchored*/
/*No:TYPE_STRING.is_run_type*/


void r272standard_c_object_model(T272* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=r272run_class(C);
_mem_id=(((T24*)_rc))->_id/*4*/;
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms54_785024)),'T');
r2append_in(_mem_id,((T0*)ms54_785024));
r7extend((T7*)(((T0*)ms54_785024)),'\40');
r7extend((T7*)(((T0*)ms54_785024)),'M');
r2append_in(_mem_id,((T0*)ms54_785024));
r25put_extern7((T25*)(oBC12cpp),((T0*)ms54_785024));
/*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
/*]*/
r24c_object_model_in(((T24*)_rc),((T0*)ms54_785024));
r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
/*]*/
r25swap_on_h((T25*)(oBC12cpp));
}
/*No:TYPE_STRING.is_reference*/


void r272standard_just_before_gc_mark_in(T0* a1){
r272gc_free_in(a1);
r7extend(((T7*)a1),'\75');
r7append(((T7*)a1),((T0*)ms13_1300));
r7append(((T7*)a1),((T0*)ms13_144));
}
/*No:TYPE_STRING.is_none*/
/*No:TYPE_STRING.fz_inako*/
/*No:TYPE_STRING.fz_c_void_args*/
/*No:TYPE_STRING.is_like_argument*/
/*No:TYPE_STRING.just_before_gc_mark_in*/


void r272gc_store_left_in(T0* a1){
r7append(((T7*)a1),((T0*)ms54_17320));
r2append_in(7,a1);
}
/*No:TYPE_STRING.mapping_cast_memory*/
/*No:TYPE_STRING.fz_gc*/
/*No:TYPE_STRING.is_double*/
/*No:TYPE_STRING.standard_c_typedef*/
/*No:TYPE_BOOLEAN.fz_void*/
/*No:TYPE_BOOLEAN.start_position*/
int fBC264used_as_reference=0;


void r264used_as_reference(void){
if (fBC264used_as_reference==0){
fBC264used_as_reference=1;
r264load_ref(((T0*)ms14_12694));
}}
/*No:TYPE_BOOLEAN.id*/
/*No:TYPE_BOOLEAN.is_user_expanded*/
/*No:TYPE_BOOLEAN.is_pointer*/


T0* r264to_runnable(T264* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r264check_type(C);
return R;
}
/*No:TYPE_BOOLEAN.c_initialize_in*/
/*No:TYPE_BOOLEAN.gc_define1*/
/*No:TYPE_BOOLEAN.to_reference*/


void r264gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms13_8869));
r2append_in(6,a1);
}


T0* r264run_class(T264* C){
T0* R=NULL;
R=r22run_class((T0*)C);
return R;
}
/*No:TYPE_BOOLEAN.c_header_pass2*/
/*No:TYPE_BOOLEAN.us_boolean_ref*/
/*No:TYPE_BOOLEAN.c_header_pass4*/
/*No:TYPE_BOOLEAN.us_item*/
/*No:TYPE_BOOLEAN.is_like_current*/
/*No:TYPE_BOOLEAN.is_bit*/


T0* r264smallest_ancestor(T264* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X54run_type(a1);
/*[IF*/
if(X54is_boolean(_rto)){
R=(T0*)C;
}
else{
R=r273smallest_ancestor((T273*)(r264type_boolean_ref()),_rto);
}
/*FI]*/
return R;
}


T0* r264run_time_mark(void){
T0* R=NULL;
R=((T0*)ms14_6510);
return R;
}
/*No:TYPE_BOOLEAN.is_expanded*/
int fBC12type_boolean_ref=0;
T0*oBC12type_boolean_ref=NULL;


T0* r264type_boolean_ref(void){
if(fBC12type_boolean_ref==0){
T0* _boolean_ref=NULL;
fBC12type_boolean_ref=1;
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,((T0*)ms14_12694),NULL);
_boolean_ref=(T0*)n;
}
{T273*n=malloc(sizeof(*n));
*n=M273;
/*[IRF3.3make*/((((T273*)(n)))->_base_class_name)=(_boolean_ref);
/*]*/
oBC12type_boolean_ref=(T0*)n;
}
}
return oBC12type_boolean_ref;}
/*No:TYPE_BOOLEAN.gc_info_in*/
/*No:TYPE_BOOLEAN.gc_define2*/
/*No:TYPE_BOOLEAN.fz_dot*/
/*No:TYPE_BOOLEAN.is_like_feature*/


T6 r264is_a(T264* C,T0* a1){
T6 R=0;
/*[IF*/
if(X54is_boolean(a1)){
R=1;
}
else{
R=r63is_subclass_of((T63*)(r264base_class(C)),X54base_class(a1));
/*[IF*/
if(R){
r264used_as_reference();
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_type((T0*)C,((T0*)ms13_17730));
r21add_type(a1,((T0*)ms13_47));
}
/*FI]*/
return R;
}
/*No:TYPE_BOOLEAN.c_initialize*/
/*No:TYPE_BOOLEAN.is_character*/


T0* r264written_mark(void){
T0* R=NULL;
R=((T0*)ms14_6510);
return R;
}


void r264error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}


void r264make(T264* C,T0* a1){
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,((T0*)ms14_6510),a1);
C->_base_class_name=(T0*)n;
}
}


void r264demangling_in(T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),'E');
/*FI]*/
r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r264run_time_mark());
}


void r264fatal_error_generic_list(T264* C){
r21add_type((T0*)C,((T0*)ms54_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:TYPE_BOOLEAN.is_array*/
/*No:TYPE_BOOLEAN.is_dummy_expanded*/


T2 r264space_for_variable(void){
T2 R=0;
R=sizeof(T6);
return R;
}
/*No:TYPE_BOOLEAN.to_expanded*/


T0* r264generic_list(T264* C){
T0* R=NULL;
r264fatal_error_generic_list(C);
return R;
}


T0* r264base_class(T264* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r64base_class(((T64*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
/*No:TYPE_BOOLEAN.cast_to_ref*/
/*No:TYPE_BOOLEAN.base_class_name*/
/*No:TYPE_BOOLEAN.is_formal_generic*/


T6 r264is_a_in(T264* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r264written_mark())==((void*)(X54written_mark(a1)))){
R=1;
}
else{
_ct=(((T24*)a2))->_current_type/*0*/;
_t1=r264to_runnable(C,_ct);
_t2=X54to_runnable(a1,_ct);
/*[IF*/
if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
R=1;
}
else{
R=X54is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r264look_up_for(T264* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r264base_class(C)),a1,a2);
return R;
}


void r264c_type_for_external_in(T0* a1){
/*[IF*/
/*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T0* b1=a1;
r264c_type_for_argument_in(b1);
}/*]*/
/*FI]*/
}


void r264c_type_for_argument_in(T0* a1){
r7extend(((T7*)a1),'T');
r7extend(((T7*)a1),'6');
}
/*No:TYPE_BOOLEAN.c_header_pass1*/
/*No:TYPE_BOOLEAN.run_type*/
/*No:TYPE_BOOLEAN.c_type_for_target_in*/
/*No:TYPE_BOOLEAN.c_type_for_result_in*/
/*No:TYPE_BOOLEAN.expanded_initializer*/
/*No:TYPE_BOOLEAN.c_frame_descriptor*/


T6 r264has_creation(T264* C,T0* a1){
T6 R=0;
r21add_position(X83start_position(a1));
r264error(/*(IRF4.6start_position*/(((T64*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms265_100044));
return R;
}
/*No:TYPE_BOOLEAN.c_header_pass3*/


void r264gc_call_new_in(T0* a1){
r7append(((T7*)a1),((T0*)ms13_1008));
r2append_in(6,a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_BOOLEAN.fz_new*/
/*No:TYPE_BOOLEAN.is_boolean*/
/*No:TYPE_BOOLEAN.mapping_cast*/
/*No:TYPE_BOOLEAN.is_generic*/
/*No:TYPE_BOOLEAN.is_real*/
/*No:TYPE_BOOLEAN.need_c_struct*/
/*No:TYPE_BOOLEAN.is_any*/
/*No:TYPE_BOOLEAN.nb_errors*/
/*No:TYPE_BOOLEAN.is_basic_eiffel_expanded*/
/*No:TYPE_BOOLEAN.fz_gc_mark*/
/*No:TYPE_BOOLEAN.need_gc_mark_function*/


T6 r264is_native_array(T264* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 263: 
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_BOOLEAN.is_string*/
/*No:TYPE_BOOLEAN.is_integer*/
/*No:TYPE_BOOLEAN.is_anchored*/
/*No:TYPE_BOOLEAN.is_run_type*/
/*No:TYPE_BOOLEAN.is_reference*/
/*No:TYPE_BOOLEAN.is_none*/
/*No:TYPE_BOOLEAN.fz_inako*/
/*No:TYPE_BOOLEAN.is_like_argument*/
/*No:TYPE_BOOLEAN.just_before_gc_mark_in*/


void r264load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r63run_class((T63*)(r64base_class(((T64*)_cn))));
r24set_at_run_time(((T24*)_rc));
_rf=r24get_feature_with(((T24*)_rc),((T0*)ms14_1764));
}
/*No:TYPE_BOOLEAN.mapping_cast_memory*/
int fBC264check_type=0;


void r264check_type(T264* C){
if (fBC264check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC264check_type=1;
_bc=r264base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
_rc=r264run_class(C);
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(!((((T63*)_bc))->_is_expanded/*20*/)){
r264error(/*(IRF4.6start_position*/(((T64*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms264_38350));
}
/*FI]*/
}
/*FI]*/
}}
/*No:TYPE_BOOLEAN.is_double*/
/*No:TYPE_BOOLEAN.us_boolean*/


void r293c_mapping_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r43boost((T43*)(oBC12run_control))){
r293c_mapping_external((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
}
else{
r384default_mapping_function(((T384*)a1));
}
/*FI]*/
}


void r293c_mapping_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r43boost((T43*)(oBC12run_control))){
r293c_mapping_external((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
/*]*/
}
else{
r387default_mapping_procedure(((T387*)a1));
}
/*FI]*/
}
/*No:NATIVE_WITH_CURRENT.use_current*/


void r293c_mapping_external(T0* a1,T2 a2){
T6 _tcbd=0;
T6 _eruc=0;
_eruc=/*(IRF4.2use_current*/(1)/*)*/;
/*[IF*/
if(!(_eruc)){
_tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X289external_c_name(a1));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(_eruc){
r25put_target_as_value((T25*)(oBC12cpp));
}
/*FI]*/
/*[IF*/
if((a2)>(0)){
/*[IF*/
if(_eruc){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r25put_arguments((T25*)(oBC12cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if((!(_eruc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:NATIVE_WITH_CURRENT.need_prototype*/
/*No:NATIVE_WITH_CURRENT.body*/
/*No:NATIVE_WITH_CURRENT.fz_00*/


void r293wrapped_external_call(T0* a1,T2 a2){
T2 _i=0;
r7append((T7*)(((T0*)ms288_3077376)),X289external_c_name(a1));
r7extend((T7*)(((T0*)ms288_3077376)),'\50');
/*[IF*/
{/*AT*/r7extend((T7*)(((T0*)ms288_3077376)),'C');
/*[IF*/
if((a2)>(0)){
r7extend((T7*)(((T0*)ms288_3077376)),'\54');
}
/*FI]*/
}
/*FI]*/
_i=1;
while (!((_i)>(a2))) {
r7extend((T7*)(((T0*)ms288_3077376)),'a');
r2append_in(_i,((T0*)ms288_3077376));
_i=(_i)+(1);
/*[IF*/
if((_i)<=(a2)){
r7extend((T7*)(((T0*)ms288_3077376)),'\54');
}
/*FI]*/
}
r7append((T7*)(((T0*)ms288_3077376)),((T0*)ms13_348));
}
/*No:NATIVE_WITH_CURRENT.stupid_switch*/
/*No:NATIVE_WITH_CURRENT.fz_14*/


void r293c_define_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
{/*AT*//*[IRF3.6c_prototype*/{T384* C1=((T384*)a1);
r384external_prototype(C1,(C1)->_base_feature/*36*/);
}/*]*/
}
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms288_3077376)),'R');
r7extend((T7*)(((T0*)ms288_3077376)),'\75');
r293wrapped_external_call((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
r384c_define_with_body(((T384*)a1),((T0*)ms288_3077376));
}
/*FI]*/
}


void r293c_define_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
{/*AT*//*[IRF3.6c_prototype*/{T387* C1=((T387*)a1);
r387external_prototype(C1,(C1)->_base_feature/*32*/);
}/*]*/
}
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
/*]*/
r293wrapped_external_call((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
r387c_define_with_body(((T387*)a1),((T0*)ms288_3077376));
}
/*FI]*/
}

