/*
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 r115default_mapping_procedure(T115* C){
r115default_mapping_function(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}


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


void r115c_plus_plus_prototype(T115* C,T0* a1){
T0* _comment=NULL;
_comment=oBC96c_plus_plus_prototype_buffer;
r7copy(((T7*)_comment),((T0*)ms96_293181954));
r7append(((T7*)_comment),(/*RF2*/((T77*)((/*RF2*/((T61*)(/*SSWARF2*//*X97base_class*/(/*RF2*/(((T116*)a1))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/));
r7extend(((T7*)_comment),((T3)'\56'));
r7append(((T7*)_comment),X117to_string((/*RF2*/(C)->_name/*16*/)));
r7append(((T7*)_comment),((T0*)ms96_10));
r115external_prototype_for(C,_comment,a1);
r83put_c_heading((T83*)(oBC19cpp),oBC96c_code);
}


T6 r115is_exported_in(T115* C,T0* a1){
T6 R=0;
R=r200gives_permission_to((T200*)(r115clients(C)),a1);
return R;
}


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


void r115mapping_c(T115* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(/*RF2*/(C)->_base_feature/*28*/);
_native=(/*RF2*/(((T116*)_bf))->_native/*40*/);
_bcn=(/*RF2*/((T77*)((/*RF2*/((T61*)((/*RF2*/(((T116*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
X91c_mapping_procedure(_native,(T0*)C,_bcn,X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T116*)_bf))->_names/*8*/))))->_first/*0*/)/*)*/));
}


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


void r115external_prototype(T115* C,T0* a1){
r115external_prototype_for(C,((T0*)ms96_1334667838),a1);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
r83swap_on_h((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
}


void r115mapping_name(T115* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'r'));
r2append_in(r115id(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 r115put_c_name_tag(T115* 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=/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T116*)((/*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*)(/*(IRF4.6base_class_name*/(/*RF2*/(((T61*)((/*RF2*/((T116*)((/*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*/))));
}/*]*/
/*]*/
}


void r115std_compute_use_current(T115* 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*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
/*[IF*/
if(r309use_current((T309*)((/*RF2*/(C)->_ensure_assertion/*40*/)))){
(/*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]*/
}


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


void r115c_frame_descriptor(T115* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1200006371));
r115c_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*/))));
}/*]*/
/*]*/
r115put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IF*/
if(r115use_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 r115make(T115* 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);
r115initialize(C);
/*[IRF3.2pop*//*SSPRF3*//*X155remove_last*/r155remove_last((T155*)(oBC59run_feature_stack));
/*]*/
}


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


void r115routine_afd_check(T115* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r427afd_check((T427*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r309afd_check((T309*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}


T6 r115use_current(T115* 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;
r115compute_use_current(C);
R=((/*RF2*/(C)->_use_current_state/*20*/))==(12);
break;
default:;
R=1;
}
}/*INSPECT]*/
return R;
}


void r115compute_use_current(T115* C){
/*[IF*/
if(r116use_current((T116*)((/*RF2*/(C)->_base_feature/*28*/)))){
(/*SFN*/C->_use_current_state)=12;
}
else{
r115std_compute_use_current(C);
}
/*FI]*/
}


void r115c_define_opening(T115* 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*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r309c_declare_for_old((T309*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*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]*/
r115c_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/*40*/))!=((void*)(NULL))){
r309compile_to_c_old((T309*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r427compile_to_c((T427*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}


void r115compute_stupid_switch(T115* C,T0* a1){
/*[IF*/
if(X91stupid_switch_procedure((/*RF2*/((T116*)((/*RF2*/(C)->_base_feature/*28*/)))->_native/*40*/),a1,X117to_string((/*RF2*/(C)->_name/*16*/)))){
(/*SFN*/C->_stupid_switch_state)=12;
}
else{
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
}


void r115c_initialize_ds_one_by_one(T115* C){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1775507635));
r115c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IF*/
if(r115use_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(/*(IRF4.6start_position*/(*(se_tmp0=r116start_position(((T116*)((/*RF2*/(C)->_base_feature/*28*/)))),&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 r115c_define_with_body(T115* C,T0* a1){
r115define_prototype(C);
r115c_define_opening(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a1);
/*]*/
r115c_define_closing(C);
/*[IF*/
{/*AT*//*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
/*FI]*/
r115c_frame_descriptor(C);
}


void r115c_assertion_flag(T115* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r115c_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 r115external_prototype_for(T115* C,T0* a1,T0* a2){
T0* _t=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7append((T7*)(oBC96c_code),a1);
_t=/*(IRF4.1result_type*/NULL/*)*/;
/*[IF*/
if((_t)==((void*)(NULL))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
else{
X62c_type_for_external_in(_t,oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7append((T7*)(oBC96c_code),/*SSFRF4*//*X97external_name*/r116external_name(((T116*)a2)));
r7extend((T7*)(oBC96c_code),((T3)'\50'));
/*[IF*/
if(X97use_current(a2)){
X62c_type_for_external_in((/*RF2*/(C)->_current_type/*8*/),oBC96c_code);
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7extend((T7*)(oBC96c_code),((T3)'C'));
/*[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(!(X97use_current(a2))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
/*FI]*/
}
else{
r121external_prototype_in((T121*)((/*RF2*/(C)->_arguments/*32*/)),oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\51'));
}


void r115c_define(T115* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(/*RF2*/(C)->_base_feature/*28*/);
_native=(/*RF2*/(((T116*)_bf))->_native/*40*/);
_bcn=(/*RF2*/((T77*)((/*RF2*/((T61*)((/*RF2*/(((T116*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
X91c_define_procedure(_native,(T0*)C,_bcn,X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T116*)_bf))->_names/*8*/))))->_first/*0*/)/*)*/));
}


void r115fall_down(T115* 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 r115initialize(T115* C){
T0* _n=NULL;
_n=X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T116*)((/*RF2*/(C)->_base_feature/*28*/)))->_names/*8*/))))->_first/*0*/)/*)*/);
(/*SFN*/C->_arguments)=(/*RF2*/((T116*)((/*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]*/
/*[IF*/
if(r57require_check((T57*)(oBC19run_control))){
/*[IF*/
if(((((T0*)ms21_15831))==((void*)(X117to_string((/*RF2*/(C)->_name/*16*/)))))&&(X62is_expanded((/*RF2*/(C)->_current_type/*8*/)))){
}
else{
(/*SFN*/C->_require_assertion)=r115run_require(C);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
(/*SFN*/C->_ensure_assertion)=r115run_ensure(C);
}
/*FI]*/
/*[IF*/
if((((T0*)ms21_573080478))==((void*)(_n))){
/*[IRF3.3set_used*/((((T165*)((T165*)(oBC19exceptions_handler))))->_used)=(1);
/*]*/
}
/*FI]*/
}


T2 r115arg_count(T115* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
R=/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*32*/)))->_flat_list/*8*/))))/*)*/;
}
/*FI]*/
return R;
}


T0* r115clients(T115* 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=(/*RF2*/((T116*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=(/*RF2*/((T116*)((/*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 r115c_define_closing(T115* C){
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r309compile_to_c((T309*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r115use_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*/
/*AF*//*AE*/
/*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 r115default_mapping_function(T115* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r57no_check((T57*)(oBC19run_control));
_uc=r115use_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]*/
r115mapping_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* r95run_ensure(T95* C){
T0* R=NULL;
R=r61run_ensure((T61*)(X62base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}


T0* r95type_any(void){
if(fBC19type_any==0){fBC19type_any=1;{
T104 _unknown_position={NULL,0};
{T356*n=((T356*)se_malloc(sizeof(*n))/*16*/);
*n=M356;
oBC19type_any=((T0*)n);
r356make(n,_unknown_position);
}
}}
return oBC19type_any;
}


void r95define_prototype(T95* 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=r95id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*40*/))==((void*)(NULL))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
else{
X62c_type_for_result_in(X62run_type((/*RF2*/(C)->_result_type/*40*/)),oBC96c_code);
}
/*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((r95use_current(C))||(((/*RF2*/(C)->_arguments/*36*/))!=((void*)(NULL)))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r95use_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/*36*/))!=((void*)(NULL))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*36*/))==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
 else if(!(r95use_current(C))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
/*FI]*/
}
else{
r121compile_to_c_in((T121*)((/*RF2*/(C)->_arguments/*36*/)),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 r95fe_vffd7(T95* C){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position((/*RF2*/(C)->_result_type/*40*/)),&se_tmp0)));
}
r95fatal_error(((T0*)ms96_1888555933));
}


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


void r95c_plus_plus_prototype(T95* C,T0* a1){
T0* _comment=NULL;
_comment=oBC96c_plus_plus_prototype_buffer;
r7copy(((T7*)_comment),((T0*)ms96_293181954));
r7append(((T7*)_comment),(/*RF2*/((T77*)((/*RF2*/((T61*)(/*SSWARF2*//*X97base_class*/(/*RF2*/(((T116*)a1))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/));
r7extend(((T7*)_comment),((T3)'\56'));
r7append(((T7*)_comment),X117to_string((/*RF2*/(C)->_name/*16*/)));
r7append(((T7*)_comment),((T0*)ms96_10));
r95external_prototype_for(C,_comment,a1);
r83put_c_heading((T83*)(oBC19cpp),oBC96c_code);
}


T6 r95is_exported_in(T95* C,T0* a1){
T6 R=0;
R=r200gives_permission_to((T200*)(r95clients(C)),a1);
return R;
}


T6 r95is_static(T95* C){
T6 R=0;
T0* _type_bit=NULL;
T0* _n=NULL;
_n=X117to_string((/*RF2*/(C)->_name/*16*/));
/*[IF*/
if((((T0*)ms21_378799862))==((void*)(_n))){
R=1;
/*[IF*/
if(X62is_expanded((/*RF2*/(C)->_current_type/*8*/))){
(/*SFN*/C->_static_value_mem)=1;
}
/*FI]*/
}
 else if((((T0*)ms21_1744612358))==((void*)(_n))){
R=1;
/*[IF*/
if(X62is_basic_eiffel_expanded((/*RF2*/(C)->_current_type/*8*/))){
(/*SFN*/C->_static_value_mem)=1;
}
/*FI]*/
}
 else if(((((T0*)ms21_79341))==((void*)(_n)))&&(X62is_bit((/*RF2*/(C)->_current_type/*8*/)))){
R=1;
_type_bit=(/*RF2*/(C)->_current_type/*8*/);
if(NULL!=(_type_bit)){
switch(((T0*)_type_bit)->id){
case 372:case 373:
break;
default:
_type_bit=NULL;
}
}(/*SFN*/C->_static_value_mem)=X136nb(_type_bit);
}
/*FI]*/
return R;
}


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


void r95c_closing(T95* C){
r95c_define_closing(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1754150081));
/*]*/
r95c_frame_descriptor(C);
}


void r95mapping_c(T95* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(/*RF2*/(C)->_base_feature/*28*/);
_native=(/*RF2*/(((T119*)_bf))->_native/*40*/);
_bcn=(/*RF2*/((T77*)((/*RF2*/((T61*)((/*RF2*/(((T119*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
X91c_mapping_function(_native,(T0*)C,_bcn,X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T119*)_bf))->_names/*8*/))))->_first/*0*/)/*)*/));
}


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


void r95external_prototype(T95* C,T0* a1){
r95external_prototype_for(C,((T0*)ms96_1334667838),a1);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
r83swap_on_h((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
}


void r95mapping_name(T95* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'r'));
r2append_in(r95id(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 r95put_c_name_tag(T95* 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=/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T119*)((/*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*)(/*(IRF4.6base_class_name*/(/*RF2*/(((T61*)((/*RF2*/((T119*)((/*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*/))));
}/*]*/
/*]*/
}


void r95std_compute_use_current(T95* C){
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*44*/))!=((void*)(NULL))){
/*[IF*/
if(r427use_current((T427*)((/*RF2*/(C)->_require_assertion/*44*/)))){
(/*SFN*/C->_use_current_state)=12;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*20*/))==(14)){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*48*/))!=((void*)(NULL))){
/*[IF*/
if(r309use_current((T309*)((/*RF2*/(C)->_ensure_assertion/*48*/)))){
(/*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]*/
}


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


void r95c_frame_descriptor(T95* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1200006371));
r95c_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*/))));
}/*]*/
/*]*/
r95put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IF*/
if(r95use_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]*/
}


T0* r95type_string(void){
if(fBC19type_string==0){fBC19type_string=1;{
T104 _unknown_position={NULL,0};
{T368*n=((T368*)se_malloc(sizeof(*n))/*16*/);
*n=M368;
oBC19type_string=((T0*)n);
r368make(n,_unknown_position);
}
}}
return oBC19type_string;
}


void r95make(T95* 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);
r95initialize(C);
/*[IRF3.2pop*//*SSPRF3*//*X155remove_last*/r155remove_last((T155*)(oBC59run_feature_stack));
/*]*/
}


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


void r95routine_afd_check(T95* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*44*/))!=((void*)(NULL))){
r427afd_check((T427*)((/*RF2*/(C)->_require_assertion/*44*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*48*/))!=((void*)(NULL))){
r309afd_check((T309*)((/*RF2*/(C)->_ensure_assertion/*48*/)));
}
/*FI]*/
}


T2 r95integer_value(T95* C,T104 a1){
T2 R=0;
T0* _n=NULL;
_n=X117to_string((/*RF2*/(C)->_name/*16*/));
/*[IF*/
if((((T0*)ms21_619776399))==((void*)(_n))){
R=EIF_INTEGER_BITS;
}
 else if((((T0*)ms21_1597390874))==((void*)(_n))){
R=EIF_CHARACTER_BITS;
}
else{
r82add_position(a1);
{T104 se_tmp0;
r82add_position(/*(IRF4.6start_position*/(*(se_tmp0=r119start_position(((T119*)((/*RF2*/(C)->_base_feature/*28*/)))),&se_tmp0))/*)*/);
}
r95fatal_error(((T0*)ms20_752996481));
}
/*FI]*/
return R;
}


T6 r95use_current(T95* 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;
r95compute_use_current(C);
R=((/*RF2*/(C)->_use_current_state/*20*/))==(12);
break;
default:;
R=1;
}
}/*INSPECT]*/
return R;
}


void r95compute_use_current(T95* C){
/*[IF*/
if(r119use_current((T119*)((/*RF2*/(C)->_base_feature/*28*/)))){
(/*SFN*/C->_use_current_state)=12;
}
else{
r95std_compute_use_current(C);
}
/*FI]*/
}


void r95c_define_opening(T95* 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*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*/if(((/*RF2*/(C)->_result_type/*40*/))!=((void*)(NULL))){
_t=X62run_type((/*RF2*/(C)->_result_type/*40*/));
/*[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*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*48*/))!=((void*)(NULL))){
r309c_declare_for_old((T309*)((/*RF2*/(C)->_ensure_assertion/*48*/)));
}
/*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]*/
r95c_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/*48*/))!=((void*)(NULL))){
r309compile_to_c_old((T309*)((/*RF2*/(C)->_ensure_assertion/*48*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*40*/))!=((void*)(NULL))){
_rf3=X62expanded_initializer((/*RF2*/(C)->_result_type/*40*/));
/*[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*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*44*/))!=((void*)(NULL))){
r427compile_to_c((T427*)((/*RF2*/(C)->_require_assertion/*44*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}


void r95compute_stupid_switch(T95* C,T0* a1){
/*[IF*/
if(X91stupid_switch_function((/*RF2*/((T119*)((/*RF2*/(C)->_base_feature/*28*/)))->_native/*40*/),a1,X117to_string((/*RF2*/(C)->_name/*16*/)))){
(/*SFN*/C->_stupid_switch_state)=12;
}
else{
(/*SFN*/C->_stupid_switch_state)=11;
}
/*FI]*/
}


void r95c_initialize_ds_one_by_one(T95* C){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1775507635));
r95c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IF*/
if(r95use_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(/*(IRF4.6start_position*/(*(se_tmp0=r119start_position(((T119*)((/*RF2*/(C)->_base_feature/*28*/)))),&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 r95c_define_with_body(T95* C,T0* a1){
r95define_prototype(C);
r95c_define_opening(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a1);
/*]*/
r95c_define_closing(C);
/*[IF*/
if(((/*RF2*/(C)->_result_type/*40*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1754150081));
/*]*/
}
/*FI]*/
r95c_frame_descriptor(C);
}


void r95c_assertion_flag(T95* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r95c_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 r95external_prototype_for(T95* C,T0* a1,T0* a2){
T0* _t=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7append((T7*)(oBC96c_code),a1);
_t=(/*RF2*/(C)->_result_type/*40*/);
/*[IF*/
if((_t)==((void*)(NULL))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
else{
X62c_type_for_external_in(_t,oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7append((T7*)(oBC96c_code),/*SSFRF4*//*X97external_name*/r116external_name(((T116*)a2)));
r7extend((T7*)(oBC96c_code),((T3)'\50'));
/*[IF*/
if(X97use_current(a2)){
X62c_type_for_external_in((/*RF2*/(C)->_current_type/*8*/),oBC96c_code);
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7extend((T7*)(oBC96c_code),((T3)'C'));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*36*/))!=((void*)(NULL))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*36*/))==((void*)(NULL))){
/*[IF*/
if(!(X97use_current(a2))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
/*FI]*/
}
else{
r121external_prototype_in((T121*)((/*RF2*/(C)->_arguments/*36*/)),oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\51'));
}


void r95c_define(T95* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(/*RF2*/(C)->_base_feature/*28*/);
_native=(/*RF2*/(((T119*)_bf))->_native/*40*/);
_bcn=(/*RF2*/((T77*)((/*RF2*/((T61*)((/*RF2*/(((T119*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
X91c_define_function(_native,(T0*)C,_bcn,X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T119*)_bf))->_names/*8*/))))->_first/*0*/)/*)*/));
}


void r95fall_down(T95* 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 r95initialize(T95* C){
T0* _type_bit_ref=NULL;
T0* _rf=NULL;
T0* _n=NULL;
_n=X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T119*)((/*RF2*/(C)->_base_feature/*28*/)))->_names/*8*/))))->_first/*0*/)/*)*/);
(/*SFN*/C->_arguments)=(/*RF2*/((T119*)((/*RF2*/(C)->_base_feature/*28*/)))->_arguments/*20*/);
_type_bit_ref=(/*RF2*/(C)->_current_type/*8*/);
if(NULL!=(_type_bit_ref)){
switch(((T0*)_type_bit_ref)->id){
case 522:
break;
default:
_type_bit_ref=NULL;
}
}/*[IF*/
if(((_type_bit_ref)!=((void*)(NULL)))&&((((T0*)ms21_16639))==((void*)(_n)))){
(/*SFN*/C->_result_type)=(/*RF2*/(((T522*)_type_bit_ref))->_type_bit/*20*/);
/*[IF*/
if(((/*RF2*/(C)->_arguments/*36*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*36*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*36*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
}
else{
(/*SFN*/C->_result_type)=(/*RF2*/((T119*)((/*RF2*/(C)->_base_feature/*28*/)))->_result_type/*48*/);
/*[IF*/
if(((/*RF2*/(C)->_arguments/*36*/))==((void*)(NULL))){
(/*SFN*/C->_result_type)=X62to_runnable((/*RF2*/(C)->_result_type/*40*/),(/*RF2*/(C)->_current_type/*8*/));
}
 else if(X62is_like_argument((/*RF2*/(C)->_result_type/*40*/))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*36*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*36*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
(/*SFN*/C->_result_type)=X62to_runnable((/*RF2*/(C)->_result_type/*40*/),(/*RF2*/(C)->_current_type/*8*/));
}
else{
(/*SFN*/C->_result_type)=X62to_runnable((/*RF2*/(C)->_result_type/*40*/),(/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*36*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*36*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r57require_check((T57*)(oBC19run_control))){
(/*SFN*/C->_require_assertion)=r95run_require(C);
}
/*FI]*/
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
(/*SFN*/C->_ensure_assertion)=r95run_ensure(C);
}
/*FI]*/
/*[IF*/
if((((T0*)ms21_18110))==((void*)(_n))){
_rf=r60get_copy((T60*)((/*RF2*/(C)->_run_class/*12*/)));
}
 else if((((T0*)ms21_2187464))==((void*)(_n))){
((/*UT*/(void)((T368*)(r95type_string()))),r368set_at_run_time());
}
 else if((((T0*)ms21_880412606))==((void*)(_n))){
/*[IRF3.3set_generator_used*/((((T57*)((T57*)(oBC19run_control))))->_generator_used)=(1);
/*]*/
/*[IRF3.3set_generating_type_used*/((((T57*)((T57*)(oBC19run_control))))->_generating_type_used)=(1);
/*]*/
}
 else if((((T0*)ms21_50246319))==((void*)(_n))){
/*[IRF3.3set_generator_used*/((((T57*)((T57*)(oBC19run_control))))->_generator_used)=(1);
/*]*/
}
 else if((((T0*)ms21_48958735))==((void*)(_n))){
/*[IRF3.3set_deep_twin_used*/((((T57*)((T57*)(oBC19run_control))))->_deep_twin_used)=(1);
/*]*/
_rf=r60get_feature_with((T60*)(r356run_class((T356*)(r95type_any()))),((T0*)ms21_244781926));
}
 else if((((T0*)ms21_1937220099))==((void*)(_n))){
r57set_is_deep_equal_used((T57*)(oBC19run_control));
}
 else if((((T0*)ms21_50778415))==((void*)(_n))){
/*[IRF3.3set_used*/((((T165*)((T165*)(oBC19exceptions_handler))))->_used)=(1);
/*]*/
}
 else if((((T0*)ms21_112335826))==((void*)(_n))){
/*[IRF3.3set_used*/((((T165*)((T165*)(oBC19exceptions_handler))))->_used)=(1);
/*]*/
}
 else if(r7has_prefix(((T7*)_n),((T0*)ms20_384465))){
r59register_sys_runtime_basic_of(_n);
}
/*FI]*/
}


T2 r95arg_count(T95* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*36*/))!=((void*)(NULL))){
R=/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*36*/)))->_flat_list/*8*/))))/*)*/;
}
/*FI]*/
return R;
}


void r95c_opening(T95* C){
r95define_prototype(C);
r95c_define_opening(C);
}


T0* r95clients(T95* 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=(/*RF2*/((T119*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=(/*RF2*/((T119*)((/*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 r95default_mapping_function(T95* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r57no_check((T57*)(oBC19run_control));
_uc=r95use_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]*/
r95mapping_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/*36*/))!=((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]*/
}


void r95c_define_closing(T95* C){
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*48*/))!=((void*)(NULL))){
r309compile_to_c((T309*)((/*RF2*/(C)->_ensure_assertion/*48*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r95use_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*/
/*AF*//*AE*/
/*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 r384error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


void r384from_effective(T384* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
{T118*n=((T118*)se_malloc(sizeof(*n))/*8*/);
*n=M118;
/*[IRF3.3make_1*/((((T118*)(n)))->_first)=(a1);
/*]*/
(/*SFN*/C->_names)=((T0*)n);
}
r384make(C,(/*RF2*/(C)->_names/*8*/),a2,a3,NULL,NULL,a4);
/*[IRF3.3set_ensure_assertion*/((((T384*)(C)))->_ensure_assertion)=(a5);
/*]*/
(/*SFN*/C->_base_class)=a6;
}


T6 r384can_hide(T384* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*40*/))!=((void*)(X99result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*40*/))==((void*)(NULL)))||((X99result_type(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r384error((*(se_tmp0=r384start_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;
r384error((*(se_tmp0=r384start_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;
r384error((*(se_tmp0=r384start_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/*40*/))!=((void*)(NULL))){
/*[IF*/
if(!(X62is_a_in((/*RF2*/(C)->_result_type/*40*/),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=r384start_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){
r384merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r384merge_header_comments(T384* 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 r384add_into(T384* 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 r384make_routine(T384* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T384*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_header_comment)=a4;
(/*SFN*/C->_arguments)=a2;
(/*SFN*/C->_obsolete_mark)=a3;
(/*SFN*/C->_require_assertion)=a5;
}


T0* r384try_to_undefine(T384* 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=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r384merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r384make(T384* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
r384make_routine(C,a1,a2,a4,a5,a6);
(/*SFN*/C->_result_type)=a3;
}


void r384check_obsolete(T384* 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=r384start_position(C),&se_tmp0)));
}
r82print_as_warning((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}


T0* r384to_run_feature(T384* C,T0* a1,T0* a2){
T0* R=NULL;
{T501*n=((T501*)se_malloc(sizeof(*n))/*48*/);
*n=M501;
r501make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
return R;
}


void r384set_header_comment(T384* 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 r384is_not_mergeable_with(T384* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*40*/))==((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]*/
r384merge_header_comments(C,a1);
return R;
}


T104 r384start_position(T384* 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 r384set_rescue_compound(T384* 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=r384start_position(C),&se_tmp0)));
}
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms381_1166590709);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r385body_long_bit_put01(T0* a1,T3 a2,T3 a3,T3 a4){
r7append((T7*)(oBC91body),((T0*)ms385_475574404));
r2append_in(X136unsigned_padding(a1),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_312));
r7extend((T7*)(oBC91body),a4);
r7append((T7*)(oBC91body),((T0*)ms385_1769843235));
r7extend((T7*)(oBC91body),a4);
r7append((T7*)(oBC91body),((T0*)ms385_1413));
r2append_in(X136unsigned_padding(a1),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_452095250));
r7extend((T7*)(oBC91body),a2);
r7append((T7*)(oBC91body),((T0*)ms385_345a));
r7extend((T7*)(oBC91body),a3);
r7append((T7*)(oBC91body),((T0*)ms385_398250205));
}


void r385c_define_standard_twin(T0* a1,T0* a2){
/*[IF*/
if(X62is_basic_eiffel_expanded(a2)){
}
 else if(X62is_expanded(a2)){
/*[IF*/
if(X62is_dummy_expanded(a2)){
}
 else if(X62is_native_array(a2)){
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_1887064762));
}
/*FI]*/
}
else{
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/)){
r7copy((T7*)(oBC91body),((T0*)ms385_1449951397));
}
else{
r7copy((T7*)(oBC91body),((T0*)ms385_2395));
r7append((T7*)(oBC91body),((T0*)ms20_1079001));
X62gc_call_new_in(a2,oBC91body);
r7append((T7*)(oBC91body),((T0*)ms20_1330));
}
/*FI]*/
r7append((T7*)(oBC91body),((T0*)ms385_6534));
r2append_in(X62id(a2),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_21064105));
r95c_define_with_body(((T95*)a1),oBC91body);
}
/*FI]*/
}


void r385mapping_small_bit_put01(T0* a1,T3 a2,T3 a3,T2 a4){
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=a2;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_345));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=a3;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1816589238));
/*]*/
/*[IF*/
if(X136is_c_char(a1)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_15574));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_3291));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_165715));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X136nb(a1));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_265));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),a4);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_160205));
/*]*/
}


