

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ __ATree_7;
extern OBJ _ATree_11(OBJ,OBJ);extern OBJ __ATree_11;
extern OBJ _ATree_12(OBJ,OBJ);extern OBJ __ATree_12;
extern OBJ _ATree_13(OBJ,OBJ);extern OBJ __ATree_13;
extern OBJ _ATree_14(OBJ,OBJ);extern OBJ __ATree_14;
extern OBJ _ATree_15(OBJ);extern OBJ __ATree_15;
extern OBJ _ATree_16(OBJ);extern OBJ __ATree_16;
extern OBJ _ATree_19(OBJ);extern OBJ __ATree_19;
extern OBJ _ATree_20(OBJ);extern OBJ __ATree_20;
extern OBJ _ATree_23(OBJ,OBJ);extern OBJ __ATree_23;
extern OBJ _ATree_24(OBJ);extern OBJ __ATree_24;
extern OBJ _ATree_25(OBJ);extern OBJ __ATree_25;
extern OBJ _ATree_26(OBJ);extern OBJ __ATree_26;
extern OBJ _ATree_27(OBJ);extern OBJ __ATree_27;
extern OBJ _ATree_28(OBJ);extern OBJ __ATree_28;
extern OBJ _ATree_29(OBJ,OBJ);extern OBJ __ATree_29;
extern OBJ _ATree_30(OBJ,OBJ);extern OBJ __ATree_30;
extern OBJ _ATree_31(OBJ,OBJ);extern OBJ __ATree_31;
extern OBJ _ATree_32(OBJ,OBJ,OBJ);extern OBJ __ATree_32;
extern OBJ _ATree_33(OBJ,OBJ,OBJ);extern OBJ __ATree_33;
extern OBJ _AHeap_2(OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_2; /* node */
extern OBJ _AHeap_3(OBJ,OBJ);OBJ __AHeap_3; /* node? */
extern OBJ _AHeap_4(OBJ,OBJ);OBJ __AHeap_4; /* right */
extern OBJ _AHeap_5(OBJ,OBJ);OBJ __AHeap_5; /* left */
extern OBJ _AHeap_6(OBJ,OBJ);OBJ __AHeap_6; /* val */
extern OBJ _AHeap_7(OBJ);OBJ __AHeap_7; /* nil */
extern OBJ _AHeap_8(OBJ,OBJ);OBJ __AHeap_8; /* nil? */
extern OBJ _AHeap_11(OBJ,OBJ);OBJ __AHeap_11; /* % */
extern OBJ _AHeap_12(OBJ,OBJ,OBJ);OBJ __AHeap_12; /* %,1 */
extern OBJ _AHeap_13(OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_13; /* %,2 */
extern OBJ _AHeap_14(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_14; /* %,3 */
extern OBJ _AHeap_15(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_15; /* %,4 */
extern OBJ _AHeap_16(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_16; /* %,5 */
extern OBJ _AHeap_17(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_17; /* %,6 */
extern OBJ _AHeap_18(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_18; /* %,7 */
extern OBJ _AHeap_19(OBJ,OBJ,OBJ);OBJ __AHeap_19; /* incl */
extern OBJ _AHeap_20(OBJ,OBJ,OBJ);OBJ __AHeap_20; /* excl */
extern OBJ _AHeap_21(OBJ,OBJ,OBJ);OBJ __AHeap_21; /* iter */
extern OBJ _AHeap_22(OBJ,OBJ,OBJ);OBJ __AHeap_22; /* + */
extern OBJ _AHeap_23(OBJ,OBJ,OBJ);OBJ __AHeap_23; /* :=_val */
extern OBJ _AHeap_24(OBJ,OBJ,OBJ);OBJ __AHeap_24; /* :=_left */
extern OBJ _AHeap_25(OBJ,OBJ,OBJ);OBJ __AHeap_25; /* :=_right */
extern OBJ _AHeap_26(OBJ,OBJ);OBJ __AHeap_26; /* swap */
extern OBJ _AHeap_27(OBJ,OBJ);OBJ __AHeap_27; /* reflect */
extern TUP2 _AHeap_28(OBJ,OBJ);OBJ __AHeap_28; /* extractMin */
extern OBJ _AHeap_29(OBJ,OBJ);OBJ __AHeap_29; /* min */
extern OBJ _AHeap_30(OBJ,OBJ);OBJ __AHeap_30; /* leftmost */
extern OBJ _AHeap_31(OBJ,OBJ);OBJ __AHeap_31; /* rightmost */
extern OBJ _AHeap_32(OBJ,OBJ);OBJ __AHeap_32; /* children */
extern OBJ _AHeap_33(OBJ,OBJ);OBJ __AHeap_33; /* grandchildren */
extern OBJ _AHeap_34(OBJ,OBJ,OBJ);OBJ __AHeap_34; /* level */
extern OBJ _AHeap_35(OBJ,OBJ);OBJ __AHeap_35; /* front */
extern OBJ _AHeap_36(OBJ,OBJ,OBJ);OBJ __AHeap_36; /* in */
extern OBJ _AHeap_37(OBJ,OBJ);OBJ __AHeap_37; /* # */
extern OBJ _AHeap_38(OBJ,OBJ);OBJ __AHeap_38; /* depth */
extern OBJ _AHeap_39(OBJ,OBJ);OBJ __AHeap_39; /* width */
extern OBJ _AHeap_40(OBJ,OBJ);OBJ __AHeap_40; /* leaf? */
extern OBJ _AHeap_41(OBJ,OBJ,OBJ);OBJ __AHeap_41; /* exist? */
extern OBJ _AHeap_42(OBJ,OBJ,OBJ);OBJ __AHeap_42; /* forall? */
extern OBJ _AHeap_43(OBJ,OBJ,OBJ);OBJ __AHeap_43; /* find? */
extern OBJ _AHeap_44(OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_44; /* < */
extern OBJ _AHeap_45(OBJ,OBJ,OBJ);OBJ __AHeap_45; /* {<} */
extern OBJ _AHeap_46(OBJ,OBJ,OBJ,OBJ);OBJ __AHeap_46; /* = */
extern OBJ _AHeap_47(OBJ,OBJ);OBJ __AHeap_47; /* abs */
extern OBJ _AHeap_48(OBJ,OBJ);OBJ __AHeap_48; /* rep */
extern OBJ _AHeap_49(OBJ,OBJ);OBJ __AHeap_49; /* heap? */
extern OBJ _AHeap_50(OBJ,OBJ);OBJ __AHeap_50; /* heap0? */
extern OBJ _AHeap_51(OBJ,OBJ,OBJ);OBJ __AHeap_51; /* +,1 */
extern OBJ _AHeap_53(OBJ,OBJ);OBJ __AHeap_53; /* abs? */
extern OBJ _AHeap_55(OBJ,OBJ,OBJ);OBJ __AHeap_55; /* incl,1 */
extern TUP2 _AHeap_56(OBJ,OBJ,OBJ);OBJ __AHeap_56; /* excl,1 */
extern OBJ _AHeap_58(OBJ,OBJ,OBJ);OBJ __AHeap_58; /* in,1 */
extern OBJ _AHeap_59(OBJ,OBJ,OBJ);OBJ __AHeap_59; /* <= */

extern OBJ _AHeap_2(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* node */
{OBJ r;
 {OBJ x5;OBJ x6;
  PRD1(3,x5);FLD1(x5,1)=x2;FLD1(x5,2)=x3;FLD1(x5,3)=x4;
  COPY(x5,1);
  x6=_AHeap_50(x1,x5);
  if(ISTGPRM(x6,1)){
   r=x5;
  }else{
   HLT("node\'Heap: heap condition violated");}}
 return r;}

extern OBJ _AHeap_3(OBJ x1,OBJ x2) /* node? */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  r=__ABUILTIN_3;
 }else{
  if(EXPRD(x2,1)){
   DSPRD(x2);
  }else{
   DCPRD(x2,1);}
  r=__ABUILTIN_5;}
 return r;}

extern OBJ _AHeap_4(OBJ x1,OBJ x2) /* right */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("Tree at <unknown> : undefined selection right\'Tree:tree->tree");
 }else{
  {OBJ x5=FLD1(x2,3);
   if(EXPRD(x2,1)){
    r=x5;
    FLD1(x2,3)=NIL;DSPRD(x2);
   }else{
    COPY(x5,1);
    r=x5;
    FRPRD(x2,1);}}}
 return r;}

extern OBJ _AHeap_5(OBJ x1,OBJ x2) /* left */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("Tree at <unknown> : undefined selection left\'Tree:tree->tree");
 }else{
  {OBJ x4=FLD1(x2,2);
   if(EXPRD(x2,1)){
    r=x4;
    FLD1(x2,2)=NIL;DSPRD(x2);
   }else{
    COPY(x4,1);
    r=x4;
    FRPRD(x2,1);}}}
 return r;}

extern OBJ _AHeap_6(OBJ x1,OBJ x2) /* val */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("Tree at <unknown> : undefined selection val\'Tree:tree->data");
 }else{
  {OBJ x3=FLD1(x2,1);
   if(EXPRD(x2,1)){
    r=x3;
    FLD1(x2,1)=NIL;DSPRD(x2);
   }else{
    COPY(x3,1);
    r=x3;
    FRPRD(x2,1);}}}
 return r;}

extern OBJ _AHeap_7(OBJ x1) /* nil */
{OBJ r;
 FRCLS(x1,1);
 r=__ATree_7;
 return r;}

extern OBJ _AHeap_8(OBJ x1,OBJ x2) /* nil? */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  r=__ABUILTIN_5;
 }else{
  if(EXPRD(x2,1)){
   DSPRD(x2);
  }else{
   DCPRD(x2,1);}
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AHeap_11(OBJ x1,OBJ x2) /* % */
{OBJ r;
 FRCLS(x1,1);
 PRD1(3,r);FLD1(r,1)=x2;FLD1(r,2)=__ATree_7;FLD1(r,3)=__ATree_7;
 return r;}

extern OBJ _AHeap_12(OBJ x1,OBJ x2,OBJ x3) /* %,1 */
{OBJ r;
 {OBJ x4;
  PRD1(3,x4);FLD1(x4,1)=x3;FLD1(x4,2)=__ATree_7;FLD1(x4,3)=__ATree_7;
  r=_AHeap_55(x1,x2,x4);}
 return r;}

extern OBJ _AHeap_13(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* %,2 */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x5;OBJ x6;
  PRD1(3,x5);FLD1(x5,1)=x4;FLD1(x5,2)=__ATree_7;FLD1(x5,3)=__ATree_7;
  x6=_AHeap_55(x1,x3,x5);
  r=_AHeap_55(x1,x2,x6);}
 return r;}

