/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "pretty.h"
/*No:FIXED_ARRAY[MANIFEST_STRING].storage*/
/*No:FIXED_ARRAY[MANIFEST_STRING].capacity*/
void r256with_capacity(T256* C,int a1){
/*IF*/if (((((T256*)C))->_capacity/*4*/)<(a1)) {
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI*/C->_upper=-(1);
}
/*No:FIXED_ARRAY[MANIFEST_STRING].put*/
/*No:FIXED_ARRAY[MANIFEST_STRING].upper*/
void r256add_last(T256* C,T0* a1){
int _new_capacity=0;
/*IF*/if ((((((T256*)C))->_upper/*8*/)+(1))<=(((((T256*)C))->_capacity/*4*/)-(1))) {
C->_upper=((((T256*)C))->_upper/*8*/)+(1);
}
 else if (((((T256*)C))->_capacity/*4*/)==(0)) {
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else {
_new_capacity=(2)*((((T256*)C))->_capacity/*4*/);
C->_storage=r729realloc((((T256*)C))->_storage/*0*/,(((T256*)C))->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((((T256*)C))->_upper/*8*/)+(1);
}
/*FI*//*[IRF3.5put*/((((T256*)C))->_storage/*0*/)[(((T256*)C))->_upper/*8*/]=(a1);
/*]*/
}
/*No:FIXED_ARRAY[RUN_CLASS].storage*/
/*No:FIXED_ARRAY[RUN_CLASS].capacity*/
void r187with_capacity(T187* C,int a1){
/*IF*/if (((((T187*)C))->_capacity/*4*/)<(a1)) {
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI*/C->_upper=-(1);
}
int r187fast_index_of(T187* C,T0* a1){
int R=0;
R=r659fast_index_of((((T187*)C))->_storage/*0*/,a1,(((T187*)C))->_upper/*8*/);
return R;
}
/*No:FIXED_ARRAY[RUN_CLASS].put*/
/*No:FIXED_ARRAY[RUN_CLASS].upper*/
void r187add_last(T187* C,T0* a1){
int _new_capacity=0;
/*IF*/if ((((((T187*)C))->_upper/*8*/)+(1))<=(((((T187*)C))->_capacity/*4*/)-(1))) {
C->_upper=((((T187*)C))->_upper/*8*/)+(1);
}
 else if (((((T187*)C))->_capacity/*4*/)==(0)) {
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else {
_new_capacity=(2)*((((T187*)C))->_capacity/*4*/);
C->_storage=r659realloc((((T187*)C))->_storage/*0*/,(((T187*)C))->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((((T187*)C))->_upper/*8*/)+(1);
}
/*FI*//*[IRF3.5put*/((((T187*)C))->_storage/*0*/)[(((T187*)C))->_upper/*8*/]=(a1);
/*]*/
}
T0* r419item(T419* C,int a1){
T0* R=NULL;
R=((((T419*)C))->_storage/*0*/)[(a1)-((((T419*)C))->_lower/*12*/)];
return R;
}
/*No:ARRAY[INSTRUCTION].storage*/
T0* r419twin(T419* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T419*)R)=M419;
r419copy(((T419*)R),((T0*)C));
return R;
}
/*No:ARRAY[INSTRUCTION].capacity*/
void r419copy(T419* C,T0* a1){
int _needed_capacity=0;
C->_lower=(((T419*)((T419*)a1)))->_lower/*12*/;
C->_upper=(((T419*)((T419*)a1)))->_upper/*8*/;
_needed_capacity=(((((T419*)C))->_upper/*8*/)-((((T419*)C))->_lower/*12*/))+(1);
/*IF*/if (((((T419*)C))->_capacity/*4*/)<(_needed_capacity)) {
C->_capacity=_needed_capacity;
C->_storage=calloc((((T419*)C))->_capacity/*4*/,sizeof(T0*));
}
/*FI*//*IF*/if ((_needed_capacity)>(0)) {
r705copy_from((((T419*)C))->_storage/*0*/,(((T419*)((T419*)a1)))->_storage/*0*/,(_needed_capacity)-(1));
}
/*FI*/}
/*No:ARRAY[INSTRUCTION].lower*/
/*No:ARRAY[INSTRUCTION].put*/
/*No:ARRAY[INSTRUCTION].upper*/
int r419count(T419* C){
int R=0;
R=(((((T419*)C))->_upper/*8*/)-((((T419*)C))->_lower/*12*/))+(1);
return R;
}
void r419add_last(T419* C,T0* a1){
int _new_capacity=0;
/*IF*/if (((((T419*)C))->_capacity/*4*/)<((r419count(C))+(1))) {
/*IF*/if (((((T419*)C))->_capacity/*4*/)==(0)) {
C->_capacity=16;
C->_storage=calloc((((T419*)C))->_capacity/*4*/,sizeof(T0*));
}
else {
_new_capacity=(2)*((((T419*)C))->_capacity/*4*/);
C->_storage=r705realloc((((T419*)C))->_storage/*0*/,(((T419*)C))->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI*/}
/*FI*/C->_upper=((((T419*)C))->_upper/*8*/)+(1);
/*[IRF3.6put*/{T419* C1=C;
T0* b1=a1;
int b2=(((T419*)C))->_upper/*8*/;
((((T419*)C1))->_storage/*0*/)[(b2)-((((T419*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
T0* r901item(T901* C,int a1){
T0* R=NULL;
R=((((T901*)C))->_storage/*0*/)[(a1)-((((T901*)C))->_lower/*12*/)];
return R;
}
/*No:ARRAY[CLASS_NAME].storage*/
T0* r901twin(T901* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T901*)R)=M901;
r901copy(((T901*)R),((T0*)C));
return R;
}
/*No:ARRAY[CLASS_NAME].capacity*/
void r901copy(T901* C,T0* a1){
int _needed_capacity=0;
C->_lower=(((T901*)((T901*)a1)))->_lower/*12*/;
C->_upper=(((T901*)((T901*)a1)))->_upper/*8*/;
_needed_capacity=(((((T901*)C))->_upper/*8*/)-((((T901*)C))->_lower/*12*/))+(1);
/*IF*/if (((((T901*)C))->_capacity/*4*/)<(_needed_capacity)) {
C->_capacity=_needed_capacity;
C->_storage=calloc((((T901*)C))->_capacity/*4*/,sizeof(T0*));
}
/*FI*//*IF*/if ((_needed_capacity)>(0)) {
r221copy_from((((T901*)C))->_storage/*0*/,(((T901*)((T901*)a1)))->_storage/*0*/,(_needed_capacity)-(1));
}
/*FI*/}
/*No:ARRAY[CLASS_NAME].lower*/
/*No:ARRAY[CLASS_NAME].put*/
/*No:ARRAY[CLASS_NAME].upper*/
int r901count(T901* C){
int R=0;
R=(((((T901*)C))->_upper/*8*/)-((((T901*)C))->_lower/*12*/))+(1);
return R;
}
void r901add_last(T901* C,T0* a1){
int _new_capacity=0;
/*IF*/if (((((T901*)C))->_capacity/*4*/)<((r901count(C))+(1))) {
/*IF*/if (((((T901*)C))->_capacity/*4*/)==(0)) {
C->_capacity=16;
C->_storage=calloc((((T901*)C))->_capacity/*4*/,sizeof(T0*));
}
else {
_new_capacity=(2)*((((T901*)C))->_capacity/*4*/);
C->_storage=r221realloc((((T901*)C))->_storage/*0*/,(((T901*)C))->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI*/}
/*FI*/C->_upper=((((T901*)C))->_upper/*8*/)+(1);
/*[IRF3.6put*/{T901* C1=C;
T0* b1=a1;
int b2=(((T901*)C))->_upper/*8*/;
((((T901*)C1))->_storage/*0*/)[(b2)-((((T901*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*No:FIXED_ARRAY[STRING].clear_all*/
/*No:FIXED_ARRAY[STRING].set_all_with*/
void r927make(T927* C,int a1){
/*IF*/if ((a1)==(0)) {
C->_upper=-(1);
}
 else if (((((T927*)C))->_capacity/*4*/)==(0)) {
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if (((((T927*)C))->_capacity/*4*/)<(a1)) {
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else {
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T927* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T927* C2=C1;
T0* c1=__value;
r400set_all_with((((T927*)C2))->_storage/*0*/,c1,(((T927*)C2))->_upper/*8*/);
}/*]*/
}/*]*/
}
/*FI*/}
/*No:FIXED_ARRAY[STRING].item*/
/*No:FIXED_ARRAY[STRING].storage*/
/*No:FIXED_ARRAY[STRING].capacity*/
void r927with_capacity(T927* C,int a1){
/*IF*/if (((((T927*)C))->_capacity/*4*/)<(a1)) {
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI*/C->_upper=-(1);
}
int r927fast_index_of(T927* C,T0* a1){
int R=0;
R=r400fast_index_of((((T927*)C))->_storage/*0*/,a1,(((T927*)C))->_upper/*8*/);
return R;
}
/*No:FIXED_ARRAY[STRING].put*/
/*No:FIXED_ARRAY[STRING].upper*/
void r927add_last(T927* C,T0* a1){
int _new_capacity=0;
/*IF*/if ((((((T927*)C))->_upper/*8*/)+(1))<=(((((T927*)C))->_capacity/*4*/)-(1))) {
C->_upper=((((T927*)C))->_upper/*8*/)+(1);
}
 else if (((((T927*)C))->_capacity/*4*/)==(0)) {
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else {
_new_capacity=(2)*((((T927*)C))->_capacity/*4*/);
C->_storage=r400realloc((((T927*)C))->_storage/*0*/,(((T927*)C))->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((((T927*)C))->_upper/*8*/)+(1);
}
/*FI*//*[IRF3.5put*/((((T927*)C))->_storage/*0*/)[(((T927*)C))->_upper/*8*/]=(a1);
/*]*/
}
/*No:ARRAY[RUN_CLASS].clear_all*/
/*No:ARRAY[RUN_CLASS].set_all_with*/
void r396make(T396* C,int a1,int a2){
int _needed=0;
C->_lower=a1;
C->_upper=a2;
_needed=((a2)-(a1))+(1);
/*IF*/if ((_needed)>(0)) {
/*IF*/if (((((T396*)C))->_capacity/*4*/)<(_needed)) {
/*IF*/if (((((T396*)C))->_capacity/*4*/)==(0)) {
C->_storage=calloc(_needed,sizeof(T0*));
}
else {
C->_storage=calloc(_needed,sizeof(T0*));
}
/*FI*/C->_capacity=_needed;
}
else {
/*[IRF3.6clear_all*/{T396* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T396* C2=C1;
T0* c1=__value;
r659set_all_with((((T396*)C2))->_storage/*0*/,c1,((((T396*)C2))->_upper/*8*/)-((((T396*)C2))->_lower/*12*/));
}/*]*/
}/*]*/
}
/*FI*/}
/*FI*/}
int r396fast_has(T396* C,T0* a1){
int R=0;
/*IF*/if ((r396count(C))>(0)) {
R=(r396fast_index_of(C,a1))<=((((T396*)C))->_upper/*8*/);
}
/*FI*/return R;
}
T0* r396item(T396* C,int a1){
T0* R=NULL;
R=((((T396*)C))->_storage/*0*/)[(a1)-((((T396*)C))->_lower/*12*/)];
return R;
}
void r396resize(T396* C,int a1,int a2){
int _mem=0;
int _up=0;
int _i=0;
T0* _other=NULL;
{T396*n=malloc(sizeof(*n));
*n=M396;
r396make(n,a1,a2);
_other=(T0*)n;
}
_i=r2max((((T396*)C))->_lower/*12*/,(((T396*)((T396*)_other)))->_lower/*12*/);
_up=r2min((((T396*)C))->_upper/*8*/,(((T396*)((T396*)_other)))->_upper/*8*/);
while (!((_i)>(_up))) {
/*[IRF3.6put*/{T396* C1=((T396*)_other);
T0* b1=r396item(C,_i);
int b2=_i;
((((T396*)C1))->_storage/*0*/)[(b2)-((((T396*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
*((T396*)(C))=*((T396*)(_other));
}
/*No:ARRAY[RUN_CLASS].storage*/
/*No:ARRAY[RUN_CLASS].capacity*/
/*No:ARRAY[RUN_CLASS].lower*/
int r396fast_index_of(T396* C,T0* a1){
int R=0;
R=((((T396*)C))->_lower/*12*/)+(r659fast_index_of((((T396*)C))->_storage/*0*/,a1,((((T396*)C))->_upper/*8*/)-((((T396*)C))->_lower/*12*/)));
return R;
}
/*No:ARRAY[RUN_CLASS].put*/
/*No:ARRAY[RUN_CLASS].upper*/
void r396add_last(T396* C,T0* a1){
int _new_capacity=0;
/*IF*/if (((((T396*)C))->_capacity/*4*/)<((r396count(C))+(1))) {
/*IF*/if (((((T396*)C))->_capacity/*4*/)==(0)) {
C->_capacity=16;
C->_storage=calloc((((T396*)C))->_capacity/*4*/,sizeof(T0*));
}
else {
_new_capacity=(2)*((((T396*)C))->_capacity/*4*/);
C->_storage=r659realloc((((T396*)C))->_storage/*0*/,(((T396*)C))->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI*/}
/*FI*/C->_upper=((((T396*)C))->_upper/*8*/)+(1);
/*[IRF3.6put*/{T396* C1=C;
T0* b1=a1;
int b2=(((T396*)C))->_upper/*8*/;
((((T396*)C1))->_storage/*0*/)[(b2)-((((T396*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
int r396count(T396* C){
int R=0;
R=(((((T396*)C))->_upper/*8*/)-((((T396*)C))->_lower/*12*/))+(1);
return R;
}
T0* r794at(T794* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r794has(C,a1);
R=r52item(((T52*)((((T794*)C))->_store/*4*/)),(((T794*)C))->_has_mem/*24*/);
return R;
}
void r794expand(T794* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r52count(((T52*)((((T794*)C))->_store/*4*/)));
r429resize(((T429*)((((T794*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T794*)C))->_keys/*0*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T794*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T794*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T794*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T794*)C))->_chain/*12*/));
int b1=(((T794*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
T0*oBC672tmp_buckets=NULL;
/*No:DICTIONARY[STRING,STRING].free*/
void r794make(T794* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T794*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r794initialize(C);
}
void r794resize(T794* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T794*)C))->_buckets/*8*/);
r226make(((T226*)((((T794*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T794*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T794*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T794*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T794*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[STRING,STRING].item_mem*/
/*No:DICTIONARY[STRING,STRING].chain*/
/*No:DICTIONARY[STRING,STRING].keys*/
/*No:DICTIONARY[STRING,STRING].buckets*/
int r794has(T794* C,T0* a1){
int R=0;
/*IF*/if ((((((T794*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T794*)C))->_keys/*0*/)),(((T794*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T794*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T794*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T794*)C))->_keys/*0*/)),(((T794*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T794*)C))->_chain/*12*/)),(((T794*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T794*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[STRING,STRING].Min_size*/
/*No:DICTIONARY[STRING,STRING].store*/
void r794with_capacity(T794* C,int a1){
int _i=0;
_i=32;
while (!((_i)>=(a1))) {
_i=(2)*(_i);
}
C->_modulus=(2)*(_i);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T794*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,_i);
C->_chain=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,_i);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,_i);
C->_keys=(T0*)n;
}
r794initialize(C);
}
void r794put(T794* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T794*)C))->_modulus/*20*/);
/*IF*/if ((((((T794*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T794*)C))->_keys/*0*/)),(((T794*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T794*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T794*)C))->_keys/*0*/)),(((T794*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T794*)C))->_chain/*12*/)),(((T794*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T794*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T794*)C))->_count/*32*/)>=(r52count(((T52*)((((T794*)C))->_store/*4*/))))) {
r794expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T794*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T794*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T52* C1=((T52*)((((T794*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T794*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T794*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T794*)C))->_chain/*12*/)),(((T794*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T794*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T794*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T794*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T794*)C))->_count/*32*/)+(1);
/*IF*/if (((((T794*)C))->_count/*32*/)>(((((T794*)C))->_modulus/*20*/)*(2))) {
r794resize(C,(2)*((((T794*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T52* C1=((T52*)((((T794*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T794*)C))->_has_mem/*24*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[STRING,STRING].modulus*/
/*No:DICTIONARY[STRING,STRING].count*/
/*No:DICTIONARY[STRING,STRING].has_mem*/
void r794initialize(T794* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T794*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T794*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T794*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T794*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T794*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
T0* r338at(T338* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r338has(C,a1);
R=r956item(((T956*)((((T338*)C))->_store/*4*/)),(((T338*)C))->_has_mem/*24*/);
return R;
}
void r338expand(T338* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r956count(((T956*)((((T338*)C))->_store/*4*/)));
r429resize(((T429*)((((T338*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T338*)C))->_keys/*0*/)),1,(2)*(_old_size));
r956resize(((T956*)((((T338*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T338*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T338*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T338*)C))->_chain/*12*/));
int b1=(((T338*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].free*/
void r338make(T338* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T338*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T956*n=malloc(sizeof(*n));
*n=M956;
r956make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r338initialize(C);
}
void r338resize(T338* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T338*)C))->_buckets/*8*/);
r226make(((T226*)((((T338*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T338*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T338*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T338*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T338*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].item_mem*/
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].chain*/
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].keys*/
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].buckets*/
int r338has(T338* C,T0* a1){
int R=0;
/*IF*/if ((((((T338*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T338*)C))->_keys/*0*/)),(((T338*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T338*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T338*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T338*)C))->_keys/*0*/)),(((T338*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T338*)C))->_chain/*12*/)),(((T338*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T338*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].Min_size*/
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].store*/
void r338put(T338* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T338*)C))->_modulus/*20*/);
/*IF*/if ((((((T338*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T338*)C))->_keys/*0*/)),(((T338*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T338*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T338*)C))->_keys/*0*/)),(((T338*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T338*)C))->_chain/*12*/)),(((T338*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T338*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T338*)C))->_count/*32*/)>=(r956count(((T956*)((((T338*)C))->_store/*4*/))))) {
r338expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T338*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T338*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T956* C1=((T956*)((((T338*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T338*)C))->_free/*16*/;
((((T956*)C1))->_storage/*0*/)[(b2)-((((T956*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T338*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T338*)C))->_chain/*12*/)),(((T338*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T338*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T338*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T338*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T338*)C))->_count/*32*/)+(1);
/*IF*/if (((((T338*)C))->_count/*32*/)>(((((T338*)C))->_modulus/*20*/)*(2))) {
r338resize(C,(2)*((((T338*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T956* C1=((T956*)((((T338*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T338*)C))->_has_mem/*24*/;
((((T956*)C1))->_storage/*0*/)[(b2)-((((T956*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].modulus*/
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].count*/
/*No:DICTIONARY[DICTIONARY[RUN_FEATURE,STRING],STRING].has_mem*/
void r338initialize(T338* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T338*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T338*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T338*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T338*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T338*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
T0* r199at(T199* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r199has(C,a1);
R=r477item(((T477*)((((T199*)C))->_store/*4*/)),(((T199*)C))->_has_mem/*24*/);
return R;
}
void r199expand(T199* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r477count(((T477*)((((T199*)C))->_store/*4*/)));
r429resize(((T429*)((((T199*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T199*)C))->_keys/*0*/)),1,(2)*(_old_size));
r477resize(((T477*)((((T199*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T199*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=(((T199*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[RUN_FEATURE,STRING].free*/
void r199make(T199* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T199*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T477*n=malloc(sizeof(*n));
*n=M477;
r477make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r199initialize(C);
}
void r199resize(T199* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T199*)C))->_buckets/*8*/);
r226make(((T226*)((((T199*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T199*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T199*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T199*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[RUN_FEATURE,STRING].item_mem*/
/*No:DICTIONARY[RUN_FEATURE,STRING].chain*/
/*No:DICTIONARY[RUN_FEATURE,STRING].buckets*/
/*No:DICTIONARY[RUN_FEATURE,STRING].keys*/
int r199has(T199* C,T0* a1){
int R=0;
/*IF*/if ((((((T199*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T199*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T199*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T199*)C))->_chain/*12*/)),(((T199*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T199*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[RUN_FEATURE,STRING].Min_size*/
/*No:DICTIONARY[RUN_FEATURE,STRING].store*/
void r199with_capacity(T199* C,int a1){
int _i=0;
_i=32;
while (!((_i)>=(a1))) {
_i=(2)*(_i);
}
C->_modulus=(2)*(_i);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T199*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,_i);
C->_chain=(T0*)n;
}
{T477*n=malloc(sizeof(*n));
*n=M477;
r477make(n,1,_i);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,_i);
C->_keys=(T0*)n;
}
r199initialize(C);
}
void r199put(T199* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T199*)C))->_modulus/*20*/);
/*IF*/if ((((((T199*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T199*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T199*)C))->_keys/*0*/)),(((T199*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T199*)C))->_chain/*12*/)),(((T199*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T199*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T199*)C))->_count/*32*/)>=(r477count(((T477*)((((T199*)C))->_store/*4*/))))) {
r199expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T199*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T199*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T477* C1=((T477*)((((T199*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T199*)C))->_free/*16*/;
((((T477*)C1))->_storage/*0*/)[(b2)-((((T477*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T199*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T199*)C))->_chain/*12*/)),(((T199*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T199*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T199*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T199*)C))->_count/*32*/)+(1);
/*IF*/if (((((T199*)C))->_count/*32*/)>(((((T199*)C))->_modulus/*20*/)*(2))) {
r199resize(C,(2)*((((T199*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T477* C1=((T477*)((((T199*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T199*)C))->_has_mem/*24*/;
((((T477*)C1))->_storage/*0*/)[(b2)-((((T477*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[RUN_FEATURE,STRING].modulus*/
/*No:DICTIONARY[RUN_FEATURE,STRING].count*/
/*No:DICTIONARY[RUN_FEATURE,STRING].has_mem*/
void r199initialize(T199* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T199*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T199*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T199*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T199*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}
T0* r718at(T718* C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=r718has(C,a1);
R=r863item(((T863*)((((T718*)C))->_store/*4*/)),(((T718*)C))->_has_mem/*24*/);
return R;
}
void r718expand(T718* C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=r863count(((T863*)((((T718*)C))->_store/*4*/)));
r429resize(((T429*)((((T718*)C))->_chain/*12*/)),1,(2)*(_old_size));
r52resize(((T52*)((((T718*)C))->_keys/*0*/)),1,(2)*(_old_size));
r863resize(((T863*)((((T718*)C))->_store/*4*/)),1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(r429count(((T429*)((((T718*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(((T718*)C))->_free/*16*/;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=(_old_size)+(1);
}
/*No:DICTIONARY[BASE_CLASS,STRING].free*/
void r718make(T718* C){
C->_modulus=(2)*(32);
{T226*n=malloc(sizeof(*n));
*n=M226;
r226make(n,(((T718*)C))->_modulus/*20*/);
C->_buckets=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,32);
C->_chain=(T0*)n;
}
{T863*n=malloc(sizeof(*n));
*n=M863;
r863make(n,1,32);
C->_store=(T0*)n;
}
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,32);
C->_keys=(T0*)n;
}
r718initialize(C);
}
void r718remove(T718* C,T0* a1){
int _p=0;
int _n=0;
int _hash=0;
_hash=(r7hash_code(((T7*)a1)))%((((T718*)C))->_modulus/*20*/);
_n=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!(((_n)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T718*)C))->_keys/*0*/)),_n))))) {
_p=_n;
_n=r429item(((T429*)((((T718*)C))->_chain/*12*/)),_n);
}
/*IF*/if ((_n)!=(0)) {
/*IF*/if ((_p)!=(0)) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=r429item(((T429*)((((T718*)C))->_chain/*12*/)),_n);
int b2=_p;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
else {
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(r429item(((T429*)((((T718*)C))->_chain/*12*/)),_n));
/*]*/
}
/*FI*//*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(((T718*)C))->_free/*16*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=_n;
C->_count=((((T718*)C))->_count/*32*/)-(1);
/*IF*/if ((_n)==((((T718*)C))->_has_mem/*24*/)) {
C->_has_mem=0;
}
/*FI*//*IF*/if ((((((T718*)C))->_count/*32*/)<((r863count(((T863*)((((T718*)C))->_store/*4*/))))/(4)))&&(((((T718*)C))->_count/*32*/)>(32))) {
r718shrink(C);
}
/*FI*/}
/*FI*/C->_item_mem=0;
}
void r718shrink(T718* C){
int _k=0;
int _j=0;
int _i=0;
T0* _chn=NULL;
T0* _kys=NULL;
T0* _str=NULL;
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,(r863count(((T863*)((((T718*)C))->_store/*4*/))))/(2));
_kys=(T0*)n;
}
{T863*n=malloc(sizeof(*n));
*n=M863;
r863make(n,1,(r863count(((T863*)((((T718*)C))->_store/*4*/))))/(2));
_str=(T0*)n;
}
{T429*n=malloc(sizeof(*n));
*n=M429;
r429make(n,1,(r863count(((T863*)((((T718*)C))->_store/*4*/))))/(2));
_chn=(T0*)n;
}
_i=1;
_j=0;
while (!((_j)>=((((T718*)C))->_modulus/*20*/))) {
_k=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_j]/*)*/;
/*IF*/if ((_k)!=(0)) {
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_j]=(_i);
/*]*/
}
/*FI*/while (!((_k)==(0))) {
/*[IRF3.6put*/{T52* C1=((T52*)_kys);
T0* b1=r52item(((T52*)((((T718*)C))->_keys/*0*/)),_k);
int b2=_i;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T863* C1=((T863*)_str);
T0* b1=r863item(((T863*)((((T718*)C))->_store/*4*/)),_k);
int b2=_i;
((((T863*)C1))->_storage/*0*/)[(b2)-((((T863*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_k=r429item(((T429*)((((T718*)C))->_chain/*12*/)),_k);
/*IF*/if ((_k)==(0)) {
/*[IRF3.6put*/{T429* C1=((T429*)_chn);
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
else {
/*[IRF3.6put*/{T429* C1=((T429*)_chn);
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
_j=(_j)+(1);
}
_i=((((T718*)C))->_count/*32*/)+(1);
while (!((_i)>=(r429count(((T429*)_chn))))) {
/*[IRF3.6put*/{T429* C1=((T429*)_chn);
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)_chn);
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_free=((((T718*)C))->_count/*32*/)+(1);
C->_chain=_chn;
C->_keys=_kys;
C->_store=_str;
C->_item_mem=0;
}
void r718resize(T718* C,int a1){
int _p=0;
int _n=0;
int _i=0;
int _hash=0;
r226copy(((T226*)(oBC672tmp_buckets)),(((T718*)C))->_buckets/*8*/);
r226make(((T226*)((((T718*)C))->_buckets/*8*/)),a1);
_i=0;
while (!((_i)>=((((T718*)C))->_modulus/*20*/))) {
_n=/*(IRF4.6item*/((((T226*)((T226*)(oBC672tmp_buckets))))->_storage/*0*/)[_i]/*)*/;
while (!((_n)==(0))) {
_p=r429item(((T429*)((((T718*)C))->_chain/*12*/)),_n);
_hash=(r7hash_code(((T7*)(r52item(((T52*)((((T718*)C))->_keys/*0*/)),_n)))))%(a1);
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=_n;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=(_n);
/*]*/
_n=_p;
}
_i=(_i)+(1);
}
C->_modulus=a1;
C->_item_mem=0;
}
/*No:DICTIONARY[BASE_CLASS,STRING].item_mem*/
/*No:DICTIONARY[BASE_CLASS,STRING].chain*/
/*No:DICTIONARY[BASE_CLASS,STRING].keys*/
/*No:DICTIONARY[BASE_CLASS,STRING].buckets*/
int r718has(T718* C,T0* a1){
int R=0;
/*IF*/if ((((((T718*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a1),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((((T718*)C))->_modulus/*20*/)]/*)*/;
while (!((((((T718*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a1),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T718*)C))->_chain/*12*/)),(((T718*)C))->_has_mem/*24*/);
}
}
/*FI*/R=((((T718*)C))->_has_mem/*24*/)!=(0);
return R;
}
/*No:DICTIONARY[BASE_CLASS,STRING].Min_size*/
/*No:DICTIONARY[BASE_CLASS,STRING].store*/
void r718put(T718* C,T0* a1,T0* a2){
int _hash=0;
_hash=(r7hash_code(((T7*)a2)))%((((T718*)C))->_modulus/*20*/);
/*IF*/if ((((((T718*)C))->_has_mem/*24*/)==(0))||(!(r7is_equal(((T7*)a2),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
while (!((((((T718*)C))->_has_mem/*24*/)==(0))||(r7is_equal(((T7*)a2),r52item(((T52*)((((T718*)C))->_keys/*0*/)),(((T718*)C))->_has_mem/*24*/))))) {
C->_has_mem=r429item(((T429*)((((T718*)C))->_chain/*12*/)),(((T718*)C))->_has_mem/*24*/);
}
/*IF*/if (((((T718*)C))->_has_mem/*24*/)==(0)) {
/*IF*/if (((((T718*)C))->_count/*32*/)>=(r863count(((T863*)((((T718*)C))->_store/*4*/))))) {
r718expand(C);
}
/*FI*//*[IRF3.6put*/{T52* C1=((T52*)((((T718*)C))->_keys/*0*/));
T0* b1=a2;
int b2=(((T718*)C))->_free/*16*/;
((((T52*)C1))->_storage/*0*/)[(b2)-((((T52*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.6put*/{T863* C1=((T863*)((((T718*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T718*)C))->_free/*16*/;
((((T863*)C1))->_storage/*0*/)[(b2)-((((T863*)C1))->_lower/*12*/)]=(b1);
}/*]*/
C->_has_mem=(((T718*)C))->_free/*16*/;
C->_free=r429item(((T429*)((((T718*)C))->_chain/*12*/)),(((T718*)C))->_free/*16*/);
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=/*(IRF4.6item*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]/*)*/;
int b2=(((T718*)C))->_has_mem/*24*/;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_hash]=((((T718*)C))->_has_mem/*24*/);
/*]*/
C->_count=((((T718*)C))->_count/*32*/)+(1);
/*IF*/if (((((T718*)C))->_count/*32*/)>(((((T718*)C))->_modulus/*20*/)*(2))) {
r718resize(C,(2)*((((T718*)C))->_modulus/*20*/));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6put*/{T863* C1=((T863*)((((T718*)C))->_store/*4*/));
T0* b1=a1;
int b2=(((T718*)C))->_has_mem/*24*/;
((((T863*)C1))->_storage/*0*/)[(b2)-((((T863*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/C->_item_mem=0;
}
/*No:DICTIONARY[BASE_CLASS,STRING].modulus*/
/*No:DICTIONARY[BASE_CLASS,STRING].count*/
/*No:DICTIONARY[BASE_CLASS,STRING].has_mem*/
void r718initialize(T718* C){
int _i=0;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
_i=1;
while (!((_i)==(r429count(((T429*)((((T718*)C))->_chain/*12*/)))))) {
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=(_i)+(1);
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T429* C1=((T429*)((((T718*)C))->_chain/*12*/));
int b1=0;
int b2=_i;
((((T429*)C1))->_storage/*0*/)[(b2)-((((T429*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=0;
while (!((_i)>=((((T718*)C))->_modulus/*20*/))) {
/*[IRF3.5put*/((((T226*)((T226*)((((T718*)C))->_buckets/*8*/))))->_storage/*0*/)[_i]=(0);
/*]*/
_i=(_i)+(1);
}
}