T6 r385stupid_switch_function(T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((((((((T0*)ms21_1597390874))==((void*)(a2)))||((((T0*)ms21_880412606))==((void*)(a2))))||((((T0*)ms21_50246319))==((void*)(a2))))||((((T0*)ms21_279523519))==((void*)(a2))))||((((T0*)ms21_447851))==((void*)(a2)))){
R=1;
}
/*FI]*/
return R;
}


T0* r385system_tools(void){
if(fBC19system_tools==0){fBC19system_tools=1;{
{T48*n=((T48*)se_malloc(sizeof(*n))/*17*/);
*n=M48;
oBC19system_tools=((T0*)n);
r48make(n);
}
}}
return oBC19system_tools;
}


void r385c_define_function(T0* a1,T0* a2,T0* a3){
T0* _rf7=NULL;
T0* _rf=NULL;
T0* _rc=NULL;
T0* _ct=NULL;
T0* _elt_type=NULL;
/*[IF*/
if((((T0*)ms21_53028))==((void*)(a2))){
r385c_define_function_bit(a1,a3);
}
 else if((((T0*)ms21_1384826))==((void*)(a2))){
/*[IF*/
if(((((T0*)ms21_10377643))==((void*)(a3)))||((((T0*)ms21_267647687))==((void*)(a3)))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
_rc=(/*RF2*/(((T95*)a1))->_run_class/*12*/);
/*[IF*/
if(X62is_basic_eiffel_expanded(_ct)){
}
 else if(X62is_native_array(_ct)){
}
 else if(X62is_bit(_ct)){
}
 else if(r60is_tagged(((T60*)_rc))){
r95c_define_with_body(((T95*)a1),((T0*)ms385_427767795));
}
 else if((r60writable_attributes(((T60*)_rc)))==((void*)(NULL))){
/*[IF*/
if(r57boost((T57*)(oBC19run_control))){
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_12079));
}
/*FI]*/
}
 else if(r57boost((T57*)(oBC19run_control))){
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_932183207));
}
/*FI]*/
}
 else if((((T0*)ms21_591417242))==((void*)(a3))){
r385c_define_standard_twin(a1,(/*RF2*/(((T95*)a1))->_current_type/*8*/));
}
 else if((((T0*)ms21_18110))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
_rc=(/*RF2*/(((T95*)a1))->_run_class/*12*/);
_rf=r60get_copy(((T60*)_rc));
_rf7=_rf;
if(NULL!=(_rf7)){
switch(((T0*)_rf7)->id){
case 115:
break;
default:
_rf7=NULL;
}
}/*[IF*/
if((_rf7)!=((void*)(NULL))){
r385c_define_standard_twin(a1,_ct);
}
else{
r385c_define_twin(a1,_ct,_rc,_rf);
}
/*FI]*/
}
 else if((((T0*)ms21_48958735))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
/*[IF*/
if((X62is_basic_eiffel_expanded(_ct))||(X62is_dummy_expanded(_ct))){
r95c_define_with_body(((T95*)a1),((T0*)ms385_60855));
}
 else if(X62is_native_array(_ct)){
r82add_type(_ct,((T0*)ms20_75797981));
r82print_as_warning((T82*)(oBC19eh));
/*[IF*/
if(r57boost((T57*)(oBC19run_control))){
r95c_define_with_body(((T95*)a1),((T0*)ms385_306706));
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_1903915589));
}
/*FI]*/
}
else{
/*[IRF3.3clear*/((((T7*)((T7*)(oBC91body))))->_count)=(0);
/*]*/
r60deep_twin_in((T60*)((/*RF2*/(((T95*)a1))->_run_class/*12*/)),oBC91body);
r95c_define_with_body(((T95*)a1),oBC91body);
}
/*FI]*/
}
 else if((((T0*)ms21_1937220099))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
/*[IF*/
if(X62is_basic_eiffel_expanded(_ct)){
r95c_define_with_body(((T95*)a1),((T0*)ms385_941993080));
}
 else if(X62is_dummy_expanded(_ct)){
r95c_define_with_body(((T95*)a1),((T0*)ms385_60405));
}
 else if(X62is_native_array(_ct)){
r82add_type(_ct,((T0*)ms20_75797981));
r82print_as_warning((T82*)(oBC19eh));
/*[IF*/
if(r57boost((T57*)(oBC19run_control))){
r95c_define_with_body(((T95*)a1),((T0*)ms385_2403));
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_842325609));
}
/*FI]*/
}
else{
/*[IRF3.3clear*/((((T7*)((T7*)(oBC91body))))->_count)=(0);
/*]*/
r60is_deep_equal_in((T60*)((/*RF2*/(((T95*)a1))->_run_class/*12*/)),oBC91body);
r95c_define_with_body(((T95*)a1),oBC91body);
}
/*FI]*/
}
/*FI]*/
}
 else if((((T0*)ms21_349117293))==((void*)(a2))){
/*[IF*/
if((((T0*)ms21_386854))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
_elt_type=X62run_type(r147item((T147*)(X62generic_list(_ct)),1));
/*[IF*/
if((X62expanded_initializer(_elt_type))!=((void*)(NULL))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC91body))))->_count)=(0);
/*]*/
r7append((T7*)(oBC91body),((T0*)ms385_471));
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/)){
r7append((T7*)(oBC91body),((T0*)ms385_2138778683));
r2append_in(X62id(_elt_type),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_247));
}
else{
r7append((T7*)(oBC91body),((T0*)ms385_134878499));
r2append_in(X62id(_ct),oBC91body);
r7extend((T7*)(oBC91body),((T3)'\50'));
}
/*FI]*/
r7append((T7*)(oBC91body),((T0*)ms385_340514));
r2append_in(X62id(_ct),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_245384155));
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r7append((T7*)(oBC91body),((T0*)ms385_7869));
}
/*FI]*/
r7append((T7*)(oBC91body),((T0*)ms385_37173080));
r95c_define_with_body(((T95*)a1),oBC91body);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_procedure(T0* a1,T0* a2,T0* a3){
T0* _t=NULL;
/*[IF*/
if(((((T0*)ms21_15831))==((void*)(a3)))||((((T0*)ms21_591414963))==((void*)(a3)))){
_t=(/*RF2*/(((T115*)a1))->_current_type/*8*/);
/*[IF*/
if(X62is_reference(_t)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_6534aa));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X62id(_t));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1295a));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_813409));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X62id(_t));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1295));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_6455));
/*]*/
}
 else if(X62is_basic_eiffel_expanded(_t)){
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_59397236));
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1609));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X62id(_t));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_900720));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_245913414));
/*]*/
}
/*FI]*/
}
 else if((((T0*)ms21_2023685073))==((void*)(a3))){
/*[IF*/
if(r83target_cannot_be_dropped((T83*)(oBC19cpp))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1998060));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
 else if((((T0*)ms21_287359706))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_88060));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),2);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_106066795));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_32080));