extern OBJ _AHeap_14(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* %,3 */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x6;
  x6=_AHeap_13(x1,x3,x4,x5);
  r=_AHeap_55(x1,x2,x6);}
 return r;}

extern OBJ _AHeap_15(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* %,4 */
{OBJ r;
 CPCLS(x1,2);
 {OBJ x7;OBJ x8;
  x7=_AHeap_13(x1,x4,x5,x6);
  x8=_AHeap_55(x1,x3,x7);
  r=_AHeap_55(x1,x2,x8);}
 return r;}

extern OBJ _AHeap_16(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* %,5 */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x8;
  x8=_AHeap_15(x1,x3,x4,x5,x6,x7);
  r=_AHeap_55(x1,x2,x8);}
 return r;}

extern OBJ _AHeap_17(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* %,6 */
{OBJ r;
 CPCLS(x1,2);
 {OBJ x9;OBJ x10;
  x9=_AHeap_15(x1,x4,x5,x6,x7,x8);
  x10=_AHeap_55(x1,x3,x9);
  r=_AHeap_55(x1,x2,x10);}
 return r;}

extern OBJ _AHeap_18(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8,OBJ x9) /* %,7 */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x10;
  x10=_AHeap_17(x1,x3,x4,x5,x6,x7,x8,x9);
  r=_AHeap_55(x1,x2,x10);}
 return r;}

