/*
ANSI C code generated by SmallEiffel The GNU Eiffel Compiler
Release -0.76 (Saturday 11th november 2000)
Copyright (C), 1994-2000 - LORIA - UHP - CRIN - INRIA - FRANCE
Dominique COLNET and Suzanne COLLIN - colnet@loria.fr
http://SmallEiffel.loria.fr
*/
#ifdef __cplusplus
}
#endif
#include "compile_to_c.h"
#ifdef __cplusplus
extern "C" {
#endif


void r519put_c_name_tag(T519* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_fn=/*SSFRF4*//*X151first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if((X117to_key(_fn))!=((void*)(X117to_key((/*RF2*/(C)->_name/*16*/))))){
X117put_cpp_tag((/*RF2*/(C)->_name/*16*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X117to_string((/*RF2*/(C)->_name/*16*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\40');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
X117put_cpp_tag(_fn);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X117to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_7317));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/((T77*)(/*SSFRF4*//*X151base_class_name*//*(IRF4.6base_class_name*/(/*RF2*/(((T61*)((/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/))))->_name/*18*/)/*)*/))->_to_string/*8*/));
/*]*/
/*[IF*/
if((X117to_key(_fn))!=((void*)(X117to_key((/*RF2*/(C)->_name/*16*/))))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}


T0* r519stupid_switch(T519* C,T0* a1){
T0* R=NULL;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_stupid_switch_state/*24*/);
switch(z1){
case 12:
R=((T0*)ms519_1618544);
break;
case 11:
break;
case 13:
(/*SFN*/C->_stupid_switch_state)=14;
/*[IRF3.6compute_stupid_switch*/{T519* C1=C;
T0* b1=a1;
r519std_compute_stupid_switch(C1,b1);
}/*]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(12)){
R=((T0*)ms519_1618544);
}
/*FI]*/
break;
default:;
}
}/*INSPECT]*/
return R;
}


void r519std_compute_use_current(T519* C){
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*40*/))!=((void*)(NULL))){
/*[IF*/
if(r427use_current((T427*)((/*RF2*/(C)->_require_assertion/*40*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*48*/))!=((void*)(NULL))){
/*[IF*/
if(r159use_current((T159*)((/*RF2*/(C)->_routine_body/*48*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IF*/
if(r159use_current((T159*)((/*RF2*/(C)->_rescue_compound/*52*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*56*/))!=((void*)(NULL))){
/*[IF*/
if(r309use_current((T309*)((/*RF2*/(C)->_ensure_assertion/*56*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
(/*SFN*/C->_use_current_state)=11;
}
/*FI]*/
}


void r519c_frame_descriptor(T519* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1200006371));
r519c_frame_descriptor_name_in(C,oBC96c_code);
r83put_extern7((T83*)(oBC19cpp),oBC96c_code);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r519put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IF*/
if(r519use_current(C)){
r7extend((T7*)(oBC96c_code),((T3)'1'));
}
else{
r7extend((T7*)(oBC96c_code),((T3)'0'));
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))),oBC96c_code);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
r7append((T7*)(oBC96c_code),oBC19c_frame_descriptor_format);
r7append((T7*)(oBC96c_code),((T0*)ms96_143305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}
/*FI]*/
}


void r519make(T519* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_run_class)=X62run_class(a1);
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r60add_run_feature((T60*)((/*RF2*/(C)->_run_class/*12*/)),(T0*)C,a2);
r59incr_magic_count((T59*)(oBC19small_eiffel));
(/*SFN*/C->_use_current_state)=13;
(/*SFN*/C->_stupid_switch_state)=13;
r59push((T0*)C);
r519initialize(C);
/*[IRF3.2pop*//*SSPRF3*//*X155remove_last*/r155remove_last((T155*)(oBC59run_feature_stack));
/*]*/
}


void r519fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r519routine_afd_check(T519* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*40*/))!=((void*)(NULL))){
r427afd_check((T427*)((/*RF2*/(C)->_require_assertion/*40*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*48*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_routine_body/*48*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_rescue_compound/*52*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*56*/))!=((void*)(NULL))){
r309afd_check((T309*)((/*RF2*/(C)->_ensure_assertion/*56*/)));
}
/*FI]*/
}


T6 r519use_current(T519* C){
T6 R=0;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_use_current_state/*20*/);
switch(z1){
case 12:
R=1;
break;
case 11:
break;
case 13:
(/*SFN*/C->_use_current_state)=14;
/*[IRF3.4compute_use_current*/r519std_compute_use_current(C);
/*]*/
R=((/*RF2*/(C)->_use_current_state/*20*/))==(12);
break;
default:;
R=1;
}
}/*INSPECT]*/
return R;
}


void r519std_compute_stupid_switch(T519* C,T0* a1){
T0* _rt=NULL;
_rt=(/*RF2*/(C)->_result_type/*36*/);
/*[IF*/
if(((_rt)!=((void*)(NULL)))&&(X62is_user_expanded(_rt))){
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*48*/))!=((void*)(NULL))){
/*[IF*/
if(!(r159stupid_switch((T159*)((/*RF2*/(C)->_routine_body/*48*/)),a1))){
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IF*/
if(!(r159stupid_switch((T159*)((/*RF2*/(C)->_rescue_compound/*52*/)),a1))){
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(14)){
(/*SFN*/C->_stupid_switch_state)=12;
}
/*FI]*/
}


void r519c_define_opening(T519* C){
T0* _rf3=NULL;
T0* _oresult=NULL;
T6 _ensure_check=0;
T6 _no_check=0;
T0* _t=NULL;
_no_check=r57no_check((T57*)(oBC19run_control));
_ensure_check=r57ensure_check((T57*)(oBC19run_control));
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_2072064738));
/*]*/
}
/*FI]*/
/*[IF*/
if(r519is_once_function(C)){
_oresult=r465o_result((/*RF2*/(C)->_base_feature/*28*/));
/*[IF*/
if(_no_check){
_t=X62run_type((/*RF2*/(C)->_result_type/*36*/));
r7append((T7*)(oBC19c_frame_descriptor_locals),((T0*)ms96_26975293));
r7append((T7*)(oBC19c_frame_descriptor_locals),_oresult);
r7extend((T7*)(oBC19c_frame_descriptor_locals),((T3)'\54'));
r297increment((T297*)(oBC19c_frame_descriptor_local_count));
r7append((T7*)(oBC19c_frame_descriptor_format),((T0*)ms21_337331));
X62c_frame_descriptor(_t);
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_result_type/*36*/))!=((void*)(NULL))){
_t=X62run_type((/*RF2*/(C)->_result_type/*36*/));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
X62c_type_for_result_in(_t,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms96_1271));
X62c_initialize_in(_t,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
/*[IF*/
if(_no_check){
r7append((T7*)(oBC19c_frame_descriptor_locals),((T0*)ms96_674382779));
r297increment((T297*)(oBC19c_frame_descriptor_local_count));
r7append((T7*)(oBC19c_frame_descriptor_format),((T0*)ms21_337331));
X62c_frame_descriptor(_t);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*44*/))!=((void*)(NULL))){
r171c_declare((T171*)((/*RF2*/(C)->_local_vars/*44*/)));
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*56*/))!=((void*)(NULL))){
r309c_declare_for_old((T309*)((/*RF2*/(C)->_ensure_assertion/*56*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_no_check){
/*[IF*/
if(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))>(0)){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1111279623));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))),oBC96c_code);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\135'));
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}
/*FI]*/
r519c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))==(_i)))
{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_2111741));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_526));
/*]*/
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC19c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
while (!((_c)==(((T3)'\54'))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=_c;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC19c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1660308094a));
/*]*/
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*56*/))!=((void*)(NULL))){
r309compile_to_c_old((T309*)((/*RF2*/(C)->_ensure_assertion/*56*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1555607831));
/*]*/
r159compile_to_c((T159*)((/*RF2*/(C)->_rescue_compound/*52*/)));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_560761477));
/*]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*36*/))!=((void*)(NULL))){
_rf3=X62expanded_initializer((/*RF2*/(C)->_result_type/*36*/));
/*[IF*/
if((_rf3)!=((void*)(NULL))){
/*[IF*/
if((_oresult)!=((void*)(NULL))){
r83put_proc_call_0((T83*)(oBC19cpp),_rf3,NULL,_oresult);
}
else{
r83put_proc_call_0((T83*)(oBC19cpp),_rf3,NULL,((T0*)ms96_82));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*44*/))!=((void*)(NULL))){
r171initialize_expanded((T171*)((/*RF2*/(C)->_local_vars/*44*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1367040625));
/*]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*40*/))!=((void*)(NULL))){
r427compile_to_c((T427*)((/*RF2*/(C)->_require_assertion/*40*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_759184012));
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1484470448));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1660308094));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r519c_initialize_ds_one_by_one(T519* C){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1775507635));
r519c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IF*/
if(r519use_current(C)){
r7append((T7*)(oBC96c_code),((T0*)ms96_803430551));
}
else{
r7append((T7*)(oBC96c_code),((T0*)ms96_1677173506));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
{T104 se_tmp0;
r83put_position_in_ds((*(se_tmp0=r519start_position(C),&se_tmp0)));
}
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_208313786));
/*]*/
/*[IF*/
if(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))>(0)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_430519127));
/*]*/
}
/*FI]*/
}


void r519c_assertion_flag(T519* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r519c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms96_334284767));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}


void r519c_define(T519* C){
T6 _once_wrapper=0;
r83incr_precursor_routine_count((T83*)(oBC19cpp));
_once_wrapper=r519is_once_function(C);
/*[IF*/
if(_once_wrapper){
r465c_define_o_result((T0*)C);
}
/*FI]*/
/*[IF*/
if(!(r519is_pre_computable(C))){
/*[IF*/
if(_once_wrapper){
r465c_define_o_flag((T0*)C);
}
/*FI]*/
r519define_prototype(C);
/*[IF*/
if(_once_wrapper){
r465c_test_o_flag((T0*)C);
}
/*FI]*/
r519c_define_opening(C);
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*48*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_routine_body/*48*/)));
}
/*FI]*/
r519c_define_closing(C);
/*[IF*/
if(_once_wrapper){
r465c_return_o_result((T0*)C);
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1754150081));
/*]*/
}
/*FI]*/
r519c_frame_descriptor(C);
}
/*FI]*/
}