/*]*/
}
 else if((((T0*)ms21_849712179))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_2122389958));
/*]*/
}
 else if((((T0*)ms21_705019679))==((void*)(a3))){
/*[IF*/
if(r83target_cannot_be_dropped((T83*)(oBC19cpp))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_81370));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
 else if((((T0*)ms21_54749764))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_194670249));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_6455));
/*]*/
}
 else if((((T0*)ms21_240810599))==((void*)(a3))){
r83put_c_inline_c((T83*)(oBC19cpp));
}
 else if((((T0*)ms21_240810604))==((void*)(a3))){
r83put_c_inline_h((T83*)(oBC19cpp));
}
 else if((((T0*)ms21_1574640467))==((void*)(a3))){
r83put_trace_switch((T83*)(oBC19cpp));
}
 else if((((T0*)ms21_349117293))==((void*)(a2))){
r385c_mapping_native_array_procedure(a1,a3);
}
 else if((((T0*)ms21_53028))==((void*)(a2))){
r385c_mapping_bit_procedure(a1,a3);
}
 else if((((T0*)ms21_1053896806))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_11879796));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_12705715));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1772971310));
/*]*/
}
 else if((((T0*)ms21_1507243919))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1735971161));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_929281864));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),2);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1895969346));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_191602377));
/*]*/
}
 else if((((T0*)ms21_54733071))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1561552493));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_101405226));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),2);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_6455));