extern OBJ _AHeap_19(OBJ x1,OBJ x2,OBJ x3) /* incl */
{OBJ r;
 r=_AHeap_55(x1,x2,x3);
 return r;}

extern OBJ _AHeap_20(OBJ x1,OBJ x2,OBJ x3) /* excl */
{OBJ r;
 {TUP2 x6;
  x6=_AHeap_56(x1,x2,x3);r=x6.c1;}
 return r;}

extern OBJ _AHeap_21(OBJ x1,OBJ x2,OBJ x3) /* iter */
{OBJ r;
 {OBJ x4;OBJ x5;
  x4=_ATree_11(x2,x3);
  COPY(x4,1);
  x5=_AHeap_49(x1,x4);
  if(ISTGPRM(x5,1)){
   r=x4;
  }else{
   HLT("iter\'Heap: result violates heap condition");}}
 return r;}

extern OBJ _AHeap_22(OBJ x1,OBJ x2,OBJ x3) /* + */
{OBJ r;
 r=_AHeap_51(x1,x2,x3);
 return r;}

extern OBJ _AHeap_23(OBJ x1,OBJ x2,OBJ x3) /* :=_val */
{OBJ r;
 {OBJ x4;OBJ x5;
  x4=_ATree_12(x2,x3);
  COPY(x4,1);
  x5=_AHeap_50(x1,x4);
  if(ISTGPRM(x5,1)){
   r=x4;
  }else{
   HLT(":=_val\'Heap: heap condition is violated");}}
 return r;}

extern OBJ _AHeap_24(OBJ x1,OBJ x2,OBJ x3) /* :=_left */
{OBJ r;
 {OBJ x4;OBJ x5;
  x4=_ATree_13(x2,x3);
  COPY(x4,1);
  x5=_AHeap_50(x1,x4);
  if(ISTGPRM(x5,1)){
   r=x4;
  }else{
   HLT(":=_left\'Heap: heap condition is violated");}}
 return r;}

extern OBJ _AHeap_25(OBJ x1,OBJ x2,OBJ x3) /* :=_right */
{OBJ r;
 {OBJ x4;OBJ x5;
  x4=_ATree_14(x2,x3);
  COPY(x4,1);
  x5=_AHeap_50(x1,x4);
  if(ISTGPRM(x5,1)){
   r=x4;
  }else{
   HLT(":=_right\'Heap: heap condition is violated");}}
 return r;}