T6 r519is_pre_computable(T519* C){
T6 R=0;
/*[IF*/
if(r519is_once_function(C)){
R=r465is_pre_computable((T0*)C);
}
/*FI]*/
return R;
}


void r519initialize(T519* C){
(/*SFN*/C->_arguments)=/*SSWARF2*//*X151arguments*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_arguments/*20*/);
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*32*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*32*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
(/*SFN*/C->_result_type)=X62to_runnable(X151result_type((/*RF2*/(C)->_base_feature/*28*/)),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_local_vars)=/*SSWARF2*//*X151local_vars*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_local_vars/*40*/);
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*44*/))!=((void*)(NULL))){
(/*SFN*/C->_local_vars)=r171to_runnable((T171*)((/*RF2*/(C)->_local_vars/*44*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
(/*SFN*/C->_routine_body)=/*SSWARF2*//*X151routine_body*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_routine_body/*44*/);
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*48*/))!=((void*)(NULL))){
(/*SFN*/C->_routine_body)=r159to_runnable((T159*)((/*RF2*/(C)->_routine_body/*48*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
/*[IF*/
if(r57require_check((T57*)(oBC19run_control))){
(/*SFN*/C->_require_assertion)=r519run_require(C);
}
/*FI]*/
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
(/*SFN*/C->_ensure_assertion)=r519run_ensure(C);
}
/*FI]*/
(/*SFN*/C->_rescue_compound)=/*SSWARF2*//*X151rescue_compound*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_rescue_compound/*48*/);
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T165*)((T165*)(oBC19exceptions_handler))))->_used)=(1);
/*]*/
(/*SFN*/C->_rescue_compound)=r159to_runnable((T159*)((/*RF2*/(C)->_rescue_compound/*52*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
/*[IF*/
if(r519is_once_function(C)){
r465register_function((T0*)C);
}
/*FI]*/
}


T0* r519clients(T519* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=/*SSWARF2*//*X151base_class*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=/*SSWARF2*//*X151clients*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_clients/*16*/);
}
else{
R=r61clients_for(((T61*)_bc),(/*RF2*/(C)->_name/*16*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}


void r519collect_c_tmp(T519* C){
/*[IF*/
if(X62is_user_expanded((/*RF2*/(C)->_result_type/*36*/))){
/*[IF*/
if(X62is_dummy_expanded((/*RF2*/(C)->_result_type/*36*/))){
}
else{
r83se_tmp_add((T0*)C);
}
/*FI]*/
}
/*FI]*/
}


T104 r519start_position(T519* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X151start_position((/*RF2*/(C)->_base_feature/*28*/)),&se_tmp0));
}
return R;
}


void r519c_define_closing(T519* C){
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*56*/))!=((void*)(NULL))){
r309compile_to_c((T309*)((/*RF2*/(C)->_ensure_assertion/*56*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r519use_current(C)){
/*[IF*/
if((X117to_string((/*RF2*/(C)->_name/*16*/)))!=((void*)(((T0*)ms21_1979951)))){
r83current_class_invariant((/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*52*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1905406134));
/*]*/
}
/*FI]*/
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_943110089));
/*]*/
}
/*FI]*/
}


void r519default_mapping_function(T519* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r57no_check((T57*)(oBC19run_control));
_uc=r519use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r83target_cannot_be_dropped((T83*)(oBC19cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r519mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1565));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83put_target_as_target((T83*)(oBC19cpp));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83put_arguments((T83*)(oBC19cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


T0* r526run_ensure(T526* C){
T0* R=NULL;
R=r61run_ensure((T61*)(X62base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}


void r526define_prototype(T526* C){
T6 _no_check=0;
T2 _mem_id=0;
_no_check=r57no_check((T57*)(oBC19run_control));
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.3reset*/((((T297*)((T297*)(oBC19c_frame_descriptor_local_count))))->_value)=(0);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC19c_frame_descriptor_format))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\42'));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC19c_frame_descriptor_locals))))->_count)=(0);
/*]*/
}
/*FI]*/
_mem_id=r526id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
/*[IF*/
{/*AT*/r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7extend((T7*)(oBC96c_code),((T3)'r'));
r2append_in(_mem_id,oBC96c_code);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),oBC96c_code);
r7extend((T7*)(oBC96c_code),((T3)'\50'));
/*[IF*/
if(_no_check){
r7append((T7*)(oBC96c_code),((T0*)ms96_826425832));
/*[IF*/
if((r526use_current(C))||(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL)))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r526use_current(C)){
X62c_type_for_target_in((/*RF2*/(C)->_current_type/*8*/),oBC96c_code);
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7extend((T7*)(oBC96c_code),((T3)'C'));
X62c_frame_descriptor((/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
 else if(!(r526use_current(C))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
/*FI]*/
}
else{
r121compile_to_c_in((T121*)((/*RF2*/(C)->_arguments/*32*/)),oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\51'));
r83put_c_heading((T83*)(oBC19cpp),oBC96c_code);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
}


void r526default_mapping_procedure(T526* C){
r526default_mapping_function(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}


T0* r526run_require(T526* C){
T0* R=NULL;
R=r61run_require((T61*)(X62base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}


T6 r526is_exported_in(T526* C,T0* a1){
T6 R=0;
R=r200gives_permission_to((T200*)(r526clients(C)),a1);
return R;
}


T2 r526id(T526* C){
T2 R=0;
R=X62id((/*RF2*/(C)->_current_type/*8*/));
return R;
}


T6 r526is_once_procedure(T526* C){
T6 R=0;
T0* _once_procedure=NULL;
_once_procedure=(/*RF2*/(C)->_base_feature/*28*/);
if(NULL!=(_once_procedure)){
switch(((T0*)_once_procedure)->id){
case 395:
break;
default:
_once_procedure=NULL;
}
}R=(_once_procedure)!=((void*)(NULL));
return R;
}


void r526c_frame_descriptor_name_in(T526* C,T0* a1){
r7extend(((T7*)a1),((T3)'f'));
r2append_in(r526id(C),a1);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),a1);
}


void r526mapping_name(T526* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'r'));
r2append_in(r526id(C),oBC96c_code);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),oBC96c_code);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}


void r526put_c_name_tag(T526* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_fn=/*SSFRF4*//*X151first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if((X117to_key(_fn))!=((void*)(X117to_key((/*RF2*/(C)->_name/*16*/))))){
X117put_cpp_tag((/*RF2*/(C)->_name/*16*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X117to_string((/*RF2*/(C)->_name/*16*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\40');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
X117put_cpp_tag(_fn);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X117to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_7317));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/((T77*)(/*SSFRF4*//*X151base_class_name*//*(IRF4.6base_class_name*/(/*RF2*/(((T61*)((/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/))))->_name/*18*/)/*)*/))->_to_string/*8*/));
/*]*/
/*[IF*/
if((X117to_key(_fn))!=((void*)(X117to_key((/*RF2*/(C)->_name/*16*/))))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}


T0* r526stupid_switch(T526* C,T0* a1){
T0* R=NULL;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_stupid_switch_state/*24*/);
switch(z1){
case 12:
R=((T0*)ms526_1618543);
break;
case 11:
break;
case 13:
(/*SFN*/C->_stupid_switch_state)=14;
/*[IRF3.6compute_stupid_switch*/{T526* C1=C;
T0* b1=a1;
r526std_compute_stupid_switch(C1,b1);
}/*]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(12)){
R=((T0*)ms526_1618543);
}
/*FI]*/
break;
default:;
}
}/*INSPECT]*/
return R;
}