/*]*/
}
 else if((((T0*)ms21_54733341))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_2088896243));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_6455));
/*]*/
}
 else if((((T0*)ms21_573080478))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1008067448));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
 else if((((T0*)ms21_2090604340))==((void*)(a3))){
/*[IF*/
if(!((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1942608409));
/*]*/
}
/*FI]*/
}
 else if((((T0*)ms21_94407393))==((void*)(a3))){
/*[IF*/
if(!((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1102979958));
/*]*/
}
/*FI]*/
}
 else if((((T0*)ms21_840111968))==((void*)(a3))){
/*[IF*/
if(!((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1102979933));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_integer_function(T0* a1,T0* a2){
/*[IF*/
if((r95arg_count(((T95*)a1)))==(1)){
/*[IF*/
if((((T0*)ms21_47))==((void*)(a2))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_32406));
/*]*/
}
/*FI]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IF*/
if((((T0*)ms21_47))==((void*)(a2))){
/*[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)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((((T0*)ms21_282))==((void*)(a2))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\57');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
 else if((((T0*)ms21_552))==((void*)(a2))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\45');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a2);
/*]*/
}
/*FI]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_arguments((T83*)(oBC19cpp));
/*[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 if((((T0*)ms21_1607595572))==((void*)(a2))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_162020));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
 else if((((T0*)ms21_446841))==((void*)(a2))){
r83put_target_as_value((T83*)(oBC19cpp));
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a2);
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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]*/
}


void r385c_define_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if((((T0*)ms21_53028))==((void*)(a2))){
r385c_define_procedure_bit(a1,a3);
}
/*FI]*/
}
T0*oBC385tmp_string=NULL;


