/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 8:06:26 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGSliceImplA, module: GGSliceImplA */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3741280434,3729632976] GGSliceImplA";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W4 r;} W20;
typedef W20 *W20Pt;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef W6 *W6Pt;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W16 f; W2 r;} W18;
typedef struct {W8 f; W6 r;} W14;
typedef W8 *W8Pt;
typedef struct {W8 f; W2 r;} W10;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W16 f; word r;} W17;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W5 *W5Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc101 = 2.0;
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc126 = -999.9;
static float fc135 = 0.707106816;
static float fc137 = 1.0;
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
static float fc216 = 0.0;
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc401 = 3.0;
static float fc553 = 8605.12;
static float fc558 = 8702.26;
static float fc569 = 8811.30;
static float fc574 = 8704.03;
static float fc583 = 8706.08;
static float fc592 = 8802.04;
static float fc597 = 8905.19;
static float fc603 = 8803.08;
static float fc608 = 8803.24;
static float fc652 = 1E16;
static float fc679 = -1.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc770 = 0.072;
static float fc814 = 17.0;
static void NoName←Q12060();
static void GGSliceImplA←P0();
static word BuildBoxSliceClass←P60();
static word MakeBoxSlice←P120();
static word MakeBoxFromMaskPixel←P180();
static word BoxFetchSegment←P240();
static void SetBoxText←P300();
static void GetBoxText←P360();
static void GetBoxNodes←P420();
static word BoxMaxStrokeWidth←P480();
static void BoxPointFromIndex←P540();
static void BoxSetSegments←P600();
static word IsChildOfOutline←P660();
static void BoxGetBoundBoxAux←P720();
static void BoxFindBoundBox←P6024();
static word BoxGetBoundBox←P780();
static word BoxGetTightBox←P840();
static word BoxCopy←P900();
static void BoxRestore←P960();
static void BoxBuildPath←P1020();
static void DoBoxPath←P6372();
static void BoxDrawBorder←P1080();
static void DrawBoxPath←P6432();
static void BuildPath←P6600();
static void DoBoxDrawBorder←P6492();
static void PointsForTransform←P1140();
static void TransformedBoxPoints←P1200();
static void TransformBoxObj←P1260();
static void FlipBoxStyle←P1320();
static void BoxDrawParts←P1380();
static void DoBoxDrawParts←P6852();
static void BoxTextDraw←P6912();
static void BoxPathProc←P7020();
static void DoMaskPixel←P7128();
static void BoxDrawTransform←P1440();
static void TransformWholeBox←P7332();
static void RubberbandBox←P7440();
static void BoxDrawAttractorFeedback←P1500();
static void DoDrawAttractorFeedback←P7500();
static word BoxAttractorFeedbackBoundBox←P1560();
static void BoxDrawSelectionFeedback←P1620();
static void RenderText←P1680();
static void DoRenderText←P7944();
static void DrawSingleStrokeBox←P1740();
static void BuildPath←P8004();
static void MaskStrokeBoxPath←P1800();
static word PatternProc←P8064();
static word AllStrokePropsAndColorsEqual←P1860();
static void DrawSelectionFeedbackBox←P1920();
static void DoDrawFeedback←P8172();
static void BoxDrawAll←P1980();
static void BoxPath←P8280();
static void DoMaskPixel←P8388();
static void BoxSaveSelections←P2040();
static void SetPointField←P8544();
static void SetSegmentField←P8604();
static word BoxRemakeSelections←P2100();
static word GetPointField←P8712();
static word GetSegmentField←P8772();
static void BoxTransform←P2160();
static void BoxFullTransform←P8880();
static word BoxDescribeHit←P2220();
static word BoxDescribe←P2280();
static void BoxFileout←P2340();
static word BoxFilein←P2400();
static void MakeComplete←P2460();
static word IsComplete←P2520();
static word IsEmpty←P2580();
static void CountCorners←P2640();
static void CountEdges←P2700();
static word BoxPointsInDescriptor←P2760();
static void BoxWalkPointsInDescriptor←P2820();
static word BoxPointPairsInDescriptor←P2880();
static word BoxSegmentsInDescriptor←P2940();
static word BoxWalkSegments←P3000();
static void BoxNextPoint←P3060();
static void GetBoxPoint←P3120();
static void BoxNextPointPair←P3180();
static void BoxNextSegment←P3240();
static word BoxIsEmptyParts←P3300();
static word BoxIsCompleteParts←P3360();
static void NearestBoxPoint←P3420();
static word BoxNewParts←P3480();
static word BoxUnionParts←P3540();
static word BoxDiffParts←P3600();
static void CornersOfEdge←P3660();
static word OppositeCorner←P3720();
static void BoxPoint←P3780();
static void BoxMovingParts←P3840();
static word BoxAugmentParts←P3900();
static word BoxAlterParts←P3960();
static void BoxClosestPoint←P4020();
static void BoxClosestJointToHitData←P4080();
static void BoxClosestSegment←P4140();
static void BoxFilledPathsUnderPoint←P4200();
static void BoxLineIntersection←P4260();
static word BoxHitDataAsSimpleCurve←P4320();
static void FillBoxEdge←P4380();
static void BoxSetStrokeColor←P4440();
static void BoxGetStrokeColor←P4500();
static void BoxSetFillColor←P4560();
static void BoxGetFillColor←P4620();
static word BoxSetStrokeWidth←P4680();
static void BoxSetDefaults←P4740();
static void BoxGetStrokeWidth←P4800();
static void BoxSetStrokeEnd←P4860();
static void BoxSetStrokeJoint←P4920();
static void BoxGetStrokeJoint←P4980();
static void BoxGetStrokeEnd←P5040();
static void BoxSetDashed←P5100();
static void BoxGetDashed←P5160();
static word BoxSetOrientation←P5220();
static void BoxGetOrientation←P5280();
static void Init←P5340();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[44];} string3 = {2752556, "\260\006\005\146\151\162\163\164\257\300\247\031\224\326\300\123\162\224\023\100\164\005\004\162\145\163\164\214\257\300\247\031\224\326\300\123\162\224\023\100\164\261\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\144\000\000"};
static struct {unsigned f; char r[4];} string6 = {196611, "\004@\321"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\224\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\011\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\210\000\000"};
static struct {unsigned f; char r[20];} string10 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\336\377\150\262\300\336\115\256\320\100\230\000\000"};
static struct {unsigned f; char r[48];} string13 = {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[16];} string14 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\164\000\000"};
static struct {unsigned f; char r[4];} string15 = {196611, "\004A6"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\354\000\000"};
static struct {unsigned f; char r[4];} string17 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\336\377\150\262\300\336\115\256\320\100\200\000\000"};
static struct {unsigned f; char r[24];} string19 = {1376277, "\006\010\000\001\004\001\010\001\024\001\030\001\034\001\044\004\003\100\220\004\017\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\336\377\150\262\300\336\115\256\320\100\214\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\324\000\000"};
static struct {unsigned f; char r[32];} string22 = {1966110, "\006\015\000\001\004\001\010\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\074\001\100\110\001\100\130\001\000"};
static struct {unsigned f; char r[4];} string23 = {196612, "Box"};
static struct {unsigned f; char r[8];} string24 = {458760, "Outline"};
static struct {unsigned f; char r[12];} string25 = {720908, "bottom edge"};
static struct {unsigned f; char r[20];} string26 = {1048596, "Broken Invariant\000\000\000"};
static struct {unsigned f; char r[12];} string27 = {655372, "right edge\000"};
static struct {unsigned f; char r[12];} string28 = {524300, "top edge\000\000\000"};
static struct {unsigned f; char r[8];} string29 = {393224, "center\000"};
static struct {unsigned f; char r[16];} string30 = {983056, " of a Box slice"};
static struct {unsigned f; char r[32];} string31 = {1900576, "multiple parts of a Box slice\000\000"};
static struct {unsigned f; char r[12];} string32 = {524300, "NO parts\000\000\000"};
static struct {unsigned f; char r[20];} string33 = {1114132, " strokeWidths: ( \000\000"};
static struct {unsigned f; char r[4];} string34 = {196612, "%g "};
static struct {unsigned f; char r[20];} string35 = {1048596, ") strokeEnds: ( \000\000\000"};
static struct {unsigned f; char r[20];} string36 = {1179668, ") strokeColors: ( \000"};
static struct {unsigned f; char r[16];} string37 = {851984, ") fillColor: \000\000"};
static struct {unsigned f; char r[8];} string38 = {327688, " pa: \000\000"};
static struct {unsigned f; char r[12];} string39 = {720908, " dashes: ( "};
static struct {unsigned f; char r[8];} string40 = {458760, " %g %g "};
static struct {unsigned f; char r[16];} string41 = {786448, " ) props: ( \000\000\000"};
static struct {unsigned f; char r[4];} string42 = {131076, "( \000"};
static struct {unsigned f; char r[4];} string43 = {131076, ") \000"};
static struct {unsigned f; char r[8];} string44 = {458760, ") fwd: "};
static struct {unsigned f; char r[16];} string45 = {917520, " strokeJoint: \000"};
static struct {unsigned f; char r[16];} string46 = {786448, "\012 fillText: \000\000\000"};
static struct {unsigned f; char r[16];} string47 = {983056, "strokeWidths: ("};
static struct {unsigned f; char r[16];} string48 = {983056, ") strokeEnds: ("};
static struct {unsigned f; char r[20];} string49 = {1114132, ") strokeColors: (\000\000"};
static struct {unsigned f; char r[4];} string50 = {196612, "pa:"};
static struct {unsigned f; char r[12];} string51 = {589836, "dashes: (\000\000"};
static struct {unsigned f; char r[12];} string52 = {524300, "props: (\000\000\000"};
static struct {unsigned f; char r[8];} string53 = {262152, "fwd:\000\000\000"};
static struct {unsigned f; char r[16];} string54 = {786448, "strokeJoint:\000\000\000"};
static struct {unsigned f; char r[12];} string55 = {589836, "left edge\000\000"};
static struct {unsigned f; char r[12];} string56 = {589836, "fillText:\000\000"};
static struct {unsigned f; char r[20];} string57 = {1179668, "lower right corner\000"};
static struct {unsigned f; char r[20];} string58 = {1179668, "upper right corner\000"};
static struct {unsigned f; char r[20];} string59 = {1114132, "upper left corner\000\000"};
static struct {unsigned f; char r[8];} string60 = {458760, "Forward"};
static struct {unsigned f; char r[12];} string61 = {524300, "Backward\000\000\000"};
static struct {unsigned f; char r[8];} string62 = {262152, "Grow\000\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "ShrinkForward\000\000"};
static struct {unsigned f; char r[16];} string64 = {917520, "ShrinkBackward\000"};
static struct {unsigned f; char r[20];} string65 = {1114132, "lower left corner\000\000"};
static struct {unsigned f; char r[4];} string66 = {196612, "Set"};
static struct {unsigned f; char r[12];} string67 = {589836, "ChangeHue\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\336\377\150\262\300\336\115\256\320\100\164\000\000"};
static struct {unsigned f; char r[12];} string69 = {720907, "\006\002\030\001\100\170\010\000\004\055\001"};
static struct {unsigned f; char r[16];} string70 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string72 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string73 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string74 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string75 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\317\075\344\275\300\105\331\241\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\235\036\354\311\300\234\133\201\260\100\150\000\000"};
static struct {unsigned f; char r[4];} string80 = {1195856748, "ice"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string82 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\104\154\010\164\300\126\073\363\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string84 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string85 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string87 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string88 = {851984, "\257\300\103\306\166\071\300\047\126\012\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string89 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string90 = {851984, "\257\300\042\224\360\026\300\243\254\175\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string91 = {851984, "\257\300\237\240\030\300\300\003\120\067\262\100\150\000\000"};
static struct {unsigned f; char r[16];} string92 = {851984, "\257\300\233\251\177\064\300\273\157\236\236\100\150\000\000"};
static struct {unsigned f; char r[16];} string93 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static W2 dummy661;
static struct {
   word f0[75]; 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; word f144; word f145; 
   word f146; word f147; word f148; word f149; 
   word f150; word f151; word f152; word f153; 
   word f154; word f155; word f156; word f157; 
   word f158; word f159; word f160; word f161; 
   word f162; word f163; word f164; word f165; 
   word f166; word f167; word f168; word f169; 
   word f170; word f171; word f172; word f173; 
   word f174; word f175; word f176; word f177; 
   word f178; word f179; word f180; word f181; 
   word f182; word f183; word f184; word f185; 
   word f186; word f187; word f188; word f189; 
   word f190; word f191; word f192; word f193; 
   word f194; word f195; word f196; word f197; 
   word f198; word f199; word f200; word f201; 
   word f202; word f203; word f204; word f205; 
   word f206; word f207; word f208; word f209; 
   word f210; word f211; word f212; word f213; 
   word f214; word f215; word f216; word f217; 
   word f218; word f219; word f220; word f221; 
   word f222; word f223; word f224; word f225; 
   word f226; word f227; word f228; word f229; 
   word f230; word f231; word f232; word f233; 
   word f234; word f235; word f236; word f237; 
   word f238; word f239; word f240; word f241; 
   word f242; word f243; word f244; word f245; 
   word f246; word f247; word f248; word f249; 
   word f250; word f251; word f252; word f253; 
   word f254[69]; 
   } globalframe = {
   {0}, (word) Init←P5340, 0, (word) BoxGetOrientation←P5280, 
   0, (word) BoxSetOrientation←P5220, 0, (word) BoxGetDashed←P5160, 
   0, (word) BoxSetDashed←P5100, 0, (word) BoxGetStrokeEnd←P5040, 
   0, (word) BoxGetStrokeJoint←P4980, 0, (word) BoxSetStrokeJoint←P4920, 
   0, (word) BoxSetStrokeEnd←P4860, 0, (word) BoxGetStrokeWidth←P4800, 
   0, (word) BoxSetDefaults←P4740, 0, (word) BoxSetStrokeWidth←P4680, 
   0, (word) BoxGetFillColor←P4620, 0, (word) BoxSetFillColor←P4560, 
   0, (word) BoxGetStrokeColor←P4500, 0, (word) BoxSetStrokeColor←P4440, 
   0, (word) FillBoxEdge←P4380, 0, (word) BoxHitDataAsSimpleCurve←P4320, 
   0, (word) BoxLineIntersection←P4260, 0, (word) BoxFilledPathsUnderPoint←P4200, 
   0, (word) BoxClosestSegment←P4140, 0, (word) BoxClosestJointToHitData←P4080, 
   0, (word) BoxClosestPoint←P4020, 0, (word) BoxAlterParts←P3960, 
   0, (word) BoxAugmentParts←P3900, 0, (word) BoxMovingParts←P3840, 
   0, (word) BoxPoint←P3780, 0, (word) OppositeCorner←P3720, 
   0, (word) CornersOfEdge←P3660, 0, (word) BoxDiffParts←P3600, 
   0, (word) BoxUnionParts←P3540, 0, (word) BoxNewParts←P3480, 
   0, (word) NearestBoxPoint←P3420, 0, (word) BoxIsCompleteParts←P3360, 
   0, (word) BoxIsEmptyParts←P3300, 0, (word) BoxNextSegment←P3240, 
   0, (word) BoxNextPointPair←P3180, 0, (word) GetBoxPoint←P3120, 
   0, (word) BoxNextPoint←P3060, 0, (word) BoxWalkSegments←P3000, 
   0, (word) BoxSegmentsInDescriptor←P2940, 0, (word) BoxPointPairsInDescriptor←P2880, 
   0, (word) BoxWalkPointsInDescriptor←P2820, 0, (word) BoxPointsInDescriptor←P2760, 
   0, (word) CountEdges←P2700, 0, (word) CountCorners←P2640, 
   0, (word) IsEmpty←P2580, 0, (word) IsComplete←P2520, 
   0, (word) MakeComplete←P2460, 0, (word) BoxFilein←P2400, 
   0, (word) BoxFileout←P2340, 0, (word) BoxDescribe←P2280, 
   0, (word) BoxDescribeHit←P2220, 0, (word) BoxTransform←P2160, 
   0, (word) BoxRemakeSelections←P2100, 0, (word) BoxSaveSelections←P2040, 
   0, (word) BoxDrawAll←P1980, 0, (word) DrawSelectionFeedbackBox←P1920, 
   0, (word) AllStrokePropsAndColorsEqual←P1860, 0, (word) MaskStrokeBoxPath←P1800, 
   0, (word) DrawSingleStrokeBox←P1740, 0, (word) RenderText←P1680, 
   0, (word) BoxDrawSelectionFeedback←P1620, 0, (word) BoxAttractorFeedbackBoundBox←P1560, 
   0, (word) BoxDrawAttractorFeedback←P1500, 0, (word) BoxDrawTransform←P1440, 
   0, (word) BoxDrawParts←P1380, 0, (word) FlipBoxStyle←P1320, 
   0, (word) TransformBoxObj←P1260, 0, (word) TransformedBoxPoints←P1200, 
   0, (word) PointsForTransform←P1140, 0, (word) BoxDrawBorder←P1080, 
   0, (word) BoxBuildPath←P1020, 0, (word) BoxRestore←P960, 
   0, (word) BoxCopy←P900, 0, (word) BoxGetTightBox←P840, 
   0, (word) BoxGetBoundBox←P780, 0, (word) BoxGetBoundBoxAux←P720, 
   0, (word) IsChildOfOutline←P660, 0, (word) BoxSetSegments←P600, 
   0, (word) BoxPointFromIndex←P540, 0, (word) BoxMaxStrokeWidth←P480, 
   0, (word) GetBoxNodes←P420, 0, (word) GetBoxText←P360, 
   0, (word) SetBoxText←P300, 0, (word) BoxFetchSegment←P240, 
   0, (word) MakeBoxFromMaskPixel←P180, 0, (word) MakeBoxSlice←P120, 
   0, (word) BuildBoxSliceClass←P60, 0, (word) GGSliceImplA←P0, 
   {0}
   };

static void NoName←Q12060()
   {
   register ptr gf←c01359 =  (ptr) &globalframe;
   word var←c101928;
   (* (( (ptr) gf←c01359)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c01359)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c01359)+10) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c01359)+11) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c01359)+12) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string8);
   (* (( (ptr) gf←c01359)+14) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c01359)+15) ) = (word) XR←GetTypeIndexS((word) (&string12));
   (* (( (ptr) gf←c01359)+16) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string11);
   (* (( (ptr) gf←c01359)+17) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (* (( (ptr) gf←c01359)+21) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string2);
   (* (( (ptr) gf←c01359)+22) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string2);
   (* (( (ptr) gf←c01359)+25) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
   (* (( (ptr) gf←c01359)+28) ) = (word) XR←GetTypeIndexS((word) (&string20));
   (* (( (ptr) gf←c01359)+29) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22);
   (*  (ptr) (( (bPt) gf←c01359)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c01359)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c01359)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c01359)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c01359)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c01359)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c01359)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c01359)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c01359)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c01359)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c01359)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c01359)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c01359)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c01359)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c01359)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c01359)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c01359)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c01359)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c01359)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c01359)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c01359)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c01359)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c01359)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c01359)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c01359)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c01359)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c01359)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c01359)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c01359)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c01359)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c01359)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c01359)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c01359)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c01359)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c01359)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c01359)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c01359)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c01359)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c01359)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c01359)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c01359)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c01359)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c01359)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+8) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c01359)+292) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c01359)+296) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01359)+22) ), (word) &string67);
   (void) XR←DeclareGlobalFrame((word) "GGSliceImplA", &globalframe, (word) XR←GetTypeIndex((word) &string68, 0, (word) &string69)
      , (word) (( (bPt) gf←c01359)+1012)/* var←c91368 */ );
   var←c101928 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string70)), 25);
   (* (( (ptr) gf←c01359)+299)/* var←c91880 */  ) = var←c101928;
   var←c101928 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string71)), 24);
   (* (( (ptr) gf←c01359)+304)/* var←c92328 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 337647364);
   (void) XR←ImportProcS(var←c101928, 69210370);
   (void) XR←ImportProcS(var←c101928, 337647108);
   (void) XR←ImportProcS(var←c101928, 68162051);
   (void) XR←ImportProcS(var←c101928, 527618);
   (void) XR←ImportProcS(var←c101928, 67371777);
   (void) XR←ImportProcS(var←c101928, 789250);
   (void) XR←ImportProcS(var←c101928, 68681990);
   (void) XR←ImportProcS(var←c101928, 67634434);
   (void) XR←ImportProcS(var←c101928, 67373057);
   (void) XR←ImportProcS(var←c101928, 67109376);
   var←c101928 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string72)), 37);
   (* (( (ptr) gf←c01359)+310)/* var←c93352 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67641602);
   (void) XR←ImportProcS(var←c101928, 67641090);
   (void) XR←ImportProcS(var←c101928, 794627);
   (void) XR←ImportProcS(var←c101928, 67379713);
   var←c101928 = (word) XR←ImportInterface((word) "GGParent", (word) XR←GetTypeIndexS((word) (&string73)), 83);
   (* (( (ptr) gf←c01359)+309)/* var←c93128 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67386369);
   var←c101928 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string74)), 26);
   (* (( (ptr) gf←c01359)+317)/* var←c98408 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 134745602);
   (void) XR←ImportProcS(var←c101928, 67376641);
   (void) XR←ImportProcS(var←c101928, 67373825);
   (void) XR←ImportProcS(var←c101928, 67373313);
   (void) XR←ImportProcS(var←c101928, 525826);
   (void) XR←ImportProcS(var←c101928, 67375873);
   (void) XR←ImportProcS(var←c101928, 67376129);
   (void) XR←ImportProcS(var←c101928, 67374337);
   (void) XR←ImportProcS(var←c101928, 67636226);
   (void) XR←ImportProcS(var←c101928, 67373569);
   (void) XR←ImportProcS(var←c101928, 67376897);
   (void) XR←ImportProcS(var←c101928, 525570);
   (void) XR←ImportProcS(var←c101928, 67375105);
   (void) XR←ImportProcS(var←c101928, 134483713);
   var←c101928 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string75)), 15);
   (* (( (ptr) gf←c01359)+315)/* var←c97960 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 787459);
   (void) XR←ImportProcS(var←c101928, 524546);
   (void) XR←ImportProcS(var←c101928, 526594);
   (void) XR←ImportProcS(var←c101928, 526850);
   (void) XR←ImportProcS(var←c101928, 527106);
   (void) XR←ImportProcS(var←c101928, 525058);
   (void) XR←ImportProcS(var←c101928, 524802);
   (void) XR←ImportProcS(var←c101928, 524290);
   (void) XR←ImportProcS(var←c101928, 525826);
   (void) XR←ImportProcS(var←c101928, 787714);
   var←c101928 = (word) XR←ImportInterface((word) "GGProps", (word) XR←GetTypeIndexS((word) (&string76)), 11);
   (* (( (ptr) gf←c01359)+311)/* var←c93384 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 1050116);
   var←c101928 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string77)), 50);
   (* (( (ptr) gf←c01359)+308)/* var←c93064 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67379969);
   var←c101928 = (word) XR←ImportInterface((word) "GGSegment", (word) XR←GetTypeIndexS((word) (&string78)), 47);
   (* (( (ptr) gf←c01359)+302)/* var←c92200 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 527362);
   (void) XR←ImportProcS(var←c101928, 1579268);
   (void) XR←ImportProcS(var←c101928, 67374337);
   (void) XR←ImportProcS(var←c101928, 1054723);
   (void) XR←ImportProcS(var←c101928, 68419843);
   var←c101928 = (word) XR←ImportInterface((word) "GGShapes", (word) XR←GetTypeIndexS((word) (&string79)), 20);
   (* (( (ptr) gf←c01359)+312)/* var←c95848 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 1314820);
   (void) XR←ImportProcS(var←c101928, 1315076);
   (void) XR←ImportProcS(var←c101928, 1052419);
   var←c101928 = (word) XR←ImportInterface((word) &string80, (word) XR←GetTypeIndexS((word) (&string81)), 128);
   (* (( (ptr) gf←c01359)+300)/* var←c91944 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 1321732);
   (void) XR←ImportProcS(var←c101928, 201600001);
   (void) XR←ImportProcS(var←c101928, 278529);
   (void) XR←ImportProcS(var←c101928, 67634178);
   (void) XR←ImportProcS(var←c101928, 67371777);
   (void) XR←ImportProcS(var←c101928, 134511105);
   (void) XR←ImportProcS(var←c101928, 1341701);
   (void) XR←ImportProcS(var←c101928, 134769666);
   (void) XR←ImportProcS(var←c101928, 470837251);
   (void) XR←ImportProcS(var←c101928, 810499);
   (void) XR←ImportProcS(var←c101928, 279297);
   (void) XR←ImportProcS(var←c101928, 68189956);
   var←c101928 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string82)), 73);
   (* (( (ptr) gf←c01359)+305)/* var←c92456 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67633922);
   (void) XR←ImportProcS(var←c101928, 67901699);
   (void) XR←ImportProcS(var←c101928, 67634434);
   (void) XR←ImportProcS(var←c101928, 67371521);
   var←c101928 = (word) XR←ImportInterface((word) "GGTransform", (word) XR←GetTypeIndexS((word) (&string83)), 7);
   (* (( (ptr) gf←c01359)+319)/* var←c100616 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 135004418);
   (void) XR←ImportProcS(var←c101928, 67108864);
   var←c101928 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string84)), 42);
   (* (( (ptr) gf←c01359)+313)/* var←c96552 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67641346);
   (void) XR←ImportProcS(var←c101928, 67641858);
   var←c101928 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string85)), 84);
   (* (( (ptr) gf←c01359)+303)/* var←c92232 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 803587);
   (void) XR←ImportProcS(var←c101928, 1591046);
   (void) XR←ImportProcS(var←c101928, 541186);
   (void) XR←ImportProcS(var←c101928, 540930);
   (void) XR←ImportProcS(var←c101928, 540674);
   (void) XR←ImportProcS(var←c101928, 536578);
   (void) XR←ImportProcS(var←c101928, 542978);
   (void) XR←ImportProcS(var←c101928, 526850);
   (void) XR←ImportProcS(var←c101928, 801283);
   (void) XR←ImportProcS(var←c101928, 526338);
   var←c101928 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string86)), 55);
   (* (( (ptr) gf←c01359)+301)/* var←c91976 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67634689);
   (void) XR←ImportProcS(var←c101928, 68160004);
   (void) XR←ImportProcS(var←c101928, 135013378);
   (void) XR←ImportProcS(var←c101928, 67635458);
   (void) XR←ImportProcS(var←c101928, 67371521);
   (void) XR←ImportProcS(var←c101928, 135013122);
   (void) XR←ImportProcS(var←c101928, 402927105);
   (void) XR←ImportProcS(var←c101928, 67383041);
   var←c101928 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string87)), 103);
   (* (( (ptr) gf←c01359)+316)/* var←c97992 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67917827);
   (void) XR←ImportProcS(var←c101928, 67372801);
   (void) XR←ImportProcS(var←c101928, 67374849);
   (void) XR←ImportProcS(var←c101928, 2111493);
   (void) XR←ImportProcS(var←c101928, 1063171);
   (void) XR←ImportProcS(var←c101928, 1071364);
   (void) XR←ImportProcS(var←c101928, 528642);
   var←c101928 = (word) XR←ImportInterface((word) "Lines2d", (word) XR←GetTypeIndexS((word) (&string88)), 50);
   (* (( (ptr) gf←c01359)+321)/* var←c101224 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 1317123);
   (void) XR←ImportProcS(var←c101928, 793091);
   (void) XR←ImportProcS(var←c101928, 67114240);
   (void) XR←ImportProcS(var←c101928, 201858818);
   (void) XR←ImportProcS(var←c101928, 67635970);
   var←c101928 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string89)), 43);
   (* (( (ptr) gf←c01359)+314)/* var←c97832 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67633666);
   var←c101928 = (word) XR←ImportInterface((word) "TextNode", (word) XR←GetTypeIndexS((word) (&string90)), 34);
   (* (( (ptr) gf←c01359)+307)/* var←c92616 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67377153);
   var←c101928 = (word) XR←ImportInterface((word) "TiogaImager", (word) XR←GetTypeIndexS((word) (&string91)), 19);
   (* (( (ptr) gf←c01359)+306)/* var←c92584 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 1051651);
   (void) XR←ImportProcS(var←c101928, 203161861);
   var←c101928 = (word) XR←ImportInterface((word) "TiogaIO", (word) XR←GetTypeIndexS((word) (&string92)), 17);
   (* (( (ptr) gf←c01359)+318)/* var←c98760 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 67372545);
   var←c101928 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string93)), 21);
   (* (( (ptr) gf←c01359)+320)/* var←c100744 */  ) = var←c101928;
   (void) XR←ImportProcS(var←c101928, 135268098);
   (void) XR←ImportProcS(var←c101928, 68158722);
   (void) XR←ImportProcS(var←c101928, 135270914);
   (void) XR←ImportProcS(var←c101928, 68161282);
   var←c101928 = (word) XR←ExportInterface((word) &string80, (word) XR←GetTypeIndexS((word) (&string81)), 128);
   (* (( (ptr) gf←c01359)+322)/* var←c101960 */  ) = var←c101928;
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+1004)/* var←c91336 */ , 67118848, (word) "BuildBoxSliceClass")
   ;
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+988)/* var←c91272 */ , 68167684, (word) "MakeBoxFromMaskPixel")
   ;
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+996)/* var←c91304 */ , 67905795, (word) "MakeBoxSlice");
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+980)/* var←c91240 */ , 67643906, (word) "BoxFetchSegment");
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+972)/* var←c91208 */ , 1321732, (word) "SetBoxText");
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+964)/* var←c91176 */ , 201600001, (word) "GetBoxText");
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+956)/* var←c91144 */ , 201600257, (word) "GetBoxNodes");
   (void) XR←ExportProcS(var←c101928, (word) (( (bPt) gf←c01359)+788)/* var←c90472 */ , 1060356, (word) "RenderText");
   (void) XR←ExportVar(var←c101928, 63, (word) (( (bPt) gf←c01359)+20)/* copyRestore←v5688 */ );
   }

static void GGSliceImplA←P0(formal←c0129, formal←c0128)
   word formal←c0129;
   word formal←c0128;
   {
   register ptr gf←c101992 =  (ptr) &globalframe;
   /* GGSliceImplA: */ 
SOURCE(413, 81943)
   XR←FillWords(&(* (W4Pt) ((( (ptr) gf←c101992)+283)/* var←c91656 */ )), 4, 1);
   XR←FillWords(&(* (W4Pt) ((( (ptr) gf←c101992)+287)/* var←c91720 */ )), 4, 1);
SOURCE(4418, 17)
   (* (( (ptr) gf←c101992)+4)/* Problem←v5660 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c101992)+299)/* var←c91880 */  ))+28)
    ) );
SOURCE(4471, 31)
   (* (( (ptr) gf←c101992)+5)/* copyRestore←v5688 */  ) = 1;
SOURCE(82350, 6)
   (void) Init←P5340();
   }

static word BuildBoxSliceClass←P60()
   {
   register ptr gf←c102024 =  (ptr) &globalframe;
   word class←v9320;
   /* BuildBoxSliceClass: */ 
SOURCE(4542, 2266)
SOURCE(4542, 2266)
   class←v9320 = 0;
SOURCE(4623, 2185)
   {
      word var←c91912;
      var←c91912 = XR←NewObject(252, (* (( (ptr) gf←c102024)+21) ));
      (*  (ptr) var←c91912 ) = (* (( (ptr) gf←c102024)+30) );
      (* (( (ptr) var←c91912)+1) ) = (word) (( (bPt) gf←c102024)+908)/* var←c90952 */ ;
      (* (( (ptr) var←c91912)+2) ) = (* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+131) );
      (* (( (ptr) var←c91912)+3) ) = (word) (( (bPt) gf←c102024)+900)/* var←c90920 */ ;
      (* (( (ptr) var←c91912)+4) ) = (word) (( (bPt) gf←c102024)+892)/* var←c90888 */ ;
      (* (( (ptr) var←c91912)+5) ) = (* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+71) );
      (* (( (ptr) var←c91912)+6) ) = (word) (( (bPt) gf←c102024)+884)/* var←c90856 */ ;
      (* (( (ptr) var←c91912)+7) ) = (word) (( (bPt) gf←c102024)+876)/* var←c90824 */ ;
      (* (( (ptr) var←c91912)+8) ) = (word) (( (bPt) gf←c102024)+868)/* var←c90792 */ ;
      (* (( (ptr) var←c91912)+9) ) = (word) (( (bPt) gf←c102024)+828)/* var←c90632 */ ;
      (* (( (ptr) var←c91912)+10) ) = (word) (( (bPt) gf←c102024)+820)/* var←c90600 */ ;
      (* (( (ptr) var←c91912)+11) ) = (word) (( (bPt) gf←c102024)+796)/* var←c90504 */ ;
      (* (( (ptr) var←c91912)+12) ) = (word) (( (bPt) gf←c102024)+812)/* var←c90568 */ ;
      (* (( (ptr) var←c91912)+13) ) = (word) (( (bPt) gf←c102024)+804)/* var←c90536 */ ;
      (* (( (ptr) var←c91912)+14) ) = (word) (( (bPt) gf←c102024)+740)/* var←c90280 */ ;
      (* (( (ptr) var←c91912)+15) ) = (word) (( (bPt) gf←c102024)+732)/* var←c90248 */ ;
      (* (( (ptr) var←c91912)+16) ) = (word) (( (bPt) gf←c102024)+724)/* var←c90216 */ ;
      (* (( (ptr) var←c91912)+17) ) = (word) (( (bPt) gf←c102024)+708)/* var←c90152 */ ;
      (* (( (ptr) var←c91912)+18) ) = (word) (( (bPt) gf←c102024)+716)/* var←c90184 */ ;
      (* (( (ptr) var←c91912)+19) ) = (word) (( (bPt) gf←c102024)+700)/* var←c90120 */ ;
      (* (( (ptr) var←c91912)+20) ) = (word) (( (bPt) gf←c102024)+692)/* var←c90088 */ ;
      (* (( (ptr) var←c91912)+21) ) = (word) (( (bPt) gf←c102024)+572)/* var←c89608 */ ;
      (* (( (ptr) var←c91912)+22) ) = (word) (( (bPt) gf←c102024)+564)/* var←c89576 */ ;
      (* (( (ptr) var←c91912)+23) ) = (word) (( (bPt) gf←c102024)+548)/* var←c89512 */ ;
      (* (( (ptr) var←c91912)+24) ) = (word) (( (bPt) gf←c102024)+540)/* var←c89480 */ ;
      (* (( (ptr) var←c91912)+25) ) = (word) (( (bPt) gf←c102024)+532)/* var←c89448 */ ;
      (* (( (ptr) var←c91912)+26) ) = (word) (( (bPt) gf←c102024)+500)/* var←c89320 */ ;
      (* (( (ptr) var←c91912)+27) ) = (word) (( (bPt) gf←c102024)+492)/* var←c89288 */ ;
      (* (( (ptr) var←c91912)+28) ) = (word) (( (bPt) gf←c102024)+484)/* var←c89256 */ ;
      (* (( (ptr) var←c91912)+29) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+98) );
      (* (( (ptr) var←c91912)+30) ) = (word) (( (bPt) gf←c102024)+644)/* var←c89896 */ ;
      (* (( (ptr) var←c91912)+31) ) = (word) (( (bPt) gf←c102024)+636)/* var←c89864 */ ;
      (* (( (ptr) var←c91912)+32) ) = (word) (( (bPt) gf←c102024)+628)/* var←c89832 */ ;
      (* (( (ptr) var←c91912)+33) ) = (word) (( (bPt) gf←c102024)+620)/* var←c89800 */ ;
      (* (( (ptr) var←c91912)+34) ) = (word) (( (bPt) gf←c102024)+612)/* var←c89768 */ ;
      (* (( (ptr) var←c91912)+35) ) = (word) (( (bPt) gf←c102024)+604)/* var←c89736 */ ;
      (* (( (ptr) var←c91912)+36) ) = (word) (( (bPt) gf←c102024)+588)/* var←c89672 */ ;
      (* (( (ptr) var←c91912)+37) ) = (word) (( (bPt) gf←c102024)+580)/* var←c89640 */ ;
      (* (( (ptr) var←c91912)+38) ) = (word) (( (bPt) gf←c102024)+476)/* var←c89224 */ ;
      (* (( (ptr) var←c91912)+39) ) = (word) (( (bPt) gf←c102024)+468)/* var←c89192 */ ;
      (* (( (ptr) var←c91912)+40) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+108) );
      (* (( (ptr) var←c91912)+41) ) = (word) (( (bPt) gf←c102024)+460)/* var←c89160 */ ;
      (* (( (ptr) var←c91912)+42) ) = (word) (( (bPt) gf←c102024)+452)/* var←c89128 */ ;
      (* (( (ptr) var←c91912)+43) ) = (word) (( (bPt) gf←c102024)+444)/* var←c89096 */ ;
      (* (( (ptr) var←c91912)+44) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+112) );
      (* (( (ptr) var←c91912)+45) ) = (word) (( (bPt) gf←c102024)+436)/* var←c89064 */ ;
      (* (( (ptr) var←c91912)+46) ) = (word) (( (bPt) gf←c102024)+380)/* var←c88840 */ ;
      (* (( (ptr) var←c91912)+47) ) = (word) (( (bPt) gf←c102024)+388)/* var←c88872 */ ;
      (* (( (ptr) var←c91912)+48) ) = (word) (( (bPt) gf←c102024)+372)/* var←c88808 */ ;
      (* (( (ptr) var←c91912)+49) ) = (word) (( (bPt) gf←c102024)+364)/* var←c88776 */ ;
      (* (( (ptr) var←c91912)+50) ) = (word) (( (bPt) gf←c102024)+340)/* var←c88680 */ ;
      (* (( (ptr) var←c91912)+51) ) = (word) (( (bPt) gf←c102024)+356)/* var←c88744 */ ;
      (* (( (ptr) var←c91912)+52) ) = (word) (( (bPt) gf←c102024)+348)/* var←c88712 */ ;
      (* (( (ptr) var←c91912)+53) ) = (word) (( (bPt) gf←c102024)+420)/* var←c89000 */ ;
      (* (( (ptr) var←c91912)+54) ) = (word) (( (bPt) gf←c102024)+412)/* var←c88968 */ ;
      (* (( (ptr) var←c91912)+55) ) = (word) (( (bPt) gf←c102024)+404)/* var←c88936 */ ;
      (* (( (ptr) var←c91912)+56) ) = (word) (( (bPt) gf←c102024)+396)/* var←c88904 */ ;
      (* (( (ptr) var←c91912)+57) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+125) );
      (* (( (ptr) var←c91912)+58) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c102024)+300)/* var←c91944 */  ))+126) );
      (* (( (ptr) var←c91912)+59) ) = (word) (( (bPt) gf←c102024)+332)/* var←c88648 */ ;
      (* (( (ptr) var←c91912)+60) ) = (word) (( (bPt) gf←c102024)+324)/* var←c88616 */ ;
      (* (( (ptr) var←c91912)+61) ) = (word) (( (bPt) gf←c102024)+316)/* var←c88584 */ ;
      (* (( (ptr) var←c91912)+62) ) = (word) (( (bPt) gf←c102024)+308)/* var←c88552 */ ;
      class←v9320 = var←c91912;
      };
SOURCE(4542, 2266)
   return(class←v9320);
   }

static word MakeBoxSlice←P120(box←v9380, corner←v9408, transform←v9436)
   word box←v9380;
   word corner←v9408;
   word transform←v9436;
   {
   register ptr gf←c102056 =  (ptr) &globalframe;
   word sliceD←v9480;
   word boxSlice←v23204 = 0;
   word inverse←v23232;
   word boxData←v23260;
   word boxParts←v23288;
   word cIndex←v23316;
   /* MakeBoxSlice: */ 
SOURCE(6814, 1580)
SOURCE(6814, 1580)
   sliceD←v9480 = 0;
SOURCE(6979, 64)
   {
      word pd94;
      pd94 = (* (( (ptr) (* (( (ptr) gf←c102056)+301)/* var←c91976 */  ))+51) );
      inverse←v23232 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))(transform←v9436, pd94);
      };
SOURCE(7045, 177)
   {
      W6 var←c0140;
      W2 var←c92008;
      word var←c92040;
      {
         word pd95;
         pd95 = (* (( (ptr) (* (( (ptr) gf←c102056)+301)/* var←c91976 */  ))+50) );
         (void) ( *( (fPt) ((*  (ptr) pd95 ))))((word) &var←c0140, inverse←v23232, pd95);
         };
      var←c92008 = (*  (W2Pt) (( (ptr) &var←c0140)+1) );
      var←c92040 = XR←NewObject(160, (* (( (ptr) gf←c102056)+25) ));
      (*  (ptr) var←c92040 ) = box←v9380;
      (* (( (ptr) var←c92040)+1) ) = transform←v9436;
      (* (( (ptr) var←c92040)+2) ) = inverse←v23232;
      (*  (W2Pt) (( (ptr) var←c92040)+3) ) = var←c92008;
      (* (( (ptr) var←c92040)+14) ) = 2;
      (* (( (ptr) var←c92040)+15) ) = 1;
      (*  (W20Pt) (( (ptr) var←c92040)+16) ) = (*  (W20Pt) (( (ptr) gf←c102056)+255)/* var←c91464 */  );
      (*  (W4Pt) (( (ptr) var←c92040)+36) ) = (*  (W4Pt) (( (ptr) gf←c102056)+275)/* var←c91528 */  );
      boxData←v23260 = var←c92040;
      };
SOURCE(7224, 96)
   boxParts←v23288 = XR←NewObject(36, (* (( (ptr) gf←c102056)+28) ));
SOURCE(7322, 74)
   {
      word var←c92104;
      var←c92104 = corner←v9408;
      switch (var←c92104) {
         case 1: 
            cIndex←v23316 = 0;
            break;
         case 2: 
            cIndex←v23316 = 1;
            break;
         case 3: 
            cIndex←v23316 = 2;
            break;
         case 4: 
            cIndex←v23316 = 3;
            break;
         default: 
            cIndex←v23316 = 2;
            break;
         };
      };
SOURCE(7398, 31)
   (* (( (ptr) boxParts←v23288)+BCK(cIndex←v23316, 4)) ) = 1;
SOURCE(7431, 76)
   {
      word x96;
      word x97;
      if (((
         x96 = (*  (ptr) box←v9380 ),  *(float*)&x96
         ) > (
         x97 = (* (( (ptr) box←v9380)+2) ),  *(float*)&x97
         ))) {
SOURCE(7457, 50)
         {
            word t←v23360;
SOURCE(7458, 17)
            t←v23360 = (*  (ptr) box←v9380 );
SOURCE(7477, 17)
            (*  (ptr) box←v9380 ) = (* (( (ptr) box←v9380)+2) );
SOURCE(7496, 11)
            (* (( (ptr) box←v9380)+2) ) = t←v23360;
            };
         };
      };
SOURCE(7510, 76)
   {
      word x98;
      word x99;
      if (((
         x98 = (* (( (ptr) box←v9380)+1) ),  *(float*)&x98
         ) > (
         x99 = (* (( (ptr) box←v9380)+3) ),  *(float*)&x99
         ))) {
SOURCE(7536, 50)
         {
            word t←v23404;
SOURCE(7537, 17)
            t←v23404 = (* (( (ptr) box←v9380)+1) );
SOURCE(7556, 17)
            (* (( (ptr) box←v9380)+1) ) = (* (( (ptr) box←v9380)+3) );
SOURCE(7575, 11)
            (* (( (ptr) box←v9380)+3) ) = t←v23404;
            };
         };
      };
SOURCE(7589, 295)
   {
      register word i←v23448 = 0;
      lab←L100003: ;
      {
         word newSeg←v23492;
SOURCE(7613, 137)
         {
            W2 var←c92136;
            W2 var←c92168;
            (void) BoxPointFromIndex←P540((word) &var←c92136, (*  (ptr) boxData←v23260 ), BCK(i←v23448, 4));
            (void) BoxPointFromIndex←P540((word) &var←c92168, (*  (ptr) boxData←v23260 ), ((i←v23448 + 1) & 3));
            {
               word pd100;
               pd100 = (* (( (ptr) (* (( (ptr) gf←c102056)+302)/* var←c92200 */  ))+5) );
               newSeg←v23492 = (word) ( *( (fPt) ((*  (ptr) pd100 ))))(var←c92136, var←c92168, 0, pd100);
               };
            };
SOURCE(7752, 24)
         (* (( (ptr) newSeg←v23492)+2) ) = (*  (ptr) &fc101 );
SOURCE(7778, 24)
         (* (( (ptr) newSeg←v23492)+3) ) = 2;
SOURCE(7804, 21)
         (* (( (ptr) newSeg←v23492)+4) ) = 0;
SOURCE(7827, 27)
         (* (( (ptr) newSeg←v23492)+8) ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c102056)+303)/* var←c92232 */  ))+54) ) );
SOURCE(7856, 28)
         (* ((( (ptr) boxData←v23260)+36)+BCK(i←v23448, 4)) ) = newSeg←v23492;
         };
      if ((i←v23448 >= 3)) {
         goto lab←L100000;
         };
      i←v23448 = (i←v23448 + 1);
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(7950, 225)
   {
      word var←c92264;
      word var←c92296;
      word var←c92360;
      word var←c92392;
      {
         word pd102;
         pd102 = (* (( (ptr) (* (( (ptr) gf←c102056)+300)/* var←c91944 */  ))+7) );
         var←c92264 = (word) ( *( (fPt) ((*  (ptr) pd102 ))))((* ((( (ptr) gf←c102056)+30)) ), pd102);
         };
      {
         word pd103;
         pd103 = (* (( (ptr) (* (( (ptr) gf←c102056)+304)/* var←c92328 */  ))+6) );
         var←c92296 = (word) ( *( (fPt) ((*  (ptr) pd103 ))))(pd103);
         };
      {
         word pd104;
         pd104 = (* (( (ptr) (* (( (ptr) gf←c102056)+304)/* var←c92328 */  ))+6) );
         var←c92360 = (word) ( *( (fPt) ((*  (ptr) pd104 ))))(pd104);
         };
      var←c92392 = XR←NewObject(92, (* (( (ptr) gf←c102056)+29) ));
      (*  (ptr) var←c92392 ) = var←c92264;
      (* (( (ptr) var←c92392)+1) ) = boxData←v23260;
      (*  (W4Pt) (( (ptr) var←c92392)+3) ) = (*  (W4Pt) (( (ptr) gf←c102056)+279)/* var←c91592 */  );
      (* (( (ptr) var←c92392)+13) ) = var←c92296;
      (* (( (ptr) var←c92392)+15) ) = var←c92360;
      (* (( (ptr) var←c92392)+21) ) =  (word) -1;
      boxSlice←v23204 = var←c92392;
      };
SOURCE(8177, 68)
   {
      word pd105;
      pd105 = (* (( (ptr) (* (( (ptr) gf←c102056)+300)/* var←c91944 */  ))+8) );
      (* (( (ptr) boxSlice←v23204)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd105 ))))(boxSlice←v23204, 0, pd105);
      };
SOURCE(8247, 34)
   (void) BoxSetSegments←P600(boxSlice←v23204, boxParts←v23288);
SOURCE(8338, 56)
   {
      word pd106;
      pd106 = (* (( (ptr) (* (( (ptr) gf←c102056)+300)/* var←c91944 */  ))+8) );
      sliceD←v9480 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))(boxSlice←v23204, boxParts←v23288, pd106);
      };
SOURCE(6814, 1580)
   return(sliceD←v9480);
   }

static word MakeBoxFromMaskPixel←P180(pa←v9540, color←v9568, router←v9596, transform←v9624)
   word pa←v9540;
   word color←v9568;
   word router←v9596;
   word transform←v9624;
   {
   register ptr gf←c102088 =  (ptr) &globalframe;
   word slice←v9668;
   word boxData←v23536 = 0;
   word boundBox←v23564;
   /* MakeBoxFromMaskPixel: */ 
SOURCE(8400, 424)
SOURCE(8400, 424)
   slice←v9668 = 0;
SOURCE(8569, 56)
   {
      word pd107;
      pd107 = (* (( (ptr) (* (( (ptr) gf←c102088)+304)/* var←c92328 */  ))+12) );
      boundBox←v23564 = (word) ( *( (fPt) ((*  (ptr) pd107 ))))(pa←v9540, pd107);
      };
SOURCE(8628, 53)
   slice←v9668 = (*  (ptr) MakeBoxSlice←P120(boundBox←v23564, 0, transform←v9624) );
SOURCE(8683, 28)
   boxData←v23536 = XR←Narrow((* (( (ptr) slice←v9668)+1) ), (* (( (ptr) gf←c102088)+25) ));
SOURCE(8713, 27)
   (* (( (ptr) boxData←v23536)+6) ) = pa←v9540;
SOURCE(8742, 25)
   (* (( (ptr) boxData←v23536)+5) ) = color←v9568;
SOURCE(8769, 55)
   {
      register word i←v23608 = 0;
      lab←L100007: ;
SOURCE(8793, 31)
      (* (( (ptr) (* ((( (ptr) boxData←v23536)+36)+BCK(i←v23608, 4)) ))+8) ) = 0;
      if ((i←v23608 >= 3)) {
         goto lab←L100004;
         };
      i←v23608 = (i←v23608 + 1);
      goto lab←L100007;
      lab←L100004: ;
      };
SOURCE(8400, 424)
   return(slice←v9668);
   }

static word BoxFetchSegment←P240(slice←v9728, index←v9756)
   word slice←v9728;
   word index←v9756;
   {
   register ptr gf←c102120 =  (ptr) &globalframe;
   word seg←v9800;
   word boxData←v23652;
   /* BoxFetchSegment: */ 
SOURCE(8839, 151)
SOURCE(8839, 151)
   seg←v9800 = 0;
SOURCE(8922, 37)
   boxData←v23652 = XR←Narrow((* (( (ptr) slice←v9728)+1) ), (* (( (ptr) gf←c102120)+25) ));
SOURCE(8961, 29)
   seg←v9800 = (* ((( (ptr) boxData←v23652)+36)+BCK(index←v9756, 4)) );
SOURCE(8839, 151)
   return(seg←v9800);
   }

static void SetBoxText←P300(slice←v9860, loc←v9888, screenStyle←v9916, history←v9944)
   word slice←v9860;
   W2 loc←v9888;
   word screenStyle←v9916;
   word history←v9944;
   {
   register ptr gf←c102152 =  (ptr) &globalframe;
   W3 nilFormattedNodes←v23696;
   /* SetBoxText: */ 
SOURCE(8996, 1004)
SOURCE(9113, 63)
   nilFormattedNodes←v23696.f0 = 0;
   nilFormattedNodes←v23696.f1 = 0;
   nilFormattedNodes←v23696.f2 = 0;
SOURCE(9178, 822)
   {
      word var←c92488;
      {
         word pd108;
         pd108 = (* (( (ptr) (* (( (ptr) gf←c102152)+305)/* var←c92456 */  ))+6) );
         var←c92488 = (word) ( *( (fPt) ((*  (ptr) pd108 ))))(slice←v9860, pd108);
         };
      if ((var←c92488 == (* (( (ptr) gf←c102152)+30) ))) {
SOURCE(9224, 778)
         {
            word boxData←v23740;
            word box←v23768;
SOURCE(9226, 37)
            boxData←v23740 = XR←Narrow((* (( (ptr) slice←v9860)+1) ), (* (( (ptr) gf←c102152)+25) ));
SOURCE(9265, 27)
            box←v23768 = (*  (ptr) boxData←v23740 );
SOURCE(9294, 607)
            if ((0 != (word) IsChildOfOutline←P660(slice←v9860))) {
SOURCE(9384, 175)
               {
                  W3 var←c92520;
                  if ((loc←v9888.f0 != 0)) {
                     {
                        W3 var←c0179;
                        {
                           W2 var←c92552;
                           {
/*1*/   word x109;
/*1*/   word x110;
/*1*/   *(float*)&var←c92552.f0 = (
/*1*/      x109 = (* (( (ptr) box←v23768)+2) ),  *(float*)&x109
/*1*/      ) - (
/*1*/      x110 = (*  (ptr) box←v23768 ),  *(float*)&x110
/*1*/      );
/*1*/   };
                           {
/*1*/   word x111;
/*1*/   word x112;
/*1*/   *(float*)&var←c92552.f1 = (
/*1*/      x111 = (* (( (ptr) box←v23768)+3) ),  *(float*)&x111
/*1*/      ) - (
/*1*/      x112 = (* (( (ptr) box←v23768)+1) ),  *(float*)&x112
/*1*/      );
/*1*/   };
                           {
/*1*/   word pd113;
/*1*/   pd113 = (* (( (ptr) (* (( (ptr) gf←c102152)+306)/* var←c92584 */  ))+5) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd113 ))))((word) &var←c0179, loc←v9888, var←c92552,  ( (0 != screenStyle←v9916) ? 0 : 1 ) , 0, 0, pd113)
/*1*/   ;
/*1*/   };
                           };
                        var←c92520 = var←c0179;
                        };
                     }
                  else {
                     var←c92520 = nilFormattedNodes←v23696;
                     };
                  (*  (W3Pt) (( (ptr) boxData←v23740)+9) ) = var←c92520;
                  };
               }
            else {
SOURCE(9568, 335)
               {
                  word firstChildNode←v23812;
SOURCE(9642, 60)
                  {
                     word pd114;
                     pd114 = (* (( (ptr) (* (( (ptr) gf←c102152)+307)/* var←c92616 */  ))+28) );
                     firstChildNode←v23812 = (word) ( *( (fPt) ((*  (ptr) pd114 ))))(loc←v9888.f0, pd114);
                     };
SOURCE(9704, 197)
                  {
                     W3 var←c92648;
                     if ((firstChildNode←v23812 != 0)) {
                        {
                           W3 var←c0184;
                           {
/*1*/   W2 var←c92680;
/*1*/   W2 var←c92712;
/*1*/   var←c92680.f0 = firstChildNode←v23812;
/*1*/   var←c92680.f1 = 0;
/*1*/   {
/*1*/      word x115;
/*1*/      word x116;
/*1*/      *(float*)&var←c92712.f0 = (
/*1*/         x115 = (* (( (ptr) box←v23768)+2) ),  *(float*)&x115
/*1*/         ) - (
/*1*/         x116 = (*  (ptr) box←v23768 ),  *(float*)&x116
/*1*/         );
/*1*/      };
/*1*/   {
/*1*/      word x117;
/*1*/      word x118;
/*1*/      *(float*)&var←c92712.f1 = (
/*1*/         x117 = (* (( (ptr) box←v23768)+3) ),  *(float*)&x117
/*1*/         ) - (
/*1*/         x118 = (* (( (ptr) box←v23768)+1) ),  *(float*)&x118
/*1*/         );
/*1*/      };
/*1*/   {
/*1*/      word pd119;
/*1*/      pd119 = (* (( (ptr) (* (( (ptr) gf←c102152)+306)/* var←c92584 */  ))+5) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd119 ))))((word) &var←c0184, var←c92680, var←c92712,  ( (0 != screenStyle←v9916) ? 0 : 1 ) , 0, 0, pd119)
/*1*/      ;
/*1*/      };
/*1*/   };
                           var←c92648 = var←c0184;
                           };
                        }
                     else {
                        var←c92648 = nilFormattedNodes←v23696;
                        };
                     (*  (W3Pt) (( (ptr) boxData←v23740)+9) ) = var←c92648;
                     };
                  };
               };
SOURCE(9906, 33)
            (* (( (ptr) boxData←v23740)+12) ) = screenStyle←v9916;
SOURCE(9941, 35)
            (* (( (ptr) boxData←v23740)+13) ) = screenStyle←v9916;
SOURCE(9978, 22)
            (*  (W2Pt) (( (ptr) boxData←v23740)+7) ) = loc←v9888;
            };
         }
      else {
         };
      };
   }

static void GetBoxText←P360(formal←c0191, slice←v10004)
   word formal←c0191;
   word slice←v10004;
   {
   register ptr gf←c102184 =  (ptr) &globalframe;
   W2 loc←v10048;
   word screenStyle←v10076;
   /* GetBoxText: */ 
SOURCE(10076, 393)
SOURCE(10076, 393)
   loc←v10048.f0 = 0;
   loc←v10048.f1 = 0;
SOURCE(10076, 393)
   screenStyle←v10076 = 0;
SOURCE(10179, 290)
   {
      word var←c92744;
      {
         word pd120;
         pd120 = (* (( (ptr) (* (( (ptr) gf←c102184)+305)/* var←c92456 */  ))+6) );
         var←c92744 = (word) ( *( (fPt) ((*  (ptr) pd120 ))))(slice←v10004, pd120);
         };
      if ((var←c92744 == (* (( (ptr) gf←c102184)+30) ))) {
SOURCE(10225, 100)
         {
            word boxData←v23856;
SOURCE(10227, 37)
            boxData←v23856 = XR←Narrow((* (( (ptr) slice←v10004)+1) ), (* (( (ptr) gf←c102184)+25) ));
SOURCE(10266, 22)
            loc←v10048 = (*  (W2Pt) (( (ptr) boxData←v23856)+7) );
SOURCE(10290, 33)
            screenStyle←v10076 = (* (( (ptr) boxData←v23856)+12) );
            };
         }
      else {
         if ((var←c92744 == (* (( (ptr) gf←c102184)+31) ))) {
SOURCE(10340, 131)
            {
               word outlineData←v23900;
SOURCE(10342, 55)
               outlineData←v23900 = XR←Narrow((* (( (ptr) slice←v10004)+1) ), (* (( (ptr) gf←c102184)+17) ));
SOURCE(10399, 31)
               loc←v10048.f0 = (* (( (ptr) outlineData←v23900)+2) );
               loc←v10048.f1 = 0;
SOURCE(10432, 37)
               screenStyle←v10076 = (* (( (ptr) outlineData←v23900)+3) );
               };
            };
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0191 ) = loc←v10048;
   (* (( (ptr) formal←c0191)+2) ) = screenStyle←v10076;
   return;
   }

static void GetBoxNodes←P420(formal←c0196, slice←v10136)
   word formal←c0196;
   word slice←v10136;
   {
   register ptr gf←c102216 =  (ptr) &globalframe;
   W3 nodes←v10180;
   /* GetBoxNodes: */ 
SOURCE(10487, 203)
SOURCE(10487, 203)
   nodes←v10180.f0 = 0;
   nodes←v10180.f1 = 0;
   nodes←v10180.f2 = 0;
SOURCE(10575, 115)
   {
      word var←c92776;
      var←c92776 = (* (( (ptr) slice←v10136)+1) );
      if ((var←c92776 == 0)) {
         goto lab←L100010;
         };
      if (((* (( (ptr) gf←c102216)+25) ) == XR←GetReferentType(var←c92776))) {
         {
            word boxData←v23944;
            boxData←v23944 = var←c92776;
SOURCE(10623, 30)
            nodes←v10180 = (*  (W3Pt) (( (ptr) boxData←v23944)+9) );
            };
         }
      else {
         lab←L100010: ;
SOURCE(10666, 24)
         nodes←v10180.f0 = 0;
         nodes←v10180.f1 = 0;
         nodes←v10180.f2 = 0;
         };
      };
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0196 ) = nodes←v10180;
   return;
   }

static word BoxMaxStrokeWidth←P480(boxData←v10240)
   word boxData←v10240;
   {
   word maxWidth←v10284;
   /* BoxMaxStrokeWidth: */ 
SOURCE(10696, 197)
SOURCE(10768, 42)
   maxWidth←v10284 = (* (( (ptr) (* (( (ptr) boxData←v10240)+36) ))+2) );
SOURCE(10812, 81)
   {
      register word i←v23988 = 1;
      lab←L100014: ;
SOURCE(10836, 57)
      {
         word x121;
         float tf122;
         float tf123;
         word x124;
         float tf125;
         maxWidth←v10284 = (
            tf125 = FMAX((
                  x121 = maxWidth←v10284,  *(float*)&x121
                  ), (
                  x124 = (* (( (ptr) (* ((( (ptr) boxData←v10240)+36)+BCK(i←v23988, 4)) ))+2) ),  *(float*)&x124
                  ), tf122, tf123),  *(word*)&tf125
            );
         };
      if ((i←v23988 >= 3)) {
         goto lab←L100011;
         };
      i←v23988 = (i←v23988 + 1);
      goto lab←L100014;
      lab←L100011: ;
      };
SOURCE(10696, 197)
   return(maxWidth←v10284);
   }

static void BoxPointFromIndex←P540(formal←c0210, box←v10344, index←v10372)
   word formal←c0210;
   word box←v10344;
   word index←v10372;
   {
   W2 point←v10436;
   /* BoxPointFromIndex: */ 
SOURCE(10908, 237)
SOURCE(10990, 155)
   {
      word var←c92808;
      var←c92808 = index←v10372;
      switch (var←c92808) {
         case 0: 
            point←v10436.f0 = (*  (ptr) box←v10344 );
            point←v10436.f1 = (* (( (ptr) box←v10344)+1) );
            break;
         case 1: 
            point←v10436.f0 = (*  (ptr) box←v10344 );
            point←v10436.f1 = (* (( (ptr) box←v10344)+3) );
            break;
         case 2: 
            point←v10436.f0 = (* (( (ptr) box←v10344)+2) );
            point←v10436.f1 = (* (( (ptr) box←v10344)+3) );
            break;
         case 3: 
            point←v10436.f0 = (* (( (ptr) box←v10344)+2) );
            point←v10436.f1 = (* (( (ptr) box←v10344)+1) );
            break;
         default: 
            point←v10436.f0 = (*  (ptr) &fc126 );
            point←v10436.f1 = (*  (ptr) &fc126 );
            break;
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0210 ) = point←v10436;
   return;
   }

static void BoxSetSegments←P600(slice←v10496, parts←v10524)
   word slice←v10496;
   word parts←v10524;
   {
   register ptr gf←c102248 =  (ptr) &globalframe;
   word boxData←v24032;
   /* BoxSetSegments: */ 
SOURCE(11151, 431)
SOURCE(11224, 37)
   boxData←v24032 = XR←Narrow((* (( (ptr) slice←v10496)+1) ), (* (( (ptr) gf←c102248)+25) ));
SOURCE(11263, 319)
   {
      register word i←v24076 = 0;
      lab←L100019: ;
      {
         W2 lo←v24120;
         W2 hi←v24148;
SOURCE(11287, 45)
         (void) BoxPointFromIndex←P540((word) &lo←v24120, (*  (ptr) boxData←v24032 ), BCK(i←v24076, 4));
SOURCE(11334, 55)
         (void) BoxPointFromIndex←P540((word) &hi←v24148, (*  (ptr) boxData←v24032 ), ((i←v24076 + 1) & 3));
SOURCE(11391, 94)
         if ( ! XR←EqualWords(&lo←v24120, (( (ptr) (* ((( (ptr) boxData←v24032)+36)+BCK(i←v24076, 4)) ))+9), 2)) {
SOURCE(11425, 60)
            {
               word pd127;
               pd127 = (* (( (ptr) (* (( (ptr) gf←c102248)+302)/* var←c92200 */  ))+28) );
               (void) ( *( (fPt) ((*  (ptr) pd127 ))))((* ((( (ptr) boxData←v24032)+36)+BCK(i←v24076, 4)) ), 1, lo←v24120, pd127);
               };
            };
SOURCE(11487, 95)
         if ( ! XR←EqualWords(&hi←v24148, (( (ptr) (* ((( (ptr) boxData←v24032)+36)+BCK(i←v24076, 4)) ))+11), 2)) {
SOURCE(11521, 61)
            {
               word pd128;
               pd128 = (* (( (ptr) (* (( (ptr) gf←c102248)+302)/* var←c92200 */  ))+28) );
               (void) ( *( (fPt) ((*  (ptr) pd128 ))))((* ((( (ptr) boxData←v24032)+36)+BCK(i←v24076, 4)) ), 0, hi←v24148, pd128);
               };
            };
         };
      if ((i←v24076 >= 3)) {
         goto lab←L100016;
         };
      i←v24076 = (i←v24076 + 1);
      goto lab←L100019;
      lab←L100016: ;
      };
   }

static word IsChildOfOutline←P660(slice←v10584)
   word slice←v10584;
   {
   register ptr gf←c102280 =  (ptr) &globalframe;
   word var←c10628;
   /* IsChildOfOutline: */ 
SOURCE(11597, 154)
SOURCE(11654, 97)
   {
      word var←c01478;
      {
         word pd129;
         pd129 = (* (( (ptr) (* (( (ptr) gf←c102280)+308)/* var←c93064 */  ))+39) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd129 ))))(slice←v10584, pd129))) {
            {
               word var←c93096;
               word var←c01477;
               {
                  word pd130;
                  pd130 = (* (( (ptr) (* (( (ptr) gf←c102280)+309)/* var←c93128 */  ))+64) );
                  var←c93096 = (word) ( *( (fPt) ((*  (ptr) pd130 ))))(slice←v10584, pd130);
                  };
               {
                  word pd131;
                  pd131 = (* (( (ptr) (* (( (ptr) gf←c102280)+305)/* var←c92456 */  ))+6) );
                  var←c01477 = (word) ( *( (fPt) ((*  (ptr) pd131 ))))(var←c93096, pd131);
                  };
               var←c01478 =  (unsigned) (var←c01477 == (* (( (ptr) gf←c102280)+31) ));
               };
            }
         else {
            var←c01478 =  (unsigned) 0;
            };
         };
      return(var←c01478);
      };
   }

static void BoxGetBoundBoxAux←P720(formal←c0229, slice←v10688, parts←v10716)
   word formal←c0229;
   word slice←v10688;
   word parts←v10716;
   {
   W6 var←c102312;
   register ptr gf←c102344 =  (ptr) &globalframe;
   word tightBox←v10760;
   word boundBox←v10788;
   /* declaration of var←c93160 skipped */ 
   /* BoxGetBoundBoxAux: */ 
SOURCE(11788, 2050)
   {
      word tmpAddr132;
      tmpAddr132 = (word) (( (ptr) &var←c102312)+4)/* var←c93160 */ ;
      (*  (ptr) tmpAddr132 ) = ( ((word)  (fPt) BoxFindBoundBox←P6024) );
      (* (( (ptr) tmpAddr132) + 1) ) = 1;
      };
SOURCE(11788, 2050)
   tightBox←v10760 = 0;
SOURCE(11788, 2050)
   boundBox←v10788 = 0;
SOURCE(13521, 52)
   {
      W2 var←c93192;
      (void) BoxFindBoundBox←P6024((word) &var←c93192, slice←v10688, parts←v10716, (word) (( (bPt) &var←c102312)+16)/* var←c93160 */ )
      ;
      boundBox←v10788 = var←c93192.f1;
      tightBox←v10760 = var←c93192.f0;
      };
SOURCE(13602, 236)
   if ((parts←v10716 == 0)) {
SOURCE(13669, 34)
      {
         word pd133;
         pd133 = (* (( (ptr) (* (( (ptr) gf←c102344)+300)/* var←c91944 */  ))+68) );
         (void) ( *( (fPt) ((*  (ptr) pd133 ))))((* ((( (ptr) slice←v10688)+2)) ), pd133);
         };
SOURCE(13735, 25)
      (* (( (ptr) slice←v10688)+15) ) = boundBox←v10788;
SOURCE(13762, 25)
      (* (( (ptr) slice←v10688)+13) ) = tightBox←v10760;
SOURCE(13789, 21)
      (* (( (ptr) slice←v10688)+16) ) = 1;
SOURCE(13812, 26)
      (* (( (ptr) slice←v10688)+14) ) = 1;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0229 ) = tightBox←v10760;
   (* (( (ptr) formal←c0229)+1) ) = boundBox←v10788;
   return;
   }

static void BoxFindBoundBox←P6024(formal←c0253, slice←v24268, parts←v24296, formal←c102408)
   word formal←c0253;
   word slice←v24268;
   word parts←v24296;
   word formal←c102408;
   {
   register ptr gf←c102376 =  (ptr) &globalframe;
   word tightBox←v24340;
   word boundBox←v24368;
   word strokeWidth←v24396;
   word pad←v24424;
   word boxData←v24452;
   word boxParts←v24480;
   formal←c102408 = (formal←c102408 - 16);
   /* BoxFindBoundBox: */ 
SOURCE(11889, 1626)
SOURCE(11889, 1626)
   tightBox←v24340 = 0;
SOURCE(11889, 1626)
   boundBox←v24368 = 0;
SOURCE(11988, 57)
   {
      word var←c93224;
      var←c93224 = XR←Narrow((* (( (ptr) slice←v24268)+1) ), (* (( (ptr) gf←c102376)+25) ));
      strokeWidth←v24396 = (word) BoxMaxStrokeWidth←P480(var←c93224);
      };
SOURCE(12047, 40)
   {
      word x134;
      word x136;
      word x138;
      *(float*)&pad←v24424 = ((
         x134 = strokeWidth←v24396,  *(float*)&x134
         ) * (
         x136 = (*  (ptr) &fc135 ),  *(float*)&x136
         )) + (
         x138 = (*  (ptr) &fc137 ),  *(float*)&x138
         );
      };
SOURCE(12139, 37)
   boxData←v24452 = XR←Narrow((* (( (ptr) slice←v24268)+1) ), (* (( (ptr) gf←c102376)+25) ));
SOURCE(12178, 34)
   boxParts←v24480 = XR←Narrow(parts←v24296, (* (( (ptr) gf←c102376)+28) ));
   {
      W2 var←c0239;
      word var←c01479;
      W2 var←c0240;
      word var←c01480;
SOURCE(12214, 61)
      if ( ( (boxParts←v24480 != 0) ? (0 != (word) IsEmpty←P2580(boxParts←v24480)) : 0 ) ) {
SOURCE(12259, 16)
         tightBox←v24340 = 0;
         boundBox←v24368 = 0;
         goto lab←L100021;
         };
SOURCE(12277, 1104)
      if ((boxParts←v24480 == 0)) { goto then0139;};
      if ((0 != (* (( (ptr) boxParts←v24480)+8) ))) { goto then0139;};
      (void) CountCorners←P2640((word) &var←c0239, (*  (W4Pt) boxParts←v24480 ));
      var←c01479 = var←c0239.f0;
      if (( (int)var←c01479 >  (int)2)) { goto then0139;};
      (void) CountEdges←P2700((word) &var←c0240, (*  (W4Pt) (( (ptr) boxParts←v24480)+4) ));
      var←c01480 = var←c0240.f0;
      if (( (int)var←c01480 >  (int)1)) {
         then0139: ;
SOURCE(12429, 72)
         {
            word pd140;
            pd140 = (* (( (ptr) (* (( (ptr) gf←c102376)+304)/* var←c92328 */  ))+9) );
            tightBox←v24340 = (word) ( *( (fPt) ((*  (ptr) pd140 ))))((*  (ptr) boxData←v24452 ), (* (( (ptr) boxData←v24452)+1) ), pd140)
            ;
            };
         }
      else {
SOURCE(12551, 477)
         {
            register word i←v24524 = 0;
            lab←L100025: ;
SOURCE(12623, 405)
            if ((0 != (* ((( (ptr) boxParts←v24480)+4)+BCK(i←v24524, 4)) ))) {
SOURCE(12649, 381)
               {
                  W2 p1←v24568;
                  W2 p2←v24596;
SOURCE(12651, 36)
                  (void) BoxPoint←P3780((word) &p1←v24568, (*  (ptr) boxData←v24452 ), i←v24524);
SOURCE(12689, 46)
                  (void) BoxPoint←P3780((word) &p2←v24596, (*  (ptr) boxData←v24452 ), ((i←v24524 + 1) & 3));
SOURCE(12737, 58)
                  {
                     word pd141;
                     pd141 = (* (( (ptr) (* (( (ptr) gf←c102376)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd141 ))))((word) &p1←v24568, (* (( (ptr) boxData←v24452)+1) ), p1←v24568, pd141);
                     };
SOURCE(12797, 58)
                  {
                     word pd142;
                     pd142 = (* (( (ptr) (* (( (ptr) gf←c102376)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd142 ))))((word) &p2←v24596, (* (( (ptr) boxData←v24452)+1) ), p2←v24596, pd142);
                     };
SOURCE(12857, 171)
                  if ((tightBox←v24340 == 0)) {
SOURCE(12878, 111)
                     {
                        word pd143;
                        word x144;
                        float tf145;
                        float tf146;
                        word x147;
                        float tf148;
                        word x149;
                        float tf150;
                        float tf151;
                        word x152;
                        float tf153;
                        word x154;
                        float tf155;
                        float tf156;
                        word x157;
                        float tf158;
                        word x159;
                        float tf160;
                        float tf161;
                        word x162;
                        float tf163;
                        pd143 = (* (( (ptr) (* (( (ptr) gf←c102376)+304)/* var←c92328 */  ))+5) );
                        tightBox←v24340 = (word) ( *( (fPt) ((*  (ptr) pd143 ))))((
/*1*/   tf148 = FMIN((
/*1*/         x144 = p1←v24568.f0,  *(float*)&x144
/*1*/         ), (
/*1*/         x147 = p2←v24596.f0,  *(float*)&x147
/*1*/         ), tf145, tf146),  *(word*)&tf148
/*1*/   ), (
/*1*/   tf153 = FMIN((
/*1*/         x149 = p1←v24568.f1,  *(float*)&x149
/*1*/         ), (
/*1*/         x152 = p2←v24596.f1,  *(float*)&x152
/*1*/         ), tf150, tf151),  *(word*)&tf153
/*1*/   ), (
/*1*/   tf158 = FMAX((
/*1*/         x154 = p1←v24568.f0,  *(float*)&x154
/*1*/         ), (
/*1*/         x157 = p2←v24596.f0,  *(float*)&x157
/*1*/         ), tf155, tf156),  *(word*)&tf158
/*1*/   ), (
/*1*/   tf163 = FMAX((
/*1*/         x159 = p1←v24568.f1,  *(float*)&x159
/*1*/         ), (
/*1*/         x162 = p2←v24596.f1,  *(float*)&x162
/*1*/         ), tf160, tf161),  *(word*)&tf163
/*1*/   ), 0, 0, pd143);
                        };
                     }
                  else {
SOURCE(12989, 39)
                     {
                        word var←c0248;
                        var←c0248 = (* (( (ptr) gf←c102376)+33) );
                        (void) (XR←RaiseSignal((* (( (ptr) gf←c102376)+4)/* Problem←v5660 */  ), 0, (word) &var←c0248));
                        };
                     };
                  };
               };
            if ((i←v24524 >= 3)) {
               goto lab←L100022;
               };
            i←v24524 = (i←v24524 + 1);
            goto lab←L100025;
            lab←L100022: ;
            };
SOURCE(13042, 339)
         {
            register word i←v24640 = 0;
            lab←L100029: ;
SOURCE(13118, 263)
            if ((0 != (* (( (ptr) boxParts←v24480)+BCK(i←v24640, 4)) ))) {
SOURCE(13146, 237)
               {
                  W2 p1←v24684;
SOURCE(13148, 36)
                  (void) BoxPoint←P3780((word) &p1←v24684, (*  (ptr) boxData←v24452 ), i←v24640);
SOURCE(13186, 58)
                  {
                     word pd164;
                     pd164 = (* (( (ptr) (* (( (ptr) gf←c102376)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd164 ))))((word) &p1←v24684, (* (( (ptr) boxData←v24452)+1) ), p1←v24684, pd164);
                     };
SOURCE(13246, 135)
                  if ((tightBox←v24340 == 0)) {
SOURCE(13267, 75)
                     {
                        word pd165;
                        word x166;
                        word x167;
                        float tf168;
                        word x169;
                        word x170;
                        float tf171;
                        pd165 = (* (( (ptr) (* (( (ptr) gf←c102376)+304)/* var←c92328 */  ))+5) );
                        tightBox←v24340 = (word) ( *( (fPt) ((*  (ptr) pd165 ))))(p1←v24684.f0, p1←v24684.f1, (
/*1*/   tf168 = (
/*1*/      x166 = p1←v24684.f0,  *(float*)&x166
/*1*/      ) + (
/*1*/      x167 = (*  (ptr) &fc137 ),  *(float*)&x167
/*1*/      ),  *(word*)&tf168
/*1*/   ), (
/*1*/   tf171 = (
/*1*/      x169 = p1←v24684.f1,  *(float*)&x169
/*1*/      ) + (
/*1*/      x170 = (*  (ptr) &fc137 ),  *(float*)&x170
/*1*/      ),  *(word*)&tf171
/*1*/   ), 0, 0, pd165);
                        };
                     }
                  else {
SOURCE(13342, 39)
                     {
                        word pd172;
                        pd172 = (* (( (ptr) (* (( (ptr) gf←c102376)+304)/* var←c92328 */  ))+15) );
                        (void) ( *( (fPt) ((*  (ptr) pd172 ))))(tightBox←v24340, p1←v24684, pd172);
                        };
                     };
                  };
               };
            if ((i←v24640 >= 3)) {
               goto lab←L100026;
               };
            i←v24640 = (i←v24640 + 1);
            goto lab←L100029;
            lab←L100026: ;
            };
         };
SOURCE(13398, 44)
      {
         word pd173;
         pd173 = (* (( (ptr) (* (( (ptr) gf←c102376)+304)/* var←c92328 */  ))+7) );
         boundBox←v24368 = (word) ( *( (fPt) ((*  (ptr) pd173 ))))(tightBox←v24340, pd173);
         };
SOURCE(13444, 41)
      {
         word pd174;
         pd174 = (* (( (ptr) (* (( (ptr) gf←c102376)+304)/* var←c92328 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd174 ))))(boundBox←v24368, pad←v24424, pd174);
         };
SOURCE(13487, 28)
      (void) BoxSetSegments←P600(slice←v24268, parts←v24296);
      };
   /* removed tail goto */ 
   lab←L100021: ;
   (*  (ptr) formal←c0253 ) = tightBox←v24340;
   (* (( (ptr) formal←c0253)+1) ) = boundBox←v24368;
   return;
   }

static word BoxGetBoundBox←P780(slice←v10848, parts←v10876)
   word slice←v10848;
   word parts←v10876;
   {
   word box←v10920;
   /* BoxGetBoundBox: */ 
SOURCE(13847, 205)
SOURCE(13847, 205)
   box←v10920 = 0;
SOURCE(13930, 59)
   if ( ( (0 != (* (( (ptr) slice←v10848)+16) )) ? (parts←v10876 == 0) : 0 ) ) {
SOURCE(13967, 22)
      return((* (( (ptr) slice←v10848)+15) ));
      };
SOURCE(14004, 48)
   {
      word var←c01481;
      W2 var←c0257;
      (void) BoxGetBoundBoxAux←P720((word) &var←c0257, slice←v10848, parts←v10876);
      var←c01481 = var←c0257.f1;
      return(var←c01481);
      };
   }

static word BoxGetTightBox←P840(slice←v10980, parts←v11008)
   word slice←v10980;
   word parts←v11008;
   {
   word box←v11052;
   /* BoxGetTightBox: */ 
SOURCE(14086, 205)
SOURCE(14086, 205)
   box←v11052 = 0;
SOURCE(14169, 59)
   if ( ( (0 != (* (( (ptr) slice←v10980)+16) )) ? (parts←v11008 == 0) : 0 ) ) {
SOURCE(14206, 22)
      return((* (( (ptr) slice←v10980)+13) ));
      };
SOURCE(14243, 48)
   {
      word var←c01482;
      W2 var←c0261;
      (void) BoxGetBoundBoxAux←P720((word) &var←c0261, slice←v10980, parts←v11008);
      var←c01482 = var←c0261.f0;
      return(var←c01482);
      };
   }

static word BoxCopy←P900(slice←v11112, parts←v11140)
   word slice←v11112;
   word parts←v11140;
   {
   register ptr gf←c102440 =  (ptr) &globalframe;
   word copy←v11184;
   word copySlice←v24728 = 0;
   word copyData←v24756 = 0;
   word boxData←v24784;
   word box←v24812;
   word transform←v24840;
   /* BoxCopy: */ 
SOURCE(14325, 1100)
SOURCE(14325, 1100)
   copy←v11184 = 0;
SOURCE(14450, 37)
   boxData←v24784 = XR←Narrow((* (( (ptr) slice←v11112)+1) ), (* (( (ptr) gf←c102440)+25) ));
SOURCE(14489, 52)
   {
      word pd175;
      pd175 = (* (( (ptr) (* (( (ptr) gf←c102440)+304)/* var←c92328 */  ))+7) );
      box←v24812 = (word) ( *( (fPt) ((*  (ptr) pd175 ))))((*  (ptr) (boxData←v24784) ), pd175);
      };
SOURCE(14543, 72)
   {
      word pd176;
      pd176 = (* (( (ptr) (* (( (ptr) gf←c102440)+301)/* var←c91976 */  ))+6) );
      transform←v24840 = (word) ( *( (fPt) ((*  (ptr) pd176 ))))((* ((( (ptr) boxData←v24784)+1)) ), pd176);
      };
SOURCE(14617, 50)
   copySlice←v24728 = (*  (ptr) MakeBoxSlice←P120(box←v24812, 3, transform←v24840) );
SOURCE(14693, 33)
   copyData←v24756 = XR←Narrow((* (( (ptr) copySlice←v24728)+1) ), (* (( (ptr) gf←c102440)+25) ));
SOURCE(14728, 163)
   {
      register word i←v24884 = 0;
      lab←L100033: ;
SOURCE(14753, 70)
      {
         word var←c93320;
         {
            word pd177;
            pd177 = (* (( (ptr) (* (( (ptr) gf←c102440)+302)/* var←c92200 */  ))+17) );
            var←c93320 = (word) ( *( (fPt) ((*  (ptr) pd177 ))))((* (((( (ptr) boxData←v24784)+36)+BCK(i←v24884, 4))) ), pd177);
            };
         (* ((( (ptr) copyData←v24756)+36)+BCK(i←v24884, 4)) ) = var←c93320;
         };
SOURCE(14825, 66)
      (* (( (W4Pt) (( (ptr) copyData←v24756)+16))+BCK(i←v24884, 5)) ) = (* (( (W4Pt) (( (ptr) boxData←v24784)+16))+BCK(i←v24884, 5)
         ) );
      if ((i←v24884 >= 3)) {
         goto lab←L100030;
         };
      i←v24884 = (i←v24884 + 1);
      goto lab←L100033;
      lab←L100030: ;
      };
SOURCE(14902, 66)
   (*  (W4Pt) (( (ptr) copyData←v24756)+32) ) = (*  (W4Pt) (( (ptr) boxData←v24784)+32) );
SOURCE(14970, 34)
   (* (( (ptr) copyData←v24756)+15) ) = (* (( (ptr) boxData←v24784)+15) );
SOURCE(15006, 59)
   {
      word pd178;
      pd178 = (* (( (ptr) (* (( (ptr) gf←c102440)+310)/* var←c93352 */  ))+38) );
      (* (( (ptr) copyData←v24756)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd178 ))))((* ((( (ptr) boxData←v24784)+5)) ), pd178);
      };
SOURCE(15067, 48)
   (* (( (ptr) copyData←v24756)+6) ) = (* (( (ptr) boxData←v24784)+6) );
SOURCE(15117, 42)
   (* (( (ptr) copyData←v24756)+14) ) = (* (( (ptr) boxData←v24784)+14) );
SOURCE(15161, 101)
   if ((0 == (word) IsChildOfOutline←P660(slice←v11112))) {
SOURCE(15197, 65)
      (void) SetBoxText←P300(copySlice←v24728, (*  (W2Pt) (( (ptr) boxData←v24784)+7) ), (* (( (ptr) boxData←v24784)+12) ), 0);
      };
SOURCE(15347, 53)
   {
      word pd179;
      pd179 = (* (( (ptr) (* (( (ptr) gf←c102440)+311)/* var←c93384 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd179 ))))(slice←v11112, copySlice←v24728, 0, 0, pd179);
      };
SOURCE(15402, 23)
   {
      word var←c93448;
      word var←c93480;
      var←c93448 = XR←NewObject(8, (* (( (ptr) gf←c102440)+16) ));
      var←c93480 = var←c93448;
      (*  (ptr) var←c93480 ) = copySlice←v24728;
      return(var←c93448);
      };
   }

static void BoxRestore←P960(from←v11328, to←v11356)
   word from←v11328;
   word to←v11356;
   {
   register ptr gf←c102472 =  (ptr) &globalframe;
   /* BoxRestore: */ 
SOURCE(15431, 1355)
SOURCE(15477, 27)
   if ((to←v11356 == 0) || (from←v11328 == 0)) {
SOURCE(15504, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(15511, 28)
   if (((*  (ptr) to←v11356 ) != (*  (ptr) from←v11328 ))) {
SOURCE(15539, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(15546, 27)
   if (((*  (ptr) (*  (ptr) to←v11356 ) ) != (* (( (ptr) gf←c102472)+30) ))) {
SOURCE(15573, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(15580, 1208)
   {
      word fromData←v24928;
      word toData←v24956;
SOURCE(15586, 37)
      fromData←v24928 = XR←Narrow((* (( (ptr) from←v11328)+1) ), (* (( (ptr) gf←c102472)+25) ));
SOURCE(15625, 33)
      toData←v24956 = XR←Narrow((* (( (ptr) to←v11356)+1) ), (* (( (ptr) gf←c102472)+25) ));
SOURCE(15661, 595)
      if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c102472)+300)/* var←c91944 */  ))+67) ) ))) {
SOURCE(15691, 27)
         (*  (W6Pt) (*  (ptr) toData←v24956 ) ) = (*  (W6Pt) (*  (ptr) fromData←v24928 ) );
SOURCE(15720, 37)
         (* (( (ptr) toData←v24956)+1) ) = (* (( (ptr) fromData←v24928)+1) );
SOURCE(15759, 33)
         (* (( (ptr) toData←v24956)+2) ) = (* (( (ptr) fromData←v24928)+2) );
SOURCE(15794, 43)
         (*  (W2Pt) (( (ptr) toData←v24956)+3) ) = (*  (W2Pt) (( (ptr) fromData←v24928)+3) );
SOURCE(15839, 37)
         (* (( (ptr) toData←v24956)+5) ) = (* (( (ptr) fromData←v24928)+5) );
SOURCE(15878, 35)
         (*  (W2Pt) (( (ptr) toData←v24956)+7) ) = (*  (W2Pt) (( (ptr) fromData←v24928)+7) );
SOURCE(15915, 47)
         (*  (W3Pt) (( (ptr) toData←v24956)+9) ) = (*  (W3Pt) (( (ptr) fromData←v24928)+9) );
SOURCE(15964, 41)
         (* (( (ptr) toData←v24956)+12) ) = (* (( (ptr) fromData←v24928)+12) );
SOURCE(16007, 45)
         (* (( (ptr) toData←v24956)+13) ) = (* (( (ptr) fromData←v24928)+13) );
SOURCE(16054, 41)
         (* (( (ptr) toData←v24956)+14) ) = (* (( (ptr) fromData←v24928)+14) );
SOURCE(16097, 33)
         (* (( (ptr) toData←v24956)+15) ) = (* (( (ptr) fromData←v24928)+15) );
SOURCE(16132, 59)
         (*  (W20Pt) (( (ptr) toData←v24956)+16) ) = (*  (W20Pt) (( (ptr) fromData←v24928)+16) );
SOURCE(16193, 35)
         (*  (W4Pt) (( (ptr) toData←v24956)+36) ) = (*  (W4Pt) (( (ptr) fromData←v24928)+36) );
         }
      else {
SOURCE(16237, 19)
         (* (( (ptr) to←v11356)+1) ) = (* (( (ptr) from←v11328)+1) );
         };
SOURCE(16259, 39)
      (*  (W4Pt) (( (ptr) to←v11356)+3) ) = (*  (W4Pt) (( (ptr) from←v11328)+3) );
SOURCE(16318, 28)
      (* (( (ptr) to←v11356)+7) ) = 0;
SOURCE(16372, 25)
      (* (( (ptr) to←v11356)+8) ) = 0;
SOURCE(16423, 28)
      (* (( (ptr) to←v11356)+9) ) = 0;
SOURCE(16477, 27)
      (* (( (ptr) to←v11356)+10) ) = 0;
SOURCE(16530, 29)
      (*  (W6Pt) (* (( (ptr) to←v11356)+13) ) ) = (*  (W6Pt) (* (( (ptr) from←v11328)+13) ) );
SOURCE(16561, 37)
      (* (( (ptr) to←v11356)+14) ) = (* (( (ptr) from←v11328)+14) );
SOURCE(16600, 29)
      (*  (W6Pt) (* (( (ptr) to←v11356)+15) ) ) = (*  (W6Pt) (* (( (ptr) from←v11328)+15) ) );
SOURCE(16631, 27)
      (* (( (ptr) to←v11356)+16) ) = (* (( (ptr) from←v11328)+16) );
SOURCE(16660, 29)
      (* (( (ptr) to←v11356)+17) ) = (* (( (ptr) from←v11328)+17) );
SOURCE(16691, 33)
      (* (( (ptr) to←v11356)+18) ) = (* (( (ptr) from←v11328)+18) );
SOURCE(16726, 27)
      (* (( (ptr) to←v11356)+19) ) = (* (( (ptr) from←v11328)+19) );
SOURCE(16755, 31)
      (* (( (ptr) to←v11356)+20) ) = (* (( (ptr) from←v11328)+20) );
      };
   }

static void BoxBuildPath←P1020(slice←v11416, transformParts←v11444, transform←v11472, formal←c01516, formal←c01517, curveTo←v11556, conicTo←v11584, arcTo←v11612, editConstraints←v11640)
   word slice←v11416;
   word transformParts←v11444;
   word transform←v11472;
   word formal←c01516;
   word formal←c01517;
   word curveTo←v11556;
   word conicTo←v11584;
   word arcTo←v11612;
   word editConstraints←v11640;
   {
   W12 var←c102504;
   /* declaration of moveTo←v11500 skipped */ 
   /* declaration of lineTo←v11528 skipped */ 
   register ptr gf←c102536 =  (ptr) &globalframe;
   /* declaration of var←c93512 skipped */ 
   /* declaration of point←v25028 skipped */ 
   /* declaration of oppositePoint←v25056 skipped */ 
   word boxData←v25084;
   word boxTransformParts←v25112;
   word box←v25140;
   word transformEntire←v25168 = 0;
   word none←v25196 = 0;
   (* (( (ptr) &var←c102504)+4)/* moveTo←v11500 */  ) = formal←c01516;
   (* (( (ptr) &var←c102504)+5)/* lineTo←v11528 */  ) = formal←c01517;
   /* BoxBuildPath: */ 
SOURCE(16797, 1665)
   {
      word tmpAddr180;
      tmpAddr180 = (word) (( (ptr) &var←c102504)+6)/* var←c93512 */ ;
      (*  (ptr) tmpAddr180 ) = ( ((word)  (fPt) DoBoxPath←P6372) );
      (* (( (ptr) tmpAddr180) + 1) ) = 1;
      };
SOURCE(17985, 37)
   boxData←v25084 = XR←Narrow((* (( (ptr) slice←v11416)+1) ), (* (( (ptr) gf←c102536)+25) ));
SOURCE(18024, 52)
   boxTransformParts←v25112 = XR←Narrow(transformParts←v11444, (* (( (ptr) gf←c102536)+28) ));
SOURCE(18078, 27)
   box←v25140 = (*  (ptr) boxData←v25084 );
SOURCE(18145, 110)
   {
      W6 var←c93544;
      (void) PointsForTransform←P1140((word) &var←c93544, box←v25140, boxData←v25084, boxTransformParts←v25112, transform←v11472)
      ;
      none←v25196 = var←c93544.f5;
      transformEntire←v25168 = var←c93544.f4;
      (*  (W2Pt) (( (ptr) &var←c102504)+10)/* oppositePoint←v25056 */  ) = (*  (W2Pt) (( (ptr) &var←c93544)+2) );
      (*  (W2Pt) (( (ptr) &var←c102504)+8)/* point←v25028 */  ) = (*  (W2Pt) &var←c93544 );
      };
SOURCE(18257, 205)
   if ((0 != transformEntire←v25168)) {
SOURCE(18281, 93)
      (void) DoBoxPath←P6372(boxData←v25084, transform←v11472, 1, box←v25140, (word) (( (bPt) &var←c102504)+24)/* var←c93512 */ )
      ;
      }
   else {
SOURCE(18374, 88)
      if ((0 != none←v25196)) {
SOURCE(18387, 40)
         (void) DoBoxPath←P6372(boxData←v25084, 0, 1, box←v25140, (word) (( (bPt) &var←c102504)+24)/* var←c93512 */ );
         }
      else {
SOURCE(18427, 35)
         (void) DoBoxPath←P6372(boxData←v25084, 0, 0, box←v25140, (word) (( (bPt) &var←c102504)+24)/* var←c93512 */ );
         };
      };
   }

static void DoBoxPath←P6372(boxData←v25272, plusTransform←v25300, useBox←v25328, box←v25356, formal←c102600)
   word boxData←v25272;
   word plusTransform←v25300;
   word useBox←v25328;
   word box←v25356;
   word formal←c102600;
   {
   register ptr gf←c102568 =  (ptr) &globalframe;
   W8 pts←v25384;
   W2 boxLo←v25412;
   W2 boxHi←v25440;
   W2 tLL←v25468;
   W2 tUR←v25496;
   word fullTransform←v25524 = 0;
   formal←c102600 = (formal←c102600 - 24);
   /* DoBoxPath: */ 
SOURCE(17060, 890)
SOURCE(17248, 52)
   if ((0 != useBox←v25328)) {
      boxLo←v25412.f0 = (*  (ptr) box←v25356 );
      boxLo←v25412.f1 = (* (( (ptr) box←v25356)+1) );
      }
   else {
      boxLo←v25412 = (*  (W2Pt) (( (ptr) formal←c102600)+8) );
      };
SOURCE(17302, 60)
   if ((0 != useBox←v25328)) {
      boxHi←v25440.f0 = (* (( (ptr) box←v25356)+2) );
      boxHi←v25440.f1 = (* (( (ptr) box←v25356)+3) );
      }
   else {
      boxHi←v25440 = (*  (W2Pt) (( (ptr) formal←c102600)+10) );
      };
SOURCE(17364, 132)
   {
      word pd181;
      if ((plusTransform←v25300 == 0)) {
         fullTransform←v25524 = (* (( (ptr) boxData←v25272)+1) );
         }
      else {
         pd181 = (* (( (ptr) (* (( (ptr) gf←c102568)+301)/* var←c91976 */  ))+13) );
         fullTransform←v25524 = (word) ( *( (fPt) ((*  (ptr) pd181 ))))((* (( (ptr) boxData←v25272)+1) ), plusTransform←v25300, pd181)
         ;
         };
      };
SOURCE(17498, 53)
   {
      word x182;
      float tf183;
      float tf184;
      word x185;
      float tf186;
      tLL←v25468.f0 = (
         tf186 = FMIN((
               x182 = boxLo←v25412.f0,  *(float*)&x182
               ), (
               x185 = boxHi←v25440.f0,  *(float*)&x185
               ), tf183, tf184),  *(word*)&tf186
         );
      };
   {
      word x187;
      float tf188;
      float tf189;
      word x190;
      float tf191;
      tLL←v25468.f1 = (
         tf191 = FMIN((
               x187 = boxLo←v25412.f1,  *(float*)&x187
               ), (
               x190 = boxHi←v25440.f1,  *(float*)&x190
               ), tf188, tf189),  *(word*)&tf191
         );
      };
SOURCE(17553, 53)
   {
      word x192;
      float tf193;
      float tf194;
      word x195;
      float tf196;
      tUR←v25496.f0 = (
         tf196 = FMAX((
               x192 = boxLo←v25412.f0,  *(float*)&x192
               ), (
               x195 = boxHi←v25440.f0,  *(float*)&x195
               ), tf193, tf194),  *(word*)&tf196
         );
      };
   {
      word x197;
      float tf198;
      float tf199;
      word x200;
      float tf201;
      tUR←v25496.f1 = (
         tf201 = FMAX((
               x197 = boxLo←v25412.f1,  *(float*)&x197
               ), (
               x200 = boxHi←v25440.f1,  *(float*)&x200
               ), tf198, tf199),  *(word*)&tf201
         );
      };
SOURCE(17608, 38)
   {
      W2 var←c93640;
      {
         word pd202;
         pd202 = (* (( (ptr) (* (( (ptr) gf←c102568)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd202 ))))((word) &var←c93640, fullTransform←v25524, tLL←v25468, pd202);
         };
      (*  (W2Pt) &pts←v25384 ) = var←c93640;
      };
SOURCE(17648, 50)
   {
      W2 var←c93672;
      {
         W2 var←c0313;
         {
            W2 var←c93704;
            var←c93704.f0 = tLL←v25468.f0;
            var←c93704.f1 = tUR←v25496.f1;
            {
               word pd203;
               pd203 = (* (( (ptr) (* (( (ptr) gf←c102568)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd203 ))))((word) &var←c0313, fullTransform←v25524, var←c93704, pd203);
               };
            };
         var←c93672 = var←c0313;
         };
      (*  (W2Pt) (( (ptr) &pts←v25384)+2) ) = var←c93672;
      };
SOURCE(17700, 38)
   {
      W2 var←c93736;
      {
         word pd204;
         pd204 = (* (( (ptr) (* (( (ptr) gf←c102568)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd204 ))))((word) &var←c93736, fullTransform←v25524, tUR←v25496, pd204);
         };
      (*  (W2Pt) (( (ptr) &pts←v25384)+4) ) = var←c93736;
      };
SOURCE(17740, 50)
   {
      W2 var←c93768;
      {
         W2 var←c0318;
         {
            W2 var←c93800;
            var←c93800.f0 = tUR←v25496.f0;
            var←c93800.f1 = tLL←v25468.f1;
            {
               word pd205;
               pd205 = (* (( (ptr) (* (( (ptr) gf←c102568)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd205 ))))((word) &var←c0318, fullTransform←v25524, var←c93800, pd205);
               };
            };
         var←c93768 = var←c0318;
         };
      (*  (W2Pt) (( (ptr) &pts←v25384)+6) ) = var←c93768;
      };
SOURCE(17792, 158)
   if ((0 != (* (( (ptr) boxData←v25272)+15) ))) {
SOURCE(17817, 14)
      {
         word pd206;
         pd206 = (* (( (ptr) formal←c102600)+4) );
         (void) ( *( (fPt) ((*  (ptr) pd206 ))))((*  (W2Pt) (&pts←v25384) ), pd206);
         };
SOURCE(17833, 14)
      {
         word pd207;
         pd207 = (* (( (ptr) formal←c102600)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd207 ))))((*  (W2Pt) ((( (ptr) &pts←v25384)+2)) ), pd207);
         };
SOURCE(17849, 14)
      {
         word pd208;
         pd208 = (* (( (ptr) formal←c102600)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd208 ))))((*  (W2Pt) ((( (ptr) &pts←v25384)+4)) ), pd208);
         };
SOURCE(17865, 14)
      {
         word pd209;
         pd209 = (* (( (ptr) formal←c102600)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd209 ))))((*  (W2Pt) ((( (ptr) &pts←v25384)+6)) ), pd209);
         };
      }
   else {
SOURCE(17888, 14)
      {
         word pd210;
         pd210 = (* (( (ptr) formal←c102600)+4) );
         (void) ( *( (fPt) ((*  (ptr) pd210 ))))((*  (W2Pt) ((( (ptr) &pts←v25384)+6)) ), pd210);
         };
SOURCE(17904, 14)
      {
         word pd211;
         pd211 = (* (( (ptr) formal←c102600)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd211 ))))((*  (W2Pt) ((( (ptr) &pts←v25384)+4)) ), pd211);
         };
SOURCE(17920, 14)
      {
         word pd212;
         pd212 = (* (( (ptr) formal←c102600)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd212 ))))((*  (W2Pt) ((( (ptr) &pts←v25384)+2)) ), pd212);
         };
SOURCE(17936, 14)
      {
         word pd213;
         pd213 = (* (( (ptr) formal←c102600)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd213 ))))((*  (W2Pt) (&pts←v25384) ), pd213);
         };
      };
   }

static void BoxDrawBorder←P1080(formal←c01518, drawParts←v11728, formal←c01519, formal←c01520, formal←c01521, camera←v11840, quick←v11868, editConstraints←v11896)
   word formal←c01518;
   word drawParts←v11728;
   word formal←c01519;
   word formal←c01520;
   word formal←c01521;
   word camera←v11840;
   word quick←v11868;
   word editConstraints←v11896;
   {
   W18 var←c102632;
   /* declaration of slice←v11700 skipped */ 
   /* declaration of transformParts←v11756 skipped */ 
   /* declaration of transform←v11784 skipped */ 
   /* declaration of dc←v11812 skipped */ 
   register ptr gf←c102664 =  (ptr) &globalframe;
   /* declaration of var←c93832 skipped */ 
   /* declaration of var←c93864 skipped */ 
   /* declaration of point←v25660 skipped */ 
   /* declaration of oppositePoint←v25688 skipped */ 
   /* declaration of boxDrawParts←v25716 skipped */ 
   /* declaration of drawAll←v25744 skipped */ 
   (* (( (ptr) &var←c102632)+4)/* slice←v11700 */  ) = formal←c01518;
   (* (( (ptr) &var←c102632)+5)/* transformParts←v11756 */  ) = formal←c01519;
   (* (( (ptr) &var←c102632)+6)/* transform←v11784 */  ) = formal←c01520;
   (* (( (ptr) &var←c102632)+7)/* dc←v11812 */  ) = formal←c01521;
   /* BoxDrawBorder: */ 
SOURCE(18524, 2041)
   {
      word tmpAddr214;
      tmpAddr214 = (word) (( (ptr) &var←c102632)+8)/* var←c93832 */ ;
      (*  (ptr) tmpAddr214 ) = ( ((word)  (fPt) DoBoxDrawBorder←P6492) );
      (* (( (ptr) tmpAddr214) + 1) ) = 1;
      };
   {
      word tmpAddr215;
      tmpAddr215 = (word) (( (ptr) &var←c102632)+10)/* var←c93864 */ ;
      (*  (ptr) tmpAddr215 ) = ( ((word)  (fPt) DrawBoxPath←P6432) );
      (* (( (ptr) tmpAddr215) + 1) ) = 1;
      };
SOURCE(20377, 40)
   (* (( (ptr) &var←c102632)+12) ) = (*  (ptr) &fc216 );
   (* (( (ptr) &var←c102632)+13) ) = (*  (ptr) &fc216 );
   (*  (W2Pt) (( (ptr) &var←c102632)+14)/* oppositePoint←v25688 */  ) = (*  (W2Pt) (( (ptr) &var←c102632)+12)/* point←v25660 */  );
SOURCE(20419, 42)
   (* (( (ptr) &var←c102632)+16)/* boxDrawParts←v25716 */  ) = XR←Narrow(drawParts←v11728, (* (( (ptr) gf←c102664)+28) ));
SOURCE(20463, 66)
   (* (( (ptr) &var←c102632)+17)/* drawAll←v25744 */  ) =  (unsigned)  ( ((* (( (ptr) &var←c102632)+16)/* boxDrawParts←v25716 */  ) == 0) ? 1 : XR←EqualWords(
      (( (ptr) (* (( (ptr) &var←c102632)+16)/* boxDrawParts←v25716 */  ))+4), (( (ptr) gf←c102664)+283)/* var←c91656 */ , 4) ) ;
SOURCE(20531, 34)
   {
      word pd217;
      pd217 = (* (( (ptr) (* (( (ptr) gf←c102664)+303)/* var←c92232 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd217 ))))((* (( (ptr) &var←c102632)+7)/* dc←v11812 */  ), (word) (( (bPt) &var←c102632)+32)
         /* var←c93832 */ , pd217);
      };
   }

static void DrawBoxPath←P6432(boxData←v25820, boxDrawParts←v25848, plusTransform←v25876, useBox←v25904, box←v25932, formal←c102760)
   word boxData←v25820;
   word boxDrawParts←v25848;
   word plusTransform←v25876;
   word useBox←v25904;
   word box←v25932;
   word formal←c102760;
   {
   W14 var←c102696;
   register ptr gf←c102728 =  (ptr) &globalframe;
   /* declaration of var←c93928 skipped */ 
   /* declaration of pts←v25976 skipped */ 
   W2 boxLo←v26004;
   W2 boxHi←v26032;
   word fullTransform←v26060 = 0;
   formal←c102760 = (formal←c102760 - 40);
   (*  (ptr) &var←c102696 ) = formal←c102760;
   /* DrawBoxPath: */ 
SOURCE(18771, 915)
   {
      word tmpAddr218;
      tmpAddr218 = (word) (( (ptr) &var←c102696)+4)/* var←c93928 */ ;
      (*  (ptr) tmpAddr218 ) = ( ((word)  (fPt) BuildPath←P6600) );
      (* (( (ptr) tmpAddr218) + 1) ) = 1;
      };
SOURCE(18976, 52)
   if ((0 != useBox←v25904)) {
      boxLo←v26004.f0 = (*  (ptr) box←v25932 );
      boxLo←v26004.f1 = (* (( (ptr) box←v25932)+1) );
      }
   else {
      boxLo←v26004 = (*  (W2Pt) (( (ptr) formal←c102760)+12) );
      };
SOURCE(19030, 60)
   if ((0 != useBox←v25904)) {
      boxHi←v26032.f0 = (* (( (ptr) box←v25932)+2) );
      boxHi←v26032.f1 = (* (( (ptr) box←v25932)+3) );
      }
   else {
      boxHi←v26032 = (*  (W2Pt) (( (ptr) formal←c102760)+14) );
      };
SOURCE(19092, 111)
   {
      word pd219;
      if ((plusTransform←v25876 == 0)) {
         fullTransform←v26060 = (* (( (ptr) boxData←v25820)+1) );
         }
      else {
         pd219 = (* (( (ptr) (* (( (ptr) gf←c102728)+301)/* var←c91976 */  ))+13) );
         fullTransform←v26060 = (word) ( *( (fPt) ((*  (ptr) pd219 ))))((* (( (ptr) boxData←v25820)+1) ), plusTransform←v25876, pd219)
         ;
         };
      };
SOURCE(19205, 88)
   {
      W8 var←c0346;
      {
         W6 var←c94024;
         var←c94024.f0 = boxLo←v26004.f0;
         var←c94024.f1 = boxLo←v26004.f1;
         var←c94024.f2 = boxHi←v26032.f0;
         var←c94024.f3 = boxHi←v26032.f1;
         var←c94024.f4 = 0;
         var←c94024.f5 = 0;
         (void) TransformBoxObj←P1260((word) &var←c0346, var←c94024, fullTransform←v26060);
         };
      (*  (W8Pt) (( (ptr) &var←c102696)+6)/* pts←v25976 */  ) = var←c0346;
      };
SOURCE(19295, 391)
   if ((0 != (word) AllStrokePropsAndColorsEqual←P1860(boxData←v25820))) {
SOURCE(19341, 159)
SOURCE(19457, 41)
      (void) MaskStrokeBoxPath←P1800((* (( (ptr) formal←c102760)+7) ), boxData←v25820, (word) (( (bPt) &var←c102696)+16)/* var←c93928 */ )
      ;
      }
   else {
SOURCE(19509, 177)
      {
         register word edge←v26184 = 0;
         if (( (int)edge←v26184 >  (int)3)) {
            goto lab←L100034;
            };
         lab←L100037: ;
SOURCE(19540, 146)
         if ((0 != (* (( (ptr) formal←c102760)+17) ))) { goto then0220;};
         if ((0 != (* ((( (ptr) boxDrawParts←v25848)+4)+BCK(edge←v26184, 4)) ))) {
            then0220: ;
SOURCE(19584, 104)
            {
               word seg←v26228;
SOURCE(19586, 37)
               seg←v26228 = (* ((( (ptr) boxData←v25820)+36)+BCK(edge←v26184, 4)) );
SOURCE(19625, 61)
               {
                  word pd221;
                  word idx222;
                  pd221 = (* (( (ptr) (* (( (ptr) gf←c102728)+302)/* var←c92200 */  ))+29) );
                  (void) ( *( (fPt) ((*  (ptr) pd221 ))))((* (( (ptr) formal←c102760)+7) ), (* (( (W2Pt) (( (ptr) &var←c102696)+6)/* pts←v25976 */ )+BCK(
                           edge←v26184, 4)) ), (* (( (W2Pt) (( (ptr) &var←c102696)+6)/* pts←v25976 */ )+(
                           idx222 = (word) IOP2( % ,  (int)(edge←v26184 + 1),  (int)4),
                           BCK(idx222, 4)
                           )) ), seg←v26228, pd221);
                  };
               };
            };
         if (( (int)edge←v26184 >=  (int)3)) {
            goto lab←L100034;
            };
         edge←v26184 = (edge←v26184 + 1);
         goto lab←L100037;
         lab←L100034: ;
         };
      };
   }

static void BuildPath←P6600(moveTo←v73508, lineTo←v73536, curveTo←v73564, conicTo←v73592, arcTo←v73620, formal←c102792)
   word moveTo←v73508;
   word lineTo←v73536;
   word curveTo←v73564;
   word conicTo←v73592;
   word arcTo←v73620;
   word formal←c102792;
   {
   formal←c102792 = (formal←c102792 - 16);
   /* BuildPath: */ 
SOURCE(19343, 29)
SOURCE(19374, 14)
   (void) ( *( (fPt) ((*  (ptr) moveTo←v73508 ))))((*  (W2Pt) ((( (ptr) formal←c102792)+6)) ), moveTo←v73508);
SOURCE(19390, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v73536 ))))((*  (W2Pt) ((( (ptr) formal←c102792)+8)) ), lineTo←v73536);
SOURCE(19406, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v73536 ))))((*  (W2Pt) ((( (ptr) formal←c102792)+10)) ), lineTo←v73536);
SOURCE(19422, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v73536 ))))((*  (W2Pt) ((( (ptr) formal←c102792)+12)) ), lineTo←v73536);
SOURCE(19438, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v73536 ))))((*  (W2Pt) ((( (ptr) formal←c102792)+6)) ), lineTo←v73536);
   }

static void DoBoxDrawBorder←P6492(formal←c102856)
   word formal←c102856;
   {
   register ptr gf←c102824 =  (ptr) &globalframe;
   word boxData←v26272;
   word boxTransformParts←v26300;
   word box←v26328;
   word transformEntire←v26356 = 0;
   word none←v26384 = 0;
   formal←c102856 = (formal←c102856 - 32);
   /* DoBoxDrawBorder: */ 
SOURCE(19706, 610)
SOURCE(19732, 37)
   boxData←v26272 = XR←Narrow((* (( (ptr) (* (( (ptr) formal←c102856)+4) ))+1) ), (* (( (ptr) gf←c102824)+25) ));
SOURCE(19771, 52)
   boxTransformParts←v26300 = XR←Narrow((* (( (ptr) formal←c102856)+5) ), (* (( (ptr) gf←c102824)+28) ));
SOURCE(19825, 27)
   box←v26328 = (*  (ptr) boxData←v26272 );
SOURCE(19892, 57)
   if ( ( ((* (( (ptr) formal←c102856)+16) ) != 0) ? (0 != (word) IsEmpty←P2580((* ((( (ptr) formal←c102856)+16)) ))) : 0 ) ) {
SOURCE(19943, 6)
      return;
      };
SOURCE(19951, 110)
   {
      W6 var←c94056;
      (void) PointsForTransform←P1140((word) &var←c94056, box←v26328, boxData←v26272, boxTransformParts←v26300, (* (( (ptr) formal←c102856)+6)
          ));
      none←v26384 = var←c94056.f5;
      transformEntire←v26356 = var←c94056.f4;
      (*  (W2Pt) (( (ptr) formal←c102856)+14) ) = (*  (W2Pt) (( (ptr) &var←c94056)+2) );
      (*  (W2Pt) (( (ptr) formal←c102856)+12) ) = (*  (W2Pt) &var←c94056 );
      };
SOURCE(20063, 253)
   if ((0 != transformEntire←v26356)) {
SOURCE(20087, 109)
      (void) DrawBoxPath←P6432(boxData←v26272, (* (( (ptr) formal←c102856)+16) ), (* (( (ptr) formal←c102856)+6) ), 1, box←v26328, (word) (
            ( (bPt) formal←c102856)+40));
      }
   else {
SOURCE(20196, 120)
      if ((0 != none←v26384)) {
SOURCE(20209, 56)
         (void) DrawBoxPath←P6432(boxData←v26272, (* (( (ptr) formal←c102856)+16) ), 0, 1, box←v26328, (word) (( (bPt) formal←c102856)+40)
            );
         }
      else {
SOURCE(20265, 51)
         (void) DrawBoxPath←P6432(boxData←v26272, (* (( (ptr) formal←c102856)+16) ), 0, 0, box←v26328, (word) (( (bPt) formal←c102856)+40)
            );
         };
      };
   }

static void PointsForTransform←P1140(formal←c0398, box←v11956, boxData←v11984, boxTransformParts←v12012, transform←v12040)
   word formal←c0398;
   word box←v11956;
   word boxData←v11984;
   word boxTransformParts←v12012;
   word transform←v12040;
   {
   register ptr gf←c102888 =  (ptr) &globalframe;
   W2 point←v12084;
   W2 oppositePoint←v12112;
   word transformEntire←v12140;
   word none←v12168;
   W2 tWorld←v26428;
   W2 tBox←v26456;
   word totalTransform←v26484 = 0;
   word worldBox←v26512 = 0;
   word cornerCount←v26540 = 0;
   word edgeCount←v26568 = 0;
   word edgeNum←v26596 = 0;
   word cornerNum←v26624 = 0;
   /* PointsForTransform: */ 
SOURCE(20571, 1790)
SOURCE(20571, 1790)
   point←v12084.f0 = (*  (ptr) &fc216 );
   point←v12084.f1 = (*  (ptr) &fc216 );
SOURCE(20571, 1790)
   oppositePoint←v12112.f0 = (*  (ptr) &fc216 );
   oppositePoint←v12112.f1 = (*  (ptr) &fc216 );
SOURCE(20571, 1790)
   transformEntire←v12140 = 0;
SOURCE(20571, 1790)
   none←v12168 = 0;
SOURCE(20894, 33)
   if ((0 != (* (( (ptr) box←v11956)+4) )) || (0 != (* (( (ptr) box←v11956)+5) ))) {
SOURCE(20927, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(20934, 1427)
SOURCE(20940, 112)
   if ((((boxTransformParts←v12012 == 0) || (transform←v12040 == 0)) || (0 != (* (( (ptr) boxTransformParts←v12012)+8) ))) || XR←EqualWords(
      (( (ptr) boxTransformParts←v12012)+4), (( (ptr) gf←c102888)+283)/* var←c91656 */ , 4)) {
SOURCE(21052, 18)
      goto lab←L100039;
      };
SOURCE(21072, 55)
   if ((0 != (word) IsEmpty←P2580(boxTransformParts←v12012))) {
SOURCE(21108, 11)
      none←v12168 = 1;
SOURCE(21121, 6)
      goto lab←L100038;
      };
SOURCE(21131, 58)
   {
      W2 var←c94088;
      (void) CountEdges←P2700((word) &var←c94088, (*  (W4Pt) (( (ptr) boxTransformParts←v12012)+4) ));
      edgeNum←v26596 = var←c94088.f1;
      edgeCount←v26568 = var←c94088.f0;
      };
SOURCE(21191, 23)
   if (( (int)edgeCount←v26568 >=  (int)2)) {
SOURCE(21214, 18)
      goto lab←L100039;
      };
SOURCE(21234, 66)
   {
      W2 var←c94120;
      (void) CountCorners←P2640((word) &var←c94120, (*  (W4Pt) boxTransformParts←v12012 ));
      cornerNum←v26624 = var←c94120.f1;
      cornerCount←v26540 = var←c94120.f0;
      };
SOURCE(21302, 25)
   if (( (int)cornerCount←v26540 >=  (int)3)) {
SOURCE(21327, 18)
      goto lab←L100039;
      };
SOURCE(21348, 26)
   worldBox←v26512 = (* (( (ptr) boxData←v11984)+2) );
SOURCE(21376, 35)
   tWorld←v26428.f0 = (* (( (ptr) transform←v12040)+2) );
   tWorld←v26428.f1 = (* (( (ptr) transform←v12040)+5) );
SOURCE(21456, 58)
   {
      word pd223;
      pd223 = (* (( (ptr) (* (( (ptr) gf←c102888)+301)/* var←c91976 */  ))+40) );
      (void) ( *( (fPt) ((*  (ptr) pd223 ))))((word) &tBox←v26456, worldBox←v26512, tWorld←v26428, pd223);
      };
SOURCE(21516, 793)
   if (( (int)edgeCount←v26568 ==  (int)1)) {
SOURCE(21536, 425)
      {
         word lo←v26668;
         word hi←v26696;
SOURCE(21578, 33)
         {
            W2 var←c94152;
            (void) CornersOfEdge←P3660((word) &var←c94152, SGNCK(edgeNum←v26596));
            hi←v26696 = var←c94152.f1;
            lo←v26668 = var←c94152.f0;
            };
SOURCE(21613, 78)
         if ((0 == (* (( (ptr) boxTransformParts←v12012)+BCK(lo←v26668, 4)) ))) { goto then0224;};
         if ((0 == (* (( (ptr) boxTransformParts←v12012)+BCK(hi←v26696, 4)) ))) {
            then0224: ;
SOURCE(21691, 18)
            goto lab←L100039;
            };
SOURCE(21711, 49)
         {
            word var←c94184;
            var←c94184 = (word) OppositeCorner←P3720(lo←v26668);
            (void) BoxPoint←P3780((word) &oppositePoint←v12112, box←v11956, var←c94184);
            };
SOURCE(21762, 25)
         (void) BoxPoint←P3780((word) &point←v12084, box←v11956, lo←v26668);
SOURCE(21789, 152)
         {
            word var←c94216;
            var←c94216 = edgeNum←v26596;
            switch (var←c94216) {
               case 0: case 2: 
SOURCE(21839, 35)
                  {
                     word var←c94248;
                     word var←c94280;
                     {
                        word x225;
                        word x226;
                        *(float*)&var←c94248 = (
                           x225 = point←v12084.f0,  *(float*)&x225
                           ) + (
                           x226 = tBox←v26456.f0,  *(float*)&x226
                           );
                        };
                     var←c94280 = point←v12084.f1;
                     point←v12084.f0 = var←c94248;
                     point←v12084.f1 = var←c94280;
                     };
                  break;
               case 1: case 3: 
SOURCE(21906, 35)
                  {
                     word var←c94312;
                     word var←c94376;
                     var←c94312 = point←v12084.f0;
                     {
                        word x227;
                        word x228;
                        *(float*)&var←c94376 = (
                           x227 = point←v12084.f1,  *(float*)&x227
                           ) + (
                           x228 = tBox←v26456.f1,  *(float*)&x228
                           );
                        };
                     point←v12084.f0 = var←c94312;
                     point←v12084.f1 = var←c94376;
                     };
                  break;
               default: 
SOURCE(21954, 5)
                  (void) XR←RaiseUnnamedError();
                  break;
               };
            };
         };
      }
   else {
SOURCE(21968, 341)
      if (( (int)cornerCount←v26540 ==  (int)2)) {
SOURCE(21992, 58)
         goto lab←L100039;
         }
      else {
SOURCE(22067, 32)
         (void) BoxPoint←P3780((word) &point←v12084, box←v11956, SGNCK(cornerNum←v26624));
SOURCE(22101, 56)
         {
            word var←c94408;
            var←c94408 = (word) OppositeCorner←P3720(SGNCK(cornerNum←v26624));
            (void) BoxPoint←P3780((word) &oppositePoint←v12112, box←v11956, var←c94408);
            };
SOURCE(22159, 81)
         {
            word pd229;
            pd229 = (* (( (ptr) (* (( (ptr) gf←c102888)+301)/* var←c91976 */  ))+14) );
            totalTransform←v26484 = (word) ( *( (fPt) ((*  (ptr) pd229 ))))((* (( (ptr) boxData←v11984)+1) ), transform←v12040, worldBox←v26512, 0, pd229)
            ;
            };
SOURCE(22242, 67)
         {
            word pd230;
            pd230 = (* (( (ptr) (* (( (ptr) gf←c102888)+301)/* var←c91976 */  ))+39) );
            (void) ( *( (fPt) ((*  (ptr) pd230 ))))((word) &point←v12084, totalTransform←v26484, point←v12084, pd230);
            };
         };
      };
   goto lab←L100040;
   lab←L100039: ;
SOURCE(22337, 22)
   transformEntire←v12140 = 1;
   lab←L100040: ;
   /* removed tail goto */ 
   lab←L100038: ;
   (*  (W2Pt) formal←c0398 ) = point←v12084;
   (*  (W2Pt) (( (ptr) formal←c0398)+2) ) = oppositePoint←v12112;
   (* (( (ptr) formal←c0398)+4) ) = transformEntire←v12140;
   (* (( (ptr) formal←c0398)+5) ) = none←v12168;
   return;
   }

static void TransformedBoxPoints←P1200(formal←c0414, box←v12228, t←v12256)
   word formal←c0414;
   word box←v12228;
   word t←v12256;
   {
   register ptr gf←c102920 =  (ptr) &globalframe;
   W8 pts←v12300;
   W2 tLL←v26740;
   W2 tUR←v26768;
   /* TransformedBoxPoints: */ 
SOURCE(22370, 440)
SOURCE(22472, 59)
   {
      word x231;
      float tf232;
      float tf233;
      word x234;
      float tf235;
      tLL←v26740.f0 = (
         tf235 = FMIN((
               x231 = (*  (ptr) box←v12228 ),  *(float*)&x231
               ), (
               x234 = (* (( (ptr) box←v12228)+2) ),  *(float*)&x234
               ), tf232, tf233),  *(word*)&tf235
         );
      };
   {
      word x236;
      float tf237;
      float tf238;
      word x239;
      float tf240;
      tLL←v26740.f1 = (
         tf240 = FMIN((
               x236 = (* (( (ptr) box←v12228)+1) ),  *(float*)&x236
               ), (
               x239 = (* (( (ptr) box←v12228)+3) ),  *(float*)&x239
               ), tf237, tf238),  *(word*)&tf240
         );
      };
SOURCE(22533, 59)
   {
      word x241;
      float tf242;
      float tf243;
      word x244;
      float tf245;
      tUR←v26768.f0 = (
         tf245 = FMAX((
               x241 = (*  (ptr) box←v12228 ),  *(float*)&x241
               ), (
               x244 = (* (( (ptr) box←v12228)+2) ),  *(float*)&x244
               ), tf242, tf243),  *(word*)&tf245
         );
      };
   {
      word x246;
      float tf247;
      float tf248;
      word x249;
      float tf250;
      tUR←v26768.f1 = (
         tf250 = FMAX((
               x246 = (* (( (ptr) box←v12228)+1) ),  *(float*)&x246
               ), (
               x249 = (* (( (ptr) box←v12228)+3) ),  *(float*)&x249
               ), tf247, tf248),  *(word*)&tf250
         );
      };
SOURCE(22594, 47)
   {
      W2 var←c94504;
      {
         word pd251;
         pd251 = (* (( (ptr) (* (( (ptr) gf←c102920)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd251 ))))((word) &var←c94504, t←v12256, tLL←v26740, pd251);
         };
      (*  (W2Pt) &pts←v12300 ) = var←c94504;
      };
SOURCE(22643, 58)
   {
      W2 var←c94536;
      {
         W2 var←c0408;
         {
            W2 var←c94568;
            var←c94568.f0 = tLL←v26740.f0;
            var←c94568.f1 = tUR←v26768.f1;
            {
               word pd252;
               pd252 = (* (( (ptr) (* (( (ptr) gf←c102920)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd252 ))))((word) &var←c0408, t←v12256, var←c94568, pd252);
               };
            };
         var←c94536 = var←c0408;
         };
      (*  (W2Pt) (( (ptr) &pts←v12300)+2) ) = var←c94536;
      };
SOURCE(22703, 47)
   {
      W2 var←c94600;
      {
         word pd253;
         pd253 = (* (( (ptr) (* (( (ptr) gf←c102920)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd253 ))))((word) &var←c94600, t←v12256, tUR←v26768, pd253);
         };
      (*  (W2Pt) (( (ptr) &pts←v12300)+4) ) = var←c94600;
      };
SOURCE(22752, 58)
   {
      W2 var←c94632;
      {
         W2 var←c0413;
         {
            W2 var←c94664;
            var←c94664.f0 = tUR←v26768.f0;
            var←c94664.f1 = tLL←v26740.f1;
            {
               word pd254;
               pd254 = (* (( (ptr) (* (( (ptr) gf←c102920)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd254 ))))((word) &var←c0413, t←v12256, var←c94664, pd254);
               };
            };
         var←c94632 = var←c0413;
         };
      (*  (W2Pt) (( (ptr) &pts←v12300)+6) ) = var←c94632;
      };
   /* removed tail goto */ 
   (*  (W8Pt) formal←c0414 ) = pts←v12300;
   return;
   }

static void TransformBoxObj←P1260(formal←c0430, box←v12396, t←v12424)
   word formal←c0430;
   W6 box←v12396;
   word t←v12424;
   {
   register ptr gf←c102952 =  (ptr) &globalframe;
   W8 pts←v12468;
   W2 tLL←v26812;
   W2 tUR←v26840;
   /* TransformBoxObj: */ 
SOURCE(22816, 440)
SOURCE(22916, 59)
   {
      word x255;
      float tf256;
      float tf257;
      word x258;
      float tf259;
      tLL←v26812.f0 = (
         tf259 = FMIN((
               x255 = box←v12396.f0,  *(float*)&x255
               ), (
               x258 = box←v12396.f2,  *(float*)&x258
               ), tf256, tf257),  *(word*)&tf259
         );
      };
   {
      word x260;
      float tf261;
      float tf262;
      word x263;
      float tf264;
      tLL←v26812.f1 = (
         tf264 = FMIN((
               x260 = box←v12396.f1,  *(float*)&x260
               ), (
               x263 = box←v12396.f3,  *(float*)&x263
               ), tf261, tf262),  *(word*)&tf264
         );
      };
SOURCE(22977, 59)
   {
      word x265;
      float tf266;
      float tf267;
      word x268;
      float tf269;
      tUR←v26840.f0 = (
         tf269 = FMAX((
               x265 = box←v12396.f0,  *(float*)&x265
               ), (
               x268 = box←v12396.f2,  *(float*)&x268
               ), tf266, tf267),  *(word*)&tf269
         );
      };
   {
      word x270;
      float tf271;
      float tf272;
      word x273;
      float tf274;
      tUR←v26840.f1 = (
         tf274 = FMAX((
               x270 = box←v12396.f1,  *(float*)&x270
               ), (
               x273 = box←v12396.f3,  *(float*)&x273
               ), tf271, tf272),  *(word*)&tf274
         );
      };
SOURCE(23038, 47)
   {
      W2 var←c94760;
      {
         word pd275;
         pd275 = (* (( (ptr) (* (( (ptr) gf←c102952)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd275 ))))((word) &var←c94760, t←v12424, tLL←v26812, pd275);
         };
      (*  (W2Pt) &pts←v12468 ) = var←c94760;
      };
SOURCE(23087, 59)
   {
      W2 var←c94792;
      {
         W2 var←c0424;
         {
            W2 var←c94824;
            var←c94824.f0 = tLL←v26812.f0;
            var←c94824.f1 = tUR←v26840.f1;
            {
               word pd276;
               pd276 = (* (( (ptr) (* (( (ptr) gf←c102952)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd276 ))))((word) &var←c0424, t←v12424, var←c94824, pd276);
               };
            };
         var←c94792 = var←c0424;
         };
      (*  (W2Pt) (( (ptr) &pts←v12468)+2) ) = var←c94792;
      };
SOURCE(23148, 47)
   {
      W2 var←c94856;
      {
         word pd277;
         pd277 = (* (( (ptr) (* (( (ptr) gf←c102952)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd277 ))))((word) &var←c94856, t←v12424, tUR←v26840, pd277);
         };
      (*  (W2Pt) (( (ptr) &pts←v12468)+4) ) = var←c94856;
      };
SOURCE(23197, 59)
   {
      W2 var←c94888;
      {
         W2 var←c0429;
         {
            W2 var←c94920;
            var←c94920.f0 = tUR←v26840.f0;
            var←c94920.f1 = tLL←v26812.f1;
            {
               word pd278;
               pd278 = (* (( (ptr) (* (( (ptr) gf←c102952)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd278 ))))((word) &var←c0429, t←v12424, var←c94920, pd278);
               };
            };
         var←c94888 = var←c0429;
         };
      (*  (W2Pt) (( (ptr) &pts←v12468)+6) ) = var←c94888;
      };
   /* removed tail goto */ 
   (*  (W8Pt) formal←c0430 ) = pts←v12468;
   return;
   }

static void FlipBoxStyle←P1320(slice←v12564, boxData←v12592)
   word slice←v12564;
   word boxData←v12592;
   {
   register ptr gf←c102984 =  (ptr) &globalframe;
   W3 nilFormattedNodes←v26884;
   W2 loc←v26912;
   W3 var←c0435;
   word box←v26940;
   /* FlipBoxStyle: */ 
SOURCE(23262, 879)
SOURCE(23318, 63)
   nilFormattedNodes←v26884.f0 = 0;
   nilFormattedNodes←v26884.f1 = 0;
   nilFormattedNodes←v26884.f2 = 0;
SOURCE(23383, 46)
   (void) GetBoxText←P360((word) &var←c0435, slice←v12564);
   loc←v26912 = (*  (W2Pt) &var←c0435 );
SOURCE(23431, 27)
   box←v26940 = (*  (ptr) boxData←v12592 );
SOURCE(23460, 627)
   if ((0 != (word) IsChildOfOutline←P660(slice←v12564))) {
SOURCE(23550, 185)
      {
         W3 var←c94984;
         if ((loc←v26912.f0 != 0)) {
            {
               W3 var←c0439;
               {
                  W2 var←c95016;
                  {
                     word x279;
                     word x280;
                     *(float*)&var←c95016.f0 = (
                        x279 = (* (( (ptr) box←v26940)+2) ),  *(float*)&x279
                        ) - (
                        x280 = (*  (ptr) box←v26940 ),  *(float*)&x280
                        );
                     };
                  {
                     word x281;
                     word x282;
                     *(float*)&var←c95016.f1 = (
                        x281 = (* (( (ptr) box←v26940)+3) ),  *(float*)&x281
                        ) - (
                        x282 = (* (( (ptr) box←v26940)+1) ),  *(float*)&x282
                        );
                     };
                  {
                     word pd283;
                     pd283 = (* (( (ptr) (* (( (ptr) gf←c102984)+306)/* var←c92584 */  ))+5) );
                     (void) ( *( (fPt) ((*  (ptr) pd283 ))))((word) &var←c0439, loc←v26912, var←c95016,  ( (0 != (* (( (ptr) boxData←v12592)+13)
                         )) ? 1 : 0 ) , 0, 0, pd283);
                     };
                  };
               var←c94984 = var←c0439;
               };
            }
         else {
            var←c94984 = nilFormattedNodes←v26884;
            };
         (*  (W3Pt) (( (ptr) boxData←v12592)+9) ) = var←c94984;
         };
      }
   else {
SOURCE(23744, 345)
      {
         word firstChildNode←v26984;
SOURCE(23818, 60)
         {
            word pd284;
            pd284 = (* (( (ptr) (* (( (ptr) gf←c102984)+307)/* var←c92616 */  ))+28) );
            firstChildNode←v26984 = (word) ( *( (fPt) ((*  (ptr) pd284 ))))(loc←v26912.f0, pd284);
            };
SOURCE(23880, 207)
         {
            W3 var←c95048;
            if ((firstChildNode←v26984 != 0)) {
               {
                  W3 var←c0444;
                  {
                     W2 var←c95080;
                     W2 var←c95112;
                     var←c95080.f0 = firstChildNode←v26984;
                     var←c95080.f1 = 0;
                     {
                        word x285;
                        word x286;
                        *(float*)&var←c95112.f0 = (
                           x285 = (* (( (ptr) box←v26940)+2) ),  *(float*)&x285
                           ) - (
                           x286 = (*  (ptr) box←v26940 ),  *(float*)&x286
                           );
                        };
                     {
                        word x287;
                        word x288;
                        *(float*)&var←c95112.f1 = (
                           x287 = (* (( (ptr) box←v26940)+3) ),  *(float*)&x287
                           ) - (
                           x288 = (* (( (ptr) box←v26940)+1) ),  *(float*)&x288
                           );
                        };
                     {
                        word pd289;
                        pd289 = (* (( (ptr) (* (( (ptr) gf←c102984)+306)/* var←c92584 */  ))+5) );
                        (void) ( *( (fPt) ((*  (ptr) pd289 ))))((word) &var←c0444, var←c95080, var←c95112,  ( (0 != (* (( (ptr) boxData←v12592)+13)
                            )) ? 1 : 0 ) , 0, 0, pd289);
                        };
                     };
                  var←c95048 = var←c0444;
                  };
               }
            else {
               var←c95048 = nilFormattedNodes←v26884;
               };
            (*  (W3Pt) (( (ptr) boxData←v12592)+9) ) = var←c95048;
            };
         };
      };
SOURCE(24092, 49)
   (* (( (ptr) boxData←v12592)+13) ) =  (unsigned) (0 == (* (( (ptr) boxData←v12592)+13) ));
   }

static void BoxDrawParts←P1380(formal←c01522, formal←c01523, formal←c01524, formal←c01525, formal←c01526)
   word formal←c01522;
   word formal←c01523;
   word formal←c01524;
   word formal←c01525;
   word formal←c01526;
   {
   W12 var←c103016;
   /* declaration of slice←v12652 skipped */ 
   /* declaration of parts←v12680 skipped */ 
   /* declaration of dc←v12708 skipped */ 
   /* declaration of camera←v12736 skipped */ 
   /* declaration of quick←v12764 skipped */ 
   register ptr gf←c103048 =  (ptr) &globalframe;
   /* declaration of var←c95144 skipped */ 
   /* declaration of boxData←v27056 skipped */ 
   (* (( (ptr) &var←c103016)+4)/* slice←v12652 */  ) = formal←c01522;
   (* (( (ptr) &var←c103016)+5)/* parts←v12680 */  ) = formal←c01523;
   (* (( (ptr) &var←c103016)+6)/* dc←v12708 */  ) = formal←c01524;
   (* (( (ptr) &var←c103016)+7)/* camera←v12736 */  ) = formal←c01525;
   (* (( (ptr) &var←c103016)+8)/* quick←v12764 */  ) = formal←c01526;
   /* BoxDrawParts: */ 
SOURCE(24147, 1856)
   {
      word tmpAddr290;
      tmpAddr290 = (word) (( (ptr) &var←c103016)+9)/* var←c95144 */ ;
      (*  (ptr) tmpAddr290 ) = ( ((word)  (fPt) DoBoxDrawParts←P6852) );
      (* (( (ptr) tmpAddr290) + 1) ) = 1;
      };
SOURCE(25931, 37)
   (* (( (ptr) &var←c103016)+11)/* boxData←v27056 */  ) = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c103016)+4)/* slice←v12652 */  ))+1)
       ), (* (( (ptr) gf←c103048)+25) ));
SOURCE(25970, 33)
   {
      word pd291;
      pd291 = (* (( (ptr) (* (( (ptr) gf←c103048)+303)/* var←c92232 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd291 ))))((* (( (ptr) &var←c103016)+6)/* dc←v12708 */  ), (word) (( (bPt) &var←c103016)+36)
         /* var←c95144 */ , pd291);
      };
   }

static void DoBoxDrawParts←P6852(formal←c103144)
   word formal←c103144;
   {
   W18 var←c103080;
   register ptr gf←c103112 =  (ptr) &globalframe;
   /* declaration of var←c95176 skipped */ 
   /* declaration of var←c95208 skipped */ 
   /* declaration of var←c95240 skipped */ 
   word boxParts←v27144;
   word drawAll←v27172;
   /* declaration of pts←v27200 skipped */ 
   word ptsComputed←v27228 = 0;
   formal←c103144 = (formal←c103144 - 36);
   (*  (ptr) &var←c103080 ) = formal←c103144;
   /* DoBoxDrawParts: */ 
SOURCE(24259, 1652)
   {
      word tmpAddr292;
      tmpAddr292 = (word) (( (ptr) &var←c103080)+4)/* var←c95176 */ ;
      (*  (ptr) tmpAddr292 ) = ( ((word)  (fPt) DoMaskPixel←P7128) );
      (* (( (ptr) tmpAddr292) + 1) ) = 1;
      };
   {
      word tmpAddr293;
      tmpAddr293 = (word) (( (ptr) &var←c103080)+6)/* var←c95208 */ ;
      (*  (ptr) tmpAddr293 ) = ( ((word)  (fPt) BoxPathProc←P7020) );
      (* (( (ptr) tmpAddr293) + 1) ) = 1;
      };
   {
      word tmpAddr294;
      tmpAddr294 = (word) (( (ptr) &var←c103080)+8)/* var←c95240 */ ;
      (*  (ptr) tmpAddr294 ) = ( ((word)  (fPt) BoxTextDraw←P6912) );
      (* (( (ptr) tmpAddr294) + 1) ) = 1;
      };
SOURCE(24829, 34)
   boxParts←v27144 = XR←Narrow((* (( (ptr) formal←c103144)+5) ), (* (( (ptr) gf←c103112)+28) ));
SOURCE(24865, 58)
   drawAll←v27172 =  (unsigned)  ( (boxParts←v27144 == 0) ? 1 : XR←EqualWords((( (ptr) boxParts←v27144)+4), (( (ptr) gf←c103112)+283)
      /* var←c91656 */ , 4) ) ;
SOURCE(24980, 503)
   if ( (  ( (0 != drawAll←v27172) ? ((* (( (ptr) (* (( (ptr) formal←c103144)+11) ))+5) ) != 0) : 0 )  ? (0 == (* (( (ptr) formal←c103144)+8)
    )) : 0 ) ) {
SOURCE(25038, 41)
      {
         word pd295;
         pd295 = (* (( (ptr) (* (( (ptr) gf←c103112)+310)/* var←c93352 */  ))+36) );
         (void) ( *( (fPt) ((*  (ptr) pd295 ))))((* (( (ptr) formal←c103144)+6) ), (* (( (ptr) (* (( (ptr) formal←c103144)+11) ))+5)
             ), 0, pd295);
         };
SOURCE(25081, 402)
      if (((* (( (ptr) (* (( (ptr) formal←c103144)+11) ))+6) ) == 0)) {
SOURCE(25118, 216)
SOURCE(25220, 58)
         (void) TransformedBoxPoints←P1200((word) (( (bPt) &var←c103080)+40)/* pts←v27200 */ , (*  (ptr) (* (( (ptr) formal←c103144)+11)
             ) ), (* (( (ptr) (* (( (ptr) formal←c103144)+11) ))+1) ));
SOURCE(25280, 18)
         ptsComputed←v27228 = 1;
SOURCE(25300, 32)
         {
            word pd296;
            pd296 = (* (( (ptr) (* (( (ptr) gf←c103112)+303)/* var←c92232 */  ))+62) );
            (void) ( *( (fPt) ((*  (ptr) pd296 ))))((* (( (ptr) formal←c103144)+6) ), (word) (( (bPt) &var←c103080)+24)/* var←c95208 */ , 0, pd296)
            ;
            };
         }
      else {
SOURCE(25341, 144)
SOURCE(25453, 30)
         {
            word pd297;
            pd297 = (* (( (ptr) (* (( (ptr) gf←c103112)+303)/* var←c92232 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd297 ))))((* (( (ptr) formal←c103144)+6) ), (word) (( (bPt) &var←c103080)+16)/* var←c95176 */ , pd297)
            ;
            };
         };
      };
SOURCE(25491, 76)
   if ( ( (0 != drawAll←v27172) ? ((* (( (ptr) (* (( (ptr) formal←c103144)+11) ))+7) ) != 0) : 0 ) ) {
SOURCE(25537, 30)
      {
         word pd298;
         pd298 = (* (( (ptr) (* (( (ptr) gf←c103112)+303)/* var←c92232 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd298 ))))((* (( (ptr) formal←c103144)+6) ), (word) (( (bPt) &var←c103080)+32)/* var←c95240 */ , pd298)
         ;
         };
      };
SOURCE(25570, 341)
   if ((0 != (word) AllStrokePropsAndColorsEqual←P1860((* ((( (ptr) formal←c103144)+11)) )))) {
SOURCE(25616, 36)
      (void) DrawSingleStrokeBox←P1740((* (( (ptr) formal←c103144)+6) ), (* (( (ptr) formal←c103144)+4) ));
      }
   else {
SOURCE(25654, 82)
      if ((0 == ptsComputed←v27228)) {
SOURCE(25678, 58)
         (void) TransformedBoxPoints←P1200((word) (( (bPt) &var←c103080)+40)/* pts←v27200 */ , (*  (ptr) (* (( (ptr) formal←c103144)+11)
             ) ), (* (( (ptr) (* (( (ptr) formal←c103144)+11) ))+1) ));
         };
SOURCE(25738, 173)
      {
         register word edge←v27428 = 0;
         if (( (int)edge←v27428 >  (int)3)) {
            goto lab←L100043;
            };
         lab←L100046: ;
SOURCE(25769, 142)
         if ((0 != drawAll←v27172)) { goto then0299;};
         if ((0 != (* ((( (ptr) boxParts←v27144)+4)+BCK(edge←v27428, 4)) ))) {
            then0299: ;
SOURCE(25809, 104)
            {
               word seg←v27472;
SOURCE(25811, 37)
               seg←v27472 = (* ((( (ptr) (* (( (ptr) formal←c103144)+11) ))+36)+BCK(edge←v27428, 4)) );
SOURCE(25850, 61)
               {
                  word pd300;
                  word idx301;
                  pd300 = (* (( (ptr) (* (( (ptr) gf←c103112)+302)/* var←c92200 */  ))+29) );
                  (void) ( *( (fPt) ((*  (ptr) pd300 ))))((* (( (ptr) formal←c103144)+6) ), (* (( (W2Pt) (( (ptr) &var←c103080)+10)/* pts←v27200 */ )+BCK(
                           edge←v27428, 4)) ), (* (( (W2Pt) (( (ptr) &var←c103080)+10)/* pts←v27200 */ )+(
                           idx301 = (word) IOP2( % ,  (int)(edge←v27428 + 1),  (int)4),
                           BCK(idx301, 4)
                           )) ), seg←v27472, pd300);
                  };
               };
            };
         if (( (int)edge←v27428 >=  (int)3)) {
            goto lab←L100043;
            };
         edge←v27428 = (edge←v27428 + 1);
         goto lab←L100046;
         lab←L100043: ;
         };
      };
   }

static void BoxTextDraw←P6912(formal←c103208)
   word formal←c103208;
   {
   register ptr gf←c103176 =  (ptr) &globalframe;
   W2 refPoint←v27516;
   formal←c103208 = (formal←c103208 - 32);
   /* BoxTextDraw: */ 
SOURCE(24284, 540)
SOURCE(24306, 52)
   refPoint←v27516.f0 = (*  (ptr) (*  (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ) ) );
   refPoint←v27516.f1 = (* (( (ptr) (*  (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ) ))+3) );
SOURCE(24360, 37)
   {
      word pd302;
      pd302 = (* (( (ptr) (* (( (ptr) gf←c103176)+303)/* var←c92232 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd302 ))))((* (( (ptr) (*  (ptr) formal←c103208 ))+6) ), (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11)
             ))+1) ), pd302);
      };
SOURCE(24399, 33)
   {
      word pd303;
      pd303 = (* (( (ptr) (* (( (ptr) gf←c103176)+303)/* var←c92232 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd303 ))))((* (( (ptr) (*  (ptr) formal←c103208 ))+6) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c103176)+303)
            /* var←c92232 */  ))+54) ) ), pd303);
      };
SOURCE(24434, 286)
   {
      word var←c95304;
      var←c95304 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+7) ))+1) );
      if ((var←c95304 == 1)) {
SOURCE(24476, 62)
         if ((0 == (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ))+13) ))) {
SOURCE(24510, 28)
            (void) FlipBoxStyle←P1320((* (( (ptr) (*  (ptr) formal←c103208 ))+4) ), (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ));
            };
         }
      else {
         if ((var←c95304 == 0)) {
SOURCE(24549, 171)
            {
               word var←c95336;
               var←c95336 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ))+12) );
               if ((var←c95336 == 1)) {
SOURCE(24589, 62)
                  if ((0 == (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ))+13) ))) {
SOURCE(24623, 28)
                     (void) FlipBoxStyle←P1320((* (( (ptr) (*  (ptr) formal←c103208 ))+4) ), (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ));
                     };
                  }
               else {
                  if ((var←c95336 == 0)) {
SOURCE(24662, 58)
                     if ((0 != (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ))+13) ))) {
SOURCE(24692, 28)
                        (void) FlipBoxStyle←P1320((* (( (ptr) (*  (ptr) formal←c103208 ))+4) ), (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ));
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(24740, 84)
   {
      word pd304;
      pd304 = (* (( (ptr) (* (( (ptr) gf←c103176)+306)/* var←c92584 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd304 ))))((* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103208 ))+11) ))+9) ), (* (( (ptr) (*  (ptr) formal←c103208 ))+6)
          ), refPoint←v27516, pd304);
      };
   }

static void BoxPathProc←P7020(moveTo←v74484, lineTo←v74512, curveTo←v74540, conicTo←v74568, arcTo←v74596, formal←c103240)
   word moveTo←v74484;
   word lineTo←v74512;
   word curveTo←v74540;
   word conicTo←v74568;
   word arcTo←v74596;
   word formal←c103240;
   {
   formal←c103240 = (formal←c103240 - 24);
   /* BoxPathProc: */ 
SOURCE(25120, 31)
SOURCE(25153, 14)
   (void) ( *( (fPt) ((*  (ptr) moveTo←v74484 ))))((*  (W2Pt) ((( (ptr) formal←c103240)+10)) ), moveTo←v74484);
SOURCE(25169, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v74512 ))))((*  (W2Pt) ((( (ptr) formal←c103240)+12)) ), lineTo←v74512);
SOURCE(25185, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v74512 ))))((*  (W2Pt) ((( (ptr) formal←c103240)+14)) ), lineTo←v74512);
SOURCE(25201, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v74512 ))))((*  (W2Pt) ((( (ptr) formal←c103240)+16)) ), lineTo←v74512);
   }

static void DoMaskPixel←P7128(formal←c103304)
   word formal←c103304;
   {
   register ptr gf←c103272 =  (ptr) &globalframe;
   formal←c103304 = (formal←c103304 - 16);
   /* DoMaskPixel: */ 
SOURCE(25343, 20)
SOURCE(25365, 37)
   {
      word pd305;
      pd305 = (* (( (ptr) (* (( (ptr) gf←c103272)+303)/* var←c92232 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd305 ))))((* (( (ptr) (*  (ptr) formal←c103304 ))+6) ), (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103304 ))+11)
             ))+1) ), pd305);
      };
SOURCE(25404, 44)
   {
      word pd306;
      pd306 = (* (( (ptr) (* (( (ptr) gf←c103272)+303)/* var←c92232 */  ))+77) );
      (void) ( *( (fPt) ((*  (ptr) pd306 ))))((* (( (ptr) (*  (ptr) formal←c103304 ))+6) ), (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c103304 ))+11)
             ))+6) ), pd306);
      };
   }

static void BoxDrawTransform←P1440(slice←v12824, parts←v12852, formal←c01527, formal←c01528, formal←c01529, editConstraints←v12964)
   word slice←v12824;
   word parts←v12852;
   word formal←c01527;
   word formal←c01528;
   word formal←c01529;
   word editConstraints←v12964;
   {
   W18 var←c103336;
   /* declaration of dc←v12880 skipped */ 
   /* declaration of camera←v12908 skipped */ 
   /* declaration of transform←v12936 skipped */ 
   register ptr gf←c103368 =  (ptr) &globalframe;
   /* declaration of var←c95368 skipped */ 
   /* declaration of var←c95400 skipped */ 
   /* declaration of point←v27560 skipped */ 
   /* declaration of oppositePoint←v27588 skipped */ 
   /* declaration of boxData←v27616 skipped */ 
   word boxTransformParts←v27644;
   /* declaration of box←v27672 skipped */ 
   /* declaration of transformColor←v27700 skipped */ 
   word transformEntire←v27728 = 0;
   word none←v27756 = 0;
   (* (( (ptr) &var←c103336)+4)/* dc←v12880 */  ) = formal←c01527;
   (* (( (ptr) &var←c103336)+5)/* camera←v12908 */  ) = formal←c01528;
   (* (( (ptr) &var←c103336)+6)/* transform←v12936 */  ) = formal←c01529;
   /* BoxDrawTransform: */ 
SOURCE(26010, 1246)
   {
      word tmpAddr307;
      tmpAddr307 = (word) (( (ptr) &var←c103336)+7)/* var←c95368 */ ;
      (*  (ptr) tmpAddr307 ) = ( ((word)  (fPt) RubberbandBox←P7440) );
      (* (( (ptr) tmpAddr307) + 1) ) = 1;
      };
   {
      word tmpAddr308;
      tmpAddr308 = (word) (( (ptr) &var←c103336)+9)/* var←c95400 */ ;
      (*  (ptr) tmpAddr308 ) = ( ((word)  (fPt) TransformWholeBox←P7332) );
      (* (( (ptr) tmpAddr308) + 1) ) = 1;
      };
SOURCE(26203, 37)
   (* (( (ptr) &var←c103336)+15)/* boxData←v27616 */  ) = XR←Narrow((* (( (ptr) slice←v12824)+1) ), (* (( (ptr) gf←c103368)+25)
       ));
SOURCE(26242, 43)
   boxTransformParts←v27644 = XR←Narrow(parts←v12852, (* (( (ptr) gf←c103368)+28) ));
SOURCE(26287, 27)
   (* (( (ptr) &var←c103336)+16)/* box←v27672 */  ) = (*  (ptr) (* (( (ptr) &var←c103336)+15)/* boxData←v27616 */  ) );
SOURCE(26316, 51)
   (* (( (ptr) &var←c103336)+17)/* transformColor←v27700 */  ) = 0;
SOURCE(26370, 289)
   if ((0 != (word) IsComplete←P2520(boxTransformParts←v27644))) {
SOURCE(26410, 21)
      (* (( (ptr) &var←c103336)+17)/* transformColor←v27700 */  ) = 1;
SOURCE(26433, 22)
      transformEntire←v27728 = 1;
      }
   else {
SOURCE(26464, 195)
      if ((0 != (word) IsEmpty←P2580(boxTransformParts←v27644))) {
SOURCE(26501, 15)
         (* (( (ptr) &var←c103336)+6)/* transform←v12936 */  ) = 0;
SOURCE(26518, 22)
         transformEntire←v27728 = 1;
         }
      else {
SOURCE(26549, 110)
         {
            W6 var←c95432;
            (void) PointsForTransform←P1140((word) &var←c95432, (* (( (ptr) &var←c103336)+16)/* box←v27672 */  ), (* (( (ptr) &var←c103336)+15)
               /* boxData←v27616 */  ), boxTransformParts←v27644, (* (( (ptr) &var←c103336)+6)/* transform←v12936 */  ));
            none←v27756 = var←c95432.f5;
            transformEntire←v27728 = var←c95432.f4;
            (*  (W2Pt) (( (ptr) &var←c103336)+13)/* oppositePoint←v27588 */  ) = (*  (W2Pt) (( (ptr) &var←c95432)+2) );
            (*  (W2Pt) (( (ptr) &var←c103336)+11)/* point←v27560 */  ) = (*  (W2Pt) &var←c95432 );
            };
         };
      };
SOURCE(26661, 595)
   if ((0 != transformEntire←v27728)) {
SOURCE(26685, 405)
SOURCE(27052, 36)
      {
         word pd309;
         pd309 = (* (( (ptr) (* (( (ptr) gf←c103368)+303)/* var←c92232 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd309 ))))((* (( (ptr) &var←c103336)+4)/* dc←v12880 */  ), (word) (( (bPt) &var←c103336)+36)
            /* var←c95400 */ , pd309);
         };
      }
   else {
SOURCE(27097, 161)
SOURCE(27224, 32)
      {
         word pd310;
         pd310 = (* (( (ptr) (* (( (ptr) gf←c103368)+303)/* var←c92232 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd310 ))))((* (( (ptr) &var←c103336)+4)/* dc←v12880 */  ), (word) (( (bPt) &var←c103336)+28)
            /* var←c95368 */ , pd310);
         };
      };
   }

static void TransformWholeBox←P7332(formal←c103432)
   word formal←c103432;
   {
   register ptr gf←c103400 =  (ptr) &globalframe;
   formal←c103432 = (formal←c103432 - 36);
   /* TransformWholeBox: */ 
SOURCE(26687, 26)
SOURCE(26715, 259)
   if (((* (( (ptr) formal←c103432)+6) ) != 0)) {
SOURCE(26741, 180)
      if ((0 != (* (( (ptr) formal←c103432)+17) ))) {
SOURCE(26766, 29)
         {
            word pd311;
            pd311 = (* (( (ptr) (* (( (ptr) gf←c103400)+303)/* var←c92232 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd311 ))))((* (( (ptr) formal←c103432)+4) ), (* (( (ptr) formal←c103432)+6) ), pd311);
            };
SOURCE(26797, 41)
         {
            word pd312;
            pd312 = (* (( (ptr) (* (( (ptr) gf←c103400)+310)/* var←c93352 */  ))+36) );
            (void) ( *( (fPt) ((*  (ptr) pd312 ))))((* (( (ptr) formal←c103432)+4) ), (* (( (ptr) (* (( (ptr) formal←c103432)+15) ))+5)
                ), 0, pd312);
            };
         }
      else {
SOURCE(26849, 41)
         {
            word pd313;
            pd313 = (* (( (ptr) (* (( (ptr) gf←c103400)+310)/* var←c93352 */  ))+36) );
            (void) ( *( (fPt) ((*  (ptr) pd313 ))))((* (( (ptr) formal←c103432)+4) ), (* (( (ptr) (* (( (ptr) formal←c103432)+15) ))+5)
                ), 0, pd313);
            };
SOURCE(26892, 29)
         {
            word pd314;
            pd314 = (* (( (ptr) (* (( (ptr) gf←c103400)+303)/* var←c92232 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd314 ))))((* (( (ptr) formal←c103432)+4) ), (* (( (ptr) formal←c103432)+6) ), pd314);
            };
         };
      }
   else {
SOURCE(26933, 41)
      {
         word pd315;
         pd315 = (* (( (ptr) (* (( (ptr) gf←c103400)+310)/* var←c93352 */  ))+36) );
         (void) ( *( (fPt) ((*  (ptr) pd315 ))))((* (( (ptr) formal←c103432)+4) ), (* (( (ptr) (* (( (ptr) formal←c103432)+15) ))+5)
             ), 0, pd315);
         };
      };
SOURCE(26976, 71)
   {
      W2 var←c95464;
      W2 var←c95496;
      var←c95464.f0 = (*  (ptr) (* (( (ptr) formal←c103432)+16) ) );
      var←c95464.f1 = (* (( (ptr) (* (( (ptr) formal←c103432)+16) ))+1) );
      var←c95496.f0 = (* (( (ptr) (* (( (ptr) formal←c103432)+16) ))+2) );
      var←c95496.f1 = (* (( (ptr) (* (( (ptr) formal←c103432)+16) ))+3) );
      (void) BoxDrawAll←P1980((* (( (ptr) formal←c103432)+4) ), (* (( (ptr) formal←c103432)+15) ), var←c95464, var←c95496, (* (
            ( (ptr) formal←c103432)+5) ));
      };
   }

static void RubberbandBox←P7440(formal←c103496)
   word formal←c103496;
   {
   register ptr gf←c103464 =  (ptr) &globalframe;
   formal←c103496 = (formal←c103496 - 28);
   /* RubberbandBox: */ 
SOURCE(27099, 22)
SOURCE(27123, 41)
   {
      word pd316;
      pd316 = (* (( (ptr) (* (( (ptr) gf←c103464)+310)/* var←c93352 */  ))+36) );
      (void) ( *( (fPt) ((*  (ptr) pd316 ))))((* (( (ptr) formal←c103496)+4) ), (* (( (ptr) (* (( (ptr) formal←c103496)+15) ))+5)
          ), 0, pd316);
      };
SOURCE(27166, 53)
   (void) BoxDrawAll←P1980((* (( (ptr) formal←c103496)+4) ), (* (( (ptr) formal←c103496)+15) ), (*  (W2Pt) (( (ptr) formal←c103496)+11)
       ), (*  (W2Pt) (( (ptr) formal←c103496)+13) ), (* (( (ptr) formal←c103496)+5) ));
   }

static void BoxDrawAttractorFeedback←P1500(formal←c01530, formal←c01531, selectedParts←v13080, dragInProgress←v13108, formal←c01532, formal←c01533, editConstraints←v13192)
   word formal←c01530;
   word formal←c01531;
   word selectedParts←v13080;
   word dragInProgress←v13108;
   word formal←c01532;
   word formal←c01533;
   word editConstraints←v13192;
   {
   W10 var←c103528;
   /* declaration of slice←v13024 skipped */ 
   /* declaration of attractorParts←v13052 skipped */ 
   /* declaration of dc←v13136 skipped */ 
   /* declaration of camera←v13164 skipped */ 
   register ptr gf←c103560 =  (ptr) &globalframe;
   /* declaration of var←c95528 skipped */ 
   (* (( (ptr) &var←c103528)+4)/* slice←v13024 */  ) = formal←c01530;
   (* (( (ptr) &var←c103528)+5)/* attractorParts←v13052 */  ) = formal←c01531;
   (* (( (ptr) &var←c103528)+6)/* dc←v13136 */  ) = formal←c01532;
   (* (( (ptr) &var←c103528)+7)/* camera←v13164 */  ) = formal←c01533;
   /* BoxDrawAttractorFeedback: */ 
SOURCE(27265, 1984)
   {
      word tmpAddr317;
      tmpAddr317 = (word) (( (ptr) &var←c103528)+8)/* var←c95528 */ ;
      (*  (ptr) tmpAddr317 ) = ( ((word)  (fPt) DoDrawAttractorFeedback←P7500) );
      (* (( (ptr) tmpAddr317) + 1) ) = 1;
      };
SOURCE(29129, 120)
   if ( ( ((0 == dragInProgress←v13108) || (selectedParts←v13080 == 0)) ? ((*  (ptr) (* (( (ptr) &var←c103528)+7)/* camera←v13164 */  ) ) != 2) : 0 ) ) {
SOURCE(29207, 42)
      {
         word pd318;
         pd318 = (* (( (ptr) (* (( (ptr) gf←c103560)+303)/* var←c92232 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd318 ))))((* (( (ptr) &var←c103528)+6)/* dc←v13136 */  ), (word) (( (bPt) &var←c103528)+32)
            /* var←c95528 */ , pd318);
         };
      };
   }

static void DoDrawAttractorFeedback←P7500(formal←c103624)
   word formal←c103624;
   {
   register ptr gf←c103592 =  (ptr) &globalframe;
   word boxData←v27980;
   word boxParts←v28008;
   word drawAll←v28036;
   word t←v28064;
   W2 tLL←v28092;
   W2 tUR←v28120;
   W4 drawn←v28148;
   W8 pts←v28176;
   formal←c103624 = (formal←c103624 - 32);
   /* DoDrawAttractorFeedback: */ 
SOURCE(27462, 1647)
SOURCE(27496, 37)
   boxData←v27980 = XR←Narrow((* (( (ptr) (* (( (ptr) formal←c103624)+4) ))+1) ), (* (( (ptr) gf←c103592)+25) ));
SOURCE(27535, 43)
   boxParts←v28008 = XR←Narrow((* (( (ptr) formal←c103624)+5) ), (* (( (ptr) gf←c103592)+28) ));
SOURCE(27600, 55)
   drawAll←v28036 =  (unsigned)  ( (0 != (* (( (ptr) boxParts←v28008)+8) )) ? 1 : (0 != (word) IsComplete←P2520(boxParts←v28008)
   ) ) ;
SOURCE(27657, 37)
   t←v28064 = (* (( (ptr) boxData←v27980)+1) );
SOURCE(27696, 92)
   {
      word x319;
      float tf320;
      float tf321;
      word x322;
      float tf323;
      tLL←v28092.f0 = (
         tf323 = FMIN((
               x319 = (*  (ptr) (*  (ptr) boxData←v27980 ) ),  *(float*)&x319
               ), (
               x322 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+2) ),  *(float*)&x322
               ), tf320, tf321),  *(word*)&tf323
         );
      };
   {
      word x324;
      float tf325;
      float tf326;
      word x327;
      float tf328;
      tLL←v28092.f1 = (
         tf328 = FMIN((
               x324 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+1) ),  *(float*)&x324
               ), (
               x327 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+3) ),  *(float*)&x327
               ), tf325, tf326),  *(word*)&tf328
         );
      };
SOURCE(27790, 92)
   {
      word x329;
      float tf330;
      float tf331;
      word x332;
      float tf333;
      tUR←v28120.f0 = (
         tf333 = FMAX((
               x329 = (*  (ptr) (*  (ptr) boxData←v27980 ) ),  *(float*)&x329
               ), (
               x332 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+2) ),  *(float*)&x332
               ), tf330, tf331),  *(word*)&tf333
         );
      };
   {
      word x334;
      float tf335;
      float tf336;
      word x337;
      float tf338;
      tUR←v28120.f1 = (
         tf338 = FMAX((
               x334 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+1) ),  *(float*)&x334
               ), (
               x337 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+3) ),  *(float*)&x337
               ), tf335, tf336),  *(word*)&tf338
         );
      };
SOURCE(27884, 39)
   XR←FillWords(&drawn←v28148, 4, 0);
SOURCE(27952, 47)
   {
      W2 var←c95656;
      {
         word pd339;
         pd339 = (* (( (ptr) (* (( (ptr) gf←c103592)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd339 ))))((word) &var←c95656, t←v28064, tLL←v28092, pd339);
         };
      (*  (W2Pt) &pts←v28176 ) = var←c95656;
      };
SOURCE(28001, 59)
   {
      W2 var←c95688;
      {
         W2 var←c0511;
         {
            W2 var←c95720;
            var←c95720.f0 = tLL←v28092.f0;
            var←c95720.f1 = tUR←v28120.f1;
            {
               word pd340;
               pd340 = (* (( (ptr) (* (( (ptr) gf←c103592)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd340 ))))((word) &var←c0511, t←v28064, var←c95720, pd340);
               };
            };
         var←c95688 = var←c0511;
         };
      (*  (W2Pt) (( (ptr) &pts←v28176)+2) ) = var←c95688;
      };
SOURCE(28062, 47)
   {
      W2 var←c95752;
      {
         word pd341;
         pd341 = (* (( (ptr) (* (( (ptr) gf←c103592)+301)/* var←c91976 */  ))+39) );
         (void) ( *( (fPt) ((*  (ptr) pd341 ))))((word) &var←c95752, t←v28064, tUR←v28120, pd341);
         };
      (*  (W2Pt) (( (ptr) &pts←v28176)+4) ) = var←c95752;
      };
SOURCE(28111, 59)
   {
      W2 var←c95784;
      {
         W2 var←c0516;
         {
            W2 var←c95816;
            var←c95816.f0 = tUR←v28120.f0;
            var←c95816.f1 = tLL←v28092.f1;
            {
               word pd342;
               pd342 = (* (( (ptr) (* (( (ptr) gf←c103592)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd342 ))))((word) &var←c0516, t←v28064, var←c95816, pd342);
               };
            };
         var←c95784 = var←c0516;
         };
      (*  (W2Pt) (( (ptr) &pts←v28176)+6) ) = var←c95784;
      };
SOURCE(28172, 486)
   {
      register word corner←v28292 = 0;
      if (( (int)corner←v28292 >  (int)3)) {
         goto lab←L100047;
         };
      lab←L100050: ;
SOURCE(28205, 453)
      if ((0 != drawAll←v28036)) { goto then0343;};
      if ((0 != (* (( (ptr) boxParts←v28008)+BCK(corner←v28292, 4)) ))) {
         then0343: ;
SOURCE(28249, 413)
         {
            word nextCorner←v28336;
            word prevCorner←v28364;
SOURCE(28251, 40)
            nextCorner←v28336 = IOP2( % ,  (int)(corner←v28292 + 1),  (int)4);
SOURCE(28293, 40)
            prevCorner←v28364 = IOP2( % ,  (int)(corner←v28292 + 3),  (int)4);
SOURCE(28335, 97)
            if ((0 == (* (( (ptr) &drawn←v28148)+BCK(corner←v28292, 4)) ))) {
SOURCE(28362, 48)
               {
                  word pd344;
                  pd344 = (* (( (ptr) (* (( (ptr) gf←c103592)+312)/* var←c95848 */  ))+19) );
                  (void) ( *( (fPt) ((*  (ptr) pd344 ))))((* (( (ptr) formal←c103624)+6) ), (* (( (W2Pt) &pts←v28176)+BCK(corner←v28292, 4)
                        ) ), (* (( (ptr) (* (( (ptr) formal←c103624)+7) ))+4) ), pd344);
                  };
SOURCE(28412, 20)
               (* (( (ptr) &drawn←v28148)+BCK(corner←v28292, 4)) ) = 1;
               };
SOURCE(28436, 109)
            if ((0 == (* (( (ptr) &drawn←v28148)+BCK(nextCorner←v28336, 4)) ))) {
SOURCE(28467, 52)
               {
                  word pd345;
                  pd345 = (* (( (ptr) (* (( (ptr) gf←c103592)+312)/* var←c95848 */  ))+19) );
                  (void) ( *( (fPt) ((*  (ptr) pd345 ))))((* (( (ptr) formal←c103624)+6) ), (* (( (W2Pt) &pts←v28176)+BCK(nextCorner←v28336, 4)
                        ) ), (* (( (ptr) (* (( (ptr) formal←c103624)+7) ))+4) ), pd345);
                  };
SOURCE(28521, 24)
               (* (( (ptr) &drawn←v28148)+BCK(nextCorner←v28336, 4)) ) = 1;
               };
SOURCE(28549, 109)
            if ((0 == (* (( (ptr) &drawn←v28148)+BCK(prevCorner←v28364, 4)) ))) {
SOURCE(28580, 52)
               {
                  word pd346;
                  pd346 = (* (( (ptr) (* (( (ptr) gf←c103592)+312)/* var←c95848 */  ))+19) );
                  (void) ( *( (fPt) ((*  (ptr) pd346 ))))((* (( (ptr) formal←c103624)+6) ), (* (( (W2Pt) &pts←v28176)+BCK(prevCorner←v28364, 4)
                        ) ), (* (( (ptr) (* (( (ptr) formal←c103624)+7) ))+4) ), pd346);
                  };
SOURCE(28634, 24)
               (* (( (ptr) &drawn←v28148)+BCK(prevCorner←v28364, 4)) ) = 1;
               };
            };
         };
      if (( (int)corner←v28292 >=  (int)3)) {
         goto lab←L100047;
         };
      corner←v28292 = (corner←v28292 + 1);
      goto lab←L100050;
      lab←L100047: ;
      };
SOURCE(28674, 182)
   if ((0 != drawAll←v28036)) {
SOURCE(28706, 150)
      {
         W2 var←c95880;
         {
            W2 var←c0522;
            {
               W2 var←c95912;
               {
                  word x347;
                  word x348;
                  word x349;
                  *(float*)&var←c95912.f0 = ((
                     x347 = (*  (ptr) (*  (ptr) boxData←v27980 ) ),  *(float*)&x347
                     ) + (
                     x348 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+2) ),  *(float*)&x348
                     )) / (
                     x349 = (*  (ptr) &fc101 ),  *(float*)&x349
                     );
                  };
               {
                  word x350;
                  word x351;
                  word x352;
                  *(float*)&var←c95912.f1 = ((
                     x350 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+1) ),  *(float*)&x350
                     ) + (
                     x351 = (* (( (ptr) (*  (ptr) boxData←v27980 ))+3) ),  *(float*)&x351
                     )) / (
                     x352 = (*  (ptr) &fc101 ),  *(float*)&x352
                     );
                  };
               {
                  word pd353;
                  pd353 = (* (( (ptr) (* (( (ptr) gf←c103592)+301)/* var←c91976 */  ))+39) );
                  (void) ( *( (fPt) ((*  (ptr) pd353 ))))((word) &var←c0522, t←v28064, var←c95912, pd353);
                  };
               };
            var←c95880 = var←c0522;
            };
         {
            word pd354;
            pd354 = (* (( (ptr) (* (( (ptr) gf←c103592)+312)/* var←c95848 */  ))+19) );
            (void) ( *( (fPt) ((*  (ptr) pd354 ))))((* (( (ptr) formal←c103624)+6) ), var←c95880, (* (( (ptr) (* (( (ptr) formal←c103624)+7)
                   ))+4) ), pd354);
            };
         };
      };
SOURCE(28859, 250)
   if ((0 == drawAll←v28036)) {
SOURCE(28881, 228)
      {
         register word edge←v28408 = 0;
         if (( (int)edge←v28408 >  (int)3)) {
            goto lab←L100051;
            };
         lab←L100054: ;
SOURCE(28912, 197)
         if ((0 != (* ((( (ptr) boxParts←v28008)+4)+BCK(edge←v28408, 4)) ))) {
SOURCE(28943, 70)
            if ((0 == (* (( (ptr) &drawn←v28148)+BCK(edge←v28408, 4)) ))) {
SOURCE(28967, 46)
               {
                  word pd355;
                  pd355 = (* (( (ptr) (* (( (ptr) gf←c103592)+312)/* var←c95848 */  ))+19) );
                  (void) ( *( (fPt) ((*  (ptr) pd355 ))))((* (( (ptr) formal←c103624)+6) ), (* (( (W2Pt) &pts←v28176)+BCK(edge←v28408, 4)) ), (* (
                        ( (ptr) (* (( (ptr) formal←c103624)+7) ))+4) ), pd355);
                  };
               };
SOURCE(29015, 94)
            {
               word idx356;
               if ((0 == (* (( (ptr) &drawn←v28148)+(
                     idx356 = (word) IOP2( % ,  (int)(edge←v28408 + 1),  (int)4),
                     BCK(idx356, 4)
                     )) ))) {
SOURCE(29051, 58)
                  {
                     word pd357;
                     word idx358;
                     pd357 = (* (( (ptr) (* (( (ptr) gf←c103592)+312)/* var←c95848 */  ))+19) );
                     (void) ( *( (fPt) ((*  (ptr) pd357 ))))((* (( (ptr) formal←c103624)+6) ), (* (( (W2Pt) &pts←v28176)+(
/*1*/   idx358 = (word) IOP2( % ,  (int)(edge←v28408 + 1),  (int)4),
/*1*/   BCK(idx358, 4)
/*1*/   )) ), (* (( (ptr) (* (( (ptr) formal←c103624)+7) ))+4) ), pd357);
                     };
                  };
               };
            };
         if (( (int)edge←v28408 >=  (int)3)) {
            goto lab←L100051;
            };
         edge←v28408 = (edge←v28408 + 1);
         goto lab←L100054;
         lab←L100051: ;
         };
      };
   }

static word BoxAttractorFeedbackBoundBox←P1560(slice←v13252, attractorParts←v13280, selectedParts←v13308, dragInProgress←v13336, camera←v13364, editConstraints←v13392)
   word slice←v13252;
   word attractorParts←v13280;
   word selectedParts←v13308;
   word dragInProgress←v13336;
   word camera←v13364;
   word editConstraints←v13392;
   {
   register ptr gf←c103656 =  (ptr) &globalframe;
   word box←v13436;
   /* BoxAttractorFeedbackBoundBox: */ 
SOURCE(29255, 1994)
SOURCE(29255, 1994)
   box←v13436 = 0;
SOURCE(29460, 31)
   {
      word pd359;
      pd359 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+6) );
      box←v13436 = (word) ( *( (fPt) ((*  (ptr) pd359 ))))(pd359);
      };
SOURCE(29493, 1756)
   if ( ( ((0 == dragInProgress←v13336) || (selectedParts←v13308 == 0)) ? ((*  (ptr) camera←v13364 ) != 2) : 0 ) ) {
SOURCE(29571, 1680)
      {
         word boxData←v28452;
         word boxParts←v28480;
         word drawAll←v28508;
         word t←v28536;
         W2 tLL←v28564;
         W2 tUR←v28592;
         W4 drawn←v28620;
         W8 pts←v28648;
SOURCE(29573, 37)
         boxData←v28452 = XR←Narrow((* (( (ptr) slice←v13252)+1) ), (* (( (ptr) gf←c103656)+25) ));
SOURCE(29612, 43)
         boxParts←v28480 = XR←Narrow(attractorParts←v13280, (* (( (ptr) gf←c103656)+28) ));
SOURCE(29677, 55)
         drawAll←v28508 =  (unsigned)  ( (0 != (* (( (ptr) boxParts←v28480)+8) )) ? 1 : (0 != (word) IsComplete←P2520(boxParts←v28480)
         ) ) ;
SOURCE(29734, 37)
         t←v28536 = (* (( (ptr) boxData←v28452)+1) );
SOURCE(29773, 92)
         {
            word x360;
            float tf361;
            float tf362;
            word x363;
            float tf364;
            tLL←v28564.f0 = (
               tf364 = FMIN((
                     x360 = (*  (ptr) (*  (ptr) boxData←v28452 ) ),  *(float*)&x360
                     ), (
                     x363 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+2) ),  *(float*)&x363
                     ), tf361, tf362),  *(word*)&tf364
               );
            };
         {
            word x365;
            float tf366;
            float tf367;
            word x368;
            float tf369;
            tLL←v28564.f1 = (
               tf369 = FMIN((
                     x365 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+1) ),  *(float*)&x365
                     ), (
                     x368 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+3) ),  *(float*)&x368
                     ), tf366, tf367),  *(word*)&tf369
               );
            };
SOURCE(29867, 92)
         {
            word x370;
            float tf371;
            float tf372;
            word x373;
            float tf374;
            tUR←v28592.f0 = (
               tf374 = FMAX((
                     x370 = (*  (ptr) (*  (ptr) boxData←v28452 ) ),  *(float*)&x370
                     ), (
                     x373 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+2) ),  *(float*)&x373
                     ), tf371, tf372),  *(word*)&tf374
               );
            };
         {
            word x375;
            float tf376;
            float tf377;
            word x378;
            float tf379;
            tUR←v28592.f1 = (
               tf379 = FMAX((
                     x375 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+1) ),  *(float*)&x375
                     ), (
                     x378 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+3) ),  *(float*)&x378
                     ), tf376, tf377),  *(word*)&tf379
               );
            };
SOURCE(29961, 39)
         XR←FillWords(&drawn←v28620, 4, 0);
SOURCE(30029, 47)
         {
            W2 var←c96040;
            {
               word pd380;
               pd380 = (* (( (ptr) (* (( (ptr) gf←c103656)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd380 ))))((word) &var←c96040, t←v28536, tLL←v28564, pd380);
               };
            (*  (W2Pt) &pts←v28648 ) = var←c96040;
            };
SOURCE(30078, 59)
         {
            W2 var←c96072;
            {
               W2 var←c0543;
               {
                  W2 var←c96104;
                  var←c96104.f0 = tLL←v28564.f0;
                  var←c96104.f1 = tUR←v28592.f1;
                  {
                     word pd381;
                     pd381 = (* (( (ptr) (* (( (ptr) gf←c103656)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd381 ))))((word) &var←c0543, t←v28536, var←c96104, pd381);
                     };
                  };
               var←c96072 = var←c0543;
               };
            (*  (W2Pt) (( (ptr) &pts←v28648)+2) ) = var←c96072;
            };
SOURCE(30139, 47)
         {
            W2 var←c96136;
            {
               word pd382;
               pd382 = (* (( (ptr) (* (( (ptr) gf←c103656)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd382 ))))((word) &var←c96136, t←v28536, tUR←v28592, pd382);
               };
            (*  (W2Pt) (( (ptr) &pts←v28648)+4) ) = var←c96136;
            };
SOURCE(30188, 59)
         {
            W2 var←c96168;
            {
               W2 var←c0548;
               {
                  W2 var←c96200;
                  var←c96200.f0 = tUR←v28592.f0;
                  var←c96200.f1 = tLL←v28564.f1;
                  {
                     word pd383;
                     pd383 = (* (( (ptr) (* (( (ptr) gf←c103656)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd383 ))))((word) &var←c0548, t←v28536, var←c96200, pd383);
                     };
                  };
               var←c96168 = var←c0548;
               };
            (*  (W2Pt) (( (ptr) &pts←v28648)+6) ) = var←c96168;
            };
SOURCE(30249, 470)
         {
            register word corner←v28764 = 0;
            if (( (int)corner←v28764 >  (int)3)) {
               goto lab←L100055;
               };
            lab←L100058: ;
SOURCE(30282, 437)
            if ((0 != drawAll←v28508)) { goto then0384;};
            if ((0 != (* (( (ptr) boxParts←v28480)+BCK(corner←v28764, 4)) ))) {
               then0384: ;
SOURCE(30326, 397)
               {
                  word nextCorner←v28808;
                  word prevCorner←v28836;
SOURCE(30328, 40)
                  nextCorner←v28808 = IOP2( % ,  (int)(corner←v28764 + 1),  (int)4);
SOURCE(30370, 40)
                  prevCorner←v28836 = IOP2( % ,  (int)(corner←v28764 + 3),  (int)4);
SOURCE(30412, 92)
                  if ((0 == (* (( (ptr) &drawn←v28620)+BCK(corner←v28764, 4)) ))) {
SOURCE(30439, 43)
                     {
                        word pd385;
                        pd385 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+15) );
                        (void) ( *( (fPt) ((*  (ptr) pd385 ))))(box←v13436, (* (( (W2Pt) &pts←v28648)+BCK(corner←v28764, 4)) ), pd385);
                        };
SOURCE(30484, 20)
                     (* (( (ptr) &drawn←v28620)+BCK(corner←v28764, 4)) ) = 1;
                     };
SOURCE(30507, 104)
                  if ((0 == (* (( (ptr) &drawn←v28620)+BCK(nextCorner←v28808, 4)) ))) {
SOURCE(30538, 47)
                     {
                        word pd386;
                        pd386 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+15) );
                        (void) ( *( (fPt) ((*  (ptr) pd386 ))))(box←v13436, (* (( (W2Pt) &pts←v28648)+BCK(nextCorner←v28808, 4)) ), pd386);
                        };
SOURCE(30587, 24)
                     (* (( (ptr) &drawn←v28620)+BCK(nextCorner←v28808, 4)) ) = 1;
                     };
SOURCE(30615, 104)
                  if ((0 == (* (( (ptr) &drawn←v28620)+BCK(prevCorner←v28836, 4)) ))) {
SOURCE(30646, 47)
                     {
                        word pd387;
                        pd387 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+15) );
                        (void) ( *( (fPt) ((*  (ptr) pd387 ))))(box←v13436, (* (( (W2Pt) &pts←v28648)+BCK(prevCorner←v28836, 4)) ), pd387);
                        };
SOURCE(30695, 24)
                     (* (( (ptr) &drawn←v28620)+BCK(prevCorner←v28836, 4)) ) = 1;
                     };
                  };
               };
            if (( (int)corner←v28764 >=  (int)3)) {
               goto lab←L100055;
               };
            corner←v28764 = (corner←v28764 + 1);
            goto lab←L100058;
            lab←L100055: ;
            };
SOURCE(30735, 177)
         if ((0 != drawAll←v28508)) {
SOURCE(30767, 145)
            {
               W2 var←c96232;
               {
                  W2 var←c0554;
                  {
                     W2 var←c96264;
                     {
                        word x388;
                        word x389;
                        word x390;
                        *(float*)&var←c96264.f0 = ((
                           x388 = (*  (ptr) (*  (ptr) boxData←v28452 ) ),  *(float*)&x388
                           ) + (
                           x389 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+2) ),  *(float*)&x389
                           )) / (
                           x390 = (*  (ptr) &fc101 ),  *(float*)&x390
                           );
                        };
                     {
                        word x391;
                        word x392;
                        word x393;
                        *(float*)&var←c96264.f1 = ((
                           x391 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+1) ),  *(float*)&x391
                           ) + (
                           x392 = (* (( (ptr) (*  (ptr) boxData←v28452 ))+3) ),  *(float*)&x392
                           )) / (
                           x393 = (*  (ptr) &fc101 ),  *(float*)&x393
                           );
                        };
                     {
                        word pd394;
                        pd394 = (* (( (ptr) (* (( (ptr) gf←c103656)+301)/* var←c91976 */  ))+39) );
                        (void) ( *( (fPt) ((*  (ptr) pd394 ))))((word) &var←c0554, t←v28536, var←c96264, pd394);
                        };
                     };
                  var←c96232 = var←c0554;
                  };
               {
                  word pd395;
                  pd395 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd395 ))))(box←v13436, var←c96232, pd395);
                  };
               };
            };
SOURCE(30915, 240)
         if ((0 == drawAll←v28508)) {
SOURCE(30937, 218)
            {
               register word edge←v28880 = 0;
               if (( (int)edge←v28880 >  (int)3)) {
                  goto lab←L100059;
                  };
               lab←L100062: ;
SOURCE(30968, 187)
               if ((0 != (* ((( (ptr) boxParts←v28480)+4)+BCK(edge←v28880, 4)) ))) {
SOURCE(30999, 65)
                  if ((0 == (* (( (ptr) &drawn←v28620)+BCK(edge←v28880, 4)) ))) {
SOURCE(31023, 41)
                     {
                        word pd396;
                        pd396 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+15) );
                        (void) ( *( (fPt) ((*  (ptr) pd396 ))))(box←v13436, (* (( (W2Pt) &pts←v28648)+BCK(edge←v28880, 4)) ), pd396);
                        };
                     };
SOURCE(31066, 89)
                  {
                     word idx397;
                     if ((0 == (* (( (ptr) &drawn←v28620)+(
                           idx397 = (word) IOP2( % ,  (int)(edge←v28880 + 1),  (int)4),
                           BCK(idx397, 4)
                           )) ))) {
SOURCE(31102, 53)
                        {
                           word pd398;
                           word idx399;
                           pd398 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+15) );
                           (void) ( *( (fPt) ((*  (ptr) pd398 ))))(box←v13436, (* (( (W2Pt) &pts←v28648)+(
/*1*/         idx399 = (word) IOP2( % ,  (int)(edge←v28880 + 1),  (int)4),
/*1*/         BCK(idx399, 4)
/*1*/         )) ), pd398);
                           };
                        };
                     };
                  };
               if (( (int)edge←v28880 >=  (int)3)) {
                  goto lab←L100059;
                  };
               edge←v28880 = (edge←v28880 + 1);
               goto lab←L100062;
               lab←L100059: ;
               };
            };
SOURCE(31172, 77)
         {
            word pd400;
            word x402;
            word x403;
            word x404;
            float tf405;
            pd400 = (* (( (ptr) (* (( (ptr) gf←c103656)+304)/* var←c92328 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd400 ))))(box←v13436, (
                  tf405 = ((
                     x402 = (*  (ptr) &fc401 ),  *(float*)&x402
                     ) * (
                     x403 = (* (( (ptr) camera←v13364)+4) ),  *(float*)&x403
                     )) + (
                     x404 = (*  (ptr) &fc137 ),  *(float*)&x404
                     ),  *(word*)&tf405
                  ), pd400);
            };
         };
      };
SOURCE(29255, 1994)
   return(box←v13436);
   }

static void BoxDrawSelectionFeedback←P1620(slice←v13496, selectedParts←v13524, hotParts←v13552, dc←v13580, camera←v13608, dragInProgress←v13636, caretIsMoving←v13664, hideHot←v13692, quick←v13720)
   word slice←v13496;
   word selectedParts←v13524;
   word hotParts←v13552;
   word dc←v13580;
   word camera←v13608;
   word dragInProgress←v13636;
   word caretIsMoving←v13664;
   word hideHot←v13692;
   word quick←v13720;
   {
   register ptr gf←c103688 =  (ptr) &globalframe;
   word slowNormal←v28924 = 0;
   word slowHot←v28952 = 0;
   word completeNormal←v28980 = 0;
   word completeHot←v29008 = 0;
   W2 firstJoint←v29036;
   word normalBoxParts←v29064 = 0;
   word hotBoxParts←v29092 = 0;
   word boxData←v29120;
   word transform←v29148;
   /* BoxDrawSelectionFeedback: */ 
SOURCE(31258, 1755)
SOURCE(31568, 37)
   boxData←v29120 = XR←Narrow((* (( (ptr) slice←v13496)+1) ), (* (( (ptr) gf←c103688)+25) ));
SOURCE(31607, 45)
   transform←v29148 = (* (( (ptr) boxData←v29120)+1) );
SOURCE(31655, 72)
   if (((0 != caretIsMoving←v13664) || (0 != dragInProgress←v13636)) || ((*  (ptr) camera←v13608 ) == 2)) {
SOURCE(31721, 6)
      return;
      };
SOURCE(31729, 49)
   if ( ( (selectedParts←v13524 == 0) ? (hotParts←v13552 == 0) : 0 ) ) {
SOURCE(31772, 6)
      return;
      };
SOURCE(31780, 38)
   normalBoxParts←v29064 = XR←Narrow(selectedParts←v13524, (* (( (ptr) gf←c103688)+28) ));
SOURCE(31820, 30)
   hotBoxParts←v29092 = XR←Narrow(hotParts←v13552, (* (( (ptr) gf←c103688)+28) ));
SOURCE(31852, 66)
   if ((normalBoxParts←v29064 != 0)) {
      completeNormal←v28980 =  (unsigned) (0 != (word) IsComplete←P2520(normalBoxParts←v29064));
      }
   else {
      completeNormal←v28980 =  (unsigned) 0;
      };
SOURCE(31920, 57)
   if ((hotBoxParts←v29092 != 0)) {
      completeHot←v29008 =  (unsigned) (0 != (word) IsComplete←P2520(hotBoxParts←v29092));
      }
   else {
      completeHot←v29008 =  (unsigned) 0;
      };
SOURCE(31979, 81)
   if ((normalBoxParts←v29064 != 0)) {
      if ((0 == quick←v13720)) {
         slowNormal←v28924 =  (unsigned) 1;
         }
      else {
         if ((0 != quick←v13720)) {
            slowNormal←v28924 =  (unsigned) (0 == completeNormal←v28980);
            }
         else {
            slowNormal←v28924 =  (unsigned) 0;
            };
         };
      }
   else {
      slowNormal←v28924 =  (unsigned) 0;
      };
SOURCE(32062, 72)
   if ((hotBoxParts←v29092 != 0)) {
      if ((0 == quick←v13720)) {
         slowHot←v28952 =  (unsigned) 1;
         }
      else {
         if ((0 != quick←v13720)) {
            slowHot←v28952 =  (unsigned) (0 == completeHot←v29008);
            }
         else {
            slowHot←v28952 =  (unsigned) 0;
            };
         };
      }
   else {
      slowHot←v28952 =  (unsigned) 0;
      };
SOURCE(32136, 335)
   if (((0 != slowNormal←v28924) && (0 != slowHot←v28952))) {
SOURCE(32167, 98)
      (void) DrawSelectionFeedbackBox←P1920(slice←v13496, boxData←v29120, normalBoxParts←v29064, hotBoxParts←v29092, dc←v13580, transform←v29148
         , camera←v13608);
      }
   else {
SOURCE(32265, 206)
      if ((0 != slowNormal←v28924)) {
SOURCE(32284, 90)
         (void) DrawSelectionFeedbackBox←P1920(slice←v13496, boxData←v29120, normalBoxParts←v29064, 0, dc←v13580, transform←v29148
            , camera←v13608);
         }
      else {
SOURCE(32374, 97)
         if ((0 != slowHot←v28952)) {
SOURCE(32390, 81)
            (void) DrawSelectionFeedbackBox←P1920(slice←v13496, boxData←v29120, 0, hotBoxParts←v29092, dc←v13580, transform←v29148
               , camera←v13608);
            };
         };
      };
SOURCE(32473, 316)
   if ( ( (0 == slowNormal←v28924) ? (0 != completeNormal←v28980) : 0 )  ||  ( (0 == slowHot←v28952) ? (0 != completeHot←v29008) : 0 ) ) {
SOURCE(32550, 241)
      {
         word fullParts←v29192;
SOURCE(32552, 76)
         fullParts←v29192 =  ( (0 != completeNormal←v28980) ? normalBoxParts←v29064 : hotBoxParts←v29092 ) ;
SOURCE(32630, 34)
         {
            word var←c96296;
            word pd406;
            pd406 = (* (( (ptr) (* (( (ptr) gf←c103688)+305)/* var←c92456 */  ))+9) );
            var←c96296 = (word) ( *( (fPt) ((*  (ptr) pd406 ))))(slice←v13496, 0, pd406);
            };
SOURCE(32699, 90)
         {
            W2 var←c0577;
            {
               W2 var←c96328;
               var←c96328.f0 = (*  (ptr) (*  (ptr) boxData←v29120 ) );
               var←c96328.f1 = (* (( (ptr) (*  (ptr) boxData←v29120 ))+1) );
               {
                  word pd407;
                  pd407 = (* (( (ptr) (* (( (ptr) gf←c103688)+301)/* var←c91976 */  ))+39) );
                  (void) ( *( (fPt) ((*  (ptr) pd407 ))))((word) &var←c0577, transform←v29148, var←c96328, pd407);
                  };
               };
            firstJoint←v29036 = var←c0577;
            };
         };
      };
SOURCE(32794, 104)
   if ( ( (0 == slowHot←v28952) ? (0 != completeHot←v29008) : 0 ) ) {
SOURCE(32830, 68)
      {
         word pd408;
         pd408 = (* (( (ptr) (* (( (ptr) gf←c103688)+312)/* var←c95848 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd408 ))))(dc←v13580, firstJoint←v29036, 1, (* (( (ptr) camera←v13608)+4) ), pd408);
         };
      };
SOURCE(32900, 113)
   if ( ( (0 == slowNormal←v28924) ? (0 != completeNormal←v28980) : 0 ) ) {
SOURCE(32942, 71)
      {
         word pd409;
         pd409 = (* (( (ptr) (* (( (ptr) gf←c103688)+312)/* var←c95848 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd409 ))))(dc←v13580, firstJoint←v29036, 0, (* (( (ptr) camera←v13608)+4) ), pd409);
         };
      };
   }

static void RenderText←P1680(formal←c01534, formal←c01535, formal←c01536, quick←v13864)
   word formal←c01534;
   word formal←c01535;
   word formal←c01536;
   word quick←v13864;
   {
   W10 var←c103720;
   /* declaration of dc←v13780 skipped */ 
   /* declaration of slice←v13808 skipped */ 
   /* declaration of camera←v13836 skipped */ 
   register ptr gf←c103752 =  (ptr) &globalframe;
   /* declaration of var←c96360 skipped */ 
   /* declaration of boxData←v29264 skipped */ 
   (* (( (ptr) &var←c103720)+4)/* dc←v13780 */  ) = formal←c01534;
   (* (( (ptr) &var←c103720)+5)/* slice←v13808 */  ) = formal←c01535;
   (* (( (ptr) &var←c103720)+6)/* camera←v13836 */  ) = formal←c01536;
   /* RenderText: */ 
SOURCE(33019, 745)
   {
      word tmpAddr410;
      tmpAddr410 = (word) (( (ptr) &var←c103720)+7)/* var←c96360 */ ;
      (*  (ptr) tmpAddr410 ) = ( ((word)  (fPt) DoRenderText←P7944) );
      (* (( (ptr) tmpAddr410) + 1) ) = 1;
      };
SOURCE(33660, 37)
   (* (( (ptr) &var←c103720)+9)/* boxData←v29264 */  ) = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c103720)+5)/* slice←v13808 */  ))+1)
       ), (* (( (ptr) gf←c103752)+25) ));
SOURCE(33699, 65)
   if (((* (( (ptr) (* (( (ptr) &var←c103720)+9)/* boxData←v29264 */  ))+7) ) != 0)) {
SOURCE(33733, 31)
      {
         word pd411;
         pd411 = (* (( (ptr) (* (( (ptr) gf←c103752)+303)/* var←c92232 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd411 ))))((* (( (ptr) &var←c103720)+4)/* dc←v13780 */  ), (word) (( (bPt) &var←c103720)+28)
            /* var←c96360 */ , pd411);
         };
      };
   }

static void DoRenderText←P7944(formal←c103816)
   word formal←c103816;
   {
   register ptr gf←c103784 =  (ptr) &globalframe;
   W2 refPoint←v29324;
   formal←c103816 = (formal←c103816 - 28);
   /* DoRenderText: */ 
SOURCE(33111, 544)
SOURCE(33137, 52)
   refPoint←v29324.f0 = (*  (ptr) (*  (ptr) (* (( (ptr) formal←c103816)+9) ) ) );
   refPoint←v29324.f1 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c103816)+9) ) ))+3) );
SOURCE(33191, 37)
   {
      word pd412;
      pd412 = (* (( (ptr) (* (( (ptr) gf←c103784)+303)/* var←c92232 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd412 ))))((* (( (ptr) formal←c103816)+4) ), (* (( (ptr) (* (( (ptr) formal←c103816)+9) ))+1)
          ), pd412);
      };
SOURCE(33230, 33)
   {
      word pd413;
      pd413 = (* (( (ptr) (* (( (ptr) gf←c103784)+303)/* var←c92232 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd413 ))))((* (( (ptr) formal←c103816)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c103784)+303)
            /* var←c92232 */  ))+54) ) ), pd413);
      };
SOURCE(33265, 286)
   {
      word var←c96424;
      var←c96424 = (* (( (ptr) (* (( (ptr) formal←c103816)+6) ))+1) );
      if ((var←c96424 == 1)) {
SOURCE(33307, 62)
         if ((0 == (* (( (ptr) (* (( (ptr) formal←c103816)+9) ))+13) ))) {
SOURCE(33341, 28)
            (void) FlipBoxStyle←P1320((* (( (ptr) formal←c103816)+5) ), (* (( (ptr) formal←c103816)+9) ));
            };
         }
      else {
         if ((var←c96424 == 0)) {
SOURCE(33380, 171)
            {
               word var←c96456;
               var←c96456 = (* (( (ptr) (* (( (ptr) formal←c103816)+9) ))+12) );
               if ((var←c96456 == 1)) {
SOURCE(33420, 62)
                  if ((0 == (* (( (ptr) (* (( (ptr) formal←c103816)+9) ))+13) ))) {
SOURCE(33454, 28)
                     (void) FlipBoxStyle←P1320((* (( (ptr) formal←c103816)+5) ), (* (( (ptr) formal←c103816)+9) ));
                     };
                  }
               else {
                  if ((var←c96456 == 0)) {
SOURCE(33493, 58)
                     if ((0 != (* (( (ptr) (* (( (ptr) formal←c103816)+9) ))+13) ))) {
SOURCE(33523, 28)
                        (void) FlipBoxStyle←P1320((* (( (ptr) formal←c103816)+5) ), (* (( (ptr) formal←c103816)+9) ));
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(33571, 84)
   {
      word pd414;
      pd414 = (* (( (ptr) (* (( (ptr) gf←c103784)+306)/* var←c92584 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd414 ))))((* (( (ptr) (* (( (ptr) formal←c103816)+9) ))+9) ), (* (( (ptr) formal←c103816)+4)
          ), refPoint←v29324, pd414);
      };
   }

static void DrawSingleStrokeBox←P1740(dc←v13924, slice←v13952)
   word dc←v13924;
   word slice←v13952;
   {
   W7 var←c103848;
   register ptr gf←c103880 =  (ptr) &globalframe;
   /* declaration of var←c96488 skipped */ 
   /* declaration of boxData←v29396 skipped */ 
   /* DrawSingleStrokeBox: */ 
SOURCE(33770, 341)
   {
      word tmpAddr415;
      tmpAddr415 = (word) (( (ptr) &var←c103848)+4)/* var←c96488 */ ;
      (*  (ptr) tmpAddr415 ) = ( ((word)  (fPt) BuildPath←P8004) );
      (* (( (ptr) tmpAddr415) + 1) ) = 1;
      };
SOURCE(34031, 37)
   var←c103848.f6/* boxData←v29396 */  = XR←Narrow((* (( (ptr) slice←v13952)+1) ), (* (( (ptr) gf←c103880)+25) ));
SOURCE(34070, 41)
   (void) MaskStrokeBoxPath←P1800(dc←v13924, var←c103848.f6/* boxData←v29396 */ , (word) (( (bPt) &var←c103848)+16)/* var←c96488 */ )
   ;
   }

static void BuildPath←P8004(moveTo←v76148, lineTo←v76176, curveTo←v76204, conicTo←v76232, arcTo←v76260, formal←c103912)
   word moveTo←v76148;
   word lineTo←v76176;
   word curveTo←v76204;
   word conicTo←v76232;
   word arcTo←v76260;
   word formal←c103912;
   {
   W8 pts←v29440;
   formal←c103912 = (formal←c103912 - 16);
   /* BuildPath: */ 
SOURCE(33835, 191)
SOURCE(33866, 80)
   (void) TransformedBoxPoints←P1200((word) &pts←v29440, (*  (ptr) (* (( (ptr) formal←c103912)+6) ) ), (* (( (ptr) (* (( (ptr) formal←c103912)+6)
          ))+1) ));
SOURCE(33948, 14)
   (void) ( *( (fPt) ((*  (ptr) moveTo←v76148 ))))((*  (W2Pt) (&pts←v29440) ), moveTo←v76148);
SOURCE(33964, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v76176 ))))((*  (W2Pt) ((( (ptr) &pts←v29440)+2)) ), lineTo←v76176);
SOURCE(33980, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v76176 ))))((*  (W2Pt) ((( (ptr) &pts←v29440)+4)) ), lineTo←v76176);
SOURCE(33996, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v76176 ))))((*  (W2Pt) ((( (ptr) &pts←v29440)+6)) ), lineTo←v76176);
SOURCE(34012, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v76176 ))))((*  (W2Pt) (&pts←v29440) ), lineTo←v76176);
   }

static void MaskStrokeBoxPath←P1800(dc←v14012, boxData←v14040, pathProc←v14068)
   word dc←v14012;
   word boxData←v14040;
   word pathProc←v14068;
   {
   W7 var←c103944;
   register ptr gf←c103976 =  (ptr) &globalframe;
   /* declaration of var←c96520 skipped */ 
   word firstSeg←v29548;
   word strokeWidth←v29576;
   /* declaration of pattern←v29604 skipped */ 
   /* MaskStrokeBoxPath: */ 
SOURCE(34144, 679)
   {
      word tmpAddr416;
      tmpAddr416 = (word) (( (ptr) &var←c103944)+4)/* var←c96520 */ ;
      (*  (ptr) tmpAddr416 ) = ( ((word)  (fPt) PatternProc←P8064) );
      (* (( (ptr) tmpAddr416) + 1) ) = 1;
      };
SOURCE(34307, 39)
   firstSeg←v29548 = (* (( (ptr) boxData←v14040)+36) );
SOURCE(34348, 40)
   strokeWidth←v29576 = (* (( (ptr) firstSeg←v29548)+2) );
SOURCE(34390, 42)
   var←c103944.f6/* pattern←v29604 */  = (* (( (ptr) firstSeg←v29548)+5) );
SOURCE(34434, 52)
   {
      word x417;
      word x418;
      if (((
         x417 = strokeWidth←v29576,  *(float*)&x417
         ) == (
         x418 = (*  (ptr) &fc216 ),  *(float*)&x418
         )) || ((* (( (ptr) firstSeg←v29548)+8) ) == 0)) {
SOURCE(34480, 6)
         return;
         };
      };
SOURCE(34489, 38)
   {
      word pd419;
      pd419 = (* (( (ptr) (* (( (ptr) gf←c103976)+303)/* var←c92232 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd419 ))))(dc←v14012, strokeWidth←v29576, pd419);
      };
SOURCE(34529, 43)
   {
      word pd420;
      pd420 = (* (( (ptr) (* (( (ptr) gf←c103976)+303)/* var←c92232 */  ))+69) );
      (void) ( *( (fPt) ((*  (ptr) pd420 ))))(dc←v14012, (* (( (ptr) firstSeg←v29548)+3) ), pd420);
      };
SOURCE(34574, 46)
   {
      word pd421;
      pd421 = (* (( (ptr) (* (( (ptr) gf←c103976)+303)/* var←c92232 */  ))+70) );
      (void) ( *( (fPt) ((*  (ptr) pd421 ))))(dc←v14012, (* (( (ptr) boxData←v14040)+14) ), pd421);
      };
SOURCE(34622, 35)
   {
      word pd422;
      pd422 = (* (( (ptr) (* (( (ptr) gf←c103976)+303)/* var←c92232 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd422 ))))(dc←v14012, (* (( (ptr) firstSeg←v29548)+8) ), pd422);
      };
SOURCE(34659, 164)
   if ((0 != (* (( (ptr) firstSeg←v29548)+4) ))) {
SOURCE(34683, 103)
      {
         word pd423;
         pd423 = (* (( (ptr) (* (( (ptr) gf←c103976)+303)/* var←c92232 */  ))+75) );
         (void) ( *( (fPt) ((*  (ptr) pd423 ))))(dc←v14012, pathProc←v14068, (*  (ptr) var←c103944.f6/* pattern←v29604 */  ), (word) (
               ( (bPt) &var←c103944)+16)/* var←c96520 */ , (* (( (ptr) firstSeg←v29548)+6) ), (* (( (ptr) firstSeg←v29548)+7) ), pd423);
         };
      }
   else {
SOURCE(34786, 37)
      {
         word pd424;
         pd424 = (* (( (ptr) (* (( (ptr) gf←c103976)+303)/* var←c92232 */  ))+71) );
         (void) ( *( (fPt) ((*  (ptr) pd424 ))))(dc←v14012, pathProc←v14068, 1, pd424);
         };
      };
   }

static word PatternProc←P8064(i←v29680, formal←c104008)
   word i←v29680;
   word formal←c104008;
   {
   word var←c29724;
   formal←c104008 = (formal←c104008 - 16);
   /* PatternProc: */ 
SOURCE(34238, 64)
SOURCE(34284, 18)
   {
      word limit425;
      return((* ((( (ptr) (* (( (ptr) formal←c104008)+6) ))+1)+(
            limit425 = (*  (ptr) (* (( (ptr) formal←c104008)+6) ) ),
            BCK(i←v29680, limit425)
            )) ));
      };
   }

static word AllStrokePropsAndColorsEqual←P1860(boxData←v14128)
   word boxData←v14128;
   {
   register ptr gf←c104040 =  (ptr) &globalframe;
   word var←c14172;
   word seg←v29752 = 0;
   word firstSeg←v29780;
   word width←v29808;
   word end←v29836;
   word color←v29864;
   word dashed←v29892;
   word pattern←v29920;
   word offset←v29948;
   word length←v29976;
   /* AllStrokePropsAndColorsEqual: */ 
SOURCE(34829, 856)
SOURCE(34829, 856)
   var←c14172 = 0;
SOURCE(34924, 39)
   firstSeg←v29780 = (* (( (ptr) boxData←v14128)+36) );
SOURCE(34965, 34)
   width←v29808 = (* (( (ptr) firstSeg←v29780)+2) );
SOURCE(35001, 35)
   end←v29836 = (* (( (ptr) firstSeg←v29780)+3) );
SOURCE(35038, 29)
   color←v29864 = (* (( (ptr) firstSeg←v29780)+8) );
SOURCE(35069, 30)
   dashed←v29892 = (* (( (ptr) firstSeg←v29780)+4) );
SOURCE(35101, 42)
   pattern←v29920 = (* (( (ptr) firstSeg←v29780)+5) );
SOURCE(35145, 30)
   offset←v29948 = (* (( (ptr) firstSeg←v29780)+6) );
SOURCE(35177, 30)
   length←v29976 = (* (( (ptr) firstSeg←v29780)+7) );
SOURCE(35209, 476)
   {
      register word i←v30020 = 1;
      if (( (int)i←v30020 >  (int)3)) {
         goto lab←L100063;
         };
      lab←L100066: ;
SOURCE(35233, 25)
      seg←v29752 = (* ((( (ptr) boxData←v14128)+36)+BCK(i←v30020, 4)) );
SOURCE(35260, 41)
      if (((* (( (ptr) seg←v29752)+4) ) != dashed←v29892)) {
SOURCE(35288, 13)
         return(0);
         };
SOURCE(35303, 41)
      if (((* (( (ptr) seg←v29752)+3) ) != end←v29836)) {
SOURCE(35331, 13)
         return(0);
         };
SOURCE(35346, 45)
      {
         word x426;
         word x427;
         if (((
            x426 = (* (( (ptr) seg←v29752)+2) ),  *(float*)&x426
            ) != (
            x427 = width←v29808,  *(float*)&x427
            ))) {
SOURCE(35378, 13)
            return(0);
            };
         };
SOURCE(35393, 70)
      {
         word pd428;
         pd428 = (* (( (ptr) (* (( (ptr) gf←c104040)+310)/* var←c93352 */  ))+35) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd428 ))))(color←v29864, (* (( (ptr) seg←v29752)+8) ), pd428))) {
SOURCE(35450, 13)
            return(0);
            };
         };
SOURCE(35465, 19)
      if ((0 == dashed←v29892)) {
SOURCE(35484, 4)
         goto lab←L100065;
         };
SOURCE(35490, 41)
      {
         word x429;
         word x430;
         if (((
            x429 = (* (( (ptr) seg←v29752)+6) ),  *(float*)&x429
            ) != (
            x430 = offset←v29948,  *(float*)&x430
            ))) {
SOURCE(35518, 13)
            return(0);
            };
         };
SOURCE(35533, 41)
      {
         word x431;
         word x432;
         if (((
            x431 = (* (( (ptr) seg←v29752)+7) ),  *(float*)&x431
            ) != (
            x432 = length←v29976,  *(float*)&x432
            ))) {
SOURCE(35561, 13)
            return(0);
            };
         };
SOURCE(35576, 76)
      {
         word pd433;
         pd433 = (* (( (ptr) (* (( (ptr) gf←c104040)+313)/* var←c96552 */  ))+38) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd433 ))))((* (( (ptr) seg←v29752)+5) ), pattern←v29920, pd433))) {
SOURCE(35639, 13)
            return(0);
            };
         };
      lab←L100065: ;
      if (( (int)i←v30020 >=  (int)3)) {
         goto lab←L100063;
         };
      i←v30020 = (i←v30020 + 1);
      goto lab←L100066;
      lab←L100063: ;
SOURCE(35673, 12)
      return(1);
      };
   }

static void DrawSelectionFeedbackBox←P1920(slice←v14232, formal←c01537, formal←c01538, formal←c01539, formal←c01540, formal←c01541, formal←c01542)
   word slice←v14232;
   word formal←c01537;
   word formal←c01538;
   word formal←c01539;
   word formal←c01540;
   word formal←c01541;
   word formal←c01542;
   {
   W12 var←c104072;
   /* declaration of boxData←v14260 skipped */ 
   /* declaration of normalBoxParts←v14288 skipped */ 
   /* declaration of hotBoxParts←v14316 skipped */ 
   /* declaration of dc←v14344 skipped */ 
   /* declaration of t←v14372 skipped */ 
   /* declaration of camera←v14400 skipped */ 
   register ptr gf←c104104 =  (ptr) &globalframe;
   /* declaration of var←c96584 skipped */ 
   (* (( (ptr) &var←c104072)+4)/* boxData←v14260 */  ) = formal←c01537;
   (* (( (ptr) &var←c104072)+5)/* normalBoxParts←v14288 */  ) = formal←c01538;
   (* (( (ptr) &var←c104072)+6)/* hotBoxParts←v14316 */  ) = formal←c01539;
   (* (( (ptr) &var←c104072)+7)/* dc←v14344 */  ) = formal←c01540;
   (* (( (ptr) &var←c104072)+8)/* t←v14372 */  ) = formal←c01541;
   (* (( (ptr) &var←c104072)+9)/* camera←v14400 */  ) = formal←c01542;
   /* DrawSelectionFeedbackBox: */ 
SOURCE(35700, 1514)
   {
      word tmpAddr434;
      tmpAddr434 = (word) (( (ptr) &var←c104072)+10)/* var←c96584 */ ;
      (*  (ptr) tmpAddr434 ) = ( ((word)  (fPt) DoDrawFeedback←P8172) );
      (* (( (ptr) tmpAddr434) + 1) ) = 1;
      };
SOURCE(37181, 33)
   {
      word pd435;
      pd435 = (* (( (ptr) (* (( (ptr) gf←c104104)+303)/* var←c92232 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd435 ))))((* (( (ptr) &var←c104072)+7)/* dc←v14344 */  ), (word) (( (bPt) &var←c104072)+40)
         /* var←c96584 */ , pd435);
      };
   }

static void DoDrawFeedback←P8172(formal←c104168)
   word formal←c104168;
   {
   register ptr gf←c104136 =  (ptr) &globalframe;
   word box←v30124;
   W2 cc←v30152;
   word thisCPisHot←v30180;
   word thisCPisSelected←v30208;
   W8 pts←v30236;
   formal←c104168 = (formal←c104168 - 40);
   /* DoDrawFeedback: */ 
SOURCE(35872, 1304)
SOURCE(35897, 27)
   box←v30124 = (*  (ptr) (* (( (ptr) formal←c104168)+4) ) );
SOURCE(36001, 63)
   {
      W2 var←c96616;
      {
         W2 var←c0634;
         {
            W2 var←c96648;
            var←c96648.f0 = (*  (ptr) box←v30124 );
            var←c96648.f1 = (* (( (ptr) box←v30124)+1) );
            {
               word pd436;
               pd436 = (* (( (ptr) (* (( (ptr) gf←c104136)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd436 ))))((word) &var←c0634, (* (( (ptr) formal←c104168)+8) ), var←c96648, pd436);
               };
            };
         var←c96616 = var←c0634;
         };
      (*  (W2Pt) &pts←v30236 ) = var←c96616;
      };
SOURCE(36066, 63)
   {
      W2 var←c96680;
      {
         W2 var←c0637;
         {
            W2 var←c96712;
            var←c96712.f0 = (*  (ptr) box←v30124 );
            var←c96712.f1 = (* (( (ptr) box←v30124)+3) );
            {
               word pd437;
               pd437 = (* (( (ptr) (* (( (ptr) gf←c104136)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd437 ))))((word) &var←c0637, (* (( (ptr) formal←c104168)+8) ), var←c96712, pd437);
               };
            };
         var←c96680 = var←c0637;
         };
      (*  (W2Pt) (( (ptr) &pts←v30236)+2) ) = var←c96680;
      };
SOURCE(36131, 63)
   {
      W2 var←c96744;
      {
         W2 var←c0640;
         {
            W2 var←c96776;
            var←c96776.f0 = (* (( (ptr) box←v30124)+2) );
            var←c96776.f1 = (* (( (ptr) box←v30124)+3) );
            {
               word pd438;
               pd438 = (* (( (ptr) (* (( (ptr) gf←c104136)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd438 ))))((word) &var←c0640, (* (( (ptr) formal←c104168)+8) ), var←c96776, pd438);
               };
            };
         var←c96744 = var←c0640;
         };
      (*  (W2Pt) (( (ptr) &pts←v30236)+4) ) = var←c96744;
      };
SOURCE(36196, 63)
   {
      W2 var←c96808;
      {
         W2 var←c0643;
         {
            W2 var←c96840;
            var←c96840.f0 = (* (( (ptr) box←v30124)+2) );
            var←c96840.f1 = (* (( (ptr) box←v30124)+1) );
            {
               word pd439;
               pd439 = (* (( (ptr) (* (( (ptr) gf←c104136)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd439 ))))((word) &var←c0643, (* (( (ptr) formal←c104168)+8) ), var←c96840, pd439);
               };
            };
         var←c96808 = var←c0643;
         };
      (*  (W2Pt) (( (ptr) &pts←v30236)+6) ) = var←c96808;
      };
SOURCE(36261, 447)
   {
      register word corner←v30316 = 0;
      if (( (int)corner←v30316 >  (int)3)) {
         goto lab←L100067;
         };
      lab←L100070: ;
SOURCE(36294, 61)
      if (((* (( (ptr) formal←c104168)+6) ) != 0)) {
         thisCPisHot←v30180 =  (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c104168)+6) ))+BCK(corner←v30316, 4)) ));
         }
      else {
         thisCPisHot←v30180 =  (unsigned) 0;
         };
SOURCE(36357, 72)
      if (((* (( (ptr) formal←c104168)+5) ) != 0)) {
         thisCPisSelected←v30208 =  (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c104168)+5) ))+BCK(corner←v30316, 4)) ));
         }
      else {
         thisCPisSelected←v30208 =  (unsigned) 0;
         };
SOURCE(36431, 84)
      if ((0 != thisCPisHot←v30180)) {
SOURCE(36451, 64)
         {
            word pd440;
            pd440 = (* (( (ptr) (* (( (ptr) gf←c104136)+312)/* var←c95848 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd440 ))))((* (( (ptr) formal←c104168)+7) ), (* (( (W2Pt) &pts←v30236)+BCK(corner←v30316, 4)
                  ) ), 1, (* (( (ptr) (* (( (ptr) formal←c104168)+9) ))+4) ), pd440);
            };
         };
SOURCE(36517, 92)
      if ((0 != thisCPisSelected←v30208)) {
SOURCE(36542, 67)
         {
            word pd441;
            pd441 = (* (( (ptr) (* (( (ptr) gf←c104136)+312)/* var←c95848 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd441 ))))((* (( (ptr) formal←c104168)+7) ), (* (( (W2Pt) &pts←v30236)+BCK(corner←v30316, 4)
                  ) ), 0, (* (( (ptr) (* (( (ptr) formal←c104168)+9) ))+4) ), pd441);
            };
         };
SOURCE(36611, 97)
      if ( ( (0 == thisCPisHot←v30180) ? (0 == thisCPisSelected←v30208) : 0 ) ) {
SOURCE(36660, 48)
         {
            word pd442;
            pd442 = (* (( (ptr) (* (( (ptr) gf←c104136)+312)/* var←c95848 */  ))+19) );
            (void) ( *( (fPt) ((*  (ptr) pd442 ))))((* (( (ptr) formal←c104168)+7) ), (* (( (W2Pt) &pts←v30236)+BCK(corner←v30316, 4)
                  ) ), (* (( (ptr) (* (( (ptr) formal←c104168)+9) ))+4) ), pd442);
            };
         };
      if (( (int)corner←v30316 >=  (int)3)) {
         goto lab←L100067;
         };
      corner←v30316 = (corner←v30316 + 1);
      goto lab←L100070;
      lab←L100067: ;
      };
SOURCE(36719, 52)
   if (((* (( (ptr) formal←c104168)+6) ) != 0)) {
      thisCPisHot←v30180 =  (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c104168)+6) ))+8) ));
      }
   else {
      thisCPisHot←v30180 =  (unsigned) 0;
      };
SOURCE(36773, 63)
   if (((* (( (ptr) formal←c104168)+5) ) != 0)) {
      thisCPisSelected←v30208 =  (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c104168)+5) ))+8) ));
      }
   else {
      thisCPisSelected←v30208 =  (unsigned) 0;
      };
SOURCE(36838, 86)
   {
      W2 var←c0646;
      {
         W2 var←c96872;
         {
            word x443;
            word x444;
            word x445;
            *(float*)&var←c96872.f0 = ((
               x443 = (*  (ptr) box←v30124 ),  *(float*)&x443
               ) + (
               x444 = (* (( (ptr) box←v30124)+2) ),  *(float*)&x444
               )) / (
               x445 = (*  (ptr) &fc101 ),  *(float*)&x445
               );
            };
         {
            word x446;
            word x447;
            word x448;
            *(float*)&var←c96872.f1 = ((
               x446 = (* (( (ptr) box←v30124)+1) ),  *(float*)&x446
               ) + (
               x447 = (* (( (ptr) box←v30124)+3) ),  *(float*)&x447
               )) / (
               x448 = (*  (ptr) &fc101 ),  *(float*)&x448
               );
            };
         {
            word pd449;
            pd449 = (* (( (ptr) (* (( (ptr) gf←c104136)+301)/* var←c91976 */  ))+39) );
            (void) ( *( (fPt) ((*  (ptr) pd449 ))))((word) &var←c0646, (* (( (ptr) formal←c104168)+8) ), var←c96872, pd449);
            };
         };
      cc←v30152 = var←c0646;
      };
SOURCE(36926, 75)
   if ((0 != thisCPisHot←v30180)) {
SOURCE(36946, 55)
      {
         word pd450;
         pd450 = (* (( (ptr) (* (( (ptr) gf←c104136)+312)/* var←c95848 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd450 ))))((* (( (ptr) formal←c104168)+7) ), cc←v30152, 1, (* (( (ptr) (* (( (ptr) formal←c104168)+9)
                ))+4) ), pd450);
         };
      };
SOURCE(37003, 83)
   if ((0 != thisCPisSelected←v30208)) {
SOURCE(37028, 58)
      {
         word pd451;
         pd451 = (* (( (ptr) (* (( (ptr) gf←c104136)+312)/* var←c95848 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd451 ))))((* (( (ptr) formal←c104168)+7) ), cc←v30152, 0, (* (( (ptr) (* (( (ptr) formal←c104168)+9)
                ))+4) ), pd451);
         };
      };
SOURCE(37088, 88)
   if ( ( (0 == thisCPisHot←v30180) ? (0 == thisCPisSelected←v30208) : 0 ) ) {
SOURCE(37137, 39)
      {
         word pd452;
         pd452 = (* (( (ptr) (* (( (ptr) gf←c104136)+312)/* var←c95848 */  ))+19) );
         (void) ( *( (fPt) ((*  (ptr) pd452 ))))((* (( (ptr) formal←c104168)+7) ), cc←v30152, (* (( (ptr) (* (( (ptr) formal←c104168)+9)
                ))+4) ), pd452);
         };
      };
   }

static void BoxDrawAll←P1980(formal←c01543, formal←c01544, from←v14516, to←v14544, camera←v14572)
   word formal←c01543;
   word formal←c01544;
   W2 from←v14516;
   W2 to←v14544;
   word camera←v14572;
   {
   W17 var←c104200;
   /* declaration of dc←v14460 skipped */ 
   /* declaration of boxData←v14488 skipped */ 
   register ptr gf←c104232 =  (ptr) &globalframe;
   W2 var←c96904;
   /* declaration of var←c96936 skipped */ 
   /* declaration of t←v30388 skipped */ 
   /* declaration of pts←v30416 skipped */ 
   (* (( (ptr) &var←c104200)+4)/* dc←v14460 */  ) = formal←c01543;
   (* (( (ptr) &var←c104200)+5)/* boxData←v14488 */  ) = formal←c01544;
   /* BoxDrawAll: */ 
SOURCE(37220, 793)
   (*  (ptr) (word) &var←c96904 ) = ( ((word)  (fPt) DoMaskPixel←P8388) );
   (* (( (ptr) (word) &var←c96904) + 1) ) = 1;
   {
      word tmpAddr453;
      tmpAddr453 = (word) (( (ptr) &var←c104200)+6)/* var←c96936 */ ;
      (*  (ptr) tmpAddr453 ) = ( ((word)  (fPt) BoxPath←P8280) );
      (* (( (ptr) tmpAddr453) + 1) ) = 1;
      };
SOURCE(37412, 37)
   (* (( (ptr) &var←c104200)+8)/* t←v30388 */  ) = (* (( (ptr) (* (( (ptr) &var←c104200)+5)/* boxData←v14488 */  ))+1) );
SOURCE(37478, 104)
   {
      W8 var←c0657;
      {
         W6 var←c96968;
         var←c96968.f0 = to←v14544.f0;
         var←c96968.f1 = to←v14544.f1;
         var←c96968.f2 = from←v14516.f0;
         var←c96968.f3 = from←v14516.f1;
         var←c96968.f4 = 0;
         var←c96968.f5 = 0;
         (void) TransformBoxObj←P1260((word) &var←c0657, var←c96968, (* (( (ptr) &var←c104200)+8)/* t←v30388 */  ));
         };
      (*  (W8Pt) (( (ptr) &var←c104200)+9)/* pts←v30416 */  ) = var←c0657;
      };
SOURCE(37584, 194)
   if (((* (( (ptr) (* (( (ptr) &var←c104200)+5)/* boxData←v14488 */  ))+5) ) != 0)) {
SOURCE(37616, 162)
      if (((* (( (ptr) (* (( (ptr) &var←c104200)+5)/* boxData←v14488 */  ))+6) ) == 0)) {
SOURCE(37653, 34)
         {
            word pd454;
            pd454 = (* (( (ptr) (* (( (ptr) gf←c104232)+303)/* var←c92232 */  ))+62) );
            (void) ( *( (fPt) ((*  (ptr) pd454 ))))((* (( (ptr) &var←c104200)+4)/* dc←v14460 */  ), (word) (( (bPt) &var←c104200)+24)
               /* var←c96936 */ , 0, pd454);
            };
         }
      else {
         };
      };
SOURCE(37789, 224)
   if ((0 != (word) AllStrokePropsAndColorsEqual←P1860((* ((( (ptr) &var←c104200)+5)/* boxData←v14488 */ ) )))) {
SOURCE(37835, 45)
      (void) MaskStrokeBoxPath←P1800((* (( (ptr) &var←c104200)+4)/* dc←v14460 */  ), (* (( (ptr) &var←c104200)+5)/* boxData←v14488 */  ), (word) (
            ( (bPt) &var←c104200)+24)/* var←c96936 */ );
      }
   else {
SOURCE(37882, 131)
      {
         register word edge←v30556 = 0;
         if (( (int)edge←v30556 >  (int)3)) {
            goto lab←L100071;
            };
         lab←L100074: ;
         {
            word seg←v30600;
SOURCE(37913, 37)
            seg←v30600 = (* ((( (ptr) (* (( (ptr) &var←c104200)+5)/* boxData←v14488 */  ))+36)+BCK(edge←v30556, 4)) );
SOURCE(37952, 61)
            {
               word pd455;
               word idx456;
               pd455 = (* (( (ptr) (* (( (ptr) gf←c104232)+302)/* var←c92200 */  ))+29) );
               (void) ( *( (fPt) ((*  (ptr) pd455 ))))((* (( (ptr) &var←c104200)+4)/* dc←v14460 */  ), (* (( (W2Pt) (( (ptr) &var←c104200)+9)
                     /* pts←v30416 */ )+BCK(edge←v30556, 4)) ), (* (( (W2Pt) (( (ptr) &var←c104200)+9)/* pts←v30416 */ )+(
                        idx456 = (word) IOP2( % ,  (int)(edge←v30556 + 1),  (int)4),
                        BCK(idx456, 4)
                        )) ), seg←v30600, pd455);
               };
            };
         if (( (int)edge←v30556 >=  (int)3)) {
            goto lab←L100071;
            };
         edge←v30556 = (edge←v30556 + 1);
         goto lab←L100074;
         lab←L100071: ;
         };
      };
   }

static void BoxPath←P8280(moveTo←v77912, lineTo←v77940, curveTo←v77968, conicTo←v77996, arcTo←v78024, formal←c104264)
   word moveTo←v77912;
   word lineTo←v77940;
   word curveTo←v77968;
   word conicTo←v77996;
   word arcTo←v78024;
   word formal←c104264;
   {
   formal←c104264 = (formal←c104264 - 24);
   /* BoxPath: */ 
SOURCE(37320, 88)
SOURCE(37346, 14)
   (void) ( *( (fPt) ((*  (ptr) moveTo←v77912 ))))((*  (W2Pt) ((( (ptr) formal←c104264)+9)) ), moveTo←v77912);
SOURCE(37362, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v77940 ))))((*  (W2Pt) ((( (ptr) formal←c104264)+11)) ), lineTo←v77940);
SOURCE(37378, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v77940 ))))((*  (W2Pt) ((( (ptr) formal←c104264)+13)) ), lineTo←v77940);
SOURCE(37394, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v77940 ))))((*  (W2Pt) ((( (ptr) formal←c104264)+15)) ), lineTo←v77940);
   }

static void DoMaskPixel←P8388(formal←c104328)
   word formal←c104328;
   {
   register ptr gf←c104296 =  (ptr) &globalframe;
   /* DoMaskPixel: */ 
SOURCE(37689, 20)
SOURCE(37711, 21)
   {
      word pd457;
      pd457 = (* (( (ptr) (* (( (ptr) gf←c104296)+303)/* var←c92232 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd457 ))))((* (( (ptr) formal←c104328)+4) ), (* (( (ptr) formal←c104328)+8) ), pd457);
      };
SOURCE(37734, 44)
   {
      word pd458;
      pd458 = (* (( (ptr) (* (( (ptr) gf←c104296)+303)/* var←c92232 */  ))+77) );
      (void) ( *( (fPt) ((*  (ptr) pd458 ))))((* (( (ptr) formal←c104328)+4) ), (* (( (ptr) (* (( (ptr) formal←c104328)+5) ))+6)
          ), pd458);
      };
   }

static void BoxSaveSelections←P2040(slice←v14632, parts←v14660, selectClass←v14688)
   word slice←v14632;
   word parts←v14660;
   word selectClass←v14688;
   {
   W9 var←c104360;
   register ptr gf←c104392 =  (ptr) &globalframe;
   /* declaration of var←c97000 skipped */ 
   /* declaration of var←c97032 skipped */ 
   word dontClear←v30700 = 1;
   word boxParts←v30728;
   /* declaration of boxData←v30756 skipped */ 
   /* BoxSaveSelections: */ 
SOURCE(38031, 1193)
   {
      word tmpAddr459;
      tmpAddr459 = (word) (( (ptr) &var←c104360)+4)/* var←c97000 */ ;
      (*  (ptr) tmpAddr459 ) = ( ((word)  (fPt) SetSegmentField←P8604) );
      (* (( (ptr) tmpAddr459) + 1) ) = 1;
      };
   {
      word tmpAddr460;
      tmpAddr460 = (word) (( (ptr) &var←c104360)+6)/* var←c97032 */ ;
      (*  (ptr) tmpAddr460 ) = ( ((word)  (fPt) SetPointField←P8544) );
      (* (( (ptr) tmpAddr460) + 1) ) = 1;
      };
SOURCE(38832, 34)
   boxParts←v30728 = XR←Narrow(parts←v14660, (* (( (ptr) gf←c104392)+28) ));
SOURCE(38868, 37)
   (* (( (ptr) &var←c104360)+8)/* boxData←v30756 */  ) = XR←Narrow((* (( (ptr) slice←v14632)+1) ), (* (( (ptr) gf←c104392)+25)
       ));
SOURCE(38907, 38)
   if ((boxParts←v30728 == 0)) {
SOURCE(38928, 17)
      dontClear←v30700 = 0;
      };
SOURCE(38947, 196)
   {
      register word count←v31032 = 0;
      if (( (int)count←v31032 >  (int)3)) {
         goto lab←L100075;
         };
      lab←L100078: ;
SOURCE(38979, 72)
      {
         word tc461;
         if ((0 != dontClear←v30700)) {
            tc461 =  (word) (0 != (* (( (ptr) boxParts←v30728)+BCK(count←v31032, 4)) ));
            }
         else {
            tc461 =  (word) 0;
            };
         (void) SetPointField←P8544(count←v31032,  (unsigned) tc461, selectClass←v14688, (word) (( (bPt) &var←c104360)+24)/* var←c97032 */ )
         ;
         };
SOURCE(39053, 90)
      {
         word tc462;
         if ((0 != dontClear←v30700)) {
            tc462 =  (word) (0 != (* ((( (ptr) boxParts←v30728)+4)+BCK(count←v31032, 4)) ));
            }
         else {
            tc462 =  (word) 0;
            };
         (void) SetSegmentField←P8604((* ((( (ptr) (* (( (ptr) &var←c104360)+8)/* boxData←v30756 */  ))+36)+BCK(count←v31032, 4)) ),  (unsigned) tc462, selectClass←v14688, (word) (
               ( (bPt) &var←c104360)+16)/* var←c97000 */ );
         };
      if (( (int)count←v31032 >=  (int)3)) {
         goto lab←L100075;
         };
      count←v31032 = (count←v31032 + 1);
      goto lab←L100078;
      lab←L100075: ;
      };
SOURCE(39154, 70)
   (void) SetPointField←P8544(4,  (unsigned)  ( (0 != dontClear←v30700) ? (0 != (* (( (ptr) boxParts←v30728)+8) )) : 0 ) , selectClass←v14688, (word) (
         ( (bPt) &var←c104360)+24)/* var←c97032 */ );
   }

static void SetPointField←P8544(point←v30832, selected←v30860, selectClass←v30888, formal←c104424)
   word point←v30832;
   word selected←v30860;
   word selectClass←v30888;
   word formal←c104424;
   {
   formal←c104424 = (formal←c104424 - 24);
   /* SetPointField: */ 
SOURCE(38122, 361)
SOURCE(38209, 274)
   {
      word var←c97064;
      var←c97064 = selectClass←v30888;
      switch (var←c97064) {
         case 0: 
SOURCE(38243, 53)
            (* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104424)+8) ))+16))+BCK(point←v30832, 5)) ).f0 = selected←v30860;
            break;
         case 1: 
SOURCE(38305, 50)
            (* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104424)+8) ))+16))+BCK(point←v30832, 5)) ).f1 = selected←v30860;
            break;
         case 2: 
SOURCE(38367, 53)
            (* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104424)+8) ))+16))+BCK(point←v30832, 5)) ).f2 = selected←v30860;
            break;
         case 3: 
SOURCE(38431, 52)
            (* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104424)+8) ))+16))+BCK(point←v30832, 5)) ).f3 = selected←v30860;
            break;
         };
      };
   }

static void SetSegmentField←P8604(seg←v30948, selected←v30976, selectClass←v31004, formal←c104456)
   word seg←v30948;
   word selected←v30976;
   word selectClass←v31004;
   word formal←c104456;
   {
   formal←c104456 = (formal←c104456 - 16);
   /* SetSegmentField: */ 
SOURCE(38497, 297)
SOURCE(38584, 210)
   {
      word var←c97096;
      var←c97096 = selectClass←v31004;
      switch (var←c97096) {
         case 0: 
SOURCE(38618, 37)
            (* (( (ptr) seg←v30948)+17) ) = selected←v30976;
            break;
         case 1: 
SOURCE(38664, 34)
            (* (( (ptr) seg←v30948)+18) ) = selected←v30976;
            break;
         case 2: 
SOURCE(38710, 37)
            (* (( (ptr) seg←v30948)+19) ) = selected←v30976;
            break;
         case 3: 
SOURCE(38758, 36)
            (* (( (ptr) seg←v30948)+20) ) = selected←v30976;
            break;
         };
      };
   }

static word BoxRemakeSelections←P2100(slice←v14748, selectClass←v14776)
   word slice←v14748;
   word selectClass←v14776;
   {
   W9 var←c104488;
   register ptr gf←c104520 =  (ptr) &globalframe;
   word parts←v14820;
   /* declaration of var←c97128 skipped */ 
   /* declaration of var←c97160 skipped */ 
   /* declaration of boxData←v31132 skipped */ 
   word boxParts←v31160;
   /* BoxRemakeSelections: */ 
SOURCE(39230, 1100)
   {
      word tmpAddr463;
      tmpAddr463 = (word) (( (ptr) &var←c104488)+4)/* var←c97128 */ ;
      (*  (ptr) tmpAddr463 ) = ( ((word)  (fPt) GetSegmentField←P8772) );
      (* (( (ptr) tmpAddr463) + 1) ) = 1;
      };
   {
      word tmpAddr464;
      tmpAddr464 = (word) (( (ptr) &var←c104488)+6)/* var←c97160 */ ;
      (*  (ptr) tmpAddr464 ) = ( ((word)  (fPt) GetPointField←P8712) );
      (* (( (ptr) tmpAddr464) + 1) ) = 1;
      };
SOURCE(39230, 1100)
   parts←v14820 = 0;
SOURCE(39961, 37)
   (* (( (ptr) &var←c104488)+8)/* boxData←v31132 */  ) = XR←Narrow((* (( (ptr) slice←v14748)+1) ), (* (( (ptr) gf←c104520)+25)
       ));
SOURCE(40000, 37)
   boxParts←v31160 = XR←NewObject(36, (* (( (ptr) gf←c104520)+28) ));
SOURCE(40039, 170)
   {
      register word count←v31468 = 0;
      if (( (int)count←v31468 >  (int)3)) {
         goto lab←L100079;
         };
      lab←L100082: ;
SOURCE(40071, 59)
      {
         word var←c97192;
         var←c97192 = (word) GetPointField←P8712(count←v31468, selectClass←v14776, (word) (( (bPt) &var←c104488)+24)/* var←c97160 */ )
         ;
         (* (( (ptr) boxParts←v31160)+BCK(count←v31468, 4)) ) = var←c97192;
         };
SOURCE(40132, 77)
      {
         word var←c97224;
         var←c97224 = (word) GetSegmentField←P8772((* ((( (ptr) (* (( (ptr) &var←c104488)+8)/* boxData←v31132 */  ))+36)+BCK(count←v31468, 4)
               ) ), selectClass←v14776, (word) (( (bPt) &var←c104488)+16)/* var←c97128 */ );
         (* ((( (ptr) boxParts←v31160)+4)+BCK(count←v31468, 4)) ) = var←c97224;
         };
      if (( (int)count←v31468 >=  (int)3)) {
         goto lab←L100079;
         };
      count←v31468 = (count←v31468 + 1);
      goto lab←L100082;
      lab←L100079: ;
      };
SOURCE(40220, 57)
   (* (( (ptr) boxParts←v31160)+8) ) = (word) GetPointField←P8712(4, selectClass←v14776, (word) (( (bPt) &var←c104488)+24)/* var←c97160 */ )
   ;
SOURCE(40279, 51)
   if ((0 != (word) IsEmpty←P2580(boxParts←v31160))) {
      parts←v14820 = 0;
      }
   else {
      parts←v14820 = boxParts←v31160;
      };
SOURCE(39230, 1100)
   return(parts←v14820);
   }

static word GetPointField←P8712(point←v31236, selectClass←v31264, formal←c104552)
   word point←v31236;
   word selectClass←v31264;
   word formal←c104552;
   {
   word var←c31308;
   formal←c104552 = (formal←c104552 - 24);
   /* GetPointField: */ 
SOURCE(39332, 341)
SOURCE(39417, 256)
   {
      word var←c97256;
      var←c97256 = selectClass←v31264;
      switch (var←c97256) {
         case 0: 
            return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104552)+8) ))+16))+BCK(point←v31236, 5)) ).f0);
         case 1: 
            return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104552)+8) ))+16))+BCK(point←v31236, 5)) ).f1);
         case 2: 
            return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104552)+8) ))+16))+BCK(point←v31236, 5)) ).f2);
         case 3: 
            return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c104552)+8) ))+16))+BCK(point←v31236, 5)) ).f3);
         default: 
            return(0);
         };
      };
   }

static word GetSegmentField←P8772(seg←v31368, selectClass←v31396, formal←c104584)
   word seg←v31368;
   word selectClass←v31396;
   word formal←c104584;
   {
   word var←c31440;
   formal←c104584 = (formal←c104584 - 16);
   /* GetSegmentField: */ 
SOURCE(39678, 278)
SOURCE(39764, 192)
   {
      word var←c97288;
      var←c97288 = selectClass←v31396;
      switch (var←c97288) {
         case 0: 
            return((* (( (ptr) seg←v31368)+17) ));
         case 1: 
            return((* (( (ptr) seg←v31368)+18) ));
         case 2: 
            return((* (( (ptr) seg←v31368)+19) ));
         case 3: 
            return((* (( (ptr) seg←v31368)+20) ));
         default: 
            return(0);
         };
      };
   }

static void BoxTransform←P2160(formal←c01545, formal←c01546, formal←c01547, editConstraints←v14964, history←v14992)
   word formal←c01545;
   word formal←c01546;
   word formal←c01547;
   word editConstraints←v14964;
   word history←v14992;
   {
   W10 var←c104616;
   /* declaration of slice←v14880 skipped */ 
   /* declaration of parts←v14908 skipped */ 
   /* declaration of transform←v14936 skipped */ 
   register ptr gf←c104648 =  (ptr) &globalframe;
   /* declaration of var←c97320 skipped */ 
   W2 point←v31540;
   W2 oppositePoint←v31568;
   /* declaration of boxData←v31596 skipped */ 
   word boxParts←v31624;
   word box←v31652;
   word inverse←v31680 = 0;
   word totalTransform←v31708 = 0;
   word cornerCount←v31736 = 0;
   word edgeCount←v31764 = 0;
   W2 var←c0715;
   W2 var←c0716;
   (* (( (ptr) &var←c104616)+4)/* slice←v14880 */  ) = formal←c01545;
   (* (( (ptr) &var←c104616)+5)/* parts←v14908 */  ) = formal←c01546;
   (* (( (ptr) &var←c104616)+6)/* transform←v14936 */  ) = formal←c01547;
   /* BoxTransform: */ 
SOURCE(40361, 3942)
   {
      word tmpAddr465;
      tmpAddr465 = (word) (( (ptr) &var←c104616)+7)/* var←c97320 */ ;
      (*  (ptr) tmpAddr465 ) = ( ((word)  (fPt) BoxFullTransform←P8880) );
      (* (( (ptr) tmpAddr465) + 1) ) = 1;
      };
SOURCE(40993, 37)
   (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ) = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c104616)+4)/* slice←v14880 */  ))+1)
       ), (* (( (ptr) gf←c104648)+25) ));
SOURCE(41032, 34)
   boxParts←v31624 = XR←Narrow((* (( (ptr) &var←c104616)+5)/* parts←v14908 */  ), (* (( (ptr) gf←c104648)+28) ));
SOURCE(41068, 27)
   box←v31652 = (*  (ptr) (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ) );
SOURCE(41175, 33)
   if ((0 != (* (( (ptr) box←v31652)+4) )) || (0 != (* (( (ptr) box←v31652)+5) ))) {
SOURCE(41208, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(41215, 77)
   if ((boxParts←v31624 == 0) || (0 != (word) IsComplete←P2520(boxParts←v31624))) {
SOURCE(41262, 22)
      (void) BoxFullTransform←P8880(1, (word) (( (bPt) &var←c104616)+28)/* var←c97320 */ );
SOURCE(41286, 6)
      return;
      };
SOURCE(41297, 32)
   if ((0 != (word) IsEmpty←P2580(boxParts←v31624))) {
SOURCE(41323, 6)
      return;
      };
SOURCE(41351, 237)
   (void) CountEdges←P2700((word) &var←c0715, (*  (W4Pt) (( (ptr) boxParts←v31624)+4) ));
   edgeCount←v31764 = var←c0715.f0;
   if (( (int)edgeCount←v31764 >=  (int)2)) { goto then0466;};
   (void) CountCorners←P2640((word) &var←c0716, (*  (W4Pt) boxParts←v31624 ));
   cornerCount←v31736 = var←c0716.f0;
   if (( (int)cornerCount←v31736 >=  (int)3) || (0 != (* (( (ptr) boxParts←v31624)+8) ))) {
      then0466: ;
SOURCE(41557, 23)
      (void) BoxFullTransform←P8880(0, (word) (( (bPt) &var←c104616)+28)/* var←c97320 */ );
SOURCE(41582, 6)
      return;
      };
SOURCE(41593, 2091)
   if (( (int)edgeCount←v31764 ==  (int)1)) {
SOURCE(41613, 1306)
      {
         W6 f←v31868;
         W2 globalTranslate←v31896;
         word mInverse←v31924;
         W2 localTranslate←v31952;
         word totalTransform←v31980;
SOURCE(41636, 66)
         {
            word pd467;
            pd467 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+50) );
            (void) ( *( (fPt) ((*  (ptr) pd467 ))))((word) &f←v31868, (* (( (ptr) &var←c104616)+6)/* transform←v14936 */  ), pd467);
            };
SOURCE(41704, 26)
         globalTranslate←v31896 = (*  (W2Pt) (( (ptr) &f←v31868)+4) );
SOURCE(41732, 73)
         {
            word pd468;
            pd468 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+51) );
            mInverse←v31924 = (word) ( *( (fPt) ((*  (ptr) pd468 ))))((* ((( (ptr) (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ))+1)
               ) ), pd468);
            };
SOURCE(41807, 82)
         {
            word pd469;
            pd469 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+40) );
            (void) ( *( (fPt) ((*  (ptr) pd469 ))))((word) &localTranslate←v31952, mInverse←v31924, globalTranslate←v31896, pd469);
            };
SOURCE(41891, 79)
         {
            word pd470;
            pd470 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+10) );
            totalTransform←v31980 = (word) ( *( (fPt) ((*  (ptr) pd470 ))))(localTranslate←v31952, pd470);
            };
         if ((0 != (* (( (ptr) boxParts←v31624)+4) ))) {
SOURCE(42013, 22)
            point←v31540.f0 = (*  (ptr) box←v31652 );
            point←v31540.f1 = (*  (ptr) &fc216 );
SOURCE(42037, 36)
            oppositePoint←v31568.f0 = (* (( (ptr) box←v31652)+2) );
            oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+3) );
SOURCE(42075, 67)
            {
               word pd471;
               pd471 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd471 ))))((word) &point←v31540, totalTransform←v31980, point←v31540, pd471);
               };
SOURCE(42144, 27)
            {
               word var←c97352;
               var←c97352 = point←v31540.f0;
               point←v31540.f0 = var←c97352;
               point←v31540.f1 = (* (( (ptr) box←v31652)+1) );
               };
            }
         else {
            if ((0 != (* (( (ptr) boxParts←v31624)+5) ))) {
SOURCE(42241, 22)
               point←v31540.f0 = (*  (ptr) &fc216 );
               point←v31540.f1 = (* (( (ptr) box←v31652)+3) );
SOURCE(42265, 36)
               oppositePoint←v31568.f0 = (*  (ptr) box←v31652 );
               oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+1) );
SOURCE(42303, 67)
               {
                  word pd472;
                  pd472 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+39) );
                  (void) ( *( (fPt) ((*  (ptr) pd472 ))))((word) &point←v31540, totalTransform←v31980, point←v31540, pd472);
                  };
SOURCE(42372, 27)
               {
                  word var←c97384;
                  var←c97384 = point←v31540.f1;
                  point←v31540.f0 = (* (( (ptr) box←v31652)+2) );
                  point←v31540.f1 = var←c97384;
                  };
               }
            else {
               if ((0 != (* (( (ptr) boxParts←v31624)+6) ))) {
SOURCE(42469, 22)
                  point←v31540.f0 = (* (( (ptr) box←v31652)+2) );
                  point←v31540.f1 = (*  (ptr) &fc216 );
SOURCE(42493, 36)
                  oppositePoint←v31568.f0 = (*  (ptr) box←v31652 );
                  oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+1) );
SOURCE(42531, 67)
                  {
                     word pd473;
                     pd473 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd473 ))))((word) &point←v31540, totalTransform←v31980, point←v31540, pd473);
                     };
SOURCE(42600, 27)
                  {
                     word var←c97416;
                     var←c97416 = point←v31540.f0;
                     point←v31540.f0 = var←c97416;
                     point←v31540.f1 = (* (( (ptr) box←v31652)+3) );
                     };
                  }
               else {
                  if ((0 != (* (( (ptr) boxParts←v31624)+7) ))) {
SOURCE(42697, 22)
                     point←v31540.f0 = (*  (ptr) &fc216 );
                     point←v31540.f1 = (* (( (ptr) box←v31652)+1) );
SOURCE(42721, 36)
                     oppositePoint←v31568.f0 = (* (( (ptr) box←v31652)+2) );
                     oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+3) );
SOURCE(42759, 67)
                     {
                        word pd474;
                        pd474 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+39) );
                        (void) ( *( (fPt) ((*  (ptr) pd474 ))))((word) &point←v31540, totalTransform←v31980, point←v31540, pd474);
                        };
SOURCE(42828, 27)
                     {
                        word var←c97448;
                        var←c97448 = point←v31540.f1;
                        point←v31540.f0 = (*  (ptr) box←v31652 );
                        point←v31540.f1 = var←c97448;
                        };
                     }
                  else {
SOURCE(42912, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            };
         };
      }
   else {
SOURCE(42926, 758)
      if (( (int)cornerCount←v31736 ==  (int)2)) {
SOURCE(43032, 23)
         (void) BoxFullTransform←P8880(0, (word) (( (bPt) &var←c104616)+28)/* var←c97320 */ );
SOURCE(43057, 6)
         return;
         }
      else {
         if ((0 != (*  (ptr) boxParts←v31624 ))) {
SOURCE(43131, 28)
            point←v31540.f0 = (*  (ptr) box←v31652 );
            point←v31540.f1 = (* (( (ptr) box←v31652)+1) );
SOURCE(43161, 36)
            oppositePoint←v31568.f0 = (* (( (ptr) box←v31652)+2) );
            oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+3) );
            }
         else {
            if ((0 != (* (( (ptr) boxParts←v31624)+1) ))) {
SOURCE(43227, 28)
               point←v31540.f0 = (*  (ptr) box←v31652 );
               point←v31540.f1 = (* (( (ptr) box←v31652)+3) );
SOURCE(43257, 36)
               oppositePoint←v31568.f0 = (* (( (ptr) box←v31652)+2) );
               oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+1) );
               }
            else {
               if ((0 != (* (( (ptr) boxParts←v31624)+2) ))) {
SOURCE(43323, 28)
                  point←v31540.f0 = (* (( (ptr) box←v31652)+2) );
                  point←v31540.f1 = (* (( (ptr) box←v31652)+3) );
SOURCE(43353, 36)
                  oppositePoint←v31568.f0 = (*  (ptr) box←v31652 );
                  oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+1) );
                  }
               else {
                  if ((0 != (* (( (ptr) boxParts←v31624)+3) ))) {
SOURCE(43419, 28)
                     point←v31540.f0 = (* (( (ptr) box←v31652)+2) );
                     point←v31540.f1 = (* (( (ptr) box←v31652)+1) );
SOURCE(43449, 36)
                     oppositePoint←v31568.f0 = (*  (ptr) box←v31652 );
                     oppositePoint←v31568.f1 = (* (( (ptr) box←v31652)+3) );
                     }
                  else {
SOURCE(43501, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            };
SOURCE(43508, 25)
         inverse←v31680 = (* (( (ptr) (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ))+2) );
SOURCE(43535, 80)
         {
            word pd475;
            pd475 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+14) );
            totalTransform←v31708 = (word) ( *( (fPt) ((*  (ptr) pd475 ))))((* (( (ptr) (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ))+1)
                ), (* (( (ptr) &var←c104616)+6)/* transform←v14936 */  ), inverse←v31680, 0, pd475);
            };
SOURCE(43617, 67)
         {
            word pd476;
            pd476 = (* (( (ptr) (* (( (ptr) gf←c104648)+301)/* var←c91976 */  ))+39) );
            (void) ( *( (fPt) ((*  (ptr) pd476 ))))((word) &point←v31540, totalTransform←v31708, point←v31540, pd476);
            };
         };
      };
SOURCE(43721, 146)
   {
      word var←c97480;
      word var←c97512;
      word var←c97544;
      {
         word x477;
         float tf478;
         float tf479;
         word x480;
         float tf481;
         var←c97480 = (
            tf481 = FMIN((
                  x477 = point←v31540.f1,  *(float*)&x477
                  ), (
                  x480 = oppositePoint←v31568.f1,  *(float*)&x480
                  ), tf478, tf479),  *(word*)&tf481
            );
         };
      {
         word x482;
         float tf483;
         float tf484;
         word x485;
         float tf486;
         var←c97512 = (
            tf486 = FMAX((
                  x482 = point←v31540.f0,  *(float*)&x482
                  ), (
                  x485 = oppositePoint←v31568.f0,  *(float*)&x485
                  ), tf483, tf484),  *(word*)&tf486
            );
         };
      {
         word x487;
         float tf488;
         float tf489;
         word x490;
         float tf491;
         var←c97544 = (
            tf491 = FMAX((
                  x487 = point←v31540.f1,  *(float*)&x487
                  ), (
                  x490 = oppositePoint←v31568.f1,  *(float*)&x490
                  ), tf488, tf489),  *(word*)&tf491
            );
         };
      {
         word x492;
         float tf493;
         float tf494;
         word x495;
         float tf496;
         (*  (ptr) box←v31652 ) = (
            tf496 = FMIN((
                  x492 = point←v31540.f0,  *(float*)&x492
                  ), (
                  x495 = oppositePoint←v31568.f0,  *(float*)&x495
                  ), tf493, tf494),  *(word*)&tf496
            );
         };
      (* (( (ptr) box←v31652)+1) ) = var←c97480;
      (* (( (ptr) box←v31652)+2) ) = var←c97512;
      (* (( (ptr) box←v31652)+3) ) = var←c97544;
      (* (( (ptr) box←v31652)+4) ) = 0;
      (* (( (ptr) box←v31652)+5) ) = 0;
      };
SOURCE(43869, 28)
   (void) BoxSetSegments←P600((* (( (ptr) &var←c104616)+4)/* slice←v14880 */  ), (* (( (ptr) &var←c104616)+5)/* parts←v14908 */  ))
   ;
SOURCE(43899, 27)
   {
      word pd497;
      pd497 = (* (( (ptr) (* (( (ptr) gf←c104648)+300)/* var←c91944 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd497 ))))((* ((( (ptr) &var←c104616)+4)/* slice←v14880 */ ) ), pd497);
      };
SOURCE(43929, 374)
   if ( ( ((* (( (ptr) (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ))+7) ) != 0) ? (0 == (word) IsChildOfOutline←P660(
      (* ((( (ptr) &var←c104616)+4)/* slice←v14880 */ ) ))) : 0 ) ) {
SOURCE(43995, 308)
      {
         W2 loc←v32024;
         W3 var←c0737;
         word firstChild←v32052;
SOURCE(43997, 54)
         {
            word pd498;
            pd498 = (* (( (ptr) (* (( (ptr) gf←c104648)+300)/* var←c91944 */  ))+48) );
            (void) ( *( (fPt) ((*  (ptr) pd498 ))))((word) &var←c0737, (* (( (ptr) &var←c104616)+4)/* slice←v14880 */  ), pd498);
            };
         loc←v32024 = (*  (W2Pt) &var←c0737 );
SOURCE(44070, 56)
         {
            word pd499;
            pd499 = (* (( (ptr) (* (( (ptr) gf←c104648)+307)/* var←c92616 */  ))+28) );
            firstChild←v32052 = (word) ( *( (fPt) ((*  (ptr) pd499 ))))(loc←v32024.f0, pd499);
            };
SOURCE(44128, 175)
         {
            W3 var←c0741;
            {
               W2 var←c97576;
               W2 var←c97608;
               var←c97576.f0 = firstChild←v32052;
               var←c97576.f1 = 0;
               {
                  word x500;
                  word x501;
                  *(float*)&var←c97608.f0 = (
                     x500 = (* (( (ptr) box←v31652)+2) ),  *(float*)&x500
                     ) - (
                     x501 = (*  (ptr) box←v31652 ),  *(float*)&x501
                     );
                  };
               {
                  word x502;
                  word x503;
                  *(float*)&var←c97608.f1 = (
                     x502 = (* (( (ptr) box←v31652)+3) ),  *(float*)&x502
                     ) - (
                     x503 = (* (( (ptr) box←v31652)+1) ),  *(float*)&x503
                     );
                  };
               {
                  word pd504;
                  pd504 = (* (( (ptr) (* (( (ptr) gf←c104648)+306)/* var←c92584 */  ))+5) );
                  (void) ( *( (fPt) ((*  (ptr) pd504 ))))((word) &var←c0741, var←c97576, var←c97608,  ( (0 != (* (( (ptr) (* (( (ptr) &var←c104616)+9)
                        /* boxData←v31596 */  ))+12) )) ? 0 : 1 ) , 0, 0, pd504);
                  };
               };
            (*  (W3Pt) (( (ptr) (* (( (ptr) &var←c104616)+9)/* boxData←v31596 */  ))+9) ) = var←c0741;
            };
         };
      };
   }

static void BoxFullTransform←P8880(transformColor←v31840, formal←c104712)
   word transformColor←v31840;
   word formal←c104712;
   {
   register ptr gf←c104680 =  (ptr) &globalframe;
   formal←c104712 = (formal←c104712 - 28);
   /* BoxFullTransform: */ 
SOURCE(40508, 423)
SOURCE(40558, 77)
   {
      word var←c97640;
      {
         word pd505;
         pd505 = (* (( (ptr) (* (( (ptr) gf←c104680)+301)/* var←c91976 */  ))+13) );
         var←c97640 = (word) ( *( (fPt) ((*  (ptr) pd505 ))))((* (( (ptr) (* (( (ptr) formal←c104712)+9) ))+1) ), (* (( (ptr) formal←c104712)+6)
             ), pd505);
         };
      (* (( (ptr) (* (( (ptr) formal←c104712)+9) ))+1) ) = var←c97640;
      };
SOURCE(40637, 64)
   {
      word var←c97672;
      {
         word pd506;
         pd506 = (* (( (ptr) (* (( (ptr) gf←c104680)+301)/* var←c91976 */  ))+51) );
         var←c97672 = (word) ( *( (fPt) ((*  (ptr) pd506 ))))((* ((( (ptr) (* (( (ptr) formal←c104712)+9) ))+1)) ), pd506);
         };
      (* (( (ptr) (* (( (ptr) formal←c104712)+9) ))+2) ) = var←c97672;
      };
SOURCE(40703, 69)
   {
      W2 var←c97704;
      W6 var←c0746;
      {
         word pd507;
         pd507 = (* (( (ptr) (* (( (ptr) gf←c104680)+301)/* var←c91976 */  ))+50) );
         (void) ( *( (fPt) ((*  (ptr) pd507 ))))((word) &var←c0746, (* (( (ptr) (* (( (ptr) formal←c104712)+9) ))+2) ), pd507);
         };
      var←c97704 = (*  (W2Pt) (( (ptr) &var←c0746)+1) );
      (*  (W2Pt) (( (ptr) (* (( (ptr) formal←c104712)+9) ))+3) ) = var←c97704;
      };
SOURCE(40774, 98)
   if ((0 != transformColor←v31840)) {
SOURCE(40798, 74)
      {
         word var←c97736;
         {
            word pd508;
            pd508 = (* (( (ptr) (* (( (ptr) gf←c104680)+310)/* var←c93352 */  ))+37) );
            var←c97736 = (word) ( *( (fPt) ((*  (ptr) pd508 ))))((* (( (ptr) (* (( (ptr) formal←c104712)+9) ))+5) ), (* (( (ptr) formal←c104712)+6)
                ), pd508);
            };
         (* (( (ptr) (* (( (ptr) formal←c104712)+9) ))+5) ) = var←c97736;
         };
      };
SOURCE(40874, 28)
   (void) BoxSetSegments←P600((* (( (ptr) formal←c104712)+4) ), (* (( (ptr) formal←c104712)+5) ));
SOURCE(40904, 27)
   {
      word pd509;
      pd509 = (* (( (ptr) (* (( (ptr) gf←c104680)+300)/* var←c91944 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd509 ))))((* ((( (ptr) formal←c104712)+4)) ), pd509);
      };
   }

static word BoxDescribeHit←P2220(slice←v15124, hitData←v15152)
   word slice←v15124;
   word hitData←v15152;
   {
   register ptr gf←c104744 =  (ptr) &globalframe;
   word rope←v15212;
   word boxHitData←v32096;
   word prefix←v32124 = 0;
   /* BoxDescribeHit: */ 
SOURCE(44542, 386)
SOURCE(44542, 386)
   rope←v15212 = 0;
SOURCE(44626, 40)
   boxHitData←v32096 = XR←Narrow(hitData←v15152, (* (( (ptr) gf←c104744)+15) ));
   {
      W4 var←c97768;
      W4 var←c97800;
SOURCE(44687, 194)
      if (( (int)((*  (ptr) boxHitData←v32096 ) - 1) !=  (int) (word) -1)) {
SOURCE(44716, 48)
         {
            word idx510;
            var←c97768.f0 = (* (( (ptr) gf←c104744)+72) );
            var←c97768.f1 = (* (( (ptr) gf←c104744)+66) );
            var←c97768.f2 = (* (( (ptr) gf←c104744)+65) );
            var←c97768.f3 = (* (( (ptr) gf←c104744)+64) );
            prefix←v32124 = (* (( (ptr) (&var←c97768
               ))+(
                  idx510 = (word) ((*  (ptr) boxHitData←v32096 ) - 1),
                  BCK(idx510, 4)
                  )) );
            };
         }
      else {
SOURCE(44764, 117)
         if (( (int)((* (( (ptr) boxHitData←v32096)+2) ) - 1) !=  (int) (word) -1)) {
SOURCE(44793, 23)
            prefix←v32124 = (* (( (ptr) gf←c104744)+36) );
            }
         else {
SOURCE(44816, 65)
            if (( (int)((* (( (ptr) boxHitData←v32096)+1) ) - 1) !=  (int) (word) -1)) {
SOURCE(44843, 38)
               {
                  word idx511;
                  var←c97800.f0 = (* (( (ptr) gf←c104744)+62) );
                  var←c97800.f1 = (* (( (ptr) gf←c104744)+35) );
                  var←c97800.f2 = (* (( (ptr) gf←c104744)+34) );
                  var←c97800.f3 = (* (( (ptr) gf←c104744)+32) );
                  prefix←v32124 = (* (( (ptr) (&var←c97800
                     ))+(
                        idx511 = (word) ((* (( (ptr) boxHitData←v32096)+1) ) - 1),
                        BCK(idx511, 4)
                        )) );
                  };
               };
            };
         };
SOURCE(44883, 45)
      {
         word pd512;
         pd512 = (* (( (ptr) (* (( (ptr) gf←c104744)+314)/* var←c97832 */  ))+6) );
         rope←v15212 = (word) ( *( (fPt) ((*  (ptr) pd512 ))))(prefix←v32124, (* (( (ptr) gf←c104744)+37) ), pd512);
         };
      };
SOURCE(44542, 386)
   return(rope←v15212);
   }

static word BoxDescribe←P2280(sliceD←v15272)
   word sliceD←v15272;
   {
   register ptr gf←c104776 =  (ptr) &globalframe;
   word rope←v15316;
   word prefix←v32168 = 0;
   word boxParts←v32196 = 0;
   word cornerCount←v32224;
   word edgeCount←v32252;
   /* BoxDescribe: */ 
SOURCE(44934, 1101)
SOURCE(44934, 1101)
   rope←v15316 = 0;
   {
      W2 var←c0761;
      W2 var←c0762;
SOURCE(45089, 66)
      if (((* (( (ptr) sliceD←v15272)+1) ) == 0)) {
SOURCE(45116, 39)
         return((* (( (ptr) gf←c104776)+38) ));
         };
SOURCE(45157, 31)
      boxParts←v32196 = XR←Narrow((* (( (ptr) sliceD←v15272)+1) ), (* (( (ptr) gf←c104776)+28) ));
SOURCE(45190, 50)
      (void) CountCorners←P2640((word) &var←c0761, (*  (W4Pt) boxParts←v32196 ));
      cornerCount←v32224 = var←c0761.f0;
SOURCE(45242, 44)
      (void) CountEdges←P2700((word) &var←c0762, (*  (W4Pt) (( (ptr) boxParts←v32196)+4) ));
      edgeCount←v32252 = var←c0762.f0;
SOURCE(45288, 747)
      if (( (int)(cornerCount←v32224 + edgeCount←v32252) >  (int)1)) {
SOURCE(45320, 45)
         return((* (( (ptr) gf←c104776)+38) ));
         }
      else {
SOURCE(45365, 672)
         {
            word centerOnly←v32296;
            word oneEdge←v32324;
            word oneCorner←v32352;
            word noParts←v32380;
SOURCE(45367, 68)
            centerOnly←v32296 =  (unsigned)  (  ( (0 != (* (( (ptr) boxParts←v32196)+8) )) ? ( (int)edgeCount←v32252 ==  (int)0) : 0 )  ? ( (int)cornerCount←v32224 ==  (int)0) : 0 ) ;
SOURCE(45437, 69)
            oneEdge←v32324 =  (unsigned)  (  ( (0 == (* (( (ptr) boxParts←v32196)+8) )) ? ( (int)edgeCount←v32252 ==  (int)1) : 0 )  ? ( (int)cornerCount←v32224 ==  (int)0) : 0 ) ;
SOURCE(45508, 71)
            oneCorner←v32352 =  (unsigned)  (  ( (0 == (* (( (ptr) boxParts←v32196)+8) )) ? ( (int)cornerCount←v32224 ==  (int)1) : 0 )  ? ( (int)edgeCount←v32252 ==  (int)0) : 0 ) ;
SOURCE(45581, 69)
            noParts←v32380 =  (unsigned)  (  ( (0 == (* (( (ptr) boxParts←v32196)+8) )) ? ( (int)cornerCount←v32224 ==  (int)0) : 0 )  ? ( (int)edgeCount←v32252 ==  (int)0) : 0 ) ;
            if ((0 != oneCorner←v32352)) {
SOURCE(45684, 84)
               {
                  register word i←v32424 = 0;
                  if (( (int)i←v32424 >  (int)3)) {
                     goto lab←L100083;
                     };
                  lab←L100086: ;
SOURCE(45712, 56)
                  if ((0 != (* (( (ptr) boxParts←v32196)+BCK(i←v32424, 4)) ))) {
                     {
                        W4 var←c97864;
SOURCE(45742, 26)
                        var←c97864.f0 = (* (( (ptr) gf←c104776)+72) );
                        var←c97864.f1 = (* (( (ptr) gf←c104776)+66) );
                        var←c97864.f2 = (* (( (ptr) gf←c104776)+65) );
                        var←c97864.f3 = (* (( (ptr) gf←c104776)+64) );
                        prefix←v32168 = (* (( (ptr) (&var←c97864
                           ))+BCK(i←v32424, 4)) );
SOURCE(45770, 4)
                        goto lab←L100084;
                        };
                     };
                  if (( (int)i←v32424 >=  (int)3)) {
                     goto lab←L100083;
                     };
                  i←v32424 = (i←v32424 + 1);
                  goto lab←L100086;
                  lab←L100083: ;
                  lab←L100084: ;
                  };
               }
            else {
               if ((0 != oneEdge←v32324)) {
SOURCE(45804, 80)
                  {
                     register word i←v32468 = 0;
                     if (( (int)i←v32468 >  (int)3)) {
                        goto lab←L100087;
                        };
                     lab←L100090: ;
SOURCE(45832, 52)
                     if ((0 != (* ((( (ptr) boxParts←v32196)+4)+BCK(i←v32468, 4)) ))) {
                        {
                           W4 var←c97896;
SOURCE(45860, 24)
                           var←c97896.f0 = (* (( (ptr) gf←c104776)+62) );
                           var←c97896.f1 = (* (( (ptr) gf←c104776)+35) );
                           var←c97896.f2 = (* (( (ptr) gf←c104776)+34) );
                           var←c97896.f3 = (* (( (ptr) gf←c104776)+32) );
                           prefix←v32168 = (* (( (ptr) (&var←c97896
/*1*/   ))+BCK(i←v32468, 4)) );
SOURCE(45886, 4)
                           goto lab←L100088;
                           };
                        };
                     if (( (int)i←v32468 >=  (int)3)) {
                        goto lab←L100087;
                        };
                     i←v32468 = (i←v32468 + 1);
                     goto lab←L100090;
                     lab←L100087: ;
                     lab←L100088: ;
                     };
                  }
               else {
                  if ((0 != centerOnly←v32296)) {
SOURCE(45921, 17)
                     prefix←v32168 = (* (( (ptr) gf←c104776)+36) );
                     }
                  else {
                     if ((0 != noParts←v32380)) {
SOURCE(45951, 19)
                        prefix←v32168 = (* (( (ptr) gf←c104776)+39) );
                        }
                     else {
SOURCE(45983, 5)
                        (void) XR←RaiseUnnamedError();
                        };
                     };
                  };
               };
SOURCE(45990, 45)
            {
               word pd513;
               pd513 = (* (( (ptr) (* (( (ptr) gf←c104776)+314)/* var←c97832 */  ))+6) );
               rope←v15316 = (word) ( *( (fPt) ((*  (ptr) pd513 ))))(prefix←v32168, (* (( (ptr) gf←c104776)+37) ), pd513);
               };
            };
         };
      };
SOURCE(44934, 1101)
   return(rope←v15316);
   }

static void BoxFileout←P2340(slice←v15376, f←v15404)
   word slice←v15376;
   word f←v15404;
   {
   register ptr gf←c104808 =  (ptr) &globalframe;
   word boxData←v32512;
   /* BoxFileout: */ 
SOURCE(46044, 1823)
SOURCE(46094, 37)
   boxData←v32512 = XR←Narrow((* (( (ptr) slice←v15376)+1) ), (* (( (ptr) gf←c104808)+25) ));
SOURCE(46133, 62)
   {
      W2 var←c97928;
      var←c97928.f0 = (*  (ptr) (*  (ptr) boxData←v32512 ) );
      var←c97928.f1 = (* (( (ptr) (*  (ptr) boxData←v32512 ))+1) );
      {
         word pd514;
         pd514 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd514 ))))(f←v15404, var←c97928, pd514);
         };
      };
SOURCE(46197, 16)
   {
      word pd515;
      pd515 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd515 ))))(f←v15404, 32, pd515);
      };
SOURCE(46215, 62)
   {
      W2 var←c98024;
      var←c98024.f0 = (* (( (ptr) (*  (ptr) boxData←v32512 ))+2) );
      var←c98024.f1 = (* (( (ptr) (*  (ptr) boxData←v32512 ))+3) );
      {
         word pd516;
         pd516 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd516 ))))(f←v15404, var←c98024, pd516);
         };
      };
SOURCE(46279, 16)
   {
      word pd517;
      pd517 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd517 ))))(f←v15404, 32, pd517);
      };
SOURCE(46297, 52)
   {
      word pd518;
      pd518 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd518 ))))(f←v15404, (* (( (ptr) boxData←v32512)+1) ), pd518);
      };
SOURCE(46351, 30)
   {
      word pd519;
      pd519 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd519 ))))(f←v15404, (* (( (ptr) gf←c104808)+40) ), 0, 2147483647, pd519);
      };
SOURCE(46383, 90)
   {
      register word edge←v32556 = 0;
      if (( (int)edge←v32556 >  (int)3)) {
         goto lab←L100091;
         };
      lab←L100094: ;
SOURCE(46414, 59)
      {
         W2 var←c98056;
         var←c98056.f0 = 8;
         var←c98056.f1 = (* (( (ptr) (* ((( (ptr) boxData←v32512)+36)+BCK(edge←v32556, 4)) ))+2) );
         {
            word pd520;
            pd520 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd520 ))))(f←v15404, (* (( (ptr) gf←c104808)+41) ), var←c98056, pd520);
            };
         };
      if (( (int)edge←v32556 >=  (int)3)) {
         goto lab←L100091;
         };
      edge←v32556 = (edge←v32556 + 1);
      goto lab←L100094;
      lab←L100091: ;
      };
SOURCE(46484, 29)
   {
      word pd521;
      pd521 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd521 ))))(f←v15404, (* (( (ptr) gf←c104808)+42) ), 0, 2147483647, pd521);
      };
SOURCE(46515, 111)
   {
      register word edge←v32600 = 0;
      if (( (int)edge←v32600 >  (int)3)) {
         goto lab←L100095;
         };
      lab←L100098: ;
SOURCE(46546, 62)
      {
         word pd522;
         pd522 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd522 ))))(f←v15404, (* (( (ptr) (* ((( (ptr) boxData←v32512)+36)+BCK(edge←v32600, 4)) ))+3)
             ), pd522);
         };
SOURCE(46610, 16)
      {
         word pd523;
         pd523 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd523 ))))(f←v15404, 32, pd523);
         };
      if (( (int)edge←v32600 >=  (int)3)) {
         goto lab←L100095;
         };
      edge←v32600 = (edge←v32600 + 1);
      goto lab←L100098;
      lab←L100095: ;
      };
SOURCE(46637, 31)
   {
      word pd524;
      pd524 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd524 ))))(f←v15404, (* (( (ptr) gf←c104808)+43) ), 0, 2147483647, pd524);
      };
SOURCE(46670, 103)
   {
      register word edge←v32644 = 0;
      if (( (int)edge←v32644 >  (int)3)) {
         goto lab←L100099;
         };
      lab←L100102: ;
SOURCE(46701, 54)
      {
         word pd525;
         pd525 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd525 ))))(f←v15404, (* (( (ptr) (* ((( (ptr) boxData←v32512)+36)+BCK(edge←v32644, 4)) ))+8)
             ), pd525);
         };
SOURCE(46757, 16)
      {
         word pd526;
         pd526 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd526 ))))(f←v15404, 32, pd526);
         };
      if (( (int)edge←v32644 >=  (int)3)) {
         goto lab←L100099;
         };
      edge←v32644 = (edge←v32644 + 1);
      goto lab←L100102;
      lab←L100099: ;
      };
SOURCE(46784, 26)
   {
      word pd527;
      pd527 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd527 ))))(f←v15404, (* (( (ptr) gf←c104808)+44) ), 0, 2147483647, pd527);
      };
SOURCE(46812, 43)
   {
      word pd528;
      pd528 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd528 ))))(f←v15404, (* (( (ptr) boxData←v32512)+5) ), pd528);
      };
SOURCE(46857, 18)
   {
      word pd529;
      pd529 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd529 ))))(f←v15404, (* (( (ptr) gf←c104808)+45) ), 0, 2147483647, pd529);
      };
SOURCE(46877, 53)
   {
      word pd530;
      pd530 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd530 ))))(f←v15404, (* (( (ptr) boxData←v32512)+6) ), pd530);
      };
SOURCE(46932, 24)
   {
      word pd531;
      pd531 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd531 ))))(f←v15404, (* (( (ptr) gf←c104808)+46) ), 0, 2147483647, pd531);
      };
SOURCE(46958, 248)
   {
      register word edge←v32688 = 0;
      if (( (int)edge←v32688 >  (int)3)) {
         goto lab←L100103;
         };
      lab←L100106: ;
      {
         word seg←v32732;
SOURCE(46989, 37)
         seg←v32732 = (* ((( (ptr) boxData←v32512)+36)+BCK(edge←v32688, 4)) );
SOURCE(47028, 35)
         {
            word pd532;
            pd532 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd532 ))))(f←v15404, (* (( (ptr) seg←v32732)+4) ), pd532);
            };
SOURCE(47065, 16)
         {
            word pd533;
            pd533 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd533 ))))(f←v15404, 32, pd533);
            };
SOURCE(47083, 123)
         if ((0 != (* (( (ptr) seg←v32732)+4) ))) {
SOURCE(47104, 43)
            {
               word pd534;
               pd534 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd534 ))))(f←v15404, (* (( (ptr) seg←v32732)+5) ), pd534);
               };
SOURCE(47149, 57)
            {
               W2 var←c98088;
               W2 var←c98120;
               W2 var←c01483;
               var←c98088.f0 = 8;
               var←c98088.f1 = (* (( (ptr) seg←v32732)+6) );
               var←c98120.f0 = 8;
               var←c98120.f1 = (* (( (ptr) seg←v32732)+7) );
               (*  (ptr) (word) &var←c01483 ) = 0;
               (* (( (ptr) (word) &var←c01483) + 1) ) = 0;
               {
                  word pd535;
                  pd535 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+60) );
                  (void) ( *( (fPt) ((*  (ptr) pd535 ))))(f←v15404, (* (( (ptr) gf←c104808)+47) ), var←c98088, var←c98120, var←c01483, pd535)
                  ;
                  };
               };
            };
         };
      if (( (int)edge←v32688 >=  (int)3)) {
         goto lab←L100103;
         };
      edge←v32688 = (edge←v32688 + 1);
      goto lab←L100106;
      lab←L100103: ;
      };
SOURCE(47220, 25)
   {
      word pd536;
      pd536 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd536 ))))(f←v15404, (* (( (ptr) gf←c104808)+48) ), 0, 2147483647, pd536);
      };
SOURCE(47247, 239)
   {
      register word edge←v32776 = 0;
      if (( (int)edge←v32776 >  (int)3)) {
         goto lab←L100107;
         };
      lab←L100110: ;
      {
         word seg←v32820;
SOURCE(47278, 37)
         seg←v32820 = (* ((( (ptr) boxData←v32512)+36)+BCK(edge←v32776, 4)) );
SOURCE(47317, 15)
         {
            word pd537;
            pd537 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd537 ))))(f←v15404, (* (( (ptr) gf←c104808)+49) ), 0, 2147483647, pd537);
            };
SOURCE(47334, 38)
         {
            word pd538;
            pd538 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd538 ))))(f←v15404,  (unsigned) ((* (( (ptr) seg←v32820)+25) ) != 0), pd538);
            };
SOURCE(47374, 79)
         if (((* (( (ptr) seg←v32820)+25) ) != 0)) {
SOURCE(47396, 41)
            {
               word pd539;
               pd539 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd539 ))))(f←v15404, (* (( (ptr) seg←v32820)+25) ), pd539);
               };
            }
         else {
SOURCE(47437, 16)
            {
               word pd540;
               pd540 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+21) );
               (void) ( *( (fPt) ((*  (ptr) pd540 ))))(f←v15404, 32, pd540);
               };
            };
SOURCE(47471, 15)
         {
            word pd541;
            pd541 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd541 ))))(f←v15404, (* (( (ptr) gf←c104808)+50) ), 0, 2147483647, pd541);
            };
         };
      if (( (int)edge←v32776 >=  (int)3)) {
         goto lab←L100107;
         };
      edge←v32776 = (edge←v32776 + 1);
      goto lab←L100110;
      lab←L100107: ;
      };
SOURCE(47497, 20)
   {
      word pd542;
      pd542 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd542 ))))(f←v15404, (* (( (ptr) gf←c104808)+51) ), 0, 2147483647, pd542);
      };
SOURCE(47519, 40)
   {
      word pd543;
      pd543 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd543 ))))(f←v15404, (* (( (ptr) boxData←v32512)+15) ), pd543);
      };
SOURCE(47561, 27)
   {
      word pd544;
      pd544 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd544 ))))(f←v15404, (* (( (ptr) gf←c104808)+52) ), 0, 2147483647, pd544);
      };
SOURCE(47590, 51)
   {
      word pd545;
      pd545 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd545 ))))(f←v15404, (* (( (ptr) boxData←v32512)+14) ), pd545);
      };
SOURCE(47643, 226)
   {
      W2 loc←v32864;
      word screenStyle←v32892 = 0;
SOURCE(47649, 22)
      loc←v32864.f0 = 0;
      loc←v32864.f1 = 0;
SOURCE(47700, 46)
      {
         W3 var←c98216;
         {
            word pd546;
            pd546 = (* (( (ptr) (* (( (ptr) gf←c104808)+300)/* var←c91944 */  ))+48) );
            (void) ( *( (fPt) ((*  (ptr) pd546 ))))((word) &var←c98216, slice←v15376, pd546);
            };
         screenStyle←v32892 = var←c98216.f2;
         loc←v32864 = (*  (W2Pt) &var←c98216 );
         };
SOURCE(47748, 26)
      {
         word pd547;
         pd547 = (* (( (ptr) (* (( (ptr) gf←c104808)+316)/* var←c97992 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd547 ))))(f←v15404, (* (( (ptr) gf←c104808)+53) ), 0, 2147483647, pd547);
         };
SOURCE(47776, 91)
      {
         word var←c98248;
         if ((0 == (word) IsChildOfOutline←P660(slice←v15376))) {
            var←c98248 = loc←v32864.f0;
            }
         else {
            var←c98248 = 0;
            };
         {
            word pd548;
            pd548 = (* (( (ptr) (* (( (ptr) gf←c104808)+315)/* var←c97960 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd548 ))))(f←v15404, var←c98248, screenStyle←v32892, pd548);
            };
         };
      };
   }

static word BoxFilein←P2400(f←v15464, version←v15492, router←v15520, camera←v15548)
   word f←v15464;
   word version←v15492;
   word router←v15520;
   word camera←v15548;
   {
   register ptr gf←c104840 =  (ptr) &globalframe;
   word slice←v15592;
   word boxData←v32936 = 0;
   word box←v32964 = 0;
   W2 p1←v32992;
   W2 p2←v33020;
   word transform←v33048 = 0;
   W4 strokeWidths←v33076;
   W4 ends←v33104;
   W4 colors←v33132;
   W4 dashes←v33160;
   W4 patterns←v33188;
   W4 offsets←v33216;
   W4 lengths←v33244;
   W4 props←v33272;
   word fill←v33300 = 0;
   word pa←v33328 = 0;
   word fwd←v33356 = 1;
   word truth←v33384 = 1;
   word strokeJoint←v33412 = 2;
   /* BoxFilein: */ 
SOURCE(47878, 3918)
SOURCE(47878, 3918)
   slice←v15592 = 0;
SOURCE(48130, 29)
   XR←FillWords(&colors←v33132, 4, 0);
SOURCE(48161, 41)
   XR←FillWords(&dashes←v33160, 4, 0);
SOURCE(48204, 40)
   XR←FillWords(&patterns←v33188, 4, 0);
SOURCE(48308, 23)
   XR←FillWords(&props←v33272, 4, 0);
SOURCE(48469, 27)
   {
      word pd549;
      pd549 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd549 ))))((word) &p1←v32992, f←v15464, pd549);
      };
SOURCE(48498, 27)
   {
      word pd550;
      pd550 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd550 ))))((word) &p2←v33020, f←v15464, pd550);
      };
SOURCE(48527, 43)
   {
      word pd551;
      pd551 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+20) );
      transform←v33048 = (word) ( *( (fPt) ((*  (ptr) pd551 ))))(f←v15464, pd551);
      };
SOURCE(48572, 184)
   {
      word x552;
      word x554;
      if (((
         x552 = version←v15492,  *(float*)&x552
         ) > (
         x554 = (*  (ptr) &fc553 ),  *(float*)&x554
         ))) {
SOURCE(48600, 40)
         {
            word pd555;
            pd555 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd555 ))))(f←v15464, (* (( (ptr) gf←c104840)+54) ), pd555);
            };
SOURCE(48642, 73)
         {
            register word edge←v33828 = 0;
            if (( (int)edge←v33828 >  (int)3)) {
               goto lab←L100111;
               };
            lab←L100114: ;
SOURCE(48673, 42)
            {
               word var←c98440;
               {
                  word pd556;
                  pd556 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+27) );
                  var←c98440 = (word) ( *( (fPt) ((*  (ptr) pd556 ))))(f←v15464, pd556);
                  };
               (* (( (ptr) &strokeWidths←v33076)+BCK(edge←v33828, 4)) ) = var←c98440;
               };
            if (( (int)edge←v33828 >=  (int)3)) {
               goto lab←L100111;
               };
            edge←v33828 = (edge←v33828 + 1);
            goto lab←L100114;
            lab←L100111: ;
            };
         }
      else {
SOURCE(48733, 23)
         XR←FillWords(&strokeWidths←v33076, 4, (*  (ptr) &fc101 ));
         };
      };
SOURCE(48758, 214)
   {
      word x557;
      word x559;
      if (((
         x557 = version←v15492,  *(float*)&x557
         ) >= (
         x559 = (*  (ptr) &fc558 ),  *(float*)&x559
         ))) {
SOURCE(48807, 40)
         {
            word pd560;
            pd560 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd560 ))))(f←v15464, (* (( (ptr) gf←c104840)+55) ), pd560);
            };
SOURCE(48849, 70)
         {
            register word edge←v33872 = 0;
            if (( (int)edge←v33872 >  (int)3)) {
               goto lab←L100115;
               };
            lab←L100118: ;
SOURCE(48880, 39)
            {
               word var←c98472;
               {
                  word pd561;
                  pd561 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+14) );
                  var←c98472 = (word) ( *( (fPt) ((*  (ptr) pd561 ))))(f←v15464, pd561);
                  };
               (* (( (ptr) &ends←v33104)+BCK(edge←v33872, 4)) ) = var←c98472;
               };
            if (( (int)edge←v33872 >=  (int)3)) {
               goto lab←L100115;
               };
            edge←v33872 = (edge←v33872 + 1);
            goto lab←L100118;
            lab←L100115: ;
            };
         }
      else {
SOURCE(48937, 35)
         ends←v33104.f0 = 2;
         ends←v33104.f1 = 2;
         ends←v33104.f2 = 2;
         ends←v33104.f3 = 2;
         };
      };
SOURCE(48974, 287)
   {
      word x562;
      word x563;
      if (((
         x562 = version←v15492,  *(float*)&x562
         ) > (
         x563 = (*  (ptr) &fc553 ),  *(float*)&x563
         ))) {
SOURCE(49002, 42)
         {
            word pd564;
            pd564 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd564 ))))(f←v15464, (* (( (ptr) gf←c104840)+56) ), pd564);
            };
SOURCE(49046, 77)
         {
            register word edge←v33916 = 0;
            if (( (int)edge←v33916 >  (int)3)) {
               goto lab←L100119;
               };
            lab←L100122: ;
SOURCE(49077, 46)
            {
               word var←c98504;
               {
                  word pd565;
                  pd565 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+16) );
                  var←c98504 = (word) ( *( (fPt) ((*  (ptr) pd565 ))))(f←v15464, version←v15492, pd565);
                  };
               (* (( (ptr) &colors←v33132)+BCK(edge←v33916, 4)) ) = var←c98504;
               };
            if (( (int)edge←v33916 >=  (int)3)) {
               goto lab←L100119;
               };
            edge←v33916 = (edge←v33916 + 1);
            goto lab←L100122;
            lab←L100119: ;
            };
SOURCE(49134, 38)
         {
            word pd566;
            pd566 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd566 ))))(f←v15464, (* (( (ptr) gf←c104840)+44) ), pd566);
            };
SOURCE(49174, 38)
         {
            word pd567;
            pd567 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+16) );
            fill←v33300 = (word) ( *( (fPt) ((*  (ptr) pd567 ))))(f←v15464, version←v15492, pd567);
            };
         }
      else {
SOURCE(49223, 26)
         XR←FillWords(&colors←v33132, 4, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c104840)+303)/* var←c92232 */  ))+54) ) ));
SOURCE(49251, 10)
         fill←v33300 = 0;
         };
      };
SOURCE(49266, 118)
   {
      word x568;
      word x570;
      if (((
         x568 = version←v15492,  *(float*)&x568
         ) >= (
         x570 = (*  (ptr) &fc569 ),  *(float*)&x570
         ))) {
SOURCE(49322, 28)
         {
            word pd571;
            pd571 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd571 ))))(f←v15464, (* (( (ptr) gf←c104840)+57) ), pd571);
            };
SOURCE(49352, 32)
         {
            word pd572;
            pd572 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+17) );
            pa←v33328 = (word) ( *( (fPt) ((*  (ptr) pd572 ))))(f←v15464, pd572);
            };
         };
      };
SOURCE(49389, 342)
   {
      word x573;
      word x575;
      if (((
         x573 = version←v15492,  *(float*)&x573
         ) >= (
         x575 = (*  (ptr) &fc574 ),  *(float*)&x575
         ))) {
SOURCE(49441, 34)
         {
            word pd576;
            pd576 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd576 ))))(f←v15464, (* (( (ptr) gf←c104840)+58) ), pd576);
            };
SOURCE(49477, 215)
         {
            register word edge←v33960 = 0;
            if (( (int)edge←v33960 >  (int)3)) {
               goto lab←L100123;
               };
            lab←L100126: ;
SOURCE(49508, 36)
            {
               word var←c98536;
               {
                  word pd577;
                  pd577 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+24) );
                  var←c98536 = (word) ( *( (fPt) ((*  (ptr) pd577 ))))(f←v15464, pd577);
                  };
               (* (( (ptr) &dashes←v33160)+BCK(edge←v33960, 4)) ) = var←c98536;
               };
SOURCE(49546, 146)
            if ((0 != (* (( (ptr) &dashes←v33160)+BCK(edge←v33960, 4)) ))) {
SOURCE(49569, 45)
               {
                  word var←c98568;
                  {
                     word pd578;
                     pd578 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+23) );
                     var←c98568 = (word) ( *( (fPt) ((*  (ptr) pd578 ))))(f←v15464, pd578);
                     };
                  (* (( (ptr) &patterns←v33188)+BCK(edge←v33960, 4)) ) = var←c98568;
                  };
SOURCE(49616, 37)
               {
                  word var←c98600;
                  {
                     word pd579;
                     pd579 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+27) );
                     var←c98600 = (word) ( *( (fPt) ((*  (ptr) pd579 ))))(f←v15464, pd579);
                     };
                  (* (( (ptr) &offsets←v33216)+BCK(edge←v33960, 4)) ) = var←c98600;
                  };
SOURCE(49655, 37)
               {
                  word var←c98632;
                  {
                     word pd580;
                     pd580 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+27) );
                     var←c98632 = (word) ( *( (fPt) ((*  (ptr) pd580 ))))(f←v15464, pd580);
                     };
                  (* (( (ptr) &lengths←v33244)+BCK(edge←v33960, 4)) ) = var←c98632;
                  };
               };
            if (( (int)edge←v33960 >=  (int)3)) {
               goto lab←L100123;
               };
            edge←v33960 = (edge←v33960 + 1);
            goto lab←L100126;
            lab←L100123: ;
            };
SOURCE(49706, 25)
         {
            word pd581;
            pd581 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd581 ))))(f←v15464, 41, pd581);
            };
         };
      };
SOURCE(49736, 335)
   {
      word x582;
      word x584;
      if (((
         x582 = version←v15492,  *(float*)&x582
         ) >= (
         x584 = (*  (ptr) &fc583 ),  *(float*)&x584
         ))) {
SOURCE(49761, 312)
         {
            word hasProps←v34004 = 0;
SOURCE(49812, 33)
            {
               word pd585;
               pd585 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
               (void) ( *( (fPt) ((*  (ptr) pd585 ))))(f←v15464, (* (( (ptr) gf←c104840)+59) ), pd585);
               };
SOURCE(49847, 188)
            {
               register word edge←v34048 = 0;
               if (( (int)edge←v34048 >  (int)3)) {
                  goto lab←L100127;
                  };
               lab←L100130: ;
SOURCE(49878, 27)
               {
                  word pd586;
                  pd586 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
                  (void) ( *( (fPt) ((*  (ptr) pd586 ))))(f←v15464, (* (( (ptr) gf←c104840)+49) ), pd586);
                  };
SOURCE(49907, 32)
               {
                  word pd587;
                  pd587 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+24) );
                  hasProps←v34004 = (word) ( *( (fPt) ((*  (ptr) pd587 ))))(f←v15464, pd587);
                  };
SOURCE(49941, 67)
               {
                  word var←c98664;
                  {
                     word pd588;
                     if ((0 != hasProps←v34004)) {
                        pd588 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+13) );
                        var←c98664 = (word) ( *( (fPt) ((*  (ptr) pd588 ))))(f←v15464, pd588);
                        }
                     else {
                        var←c98664 = 0;
                        };
                     };
                  (* (( (ptr) &props←v33272)+BCK(edge←v34048, 4)) ) = var←c98664;
                  };
SOURCE(50010, 25)
               {
                  word pd589;
                  pd589 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+10) );
                  (void) ( *( (fPt) ((*  (ptr) pd589 ))))(f←v15464, 41, pd589);
                  };
               if (( (int)edge←v34048 >=  (int)3)) {
                  goto lab←L100127;
                  };
               edge←v34048 = (edge←v34048 + 1);
               goto lab←L100130;
               lab←L100127: ;
               };
SOURCE(50046, 25)
            {
               word pd590;
               pd590 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd590 ))))(f←v15464, 41, pd590);
               };
            };
         };
      };
SOURCE(50076, 108)
   {
      word x591;
      word x593;
      if (((
         x591 = version←v15492,  *(float*)&x591
         ) >= (
         x593 = (*  (ptr) &fc592 ),  *(float*)&x593
         ))) {
SOURCE(50126, 29)
         {
            word pd594;
            pd594 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd594 ))))(f←v15464, (* (( (ptr) gf←c104840)+60) ), pd594);
            };
SOURCE(50157, 27)
         {
            word pd595;
            pd595 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+24) );
            fwd←v33356 = (word) ( *( (fPt) ((*  (ptr) pd595 ))))(f←v15464, pd595);
            };
         };
      };
SOURCE(50189, 131)
   {
      word x596;
      word x598;
      if (((
         x596 = version←v15492,  *(float*)&x596
         ) >= (
         x598 = (*  (ptr) &fc597 ),  *(float*)&x598
         ))) {
SOURCE(50239, 37)
         {
            word pd599;
            pd599 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd599 ))))(f←v15464, (* (( (ptr) gf←c104840)+61) ), pd599);
            };
SOURCE(50278, 42)
         {
            word pd600;
            pd600 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+15) );
            strokeJoint←v33412 = (word) ( *( (fPt) ((*  (ptr) pd600 ))))(f←v15464, pd600);
            };
         };
      };
SOURCE(50325, 57)
   {
      word pd601;
      pd601 = (* (( (ptr) (* (( (ptr) gf←c104840)+304)/* var←c92328 */  ))+5) );
      box←v32964 = (word) ( *( (fPt) ((*  (ptr) pd601 ))))(p1←v32992.f0, p1←v32992.f1, p2←v33020.f0, p2←v33020.f1, 0, 0, pd601)
      ;
      };
SOURCE(50384, 46)
   slice←v15592 = (*  (ptr) MakeBoxSlice←P120(box←v32964, 3, transform←v33048) );
SOURCE(50432, 28)
   boxData←v32936 = XR←Narrow((* (( (ptr) slice←v15592)+1) ), (* (( (ptr) gf←c104840)+25) ));
SOURCE(50462, 411)
   {
      register word edge←v34092 = 0;
      if (( (int)edge←v34092 >  (int)3)) {
         goto lab←L100131;
         };
      lab←L100134: ;
      {
         word seg←v34136;
SOURCE(50493, 37)
         seg←v34136 = (* ((( (ptr) boxData←v32936)+36)+BCK(edge←v34092, 4)) );
SOURCE(50532, 36)
         (* (( (ptr) seg←v34136)+2) ) = (* (( (ptr) &strokeWidths←v33076)+BCK(edge←v34092, 4)) );
SOURCE(50570, 26)
         (* (( (ptr) seg←v34136)+3) ) = (* (( (ptr) &ends←v33104)+BCK(edge←v34092, 4)) );
SOURCE(50598, 24)
         (* (( (ptr) seg←v34136)+8) ) = (* (( (ptr) &colors←v33132)+BCK(edge←v34092, 4)) );
SOURCE(50624, 25)
         (* (( (ptr) seg←v34136)+4) ) = (* (( (ptr) &dashes←v33160)+BCK(edge←v34092, 4)) );
SOURCE(50651, 107)
         if ((0 != (* (( (ptr) &dashes←v33160)+BCK(edge←v34092, 4)) ))) {
SOURCE(50674, 28)
            (* (( (ptr) seg←v34136)+5) ) = (* (( (ptr) &patterns←v33188)+BCK(edge←v34092, 4)) );
SOURCE(50704, 26)
            (* (( (ptr) seg←v34136)+6) ) = (* (( (ptr) &offsets←v33216)+BCK(edge←v34092, 4)) );
SOURCE(50732, 26)
            (* (( (ptr) seg←v34136)+7) ) = (* (( (ptr) &lengths←v33244)+BCK(edge←v34092, 4)) );
            };
SOURCE(50763, 110)
         {
            register word next←v34180;
            next←v34180 = (* (( (ptr) &props←v33272)+BCK(edge←v34092, 4)) );
            lab←L100138: ;
            if ((next←v34180 != 0)) {
               }
            else {
               goto lab←L100135;
               };
SOURCE(50834, 39)
            {
               word var←c98696;
               var←c98696 = XR←NewObject(8, (* (( (ptr) gf←c104840)+14) ));
               (*  (ptr) var←c98696 ) = (*  (ptr) next←v34180 );
               (* (( (ptr) var←c98696)+1) ) = (* (( (ptr) seg←v34136)+25) );
               (* (( (ptr) seg←v34136)+25) ) = var←c98696;
               };
            next←v34180 = (* (( (ptr) next←v34180)+1) );
            goto lab←L100138;
            lab←L100135: ;
            };
         };
      if (( (int)edge←v34092 >=  (int)3)) {
         goto lab←L100131;
         };
      edge←v34092 = (edge←v34092 + 1);
      goto lab←L100134;
      lab←L100131: ;
      };
SOURCE(50893, 24)
   (* (( (ptr) boxData←v32936)+5) ) = fill←v33300;
SOURCE(50919, 27)
   (* (( (ptr) boxData←v32936)+6) ) = pa←v33328;
SOURCE(50948, 21)
   (* (( (ptr) boxData←v32936)+15) ) = fwd←v33356;
SOURCE(50971, 33)
   (* (( (ptr) boxData←v32936)+14) ) = strokeJoint←v33412;
SOURCE(51006, 564)
   {
      word x602;
      word x604;
      if (((
         x602 = version←v15492,  *(float*)&x602
         ) == (
         x604 = (*  (ptr) &fc603 ),  *(float*)&x604
         ))) {
SOURCE(51067, 29)
         {
            word pd605;
            pd605 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+24) );
            truth←v33384 = (word) ( *( (fPt) ((*  (ptr) pd605 ))))(f←v15464, pd605);
            };
SOURCE(51098, 472)
         if ((0 != truth←v33384)) {
SOURCE(51112, 460)
            {
               word fillText←v34308 = 0;
               word ref←v34336 = 0;
               word nodeSize←v34364 = 0;
               word where←v34392 = 0;
SOURCE(51180, 29)
               {
                  word pd606;
                  pd606 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+24) );
                  truth←v33384 = (word) ( *( (fPt) ((*  (ptr) pd606 ))))(f←v15464, pd606);
                  };
SOURCE(51231, 54)
               {
                  word x607;
                  word x609;
                  if (((
                     x607 = version←v15492,  *(float*)&x607
                     ) >= (
                     x609 = (*  (ptr) &fc608 ),  *(float*)&x609
                     ))) {
SOURCE(51256, 29)
                     {
                        word pd610;
                        word idx611;
                        pd610 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+26) );
                        where←v34392 = (
                           idx611 = (word) ( *( (fPt) ((*  (ptr) pd610 ))))(f←v15464, pd610),
                           SGNCK(idx611)
                           );
                        };
                     };
                  };
SOURCE(51310, 32)
               {
                  word pd612;
                  word idx613;
                  pd612 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+26) );
                  nodeSize←v34364 = (
                     idx613 = (word) ( *( (fPt) ((*  (ptr) pd612 ))))(f←v15464, pd612),
                     SGNCK(idx613)
                     );
                  };
SOURCE(51376, 40)
               {
                  word pd614;
                  pd614 = (* (( (ptr) (* (( (ptr) gf←c104840)+316)/* var←c97992 */  ))+19) );
                  if (((word) ( *( (fPt) ((*  (ptr) pd614 ))))(f←v15464, pd614) == 32)) {
SOURCE(51401, 15)
                     {
                        word var←c98728;
                        word pd615;
                        pd615 = (* (( (ptr) (* (( (ptr) gf←c104840)+316)/* var←c97992 */  ))+11) );
                        var←c98728 = (word) ( *( (fPt) ((*  (ptr) pd615 ))))(f←v15464, pd615);
                        };
                     };
                  };
SOURCE(51447, 36)
               {
                  word pd616;
                  pd616 = (* (( (ptr) (* (( (ptr) gf←c104840)+316)/* var←c97992 */  ))+92) );
                  fillText←v34308 = (word) ( *( (fPt) ((*  (ptr) pd616 ))))(f←v15464, nodeSize←v34364, 1, pd616);
                  };
SOURCE(51485, 32)
               {
                  word pd617;
                  pd617 = (* (( (ptr) (* (( (ptr) gf←c104840)+318)/* var←c98760 */  ))+10) );
                  ref←v34336 = (word) ( *( (fPt) ((*  (ptr) pd617 ))))(fillText←v34308, pd617);
                  };
SOURCE(51519, 51)
               {
                  W2 var←c98792;
                  var←c98792.f0 = ref←v34336;
                  var←c98792.f1 = where←v34392;
                  {
                     word pd618;
                     pd618 = (* (( (ptr) (* (( (ptr) gf←c104840)+300)/* var←c91944 */  ))+47) );
                     (void) ( *( (fPt) ((*  (ptr) pd618 ))))(slice←v15592, var←c98792, truth←v33384, 0, pd618);
                     };
                  };
               };
            };
         };
      };
SOURCE(51578, 218)
   {
      word x619;
      word x620;
      if (((
         x619 = version←v15492,  *(float*)&x619
         ) >= (
         x620 = (*  (ptr) &fc608 ),  *(float*)&x620
         ))) {
SOURCE(51603, 195)
         {
            word text←v34436 = 0;
            word screenStyle←v34464 = 0;
SOURCE(51652, 34)
            {
               word pd621;
               pd621 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+9) );
               (void) ( *( (fPt) ((*  (ptr) pd621 ))))(f←v15464, (* (( (ptr) gf←c104840)+63) ), pd621);
               };
SOURCE(51688, 52)
            {
               W2 var←c98824;
               {
                  word pd622;
                  pd622 = (* (( (ptr) (* (( (ptr) gf←c104840)+317)/* var←c98408 */  ))+18) );
                  (void) ( *( (fPt) ((*  (ptr) pd622 ))))((word) &var←c98824, f←v15464, version←v15492, pd622);
                  };
               screenStyle←v34464 = var←c98824.f1;
               text←v34436 = var←c98824.f0;
               };
SOURCE(51742, 54)
            {
               W2 var←c98856;
               var←c98856.f0 = text←v34436;
               var←c98856.f1 = 0;
               {
                  word pd623;
                  pd623 = (* (( (ptr) (* (( (ptr) gf←c104840)+300)/* var←c91944 */  ))+47) );
                  (void) ( *( (fPt) ((*  (ptr) pd623 ))))(slice←v15592, var←c98856, screenStyle←v34464, 0, pd623);
                  };
               };
            };
         };
      };
SOURCE(47878, 3918)
   return(slice←v15592);
   }

static void MakeComplete←P2460(boxParts←v15652)
   word boxParts←v15652;
   {
   /* MakeComplete: */ 
SOURCE(51805, 125)
SOURCE(51850, 28)
   XR←FillWords(&(* (W4Pt) (boxParts←v15652)), 4, 1);
SOURCE(51880, 26)
   XR←FillWords(&(* (W4Pt) ((( (ptr) boxParts←v15652)+4))), 4, 1);
SOURCE(51908, 22)
   (* (( (ptr) boxParts←v15652)+8) ) = 1;
   }

static word IsComplete←P2520(boxParts←v15712)
   word boxParts←v15712;
   {
   register ptr gf←c104872 =  (ptr) &globalframe;
   word var←c15756;
   /* IsComplete: */ 
SOURCE(51936, 167)
SOURCE(51936, 167)
   var←c15756 = 0;
SOURCE(52001, 102)
   {
      word tc624;
      if ( (  ( (boxParts←v15712 != 0) ? XR←EqualWords(boxParts←v15712, (( (ptr) gf←c104872)+287)/* var←c91720 */ , 4) : 0 )  ? XR←EqualWords(
         (( (ptr) boxParts←v15712)+4), (( (ptr) gf←c104872)+283)/* var←c91656 */ , 4) : 0 ) ) {
         tc624 =  (word)  (unsigned) (0 != (* (( (ptr) boxParts←v15712)+8) ));
         }
      else {
         tc624 =  (word)  (unsigned) 0;
         };
      return(tc624);
      };
   }

static word IsEmpty←P2580(boxParts←v15816)
   word boxParts←v15816;
   {
   register ptr gf←c104904 =  (ptr) &globalframe;
   word var←c15860;
   /* IsEmpty: */ 
SOURCE(52109, 173)
SOURCE(52109, 173)
   var←c15860 = 0;
SOURCE(52171, 111)
   {
      word tc625;
      if ((boxParts←v15816 == 0)) {
         tc625 =  (word)  (unsigned) 1;
         }
      else {
         if ( ( (XR←EqualWords(boxParts←v15816, (( (ptr) gf←c104904)+291)/* var←c91784 */ , 4)) ? XR←EqualWords((( (ptr) boxParts←v15816)+4)
            , (( (ptr) gf←c104904)+295)/* var←c91848 */ , 4) : 0 ) ) {
            tc625 =  (word)  (unsigned) ((* (( (ptr) boxParts←v15816)+8) ) == 0);
            }
         else {
            tc625 =  (word)  (unsigned) 0;
            };
         };
      return(tc625);
      };
   }

static void CountCorners←P2640(formal←c0854, a←v15920)
   word formal←c0854;
   W4 a←v15920;
   {
   word count←v15964;
   word cornerNum←v15992;
   /* CountCorners: */ 
SOURCE(52288, 199)
SOURCE(52373, 9)
   count←v15964 = 0;
SOURCE(52384, 14)
   cornerNum←v15992 =  (word) -1;
SOURCE(52400, 87)
   {
      register word corner←v34508 = 0;
      if (( (int)corner←v34508 >  (int)3)) {
         goto lab←L100140;
         };
      lab←L100143: ;
SOURCE(52433, 54)
      if ((0 != (* (( (ptr) &a←v15920)+BCK(corner←v34508, 4)) ))) {
SOURCE(52452, 15)
         count←v15964 = (count←v15964 + 1);
SOURCE(52469, 18)
         cornerNum←v15992 = corner←v34508;
         };
      if (( (int)corner←v34508 >=  (int)3)) {
         goto lab←L100140;
         };
      corner←v34508 = (corner←v34508 + 1);
      goto lab←L100143;
      lab←L100140: ;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0854 ) = count←v15964;
   (* (( (ptr) formal←c0854)+1) ) = cornerNum←v15992;
   return;
   }

static void CountEdges←P2700(formal←c0859, a←v16052)
   word formal←c0859;
   W4 a←v16052;
   {
   word count←v16096;
   word edgeNum←v16124;
   /* CountEdges: */ 
SOURCE(52503, 183)
SOURCE(52582, 9)
   count←v16096 = 0;
SOURCE(52593, 12)
   edgeNum←v16124 =  (word) -1;
SOURCE(52607, 79)
   {
      register word edge←v34552 = 0;
      if (( (int)edge←v34552 >  (int)3)) {
         goto lab←L100145;
         };
      lab←L100148: ;
SOURCE(52638, 48)
      if ((0 != (* (( (ptr) &a←v16052)+BCK(edge←v34552, 4)) ))) {
SOURCE(52655, 15)
         count←v16096 = (count←v16096 + 1);
SOURCE(52672, 14)
         edgeNum←v16124 = edge←v34552;
         };
      if (( (int)edge←v34552 >=  (int)3)) {
         goto lab←L100145;
         };
      edge←v34552 = (edge←v34552 + 1);
      goto lab←L100148;
      lab←L100145: ;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0859 ) = count←v16096;
   (* (( (ptr) formal←c0859)+1) ) = edgeNum←v16124;
   return;
   }

static word BoxPointsInDescriptor←P2760(sliceD←v16184)
   word sliceD←v16184;
   {
   register ptr gf←c104936 =  (ptr) &globalframe;
   word pointGen←v16228;
   word parts←v34596;
   /* BoxPointsInDescriptor: */ 
SOURCE(52702, 379)
SOURCE(52702, 379)
   pointGen←v16228 = 0;
SOURCE(52795, 38)
   parts←v34596 = XR←Narrow((* (( (ptr) sliceD←v16184)+1) ), (* (( (ptr) gf←c104936)+28) ));
SOURCE(52835, 56)
   {
      word var←c98888;
      var←c98888 = XR←NewObject(16, (* (( (ptr) gf←c104936)+12) ));
      (*  (ptr) var←c98888 ) = sliceD←v16184;
      pointGen←v16228 = var←c98888;
      };
SOURCE(52920, 96)
   {
      register word corner←v34640 = 0;
      if (( (int)corner←v34640 >  (int)3)) {
         goto lab←L100149;
         };
      lab←L100152: ;
SOURCE(52953, 63)
      if ((0 != (* (( (ptr) parts←v34596)+BCK(corner←v34640, 4)) ))) {
SOURCE(52983, 33)
         (* (( (ptr) pointGen←v16228)+1) ) = ((* (( (ptr) pointGen←v16228)+1) ) + 1);
         };
      if (( (int)corner←v34640 >=  (int)3)) {
         goto lab←L100149;
         };
      corner←v34640 = (corner←v34640 + 1);
      goto lab←L100152;
      lab←L100149: ;
      };
SOURCE(53027, 54)
   if ((0 != (* (( (ptr) parts←v34596)+8) ))) {
SOURCE(53048, 33)
      (* (( (ptr) pointGen←v16228)+1) ) = ((* (( (ptr) pointGen←v16228)+1) ) + 1);
      };
SOURCE(52702, 379)
   return(pointGen←v16228);
   }

static void BoxWalkPointsInDescriptor←P2820(sliceD←v16288, walkProc←v16316)
   word sliceD←v16288;
   word walkProc←v16316;
   {
   register ptr gf←c104968 =  (ptr) &globalframe;
   word parts←v34684;
   word boxData←v34712;
   word done←v34740 = 0;
   /* BoxWalkPointsInDescriptor: */ 
SOURCE(53087, 401)
SOURCE(53174, 38)
   parts←v34684 = XR←Narrow((* (( (ptr) sliceD←v16288)+1) ), (* (( (ptr) gf←c104968)+28) ));
SOURCE(53214, 44)
   boxData←v34712 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v16288 ))+1) ), (* (( (ptr) gf←c104968)+25) ));
SOURCE(53280, 131)
   {
      register word corner←v34784 = 0;
      if (( (int)corner←v34784 >  (int)3)) {
         goto lab←L100153;
         };
      lab←L100156: ;
SOURCE(53313, 98)
      if ((0 != (* (( (ptr) parts←v34684)+BCK(corner←v34784, 4)) ))) {
SOURCE(53345, 45)
         {
            W2 var←c98920;
            (void) GetBoxPoint←P3120((word) &var←c98920, boxData←v34712, corner←v34784);
            done←v34740 = (word) ( *( (fPt) ((*  (ptr) walkProc←v16316 ))))(var←c98920, walkProc←v16316);
            };
SOURCE(53392, 19)
         if ((0 != done←v34740)) {
SOURCE(53405, 6)
            return;
            };
         };
      if (( (int)corner←v34784 >=  (int)3)) {
         goto lab←L100153;
         };
      corner←v34784 = (corner←v34784 + 1);
      goto lab←L100156;
      lab←L100153: ;
      };
SOURCE(53425, 63)
   if ((0 != (* (( (ptr) parts←v34684)+8) ))) {
SOURCE(53448, 40)
      {
         W2 var←c98952;
         (void) GetBoxPoint←P3120((word) &var←c98952, boxData←v34712, 4);
         done←v34740 = (word) ( *( (fPt) ((*  (ptr) walkProc←v16316 ))))(var←c98952, walkProc←v16316);
         };
      };
   }

static word BoxPointPairsInDescriptor←P2880(sliceD←v16376)
   word sliceD←v16376;
   {
   register ptr gf←c105000 =  (ptr) &globalframe;
   word pointPairGen←v16420;
   word parts←v34828;
   /* BoxPointPairsInDescriptor: */ 
SOURCE(53497, 336)
SOURCE(53497, 336)
   pointPairGen←v16420 = 0;
SOURCE(53602, 38)
   parts←v34828 = XR←Narrow((* (( (ptr) sliceD←v16376)+1) ), (* (( (ptr) gf←c105000)+28) ));
SOURCE(53642, 64)
   {
      word var←c98984;
      var←c98984 = XR←NewObject(16, (* (( (ptr) gf←c105000)+11) ));
      (*  (ptr) var←c98984 ) = sliceD←v16376;
      pointPairGen←v16420 = var←c98984;
      };
SOURCE(53735, 98)
   {
      register word edge←v34872 = 0;
      if (( (int)edge←v34872 >  (int)3)) {
         goto lab←L100157;
         };
      lab←L100160: ;
SOURCE(53766, 67)
      if ((0 != (* ((( (ptr) parts←v34828)+4)+BCK(edge←v34872, 4)) ))) {
SOURCE(53792, 41)
         (* (( (ptr) pointPairGen←v16420)+1) ) = ((* (( (ptr) pointPairGen←v16420)+1) ) + 1);
         };
      if (( (int)edge←v34872 >=  (int)3)) {
         goto lab←L100157;
         };
      edge←v34872 = (edge←v34872 + 1);
      goto lab←L100160;
      lab←L100157: ;
      };
SOURCE(53497, 336)
   return(pointPairGen←v16420);
   }

static word BoxSegmentsInDescriptor←P2940(sliceD←v16480)
   word sliceD←v16480;
   {
   register ptr gf←c105032 =  (ptr) &globalframe;
   word segGen←v16524;
   word parts←v34916;
   /* BoxSegmentsInDescriptor: */ 
SOURCE(53848, 348)
SOURCE(53848, 348)
   segGen←v16524 = 0;
SOURCE(53943, 38)
   parts←v34916 = XR←Narrow((* (( (ptr) sliceD←v16480)+1) ), (* (( (ptr) gf←c105032)+28) ));
SOURCE(53983, 125)
   {
      word var←c99016;
      var←c99016 = XR←NewObject(32, (* (( (ptr) gf←c105032)+10) ));
      (* (( (ptr) var←c99016)+6) ) = sliceD←v16480;
      segGen←v16524 = var←c99016;
      };
SOURCE(54110, 86)
   {
      register word edge←v34960 = 0;
      if (( (int)edge←v34960 >  (int)3)) {
         goto lab←L100161;
         };
      lab←L100164: ;
SOURCE(54141, 55)
      if ((0 != (* ((( (ptr) parts←v34916)+4)+BCK(edge←v34960, 4)) ))) {
SOURCE(54167, 29)
         (* (( (ptr) segGen←v16524)+1) ) = ((* (( (ptr) segGen←v16524)+1) ) + 1);
         };
      if (( (int)edge←v34960 >=  (int)3)) {
         goto lab←L100161;
         };
      edge←v34960 = (edge←v34960 + 1);
      goto lab←L100164;
      lab←L100161: ;
      };
SOURCE(53848, 348)
   return(segGen←v16524);
   }

static word BoxWalkSegments←P3000(slice←v16584, walkProc←v16612)
   word slice←v16584;
   word walkProc←v16612;
   {
   register ptr gf←c105064 =  (ptr) &globalframe;
   word sliceD←v16656;
   word boxData←v35004;
   word boxParts←v35032;
   /* BoxWalkSegments: */ 
SOURCE(54211, 531)
SOURCE(54211, 531)
   sliceD←v16656 = 0;
SOURCE(54306, 37)
   boxData←v35004 = XR←Narrow((* (( (ptr) slice←v16584)+1) ), (* (( (ptr) gf←c105064)+25) ));
SOURCE(54345, 95)
   boxParts←v35032 = XR←NewObject(36, (* (( (ptr) gf←c105064)+28) ));
SOURCE(54442, 148)
   {
      register word i←v35076 = 0;
      lab←L100168: ;
SOURCE(54466, 124)
      {
         word var←c99080;
         var←c99080 = (word) ( *( (fPt) ((*  (ptr) walkProc←v16612 ))))((* ((( (ptr) boxData←v35004)+36)+BCK(i←v35076, 4)) ), (* (
               ( (ptr) boxData←v35004)+1) ), walkProc←v16612);
         (* (( (ptr) boxParts←v35032)+((i←v35076 + 1) & 3)) ) = var←c99080;
         (* (( (ptr) boxParts←v35032)+BCK(i←v35076, 4)) ) = var←c99080;
         (* ((( (ptr) boxParts←v35032)+4)+BCK(i←v35076, 4)) ) = var←c99080;
         };
      if ((i←v35076 >= 3)) {
         goto lab←L100165;
         };
      i←v35076 = (i←v35076 + 1);
      goto lab←L100168;
      lab←L100165: ;
      };
SOURCE(54601, 86)
   if ( ( (XR←EqualWords((( (ptr) boxParts←v35032)+4), (( (ptr) gf←c105064)+283)/* var←c91656 */ , 4)) ? XR←EqualWords(boxParts←v35032, (
         ( (ptr) gf←c105064)+287)/* var←c91720 */ , 4) : 0 ) ) {
SOURCE(54665, 22)
      (* (( (ptr) boxParts←v35032)+8) ) = 1;
      };
SOURCE(54689, 53)
   {
      word pd626;
      pd626 = (* (( (ptr) (* (( (ptr) gf←c105064)+300)/* var←c91944 */  ))+8) );
      sliceD←v16656 = (word) ( *( (fPt) ((*  (ptr) pd626 ))))(slice←v16584, boxParts←v35032, pd626);
      };
SOURCE(54211, 531)
   return(sliceD←v16656);
   }

static void BoxNextPoint←P3060(formal←c0900, slice←v16716, pointGen←v16744)
   word formal←c0900;
   word slice←v16716;
   word pointGen←v16744;
   {
   register ptr gf←c105096 =  (ptr) &globalframe;
   W3 pointAndDone←v16788;
   /* BoxNextPoint: */ 
SOURCE(54748, 733)
SOURCE(54862, 619)
   if ((pointGen←v16744 == 0) || ((* (( (ptr) pointGen←v16744)+1) ) == 0)) {
SOURCE(54906, 24)
      pointAndDone←v16788.f2 = 1;
SOURCE(54932, 6)
      goto lab←L100169;
      }
   else {
SOURCE(54947, 589)
      {
         word sliceD←v35120;
         word boxData←v35148;
         word boxParts←v35176;
         register word index←v35204;
SOURCE(54949, 41)
         sliceD←v35120 = (*  (ptr) pointGen←v16744 );
SOURCE(54992, 44)
         boxData←v35148 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v35120 ))+1) ), (* (( (ptr) gf←c105096)+25) ));
SOURCE(55038, 41)
         boxParts←v35176 = XR←Narrow((* (( (ptr) sliceD←v35120)+1) ), (* (( (ptr) gf←c105096)+28) ));
SOURCE(55097, 25)
         pointAndDone←v16788.f2 = 0;
SOURCE(55124, 203)
         index←v35204 = (* (( (ptr) pointGen←v16744)+2) );
         lab←L100173: ;
         if (( (int)index←v35204 <  (int)4)) {
            }
         else {
            goto lab←L100170;
            };
SOURCE(55179, 32)
         if ((0 != (* (( (ptr) boxParts←v35176)+BCK(index←v35204, 4)) ))) {
SOURCE(55211, 4)
            goto lab←L100171;
            };
         index←v35204 = (index←v35204 + 1);
         goto lab←L100173;
         lab←L100170: ;
SOURCE(55282, 45)
         if ((0 == (* (( (ptr) boxParts←v35176)+8) ))) {
SOURCE(55310, 17)
            index←v35204 = (index←v35204 + 1);
            };
         lab←L100171: ;
SOURCE(55342, 48)
         (void) GetBoxPoint←P3120((word) &pointAndDone←v16788, boxData←v35148, index←v35204);
SOURCE(55392, 31)
         {
            word idx627;
            (* (( (ptr) pointGen←v16744)+1) ) = (
               idx627 = (word) ((* (( (ptr) pointGen←v16744)+1) ) - 1),
               SGNCK(idx627)
               );
            };
SOURCE(55425, 56)
         {
            word idx628;
            (* (( (ptr) pointGen←v16744)+2) ) = (
               idx628 = (word)  ( ((* (( (ptr) pointGen←v16744)+1) ) == 0) ? 99 : (index←v35204 + 1) ) ,
               SGNCK(idx628)
               );
            };
         };
      };
   /* removed tail goto */ 
   lab←L100169: ;
   (*  (W3Pt) formal←c0900 ) = pointAndDone←v16788;
   return;
   }

static void GetBoxPoint←P3120(formal←c0917, boxData←v16848, index←v16876)
   word formal←c0917;
   word boxData←v16848;
   word index←v16876;
   {
   register ptr gf←c105128 =  (ptr) &globalframe;
   W2 point←v16920;
   word t←v35248;
   /* GetBoxPoint: */ 
SOURCE(55543, 621)
SOURCE(55650, 37)
   t←v35248 = (* (( (ptr) boxData←v16848)+1) );
SOURCE(55689, 475)
   {
      word var←c99112;
      var←c99112 = index←v16876;
      switch (var←c99112) {
         case 0: 
SOURCE(55756, 56)
            {
               W2 var←c0907;
               {
                  W2 var←c99144;
                  var←c99144.f0 = (*  (ptr) (*  (ptr) boxData←v16848 ) );
                  var←c99144.f1 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+1) );
                  {
                     word pd629;
                     pd629 = (* (( (ptr) (* (( (ptr) gf←c105128)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd629 ))))((word) &var←c0907, t←v35248, var←c99144, pd629);
                     };
                  };
               point←v16920 = var←c0907;
               };
            break;
         case 1: 
SOURCE(55819, 56)
            {
               W2 var←c0909;
               {
                  W2 var←c99176;
                  var←c99176.f0 = (*  (ptr) (*  (ptr) boxData←v16848 ) );
                  var←c99176.f1 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+3) );
                  {
                     word pd630;
                     pd630 = (* (( (ptr) (* (( (ptr) gf←c105128)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd630 ))))((word) &var←c0909, t←v35248, var←c99176, pd630);
                     };
                  };
               point←v16920 = var←c0909;
               };
            break;
         case 2: 
SOURCE(55882, 56)
            {
               W2 var←c0911;
               {
                  W2 var←c99208;
                  var←c99208.f0 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+2) );
                  var←c99208.f1 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+3) );
                  {
                     word pd631;
                     pd631 = (* (( (ptr) (* (( (ptr) gf←c105128)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd631 ))))((word) &var←c0911, t←v35248, var←c99208, pd631);
                     };
                  };
               point←v16920 = var←c0911;
               };
            break;
         case 3: 
SOURCE(55945, 56)
            {
               W2 var←c0913;
               {
                  W2 var←c99240;
                  var←c99240.f0 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+2) );
                  var←c99240.f1 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+1) );
                  {
                     word pd632;
                     pd632 = (* (( (ptr) (* (( (ptr) gf←c105128)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd632 ))))((word) &var←c0913, t←v35248, var←c99240, pd632);
                     };
                  };
               point←v16920 = var←c0913;
               };
            break;
         case 4: 
SOURCE(56008, 104)
            {
               W2 var←c0915;
               {
                  W2 var←c99272;
                  {
                     word x633;
                     word x634;
                     word x635;
                     *(float*)&var←c99272.f0 = ((
                        x633 = (*  (ptr) (*  (ptr) boxData←v16848 ) ),  *(float*)&x633
                        ) + (
                        x634 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+2) ),  *(float*)&x634
                        )) / (
                        x635 = (*  (ptr) &fc101 ),  *(float*)&x635
                        );
                     };
                  {
                     word x636;
                     word x637;
                     word x638;
                     *(float*)&var←c99272.f1 = ((
                        x636 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+1) ),  *(float*)&x636
                        ) + (
                        x637 = (* (( (ptr) (*  (ptr) boxData←v16848 ))+3) ),  *(float*)&x637
                        )) / (
                        x638 = (*  (ptr) &fc101 ),  *(float*)&x638
                        );
                     };
                  {
                     word pd639;
                     pd639 = (* (( (ptr) (* (( (ptr) gf←c105128)+301)/* var←c91976 */  ))+39) );
                     (void) ( *( (fPt) ((*  (ptr) pd639 ))))((word) &var←c0915, t←v35248, var←c99272, pd639);
                     };
                  };
               point←v16920 = var←c0915;
               };
            break;
         default: 
SOURCE(56125, 39)
            {
               word var←c0916;
               var←c0916 = (* (( (ptr) gf←c105128)+33) );
               (void) (XR←RaiseSignal((* (( (ptr) gf←c105128)+4)/* Problem←v5660 */  ), 0, (word) &var←c0916));
               };
            break;
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0917 ) = point←v16920;
   return;
   }

static void BoxNextPointPair←P3180(formal←c0944, slice←v16980, pointPairGen←v17008)
   word formal←c0944;
   word slice←v16980;
   word pointPairGen←v17008;
   {
   register ptr gf←c105160 =  (ptr) &globalframe;
   W5 pointPairAndDone←v17052;
   /* BoxNextPointPair: */ 
SOURCE(56170, 1610)
SOURCE(56304, 1476)
   if ((pointPairGen←v17008 == 0) || ((* (( (ptr) pointPairGen←v17008)+1) ) == 0)) {
SOURCE(56356, 28)
      pointPairAndDone←v17052.f4 = 1;
SOURCE(56386, 6)
      goto lab←L100175;
      }
   else {
SOURCE(56401, 1433)
      {
         word sliceD←v35292;
         word boxData←v35320;
         word boxParts←v35348;
         word t←v35376;
         register word index←v35404 =  (word) -1;
SOURCE(56403, 45)
         sliceD←v35292 = (*  (ptr) pointPairGen←v17008 );
SOURCE(56450, 44)
         boxData←v35320 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v35292 ))+1) ), (* (( (ptr) gf←c105160)+25) ));
SOURCE(56496, 41)
         boxParts←v35348 = XR←Narrow((* (( (ptr) sliceD←v35292)+1) ), (* (( (ptr) gf←c105160)+28) ));
SOURCE(56539, 37)
         t←v35376 = (* (( (ptr) boxData←v35320)+1) );
SOURCE(56599, 29)
         pointPairAndDone←v17052.f4 = 0;
SOURCE(56630, 89)
         index←v35404 = (* (( (ptr) pointPairGen←v17008)+2) );
         lab←L100179: ;
         if (( (int)index←v35404 <  (int)4)) {
            }
         else {
            goto lab←L100176;
            };
SOURCE(56689, 30)
         if ((0 != (* ((( (ptr) boxParts←v35348)+4)+BCK(index←v35404, 4)) ))) {
SOURCE(56719, 4)
            goto lab←L100177;
            };
         index←v35404 = (index←v35404 + 1);
         goto lab←L100179;
         lab←L100176: ;
         lab←L100177: ;
SOURCE(56777, 894)
         {
            word var←c99304;
            var←c99304 = index←v35404;
            switch (var←c99304) {
               case 0: 
SOURCE(56844, 91)
                  {
                     W2 var←c0928;
                     {
                        W2 var←c99336;
                        var←c99336.f0 = (*  (ptr) (*  (ptr) boxData←v35320 ) );
                        var←c99336.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+1) );
                        {
                           word pd640;
                           pd640 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd640 ))))((word) &var←c0928, t←v35376, var←c99336, pd640);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v17052 ) = var←c0928;
                     };
SOURCE(56937, 91)
                  {
                     W2 var←c0930;
                     {
                        W2 var←c99368;
                        var←c99368.f0 = (*  (ptr) (*  (ptr) boxData←v35320 ) );
                        var←c99368.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+3) );
                        {
                           word pd641;
                           pd641 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd641 ))))((word) &var←c0930, t←v35376, var←c99368, pd641);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v17052)+2) ) = var←c0930;
                     };
                  break;
               case 1: 
SOURCE(57040, 91)
                  {
                     W2 var←c0932;
                     {
                        W2 var←c99400;
                        var←c99400.f0 = (*  (ptr) (*  (ptr) boxData←v35320 ) );
                        var←c99400.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+3) );
                        {
                           word pd642;
                           pd642 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd642 ))))((word) &var←c0932, t←v35376, var←c99400, pd642);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v17052 ) = var←c0932;
                     };
SOURCE(57133, 91)
                  {
                     W2 var←c0934;
                     {
                        W2 var←c99432;
                        var←c99432.f0 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+2) );
                        var←c99432.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+3) );
                        {
                           word pd643;
                           pd643 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd643 ))))((word) &var←c0934, t←v35376, var←c99432, pd643);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v17052)+2) ) = var←c0934;
                     };
                  break;
               case 2: 
SOURCE(57236, 91)
                  {
                     W2 var←c0936;
                     {
                        W2 var←c99464;
                        var←c99464.f0 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+2) );
                        var←c99464.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+3) );
                        {
                           word pd644;
                           pd644 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd644 ))))((word) &var←c0936, t←v35376, var←c99464, pd644);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v17052 ) = var←c0936;
                     };
SOURCE(57329, 91)
                  {
                     W2 var←c0938;
                     {
                        W2 var←c99496;
                        var←c99496.f0 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+2) );
                        var←c99496.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+1) );
                        {
                           word pd645;
                           pd645 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd645 ))))((word) &var←c0938, t←v35376, var←c99496, pd645);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v17052)+2) ) = var←c0938;
                     };
                  break;
               case 3: 
SOURCE(57432, 91)
                  {
                     W2 var←c0940;
                     {
                        W2 var←c99528;
                        var←c99528.f0 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+2) );
                        var←c99528.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+1) );
                        {
                           word pd646;
                           pd646 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd646 ))))((word) &var←c0940, t←v35376, var←c99528, pd646);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v17052 ) = var←c0940;
                     };
SOURCE(57525, 91)
                  {
                     W2 var←c0942;
                     {
                        W2 var←c99560;
                        var←c99560.f0 = (*  (ptr) (*  (ptr) boxData←v35320 ) );
                        var←c99560.f1 = (* (( (ptr) (*  (ptr) boxData←v35320 ))+1) );
                        {
                           word pd647;
                           pd647 = (* (( (ptr) (* (( (ptr) gf←c105160)+301)/* var←c91976 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd647 ))))((word) &var←c0942, t←v35376, var←c99560, pd647);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v17052)+2) ) = var←c0942;
                     };
                  break;
               default: 
SOURCE(57632, 39)
                  {
                     word var←c0943;
                     var←c0943 = (* (( (ptr) gf←c105160)+33) );
                     (void) (XR←RaiseSignal((* (( (ptr) gf←c105160)+4)/* Problem←v5660 */  ), 0, (word) &var←c0943));
                     };
                  break;
               };
            };
SOURCE(57673, 41)
         {
            word idx648;
            (* (( (ptr) pointPairGen←v17008)+1) ) = (
               idx648 = (word) ((* (( (ptr) pointPairGen←v17008)+1) ) - 1),
               SGNCK(idx648)
               );
            };
SOURCE(57716, 64)
         {
            word idx649;
            (* (( (ptr) pointPairGen←v17008)+2) ) = (
               idx649 = (word)  ( ((* (( (ptr) pointPairGen←v17008)+1) ) == 0) ? 99 : (index←v35404 + 1) ) ,
               SGNCK(idx649)
               );
            };
         };
      };
   /* removed tail goto */ 
   lab←L100175: ;
   (*  (W5Pt) formal←c0944 ) = pointPairAndDone←v17052;
   return;
   }

static void BoxNextSegment←P3240(formal←c0953, slice←v17112, segGen←v17140)
   word formal←c0953;
   word slice←v17112;
   word segGen←v17140;
   {
   register ptr gf←c105192 =  (ptr) &globalframe;
   word seg←v17184;
   word transform←v17212;
   /* BoxNextSegment: */ 
SOURCE(57841, 620)
SOURCE(57841, 620)
   seg←v17184 = 0;
SOURCE(57841, 620)
   transform←v17212 = 0;
SOURCE(57964, 497)
   if ((segGen←v17140 == 0) || ((* (( (ptr) segGen←v17140)+1) ) == 0)) {
SOURCE(58002, 22)
      seg←v17184 = 0;
      transform←v17212 = 0;
      goto lab←L100180;
      }
   else {
SOURCE(58024, 494)
      {
         word boxData←v35448;
         word boxParts←v35476;
         register word index←v35504 =  (word) -1;
SOURCE(58026, 51)
         boxData←v35448 = XR←Narrow((* (( (ptr) (*  (ptr) (* (( (ptr) segGen←v17140)+6) ) ))+1) ), (* (( (ptr) gf←c105192)+25) ));
SOURCE(58079, 48)
         boxParts←v35476 = XR←Narrow((* (( (ptr) (* (( (ptr) segGen←v17140)+6) ))+1) ), (* (( (ptr) gf←c105192)+28) ));
SOURCE(58150, 83)
         index←v35504 = (* (( (ptr) segGen←v17140)+2) );
         lab←L100184: ;
         if (( (int)index←v35504 <  (int)4)) {
            }
         else {
            goto lab←L100181;
            };
SOURCE(58203, 30)
         if ((0 != (* ((( (ptr) boxParts←v35476)+4)+BCK(index←v35504, 4)) ))) {
SOURCE(58233, 4)
            goto lab←L100182;
            };
         index←v35504 = (index←v35504 + 1);
         goto lab←L100184;
         lab←L100181: ;
         lab←L100182: ;
SOURCE(58291, 56)
         if (( (int)index←v35504 >=  (int)4)) {
SOURCE(58308, 39)
            {
               word var←c0952;
               var←c0952 = (* (( (ptr) gf←c105192)+33) );
               (void) (XR←RaiseSignal((* (( (ptr) gf←c105192)+4)/* Problem←v5660 */  ), 0, (word) &var←c0952));
               };
            };
SOURCE(58349, 29)
         seg←v17184 = (* ((( (ptr) boxData←v35448)+36)+BCK(index←v35504, 4)) );
SOURCE(58380, 27)
         {
            word idx650;
            (* (( (ptr) segGen←v17140)+1) ) = (
               idx650 = (word) ((* (( (ptr) segGen←v17140)+1) ) - 1),
               SGNCK(idx650)
               );
            };
SOURCE(58409, 52)
         {
            word idx651;
            (* (( (ptr) segGen←v17140)+2) ) = (
               idx651 = (word)  ( ((* (( (ptr) segGen←v17140)+1) ) == 0) ? 99 : (index←v35504 + 1) ) ,
               SGNCK(idx651)
               );
            };
         };
      };
   /* removed tail goto */ 
   lab←L100180: ;
   (*  (ptr) formal←c0953 ) = seg←v17184;
   (* (( (ptr) formal←c0953)+1) ) = transform←v17212;
   return;
   }

static word BoxIsEmptyParts←P3300(sliceD←v17272)
   word sliceD←v17272;
   {
   register ptr gf←c105224 =  (ptr) &globalframe;
   word var←c17316;
   word boxParts←v35548;
   /* BoxIsEmptyParts: */ 
SOURCE(58526, 143)
SOURCE(58526, 143)
   var←c17316 = 0;
SOURCE(58601, 41)
   boxParts←v35548 = XR←Narrow((* (( (ptr) sliceD←v17272)+1) ), (* (( (ptr) gf←c105224)+28) ));
SOURCE(58644, 25)
   return((word) IsEmpty←P2580(boxParts←v35548));
   }

static word BoxIsCompleteParts←P3360(sliceD←v17376)
   word sliceD←v17376;
   {
   register ptr gf←c105256 =  (ptr) &globalframe;
   word var←c17420;
   word boxParts←v35592;
   /* BoxIsCompleteParts: */ 
SOURCE(58675, 149)
SOURCE(58675, 149)
   var←c17420 = 0;
SOURCE(58753, 41)
   boxParts←v35592 = XR←Narrow((* (( (ptr) sliceD←v17376)+1) ), (* (( (ptr) gf←c105256)+28) ));
SOURCE(58796, 28)
   return((word) IsComplete←P2520(boxParts←v35592));
   }

static void NearestBoxPoint←P3420(formal←c0970, slice←v17480, point←v17508)
   word formal←c0970;
   word slice←v17480;
   W2 point←v17508;
   {
   register ptr gf←c105288 =  (ptr) &globalframe;
   word index←v17552;
   word center←v17580;
   word boxHitData←v35636 = 0;
   word success←v35664;
   word hitData←v35692 = 0;
   word sliceD←v35720;
   /* NearestBoxPoint: */ 
SOURCE(58830, 493)
SOURCE(58830, 493)
   center←v17580 = 0;
SOURCE(58989, 56)
   sliceD←v35720 = (word) BoxNewParts←P3480(slice←v17480, 0, 6);
SOURCE(59047, 123)
   {
      W7 var←c99656;
      (void) BoxClosestPoint←P4020((word) &var←c99656, sliceD←v35720, point←v17508, (*  (ptr) &fc652 ));
      success←v35664 = var←c99656.f6;
      hitData←v35692 = var←c99656.f5;
      };
SOURCE(59172, 20)
   if ((0 == success←v35664)) {
SOURCE(59192, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(59199, 28)
   boxHitData←v35636 = XR←Narrow(hitData←v35692, (* (( (ptr) gf←c105288)+15) ));
SOURCE(59229, 31)
   center←v17580 =  (unsigned) ( (int)((* (( (ptr) boxHitData←v35636)+2) ) - 1) >  (int) (word) -1);
SOURCE(59262, 25)
   index←v17552 = (*  (ptr) boxHitData←v35636 );
SOURCE(59289, 34)
   if ( ( ( (int)(index←v17552 - 1) ==  (int) (word) -1) ? (0 == center←v17580) : 0 ) ) {
SOURCE(59323, 5)
      (void) XR←RaiseUnnamedError();
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0970 ) = index←v17552;
   (* (( (ptr) formal←c0970)+1) ) = center←v17580;
   return;
   }

static word BoxNewParts←P3480(slice←v17660, hitData←v17688, mode←v17716)
   word slice←v17660;
   word hitData←v17688;
   word mode←v17716;
   {
   register ptr gf←c105320 =  (ptr) &globalframe;
   word sliceD←v17772;
   word boxHitData←v35776;
   word boxParts←v35804 = 0;
   /* BoxNewParts: */ 
SOURCE(59334, 1333)
SOURCE(59334, 1333)
   sliceD←v17772 = 0;
SOURCE(59441, 40)
   boxHitData←v35776 = XR←Narrow(hitData←v17688, (* (( (ptr) gf←c105320)+15) ));
SOURCE(59503, 84)
   boxParts←v35804 = XR←NewObject(36, (* (( (ptr) gf←c105320)+28) ));
SOURCE(59589, 968)
   {
      word var←c99720;
      var←c99720 = mode←v17716;
      switch (var←c99720) {
         case 0: 
SOURCE(59619, 205)
            if (( (int)((*  (ptr) boxHitData←v35776 ) - 1) !=  (int) (word) -1)) {
SOURCE(59648, 48)
               {
                  word idx653;
                  (* (( (ptr) boxParts←v35804)+(
                        idx653 = (word) ((*  (ptr) boxHitData←v35776 ) - 1),
                        BCK(idx653, 4)
                        )) ) = 1;
                  };
               }
            else {
SOURCE(59696, 128)
               if (( (int)((* (( (ptr) boxHitData←v35776)+2) ) - 1) !=  (int) (word) -1)) {
SOURCE(59725, 28)
                  (* (( (ptr) boxParts←v35804)+8) ) = 1;
                  }
               else {
SOURCE(59753, 71)
                  if (( (int)((* (( (ptr) boxHitData←v35776)+1) ) - 1) !=  (int) (word) -1)) {
SOURCE(59780, 44)
                     {
                        word idx654;
                        (* ((( (ptr) boxParts←v35804)+4)+(
/*1*/   idx654 = (word) ((* (( (ptr) boxHitData←v35776)+1) ) - 1),
/*1*/   BCK(idx654, 4)
/*1*/   )) ) = 1;
                        };
                     }
                  else {
SOURCE(59824, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            break;
         case 1: 
SOURCE(59845, 329)
            if (( (int)((*  (ptr) boxHitData←v35776 ) - 1) !=  (int) (word) -1)) {
SOURCE(59874, 48)
               {
                  word idx655;
                  (* (( (ptr) boxParts←v35804)+(
                        idx655 = (word) ((*  (ptr) boxHitData←v35776 ) - 1),
                        BCK(idx655, 4)
                        )) ) = 1;
                  };
               }
            else {
SOURCE(59922, 252)
               if (( (int)((* (( (ptr) boxHitData←v35776)+2) ) - 1) !=  (int) (word) -1)) {
SOURCE(59951, 28)
                  (* (( (ptr) boxParts←v35804)+8) ) = 1;
                  }
               else {
SOURCE(59979, 195)
                  if (( (int)((* (( (ptr) boxHitData←v35776)+1) ) - 1) !=  (int) (word) -1)) {
SOURCE(60006, 170)
                     {
                        word index←v35848;
                        word center←v35876;
SOURCE(60038, 61)
                        {
                           W2 var←c99752;
                           (void) NearestBoxPoint←P3420((word) &var←c99752, slice←v17660, (*  (W2Pt) (( (ptr) boxHitData←v35776)+3) ));
                           center←v35876 = var←c99752.f1;
                           index←v35848 = var←c99752.f0;
                           };
SOURCE(60101, 73)
                        if ((0 != center←v35876)) {
SOURCE(60116, 28)
                           (* (( (ptr) boxParts←v35804)+8) ) = 1;
                           }
                        else {
SOURCE(60144, 30)
                           (* (( (ptr) boxParts←v35804)+BCK((index←v35848 - 1), 4)) ) = 1;
                           };
                        };
                     };
                  };
               };
            break;
         case 3: 
SOURCE(60195, 232)
            if (( (int)((* (( (ptr) boxHitData←v35776)+2) ) - 1) !=  (int) (word) -1)) {
SOURCE(60224, 28)
               (void) MakeComplete←P2460(boxParts←v35804);
               }
            else {
SOURCE(60252, 175)
               if (( (int)((* (( (ptr) boxHitData←v35776)+1) ) - 1) !=  (int) (word) -1)) {
SOURCE(60279, 150)
                  {
                     word lo←v35940;
                     word hi←v35968;
SOURCE(60294, 38)
                     {
                        word idx656;
                        (* ((( (ptr) boxParts←v35804)+4)+(
/*1*/   idx656 = (word) ((* (( (ptr) boxHitData←v35776)+1) ) - 1),
/*1*/   BCK(idx656, 4)
/*1*/   )) ) = 1;
                        };
SOURCE(60334, 41)
                     {
                        W2 var←c99784;
                        {
                           word idx657;
                           (void) CornersOfEdge←P3660((word) &var←c99784, (
/*1*/      idx657 = (word) ((* (( (ptr) boxHitData←v35776)+1) ) - 1),
/*1*/      SGNCK(idx657)
/*1*/      ));
                           };
                        hi←v35968 = var←c99784.f1;
                        lo←v35940 = var←c99784.f0;
                        };
SOURCE(60377, 50)
                     (* (( (ptr) boxParts←v35804)+BCK(hi←v35968, 4)) ) = 1;
                     (* (( (ptr) boxParts←v35804)+BCK(lo←v35940, 4)) ) = 1;
                     };
                  };
               };
            break;
         case 2: 
SOURCE(60453, 28)
            XR←FillWords(&(* (W4Pt) (boxParts←v35804)), 4, 1);
SOURCE(60483, 22)
            (* (( (ptr) boxParts←v35804)+8) ) = 1;
            break;
         case 5: case 7: case 6: 
SOURCE(60535, 22)
            (void) MakeComplete←P2460(boxParts←v35804);
            break;
         case 8: 
            break;
         default: 
SOURCE(60607, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(60614, 53)
   {
      word pd658;
      pd658 = (* (( (ptr) (* (( (ptr) gf←c105320)+300)/* var←c91944 */  ))+8) );
      sliceD←v17772 = (word) ( *( (fPt) ((*  (ptr) pd658 ))))(slice←v17660, boxParts←v35804, pd658);
      };
SOURCE(59334, 1333)
   return(sliceD←v17772);
   }

static word BoxUnionParts←P3540(partsA←v17832, partsB←v17860)
   word partsA←v17832;
   word partsB←v17860;
   {
   register ptr gf←c105352 =  (ptr) &globalframe;
   word aPlusB←v17904;
   word boxPartsA←v36012;
   word boxPartsB←v36040;
   word newParts←v36068 = 0;
   /* BoxUnionParts: */ 
SOURCE(60674, 854)
SOURCE(60674, 854)
   aPlusB←v17904 = 0;
SOURCE(60783, 42)
   boxPartsA←v36012 = XR←Narrow((* (( (ptr) partsA←v17832)+1) ), (* (( (ptr) gf←c105352)+28) ));
SOURCE(60827, 42)
   boxPartsB←v36040 = XR←Narrow((* (( (ptr) partsB←v17860)+1) ), (* (( (ptr) gf←c105352)+28) ));
SOURCE(60891, 41)
   if (((* (( (ptr) partsA←v17832)+1) ) == 0)) {
SOURCE(60918, 14)
      return(partsB←v17860);
      };
SOURCE(60934, 41)
   if (((* (( (ptr) partsB←v17860)+1) ) == 0)) {
SOURCE(60961, 14)
      return(partsA←v17832);
      };
SOURCE(60977, 41)
   if ((0 != (word) IsEmpty←P2580(boxPartsA←v36012))) {
SOURCE(61004, 14)
      return(partsB←v17860);
      };
SOURCE(61020, 41)
   if ((0 != (word) IsEmpty←P2580(boxPartsB←v36040))) {
SOURCE(61047, 14)
      return(partsA←v17832);
      };
SOURCE(61063, 44)
   if ((0 != (word) IsComplete←P2520(boxPartsA←v36012))) {
SOURCE(61093, 14)
      return(partsA←v17832);
      };
SOURCE(61109, 44)
   if ((0 != (word) IsComplete←P2520(boxPartsB←v36040))) {
SOURCE(61139, 14)
      return(partsB←v17860);
      };
SOURCE(61156, 87)
   newParts←v36068 = XR←NewObject(36, (* (( (ptr) gf←c105352)+28) ));
SOURCE(61245, 156)
   {
      register word i←v36112 = 0;
      if (( (int)i←v36112 >  (int)3)) {
         goto lab←L100186;
         };
      lab←L100189: ;
SOURCE(61273, 66)
      if ((0 != (* (( (ptr) boxPartsA←v36012)+BCK(i←v36112, 4)) ))) {
         (* (( (ptr) newParts←v36068)+BCK(i←v36112, 4)) ) =  (unsigned) 1;
         }
      else {
         (* (( (ptr) newParts←v36068)+BCK(i←v36112, 4)) ) =  (unsigned) (0 != (* (( (ptr) boxPartsB←v36040)+BCK(i←v36112, 4)) ));
         };
SOURCE(61341, 60)
      if ((0 != (* ((( (ptr) boxPartsA←v36012)+4)+BCK(i←v36112, 4)) ))) {
         (* ((( (ptr) newParts←v36068)+4)+BCK(i←v36112, 4)) ) =  (unsigned) 1;
         }
      else {
         (* ((( (ptr) newParts←v36068)+4)+BCK(i←v36112, 4)) ) =  (unsigned) (0 != (* ((( (ptr) boxPartsB←v36040)+4)+BCK(i←v36112, 4)
            ) ));
         };
      if (( (int)i←v36112 >=  (int)3)) {
         goto lab←L100186;
         };
      i←v36112 = (i←v36112 + 1);
      goto lab←L100189;
      lab←L100186: ;
      };
SOURCE(61412, 54)
   if ((0 != (* (( (ptr) boxPartsA←v36012)+8) ))) {
      (* (( (ptr) newParts←v36068)+8) ) =  (unsigned) 1;
      }
   else {
      (* (( (ptr) newParts←v36068)+8) ) =  (unsigned) (0 != (* (( (ptr) boxPartsB←v36040)+8) ));
      };
SOURCE(61468, 60)
   {
      word pd659;
      pd659 = (* (( (ptr) (* (( (ptr) gf←c105352)+300)/* var←c91944 */  ))+8) );
      aPlusB←v17904 = (word) ( *( (fPt) ((*  (ptr) pd659 ))))((*  (ptr) partsA←v17832 ), newParts←v36068, pd659);
      };
SOURCE(60674, 854)
   return(aPlusB←v17904);
   }

static word BoxDiffParts←P3600(partsA←v17964, partsB←v17992)
   word partsA←v17964;
   word partsB←v17992;
   {
   register ptr gf←c105384 =  (ptr) &globalframe;
   word aMinusB←v18036;
   word boxPartsA←v36156;
   word boxPartsB←v36184;
   word newParts←v36212 = 0;
   /* BoxDiffParts: */ 
SOURCE(61534, 747)
SOURCE(61534, 747)
   aMinusB←v18036 = 0;
SOURCE(61643, 42)
   boxPartsA←v36156 = XR←Narrow((* (( (ptr) partsA←v17964)+1) ), (* (( (ptr) gf←c105384)+28) ));
SOURCE(61687, 42)
   boxPartsB←v36184 = XR←Narrow((* (( (ptr) partsB←v17992)+1) ), (* (( (ptr) gf←c105384)+28) ));
SOURCE(61751, 37)
   if ((partsA←v17964 == 0) || (partsB←v17992 == 0)) {
SOURCE(61788, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(61795, 63)
   if (((* (( (ptr) partsA←v17964)+1) ) == 0) || ((* (( (ptr) partsB←v17992)+1) ) == 0)) {
SOURCE(61844, 14)
      return(partsA←v17964);
      };
SOURCE(61860, 87)
   newParts←v36212 = XR←NewObject(36, (* (( (ptr) gf←c105384)+28) ));
SOURCE(61949, 188)
   {
      register word i←v36256 = 0;
      if (( (int)i←v36256 >  (int)3)) {
         goto lab←L100190;
         };
      lab←L100193: ;
SOURCE(61977, 82)
      if ((0 != (* (( (ptr) boxPartsB←v36184)+BCK(i←v36256, 4)) ))) {
         (* (( (ptr) newParts←v36212)+BCK(i←v36256, 4)) ) = 0;
         }
      else {
         (* (( (ptr) newParts←v36212)+BCK(i←v36256, 4)) ) = (* (( (ptr) boxPartsA←v36156)+BCK(i←v36256, 4)) );
         };
SOURCE(62061, 76)
      if ((0 != (* ((( (ptr) boxPartsB←v36184)+4)+BCK(i←v36256, 4)) ))) {
         (* ((( (ptr) newParts←v36212)+4)+BCK(i←v36256, 4)) ) = 0;
         }
      else {
         (* ((( (ptr) newParts←v36212)+4)+BCK(i←v36256, 4)) ) = (* ((( (ptr) boxPartsA←v36156)+4)+BCK(i←v36256, 4)) );
         };
      if (( (int)i←v36256 >=  (int)3)) {
         goto lab←L100190;
         };
      i←v36256 = (i←v36256 + 1);
      goto lab←L100193;
      lab←L100190: ;
      };
SOURCE(62148, 70)
   if ((0 != (* (( (ptr) boxPartsB←v36184)+8) ))) {
      (* (( (ptr) newParts←v36212)+8) ) = 0;
      }
   else {
      (* (( (ptr) newParts←v36212)+8) ) = (* (( (ptr) boxPartsA←v36156)+8) );
      };
SOURCE(62220, 61)
   {
      word pd660;
      pd660 = (* (( (ptr) (* (( (ptr) gf←c105384)+300)/* var←c91944 */  ))+8) );
      aMinusB←v18036 = (word) ( *( (fPt) ((*  (ptr) pd660 ))))((*  (ptr) partsA←v17964 ), newParts←v36212, pd660);
      };
SOURCE(61534, 747)
   return(aMinusB←v18036);
   }

static void CornersOfEdge←P3660(formal←c01004, edge←v18096)
   word formal←c01004;
   word edge←v18096;
   {
   word lo←v18140;
   word hi←v18168;
   /* CornersOfEdge: */ 
SOURCE(62287, 121)
SOURCE(62345, 63)
   {
      word var←c99880;
      var←c99880 = edge←v18096;
      if ((var←c99880 <= 3)) {
SOURCE(62376, 9)
         lo←v18140 = edge←v18096;
SOURCE(62387, 21)
         hi←v18168 = ((edge←v18096 + 1) & 3);
         }
      else {
SOURCE(62422, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c01004 ) = lo←v18140;
   (* (( (ptr) formal←c01004)+1) ) = hi←v18168;
   return;
   }

static word OppositeCorner←P3720(corner←v18228)
   word corner←v18228;
   {
   word opCorner←v18272;
   /* OppositeCorner: */ 
SOURCE(62432, 124)
SOURCE(62495, 61)
   {
      word var←c99912;
      var←c99912 = corner←v18228;
      if ((var←c99912 <= 3)) {
SOURCE(62527, 29)
         opCorner←v18272 = ((corner←v18228 + 2) & 3);
         }
      else {
SOURCE(62569, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(62432, 124)
   return(opCorner←v18272);
   }

static void BoxPoint←P3780(formal←c01016, box←v18332, corner←v18360)
   word formal←c01016;
   word box←v18332;
   word corner←v18360;
   {
   W2 point←v18404;
   /* BoxPoint: */ 
SOURCE(62579, 214)
SOURCE(62650, 143)
   {
      word var←c99944;
      var←c99944 = corner←v18360;
      switch (var←c99944) {
         case 0: 
            point←v18404.f0 = (*  (ptr) box←v18332 );
            point←v18404.f1 = (* (( (ptr) box←v18332)+1) );
            break;
         case 1: 
            point←v18404.f0 = (*  (ptr) box←v18332 );
            point←v18404.f1 = (* (( (ptr) box←v18332)+3) );
            break;
         case 2: 
            point←v18404.f0 = (* (( (ptr) box←v18332)+2) );
            point←v18404.f1 = (* (( (ptr) box←v18332)+3) );
            break;
         case 3: 
            point←v18404.f0 = (* (( (ptr) box←v18332)+2) );
            point←v18404.f1 = (* (( (ptr) box←v18332)+1) );
            break;
         default: 
            point←v18404 = (*  (W2Pt) (
               XR←RaiseUnnamedError(), &dummy661
               ) );
            break;
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c01016 ) = point←v18404;
   return;
   }

static void BoxMovingParts←P3840(formal←c01052, slice←v18464, selectedParts←v18492, editConstraints←v18520, bezierDrag←v18548)
   word formal←c01052;
   word slice←v18464;
   word selectedParts←v18492;
   word editConstraints←v18520;
   W5 bezierDrag←v18548;
   {
   register ptr gf←c105416 =  (ptr) &globalframe;
   word background←v18592;
   word overlay←v18620;
   word rubber←v18648;
   word drag←v18676;
   word boxParts←v36300;
   word boxData←v36328;
   word overlayParts←v36356 = 0;
   word filled←v36384;
   word nullD←v36412;
   word newParts←v36440 = 0;
   word cornerCount←v36468;
   word cornerNum←v36496;
   word edgeCount←v36524;
   word edgeNum←v36552;
   word centerCount←v36580;
   /* BoxMovingParts: */ 
SOURCE(62799, 2319)
SOURCE(62799, 2319)
   background←v18592 = 0;
SOURCE(62799, 2319)
   overlay←v18620 = 0;
SOURCE(62799, 2319)
   rubber←v18648 = 0;
SOURCE(62799, 2319)
   drag←v18676 = 0;
SOURCE(63008, 42)
   boxParts←v36300 = XR←Narrow(selectedParts←v18492, (* (( (ptr) gf←c105416)+28) ));
SOURCE(63052, 37)
   boxData←v36328 = XR←Narrow((* (( (ptr) slice←v18464)+1) ), (* (( (ptr) gf←c105416)+25) ));
SOURCE(63115, 38)
   filled←v36384 =  (unsigned) ((* (( (ptr) boxData←v36328)+5) ) != 0);
SOURCE(63155, 45)
   nullD←v36412 = (* (( (ptr) slice←v18464)+11) );
SOURCE(63275, 55)
   centerCount←v36580 =  ( (0 != (* (( (ptr) boxParts←v36300)+8) )) ? 1 : 0 ) ;
SOURCE(63333, 80)
   if ((0 != (word) IsEmpty←P2580(boxParts←v36300))) {
SOURCE(63361, 44)
      {
         word var←c100104;
         var←c100104 = nullD←v36412;
         drag←v18676 = nullD←v36412;
         rubber←v18648 = var←c100104;
         overlay←v18620 = var←c100104;
         background←v18592 = var←c100104;
         };
SOURCE(63407, 6)
      goto lab←L100196;
      };
SOURCE(63418, 129)
   if ((0 != (word) IsComplete←P2520(boxParts←v36300))) {
SOURCE(63449, 37)
      {
         word var←c100136;
         var←c100136 = nullD←v36412;
         rubber←v18648 = nullD←v36412;
         overlay←v18620 = var←c100136;
         background←v18592 = var←c100136;
         };
SOURCE(63488, 51)
      {
         word pd662;
         pd662 = (* (( (ptr) (* (( (ptr) gf←c105416)+300)/* var←c91944 */  ))+8) );
         drag←v18676 = (word) ( *( (fPt) ((*  (ptr) pd662 ))))(slice←v18464, boxParts←v36300, pd662);
         };
SOURCE(63541, 6)
      goto lab←L100196;
      };
SOURCE(63552, 57)
   {
      W2 var←c100168;
      (void) CountCorners←P2640((word) &var←c100168, (*  (W4Pt) boxParts←v36300 ));
      cornerNum←v36496 = var←c100168.f1;
      cornerCount←v36468 = var←c100168.f0;
      };
SOURCE(63611, 49)
   {
      W2 var←c100200;
      (void) CountEdges←P2700((word) &var←c100200, (*  (W4Pt) (( (ptr) boxParts←v36300)+4) ));
      edgeNum←v36552 = var←c100200.f1;
      edgeCount←v36524 = var←c100200.f0;
      };
SOURCE(63663, 79)
   {
      word var←c100232;
      var←c100232 = XR←NewObject(36, (* (( (ptr) gf←c105416)+28) ));
      XR←FillWords(&(* (W4Pt) (var←c100232)), 4, 1);
      XR←FillWords(&(* (W4Pt) ((( (ptr) var←c100232)+4))), 4, 1);
      (* (( (ptr) var←c100232)+8) ) = 1;
      newParts←v36440 = var←c100232;
      };
SOURCE(63744, 1374)
SOURCE(63750, 62)
   if ((( (int)edgeCount←v36524 >=  (int)2) || ( (int)cornerCount←v36468 >=  (int)3)) || ( (int)centerCount←v36580 >  (int)0)) {
SOURCE(63812, 20)
      goto lab←L100197;
      };
SOURCE(63834, 1157)
   if (( (int)edgeCount←v36524 ==  (int)1)) {
SOURCE(63856, 571)
      {
         word lo←v36624;
         word hi←v36652;
SOURCE(63871, 24)
         if (( (int)cornerCount←v36468 !=  (int)2)) {
SOURCE(63895, 20)
            goto lab←L100197;
            };
SOURCE(63917, 33)
         {
            W2 var←c100264;
            (void) CornersOfEdge←P3660((word) &var←c100264, SGNCK(edgeNum←v36552));
            hi←v36652 = var←c100264.f1;
            lo←v36624 = var←c100264.f0;
            };
SOURCE(63952, 61)
         if ((0 == (* (( (ptr) boxParts←v36300)+BCK(lo←v36624, 4)) ))) { goto then0663;};
         if ((0 == (* (( (ptr) boxParts←v36300)+BCK(hi←v36652, 4)) ))) {
            then0663: ;
SOURCE(64013, 20)
            goto lab←L100197;
            };
SOURCE(64035, 387)
         {
            word wholeD←v36696;
SOURCE(64041, 64)
            {
               word pd664;
               pd664 = (* (( (ptr) (* (( (ptr) gf←c105416)+305)/* var←c92456 */  ))+29) );
               wholeD←v36696 = (word) ( *( (fPt) ((*  (ptr) pd664 ))))(slice←v18464, 0, 6, pd664);
               };
SOURCE(64107, 41)
            {
               word idx665;
               (* ((( (ptr) newParts←v36440)+4)+(
                     idx665 = (word) IOP2( % ,  (int)(edgeNum←v36552 + 2),  (int)4),
                     BCK(idx665, 4)
                     )) ) = 0;
               };
SOURCE(64150, 43)
            {
               word idx666;
               (* (( (ptr) newParts←v36440)+(
                     idx666 = (word) IOP2( % ,  (int)(edgeNum←v36552 + 2),  (int)4),
                     BCK(idx666, 4)
                     )) ) = 0;
               };
SOURCE(64195, 43)
            {
               word idx667;
               (* (( (ptr) newParts←v36440)+(
                     idx667 = (word) IOP2( % ,  (int)(edgeNum←v36552 + 3),  (int)4),
                     BCK(idx667, 4)
                     )) ) = 0;
               };
SOURCE(64240, 25)
            background←v18592 = nullD←v36412;
            drag←v18676 = nullD←v36412;
SOURCE(64267, 53)
            {
               word pd668;
               pd668 = (* (( (ptr) (* (( (ptr) gf←c105416)+300)/* var←c91944 */  ))+8) );
               rubber←v18648 = (word) ( *( (fPt) ((*  (ptr) pd668 ))))(slice←v18464, newParts←v36440, pd668);
               };
SOURCE(64322, 38)
            overlay←v18620 = (word) BoxDiffParts←P3600(wholeD←v36696, rubber←v18648);
SOURCE(64362, 57)
            if ((0 == filled←v36384)) {
SOURCE(64382, 20)
               background←v18592 = overlay←v18620;
SOURCE(64404, 15)
               overlay←v18620 = nullD←v36412;
               };
            };
         };
      }
   else {
SOURCE(64434, 557)
      if (( (int)cornerCount←v36468 ==  (int)1)) {
SOURCE(64491, 45)
         {
            word idx669;
            (* (( (ptr) newParts←v36440)+(
                  idx669 = (word) IOP2( % ,  (int)(cornerNum←v36496 + 2),  (int)4),
                  BCK(idx669, 4)
                  )) ) = 0;
            };
SOURCE(64538, 25)
         background←v18592 = nullD←v36412;
         drag←v18676 = nullD←v36412;
SOURCE(64565, 53)
         {
            word pd670;
            pd670 = (* (( (ptr) (* (( (ptr) gf←c105416)+300)/* var←c91944 */  ))+8) );
            rubber←v18648 = (word) ( *( (fPt) ((*  (ptr) pd670 ))))(slice←v18464, newParts←v36440, pd670);
            };
SOURCE(64620, 89)
         overlayParts←v36356 = XR←NewObject(36, (* (( (ptr) gf←c105416)+28) ));
SOURCE(64711, 38)
         (* (( (ptr) overlayParts←v36356)+BCK(cornerNum←v36496, 4)) ) = 1;
SOURCE(64751, 58)
         {
            word pd671;
            pd671 = (* (( (ptr) (* (( (ptr) gf←c105416)+300)/* var←c91944 */  ))+8) );
            overlay←v18620 = (word) ( *( (fPt) ((*  (ptr) pd671 ))))(slice←v18464, overlayParts←v36356, pd671);
            };
SOURCE(64811, 57)
         if ((0 == filled←v36384)) {
SOURCE(64831, 20)
            background←v18592 = overlay←v18620;
SOURCE(64853, 15)
            overlay←v18620 = nullD←v36412;
            };
         }
      else {
SOURCE(64901, 57)
         {
            word pd672;
            pd672 = (* (( (ptr) (* (( (ptr) gf←c105416)+300)/* var←c91944 */  ))+8) );
            background←v18592 = (word) ( *( (fPt) ((*  (ptr) pd672 ))))(slice←v18464, newParts←v36440, pd672);
            };
SOURCE(64960, 31)
         {
            word var←c100392;
            var←c100392 = nullD←v36412;
            drag←v18676 = nullD←v36412;
            overlay←v18620 = var←c100392;
            rubber←v18648 = var←c100392;
            };
         };
      };
   goto lab←L100198;
   lab←L100197: ;
SOURCE(65023, 37)
   {
      word var←c100424;
      var←c100424 = nullD←v36412;
      rubber←v18648 = nullD←v36412;
      overlay←v18620 = var←c100424;
      background←v18592 = var←c100424;
      };
SOURCE(65062, 51)
   {
      word pd673;
      pd673 = (* (( (ptr) (* (( (ptr) gf←c105416)+300)/* var←c91944 */  ))+8) );
      drag←v18676 = (word) ( *( (fPt) ((*  (ptr) pd673 ))))(slice←v18464, newParts←v36440, pd673);
      };
   lab←L100198: ;
   /* removed tail goto */ 
   lab←L100196: ;
   (*  (ptr) formal←c01052 ) = background←v18592;
   (* (( (ptr) formal←c01052)+1) ) = overlay←v18620;
   (* (( (ptr) formal←c01052)+2) ) = rubber←v18648;
   (* (( (ptr) formal←c01052)+3) ) = drag←v18676;
   return;
   }

static word BoxAugmentParts←P3900(sliceD←v18736, selectClass←v18764)
   word sliceD←v18736;
   word selectClass←v18764;
   {
   register ptr gf←c105448 =  (ptr) &globalframe;
   word more←v18808;
   word boxParts←v36740;
   word newParts←v36768 = 0;
   /* BoxAugmentParts: */ 
SOURCE(65127, 476)
SOURCE(65127, 476)
   more←v18808 = 0;
SOURCE(65240, 41)
   boxParts←v36740 = XR←Narrow((* (( (ptr) sliceD←v18736)+1) ), (* (( (ptr) gf←c105448)+28) ));
SOURCE(65303, 106)
   {
      word var←c100456;
      var←c100456 = XR←NewObject(36, (* (( (ptr) gf←c105448)+28) ));
      (*  (W4Pt) var←c100456 ) = (*  (W4Pt) boxParts←v36740 );
      (*  (W4Pt) (( (ptr) var←c100456)+4) ) = (*  (W4Pt) (( (ptr) boxParts←v36740)+4) );
      (* (( (ptr) var←c100456)+8) ) = (* (( (ptr) boxParts←v36740)+8) );
      newParts←v36768 = var←c100456;
      };
SOURCE(65411, 120)
   {
      register word i←v36812 = 0;
      if (( (int)i←v36812 >  (int)3)) {
         goto lab←L100199;
         };
      lab←L100202: ;
SOURCE(65439, 92)
      if ((0 != (* ((( (ptr) boxParts←v36740)+4)+BCK(i←v36812, 4)) ))) {
SOURCE(65467, 26)
         (* (( (ptr) newParts←v36768)+BCK(i←v36812, 4)) ) = 1;
SOURCE(65495, 36)
         {
            word idx674;
            (* (( (ptr) newParts←v36768)+(
                  idx674 = (word) IOP2( % ,  (int)(i←v36812 + 1),  (int)4),
                  BCK(idx674, 4)
                  )) ) = 1;
            };
         };
      if (( (int)i←v36812 >=  (int)3)) {
         goto lab←L100199;
         };
      i←v36812 = (i←v36812 + 1);
      goto lab←L100202;
      lab←L100199: ;
      };
SOURCE(65545, 58)
   {
      word pd675;
      pd675 = (* (( (ptr) (* (( (ptr) gf←c105448)+300)/* var←c91944 */  ))+8) );
      more←v18808 = (word) ( *( (fPt) ((*  (ptr) pd675 ))))((*  (ptr) sliceD←v18736 ), newParts←v36768, pd675);
      };
SOURCE(65127, 476)
   return(more←v18808);
   }

static word BoxAlterParts←P3960(sliceD←v18868, action←v18896)
   word sliceD←v18868;
   word action←v18896;
   {
   register ptr gf←c105480 =  (ptr) &globalframe;
   word newD←v18940;
   word boxParts←v36856;
   word newParts←v36884 = 0;
   word selectedCorner←v36912 =  (word) -1;
   word selectedEdge←v36940 =  (word) -1;
   /* BoxAlterParts: */ 
SOURCE(65609, 1421)
SOURCE(65609, 1421)
   newD←v18940 = 0;
SOURCE(65705, 41)
   boxParts←v36856 = XR←Narrow((* (( (ptr) sliceD←v18868)+1) ), (* (( (ptr) gf←c105480)+28) ));
SOURCE(65818, 85)
   newParts←v36884 = XR←NewObject(36, (* (( (ptr) gf←c105480)+28) ));
SOURCE(65905, 76)
   {
      register word i←v36984 = 0;
      if (( (int)i←v36984 >  (int)3)) {
         goto lab←L100203;
         };
      lab←L100206: ;
SOURCE(65933, 48)
      if ((0 != (* (( (ptr) boxParts←v36856)+BCK(i←v36984, 4)) ))) {
SOURCE(65963, 18)
         selectedCorner←v36912 = i←v36984;
SOURCE(65983, 4)
         goto lab←L100204;
         };
      if (( (int)i←v36984 >=  (int)3)) {
         goto lab←L100203;
         };
      i←v36984 = (i←v36984 + 1);
      goto lab←L100206;
      lab←L100203: ;
      lab←L100204: ;
      };
SOURCE(66001, 102)
   if (( (int)selectedCorner←v36912 ==  (int) (word) -1)) {
SOURCE(66031, 72)
      {
         register word i←v37028 = 0;
         if (( (int)i←v37028 >  (int)3)) {
            goto lab←L100207;
            };
         lab←L100210: ;
SOURCE(66059, 44)
         if ((0 != (* ((( (ptr) boxParts←v36856)+4)+BCK(i←v37028, 4)) ))) {
SOURCE(66087, 16)
            selectedEdge←v36940 = i←v37028;
SOURCE(66105, 4)
            goto lab←L100208;
            };
         if (( (int)i←v37028 >=  (int)3)) {
            goto lab←L100207;
            };
         i←v37028 = (i←v37028 + 1);
         goto lab←L100210;
         lab←L100207: ;
         lab←L100208: ;
         };
      };
SOURCE(66126, 798)
   {
      word var←c100520;
      var←c100520 = action←v18896;
      if ((var←c100520 == (* (( (ptr) gf←c105480)+67) ))) {
SOURCE(66159, 315)
         if (( (int)selectedCorner←v36912 >  (int) (word) -1)) {
SOURCE(66189, 136)
            if (( (int)selectedCorner←v36912 ==  (int)3)) {
SOURCE(66218, 22)
               (* (( (ptr) newParts←v36884)+8) ) = 1;
               }
            else {
SOURCE(66251, 33)
               selectedCorner←v36912 = (selectedCorner←v36912 + 1);
SOURCE(66286, 39)
               (* (( (ptr) newParts←v36884)+BCK(selectedCorner←v36912, 4)) ) = 1;
               };
            }
         else {
SOURCE(66337, 137)
            if (( (int)selectedEdge←v36940 >  (int) (word) -1)) {
SOURCE(66365, 37)
               selectedEdge←v36940 = IOP2( % ,  (int)(selectedEdge←v36940 + 1),  (int)4);
SOURCE(66404, 35)
               (* ((( (ptr) newParts←v36884)+4)+BCK(selectedEdge←v36940, 4)) ) = 1;
               }
            else {
SOURCE(66448, 26)
               (*  (ptr) newParts←v36884 ) = 1;
               };
            };
         goto endif0676;
         };
      if ((var←c100520 == (* (( (ptr) gf←c105480)+68) ))) {
SOURCE(66494, 315)
         if (( (int)selectedCorner←v36912 >  (int) (word) -1)) {
SOURCE(66524, 136)
            if (( (int)selectedCorner←v36912 ==  (int)0)) {
SOURCE(66553, 22)
               (* (( (ptr) newParts←v36884)+8) ) = 1;
               }
            else {
SOURCE(66586, 33)
               selectedCorner←v36912 = (selectedCorner←v36912 - 1);
SOURCE(66621, 39)
               (* (( (ptr) newParts←v36884)+BCK(selectedCorner←v36912, 4)) ) = 1;
               };
            }
         else {
SOURCE(66672, 137)
            if (( (int)selectedEdge←v36940 >  (int) (word) -1)) {
SOURCE(66700, 37)
               selectedEdge←v36940 = IOP2( % ,  (int)(selectedEdge←v36940 + 3),  (int)4);
SOURCE(66739, 35)
               (* ((( (ptr) newParts←v36884)+4)+BCK(selectedEdge←v36940, 4)) ) = 1;
               }
            else {
SOURCE(66783, 26)
               (* (( (ptr) newParts←v36884)+3) ) = 1;
               };
            };
         goto endif0676;
         };
      if ((var←c100520 == (* (( (ptr) gf←c105480)+69) ))) {
SOURCE(66823, 53)
         {
            word pd677;
            pd677 = (* (( (ptr) (* (( (ptr) gf←c105480)+305)/* var←c92456 */  ))+29) );
            return((word) ( *( (fPt) ((*  (ptr) pd677 ))))((*  (ptr) sliceD←v18868 ), 0, 6, pd677));
            };
         };
      if ((var←c100520 == (* (( (ptr) gf←c105480)+70) )) || (var←c100520 == (* (( (ptr) gf←c105480)+71) ))) {
SOURCE(66913, 11)
         return(0);
         };
SOURCE(66965, 5)
      (void) XR←RaiseUnnamedError();
      goto endif0676;
      endif0676: ;
      };
SOURCE(66972, 58)
   {
      word pd678;
      pd678 = (* (( (ptr) (* (( (ptr) gf←c105480)+300)/* var←c91944 */  ))+8) );
      newD←v18940 = (word) ( *( (fPt) ((*  (ptr) pd678 ))))((*  (ptr) sliceD←v18868 ), newParts←v36884, pd678);
      };
SOURCE(65609, 1421)
   return(newD←v18940);
   }

static void BoxClosestPoint←P4020(formal←c01136, sliceD←v19000, testPoint←v19028, tolerance←v19056)
   word formal←c01136;
   word sliceD←v19000;
   W2 testPoint←v19028;
   word tolerance←v19056;
   {
   register ptr gf←c105512 =  (ptr) &globalframe;
   W2 bestPoint←v19100;
   word bestDist←v19128;
   W2 bestNormal←v19156;
   word hitData←v19184;
   word success←v19212;
   /* BoxClosestPoint: */ 
SOURCE(67036, 3800)
SOURCE(67036, 3800)
   bestPoint←v19100.f0 = (*  (ptr) &fc216 );
   bestPoint←v19100.f1 = (*  (ptr) &fc216 );
SOURCE(67036, 3800)
   bestDist←v19128 = 2139095039;
SOURCE(67036, 3800)
   bestNormal←v19156.f0 = (*  (ptr) &fc216 );
   bestNormal←v19156.f1 = (*  (ptr) &fc679 );
SOURCE(67036, 3800)
   hitData←v19184 = 0;
SOURCE(67036, 3800)
   success←v19212 = 0;
   {
      word var←c100584;
SOURCE(67271, 107)
      {
         word pd681;
         {
            word pd680;
            pd680 = (* (( (ptr) (* (( (ptr) gf←c105512)+305)/* var←c92456 */  ))+9) );
            var←c100584 = (word) ( *( (fPt) ((*  (ptr) pd680 ))))((*  (ptr) sliceD←v19000 ), 0, pd680);
            };
         pd681 = (* (( (ptr) (* (( (ptr) gf←c105512)+304)/* var←c92328 */  ))+22) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd681 ))))(testPoint←v19028, var←c100584, tolerance←v19056, pd681))) {
SOURCE(67372, 6)
            goto lab←L100211;
            };
         };
SOURCE(67381, 3460)
      {
         word index←v37072 = 9999;
         word boxHitData←v37100 = 0;
         word boxData←v37128;
         word box←v37156;
         word boxParts←v37184;
         W2 thisPoint←v37212;
         word thisDist←v37240;
         W2 localTestPoint←v37268;
         word localTolerance←v37296;
SOURCE(67430, 44)
         boxData←v37128 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v19000 ))+1) ), (* (( (ptr) gf←c105512)+25) ));
SOURCE(67476, 27)
         box←v37156 = (*  (ptr) boxData←v37128 );
SOURCE(67505, 41)
         boxParts←v37184 = XR←Narrow((* (( (ptr) sliceD←v19000)+1) ), (* (( (ptr) gf←c105512)+28) ));
SOURCE(67582, 73)
         {
            word pd682;
            pd682 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd682 ))))((word) &localTestPoint←v37268, (* (( (ptr) boxData←v37128)+2) ), testPoint←v19028, pd682)
            ;
            };
SOURCE(67657, 89)
         {
            float tf683;
            word x684;
            word x685;
            float tf686;
            float tf687;
            word x688;
            float tf689;
            localTolerance←v37296 = (
               tf689 = FABS(((
                     x684 = tolerance←v19056,  *(float*)&x684
                     ) * FMAX((
                        x685 = (* (( (ptr) boxData←v37128)+3) ),  *(float*)&x685
                        ), (
                        x688 = (* (( (ptr) boxData←v37128)+4) ),  *(float*)&x688
                        ), tf686, tf687)), tf683),  *(word*)&tf689
               );
            };
SOURCE(67800, 118)
         {
            W5 var←c100648;
            {
               word pd690;
               pd690 = (* (( (ptr) (* (( (ptr) gf←c105512)+304)/* var←c92328 */  ))+26) );
               (void) ( *( (fPt) ((*  (ptr) pd690 ))))((word) &var←c100648, box←v37156, localTestPoint←v37268, localTolerance←v37296, (*  (W4Pt) boxParts←v37184 ), pd690)
               ;
               };
            success←v19212 = var←c100648.f4;
            bestPoint←v19100 = (*  (W2Pt) (( (ptr) &var←c100648)+2) );
            index←v37072 = var←c100648.f1;
            bestDist←v19128 = var←c100648.f0;
            };
SOURCE(67920, 116)
         if ((0 != success←v19212)) {
SOURCE(67938, 98)
            {
               word var←c100680;
               {
                  word var←c100712;
                  var←c100712 = XR←NewObject(20, (* (( (ptr) gf←c105512)+15) ));
                  (*  (ptr) var←c100712 ) = BCK((index←v37072 + 1), 5);
                  (* (( (ptr) var←c100712)+3) ) = (*  (ptr) &fc216 );
                  (* (( (ptr) var←c100712)+4) ) = (*  (ptr) &fc216 );
                  var←c100680 = var←c100712;
                  };
               boxHitData←v37100 = var←c100680;
               hitData←v19184 = var←c100680;
               };
            };
SOURCE(68041, 490)
         if ((0 != (* (( (ptr) boxParts←v37184)+8) ))) {
SOURCE(68115, 58)
            {
               word x691;
               word x692;
               word x693;
               *(float*)&thisPoint←v37212.f0 = ((
                  x691 = (*  (ptr) box←v37156 ),  *(float*)&x691
                  ) + (
                  x692 = (* (( (ptr) box←v37156)+2) ),  *(float*)&x692
                  )) / (
                  x693 = (*  (ptr) &fc101 ),  *(float*)&x693
                  );
               };
            {
               word x694;
               word x695;
               word x696;
               *(float*)&thisPoint←v37212.f1 = ((
                  x694 = (* (( (ptr) box←v37156)+1) ),  *(float*)&x694
                  ) + (
                  x695 = (* (( (ptr) box←v37156)+3) ),  *(float*)&x695
                  )) / (
                  x696 = (*  (ptr) &fc101 ),  *(float*)&x696
                  );
               };
SOURCE(68191, 56)
            {
               word pd697;
               pd697 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+19) );
               thisDist←v37240 = (word) ( *( (fPt) ((*  (ptr) pd697 ))))(localTestPoint←v37268, thisPoint←v37212, pd697);
               };
SOURCE(68249, 282)
            {
               word x698;
               word x699;
               word x700;
               word x701;
               if ( ( ((
                  x698 = thisDist←v37240,  *(float*)&x698
                  ) < (
                  x699 = bestDist←v19128,  *(float*)&x699
                  )) ? ((
                  x700 = thisDist←v37240,  *(float*)&x700
                  ) < (
                  x701 = localTolerance←v37296,  *(float*)&x701
                  )) : 0 ) ) {
SOURCE(68309, 19)
                  bestDist←v19128 = thisDist←v37240;
SOURCE(68330, 21)
                  bestPoint←v19100 = thisPoint←v37212;
SOURCE(68353, 139)
                  if ((0 != success←v19212)) {
SOURCE(68369, 28)
                     (*  (ptr) boxHitData←v37100 ) = 0;
                     }
                  else {
SOURCE(68397, 95)
                     {
                        word var←c100776;
                        {
                           word var←c100808;
                           var←c100808 = XR←NewObject(20, (* (( (ptr) gf←c105512)+15) ));
                           (* (( (ptr) var←c100808)+3) ) = (*  (ptr) &fc216 );
                           (* (( (ptr) var←c100808)+4) ) = (*  (ptr) &fc216 );
                           var←c100776 = var←c100808;
                           };
                        boxHitData←v37100 = var←c100776;
                        hitData←v19184 = var←c100776;
                        };
                     };
SOURCE(68494, 21)
                  (* (( (ptr) boxHitData←v37100)+2) ) = 1;
SOURCE(68517, 14)
                  success←v19212 = 1;
                  };
               };
            };
SOURCE(68539, 2297)
         if ((0 != success←v19212)) {
SOURCE(68557, 2120)
            if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) !=  (int) (word) -1)) {
SOURCE(68588, 2096)
               {
                  W2 lxly←v37340;
                  W2 lxhy←v37368;
                  W2 hxly←v37396;
                  W2 hxhy←v37424;
SOURCE(68620, 68)
                  {
                     W2 var←c01100;
                     {
                        W2 var←c100840;
                        var←c100840.f0 = (*  (ptr) box←v37156 );
                        var←c100840.f1 = (* (( (ptr) box←v37156)+1) );
                        {
                           word pd702;
                           pd702 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd702 ))))((word) &var←c01100, (* (( (ptr) boxData←v37128)+1) ), var←c100840, pd702);
                           };
                        };
                     lxly←v37340 = var←c01100;
                     };
SOURCE(68690, 68)
                  {
                     W2 var←c01102;
                     {
                        W2 var←c100872;
                        var←c100872.f0 = (*  (ptr) box←v37156 );
                        var←c100872.f1 = (* (( (ptr) box←v37156)+3) );
                        {
                           word pd703;
                           pd703 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd703 ))))((word) &var←c01102, (* (( (ptr) boxData←v37128)+1) ), var←c100872, pd703);
                           };
                        };
                     lxhy←v37368 = var←c01102;
                     };
SOURCE(68760, 68)
                  {
                     W2 var←c01104;
                     {
                        W2 var←c100904;
                        var←c100904.f0 = (* (( (ptr) box←v37156)+2) );
                        var←c100904.f1 = (* (( (ptr) box←v37156)+1) );
                        {
                           word pd704;
                           pd704 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd704 ))))((word) &var←c01104, (* (( (ptr) boxData←v37128)+1) ), var←c100904, pd704);
                           };
                        };
                     hxly←v37396 = var←c01104;
                     };
SOURCE(68830, 68)
                  {
                     W2 var←c01106;
                     {
                        W2 var←c100936;
                        var←c100936.f0 = (* (( (ptr) box←v37156)+2) );
                        var←c100936.f1 = (* (( (ptr) box←v37156)+3) );
                        {
                           word pd705;
                           pd705 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd705 ))))((word) &var←c01106, (* (( (ptr) boxData←v37128)+1) ), var←c100936, pd705);
                           };
                        };
                     hxhy←v37424 = var←c01106;
                     };
SOURCE(68900, 1777)
                  {
                     word pd706;
                     pd706 = (* (( (ptr) (* (( (ptr) gf←c105512)+304)/* var←c92328 */  ))+21) );
                     if ((0 != (word) ( *( (fPt) ((*  (ptr) pd706 ))))(localTestPoint←v37268, (*  (W6Pt) box←v37156 ), pd706))) {
SOURCE(68954, 862)
                        {
                           W2 normal1←v37468;
                           W2 normal2←v37496;
                           W2 nearDir←v37524;
SOURCE(68982, 108)
                           {
/*1*/   W2 var←c100968;
/*1*/   {
/*1*/      word pd707;
/*1*/      pd707 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd707 ))))((word) &var←c100968, (* (( (ptr) boxData←v37128)+1) ), bestPoint←v19100, pd707);
/*1*/      };
/*1*/   {
/*1*/      W2 var←c01112;
/*1*/      {
/*1*/         word pd708;
/*1*/         pd708 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd708 ))))((word) &var←c01112, var←c100968, testPoint←v19028, pd708);
/*1*/         };
/*1*/      nearDir←v37524 = var←c01112;
/*1*/      };
/*1*/   };
SOURCE(69092, 129)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)0)) {
SOURCE(69125, 47)
/*1*/   {
/*1*/      word pd709;
/*1*/      pd709 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd709 ))))((word) &normal1←v37468, lxly←v37340, lxhy←v37368, pd709);
/*1*/      };
SOURCE(69174, 47)
/*1*/   {
/*1*/      word pd710;
/*1*/      pd710 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd710 ))))((word) &normal2←v37496, lxly←v37340, hxly←v37396, pd710);
/*1*/      };
/*1*/   };
SOURCE(69226, 128)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)1)) {
SOURCE(69258, 47)
/*1*/   {
/*1*/      word pd711;
/*1*/      pd711 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd711 ))))((word) &normal1←v37468, lxhy←v37368, lxly←v37340, pd711);
/*1*/      };
SOURCE(69307, 47)
/*1*/   {
/*1*/      word pd712;
/*1*/      pd712 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd712 ))))((word) &normal2←v37496, lxhy←v37368, hxhy←v37424, pd712);
/*1*/      };
/*1*/   };
SOURCE(69359, 128)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)2)) {
SOURCE(69391, 47)
/*1*/   {
/*1*/      word pd713;
/*1*/      pd713 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd713 ))))((word) &normal1←v37468, hxhy←v37424, lxhy←v37368, pd713);
/*1*/      };
SOURCE(69440, 47)
/*1*/   {
/*1*/      word pd714;
/*1*/      pd714 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd714 ))))((word) &normal2←v37496, hxhy←v37424, hxly←v37396, pd714);
/*1*/      };
/*1*/   };
SOURCE(69492, 128)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)3)) {
SOURCE(69524, 47)
/*1*/   {
/*1*/      word pd715;
/*1*/      pd715 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd715 ))))((word) &normal1←v37468, hxly←v37396, hxhy←v37424, pd715);
/*1*/      };
SOURCE(69573, 47)
/*1*/   {
/*1*/      word pd716;
/*1*/      pd716 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd716 ))))((word) &normal2←v37496, hxly←v37396, lxly←v37340, pd716);
/*1*/      };
/*1*/   };
SOURCE(69627, 185)
                           {
/*1*/   float tf717;
/*1*/   word pd718;
/*1*/   word x719;
/*1*/   float tf720;
/*1*/   word pd721;
/*1*/   word x722;
/*1*/   pd718 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+9) );
/*1*/   pd721 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+9) );
/*1*/   if ((FABS((
/*1*/         x719 = (word) ( *( (fPt) ((*  (ptr) pd718 ))))(normal1←v37468, nearDir←v37524, pd718),  *(float*)&x719
/*1*/         ), tf717) > FABS((
/*1*/         x722 = (word) ( *( (fPt) ((*  (ptr) pd721 ))))(normal2←v37496, nearDir←v37524, pd721),  *(float*)&x722
/*1*/         ), tf720))) {
SOURCE(69761, 21)
/*1*/      bestNormal←v19156 = normal1←v37468;
/*1*/      }
/*1*/   else {
SOURCE(69792, 20)
/*1*/      bestNormal←v19156 = normal2←v37496;
/*1*/      };
/*1*/   };
                           };
                        }
                     else {
SOURCE(69823, 858)
                        {
                           W2 normal1←v37568;
                           W2 normal2←v37596;
                           W2 nearDir←v37624;
SOURCE(69851, 108)
                           {
/*1*/   W2 var←c101000;
/*1*/   {
/*1*/      word pd723;
/*1*/      pd723 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd723 ))))((word) &var←c101000, (* (( (ptr) boxData←v37128)+1) ), bestPoint←v19100, pd723);
/*1*/      };
/*1*/   {
/*1*/      W2 var←c01126;
/*1*/      {
/*1*/         word pd724;
/*1*/         pd724 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd724 ))))((word) &var←c01126, var←c101000, testPoint←v19028, pd724);
/*1*/         };
/*1*/      nearDir←v37624 = var←c01126;
/*1*/      };
/*1*/   };
SOURCE(69961, 129)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)0)) {
SOURCE(69994, 47)
/*1*/   {
/*1*/      word pd725;
/*1*/      pd725 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd725 ))))((word) &normal1←v37568, lxhy←v37368, lxly←v37340, pd725);
/*1*/      };
SOURCE(70043, 47)
/*1*/   {
/*1*/      word pd726;
/*1*/      pd726 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd726 ))))((word) &normal2←v37596, hxly←v37396, lxly←v37340, pd726);
/*1*/      };
/*1*/   };
SOURCE(70095, 128)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)1)) {
SOURCE(70127, 47)
/*1*/   {
/*1*/      word pd727;
/*1*/      pd727 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd727 ))))((word) &normal1←v37568, lxly←v37340, lxhy←v37368, pd727);
/*1*/      };
SOURCE(70176, 47)
/*1*/   {
/*1*/      word pd728;
/*1*/      pd728 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd728 ))))((word) &normal2←v37596, hxhy←v37424, lxhy←v37368, pd728);
/*1*/      };
/*1*/   };
SOURCE(70228, 128)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)2)) {
SOURCE(70260, 47)
/*1*/   {
/*1*/      word pd729;
/*1*/      pd729 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd729 ))))((word) &normal1←v37568, lxhy←v37368, hxhy←v37424, pd729);
/*1*/      };
SOURCE(70309, 47)
/*1*/   {
/*1*/      word pd730;
/*1*/      pd730 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd730 ))))((word) &normal2←v37596, hxly←v37396, hxhy←v37424, pd730);
/*1*/      };
/*1*/   };
SOURCE(70361, 128)
                           if (( (int)((*  (ptr) boxHitData←v37100 ) - 1) ==  (int)3)) {
SOURCE(70393, 47)
/*1*/   {
/*1*/      word pd731;
/*1*/      pd731 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd731 ))))((word) &normal1←v37568, hxhy←v37424, hxly←v37396, pd731);
/*1*/      };
SOURCE(70442, 47)
/*1*/   {
/*1*/      word pd732;
/*1*/      pd732 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+22) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd732 ))))((word) &normal2←v37596, lxly←v37340, hxly←v37396, pd732);
/*1*/      };
/*1*/   };
SOURCE(70494, 183)
                           {
/*1*/   float tf733;
/*1*/   word pd734;
/*1*/   word x735;
/*1*/   float tf736;
/*1*/   word pd737;
/*1*/   word x738;
/*1*/   pd734 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+9) );
/*1*/   pd737 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+9) );
/*1*/   if ((FABS((
/*1*/         x735 = (word) ( *( (fPt) ((*  (ptr) pd734 ))))(normal1←v37568, nearDir←v37624, pd734),  *(float*)&x735
/*1*/         ), tf733) < FABS((
/*1*/         x738 = (word) ( *( (fPt) ((*  (ptr) pd737 ))))(normal2←v37596, nearDir←v37624, pd737),  *(float*)&x738
/*1*/         ), tf736))) {
SOURCE(70628, 20)
/*1*/      bestNormal←v19156 = normal1←v37568;
/*1*/      }
/*1*/   else {
SOURCE(70657, 20)
/*1*/      bestNormal←v19156 = normal2←v37596;
/*1*/      };
/*1*/   };
                           };
                        };
                     };
                  };
               };
SOURCE(70687, 63)
            {
               word pd739;
               pd739 = (* (( (ptr) (* (( (ptr) gf←c105512)+319)/* var←c100616 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd739 ))))((word) &bestPoint←v19100, (* (( (ptr) boxData←v37128)+1) ), bestPoint←v19100, pd739)
               ;
               };
SOURCE(70752, 31)
            (*  (W2Pt) (( (ptr) boxHitData←v37100)+3) ) = bestPoint←v19100;
SOURCE(70785, 51)
            {
               word pd740;
               pd740 = (* (( (ptr) (* (( (ptr) gf←c105512)+320)/* var←c100744 */  ))+19) );
               bestDist←v19128 = (word) ( *( (fPt) ((*  (ptr) pd740 ))))(testPoint←v19028, bestPoint←v19100, pd740);
               };
            };
         };
      };
   /* removed tail goto */ 
   lab←L100211: ;
   (*  (W2Pt) formal←c01136 ) = bestPoint←v19100;
   (* (( (ptr) formal←c01136)+2) ) = bestDist←v19128;
   (*  (W2Pt) (( (ptr) formal←c01136)+3) ) = bestNormal←v19156;
   (* (( (ptr) formal←c01136)+5) ) = hitData←v19184;
   (* (( (ptr) formal←c01136)+6) ) = success←v19212;
   return;
   }

static void BoxClosestJointToHitData←P4080(formal←c01151, sliceD←v19284, mapPoint←v19312, testPoint←v19340, hitData←v19368)
   word formal←c01151;
   word sliceD←v19284;
   W2 mapPoint←v19312;
   W2 testPoint←v19340;
   word hitData←v19368;
   {
   register ptr gf←c105544 =  (ptr) &globalframe;
   word jointD←v19424;
   W2 point←v19452;
   W2 normal←v19480;
   word hitD←v37668 = 0;
   word boxData←v37696;
   word box←v37724;
   W2 localTestPoint←v37752;
   /* BoxClosestJointToHitData: */ 
SOURCE(70850, 456)
SOURCE(70850, 456)
   jointD←v19424 = 0;
SOURCE(70850, 456)
   normal←v19480.f0 = (*  (ptr) &fc216 );
   normal←v19480.f1 = (*  (ptr) &fc679 );
SOURCE(71045, 44)
   boxData←v37696 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v19284 ))+1) ), (* (( (ptr) gf←c105544)+25) ));
SOURCE(71091, 27)
   box←v37724 = (*  (ptr) boxData←v37696 );
SOURCE(71120, 73)
   {
      word pd741;
      pd741 = (* (( (ptr) (* (( (ptr) gf←c105544)+319)/* var←c100616 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd741 ))))((word) &localTestPoint←v37752, (* (( (ptr) boxData←v37696)+2) ), testPoint←v19340, pd741)
      ;
      };
SOURCE(71195, 94)
   {
      W7 var←c101032;
      (void) BoxClosestPoint←P4020((word) &var←c101032, sliceD←v19284, testPoint←v19340, (*  (ptr) &fc652 ));
      hitD←v37668 = var←c101032.f5;
      normal←v19480 = (*  (W2Pt) (( (ptr) &var←c101032)+3) );
      point←v19452 = (*  (W2Pt) &var←c101032 );
      };
SOURCE(71291, 15)
   jointD←v19424 = sliceD←v19284;
   /* removed tail goto */ 
   (*  (ptr) formal←c01151 ) = jointD←v19424;
   (*  (W2Pt) (( (ptr) formal←c01151)+1) ) = point←v19452;
   (*  (W2Pt) (( (ptr) formal←c01151)+3) ) = normal←v19480;
   return;
   }

static void BoxClosestSegment←P4140(formal←c01174, sliceD←v19540, testPoint←v19568, tolerance←v19596)
   word formal←c01174;
   word sliceD←v19540;
   W2 testPoint←v19568;
   word tolerance←v19596;
   {
   register ptr gf←c105576 =  (ptr) &globalframe;
   W2 bestPoint←v19640;
   word bestDist←v19668;
   W2 bestNormal←v19696;
   word hitData←v19724;
   word success←v19752;
   /* BoxClosestSegment: */ 
SOURCE(71363, 1112)
SOURCE(71363, 1112)
   bestPoint←v19640.f0 = (*  (ptr) &fc216 );
   bestPoint←v19640.f1 = (*  (ptr) &fc216 );
SOURCE(71363, 1112)
   bestDist←v19668 = 2139095039;
SOURCE(71363, 1112)
   bestNormal←v19696.f0 = (*  (ptr) &fc216 );
   bestNormal←v19696.f1 = (*  (ptr) &fc679 );
SOURCE(71363, 1112)
   hitData←v19724 = 0;
SOURCE(71363, 1112)
   success←v19752 = 0;
   {
      word var←c101064;
SOURCE(71599, 107)
      {
         word pd743;
         {
            word pd742;
            pd742 = (* (( (ptr) (* (( (ptr) gf←c105576)+305)/* var←c92456 */  ))+9) );
            var←c101064 = (word) ( *( (fPt) ((*  (ptr) pd742 ))))((*  (ptr) sliceD←v19540 ), 0, pd742);
            };
         pd743 = (* (( (ptr) (* (( (ptr) gf←c105576)+304)/* var←c92328 */  ))+22) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd743 ))))(testPoint←v19568, var←c101064, tolerance←v19596, pd743))) {
SOURCE(71700, 6)
            goto lab←L100213;
            };
         };
SOURCE(71709, 771)
      {
         word seg←v37808 = 9999;
         word boxHitData←v37836 = 0;
         word boxData←v37864;
         word boxParts←v37892;
         W2 localTestpoint←v37920;
         word localTolerance←v37948;
SOURCE(71756, 44)
         boxData←v37864 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v19540 ))+1) ), (* (( (ptr) gf←c105576)+25) ));
SOURCE(71802, 41)
         boxParts←v37892 = XR←Narrow((* (( (ptr) sliceD←v19540)+1) ), (* (( (ptr) gf←c105576)+28) ));
SOURCE(71845, 73)
         {
            word pd744;
            pd744 = (* (( (ptr) (* (( (ptr) gf←c105576)+319)/* var←c100616 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd744 ))))((word) &localTestpoint←v37920, (* (( (ptr) boxData←v37864)+2) ), testPoint←v19568, pd744)
            ;
            };
SOURCE(71920, 89)
         {
            float tf745;
            word x746;
            word x747;
            float tf748;
            float tf749;
            word x750;
            float tf751;
            localTolerance←v37948 = (
               tf751 = FABS(((
                     x746 = tolerance←v19596,  *(float*)&x746
                     ) * FMAX((
                        x747 = (* (( (ptr) boxData←v37864)+3) ),  *(float*)&x747
                        ), (
                        x750 = (* (( (ptr) boxData←v37864)+4) ),  *(float*)&x750
                        ), tf748, tf749)), tf745),  *(word*)&tf751
               );
            };
SOURCE(72062, 124)
         {
            W5 var←c101096;
            {
               word pd752;
               pd752 = (* (( (ptr) (* (( (ptr) gf←c105576)+304)/* var←c92328 */  ))+27) );
               (void) ( *( (fPt) ((*  (ptr) pd752 ))))((word) &var←c101096, (*  (ptr) boxData←v37864 ), localTestpoint←v37920, localTolerance←v37948, (*  (W4Pt) (
                     ( (ptr) boxParts←v37892)+4) ), pd752);
               };
            success←v19752 = var←c101096.f4;
            bestPoint←v19640 = (*  (W2Pt) (( (ptr) &var←c101096)+2) );
            seg←v37808 = var←c101096.f1;
            bestDist←v19668 = var←c101096.f0;
            };
SOURCE(72188, 287)
         if ((0 != success←v19752)) {
SOURCE(72206, 63)
            {
               word pd753;
               pd753 = (* (( (ptr) (* (( (ptr) gf←c105576)+319)/* var←c100616 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd753 ))))((word) &bestPoint←v19640, (* (( (ptr) boxData←v37864)+1) ), bestPoint←v19640, pd753)
               ;
               };
SOURCE(72271, 51)
            {
               word pd754;
               pd754 = (* (( (ptr) (* (( (ptr) gf←c105576)+320)/* var←c100744 */  ))+19) );
               bestDist←v19668 = (word) ( *( (fPt) ((*  (ptr) pd754 ))))(testPoint←v19568, bestPoint←v19640, pd754);
               };
SOURCE(72324, 101)
            {
               word var←c101128;
               {
                  word var←c101160;
                  var←c101160 = XR←NewObject(20, (* (( (ptr) gf←c105576)+15) ));
                  (* (( (ptr) var←c101160)+1) ) = BCK((seg←v37808 + 1), 5);
                  (*  (W2Pt) (( (ptr) var←c101160)+3) ) = bestPoint←v19640;
                  var←c101128 = var←c101160;
                  };
               boxHitData←v37836 = var←c101128;
               hitData←v19724 = var←c101128;
               };
SOURCE(72427, 48)
            {
               word pd755;
               pd755 = (* (( (ptr) (* (( (ptr) gf←c105576)+320)/* var←c100744 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd755 ))))((word) &bestNormal←v19696, testPoint←v19568, bestPoint←v19640, pd755);
               };
            };
         };
      };
   /* removed tail goto */ 
   lab←L100213: ;
   (*  (W2Pt) formal←c01174 ) = bestPoint←v19640;
   (* (( (ptr) formal←c01174)+2) ) = bestDist←v19668;
   (*  (W2Pt) (( (ptr) formal←c01174)+3) ) = bestNormal←v19696;
   (* (( (ptr) formal←c01174)+5) ) = hitData←v19724;
   (* (( (ptr) formal←c01174)+6) ) = success←v19752;
   return;
   }

static void BoxFilledPathsUnderPoint←P4200(formal←c01186, slice←v19824, point←v19852, tolerance←v19880)
   word formal←c01186;
   word slice←v19824;
   W2 point←v19852;
   word tolerance←v19880;
   {
   register ptr gf←c105608 =  (ptr) &globalframe;
   word hitData←v19924;
   word moreHitDatas←v19952;
   word boxData←v37992;
   W2 pointBox←v38020;
   word box←v38048;
   word success←v38076 = 0;
   /* BoxFilledPathsUnderPoint: */ 
SOURCE(72489, 590)
SOURCE(72489, 590)
   hitData←v19924 = 0;
SOURCE(72489, 590)
   moreHitDatas←v19952 = 0;
SOURCE(72647, 37)
   boxData←v37992 = XR←Narrow((* (( (ptr) slice←v19824)+1) ), (* (( (ptr) gf←c105608)+25) ));
SOURCE(72686, 72)
   {
      word pd756;
      pd756 = (* (( (ptr) (* (( (ptr) gf←c105608)+301)/* var←c91976 */  ))+39) );
      (void) ( *( (fPt) ((*  (ptr) pd756 ))))((word) &pointBox←v38020, (* (( (ptr) boxData←v37992)+2) ), point←v19852, pd756);
      };
SOURCE(72760, 27)
   box←v38048 = (*  (ptr) boxData←v37992 );
SOURCE(72813, 165)
   {
      word x757;
      word x758;
      word x759;
      word x760;
      word x761;
      word x762;
      word x763;
      word x764;
      if (((* (( (ptr) boxData←v37992)+5) ) != 0)) {
         if ((0 != (* (( (ptr) (*  (ptr) boxData←v37992 ))+5) ))) {
            success←v38076 =  (unsigned) 1;
            }
         else {
            if ( (  ( ((
               x757 = pointBox←v38020.f0,  *(float*)&x757
               ) >= (
               x758 = (*  (ptr) box←v38048 ),  *(float*)&x758
               )) ? ((
               x759 = pointBox←v38020.f0,  *(float*)&x759
               ) <= (
               x760 = (* (( (ptr) box←v38048)+2) ),  *(float*)&x760
               )) : 0 )  ? ((
               x761 = pointBox←v38020.f1,  *(float*)&x761
               ) >= (
               x762 = (* (( (ptr) box←v38048)+1) ),  *(float*)&x762
               )) : 0 ) ) {
               success←v38076 =  (unsigned) ((
                  x763 = pointBox←v38020.f1,  *(float*)&x763
                  ) <= (
                  x764 = (* (( (ptr) box←v38048)+3) ),  *(float*)&x764
                  ));
               }
            else {
               success←v38076 =  (unsigned) 0;
               };
            };
         }
      else {
         success←v38076 =  (unsigned) 0;
         };
      };
SOURCE(72980, 99)
   if ((0 != success←v38076)) {
SOURCE(72998, 81)
      {
         word var←c101192;
         var←c101192 = XR←NewObject(20, (* (( (ptr) gf←c105608)+15) ));
         (* (( (ptr) var←c101192)+2) ) = 1;
         (*  (W2Pt) (( (ptr) var←c101192)+3) ) = point←v19852;
         hitData←v19924 = var←c101192;
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c01186 ) = hitData←v19924;
   (* (( (ptr) formal←c01186)+1) ) = moreHitDatas←v19952;
   return;
   }

static void BoxLineIntersection←P4260(formal←c01211, sliceD←v20120, line←v20148)
   word formal←c01211;
   word sliceD←v20120;
   word line←v20148;
   {
   register ptr gf←c105640 =  (ptr) &globalframe;
   word points←v20192;
   word pointCount←v20220;
   word boxData←v38120;
   word boxParts←v38148;
   word bBox←v38176;
   word noHit←v38204;
   W4 hits←v38232;
   W8 hitPoints←v38260;
   word localLine←v38316;
   word localPoints←v38344 = 0;
   /* BoxLineIntersection: */ 
SOURCE(73088, 1826)
SOURCE(73088, 1826)
   points←v20192 = 0;
SOURCE(73088, 1826)
   pointCount←v20220 = 0;
SOURCE(73216, 44)
   boxData←v38120 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v20120 ))+1) ), (* (( (ptr) gf←c105640)+25) ));
SOURCE(73262, 41)
   boxParts←v38148 = XR←Narrow((* (( (ptr) sliceD←v20120)+1) ), (* (( (ptr) gf←c105640)+28) ));
SOURCE(73305, 28)
   bBox←v38176 = (*  (ptr) boxData←v38120 );
SOURCE(73431, 62)
   {
      word pd765;
      pd765 = (* (( (ptr) (* (( (ptr) gf←c105640)+321)/* var←c101224 */  ))+15) );
      localLine←v38316 = (word) ( *( (fPt) ((*  (ptr) pd765 ))))(line←v20148, (* (( (ptr) boxData←v38120)+2) ), pd765);
      };
SOURCE(73523, 39)
   {
      register word i←v38544 = 0;
      lab←L100219: ;
SOURCE(73547, 15)
      (* (( (ptr) &hits←v38232)+BCK(i←v38544, 4)) ) = 0;
      if ((i←v38544 >= 3)) {
         goto lab←L100216;
         };
      i←v38544 = (i←v38544 + 1);
      goto lab←L100219;
      lab←L100216: ;
      };
SOURCE(73573, 1126)
   {
      register word i←v38588 = 0;
      lab←L100223: ;
SOURCE(73597, 30)
      if ((0 == (* ((( (ptr) boxParts←v38148)+4)+BCK(i←v38588, 4)) ))) {
SOURCE(73627, 4)
         goto lab←L100222;
         };
SOURCE(73678, 32)
      (void) FillBoxEdge←P4380((* (( (ptr) gf←c105640)+6)/* globalEdge←v8264 */  ), bBox←v38176, i←v38588);
SOURCE(73712, 68)
      {
         W3 var←c101256;
         {
            word pd766;
            pd766 = (* (( (ptr) (* (( (ptr) gf←c105640)+321)/* var←c101224 */  ))+35) );
            (void) ( *( (fPt) ((*  (ptr) pd766 ))))((word) &var←c101256, localLine←v38316, (* (( (ptr) gf←c105640)+6)/* globalEdge←v8264 */  ), pd766)
            ;
            };
         noHit←v38204 = var←c101256.f2;
         (* (( (W2Pt) &hitPoints←v38260)+BCK(i←v38588, 4)) ) = (*  (W2Pt) &var←c101256 );
         };
SOURCE(73782, 14)
      if ((0 != noHit←v38204)) {
SOURCE(73796, 4)
         goto lab←L100222;
         };
SOURCE(73802, 148)
      if ( ( (i←v38588 > 0) ? (0 != (* (( (ptr) &hits←v38232)+BCK((i←v38588 - 1), 4)) )) : 0 ) ) {
SOURCE(73830, 57)
         {
            float tf767;
            word x768;
            word x769;
            word x771;
            if ((FABS(((
                  x768 = (* (( (W2Pt) &hitPoints←v38260)+BCK(i←v38588, 4)) ).f0,  *(float*)&x768
                  ) - (
                  x769 = (* (( (W2Pt) &hitPoints←v38260)+BCK((i←v38588 - 1), 4)) ).f0,  *(float*)&x769
                  )), tf767) < (
               x771 = (*  (ptr) &fc770 ),  *(float*)&x771
               ))) {
SOURCE(73887, 4)
               goto lab←L100222;
               };
            };
SOURCE(73893, 57)
         {
            float tf772;
            word x773;
            word x774;
            word x775;
            if ((FABS(((
                  x773 = (* (( (W2Pt) &hitPoints←v38260)+BCK(i←v38588, 4)) ).f1,  *(float*)&x773
                  ) - (
                  x774 = (* (( (W2Pt) &hitPoints←v38260)+BCK((i←v38588 - 1), 4)) ).f1,  *(float*)&x774
                  )), tf772) < (
               x775 = (*  (ptr) &fc770 ),  *(float*)&x775
               ))) {
SOURCE(73950, 4)
               goto lab←L100222;
               };
            };
         };
SOURCE(73959, 45)
      {
         word var←c101288;
         var←c101288 = XR←NewObject(12, (* (( (ptr) gf←c105640)+9) ));
         (*  (W2Pt) var←c101288 ) = (* (( (W2Pt) &hitPoints←v38260)+BCK(i←v38588, 4)) );
         (* (( (ptr) var←c101288)+2) ) = localPoints←v38344;
         localPoints←v38344 = var←c101288;
         };
SOURCE(74006, 27)
      pointCount←v20220 = (pointCount←v20220 + 1);
SOURCE(74035, 14)
      (* (( (ptr) &hits←v38232)+BCK(i←v38588, 4)) ) = 1;
      lab←L100222: ;
      if ((i←v38588 >= 2)) {
         goto lab←L100220;
         };
      i←v38588 = (i←v38588 + 1);
      goto lab←L100223;
      lab←L100220: ;
SOURCE(74070, 629)
SOURCE(74072, 30)
      if ((0 == (* (( (ptr) boxParts←v38148)+7) ))) {
SOURCE(74102, 8)
         goto lab←L100224;
         };
SOURCE(74158, 32)
      (void) FillBoxEdge←P4380((* (( (ptr) gf←c105640)+6)/* globalEdge←v8264 */  ), bBox←v38176, 3);
SOURCE(74192, 68)
      {
         W3 var←c101320;
         {
            word pd776;
            pd776 = (* (( (ptr) (* (( (ptr) gf←c105640)+321)/* var←c101224 */  ))+35) );
            (void) ( *( (fPt) ((*  (ptr) pd776 ))))((word) &var←c101320, localLine←v38316, (* (( (ptr) gf←c105640)+6)/* globalEdge←v8264 */  ), pd776)
            ;
            };
         noHit←v38204 = var←c101320.f2;
         (*  (W2Pt) (( (ptr) &hitPoints←v38260)+6) ) = (*  (W2Pt) &var←c101320 );
         };
SOURCE(74262, 14)
      if ((0 != noHit←v38204)) {
SOURCE(74276, 8)
         goto lab←L100224;
         };
SOURCE(74286, 138)
      if ((0 != hits←v38232.f2)) {
SOURCE(74304, 55)
         {
            float tf777;
            word x778;
            word x779;
            word x780;
            if ((FABS(((
                  x778 = hitPoints←v38260.f6,  *(float*)&x778
                  ) - (
                  x779 = hitPoints←v38260.f4,  *(float*)&x779
                  )), tf777) < (
               x780 = (*  (ptr) &fc770 ),  *(float*)&x780
               ))) {
SOURCE(74359, 8)
               goto lab←L100224;
               };
            };
SOURCE(74369, 55)
         {
            float tf781;
            word x782;
            word x783;
            word x784;
            if ((FABS(((
                  x782 = hitPoints←v38260.f7,  *(float*)&x782
                  ) - (
                  x783 = hitPoints←v38260.f5,  *(float*)&x783
                  )), tf781) < (
               x784 = (*  (ptr) &fc770 ),  *(float*)&x784
               ))) {
SOURCE(74424, 8)
               goto lab←L100224;
               };
            };
         };
SOURCE(74437, 138)
      if ((0 != hits←v38232.f0)) {
SOURCE(74455, 55)
         {
            float tf785;
            word x786;
            word x787;
            word x788;
            if ((FABS(((
                  x786 = hitPoints←v38260.f6,  *(float*)&x786
                  ) - (
                  x787 = hitPoints←v38260.f0,  *(float*)&x787
                  )), tf785) < (
               x788 = (*  (ptr) &fc770 ),  *(float*)&x788
               ))) {
SOURCE(74510, 8)
               goto lab←L100224;
               };
            };
SOURCE(74520, 55)
         {
            float tf789;
            word x790;
            word x791;
            word x792;
            if ((FABS(((
                  x790 = hitPoints←v38260.f7,  *(float*)&x790
                  ) - (
                  x791 = hitPoints←v38260.f1,  *(float*)&x791
                  )), tf789) < (
               x792 = (*  (ptr) &fc770 ),  *(float*)&x792
               ))) {
SOURCE(74575, 8)
               goto lab←L100224;
               };
            };
         };
SOURCE(74588, 45)
      {
         word var←c101352;
         var←c101352 = XR←NewObject(12, (* (( (ptr) gf←c105640)+9) ));
         (*  (W2Pt) var←c101352 ) = (*  (W2Pt) (( (ptr) &hitPoints←v38260)+6) );
         (* (( (ptr) var←c101352)+2) ) = localPoints←v38344;
         localPoints←v38344 = var←c101352;
         };
SOURCE(74635, 27)
      pointCount←v20220 = (pointCount←v20220 + 1);
SOURCE(74664, 14)
      hits←v38232.f3 = 1;
      goto lab←L100225;
      lab←L100224: ;
      lab←L100225: ;
      };
SOURCE(74711, 23)
   if ((pointCount←v20220 > 2)) {
SOURCE(74734, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(74741, 12)
   points←v20192 = 0;
SOURCE(74755, 159)
   {
      register word list←v38632;
      list←v38632 = localPoints←v38344;
      lab←L100229: ;
      if ((list←v38632 != 0)) {
         }
      else {
         goto lab←L100226;
         };
SOURCE(74824, 90)
      {
         W2 var←c101384;
         word var←c101416;
         {
            word pd793;
            pd793 = (* (( (ptr) (* (( (ptr) gf←c105640)+301)/* var←c91976 */  ))+39) );
            (void) ( *( (fPt) ((*  (ptr) pd793 ))))((word) &var←c101384, (* (( (ptr) boxData←v38120)+1) ), (*  (W2Pt) list←v38632 ), pd793)
            ;
            };
         var←c101416 = XR←NewObject(12, (* (( (ptr) gf←c105640)+9) ));
         (*  (W2Pt) var←c101416 ) = var←c101384;
         (* (( (ptr) var←c101416)+2) ) = points←v20192;
         points←v20192 = var←c101416;
         };
      list←v38632 = (* (( (ptr) list←v38632)+2) );
      goto lab←L100229;
      lab←L100226: ;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c01211 ) = points←v20192;
   (* (( (ptr) formal←c01211)+1) ) = pointCount←v20220;
   return;
   }

static word BoxHitDataAsSimpleCurve←P4320(slice←v20364, hitData←v20392)
   word slice←v20364;
   word hitData←v20392;
   {
   register ptr gf←c105672 =  (ptr) &globalframe;
   word simpleCurve←v20448;
   word boxHitData←v38760;
   word boxData←v38788;
   word bBox←v38816;
   word edge←v38844 = 0;
   /* BoxHitDataAsSimpleCurve: */ 
SOURCE(74929, 415)
SOURCE(74929, 415)
   simpleCurve←v20448 = 0;
SOURCE(75027, 40)
   boxHitData←v38760 = XR←Narrow(hitData←v20392, (* (( (ptr) gf←c105672)+15) ));
SOURCE(75069, 37)
   boxData←v38788 = XR←Narrow((* (( (ptr) slice←v20364)+1) ), (* (( (ptr) gf←c105672)+25) ));
SOURCE(75108, 28)
   bBox←v38816 = (*  (ptr) boxData←v38788 );
SOURCE(75150, 40)
   if (( (int)((* (( (ptr) boxHitData←v38760)+1) ) - 1) ==  (int) (word) -1)) {
SOURCE(75179, 11)
      return(0);
      };
SOURCE(75192, 32)
   {
      word pd794;
      pd794 = (* (( (ptr) (* (( (ptr) gf←c105672)+321)/* var←c101224 */  ))+25) );
      edge←v38844 = (word) ( *( (fPt) ((*  (ptr) pd794 ))))(pd794);
      };
SOURCE(75226, 40)
   {
      word idx795;
      (void) FillBoxEdge←P4380(edge←v38844, bBox←v38816, (
            idx795 = (word) ((* (( (ptr) boxHitData←v38760)+1) ) - 1),
            SGNCK(idx795)
            ));
      };
SOURCE(75268, 56)
   {
      word pd796;
      pd796 = (* (( (ptr) (* (( (ptr) gf←c105672)+321)/* var←c101224 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd796 ))))(edge←v38844, (* (( (ptr) boxData←v38788)+1) ), edge←v38844, pd796);
      };
SOURCE(75326, 18)
   simpleCurve←v20448 = edge←v38844;
SOURCE(74929, 415)
   return(simpleCurve←v20448);
   }

static void FillBoxEdge←P4380(edge←v20520, bBox←v20548, index←v20576)
   word edge←v20520;
   word bBox←v20548;
   word index←v20576;
   {
   register ptr gf←c105704 =  (ptr) &globalframe;
   /* FillBoxEdge: */ 
SOURCE(75350, 421)
SOURCE(75421, 35)
   if ((0 != (* (( (ptr) bBox←v20548)+4) )) || (0 != (* (( (ptr) bBox←v20548)+5) ))) {
SOURCE(75456, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(75463, 308)
   {
      word var←c101448;
      var←c101448 = index←v20576;
      switch (var←c101448) {
         case 0: 
SOURCE(75486, 66)
            {
               W2 var←c101480;
               W2 var←c101512;
               var←c101480.f0 = (*  (ptr) bBox←v20548 );
               var←c101480.f1 = (* (( (ptr) bBox←v20548)+1) );
               var←c101512.f0 = (*  (ptr) bBox←v20548 );
               var←c101512.f1 = (* (( (ptr) bBox←v20548)+3) );
               {
                  word pd797;
                  pd797 = (* (( (ptr) (* (( (ptr) gf←c105704)+321)/* var←c101224 */  ))+29) );
                  (void) ( *( (fPt) ((*  (ptr) pd797 ))))(var←c101480, var←c101512, edge←v20520, pd797);
                  };
               };
            break;
         case 1: 
SOURCE(75559, 66)
            {
               W2 var←c101544;
               W2 var←c101576;
               var←c101544.f0 = (*  (ptr) bBox←v20548 );
               var←c101544.f1 = (* (( (ptr) bBox←v20548)+3) );
               var←c101576.f0 = (* (( (ptr) bBox←v20548)+2) );
               var←c101576.f1 = (* (( (ptr) bBox←v20548)+3) );
               {
                  word pd798;
                  pd798 = (* (( (ptr) (* (( (ptr) gf←c105704)+321)/* var←c101224 */  ))+29) );
                  (void) ( *( (fPt) ((*  (ptr) pd798 ))))(var←c101544, var←c101576, edge←v20520, pd798);
                  };
               };
            break;
         case 2: 
SOURCE(75632, 66)
            {
               W2 var←c101608;
               W2 var←c101640;
               var←c101608.f0 = (* (( (ptr) bBox←v20548)+2) );
               var←c101608.f1 = (* (( (ptr) bBox←v20548)+3) );
               var←c101640.f0 = (* (( (ptr) bBox←v20548)+2) );
               var←c101640.f1 = (* (( (ptr) bBox←v20548)+1) );
               {
                  word pd799;
                  pd799 = (* (( (ptr) (* (( (ptr) gf←c105704)+321)/* var←c101224 */  ))+29) );
                  (void) ( *( (fPt) ((*  (ptr) pd799 ))))(var←c101608, var←c101640, edge←v20520, pd799);
                  };
               };
            break;
         case 3: 
SOURCE(75705, 66)
            {
               W2 var←c101672;
               W2 var←c101704;
               var←c101672.f0 = (* (( (ptr) bBox←v20548)+2) );
               var←c101672.f1 = (* (( (ptr) bBox←v20548)+1) );
               var←c101704.f0 = (*  (ptr) bBox←v20548 );
               var←c101704.f1 = (* (( (ptr) bBox←v20548)+1) );
               {
                  word pd800;
                  pd800 = (* (( (ptr) (* (( (ptr) gf←c105704)+321)/* var←c101224 */  ))+29) );
                  (void) ( *( (fPt) ((*  (ptr) pd800 ))))(var←c101672, var←c101704, edge←v20520, pd800);
                  };
               };
            break;
         default: 
SOURCE(75784, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
   }

static void BoxSetStrokeColor←P4440(slice←v20636, parts←v20664, color←v20692, setHow←v20720, history←v20748)
   word slice←v20636;
   word parts←v20664;
   word color←v20692;
   word setHow←v20720;
   word history←v20748;
   {
   register ptr gf←c105736 =  (ptr) &globalframe;
   word boxParts←v38888;
   word boxData←v38916;
   /* BoxSetStrokeColor: */ 
SOURCE(75795, 462)
SOURCE(75908, 34)
   boxParts←v38888 = XR←Narrow(parts←v20664, (* (( (ptr) gf←c105736)+28) ));
SOURCE(75944, 37)
   boxData←v38916 = XR←Narrow((* (( (ptr) slice←v20636)+1) ), (* (( (ptr) gf←c105736)+25) ));
SOURCE(75983, 274)
   {
      register word edge←v38960 = 0;
      if (( (int)edge←v38960 >  (int)3)) {
         goto lab←L100230;
         };
      lab←L100233: ;
SOURCE(76014, 243)
      if ((boxParts←v38888 == 0)) { goto then0801;};
      if ((0 != (* ((( (ptr) boxParts←v38888)+4)+BCK(edge←v38960, 4)) ))) {
         then0801: ;
SOURCE(76061, 196)
         {
            word var←c101736;
            var←c101736 = setHow←v20720;
            if ((var←c101736 == (* (( (ptr) gf←c105736)+73) ))) {
SOURCE(76088, 36)
               (* (( (ptr) (* ((( (ptr) boxData←v38916)+36)+BCK(edge←v38960, 4)) ))+8) ) = color←v20692;
               }
            else {
               if ((var←c101736 == (* (( (ptr) gf←c105736)+74) ))) {
SOURCE(76140, 119)
                  {
                     word newColor←v39004;
SOURCE(76142, 74)
                     {
                        word pd802;
                        pd802 = (* (( (ptr) (* (( (ptr) gf←c105736)+313)/* var←c96552 */  ))+36) );
                        newColor←v39004 = (word) ( *( (fPt) ((*  (ptr) pd802 ))))((* (( (ptr) (* ((( (ptr) boxData←v38916)+36)+BCK(edge←v38960, 4)
/*1*/      ) ))+8) ), color←v20692, pd802);
                        };
SOURCE(76218, 39)
                     (* (( (ptr) (* ((( (ptr) boxData←v38916)+36)+BCK(edge←v38960, 4)) ))+8) ) = newColor←v39004;
                     };
                  }
               else {
SOURCE(76273, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      if (( (int)edge←v38960 >=  (int)3)) {
         goto lab←L100230;
         };
      edge←v38960 = (edge←v38960 + 1);
      goto lab←L100233;
      lab←L100230: ;
      };
   }

static void BoxGetStrokeColor←P4500(formal←c01251, slice←v20808, parts←v20836)
   word formal←c01251;
   word slice←v20808;
   word parts←v20836;
   {
   register ptr gf←c105768 =  (ptr) &globalframe;
   word color←v20880;
   word isUnique←v20908;
   word boxParts←v39048;
   word boxData←v39076;
   word colorFound←v39104 = 0;
   word thisColor←v39132 = 0;
   /* BoxGetStrokeColor: */ 
SOURCE(76296, 849)
SOURCE(76296, 849)
   color←v20880 = 0;
SOURCE(76296, 849)
   isUnique←v20908 = 1;
SOURCE(76404, 34)
   boxParts←v39048 = XR←Narrow(parts←v20836, (* (( (ptr) gf←c105768)+28) ));
SOURCE(76440, 37)
   boxData←v39076 = XR←Narrow((* (( (ptr) slice←v20808)+1) ), (* (( (ptr) gf←c105768)+25) ));
SOURCE(76523, 285)
   {
      register word edge←v39176 = 0;
      if (( (int)edge←v39176 >  (int)3)) {
         goto lab←L100235;
         };
      lab←L100238: ;
SOURCE(76554, 254)
      if ((boxParts←v39048 == 0)) { goto then0803;};
      if ((0 != (* ((( (ptr) boxParts←v39048)+4)+BCK(edge←v39176, 4)) ))) {
         then0803: ;
SOURCE(76601, 207)
         if ((0 != colorFound←v39104)) {
SOURCE(76622, 40)
            thisColor←v39132 = (* (( (ptr) (* ((( (ptr) boxData←v39076)+36)+BCK(edge←v39176, 4)) ))+8) );
SOURCE(76664, 78)
            {
               word pd804;
               pd804 = (* (( (ptr) (* (( (ptr) gf←c105768)+310)/* var←c93352 */  ))+35) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd804 ))))(thisColor←v39132, color←v20880, pd804))) {
SOURCE(76721, 21)
                  /* removed bogus assignment */ 
                  isUnique←v20908 = 0;
                  goto lab←L100234;
                  };
               };
            }
         else {
SOURCE(76753, 17)
            colorFound←v39104 = 1;
SOURCE(76772, 36)
            color←v20880 = (* (( (ptr) (* ((( (ptr) boxData←v39076)+36)+BCK(edge←v39176, 4)) ))+8) );
            };
         };
      if (( (int)edge←v39176 >=  (int)3)) {
         goto lab←L100235;
         };
      edge←v39176 = (edge←v39176 + 1);
      goto lab←L100238;
      lab←L100235: ;
      };
SOURCE(76825, 320)
   if ((0 == colorFound←v39104)) {
SOURCE(76850, 295)
      {
         register word corner←v39220 = 0;
         if (( (int)corner←v39220 >  (int)3)) {
            goto lab←L100239;
            };
         lab←L100242: ;
SOURCE(76883, 262)
         if ((boxParts←v39048 == 0)) { goto then0805;};
         if ((0 != (* (( (ptr) boxParts←v39048)+BCK(corner←v39220, 4)) ))) {
            then0805: ;
SOURCE(76934, 211)
            if ((0 != colorFound←v39104)) {
SOURCE(76955, 42)
               thisColor←v39132 = (* (( (ptr) (* ((( (ptr) boxData←v39076)+36)+BCK(corner←v39220, 4)) ))+8) );
SOURCE(76999, 78)
               {
                  word pd806;
                  pd806 = (* (( (ptr) (* (( (ptr) gf←c105768)+310)/* var←c93352 */  ))+35) );
                  if ((0 == (word) ( *( (fPt) ((*  (ptr) pd806 ))))(thisColor←v39132, color←v20880, pd806))) {
SOURCE(77056, 21)
                     /* removed bogus assignment */ 
                     isUnique←v20908 = 0;
                     goto lab←L100234;
                     };
                  };
               }
            else {
SOURCE(77088, 17)
               colorFound←v39104 = 1;
SOURCE(77107, 38)
               color←v20880 = (* (( (ptr) (* ((( (ptr) boxData←v39076)+36)+BCK(corner←v39220, 4)) ))+8) );
               };
            };
         if (( (int)corner←v39220 >=  (int)3)) {
            goto lab←L100239;
            };
         corner←v39220 = (corner←v39220 + 1);
         goto lab←L100242;
         lab←L100239: ;
         };
      };
   /* removed tail goto */ 
   lab←L100234: ;
   (*  (ptr) formal←c01251 ) = color←v20880;
   (* (( (ptr) formal←c01251)+1) ) = isUnique←v20908;
   return;
   }

static void BoxSetFillColor←P4560(slice←v20968, parts←v20996, color←v21024, setHow←v21052, history←v21080)
   word slice←v20968;
   word parts←v20996;
   word color←v21024;
   word setHow←v21052;
   word history←v21080;
   {
   register ptr gf←c105800 =  (ptr) &globalframe;
   word boxData←v39264;
   /* BoxSetFillColor: */ 
SOURCE(77169, 313)
SOURCE(77280, 37)
   boxData←v39264 = XR←Narrow((* (( (ptr) slice←v20968)+1) ), (* (( (ptr) gf←c105800)+25) ));
SOURCE(77319, 163)
   {
      word var←c101768;
      var←c101768 = setHow←v21052;
      if ((var←c101768 == (* (( (ptr) gf←c105800)+73) ))) {
SOURCE(77346, 25)
         (* (( (ptr) boxData←v39264)+5) ) = color←v21024;
         }
      else {
         if ((var←c101768 == (* (( (ptr) gf←c105800)+74) ))) {
SOURCE(77387, 97)
            {
               word newColor←v39308;
SOURCE(77389, 63)
               {
                  word pd807;
                  pd807 = (* (( (ptr) (* (( (ptr) gf←c105800)+313)/* var←c96552 */  ))+36) );
                  newColor←v39308 = (word) ( *( (fPt) ((*  (ptr) pd807 ))))((* (( (ptr) boxData←v39264)+5) ), color←v21024, pd807);
                  };
SOURCE(77454, 28)
               (* (( (ptr) boxData←v39264)+5) ) = newColor←v39308;
               };
            }
         else {
SOURCE(77498, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static void BoxGetFillColor←P4620(formal←c01265, slice←v21140, parts←v21168)
   word formal←c01265;
   word slice←v21140;
   word parts←v21168;
   {
   register ptr gf←c105832 =  (ptr) &globalframe;
   word color←v21212;
   word isUnique←v21240;
   word boxData←v39352;
   /* BoxGetFillColor: */ 
SOURCE(77509, 170)
SOURCE(77509, 170)
   color←v21212 = 0;
SOURCE(77509, 170)
   isUnique←v21240 = 1;
SOURCE(77615, 37)
   boxData←v39352 = XR←Narrow((* (( (ptr) slice←v21140)+1) ), (* (( (ptr) gf←c105832)+25) ));
SOURCE(77654, 25)
   color←v21212 = (* (( (ptr) boxData←v39352)+5) );
   /* removed tail goto */ 
   (*  (ptr) formal←c01265 ) = color←v21212;
   (* (( (ptr) formal←c01265)+1) ) = isUnique←v21240;
   return;
   }

static word BoxSetStrokeWidth←P4680(slice←v21300, parts←v21328, strokeWidth←v21356, history←v21384)
   word slice←v21300;
   word parts←v21328;
   word strokeWidth←v21356;
   word history←v21384;
   {
   register ptr gf←c105864 =  (ptr) &globalframe;
   word box←v21428;
   word boxParts←v39396;
   word boxData←v39424;
   /* BoxSetStrokeWidth: */ 
SOURCE(77685, 405)
SOURCE(77685, 405)
   box←v21428 = 0;
SOURCE(77813, 34)
   boxParts←v39396 = XR←Narrow(parts←v21328, (* (( (ptr) gf←c105864)+28) ));
SOURCE(77849, 37)
   boxData←v39424 = XR←Narrow((* (( (ptr) slice←v21300)+1) ), (* (( (ptr) gf←c105864)+25) ));
SOURCE(77888, 124)
   {
      register word edge←v39468 = 0;
      if (( (int)edge←v39468 >  (int)3)) {
         goto lab←L100244;
         };
      lab←L100247: ;
SOURCE(77919, 93)
      if ((boxParts←v39396 == 0)) { goto then0808;};
      if ((0 != (* ((( (ptr) boxParts←v39396)+4)+BCK(edge←v39468, 4)) ))) {
         then0808: ;
SOURCE(77964, 48)
         (* (( (ptr) (* ((( (ptr) boxData←v39424)+36)+BCK(edge←v39468, 4)) ))+2) ) = strokeWidth←v21356;
         };
      if (( (int)edge←v39468 >=  (int)3)) {
         goto lab←L100244;
         };
      edge←v39468 = (edge←v39468 + 1);
      goto lab←L100247;
      lab←L100244: ;
      };
SOURCE(78023, 67)
   {
      word var←c101800;
      {
         word pd809;
         pd809 = (* (( (ptr) (* (( (ptr) gf←c105864)+305)/* var←c92456 */  ))+7) );
         var←c101800 = (word) ( *( (fPt) ((*  (ptr) pd809 ))))(slice←v21300, parts←v21328, pd809);
         };
      {
         word pd810;
         pd810 = (* (( (ptr) (* (( (ptr) gf←c105864)+304)/* var←c92328 */  ))+7) );
         box←v21428 = (word) ( *( (fPt) ((*  (ptr) pd810 ))))(var←c101800, pd810);
         };
      };
SOURCE(77685, 405)
   return(box←v21428);
   }

static void BoxSetDefaults←P4740(slice←v21488, parts←v21516, defaults←v21544, history←v21572)
   word slice←v21488;
   word parts←v21516;
   word defaults←v21544;
   word history←v21572;
   {
   register ptr gf←c105896 =  (ptr) &globalframe;
   word boxParts←v39512;
   word boxData←v39540;
   /* BoxSetDefaults: */ 
SOURCE(78178, 433)
SOURCE(78283, 34)
   boxParts←v39512 = XR←Narrow(parts←v21516, (* (( (ptr) gf←c105896)+28) ));
SOURCE(78319, 37)
   boxData←v39540 = XR←Narrow((* (( (ptr) slice←v21488)+1) ), (* (( (ptr) gf←c105896)+25) ));
SOURCE(78358, 131)
   {
      register word edge←v39584 = 0;
      if (( (int)edge←v39584 >  (int)3)) {
         goto lab←L100248;
         };
      lab←L100251: ;
SOURCE(78389, 100)
      if ((boxParts←v39512 == 0)) { goto then0811;};
      if ((0 != (* ((( (ptr) boxParts←v39512)+4)+BCK(edge←v39584, 4)) ))) {
         then0811: ;
SOURCE(78434, 55)
         {
            word pd812;
            pd812 = (* (( (ptr) (* (( (ptr) gf←c105896)+302)/* var←c92200 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd812 ))))((* ((( (ptr) boxData←v39540)+36)+BCK(edge←v39584, 4)) ), defaults←v21544, pd812);
            };
         };
      if (( (int)edge←v39584 >=  (int)3)) {
         goto lab←L100248;
         };
      edge←v39584 = (edge←v39584 + 1);
      goto lab←L100251;
      lab←L100248: ;
      };
SOURCE(78500, 38)
   (* (( (ptr) boxData←v39540)+5) ) = (* (( (ptr) defaults←v21544)+8) );
SOURCE(78540, 42)
   (* (( (ptr) boxData←v39540)+14) ) = (* (( (ptr) defaults←v21544)+1) );
SOURCE(78584, 27)
   {
      word pd813;
      pd813 = (* (( (ptr) (* (( (ptr) gf←c105896)+300)/* var←c91944 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd813 ))))(slice←v21488, pd813);
      };
   }

static void BoxGetStrokeWidth←P4800(formal←c01291, slice←v21632, parts←v21660)
   word formal←c01291;
   word slice←v21632;
   word parts←v21660;
   {
   register ptr gf←c105928 =  (ptr) &globalframe;
   word strokeWidth←v21704;
   word isUnique←v21732;
   word boxParts←v39628;
   word boxData←v39656;
   word found←v39684 = 0;
   word this←v39712;
   /* BoxGetStrokeWidth: */ 
SOURCE(78617, 544)
SOURCE(78617, 544)
   strokeWidth←v21704 = (*  (ptr) &fc814 );
SOURCE(78617, 544)
   isUnique←v21732 = 1;
SOURCE(78737, 34)
   boxParts←v39628 = XR←Narrow(parts←v21660, (* (( (ptr) gf←c105928)+28) ));
SOURCE(78773, 37)
   boxData←v39656 = XR←Narrow((* (( (ptr) slice←v21632)+1) ), (* (( (ptr) gf←c105928)+25) ));
SOURCE(78845, 262)
   {
      register word edge←v39756 = 0;
      if (( (int)edge←v39756 >  (int)3)) {
         goto lab←L100253;
         };
      lab←L100256: ;
SOURCE(78876, 231)
      if ((boxParts←v39628 == 0)) { goto then0815;};
      if ((0 != (* ((( (ptr) boxParts←v39628)+4)+BCK(edge←v39756, 4)) ))) {
         then0815: ;
SOURCE(78923, 184)
         if ((0 != found←v39684)) {
SOURCE(78939, 41)
            this←v39712 = (* (( (ptr) (* ((( (ptr) boxData←v39656)+36)+BCK(edge←v39756, 4)) ))+2) );
SOURCE(78982, 52)
            {
               word x816;
               word x817;
               if (((
                  x816 = this←v39712,  *(float*)&x816
                  ) != (
                  x817 = strokeWidth←v21704,  *(float*)&x817
                  ))) {
SOURCE(79007, 27)
                  /* removed bogus assignment */ 
                  isUnique←v21732 = 0;
                  goto lab←L100252;
                  };
               };
            }
         else {
SOURCE(79045, 12)
            found←v39684 = 1;
SOURCE(79059, 48)
            strokeWidth←v21704 = (* (( (ptr) (* ((( (ptr) boxData←v39656)+36)+BCK(edge←v39756, 4)) ))+2) );
            };
         };
      if (( (int)edge←v39756 >=  (int)3)) {
         goto lab←L100253;
         };
      edge←v39756 = (edge←v39756 + 1);
      goto lab←L100256;
      lab←L100253: ;
      };
SOURCE(79124, 37)
   if ((0 == found←v39684)) {
SOURCE(79142, 19)
      strokeWidth←v21704 = (*  (ptr) &fc679 );
      isUnique←v21732 = 0;
      goto lab←L100252;
      };
   /* removed tail goto */ 
   lab←L100252: ;
   (*  (ptr) formal←c01291 ) = strokeWidth←v21704;
   (* (( (ptr) formal←c01291)+1) ) = isUnique←v21732;
   return;
   }

static void BoxSetStrokeEnd←P4860(slice←v21792, parts←v21820, strokeEnd←v21848, history←v21876)
   word slice←v21792;
   word parts←v21820;
   word strokeEnd←v21848;
   word history←v21876;
   {
   register ptr gf←c105960 =  (ptr) &globalframe;
   word boxParts←v39800;
   word boxData←v39828;
   /* BoxSetStrokeEnd: */ 
SOURCE(79187, 300)
SOURCE(79292, 34)
   boxParts←v39800 = XR←Narrow(parts←v21820, (* (( (ptr) gf←c105960)+28) ));
SOURCE(79328, 37)
   boxData←v39828 = XR←Narrow((* (( (ptr) slice←v21792)+1) ), (* (( (ptr) gf←c105960)+25) ));
SOURCE(79367, 120)
   {
      register word edge←v39872 = 0;
      if (( (int)edge←v39872 >  (int)3)) {
         goto lab←L100257;
         };
      lab←L100260: ;
SOURCE(79398, 89)
      if ((boxParts←v39800 == 0)) { goto then0818;};
      if ((0 != (* ((( (ptr) boxParts←v39800)+4)+BCK(edge←v39872, 4)) ))) {
         then0818: ;
SOURCE(79443, 44)
         (* (( (ptr) (* ((( (ptr) boxData←v39828)+36)+BCK(edge←v39872, 4)) ))+3) ) = strokeEnd←v21848;
         };
      if (( (int)edge←v39872 >=  (int)3)) {
         goto lab←L100257;
         };
      edge←v39872 = (edge←v39872 + 1);
      goto lab←L100260;
      lab←L100257: ;
      };
   }

static void BoxSetStrokeJoint←P4920(slice←v21936, parts←v21964, strokeJoint←v21992, history←v22020)
   word slice←v21936;
   word parts←v21964;
   word strokeJoint←v21992;
   word history←v22020;
   {
   register ptr gf←c105992 =  (ptr) &globalframe;
   word boxData←v39916;
   /* BoxSetStrokeJoint: */ 
SOURCE(79502, 183)
SOURCE(79613, 37)
   boxData←v39916 = XR←Narrow((* (( (ptr) slice←v21936)+1) ), (* (( (ptr) gf←c105992)+25) ));
SOURCE(79652, 33)
   (* (( (ptr) boxData←v39916)+14) ) = strokeJoint←v21992;
   }

static void BoxGetStrokeJoint←P4980(formal←c01310, slice←v22080, parts←v22108)
   word formal←c01310;
   word slice←v22080;
   word parts←v22108;
   {
   register ptr gf←c106024 =  (ptr) &globalframe;
   word strokeJoint←v22152;
   word isUnique←v22180;
   word boxData←v39960;
   /* BoxGetStrokeJoint: */ 
SOURCE(79691, 186)
SOURCE(79691, 186)
   isUnique←v22180 = 1;
SOURCE(79811, 37)
   boxData←v39960 = XR←Narrow((* (( (ptr) slice←v22080)+1) ), (* (( (ptr) gf←c106024)+25) ));
SOURCE(79850, 27)
   strokeJoint←v22152 = (* (( (ptr) boxData←v39960)+14) );
   isUnique←v22180 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c01310 ) = strokeJoint←v22152;
   (* (( (ptr) formal←c01310)+1) ) = isUnique←v22180;
   return;
   }

static void BoxGetStrokeEnd←P5040(formal←c01320, slice←v22240, parts←v22268)
   word formal←c01320;
   word slice←v22240;
   word parts←v22268;
   {
   register ptr gf←c106056 =  (ptr) &globalframe;
   word strokeEnd←v22312;
   word isUnique←v22340;
   word boxParts←v40004;
   word boxData←v40032;
   word found←v40060 = 0;
   word this←v40088;
   /* BoxGetStrokeEnd: */ 
SOURCE(79883, 543)
SOURCE(79883, 543)
   strokeEnd←v22312 = 0;
SOURCE(79883, 543)
   isUnique←v22340 = 1;
SOURCE(80006, 34)
   boxParts←v40004 = XR←Narrow(parts←v22268, (* (( (ptr) gf←c106056)+28) ));
SOURCE(80042, 37)
   boxData←v40032 = XR←Narrow((* (( (ptr) slice←v22240)+1) ), (* (( (ptr) gf←c106056)+25) ));
SOURCE(80119, 252)
   {
      register word edge←v40132 = 0;
      if (( (int)edge←v40132 >  (int)3)) {
         goto lab←L100263;
         };
      lab←L100266: ;
SOURCE(80150, 221)
      if ((boxParts←v40004 == 0)) { goto then0819;};
      if ((0 != (* ((( (ptr) boxParts←v40004)+4)+BCK(edge←v40132, 4)) ))) {
         then0819: ;
SOURCE(80197, 174)
         if ((0 != found←v40060)) {
SOURCE(80213, 39)
            this←v40088 = (* (( (ptr) (* ((( (ptr) boxData←v40032)+36)+BCK(edge←v40132, 4)) ))+3) );
SOURCE(80254, 48)
            if ((this←v40088 != strokeEnd←v22312)) {
SOURCE(80277, 25)
               /* removed bogus assignment */ 
               isUnique←v22340 = 0;
               goto lab←L100262;
               };
            }
         else {
SOURCE(80313, 12)
            found←v40060 = 1;
SOURCE(80327, 44)
            strokeEnd←v22312 = (* (( (ptr) (* ((( (ptr) boxData←v40032)+36)+BCK(edge←v40132, 4)) ))+3) );
            };
         };
      if (( (int)edge←v40132 >=  (int)3)) {
         goto lab←L100263;
         };
      edge←v40132 = (edge←v40132 + 1);
      goto lab←L100266;
      lab←L100263: ;
      };
SOURCE(80388, 38)
   if ((0 == found←v40060)) {
SOURCE(80406, 20)
      strokeEnd←v22312 = 2;
      isUnique←v22340 = 0;
      goto lab←L100262;
      };
   /* removed tail goto */ 
   lab←L100262: ;
   (*  (ptr) formal←c01320 ) = strokeEnd←v22312;
   (* (( (ptr) formal←c01320)+1) ) = isUnique←v22340;
   return;
   }

static void BoxSetDashed←P5100(slice←v22400, parts←v22428, dashed←v22456, pattern←v22484, offset←v22512, length←v22540, history←v22568)
   word slice←v22400;
   word parts←v22428;
   word dashed←v22456;
   word pattern←v22484;
   word offset←v22512;
   word length←v22540;
   word history←v22568;
   {
   register ptr gf←c106088 =  (ptr) &globalframe;
   word boxParts←v40176;
   word boxData←v40204;
   /* BoxSetDashed: */ 
SOURCE(80452, 450)
SOURCE(80626, 34)
   boxParts←v40176 = XR←Narrow(parts←v22428, (* (( (ptr) gf←c106088)+28) ));
SOURCE(80662, 37)
   boxData←v40204 = XR←Narrow((* (( (ptr) slice←v22400)+1) ), (* (( (ptr) gf←c106088)+25) ));
SOURCE(80701, 201)
   {
      register word edge←v40248 = 0;
      if (( (int)edge←v40248 >  (int)3)) {
         goto lab←L100267;
         };
      lab←L100270: ;
SOURCE(80732, 170)
      if ((boxParts←v40176 == 0)) { goto then0820;};
      if ((0 != (* ((( (ptr) boxParts←v40176)+4)+BCK(edge←v40248, 4)) ))) {
         then0820: ;
SOURCE(80777, 127)
         {
            word seg←v40292;
SOURCE(80779, 37)
            seg←v40292 = (* ((( (ptr) boxData←v40204)+36)+BCK(edge←v40248, 4)) );
SOURCE(80818, 19)
            (* (( (ptr) seg←v40292)+4) ) = dashed←v22456;
SOURCE(80839, 21)
            (* (( (ptr) seg←v40292)+5) ) = pattern←v22484;
SOURCE(80862, 19)
            (* (( (ptr) seg←v40292)+6) ) = offset←v22512;
SOURCE(80883, 19)
            (* (( (ptr) seg←v40292)+7) ) = length←v22540;
            };
         };
      if (( (int)edge←v40248 >=  (int)3)) {
         goto lab←L100267;
         };
      edge←v40248 = (edge←v40248 + 1);
      goto lab←L100270;
      lab←L100267: ;
      };
   }

static void BoxGetDashed←P5160(formal←c01344, slice←v22628, parts←v22656)
   word formal←c01344;
   word slice←v22628;
   word parts←v22656;
   {
   register ptr gf←c106120 =  (ptr) &globalframe;
   word dashed←v22700;
   word pattern←v22728;
   word offset←v22756;
   word length←v22784;
   word isUnique←v22812;
   word boxParts←v40336;
   word boxData←v40364;
   word found←v40392 = 0;
   /* BoxGetDashed: */ 
SOURCE(80920, 777)
SOURCE(80920, 777)
   dashed←v22700 = 0;
SOURCE(80920, 777)
   pattern←v22728 = 0;
SOURCE(80920, 777)
   offset←v22756 = (*  (ptr) &fc216 );
SOURCE(80920, 777)
   length←v22784 = (*  (ptr) &fc216 );
SOURCE(80920, 777)
   isUnique←v22812 = 1;
SOURCE(81084, 34)
   boxParts←v40336 = XR←Narrow(parts←v22656, (* (( (ptr) gf←c106120)+28) ));
SOURCE(81120, 37)
   boxData←v40364 = XR←Narrow((* (( (ptr) slice←v22628)+1) ), (* (( (ptr) gf←c106120)+25) ));
SOURCE(81180, 437)
   {
      register word edge←v40436 = 0;
      if (( (int)edge←v40436 >  (int)3)) {
         goto lab←L100272;
         };
      lab←L100275: ;
SOURCE(81211, 406)
      if ((boxParts←v40336 == 0)) { goto then0821;};
      if ((0 != (* ((( (ptr) boxParts←v40336)+4)+BCK(edge←v40436, 4)) ))) {
         then0821: ;
SOURCE(81256, 366)
         {
            word seg←v40480;
SOURCE(81258, 37)
            seg←v40480 = (* ((( (ptr) boxData←v40364)+36)+BCK(edge←v40436, 4)) );
SOURCE(81297, 320)
            if ((0 != found←v40392)) {
SOURCE(81313, 195)
               {
                  word tc823;
                  word x824;
                  word x825;
                  word x826;
                  word x827;
                  word pd828;
                  if ((dashed←v22700 != (* (( (ptr) seg←v40480)+4) ))) { goto then0822;};
                  if ((0 != (* (( (ptr) seg←v40480)+4) ))) {
                     if (((
                        x824 = (* (( (ptr) seg←v40480)+6) ),  *(float*)&x824
                        ) != (
                        x825 = offset←v22756,  *(float*)&x825
                        )) || ((
                        x826 = (* (( (ptr) seg←v40480)+7) ),  *(float*)&x826
                        ) != (
                        x827 = length←v22784,  *(float*)&x827
                        ))) {
                        tc823 =  (word) 1;
                        }
                     else {
                        pd828 = (* (( (ptr) (* (( (ptr) gf←c106120)+313)/* var←c96552 */  ))+38) );
                        tc823 =  (word) (0 == (word) ( *( (fPt) ((*  (ptr) pd828 ))))((* (( (ptr) seg←v40480)+5) ), pattern←v22728, pd828));
                        };
                     }
                  else {
                     tc823 =  (word) 0;
                     };
                  if (tc823) {
                     then0822: ;
SOURCE(81462, 46)
                     /* removed bogus assignment */ 
                     /* removed bogus assignment */ 
                     /* removed bogus assignment */ 
                     /* removed bogus assignment */ 
                     isUnique←v22812 = 0;
                     goto lab←L100271;
                     };
                  };
               }
            else {
SOURCE(81519, 12)
               found←v40392 = 1;
SOURCE(81533, 19)
               dashed←v22700 = (* (( (ptr) seg←v40480)+4) );
SOURCE(81554, 21)
               pattern←v22728 = (* (( (ptr) seg←v40480)+5) );
SOURCE(81577, 19)
               offset←v22756 = (* (( (ptr) seg←v40480)+6) );
SOURCE(81598, 19)
               length←v22784 = (* (( (ptr) seg←v40480)+7) );
               };
            };
         };
      if (( (int)edge←v40436 >=  (int)3)) {
         goto lab←L100272;
         };
      edge←v40436 = (edge←v40436 + 1);
      goto lab←L100275;
      lab←L100272: ;
      };
SOURCE(81634, 63)
   if ((0 == found←v40392)) {
SOURCE(81652, 45)
      dashed←v22700 = 0;
      /* removed bogus assignment */ 
      /* removed bogus assignment */ 
      /* removed bogus assignment */ 
      isUnique←v22812 = 0;
      goto lab←L100271;
      };
   /* removed tail goto */ 
   lab←L100271: ;
   (*  (ptr) formal←c01344 ) = dashed←v22700;
   (* (( (ptr) formal←c01344)+1) ) = pattern←v22728;
   (* (( (ptr) formal←c01344)+2) ) = offset←v22756;
   (* (( (ptr) formal←c01344)+3) ) = length←v22784;
   (* (( (ptr) formal←c01344)+4) ) = isUnique←v22812;
   return;
   }

static word BoxSetOrientation←P5220(slice←v22872, parts←v22900, orientation←v22928, history←v22956)
   word slice←v22872;
   word parts←v22900;
   word orientation←v22928;
   word history←v22956;
   {
   register ptr gf←c106152 =  (ptr) &globalframe;
   word success←v23000;
   word boxData←v40524;
   /* BoxSetOrientation: */ 
SOURCE(81723, 315)
SOURCE(81723, 315)
   success←v23000 = 1;
SOURCE(81865, 37)
   boxData←v40524 = XR←Narrow((* (( (ptr) slice←v22872)+1) ), (* (( (ptr) gf←c106152)+25) ));
SOURCE(81904, 134)
   {
      word var←c101864;
      var←c101864 = orientation←v22928;
      switch (var←c101864) {
         case 0: 
SOURCE(81934, 22)
            (* (( (ptr) boxData←v40524)+15) ) = 1;
            break;
         case 1: 
SOURCE(81965, 23)
            (* (( (ptr) boxData←v40524)+15) ) = 0;
            break;
         case 2: 
SOURCE(82001, 37)
            (* (( (ptr) boxData←v40524)+15) ) =  (unsigned) (0 == (* (( (ptr) boxData←v40524)+15) ));
            break;
         default: 
SOURCE(82051, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(81723, 315)
   return(success←v23000);
   }

static void BoxGetOrientation←P5280(formal←c01358, slice←v23060, parts←v23088)
   word formal←c01358;
   word slice←v23060;
   word parts←v23088;
   {
   register ptr gf←c106184 =  (ptr) &globalframe;
   word orientation←v23132;
   word isUnique←v23160;
   word boxData←v40568;
   /* BoxGetOrientation: */ 
SOURCE(82062, 202)
SOURCE(82062, 202)
   isUnique←v23160 = 1;
SOURCE(82182, 37)
   boxData←v40568 = XR←Narrow((* (( (ptr) slice←v23060)+1) ), (* (( (ptr) gf←c106184)+25) ));
SOURCE(82221, 43)
   if ((0 != (* (( (ptr) boxData←v40568)+15) ))) {
      orientation←v23132 = 0;
      }
   else {
      orientation←v23132 = 1;
      };
   isUnique←v23160 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c01358 ) = orientation←v23132;
   (* (( (ptr) formal←c01358)+1) ) = isUnique←v23160;
   return;
   }

static void Init←P5340()
   {
   register ptr gf←c106216 =  (ptr) &globalframe;
   /* Init: */ 
SOURCE(82288, 56)
SOURCE(82306, 38)
   {
      word pd829;
      pd829 = (* (( (ptr) (* (( (ptr) gf←c106216)+321)/* var←c101224 */  ))+25) );
      (* (( (ptr) gf←c106216)+6)/* globalEdge←v8264 */  ) = (word) ( *( (fPt) ((*  (ptr) pd829 ))))(pd829);
      };
   }

/* file: GGSliceImplA, module: GGSliceImplA, compiled at: July 11, 1993 8:06:23 pm PDT */ 
extern void XR←install←GGSliceImplA() {
   XR←FillWords(&dummy661, 2, 0);
   NoName←Q12060();
   }
extern void XR←run←GGSliceImplA() { XR←Start(&globalframe); }