/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 19, 1993 1:01:32 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: TJaMDictImpl, module: TJaMDictImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3777651937,3036392059] TJaMDictImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W2 r;} W10;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q3984();
static void TJaMDictImpl←P0();
static word RopeFromAtom←P60();
static word AtomFromRope←P120();
static word NewDict←P180();
static word DictLength←P240();
static void TryToGet←P300();
static word Get←P360();
static void Put←P420();
static void Del←P480();
static void ClrDict←P540();
static word delete←P3120();
static word DictForAll←P600();
static word pairAction←P3180();
static word DictMap←P660();
static void AttachDict←P720();
static word find1←P3336();
static word find2←P3396();
static void DetachDict←P780();
static void DetachAll←P840();
static word AttachedForAll←P900();
static word NewDictStack←P960();
static word DictTop←P1020();
static void Begin←P1080();
static void End←P1140();
static word DictStackForAll←P1200();
static word DictStackMap←P1260();
static void Find←P1320();
static word find←P3648();
static void Where←P1380();
static void TryToLoad←P1440();
static word Load←P1500();
static void Def←P1560();
static void Store←P1620();
static word store←P3708();
static void CacheGet←P1680();
static void CachePut←P1740();
static void CacheDel←P1800();
static void CacheClear←P1860();
static void RegisterPrimitive←P1920();
static word PopKey←P1980();
static void ApplyDict←P2040();
static void ApplyGet←P2100();
static void ApplyPut←P2160();
static void ApplyDel←P2220();
static void ApplyClrDict←P2280();
static void ApplyDictForAll←P2340();
static word action←P3864();
static word NoName←Q4044();
static void ApplyAttachDict←P2400();
static void ApplyDetachDict←P2460();
static void ApplyDetachAll←P2520();
static void ApplyAttachedForAll←P2580();
static word action←P3924();
static word NoName←Q4104();
static void ApplyKnown←P2640();
static void ApplyWhere←P2700();
static void ApplyLoad←P2760();
static void ApplyDef←P2820();
static void ApplyStore←P2880();
static void ApplyBegin←P2940();
static void ApplyEnd←P3000();
static void ApplyCurDict←P3060();
static void NoName←Q4164();
static void NoName←Q4224();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string2 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\340\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\006\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\260\000\000"};
static struct {unsigned f; char r[12];} string8 = {589833, "\011\000\004\100\100\040\000\014\001\000\000"};
static struct {unsigned f; char r[48];} string9 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\243\004\305\073\300\011\303\367\103\100\354\005\004\162\145\163\164\214\216\257\300\243\004\305\073\300\011\303\367\103\100\354\261\000\000\000"};
static struct {unsigned f; char r[4];} string10 = {131074, "\004\003\000"};
static struct {unsigned f; char r[4];} string11 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\354\000\000"};
static struct {unsigned f; char r[8];} string13 = {393224, ".known\000"};
static struct {unsigned f; char r[8];} string14 = {393224, ".where\000"};
static struct {unsigned f; char r[8];} string15 = {262152, ".def\000\000\000"};
static struct {unsigned f; char r[8];} string16 = {327688, ".load\000\000"};
static struct {unsigned f; char r[8];} string17 = {393224, ".store\000"};
static struct {unsigned f; char r[8];} string18 = {393224, ".begin\000"};
static struct {unsigned f; char r[8];} string19 = {262152, ".end\000\000\000"};
static struct {unsigned f; char r[12];} string20 = {720908, ".dictforall"};
static struct {unsigned f; char r[12];} string21 = {524300, ".curdict\000\000\000"};
static struct {unsigned f; char r[12];} string22 = {720908, ".attachdict"};
static struct {unsigned f; char r[12];} string23 = {720908, ".detachdict"};
static struct {unsigned f; char r[16];} string24 = {983056, ".attachedforall"};
static struct {unsigned f; char r[12];} string25 = {655372, ".detachall\000"};
static struct {unsigned f; char r[12];} string26 = {524300, ".clrdict\000\000\000"};
static struct {unsigned f; char r[8];} string27 = {262152, ".del\000\000\000"};
static struct {unsigned f; char r[8];} string28 = {262152, ".put\000\000\000"};
static struct {unsigned f; char r[8];} string29 = {262152, ".get\000\000\000"};
static struct {unsigned f; char r[8];} string30 = {327688, ".dict\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\341\052\144\341\300\264\373\252\173\100\164\000\000"};
static struct {unsigned f; char r[12];} string32 = {655370, "\006\002\020\001\070\010\000\004\022\001\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[4];} string35 = {1414160717, "\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\150\000\000"};
static struct {unsigned f; char r[28];} string37 = {1638428, "\211\015\014\106\162\141\155\145\111\155\160\154\122\145\160\300\243\004\305\073\300\011\303\367\103\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\164\000\000"};
static struct {unsigned f; char r[4];} string39 = {131074, "\004\017\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\150\000\000"};
static struct {
   word f0[32]; word f32; word f33; word f34; 
   word f35; word f36; word f37; word f38; 
   word f39; word f40; word f41; word f42; 
   word f43; word f44; word f45; word f46; 
   word f47; word f48; word f49; word f50; 
   word f51; word f52; word f53; word f54; 
   word f55; word f56; word f57; word f58; 
   word f59; word f60; word f61; word f62; 
   word f63; word f64; word f65; word f66; 
   word f67; word f68; word f69; word f70; 
   word f71; word f72; word f73; word f74; 
   word f75; word f76; word f77; word f78; 
   word f79; word f80; word f81; word f82; 
   word f83; word f84; word f85; word f86; 
   word f87; word f88; word f89; word f90; 
   word f91; word f92; word f93; word f94; 
   word f95; word f96; word f97; word f98; 
   word f99; word f100; word f101; word f102; 
   word f103; word f104; word f105; word f106; 
   word f107; word f108; word f109; word f110; 
   word f111; word f112; word f113; word f114; 
   word f115; word f116; word f117; word f118; 
   word f119; word f120; word f121; word f122; 
   word f123; word f124; word f125; word f126; 
   word f127; word f128; word f129; word f130; 
   word f131; word f132; word f133; word f134; 
   word f135[6]; 
   } globalframe = {
   {0}, (word) ApplyCurDict←P3060, 0, (word) ApplyEnd←P3000, 
   0, (word) ApplyBegin←P2940, 0, (word) ApplyStore←P2880, 
   0, (word) ApplyDef←P2820, 0, (word) ApplyLoad←P2760, 
   0, (word) ApplyWhere←P2700, 0, (word) ApplyKnown←P2640, 
   0, (word) ApplyAttachedForAll←P2580, 0, (word) ApplyDetachAll←P2520, 
   0, (word) ApplyDetachDict←P2460, 0, (word) ApplyAttachDict←P2400, 
   0, (word) ApplyDictForAll←P2340, 0, (word) ApplyClrDict←P2280, 
   0, (word) ApplyDel←P2220, 0, (word) ApplyPut←P2160, 
   0, (word) ApplyGet←P2100, 0, (word) ApplyDict←P2040, 
   0, (word) PopKey←P1980, 0, (word) RegisterPrimitive←P1920, 
   0, (word) CacheClear←P1860, 0, (word) CacheDel←P1800, 
   0, (word) CachePut←P1740, 0, (word) CacheGet←P1680, 
   0, (word) Store←P1620, 0, (word) Def←P1560, 
   0, (word) Load←P1500, 0, (word) TryToLoad←P1440, 
   0, (word) Where←P1380, 0, (word) Find←P1320, 
   0, (word) DictStackMap←P1260, 0, (word) DictStackForAll←P1200, 
   0, (word) End←P1140, 0, (word) Begin←P1080, 
   0, (word) DictTop←P1020, 0, (word) NewDictStack←P960, 
   0, (word) AttachedForAll←P900, 0, (word) DetachAll←P840, 
   0, (word) DetachDict←P780, 0, (word) AttachDict←P720, 
   0, (word) DictMap←P660, 0, (word) DictForAll←P600, 
   0, (word) ClrDict←P540, 0, (word) Del←P480, 
   0, (word) Put←P420, 0, (word) Get←P360, 
   0, (word) TryToGet←P300, 0, (word) DictLength←P240, 
   0, (word) NewDict←P180, 0, (word) AtomFromRope←P120, 
   0, (word) RopeFromAtom←P60, 0, (word) TJaMDictImpl←P0, 
   {0}
   };

static void NoName←Q3984()
   {
   register ptr gf←c0329 =  (ptr) &globalframe;
   word var←c25096;
   (* (( (ptr) gf←c0329)+7) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0329)+8) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0329)+9) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0329)+10) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0329)+11) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0329)+12) ) = (word) XR←GetTypeIndexS((word) (&string11));
   (* (( (ptr) gf←c0329)+13) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string10);
   (*  (ptr) (( (bPt) gf←c0329)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0329)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0329)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0329)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0329)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0329)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0329)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0329)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0329)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0329)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0329)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0329)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0329)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0329)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0329)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0329)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0329)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0329)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0329)+8) ), (word) &string30);
   (void) XR←DeclareGlobalFrame((word) "TJaMDictImpl", &globalframe, (word) XR←GetTypeIndex((word) &string31, 0, (word) &string32)
      , (word) (( (bPt) gf←c0329)+536)/* var←c23496 */ );
   var←c25096 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string33)), 16);
   (* (( (ptr) gf←c0329)+136)/* var←c23560 */  ) = var←c25096;
   (void) XR←ImportProcS(var←c25096, 67895555);
   (void) XR←ImportProcS(var←c25096, 67372289);
   var←c25096 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string34)), 16);
   (* (( (ptr) gf←c0329)+137)/* var←c23624 */  ) = var←c25096;
   (void) XR←ImportProcS(var←c25096, 67896323);
   (void) XR←ImportProcS(var←c25096, 67635458);
   (void) XR←ImportProcS(var←c25096, 67634946);
   (void) XR←ImportProcS(var←c25096, 67896579);
   (void) XR←ImportProcS(var←c25096, 134742786);
   (void) XR←ImportProcS(var←c25096, 67371521);
   (void) XR←ImportProcS(var←c25096, 67895555);
   var←c25096 = (word) XR←ImportInterface((word) &string35, (word) XR←GetTypeIndexS((word) (&string36)), 101);
   (* (( (ptr) gf←c0329)+138)/* var←c23816 */  ) = var←c25096;
   (void) XR←ImportProcS(var←c25096, 529922);
   (void) XR←ImportProcS(var←c25096, 548610);
   (void) XR←ImportProcS(var←c25096, 530946);
   (void) XR←ImportProcS(var←c25096, 529666);
   (void) XR←ImportProcS(var←c25096, 67382017);
   (void) XR←ImportProcS(var←c25096, 532226);
   (void) XR←ImportProcS(var←c25096, 67379969);
   (void) XR←ImportProcS(var←c25096, 67379457);
   (void) XR←ImportProcS(var←c25096, 285441);
   var←c25096 = (word) XR←ExportInterface((word) &string35, (word) XR←GetTypeIndexS((word) (&string36)), 101);
   (* (( (ptr) gf←c0329)+139)/* var←c25128 */  ) = var←c25096;
   (void) XR←ExportType((word) "FrameImplRep", (word) XR←GetTypeIndexS((word) (&string37)), (word) XR←GetTypeIndex((word) &string38, 0, (word) &string39)
      );
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+528)/* var←c23464 */ , 67375361, (word) "RopeFromAtom");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+520)/* var←c23432 */ , 67375617, (word) "AtomFromRope");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+512)/* var←c23400 */ , 67388161, (word) "NewDict");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+504)/* var←c23368 */ , 67388417, (word) "DictLength");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+496)/* var←c23336 */ , 134759682, (word) "TryToGet");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+488)/* var←c23304 */ , 67651074, (word) "Get");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+480)/* var←c23272 */ , 804611, (word) "Put");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+472)/* var←c23240 */ , 542722, (word) "Del");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+464)/* var←c23208 */ , 280833, (word) "ClrDict");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+456)/* var←c23176 */ , 67652098, (word) "DictForAll");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+440)/* var←c23112 */ , 543490, (word) "AttachDict");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+432)/* var←c23080 */ , 543746, (word) "DetachDict");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+424)/* var←c23048 */ , 281857, (word) "DetachAll");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+416)/* var←c23016 */ , 67653122, (word) "AttachedForAll");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+352)/* var←c22760 */ , 134762242, (word) "Where");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+344)/* var←c22728 */ , 134762498, (word) "TryToLoad");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+336)/* var←c22696 */ , 67653890, (word) "Load");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+328)/* var←c22664 */ , 807427, (word) "Def");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+320)/* var←c22632 */ , 807683, (word) "Store");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+392)/* var←c22920 */ , 545794, (word) "Begin");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+384)/* var←c22888 */ , 283905, (word) "End");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+400)/* var←c22952 */ , 67393025, (word) "DictTop");
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+280)/* var←c22472 */ , 812035, (word) "RegisterPrimitive");
   var←c25096 = (word) XR←ExportInterface((word) "TJaMPrivate", (word) XR←GetTypeIndexS((word) (&string40)), 2);
   (* (( (ptr) gf←c0329)+140)/* var←c25160 */  ) = var←c25096;
   (void) XR←ExportProcS(var←c25096, (word) (( (bPt) gf←c0329)+408)/* var←c22984 */ , 67371265, (word) "NewDictStack");
   }