void r526std_compute_use_current(T526* C){
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
/*[IF*/
if(r427use_current((T427*)((/*RF2*/(C)->_require_assertion/*36*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
/*[IF*/
if(r159use_current((T159*)((/*RF2*/(C)->_routine_body/*44*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IF*/
if(r159use_current((T159*)((/*RF2*/(C)->_rescue_compound/*48*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
/*[IF*/
if(r309use_current((T309*)((/*RF2*/(C)->_ensure_assertion/*52*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
(/*SFN*/C->_use_current_state)=11;
}
/*FI]*/
}


void r526c_frame_descriptor(T526* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1200006371));
r526c_frame_descriptor_name_in(C,oBC96c_code);
r83put_extern7((T83*)(oBC19cpp),oBC96c_code);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r526put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IF*/
if(r526use_current(C)){
r7extend((T7*)(oBC96c_code),((T3)'1'));
}
else{
r7extend((T7*)(oBC96c_code),((T3)'0'));
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))),oBC96c_code);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
r7append((T7*)(oBC96c_code),oBC19c_frame_descriptor_format);
r7append((T7*)(oBC96c_code),((T0*)ms96_143305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}
/*FI]*/
}


void r526make(T526* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_run_class)=X62run_class(a1);
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r60add_run_feature((T60*)((/*RF2*/(C)->_run_class/*12*/)),(T0*)C,a2);
r59incr_magic_count((T59*)(oBC19small_eiffel));
(/*SFN*/C->_use_current_state)=13;
(/*SFN*/C->_stupid_switch_state)=13;
r59push((T0*)C);
r526initialize(C);
/*[IRF3.2pop*//*SSPRF3*//*X155remove_last*/r155remove_last((T155*)(oBC59run_feature_stack));
/*]*/
}


void r526fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r526routine_afd_check(T526* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r427afd_check((T427*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_routine_body/*44*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_rescue_compound/*48*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r309afd_check((T309*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}


T6 r526use_current(T526* C){
T6 R=0;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_use_current_state/*20*/);
switch(z1){
case 12:
R=1;
break;
case 11:
break;
case 13:
(/*SFN*/C->_use_current_state)=14;
/*[IRF3.4compute_use_current*/r526std_compute_use_current(C);
/*]*/
R=((/*RF2*/(C)->_use_current_state/*20*/))==(12);
break;
default:;
R=1;
}
}/*INSPECT]*/
return R;
}


void r526std_compute_stupid_switch(T526* C,T0* a1){
T0* _rt=NULL;
_rt=/*(IRF4.1result_type*/NULL/*)*/;
/*[IF*/
if(((_rt)!=((void*)(NULL)))&&(X62is_user_expanded(_rt))){
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
/*[IF*/
if(!(r159stupid_switch((T159*)((/*RF2*/(C)->_routine_body/*44*/)),a1))){
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IF*/
if(!(r159stupid_switch((T159*)((/*RF2*/(C)->_rescue_compound/*48*/)),a1))){
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(14)){
(/*SFN*/C->_stupid_switch_state)=12;
}
/*FI]*/
}


void r526c_define_opening(T526* C){
T0* _rf3=NULL;
T0* _oresult=NULL;
T6 _ensure_check=0;
T6 _no_check=0;
T0* _t=NULL;
_no_check=r57no_check((T57*)(oBC19run_control));
_ensure_check=r57ensure_check((T57*)(oBC19run_control));
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_2072064738));
/*]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
r171c_declare((T171*)((/*RF2*/(C)->_local_vars/*40*/)));
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r309c_declare_for_old((T309*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_no_check){
/*[IF*/
if(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))>(0)){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1111279623));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))),oBC96c_code);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\135'));
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}
/*FI]*/
r526c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))==(_i)))
{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_2111741));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_526));
/*]*/
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC19c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
while (!((_c)==(((T3)'\54'))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=_c;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC19c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1660308094a));
/*]*/
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r309compile_to_c_old((T309*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1555607831));
/*]*/
r159compile_to_c((T159*)((/*RF2*/(C)->_rescue_compound/*48*/)));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_560761477));
/*]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
r171initialize_expanded((T171*)((/*RF2*/(C)->_local_vars/*40*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1367040625));
/*]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r427compile_to_c((T427*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_759184012));
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1484470448));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1660308094));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r526c_initialize_ds_one_by_one(T526* C){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1775507635));
r526c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IF*/
if(r526use_current(C)){
r7append((T7*)(oBC96c_code),((T0*)ms96_803430551));
}
else{
r7append((T7*)(oBC96c_code),((T0*)ms96_1677173506));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
{T104 se_tmp0;
r83put_position_in_ds((*(se_tmp0=r526start_position(C),&se_tmp0)));
}
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_208313786));
/*]*/
/*[IF*/
if(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))>(0)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_430519127));
/*]*/
}
/*FI]*/
}


void r526c_assertion_flag(T526* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r526c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms96_334284767));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}


void r526c_define(T526* C){
T6 _once_wrapper=0;
r83incr_precursor_routine_count((T83*)(oBC19cpp));
_once_wrapper=r526is_once_procedure(C);
/*[IF*/
if(_once_wrapper){
r465c_define_o_flag((T0*)C);
}
/*FI]*/
r526define_prototype(C);
/*[IF*/
if(_once_wrapper){
r465c_test_o_flag((T0*)C);
}
/*FI]*/
r526c_define_opening(C);
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_routine_body/*44*/)));
}
/*FI]*/
r526c_define_closing(C);
/*[IF*/
if(_once_wrapper){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms526_750));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
r526c_frame_descriptor(C);
}


void r526initialize(T526* C){
(/*SFN*/C->_arguments)=/*SSWARF2*//*X151arguments*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_arguments/*20*/);
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*32*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*32*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
(/*SFN*/C->_local_vars)=/*SSWARF2*//*X151local_vars*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_local_vars/*40*/);
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
(/*SFN*/C->_local_vars)=r171to_runnable((T171*)((/*RF2*/(C)->_local_vars/*40*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
(/*SFN*/C->_routine_body)=/*SSWARF2*//*X151routine_body*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_routine_body/*44*/);
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
(/*SFN*/C->_routine_body)=r159to_runnable((T159*)((/*RF2*/(C)->_routine_body/*44*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
/*[IF*/
if(r57require_check((T57*)(oBC19run_control))){
(/*SFN*/C->_require_assertion)=r526run_require(C);
}
/*FI]*/
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
(/*SFN*/C->_ensure_assertion)=r526run_ensure(C);
}
/*FI]*/
(/*SFN*/C->_rescue_compound)=/*SSWARF2*//*X151rescue_compound*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_rescue_compound/*48*/);
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T165*)((T165*)(oBC19exceptions_handler))))->_used)=(1);
/*]*/
(/*SFN*/C->_rescue_compound)=r159to_runnable((T159*)((/*RF2*/(C)->_rescue_compound/*48*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
/*[IF*/
if(r526is_once_procedure(C)){
r465register_procedure((T0*)C);
}
/*FI]*/
}


T0* r526clients(T526* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=/*SSWARF2*//*X151base_class*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=/*SSWARF2*//*X151clients*/(/*RF2*/((T396*)((/*RF2*/(C)->_base_feature/*28*/)))->_clients/*16*/);
}
else{
R=r61clients_for(((T61*)_bc),(/*RF2*/(C)->_name/*16*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}


T104 r526start_position(T526* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X151start_position((/*RF2*/(C)->_base_feature/*28*/)),&se_tmp0));
}
return R;
}


void r526c_define_closing(T526* C){
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r309compile_to_c((T309*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r526use_current(C)){
/*[IF*/
if((X117to_string((/*RF2*/(C)->_name/*16*/)))!=((void*)(((T0*)ms21_1979951)))){
r83current_class_invariant((/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1905406134));
/*]*/
}
/*FI]*/
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_943110089));
/*]*/
}
/*FI]*/
}


void r526default_mapping_function(T526* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r57no_check((T57*)(oBC19run_control));
_uc=r526use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r83target_cannot_be_dropped((T83*)(oBC19cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r526mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1565));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83put_target_as_target((T83*)(oBC19cpp));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83put_arguments((T83*)(oBC19cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


T0* r119try_to_undefine_aux(T119* C,T0* a1,T0* a2){
T0* R=NULL;
{T384*n=((T384*)se_malloc(sizeof(*n))/*44*/);
*n=M384;
r384from_effective(n,a1,(/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_result_type/*48*/),(/*RF2*/(C)->_require_assertion/*28*/),(/*RF2*/(C)->_ensure_assertion/*32*/),a2);
R=((T0*)n);
}
return R;
}


void r119error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T6 r119can_hide(T119* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*48*/))!=((void*)(X99result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*48*/))==((void*)(NULL)))||((X99result_type(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r119error((*(se_tmp0=r119start_position(C),&se_tmp0)),((T0*)ms99_1393094289));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(X99arguments(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL)))||((X99arguments(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r119error((*(se_tmp0=r119start_position(C),&se_tmp0)),((T0*)ms99_1854646737));
}
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r119error((*(se_tmp0=r119start_position(C),&se_tmp0)),((T0*)ms99_1060258809));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*48*/))!=((void*)(NULL))){
/*[IF*/
if(!(X62is_a_in((/*RF2*/(C)->_result_type/*48*/),X99result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_895448585);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((/*RF2*/(((T60*)a2))->_current_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_a_in((T121*)((/*RF2*/(C)->_arguments/*20*/)),X99arguments(a1),a2))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r119start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_895448585);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((/*RF2*/(((T60*)a2))->_current_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r119merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r119make_external_routine(T119* C,T0* a1,T0* a2){
(/*SFN*/C->_native)=a1;
(/*SFN*/C->_alias_string)=a2;
}


void r119merge_header_comments(T119* C,T0* a1){
/*[IF*/
if((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/);
}
 else if((/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X99set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}


void r119add_into(T119* C,T0* a1){
T0* _key=NULL;
T0* _fn=NULL;
T2 _i=0;
{T104 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r118count((T118*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i);
_key=X117to_key(_fn);
/*[IF*/
if(r172has(((T172*)a1),_key)){
_fn=/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T293*)(r172at(((T172*)a1),_key)))->_names/*8*/))))->_first/*0*/)/*)*/;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1087076085);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X117to_string(_fn);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
else{
r172add(((T172*)a1),(T0*)C,_key);
}
/*FI]*/
_i=(_i)+(1);
}
}


void r119make_routine(T119* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T119*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_header_comment)=a4;
(/*SFN*/C->_arguments)=a2;
(/*SFN*/C->_obsolete_mark)=a3;
(/*SFN*/C->_require_assertion)=a5;
}


T0* r119try_to_undefine(T119* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
_fn2=r118feature_name((T118*)((/*RF2*/(C)->_names/*8*/)),X117to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X117undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r119try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r119merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r119make(T119* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r119make_routine(C,a1,a2,a4,a5,a6);
(/*SFN*/C->_result_type)=a3;
r119make_external_routine(C,a7,a8);
}


void r119check_obsolete(T119* C,T104 a1){
/*[IF*/
if(((/*RF2*/(C)->_obsolete_mark/*24*/))!=((void*)(NULL))){
/*[IF*/
if(!((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/))){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=((T0*)ms99_2129004198);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T262*)((/*RF2*/(C)->_obsolete_mark/*24*/)))->_to_string/*12*/);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((*(se_tmp0=r119start_position(C),&se_tmp0)));
}
r82print_as_warning((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}


T6 r119use_current(T119* C){
T6 R=0;
R=X91use_current((/*RF2*/(C)->_native/*40*/),(T0*)C);
return R;
}


T0* r119external_name(T119* C){
T0* R=NULL;
T0* _new_result=NULL;
T0* _native_c_plus_plus=NULL;
R=r119c_plus_plus_name(C);
_native_c_plus_plus=(/*RF2*/(C)->_native/*40*/);
if(NULL!=(_native_c_plus_plus)){
switch(((T0*)_native_c_plus_plus)->id){
case 89:
break;
default:
_native_c_plus_plus=NULL;
}
}/*[IF*/
if((_native_c_plus_plus)!=((void*)(NULL))){
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7make(n,((/*RF2*/(((T7*)R))->_count/*4*/))+(8));
_new_result=((T0*)n);
}
r7append(((T7*)_new_result),((T0*)ms97_3147));
r2append_in((/*RF2*/((T61*)((/*RF2*/(C)->_base_class/*4*/)))->_id/*0*/),_new_result);
r7append(((T7*)_new_result),R);
R=_new_result;
}
/*FI]*/
return R;
}


T0* r119to_run_feature(T119* C,T0* a1,T0* a2){
T0* R=NULL;
{T95*n=((T95*)se_malloc(sizeof(*n))/*52*/);
*n=M95;
r95make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
return R;
}


void r119set_header_comment(T119* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)>(1))){
(/*SFN*/C->_end_comment)=a1;
}
/*FI]*/
}


T6 r119is_not_mergeable_with(T119* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*48*/))==((void*)(NULL))){
R=(X99result_type(a1))!=((void*)(NULL));
}
else{
R=(X99result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1393094289);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
else{
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
R=(X99arguments(a1))!=((void*)(NULL));
}
else{
R=(X99arguments(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1854646737);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
 else if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1060258809);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
R=1;
}
/*FI]*/
}
/*FI]*/
r119merge_header_comments(C,a1);
return R;
}