void r385c_define_procedure_bit(T0* a1,T0* a2){
T0* _type_bit=NULL;
_type_bit=(/*RF2*/(((T115*)a1))->_current_type/*8*/);
if(NULL!=(_type_bit)){
switch(((T0*)_type_bit)->id){
case 372:case 373:
break;
default:
_type_bit=NULL;
}
}/*[IF*/
if((((T0*)ms21_88048))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC91body))))->_count)=(0);
/*]*/
r385body_long_bit_put01(_type_bit,((T3)'\46'),((T3)'\176'),((T3)'1'));
r115c_define_with_body(((T115*)a1),oBC91body);
}
/*FI]*/
}
 else if((((T0*)ms21_88049))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC91body))))->_count)=(0);
/*]*/
r385body_long_bit_put01(_type_bit,((T3)'\174'),((T3)'\40'),((T3)'1'));
r115c_define_with_body(((T115*)a1),oBC91body);
}
/*FI]*/
}
 else if((((T0*)ms21_3501))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC91body))))->_count)=(0);
/*]*/
r7append((T7*)(oBC91body),((T0*)ms385_1997940));
r385body_long_bit_put01(_type_bit,((T3)'\174'),((T3)'\40'),((T3)'2'));
r7append((T7*)(oBC91body),((T0*)ms20_16001));
r385body_long_bit_put01(_type_bit,((T3)'\46'),((T3)'\176'),((T3)'2'));
r115c_define_with_body(((T115*)a1),oBC91body);
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_bit_function(T0* a1,T0* a2){
T6 _boost=0;
T0* _type_bit=NULL;
_type_bit=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
if(NULL!=(_type_bit)){
switch(((T0*)_type_bit)->id){
case 372:case 373:
break;
default:
_type_bit=NULL;
}
}_boost=r57boost((T57*)(oBC19run_control));
/*[IF*/
if((((T0*)ms21_79341))==((void*)(a2))){
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X136nb(_type_bit));
/*]*/
}
 else if((((T0*)ms21_16639))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r95default_mapping_function(((T95*)a1));
}
 else if(_boost){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1105475957));
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_7025));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X136nb(_type_bit));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_265a));
/*]*/
r83put_arguments((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_160111));
/*]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((((T0*)ms21_1972))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
 else if(_boost){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_240a));
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_7025a));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((((T0*)ms21_1960))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
 else if(_boost){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_240a));
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_6965));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((((T0*)ms21_3669))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
else{
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\136');
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*/))));
}/*]*/
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[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]*/
}
 else if((((T0*)ms21_669))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
else{
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\174');
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*/))));
}/*]*/
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[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]*/
}
 else if((((T0*)ms21_3421))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
else{
X136mapping_cast(_type_bit);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\176');
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*/))));
}/*]*/
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[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]*/
}
 else if((((T0*)ms21_3075))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
else{
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[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]*/
}
 else if((((T0*)ms21_16616))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r95default_mapping_function(((T95*)a1));
}
 else if(_boost){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1105475957a));
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_31986));
/*]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((((T0*)ms21_1607595572))==((void*)(a2))){
r83put_target_as_value((T83*)(oBC19cpp));
}
 else if((((T0*)ms21_279416444))==((void*)(a2))){
r83put_target_as_value((T83*)(oBC19cpp));
}
/*FI]*/
}


T6 r385stupid_switch_procedure(T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((((T0*)ms21_287359706))==((void*)(a2))){
R=1;
}
/*FI]*/
return R;
}


T6 r385use_current(T0* a1){
T6 R=0;
T0* _n=NULL;
_n=X117to_string(/*SSFRF4*//*X97first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T116*)a1))->_names/*8*/))))->_first/*0*/)/*)*/);
/*[IF*/
if((((T0*)ms21_2187464))==((void*)(_n))){
}
 else if((((T0*)ms21_54325331))==((void*)(_n))){
}
 else if((((T0*)ms21_2187483))==((void*)(_n))){
}
 else if((((T0*)ms21_54733071))==((void*)(_n))){
}
 else if((((T0*)ms21_54749764))==((void*)(_n))){
}
 else if((((T0*)ms21_287359706))==((void*)(_n))){
}
else{
R=1;
}
/*FI]*/
return R;
}


void r385c_define_function_bit(T0* a1,T0* a2){
T6 _no_check=0;
T0* _type_bit=NULL;
_type_bit=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
if(NULL!=(_type_bit)){
switch(((T0*)_type_bit)->id){
case 372:case 373:
break;
default:
_type_bit=NULL;
}
}_no_check=r57no_check((T57*)(oBC19run_control));
/*[IF*/
if((((T0*)ms21_79341))==((void*)(a2))){
}
 else if((((T0*)ms21_16639))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r7copy((T7*)(oBC91body),((T0*)ms385_1541156706));
r2append_in(X136unsigned_padding(_type_bit),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_215689314));
r2append_in(X136unsigned_padding(_type_bit),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_1715920859));
r95c_define_with_body(((T95*)a1),oBC91body);
}
 else if(_no_check){
r7copy((T7*)(oBC91body),((T0*)ms385_281556707));
r2append_in(X136nb(_type_bit),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_130409330));
r95c_define_with_body(((T95*)a1),oBC91body);
}
/*FI]*/
}
 else if((((T0*)ms21_1960))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_188394864));
}
/*FI]*/
}
 else if((((T0*)ms21_1972))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r385fe_long_bit(a1);
}
else{
r95c_define_with_body(((T95*)a1),((T0*)ms385_188402364));
}
/*FI]*/
}
 else if((((T0*)ms21_16616))==((void*)(a2))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r7copy((T7*)(oBC91body),((T0*)ms385_1541156706a));
r2append_in(X136unsigned_padding(_type_bit),oBC91body);
r7extend((T7*)(oBC91body),((T3)'\53'));
r2append_in((X136nb(_type_bit))-(1),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_928754688));
r2append_in((X136nb(_type_bit))-(1),oBC91body);
r7extend((T7*)(oBC91body),((T3)'\53'));
r2append_in(X136unsigned_padding(_type_bit),oBC91body);
r7append((T7*)(oBC91body),((T0*)ms385_1715920859a));
r95c_define_with_body(((T95*)a1),oBC91body);
}
 else if(_no_check){
r7copy((T7*)(oBC91body),((T0*)ms385_834771837));
r95c_define_with_body(((T95*)a1),oBC91body);
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_real_function(T0* a1,T0* a2){
/*[IF*/
if((r95arg_count(((T95*)a1)))==(1)){
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a2);
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_arguments((T83*)(oBC19cpp));
/*[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 if((((T0*)ms21_55868341))==((void*)(a2))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_162070));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a2);
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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]*/
}


void r385c_mapping_bit_procedure(T0* a1,T0* a2){
T0* _type_bit=NULL;
_type_bit=(/*RF2*/(((T115*)a1))->_current_type/*8*/);
if(NULL!=(_type_bit)){
switch(((T0*)_type_bit)->id){
case 372:case 373:
break;
default:
_type_bit=NULL;
}
}/*[IF*/
if((a2)==((void*)(((T0*)ms21_88048)))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r115default_mapping_procedure(((T115*)a1));
}
else{
/*[IRF3.6mapping_small_bit_put_0*/{T0* b1=_type_bit;
T2 b2=1;
r385mapping_small_bit_put01(b1,((T3)'\46'),((T3)'\176'),b2);
}/*]*/
}
/*FI]*/
}
 else if((a2)==((void*)(((T0*)ms21_88049)))){
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r115default_mapping_procedure(((T115*)a1));
}
else{
/*[IRF3.6mapping_small_bit_put_1*/{T0* b1=_type_bit;
T2 b2=1;
r385mapping_small_bit_put01(b1,((T3)'\174'),((T3)'\40'),b2);
}/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X136is_c_unsigned_ptr(_type_bit)){
r115default_mapping_procedure(((T115*)a1));
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_3175));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1650));
/*]*/
/*[IRF3.6mapping_small_bit_put_1*/{T0* b1=_type_bit;
T2 b2=2;
r385mapping_small_bit_put01(b1,((T3)'\174'),((T3)'\40'),b2);
}/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_53329675));
/*]*/
/*[IRF3.6mapping_small_bit_put_0*/{T0* b1=_type_bit;
T2 b2=2;
r385mapping_small_bit_put01(b1,((T3)'\46'),((T3)'\176'),b2);
}/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_double_function(T0* a1,T0* a2){
/*[IF*/
if((((T0*)ms21_94))==((void*)(a2))){
r48add_lib_math((T48*)(r385system_tools()));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_87090));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_511943145));
/*]*/
r83put_arguments((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
 else if((((T0*)ms21_1949019648))==((void*)(a2))){
r48add_lib_math((T48*)(r385system_tools()));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms21_80694));
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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 if((((T0*)ms21_1742738754))==((void*)(a2))){
r48add_lib_math((T48*)(r385system_tools()));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1693063785));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
 else if((((T0*)ms21_2236118))==((void*)(a2))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_162045));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
 else if((((/*RF2*/(((T7*)a2))->_count/*4*/))<=(2))&&((r95arg_count(((T95*)a1)))==(1))){
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a2);
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_arguments((T83*)(oBC19cpp));
/*[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{
r48add_lib_math((T48*)(r385system_tools()));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a2);
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IF*/
if(((/*RF2*/(((T95*)a1))->_arguments/*36*/))!=((void*)(NULL))){
/*[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*/))));
}/*]*/
/*]*/
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*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r385c_mapping_function(T0* a1,T0* a2,T0* a3){
T0* _type_bit=NULL;
T6 _basic_eq=0;
T0* _rf7=NULL;
T0* _rf=NULL;
T0* _rc=NULL;
T0* _ct=NULL;
T6 _cbd=0;
/*[IF*/
if((((T0*)ms21_447584))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms21_447584));
/*]*/
}
 else if((((T0*)ms21_89510))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms21_89510));