extern OBJ _AHeap_26(OBJ x1,OBJ x2) /* swap */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_15(x2);
 return r;}

extern OBJ _AHeap_27(OBJ x1,OBJ x2) /* reflect */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_16(x2);
 return r;}

extern TUP2 _AHeap_28(OBJ x1,OBJ x2) /* extractMin */
{TUP2 r;
 if(ISPRM(x2)){
  HLT("extractMin\'Heap: applied to empty heap");
 }else{
  {OBJ x31=FLD1(x2,1);OBJ x32=FLD1(x2,2);OBJ x33=FLD1(x2,3);
   if(EXPRD(x2,1)){
    r.c1=x31;
    DSPRDF(x2);
   }else{
    COPY(x31,1);COPY(x32,1);COPY(x33,1);
    r.c1=x31;
    FRPRD(x2,1);}
   r.c2=_AHeap_51(x1,x32,x33);}}
 return r;}
extern OBJ _AHeap_28_c(OBJ x1,OBJ x2) /* extractMin */
{OBJ r;
 {TUP2 t=_AHeap_28(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AHeap_29(OBJ x1,OBJ x2) /* min */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("min\'Heap: applied to empty heap");
 }else{
  {OBJ x14=FLD1(x2,1);
   if(EXPRD(x2,1)){
    r=x14;
    FLD1(x2,1)=NIL;DSPRD(x2);
   }else{
    COPY(x14,1);
    r=x14;
    FRPRD(x2,1);}}}
 return r;}

extern OBJ _AHeap_30(OBJ x1,OBJ x2) /* leftmost */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_19(x2);
 return r;}

extern OBJ _AHeap_31(OBJ x1,OBJ x2) /* rightmost */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_20(x2);
 return r;}

extern OBJ _AHeap_32(OBJ x1,OBJ x2) /* children */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_23(__ANat_8,x2);
 return r;}

extern OBJ _AHeap_33(OBJ x1,OBJ x2) /* grandchildren */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_23(__ANat_9,x2);
 return r;}

extern OBJ _AHeap_34(OBJ x1,OBJ x2,OBJ x3) /* level */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_23(x2,x3);
 return r;}

extern OBJ _AHeap_35(OBJ x1,OBJ x2) /* front */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_24(x2);
 return r;}

extern OBJ _AHeap_36(OBJ x1,OBJ x2,OBJ x3) /* in */
{OBJ r;
 r=_AHeap_58(x1,x2,x3);
 return r;}

extern OBJ _AHeap_37(OBJ x1,OBJ x2) /* # */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_25(x2);
 return r;}

extern OBJ _AHeap_38(OBJ x1,OBJ x2) /* depth */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_26(x2);
 return r;}

extern OBJ _AHeap_39(OBJ x1,OBJ x2) /* width */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_27(x2);
 return r;}

extern OBJ _AHeap_40(OBJ x1,OBJ x2) /* leaf? */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_28(x2);
 return r;}

extern OBJ _AHeap_41(OBJ x1,OBJ x2,OBJ x3) /* exist? */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_29(x2,x3);
 return r;}

extern OBJ _AHeap_42(OBJ x1,OBJ x2,OBJ x3) /* forall? */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_30(x2,x3);
 return r;}

extern OBJ _AHeap_43(OBJ x1,OBJ x2,OBJ x3) /* find? */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_31(x2,x3);
 return r;}

extern OBJ _AHeap_44(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* < */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_32(x2,x3,x4);
 return r;}

extern OBJ _AHeap_45(OBJ x1,OBJ x2,OBJ x3) /* {<} */
{OBJ r;
 r=_ATree_32(x1,x2,x3);
 return r;}