T104 r119start_position(T119* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X117start_position(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}


void r119set_rescue_compound(T119* C,T0* a1){
/*[IF*/
if((a1)!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r159start_position(((T159*)a1)),&se_tmp0)));
}
}
else{
{T104 se_tmp0;
r82add_position((*(se_tmp0=r119start_position(C),&se_tmp0)));
}
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms97_2014931627);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T0* r119c_plus_plus_name(T119* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_alias_string/*44*/))==((void*)(NULL))){
R=X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/);
}
else{
R=(/*RF2*/(C)->_alias_string/*44*/);
}
/*FI]*/
return R;
}


void r232run_feature_match(T232* C,T0* a1){
r232run_feature_has_result(C);
X245match_with((/*RF2*/(C)->_arguments/*8*/),(/*RF2*/(C)->_run_feature/*16*/),a1);
}


T0* r232runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X126to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X126start_position(a1),&se_tmp0)));
}
r232fatal_error(((T0*)ms168_1263631766));
}
/*FI]*/
return R;
}


T6 r232call_proc_call_stupid_switch(T232* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*8*/))==((void*)(NULL))){
R=1;
}
else{
R=/*SSFRF4*//*X245stupid_switch*/r245stupid_switch((T245*)((/*RF2*/(C)->_arguments/*8*/)),a1);
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(X126is_current((/*RF2*/(C)->_target/*4*/))){
/*[IF*/
if(r59same_base_feature((/*RF2*/(C)->_run_feature/*16*/),a1)){
R=(X96stupid_switch((/*RF2*/(C)->_run_feature/*16*/),a1))!=((void*)(NULL));
}
else{
R=0;
}
/*FI]*/
}
else{
R=X126stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}


T6 r232is_static(T232* C){
T6 R=0;
/*[IF*/
if(X62is_integer(r232result_type(C))){
/*[IF*/
if((X126is_static((/*RF2*/(C)->_target/*4*/)))&&(X126is_static(r232arg1(C)))){
R=1;
(/*SFN*/C->_static_value_mem)=(X126static_value((/*RF2*/(C)->_target/*4*/)))/(X126static_value(r232arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r232operator(void){
T0* R=NULL;
R=((T0*)ms21_282);
return R;
}


void r232with(T232* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
(/*SFN*/C->_target)=a1;
(/*SFN*/C->_feature_name)=a2;
(/*SFN*/C->_arguments)=a3;
(/*SFN*/C->_run_feature)=a4;
r232run_feature_match(C,a5);
}


void r232run_feature_has_result(T232* C){
/*[IF*/
if((X96result_type((/*RF2*/(C)->_run_feature/*16*/)))==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X96start_position((/*RF2*/(C)->_run_feature/*16*/)),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((/*RF2*/((T235*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
}
r232fatal_error(((T0*)ms222_793028699));
}
/*FI]*/
}


T6 r232stupid_switch(T232* C,T0* a1){
T6 R=0;
R=r232call_proc_call_stupid_switch(C,a1);
/*[IF*/
if(R){
R=!(X62is_native_array(r232result_type(C)));
}
/*FI]*/
return R;
}


void r232make(T232* C,T0* a1,T104 a2,T0* a3){
(/*SFN*/C->_target)=a1;
{T235*n=((T235*)se_malloc(sizeof(*n))/*20*/);
*n=M235;
r235make(n,r232operator(),a2);
(/*SFN*/C->_feature_name)=((T0*)n);
}
{T245*n=((T245*)se_malloc(sizeof(*n))/*16*/);
*n=M245;
/*[IRF3.3make_1*/((((T245*)(n)))->_first_one)=(a3);
/*]*/
(/*SFN*/C->_arguments)=((T0*)n);
}
}


void r232fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r232to_integer_error(T232* C){
/*[IRF3.6append*/{T0* b1=((T0*)ms20_752996481);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position(/*(IRF4.6start_position*/(/*RF2*/(((T235*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
}
r82print_as_error((T82*)(oBC19eh));
}


T0* r232arg1(T232* C){
T0* R=NULL;
R=/*SSFRF4*//*X245first*//*(IRF4.3first*/(/*RF2*/((T245*)((/*RF2*/(C)->_arguments/*8*/)))->_first_one/*4*/)/*)*/;
return R;
}


void r232assertion_check(T232* C,T3 a1){
/*[IF*/
if((a1)==(((T3)'R'))){
{T104 se_tmp0;
X96vape_check_from((/*RF2*/(C)->_run_feature/*16*/),/*(IRF4.6start_position*/(/*RF2*/(((T235*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
}
}
/*FI]*/
X126assertion_check((/*RF2*/(C)->_target/*4*/),a1);
X126assertion_check(r232arg1(C),a1);
}


T0* r232result_type(T232* C){
T0* R=NULL;
T0* _tla=NULL;
R=X96result_type((/*RF2*/(C)->_run_feature/*16*/));
/*[IF*/
if(X62is_like_current(R)){
R=/*SSWARF2*//*X96current_type*/(/*RF2*/((T154*)((/*RF2*/(C)->_run_feature/*16*/)))->_current_type/*8*/);
}
else{
_tla=R;
if(NULL!=(_tla)){
switch(((T0*)_tla)->id){
case 355:
break;
default:
_tla=NULL;
}
}/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X62run_type(X126result_type(r232arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}


void r232afd_check(T232* C){
T0* _running=NULL;
T0* _rc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
_rc=X62run_class(X126result_type((/*RF2*/(C)->_target/*4*/)));
_running=(/*RF2*/(((T60*)_rc))->_running/*21*/);
/*[IF*/
if((_running)==((void*)(NULL))){
}
 else if((r63count(((T63*)_running)))>(1)){
r432update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*16*/));
}
/*FI]*/
}
/*FI]*/
X126afd_check((/*RF2*/(C)->_target/*4*/));
/*[IF*/
{/*AT*//*SSPRF3*//*X245afd_check*/r245afd_check((T245*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}


T6 r232use_current(T232* C){
T6 R=0;
/*[IF*/
{/*AT*/R=/*SSFRF4*//*X245use_current*/r245use_current((T245*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
/*[IF*/
if(R){
}
 else if(X126is_current((/*RF2*/(C)->_target/*4*/))){
R=X96use_current((/*RF2*/(C)->_run_feature/*16*/));
}
else{
R=X126use_current((/*RF2*/(C)->_target/*4*/));
}
/*FI]*/
return R;
}


void r232c_declare_for_old(T232* C){
X126c_declare_for_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
{/*AT*//*SSPRF3*//*X245c_declare_for_old*/r245c_declare_for_old((T245*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}


void r232compile_to_c_old(T232* C){
X126compile_to_c_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
{/*AT*//*SSPRF3*//*X245compile_to_c_old*/r245compile_to_c_old((T245*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}


T0* r232runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=X245to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X245start_position(a1),&se_tmp0)));
}
r232fatal_error(((T0*)ms20_462691396));
}
/*FI]*/
return R;
}


void r232mapping_c_target(T232* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r83call_invariant_start(a1);
_actual_type=X62run_type(r232result_type(C));
/*[IF*/
if(X62is_reference(_actual_type)){
/*[IF*/
if(X62is_reference(a1)){
X62mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T232* C1=C;
r83put_cpc((T83*)(oBC19cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T232* C1=C;
r83put_cpc((T83*)(oBC19cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X62is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T232* C1=C;
r83put_cpc((T83*)(oBC19cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X62need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T232* C1=C;
r83put_cpc((T83*)(oBC19cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T232* C1=C;
r83put_cpc((T83*)(oBC19cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


T0* r232run_feature_for(T232* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
_rt=X126result_type(a1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_rc=X62run_class(_rt);
/*[IF*/
if((_rc)!=((void*)(NULL))){
_bc=(/*RF2*/(((T60*)_rc))->_base_class/*8*/);
R=r61run_feature_for(((T61*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((R)==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/((T235*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms168_608361995);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
return R;
}


T2 r232to_integer_or_error(T232* C){
T2 R=0;
r232to_integer_error(C);
return R;
}


T0* r232add_comment(T232* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T323*n=((T323*)se_malloc(sizeof(*n))/*12*/);
*n=M323;
r323make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r232to_runnable(T232* C,T0* a1){
T0* R=NULL;
T0* _target_type=NULL;
T0* _argument_type=NULL;
T0* _rf=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r232runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
_a=r232runnable_args((/*RF2*/(C)->_arguments/*8*/),a1);
_target_type=X126result_type(_t);
_argument_type=X126result_type(r232arg1(C));
/*[IF*/
if(X62is_real(_argument_type)){
/*[IF*/
if(X62is_integer(_target_type)){
_t=r440implicit_cast((T440*)(oBC19conversion_handler),_t,_argument_type);
}
/*FI]*/
}
 else if(X62is_double(_argument_type)){
/*[IF*/
if((X62is_integer(_target_type))||(X62is_real(_target_type))){
_t=r440implicit_cast((T440*)(oBC19conversion_handler),_t,_argument_type);
}
/*FI]*/
}
/*FI]*/
_rf=r232run_feature_for(C,_t,a1);
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))==((void*)(NULL))){
(/*SFN*/C->_target)=_t;
(/*SFN*/C->_arguments)=_a;
(/*SFN*/C->_run_feature)=_rf;
r232run_feature_match(C,a1);
R=((T0*)(C));
}
 else if(((_t)==((void*)((/*RF2*/(C)->_target/*4*/))))&&((_a)==((void*)((/*RF2*/(C)->_arguments/*8*/))))){
R=((T0*)(C));
}
else{
{T232*n=((T232*)se_malloc(sizeof(*n))/*24*/);
*n=M232;
r232with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_a,_rf,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


void r232collect_c_tmp(T232* C){
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
X96collect_c_tmp((/*RF2*/(C)->_run_feature/*16*/));
}
/*FI]*/
X126collect_c_tmp((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*8*/))!=((void*)(NULL))){
/*SSPRF3*//*X245collect_c_tmp*/r245collect_c_tmp((T245*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}


void r232finalize(T232* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(/*RF2*/(C)->_run_feature/*16*/);
_rc=/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)_rf))->_run_class/*12*/);
(/*SFN*/C->_run_feature)=r60dynamic((T60*)(/*(IRF4.6first*/((/*RF2*/((T63*)((/*RF2*/(((T60*)_rc))->_running/*21*/)))->_storage/*4*/))[0]/*)*/),_rf);
}


T0* r232static_result_base_class(T232* C){
T0* R=NULL;
T0* _cn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _bc=NULL;
_bc=X126static_result_base_class((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if((_bc)!=((void*)(NULL))){
_e_feature=r61e_feature(((T61*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
/*[IF*/
if((_e_feature)!=((void*)(NULL))){
_rt=X99result_type(_e_feature);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_cn=X62static_base_class_name(_rt);
/*[IF*/
if((_cn)!=((void*)(NULL))){
R=r77base_class(((T77*)_cn));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


T6 r390stupid_switch_function(T0* a1,T0* a2){
T6 R=0;
return R;
}


void r390fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T6 r390stupid_switch_procedure(T0* a1,T0* a2){
T6 R=0;
return R;
}


void r390fe_c2c(T0* a1){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X96start_position(a1),&se_tmp0)));
}
r390fatal_error(((T0*)ms91_1031515224));
}


void r139gc_store_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_89821));
r2append_in(r139id(C),a1);
}
T0*oBC139unique_base_class_memory=NULL;
int fBC139unique_base_class_memory=0;


T0* r139unique_base_class_memory(void){
if(fBC139unique_base_class_memory==0){fBC139unique_base_class_memory=1;{
{T61*n=((T61*)se_malloc(sizeof(*n))/*62*/);
*n=M61;
oBC139unique_base_class_memory=((T0*)n);
r61make(n,((T0*)ms21_65574),((T0*)ms21_65574),11);
}
}}
return oBC139unique_base_class_memory;
}


void r139c_type_for_external_in(T0* a1){
/*[IF*/
{/*AT*/r7append(((T7*)a1),((T0*)ms20_18150));
r7extend(((T7*)a1),((T3)'\52'));
}
/*FI]*/
}


T2 r139count(T139* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_types/*36*/))!=((void*)(NULL))){
R=r147count((T147*)((/*RF2*/(C)->_types/*36*/)));
}
/*FI]*/
return R;
}


void r139gc_store_chunk_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_1403828457));
r2append_in(r139id(C),a1);
}


void r139standard_gc_define2(T139* C){
T6 _gc_check_id=0;
T2 _rcid=0;
T0* _rc=NULL;
_rc=r139run_class(C);
_rcid=(/*RF2*/(((T60*)_rc))->_id/*16*/);
r7copy((T7*)(oBC62header),((T0*)ms20_18150));
r7extend((T7*)(oBC62header),((T3)'\40'));
r7append((T7*)(oBC62header),((T0*)ms20_9980517));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_5161461));
r7copy((T7*)(oBC62body),((T0*)ms62_614));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_976559263));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1815688614));
r139gc_store_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_84678371));
r444memory_dispose(oBC62body,((T0*)ms62_604),r139run_class(C));
r7append((T7*)(oBC62body),((T0*)ms62_503314970));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms20_305));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_2045816469));
r444memory_dispose(oBC62body,((T0*)ms62_605),r139run_class(C));
r7append((T7*)(oBC62body),((T0*)ms62_720252832));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms20_305));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_2124916149));
r83put_c_function((T83*)(oBC19cpp),oBC62header,oBC62body);
r7copy((T7*)(oBC62header),((T0*)ms20_18150));
r7extend((T7*)(oBC62header),((T3)'\40'));
r139gc_mark_in(C,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_284));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_1646));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62body))))->_count)=(0);
/*]*/
_gc_check_id=(r60is_tagged(((T60*)_rc)))&&(r57no_check((T57*)(oBC19run_control)));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(oBC62body),((T0*)ms62_1985327250));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_6773));
}
/*FI]*/
r60gc_mark_fixed_size(((T60*)_rc),0,oBC62body);
/*[IF*/
if(_gc_check_id){
r7append((T7*)(oBC62body),((T0*)ms62_175));
}
/*FI]*/
r83put_c_function((T83*)(oBC19cpp),oBC62header,oBC62body);
r7copy((T7*)(oBC62header),((T0*)ms20_18150));
r7extend((T7*)(oBC62header),((T3)'\40'));
r139gc_align_mark_in(C,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_129037214));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_1651));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62body))))->_count)=(0);
/*]*/
r60gc_align_mark_fixed_size(((T60*)_rc),oBC62body);
r83put_c_function((T83*)(oBC19cpp),oBC62header,oBC62body);
r7copy((T7*)(oBC62header),((T0*)ms62_407207));
r2append_in(_rcid,oBC62header);
r7copy((T7*)(oBC62body),((T0*)ms62_2051940780));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1665297219));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1831440704));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_160930));
r83put_extern5((T83*)(oBC19cpp),oBC62header,oBC62body);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62header))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62header),((T3)'T'));
r2append_in(_rcid,oBC62header);
r7extend((T7*)(oBC62header),((T3)'\52'));
r7append((T7*)(oBC62header),((T0*)ms20_3374));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms20_215791));
r7copy((T7*)(oBC62body),((T0*)ms20_614));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_8305));
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_info_flag/*1*/)){
r139gc_info_nb_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_6755));
}
/*FI]*/
r7append((T7*)(oBC62body),((T0*)ms62_3175));
r139gc_store_left_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_46525));
r139gc_store_left_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_176986));
r139gc_store_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_411775958));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_479982486));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms20_305));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1748680500));
r139gc_store_left_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_236525));
r139gc_store_left_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_9130));
r139gc_store_chunk_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1648235130));
r139gc_store_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1800342110));
r7append((T7*)(oBC62body),((T0*)ms62_938298091));
r139gc_store_chunk_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_842464717));
r139gc_initialize_chunk(C,_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1704089558));
r139gc_store_chunk_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_672427151));
r139gc_store_chunk_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1562678200));
r139gc_store_chunk_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_8260));
r139gc_initialize_chunk(C,_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_1519036636));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_41861));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms20_305));
r139gc_free_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_69947558));
r139gc_store_chunk_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_54875475));
r139gc_initialize_chunk(C,_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_433411101));
/*[IF*/
if(r139need_c_struct(C)){
r7append((T7*)(oBC62body),((T0*)ms62_1196941282));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms20_305));
}
/*FI]*/
r7append((T7*)(oBC62body),((T0*)ms62_54686284));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms62_171955));
r83put_c_function((T83*)(oBC19cpp),oBC62header,oBC62body);
}


