/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 7:56:05 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGSceneImpl, module: GGSceneImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3474249675,1607437664] GGSceneImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {W32 f; W6 r;} W38;
typedef W38 *W38Pt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W6 r;} W14;
typedef W5 *W5Pt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W2 r;} W10;
#define SOURCE(p, l) /* source p, l */
static float fc35 = 1.0;
static void NoName←Q6360();
static void GGSceneImpl←P0();
static word CreateScene←P60();
static void SetScene←P120();
static word CreateDefaultCamera←P180();
static void AddSlice←P240();
static void AddSlices←P300();
static word AddHole←P360();
static void AppendHoles←P420();
static void AppendSlice←P480();
static void UpdatePtr←P540();
static void SetBackgroundColor←P600();
static word GetBackgroundColor←P660();
static void SetLastEditedTime←P720();
static void GetLastEditedTime←P780();
static word CopySelectedParts←P840();
static word MakeNewSlices←P3660();
static void UpdatePriorities←P900();
static word DoUpdate←P3816();
static word GetPriority←P960();
static word TopPriority←P1020();
static void UpOne←P1080();
static void ExchangeWithNextEntity←P3876();
static void PutInFront←P1140();
static void DownOne←P1200();
static void ExchangeWithPreviousEntity←P4080();
static void PutBehind←P1260();
static void ReplaceSlice←P1320();
static void PutAtPriority←P1380();
static word GetAtPriority←P1440();
static word DeleteAtPriority←P1500();
static void RemoveSlice←P1560();
static void DeleteSlice←P1620();
static void DeleteSequence←P1680();
static word OutlinesFromOutlineExcept←P1740();
static void MakeSceneGarbage←P1800();
static word MergeScenes←P1860();
static word WalkSlices←P1920();
static word WalkSelectedSlices←P1980();
static word ListSlices←P2040();
static word DoAppendSlice←P4860();
static word ListSelectedSlices←P2100();
static word DoAppendSlice←P4920();
static word CountSlices←P2160();
static word AddEmUp←P4980();
static word CountSelectedSlices←P2220();
static word AddEmUp←P5040();
static word FirstSelectedSlice←P2280();
static word StopAtFirstSlice←P5100();
static word LastSelectedSlice←P2340();
static word StopAtLastSlice←P5160();
static word IsTopLevel←P2400();
static word BoundBoxesInScene←P2460();
static word TightBoxesInScene←P2520();
static word NextBox←P2580();
static word BoundBoxOfScene←P2640();
static word TightBoxOfScene←P2700();
static word SelectionBoxOfSelected←P2760();
static word DoEnlargeBox←P5412();
static word BoundBoxOfSelected←P2820();
static word DoEnlargeBox←P5472();
static word TightBoxOfSelected←P2880();
static word DoEnlargeBox←P5532();
static word BoundBoxOfMoving←P2940();
static word DoEnlargeBox←P5592();
static word DeleteAllSelected←P3000();
static word DeleteTopLevel←P5652();
static void DeleteSliceParts←P3060();
static word BoundBoxOfSlices←P3120();
static void SaveSelections←P3180();
static void RestoreSelections←P3240();
static void SelectInBox←P3300();
static word SelectSlice←P6240();
static void SelectPartsInBox←P3360();
static word SelectSliceParts←P6300();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\023\042\171\072\300\052\367\123\170\100\164\000\000"};
static struct {unsigned f; char r[28];} string2 = {1572888, "\006\010\014\001\020\001\024\001\030\004\155\273\100\120\013\100\214\001\100\220\001\100\224\001\000\000\000"};
static struct {unsigned f; char r[4];} string3 = {65540, "\251\000\000"};
static struct {unsigned f; char r[4];} string4 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string5 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\214\000\000"};
static struct {unsigned f; char r[48];} string7 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\100\324\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\100\324\261\000\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\164\000\000"};
static struct {unsigned f; char r[4];} string10 = {196611, "\004A6"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\240\000\000"};
static struct {unsigned f; char r[48];} string12 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\371\314\343\307\300\031\056\017\130\100\324\005\004\162\145\163\164\214\216\257\300\371\314\343\307\300\031\056\017\130\100\324\261\000\000\000"};
static struct {unsigned f; char r[8];} string13 = {458760, "Outline"};
static struct {unsigned f; char r[8];} string14 = {262152, "Traj\000\000\000"};
static struct {unsigned f; char r[8];} string15 = {262152, "Text\000\000\000"};
static struct {unsigned f; char r[8];} string16 = {458760, "Cluster"};
static struct {unsigned f; char r[12];} string17 = {589836, "NotLocked\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\317\024\327\313\300\137\317\215\140\100\164\000\000"};
static struct {unsigned f; char r[8];} string19 = {393222, "\006\001@`\004\037\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\212\174\364\337\300\361\376\000\156\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"};
static struct {unsigned f; char r[4];} string24 = {1195856739, "ene"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\011\245\206\305\300\112\326\356\245\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\150\000\000"};
static struct {unsigned f; char r[24];} string33 = {1376280, "\211\011\010\123\143\145\156\145\117\142\152\300\247\365\203\234\300\047\265\225\046\000\000"};
static struct {
   word f0[30]; word f30; word f31; 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; word f136; 
   word f137; word f138; word f139; word f140; 
   word f141; word f142; word f143[14]; 
   } globalframe = {
   {0}, (word) SelectPartsInBox←P3360, 0, (word) SelectInBox←P3300, 
   0, (word) RestoreSelections←P3240, 0, (word) SaveSelections←P3180, 
   0, (word) BoundBoxOfSlices←P3120, 0, (word) DeleteSliceParts←P3060, 
   0, (word) DeleteAllSelected←P3000, 0, (word) BoundBoxOfMoving←P2940, 
   0, (word) TightBoxOfSelected←P2880, 0, (word) BoundBoxOfSelected←P2820, 
   0, (word) SelectionBoxOfSelected←P2760, 0, (word) TightBoxOfScene←P2700, 
   0, (word) BoundBoxOfScene←P2640, 0, (word) NextBox←P2580, 
   0, (word) TightBoxesInScene←P2520, 0, (word) BoundBoxesInScene←P2460, 
   0, (word) IsTopLevel←P2400, 0, (word) LastSelectedSlice←P2340, 
   0, (word) FirstSelectedSlice←P2280, 0, (word) CountSelectedSlices←P2220, 
   0, (word) CountSlices←P2160, 0, (word) ListSelectedSlices←P2100, 
   0, (word) ListSlices←P2040, 0, (word) WalkSelectedSlices←P1980, 
   0, (word) WalkSlices←P1920, 0, (word) MergeScenes←P1860, 
   0, (word) MakeSceneGarbage←P1800, 0, (word) OutlinesFromOutlineExcept←P1740, 
   0, (word) DeleteSequence←P1680, 0, (word) DeleteSlice←P1620, 
   0, (word) RemoveSlice←P1560, 0, (word) DeleteAtPriority←P1500, 
   0, (word) GetAtPriority←P1440, 0, (word) PutAtPriority←P1380, 
   0, (word) ReplaceSlice←P1320, 0, (word) PutBehind←P1260, 
   0, (word) DownOne←P1200, 0, (word) PutInFront←P1140, 
   0, (word) UpOne←P1080, 0, (word) TopPriority←P1020, 
   0, (word) GetPriority←P960, 0, (word) UpdatePriorities←P900, 
   0, (word) CopySelectedParts←P840, 0, (word) GetLastEditedTime←P780, 
   0, (word) SetLastEditedTime←P720, 0, (word) GetBackgroundColor←P660, 
   0, (word) SetBackgroundColor←P600, 0, (word) UpdatePtr←P540, 
   0, (word) AppendSlice←P480, 0, (word) AppendHoles←P420, 
   0, (word) AddHole←P360, 0, (word) AddSlices←P300, 
   0, (word) AddSlice←P240, 0, (word) CreateDefaultCamera←P180, 
   0, (word) SetScene←P120, 0, (word) CreateScene←P60, 
   0, (word) GGSceneImpl←P0, {0}
   };

static void NoName←Q6360()
   {
   register ptr gf←c0475 =  (ptr) &globalframe;
   word var←c52296;
   (* (( (ptr) gf←c0475)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0475)+11) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0475)+12) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0475)+19) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c0475)+20) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0475)+21) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0475)+22) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string5);
   (* (( (ptr) gf←c0475)+23) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string8);
   (*  (ptr) (( (bPt) gf←c0475)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0475)+12) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0475)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0475)+12) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0475)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0475)+12) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0475)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0475)+12) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0475)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0475)+12) ), (word) &string17);
   (void) XR←DeclareGlobalFrame((word) "GGSceneImpl", &globalframe, (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19)
      , (word) (( (bPt) gf←c0475)+568)/* var←c49288 */ );
   var←c52296 = (word) XR←ImportInterface((word) "BasicTime", (word) XR←GetTypeIndexS((word) (&string20)), 24);
   (* (( (ptr) gf←c0475)+145)/* var←c49384 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 134220544);
   var←c52296 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string21)), 24);
   (* (( (ptr) gf←c0475)+154)/* var←c51208 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 526850);
   (void) XR←ImportProcS(var←c52296, 67109376);
   (void) XR←ImportProcS(var←c52296, 67372033);
   var←c52296 = (word) XR←ImportInterface((word) "GGOutline", (word) XR←GetTypeIndexS((word) (&string22)), 19);
   (* (( (ptr) gf←c0475)+148)/* var←c49704 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 1050628);
   (void) XR←ImportProcS(var←c52296, 67896323);
   (void) XR←ImportProcS(var←c52296, 67633410);
   (void) XR←ImportProcS(var←c52296, 264705);
   (void) XR←ImportProcS(var←c52296, 67633666);
   var←c52296 = (word) XR←ImportInterface((word) "GGParent", (word) XR←GetTypeIndexS((word) (&string23)), 83);
   (* (( (ptr) gf←c0475)+147)/* var←c49672 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 68176388);
   (void) XR←ImportProcS(var←c52296, 67653890);
   (void) XR←ImportProcS(var←c52296, 67913475);
   (void) XR←ImportProcS(var←c52296, 68437509);
   (void) XR←ImportProcS(var←c52296, 68175108);
   (void) XR←ImportProcS(var←c52296, 67385857);
   (void) XR←ImportProcS(var←c52296, 67650562);
   (void) XR←ImportProcS(var←c52296, 67386369);
   var←c52296 = (word) XR←ImportInterface((word) &string24, (word) XR←GetTypeIndexS((word) (&string25)), 50);
   (* (( (ptr) gf←c0475)+152)/* var←c49992 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 67905795);
   (void) XR←ImportProcS(var←c52296, 68164356);
   (void) XR←ImportProcS(var←c52296, 67637506);
   (void) XR←ImportProcS(var←c52296, 787715);
   (void) XR←ImportProcS(var←c52296, 68426757);
   var←c52296 = (word) XR←ImportInterface((word) "GGSelect", (word) XR←GetTypeIndexS((word) (&string26)), 23);
   (* (( (ptr) gf←c0475)+153)/* var←c50056 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 786947);
   (void) XR←ImportProcS(var←c52296, 789507);
   (void) XR←ImportProcS(var←c52296, 525314);
   (void) XR←ImportProcS(var←c52296, 791043);
   (void) XR←ImportProcS(var←c52296, 67638274);
   (void) XR←ImportProcS(var←c52296, 525570);
   (void) XR←ImportProcS(var←c52296, 526338);
   (void) XR←ImportProcS(var←c52296, 786691);
   (void) XR←ImportProcS(var←c52296, 526594);
   var←c52296 = (word) XR←ImportInterface((word) "GGSlice", (word) XR←GetTypeIndexS((word) (&string27)), 128);
   (* (( (ptr) gf←c0475)+151)/* var←c49896 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 201600001);
   (void) XR←ImportProcS(var←c52296, 788483);
   (void) XR←ImportProcS(var←c52296, 67374081);
   (void) XR←ImportProcS(var←c52296, 67372545);
   (void) XR←ImportProcS(var←c52296, 278529);
   var←c52296 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string28)), 73);
   (* (( (ptr) gf←c0475)+149)/* var←c49832 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 67650306);
   (void) XR←ImportProcS(var←c52296, 67650562);
   (void) XR←ImportProcS(var←c52296, 67637506);
   (void) XR←ImportProcS(var←c52296, 67376897);
   (void) XR←ImportProcS(var←c52296, 67377153);
   (void) XR←ImportProcS(var←c52296, 67639810);
   (void) XR←ImportProcS(var←c52296, 270539780);
   (void) XR←ImportProcS(var←c52296, 67634434);
   (void) XR←ImportProcS(var←c52296, 67633922);
   (void) XR←ImportProcS(var←c52296, 264193);
   (void) XR←ImportProcS(var←c52296, 134756866);
   (void) XR←ImportProcS(var←c52296, 67634690);
   (void) XR←ImportProcS(var←c52296, 67371521);
   var←c52296 = (word) XR←ImportInterface((word) "GGTraj", (word) XR←GetTypeIndexS((word) (&string29)), 55);
   (* (( (ptr) gf←c0475)+150)/* var←c49864 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 134481409);
   (void) XR←ImportProcS(var←c52296, 527106);
   var←c52296 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string30)), 42);
   (* (( (ptr) gf←c0475)+146)/* var←c49608 */  ) = var←c52296;
   (void) XR←ImportProcS(var←c52296, 67374849);
   (void) XR←ImportProcS(var←c52296, 135007235);
   (void) XR←ImportProcS(var←c52296, 134220544);
   (void) XR←ImportProcS(var←c52296, 67636482);
   (void) XR←ImportProcS(var←c52296, 134221824);
   (void) XR←ImportProcS(var←c52296, 67638018);
   (void) XR←ImportProcS(var←c52296, 268964866);
   (void) XR←ImportProcS(var←c52296, 67376897);
   (void) XR←ImportProcS(var←c52296, 135008515);
   (void) XR←ImportProcS(var←c52296, 67376385);
   (void) XR←ImportProcS(var←c52296, 67637762);
   var←c52296 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string31)), 84);
   (* (( (ptr) gf←c0475)+144)/* var←c49352 */  ) = var←c52296;
   var←c52296 = (word) XR←ExportInterface((word) &string24, (word) XR←GetTypeIndexS((word) (&string25)), 50);
   (* (( (ptr) gf←c0475)+155)/* var←c52328 */  ) = var←c52296;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+560)/* var←c49256 */ , 67371009, (word) "CreateScene");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+544)/* var←c49192 */ , 67109120, (word) "CreateDefaultCamera")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+320)/* var←c48296 */ , 67633666, (word) "MergeScenes");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+552)/* var←c49224 */ , 525058, (word) "SetScene");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+328)/* var←c48328 */ , 263169, (word) "MakeSceneGarbage");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+536)/* var←c49160 */ , 787715, (word) "AddSlice");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+528)/* var←c49128 */ , 787971, (word) "AddSlices");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+520)/* var←c49096 */ , 67897091, (word) "AddHole");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+512)/* var←c49064 */ , 526338, (word) "AppendHoles");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+352)/* var←c48424 */ , 526594, (word) "DeleteSlice");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+360)/* var←c48456 */ , 526850, (word) "RemoveSlice");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+344)/* var←c48392 */ , 134744834, (word) "DeleteSequence");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+488)/* var←c48968 */ , 527362, (word) "SetBackgroundColor");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+480)/* var←c48936 */ , 67374337, (word) "GetBackgroundColor")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+472)/* var←c48904 */ , 790018, (word) "SetLastEditedTime");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+464)/* var←c48872 */ , 134483713, (word) "GetLastEditedTime")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+456)/* var←c48840 */ , 67637250, (word) "CopySelectedParts");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+440)/* var←c48776 */ , 67637506, (word) "GetPriority");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+432)/* var←c48744 */ , 67375617, (word) "TopPriority");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+424)/* var←c48712 */ , 529154, (word) "UpOne");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+416)/* var←c48680 */ , 791555, (word) "PutInFront");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+408)/* var←c48648 */ , 529666, (word) "DownOne");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+400)/* var←c48616 */ , 792067, (word) "PutBehind");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+392)/* var←c48584 */ , 792323, (word) "ReplaceSlice");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+384)/* var←c48552 */ , 792579, (word) "PutAtPriority");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+376)/* var←c48520 */ , 67639554, (word) "GetAtPriority");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+368)/* var←c48488 */ , 67639810, (word) "DeleteAtPriority");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+312)/* var←c48264 */ , 68164356, (word) "WalkSlices");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+304)/* var←c48232 */ , 68426757, (word) "WalkSelectedSlices")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+296)/* var←c48200 */ , 67902723, (word) "ListSlices");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+288)/* var←c48168 */ , 68165124, (word) "ListSelectedSlices")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+280)/* var←c48136 */ , 67903235, (word) "CountSlices");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+272)/* var←c48104 */ , 68165636, (word) "CountSelectedSlices")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+264)/* var←c48072 */ , 68165892, (word) "FirstSelectedSlice")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+256)/* var←c48040 */ , 68166148, (word) "LastSelectedSlice");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+248)/* var←c48008 */ , 67379969, (word) "IsTopLevel");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+240)/* var←c47976 */ , 67380225, (word) "BoundBoxesInScene");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+232)/* var←c47944 */ , 67380481, (word) "TightBoxesInScene");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+224)/* var←c47912 */ , 67380737, (word) "NextBox");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+216)/* var←c47880 */ , 67380993, (word) "BoundBoxOfScene");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+208)/* var←c47848 */ , 67381249, (word) "TightBoxOfScene");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+192)/* var←c47784 */ , 67905795, (word) "BoundBoxOfSelected")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+184)/* var←c47752 */ , 67906051, (word) "TightBoxOfSelected")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+200)/* var←c47816 */ , 67906307, (word) "SelectionBoxOfSelected")
   ;
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+176)/* var←c47720 */ , 69217284, (word) "BoundBoxOfMoving");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+168)/* var←c47688 */ , 67382529, (word) "DeleteAllSelected");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+144)/* var←c47592 */ , 273921, (word) "SaveSelections");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+136)/* var←c47560 */ , 274177, (word) "RestoreSelections");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+128)/* var←c47528 */ , 798723, (word) "SelectInBox");
   (void) XR←ExportProcS(var←c52296, (word) (( (bPt) gf←c0475)+120)/* var←c47496 */ , 798979, (word) "SelectPartsInBox");
   var←c52296 = (word) XR←ExportInterface((word) "GGModelTypes", (word) XR←GetTypeIndexS((word) (&string32)), 1);
   (* (( (ptr) gf←c0475)+156)/* var←c52360 */  ) = var←c52296;
   (void) XR←ExportType((word) "SceneObj", (word) XR←GetTypeIndexS((word) (&string33)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   }

static void GGSceneImpl←P0(formal←c079, formal←c078)
   word formal←c079;
   word formal←c078;
   {
   /* GGSceneImpl: */ 
   }

static word CreateScene←P60(entities←v6152)
   word entities←v6152;
   {
   register ptr gf←c52392 =  (ptr) &globalframe;
   word scene←v6280;
   /* CreateScene: */ 
SOURCE(2238, 231)
SOURCE(2238, 231)
   scene←v6280 = 0;
SOURCE(2322, 101)
   {
      word var←c49320;
      var←c49320 = XR←NewObject(152, (* (( (ptr) gf←c52392)+10) ));
      (*  (ptr) var←c49320 ) = 2147483647;
      (* (( (ptr) var←c49320)+4) ) = entities←v6152;
      (* (( (ptr) var←c49320)+36) ) = (* (( (ptr) gf←c52392)+28) );
      (* (( (ptr) var←c49320)+37) ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c52392)+144)/* var←c49352 */  ))+55) ) );
      scene←v6280 = var←c49320;
      };