extern OBJ _AHeap_46(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* = */
{OBJ r;
 FRCLS(x1,1);
 r=_ATree_33(x2,x3,x4);
 return r;}

extern OBJ _AHeap_47(OBJ x1,OBJ x2) /* abs */
{OBJ r;
 FRCLS(x1,1);
 r=x2;
 return r;}

extern OBJ _AHeap_48(OBJ x1,OBJ x2) /* rep */
{OBJ r;
 FRCLS(x1,1);
 r=x2;
 return r;}

extern OBJ _AHeap_49(register OBJ x1,register OBJ x2) /* heap? */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   r=__ABUILTIN_5;
  }else{
   {OBJ x152=FLD1(x2,1);OBJ x153=FLD1(x2,2);OBJ x154=FLD1(x2,3);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x152,1);COPY(x153,1);COPY(x154,1);
     FRPRD(x2,1);}
    if(ISPRM(x153)){
     if(ISPRM(x154)){
      FRCLS(x1,1);
      FREE(x152,1);
      r=__ABUILTIN_5;
     }else{
      {OBJ x155=FLD1(x154,1);
       COPY(x155,1);
       CPCLS(x1,1);
       {OBJ x158;
	x158=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x155,x152);
	if(ISTGPRM(x158,1)){
	 FRCLS(x1,1);
	 if(EXPRD(x154,1)){
	  DSPRD(x154);
	 }else{
	  DCPRD(x154,1);}
	 r=__ABUILTIN_3;
	}else{
	 x2=x154;continue;}}}}
    }else{
     {OBJ x159=FLD1(x153,1);
      COPY(x159,1);
      if(ISPRM(x154)){
       CPCLS(x1,1);
       {OBJ x162;
	x162=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x159,x152);
	if(ISTGPRM(x162,1)){
	 FRCLS(x1,1);
	 if(EXPRD(x153,1)){
	  DSPRD(x153);
	 }else{
	  DCPRD(x153,1);}
	 r=__ABUILTIN_3;
	}else{
	 x2=x153;continue;}}
      }else{
       {OBJ x163=FLD1(x154,1);
	COPY(x163,1);
	CPCLS(x1,1);
	COPY(x152,1);
	{OBJ x166;
	 x166=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x159,x152);
	 if(ISTGPRM(x166,1)){
	  FRCLS(x1,1);
	  FREE(x152,1);
	  if(EXPRD(x153,1)){
	   DSPRD(x153);
	  }else{
	   DCPRD(x153,1);}
	  if(EXPRD(x154,1)){
	   DSPRD(x154);
	  }else{
	   DCPRD(x154,1);}
	  FREE(x163,1);
	  r=__ABUILTIN_3;
	 }else{
	  CPCLS(x1,1);
	  {OBJ x167;
	   x167=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x163,x152);
	   if(ISTGPRM(x167,1)){
	    FRCLS(x1,1);
	    if(EXPRD(x153,1)){
	     DSPRD(x153);
	    }else{
	     DCPRD(x153,1);}
	    if(EXPRD(x154,1)){
	     DSPRD(x154);
	    }else{
	     DCPRD(x154,1);}
	    r=__ABUILTIN_3;
	   }else{
	    CPCLS(x1,1);
	    {OBJ x168;
	     x168=_AHeap_49(x1,x153);
	     if(ISTGPRM(x168,1)){
	      x2=x154;continue;
	     }else{
	      FRCLS(x1,1);
	      if(EXPRD(x154,1)){
	       DSPRD(x154);
	      }else{
	       DCPRD(x154,1);}
	      r=__ABUILTIN_3;}}}}}}}}}}}}
  break;}
 return r;}

extern OBJ _AHeap_50(OBJ x1,OBJ x2) /* heap0? */
{OBJ r;
 if(ISPRM(x2)){
  FRCLS(x1,1);
  r=__ABUILTIN_5;
 }else{
  {OBJ x144=FLD1(x2,1);OBJ x145=FLD1(x2,2);OBJ x146=FLD1(x2,3);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x144,1);COPY(x145,1);COPY(x146,1);
    FRPRD(x2,1);}
   if(ISPRM(x145)){
    if(ISPRM(x146)){
     FRCLS(x1,1);
     FREE(x144,1);
     r=__ABUILTIN_5;
    }else{
     {OBJ x147=FLD1(x146,1);
      if(EXPRD(x146,1)){
       FLD1(x146,1)=NIL;DSPRD(x146);
      }else{
       COPY(x147,1);
       FRPRD(x146,1);}
      {OBJ x150;
       x150=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x147,x144);
       if(ISTGPRM(x150,1)){
	r=__ABUILTIN_3;
       }else{
	r=__ABUILTIN_5;}}}}
   }else{
    {OBJ x151=FLD1(x145,1);
     if(EXPRD(x145,1)){
      FLD1(x145,1)=NIL;DSPRD(x145);
     }else{
      COPY(x151,1);
      FRPRD(x145,1);}
     if(ISPRM(x146)){
      {OBJ x154;
       x154=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x151,x144);
       if(ISTGPRM(x154,1)){
	r=__ABUILTIN_3;
       }else{
	r=__ABUILTIN_5;}}
     }else{
      {OBJ x155=FLD1(x146,1);
       if(EXPRD(x146,1)){
	FLD1(x146,1)=NIL;DSPRD(x146);
       }else{
	COPY(x155,1);
	FRPRD(x146,1);}
       CPCLS(x1,1);
       COPY(x144,1);
       {OBJ x158;
	x158=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x151,x144);
	if(ISTGPRM(x158,1)){
	 FRCLS(x1,1);
	 FREE(x144,1);
	 FREE(x155,1);
	 r=__ABUILTIN_3;
	}else{
	 {OBJ x159;
	  x159=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x155,x144);
	  if(ISTGPRM(x159,1)){
	   r=__ABUILTIN_3;
	  }else{
	   r=__ABUILTIN_5;}}}}}}}}}}
 return r;}