void r139standard_gc_define1(T139* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r139run_class(C);
_rcid=(/*RF2*/(((T60*)_rc))->_id/*16*/);
r7copy((T7*)(oBC62header),((T0*)ms20_11381817));
r7append((T7*)(oBC62header),((T0*)ms20_2248337));
r7extend((T7*)(oBC62header),((T3)'B'));
r2append_in(_rcid,oBC62header);
r7extend((T7*)(oBC62header),((T3)'\40'));
r7append((T7*)(oBC62header),((T0*)ms20_614));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms20_305));
r7append((T7*)(oBC62header),((T0*)ms20_2248337));
r7extend((T7*)(oBC62header),((T3)'B'));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_699));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_1527651872));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms62_1126647264));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62header);
/*]*/
r7copy((T7*)(oBC62header),((T0*)ms20_614));
r2append_in(_rcid,oBC62header);
r7extend((T7*)(oBC62header),((T3)'\52'));
r139gc_store_in(C,oBC62header);
r83put_extern5((T83*)(oBC19cpp),oBC62header,((T0*)ms20_12331));
r7copy((T7*)(oBC62header),((T0*)ms20_3291));
r7extend((T7*)(oBC62header),((T3)'\40'));
r139gc_store_left_in(C,oBC62header);
r83put_extern2((T83*)(oBC19cpp),oBC62header,((T3)'0'));
r7copy((T7*)(oBC62header),((T0*)ms62_81437));
r139gc_store_chunk_in(C,oBC62header);
r83put_extern5((T83*)(oBC19cpp),oBC62header,((T0*)ms20_12331));
r7copy((T7*)(oBC62header),((T0*)ms20_614));
r2append_in(_rcid,oBC62header);
r7extend((T7*)(oBC62header),((T3)'\52'));
r139gc_free_in(C,oBC62header);
r83put_extern5((T83*)(oBC19cpp),oBC62header,((T0*)ms20_12331));
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_info_flag/*1*/)){
r7copy((T7*)(oBC62header),((T0*)ms20_3291));
r7extend((T7*)(oBC62header),((T3)'\40'));
r139gc_info_nb_in(C,oBC62header);
r83put_extern2((T83*)(oBC19cpp),oBC62header,((T3)'0'));
}
/*FI]*/
}


T6 r139is_native_array(T139* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}


void r139gc_mark_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(r139id(C),a1);
}