SOURCE(2425, 44)
   {
      word pd34;
      pd34 = (* (( (ptr) (* (( (ptr) gf←c52392)+145)/* var←c49384 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd34 ))))((word) (scene←v6280), pd34);
      };
SOURCE(2238, 231)
   return(scene←v6280);
   }

static void SetScene←P120(from←v6340, to←v6368)
   word from←v6340;
   word to←v6368;
   {
   word to2←v13928;
   word from1←v13956;
   /* SetScene: */ 
SOURCE(2475, 133)
SOURCE(2527, 30)
   to2←v13928 = to←v6368;
SOURCE(2559, 34)
   from1←v13956 = from←v6340;
SOURCE(2595, 13)
   (*  (W38Pt) to2←v13928 ) = (*  (W38Pt) from1←v13956 );
   }

static word CreateDefaultCamera←P180()
   {
   register ptr gf←c52424 =  (ptr) &globalframe;
   word camera←v6428;
   /* CreateDefaultCamera: */ 
SOURCE(2614, 88)
SOURCE(2614, 88)
   camera←v6428 = 0;
SOURCE(2679, 23)
   {
      word var←c49416;
      var←c49416 = XR←NewObject(20, (* (( (ptr) gf←c52424)+19) ));
      (* (( (ptr) var←c49416)+4) ) = (*  (ptr) &fc35 );
      camera←v6428 = var←c49416;
      };
SOURCE(2614, 88)
   return(camera←v6428);
   }

static void AddSlice←P240(scene←v6488, slice←v6516, priority←v6544)
   word scene←v6488;
   word slice←v6516;
   word priority←v6544;
   {
   register ptr gf←c52456 =  (ptr) &globalframe;
   /* AddSlice: */ 
SOURCE(2708, 397)
SOURCE(2783, 24)
   if ((slice←v6516 == 0)) {
SOURCE(2801, 6)
      return;
      };
SOURCE(2809, 18)
   (* (( (ptr) slice←v6516)+2) ) = 0;
SOURCE(2829, 276)
   if (( (int)priority←v6544 ==  (int) (word) -1) || ( (int)(word) TopPriority←P1020(scene←v6488) <  (int)priority←v6544)) {
SOURCE(2882, 31)
      (void) AppendSlice←P480(scene←v6488, slice←v6516);
      }
   else {
SOURCE(2913, 192)
      if (( (int)priority←v6544 ==  (int)0)) {
SOURCE(2936, 22)
         (* (( (ptr) scene←v6488)+2) ) = 0;
SOURCE(2960, 29)
         (* (( (ptr) scene←v6488)+34) ) = 0;
SOURCE(2991, 44)
         {
            word var←c49448;
            var←c49448 = XR←NewObject(8, (* (( (ptr) gf←c52456)+20) ));
            (*  (ptr) var←c49448 ) = slice←v6516;
            (* (( (ptr) var←c49448)+1) ) = (* (( (ptr) scene←v6488)+4) );
            (* (( (ptr) scene←v6488)+4) ) = var←c49448;
            };
         }
      else {
SOURCE(3044, 61)
         {
            word var←c49480;
            word var←c49512;
            var←c49480 = (word) GetAtPriority←P1440(scene←v6488, priority←v6544);
            {
               word var←c49544;
               word var←c49576;
               var←c49544 = XR←NewObject(8, (* (( (ptr) gf←c52456)+20) ));
               var←c49576 = var←c49544;
               (*  (ptr) var←c49576 ) = slice←v6516;
               var←c49512 = var←c49544;
               };
            (void) PutBehind←P1260(scene←v6488, var←c49480, var←c49512);
            };
         };
      };
   }

static void AddSlices←P300(scene←v6604, slices←v6632, priority←v6660)
   word scene←v6604;
   word slices←v6632;
   word priority←v6660;
   {
   register ptr gf←c52488 =  (ptr) &globalframe;
   /* AddSlices: */ 
SOURCE(3111, 682)
SOURCE(3196, 25)
   if ((slices←v6632 == 0)) {
SOURCE(3215, 6)
      return;
      };
SOURCE(3223, 87)
   {
      register word list←v14024;
      list←v14024 = slices←v6632;
      lab←L100003: ;
      if ((list←v14024 != 0)) {
         }
      else {
         goto lab←L100000;
         };
SOURCE(3287, 23)
      (* (( (ptr) (*  (ptr) list←v14024 ))+2) ) = 0;
      list←v14024 = (* (( (ptr) list←v14024)+1) );
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(3321, 472)
   if (( (int)priority←v6660 ==  (int) (word) -1) || ( (int)(word) TopPriority←P1020(scene←v6604) <  (int)priority←v6660)) {
SOURCE(3376, 94)
      {
         register word list←v14152;
         list←v14152 = slices←v6632;
         lab←L100007: ;
         if ((list←v14152 != 0)) {
            }
         else {
            goto lab←L100004;
            };
SOURCE(3440, 30)
         (void) AppendSlice←P480(scene←v6604, (*  (ptr) list←v14152 ));
         list←v14152 = (* (( (ptr) list←v14152)+1) );
         goto lab←L100007;
         lab←L100004: ;
         };
      }
   else {
SOURCE(3488, 305)
      if (( (int)priority←v6660 ==  (int)0)) {
SOURCE(3511, 22)
         (* (( (ptr) scene←v6604)+2) ) = 0;
SOURCE(3535, 29)
         (* (( (ptr) scene←v6604)+34) ) = 0;
SOURCE(3566, 66)
         {
            word pd36;
            pd36 = (* (( (ptr) (* (( (ptr) gf←c52488)+146)/* var←c49608 */  ))+22) );
            (* (( (ptr) scene←v6604)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd36 ))))(slices←v6632, (* (( (ptr) scene←v6604)+4) ), pd36)
            ;
            };
         }
      else {
SOURCE(3666, 129)
         {
            word copiedSlices←v14280;
SOURCE(3668, 14)
            {
               word pd37;
               pd37 = (* (( (ptr) (* (( (ptr) gf←c52488)+146)/* var←c49608 */  ))+25) );
               copiedSlices←v14280 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(slices←v6632, pd37);
               };
SOURCE(3731, 62)
            {
               word var←c49640;
               var←c49640 = (word) GetAtPriority←P1440(scene←v6604, priority←v6660);
               (void) PutBehind←P1260(scene←v6604, var←c49640, copiedSlices←v14280);
               };
            };
         };
      };
   }

static word AddHole←P360(outline←v6804, hole←v6832, scene←v6860)
   word outline←v6804;
   word hole←v6832;
   word scene←v6860;
   {
   register ptr gf←c52520 =  (ptr) &globalframe;
   word holier←v6904;
   word holeOutline←v14408;
   word priority←v14436;
   /* AddHole: */ 
SOURCE(3802, 409)
SOURCE(3802, 409)
   holier←v6904 = 0;
SOURCE(3895, 45)
   {
      word pd38;
      pd38 = (* (( (ptr) (* (( (ptr) gf←c52520)+147)/* var←c49672 */  ))+64) );
      holeOutline←v14408 = (word) ( *( (fPt) ((*  (ptr) pd38 ))))(hole←v6832, pd38);
      };
SOURCE(3942, 57)
   priority←v14436 = (word) GetPriority←P960(scene←v6860, outline←v6804);
SOURCE(4001, 30)
   if ((holeOutline←v14408 == outline←v6804)) {
SOURCE(4031, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(4038, 42)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c52520)+148)/* var←c49704 */  ))+6) );
      holier←v6904 = (word) ( *( (fPt) ((*  (ptr) pd39 ))))(outline←v6804, hole←v6832, pd39);
      };
SOURCE(4082, 65)
   (void) DeleteSlice←P1620(scene←v6860,  ( (holeOutline←v14408 == 0) ? hole←v6832 : holeOutline←v14408 ) );
SOURCE(4149, 27)
   (void) DeleteSlice←P1620(scene←v6860, outline←v6804);
SOURCE(4178, 33)
   (void) AddSlice←P240(scene←v6860, holier←v6904, priority←v14436);
SOURCE(3802, 409)
   return(holier←v6904);
   }

static void AppendHoles←P420(outline←v6964, holes←v6992)
   word outline←v6964;
   word holes←v6992;
   {
   register ptr gf←c52552 =  (ptr) &globalframe;
   word outlineData←v14480;
   /* AppendHoles: */ 
SOURCE(4217, 446)
SOURCE(4285, 47)
   outlineData←v14480 = XR←Narrow((* (( (ptr) outline←v6964)+1) ), (* (( (ptr) gf←c52552)+21) ));
SOURCE(4334, 289)
   {
      register word holeList←v14524;
      holeList←v14524 = holes←v6992;
      lab←L100011: ;
      if ((holeList←v14524 != 0)) {
         }
      else {
         goto lab←L100008;
         };
SOURCE(4407, 92)
      {
         word var←c49736;
         {
            word var←c49768;
            word var←c49800;
            var←c49768 = XR←NewObject(8, (* (( (ptr) gf←c52552)+20) ));
            var←c49800 = var←c49768;
            (*  (ptr) var←c49800 ) = (*  (ptr) holeList←v14524 );
            var←c49736 = var←c49768;
            };
         {
            word pd40;
            pd40 = (* (( (ptr) (* (( (ptr) gf←c52552)+146)/* var←c49608 */  ))+22) );
            (* (( (ptr) outlineData←v14480)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd40 ))))((* (( (ptr) outlineData←v14480)+4) ), var←c49736, pd40)
            ;
            };
         };
SOURCE(4501, 31)
      (* (( (ptr) (*  (ptr) holeList←v14524 ))+2) ) = outline←v6964;
SOURCE(4534, 89)
      {
         word pd41;
         pd41 = (* (( (ptr) (* (( (ptr) gf←c52552)+149)/* var←c49832 */  ))+6) );
         if (((word) ( *( (fPt) ((*  (ptr) pd41 ))))((*  (ptr) (holeList←v14524) ), pd41) == (* (( (ptr) gf←c52552)+25) ))) {
SOURCE(4583, 40)
            {
               word pd42;
               pd42 = (* (( (ptr) (* (( (ptr) gf←c52552)+150)/* var←c49864 */  ))+15) );
               (void) ( *( (fPt) ((*  (ptr) pd42 ))))((*  (ptr) holeList←v14524 ), 1, pd42);
               };
            };
         };
      holeList←v14524 = (* (( (ptr) holeList←v14524)+1) );
      goto lab←L100011;
      lab←L100008: ;
      };
SOURCE(4634, 29)
   {
      word pd43;
      pd43 = (* (( (ptr) (* (( (ptr) gf←c52552)+151)/* var←c49896 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd43 ))))(outline←v6964, pd43);
      };
   }

static void AppendSlice←P480(scene←v7136, slice←v7164)
   word scene←v7136;
   word slice←v7164;
   {
   register ptr gf←c52584 =  (ptr) &globalframe;
   /* AppendSlice: */ 
SOURCE(4669, 209)
SOURCE(4720, 29)
   (* (( (ptr) scene←v7136)+34) ) = 0;
SOURCE(4751, 43)
   if ((0 == (* (( (ptr) scene←v7136)+2) ))) {
SOURCE(4778, 16)
      (void) UpdatePtr←P540(scene←v7136);
      };
SOURCE(4796, 82)
   {
      W2 var←c49928;
      {
         word pd44;
         pd44 = (* (( (ptr) (* (( (ptr) gf←c52584)+146)/* var←c49608 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd44 ))))((word) &var←c49928, slice←v7164, (* (( (ptr) scene←v7136)+4) ), (* (( (ptr) scene←v7136)+3)
             ), pd44);
         };
      (* (( (ptr) scene←v7136)+3) ) = var←c49928.f1;
      (* (( (ptr) scene←v7136)+4) ) = var←c49928.f0;
      };
   }

static void UpdatePtr←P540(scene←v7224)
   word scene←v7224;
   {
   /* UpdatePtr: */ 
SOURCE(4884, 201)
SOURCE(4919, 134)
   if (((* (( (ptr) scene←v7224)+4) ) == 0)) {
SOURCE(4946, 21)
      (* (( (ptr) scene←v7224)+3) ) = 0;
      }
   else {
SOURCE(4967, 86)
      {
         register word list←v14652;
         list←v14652 = (* (( (ptr) scene←v7224)+4) );
         lab←L100015: ;
         if ((list←v14652 != 0)) {
            }
         else {
            goto lab←L100012;
            };
SOURCE(5037, 16)
         (* (( (ptr) scene←v7224)+3) ) = list←v14652;
         list←v14652 = (* (( (ptr) list←v14652)+1) );
         goto lab←L100015;
         lab←L100012: ;
         };
      };
SOURCE(5064, 21)
   (* (( (ptr) scene←v7224)+2) ) = 1;
   }

static void SetBackgroundColor←P600(scene←v7284, color←v7312)
   word scene←v7284;
   word color←v7312;
   {
   /* SetBackgroundColor: */ 
SOURCE(5091, 94)
SOURCE(5156, 29)
   (* (( (ptr) scene←v7284)+37) ) = color←v7312;
   }

static word GetBackgroundColor←P660(scene←v7372)
   word scene←v7372;
   {
   word color←v7416;
   /* GetBackgroundColor: */ 
SOURCE(5190, 103)
SOURCE(5190, 103)
   color←v7416 = 0;
SOURCE(5264, 29)
   color←v7416 = (* (( (ptr) scene←v7372)+37) );
SOURCE(5190, 103)
   return(color←v7416);
   }

static void SetLastEditedTime←P720(scene←v7476, time←v7504)
   word scene←v7476;
   W2 time←v7504;
   {
   /* SetLastEditedTime: */ 
SOURCE(5298, 104)
SOURCE(5377, 25)
   (*  (W2Pt) scene←v7476 ) = time←v7504;
   }

static void GetLastEditedTime←P780(formal←c0132, scene←v7564)
   word formal←c0132;
   word scene←v7564;
   {
   W2 time←v7608;
   /* GetLastEditedTime: */ 
SOURCE(5407, 113)
SOURCE(5495, 25)
   time←v7608 = (*  (W2Pt) scene←v7564 );
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0132 ) = time←v7608;
   return;
   }

static word CopySelectedParts←P840(formal←c0574, toScene←v7696)
   word formal←c0574;
   word toScene←v7696;
   {
   W9 var←c52616;
   /* declaration of fromScene←v7668 skipped */ 
   register ptr gf←c52648 =  (ptr) &globalframe;
   /* declaration of newSlices←v7740 skipped */ 
   /* declaration of var←c49960 skipped */ 
   /* declaration of ptr←v14808 skipped */ 
   (* (( (ptr) &var←c52616)+4)/* fromScene←v7668 */  ) = formal←c0574;
   /* CopySelectedParts: */ 
SOURCE(5526, 894)
   {
      word tmpAddr45;
      tmpAddr45 = (word) (( (ptr) &var←c52616)+6)/* var←c49960 */ ;
      (*  (ptr) tmpAddr45 ) = ( ((word)  (fPt) MakeNewSlices←P3660) );
      (* (( (ptr) tmpAddr45) + 1) ) = 1;
      };
SOURCE(5526, 894)
   (* (( (ptr) &var←c52616)+5)/* newSlices←v7740 */  ) = 0;
SOURCE(5996, 5)
   (* (( (ptr) &var←c52616)+8)/* ptr←v14808 */  ) = 0;
SOURCE(6022, 72)
   {
      word var←c50024;
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c52648)+152)/* var←c49992 */  ))+32) );
      var←c50024 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) &var←c52616)+4)/* fromScene←v7668 */  ), 0, (word) (( (bPt) &var←c52616)+24)
         /* var←c49960 */ , 0, 0, pd46);
      };
SOURCE(6096, 56)
   {
      word pd47;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c52648)+146)/* var←c49608 */  ))+27) );
      (* (( (ptr) &var←c52616)+5)/* newSlices←v7740 */  ) = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((* ((( (ptr) &var←c52616)+5)
         /* newSlices←v7740 */ ) ), pd47);
      };
SOURCE(6191, 37)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c52648)+153)/* var←c50056 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd48 ))))(toScene←v7696, 0, pd48);
      };
SOURCE(6230, 190)
   {
      register word sliceList←v15040;
      sliceList←v15040 = (* (( (ptr) &var←c52616)+5)/* newSlices←v7740 */  );
      lab←L100020: ;
      if ((sliceList←v15040 != 0)) {
         }
      else {
         goto lab←L100017;
         };