extern OBJ _AHeap_51(register OBJ x1,register OBJ x2,register OBJ x3) /* +,1 */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    *p1=__ATree_7;
   }else{
    *p1=x3;}
  }else{
   {OBJ x105=FLD1(x2,1);OBJ x106=FLD1(x2,2);OBJ x107=FLD1(x2,3);
    COPY(x105,1);COPY(x106,1);COPY(x107,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x105,1);
     FREE(x106,1);
     FREE(x107,1);
     *p1=x2;
    }else{
     {OBJ x108=FLD1(x3,1);OBJ x109=FLD1(x3,2);OBJ x110=FLD1(x3,3);
      COPY(x108,2);COPY(x109,1);COPY(x110,1);
      CPCLS(x1,1);
      COPY(x105,1);
      {OBJ x113;
       x113=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x108,x105);
       if(ISTGPRM(x113,1)){
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	FREE(x106,1);
	FREE(x107,1);
	CPCLS(x1,1);
	COPY(x108,1);
	{OBJ x114;
	 x114=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x105,x108);
	 if(ISTGPRM(x114,0)){
	  {
	   PRD1(3,*p1);FLD1(*p1,1)=x108;FLD1(*p1,2)=x2;
	   x2=x109;x3=x110;p1=&FLD1(*p1,3);continue;}
	 }else{
	  HLT("Heap at <84,8-85,35> : missing else in +\'Heap:tree**tree->tree");}}
       }else{
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x108,1);
	FREE(x109,1);
	FREE(x110,1);
	{
	 PRD1(3,*p1);FLD1(*p1,1)=x105;FLD1(*p1,3)=x3;
	 x2=x106;x3=x107;p1=&FLD1(*p1,2);continue;}}}}}}}
  break;}
 return r;}

extern OBJ _AHeap_53(OBJ x1,OBJ x2) /* abs? */
{OBJ r;
 FRCLS(x1,1);
 FREE(x2,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AHeap_55(register OBJ x1,register OBJ x2,register OBJ x3) /* incl,1 */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   PRD1(3,*p1);FLD1(*p1,1)=x2;FLD1(*p1,2)=__ATree_7;FLD1(*p1,3)=__ATree_7;
  }else{
   {OBJ x41=FLD1(x3,1);OBJ x42=FLD1(x3,2);OBJ x43=FLD1(x3,3);FLAG x_x3=EXPRD(x3,1);
    if(x_x3){
     COPY(x41,1);
    }else{
     COPY(x41,2);COPY(x42,1);COPY(x43,1);}
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x45;
     x45=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x41,x2);
     if(ISTGPRM(x45,1)){
      CPCLS(x1,1);
      COPY(x2,1);
      COPY(x41,1);
      {OBJ x46;
       x46=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x41);
       if(ISTGPRM(x46,0)){
	{
	 if(x_x3){
	  RSOME(x3,*p1);FLD1(*p1,3)=x42;
	 }else{
	  FRPRD(x3,1);PRD1(3,*p1);FLD1(*p1,1)=x41;FLD1(*p1,3)=x42;}
	 x3=x43;p1=&FLD1(*p1,2);continue;}
       }else{
	HLT("Heap at <51,8-52,42> : missing else in incl\'Heap:data**tree->tree");}}
     }else{
      {
       if(x_x3){
	RSOME(x3,*p1);FLD1(*p1,1)=x2;FLD1(*p1,3)=x42;
       }else{
	FRPRD(x3,1);PRD1(3,*p1);FLD1(*p1,1)=x2;FLD1(*p1,3)=x42;}
       x2=x41;x3=x43;p1=&FLD1(*p1,2);continue;}}}}}
  break;}
 return r;}

extern TUP2 _AHeap_56(register OBJ x1,register OBJ x2,register OBJ x3) /* excl,1 */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   FREE(x2,1);
   *p1=__ATree_7;*p2=__ABUILTIN_3;
  }else{
   {OBJ x60=FLD1(x3,1);OBJ x61=FLD1(x3,2);OBJ x62=FLD1(x3,3);
    COPY(x60,2);COPY(x61,1);COPY(x62,1);
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x64;
     x64=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x60);
     if(ISTGPRM(x64,1)){
      FRCLS(x1,1);
      FREE(x2,1);
      FREE(x60,1);
      FREE(x61,1);
      FREE(x62,1);
      *p1=x3;*p2=__ABUILTIN_3;
     }else{
      if(EXPRD(x3,1)){
       DSPRD(x3);
      }else{
       DCPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x2,1);
      COPY(x60,1);
      {OBJ x65;
       x65=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x60,x2);
       if(ISTGPRM(x65,1)){
	CPCLS(x1,1);
	COPY(x2,1);
	COPY(x61,1);
	{TUP2 x67;
	 x67=_AHeap_56(x1,x2,x61);
	 if(ISTGPRM(x67.c2,1)){
	  FRCLS(x1,1);
	  FREE(x2,1);
	  FREE(x61,1);
	  PRD1(3,*p1);FLD1(*p1,1)=x60;FLD1(*p1,2)=x67.c1;FLD1(*p1,3)=x62;
	  *p2=__ABUILTIN_5;
	 }else{
	  FREE(x67.c1,1);
	  {
	   PRD1(3,*p1);FLD1(*p1,1)=x60;FLD1(*p1,2)=x61;
	   x3=x62;p1=&FLD1(*p1,3);continue;}}}
       }else{
	FREE(x2,1);
	FREE(x60,1);
	*p1=_AHeap_51(x1,x61,x62);
	*p2=__ABUILTIN_5;}}}}}}
  break;}
 return r;}