/*]*/
}
 else if((((T0*)ms21_447851))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms21_447851));
/*]*/
}
 else if(r7has_prefix(((T7*)a3),((T0*)ms20_384465))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a3);
/*]*/
/*[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(((/*RF2*/(((T95*)a1))->_arguments/*36*/))!=((void*)(NULL))){
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*/))));
}/*]*/
/*]*/
}
 else if((((T0*)ms21_1384826))==((void*)(a2))){
/*[IF*/
if((((T0*)ms21_880412606))==((void*)(a3))){
r83put_generating_type((T83*)(oBC19cpp),(/*RF2*/(((T95*)a1))->_current_type/*8*/));
}
 else if((((T0*)ms21_50246319))==((void*)(a3))){
r83put_generator((T83*)(oBC19cpp),(/*RF2*/(((T95*)a1))->_current_type/*8*/));
}
 else if((((T0*)ms21_279523519))==((void*)(a3))){
r83put_to_pointer((T83*)(oBC19cpp));
}
 else if((((T0*)ms21_1326673961))==((void*)(a3))){
r83put_object_size((T83*)(oBC19cpp),(/*RF2*/(((T95*)a1))->_current_type/*8*/));
}
 else if(((((T0*)ms21_10377643))==((void*)(a3)))||((((T0*)ms21_267647687))==((void*)(a3)))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
_rc=(/*RF2*/(((T95*)a1))->_run_class/*12*/);
/*[IF*/
if(X62is_basic_eiffel_expanded(_ct)){
_basic_eq=1;
}
 else if(X62is_native_array(_ct)){
_basic_eq=1;
}
 else if(X62is_bit(_ct)){
_type_bit=_ct;
if(NULL!=(_type_bit)){
switch(((T0*)_type_bit)->id){
case 372:case 373:
break;
default:
_type_bit=NULL;
}
}_basic_eq=!(X136is_c_unsigned_ptr(_type_bit));
}
/*FI]*/
/*[IF*/
if(_basic_eq){
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_366));
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[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 if(r60is_tagged(((T60*)_rc))){
r95default_mapping_function(((T95*)a1));
}
 else if((r60writable_attributes(((T60*)_rc)))==((void*)(NULL))){
/*[IF*/
if(r57boost((T57*)(oBC19run_control))){
_cbd=r83cannot_drop_all((T83*)(oBC19cpp));
/*[IF*/
if(_cbd){
/*[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]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'1');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_cbd){
/*[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]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if(r57boost((T57*)(oBC19run_control))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_4680700));
/*]*/
r83put_target_as_target((T83*)(oBC19cpp));
/*[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*/))));
}/*]*/
/*]*/
/*[IF*/
if(X62is_user_expanded(_ct)){
/*[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*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_108351709a));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T60*)_rc))->_id/*16*/));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((((T0*)ms21_591417242))==((void*)(a3))){
r385c_mapping_standard_twin(a1,(/*RF2*/(((T95*)a1))->_current_type/*8*/));
}
 else if((((T0*)ms21_18110))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
_rc=(/*RF2*/(((T95*)a1))->_run_class/*12*/);
_rf=r60get_copy(((T60*)_rc));
_rf7=_rf;
if(NULL!=(_rf7)){
switch(((T0*)_rf7)->id){
case 115:
break;
default:
_rf7=NULL;
}
}/*[IF*/
if((_rf7)!=((void*)(NULL))){
r385c_mapping_standard_twin(a1,_ct);
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((((T0*)ms21_48958735))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
/*[IF*/
if(X62is_basic_eiffel_expanded(_ct)){
r83put_target_as_target((T83*)(oBC19cpp));
}
 else if(X62is_user_expanded(_ct)){
r95default_mapping_function(((T95*)a1));
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1400582480));
/*]*/
r95default_mapping_function(((T95*)a1));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_246));
/*]*/
}
/*FI]*/
}
 else if((((T0*)ms21_1937220099))==((void*)(a3))){
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
r95default_mapping_function(((T95*)a1));
}
 else if((((T0*)ms21_1744612358))==((void*)(a3))){
_cbd=r83cannot_drop_all((T83*)(oBC19cpp));
/*[IF*/
if(_cbd){
/*[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]*/
/*[IF*/
if(X62is_basic_eiffel_expanded((/*RF2*/(((T95*)a1))->_current_type/*8*/))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'1');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'0');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IF*/
if(_cbd){
/*[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]*/
}
 else if((((T0*)ms21_378799862))==((void*)(a3))){
_cbd=r83cannot_drop_all((T83*)(oBC19cpp));
/*[IF*/
if(_cbd){
/*[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]*/
/*[IF*/
if(X62is_expanded((/*RF2*/(((T95*)a1))->_current_type/*8*/))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'1');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'0');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IF*/
if(_cbd){
/*[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]*/
}
 else if((((T0*)ms21_2187464))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms21_2187464));
/*]*/
}
 else if((((T0*)ms21_2187483))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1220661594));
/*]*/
}
/*FI]*/
}
 else if((((T0*)ms21_349117293))==((void*)(a2))){
r385c_mapping_native_array_function(a1,a3);
}
 else if((((T0*)ms21_1447702))==((void*)(a2))){
r385c_mapping_integer_function(a1,a3);
}
 else if((((T0*)ms21_12376))==((void*)(a2))){
r385c_mapping_real_function(a1,a3);
}
 else if((((T0*)ms21_274599))==((void*)(a2))){
r385c_mapping_double_function(a1,a3);
}
 else if((((T0*)ms21_1339128))==((void*)(a2))){
/*[IF*/
if((((T0*)ms21_2067995))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1205));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_34510));
/*]*/
r83put_arguments((T83*)(oBC19cpp));
/*[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.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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IF*/
if((((T0*)ms21_2126626))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_8885));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_6305));
/*]*/
}
/*FI]*/
r83put_arguments((T83*)(oBC19cpp));
/*[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]*/
}
 else if((((T0*)ms21_33120277))==((void*)(a2))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_471a));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a3);
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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 if((((T0*)ms21_1554777))==((void*)(a2))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_933501));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[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 if((((T0*)ms21_7704337))==((void*)(a2))){
_cbd=r83target_cannot_be_dropped((T83*)(oBC19cpp));
/*[IF*/
if(_cbd){
/*[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]*/
r7copy((T7*)(oBC385tmp_string),((T0*)ms385_10895));
r7append((T7*)(oBC385tmp_string),a3);
r7to_upper((T7*)(oBC385tmp_string));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC385tmp_string);
/*]*/
/*[IF*/
if(_cbd){
/*[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]*/
}
 else if((((T0*)ms21_10018876))==((void*)(a3))){
_cbd=r83cannot_drop_all((T83*)(oBC19cpp));
/*[IF*/
if(_cbd){
/*[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]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_35991));
/*]*/
/*[IF*/
if(_cbd){
/*[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]*/
}
 else if((((T0*)ms21_15932))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1072545723));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
 else if((((T0*)ms21_11011040))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1595618529));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_34811));
/*]*/
}
 else if((((T0*)ms21_11026665))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1595618529a));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_34936));
/*]*/
}
 else if((((T0*)ms21_733277224))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1574146891));
/*]*/
}
 else if((((T0*)ms21_53028))==((void*)(a2))){
r385c_mapping_bit_function(a1,a3);
}
 else if((((T0*)ms21_1778079380))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_443432));
/*]*/
/*[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.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_2382));
/*]*/
/*[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 if((((T0*)ms21_54325331))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1359655098));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
 else if((((T0*)ms21_50778415))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_475042348));
/*]*/
}
 else if((((T0*)ms21_112335826))==((void*)(a3))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_304601115));