SOURCE(6312, 46)
      {
         word pd49;
         pd49 = (* (( (ptr) (* (( (ptr) gf←c52648)+152)/* var←c49992 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd49 ))))(toScene←v7696, (*  (ptr) sliceList←v15040 ),  (word) -1, pd49);
         };
SOURCE(6360, 60)
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c52648)+153)/* var←c50056 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd50 ))))((*  (ptr) sliceList←v15040 ), toScene←v7696, 0, pd50);
         };
      sliceList←v15040 = (* (( (ptr) sliceList←v15040)+1) );
      goto lab←L100020;
      lab←L100017: ;
      };
SOURCE(5526, 894)
   return((* (( (ptr) &var←c52616)+5)/* newSlices←v7740 */  ));
   }

static word MakeNewSlices←P3660(sliceD←v14884, formal←c52712)
   word sliceD←v14884;
   word formal←c52712;
   {
   register ptr gf←c52680 =  (ptr) &globalframe;
   word done←v14928;
   word copies←v15168;
   formal←c52712 = (formal←c52712 - 24);
   /* MakeNewSlices: */ 
SOURCE(5637, 345)
SOURCE(5637, 345)
   done←v14928 = 0;
SOURCE(5716, 8)
   {
      word pd51;
      pd51 = (* (( (ptr) (* (( (ptr) gf←c52680)+149)/* var←c49832 */  ))+10) );
      copies←v15168 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))((*  (ptr) sliceD←v14884 ), (* (( (ptr) sliceD←v14884)+1) ), pd51);
      };
SOURCE(5785, 197)
   {
      register word list←v15296;
      list←v15296 = copies←v15168;
      lab←L100024: ;
      if ((list←v15296 != 0)) {
         }
      else {
         goto lab←L100021;
         };
SOURCE(5849, 66)
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c52680)+152)/* var←c49992 */  ))+21) );
         (* (( (ptr) (*  (ptr) list←v15296 ))+19) ) = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) formal←c52712)+4) ), (*  (ptr) sliceD←v14884 ), pd52)
         ;
         };
SOURCE(5917, 65)
      {
         W2 var←c50088;
         {
            word pd53;
            pd53 = (* (( (ptr) (* (( (ptr) gf←c52680)+146)/* var←c49608 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd53 ))))((word) &var←c50088, (*  (ptr) list←v15296 ), (* (( (ptr) formal←c52712)+5) ), (* (
                  ( (ptr) formal←c52712)+8) ), pd53);
            };
         (* (( (ptr) formal←c52712)+8) ) = var←c50088.f1;
         (* (( (ptr) formal←c52712)+5) ) = var←c50088.f0;
         };
      list←v15296 = (* (( (ptr) list←v15296)+1) );
      goto lab←L100024;
      lab←L100021: ;
      };
SOURCE(5637, 345)
   return(done←v14928);
   }

static void UpdatePriorities←P900(scene←v7884)
   word scene←v7884;
   {
   W7 var←c52744;
   register ptr gf←c52776 =  (ptr) &globalframe;
   /* declaration of var←c50120 skipped */ 
   /* declaration of index←v15452 skipped */ 
   /* UpdatePriorities: */ 
SOURCE(6435, 244)
   {
      word tmpAddr54;
      tmpAddr54 = (word) (( (ptr) &var←c52744)+4)/* var←c50120 */ ;
      (*  (ptr) tmpAddr54 ) = ( ((word)  (fPt) DoUpdate←P3816) );
      (* (( (ptr) tmpAddr54) + 1) ) = 1;
      };
SOURCE(6586, 14)
   var←c52744.f6/* index←v15452 */  = 0;
SOURCE(6602, 47)
   {
      word var←c50152;
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c52776)+152)/* var←c49992 */  ))+31) );
      var←c50152 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))(scene←v7884, 0, (word) (( (bPt) &var←c52744)+16)/* var←c50120 */ , 0, pd55)
      ;
      };
SOURCE(6651, 28)
   (* (( (ptr) scene←v7884)+34) ) = 1;
   }

static word DoUpdate←P3816(slice←v15528, formal←c52808)
   word slice←v15528;
   word formal←c52808;
   {
   word done←v15572;
   formal←c52808 = (formal←c52808 - 16);
   /* DoUpdate: */ 
SOURCE(6477, 104)
SOURCE(6477, 104)
   done←v15572 = 0;
SOURCE(6540, 22)
   (* (( (ptr) slice←v15528)+19) ) = (* (( (ptr) formal←c52808)+6) );
SOURCE(6564, 17)
   (* (( (ptr) formal←c52808)+6) ) = ((* (( (ptr) formal←c52808)+6) ) + 1);
SOURCE(6477, 104)
   return(done←v15572);
   }

static word GetPriority←P960(scene←v7944, slice←v7972)
   word scene←v7944;
   word slice←v7972;
   {
   word priority←v8016;
   /* GetPriority: */ 
SOURCE(6685, 166)
SOURCE(6767, 57)
   if ((0 == (* (( (ptr) scene←v7944)+34) ))) {
SOURCE(6801, 23)
      (void) UpdatePriorities←P900(scene←v7944);
      };
SOURCE(6826, 25)
   priority←v8016 = (* (( (ptr) slice←v7972)+19) );
SOURCE(6685, 166)
   return(priority←v8016);
   }

static word TopPriority←P1020(scene←v8076)
   word scene←v8076;
   {
   word priority←v8120;
   /* TopPriority: */ 
SOURCE(6857, 233)
SOURCE(6925, 57)
   if ((0 == (* (( (ptr) scene←v8076)+34) ))) {
SOURCE(6959, 23)
      (void) UpdatePriorities←P900(scene←v8076);
      };
SOURCE(6984, 43)
   if ((0 == (* (( (ptr) scene←v8076)+2) ))) {
SOURCE(7011, 16)
      (void) UpdatePtr←P540(scene←v8076);
      };
SOURCE(7029, 61)
   if (((* (( (ptr) scene←v8076)+3) ) == 0)) {
      return(0);
      }
   else {
      return((* (( (ptr) (*  (ptr) (* (( (ptr) scene←v8076)+3) ) ))+19) ));
      };
   }

static void UpOne←P1080(scene←v8180, slice←v8208)
   word scene←v8180;
   word slice←v8208;
   {
   W6 var←c52840;
   /* declaration of var←c50184 skipped */ 
   /* UpOne: */ 
SOURCE(7096, 616)
   {
      word tmpAddr56;
      tmpAddr56 = (word) (( (ptr) &var←c52840)+4)/* var←c50184 */ ;
      (*  (ptr) tmpAddr56 ) = ( ((word)  (fPt) ExchangeWithNextEntity←P3876) );
      (* (( (ptr) tmpAddr56) + 1) ) = 1;
      };
SOURCE(7628, 46)
   (* (( (ptr) scene←v8180)+34) ) = 0;
   (* (( (ptr) scene←v8180)+2) ) = 0;
SOURCE(7676, 36)
   (void) ExchangeWithNextEntity←P3876(scene←v8180, slice←v8208, (word) (( (bPt) &var←c52840)+16)/* var←c50184 */ );
   }

static void ExchangeWithNextEntity←P3876(scene←v15676, slice←v15704, formal←c52872)
   word scene←v15676;
   word slice←v15704;
   word formal←c52872;
   {
   word previous←v15732 = 0;
   word next←v15760 = 0;
   formal←c52872 = (formal←c52872 - 16);
   /* ExchangeWithNextEntity: */ 
SOURCE(7148, 466)
SOURCE(7247, 367)
   {
      register word list←v15888;
      list←v15888 = (* (( (ptr) scene←v15676)+4) );
      lab←L100028: ;
      if ((list←v15888 != 0)) {
         }
      else {
         goto lab←L100025;
         };
SOURCE(7319, 295)
      if (((*  (ptr) list←v15888 ) == slice←v15704)) {
SOURCE(7393, 16)
         next←v15760 = (* (( (ptr) list←v15888)+1) );
SOURCE(7411, 23)
         if ((next←v15760 == 0)) {
SOURCE(7428, 6)
            return;
            };
SOURCE(7480, 21)
         (* (( (ptr) list←v15888)+1) ) = (* (( (ptr) next←v15760)+1) );
SOURCE(7504, 16)
         (* (( (ptr) next←v15760)+1) ) = list←v15888;
SOURCE(7522, 68)
         if ((previous←v15732 != 0)) {
SOURCE(7543, 26)
            (* (( (ptr) previous←v15732)+1) ) = next←v15760;
            }
         else {
SOURCE(7569, 21)
            (* (( (ptr) scene←v15676)+4) ) = next←v15760;
            };
         }
      else {
SOURCE(7599, 15)
         previous←v15732 = list←v15888;
         };
      list←v15888 = (* (( (ptr) list←v15888)+1) );
      goto lab←L100028;
      lab←L100025: ;
      };
   }

static void PutInFront←P1140(scene←v8268, slice←v8296, slices←v8324)
   word scene←v8268;
   word slice←v8296;
   word slices←v8324;
   {
   register ptr gf←c52904 =  (ptr) &globalframe;
   /* PutInFront: */ 
SOURCE(7718, 628)
SOURCE(7798, 548)
   if ( ( (slice←v8296 != 0) ? (slices←v8324 != 0) : 0 ) ) {
SOURCE(7831, 520)
      {
         word beforeEnt←v16016 = 0;
         word ent←v16044 = 0;
         word afterEnt←v16072 = 0;
         word slicesRest←v16100 = 0;
         word found←v16128 = 0;
SOURCE(7907, 90)
         {
            W4 var←c50216;
            {
               word pd57;
               pd57 = (* (( (ptr) (* (( (ptr) gf←c52904)+146)/* var←c49608 */  ))+24) );
               (void) ( *( (fPt) ((*  (ptr) pd57 ))))((word) &var←c50216, slice←v8296, (* (( (ptr) scene←v8268)+4) ), pd57);
               };
            found←v16128 = var←c50216.f3;
            afterEnt←v16072 = var←c50216.f2;
            ent←v16044 = var←c50216.f1;
            beforeEnt←v16016 = var←c50216.f0;
            };
SOURCE(7999, 347)
         if ((0 != found←v16128)) {
SOURCE(8015, 24)
            if (((*  (ptr) ent←v16044 ) != slice←v8296)) {
SOURCE(8039, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(8064, 22)
            (* (( (ptr) scene←v8268)+2) ) = 0;
SOURCE(8088, 29)
            (* (( (ptr) scene←v8268)+34) ) = 0;
SOURCE(8119, 17)
            (* (( (ptr) ent←v16044)+1) ) = slices←v8324;
SOURCE(8226, 83)
            {
               register word sList←v16256;
               sList←v16256 = slices←v8324;
               lab←L100032: ;
               if ((sList←v16256 != 0)) {
                  }
               else {
                  goto lab←L100029;
                  };
SOURCE(8291, 18)
               slicesRest←v16100 = sList←v16256;
               sList←v16256 = (* (( (ptr) sList←v16256)+1) );
               goto lab←L100032;
               lab←L100029: ;
               };
SOURCE(8320, 26)
            (* (( (ptr) slicesRest←v16100)+1) ) = afterEnt←v16072;
            };
         };
      };
   }

static void DownOne←P1200(scene←v8468, slice←v8496)
   word scene←v8468;
   word slice←v8496;
   {
   W6 var←c52936;
   /* declaration of var←c50248 skipped */ 
   /* DownOne: */ 
SOURCE(8358, 958)
   {
      word tmpAddr58;
      tmpAddr58 = (word) (( (ptr) &var←c52936)+4)/* var←c50248 */ ;
      (*  (ptr) tmpAddr58 ) = ( ((word)  (fPt) ExchangeWithPreviousEntity←P4080) );
      (* (( (ptr) tmpAddr58) + 1) ) = 1;
      };
SOURCE(9228, 46)
   (* (( (ptr) scene←v8468)+34) ) = 0;
   (* (( (ptr) scene←v8468)+2) ) = 0;
SOURCE(9276, 40)
   (void) ExchangeWithPreviousEntity←P4080(scene←v8468, slice←v8496, (word) (( (bPt) &var←c52936)+16)/* var←c50248 */ );
   }

static void ExchangeWithPreviousEntity←P4080(scene←v16460, slice←v16488, formal←c52968)
   word scene←v16460;
   word slice←v16488;
   word formal←c52968;
   {
   word preprev←v16516 = 0;
   word previous←v16544 = 0;
   formal←c52968 = (formal←c52968 - 16);
   /* ExchangeWithPreviousEntity: */ 
SOURCE(8412, 799)
SOURCE(8518, 693)
   {
      register word list←v16672;
      list←v16672 = (* (( (ptr) scene←v16460)+4) );
      lab←L100036: ;
      if ((list←v16672 != 0)) {
         }
      else {
         goto lab←L100033;
         };
SOURCE(8588, 623)
      if (((*  (ptr) list←v16672 ) == slice←v16488)) {
         if ( ( (preprev←v16516 == 0) ? (previous←v16544 == 0) : 0 ) ) {
SOURCE(8715, 6)
            return;
            }
         else {
            if ( ( (preprev←v16516 == 0) ? (previous←v16544 != 0) : 0 ) ) {
SOURCE(8822, 25)
               (* (( (ptr) previous←v16544)+1) ) = (* (( (ptr) list←v16672)+1) );
SOURCE(8850, 20)
               (* (( (ptr) list←v16672)+1) ) = previous←v16544;
SOURCE(8872, 21)
               (* (( (ptr) scene←v16460)+4) ) = list←v16672;
SOURCE(8895, 6)
               return;
               }
            else {
               if ( ( (preprev←v16516 != 0) ? (previous←v16544 == 0) : 0 ) ) {
SOURCE(8938, 5)
                  (void) XR←RaiseUnnamedError();
                  }
               else {
                  if ( ( (preprev←v16516 != 0) ? (previous←v16544 != 0) : 0 ) ) {
SOURCE(9041, 25)
                     (* (( (ptr) previous←v16544)+1) ) = (* (( (ptr) list←v16672)+1) );
SOURCE(9069, 20)
                     (* (( (ptr) list←v16672)+1) ) = previous←v16544;
SOURCE(9092, 19)
                     (* (( (ptr) preprev←v16516)+1) ) = list←v16672;
SOURCE(9113, 6)
                     return;
                     }
                  else {
SOURCE(9135, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            };
         }
      else {
SOURCE(9175, 18)
         preprev←v16516 = previous←v16544;
SOURCE(9196, 15)
         previous←v16544 = list←v16672;
         };
      list←v16672 = (* (( (ptr) list←v16672)+1) );
      goto lab←L100036;
      lab←L100033: ;
      };
   }

static void PutBehind←P1260(scene←v8556, slice←v8584, slices←v8612)
   word scene←v8556;
   word slice←v8584;
   word slices←v8612;
   {
   register ptr gf←c53000 =  (ptr) &globalframe;
   /* PutBehind: */ 
SOURCE(9322, 685)
SOURCE(9401, 606)
   if ( ( (slice←v8584 != 0) ? (slices←v8612 != 0) : 0 ) ) {
SOURCE(9434, 634)
      {
         word beforeEnt←v16800 = 0;
         word ent←v16828 = 0;
         word afterEnt←v16856 = 0;
         word slicesRest←v16884 = 0;
         word found←v16912 = 0;
SOURCE(9510, 90)
         {
            W4 var←c50280;
            {
               word pd59;
               pd59 = (* (( (ptr) (* (( (ptr) gf←c53000)+146)/* var←c49608 */  ))+24) );
               (void) ( *( (fPt) ((*  (ptr) pd59 ))))((word) &var←c50280, slice←v8584, (* (( (ptr) scene←v8556)+4) ), pd59);
               };
            found←v16912 = var←c50280.f3;
            afterEnt←v16856 = var←c50280.f2;
            ent←v16828 = var←c50280.f1;
            beforeEnt←v16800 = var←c50280.f0;
            };
SOURCE(9602, 405)
         if ((0 != found←v16912)) {
SOURCE(9618, 24)
            if (((*  (ptr) ent←v16828 ) != slice←v8584)) {
SOURCE(9642, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(9667, 22)
            (* (( (ptr) scene←v8556)+2) ) = 0;
SOURCE(9691, 29)
            (* (( (ptr) scene←v8556)+34) ) = 0;
SOURCE(9722, 74)
            if ((beforeEnt←v16800 != 0)) {
SOURCE(9744, 29)
               (* (( (ptr) beforeEnt←v16800)+1) ) = slices←v8612;
               }
            else {
SOURCE(9773, 23)
               (* (( (ptr) scene←v8556)+4) ) = slices←v8612;
               };
SOURCE(9892, 83)
            {
               register word sList←v17040;
               sList←v17040 = slices←v8612;
               lab←L100040: ;
               if ((sList←v17040 != 0)) {
                  }
               else {
                  goto lab←L100037;
                  };
SOURCE(9957, 18)
               slicesRest←v16884 = sList←v17040;
               sList←v17040 = (* (( (ptr) sList←v17040)+1) );
               goto lab←L100040;
               lab←L100037: ;
               };
SOURCE(9986, 21)
            (* (( (ptr) slicesRest←v16884)+1) ) = ent←v16828;
            };
         };
      };
   }

static void ReplaceSlice←P1320(scene←v8756, slice←v8784, slices←v8812)
   word scene←v8756;
   word slice←v8784;
   word slices←v8812;
   {
   register ptr gf←c53032 =  (ptr) &globalframe;
   word beforeEnt←v17168 = 0;
   word ent←v17196 = 0;
   word afterEnt←v17224 = 0;
   word slicesRest←v17252 = 0;
   word found←v17280 = 0;
   /* ReplaceSlice: */ 
SOURCE(10075, 693)
SOURCE(10231, 537)
   if ( ( (slice←v8784 != 0) ? (slices←v8812 != 0) : 0 ) ) {
SOURCE(10266, 90)
      {
         W4 var←c50312;
         {
            word pd60;
            pd60 = (* (( (ptr) (* (( (ptr) gf←c53032)+146)/* var←c49608 */  ))+24) );
            (void) ( *( (fPt) ((*  (ptr) pd60 ))))((word) &var←c50312, slice←v8784, (* (( (ptr) scene←v8756)+4) ), pd60);
            };
         found←v17280 = var←c50312.f3;
         afterEnt←v17224 = var←c50312.f2;
         ent←v17196 = var←c50312.f1;
         beforeEnt←v17168 = var←c50312.f0;
         };
SOURCE(10358, 410)
      if ((0 != found←v17280)) {
SOURCE(10374, 24)
         if (((*  (ptr) ent←v17196 ) != slice←v8784)) {
SOURCE(10398, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(10423, 22)
         (* (( (ptr) scene←v8756)+2) ) = 0;
SOURCE(10447, 29)
         (* (( (ptr) scene←v8756)+34) ) = 0;
SOURCE(10478, 74)
         if ((beforeEnt←v17168 != 0)) {
SOURCE(10500, 29)
            (* (( (ptr) beforeEnt←v17168)+1) ) = slices←v8812;
            }
         else {
SOURCE(10529, 23)
            (* (( (ptr) scene←v8756)+4) ) = slices←v8812;
            };
SOURCE(10648, 83)
         {
            register word sList←v17408;
            sList←v17408 = slices←v8812;
            lab←L100044: ;
            if ((sList←v17408 != 0)) {
               }
            else {
               goto lab←L100041;
               };
SOURCE(10713, 18)
            slicesRest←v17252 = sList←v17408;
            sList←v17408 = (* (( (ptr) sList←v17408)+1) );
            goto lab←L100044;
            lab←L100041: ;
            };
SOURCE(10742, 26)
         (* (( (ptr) slicesRest←v17252)+1) ) = afterEnt←v17224;
         };
      };
   }

static void PutAtPriority←P1380(scene←v8956, slice←v8984, priority←v9012)
   word scene←v8956;
   word slice←v8984;
   word priority←v9012;
   {
   /* PutAtPriority: */ 
SOURCE(10780, 139)
SOURCE(10860, 25)
   (void) RemoveSlice←P1560(scene←v8956, slice←v8984);
SOURCE(10887, 32)
   (void) AddSlice←P240(scene←v8956, slice←v8984, priority←v9012);
   }

static word GetAtPriority←P1440(scene←v9072, priority←v9100)
   word scene←v9072;
   word priority←v9100;
   {
   word slice←v9144;
   /* GetAtPriority: */ 
SOURCE(10925, 630)
SOURCE(10925, 630)
   slice←v9144 = 0;
SOURCE(11009, 57)
   if ((0 == (* (( (ptr) scene←v9072)+34) ))) {
SOURCE(11043, 23)
      (void) UpdatePriorities←P900(scene←v9072);
      };
SOURCE(11068, 487)
   if (( (int)priority←v9100 ==  (int) (word) -1)) {
SOURCE(11119, 43)
      if ((0 == (* (( (ptr) scene←v9072)+2) ))) {
SOURCE(11146, 16)
         (void) UpdatePtr←P540(scene←v9072);
         };
SOURCE(11164, 23)
      return((*  (ptr) (* (( (ptr) scene←v9072)+3) ) ));
      }
   else {
SOURCE(11196, 359)
      if (( (int)priority←v9100 ==  (int)0)) {
SOURCE(11217, 61)
         return((*  (ptr) (* (( (ptr) scene←v9072)+4) ) ));
         }
      else {
SOURCE(11278, 279)
         {
            word count←v17536 = 1;
SOURCE(11323, 153)
            {
               register word sliceList←v17580;
               sliceList←v17580 = (* (( (ptr) (* (( (ptr) scene←v9072)+4) ))+1) );
               lab←L100048: ;
               if ((sliceList←v17580 != 0)) {
                  }
               else {
                  goto lab←L100045;
                  };
SOURCE(11413, 46)
               if (( (int)count←v17536 ==  (int)priority←v9100)) {
SOURCE(11436, 23)
                  return((*  (ptr) sliceList←v17580 ));
                  };
SOURCE(11461, 15)
               count←v17536 = (count←v17536 + 1);
               sliceList←v17580 = (* (( (ptr) sliceList←v17580)+1) );
               goto lab←L100048;
               lab←L100045: ;
               };
SOURCE(11487, 43)
            if ((0 == (* (( (ptr) scene←v9072)+2) ))) {
SOURCE(11514, 16)
               (void) UpdatePtr←P540(scene←v9072);
               };
SOURCE(11532, 23)
            return((*  (ptr) (* (( (ptr) scene←v9072)+3) ) ));
            };
         };
      };
   }

static word DeleteAtPriority←P1500(scene←v9204, priority←v9232)
   word scene←v9204;
   word priority←v9232;
   {
   word deleted←v9276;
   /* DeleteAtPriority: */ 
SOURCE(11564, 158)
SOURCE(11564, 158)
   deleted←v9276 = 0;
SOURCE(11653, 40)
   deleted←v9276 = (word) GetAtPriority←P1440(scene←v9204, priority←v9232);
SOURCE(11695, 27)
   (void) DeleteSlice←P1620(scene←v9204, deleted←v9276);
SOURCE(11564, 158)
   return(deleted←v9276);
   }

static void RemoveSlice←P1560(scene←v9336, slice←v9364)
   word scene←v9336;
   word slice←v9364;
   {
   register ptr gf←c53064 =  (ptr) &globalframe;
   /* RemoveSlice: */ 
SOURCE(11728, 183)
SOURCE(11787, 22)
   (* (( (ptr) scene←v9336)+2) ) = 0;
SOURCE(11811, 29)
   (* (( (ptr) scene←v9336)+34) ) = 0;
SOURCE(11842, 69)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c53064)+146)/* var←c49608 */  ))+23) );
      (* (( (ptr) scene←v9336)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd61 ))))(slice←v9364, (* (( (ptr) scene←v9336)+4) ), pd61);
      };
   }

static void DeleteSlice←P1620(scene←v9424, slice←v9452)
   word scene←v9424;
   word slice←v9452;
   {
   register ptr gf←c53096 =  (ptr) &globalframe;
   /* DeleteSlice: */ 
SOURCE(11917, 232)
SOURCE(11976, 22)
   (* (( (ptr) scene←v9424)+2) ) = 0;
SOURCE(12000, 29)
   (* (( (ptr) scene←v9424)+34) ) = 0;
SOURCE(12031, 47)
   {
      word pd62;
      pd62 = (* (( (ptr) (* (( (ptr) gf←c53096)+153)/* var←c50056 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd62 ))))(slice←v9452, scene←v9424, pd62);
      };
SOURCE(12080, 69)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c53096)+146)/* var←c49608 */  ))+23) );
      (* (( (ptr) scene←v9424)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd63 ))))(slice←v9452, (* (( (ptr) scene←v9424)+4) ), pd63);
      };
   }