extern OBJ _AHeap_56_c(OBJ x1,OBJ x2,OBJ x3) /* excl,1 */
{OBJ r;
 {TUP2 t=_AHeap_56(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AHeap_58(register OBJ x1,register OBJ x2,register OBJ x3) /* in,1 */
{OBJ r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   FREE(x2,1);
   r=__ABUILTIN_3;
  }else{
   {OBJ x34=FLD1(x3,1);OBJ x35=FLD1(x3,2);OBJ x36=FLD1(x3,3);
    if(EXPRD(x3,1)){
     COPY(x34,1);
     DSPRDF(x3);
    }else{
     COPY(x34,2);COPY(x35,1);COPY(x36,1);
     FRPRD(x3,1);}
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x38;
     x38=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x34);
     if(ISTGPRM(x38,1)){
      FRCLS(x1,1);
      FREE(x2,1);
      FREE(x34,1);
      FREE(x35,1);
      FREE(x36,1);
      r=__ABUILTIN_3;
     }else{
      CPCLS(x1,1);
      COPY(x2,1);
      {OBJ x39;
       x39=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x34,x2);
       if(ISTGPRM(x39,1)){
	CPCLS(x1,1);
	COPY(x2,1);
	{OBJ x40;
	 x40=_AHeap_58(x1,x2,x35);
	 if(ISTGPRM(x40,1)){
	  FRCLS(x1,1);
	  FREE(x2,1);
	  FREE(x36,1);
	  r=__ABUILTIN_5;
	 }else{
	  x3=x36;continue;}}
       }else{
	FRCLS(x1,1);
	FREE(x2,1);
	FREE(x35,1);
	FREE(x36,1);
	r=__ABUILTIN_5;}}}}}}
  break;}
 return r;}

extern OBJ _AHeap_59(OBJ x1,OBJ x2,OBJ x3) /* <= */
{OBJ r;
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x3,x2);
  if(ISTGPRM(x4,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}

static OBJ _mt_2_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_2_1_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1);
 return r;}
static OBJ _mt_2_1_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

static OBJ _mt_4_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_4_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,2);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 return r;}

static OBJ _mt_4_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4);
 return r;}

static OBJ _mt_4_1_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  COPY(FLDCLS(r,1),1);}
 INCCLS(r,1,1);
 FLDCLS(r,2)=t1;
 return r;}

static OBJ _mt_4_1_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3);
 return r;}

static OBJ _mt_4_2_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1,t2);
 return r;}

static OBJ _mt_5_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_5_0_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5);
 return r;}

static OBJ _mt_5_1_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4);
 return r;}

static OBJ _mt_6_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_6_0_6(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6);
 return r;}

static OBJ _mt_6_1_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5);
 return r;}

static OBJ _mt_7_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_7_0_7(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7);
 return r;}

static OBJ _mt_7_1_6(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6);
 return r;}

static OBJ _mt_8_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_8_0_8(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7,t8);
 return r;}

static OBJ _mt_8_1_7(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6,t7);
 return r;}

static OBJ _mt_9_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_9_0_9(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8,OBJ t9) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7,t8,t9);
 return r;}

static OBJ _mt_9_1_8(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6,t7,t8);
 return r;}