static void TJaMDictImpl←P0(formal←c067, formal←c066)
   word formal←c067;
   word formal←c066;
   {
   register ptr gf←c25192 =  (ptr) &globalframe;
   /* TJaMDictImpl: */ 
SOURCE(156, 9108)
SOURCE(5735, 30)
   (* (( (ptr) gf←c25192)+4)/* primitives←v3476 */  ) = (word) NewDict←P180(97);
SOURCE(8488, 37)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+31) ), (word) (( (bPt) gf←c25192)+264)/* var←c22408 */ , 0);
SOURCE(8527, 35)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+30) ), (word) (( (bPt) gf←c25192)+256)/* var←c22376 */ , 0);
SOURCE(8564, 35)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+29) ), (word) (( (bPt) gf←c25192)+248)/* var←c22344 */ , 0);
SOURCE(8601, 35)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+28) ), (word) (( (bPt) gf←c25192)+240)/* var←c22312 */ , 0);
SOURCE(8638, 43)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+27) ), (word) (( (bPt) gf←c25192)+232)/* var←c22280 */ , 0);
SOURCE(8683, 39)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+14) ), (word) (( (bPt) gf←c25192)+184)/* var←c22088 */ , 0);
SOURCE(8724, 39)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+15) ), (word) (( (bPt) gf←c25192)+176)/* var←c22056 */ , 0);
SOURCE(8765, 35)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+16) ), (word) (( (bPt) gf←c25192)+160)/* var←c21992 */ , 0);
SOURCE(8802, 37)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+17) ), (word) (( (bPt) gf←c25192)+168)/* var←c22024 */ , 0);
SOURCE(8841, 39)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+18) ), (word) (( (bPt) gf←c25192)+152)/* var←c21960 */ , 0);
SOURCE(8882, 39)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+19) ), (word) (( (bPt) gf←c25192)+144)/* var←c21928 */ , 0);
SOURCE(8923, 35)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+20) ), (word) (( (bPt) gf←c25192)+136)/* var←c21896 */ , 0);
SOURCE(8960, 49)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+21) ), (word) (( (bPt) gf←c25192)+224)/* var←c22248 */ , 0);
SOURCE(9011, 43)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+22) ), (word) (( (bPt) gf←c25192)+128)/* var←c21864 */ , 0);
SOURCE(9056, 49)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+23) ), (word) (( (bPt) gf←c25192)+216)/* var←c22216 */ , 0);
SOURCE(9107, 49)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+24) ), (word) (( (bPt) gf←c25192)+208)/* var←c22184 */ , 0);
SOURCE(9158, 57)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+25) ), (word) (( (bPt) gf←c25192)+192)/* var←c22120 */ , 0);
SOURCE(9217, 47)
   (void) RegisterPrimitive←P1920((* (( (ptr) gf←c25192)+26) ), (word) (( (bPt) gf←c25192)+200)/* var←c22152 */ , 0);
   }

static word RopeFromAtom←P60(atom←v4116)
   word atom←v4116;
   {
   register ptr gf←c25224 =  (ptr) &globalframe;
   word var←c4160;
   /* RopeFromAtom: */ 
SOURCE(270, 85)
SOURCE(328, 27)
   {
      word pd41;
      pd41 = (* (( (ptr) (* (( (ptr) gf←c25224)+136)/* var←c23560 */  ))+9) );
      return((word) ( *( (fPt) ((*  (ptr) pd41 ))))(atom←v4116, pd41));
      };
   }

static word AtomFromRope←P120(rope←v4220)
   word rope←v4220;
   {
   register ptr gf←c25256 =  (ptr) &globalframe;
   word var←c4264;
   /* AtomFromRope: */ 
SOURCE(361, 85)
SOURCE(419, 27)
   {
      word pd42;
      pd42 = (* (( (ptr) (* (( (ptr) gf←c25256)+136)/* var←c23560 */  ))+5) );
      return((word) ( *( (fPt) ((*  (ptr) pd42 ))))(rope←v4220, 0, 2147483647, pd42));
      };
   }

static word NewDict←P180(mod←v4324)
   word mod←v4324;
   {
   register ptr gf←c25288 =  (ptr) &globalframe;
   word var←c4368;
   word refTab←v7960;
   /* NewDict: */ 
SOURCE(506, 147)
SOURCE(560, 39)
   {
      word pd43;
      pd43 = (* (( (ptr) (* (( (ptr) gf←c25288)+137)/* var←c23624 */  ))+5) );
      refTab←v7960 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))(mod←v4324, 0, 0, pd43);
      };
SOURCE(601, 52)
   {
      word var←c23688;
      var←c23688 = XR←NewObject(8, (* (( (ptr) gf←c25288)+13) ));
      (*  (ptr) var←c23688 ) = refTab←v7960;
      return(var←c23688);
      };
   }

static word DictLength←P240(dict←v4428)
   word dict←v4428;
   {
   register ptr gf←c25320 =  (ptr) &globalframe;
   word var←c4472;
   /* DictLength: */ 
SOURCE(659, 82)
SOURCE(712, 29)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c25320)+137)/* var←c23624 */  ))+6) );
      return((word) ( *( (fPt) ((*  (ptr) pd44 ))))((*  (ptr) (dict←v4428) ), pd44));
      };
   }