static void DeleteSequence←P1680(formal←c0232, seq←v9512, scene←v9540)
   word formal←c0232;
   word seq←v9512;
   word scene←v9540;
   {
   register ptr gf←c53128 =  (ptr) &globalframe;
   word oldOutline←v9584;
   word newOutlines←v9612;
   word priority←v17708;
   word traj←v17736;
   word smallerOutline←v17764 = 0;
   /* DeleteSequence: */ 
SOURCE(12155, 690)
SOURCE(12155, 690)
   oldOutline←v9584 = 0;
SOURCE(12155, 690)
   newOutlines←v9612 = 0;
SOURCE(12295, 23)
   traj←v17736 = (*  (ptr) seq←v9512 );
SOURCE(12343, 37)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c53128)+147)/* var←c49672 */  ))+64) );
      oldOutline←v9584 = (word) ( *( (fPt) ((*  (ptr) pd64 ))))(traj←v17736, pd64);
      };
SOURCE(12382, 55)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c53128)+148)/* var←c49704 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd65 ))))(oldOutline←v9584, pd65);
      };
SOURCE(12439, 49)
   {
      word pd66;
      pd66 = (* (( (ptr) (* (( (ptr) gf←c53128)+152)/* var←c49992 */  ))+21) );
      priority←v17708 = (word) ( *( (fPt) ((*  (ptr) pd66 ))))(scene←v9540, oldOutline←v9584, pd66);
      };
SOURCE(12490, 58)
   {
      W2 var←c50344;
      {
         word pd67;
         pd67 = (* (( (ptr) (* (( (ptr) gf←c53128)+150)/* var←c49864 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd67 ))))((word) &var←c50344, seq←v9512, pd67);
         };
      newOutlines←v9612 = var←c50344.f1;
      smallerOutline←v17764 = var←c50344.f0;
      };
SOURCE(12550, 76)
   if ((smallerOutline←v17764 != 0)) {
SOURCE(12579, 47)
      {
         word var←c50376;
         var←c50376 = XR←NewObject(8, (* (( (ptr) gf←c53128)+20) ));
         (*  (ptr) var←c50376 ) = smallerOutline←v17764;
         (* (( (ptr) var←c50376)+1) ) = newOutlines←v9612;
         newOutlines←v9612 = var←c50376;
         };
      };
SOURCE(12628, 63)
   if ((newOutlines←v9612 != 0)) {
SOURCE(12652, 39)
      (void) AddSlices←P300(scene←v9540, newOutlines←v9612, priority←v17708);
      };
SOURCE(12693, 30)
   (void) DeleteSlice←P1620(scene←v9540, oldOutline←v9584);
SOURCE(12725, 120)
   {
      register word list←v17808;
      list←v17808 = newOutlines←v9612;
      lab←L100053: ;
      if ((list←v17808 != 0)) {
         }
      else {
         goto lab←L100050;
         };
SOURCE(12794, 51)
      {
         word pd68;
         pd68 = (* (( (ptr) (* (( (ptr) gf←c53128)+153)/* var←c50056 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd68 ))))((*  (ptr) list←v17808 ), scene←v9540, pd68);
         };
      list←v17808 = (* (( (ptr) list←v17808)+1) );
      goto lab←L100053;
      lab←L100050: ;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0232 ) = oldOutline←v9584;
   (* (( (ptr) formal←c0232)+1) ) = newOutlines←v9612;
   return;
   }

static word OutlinesFromOutlineExcept←P1740(outline←v9756, except←v9784)
   word outline←v9756;
   word except←v9784;
   {
   register ptr gf←c53160 =  (ptr) &globalframe;
   word newOutlines←v9828;
   word ptr←v17936 = 0;
   word newSlice←v17964 = 0;
   word newOutline←v17992 = 0;
   word children←v18020;
   /* OutlinesFromOutlineExcept: */ 
SOURCE(12860, 605)
SOURCE(12860, 605)
   newOutlines←v9828 = 0;
SOURCE(13013, 10)
   children←v18020 = (* (( (ptr) XR←Narrow((* (( (ptr) outline←v9756)+1) ), (* (( (ptr) gf←c53160)+21) )))+4) );
SOURCE(13083, 47)
   {
      W2 var←c50408;
      {
         word pd69;
         pd69 = (* (( (ptr) (* (( (ptr) gf←c53160)+146)/* var←c49608 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd69 ))))((word) (&var←c50408), pd69);
         };
      ptr←v17936 = var←c50408.f1;
      newOutlines←v9828 = var←c50408.f0;
      };
SOURCE(13132, 333)
   {
      register word childList←v18232;
      childList←v18232 = children←v18020;
      lab←L100057: ;
      if ((childList←v18232 != 0)) {
         }
      else {
         goto lab←L100054;
         };
SOURCE(13213, 33)
      if (((*  (ptr) childList←v18232 ) == except←v9784)) {
SOURCE(13246, 4)
         goto lab←L100056;
         };
SOURCE(13252, 49)
      {
         word pd70;
         pd70 = (* (( (ptr) (* (( (ptr) gf←c53160)+149)/* var←c49832 */  ))+10) );
         newSlice←v17964 = (*  (ptr) ( *( (fPt) ((*  (ptr) pd70 ))))((*  (ptr) childList←v18232 ), 0, pd70) );
         };
SOURCE(13303, 91)
      {
         W2 var←c0244;
         word var←c50440;
         {
            word pd71;
            pd71 = (* (( (ptr) (* (( (ptr) gf←c53160)+149)/* var←c49832 */  ))+62) );
            (void) ( *( (fPt) ((*  (ptr) pd71 ))))((word) &var←c0244, outline←v9756, 0, pd71);
            };
         var←c50440 = var←c0244.f0;
         {
            word pd72;
            pd72 = (* (( (ptr) (* (( (ptr) gf←c53160)+148)/* var←c49704 */  ))+5) );
            newOutline←v17992 = (word) ( *( (fPt) ((*  (ptr) pd72 ))))(newSlice←v17964, var←c50440, pd72);
            };
         };
SOURCE(13396, 69)
      {
         W2 var←c50472;
         {
            word pd73;
            pd73 = (* (( (ptr) (* (( (ptr) gf←c53160)+146)/* var←c49608 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd73 ))))((word) &var←c50472, newOutline←v17992, newOutlines←v9828, ptr←v17936, pd73);
            };
         ptr←v17936 = var←c50472.f1;
         newOutlines←v9828 = var←c50472.f0;
         };
      lab←L100056: ;
      childList←v18232 = (* (( (ptr) childList←v18232)+1) );
      goto lab←L100057;
      lab←L100054: ;
      };
SOURCE(12860, 605)
   return(newOutlines←v9828);
   }

static void MakeSceneGarbage←P1800(scene←v9972)
   word scene←v9972;
   {
   register ptr gf←c53192 =  (ptr) &globalframe;
   word oldEntities←v18360 = 0;
   word entities←v18388 = 0;
   /* MakeSceneGarbage: */ 
SOURCE(13505, 692)
SOURCE(13615, 24)
   if ((0 != (* (( (ptr) gf←c53192)+8)/* noGarbage←v5128 */  ))) {
SOURCE(13633, 6)
      return;
      };
SOURCE(13641, 31)
   oldEntities←v18360 = (* (( (ptr) scene←v9972)+5) );
SOURCE(13674, 23)
   (* (( (ptr) scene←v9972)+5) ) = 0;
SOURCE(13699, 25)
   entities←v18388 = (* (( (ptr) scene←v9972)+4) );
SOURCE(13726, 20)
   (* (( (ptr) scene←v9972)+4) ) = 0;
SOURCE(13814, 207)
   {
      register word sllist←v18684;
      sllist←v18684 = oldEntities←v18360;
      lab←L100061: ;
      if ((sllist←v18684 != 0)) {
         }
      else {
         goto lab←L100058;
         };
SOURCE(13895, 126)
      {
         register word list←v18896;
         list←v18896 = (*  (ptr) sllist←v18684 );
         lab←L100065: ;
         if ((list←v18896 != 0)) {
            }
         else {
            goto lab←L100062;
            };
SOURCE(13963, 58)
         if (((*  (ptr) (*  (ptr) list←v18896 ) ) != 0)) {
SOURCE(13992, 29)
            {
               word pd74;
               pd74 = (* (( (ptr) (* (( (ptr) gf←c53192)+149)/* var←c49832 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd74 ))))((*  (ptr) (list←v18896) ), pd74);
               };
            };
         list←v18896 = (* (( (ptr) list←v18896)+1) );
         goto lab←L100065;
         lab←L100062: ;
         };
      sllist←v18684 = (* (( (ptr) sllist←v18684)+1) );
      goto lab←L100061;
      lab←L100058: ;
      };
SOURCE(14075, 122)
   {
      register word list←v19024;
      list←v19024 = entities←v18388;
      lab←L100069: ;
      if ((list←v19024 != 0)) {
         }
      else {
         goto lab←L100066;
         };
SOURCE(14139, 58)
      if (((*  (ptr) (*  (ptr) list←v19024 ) ) != 0)) {
SOURCE(14168, 29)
         {
            word pd75;
            pd75 = (* (( (ptr) (* (( (ptr) gf←c53192)+149)/* var←c49832 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd75 ))))((*  (ptr) (list←v19024) ), pd75);
            };
         };
      list←v19024 = (* (( (ptr) list←v19024)+1) );
      goto lab←L100069;
      lab←L100066: ;
      };
   }

static word MergeScenes←P1860(back←v10032, front←v10060)
   word back←v10032;
   word front←v10060;
   {
   register ptr gf←c53224 =  (ptr) &globalframe;
   word combined←v10104;
   /* MergeScenes: */ 
SOURCE(14246, 675)
SOURCE(14246, 675)
   combined←v10104 = 0;
SOURCE(14329, 90)
   {
      word var←c50504;
      var←c50504 = XR←NewObject(152, (* (( (ptr) gf←c53224)+10) ));
      (*  (ptr) var←c50504 ) = 2147483647;
      (* (( (ptr) var←c50504)+36) ) = (* (( (ptr) gf←c53224)+28) );
      (* (( (ptr) var←c50504)+37) ) = (* (( (ptr) back←v10032)+37) );
      combined←v10104 = var←c50504;
      };
SOURCE(14421, 76)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c53224)+146)/* var←c49608 */  ))+22) );
      (* (( (ptr) combined←v10104)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd76 ))))((* (( (ptr) back←v10032)+4) ), (* (( (ptr) front←v10060)+4)
          ), pd76);
      };
SOURCE(14499, 107)
   {
      word pd77;
      pd77 = (* (( (ptr) (* (( (ptr) gf←c53224)+146)/* var←c49608 */  ))+17) );
      (* (( (ptr) combined←v10104)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd77 ))))((* (( (ptr) back←v10032)+6) ), (* (( (ptr) front←v10060)+6)
          ), pd77);
      };
SOURCE(14608, 98)
   {
      word pd78;
      pd78 = (* (( (ptr) (* (( (ptr) gf←c53224)+146)/* var←c49608 */  ))+17) );
      (* (( (ptr) combined←v10104)+10) ) = (word) ( *( (fPt) ((*  (ptr) pd78 ))))((* (( (ptr) back←v10032)+10) ), (* (( (ptr) front←v10060)+10)
          ), pd78);
      };
SOURCE(14708, 107)
   {
      word pd79;
      pd79 = (* (( (ptr) (* (( (ptr) gf←c53224)+146)/* var←c49608 */  ))+17) );
      (* (( (ptr) combined←v10104)+13) ) = (word) ( *( (fPt) ((*  (ptr) pd79 ))))((* (( (ptr) back←v10032)+13) ), (* (( (ptr) front←v10060)+13)
          ), pd79);
      };
SOURCE(14817, 104)
   {
      word pd80;
      pd80 = (* (( (ptr) (* (( (ptr) gf←c53224)+146)/* var←c49608 */  ))+17) );
      (* (( (ptr) combined←v10104)+16) ) = (word) ( *( (fPt) ((*  (ptr) pd80 ))))((* (( (ptr) back←v10032)+16) ), (* (( (ptr) front←v10060)+16)
          ), pd80);
      };
SOURCE(14246, 675)
   return(combined←v10104);
   }

static word WalkSlices←P1920(scene←v10164, level←v10192, walkProc←v10220, classType←v10248)
   word scene←v10164;
   word level←v10192;
   word walkProc←v10220;
   word classType←v10248;
   {
   register ptr gf←c53256 =  (ptr) &globalframe;
   word aborted←v10292;
   /* WalkSlices: */ 
SOURCE(14928, 674)
SOURCE(14928, 674)
   aborted←v10292 = 0;
SOURCE(15069, 533)
   {
      register word slices←v19152;
      slices←v19152 = (* (( (ptr) scene←v10164)+4) );
      lab←L100073: ;
      if ((slices←v19152 != 0)) {
         }
      else {
         goto lab←L100070;
         };
      {
         word thisType←v19280;
SOURCE(15147, 49)
         {
            word pd81;
            pd81 = (* (( (ptr) (* (( (ptr) gf←c53256)+149)/* var←c49832 */  ))+6) );
            thisType←v19280 = (word) ( *( (fPt) ((*  (ptr) pd81 ))))((*  (ptr) (slices←v19152) ), pd81);
            };
SOURCE(15198, 179)
         {
            word tc82;
            word pd84;
            if ((level←v10192 != 1)) { goto then083;};
            pd84 = (* (( (ptr) (* (( (ptr) gf←c53256)+147)/* var←c49672 */  ))+72) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd84 ))))((*  (ptr) slices←v19152 ), classType←v10248, pd84))) {
               then083: ;
               if ((classType←v10248 == 0)) {
                  tc82 =  (word) 1;
                  }
               else {
                  tc82 =  (word) (thisType←v19280 == classType←v10248);
                  };
               }
            else {
               tc82 =  (word) 0;
               };
            if (tc82) {
SOURCE(15320, 33)
               aborted←v10292 = (word) ( *( (fPt) ((*  (ptr) walkProc←v10220 ))))((*  (ptr) (slices←v19152) ), walkProc←v10220);
SOURCE(15355, 22)
               if ((0 != aborted←v10292)) {
SOURCE(15371, 6)
                  return(aborted←v10292);
                  };
               };
            };
SOURCE(15382, 220)
         {
            word tc85;
            word pd86;
            if (((level←v10192 == 2) || (level←v10192 == 1)) ||  ( (level←v10192 == 3) ? (thisType←v19280 != classType←v10248) : 0 ) ) {
               pd86 = (* (( (ptr) (* (( (ptr) gf←c53256)+147)/* var←c49672 */  ))+62) );
               tc85 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd86 ))))((*  (ptr) (slices←v19152) ), pd86));
               }
            else {
               tc85 =  (word) 0;
               };
            if (tc85) {
SOURCE(15504, 74)
               {
                  word pd87;
                  pd87 = (* (( (ptr) (* (( (ptr) gf←c53256)+147)/* var←c49672 */  ))+73) );
                  aborted←v10292 = (word) ( *( (fPt) ((*  (ptr) pd87 ))))((*  (ptr) slices←v19152 ), level←v10192, walkProc←v10220, classType←v10248, pd87)
                  ;
                  };
SOURCE(15580, 22)
               if ((0 != aborted←v10292)) {
SOURCE(15596, 6)
                  return(aborted←v10292);
                  };
               };
            };
         };
      slices←v19152 = (* (( (ptr) slices←v19152)+1) );
      goto lab←L100073;
      lab←L100070: ;
      };