void r139load_basic_features(T139* C){
/*[IF*/
if(!((/*RF2*/(C)->_load_basic_features_flag/*44*/))){
(/*SFN*/C->_load_basic_features_flag)=1;
r60definitions_for_tuple((T60*)(r139run_class(C)),(T0*)C,(/*RF2*/(C)->_run_types/*40*/));
}
/*FI]*/
}


T2 r139id(T139* C){
T2 R=0;
R=(/*RF2*/((T60*)(r139run_class(C)))->_id/*16*/);
return R;
}


void r139fatal_not_yet_implemented(T139* C,T0* a1){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*12*/));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms139_327916);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms139_1246443131);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T2 r139c_sizeof_pointer(void){
T2 R=0;
T8 _p=NULL;
R=sizeof(T8);
return R;
}


void r139mapping_cast(T139* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62mapping_cast_buffer))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\50'));
r139c_type_for_target_in(C,oBC62mapping_cast_buffer);
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\51'));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62mapping_cast_buffer);
/*]*/
}


void r139standard_gc_info_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_1419822228a));
r7append(((T7*)a1),(/*RF2*/(C)->_run_time_mark/*28*/));
r7append(((T7*)a1),((T0*)ms20_17723839));
r139gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms20_1330));
r7append(((T7*)a1),((T0*)ms62_1419822228));
r139gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms20_17723839));
r139gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms20_1330));
}


void r139standard_c_typedef(T139* C){
T2 _mem_id=0;
_mem_id=r139id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62tmp_string))))->_count)=(0);
/*]*/
/*[IF*/
if(r139need_c_struct(C)){
r7append((T7*)(oBC62tmp_string),((T0*)ms20_11381817));
r7append((T7*)(oBC62tmp_string),((T0*)ms20_2248337));
r7extend((T7*)(oBC62tmp_string),((T3)'S'));
r2append_in(_mem_id,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7extend((T7*)(oBC62tmp_string),((T3)'T'));
r2append_in(_mem_id,oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
}
/*AF*/ else {/*AT*/r7append((T7*)(oBC62tmp_string),((T0*)ms20_11381817));
r7append((T7*)(oBC62tmp_string),((T0*)ms20_18150));
r7extend((T7*)(oBC62tmp_string),((T3)'\52'));
r7extend((T7*)(oBC62tmp_string),((T3)'T'));
r2append_in(_mem_id,oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62tmp_string);
/*]*/
}


T6 r139stupid_switch(T139* C,T0* a1){
T6 R=0;
R=((/*RF2*/(C)->_written_mark/*24*/))==((void*)((/*RF2*/(C)->_run_time_mark/*28*/)));
return R;
}


void r139c_frame_descriptor(T139* C){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
{/*AT*/r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'R'));
}
/*FI]*/
r2append_in(r139id(C),oBC19c_frame_descriptor_format);
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
}


void r139make(T139* C,T104 a1,T0* a2){
T0* _type=NULL;
T6 _is_written_runnable=0;
T2 _i=0;
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_types)=a2;
(/*SFN*/C->_base_class_memory)=r139unique_base_class_memory();
{T104 se_tmp0;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_65574),(/*RF2*/(C)->_start_position/*12*/));
(/*SFN*/C->_base_class_name)=((T0*)n);
}
}
(/*SFN*/C->_written_mark)=r139compute_mark((/*RF2*/(C)->_types/*36*/));
/*[IF*/
if(((/*RF2*/(C)->_types/*36*/))!=((void*)(NULL))){
_i=(/*RF2*/((T147*)((/*RF2*/(C)->_types/*36*/)))->_upper/*8*/);
_is_written_runnable=1;
while (!((!(_is_written_runnable))||((_i)<((/*RF2*/((T147*)((/*RF2*/(C)->_types/*36*/)))->_lower/*12*/)))))
{
_type=r147item((T147*)((/*RF2*/(C)->_types/*36*/)),_i);
/*[IF*/
if(X62is_run_type(_type)){
/*[IF*/
if((X62run_type(_type))!=((void*)(_type))){
_is_written_runnable=0;
}
/*FI]*/
}
else{
_is_written_runnable=0;
}
/*FI]*/
_i=(_i)-(1);
}
}
else{
_is_written_runnable=1;
}
/*FI]*/
/*[IF*/
if(_is_written_runnable){
(/*SFN*/C->_run_types)=(/*RF2*/(C)->_types/*36*/);
(/*SFN*/C->_run_time_mark)=(/*RF2*/(C)->_written_mark/*24*/);
(/*SFN*/C->_run_type)=((T0*)(C));
}
/*FI]*/
}


T0* r139string_aliaser(void){
if(fBC19string_aliaser==0){fBC19string_aliaser=1;{
{T27*n=((T27*)se_malloc(1));
oBC19string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2104);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53339);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33156840);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1339128);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_836969340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33120277);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_774649014);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_168164374);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_274599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_171638715);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_175767198);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_867350214);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1384826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35866627);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35868574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7173699);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_286922);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_179371455);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1447702);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_904828090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_295849);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_349117293);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12184);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7704337);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1554777);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_971749965);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12376);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7749340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_324411);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_520438282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1692780980);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_65574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3075);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9647090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_64);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_552);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_61);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_371);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_62);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067995);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_361);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_60);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_45);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_296);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3421);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2126626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_43);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1960);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1972);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_47);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9529116);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_77832);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_280482649));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_386854);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9676326);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1597390874));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_49076823);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_79341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_247239028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94407393);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_840111968);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1236707441);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15831);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810604);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1680885744);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244781926);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244783893);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1223936132);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_48958735);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1622700141);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1979951);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_936296820);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1949019648);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_705019679);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1286698901);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10018876);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50778415);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_397576);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15932);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80109);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80416);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80694);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2023685073);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_406284);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067759348);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2090604340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_880412606);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50246319);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_636);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_619776399));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1744612358);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1937220099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_378799862);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10377643);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1297876698);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16639);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16616);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_84969);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16686);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1856946950));
r27special_add(((T0*)ms21_1740332382));
r27special_add(((T0*)ms21_111802057));
r27special_add(((T0*)ms21_756809447));
r27special_add(((T0*)ms21_1419919903));
r27special_add(((T0*)ms21_275488632));
r27special_add(((T0*)ms21_1377517899));
r27special_add(((T0*)ms21_698215697));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1326673961);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_954385774);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1778079380);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_87541);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10945665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_849712179);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3501);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88048);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88049);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_573080478);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54325331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_41849945);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2174354);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_438300);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187464);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187483);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733071);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_733277224);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54749764);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11011040);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_112335826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11026665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1507243919);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1053896806);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591414963);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_267647687);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591417242);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447584);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_89510);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447851);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55924644);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55926626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279656751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2246041);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88795);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_446841);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1607595572);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55868341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279416444);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279523519);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2236118);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1574640467);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1742738754);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_18110);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_90544);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1202672333);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_287359706);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1501191);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1498845794);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2038667775);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42134669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_337331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_14150);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC19string_aliaser;
}


T0* r139base_class(T139* C){
T0* R=NULL;
T0* _bcn=NULL;
/*[IF*/
if(((/*RF2*/(C)->_base_class_memory/*4*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
_bcn=(/*RF2*/(C)->_base_class_name/*20*/);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
(/*SFN*/C->_base_class_memory)=r77base_class(((T77*)_bcn));
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms62_432936020);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_type((T0*)C,((T0*)ms20_46));
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
return R;
}


void r139standard_c_print_function(T139* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r60c_print_function((T60*)(r139run_class(C)));
}
/*FI]*/
}


T6 r139need_c_struct(T139* C){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_types/*36*/))!=((void*)(NULL))){
R=1;
}
else{
R=r60is_tagged((T60*)(r139run_class(C)));
}
/*FI]*/
return R;
}
T0*oBC139compute_mark_buffer=NULL;


void r139c_type_for_target_in(T139* C,T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r2append_in(r139id(C),a1);
r7extend(((T7*)a1),((T3)'\52'));
}


T0* r139compute_mark(T0* a1){
T0* R=NULL;
T2 _i=0;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC139compute_mark_buffer))))->_count)=(0);
/*]*/
r7append((T7*)(oBC139compute_mark_buffer),((T0*)ms21_65574));
/*[IF*/
if((a1)!=((void*)(NULL))){
r7extend((T7*)(oBC139compute_mark_buffer),((T3)'\133'));
_i=(/*RF2*/(((T147*)a1))->_lower/*12*/);
while (!((_i)>((/*RF2*/(((T147*)a1))->_upper/*8*/))))
{
r7append((T7*)(oBC139compute_mark_buffer),X62written_mark(r147item(((T147*)a1),_i)));
/*[IF*/
if((_i)<((/*RF2*/(((T147*)a1))->_upper/*8*/))){
r7extend((T7*)(oBC139compute_mark_buffer),((T3)'\54'));
}
/*FI]*/
_i=(_i)+(1);
}
r7extend((T7*)(oBC139compute_mark_buffer),((T3)'\135'));
}
/*FI]*/
R=((/*UT*/(void)((T27*)(r139string_aliaser()))),r27item(oBC139compute_mark_buffer));
return R;
}


void r139gc_free_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_1994331));
r2append_in(r139id(C),a1);
}


T6 r139is_a_in(T139* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*24*/))==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r139to_runnable(C,_ct);
_t2=X62to_runnable(a1,_ct);
/*[IF*/
if((X62run_time_mark(_t1))==((void*)(X62run_time_mark(_t2)))){
R=1;
}
else{
R=X62is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r139demangling_in(T139* C,T0* a1){
/*[IF*/
{/*AT*/r7extend(((T7*)a1),((T3)'R'));
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),(/*RF2*/(C)->_run_time_mark/*28*/));
}


void r139gc_align_mark_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_1085305030));
r2append_in(r139id(C),a1);
}