/*]*/
}
 else if((((T0*)ms21_247239028))==((void*)(a3))){
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'0');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_114321512));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_native_array_procedure(T0* a1,T0* a2){
T0* _elt_type=NULL;
_elt_type=X62run_type(r147item((T147*)(X62generic_list((/*RF2*/(((T115*)a1))->_current_type/*8*/))),1));
/*[IF*/
if((a2)==((void*)(((T0*)ms21_3501)))){
/*[IF*/
if(X62is_user_expanded(_elt_type)){
/*[IF*/
if(X62is_dummy_expanded(_elt_type)){
/*[IF*/
if(r83cannot_drop_all((T83*)(oBC19cpp))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
/*FI]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_10513515));
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1280));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),2);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_6455));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_108351709));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X62id(_elt_type));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_6455));
/*]*/
}
/*FI]*/
}
else{
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_296));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),2);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_2670));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r385c_mapping_native_array_function(T0* a1,T0* a2){
T6 _tcbd=0;
T0* _elt_type=NULL;
T0* _ct=NULL;
_ct=(/*RF2*/(((T95*)a1))->_current_type/*8*/);
_elt_type=X62run_type(r147item((T147*)(X62generic_list(_ct)),1));
/*[IF*/
if((((T0*)ms21_1286698901))==((void*)(a2))){
_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]*/
r7copy((T7*)(oBC385tmp_string),((T0*)ms20_443432));
r7extend((T7*)(oBC385tmp_string),((T3)'\50'));
X62c_type_for_argument_in(_elt_type,oBC385tmp_string);
r7extend((T7*)(oBC385tmp_string),((T3)'\51'));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC385tmp_string);
/*]*/
/*[IF*/
if(_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]*/
}
 else if((a2)==((void*)(((T0*)ms21_386854)))){
/*[IF*/
if((X62expanded_initializer(_elt_type))==((void*)(NULL))){
_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]*/
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1284));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X62id(_ct));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1628970485));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
r7copy((T7*)(oBC385tmp_string),((T0*)ms385_5654700));
X62c_type_for_result_in(_elt_type,oBC385tmp_string);
r7append((T7*)(oBC385tmp_string),((T0*)ms385_6396));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC385tmp_string);
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_3374));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X62id((/*RF2*/(((T95*)a1))->_current_type/*8*/)));
/*]*/
/*[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*/))));
}/*]*/
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[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]*/
/*[IF*/
if(_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]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
 else if((a2)==((void*)(((T0*)ms21_2067759348)))){
_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]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IF*/
if(_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]*/
}
else{
/*[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*/))));
}/*]*/
/*]*/
r83put_target_as_value((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_296a));
/*]*/
r83put_ith_argument((T83*)(oBC19cpp),1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\135');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r385c_mapping_standard_twin(T0* a1,T0* a2){
/*[IF*/
if(X62is_basic_eiffel_expanded(a2)){
r83put_target_as_value((T83*)(oBC19cpp));
}
 else if(X62is_expanded(a2)){
/*[IF*/
if(X62is_dummy_expanded(a2)){
r83put_target_as_target((T83*)(oBC19cpp));
}
 else if(X62is_native_array(a2)){
r83put_target_as_target((T83*)(oBC19cpp));
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}
else{
r95default_mapping_function(((T95*)a1));
}
/*FI]*/
}


void r385fe_long_bit(T0* a1){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X96start_position(a1),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms385_202745083);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_type(/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)a1))->_current_type/*8*/),((T0*)ms385_1992693595));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r385c_define_twin(T0* a1,T0* a2,T0* a3,T0* a4){
T2 _id=0;
r95c_opening(((T95*)a1));
/*[IF*/
if(X62is_reference(a2)){
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/)){
_id=(/*RF2*/(((T60*)a3))->_id/*16*/);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_1449951397a));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_6534a));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_id);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms385_168532));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_id);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
else{
r7copy((T7*)(oBC91body),((T0*)ms385_188188376));
X62gc_call_new_in(a2,oBC91body);
r7append((T7*)(oBC91body),((T0*)ms20_1330));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC91body);
/*]*/
}
/*FI]*/
}
/*FI]*/
r83inside_twin((T83*)(oBC19cpp),a4);
r95c_closing(((T95*)a1));
}


void r421make(T421* C,T0* a1){
{T422*n=((T422*)se_malloc(sizeof(*n))/*16*/);
*n=M422;
r422with_capacity(n,4,1);
(/*SFN*/C->_list)=((T0*)n);
}
r422add_last((T422*)((/*RF2*/(C)->_list/*0*/)),a1);
}


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


void r342make(T342* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_comment)=a3;
(/*SFN*/C->_tag)=a1;
(/*SFN*/C->_expression)=a2;
}


void r342afd_check(T342* C){
X126afd_check((/*RF2*/(C)->_expression/*8*/));
}


T6 r342use_current(T342* C){
T6 R=0;
R=X126use_current((/*RF2*/(C)->_expression/*8*/));
return R;
}


T0* r342twin(T342* C){
T0* R=NULL;
R=se_malloc(sizeof(*C));
*((T342*)R)=*C;
return R;
}


T0* r342to_runnable(T342* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*12*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
_e=X126to_runnable((/*RF2*/(C)->_expression/*8*/),a1);
/*[IF*/
if((_e)==((void*)(NULL))){
{T104 se_tmp0;
r342error((*(se_tmp0=r342start_position(C),&se_tmp0)),((T0*)ms339_297138751));
}
}
else{
(/*SFN*/C->_expression)=_e;
/*[IF*/
if(!(X62is_integer(X126result_type((/*RF2*/(C)->_expression/*8*/))))){
{T104 se_tmp0;
r342error((*(se_tmp0=X126start_position((/*RF2*/(C)->_expression/*8*/)),&se_tmp0)),((T0*)ms339_2043440078));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
R=((T0*)(C));
}
/*FI]*/
}
else{
R=r342twin(C);
/*[IRF3.3set_current_type*/((((T342*)(((T342*)R))))->_current_type)=(NULL);
/*]*/
R=r342to_runnable(((T342*)R),a1);
}
/*FI]*/
return R;
}


T104 r342start_position(T342* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X126start_position((/*RF2*/(C)->_expression/*8*/)),&se_tmp0));
}
return R;
}


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


void r343make(T343* C,T0* a1,T0* a2){
(/*SFN*/C->_comment)=a2;
(/*SFN*/C->_expression)=a1;
}


void r343afd_check(T343* C){
X126afd_check((/*RF2*/(C)->_expression/*8*/));
}


T6 r343use_current(T343* C){
T6 R=0;
R=X126use_current((/*RF2*/(C)->_expression/*8*/));
return R;
}


T0* r343twin(T343* C){
T0* R=NULL;
R=se_malloc(sizeof(*C));
*((T343*)R)=*C;
return R;
}


T0* r343to_runnable(T343* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*12*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
_e=X126to_runnable((/*RF2*/(C)->_expression/*8*/),a1);
/*[IF*/
if((_e)==((void*)(NULL))){
{T104 se_tmp0;
r343error((*(se_tmp0=r343start_position(C),&se_tmp0)),((T0*)ms339_297138751));
}
}
else{
(/*SFN*/C->_expression)=_e;
/*[IF*/
if(!(X62is_integer(X126result_type((/*RF2*/(C)->_expression/*8*/))))){
{T104 se_tmp0;
r343error((*(se_tmp0=X126start_position((/*RF2*/(C)->_expression/*8*/)),&se_tmp0)),((T0*)ms339_2043440078));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
R=((T0*)(C));
}
/*FI]*/
}
else{
R=r343twin(C);
/*[IRF3.3set_current_type*/((((T343*)(((T343*)R))))->_current_type)=(NULL);
/*]*/
R=r343to_runnable(((T343*)R),a1);
}
/*FI]*/
return R;
}


T104 r343start_position(T343* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X126start_position((/*RF2*/(C)->_expression/*8*/)),&se_tmp0));
}
return R;
}


void r251compile_to_c(T251* C){
/*[IF*/
if(X96is_once_function((/*RF2*/(C)->_run_feature/*12*/))){
/*[IRF3.6c_put_o_result*/{T0* b1=(/*RF2*/(C)->_run_feature/*12*/);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),r465o_result(/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)b1))->_base_feature/*28*/)));
/*]*/
}/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'R');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


T6 r251stupid_switch(T251* C,T0* a1){
T6 R=0;
/*[IF*/
if(r59stupid_switch(r251result_type(C),a1)){
R=1;
}
/*FI]*/
return R;
}


void r251mapping_c_arg(T251* C,T0* a1){
T0* _rt=NULL;
_rt=X62run_type(r251result_type(C));
/*[IF*/
if(X62is_reference(_rt)){
/*[IF*/
if(X62is_reference(a1)){
r251compile_to_c(C);
}
else{
r251compile_to_c(C);
}
/*FI]*/
}
else{
/*[IF*/
if(X62is_reference(a1)){
r251compile_to_c(C);
}
else{
/*[IF*/
if(X62need_c_struct(_rt)){
/*[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*/))));
}/*]*/
/*]*/
}
/*FI]*/
r251compile_to_c(C);
}
/*FI]*/
}
/*FI]*/
}


void r251to_integer_error(T251* C){
/*[IRF3.6append*/{T0* b1=((T0*)ms20_752996481);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
r82print_as_error((T82*)(oBC19eh));
}


T0* r251result_type(T251* C){
T0* R=NULL;
R=X96result_type((/*RF2*/(C)->_run_feature/*12*/));
return R;
}


void r251mapping_c_target(T251* C,T0* a1){
T0* _rt=NULL;
T6 _flag=0;
_flag=r83call_invariant_start(a1);
_rt=X62run_type(r251result_type(C));
/*[IF*/
if(X62is_reference(_rt)){
/*[IF*/
if(X62is_reference(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*/))));
}/*]*/
/*]*/
X62mapping_cast(a1);
r251compile_to_c(C);
/*[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{
r251compile_to_c(C);
}
/*FI]*/
}
else{
/*[IF*/
if(X62is_reference(a1)){
r251compile_to_c(C);
}
else{
/*[IF*/
if(X62need_c_struct(_rt)){
/*[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*/))));
}/*]*/
/*]*/
}
/*FI]*/
r251compile_to_c(C);
}
/*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]*/
}


T2 r251to_integer_or_error(T251* C){
T2 R=0;
r251to_integer_error(C);
return R;
}


T0* r251add_comment(T251* 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* r251to_runnable(T251* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rf=NULL;
_rf=/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/;
_rt=X96result_type(_rf);
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*12*/))==((void*)(NULL))){
(/*SFN*/C->_run_feature)=_rf;
R=((T0*)(C));
}
else{
{T104 se_tmp0;
{T251*n=((T251*)se_malloc(sizeof(*n))/*16*/);
*n=M251;
/*[IRF3.3make*/((((T251*)(n)))->_start_position)=((/*RF2*/(C)->_start_position/*4*/));
/*]*/
R=((T0*)n);
}
}
R=r251to_runnable(((T251*)R),a1);
}
/*FI]*/
return R;
}