SOURCE(14928, 674)
   return(aborted←v10292);
   }

static word WalkSelectedSlices←P1980(scene←v10352, level←v10380, walkProc←v10408, selectClass←v10436, classType←v10464)
   word scene←v10352;
   word level←v10380;
   word walkProc←v10408;
   word selectClass←v10436;
   word classType←v10464;
   {
   register ptr gf←c53288 =  (ptr) &globalframe;
   word aborted←v10508;
   /* WalkSelectedSlices: */ 
SOURCE(15620, 836)
SOURCE(15620, 836)
   aborted←v10508 = 0;
SOURCE(15808, 648)
   {
      register word list←v19324;
      {
         word pd88;
         pd88 = (* (( (ptr) (* (( (ptr) gf←c53288)+153)/* var←c50056 */  ))+24) );
         list←v19324 = (word) ( *( (fPt) ((*  (ptr) pd88 ))))(scene←v10352, selectClass←v10436, pd88);
         };
      lab←L100077: ;
      if ((list←v19324 != 0)) {
         }
      else {
         goto lab←L100074;
         };
      {
         word thisSlice←v19452;
         word thisParts←v19480;
         word thisType←v19508;
SOURCE(15917, 35)
         thisSlice←v19452 = (*  (ptr) (*  (ptr) list←v19324 ) );
SOURCE(15954, 40)
         thisParts←v19480 = (* (( (ptr) (*  (ptr) list←v19324 ))+1) );
SOURCE(15996, 46)
         {
            word pd89;
            pd89 = (* (( (ptr) (* (( (ptr) gf←c53288)+149)/* var←c49832 */  ))+6) );
            thisType←v19508 = (word) ( *( (fPt) ((*  (ptr) pd89 ))))(thisSlice←v19452, pd89);
            };
SOURCE(16044, 174)
         {
            word tc90;
            word pd91;
            if ((classType←v10464 == 0) || (thisType←v19508 == classType←v10464)) {
               if ((level←v10380 != 1)) {
                  tc90 =  (word) 1;
                  }
               else {
                  pd91 = (* (( (ptr) (* (( (ptr) gf←c53288)+147)/* var←c49672 */  ))+72) );
                  tc90 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd91 ))))(thisSlice←v19452, classType←v10464, pd91));
                  };
               }
            else {
               tc90 =  (word) 0;
               };
            if (tc90) {
SOURCE(16163, 31)
               aborted←v10508 = (word) ( *( (fPt) ((*  (ptr) walkProc←v10408 ))))((*  (ptr) (list←v19324) ), walkProc←v10408);
SOURCE(16196, 22)
               if ((0 != aborted←v10508)) {
SOURCE(16212, 6)
                  return(aborted←v10508);
                  };
               };
            };
SOURCE(16223, 233)
         {
            word tc92;
            word pd93;
            if (((level←v10380 == 2) || (level←v10380 == 1)) ||  ( (level←v10380 == 3) ? (thisType←v19508 != classType←v10464) : 0 ) ) {
               pd93 = (* (( (ptr) (* (( (ptr) gf←c53288)+147)/* var←c49672 */  ))+62) );
               tc92 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd93 ))))(thisSlice←v19452, pd93));
               }
            else {
               tc92 =  (word) 0;
               };
            if (tc92) {
SOURCE(16342, 90)
               {
                  word pd94;
                  pd94 = (* (( (ptr) (* (( (ptr) gf←c53288)+147)/* var←c49672 */  ))+74) );
                  aborted←v10508 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))(thisSlice←v19452, thisParts←v19480, level←v10380, walkProc←v10408, classType←v10464, pd94)
                  ;
                  };
SOURCE(16434, 22)
               if ((0 != aborted←v10508)) {
SOURCE(16450, 6)
                  return(aborted←v10508);
                  };
               };
            };
         };
      list←v19324 = (* (( (ptr) list←v19324)+1) );
      goto lab←L100077;
      lab←L100074: ;
      };
SOURCE(15620, 836)
   return(aborted←v10508);
   }