void r139standard_c_struct(T139* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=r139id(C);
_wa=r60writable_attributes((T60*)(r139run_class(C)));
r7copy((T7*)(oBC62tmp_string),((T0*)ms20_2248337));
r7extend((T7*)(oBC62tmp_string),((T3)'S'));
r2append_in(_mem_id,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\173'));
/*[IF*/
{/*AT*//*[IF*/
if(r60is_tagged((T60*)(r139run_class(C)))){
r7append((T7*)(oBC62tmp_string),((T0*)ms62_1710309));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(/*RF2*/(((T445*)_wa))->_upper/*12*/);
while (!((_i)==(0)))
{
_a=r445item(((T445*)_wa),_i);
_t=X62run_type((/*RF2*/(((T152*)_a))->_result_type/*32*/));
X62c_type_for_result_in(_t,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7extend((T7*)(oBC62tmp_string),((T3)'\137'));
r7append((T7*)(oBC62tmp_string),X117to_string((/*RF2*/(((T152*)_a))->_name/*16*/)));
r7extend((T7*)(oBC62tmp_string),((T3)'\73'));
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(oBC62tmp_string),((T3)'\175'));
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62tmp_string);
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}


void r139gc_initialize_chunk(T139* C,T2 a1,T0* a2){
r7extend(((T7*)a2),((T3)'\52'));
r139gc_store_chunk_in(C,a2);
r7append(((T7*)a2),((T0*)ms20_377));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms20_305));
r139gc_store_in(C,a2);
r7append(((T7*)a2),((T0*)ms62_44739));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms62_32605));
r139gc_store_chunk_in(C,a2);
r7append(((T7*)a2),((T0*)ms62_212314278));
r139gc_store_left_in(C,a2);
r7append(((T7*)a2),((T0*)ms20_377));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms62_365929075));
r139gc_store_in(C,a2);
r7append(((T7*)a2),((T0*)ms62_169510));
}


void r139id_extra_information(T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
{/*AT*/r58put_string(((T58*)a1),((T0*)ms62_18257));
}
/*FI]*/
}


T6 r139is_a(T139* C,T0* a1){
T6 R=0;
T0* _t2=NULL;
T0* _t1=NULL;
T2 _i=0;
T0* _other_run_types=NULL;
T0* _other_tuple=NULL;
R=1;
_other_tuple=X62run_type(a1);
if(NULL!=(_other_tuple)){
switch(((T0*)_other_tuple)->id){
case 139:
break;
default:
_other_tuple=NULL;
}
}/*[IF*/
if((_other_tuple)!=((void*)(NULL))){
/*[IF*/
if((r139count(((T139*)_other_tuple)))>(r139count(C))){
R=0;
}
else{
_other_run_types=(/*RF2*/(((T139*)_other_tuple))->_run_types/*40*/);
/*[IF*/
if((_other_run_types)!=((void*)(NULL))){
_i=(/*RF2*/(((T147*)_other_run_types))->_upper/*8*/);
}
/*FI]*/
while (!((!(R))||((_i)<=(0))))
{
_t1=r147item((T147*)((/*RF2*/(C)->_run_types/*40*/)),_i);
_t2=r147item(((T147*)_other_run_types),_i);
/*[IF*/
if(X62is_a(_t1,_t2)){
_i=(_i)-(1);
}
else{
R=0;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(_t1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(_t2),&se_tmp0)));
}
}
/*FI]*/
}
}
/*FI]*/
}
else{
R=0;
}
/*FI]*/
/*[IF*/
if(!(R)){
r82add_type((T0*)C,((T0*)ms20_1308256781));
r82add_type(a1,((T0*)ms139_46));
}
/*FI]*/
return R;
}


T0* r139to_runnable(T139* C,T0* a1){
T0* R=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_run_time_mark/*28*/))==((void*)((/*RF2*/(C)->_written_mark/*24*/)))){
/*[IF*/
if(((/*RF2*/(C)->_run_types/*40*/))!=((void*)(NULL))){
_i=(/*RF2*/((T147*)((/*RF2*/(C)->_run_types/*40*/)))->_lower/*12*/);
while (!((_i)>((/*RF2*/((T147*)((/*RF2*/(C)->_run_types/*40*/)))->_upper/*8*/))))
{
_t1=r147item((T147*)((/*RF2*/(C)->_run_types/*40*/)),_i);
_t2=X62to_runnable(_t1,a1);
_i=(_i)+(1);
}
}
/*FI]*/
r139load_basic_features(C);
R=((T0*)(C));
}
else{
r139fatal_not_yet_implemented(C,((T0*)ms139_1397880841));
}
/*FI]*/
return R;
}


void r139standard_c_object_model(T139* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=r139run_class(C);
_mem_id=(/*RF2*/(((T60*)_rc))->_id/*16*/);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62tmp_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62tmp_string),((T3)'T'));
r2append_in(_mem_id,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7extend((T7*)(oBC62tmp_string),((T3)'M'));
r2append_in(_mem_id,oBC62tmp_string);
r83put_extern7((T83*)(oBC19cpp),oBC62tmp_string);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62tmp_string))))->_count)=(0);
/*]*/
r60c_object_model_in(((T60*)_rc),oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62tmp_string);
/*]*/
r83swap_on_h((T83*)(oBC19cpp));
}


void r139gc_store_left_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_280766651));
r2append_in(r139id(C),a1);
}


T0* r139run_class(T139* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else if(/*(IRF4.7is_run_type*/((/*RF2*/(C)->_run_type/*32*/))!=(NULL)/*)*/){
(/*SFN*/C->_run_class_memory)=r59run_class((/*RF2*/(C)->_run_type/*32*/));
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


void r139c_header_pass4(T139* C){
T0* _t=NULL;
T2 _i=0;
/*[IF*/
if(r139need_c_struct(C)){
r139standard_c_struct(C);
r139standard_c_object_model(C);
}
/*FI]*/
r139standard_c_print_function(C);
r7copy((T7*)(oBC62header),((T0*)ms139_410482645));
r2append_in(r139id(C),oBC62header);
r7extend((T7*)(oBC62header),((T3)'\50'));
/*[IF*/
if(((/*RF2*/(C)->_run_types/*40*/))!=((void*)(NULL))){
_i=(/*RF2*/((T147*)((/*RF2*/(C)->_run_types/*40*/)))->_lower/*12*/);
while (!((_i)>((/*RF2*/((T147*)((/*RF2*/(C)->_run_types/*40*/)))->_upper/*8*/))))
{
_t=r147item((T147*)((/*RF2*/(C)->_run_types/*40*/)),_i);
X62c_type_for_argument_in(_t,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms139_265));
r2append_in(_i,oBC62header);
/*[IF*/
if((_i)<((/*RF2*/((T147*)((/*RF2*/(C)->_run_types/*40*/)))->_upper/*8*/))){
r7extend((T7*)(oBC62header),((T3)'\54'));
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
r7extend((T7*)(oBC62header),((T3)'\51'));
r83put_c_heading((T83*)(oBC19cpp),oBC62header);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
r444allocation((T444*)(oBC19gc_handler),r139run_class(C));
/*[IF*/
if(((/*RF2*/(C)->_run_types/*40*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_853752579));
/*]*/
/*[IF*/
if((r147count((T147*)((/*RF2*/(C)->_run_types/*40*/))))>=(2)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_139180801));
/*]*/
}
/*FI]*/
/*[IF*/
if((r147count((T147*)((/*RF2*/(C)->_run_types/*40*/))))>=(3)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_827568154));
/*]*/
}
/*FI]*/
/*[IF*/
if((r147count((T147*)((/*RF2*/(C)->_run_types/*40*/))))>=(4)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_39130851));
/*]*/
}
/*FI]*/
/*[IF*/
if((r147count((T147*)((/*RF2*/(C)->_run_types/*40*/))))>=(5)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_854711854));
/*]*/
}
/*FI]*/
_i=6;
while (!((_i)>((/*RF2*/((T147*)((/*RF2*/(C)->_run_types/*40*/)))->_upper/*8*/))))
{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_47833290));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_410));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_109));
/*]*/
_i=(_i)+(1);
}
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms139_1141224284));
/*]*/
r83swap_on_h((T83*)(oBC19cpp));
}


void r139standard_just_before_gc_mark_in(T139* C,T0* a1){
r139gc_free_in(C,a1);
r7extend(((T7*)a1),((T3)'\75'));
r7append(((T7*)a1),((T0*)ms20_12331));
r7append(((T7*)a1),((T0*)ms20_305));
}


T0* r139smallest_ancestor(T139* C,T0* a1){
T0* R=NULL;
r139fatal_not_yet_implemented(C,((T0*)ms139_1140322163));
return R;
}


void r139gc_info_nb_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_249330648));
r2append_in(r139id(C),a1);
}


void r139gc_call_new_in(T139* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(r139id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r366c_initialize_in(T0* a1){
/*[IF*/
{/*AT*/r7append(((T7*)a1),((T0*)ms20_12331));
}
/*FI]*/
}


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


T0* r366generic_list(T366* C){
T0* R=NULL;
r366fatal_error_generic_list(C);
return R;
}


T0* r366written_mark(void){
T0* R=NULL;
R=((T0*)ms21_1554777);
return R;
}


T6 r366has_creation(T366* C,T0* a1){
T6 R=0;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r366error(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,((T0*)ms361_849282034));
}
return R;
}


T0* r366run_time_mark(void){
T0* R=NULL;
R=((T0*)ms21_1554777);
return R;
}


void r366error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T6 r366is_native_array(T366* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}


void r366gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(8,a1);
}


T2 r366c_sizeof_pointer(void){
T2 R=0;
T8 _p=NULL;
R=sizeof(T8);
return R;
}


void r366fatal_error_generic_list(T366* C){
r82add_type((T0*)C,((T0*)ms62_1313445026));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r366c_type_for_argument_in(T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r7extend(((T7*)a1),((T3)'8'));
}


void r366make(T366* C,T104 a1){
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_1554777),a1);
(/*SFN*/C->_base_class_name)=((T0*)n);
}
}