init_AHeap()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_AOption();
 init_ASeq();
 init_ATree();
 init_ACompose();
 init_AAnonPair();
 init_ARelCmp();
 CLS(2,_AHeap_31,__AHeap_31);
 CLS(2,_AHeap_30,__AHeap_30);
 CLS(2,_AHeap_29,__AHeap_29);
 CLS(2,_AHeap_28_c,__AHeap_28);
 CLS(2,_AHeap_27,__AHeap_27);
 CLS(3,_AHeap_59,__AHeap_59);
 CLS(2,_AHeap_26,__AHeap_26);
 CLS(3,_AHeap_58,__AHeap_58);
 CLS(3,_AHeap_25,__AHeap_25);
 CLS(3,_AHeap_24,__AHeap_24);
 CLS(3,_AHeap_56_c,__AHeap_56);
 CLS(3,_AHeap_23,__AHeap_23);
 CLS(3,_AHeap_55,__AHeap_55);
 CLS(3,_AHeap_22,__AHeap_22);
 CLS(2,_AHeap_53,__AHeap_53);
 CLS(3,_AHeap_21,__AHeap_21);
 CLS(3,_AHeap_20,__AHeap_20);
 CLS(3,_AHeap_19,__AHeap_19);
 CLS(3,_AHeap_51,__AHeap_51);
 CLS(9,_AHeap_18,__AHeap_18);
 CLS(2,_AHeap_50,__AHeap_50);
 CLS(8,_AHeap_17,__AHeap_17);
 CLS(2,_AHeap_49,__AHeap_49);
 CLS(2,_AHeap_48,__AHeap_48);
 CLS(7,_AHeap_16,__AHeap_16);
 CLS(2,_AHeap_47,__AHeap_47);
 CLS(6,_AHeap_15,__AHeap_15);
 CLS(5,_AHeap_14,__AHeap_14);
 CLS(4,_AHeap_46,__AHeap_46);
 CLS(4,_AHeap_13,__AHeap_13);
 CLS(3,_AHeap_45,__AHeap_45);
 CLS(3,_AHeap_12,__AHeap_12);
 CLS(4,_AHeap_44,__AHeap_44);
 CLS(2,_AHeap_11,__AHeap_11);
 CLS(3,_AHeap_43,__AHeap_43);
 CLS(3,_AHeap_42,__AHeap_42);
 CLS(3,_AHeap_41,__AHeap_41);
 CLS(2,_AHeap_8,__AHeap_8);
 CLS(2,_AHeap_40,__AHeap_40);
 CLS(1,_AHeap_7,__AHeap_7);
 CLS(2,_AHeap_39,__AHeap_39);
 CLS(2,_AHeap_6,__AHeap_6);
 CLS(2,_AHeap_38,__AHeap_38);
 CLS(2,_AHeap_5,__AHeap_5);
 CLS(2,_AHeap_37,__AHeap_37);
 CLS(2,_AHeap_4,__AHeap_4);
 CLS(3,_AHeap_36,__AHeap_36);
 CLS(2,_AHeap_3,__AHeap_3);
 CLS(2,_AHeap_35,__AHeap_35);
 CLS(4,_AHeap_2,__AHeap_2);
 CLS(3,_AHeap_34,__AHeap_34);
 CLS(2,_AHeap_33,__AHeap_33);
 CLS(2,_AHeap_32,__AHeap_32);
 MTH(2,0,1,_mt_2_0_1);LZYMTH(2,0,1,_mt_2_0_1);
 MTH(2,1,1,_mt_2_1_1);LZYMTH(2,1,1,_mt_2_1_1_l);
 MTH(4,0,1,_mt_4_0_1);LZYMTH(4,0,1,_mt_4_0_1);
 MTH(4,0,2,_mt_4_0_2);LZYMTH(4,0,2,_mt_4_0_2);
 MTH(4,0,4,_mt_4_0_4);LZYMTH(4,0,4,_mt_4_0_4);
 MTH(4,1,1,_mt_4_1_1);LZYMTH(4,1,1,_mt_4_1_1);
 MTH(4,1,3,_mt_4_1_3);LZYMTH(4,1,3,_mt_4_1_3);
 MTH(4,2,2,_mt_4_2_2);LZYMTH(4,2,2,_mt_4_2_2);
 MTH(5,0,1,_mt_5_0_1);LZYMTH(5,0,1,_mt_5_0_1);
 MTH(5,0,5,_mt_5_0_5);LZYMTH(5,0,5,_mt_5_0_5);
 MTH(5,1,4,_mt_5_1_4);LZYMTH(5,1,4,_mt_5_1_4);
 MTH(6,0,1,_mt_6_0_1);LZYMTH(6,0,1,_mt_6_0_1);
 MTH(6,0,6,_mt_6_0_6);LZYMTH(6,0,6,_mt_6_0_6);
 MTH(6,1,5,_mt_6_1_5);LZYMTH(6,1,5,_mt_6_1_5);
 MTH(7,0,1,_mt_7_0_1);LZYMTH(7,0,1,_mt_7_0_1);
 MTH(7,0,7,_mt_7_0_7);LZYMTH(7,0,7,_mt_7_0_7);
 MTH(7,1,6,_mt_7_1_6);LZYMTH(7,1,6,_mt_7_1_6);
 MTH(8,0,1,_mt_8_0_1);LZYMTH(8,0,1,_mt_8_0_1);
 MTH(8,0,8,_mt_8_0_8);LZYMTH(8,0,8,_mt_8_0_8);
 MTH(8,1,7,_mt_8_1_7);LZYMTH(8,1,7,_mt_8_1_7);
 MTH(9,0,1,_mt_9_0_1);LZYMTH(9,0,1,_mt_9_0_1);
 MTH(9,0,9,_mt_9_0_9);LZYMTH(9,0,9,_mt_9_0_9);
 MTH(9,1,8,_mt_9_1_8);LZYMTH(9,1,8,_mt_9_1_8);}