static word ListSlices←P2040(scene←v10568, level←v10596, classType←v10624)
   word scene←v10568;
   word level←v10596;
   word classType←v10624;
   {
   W8 var←c53320;
   register ptr gf←c53352 =  (ptr) &globalframe;
   /* declaration of sliceList←v10668 skipped */ 
   /* declaration of var←c50536 skipped */ 
   /* declaration of ptr←v19552 skipped */ 
   /* ListSlices: */ 
SOURCE(16474, 374)
   {
      word tmpAddr95;
      tmpAddr95 = (word) (( (ptr) &var←c53320)+5)/* var←c50536 */ ;
      (*  (ptr) tmpAddr95 ) = ( ((word)  (fPt) DoAppendSlice←P4860) );
      (* (( (ptr) tmpAddr95) + 1) ) = 1;
      };
SOURCE(16474, 374)
   var←c53320.f4/* sliceList←v10668 */  = 0;
SOURCE(16593, 5)
   var←c53320.f7/* ptr←v19552 */  = 0;
SOURCE(16746, 45)
   {
      W2 var←c50568;
      {
         word pd96;
         pd96 = (* (( (ptr) (* (( (ptr) gf←c53352)+146)/* var←c49608 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd96 ))))((word) (&var←c50568), pd96);
         };
      var←c53320.f7/* ptr←v19552 */  = var←c50568.f1;
      var←c53320.f4/* sliceList←v10668 */  = var←c50568.f0;
      };
SOURCE(16793, 55)
   {
      word var←c50600;
      var←c50600 = (word) WalkSlices←P1920(scene←v10568, level←v10596, (word) (( (bPt) &var←c53320)+20)/* var←c50536 */ , classType←v10624)
      ;
      };
SOURCE(16474, 374)
   return(var←c53320.f4/* sliceList←v10668 */ );
   }

static word DoAppendSlice←P4860(slice←v19740, formal←c53416)
   word slice←v19740;
   word formal←c53416;
   {
   register ptr gf←c53384 =  (ptr) &globalframe;
   word done←v19784;
   formal←c53416 = (formal←c53416 - 20);
   /* DoAppendSlice: */ 
SOURCE(16613, 128)
SOURCE(16613, 128)
   done←v19784 = 0;
SOURCE(16681, 60)
   {
      W2 var←c50632;
      {
         word pd97;
         pd97 = (* (( (ptr) (* (( (ptr) gf←c53384)+146)/* var←c49608 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd97 ))))((word) &var←c50632, slice←v19740, (* (( (ptr) formal←c53416)+4) ), (* (( (ptr) formal←c53416)+7)
             ), pd97);
         };
      (* (( (ptr) formal←c53416)+7) ) = var←c50632.f1;
      (* (( (ptr) formal←c53416)+4) ) = var←c50632.f0;
      };
SOURCE(16613, 128)
   return(done←v19784);
   }

static word ListSelectedSlices←P2100(scene←v10812, level←v10840, selectClass←v10868, classType←v10896)
   word scene←v10812;
   word level←v10840;
   word selectClass←v10868;
   word classType←v10896;
   {
   W8 var←c53448;
   register ptr gf←c53480 =  (ptr) &globalframe;
   /* declaration of selectedList←v10940 skipped */ 
   /* declaration of var←c50664 skipped */ 
   /* declaration of ptr←v19812 skipped */ 
   /* ListSelectedSlices: */ 
SOURCE(16854, 496)
   {
      word tmpAddr98;
      tmpAddr98 = (word) (( (ptr) &var←c53448)+5)/* var←c50664 */ ;
      (*  (ptr) tmpAddr98 ) = ( ((word)  (fPt) DoAppendSlice←P4920) );
      (* (( (ptr) tmpAddr98) + 1) ) = 1;
      };
SOURCE(16854, 496)
   var←c53448.f4/* selectedList←v10940 */  = 0;
SOURCE(17023, 5)
   var←c53448.f7/* ptr←v19812 */  = 0;
SOURCE(17214, 58)
   {
      W2 var←c50696;
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c53480)+146)/* var←c49608 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd99 ))))((word) (&var←c50696), pd99);
         };
      var←c53448.f7/* ptr←v19812 */  = var←c50696.f1;
      var←c53448.f4/* selectedList←v10940 */  = var←c50696.f0;
      };
SOURCE(17274, 76)
   {
      word var←c50728;
      var←c50728 = (word) WalkSelectedSlices←P1980(scene←v10812, level←v10840, (word) (( (bPt) &var←c53448)+20)/* var←c50664 */ , selectClass←v10868, classType←v10896)
      ;
      };
SOURCE(16854, 496)
   return(var←c53448.f4/* selectedList←v10940 */ );
   }

static word DoAppendSlice←P4920(childD←v20000, formal←c53544)
   word childD←v20000;
   word formal←c53544;
   {
   register ptr gf←c53512 =  (ptr) &globalframe;
   word done←v20044;
   formal←c53544 = (formal←c53544 - 20);
   /* DoAppendSlice: */ 
SOURCE(17053, 156)
SOURCE(17053, 156)
   done←v20044 = 0;
SOURCE(17132, 77)
   {
      W2 var←c50760;
      {
         word pd100;
         pd100 = (* (( (ptr) (* (( (ptr) gf←c53512)+146)/* var←c49608 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd100 ))))((word) &var←c50760, childD←v20000, (* (( (ptr) formal←c53544)+4) ), (* (( (ptr) formal←c53544)+7)
             ), pd100);
         };
      (* (( (ptr) formal←c53544)+7) ) = var←c50760.f1;
      (* (( (ptr) formal←c53544)+4) ) = var←c50760.f0;
      };
SOURCE(17053, 156)
   return(done←v20044);
   }

static word CountSlices←P2160(scene←v11084, level←v11112, classType←v11140)
   word scene←v11084;
   word level←v11112;
   word classType←v11140;
   {
   W7 var←c53576;
   /* declaration of count←v11184 skipped */ 
   /* declaration of var←c50792 skipped */ 
   /* CountSlices: */ 
SOURCE(17355, 243)
   {
      word tmpAddr101;
      tmpAddr101 = (word) (( (ptr) &var←c53576)+5)/* var←c50792 */ ;
      (*  (ptr) tmpAddr101 ) = ( ((word)  (fPt) AddEmUp←P4980) );
      (* (( (ptr) tmpAddr101) + 1) ) = 1;
      };
SOURCE(17355, 243)
   var←c53576.f4/* count←v11184 */  = 0;
SOURCE(17549, 49)
   {
      word var←c50824;
      var←c50824 = (word) WalkSlices←P1920(scene←v11084, level←v11112, (word) (( (bPt) &var←c53576)+20)/* var←c50792 */ , classType←v11140)
      ;
      };
SOURCE(17355, 243)
   return(var←c53576.f4/* count←v11184 */ );
   }

static word AddEmUp←P4980(child←v20148, formal←c53608)
   word child←v20148;
   word formal←c53608;
   {
   word done←v20192;
   formal←c53608 = (formal←c53608 - 20);
   /* AddEmUp: */ 
SOURCE(17465, 79)
SOURCE(17465, 79)
   done←v20192 = 0;
SOURCE(17527, 17)
   (* (( (ptr) formal←c53608)+4) ) = ((* (( (ptr) formal←c53608)+4) ) + 1);
SOURCE(17465, 79)
   return(done←v20192);
   }

static word CountSelectedSlices←P2220(scene←v11244, level←v11272, selectClass←v11300, classType←v11328)
   word scene←v11244;
   word level←v11272;
   word selectClass←v11300;
   word classType←v11328;
   {
   W7 var←c53640;
   /* declaration of count←v11372 skipped */ 
   /* declaration of var←c50856 skipped */ 
   /* CountSelectedSlices: */ 
SOURCE(17604, 312)
   {
      word tmpAddr102;
      tmpAddr102 = (word) (( (ptr) &var←c53640)+5)/* var←c50856 */ ;
      (*  (ptr) tmpAddr102 ) = ( ((word)  (fPt) AddEmUp←P5040) );
      (* (( (ptr) tmpAddr102) + 1) ) = 1;
      };
SOURCE(17604, 312)
   var←c53640.f4/* count←v11372 */  = 0;
SOURCE(17846, 70)
   {
      word var←c50888;
      var←c50888 = (word) WalkSelectedSlices←P1980(scene←v11244, level←v11272, (word) (( (bPt) &var←c53640)+20)/* var←c50856 */ , selectClass←v11300, classType←v11328)
      ;
      };
SOURCE(17604, 312)
   return(var←c53640.f4/* count←v11372 */ );
   }

static word AddEmUp←P5040(childD←v20296, formal←c53672)
   word childD←v20296;
   word formal←c53672;
   {
   word done←v20340;
   formal←c53672 = (formal←c53672 - 20);
   /* AddEmUp: */ 
SOURCE(17751, 90)
SOURCE(17751, 90)
   done←v20340 = 0;
SOURCE(17824, 17)
   (* (( (ptr) formal←c53672)+4) ) = ((* (( (ptr) formal←c53672)+4) ) + 1);
SOURCE(17751, 90)
   return(done←v20340);
   }

static word FirstSelectedSlice←P2280(scene←v11432, level←v11460, selectClass←v11488, classType←v11516)
   word scene←v11432;
   word level←v11460;
   word selectClass←v11488;
   word classType←v11516;
   {
   W7 var←c53704;
   /* declaration of sliceD←v11560 skipped */ 
   /* declaration of var←c50920 skipped */ 
   /* FirstSelectedSlice: */ 
SOURCE(17922, 350)
   {
      word tmpAddr103;
      tmpAddr103 = (word) (( (ptr) &var←c53704)+5)/* var←c50920 */ ;
      (*  (ptr) tmpAddr103 ) = ( ((word)  (fPt) StopAtFirstSlice←P5100) );
      (* (( (ptr) tmpAddr103) + 1) ) = 1;
      };
SOURCE(17922, 350)
   var←c53704.f4/* sliceD←v11560 */  = 0;
SOURCE(18193, 79)
   {
      word var←c50952;
      var←c50952 = (word) WalkSelectedSlices←P1980(scene←v11432, level←v11460, (word) (( (bPt) &var←c53704)+20)/* var←c50920 */ , selectClass←v11488, classType←v11516)
      ;
      };
SOURCE(17922, 350)
   return(var←c53704.f4/* sliceD←v11560 */ );
   }

static word StopAtFirstSlice←P5100(childD←v20444, formal←c53736)
   word childD←v20444;
   word formal←c53736;
   {
   word done←v20488;
   formal←c53736 = (formal←c53736 - 20);
   /* StopAtFirstSlice: */ 
SOURCE(18077, 111)
SOURCE(18077, 111)
   done←v20488 = 0;
SOURCE(18159, 15)
   (* (( (ptr) formal←c53736)+4) ) = childD←v20444;
SOURCE(18176, 12)
   return(1);
   }

static word LastSelectedSlice←P2340(scene←v11620, level←v11648, selectClass←v11676, classType←v11704)
   word scene←v11620;
   word level←v11648;
   word selectClass←v11676;
   word classType←v11704;
   {
   W7 var←c53768;
   /* declaration of sliceD←v11748 skipped */ 
   /* declaration of var←c50984 skipped */ 
   /* LastSelectedSlice: */ 
SOURCE(18278, 333)
   {
      word tmpAddr104;
      tmpAddr104 = (word) (( (ptr) &var←c53768)+5)/* var←c50984 */ ;
      (*  (ptr) tmpAddr104 ) = ( ((word)  (fPt) StopAtLastSlice←P5160) );
      (* (( (ptr) tmpAddr104) + 1) ) = 1;
      };
SOURCE(18278, 333)
   var←c53768.f4/* sliceD←v11748 */  = 0;
SOURCE(18533, 78)
   {
      word var←c51016;
      var←c51016 = (word) WalkSelectedSlices←P1980(scene←v11620, level←v11648, (word) (( (bPt) &var←c53768)+20)/* var←c50984 */ , selectClass←v11676, classType←v11704)
      ;
      };
SOURCE(18278, 333)
   return(var←c53768.f4/* sliceD←v11748 */ );
   }

static word StopAtLastSlice←P5160(childD←v20592, formal←c53800)
   word childD←v20592;
   word formal←c53800;
   {
   word done←v20636;
   formal←c53800 = (formal←c53800 - 20);
   /* StopAtLastSlice: */ 
SOURCE(18432, 96)
SOURCE(18432, 96)
   done←v20636 = 0;
SOURCE(18513, 15)
   (* (( (ptr) formal←c53800)+4) ) = childD←v20592;
SOURCE(18432, 96)
   return(done←v20636);
   }

static word IsTopLevel←P2400(slice←v11808)
   word slice←v11808;
   {
   word var←c11852;
   /* IsTopLevel: */ 
SOURCE(18617, 84)
SOURCE(18675, 26)
   return( (unsigned) ((* (( (ptr) slice←v11808)+2) ) == 0));
   }

static word BoundBoxesInScene←P2460(scene←v11912)
   word scene←v11912;
   {
   register ptr gf←c53832 =  (ptr) &globalframe;
   word bBoxGen←v11956;
   word list←v20664 = 0;
   word thisBox←v20692 = 0;
   /* BoundBoxesInScene: */ 
SOURCE(18707, 692)
SOURCE(18707, 692)
   bBoxGen←v11956 = 0;
SOURCE(18837, 496)
   {
      register word entities←v20820;
      entities←v20820 = (* (( (ptr) scene←v11912)+4) );
      lab←L100081: ;
      if ((entities←v20820 != 0)) {
         }
      else {
         goto lab←L100078;
         };
SOURCE(18921, 412)
      {
         word pd105;
         pd105 = (* (( (ptr) (* (( (ptr) gf←c53832)+149)/* var←c49832 */  ))+6) );
         if (((word) ( *( (fPt) ((*  (ptr) pd105 ))))((*  (ptr) (entities←v20820) ), pd105) == (* (( (ptr) gf←c53832)+24) ))) {
SOURCE(18973, 270)
            {
               word outlineData←v20948;
SOURCE(19006, 55)
               outlineData←v20948 = XR←Narrow((* (( (ptr) (*  (ptr) entities←v20820 ))+1) ), (* (( (ptr) gf←c53832)+21) ));
SOURCE(19063, 169)
               {
                  register word children←v20992;
                  children←v20992 = (* (( (ptr) outlineData←v20948)+4) );
                  lab←L100085: ;
                  if ((children←v20992 != 0)) {
                     }
                  else {
                     goto lab←L100082;
                     };
SOURCE(19151, 53)
                  {
                     word pd106;
                     pd106 = (* (( (ptr) (* (( (ptr) gf←c53832)+149)/* var←c49832 */  ))+7) );
                     thisBox←v20692 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))((*  (ptr) children←v20992 ), 0, pd106);
                     };
SOURCE(19206, 26)
                  {
                     word var←c51048;
                     var←c51048 = XR←NewObject(8, (* (( (ptr) gf←c53832)+23) ));
                     (*  (ptr) var←c51048 ) = thisBox←v20692;
                     (* (( (ptr) var←c51048)+1) ) = list←v20664;
                     list←v20664 = var←c51048;
                     };
                  children←v20992 = (* (( (ptr) children←v20992)+1) );
                  goto lab←L100085;
                  lab←L100082: ;
                  };
               };
            }
         else {
SOURCE(19252, 53)
            {
               word pd107;
               pd107 = (* (( (ptr) (* (( (ptr) gf←c53832)+149)/* var←c49832 */  ))+7) );
               thisBox←v20692 = (word) ( *( (fPt) ((*  (ptr) pd107 ))))((*  (ptr) entities←v20820 ), 0, pd107);
               };
SOURCE(19307, 26)
            {
               word var←c51080;
               var←c51080 = XR←NewObject(8, (* (( (ptr) gf←c53832)+23) ));
               (*  (ptr) var←c51080 ) = thisBox←v20692;
               (* (( (ptr) var←c51080)+1) ) = list←v20664;
               list←v20664 = var←c51080;
               };
            };
         };
      entities←v20820 = (* (( (ptr) entities←v20820)+1) );
      goto lab←L100081;
      lab←L100078: ;
      };
SOURCE(19347, 52)
   {
      word var←c51112;
      var←c51112 = XR←NewObject(4, (* (( (ptr) gf←c53832)+22) ));
      (*  (ptr) var←c51112 ) = list←v20664;
      bBoxGen←v11956 = var←c51112;
      };
SOURCE(18707, 692)
   return(bBoxGen←v11956);
   }

static word TightBoxesInScene←P2520(scene←v12016)
   word scene←v12016;
   {
   register ptr gf←c53864 =  (ptr) &globalframe;
   word bBoxGen←v12060;
   word list←v21120 = 0;
   word thisBox←v21148 = 0;
   /* TightBoxesInScene: */ 
SOURCE(19405, 358)
SOURCE(19405, 358)
   bBoxGen←v12060 = 0;
SOURCE(19535, 165)
   {
      register word entities←v21276;
      entities←v21276 = (* (( (ptr) scene←v12016)+4) );
      lab←L100089: ;
      if ((entities←v21276 != 0)) {
         }
      else {
         goto lab←L100086;
         };
SOURCE(19619, 53)
      {
         word pd108;
         pd108 = (* (( (ptr) (* (( (ptr) gf←c53864)+149)/* var←c49832 */  ))+9) );
         thisBox←v21148 = (word) ( *( (fPt) ((*  (ptr) pd108 ))))((*  (ptr) entities←v21276 ), 0, pd108);
         };
SOURCE(19674, 26)
      {
         word var←c51144;
         var←c51144 = XR←NewObject(8, (* (( (ptr) gf←c53864)+23) ));
         (*  (ptr) var←c51144 ) = thisBox←v21148;
         (* (( (ptr) var←c51144)+1) ) = list←v21120;
         list←v21120 = var←c51144;
         };
      entities←v21276 = (* (( (ptr) entities←v21276)+1) );
      goto lab←L100089;
      lab←L100086: ;
      };
SOURCE(19711, 52)
   {
      word var←c51176;
      var←c51176 = XR←NewObject(4, (* (( (ptr) gf←c53864)+22) ));
      (*  (ptr) var←c51176 ) = list←v21120;
      bBoxGen←v12060 = var←c51176;
      };
SOURCE(19405, 358)
   return(bBoxGen←v12060);
   }

static word NextBox←P2580(g←v12120)
   word g←v12120;
   {
   word next←v12164;
   /* NextBox: */ 
SOURCE(19769, 154)
SOURCE(19769, 154)
   next←v12164 = 0;
SOURCE(19842, 81)
   if (((*  (ptr) g←v12120 ) == 0)) {
SOURCE(19863, 17)
      return(0);
      }
   else {
SOURCE(19882, 19)
      next←v12164 = (*  (ptr) (*  (ptr) g←v12120 ) );
SOURCE(19903, 20)
      (*  (ptr) g←v12120 ) = (* (( (ptr) (*  (ptr) g←v12120 ))+1) );
      };
SOURCE(19769, 154)
   return(next←v12164);
   }

static word BoundBoxOfScene←P2640(scene←v12224)
   word scene←v12224;
   {
   register ptr gf←c53896 =  (ptr) &globalframe;
   word bBox←v12268;
   word bbGen←v21404;
   /* BoundBoxOfScene: */ 
SOURCE(19931, 184)
SOURCE(19931, 184)
   bBox←v12268 = 0;
SOURCE(20004, 64)
   bbGen←v21404 = (word) BoundBoxesInScene←P2460(scene←v12224);
SOURCE(20070, 45)
   {
      word pd109;
      pd109 = (* (( (ptr) (* (( (ptr) gf←c53896)+154)/* var←c51208 */  ))+8) );
      bBox←v12268 = (word) ( *( (fPt) ((*  (ptr) pd109 ))))((*  (ptr) (bbGen←v21404) ), pd109);
      };
SOURCE(19931, 184)
   return(bBox←v12268);
   }

static word TightBoxOfScene←P2700(scene←v12328)
   word scene←v12328;
   {
   register ptr gf←c53928 =  (ptr) &globalframe;
   word bBox←v12372;
   word bbGen←v21448;
   /* TightBoxOfScene: */ 
SOURCE(20157, 184)
SOURCE(20157, 184)
   bBox←v12372 = 0;
SOURCE(20230, 64)
   bbGen←v21448 = (word) TightBoxesInScene←P2520(scene←v12328);
SOURCE(20296, 45)
   {
      word pd110;
      pd110 = (* (( (ptr) (* (( (ptr) gf←c53928)+154)/* var←c51208 */  ))+8) );
      bBox←v12372 = (word) ( *( (fPt) ((*  (ptr) pd110 ))))((*  (ptr) (bbGen←v21448) ), pd110);
      };
SOURCE(20157, 184)
   return(bBox←v12372);
   }

static word SelectionBoxOfSelected←P2760(scene←v12432, selectClass←v12460, formal←c0575)
   word scene←v12432;
   word selectClass←v12460;
   word formal←c0575;
   {
   W9 var←c53960;
   /* declaration of full←v12488 skipped */ 
   register ptr gf←c53992 =  (ptr) &globalframe;
   /* declaration of bigBox←v12532 skipped */ 
   /* declaration of var←c51240 skipped */ 
   /* declaration of nextBox←v21492 skipped */ 
   (* (( (ptr) &var←c53960)+4)/* full←v12488 */  ) = formal←c0575;
   /* SelectionBoxOfSelected: */ 
SOURCE(20382, 609)
   {
      word tmpAddr111;
      tmpAddr111 = (word) (( (ptr) &var←c53960)+6)/* var←c51240 */ ;
      (*  (ptr) tmpAddr111 ) = ( ((word)  (fPt) DoEnlargeBox←P5412) );
      (* (( (ptr) tmpAddr111) + 1) ) = 1;
      };
SOURCE(20382, 609)
   (* (( (ptr) &var←c53960)+5)/* bigBox←v12532 */  ) = 0;
SOURCE(20522, 17)
   (* (( (ptr) &var←c53960)+8)/* nextBox←v21492 */  ) = 0;
SOURCE(20883, 34)
   {
      word pd112;
      pd112 = (* (( (ptr) (* (( (ptr) gf←c53992)+154)/* var←c51208 */  ))+6) );
      (* (( (ptr) &var←c53960)+5)/* bigBox←v12532 */  ) = (word) ( *( (fPt) ((*  (ptr) pd112 ))))(pd112);
      };
SOURCE(20919, 72)
   {
      word var←c51272;
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c53992)+152)/* var←c49992 */  ))+32) );
      var←c51272 = (word) ( *( (fPt) ((*  (ptr) pd113 ))))(scene←v12432, 0, (word) (( (bPt) &var←c53960)+24)/* var←c51240 */ , selectClass←v12460, 0, pd113)
      ;
      };
SOURCE(20382, 609)
   return((* (( (ptr) &var←c53960)+5)/* bigBox←v12532 */  ));
   }

static word DoEnlargeBox←P5412(sliceD←v21596, formal←c54056)
   word sliceD←v21596;
   word formal←c54056;
   {
   register ptr gf←c54024 =  (ptr) &globalframe;
   word done←v21640;
   formal←c54056 = (formal←c54056 - 24);
   /* DoEnlargeBox: */ 
SOURCE(20541, 337)
SOURCE(20541, 337)
   done←v21640 = 0;
SOURCE(20619, 207)
   {
      word pd114;
      word pd115;
      word pd116;
      pd114 = (* (( (ptr) (* (( (ptr) gf←c54024)+149)/* var←c49832 */  ))+6) );
      if (((word) ( *( (fPt) ((*  (ptr) pd114 ))))((*  (ptr) (sliceD←v21596) ), pd114) == (* (( (ptr) gf←c54024)+26) ))) {
         pd115 = (* (( (ptr) (* (( (ptr) gf←c54024)+149)/* var←c49832 */  ))+9) );
         (* (( (ptr) formal←c54056)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd115 ))))((*  (ptr) sliceD←v21596 ),  ( (0 != (* (( (ptr) formal←c54056)+4)
             )) ? 0 : (* (( (ptr) sliceD←v21596)+1) ) ) , pd115);
         }
      else {
         pd116 = (* (( (ptr) (* (( (ptr) gf←c54024)+149)/* var←c49832 */  ))+7) );
         (* (( (ptr) formal←c54056)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd116 ))))((*  (ptr) sliceD←v21596 ),  ( (0 != (* (( (ptr) formal←c54056)+4)
             )) ? 0 : (* (( (ptr) sliceD←v21596)+1) ) ) , pd116);
         };
      };
SOURCE(20828, 50)
   {
      word pd117;
      pd117 = (* (( (ptr) (* (( (ptr) gf←c54024)+154)/* var←c51208 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd117 ))))((* (( (ptr) formal←c54056)+5) ), (* (( (ptr) formal←c54056)+8) ), pd117);
      };
SOURCE(20541, 337)
   return(done←v21640);
   }

static word BoundBoxOfSelected←P2820(scene←v12592, selectClass←v12620, formal←c0576)
   word scene←v12592;
   word selectClass←v12620;
   word formal←c0576;
   {
   W9 var←c54088;
   /* declaration of sliceLevel←v12648 skipped */ 
   register ptr gf←c54120 =  (ptr) &globalframe;
   /* declaration of bigBox←v12692 skipped */ 
   /* declaration of var←c51304 skipped */ 
   /* declaration of nextBox←v21668 skipped */ 
   (* (( (ptr) &var←c54088)+4)/* sliceLevel←v12648 */  ) = formal←c0576;
   /* BoundBoxOfSelected: */ 
SOURCE(20997, 492)
   {
      word tmpAddr118;
      tmpAddr118 = (word) (( (ptr) &var←c54088)+6)/* var←c51304 */ ;
      (*  (ptr) tmpAddr118 ) = ( ((word)  (fPt) DoEnlargeBox←P5472) );
      (* (( (ptr) tmpAddr118) + 1) ) = 1;
      };
SOURCE(20997, 492)
   (* (( (ptr) &var←c54088)+5)/* bigBox←v12692 */  ) = 0;
SOURCE(21139, 17)
   (* (( (ptr) &var←c54088)+8)/* nextBox←v21668 */  ) = 0;
SOURCE(21381, 34)
   {
      word pd119;
      pd119 = (* (( (ptr) (* (( (ptr) gf←c54120)+154)/* var←c51208 */  ))+6) );
      (* (( (ptr) &var←c54088)+5)/* bigBox←v12692 */  ) = (word) ( *( (fPt) ((*  (ptr) pd119 ))))(pd119);
      };
SOURCE(21417, 72)
   {
      word var←c51336;
      word pd120;
      pd120 = (* (( (ptr) (* (( (ptr) gf←c54120)+152)/* var←c49992 */  ))+32) );
      var←c51336 = (word) ( *( (fPt) ((*  (ptr) pd120 ))))(scene←v12592, 0, (word) (( (bPt) &var←c54088)+24)/* var←c51304 */ , selectClass←v12620, 0, pd120)
      ;
      };
SOURCE(20997, 492)
   return((* (( (ptr) &var←c54088)+5)/* bigBox←v12692 */  ));
   }

static word DoEnlargeBox←P5472(sliceD←v21772, formal←c54184)
   word sliceD←v21772;
   word formal←c54184;
   {
   register ptr gf←c54152 =  (ptr) &globalframe;
   word done←v21816;
   formal←c54184 = (formal←c54184 - 24);
   /* DoEnlargeBox: */ 
SOURCE(21158, 218)
SOURCE(21158, 218)
   done←v21816 = 0;
SOURCE(21236, 88)
   {
      word pd121;
      pd121 = (* (( (ptr) (* (( (ptr) gf←c54152)+149)/* var←c49832 */  ))+7) );
      (* (( (ptr) formal←c54184)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd121 ))))((*  (ptr) sliceD←v21772 ),  ( (0 != (* (( (ptr) formal←c54184)+4)
          )) ? 0 : (* (( (ptr) sliceD←v21772)+1) ) ) , pd121);
      };
SOURCE(21326, 50)
   {
      word pd122;
      pd122 = (* (( (ptr) (* (( (ptr) gf←c54152)+154)/* var←c51208 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd122 ))))((* (( (ptr) formal←c54184)+5) ), (* (( (ptr) formal←c54184)+8) ), pd122);
      };
SOURCE(21158, 218)
   return(done←v21816);
   }

static word TightBoxOfSelected←P2880(scene←v12752, selectClass←v12780, formal←c0577)
   word scene←v12752;
   word selectClass←v12780;
   word formal←c0577;
   {
   W9 var←c54216;
   /* declaration of sliceLevel←v12808 skipped */ 
   register ptr gf←c54248 =  (ptr) &globalframe;
   /* declaration of bigBox←v12852 skipped */ 
   /* declaration of var←c51368 skipped */ 
   /* declaration of nextBox←v21844 skipped */ 
   (* (( (ptr) &var←c54216)+4)/* sliceLevel←v12808 */  ) = formal←c0577;
   /* TightBoxOfSelected: */ 
SOURCE(21495, 492)
   {
      word tmpAddr123;
      tmpAddr123 = (word) (( (ptr) &var←c54216)+6)/* var←c51368 */ ;
      (*  (ptr) tmpAddr123 ) = ( ((word)  (fPt) DoEnlargeBox←P5532) );
      (* (( (ptr) tmpAddr123) + 1) ) = 1;
      };
SOURCE(21495, 492)
   (* (( (ptr) &var←c54216)+5)/* bigBox←v12852 */  ) = 0;
SOURCE(21637, 17)
   (* (( (ptr) &var←c54216)+8)/* nextBox←v21844 */  ) = 0;
SOURCE(21879, 34)
   {
      word pd124;
      pd124 = (* (( (ptr) (* (( (ptr) gf←c54248)+154)/* var←c51208 */  ))+6) );
      (* (( (ptr) &var←c54216)+5)/* bigBox←v12852 */  ) = (word) ( *( (fPt) ((*  (ptr) pd124 ))))(pd124);
      };
SOURCE(21915, 72)
   {
      word var←c51400;
      word pd125;
      pd125 = (* (( (ptr) (* (( (ptr) gf←c54248)+152)/* var←c49992 */  ))+32) );
      var←c51400 = (word) ( *( (fPt) ((*  (ptr) pd125 ))))(scene←v12752, 0, (word) (( (bPt) &var←c54216)+24)/* var←c51368 */ , selectClass←v12780, 0, pd125)
      ;
      };
SOURCE(21495, 492)
   return((* (( (ptr) &var←c54216)+5)/* bigBox←v12852 */  ));
   }

static word DoEnlargeBox←P5532(sliceD←v21948, formal←c54312)
   word sliceD←v21948;
   word formal←c54312;
   {
   register ptr gf←c54280 =  (ptr) &globalframe;
   word done←v21992;
   formal←c54312 = (formal←c54312 - 24);
   /* DoEnlargeBox: */ 
SOURCE(21656, 218)
SOURCE(21656, 218)
   done←v21992 = 0;
SOURCE(21734, 88)
   {
      word pd126;
      pd126 = (* (( (ptr) (* (( (ptr) gf←c54280)+149)/* var←c49832 */  ))+9) );
      (* (( (ptr) formal←c54312)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd126 ))))((*  (ptr) sliceD←v21948 ),  ( (0 != (* (( (ptr) formal←c54312)+4)
          )) ? 0 : (* (( (ptr) sliceD←v21948)+1) ) ) , pd126);
      };
SOURCE(21824, 50)
   {
      word pd127;
      pd127 = (* (( (ptr) (* (( (ptr) gf←c54280)+154)/* var←c51208 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd127 ))))((* (( (ptr) formal←c54312)+5) ), (* (( (ptr) formal←c54312)+8) ), pd127);
      };
SOURCE(21656, 218)
   return(done←v21992);
   }

static word BoundBoxOfMoving←P2940(scene←v12912, formal←c0578, formal←c0579, selectClass←v12996)
   word scene←v12912;
   word formal←c0578;
   W5 formal←c0579;
   word selectClass←v12996;
   {
   W14 var←c54344;
   /* declaration of editConstraints←v12940 skipped */ 
   /* declaration of bezierDrag←v12968 skipped */ 
   register ptr gf←c54376 =  (ptr) &globalframe;
   /* declaration of bigBox←v13040 skipped */ 
   /* declaration of var←c51432 skipped */ 
   /* declaration of nextBox←v22020 skipped */ 
   (* (( (ptr) &var←c54344)+4)/* editConstraints←v12940 */  ) = formal←c0578;
   (*  (W5Pt) (( (ptr) &var←c54344)+5)/* bezierDrag←v12968 */  ) = formal←c0579;
   /* BoundBoxOfMoving: */ 
SOURCE(22020, 880)
   {
      word tmpAddr128;
      tmpAddr128 = (word) (( (ptr) &var←c54344)+11)/* var←c51432 */ ;
      (*  (ptr) tmpAddr128 ) = ( ((word)  (fPt) DoEnlargeBox←P5592) );
      (* (( (ptr) tmpAddr128) + 1) ) = 1;
      };
SOURCE(22020, 880)
   (* (( (ptr) &var←c54344)+10)/* bigBox←v13040 */  ) = 0;
SOURCE(22229, 17)
   (* (( (ptr) &var←c54344)+13)/* nextBox←v22020 */  ) = 0;
SOURCE(22724, 66)
   if ((0 != (* (( (ptr) gf←c54376)+9)/* useSelected←v5688 */  ))) {
SOURCE(22744, 46)
      return((word) BoundBoxOfSelected←P2820(scene←v12912, selectClass←v12996, 0));
      };
SOURCE(22792, 34)
   {
      word pd129;
      pd129 = (* (( (ptr) (* (( (ptr) gf←c54376)+154)/* var←c51208 */  ))+6) );
      (* (( (ptr) &var←c54344)+10)/* bigBox←v13040 */  ) = (word) ( *( (fPt) ((*  (ptr) pd129 ))))(pd129);
      };
SOURCE(22828, 72)
   {
      word var←c51496;
      word pd130;
      pd130 = (* (( (ptr) (* (( (ptr) gf←c54376)+152)/* var←c49992 */  ))+32) );
      var←c51496 = (word) ( *( (fPt) ((*  (ptr) pd130 ))))(scene←v12912, 0, (word) (( (bPt) &var←c54344)+44)/* var←c51432 */ , selectClass←v12996, 0, pd130)
      ;
      };
SOURCE(22020, 880)
   return((* (( (ptr) &var←c54344)+10)/* bigBox←v13040 */  ));
   }

static word DoEnlargeBox←P5592(sliceD←v22124, formal←c54440)
   word sliceD←v22124;
   word formal←c54440;
   {
   register ptr gf←c54408 =  (ptr) &globalframe;
   word done←v22168;
   word overlay←v22196 = 0;
   word rubber←v22224 = 0;
   word drag←v22252 = 0;
   word movingParts←v22280 = 0;
   formal←c54440 = (formal←c54440 - 44);
   /* DoEnlargeBox: */ 
SOURCE(22248, 471)
SOURCE(22248, 471)
   done←v22168 = 0;
SOURCE(22379, 111)
   {
      W4 var←c51528;
      {
         word pd131;
         pd131 = (* (( (ptr) (* (( (ptr) gf←c54408)+149)/* var←c49832 */  ))+32) );
         (void) ( *( (fPt) ((*  (ptr) pd131 ))))((word) &var←c51528, (*  (ptr) sliceD←v22124 ), (* (( (ptr) sliceD←v22124)+1) ), (* (
               ( (ptr) formal←c54440)+4) ), (*  (W5Pt) (( (ptr) formal←c54440)+5) ), pd131);
         };
      drag←v22252 = var←c51528.f3;
      rubber←v22224 = var←c51528.f2;
      overlay←v22196 = var←c51528.f1;
      };
SOURCE(22492, 52)
   {
      word pd132;
      pd132 = (* (( (ptr) (* (( (ptr) gf←c54408)+149)/* var←c49832 */  ))+30) );
      movingParts←v22280 = (word) ( *( (fPt) ((*  (ptr) pd132 ))))(overlay←v22196, rubber←v22224, pd132);
      };
SOURCE(22546, 54)
   {
      word pd133;
      pd133 = (* (( (ptr) (* (( (ptr) gf←c54408)+149)/* var←c49832 */  ))+30) );
      movingParts←v22280 = (word) ( *( (fPt) ((*  (ptr) pd133 ))))(movingParts←v22280, drag←v22252, pd133);
      };
SOURCE(22602, 65)
   {
      word pd134;
      pd134 = (* (( (ptr) (* (( (ptr) gf←c54408)+149)/* var←c49832 */  ))+7) );
      (* (( (ptr) formal←c54440)+13) ) = (word) ( *( (fPt) ((*  (ptr) pd134 ))))((*  (ptr) sliceD←v22124 ), (* (( (ptr) movingParts←v22280)+1)
          ), pd134);
      };
SOURCE(22669, 50)
   {
      word pd135;
      pd135 = (* (( (ptr) (* (( (ptr) gf←c54408)+154)/* var←c51208 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd135 ))))((* (( (ptr) formal←c54440)+10) ), (* (( (ptr) formal←c54440)+13) ), pd135);
      };
SOURCE(22248, 471)
   return(done←v22168);
   }

static word DeleteAllSelected←P3000(formal←c0580)
   word formal←c0580;
   {
   W9 var←c54472;
   /* declaration of scene←v13100 skipped */ 
   register ptr gf←c54504 =  (ptr) &globalframe;
   /* declaration of bBox←v13144 skipped */ 
   /* declaration of var←c51560 skipped */ 
   /* declaration of affectedBox←v22352 skipped */ 
   (* (( (ptr) &var←c54472)+4)/* scene←v13100 */  ) = formal←c0580;
   /* DeleteAllSelected: */ 
SOURCE(22906, 1231)
   {
      word tmpAddr136;
      tmpAddr136 = (word) (( (ptr) &var←c54472)+6)/* var←c51560 */ ;
      (*  (ptr) tmpAddr136 ) = ( ((word)  (fPt) DeleteTopLevel←P5652) );
      (* (( (ptr) tmpAddr136) + 1) ) = 1;
      };
SOURCE(22906, 1231)
   (* (( (ptr) &var←c54472)+5)/* bBox←v13144 */  ) = 0;
SOURCE(23942, 21)
   (* (( (ptr) &var←c54472)+8)/* affectedBox←v22352 */  ) = 0;
SOURCE(23965, 48)
   {
      word pd137;
      pd137 = (* (( (ptr) (* (( (ptr) gf←c54504)+152)/* var←c49992 */  ))+45) );
      (* (( (ptr) &var←c54472)+5)/* bBox←v13144 */  ) = (word) ( *( (fPt) ((*  (ptr) pd137 ))))((* (( (ptr) &var←c54472)+4)/* scene←v13100 */  ), 0, 0, pd137)
      ;
      };
SOURCE(24015, 51)
   {
      word pd138;
      pd138 = (* (( (ptr) (* (( (ptr) gf←c54504)+153)/* var←c50056 */  ))+22) );
      (void) ( *( (fPt) ((*  (ptr) pd138 ))))((* (( (ptr) &var←c54472)+4)/* scene←v13100 */  ), 0, 2, pd138);
      };
SOURCE(24068, 69)
   {
      word var←c51592;
      word pd139;
      pd139 = (* (( (ptr) (* (( (ptr) gf←c54504)+152)/* var←c49992 */  ))+32) );
      var←c51592 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))((* (( (ptr) &var←c54472)+4)/* scene←v13100 */  ), 0, (word) (( (bPt) &var←c54472)+24)
         /* var←c51560 */ , 2, 0, pd139);
      };
SOURCE(22906, 1231)
   return((* (( (ptr) &var←c54472)+5)/* bBox←v13144 */  ));
   }

static word DeleteTopLevel←P5652(topLevelD←v22428, formal←c54568)
   word topLevelD←v22428;
   word formal←c54568;
   {
   register ptr gf←c54536 =  (ptr) &globalframe;
   word done←v22472;
   formal←c54568 = (formal←c54568 - 24);
   /* DeleteTopLevel: */ 
SOURCE(22981, 956)
SOURCE(22981, 956)
   done←v22472 = 0;
SOURCE(23064, 619)
   {
      word pd140;
      pd140 = (* (( (ptr) (* (( (ptr) gf←c54536)+149)/* var←c49832 */  ))+28) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd140 ))))(topLevelD←v22428, pd140))) {
SOURCE(23112, 58)
         {
            word pd141;
            pd141 = (* (( (ptr) (* (( (ptr) gf←c54536)+149)/* var←c49832 */  ))+7) );
            (* (( (ptr) formal←c54568)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd141 ))))((*  (ptr) topLevelD←v22428 ), 0, pd141);
            };
SOURCE(23172, 35)
         (void) DeleteSlice←P1620((* (( (ptr) formal←c54568)+4) ), (*  (ptr) topLevelD←v22428 ));
         }
      else {
SOURCE(23229, 663)
         {
            word newSlices←v22500 = 0;
            word priority←v22528;
SOURCE(23257, 51)
            priority←v22528 = (word) GetPriority←P960((* (( (ptr) formal←c54568)+4) ), (*  (ptr) topLevelD←v22428 ));
SOURCE(23310, 64)
            {
               word pd142;
               pd142 = (* (( (ptr) (* (( (ptr) gf←c54536)+153)/* var←c50056 */  ))+8) );
               (void) ( *( (fPt) ((*  (ptr) pd142 ))))((*  (ptr) topLevelD←v22428 ), (* (( (ptr) formal←c54568)+4) ), pd142);
               };
SOURCE(23376, 54)
            {
               W2 var←c51624;
               (void) DeleteSliceParts←P3060((word) &var←c51624, topLevelD←v22428);
               (* (( (ptr) formal←c54568)+8) ) = var←c51624.f1;
               newSlices←v22500 = var←c51624.f0;
               };
SOURCE(23432, 35)
            (void) DeleteSlice←P1620((* (( (ptr) formal←c54568)+4) ), (*  (ptr) topLevelD←v22428 ));
SOURCE(23469, 37)
            (void) AddSlices←P300((* (( (ptr) formal←c54568)+4) ), newSlices←v22500, priority←v22528);
SOURCE(23508, 175)
            {
               register word list←v22656;
               list←v22656 = newSlices←v22500;
               lab←L100093: ;
               if ((list←v22656 != 0)) {
                  }
               else {
                  goto lab←L100090;
                  };
SOURCE(23575, 51)
               {
                  word pd143;
                  pd143 = (* (( (ptr) (* (( (ptr) gf←c54536)+153)/* var←c50056 */  ))+9) );
                  (void) ( *( (fPt) ((*  (ptr) pd143 ))))((*  (ptr) list←v22656 ), (* (( (ptr) formal←c54568)+4) ), pd143);
                  };
SOURCE(23628, 55)
               {
                  word pd144;
                  pd144 = (* (( (ptr) (* (( (ptr) gf←c54536)+153)/* var←c50056 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd144 ))))((*  (ptr) list←v22656 ), (* (( (ptr) formal←c54568)+4) ), 2, pd144);
                  };
               list←v22656 = (* (( (ptr) list←v22656)+1) );
               goto lab←L100093;
               lab←L100090: ;
               };
            };
         };
      };
SOURCE(23895, 42)
   {
      word pd145;
      pd145 = (* (( (ptr) (* (( (ptr) gf←c54536)+154)/* var←c51208 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd145 ))))((* (( (ptr) formal←c54568)+5) ), (* (( (ptr) formal←c54568)+8) ), pd145);
      };
SOURCE(22981, 956)
   return(done←v22472);
   }

static void DeleteSliceParts←P3060(formal←c0452, sliceD←v13204)
   word formal←c0452;
   word sliceD←v13204;
   {
   register ptr gf←c54600 =  (ptr) &globalframe;
   word newSlices←v13248;
   word bBox←v13276;
   /* DeleteSliceParts: */ 
SOURCE(24143, 2639)
SOURCE(24143, 2639)
   newSlices←v13248 = 0;
SOURCE(24143, 2639)
   bBox←v13276 = 0;
SOURCE(24247, 32)
   {
      word pd146;
      pd146 = (* (( (ptr) (* (( (ptr) gf←c54600)+154)/* var←c51208 */  ))+6) );
      bBox←v13276 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))(pd146);
      };
SOURCE(24281, 2501)
   {
      word var←c51656;
      {
         word pd147;
         pd147 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+6) );
         var←c51656 = (word) ( *( (fPt) ((*  (ptr) pd147 ))))((*  (ptr) (sliceD←v13204) ), pd147);
         };
      if ((var←c51656 == (* (( (ptr) gf←c54600)+25) ))) {
SOURCE(24335, 5)
         (void) XR←RaiseUnnamedError();
         goto endif0148;
         };
      if ((var←c51656 == (* (( (ptr) gf←c54600)+27) ))) {
SOURCE(24354, 1023)
         {
            word newChildren←v22784 = 0;
SOURCE(24384, 60)
            {
               word pd149;
               pd149 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+28) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd149 ))))(sliceD←v13204, pd149))) {
SOURCE(24427, 17)
                  newSlices←v13248 = 0;
                  /* removed bogus assignment */ 
                  goto lab←L100094;
                  };
               };
SOURCE(24447, 686)
            {
               register word children←v22912;
               {
                  word pd150;
                  pd150 = (* (( (ptr) (* (( (ptr) gf←c54600)+147)/* var←c49672 */  ))+75) );
                  children←v22912 = (word) ( *( (fPt) ((*  (ptr) pd150 ))))((*  (ptr) sliceD←v13204 ), 0, 0, pd150);
                  };
               lab←L100098: ;
               if ((children←v22912 != 0)) {
                  }
               else {
                  goto lab←L100095;
                  };
               {
                  word thisChild←v23040;
                  word thisChildD←v23068;
SOURCE(24557, 33)
                  thisChild←v23040 = (*  (ptr) children←v22912 );
SOURCE(24635, 87)
                  {
                     word pd151;
                     pd151 = (* (( (ptr) (* (( (ptr) gf←c54600)+147)/* var←c49672 */  ))+85) );
                     thisChildD←v23068 = (word) ( *( (fPt) ((*  (ptr) pd151 ))))(sliceD←v13204, thisChild←v23040, pd151);
                     };
SOURCE(24724, 409)
                  {
                     word pd153;
                     if ((thisChildD←v23068 == 0)) { goto then0152;};
                     pd153 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+27) );
                     if ((0 != (word) ( *( (fPt) ((*  (ptr) pd153 ))))(thisChildD←v23068, pd153))) {
                        then0152: ;
SOURCE(24786, 75)
                        {
                           word var←c51688;
                           {
/*1*/   word var←c51720;
/*1*/   word var←c51752;
/*1*/   var←c51720 = XR←NewObject(8, (* (( (ptr) gf←c54600)+20) ));
/*1*/   var←c51752 = var←c51720;
/*1*/   (*  (ptr) var←c51752 ) = thisChild←v23040;
/*1*/   var←c51688 = var←c51720;
/*1*/   };
                           {
/*1*/   word pd154;
/*1*/   pd154 = (* (( (ptr) (* (( (ptr) gf←c54600)+146)/* var←c49608 */  ))+22) );
/*1*/   newChildren←v22784 = (word) ( *( (fPt) ((*  (ptr) pd154 ))))(newChildren←v22784, var←c51688, pd154);
/*1*/   };
                           };
                        }
                     else {
SOURCE(24861, 277)
                        {
                           word newBox←v23112 = 0;
                           word newChildSlices←v23140 = 0;
SOURCE(24912, 55)
                           {
/*1*/   W2 var←c51784;
/*1*/   (void) DeleteSliceParts←P3060((word) &var←c51784, thisChildD←v23068);
/*1*/   newBox←v23112 = var←c51784.f1;
/*1*/   newChildSlices←v23140 = var←c51784.f0;
/*1*/   };
SOURCE(24987, 146)
                           if ((newChildSlices←v23140 != 0)) {
SOURCE(25016, 68)
/*1*/   {
/*1*/      word pd155;
/*1*/      pd155 = (* (( (ptr) (* (( (ptr) gf←c54600)+146)/* var←c49608 */  ))+22) );
/*1*/      newChildren←v22784 = (word) ( *( (fPt) ((*  (ptr) pd155 ))))(newChildren←v22784, newChildSlices←v23140, pd155);
/*1*/      };
SOURCE(25086, 47)
/*1*/   {
/*1*/      word pd156;
/*1*/      pd156 = (* (( (ptr) (* (( (ptr) gf←c54600)+154)/* var←c51208 */  ))+14) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd156 ))))(bBox←v13276, newBox←v23112, pd156);
/*1*/      };
/*1*/   };
                           };
                        };
                     };
                  };
               children←v22912 = (* (( (ptr) children←v22912)+1) );
               goto lab←L100098;
               lab←L100095: ;
               };
SOURCE(25150, 222)
            if ((newChildren←v22784 == 0)) {
SOURCE(25174, 23)
               newSlices←v13248 = 0;
               /* removed bogus assignment */ 
               goto lab←L100094;
               }
            else {
SOURCE(25197, 177)
               {
                  word newCluster←v23268;
SOURCE(25199, 82)
                  {
                     word var←c51816;
                     {
                        word pd157;
                        pd157 = (* (( (ptr) (* (( (ptr) gf←c54600)+151)/* var←c49896 */  ))+16) );
                        var←c51816 = (word) ( *( (fPt) ((*  (ptr) pd157 ))))((*  (ptr) (sliceD←v13204) ), pd157);
                        };
                     {
                        word pd158;
                        pd158 = (* (( (ptr) (* (( (ptr) gf←c54600)+151)/* var←c49896 */  ))+10) );
                        newCluster←v23268 = (word) ( *( (fPt) ((*  (ptr) pd158 ))))(var←c51816, pd158);
                        };
                     };
SOURCE(25283, 57)
                  {
                     word pd159;
                     pd159 = (* (( (ptr) (* (( (ptr) gf←c54600)+151)/* var←c49896 */  ))+12) );
                     (void) ( *( (fPt) ((*  (ptr) pd159 ))))(newCluster←v23268, newChildren←v22784,  (word) -1, pd159);
                     };
SOURCE(25342, 30)
                  {
                     word var←c51944;
                     {
                        word var←c51880;
                        word var←c51912;
                        var←c51880 = XR←NewObject(8, (* (( (ptr) gf←c54600)+20) ));
                        var←c51912 = var←c51880;
                        (*  (ptr) var←c51912 ) = newCluster←v23268;
                        var←c51944 = var←c51880;
                        };
                     newSlices←v13248 = var←c51944;
                     /* removed bogus assignment */ 
                     goto lab←L100094;
                     };
                  };
               };
            };
         };
      if ((var←c51656 == (* (( (ptr) gf←c54600)+24) ))) {
SOURCE(25392, 1359)
         {
            word thisBox←v23312 = 0;
            word childD←v23340 = 0;
            word outlineParts←v23368 = 0;
            word original←v23396 = 0;
            word outline←v23424 = 0;
            word openTrajOutlines←v23452 = 0;
SOURCE(25524, 23)
            original←v23396 = (*  (ptr) sliceD←v13204 );
SOURCE(25549, 27)
            outlineParts←v23368 = (* (( (ptr) sliceD←v13204)+1) );
SOURCE(25578, 22)
            outline←v23424 = (*  (ptr) sliceD←v13204 );
SOURCE(25638, 66)
            {
               word pd160;
               pd160 = (* (( (ptr) (* (( (ptr) gf←c54600)+147)/* var←c49672 */  ))+78) );
               childD←v23340 = (word) ( *( (fPt) ((*  (ptr) pd160 ))))(outline←v23424, outlineParts←v23368, 0, 0, pd160);
               };
SOURCE(25706, 855)
            lab←L100101: ;
            if ((childD←v23340 != 0)) {
               }
            else {
               goto lab←L100099;
               };
SOURCE(25728, 659)
            {
               word pd161;
               pd161 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+6) );
               if (((word) ( *( (fPt) ((*  (ptr) pd161 ))))((*  (ptr) (childD←v23340) ), pd161) == (* (( (ptr) gf←c54600)+25) ))) {
SOURCE(25779, 243)
                  {
                     word pd162;
                     pd162 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+28) );
                     if ((0 != (word) ( *( (fPt) ((*  (ptr) pd162 ))))(childD←v23340, pd162))) {
SOURCE(25824, 60)
                        {
                           word pd163;
                           pd163 = (* (( (ptr) (* (( (ptr) gf←c54600)+148)/* var←c49704 */  ))+8) );
                           outline←v23424 = (word) ( *( (fPt) ((*  (ptr) pd163 ))))(outline←v23424, (*  (ptr) childD←v23340 ), 0, pd163);
                           };
                        }
                     else {
SOURCE(25895, 59)
                        {
                           W2 var←c51976;
                           {
/*1*/   word pd164;
/*1*/   pd164 = (* (( (ptr) (* (( (ptr) gf←c54600)+150)/* var←c49864 */  ))+10) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd164 ))))((word) &var←c51976, childD←v23340, pd164);
/*1*/   };
                           openTrajOutlines←v23452 = var←c51976.f1;
                           outline←v23424 = var←c51976.f0;
                           };
SOURCE(25956, 66)
                        {
                           word pd165;
                           pd165 = (* (( (ptr) (* (( (ptr) gf←c54600)+146)/* var←c49608 */  ))+22) );
                           newSlices←v13248 = (word) ( *( (fPt) ((*  (ptr) pd165 ))))(openTrajOutlines←v23452, newSlices←v13248, pd165);
                           };
                        };
                     };
                  }
               else {
SOURCE(26034, 355)
                  {
                     word screenStyle←v23580 = 1;
                     W2 fillText←v23608;
SOURCE(26081, 27)
                     fillText←v23608.f0 = 0;
                     fillText←v23608.f1 = 0;
SOURCE(26111, 72)
                     {
                        word var←c52040;
                        {
                           word pd166;
                           pd166 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+7) );
                           var←c52040 = (word) ( *( (fPt) ((*  (ptr) pd166 ))))(outline←v23424, 0, pd166);
                           };
                        {
                           word pd167;
                           pd167 = (* (( (ptr) (* (( (ptr) gf←c54600)+154)/* var←c51208 */  ))+14) );
                           (void) ( *( (fPt) ((*  (ptr) pd167 ))))(bBox←v13276, var←c52040, pd167);
                           };
                        };
SOURCE(26185, 53)
                     {
                        W3 var←c52072;
                        {
                           word pd168;
                           pd168 = (* (( (ptr) (* (( (ptr) gf←c54600)+151)/* var←c49896 */  ))+48) );
                           (void) ( *( (fPt) ((*  (ptr) pd168 ))))((word) &var←c52072, outline←v23424, pd168);
                           };
                        screenStyle←v23580 = var←c52072.f2;
                        fillText←v23608 = (*  (W2Pt) &var←c52072 );
                        };
SOURCE(26240, 60)
                     {
                        word pd169;
                        pd169 = (* (( (ptr) (* (( (ptr) gf←c54600)+148)/* var←c49704 */  ))+8) );
                        outline←v23424 = (word) ( *( (fPt) ((*  (ptr) pd169 ))))(outline←v23424, (*  (ptr) childD←v23340 ), 0, pd169);
                        };
SOURCE(26302, 85)
                     if ((outline←v23424 != 0)) {
SOURCE(26324, 63)
                        {
                           word pd170;
                           pd170 = (* (( (ptr) (* (( (ptr) gf←c54600)+148)/* var←c49704 */  ))+12) );
                           (void) ( *( (fPt) ((*  (ptr) pd170 ))))(outline←v23424, fillText←v23608.f0, screenStyle←v23580, 0, pd170);
                           };
                        };
                     };
                  };
               };