T0* r366base_class(T366* C){
T0* R=NULL;
T0* _bcn=NULL;
/*[IF*/
if(((/*RF2*/(C)->_base_class_memory/*4*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
_bcn=(/*RF2*/(C)->_base_class_name/*12*/);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
(/*SFN*/C->_base_class_memory)=r77base_class(((T77*)_bcn));
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms62_432936020);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_type((T0*)C,((T0*)ms20_46));
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
return R;
}
T0*oBC366type_pointer_ref=NULL;
int fBC366type_pointer_ref=0;


T0* r366type_pointer_ref(void){
if(fBC366type_pointer_ref==0){fBC366type_pointer_ref=1;{
T0* _pointer_ref=NULL;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
/*[IRF3.3unknown_position*/((((T77*)(n)))->_to_string)=(((T0*)ms21_971749965));
/*]*/
_pointer_ref=((T0*)n);
}
{T369*n=((T369*)se_malloc(sizeof(*n))/*16*/);
*n=M369;
oBC366type_pointer_ref=((T0*)n);
/*[IRF3.3make*/((((T369*)(n)))->_base_class_name)=(_pointer_ref);
/*]*/
}
}}
return oBC366type_pointer_ref;
}
int fBC366check_type=0;


void r366check_type(T366* C){
if(fBC366check_type==0){fBC366check_type=1;{
T0* _rc=NULL;
T0* _bc=NULL;
_bc=r366base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
_rc=r366run_class(C);
r366load_ref(((T0*)ms21_971749965));
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(!((/*RF2*/(((T61*)_bc))->_is_expanded/*17*/))){
{T104 se_tmp0;
r366error(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,((T0*)ms366_1872190535));
}
}
/*FI]*/
}
/*FI]*/
}}}


T0* r366actual_reference(T0* a1){
T0* R=NULL;
T0* _cn=NULL;
/*[IF*/
if((X62run_time_mark(a1))==((void*)(((T0*)ms21_971749965)))){
R=a1;
}
else{
{T104 se_tmp0;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_971749965),(*(se_tmp0=X62start_position(a1),&se_tmp0)));
_cn=((T0*)n);
}
}
{T369*n=((T369*)se_malloc(sizeof(*n))/*16*/);
*n=M369;
/*[IRF3.3make*/((((T369*)(n)))->_base_class_name)=(_cn);
/*]*/
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T6 r366is_a_in(T366* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r366written_mark())==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r366to_runnable(C,_ct);
_t2=X62to_runnable(a1,_ct);
/*[IF*/
if((X62run_time_mark(_t1))==((void*)(X62run_time_mark(_t2)))){
R=1;
}
else{
R=X62is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


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


void r366id_extra_information(T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
/*AF*//*AE*/
r58put_string(((T58*)a1),((T0*)ms62_3337));
/*FI]*/
}


T6 r366is_a(T366* C,T0* a1){
T6 R=0;
/*[IF*/
if(X62is_pointer(a1)){
R=1;
}
else{
R=r61is_subclass_of((T61*)(r366base_class(C)),X62base_class(a1));
}
/*FI]*/
/*[IF*/
if(!(R)){
r82add_type((T0*)C,((T0*)ms366_337310553));
r82add_type(a1,((T0*)ms20_46));
}
/*FI]*/
return R;
}


void r366load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
_rc=r59run_class_for(a1);
_rf=r60get_feature_with(((T60*)_rc),((T0*)ms21_16639));
}


T0* r366to_runnable(T366* C,T0* a1){
T0* R=NULL;
R=((T0*)(C));
r366check_type(C);
return R;
}


T0* r366run_class(T366* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else {/*AT*/(/*SFN*/C->_run_class_memory)=r59run_class(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


T0* r366smallest_ancestor(T366* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X62run_type(a1);
/*[IF*/
if(X62is_pointer(_rto)){
R=((T0*)(C));
}
else{
R=r369smallest_ancestor((T369*)(r366type_pointer_ref()),_rto);
}
/*FI]*/
return R;
}


void r366gc_call_new_in(T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(8,a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r437fe_vffd7(T437* C){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position((/*RF2*/(C)->_result_type/*36*/)),&se_tmp0)));
}
r437fatal_error(((T0*)ms96_1888555933));
}


T6 r437is_exported_in(T437* C,T0* a1){
T6 R=0;
R=r200gives_permission_to((T200*)(r437clients(C)),a1);
return R;
}


T6 r437is_static(T437* C){
T6 R=0;
R=X126is_static((/*RF2*/(C)->_value/*32*/));
return R;
}


T2 r437id(T437* C){
T2 R=0;
R=X62id((/*RF2*/(C)->_current_type/*8*/));
return R;
}


void r437mapping_c(T437* C){
T0* _real_constant=NULL;
/*[IF*/
if(X62is_double((/*RF2*/(C)->_result_type/*36*/))){
_real_constant=(/*RF2*/(C)->_value/*32*/);
if(NULL!=(_real_constant)){
switch(((T0*)_real_constant)->id){
case 264:
break;
default:
_real_constant=NULL;
}
}/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T264*)_real_constant))->_to_string/*12*/));
/*]*/
}
else{
X126compile_to_c((/*RF2*/(C)->_value/*32*/));
}
/*FI]*/
}


void r437c_frame_descriptor_name_in(T437* C,T0* a1){
r7extend(((T7*)a1),((T3)'f'));
r2append_in(r437id(C),a1);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),a1);
}


T2 r437static_value_mem(T437* C){
T2 R=0;
R=X126static_value((/*RF2*/(C)->_value/*32*/));
return R;
}


T0* r437stupid_switch(T437* C,T0* a1){
T0* R=NULL;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_stupid_switch_state/*24*/);
switch(z1){
case 12:
R=((T0*)ms437_1608699);
break;
case 11:
break;
case 13:
(/*SFN*/C->_stupid_switch_state)=14;
r437compute_stupid_switch(C,a1);
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(12)){
R=((T0*)ms437_1608699);
}
/*FI]*/
break;
default:;
}
}/*INSPECT]*/
return R;
}


void r437make(T437* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_run_class)=X62run_class(a1);
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r60add_run_feature((T60*)((/*RF2*/(C)->_run_class/*12*/)),(T0*)C,a2);
r59incr_magic_count((T59*)(oBC19small_eiffel));
(/*SFN*/C->_use_current_state)=13;
(/*SFN*/C->_stupid_switch_state)=13;
r59push((T0*)C);
r437initialize(C);
/*[IRF3.2pop*//*SSPRF3*//*X155remove_last*/r155remove_last((T155*)(oBC59run_feature_stack));
/*]*/
}


void r437fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T6 r437use_current(T437* C){
T6 R=0;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_use_current_state/*20*/);
switch(z1){
case 12:
R=1;
break;
case 11:
break;
case 13:
(/*SFN*/C->_use_current_state)=14;
/*[IRF3.3compute_use_current*/((((T437*)(C)))->_use_current_state)=(11);
/*]*/
R=((/*RF2*/(C)->_use_current_state/*20*/))==(12);
break;
default:;
R=1;
}
}/*INSPECT]*/
return R;
}


void r437compute_stupid_switch(T437* C,T0* a1){
(/*SFN*/C->_stupid_switch_state)=12;
}


void r437c_assertion_flag(T437* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r437c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms96_334284767));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}


void r437address_of_c_define(T437* C,T0* a1){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r254start_position(((T254*)a1)),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r437start_position(C),&se_tmp0)));
}
r437fatal_error(((T0*)ms437_1084568520));
}


void r437fall_down(T437* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=(/*RF2*/(C)->_run_class/*12*/);
_running=(/*RF2*/(((T60*)_current_rc))->_running/*21*/);
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_i=(/*RF2*/(((T63*)_running))->_lower/*16*/);
while (!((_i)>((/*RF2*/(((T63*)_running))->_upper/*12*/))))
{
_sub_rc=r63item(((T63*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X62base_class((/*RF2*/(((T60*)_sub_rc))->_current_type/*0*/));
_sub_name=r61new_name_of(((T61*)_sub_bc),_current_bc,(/*RF2*/(C)->_name/*16*/));
_rf=r60get_feature(((T60*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}


void r437initialize(T437* C){
T0* _original_name=NULL;
T0* _bc=NULL;
T2 _i=0;
(/*SFN*/C->_result_type)=/*SSWARF2*//*X141result_type*/(/*RF2*/((T293*)((/*RF2*/(C)->_base_feature/*28*/)))->_result_type/*20*/);
(/*SFN*/C->_result_type)=X62to_runnable((/*RF2*/(C)->_result_type/*36*/),(/*RF2*/(C)->_current_type/*8*/));
_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_original_name=r61original_name(((T61*)_bc),/*SSWARF2*//*X141base_class*/(/*RF2*/((T293*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/),(/*RF2*/(C)->_name/*16*/));
_i=r118index_of((T118*)(/*SSWARF2*//*X141names*/(/*RF2*/((T293*)((/*RF2*/(C)->_base_feature/*28*/)))->_names/*8*/)),_original_name);
(/*SFN*/C->_value)=X141value((/*RF2*/(C)->_base_feature/*28*/),_i);
(/*SFN*/C->_value)=X126to_runnable((/*RF2*/(C)->_value/*32*/),(/*RF2*/(C)->_current_type/*8*/));
}


T0* r437clients(T437* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=/*SSWARF2*//*X141base_class*/(/*RF2*/((T293*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=/*SSWARF2*//*X141clients*/(/*RF2*/((T293*)((/*RF2*/(C)->_base_feature/*28*/)))->_clients/*16*/);
}
else{
R=r61clients_for(((T61*)_bc),(/*RF2*/(C)->_name/*16*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}


T104 r437start_position(T437* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X141start_position((/*RF2*/(C)->_base_feature/*28*/)),&se_tmp0));
}
return R;
}


void r152fe_vffd7(T152* C){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position((/*RF2*/(C)->_result_type/*32*/)),&se_tmp0)));
}
r152fatal_error(((T0*)ms96_1888555933));
}


T6 r152is_exported_in(T152* C,T0* a1){
T6 R=0;
R=r200gives_permission_to((T200*)(r152clients(C)),a1);
return R;
}


T2 r152id(T152* C){
T2 R=0;
R=X62id((/*RF2*/(C)->_current_type/*8*/));
return R;
}