static void TryToGet←P300(formal←c084, dict←v4532, key←v4560)
   word formal←c084;
   word dict←v4532;
   word key←v4560;
   {
   register ptr gf←c25352 =  (ptr) &globalframe;
   word found←v4604;
   word val←v4632;
   /* TryToGet: */ 
SOURCE(747, 117)
SOURCE(747, 117)
   val←v4632 = 0;
SOURCE(827, 37)
   {
      W2 var←c23752;
      {
         word pd45;
         pd45 = (* (( (ptr) (* (( (ptr) gf←c25352)+137)/* var←c23624 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd45 ))))((word) &var←c23752, (*  (ptr) dict←v4532 ), key←v4560, pd45);
         };
      val←v4632 = var←c23752.f1;
      found←v4604 = var←c23752.f0;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c084 ) = found←v4604;
   (* (( (ptr) formal←c084)+1) ) = val←v4632;
   return;
   }

static word Get←P360(dict←v4708, key←v4736)
   word dict←v4708;
   word key←v4736;
   {
   register ptr gf←c25384 =  (ptr) &globalframe;
   word val←v4780;
   word found←v8004;
   /* Get: */ 
SOURCE(870, 155)
SOURCE(870, 155)
   val←v4780 = 0;
SOURCE(945, 34)
   {
      W2 var←c23784;
      (void) TryToGet←P300((word) &var←c23784, dict←v4708, key←v4736);
      val←v4780 = var←c23784.f1;
      found←v8004 = var←c23784.f0;
      };
SOURCE(981, 44)
   if ((0 == found←v8004)) {
SOURCE(999, 26)
      {
         word pd46;
         pd46 = (* (( (ptr) (* (( (ptr) gf←c25384)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd46 ))))(1, pd46);
         };
      };
SOURCE(870, 155)
   return(val←v4780);
   }

static void Put←P420(dict←v4852, key←v4880, val←v4908)
   word dict←v4852;
   word key←v4880;
   word val←v4908;
   {
   register ptr gf←c25416 =  (ptr) &globalframe;
   /* Put: */ 
SOURCE(1031, 86)
SOURCE(1085, 32)
   {
      word var←c23848;
      word pd47;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c25416)+137)/* var←c23624 */  ))+9) );
      var←c23848 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((*  (ptr) dict←v4852 ), key←v4880, val←v4908, pd47);
      };
   }

static void Del←P480(dict←v4980, key←v5008)
   word dict←v4980;
   word key←v5008;
   {
   register ptr gf←c25448 =  (ptr) &globalframe;
   /* Del: */ 
SOURCE(1123, 106)
SOURCE(1167, 62)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c25448)+137)/* var←c23624 */  ))+11) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd48 ))))((*  (ptr) dict←v4980 ), key←v5008, pd48))) {
SOURCE(1203, 26)
         {
            word pd49;
            pd49 = (* (( (ptr) (* (( (ptr) gf←c25448)+138)/* var←c23816 */  ))+95) );
            (void) ( *( (fPt) ((*  (ptr) pd49 ))))(1, pd49);
            };
         };
      };
   }

static void ClrDict←P540(dict←v5068)
   word dict←v5068;
   {
   W7 var←c25480;
   register ptr gf←c25512 =  (ptr) &globalframe;
   /* declaration of var←c23880 skipped */ 
   /* declaration of refTab←v8048 skipped */ 
   /* ClrDict: */ 
SOURCE(1235, 178)
   {
      word tmpAddr50;
      tmpAddr50 = (word) (( (ptr) &var←c25480)+4)/* var←c23880 */ ;
      (*  (ptr) tmpAddr50 ) = ( ((word)  (fPt) delete←P3120) );
      (* (( (ptr) tmpAddr50) + 1) ) = 1;
      };
SOURCE(1272, 32)
   var←c25480.f6/* refTab←v8048 */  = (*  (ptr) dict←v5068 );
SOURCE(1388, 25)
   {
      word var←c23912;
      word pd51;
      pd51 = (* (( (ptr) (* (( (ptr) gf←c25512)+137)/* var←c23624 */  ))+13) );
      var←c23912 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(var←c25480.f6/* refTab←v8048 */ , (word) (( (bPt) &var←c25480)+16)/* var←c23880 */ , pd51)
      ;
      };
   }

static word delete←P3120(key←v19188, val←v19216, formal←c25576)
   word key←v19188;
   word val←v19216;
   word formal←c25576;
   {
   register ptr gf←c25544 =  (ptr) &globalframe;
   word quit←v19260;
   formal←c25576 = (formal←c25576 - 16);
   /* delete: */ 
SOURCE(1306, 79)
SOURCE(1306, 79)
   quit←v19260 = 0;
SOURCE(1340, 23)
   {
      word var←c23944;
      word pd52;
      pd52 = (* (( (ptr) (* (( (ptr) gf←c25544)+137)/* var←c23624 */  ))+11) );
      var←c23944 = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) formal←c25576)+6) ), key←v19188, pd52);
      };
SOURCE(1365, 20)
   return(0);
   }

static word DictForAll←P600(dict←v5128, formal←c0406)
   word dict←v5128;
   word formal←c0406;
   {
   W7 var←c25608;
   /* declaration of action←v5156 skipped */ 
   register ptr gf←c25640 =  (ptr) &globalframe;
   word var←c5200;
   /* declaration of var←c23976 skipped */ 
   var←c25608.f4/* action←v5156 */  = formal←c0406;
   /* DictForAll: */ 
SOURCE(1419, 231)
   {
      word tmpAddr53;
      tmpAddr53 = (word) (( (ptr) &var←c25608)+5)/* var←c23976 */ ;
      (*  (ptr) tmpAddr53 ) = ( ((word)  (fPt) pairAction←P3180) );
      (* (( (ptr) tmpAddr53) + 1) ) = 1;
      };
SOURCE(1613, 37)
   {
      word pd54;
      pd54 = (* (( (ptr) (* (( (ptr) gf←c25640)+137)/* var←c23624 */  ))+13) );
      return((word) ( *( (fPt) ((*  (ptr) pd54 ))))((*  (ptr) dict←v5128 ), (word) (( (bPt) &var←c25608)+20)/* var←c23976 */ , pd54)
      );
      };
   }