SOURCE(26392, 169)
            if ((outline←v23424 == 0)) {
SOURCE(26414, 18)
               childD←v23340 = 0;
               }
            else {
SOURCE(26434, 59)
               {
                  word pd171;
                  pd171 = (* (( (ptr) (* (( (ptr) gf←c54600)+149)/* var←c49832 */  ))+21) );
                  outlineParts←v23368 = (word) ( *( (fPt) ((*  (ptr) pd171 ))))(outline←v23424, 2, pd171);
                  };
SOURCE(26495, 66)
               {
                  word pd172;
                  pd172 = (* (( (ptr) (* (( (ptr) gf←c54600)+147)/* var←c49672 */  ))+78) );
                  childD←v23340 = (word) ( *( (fPt) ((*  (ptr) pd172 ))))(outline←v23424, outlineParts←v23368, 0, 0, pd172);
                  };
               };
            goto lab←L100101;
            lab←L100099: ;
SOURCE(26575, 58)
            if ((outline←v23424 != 0)) {
SOURCE(26597, 36)
               {
                  word var←c52104;
                  var←c52104 = XR←NewObject(8, (* (( (ptr) gf←c54600)+20) ));
                  (*  (ptr) var←c52104 ) = outline←v23424;
                  (* (( (ptr) var←c52104)+1) ) = newSlices←v13248;
                  newSlices←v13248 = var←c52104;
                  };
               };