T0* r251static_result_base_class(void){
T0* R=NULL;
T0* _bcn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _rf=NULL;
_rf=/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/;
_e_feature=/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)_rf))->_base_feature/*28*/);
_rt=X99result_type(_e_feature);
_bcn=X62static_base_class_name(_rt);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r77base_class(((T77*)_bcn));
}
/*FI]*/
return R;
}


void r374make(T374* C,T0* a1,T0* a2){
(/*SFN*/C->_name)=a1;
(/*SFN*/C->_constraint)=a2;
}


void r374constraint_substitution(T374* C,T0* a1,T2 a2){
T0* _cn=NULL;
T0* _fgan=NULL;
/*[IF*/
if(((/*RF2*/(C)->_constraint/*4*/))!=((void*)(NULL))){
_fgan=(/*RF2*/((T77*)((/*RF2*/(((T374*)a1))->_name/*0*/)))->_to_string/*8*/);
/*[IF*/
if(X62is_generic((/*RF2*/(C)->_constraint/*4*/))){
r374substitute(C,X62generic_list((/*RF2*/(C)->_constraint/*4*/)),a1,a2,_fgan);
}
else{
_cn=X62base_class_name((/*RF2*/(C)->_constraint/*4*/));
/*[IF*/
if((_fgan)==((void*)((/*RF2*/(((T77*)_cn))->_to_string/*8*/)))){
{T376*n=((T376*)se_malloc(sizeof(*n))/*40*/);
*n=M376;
r376make(n,_cn,a1,a2);
(/*SFN*/C->_constraint)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}


void r374check_generic_formal_arguments(T374* C){
/*[IF*/
if(r59is_used((/*RF2*/((T77*)((/*RF2*/(C)->_name/*0*/)))->_to_string/*8*/))){
{T104 se_tmp0;
r82add_position((/*RF2*/((T77*)((/*RF2*/(C)->_name/*0*/)))->_start_position/*0*/));
}
r374fatal_error(((T0*)ms374_161773610));
}
/*FI]*/
}


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


void r374substitute(T374* C,T0* a1,T0* a2,T2 a3,T0* a4){
T0* _cn=NULL;
T0* _t=NULL;
T0* _tfg=NULL;
T2 _i=0;
_i=(/*RF2*/(((T147*)a1))->_upper/*8*/);
while (!((_i)<((/*RF2*/(((T147*)a1))->_lower/*12*/))))
{
_t=r147item(((T147*)a1),_i);
/*[IF*/
if(X62is_generic(_t)){
r374substitute(C,X62generic_list(_t),a2,a3,a4);
}
else{
_cn=X62base_class_name(_t);
/*[IF*/
if((a4)==((void*)((/*RF2*/(((T77*)_cn))->_to_string/*8*/)))){
{T376*n=((T376*)se_malloc(sizeof(*n))/*40*/);
*n=M376;
r376make(n,_cn,a2,a3);
_tfg=((T0*)n);
}
/*[IRF3.6put*/{T147* C1=((T147*)a1);
T0* b1=_tfg;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}


void r359gc_mark(T359* C,T6 a1){
T0* _et_rc=NULL;
T0* _et=NULL;
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/;
_et_rc=X62run_class(_et);
/*[IF*/
if(X62need_gc_mark_function(_et)){
r7append((T7*)(oBC62body),((T0*)ms359_233907729));
/*[IF*/
if(!(a1)){
r7append((T7*)(oBC62body),((T0*)ms359_2095490029));
}
/*FI]*/
r7append((T7*)(oBC62body),((T0*)ms359_943358957));
r7extend((T7*)(oBC62body),((T3)'\173'));
r359c_type_in(C,oBC62body);
r7remove_last((T7*)(oBC62body),1);
r7extend((T7*)(oBC62body),((T3)'\40'));
r7extend((T7*)(oBC62body),((T3)'e'));
r7append((T7*)(oBC62body),((T0*)ms20_305));
r359c_type_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_775406525));
r444mark_for(oBC62body,((T0*)ms359_101),_et_rc);
r7append((T7*)(oBC62body),((T0*)ms359_22760));
/*[IF*/
if(!(a1)){
r7extend((T7*)(oBC62body),((T3)'\175'));
}
/*FI]*/
}
else{
r7append((T7*)(oBC62body),((T0*)ms359_77562923));
}
/*FI]*/
}


void r359gc_na_env_in(T359* C,T0* a1){
r7append(((T7*)a1),((T0*)ms359_419443));
r2append_in(r359id(C),a1);
}


void r359c_type_for_external_in(T359* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T359* C1=C;
T0* b1=a1;
r359c_type_for_argument_in(C1,b1);
}/*]*/
/*FI]*/
}


T0* r359type_any(void){
if(fBC19type_any==0){fBC19type_any=1;{
T104 _unknown_position={NULL,0};
{T356*n=((T356*)se_malloc(sizeof(*n))/*16*/);
*n=M356;
oBC19type_any=((T0*)n);
r356make(n,_unknown_position);
}
}}
return oBC19type_any;
}


T0* r359run_time_mark(T359* C){
T0* R=NULL;
/*[IF*/
if(r359is_run_type(C)){
R=(/*RF2*/((T359*)((/*RF2*/(C)->_run_type/*24*/)))->_written_mark/*20*/);
}
/*FI]*/
return R;
}


void r359set(T359* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
(/*SFN*/C->_base_class_memory)=a1;
(/*SFN*/C->_run_class_memory)=a2;
(/*SFN*/C->_base_class_name)=a3;
(/*SFN*/C->_generic_list)=a4;
(/*SFN*/C->_written_mark)=a5;
(/*SFN*/C->_run_type)=a6;
}


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


void r359gc_mark_in(T359* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(r359id(C),a1);
}


void r359make_runnable(T359* C,T104 a1,T0* a2,T0* a3){
r359make(C,a1,a3);
(/*SFN*/C->_run_type)=((T0*)(C));
}


void r359just_before_gc_mark_in(T359* C,T0* a1){
r7append(((T7*)a1),((T0*)ms359_3175));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_576790349));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_585110409));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_1069766146));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_958639438));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_1411018665));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_1682659883));
r359gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms359_1295032451));
}


void r359load_basic_features(T359* C){
T0* _rc=NULL;
T0* _rf=NULL;
T0* _et=NULL;
_rc=r359run_class(C);
r60set_at_run_time(((T60*)_rc));
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/;
/*[IF*/
if(X62is_expanded(_et)){
r60set_at_run_time((T60*)(X62run_class(_et)));
}
/*FI]*/
_rf=r60get_feature_with(((T60*)_rc),((T0*)ms21_16639));
_rf=r60get_feature_with(((T60*)_rc),((T0*)ms21_3501));
/*[IF*/
if((X62expanded_initializer(_et))!=((void*)(NULL))){
_rf=r60get_feature_with(((T60*)_rc),((T0*)ms21_49076823));
}
/*FI]*/
}


T2 r359id(T359* C){
T2 R=0;
R=(/*RF2*/((T60*)(r359run_class(C)))->_id/*16*/);
return R;
}


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


void r359mapping_cast(T359* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62mapping_cast_buffer))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\50'));
/*[IRF3.6c_type_for_target_in*/{T359* C1=C;
T0* b1=oBC62mapping_cast_buffer;
r359c_type_for_argument_in(C1,b1);
}/*]*/
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\51'));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62mapping_cast_buffer);
/*]*/
}


void r359c_type_for_argument_in(T359* C,T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r2append_in(r359id(C),a1);
}


T6 r359stupid_switch(T359* C,T0* a1){
T6 R=0;
R=X62stupid_switch(/*(IRF4.6first*/((/*RF2*/((T147*)((/*RF2*/(C)->_generic_list/*16*/)))->_storage/*0*/))[0]/*)*/,a1);
return R;
}


void r359c_frame_descriptor(T359* C){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
/*AF*//*AE*/
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'E'));
/*FI]*/
r2append_in(r359id(C),oBC19c_frame_descriptor_format);
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
}


void r359make(T359* C,T104 a1,T0* a2){
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_349117293),a1);
(/*SFN*/C->_base_class_name)=((T0*)n);
}
{T147*n=((T147*)se_malloc(sizeof(*n))/*16*/);
*n=M147;
r147make(n,1,1);
(/*SFN*/C->_generic_list)=((T0*)n);
}
/*[IRF3.6put*/{T147* C1=(T147*)((/*RF2*/(C)->_generic_list/*16*/));
T0* b1=a2;
T2 b2=1;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
r7copy((T7*)(oBC62tmp_string),((T0*)ms21_349117293));
r7extend((T7*)(oBC62tmp_string),((T3)'\133'));
r7append((T7*)(oBC62tmp_string),X62written_mark(a2));
r7extend((T7*)(oBC62tmp_string),((T3)'\135'));
(/*SFN*/C->_written_mark)=((/*UT*/(void)((T27*)(r359string_aliaser()))),r27item(oBC62tmp_string));
}


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


void r359gc_info_in(T359* C,T0* a1){
r7append(((T7*)a1),((T0*)ms359_1419822228));
r7append(((T7*)a1),r359run_time_mark(C));
r7append(((T7*)a1),((T0*)ms20_17723839));
r359gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms20_1330));
}


T0* r359string_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;
}