static word pairAction←P3180(key←v19320, val←v19348, formal←c25704)
   word key←v19320;
   word val←v19348;
   word formal←c25704;
   {
   register ptr gf←c25672 =  (ptr) &globalframe;
   word quit←v19392;
   formal←c25704 = (formal←c25704 - 20);
   /* pairAction: */ 
SOURCE(1494, 96)
SOURCE(1494, 96)
   quit←v19392 = 0;
SOURCE(1532, 58)
   {
      word var←c24040;
      var←c24040 = key←v19320;
      if ((var←c24040 == 0)) {
         goto lab←L100001;
         };
      if (((* (( (ptr) gf←c25672)+12) ) == XR←GetReferentType(var←c24040))) {
         {
            word key←v8164;
            key←v8164 = var←c24040;
SOURCE(1566, 24)
            {
               word pd55;
               pd55 = (* (( (ptr) formal←c25704)+4) );
               return((word) ( *( (fPt) ((*  (ptr) pd55 ))))(key←v8164, val←v19348, pd55));
               };
            };
         }
      else {
         lab←L100001: ;
SOURCE(1603, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
   }

static word DictMap←P660(dict←v5260, action←v5288)
   word dict←v5260;
   word action←v5288;
   {
   word var←c5332;
   /* DictMap: */ 
SOURCE(1657, 237)
SOURCE(1721, 33)
   if ((0 != (word) ( *( (fPt) ((*  (ptr) action←v5288 ))))(dict←v5260, action←v5288))) {
SOURCE(1742, 12)
      return(1);
      };
SOURCE(1756, 114)
   {
      register word list←v8208;
      list←v8208 = (* (( (ptr) dict←v5260)+1) );
      lab←L100005: ;
      if ((list←v8208 != 0)) {
         }
      else {
         goto lab←L100002;
         };
SOURCE(1822, 48)
      if ((0 != (word) DictMap←P660((*  (ptr) list←v8208 ), action←v5288))) {
SOURCE(1858, 12)
         return(1);
         };
      list←v8208 = (* (( (ptr) list←v8208)+1) );
      goto lab←L100005;
      lab←L100002: ;
      };
SOURCE(1881, 13)
   return(0);
   }

static void AttachDict←P720(formal←c0407, formal←c0408)
   word formal←c0407;
   word formal←c0408;
   {
   W10 var←c25736;
   /* declaration of dict1←v5392 skipped */ 
   /* declaration of dict2←v5420 skipped */ 
   register ptr gf←c25768 =  (ptr) &globalframe;
   /* declaration of var←c24104 skipped */ 
   /* declaration of var←c24136 skipped */ 
   (* (( (ptr) &var←c25736)+4)/* dict1←v5392 */  ) = formal←c0407;
   (* (( (ptr) &var←c25736)+5)/* dict2←v5420 */  ) = formal←c0408;
   /* AttachDict: */ 
SOURCE(1900, 295)
   {
      word tmpAddr56;
      tmpAddr56 = (word) (( (ptr) &var←c25736)+6)/* var←c24104 */ ;
      (*  (ptr) tmpAddr56 ) = ( ((word)  (fPt) find2←P3396) );
      (* (( (ptr) tmpAddr56) + 1) ) = 1;
      };
   {
      word tmpAddr57;
      tmpAddr57 = (word) (( (ptr) &var←c25736)+8)/* var←c24136 */ ;
      (*  (ptr) tmpAddr57 ) = ( ((word)  (fPt) find1←P3336) );
      (* (( (ptr) tmpAddr57) + 1) ) = 1;
      };
SOURCE(2036, 59)
   if ((0 != (word) DictMap←P660((* (( (ptr) &var←c25736)+5)/* dict2←v5420 */  ), (word) (( (bPt) &var←c25736)+32)/* var←c24136 */ )
   )) {
SOURCE(2066, 29)
      {
         word pd58;
         pd58 = (* (( (ptr) (* (( (ptr) gf←c25768)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd58 ))))(10, pd58);
         };
      };
SOURCE(2097, 36)
   if ((0 != (word) DictMap←P660((* (( (ptr) &var←c25736)+4)/* dict1←v5392 */  ), (word) (( (bPt) &var←c25736)+24)/* var←c24104 */ )
   )) {
SOURCE(2127, 6)
      return;
      };
SOURCE(2155, 40)
   {
      word var←c24168;
      var←c24168 = XR←NewObject(8, (* (( (ptr) gf←c25768)+11) ));
      (*  (ptr) var←c24168 ) = (* (( (ptr) &var←c25736)+5)/* dict2←v5420 */  );
      (* (( (ptr) var←c24168)+1) ) = (* (( (ptr) (* (( (ptr) &var←c25736)+4)/* dict1←v5392 */  ))+1) );
      (* (( (ptr) (* (( (ptr) &var←c25736)+4)/* dict1←v5392 */  ))+1) ) = var←c24168;
      };
   }

static word find1←P3336(dict←v19452, formal←c25800)
   word dict←v19452;
   word formal←c25800;
   {
   word quit←v19496;
   formal←c25800 = (formal←c25800 - 32);
   /* find1: */ 
SOURCE(1948, 41)
SOURCE(1948, 41)
   quit←v19496 = 0;
SOURCE(1970, 19)
   return( (unsigned) (dict←v19452 == (* (( (ptr) formal←c25800)+4) )));
   }

static word find2←P3396(dict←v19556, formal←c25832)
   word dict←v19556;
   word formal←c25832;
   {
   word quit←v19600;
   formal←c25832 = (formal←c25832 - 24);
   /* find2: */ 
SOURCE(1992, 41)
SOURCE(1992, 41)
   quit←v19600 = 0;
SOURCE(2014, 19)
   return( (unsigned) (dict←v19556 == (* (( (ptr) formal←c25832)+5) )));
   }

static void DetachDict←P780(dict1←v5480, dict2←v5508)
   word dict1←v5480;
   word dict2←v5508;
   {
   register ptr gf←c25864 =  (ptr) &globalframe;
   register word list←v8408 = 0;
   word prev←v8436 = 0;
   /* DetachDict: */ 
SOURCE(2201, 320)
SOURCE(2281, 99)
   list←v8408 = (* (( (ptr) dict1←v5480)+1) );
   lab←L100009: ;
   if ((list←v8408 != 0)) {
      }
   else {
      goto lab←L100006;
      };
SOURCE(2334, 46)
   if (((*  (ptr) list←v8408 ) == dict2←v5508)) {
SOURCE(2359, 10)
      goto lab←L100007;
      }
   else {
SOURCE(2369, 11)
      prev←v8436 = list←v8408;
      };
   list←v8408 = (* (( (ptr) list←v8408)+1) );
   goto lab←L100009;
   lab←L100006: ;
   lab←L100007: ;
SOURCE(2391, 42)
   if ((list←v8408 == 0)) {
SOURCE(2408, 25)
      {
         word pd59;
         pd59 = (* (( (ptr) (* (( (ptr) gf←c25864)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd59 ))))(11, pd59);
         };
      };
SOURCE(2453, 68)
   if ((prev←v8436 == 0)) {
SOURCE(2470, 30)
      (* (( (ptr) dict1←v5480)+1) ) = (* (( (ptr) list←v8408)+1) );
      }
   else {
SOURCE(2500, 21)
      (* (( (ptr) prev←v8436)+1) ) = (* (( (ptr) list←v8408)+1) );
      };
   }

static void DetachAll←P840(dict←v5568)
   word dict←v5568;
   {
   /* DetachAll: */ 
SOURCE(2527, 56)
SOURCE(2566, 17)
   (* (( (ptr) dict←v5568)+1) ) = 0;
   }

static word AttachedForAll←P900(dict←v5628, action←v5656)
   word dict←v5628;
   word action←v5656;
   {
   word var←c5700;
   /* AttachedForAll: */ 
SOURCE(2589, 207)
SOURCE(2667, 105)
   {
      register word list←v8564;
      list←v8564 = (* (( (ptr) dict←v5628)+1) );
      lab←L100013: ;
      if ((list←v8564 != 0)) {
         }
      else {
         goto lab←L100010;
         };
SOURCE(2733, 39)
      if ((0 != (word) ( *( (fPt) ((*  (ptr) action←v5656 ))))((*  (ptr) (list←v8564) ), action←v5656))) {
SOURCE(2760, 12)
         return(1);
         };
      list←v8564 = (* (( (ptr) list←v8564)+1) );
      goto lab←L100013;
      lab←L100010: ;
      };
SOURCE(2783, 13)
   return(0);
   }

static word NewDictStack←P960(size←v5760)
   word size←v5760;
   {
   register ptr gf←c25896 =  (ptr) &globalframe;
   word var←c5804;
   word stack←v8692;
   /* NewDictStack: */ 
SOURCE(2803, 146)
SOURCE(2863, 42)
   {
      word var←c24200;
      word var←c24232;
      word var←c24264;
      var←c24200 = BCK(size←v5760, 67108863);
      var←c24232 = ((word) var←c24200 << 2);
      var←c24264 = XR←NewObject((12 + var←c24232), (* (( (ptr) gf←c25896)+10) ));
      (* (( (ptr) var←c24264)+2) ) = var←c24200;
      stack←v8692 = var←c24264;
      };
SOURCE(2907, 27)
   (* (( (ptr) stack←v8692)+1) ) = 0;
   (*  (ptr) stack←v8692 ) = 0;
SOURCE(2936, 13)
   return(stack←v8692);
   }

static word DictTop←P1020(frame←v5864)
   word frame←v5864;
   {
   register ptr gf←c25928 =  (ptr) &globalframe;
   word var←c5908;
   word impl←v8736;
   word stack←v8764;
   /* DictTop: */ 
SOURCE(2955, 207)
SOURCE(3008, 28)
   impl←v8736 = (*  (ptr) frame←v5864 );
SOURCE(3038, 33)
   stack←v8764 = (* (( (ptr) impl←v8736)+1) );
SOURCE(3073, 59)
   if (((*  (ptr) stack←v8764 ) <= 0)) {
SOURCE(3099, 33)
      {
         word pd60;
         pd60 = (* (( (ptr) (* (( (ptr) gf←c25928)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd60 ))))(8, pd60);
         };
      };
SOURCE(3134, 28)
   {
      word var←c24296;
      var←c24296 = ((*  (ptr) stack←v8764 ) - 1);
      {
         word limit61;
         return((* ((( (ptr) stack←v8764)+3)+(
               limit61 = (* (( (ptr) stack←v8764)+2) ),
               BCK(var←c24296, limit61)
               )) ));
         };
      };
   }

static void Begin←P1080(frame←v5968, dict←v5996)
   word frame←v5968;
   word dict←v5996;
   {
   register ptr gf←c25960 =  (ptr) &globalframe;
   word impl←v8808;
   word stack←v8836;
   /* Begin: */ 
SOURCE(3168, 292)
SOURCE(3217, 28)
   impl←v8808 = (*  (ptr) frame←v5968 );
SOURCE(3247, 33)
   stack←v8836 = (* (( (ptr) impl←v8808)+1) );
SOURCE(3282, 67)
   if (((*  (ptr) stack←v8836 ) >= (* (( (ptr) stack←v8836)+2) ))) {
SOURCE(3317, 32)
      {
         word pd62;
         pd62 = (* (( (ptr) (* (( (ptr) gf←c25960)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd62 ))))(9, pd62);
         };
      };
SOURCE(3351, 25)
   {
      word idx63;
      word limit64;
      (* ((( (ptr) stack←v8836)+3)+(
            idx63 = (*  (ptr) stack←v8836 ),
            limit64 = (* (( (ptr) stack←v8836)+2) ),
            BCK(idx63, limit64)
            )) ) = dict←v5996;
      };
SOURCE(3378, 27)
   (*  (ptr) stack←v8836 ) = ((*  (ptr) stack←v8836 ) + 1);
SOURCE(3407, 53)
   if (((*  (ptr) stack←v8836 ) > (* (( (ptr) stack←v8836)+1) ))) {
SOURCE(3437, 23)
      (* (( (ptr) stack←v8836)+1) ) = (*  (ptr) stack←v8836 );
      };
   }

static void End←P1140(frame←v6056)
   word frame←v6056;
   {
   register ptr gf←c25992 =  (ptr) &globalframe;
   word impl←v8880;
   word stack←v8908;
   /* End: */ 
SOURCE(3466, 214)
SOURCE(3501, 28)
   impl←v8880 = (*  (ptr) frame←v6056 );
SOURCE(3531, 33)
   stack←v8908 = (* (( (ptr) impl←v8880)+1) );
SOURCE(3566, 59)
   if (((*  (ptr) stack←v8908 ) <= 0)) {
SOURCE(3592, 33)
      {
         word pd65;
         pd65 = (* (( (ptr) (* (( (ptr) gf←c25992)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd65 ))))(8, pd65);
         };
      };
SOURCE(3627, 27)
   {
      word idx66;
      (*  (ptr) stack←v8908 ) = (
         idx66 = (word) ((*  (ptr) stack←v8908 ) - 1),
         SGNCK(idx66)
         );
      };
SOURCE(3656, 24)
   {
      word idx67;
      word limit68;
      (* ((( (ptr) stack←v8908)+3)+(
            idx67 = (*  (ptr) stack←v8908 ),
            limit68 = (* (( (ptr) stack←v8908)+2) ),
            BCK(idx67, limit68)
            )) ) = 0;
      };
   }

static word DictStackForAll←P1200(frame←v6116, action←v6144)
   word frame←v6116;
   word action←v6144;
   {
   word var←c6188;
   word impl←v8952;
   word stack←v8980;
   /* DictStackForAll: */ 
SOURCE(3686, 270)
SOURCE(3767, 28)
   impl←v8952 = (*  (ptr) frame←v6116 );
SOURCE(3797, 33)
   stack←v8980 = (* (( (ptr) impl←v8952)+1) );
SOURCE(3832, 100)
   {
      register word i←v9024;
      i←v9024 = (*  (ptr) stack←v8980 );
      if ((0 >= i←v9024)) {
         goto lab←L100014;
         };
      i←v9024 = (i←v9024 - 1);
      lab←L100017: ;
      {
         word dict←v9068;
SOURCE(3876, 21)
         {
            word limit69;
            dict←v9068 = (* ((( (ptr) stack←v8980)+3)+(
                  limit69 = (* (( (ptr) stack←v8980)+2) ),
                  BCK(i←v9024, limit69)
                  )) );
            };
SOURCE(3899, 33)
         if ((0 != (word) ( *( (fPt) ((*  (ptr) action←v6144 ))))(dict←v9068, action←v6144))) {
SOURCE(3920, 12)
            return(1);
            };
         };
      if ((0 >= i←v9024)) {
         goto lab←L100014;
         };
      i←v9024 = (i←v9024 - 1);
      goto lab←L100017;
      lab←L100014: ;
      };
SOURCE(3943, 13)
   return(0);
   }

static word DictStackMap←P1260(frame←v6248, action←v6276)
   word frame←v6248;
   word action←v6276;
   {
   word var←c6320;
   word impl←v9112;
   word stack←v9140;
   /* DictStackMap: */ 
SOURCE(3962, 250)
SOURCE(4033, 28)
   impl←v9112 = (*  (ptr) frame←v6248 );
SOURCE(4063, 33)
   stack←v9140 = (* (( (ptr) impl←v9112)+1) );
SOURCE(4098, 90)
   {
      register word i←v9184;
      i←v9184 = (*  (ptr) stack←v9140 );
      if ((0 >= i←v9184)) {
         goto lab←L100018;
         };
      i←v9184 = (i←v9184 - 1);
      lab←L100021: ;
SOURCE(4142, 46)
      {
         word limit70;
         if ((0 != (word) DictMap←P660((* ((( (ptr) stack←v9140)+3)+(
                  limit70 = (* (( (ptr) stack←v9140)+2) ),
                  BCK(i←v9184, limit70)
                  )) ), action←v6276))) {
SOURCE(4176, 12)
            return(1);
            };
         };
      if ((0 >= i←v9184)) {
         goto lab←L100018;
         };
      i←v9184 = (i←v9184 - 1);
      goto lab←L100021;
      lab←L100018: ;
      };
SOURCE(4199, 13)
   return(0);
   }

static void Find←P1320(formal←c0173, frame←v6380, formal←c0409)
   word formal←c0173;
   word frame←v6380;
   word formal←c0409;
   {
   W10 var←c26024;
   /* declaration of key←v6408 skipped */ 
   /* declaration of found←v6452 skipped */ 
   /* declaration of val←v6480 skipped */ 
   /* declaration of where←v6508 skipped */ 
   /* declaration of var←c24328 skipped */ 
   (* (( (ptr) &var←c26024)+4)/* key←v6408 */  ) = formal←c0409;
   /* Find: */ 
SOURCE(4219, 240)
   {
      word tmpAddr71;
      tmpAddr71 = (word) (( (ptr) &var←c26024)+8)/* var←c24328 */ ;
      (*  (ptr) tmpAddr71 ) = ( ((word)  (fPt) find←P3648) );
      (* (( (ptr) tmpAddr71) + 1) ) = 1;
      };
SOURCE(4219, 240)
   (* (( (ptr) &var←c26024)+5)/* found←v6452 */  ) = 1;
SOURCE(4219, 240)
   (* (( (ptr) &var←c26024)+6)/* val←v6480 */  ) = 0;
SOURCE(4219, 240)
   (* (( (ptr) &var←c26024)+7)/* where←v6508 */  ) = 0;
SOURCE(4398, 61)
   if ((0 == (word) DictStackMap←P1260(frame←v6380, (word) (( (bPt) &var←c26024)+32)/* var←c24328 */ ))) {
SOURCE(4436, 23)
      (* (( (ptr) &var←c26024)+5)/* found←v6452 */  ) = 0;
      (* (( (ptr) &var←c26024)+6)/* val←v6480 */  ) = 0;
      (* (( (ptr) &var←c26024)+7)/* where←v6508 */  ) = 0;
      goto lab←L100022;
      };
   /* removed tail goto */ 
   lab←L100022: ;
   (*  (ptr) formal←c0173 ) = (* (( (ptr) &var←c26024)+5)/* found←v6452 */  );
   (* (( (ptr) formal←c0173)+1) ) = (* (( (ptr) &var←c26024)+6)/* val←v6480 */  );
   (* (( (ptr) formal←c0173)+2) ) = (* (( (ptr) &var←c26024)+7)/* where←v6508 */  );
   return;
   }

static word find←P3648(dict←v20072, formal←c26088)
   word dict←v20072;
   word formal←c26088;
   {
   register ptr gf←c26056 =  (ptr) &globalframe;
   word quit←v20116;
   formal←c26088 = (formal←c26088 - 32);
   /* find: */ 
SOURCE(4311, 84)
SOURCE(4311, 84)
   quit←v20116 = 0;
SOURCE(4332, 47)
   {
      W2 var←c24392;
      {
         word var←c24360;
         (* (( (ptr) formal←c26088)+7) ) = dict←v20072;
         var←c24360 = (*  (ptr) dict←v20072 );
         {
            word pd72;
            pd72 = (* (( (ptr) (* (( (ptr) gf←c26056)+137)/* var←c23624 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd72 ))))((word) &var←c24392, var←c24360, (* (( (ptr) formal←c26088)+4) ), pd72);
            };
         };
      (* (( (ptr) formal←c26088)+6) ) = var←c24392.f1;
      (* (( (ptr) formal←c26088)+5) ) = var←c24392.f0;
      };
SOURCE(4381, 14)
   return((* (( (ptr) formal←c26088)+5) ));
   }

static void Where←P1380(formal←c0186, frame←v6580, key←v6608)
   word formal←c0186;
   word frame←v6580;
   word key←v6608;
   {
   word found←v6652;
   word where←v6680;
   word val←v9272 = 0;
   /* Where: */ 
SOURCE(4465, 190)
SOURCE(4465, 190)
   where←v6680 = 0;
SOURCE(4557, 57)
   {
      W3 var←c24424;
      (void) Find←P1320((word) &var←c24424, frame←v6580, key←v6608);
      where←v6680 = var←c24424.f2;
      val←v9272 = var←c24424.f1;
      found←v6652 = var←c24424.f0;
      };
SOURCE(4616, 39)
   if ((0 != found←v6652)) {
SOURCE(4630, 25)
      (void) CachePut←P1740(frame←v6580, key←v6608, val←v9272);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0186 ) = found←v6652;
   (* (( (ptr) formal←c0186)+1) ) = where←v6680;
   return;
   }

static void TryToLoad←P1440(formal←c0197, frame←v6740, key←v6768)
   word formal←c0197;
   word frame←v6740;
   word key←v6768;
   {
   register ptr gf←c26120 =  (ptr) &globalframe;
   word found←v6812;
   word val←v6840;
   /* TryToLoad: */ 
SOURCE(4682, 286)
SOURCE(4682, 286)
   val←v6840 = 0;
SOURCE(4765, 35)
   {
      W2 var←c24456;
      (void) CacheGet←P1680((word) &var←c24456, frame←v6740, key←v6768);
      val←v6840 = var←c24456.f1;
      found←v6812 = var←c24456.f0;
      };
SOURCE(4802, 20)
   if ((0 != found←v6812)) {
SOURCE(4816, 6)
      goto lab←L100024;
      };
SOURCE(4824, 43)
   {
      W3 var←c24488;
      (void) Find←P1320((word) &var←c24488, frame←v6740, key←v6768);
      val←v6840 = var←c24488.f1;
      found←v6812 = var←c24488.f0;
      };
SOURCE(4869, 58)
   if ((0 == found←v6812)) {
SOURCE(4887, 40)
      {
         W2 var←c24520;
         (void) TryToGet←P300((word) &var←c24520, (* (( (ptr) gf←c26120)+4)/* primitives←v3476 */  ), key←v6768);
         val←v6840 = var←c24520.f1;
         found←v6812 = var←c24520.f0;
         };
      };
SOURCE(4929, 39)
   if ((0 != found←v6812)) {
SOURCE(4943, 25)
      (void) CachePut←P1740(frame←v6740, key←v6768, val←v6840);
      };
   /* removed tail goto */ 
   lab←L100024: ;
   (*  (ptr) formal←c0197 ) = found←v6812;
   (* (( (ptr) formal←c0197)+1) ) = val←v6840;
   return;
   }

static word Load←P1500(frame←v6912, key←v6940)
   word frame←v6912;
   word key←v6940;
   {
   register ptr gf←c26152 =  (ptr) &globalframe;
   word val←v6984;
   word found←v9328;
   /* Load: */ 
SOURCE(4974, 160)
SOURCE(4974, 160)
   val←v6984 = 0;
SOURCE(5052, 36)
   {
      W2 var←c24552;
      (void) TryToLoad←P1440((word) &var←c24552, frame←v6912, key←v6940);
      val←v6984 = var←c24552.f1;
      found←v9328 = var←c24552.f0;
      };
SOURCE(5090, 44)
   if ((0 == found←v9328)) {
SOURCE(5108, 26)
      {
         word pd73;
         pd73 = (* (( (ptr) (* (( (ptr) gf←c26152)+138)/* var←c23816 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd73 ))))(1, pd73);
         };
      };
SOURCE(4974, 160)
   return(val←v6984);
   }

static void Def←P1560(frame←v7056, key←v7084, val←v7112)
   word frame←v7056;
   word key←v7084;
   word val←v7112;
   {
   word dict←v9372;
   /* Def: */ 
SOURCE(5140, 131)
SOURCE(5196, 27)
   dict←v9372 = (word) DictTop←P1020(frame←v7056);
SOURCE(5225, 19)
   (void) Put←P420(dict←v9372, key←v7084, val←v7112);
SOURCE(5246, 25)
   (void) CachePut←P1740(frame←v7056, key←v7084, val←v7112);
   }

static void Store←P1620(frame←v7184, formal←c0410, formal←c0411)
   word frame←v7184;
   word formal←c0410;
   word formal←c0411;
   {
   W8 var←c26184;
   /* declaration of key←v7212 skipped */ 
   /* declaration of val←v7240 skipped */ 
   /* declaration of var←c24584 skipped */ 
   var←c26184.f4/* key←v7212 */  = formal←c0410;
   var←c26184.f5/* val←v7240 */  = formal←c0411;
   /* Store: */ 
SOURCE(5277, 207)
   {
      word tmpAddr74;
      tmpAddr74 = (word) (( (ptr) &var←c26184)+6)/* var←c24584 */ ;
      (*  (ptr) tmpAddr74 ) = ( ((word)  (fPt) store←P3708) );
      (* (( (ptr) tmpAddr74) + 1) ) = 1;
      };
SOURCE(5398, 86)
   if ((0 != (word) DictStackMap←P1260(frame←v7184, (word) (( (bPt) &var←c26184)+24)/* var←c24584 */ ))) {
SOURCE(5433, 31)
      (void) CachePut←P1740(frame←v7184, var←c26184.f4/* key←v7212 */ , var←c26184.f5/* val←v7240 */ );
      }
   else {
SOURCE(5464, 20)
      (void) Def←P1560(frame←v7184, var←c26184.f4/* key←v7212 */ , var←c26184.f5/* val←v7240 */ );
      };
   }

static word store←P3708(dict←v20176, formal←c26248)
   word dict←v20176;
   word formal←c26248;
   {
   register ptr gf←c26216 =  (ptr) &globalframe;
   word quit←v20220;
   formal←c26248 = (formal←c26248 - 24);
   /* store: */ 
SOURCE(5335, 60)
SOURCE(5335, 60)
   quit←v20220 = 0;
SOURCE(5357, 38)
   {
      word pd75;
      pd75 = (* (( (ptr) (* (( (ptr) gf←c26216)+137)/* var←c23624 */  ))+8) );
      return((word) ( *( (fPt) ((*  (ptr) pd75 ))))((*  (ptr) dict←v20176 ), (* (( (ptr) formal←c26248)+4) ), (* (( (ptr) formal←c26248)+5)
          ), pd75));
      };
   }

static void CacheGet←P1680(formal←c0218, frame←v7312, key←v7340)
   word formal←c0218;
   word frame←v7312;
   word key←v7340;
   {
   word found←v7384;
   word val←v7412;
   /* CacheGet: */ 
SOURCE(5490, 93)
SOURCE(5490, 93)
   val←v7412 = 0;
SOURCE(5565, 18)
   found←v7384 = 0;
   val←v7412 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0218 ) = found←v7384;
   (* (( (ptr) formal←c0218)+1) ) = val←v7412;
   return;
   }

static void CachePut←P1740(frame←v7484, key←v7512, val←v7540)
   word frame←v7484;
   word key←v7512;
   word val←v7540;
   {
   /* CachePut: */ 
   }

static void CacheDel←P1800(frame←v7612, key←v7640)
   word frame←v7612;
   word key←v7640;
   {
   /* CacheDel: */ 
   }

static void CacheClear←P1860(frame←v7700)
   word frame←v7700;
   {
   /* CacheClear: */ 
   }

static void RegisterPrimitive←P1920(name←v7760, proc←v7788, data←v7816)
   word name←v7760;
   word proc←v7788;
   word data←v7816;
   {
   register ptr gf←c26280 =  (ptr) &globalframe;
   word key←v9460;
   word cmd←v9488;
   /* RegisterPrimitive: */ 
SOURCE(5768, 202)
SOURCE(5851, 30)
   key←v9460 = (word) AtomFromRope←P120(name←v7760);
SOURCE(5883, 60)
   cmd←v9488 = XR←NewObject(12, (* (( (ptr) gf←c26280)+9) ));
   (*  (ptr) cmd←v9488 ) = XR←CheckProc(proc←v7788);
   (* (( (ptr) cmd←v9488)+1) ) = data←v7816;
   (* (( (ptr) cmd←v9488)+2) ) = key←v9460;
SOURCE(5945, 25)
   (void) Put←P420((* (( (ptr) gf←c26280)+4)/* primitives←v3476 */  ), key←v9460, cmd←v9488);
   }

static word PopKey←P1980(frame←v7888)
   word frame←v7888;
   {
   register ptr gf←c26312 =  (ptr) &globalframe;
   word var←c7932;
   word x←v9532;
   /* PopKey: */ 
SOURCE(5978, 190)
SOURCE(6023, 19)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c26312)+138)/* var←c23816 */  ))+37) );
      x←v9532 = (word) ( *( (fPt) ((*  (ptr) pd76 ))))(frame←v7888, pd76);
      };
SOURCE(6044, 111)
   {
      word var←c24680;
      word var←c24712;
      var←c24680 = x←v9532;
      if ((var←c24680 == 0)) {
         goto lab←L100026;
         };
      var←c24712 = XR←GetReferentType(var←c24680);
      {
         word tc77;
         if (((* (( (ptr) gf←c26312)+12) ) == var←c24712)) {
            {
               word x←v9588;
               x←v9588 = var←c24680;
SOURCE(6074, 9)
               return(x←v9588);
               };
            }
         else {
            if (((* (( (ptr) gf←c26312)+7) ) == var←c24712)) {
               tc77 =  (word) ( (unsigned) (*(int*)var←c24680<0) == 0);
               }
            else {
               tc77 =  (word) 0;
               };
            if (tc77) {
               {
                  word x←v9632;
                  x←v9632 = var←c24680;
SOURCE(6096, 23)
                  return((word) AtomFromRope←P120(x←v9632));
                  };
               }
            else {
               lab←L100026: ;
SOURCE(6132, 23)
               {
                  word pd78;
                  pd78 = (* (( (ptr) (* (( (ptr) gf←c26312)+138)/* var←c23816 */  ))+95) );
                  (void) ( *( (fPt) ((*  (ptr) pd78 ))))(2, pd78);
                  };
               };
            };
         };
      };
SOURCE(6157, 11)
   return(0);
   }

static void ApplyDict←P2040(frame←v14804, cmd←v14832)
   word frame←v14804;
   word cmd←v14832;
   {
   register ptr gf←c26344 =  (ptr) &globalframe;
   word length←v9676;
   /* ApplyDict: */ 
SOURCE(6174, 88)
SOURCE(6201, 27)
   {
      word pd79;
      pd79 = (* (( (ptr) (* (( (ptr) gf←c26344)+138)/* var←c23816 */  ))+39) );
      length←v9676 = (word) ( *( (fPt) ((*  (ptr) pd79 ))))(frame←v14804, pd79);
      };
SOURCE(6230, 32)
   {
      word var←c24776;
      var←c24776 = (word) NewDict←P180(SGNCK(length←v9676));
      {
         word pd80;
         pd80 = (* (( (ptr) (* (( (ptr) gf←c26344)+138)/* var←c23816 */  ))+35) );
         (void) ( *( (fPt) ((*  (ptr) pd80 ))))(frame←v14804, var←c24776, pd80);
         };
      };
   }

static void ApplyGet←P2100(frame←v14892, cmd←v14920)
   word frame←v14892;
   word cmd←v14920;
   {
   register ptr gf←c26376 =  (ptr) &globalframe;
   word key←v9720;
   word dict←v9748;
   /* ApplyGet: */ 
SOURCE(6268, 109)
SOURCE(6294, 25)
   key←v9720 = (word) PopKey←P1980(frame←v14892);
SOURCE(6321, 27)
   {
      word pd81;
      pd81 = (* (( (ptr) (* (( (ptr) gf←c26376)+138)/* var←c23816 */  ))+47) );
      dict←v9748 = (word) ( *( (fPt) ((*  (ptr) pd81 ))))(frame←v14892, pd81);
      };
SOURCE(6350, 27)
   {
      word var←c24808;
      var←c24808 = (word) Get←P360(dict←v9748, key←v9720);
      {
         word pd82;
         pd82 = (* (( (ptr) (* (( (ptr) gf←c26376)+138)/* var←c23816 */  ))+25) );
         (void) ( *( (fPt) ((*  (ptr) pd82 ))))(frame←v14892, var←c24808, pd82);
         };
      };
   }

static void ApplyPut←P2160(frame←v14980, cmd←v15008)
   word frame←v14980;
   word cmd←v15008;
   {
   register ptr gf←c26408 =  (ptr) &globalframe;
   word val←v9792;
   word key←v9820;
   word dict←v9848;
   /* ApplyPut: */ 
SOURCE(6383, 146)
SOURCE(6409, 21)
   {
      word pd83;
      pd83 = (* (( (ptr) (* (( (ptr) gf←c26408)+138)/* var←c23816 */  ))+37) );
      val←v9792 = (word) ( *( (fPt) ((*  (ptr) pd83 ))))(frame←v14980, pd83);
      };
SOURCE(6432, 25)
   key←v9820 = (word) PopKey←P1980(frame←v14980);
SOURCE(6459, 27)
   {
      word pd84;
      pd84 = (* (( (ptr) (* (( (ptr) gf←c26408)+138)/* var←c23816 */  ))+47) );
      dict←v9848 = (word) ( *( (fPt) ((*  (ptr) pd84 ))))(frame←v14980, pd84);
      };
SOURCE(6488, 19)
   (void) Put←P420(dict←v9848, key←v9820, val←v9792);
SOURCE(6509, 20)
   (void) CacheDel←P1800(frame←v14980, key←v9820);
   }

static void ApplyDel←P2220(frame←v15068, cmd←v15096)
   word frame←v15068;
   word cmd←v15096;
   {
   register ptr gf←c26440 =  (ptr) &globalframe;
   word key←v9904;
   word dict←v9932;
   /* ApplyDel: */ 
SOURCE(6563, 118)
SOURCE(6589, 25)
   key←v9904 = (word) PopKey←P1980(frame←v15068);
SOURCE(6616, 27)
   {
      word pd85;
      pd85 = (* (( (ptr) (* (( (ptr) gf←c26440)+138)/* var←c23816 */  ))+47) );
      dict←v9932 = (word) ( *( (fPt) ((*  (ptr) pd85 ))))(frame←v15068, pd85);
      };
SOURCE(6645, 14)
   (void) Del←P480(dict←v9932, key←v9904);
SOURCE(6661, 20)
   (void) CacheDel←P1800(frame←v15068, key←v9904);
   }

static void ApplyClrDict←P2280(frame←v15156, cmd←v15184)
   word frame←v15156;
   word cmd←v15184;
   {
   register ptr gf←c26472 =  (ptr) &globalframe;
   word dict←v9976;
   /* ApplyClrDict: */ 
SOURCE(6715, 91)
SOURCE(6745, 27)
   {
      word pd86;
      pd86 = (* (( (ptr) (* (( (ptr) gf←c26472)+138)/* var←c23816 */  ))+47) );
      dict←v9976 = (word) ( *( (fPt) ((*  (ptr) pd86 ))))(frame←v15156, pd86);
      };
SOURCE(6774, 13)
   (void) ClrDict←P540(dict←v9976);
SOURCE(6789, 17)
   (void) CacheClear←P1860(frame←v15156);
   }

static void ApplyDictForAll←P2340(formal←c0412, cmd←v15272)
   word formal←c0412;
   word cmd←v15272;
   {
   W8 var←c26504;
   /* declaration of frame←v15244 skipped */ 
   register ptr gf←c26536 =  (ptr) &globalframe;
   /* declaration of var←c24840 skipped */ 
   /* declaration of x←v10020 skipped */ 
   word dict←v10048;
   var←c26504.f4/* frame←v15244 */  = formal←c0412;
   /* ApplyDictForAll: */ 
SOURCE(6840, 234)
   {
      word tmpAddr87;
      tmpAddr87 = (word) (( (ptr) &var←c26504)+5)/* var←c24840 */ ;
      (*  (ptr) tmpAddr87 ) = ( ((word)  (fPt) action←P3864) );
      (* (( (ptr) tmpAddr87) + 1) ) = 1;
      };
SOURCE(6873, 19)
   {
      word pd88;
      pd88 = (* (( (ptr) (* (( (ptr) gf←c26536)+138)/* var←c23816 */  ))+37) );
      var←c26504.f7/* x←v10020 */  = (word) ( *( (fPt) ((*  (ptr) pd88 ))))(var←c26504.f4/* frame←v15244 */ , pd88);
      };
SOURCE(6894, 27)
   {
      word pd89;
      pd89 = (* (( (ptr) (* (( (ptr) gf←c26536)+138)/* var←c23816 */  ))+47) );
      dict←v10048 = (word) ( *( (fPt) ((*  (ptr) pd89 ))))(var←c26504.f4/* frame←v15244 */ , pd89);
      };
SOURCE(7045, 29)
   {
      word var←c24872;
      var←c24872 = (word) DictForAll←P600(dict←v10048, (word) (( (bPt) &var←c26504)+20)/* var←c24840 */ );
      };
   }

static word action←P3864(key←v21068, val←v21096, formal←c26632)
   word key←v21068;
   word val←v21096;
   word formal←c26632;
   {
   W6 var←c26568;
   register ptr gf←c26600 =  (ptr) &globalframe;
   /* declaration of quit←v21140 skipped */ 
   formal←c26632 = (formal←c26632 - 20);
   var←c26568.f0 = formal←c26632;
   /* action: */ 
SOURCE(6923, 104)
SOURCE(6923, 104)
   var←c26568.f4/* quit←v21140 */  = 0;
SOURCE(6947, 20)
   {
      word pd90;
      pd90 = (* (( (ptr) (* (( (ptr) gf←c26600)+138)/* var←c23816 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd90 ))))((* (( (ptr) formal←c26632)+4) ), key←v21068, pd90);
      };
SOURCE(6969, 16)
   {
      word pd91;
      pd91 = (* (( (ptr) (* (( (ptr) gf←c26600)+138)/* var←c23816 */  ))+25) );
      (void) ( *( (fPt) ((*  (ptr) pd91 ))))((* (( (ptr) formal←c26632)+4) ), val←v21096, pd91);
      };
SOURCE(6987, 40)
SOURCE(6987, 40)
   {
      /* declaration of var←c01 skipped */ 
      var←c26568.f5/* var←c01 */  = (* (( (ptr) (* (( (ptr) gf←c26600)+138)/* var←c23816 */  ))+99) );
      {
         word var←c02;
         {
            word var←c0386;
            var←c0386 = (word) &var←c26568;
            var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4044) ), ( ((word)  (fPt) NoName←Q4224) ), var←c0386);
            };
         /* removed trivial cond node */ 
         };
      };
SOURCE(6923, 104)
   return(var←c26568.f4/* quit←v21140 */ );
   }

static word NoName←Q4044(formal←c0369)
   word formal←c0369;
   {
SOURCE(6987, 40)
   {
      word pd92;
      pd92 = (* (( (ptr) formal←c0369)+5) );
      (void) ( *( (fPt) ((*  (ptr) pd92 ))))((* (( (ptr) (*  (ptr) formal←c0369 ))+4) ), (* (( (ptr) (*  (ptr) formal←c0369 ))+7)
          ), pd92);
      };
   return(0);
   }

static void ApplyAttachDict←P2400(frame←v15332, cmd←v15360)
   word frame←v15332;
   word cmd←v15360;
   {
   register ptr gf←c26664 =  (ptr) &globalframe;
   word dict2←v10132;
   word dict1←v10160;
   /* ApplyAttachDict: */ 
SOURCE(7080, 136)
SOURCE(7113, 28)
   {
      word pd93;
      pd93 = (* (( (ptr) (* (( (ptr) gf←c26664)+138)/* var←c23816 */  ))+47) );
      dict2←v10132 = (word) ( *( (fPt) ((*  (ptr) pd93 ))))(frame←v15332, pd93);
      };
SOURCE(7143, 28)
   {
      word pd94;
      pd94 = (* (( (ptr) (* (( (ptr) gf←c26664)+138)/* var←c23816 */  ))+47) );
      dict1←v10160 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))(frame←v15332, pd94);
      };
SOURCE(7173, 24)
   (void) AttachDict←P720(dict1←v10160, dict2←v10132);
SOURCE(7199, 17)
   (void) CacheClear←P1860(frame←v15332);
   }

static void ApplyDetachDict←P2460(frame←v15420, cmd←v15448)
   word frame←v15420;
   word cmd←v15448;
   {
   register ptr gf←c26696 =  (ptr) &globalframe;
   word dict2←v10204;
   word dict1←v10232;
   /* ApplyDetachDict: */ 
SOURCE(7250, 117)
SOURCE(7283, 28)
   {
      word pd95;
      pd95 = (* (( (ptr) (* (( (ptr) gf←c26696)+138)/* var←c23816 */  ))+47) );
      dict2←v10204 = (word) ( *( (fPt) ((*  (ptr) pd95 ))))(frame←v15420, pd95);
      };
SOURCE(7313, 28)
   {
      word pd96;
      pd96 = (* (( (ptr) (* (( (ptr) gf←c26696)+138)/* var←c23816 */  ))+47) );
      dict1←v10232 = (word) ( *( (fPt) ((*  (ptr) pd96 ))))(frame←v15420, pd96);
      };
SOURCE(7343, 24)
   (void) DetachDict←P780(dict1←v10232, dict2←v10204);
   }

static void ApplyDetachAll←P2520(frame←v15508, cmd←v15536)
   word frame←v15508;
   word cmd←v15536;
   {
   register ptr gf←c26728 =  (ptr) &globalframe;
   word dict←v10276;
   /* ApplyDetachAll: */ 
SOURCE(7373, 76)
SOURCE(7405, 27)
   {
      word pd97;
      pd97 = (* (( (ptr) (* (( (ptr) gf←c26728)+138)/* var←c23816 */  ))+47) );
      dict←v10276 = (word) ( *( (fPt) ((*  (ptr) pd97 ))))(frame←v15508, pd97);
      };
SOURCE(7434, 15)
   (void) DetachAll←P840(dict←v10276);
   }

static void ApplyAttachedForAll←P2580(formal←c0413, cmd←v15624)
   word formal←c0413;
   word cmd←v15624;
   {
   W8 var←c26760;
   /* declaration of frame←v15596 skipped */ 
   register ptr gf←c26792 =  (ptr) &globalframe;
   /* declaration of var←c24904 skipped */ 
   /* declaration of x←v10320 skipped */ 
   word dict←v10348;
   var←c26760.f4/* frame←v15596 */  = formal←c0413;
   /* ApplyAttachedForAll: */ 
SOURCE(7455, 224)
   {
      word tmpAddr98;
      tmpAddr98 = (word) (( (ptr) &var←c26760)+5)/* var←c24904 */ ;
      (*  (ptr) tmpAddr98 ) = ( ((word)  (fPt) action←P3924) );
      (* (( (ptr) tmpAddr98) + 1) ) = 1;
      };
SOURCE(7492, 19)
   {
      word pd99;
      pd99 = (* (( (ptr) (* (( (ptr) gf←c26792)+138)/* var←c23816 */  ))+37) );
      var←c26760.f7/* x←v10320 */  = (word) ( *( (fPt) ((*  (ptr) pd99 ))))(var←c26760.f4/* frame←v15596 */ , pd99);
      };
SOURCE(7513, 27)
   {
      word pd100;
      pd100 = (* (( (ptr) (* (( (ptr) gf←c26792)+138)/* var←c23816 */  ))+47) );
      dict←v10348 = (word) ( *( (fPt) ((*  (ptr) pd100 ))))(var←c26760.f4/* frame←v15596 */ , pd100);
      };
SOURCE(7646, 33)
   {
      word var←c24936;
      var←c24936 = (word) AttachedForAll←P900(dict←v10348, (word) (( (bPt) &var←c26760)+20)/* var←c24904 */ );
      };
   }

static word action←P3924(dict←v21504, formal←c26888)
   word dict←v21504;
   word formal←c26888;
   {
   W6 var←c26824;
   register ptr gf←c26856 =  (ptr) &globalframe;
   /* declaration of quit←v21548 skipped */ 
   formal←c26888 = (formal←c26888 - 20);
   var←c26824.f0 = formal←c26888;
   /* action: */ 
SOURCE(7542, 86)
SOURCE(7542, 86)
   var←c26824.f4/* quit←v21548 */  = 0;
SOURCE(7565, 21)
   {
      word pd101;
      pd101 = (* (( (ptr) (* (( (ptr) gf←c26856)+138)/* var←c23816 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd101 ))))((* (( (ptr) formal←c26888)+4) ), dict←v21504, pd101);
      };
SOURCE(7588, 40)
SOURCE(7588, 40)
   {
      /* declaration of var←c03 skipped */ 
      var←c26824.f5/* var←c03 */  = (* (( (ptr) (* (( (ptr) gf←c26856)+138)/* var←c23816 */  ))+99) );
      {
         word var←c04;
         {
            word var←c0387;
            var←c0387 = (word) &var←c26824;
            var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4104) ), ( ((word)  (fPt) NoName←Q4164) ), var←c0387);
            };
         /* removed trivial cond node */ 
         };
      };
SOURCE(7542, 86)
   return(var←c26824.f4/* quit←v21548 */ );
   }

static word NoName←Q4104(formal←c0376)
   word formal←c0376;
   {
SOURCE(7588, 40)
   {
      word pd102;
      pd102 = (* (( (ptr) formal←c0376)+5) );
      (void) ( *( (fPt) ((*  (ptr) pd102 ))))((* (( (ptr) (*  (ptr) formal←c0376 ))+4) ), (* (( (ptr) (*  (ptr) formal←c0376 ))+7)
          ), pd102);
      };
   return(0);
   }

static void ApplyKnown←P2640(frame←v15684, cmd←v15712)
   word frame←v15684;
   word cmd←v15712;
   {
   register ptr gf←c26920 =  (ptr) &globalframe;
   word key←v10432;
   word dict←v10460;
   /* ApplyKnown: */ 
SOURCE(7685, 126)
SOURCE(7713, 25)
   key←v10432 = (word) PopKey←P1980(frame←v15684);
SOURCE(7740, 27)
   {
      word pd103;
      pd103 = (* (( (ptr) (* (( (ptr) gf←c26920)+138)/* var←c23816 */  ))+47) );
      dict←v10460 = (word) ( *( (fPt) ((*  (ptr) pd103 ))))(frame←v15684, pd103);
      };
SOURCE(7769, 42)
   {
      word var←c24968;
      W2 var←c0291;
      (void) TryToGet←P300((word) &var←c0291, dict←v10460, key←v10432);
      var←c24968 = var←c0291.f0;
      {
         word pd104;
         pd104 = (* (( (ptr) (* (( (ptr) gf←c26920)+138)/* var←c23816 */  ))+26) );
         (void) ( *( (fPt) ((*  (ptr) pd104 ))))(frame←v15684, var←c24968, pd104);
         };
      };
   }

static void ApplyWhere←P2700(frame←v15772, cmd←v15800)
   word frame←v15772;
   word cmd←v15800;
   {
   register ptr gf←c26952 =  (ptr) &globalframe;
   word key←v10504;
   word found←v10532;
   word where←v10560 = 0;
   /* ApplyWhere: */ 
SOURCE(7817, 177)
SOURCE(7845, 25)
   key←v10504 = (word) PopKey←P1980(frame←v15772);
SOURCE(7898, 34)
   {
      W2 var←c25000;
      (void) Where←P1380((word) &var←c25000, frame←v15772, key←v10504);
      where←v10560 = var←c25000.f1;
      found←v10532 = var←c25000.f0;
      };
SOURCE(7934, 36)
   if ((0 != found←v10532)) {
SOURCE(7948, 22)
      {
         word pd105;
         pd105 = (* (( (ptr) (* (( (ptr) gf←c26952)+138)/* var←c23816 */  ))+35) );
         (void) ( *( (fPt) ((*  (ptr) pd105 ))))(frame←v15772, where←v10560, pd105);
         };
      };
SOURCE(7972, 22)
   {
      word pd106;
      pd106 = (* (( (ptr) (* (( (ptr) gf←c26952)+138)/* var←c23816 */  ))+26) );
      (void) ( *( (fPt) ((*  (ptr) pd106 ))))(frame←v15772, found←v10532, pd106);
      };
   }

static void ApplyLoad←P2760(frame←v15860, cmd←v15888)
   word frame←v15860;
   word cmd←v15888;
   {
   register ptr gf←c26984 =  (ptr) &globalframe;
   word key←v10604;
   /* ApplyLoad: */ 
SOURCE(8000, 83)
SOURCE(8027, 25)
   key←v10604 = (word) PopKey←P1980(frame←v15860);
SOURCE(8054, 29)
   {
      word var←c25032;
      var←c25032 = (word) Load←P1500(frame←v15860, key←v10604);
      {
         word pd107;
         pd107 = (* (( (ptr) (* (( (ptr) gf←c26984)+138)/* var←c23816 */  ))+25) );
         (void) ( *( (fPt) ((*  (ptr) pd107 ))))(frame←v15860, var←c25032, pd107);
         };
      };
   }

static void ApplyDef←P2820(frame←v15948, cmd←v15976)
   word frame←v15948;
   word cmd←v15976;
   {
   register ptr gf←c27016 =  (ptr) &globalframe;
   word val←v10648;
   word key←v10676;
   /* ApplyDef: */ 
SOURCE(8089, 96)
SOURCE(8115, 21)
   {
      word pd108;
      pd108 = (* (( (ptr) (* (( (ptr) gf←c27016)+138)/* var←c23816 */  ))+37) );
      val←v10648 = (word) ( *( (fPt) ((*  (ptr) pd108 ))))(frame←v15948, pd108);
      };
SOURCE(8138, 25)
   key←v10676 = (word) PopKey←P1980(frame←v15948);
SOURCE(8165, 20)
   (void) Def←P1560(frame←v15948, key←v10676, val←v10648);
   }

static void ApplyStore←P2880(frame←v16036, cmd←v16064)
   word frame←v16036;
   word cmd←v16064;
   {
   register ptr gf←c27048 =  (ptr) &globalframe;
   word val←v10732;
   word key←v10760;
   /* ApplyStore: */ 
SOURCE(8191, 100)
SOURCE(8219, 21)
   {
      word pd109;
      pd109 = (* (( (ptr) (* (( (ptr) gf←c27048)+138)/* var←c23816 */  ))+37) );
      val←v10732 = (word) ( *( (fPt) ((*  (ptr) pd109 ))))(frame←v16036, pd109);
      };
SOURCE(8242, 25)
   key←v10760 = (word) PopKey←P1980(frame←v16036);
SOURCE(8269, 22)
   (void) Store←P1620(frame←v16036, key←v10760, val←v10732);
   }

static void ApplyBegin←P2940(frame←v16124, cmd←v16152)
   word frame←v16124;
   word cmd←v16152;
   {
   register ptr gf←c27080 =  (ptr) &globalframe;
   word dict←v10816;
   /* ApplyBegin: */ 
SOURCE(8297, 75)
SOURCE(8325, 27)
   {
      word pd110;
      pd110 = (* (( (ptr) (* (( (ptr) gf←c27080)+138)/* var←c23816 */  ))+47) );
      dict←v10816 = (word) ( *( (fPt) ((*  (ptr) pd110 ))))(frame←v16124, pd110);
      };
SOURCE(8354, 18)
   (void) Begin←P1080(frame←v16124, dict←v10816);
   }

static void ApplyEnd←P3000(frame←v16212, cmd←v16240)
   word frame←v16212;
   word cmd←v16240;
   {
   /* ApplyEnd: */ 
SOURCE(8378, 36)
SOURCE(8404, 10)
   (void) End←P1140(frame←v16212);
   }

static void ApplyCurDict←P3060(frame←v16300, cmd←v16328)
   word frame←v16300;
   word cmd←v16328;
   {
   register ptr gf←c27112 =  (ptr) &globalframe;
   /* ApplyCurDict: */ 
SOURCE(8420, 61)
SOURCE(8450, 31)
   {
      word var←c25064;
      var←c25064 = (word) DictTop←P1020(frame←v16300);
      {
         word pd111;
         pd111 = (* (( (ptr) (* (( (ptr) gf←c27112)+138)/* var←c23816 */  ))+35) );
         (void) ( *( (fPt) ((*  (ptr) pd111 ))))(frame←v16300, var←c25064, pd111);
         };
      };
   }

static void NoName←Q4164(formal←c0323, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0323;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0384 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0384)+138)/* var←c23816 */  ))+93) ))) {
SOURCE(7617, 11)
      (* (( (ptr) formal←c200004)+4) ) = 1;
SOURCE(7630, 9)
      (*  (ptr) formal←c0323 ) = 2;
      (* (( (ptr) formal←c0323)+1) ) = 3;
      return;
      };
   (*  (ptr) formal←c0323 ) = 0;
   (* (( (ptr) formal←c0323)+1) ) = 0;
   return;
   }

static void NoName←Q4224(formal←c0328, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0328;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0385 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0385)+138)/* var←c23816 */  ))+93) ))) {
SOURCE(7016, 11)
      (* (( (ptr) formal←c200000)+4) ) = 1;
SOURCE(7029, 9)
      (*  (ptr) formal←c0328 ) = 2;
      (* (( (ptr) formal←c0328)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0328 ) = 0;
   (* (( (ptr) formal←c0328)+1) ) = 0;
   return;
   }

/* file: TJaMDictImpl, module: TJaMDictImpl, compiled at: October 19, 1993 1:01:31 pm PDT */ 
extern void XR←install←TJaMDictImpl() {
   NoName←Q3984();
   }
extern void XR←run←TJaMDictImpl() { XR←Start(&globalframe); }