SOURCE(26662, 37)
            thisBox←v23312 = (word) BoundBoxOfSlices←P3120(newSlices←v13248);
SOURCE(26701, 48)
            {
               word pd173;
               pd173 = (* (( (ptr) (* (( (ptr) gf←c54600)+154)/* var←c51208 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd173 ))))(bBox←v13276, thisBox←v23312, pd173);
               };
            };
         goto endif0148;
         };
SOURCE(26767, 15)
      newSlices←v13248 = 0;
      goto endif0148;
      endif0148: ;
      };
   /* removed tail goto */ 
   lab←L100094: ;
   (*  (ptr) formal←c0452 ) = newSlices←v13248;
   (* (( (ptr) formal←c0452)+1) ) = bBox←v13276;
   return;
   }

static word BoundBoxOfSlices←P3120(sliceList←v13420)
   word sliceList←v13420;
   {
   register ptr gf←c54632 =  (ptr) &globalframe;
   word bBox←v13548;
   /* BoundBoxOfSlices: */ 
SOURCE(26791, 260)
SOURCE(26791, 260)
   bBox←v13548 = 0;
SOURCE(26870, 32)
   {
      word pd174;
      pd174 = (* (( (ptr) (* (( (ptr) gf←c54632)+154)/* var←c51208 */  ))+6) );
      bBox←v13548 = (word) ( *( (fPt) ((*  (ptr) pd174 ))))(pd174);
      };
SOURCE(26904, 147)
   {
      register word list←v23652;
      list←v23652 = sliceList←v13420;
      lab←L100105: ;
      if ((list←v23652 != 0)) {
         }
      else {
         goto lab←L100102;
         };
SOURCE(26971, 80)
      {
         word var←c52136;
         {
            word pd175;
            pd175 = (* (( (ptr) (* (( (ptr) gf←c54632)+149)/* var←c49832 */  ))+7) );
            var←c52136 = (word) ( *( (fPt) ((*  (ptr) pd175 ))))((*  (ptr) list←v23652 ), 0, pd175);
            };
         {
            word pd176;
            pd176 = (* (( (ptr) (* (( (ptr) gf←c54632)+154)/* var←c51208 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd176 ))))(bBox←v13548, var←c52136, pd176);
            };
         };
      list←v23652 = (* (( (ptr) list←v23652)+1) );
      goto lab←L100105;
      lab←L100102: ;
      };
SOURCE(26791, 260)
   return(bBox←v13548);
   }

static void SaveSelections←P3180(scene←v13608)
   word scene←v13608;
   {
   register ptr gf←c54664 =  (ptr) &globalframe;
   /* SaveSelections: */ 
SOURCE(27066, 198)
SOURCE(27113, 85)
   {
      word pd177;
      pd177 = (* (( (ptr) (* (( (ptr) gf←c54664)+146)/* var←c49608 */  ))+19) );
      (* (( (ptr) scene←v13608)+20) ) = (word) ( *( (fPt) ((*  (ptr) pd177 ))))((* ((( (ptr) scene←v13608)+6)) ), pd177);
      };
SOURCE(27200, 64)
   (* (( (ptr) scene←v13608)+33) ) = (* (( (ptr) scene←v13608)+19) );
   }

static void RestoreSelections←P3240(scene←v13668)
   word scene←v13668;
   {
   register ptr gf←c54696 =  (ptr) &globalframe;
   /* RestoreSelections: */ 
SOURCE(27270, 343)
SOURCE(27320, 35)
   {
      word pd178;
      pd178 = (* (( (ptr) (* (( (ptr) gf←c54696)+153)/* var←c50056 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd178 ))))(scene←v13668, 0, pd178);
      };
SOURCE(27397, 141)
   {
      register word list←v23780;
      list←v23780 = (* (( (ptr) scene←v13668)+20) );
      lab←L100109: ;
      if ((list←v23780 != 0)) {
         }
      else {
         goto lab←L100106;
         };
SOURCE(27491, 47)
      {
         word pd179;
         pd179 = (* (( (ptr) (* (( (ptr) gf←c54696)+153)/* var←c50056 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd179 ))))((*  (ptr) list←v23780 ), scene←v13668, 0, pd179);
         };
      list←v23780 = (* (( (ptr) list←v23780)+1) );
      goto lab←L100109;
      lab←L100106: ;
      };
SOURCE(27549, 64)
   (* (( (ptr) scene←v13668)+19) ) = (* (( (ptr) scene←v13668)+33) );
   }

static void SelectInBox←P3300(formal←c0581, formal←c0582, formal←c0583)
   word formal←c0581;
   word formal←c0582;
   word formal←c0583;
   {
   W9 var←c54728;
   /* declaration of scene←v13728 skipped */ 
   /* declaration of box←v13756 skipped */ 
   /* declaration of selectClass←v13784 skipped */ 
   register ptr gf←c54760 =  (ptr) &globalframe;
   /* declaration of var←c52168 skipped */ 
   (* (( (ptr) &var←c54728)+4)/* scene←v13728 */  ) = formal←c0581;
   (* (( (ptr) &var←c54728)+5)/* box←v13756 */  ) = formal←c0582;
   (* (( (ptr) &var←c54728)+6)/* selectClass←v13784 */  ) = formal←c0583;
   /* SelectInBox: */ 
SOURCE(27620, 317)
   {
      word tmpAddr180;
      tmpAddr180 = (word) (( (ptr) &var←c54728)+7)/* var←c52168 */ ;
      (*  (ptr) tmpAddr180 ) = ( ((word)  (fPt) SelectSlice←P6240) );
      (* (( (ptr) tmpAddr180) + 1) ) = 1;
      };
SOURCE(27887, 50)
   {
      word var←c52200;
      word pd181;
      pd181 = (* (( (ptr) (* (( (ptr) gf←c54760)+152)/* var←c49992 */  ))+31) );
      var←c52200 = (word) ( *( (fPt) ((*  (ptr) pd181 ))))((* (( (ptr) &var←c54728)+4)/* scene←v13728 */  ), 0, (word) (( (bPt) &var←c54728)+28)
         /* var←c52168 */ , 0, pd181);
      };
   }

static word SelectSlice←P6240(slice←v23984, formal←c54824)
   word slice←v23984;
   word formal←c54824;
   {
   register ptr gf←c54792 =  (ptr) &globalframe;
   word done←v24028;
   formal←c54824 = (formal←c54824 - 28);
   /* SelectSlice: */ 
SOURCE(27717, 165)
SOURCE(27717, 165)
   done←v24028 = 0;
SOURCE(27783, 99)
   {
      word pd182;
      pd182 = (* (( (ptr) (* (( (ptr) gf←c54792)+149)/* var←c49832 */  ))+72) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd182 ))))(slice←v23984, (* (( (ptr) formal←c54824)+5) ), pd182))) {
SOURCE(27829, 53)
         {
            word pd183;
            pd183 = (* (( (ptr) (* (( (ptr) gf←c54792)+153)/* var←c50056 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd183 ))))(slice←v23984, (* (( (ptr) formal←c54824)+4) ), (* (( (ptr) formal←c54824)+6) ), pd183)
            ;
            };
         };
      };
SOURCE(27717, 165)
   return(done←v24028);
   }

static void SelectPartsInBox←P3360(formal←c0584, formal←c0585, formal←c0586)
   word formal←c0584;
   word formal←c0585;
   word formal←c0586;
   {
   W10 var←c54856;
   /* declaration of scene←v13844 skipped */ 
   /* declaration of box←v13872 skipped */ 
   /* declaration of selectClass←v13900 skipped */ 
   register ptr gf←c54888 =  (ptr) &globalframe;
   /* declaration of var←c52232 skipped */ 
   /* declaration of inParts←v24056 skipped */ 
   (* (( (ptr) &var←c54856)+4)/* scene←v13844 */  ) = formal←c0584;
   (* (( (ptr) &var←c54856)+5)/* box←v13872 */  ) = formal←c0585;
   (* (( (ptr) &var←c54856)+6)/* selectClass←v13900 */  ) = formal←c0586;
   /* SelectPartsInBox: */ 
SOURCE(27943, 380)
   {
      word tmpAddr184;
      tmpAddr184 = (word) (( (ptr) &var←c54856)+7)/* var←c52232 */ ;
      (*  (ptr) tmpAddr184 ) = ( ((word)  (fPt) SelectSliceParts←P6300) );
      (* (( (ptr) tmpAddr184) + 1) ) = 1;
      };
SOURCE(28045, 24)
   (* (( (ptr) &var←c54856)+9)/* inParts←v24056 */  ) = 0;
SOURCE(28268, 55)
   {
      word var←c52264;
      word pd185;
      pd185 = (* (( (ptr) (* (( (ptr) gf←c54888)+152)/* var←c49992 */  ))+31) );
      var←c52264 = (word) ( *( (fPt) ((*  (ptr) pd185 ))))((* (( (ptr) &var←c54856)+4)/* scene←v13844 */  ), 0, (word) (( (bPt) &var←c54856)+28)
         /* var←c52232 */ , 0, pd185);
      };
   }

static word SelectSliceParts←P6300(slice←v24160, formal←c54952)
   word slice←v24160;
   word formal←c54952;
   {
   register ptr gf←c54920 =  (ptr) &globalframe;
   word done←v24204;
   formal←c54952 = (formal←c54952 - 28);
   /* SelectSliceParts: */ 
SOURCE(28071, 192)
SOURCE(28071, 192)
   done←v24204 = 0;
SOURCE(28142, 48)
   {
      word pd186;
      pd186 = (* (( (ptr) (* (( (ptr) gf←c54920)+149)/* var←c49832 */  ))+71) );
      (* (( (ptr) formal←c54952)+9) ) = (word) ( *( (fPt) ((*  (ptr) pd186 ))))(slice←v24160, (* (( (ptr) formal←c54952)+5) ), pd186)
      ;
      };
SOURCE(28192, 71)
   if (((* (( (ptr) formal←c54952)+9) ) != 0)) {
SOURCE(28214, 49)
      {
         word pd187;
         pd187 = (* (( (ptr) (* (( (ptr) gf←c54920)+153)/* var←c50056 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd187 ))))((* (( (ptr) formal←c54952)+9) ), (* (( (ptr) formal←c54952)+4) ), (* (( (ptr) formal←c54952)+6)
             ), pd187);
         };
      };
SOURCE(28071, 192)
   return(done←v24204);
   }

/* file: GGSceneImpl, module: GGSceneImpl, compiled at: July 11, 1993 7:56:04 pm PDT */ 
extern void XR←install←GGSceneImpl() {
   NoName←Q6360();
   }
extern void XR←run←GGSceneImpl() { XR←Start(&globalframe); }