/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 15, 1993 11:20:08 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGMouseEventImplA, module: GGMouseEventImplA */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [546487432,1570320382] GGMouseEventImplA";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; word r;} W9;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
#define SOURCE(p, l) /* source p, l */
static float fc190 = 0.0;
static float fc225 = 1.0;
static float fc277 = -1.0;
static float fc329 = 90.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc336 = 1.0e-3;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static void NoName←Q4632();
static void GGMouseEventImplA←P0();
static void EasyAbort←P60();
static void AbortAdd←P120();
static void AbortCopyAndDrag←P180();
static void AbortBox←P240();
static void FinishAbort←P300();
static void InitializeFSM←P360();
static void ResetMouseMachinery←P420();
static void SaveSavedState←P480();
static void HandleMouseless←P540();
static void HandleMouse←P600();
static void HandleMouseAux←P660();
static void SetMouseMode←P3684();
static word Restart←P720();
static void HandleGuarded←P780();
static void HandleGuardedAux←P840();
static void HandleUnGuarded←P900();
static void HandleUnGuardedAux←P960();
static word StartCaretPos←P1020();
static void DuringCaretPos←P1080();
static void EndCaretPos←P1140();
static void SetCaretAttractor←P1200();
static void UpdateSceneForCopy←P1260();
static word StartCopyAndDrag←P1320();
static word StartAddAndDrag←P1380();
static void TransformObjectsAfterMove←P1440();
static word DoTransform←P4272();
static word StartMotion←P1500();
static word EnsureAnchor←P4332();
static word ContinueMotion←P1560();
static word StartDrag←P1620();
static word StartRotate←P1680();
static word StartScale←P1740();
static word StartSixPoint←P1800();
static void DragTheCaret←P1860();
static void DuringDrag←P1920();
static void DragUpdateCaretAndTransform←P1980();
static void DuringRotate←P2040();
static void RotateUpdateCaretAndTransform←P2100();
static void DuringScale←P2160();
static void ScaleUpdateCaretAndTransform←P2220();
static void DuringSixPoint←P2280();
static void SixPointUpdateCaretAndTransform←P2340();
static word ContinueAdd←P2400();
static void EndMotion←P2460();
static void EndMotionNoHistory←P2520();
static void EndMotionNoHistoryAndDeselect←P2580();
static void SafelyGetCaretTraj←P2640();
static void UpdateSceneForAdd←P2700();
static void UpdateSelectionsForAdd←P2760();
static void UpdateCaretForAdd←P2820();
static word StartAdd←P2880();
static word AddNewBoxSlice←P2940();
static word StartSelectWithBox←P3000();
static void EndSelectWithBox←P3060();
static word StartBox←P3120();
static void EndBox←P3180();
static void FixupAbortedBox←P3240();
static void RegisterMouseActions←P3300();
static void RegisterMode←P3360();
static word FindMode←P3420();
static void RegisterModes←P3480();
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[16];} string3 = {851984, "\257\300\040\222\274\210\300\135\231\057\376\102\344\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\310\000\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\004\003\000"};
static struct {unsigned f; char r[4];} string6 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\106\354\000\000"};
static struct {unsigned f; char r[8];} string8 = {262148, "\004\200@\034\000\000\000"};
static struct {unsigned f; char r[4];} string9 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\324\000\000"};
static struct {unsigned f; char r[32];} string11 = {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[48];} string12 = {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[20];} string13 = {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[16];} string14 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\164\000\000"};
static struct {unsigned f; char r[44];} string15 = {2752556, "\260\006\005\146\151\162\163\164\257\300\015\277\004\146\300\034\367\146\045\112\114\005\004\162\145\163\164\214\257\300\015\277\004\146\300\034\367\146\045\112\114\261\000"};
static struct {unsigned f; char r[28];} string16 = {1572888, "\006\002\000\007\000\040\016\000\003\001\000\000\000\000\014\014\000\014\014\014\014\000\010\001\000\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\224\000\000"};
static struct {unsigned f; char r[4];} string18 = {131074, "\004\030\000"};
static struct {unsigned f; char r[4];} string19 = {65540, "\243\000\000"};
static struct {unsigned f; char r[12];} string20 = {589836, "AddBezier\000\000"};
static struct {unsigned f; char r[12];} string21 = {524300, "StartBox\000\000\000"};
static struct {unsigned f; char r[4];} string22 = {196612, "Box"};
static struct {unsigned f; char r[20];} string23 = {1179668, "StartSelectWithBox\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "SelectWithBox\000\000"};
static struct {unsigned f; char r[12];} string25 = {589836, "StartDrag\000\000"};
static struct {unsigned f; char r[8];} string26 = {262152, "Drag\000\000\000"};
static struct {unsigned f; char r[20];} string27 = {1048596, "StartCopyAndDrag\000\000\000"};
static struct {unsigned f; char r[12];} string28 = {720908, "CopyAndDrag"};
static struct {unsigned f; char r[16];} string29 = {983056, "StartAddAndDrag"};
static struct {unsigned f; char r[12];} string30 = {655372, "AddAndDrag\000"};
static struct {unsigned f; char r[12];} string31 = {720908, "StartRotate"};
static struct {unsigned f; char r[8];} string32 = {393224, "Rotate\000"};
static struct {unsigned f; char r[12];} string33 = {655372, "StartScale\000"};
static struct {unsigned f; char r[8];} string34 = {327688, "Scale\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "StartSixPoint\000\000"};
static struct {unsigned f; char r[12];} string36 = {524300, "SixPoint\000\000\000"};
static struct {unsigned f; char r[20];} string37 = {1048596, "StartSelectJoint\000\000\000"};
static struct {unsigned f; char r[12];} string38 = {720908, "SelectJoint"};
static struct {unsigned f; char r[20];} string39 = {1245204, "StartExtSelectJoint"};
static struct {unsigned f; char r[16];} string40 = {917520, "ExtSelectJoint\000"};
static struct {unsigned f; char r[20];} string41 = {1179668, "StartSelectSegment\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "SelectSegment\000\000"};
static struct {unsigned f; char r[24];} string43 = {1376280, "StartExtSelectSegment\000\000"};
static struct {unsigned f; char r[20];} string44 = {1048596, "ExtSelectSegment\000\000\000"};
static struct {unsigned f; char r[24];} string45 = {1376280, "StartSelectTrajectory\000\000"};
static struct {unsigned f; char r[20];} string46 = {1048596, "SelectTrajectory\000\000\000"};
static struct {unsigned f; char r[28];} string47 = {1572892, "StartExtSelectTrajectory\000\000\000"};
static struct {unsigned f; char r[20];} string48 = {1245204, "ExtSelectTrajectory"};
static struct {unsigned f; char r[20];} string49 = {1245204, "StartSelectTopLevel"};
static struct {unsigned f; char r[16];} string50 = {917520, "SelectTopLevel\000"};
static struct {unsigned f; char r[24];} string51 = {1441816, "StartExtSelectTopLevel\000"};
static struct {unsigned f; char r[20];} string52 = {1114132, "ExtSelectTopLevel\000\000"};
static struct {unsigned f; char r[24];} string53 = {1310744, "StartExtendSelection\000\000\000"};
static struct {unsigned f; char r[16];} string54 = {983056, "ExtendSelection"};
static struct {unsigned f; char r[20];} string55 = {1179668, "StartDeselectJoint\000"};
static struct {unsigned f; char r[16];} string56 = {851984, "DeselectJoint\000\000"};
static struct {unsigned f; char r[24];} string57 = {1310744, "StartDeselectSegment\000\000\000"};
static struct {unsigned f; char r[16];} string58 = {983056, "DeselectSegment"};
static struct {unsigned f; char r[24];} string59 = {1507352, "StartDeselectTrajectory"};
static struct {unsigned f; char r[20];} string60 = {1179668, "DeselectTrajectory\000"};
static struct {unsigned f; char r[24];} string61 = {1376280, "StartDeselectTopLevel\000\000"};
static struct {unsigned f; char r[20];} string62 = {1048596, "DeselectTopLevel\000\000\000"};
static struct {unsigned f; char r[28];} string63 = {1769500, "Starting unimplemented mode"};
static struct {unsigned f; char r[16];} string64 = {851984, "HandleGuarded\000\000"};
static struct {unsigned f; char r[12];} string65 = {524300, "Gargoyle\000\000\000"};
static struct {unsigned f; char r[12];} string66 = {720908, "StartBezier"};
static struct {unsigned f; char r[8];} string67 = {327688, "Start\000\000"};
static struct {unsigned f; char r[8];} string68 = {262152, "Main\000\000\000"};
static struct {unsigned f; char r[8];} string69 = {458760, "Aborted"};
static struct {unsigned f; char r[8];} string70 = {393224, "During\000"};
static struct {unsigned f; char r[16];} string71 = {917520, "SawMouseFinish\000"};
static struct {unsigned f; char r[8];} string72 = {327688, "Abort\000\000"};
static struct {unsigned f; char r[8];} string73 = {458760, "GuardUp"};
static struct {unsigned f; char r[8];} string74 = {458760, "MouseUp"};
static struct {unsigned f; char r[8];} string75 = {327688, "AllUp\000\000"};
static struct {unsigned f; char r[24];} string76 = {1376280, "Unknown generic state\000\000"};
static struct {unsigned f; char r[16];} string77 = {917520, "DuringCaretPos\000"};
static struct {unsigned f; char r[4];} string78 = {196612, "Add"};
static struct {unsigned f; char r[12];} string79 = {524300, "StartAdd\000\000\000"};
static struct {unsigned f; char r[12];} string80 = {720908, "EndCaretPos"};
static struct {unsigned f; char r[8];} string81 = {327688, "Final\000\000"};
static struct {unsigned f; char r[12];} string82 = {655372, "CaretMoved\000"};
static struct {unsigned f; char r[12];} string83 = {524300, "CaretPos\000\000\000"};
static struct {unsigned f; char r[12];} string84 = {720908, "DuringMouse"};
static struct {unsigned f; char r[44];} string85 = {2621484, "Caret on %g at [%g, %g]. Delta [%g, %g].\000\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "StartCaretPos\000\000"};
static struct {unsigned f; char r[20];} string87 = {1179668, "Unimplemented Mode\000"};
static struct {unsigned f; char r[12];} string88 = {589836, "UnGuarded\000\000"};
static struct {unsigned f; char r[8];} string89 = {262152, "None\000\000\000"};
static struct {unsigned f; char r[32];} string90 = {1835040, "%g caret on %g at [%g, %g]. \000\000\000"};
static struct {unsigned f; char r[16];} string91 = {983056, "Delta [%g, %g]."};
static struct {unsigned f; char r[16];} string92 = {851984, "Copy and drag\000\000"};
static struct {unsigned f; char r[16];} string93 = {786448, "Add and drag\000\000\000"};
static struct {unsigned f; char r[20];} string94 = {1048596, "PaintEntireScene\000\000\000"};
static struct {unsigned f; char r[16];} string95 = {917520, ". . . Aborted.\000"};
static struct {unsigned f; char r[12];} string96 = {720908, "StartMotion"};
static struct {unsigned f; char r[12];} string97 = {524300, "Motion: \000\000\000"};
static struct {unsigned f; char r[12];} string98 = {589836, "Complaint\000\000"};
static struct {unsigned f; char r[44];} string99 = {2621484, "Motion failed: select some objects to %g\000\000\000"};
static struct {unsigned f; char r[36];} string100 = {2162724, "Motion failed: Caret needed to %g\000\000"};
static struct {unsigned f; char r[8];} string101 = {262152, "drag\000\000\000"};
static struct {unsigned f; char r[8];} string102 = {393224, "rotate\000"};
static struct {unsigned f; char r[8];} string103 = {327688, "scale\000\000"};
static struct {unsigned f; char r[60];} string104 = {3670076, "Scale failed: move caret away from anchor before scaling\000\000\000"};
static struct {unsigned f; char r[12];} string105 = {589836, "six point\000\000"};
static struct {unsigned f; char r[64];} string106 = {3997760, "Sixpoint failed: move caret away from anchor before six point\000\000"};
static struct {unsigned f; char r[12];} string107 = {655372, "DuringDrag\000"};
static struct {unsigned f; char r[12];} string108 = {589836, "Dragging:\000\000"};
static struct {unsigned f; char r[12];} string109 = {589836, "Rotating:\000\000"};
static struct {unsigned f; char r[12];} string110 = {524300, "Scaling:\000\000\000"};
static struct {unsigned f; char r[24];} string111 = {1310744, "Six Point Transform:\000\000\000"};
static struct {unsigned f; char r[12];} string112 = {720908, "ContinueAdd"};
static struct {unsigned f; char r[12];} string113 = {589836, "EndMotion\000\000"};
static struct {unsigned f; char r[20];} string114 = {1179668, "EndMotionNoHistory\000"};
static struct {unsigned f; char r[32];} string115 = {1900576, "EndMotionNoHistoryAndDeselect\000\000"};
static struct {unsigned f; char r[60];} string116 = {3866684, "Attempt to extend a trajectory without the caret on its end"};
static struct {unsigned f; char r[12];} string117 = {524300, "Feedback\000\000\000"};
static struct {unsigned f; char r[12];} string118 = {720908, "Add line to"};
static struct {unsigned f; char r[56];} string119 = {3407928, "Start add failed: caret required for adding new line\000\000\000"};
static struct {unsigned f; char r[4];} string120 = {196612, "Set"};
static struct {unsigned f; char r[20];} string121 = {1048596, "SelectionChanged\000\000\000"};
static struct {unsigned f; char r[60];} string122 = {3801148, "Select with box failed: caret required for select with box\000"};
static struct {unsigned f; char r[20];} string123 = {1048596, "EndSelectWithBox\000\000\000"};
static struct {unsigned f; char r[28];} string124 = {1572892, "SelectionAndCaretChanged\000\000\000"};
static struct {unsigned f; char r[8];} string125 = {458760, "Add box"};
static struct {unsigned f; char r[52];} string126 = {3342388, "Start box failed: caret required for adding new box"};
static struct {unsigned f; char r[16];} string127 = {917520, "FinishedAdding\000"};
static struct {unsigned f; char r[32];} string128 = {1900576, "ObjectChangedBoundBoxProvided\000\000"};
static struct {unsigned f; char r[4];} string129 = {4, "\000\000\000"};
static struct {unsigned f; char r[16];} string130 = {851984, "\257\300\040\222\274\210\300\135\231\057\376\100\164\000\000"};
static struct {unsigned f; char r[16];} string131 = {786444, "\006\002\024\001\100\164\010\000\004\100\157\001\000\000\000"};
static struct {unsigned f; char r[16];} string132 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string133 = {851984, "\257\300\006<7[\300;CV\364@h\000\000"};
static struct {unsigned f; char r[16];} string134 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string135 = {851984, "\257\300\136\002\175\264\300\016\031\370\241\100\150\000\000"};
static struct {unsigned f; char r[16];} string136 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string137 = {851984, "\257\300\223\031\346\162\300\275\253\133\335\100\150\000\000"};
static struct {unsigned f; char r[16];} string138 = {851984, "\257\300\003\033\274\104\300\263\246\312\006\100\150\000\000"};
static struct {unsigned f; char r[16];} string139 = {851984, "\257\300\252\050\175\356\300\250\337\044\120\100\150\000\000"};
static struct {unsigned f; char r[12];} string140 = {1195855215, "useEvent"};
static struct {unsigned f; char r[16];} string141 = {851984, "\257\300\246\204\223\340\300\164\162\104\060\100\150\000\000"};
static struct {unsigned f; char r[16];} string142 = {851984, "\257\300\172\265\057\072\300\145\211\260\126\100\150\000\000"};
static struct {unsigned f; char r[16];} string143 = {851984, "\257\300\311\023\117\300\300\337\236\305\170\100\150\000\000"};
static struct {unsigned f; char r[16];} string144 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string145 = {851984, "\257\300\207\142\037\125\300\254\056\012\025\100\150\000\000"};
static struct {unsigned f; char r[16];} string146 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string147 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string148 = {851984, "\257\300\011\245\206\305\300\112\326\356\245\100\150\000\000"};
static struct {unsigned f; char r[16];} string149 = {851984, "\257\300\261\002\056\176\300\055\321\222\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string150 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string151 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string152 = {851984, "\257\300\206\055\004\241\300\261\334\001\116\100\150\000\000"};
static struct {unsigned f; char r[16];} string153 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\150\000\000"};
static struct {unsigned f; char r[16];} string154 = {851984, "\257\300\104\154\010\164\300\126\073\363\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string155 = {851984, "\257\300\272\336\377\011\300\305\371\262\224\100\150\000\000"};
static struct {unsigned f; char r[16];} string156 = {851984, "\257\300\355\324\264\170\300\276\334\312\210\100\150\000\000"};
static struct {unsigned f; char r[16];} string157 = {851984, "\257\300\037\132\057\032\300\262\356\113\061\100\150\000\000"};
static struct {unsigned f; char r[16];} string158 = {851984, "\257\300\356\024\243\250\300\175\157\203\227\100\150\000\000"};
static struct {unsigned f; char r[16];} string159 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string160 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string161 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string162 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string163 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string164 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static struct {unsigned f; char r[16];} string165 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\150\000\000"};
static struct {unsigned f; char r[28];} string166 = {1572892, "\211\014\013\104\162\141\147\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003\000\000\000"};
static struct {unsigned f; char r[16];} string167 = {851984, "\257\300\333\030\273\126\300\173\036\033\131\100\200\000\000"};
static struct {unsigned f; char r[20];} string168 = {1114129, "\006\006\050\001\054\001\060\001\064\001\100\100\001\100\110\004\030\000\000"};
static struct {unsigned f; char r[28];} string169 = {1638428, "\211\015\014\105\155\142\145\144\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003\000\000"};
static struct {unsigned f; char r[16];} string170 = {851984, "\257\300\036\073\304\257\300\266\014\226\240\100\164\000\000"};
static struct {unsigned f; char r[4];} string171 = {131074, "\004,\000"};
static struct {unsigned f; char r[28];} string172 = {1769500, "\211\017\016\122\145\146\162\145\163\150\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003"};
static struct {unsigned f; char r[16];} string173 = {851984, "\257\300\026\355\016\312\300\171\207\041\370\100\200\000\000"};
static struct {unsigned f; char r[44];} string174 = {2752554, "\006\020\000\001\014\001\020\001\024\001\030\001\034\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\114\001\100\120\001\100\124\001\100\130\001\100\144\001\000"};
static struct {
   word f0[140]; 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; 
   word f255; word f256; word f257[35]; 
   } globalframe = {
   {0}, (word) RegisterModes←P3480, 0, (word) FindMode←P3420, 
   0, (word) RegisterMode←P3360, 0, (word) RegisterMouseActions←P3300, 
   0, (word) FixupAbortedBox←P3240, 0, (word) EndBox←P3180, 
   0, (word) StartBox←P3120, 0, (word) EndSelectWithBox←P3060, 
   0, (word) StartSelectWithBox←P3000, 0, (word) AddNewBoxSlice←P2940, 
   0, (word) StartAdd←P2880, 0, (word) UpdateCaretForAdd←P2820, 
   0, (word) UpdateSelectionsForAdd←P2760, 0, (word) UpdateSceneForAdd←P2700, 
   0, (word) SafelyGetCaretTraj←P2640, 0, (word) EndMotionNoHistoryAndDeselect←P2580, 
   0, (word) EndMotionNoHistory←P2520, 0, (word) EndMotion←P2460, 
   0, (word) ContinueAdd←P2400, 0, (word) SixPointUpdateCaretAndTransform←P2340, 
   0, (word) DuringSixPoint←P2280, 0, (word) ScaleUpdateCaretAndTransform←P2220, 
   0, (word) DuringScale←P2160, 0, (word) RotateUpdateCaretAndTransform←P2100, 
   0, (word) DuringRotate←P2040, 0, (word) DragUpdateCaretAndTransform←P1980, 
   0, (word) DuringDrag←P1920, 0, (word) DragTheCaret←P1860, 
   0, (word) StartSixPoint←P1800, 0, (word) StartScale←P1740, 
   0, (word) StartRotate←P1680, 0, (word) StartDrag←P1620, 
   0, (word) ContinueMotion←P1560, 0, (word) StartMotion←P1500, 
   0, (word) TransformObjectsAfterMove←P1440, 0, (word) StartAddAndDrag←P1380, 
   0, (word) StartCopyAndDrag←P1320, 0, (word) UpdateSceneForCopy←P1260, 
   0, (word) SetCaretAttractor←P1200, 0, (word) EndCaretPos←P1140, 
   0, (word) DuringCaretPos←P1080, 0, (word) StartCaretPos←P1020, 
   0, (word) HandleUnGuardedAux←P960, 0, (word) HandleUnGuarded←P900, 
   0, (word) HandleGuardedAux←P840, 0, (word) HandleGuarded←P780, 
   0, (word) Restart←P720, 0, (word) HandleMouseAux←P660, 
   0, (word) HandleMouse←P600, 0, (word) HandleMouseless←P540, 
   0, (word) SaveSavedState←P480, 0, (word) ResetMouseMachinery←P420, 
   0, (word) InitializeFSM←P360, 0, (word) FinishAbort←P300, 
   0, (word) AbortBox←P240, 0, (word) AbortCopyAndDrag←P180, 
   0, (word) AbortAdd←P120, 0, (word) EasyAbort←P60, 
   0, (word) GGMouseEventImplA←P0, {0}
   };

static void NoName←Q4632()
   {
   register ptr gf←c0588 =  (ptr) &globalframe;
   word var←c66788;
   (* (( (ptr) gf←c0588)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0588)+11) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0588)+13) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0588)+14) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string2);
   (* (( (ptr) gf←c0588)+15) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0588)+16) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0588)+17) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0588)+18) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string5);
   (* (( (ptr) gf←c0588)+20) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string5);
   (* (( (ptr) gf←c0588)+21) ) = (word) XR←GetTypeIndexS((word) (&string14));
   (* (( (ptr) gf←c0588)+24) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
   (* (( (ptr) gf←c0588)+25) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string18);
   (* (( (ptr) gf←c0588)+28) ) = (word) XR←GetTypeIndexS((word) (&string19));
   (*  (ptr) (( (bPt) gf←c0588)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0588)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0588)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0588)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0588)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0588)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0588)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0588)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0588)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0588)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0588)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0588)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0588)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0588)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0588)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0588)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0588)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0588)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0588)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0588)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0588)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0588)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0588)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0588)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0588)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0588)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0588)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0588)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0588)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0588)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0588)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0588)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0588)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c0588)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c0588)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c0588)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c0588)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c0588)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c0588)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c0588)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c0588)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c0588)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c0588)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c0588)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c0588)+292) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c0588)+296) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c0588)+300) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c0588)+304) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c0588)+308) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c0588)+312) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string68);
   (*  (ptr) (( (bPt) gf←c0588)+316) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string69);
   (*  (ptr) (( (bPt) gf←c0588)+320) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string70);
   (*  (ptr) (( (bPt) gf←c0588)+324) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string71);
   (*  (ptr) (( (bPt) gf←c0588)+328) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string72);
   (*  (ptr) (( (bPt) gf←c0588)+332) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string73);
   (*  (ptr) (( (bPt) gf←c0588)+336) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string74);
   (*  (ptr) (( (bPt) gf←c0588)+340) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string75);
   (*  (ptr) (( (bPt) gf←c0588)+344) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string76);
   (*  (ptr) (( (bPt) gf←c0588)+348) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string77);
   (*  (ptr) (( (bPt) gf←c0588)+352) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string78);
   (*  (ptr) (( (bPt) gf←c0588)+356) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string79);
   (*  (ptr) (( (bPt) gf←c0588)+360) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string80);
   (*  (ptr) (( (bPt) gf←c0588)+364) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string81);
   (*  (ptr) (( (bPt) gf←c0588)+368) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string82);
   (*  (ptr) (( (bPt) gf←c0588)+372) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string83);
   (*  (ptr) (( (bPt) gf←c0588)+376) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string84);
   (*  (ptr) (( (bPt) gf←c0588)+380) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string85);
   (*  (ptr) (( (bPt) gf←c0588)+384) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string86);
   (*  (ptr) (( (bPt) gf←c0588)+388) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string87);
   (*  (ptr) (( (bPt) gf←c0588)+392) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string88);
   (*  (ptr) (( (bPt) gf←c0588)+396) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string89);
   (*  (ptr) (( (bPt) gf←c0588)+400) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string90);
   (*  (ptr) (( (bPt) gf←c0588)+404) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string91);
   (*  (ptr) (( (bPt) gf←c0588)+408) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string92);
   (*  (ptr) (( (bPt) gf←c0588)+412) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string93);
   (*  (ptr) (( (bPt) gf←c0588)+416) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string94);
   (*  (ptr) (( (bPt) gf←c0588)+420) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string95);
   (*  (ptr) (( (bPt) gf←c0588)+424) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string96);
   (*  (ptr) (( (bPt) gf←c0588)+428) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string97);
   (*  (ptr) (( (bPt) gf←c0588)+432) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string98);
   (*  (ptr) (( (bPt) gf←c0588)+436) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string99);
   (*  (ptr) (( (bPt) gf←c0588)+440) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string100);
   (*  (ptr) (( (bPt) gf←c0588)+444) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string101);
   (*  (ptr) (( (bPt) gf←c0588)+448) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string102);
   (*  (ptr) (( (bPt) gf←c0588)+452) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string103);
   (*  (ptr) (( (bPt) gf←c0588)+456) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string104);
   (*  (ptr) (( (bPt) gf←c0588)+460) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string105);
   (*  (ptr) (( (bPt) gf←c0588)+464) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string106);
   (*  (ptr) (( (bPt) gf←c0588)+468) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string107);
   (*  (ptr) (( (bPt) gf←c0588)+472) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string108);
   (*  (ptr) (( (bPt) gf←c0588)+476) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string109);
   (*  (ptr) (( (bPt) gf←c0588)+480) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string110);
   (*  (ptr) (( (bPt) gf←c0588)+484) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string111);
   (*  (ptr) (( (bPt) gf←c0588)+488) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string112);
   (*  (ptr) (( (bPt) gf←c0588)+492) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string113);
   (*  (ptr) (( (bPt) gf←c0588)+496) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string114);
   (*  (ptr) (( (bPt) gf←c0588)+500) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string115);
   (*  (ptr) (( (bPt) gf←c0588)+504) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string116);
   (*  (ptr) (( (bPt) gf←c0588)+508) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string117);
   (*  (ptr) (( (bPt) gf←c0588)+512) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string118);
   (*  (ptr) (( (bPt) gf←c0588)+516) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string119);
   (*  (ptr) (( (bPt) gf←c0588)+520) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string120);
   (*  (ptr) (( (bPt) gf←c0588)+524) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string121);
   (*  (ptr) (( (bPt) gf←c0588)+528) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string122);
   (*  (ptr) (( (bPt) gf←c0588)+532) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string123);
   (*  (ptr) (( (bPt) gf←c0588)+536) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string124);
   (*  (ptr) (( (bPt) gf←c0588)+540) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string125);
   (*  (ptr) (( (bPt) gf←c0588)+544) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string126);
   (*  (ptr) (( (bPt) gf←c0588)+548) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string127);
   (*  (ptr) (( (bPt) gf←c0588)+552) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+14) ), (word) &string128);
   (*  (ptr) (( (bPt) gf←c0588)+556) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0588)+10) ), (word) &string129);
   (void) XR←DeclareGlobalFrame((word) "GGMouseEventImplA", &globalframe, (word) XR←GetTypeIndex((word) &string130, 0, (word) &string131)
      , (word) (( (bPt) gf←c0588)+1024)/* var←c62692 */ );
   var←c66788 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string132)), 16);
   (* (( (ptr) gf←c0588)+266)/* var←c63236 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67372289);
   var←c66788 = (word) XR←ImportInterface((word) "CodeTimer", (word) XR←GetTypeIndexS((word) (&string133)), 21);
   (* (( (ptr) gf←c0588)+265)/* var←c63172 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 526850);
   (void) XR←ImportProcS(var←c66788, 526338);
   var←c66788 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string134)), 25);
   (* (( (ptr) gf←c0588)+258)/* var←c62724 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 1575429);
   (void) XR←ImportProcS(var←c66788, 1313029);
   (void) XR←ImportProcS(var←c66788, 1050628);
   var←c66788 = (word) XR←ImportInterface((word) "GGAlign", (word) XR←GetTypeIndexS((word) (&string135)), 46);
   (* (( (ptr) gf←c0588)+273)/* var←c64484 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 68164612);
   (void) XR←ImportProcS(var←c66788, 531202);
   (void) XR←ImportProcS(var←c66788, 530946);
   (void) XR←ImportProcS(var←c66788, 531714);
   var←c66788 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string136)), 24);
   (* (( (ptr) gf←c0588)+275)/* var←c65028 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 68681990);
   (void) XR←ImportProcS(var←c66788, 201593601);
   var←c66788 = (word) XR←ImportInterface((word) "GGCaret", (word) XR←GetTypeIndexS((word) (&string137)), 13);
   (* (( (ptr) gf←c0588)+260)/* var←c62788 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67372801);
   (void) XR←ImportProcS(var←c66788, 134482945);
   (void) XR←ImportProcS(var←c66788, 67371777);
   (void) XR←ImportProcS(var←c66788, 1574916);
   (void) XR←ImportProcS(var←c66788, 525570);
   (void) XR←ImportProcS(var←c66788, 134482689);
   (void) XR←ImportProcS(var←c66788, 67372545);
   (void) XR←ImportProcS(var←c66788, 524546);
   var←c66788 = (word) XR←ImportInterface((word) "GGEvent", (word) XR←GetTypeIndexS((word) (&string138)), 38);
   (* (( (ptr) gf←c0588)+261)/* var←c62820 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 532226);
   var←c66788 = (word) XR←ImportInterface((word) "GGHistory", (word) XR←GetTypeIndexS((word) (&string139)), 20);
   (* (( (ptr) gf←c0588)+272)/* var←c64420 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 134480129);
   (void) XR←ImportProcS(var←c66788, 262657);
   (void) XR←ImportProcS(var←c66788, 67633154);
   (void) XR←ImportProcS(var←c66788, 525058);
   var←c66788 = (word) XR←ImportInterface((word) &string140, (word) XR←GetTypeIndexS((word) (&string141)), 32);
   (* (( (ptr) gf←c0588)+287)/* var←c66596 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 1052163);
   (void) XR←ImportProcS(var←c66788, 1051907);
   (void) XR←ImportProcS(var←c66788, 68160515);
   (void) XR←ImportProcS(var←c66788, 68159747);
   (void) XR←ImportProcS(var←c66788, 1051395);
   (void) XR←ImportProcS(var←c66788, 1051139);
   (void) XR←ImportProcS(var←c66788, 68159491);
   (void) XR←ImportProcS(var←c66788, 1050371);
   (void) XR←ImportProcS(var←c66788, 1050115);
   (void) XR←ImportProcS(var←c66788, 68158723);
   (void) XR←ImportProcS(var←c66788, 68162307);
   (void) XR←ImportProcS(var←c66788, 1053187);
   (void) XR←ImportProcS(var←c66788, 1052931);
   (void) XR←ImportProcS(var←c66788, 1052675);
   (void) XR←ImportProcS(var←c66788, 68161283);
   (void) XR←ImportProcS(var←c66788, 524802);
   var←c66788 = (word) XR←ImportInterface((word) "GGMultiGravity", (word) XR←GetTypeIndexS((word) (&string142)), 16);
   (* (( (ptr) gf←c0588)+268)/* var←c63716 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 404488198);
   var←c66788 = (word) XR←ImportInterface((word) "GGOutline", (word) XR←GetTypeIndexS((word) (&string143)), 19);
   (* (( (ptr) gf←c0588)+281)/* var←c65924 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67633410);
   var←c66788 = (word) XR←ImportInterface((word) "GGParent", (word) XR←GetTypeIndexS((word) (&string144)), 83);
   (* (( (ptr) gf←c0588)+284)/* var←c66116 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67386625);
   (void) XR←ImportProcS(var←c66788, 67391489);
   var←c66788 = (word) XR←ImportInterface((word) "GGRefresh", (word) XR←GetTypeIndexS((word) (&string145)), 30);
   (* (( (ptr) gf←c0588)+263)/* var←c62916 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 527618);
   (void) XR←ImportProcS(var←c66788, 529666);
   (void) XR←ImportProcS(var←c66788, 1053188);
   (void) XR←ImportProcS(var←c66788, 788227);
   (void) XR←ImportProcS(var←c66788, 528130);
   (void) XR←ImportProcS(var←c66788, 69994763);
   (void) XR←ImportProcS(var←c66788, 264193);
   (void) XR←ImportProcS(var←c66788, 2622986);
   (void) XR←ImportProcS(var←c66788, 67375361);
   (void) XR←ImportProcS(var←c66788, 266241);
   var←c66788 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string146)), 50);
   (* (( (ptr) gf←c0588)+259)/* var←c62756 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 798723);
   (void) XR←ImportProcS(var←c66788, 526594);
   (void) XR←ImportProcS(var←c66788, 67906051);
   (void) XR←ImportProcS(var←c66788, 67905795);
   (void) XR←ImportProcS(var←c66788, 68426757);
   (void) XR←ImportProcS(var←c66788, 787715);
   (void) XR←ImportProcS(var←c66788, 67637250);
   (void) XR←ImportProcS(var←c66788, 273921);
   (void) XR←ImportProcS(var←c66788, 67382529);
   (void) XR←ImportProcS(var←c66788, 274177);
   var←c66788 = (word) XR←ImportInterface((word) "GGSegment", (word) XR←GetTypeIndexS((word) (&string147)), 47);
   (* (( (ptr) gf←c0588)+279)/* var←c65764 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 527362);
   (void) XR←ImportProcS(var←c66788, 527874);
   (void) XR←ImportProcS(var←c66788, 68419843);
   var←c66788 = (word) XR←ImportInterface((word) "GGSelect", (word) XR←GetTypeIndexS((word) (&string148)), 23);
   (* (( (ptr) gf←c0588)+262)/* var←c62852 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 68158980);
   (void) XR←ImportProcS(var←c66788, 67636994);
   (void) XR←ImportProcS(var←c66788, 786691);
   (void) XR←ImportProcS(var←c66788, 526594);
   (void) XR←ImportProcS(var←c66788, 786947);
   var←c66788 = (word) XR←ImportInterface((word) "GGSequence", (word) XR←GetTypeIndexS((word) (&string149)), 58);
   (* (( (ptr) gf←c0588)+282)/* var←c66052 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67634178);
   (void) XR←ImportProcS(var←c66788, 67371521);
   var←c66788 = (word) XR←ImportInterface((word) "GGSlice", (word) XR←GetTypeIndexS((word) (&string150)), 128);
   (* (( (ptr) gf←c0588)+283)/* var←c66084 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67905795);
   (void) XR←ImportProcS(var←c66788, 67634178);
   var←c66788 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string151)), 73);
   (* (( (ptr) gf←c0588)+269)/* var←c63876 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67633922);
   (void) XR←ImportProcS(var←c66788, 68169988);
   (void) XR←ImportProcS(var←c66788, 1324805);
   (void) XR←ImportProcS(var←c66788, 1325317);
   (void) XR←ImportProcS(var←c66788, 1060868);
   (void) XR←ImportProcS(var←c66788, 1062148);
   (void) XR←ImportProcS(var←c66788, 201606913);
   (void) XR←ImportProcS(var←c66788, 1315333);
   (void) XR←ImportProcS(var←c66788, 67901699);
   var←c66788 = (word) XR←ImportInterface((word) "GGState", (word) XR←GetTypeIndexS((word) (&string152)), 119);
   (* (( (ptr) gf←c0588)+270)/* var←c64004 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 549122);
   (void) XR←ImportProcS(var←c66788, 67395585);
   (void) XR←ImportProcS(var←c66788, 550146);
   (void) XR←ImportProcS(var←c66788, 67395073);
   var←c66788 = (word) XR←ImportInterface((word) "GGTraj", (word) XR←GetTypeIndexS((word) (&string153)), 55);
   (* (( (ptr) gf←c0588)+280)/* var←c65860 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67633153);
   (void) XR←ImportProcS(var←c66788, 68157956);
   (void) XR←ImportProcS(var←c66788, 67379457);
   (void) XR←ImportProcS(var←c66788, 67639554);
   (void) XR←ImportProcS(var←c66788, 67379969);
   var←c66788 = (word) XR←ImportInterface((word) "GGTransform", (word) XR←GetTypeIndexS((word) (&string154)), 7);
   (* (( (ptr) gf←c0588)+278)/* var←c65412 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67108864);
   (void) XR←ImportProcS(var←c66788, 70255873);
   (void) XR←ImportProcS(var←c66788, 67895810);
   (void) XR←ImportProcS(var←c66788, 67896066);
   var←c66788 = (word) XR←ImportInterface((word) "GGUIUtility", (word) XR←GetTypeIndexS((word) (&string155)), 10);
   (* (( (ptr) gf←c0588)+271)/* var←c64164 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67895299);
   var←c66788 = (word) XR←ImportInterface((word) "GGUserInput", (word) XR←GetTypeIndexS((word) (&string156)), 13);
   (* (( (ptr) gf←c0588)+288)/* var←c66628 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 1312261);
   var←c66788 = (word) XR←ImportInterface((word) "GGUserProfile", (word) XR←GetTypeIndexS((word) (&string157)), 25);
   (* (( (ptr) gf←c0588)+285)/* var←c66404 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67115008);
   var←c66788 = (word) XR←ImportInterface((word) "GGWindow", (word) XR←GetTypeIndexS((word) (&string158)), 12);
   (* (( (ptr) gf←c0588)+264)/* var←c62948 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 262657);
   (void) XR←ImportProcS(var←c66788, 262401);
   (void) XR←ImportProcS(var←c66788, 1572870);
   var←c66788 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string159)), 84);
   (* (( (ptr) gf←c0588)+286)/* var←c66436 */  ) = var←c66788;
   var←c66788 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string160)), 55);
   (* (( (ptr) gf←c0588)+274)/* var←c64804 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67635458);
   (void) XR←ImportProcS(var←c66788, 67634689);
   (void) XR←ImportProcS(var←c66788, 67371777);
   var←c66788 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string161)), 36);
   (* (( (ptr) gf←c0588)+277)/* var←c65380 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67641858);
   var←c66788 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string162)), 16);
   (* (( (ptr) gf←c0588)+289)/* var←c66692 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67895555);
   (void) XR←ImportProcS(var←c66788, 134742786);
   (void) XR←ImportProcS(var←c66788, 67896579);
   var←c66788 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string163)), 43);
   (* (( (ptr) gf←c0588)+267)/* var←c63300 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 67633666);
   (void) XR←ImportProcS(var←c66788, 67898627);
   (void) XR←ImportProcS(var←c66788, 67896323);
   var←c66788 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string164)), 21);
   (* (( (ptr) gf←c0588)+276)/* var←c65124 */  ) = var←c66788;
   (void) XR←ImportProcS(var←c66788, 68158210);
   (void) XR←ImportProcS(var←c66788, 67636737);
   (void) XR←ImportProcS(var←c66788, 68160770);
   (void) XR←ImportProcS(var←c66788, 135004418);
   (void) XR←ImportProcS(var←c66788, 135267842);
   (void) XR←ImportProcS(var←c66788, 135268098);
   var←c66788 = (word) XR←ExportInterface((word) &string140, (word) XR←GetTypeIndexS((word) (&string141)), 32);
   (* (( (ptr) gf←c0588)+290)/* var←c66820 */  ) = var←c66788;
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+976)/* var←c62500 */ , 262145, (word) "InitializeFSM");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+968)/* var←c62468 */ , 262401, (word) "ResetMouseMachinery");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+944)/* var←c62372 */ , 524802, (word) "HandleMouse");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+952)/* var←c62404 */ , 525058, (word) "HandleMouseless");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+960)/* var←c62436 */ , 267265, (word) "SaveSavedState");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+656)/* var←c61220 */ , 135271684, (word) "UpdateSelectionsForAdd")
   ;
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+648)/* var←c61188 */ , 1316356, (word) "UpdateCaretForAdd");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+824)/* var←c61892 */ , 69736201, (word) "StartMotion");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+776)/* var←c61700 */ , 135272451, (word) "DragTheCaret");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+672)/* var←c61284 */ , 201595137, (word) "SafelyGetCaretTraj")
   ;
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+832)/* var←c61924 */ , 1055236, (word) "TransformObjectsAfterMove")
   ;
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+816)/* var←c61860 */ , 68688645, (word) "ContinueMotion");
   (void) XR←ExportProcS(var←c66788, (word) (( (bPt) gf←c0588)+984)/* var←c62532 */ , 269313, (word) "FinishAbort");
   var←c66788 = (word) XR←ExportInterface((word) "GGInterfaceTypes", (word) XR←GetTypeIndexS((word) (&string165)), 6);
   (* (( (ptr) gf←c0588)+291)/* var←c66852 */  ) = var←c66788;
   (void) XR←ExportType((word) "DragDataObj", (word) XR←GetTypeIndexS((word) (&string166)), (word) XR←GetTypeIndex((word) &string167, 0, (word) &string168)
      );
   (void) XR←ExportType((word) "EmbedDataObj", (word) XR←GetTypeIndexS((word) (&string169)), (word) XR←GetTypeIndex((word) &string170, 0, (word) &string171)
      );
   (void) XR←ExportType((word) "RefreshDataObj", (word) XR←GetTypeIndexS((word) (&string172)), (word) XR←GetTypeIndex((word) &string173, 0, (word) &string174)
      );
   }

static void GGMouseEventImplA←P0(formal←c0100, formal←c099)
   word formal←c0100;
   word formal←c099;
   {
   register ptr gf←c66884 =  (ptr) &globalframe;
   /* GGMouseEventImplA: */ 
SOURCE(501, 51470)
SOURCE(2415, 24)
   (* (( (ptr) gf←c66884)+4)/* Problem←v5380 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c66884)+258)/* var←c62724 */  ))+28)
    ) );
SOURCE(51932, 22)
   (void) RegisterMouseActions←P3300();
SOURCE(51956, 15)
   (void) RegisterModes←P3480();
   }

static void EasyAbort←P60(input←v7256, ggData←v7284, worldPt←v7312)
   word input←v7256;
   word ggData←v7284;
   W2 worldPt←v7312;
   {
   register ptr gf←c66916 =  (ptr) &globalframe;
   /* EasyAbort: */ 
SOURCE(2476, 224)
SOURCE(2553, 39)
   {
      word pd175;
      pd175 = (* (( (ptr) (* (( (ptr) gf←c66916)+259)/* var←c62756 */  ))+51) );
      (void) ( *( (fPt) ((*  (ptr) pd175 ))))((* ((( (ptr) ggData←v7284)+11)) ), pd175);
      };
SOURCE(2594, 60)
   {
      word pd176;
      pd176 = (* (( (ptr) (* (( (ptr) gf←c66916)+260)/* var←c62788 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd176 ))))((* (( (ptr) ggData←v7284)+13) ), (* (( (ptr) (* (( (ptr) ggData←v7284)+16) ))+10)
          ), pd176);
      };
SOURCE(2681, 19)
   (void) FinishAbort←P300(ggData←v7284);
   }

static void AbortAdd←P120(input←v7472, ggData←v7500, worldPt←v7528)
   word input←v7472;
   word ggData←v7500;
   W2 worldPt←v7528;
   {
   register ptr gf←c66948 =  (ptr) &globalframe;
   /* AbortAdd: */ 
SOURCE(2706, 303)
SOURCE(2782, 39)
   {
      word pd177;
      pd177 = (* (( (ptr) (* (( (ptr) gf←c66948)+261)/* var←c62820 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd177 ))))(ggData←v7500, 0, pd177);
      };
SOURCE(2823, 188)
   {
      word sliceD←v13448;
SOURCE(2825, 64)
      {
         word pd178;
         pd178 = (* (( (ptr) (* (( (ptr) gf←c66948)+260)/* var←c62788 */  ))+10) );
         sliceD←v13448 = (word) ( *( (fPt) ((*  (ptr) pd178 ))))((* ((( (ptr) ggData←v7500)+13)) ), pd178);
         };
SOURCE(2891, 97)
      if ((sliceD←v13448 != 0)) {
SOURCE(2910, 78)
         {
            word pd179;
            pd179 = (* (( (ptr) (* (( (ptr) gf←c66948)+262)/* var←c62852 */  ))+6) );
            (void) ( *( (fPt) ((*  (ptr) pd179 ))))(sliceD←v13448, (* (( (ptr) ggData←v7500)+11) ), 0, pd179);
            };
         };
SOURCE(2990, 19)
      (void) FinishAbort←P300(ggData←v7500);
      };
   }

static void AbortCopyAndDrag←P180(input←v7684, ggData←v7712, worldPt←v7740)
   word input←v7684;
   word ggData←v7712;
   W2 worldPt←v7740;
   {
   register ptr gf←c66980 =  (ptr) &globalframe;
   /* AbortCopyAndDrag: */ 
SOURCE(3018, 252)
SOURCE(3102, 44)
   {
      word var←c62884;
      word pd180;
      pd180 = (* (( (ptr) (* (( (ptr) gf←c66980)+259)/* var←c62756 */  ))+49) );
      var←c62884 = (word) ( *( (fPt) ((*  (ptr) pd180 ))))((* ((( (ptr) ggData←v7712)+11)) ), pd180);
      };
SOURCE(3148, 39)
   {
      word pd181;
      pd181 = (* (( (ptr) (* (( (ptr) gf←c66980)+259)/* var←c62756 */  ))+51) );
      (void) ( *( (fPt) ((*  (ptr) pd181 ))))((* ((( (ptr) ggData←v7712)+11)) ), pd181);
      };
SOURCE(3189, 60)
   {
      word pd182;
      pd182 = (* (( (ptr) (* (( (ptr) gf←c66980)+260)/* var←c62788 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) ggData←v7712)+13) ), (* (( (ptr) (* (( (ptr) ggData←v7712)+16) ))+10)
          ), pd182);
      };
SOURCE(3251, 19)
   (void) FinishAbort←P300(ggData←v7712);
   }

static void AbortBox←P240(input←v7896, ggData←v7924, worldPt←v7952)
   word input←v7896;
   word ggData←v7924;
   W2 worldPt←v7952;
   {
   /* AbortBox: */ 
SOURCE(3276, 120)
SOURCE(3352, 23)
   (void) FixupAbortedBox←P3240(ggData←v7924);
SOURCE(3377, 19)
   (void) FinishAbort←P300(ggData←v7924);
   }

static void FinishAbort←P300(ggData←v8108)
   word ggData←v8108;
   {
   register ptr gf←c67012 =  (ptr) &globalframe;
   /* FinishAbort: */ 
SOURCE(3402, 296)
SOURCE(3448, 41)
   {
      word pd183;
      pd183 = (* (( (ptr) (* (( (ptr) gf←c67012)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd183 ))))(ggData←v8108, pd183);
      };
SOURCE(3491, 64)
   {
      word pd184;
      pd184 = (* (( (ptr) (* (( (ptr) gf←c67012)+258)/* var←c62724 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd184 ))))((* (( (ptr) ggData←v8108)+3) ), 3, (* (( (ptr) gf←c67012)+127) ), (* (( (ptr) gf←c67012)+105)
          ), pd184);
      };
SOURCE(3557, 141)
   {
      word pd185;
      pd185 = (* (( (ptr) (* (( (ptr) gf←c67012)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd185 ))))((* (( (ptr) gf←c67012)+104) ), ggData←v8108, 0, 0, 0, 1, pd185);
      };
   }

static void InitializeFSM←P360(ggData←v8168)
   word ggData←v8168;
   {
   register ptr gf←c67044 =  (ptr) &globalframe;
   /* InitializeFSM: */ 
SOURCE(3704, 129)
SOURCE(3752, 20)
   (* (( (ptr) ggData←v8168)+10) ) = (* (( (ptr) gf←c67044)+99) );
SOURCE(3774, 24)
   (* (( (ptr) ggData←v8168)+9) ) = (* (( (ptr) gf←c67044)+99) );
SOURCE(3800, 33)
   (*  (ptr) (* (( (ptr) ggData←v8168)+16) ) ) = 2;
   }

static void ResetMouseMachinery←P420(ggData←v8228)
   word ggData←v8228;
   {
   register ptr gf←c67076 =  (ptr) &globalframe;
   /* ResetMouseMachinery: */ 
SOURCE(3839, 178)
SOURCE(3893, 24)
   (* (( (ptr) ggData←v8228)+9) ) = (* (( (ptr) gf←c67076)+99) );
SOURCE(3919, 20)
   (* (( (ptr) ggData←v8228)+10) ) = (* (( (ptr) gf←c67076)+99) );
SOURCE(3941, 33)
   (*  (ptr) (* (( (ptr) ggData←v8228)+16) ) ) = 2;
SOURCE(3976, 41)
   {
      word pd186;
      pd186 = (* (( (ptr) (* (( (ptr) gf←c67076)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd186 ))))(ggData←v8228, pd186);
      };
   }

static void SaveSavedState←P480(ggData←v8288)
   word ggData←v8288;
   {
   register ptr gf←c67108 =  (ptr) &globalframe;
   /* SaveSavedState: */ 
SOURCE(4023, 178)
SOURCE(4072, 36)
   {
      word pd187;
      pd187 = (* (( (ptr) (* (( (ptr) gf←c67108)+259)/* var←c62756 */  ))+50) );
      (void) ( *( (fPt) ((*  (ptr) pd187 ))))((* ((( (ptr) ggData←v8288)+11)) ), pd187);
      };
SOURCE(4110, 29)
   {
      word pd188;
      pd188 = (* (( (ptr) (* (( (ptr) gf←c67108)+264)/* var←c62948 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd188 ))))(ggData←v8288, pd188);
      };
SOURCE(4141, 60)
   {
      word pd189;
      pd189 = (* (( (ptr) (* (( (ptr) gf←c67108)+260)/* var←c62788 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd189 ))))((* (( (ptr) (* (( (ptr) ggData←v8288)+16) ))+10) ), (* (( (ptr) ggData←v8288)+13)
          ), pd189);
      };
   }

static void HandleMouseless←P540(ggData←v27152, event←v27180)
   word ggData←v27152;
   word event←v27180;
   {
   register ptr gf←c67140 =  (ptr) &globalframe;
   /* HandleMouseless: */ 
SOURCE(4206, 120)
SOURCE(4248, 50)
   {
      word var←c62980;
      word var←c63012;
      var←c62980 = XR←NewObject(8, (* (( (ptr) gf←c67140)+20) ));
      var←c63012 = var←c62980;
      (*  (ptr) var←c63012 ) = (*  (ptr) event←v27180 );
      (* (( (ptr) var←c63012)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c67140)+20) ));
      var←c63012 = (* (( (ptr) var←c63012)+1) );
      {
         word var←c63076;
         var←c63076 = XR←NewObject(8, (* (( (ptr) gf←c67140)+21) ));
         (*  (ptr) var←c63076 ) = (*  (ptr) &fc190 );
         (* (( (ptr) var←c63076)+1) ) = (*  (ptr) &fc190 );
         (*  (ptr) var←c63012 ) = var←c63076;
         };
      event←v27180 = var←c62980;
      };
SOURCE(4300, 26)
   (void) HandleMouse←P600(ggData←v27152, event←v27180);
   }

static void HandleMouse←P600(ggData←v27240, event←v27268)
   word ggData←v27240;
   word event←v27268;
   {
   /* HandleMouse: */ 
SOURCE(4332, 67)
SOURCE(4370, 29)
   (void) HandleMouseAux←P660(ggData←v27240, event←v27268, 2);
   }

static void HandleMouseAux←P660(formal←c0658, event←v8376, formal←c0659)
   word formal←c0658;
   word event←v8376;
   word formal←c0659;
   {
   W9 var←c67172;
   /* declaration of ggData←v8348 skipped */ 
   /* declaration of guardP←v8404 skipped */ 
   register ptr gf←c67204 =  (ptr) &globalframe;
   /* declaration of var←c63108 skipped */ 
   /* declaration of mE←v13492 skipped */ 
   (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ) = formal←c0658;
   (* (( (ptr) &var←c67172)+5)/* guardP←v8404 */  ) = formal←c0659;
   /* HandleMouseAux: */ 
SOURCE(4405, 3197)
   {
      word tmpAddr191;
      tmpAddr191 = (word) (( (ptr) &var←c67172)+6)/* var←c63108 */ ;
      (*  (ptr) tmpAddr191 ) = ( ((word)  (fPt) SetMouseMode←P3684) );
      (* (( (ptr) tmpAddr191) + 1) ) = 1;
      };
SOURCE(4501, 13)
   (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ) = 0;
SOURCE(4516, 3086)
   if (((* (( (ptr) (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ))+9) ) != (* (( (ptr) gf←c67204)+99) ))) {
SOURCE(4549, 511)
      {
         W2 point←v13536;
SOURCE(4565, 94)
         if (((*  (ptr) event←v8376 ) == (* (( (ptr) gf←c67204)+98) ))) {
SOURCE(4600, 39)
            (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ))+16) ))+1) ) = 0;
SOURCE(4641, 18)
            event←v8376 = (* (( (ptr) event←v8376)+1) );
            };
SOURCE(4664, 44)
         point←v13536 = (*  (W2Pt) XR←Narrow((*  (ptr) (* (( (ptr) event←v8376)+1) ) ), (* (( (ptr) gf←c67204)+21) )) );
SOURCE(4710, 31)
         (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ) = (word) FindMode←P3420((* ((( (ptr) (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ))+9)
            ) ));
SOURCE(4743, 313)
         if (((* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ) == 0)) {
SOURCE(4760, 47)
            {
               word var←c0132;
               var←c0132 = (* (( (ptr) gf←c67204)+97) );
               (void) (XR←RaiseSignal((* (( (ptr) gf←c67204)+4)/* Problem←v5380 */  ), 0, (word) &var←c0132));
               };
            }
         else {
SOURCE(4809, 247)
            if (((*  (ptr) (* (( (ptr) (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ))+16) ) ) == 1)) {
SOURCE(4851, 113)
               (void) HandleGuarded←P780((* (( (ptr) (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ))+1) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)
                     /* mE←v13492 */  ))+2) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ))+3) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)
                     /* mE←v13492 */  ))+4) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ))+5) ), event←v8376
                  , (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), point←v13536);
               }
            else {
SOURCE(4964, 92)
               (void) HandleUnGuarded←P900((* (( (ptr) (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ))+1) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)
                     /* mE←v13492 */  ))+2) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)/* mE←v13492 */  ))+3) ), (* (( (ptr) (* (( (ptr) &var←c67172)+8)
                     /* mE←v13492 */  ))+4) ), event←v8376, (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  )
                  , point←v13536);
               };
            };
         };
      }
   else {
SOURCE(5067, 2561)
      {
         word atom←v13620;
SOURCE(5347, 32)
         atom←v13620 = XR←Narrow((*  (ptr) event←v8376 ), (* (( (ptr) gf←c67204)+16) ));
SOURCE(5381, 2221)
         {
            word var←c63140;
            var←c63140 = atom←v13620;
            if ((var←c63140 == (* (( (ptr) gf←c67204)+98) ))) {
SOURCE(5414, 35)
               (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ))+16) ) ) = 0;
SOURCE(5451, 45)
               (void) HandleMouseAux←P660((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), (* (( (ptr) event←v8376)+1) ), 0);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+96) ))) {
SOURCE(5614, 23)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+93) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(5639, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+89) ))) {
SOURCE(5685, 18)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+88) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(5705, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+75) ))) {
SOURCE(5754, 24)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+29) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(5780, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+30) ))) {
SOURCE(5826, 18)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+31) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(5846, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+32) ))) {
SOURCE(5902, 28)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+33) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(5932, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+34) ))) {
SOURCE(5979, 19)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+35) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6000, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+36) ))) {
SOURCE(6054, 26)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+37) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6082, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+38) ))) {
SOURCE(6135, 25)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+39) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6162, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+40) ))) {
SOURCE(6211, 21)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+41) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6234, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+42) ))) {
SOURCE(6282, 20)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+43) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6304, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+44) ))) {
SOURCE(6355, 23)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+45) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6380, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+46) ))) {
SOURCE(6434, 26)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+47) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6462, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+48) ))) {
SOURCE(6519, 29)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+49) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6550, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+50) ))) {
SOURCE(6606, 28)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+51) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6636, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+52) ))) {
SOURCE(6695, 31)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+53) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6728, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+54) ))) {
SOURCE(6787, 31)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+55) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6820, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+56) ))) {
SOURCE(6882, 34)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+57) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(6918, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+58) ))) {
SOURCE(6975, 29)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+59) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7006, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+60) ))) {
SOURCE(7066, 32)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+61) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7100, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+62) ))) {
SOURCE(7158, 30)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+63) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7190, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+64) ))) {
SOURCE(7246, 28)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+65) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7276, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+66) ))) {
SOURCE(7334, 30)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+67) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7366, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+68) ))) {
SOURCE(7427, 33)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+69) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7462, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
            if ((var←c63140 == (* (( (ptr) gf←c67204)+70) ))) {
SOURCE(7521, 31)
               (void) SetMouseMode←P3684((* (( (ptr) gf←c67204)+71) ), (word) (( (bPt) &var←c67172)+24)/* var←c63108 */ );
SOURCE(7554, 26)
               (void) HandleMouse←P600((* (( (ptr) &var←c67172)+4)/* ggData←v8348 */  ), event←v8376);
               goto endif0192;
               };
SOURCE(7596, 6)
            return;
            endif0192: ;
            };
         };
      };
   }

static void SetMouseMode←P3684(mouseMode←v13696, formal←c67268)
   word mouseMode←v13696;
   word formal←c67268;
   {
   register ptr gf←c67236 =  (ptr) &globalframe;
   formal←c67268 = (formal←c67268 - 24);
   /* SetMouseMode: */ 
SOURCE(5069, 20)
SOURCE(5110, 28)
   (* (( (ptr) (* (( (ptr) formal←c67268)+4) ))+9) ) = mouseMode←v13696;
SOURCE(5140, 202)
   if (((* (( (ptr) formal←c67268)+5) ) == 2)) {
SOURCE(5167, 24)
      (* (( (ptr) formal←c67268)+8) ) = (word) FindMode←P3420(mouseMode←v13696);
SOURCE(5193, 108)
      if (((* (( (ptr) formal←c67268)+8) ) == 0)) {
SOURCE(5210, 56)
         {
            word var←c0136;
            var←c0136 = (* (( (ptr) gf←c67236)+72) );
            (void) (XR←RaiseSignal((* (( (ptr) gf←c67236)+4)/* Problem←v5380 */  ), 0, (word) &var←c0136));
            };
         }
      else {
SOURCE(5266, 35)
         (*  (ptr) (* (( (ptr) (* (( (ptr) formal←c67268)+4) ))+16) ) ) = (*  (ptr) (* (( (ptr) formal←c67268)+8) ) );
         };
      }
   else {
SOURCE(5310, 32)
      (*  (ptr) (* (( (ptr) (* (( (ptr) formal←c67268)+4) ))+16) ) ) = (* (( (ptr) formal←c67268)+5) );
      };
   }

static word Restart←P720(input←v8560, ggData←v8588)
   word input←v8560;
   word ggData←v8588;
   {
   register ptr gf←c67300 =  (ptr) &globalframe;
   word var←c8728;
   word mouseMode←v13724;
   word state←v13752;
   /* Restart: */ 
SOURCE(7634, 1211)
SOURCE(7708, 34)
   mouseMode←v13724 = (* (( (ptr) ggData←v8588)+9) );
SOURCE(7744, 33)
   state←v13752 = XR←Narrow((*  (ptr) input←v8560 ), (* (( (ptr) gf←c67300)+16) ));
SOURCE(7779, 1066)
   {
      word tc193;
      if (((((((((((((((( ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+93) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+96) )) : 0 )  ||  ( (mouseMode←v13724 == (* (
         ( (ptr) gf←c67300)+88) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+89) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+29)
       )) ? (state←v13752 == (* (( (ptr) gf←c67300)+75) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+31) )) ? (state←v13752 == (* (
         ( (ptr) gf←c67300)+30) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+35) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+34)
       )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+37) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+36) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (
         ( (ptr) gf←c67300)+39) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+38) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+41)
       )) ? (state←v13752 == (* (( (ptr) gf←c67300)+40) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+43) )) ? (state←v13752 == (* (
         ( (ptr) gf←c67300)+42) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+47) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+46)
       )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+51) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+50) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (
         ( (ptr) gf←c67300)+55) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+54) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+59)
       )) ? (state←v13752 == (* (( (ptr) gf←c67300)+58) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+63) )) ? (state←v13752 == (* (
         ( (ptr) gf←c67300)+62) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+65) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+64)
       )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (( (ptr) gf←c67300)+67) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+66) )) : 0 ) ) ||  ( (mouseMode←v13724 == (* (
         ( (ptr) gf←c67300)+69) )) ? (state←v13752 == (* (( (ptr) gf←c67300)+68) )) : 0 ) ) {
         tc193 =  (word)  (unsigned) 1;
         }
      else {
         if ((mouseMode←v13724 == (* (( (ptr) gf←c67300)+71) ))) {
            tc193 =  (word)  (unsigned) (state←v13752 == (* (( (ptr) gf←c67300)+70) ));
            }
         else {
            tc193 =  (word)  (unsigned) 0;
            };
         };
      return(tc193);
      };
   }

static void HandleGuarded←P780(startProc←v8788, duringProc←v8816, endProc←v8844, abortProc←v8872, continueProc←v8900, input←v8928, ggData←v8956, worldPt←v8984)
   word startProc←v8788;
   word duringProc←v8816;
   word endProc←v8844;
   word abortProc←v8872;
   word continueProc←v8900;
   word input←v8928;
   word ggData←v8956;
   W2 worldPt←v8984;
   {
   register ptr gf←c67332 =  (ptr) &globalframe;
   word genericAction←v13796 = 0;
   word atom←v13824 = 0;
   word atomName←v13852 = 0;
   word var←c63268;
   /* HandleGuarded: */ 
SOURCE(8851, 690)
SOURCE(9070, 45)
   {
      word pd194;
      pd194 = (* (( (ptr) (* (( (ptr) gf←c67332)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd194 ))))((* (( (ptr) gf←c67332)+73) ), (* (( (ptr) gf←c67332)+74) ), pd194);
      };
SOURCE(9117, 56)
   {
      word var←c63204;
      var←c63204 = (*  (ptr) input←v8928 );
      if ((var←c63204 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c67332)+28) ) == XR←GetReferentType(var←c63204))) {
         {
            word refChar←v13896;
            refChar←v13896 = var←c63204;
SOURCE(9167, 6)
            return;
            };
         }
      else {
         lab←L100000: ;
         };
      };
SOURCE(9226, 26)
   atom←v13824 = XR←Narrow((*  (ptr) input←v8928 ), (* (( (ptr) gf←c67332)+16) ));
SOURCE(9254, 30)
   {
      word pd195;
      pd195 = (* (( (ptr) (* (( (ptr) gf←c67332)+266)/* var←c63236 */  ))+9) );
      atomName←v13852 = (word) ( *( (fPt) ((*  (ptr) pd195 ))))(atom←v13824, pd195);
      };
SOURCE(9286, 95)
   {
      word pd197;
      {
         word pd196;
         pd196 = (* (( (ptr) (* (( (ptr) gf←c67332)+267)/* var←c63300 */  ))+17) );
         var←c63268 = (word) ( *( (fPt) ((*  (ptr) pd196 ))))(atomName←v13852, 0, 5, pd196);
         };
      pd197 = (* (( (ptr) (* (( (ptr) gf←c67332)+267)/* var←c63300 */  ))+8) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd197 ))))(var←c63268, (* (( (ptr) gf←c67332)+76) ), 1, pd197))) {
         genericAction←v13796 = (* (( (ptr) gf←c67332)+77) );
         }
      else {
         genericAction←v13796 = atom←v13824;
         };
      };
SOURCE(9383, 112)
   (void) HandleGuardedAux←P840(startProc←v8788, duringProc←v8816, endProc←v8844, abortProc←v8872, continueProc←v8900, genericAction←v13796
      , input←v8928, ggData←v8956, worldPt←v8984);
SOURCE(9497, 44)
   {
      word pd198;
      pd198 = (* (( (ptr) (* (( (ptr) gf←c67332)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd198 ))))((* (( (ptr) gf←c67332)+73) ), (* (( (ptr) gf←c67332)+74) ), pd198);
      };
   }

static void HandleGuardedAux←P840(startProc←v9140, duringProc←v9168, endProc←v9196, abortProc←v9224, continueProc←v9252, genericAction←v9280, input←v9308, ggData←v9336, worldPt←v9364)
   word startProc←v9140;
   word duringProc←v9168;
   word endProc←v9196;
   word abortProc←v9224;
   word continueProc←v9252;
   word genericAction←v9280;
   word input←v9308;
   word ggData←v9336;
   W2 worldPt←v9364;
   {
   register ptr gf←c67364 =  (ptr) &globalframe;
   /* HandleGuardedAux: */ 
SOURCE(9547, 2196)
SOURCE(9742, 2001)
   {
      word var←c63332;
      var←c63332 = (* (( (ptr) ggData←v9336)+10) );
      if ((var←c63332 == (* (( (ptr) gf←c67364)+99) ))) {
SOURCE(9778, 201)
         {
            word var←c63364;
            var←c63364 = genericAction←v9280;
            if ((var←c63364 == (* (( (ptr) gf←c67364)+77) ))) {
SOURCE(9816, 34)
               (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v9336)+16) ))+8) ) = worldPt←v9364;
SOURCE(9852, 127)
               if ((0 != (word) ( *( (fPt) ((*  (ptr) startProc←v9140 ))))(input←v9308, ggData←v9336, worldPt←v9364, startProc←v9140))) {
SOURCE(9894, 26)
                  (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+78) );
                  }
               else {
SOURCE(9921, 33)
                  (void) ( *( (fPt) ((*  (ptr) abortProc←v9224 ))))(input←v9308, ggData←v9336, worldPt←v9364, abortProc←v9224);
SOURCE(9956, 23)
                  (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+79) );
                  };
               };
            };
         goto endif0199;
         };
      if ((var←c63332 == (* (( (ptr) gf←c67364)+78) ))) {
SOURCE(10009, 556)
         {
            word var←c63396;
            var←c63396 = genericAction←v9280;
            if ((var←c63396 == (* (( (ptr) gf←c67364)+80) ))) {
SOURCE(10048, 34)
               (void) ( *( (fPt) ((*  (ptr) duringProc←v9168 ))))(input←v9308, ggData←v9336, worldPt←v9364, duringProc←v9168);
SOURCE(10084, 34)
               (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v9336)+16) ))+8) ) = worldPt←v9364;
               goto endif0200;
               };
            if ((var←c63396 == (* (( (ptr) gf←c67364)+81) )) || (var←c63396 == (* (( (ptr) gf←c67364)+82) ))) {
SOURCE(10151, 33)
               (void) ( *( (fPt) ((*  (ptr) abortProc←v9224 ))))(input←v9308, ggData←v9336, worldPt←v9364, abortProc←v9224);
SOURCE(10186, 23)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+79) );
               goto endif0200;
               };
            if ((var←c63396 == (* (( (ptr) gf←c67364)+83) ))) {
SOURCE(10224, 23)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+83) );
               goto endif0200;
               };
            if ((var←c63396 == (* (( (ptr) gf←c67364)+84) ))) {
SOURCE(10261, 23)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+84) );
               goto endif0200;
               };
            if ((var←c63396 == (* (( (ptr) gf←c67364)+77) ))) {
SOURCE(10424, 33)
               (void) ( *( (fPt) ((*  (ptr) abortProc←v9224 ))))(input←v9308, ggData←v9336, worldPt←v9364, abortProc←v9224);
SOURCE(10459, 20)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(10481, 24)
               (* (( (ptr) ggData←v9336)+9) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(10507, 58)
               (void) HandleMouseAux←P660(ggData←v9336, input←v9308, (* (( (ptr) (* (( (ptr) ggData←v9336)+16) ))+1) ));
               goto endif0200;
               };
            endif0200: ;
            };
         goto endif0199;
         };
      if ((var←c63332 == (* (( (ptr) gf←c67364)+83) ))) {
SOURCE(10596, 225)
         {
            word var←c63428;
            var←c63428 = genericAction←v9280;
            if ((var←c63428 == (* (( (ptr) gf←c67364)+85) ))) {
SOURCE(10634, 48)
               (void) ( *( (fPt) ((*  (ptr) endProc←v9196 ))))(input←v9308, ggData←v9336, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v9336)+16)
                      ))+8) ), endProc←v9196);
SOURCE(10684, 24)
               (* (( (ptr) ggData←v9336)+9) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(10710, 20)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+99) );
               }
            else {
               if ((var←c63428 == (* (( (ptr) gf←c67364)+81) )) || (var←c63428 == (* (( (ptr) gf←c67364)+82) ))) {
SOURCE(10763, 33)
                  (void) ( *( (fPt) ((*  (ptr) abortProc←v9224 ))))(input←v9308, ggData←v9336, worldPt←v9364, abortProc←v9224);
SOURCE(10798, 23)
                  (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+79) );
                  };
               };
            };
         goto endif0199;
         };
      if ((var←c63332 == (* (( (ptr) gf←c67364)+84) ))) {
SOURCE(10850, 706)
         {
            word var←c63460;
            var←c63460 = genericAction←v9280;
            if ((var←c63460 == (* (( (ptr) gf←c67364)+81) )) || (var←c63460 == (* (( (ptr) gf←c67364)+85) ))) {
SOURCE(10905, 48)
               (void) ( *( (fPt) ((*  (ptr) endProc←v9196 ))))(input←v9308, ggData←v9336, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v9336)+16)
                      ))+8) ), endProc←v9196);
SOURCE(10955, 24)
               (* (( (ptr) ggData←v9336)+9) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(10981, 20)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+99) );
               }
            else {
               if ((var←c63460 == (* (( (ptr) gf←c67364)+82) ))) {
SOURCE(11017, 33)
                  (void) ( *( (fPt) ((*  (ptr) abortProc←v9224 ))))(input←v9308, ggData←v9336, worldPt←v9364, abortProc←v9224);
SOURCE(11052, 23)
                  (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+79) );
                  }
               else {
                  if ((var←c63460 == (* (( (ptr) gf←c67364)+77) ))) {
SOURCE(11160, 396)
                     if ( ( (0 != (word) Restart←P720(input←v9308, ggData←v9336)) ? (continueProc←v9252 != 0) : 0 ) ) {
SOURCE(11216, 171)
                        if ((0 != (word) ( *( (fPt) ((*  (ptr) continueProc←v9252 ))))(input←v9308, ggData←v9336, worldPt←v9364, continueProc←v9252)
                        )) {
SOURCE(11263, 20)
                           (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+78) );
SOURCE(11285, 34)
                           (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v9336)+16) ))+8) ) = worldPt←v9364;
                           }
                        else {
SOURCE(11329, 33)
                           (void) ( *( (fPt) ((*  (ptr) abortProc←v9224 ))))(input←v9308, ggData←v9336, worldPt←v9364, abortProc←v9224);
SOURCE(11364, 23)
                           (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+79) );
                           };
                        }
                     else {
SOURCE(11400, 24)
                        (* (( (ptr) ggData←v9336)+9) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(11426, 48)
                        (void) ( *( (fPt) ((*  (ptr) endProc←v9196 ))))(input←v9308, ggData←v9336, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v9336)+16)
/*1*/    ))+8) ), endProc←v9196);
SOURCE(11476, 20)
                        (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(11498, 58)
                        (void) HandleMouseAux←P660(ggData←v9336, input←v9308, (* (( (ptr) (* (( (ptr) ggData←v9336)+16) ))+1) ));
                        };
                     };
                  };
               };
            };
         goto endif0199;
         };
      if ((var←c63332 == (* (( (ptr) gf←c67364)+79) ))) {
SOURCE(11590, 83)
         {
            word var←c63492;
            var←c63492 = genericAction←v9280;
            if ((var←c63492 == (* (( (ptr) gf←c67364)+85) ))) {
SOURCE(11627, 20)
               (* (( (ptr) ggData←v9336)+10) ) = (* (( (ptr) gf←c67364)+99) );
SOURCE(11649, 24)
               (* (( (ptr) ggData←v9336)+9) ) = (* (( (ptr) gf←c67364)+99) );
               };
            };
         goto endif0199;
         };
SOURCE(11699, 44)
      {
         word var←c0171;
         var←c0171 = (* (( (ptr) gf←c67364)+86) );
         (void) (XR←RaiseSignal((* (( (ptr) gf←c67364)+4)/* Problem←v5380 */  ), 0, (word) &var←c0171));
         };
      goto endif0199;
      endif0199: ;
      };
   }

static void HandleUnGuarded←P900(startProc←v9520, duringProc←v9548, endProc←v9576, abortProc←v9604, input←v9632, ggData←v9660, worldPt←v9688)
   word startProc←v9520;
   word duringProc←v9548;
   word endProc←v9576;
   word abortProc←v9604;
   word input←v9632;
   word ggData←v9660;
   W2 worldPt←v9688;
   {
   register ptr gf←c67396 =  (ptr) &globalframe;
   word genericAction←v13952 = 0;
   word atom←v13980 = 0;
   word atomName←v14008 = 0;
   word var←c63556;
   /* HandleUnGuarded: */ 
SOURCE(11749, 562)
SOURCE(11945, 56)
   {
      word var←c63524;
      var←c63524 = (*  (ptr) input←v9632 );
      if ((var←c63524 == 0)) {
         goto lab←L100001;
         };
      if (((* (( (ptr) gf←c67396)+28) ) == XR←GetReferentType(var←c63524))) {
         {
            word refChar←v14052;
            refChar←v14052 = var←c63524;
SOURCE(11995, 6)
            return;
            };
         }
      else {
         lab←L100001: ;
         };
      };
SOURCE(12054, 26)
   atom←v13980 = XR←Narrow((*  (ptr) input←v9632 ), (* (( (ptr) gf←c67396)+16) ));
SOURCE(12082, 30)
   {
      word pd201;
      pd201 = (* (( (ptr) (* (( (ptr) gf←c67396)+266)/* var←c63236 */  ))+9) );
      atomName←v14008 = (word) ( *( (fPt) ((*  (ptr) pd201 ))))(atom←v13980, pd201);
      };
SOURCE(12114, 95)
   {
      word pd203;
      {
         word pd202;
         pd202 = (* (( (ptr) (* (( (ptr) gf←c67396)+267)/* var←c63300 */  ))+17) );
         var←c63556 = (word) ( *( (fPt) ((*  (ptr) pd202 ))))(atomName←v14008, 0, 5, pd202);
         };
      pd203 = (* (( (ptr) (* (( (ptr) gf←c67396)+267)/* var←c63300 */  ))+8) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd203 ))))(var←c63556, (* (( (ptr) gf←c67396)+76) ), 1, pd203))) {
         genericAction←v13952 = (* (( (ptr) gf←c67396)+77) );
         }
      else {
         genericAction←v13952 = atom←v13980;
         };
      };
SOURCE(12211, 100)
   (void) HandleUnGuardedAux←P960(startProc←v9520, duringProc←v9548, endProc←v9576, abortProc←v9604, genericAction←v13952, input←v9632
      , ggData←v9660, worldPt←v9688);
   }

static void HandleUnGuardedAux←P960(startProc←v9844, duringProc←v9872, endProc←v9900, abortProc←v9928, genericAction←v9956, input←v9984, ggData←v10012, worldPt←v10040)
   word startProc←v9844;
   word duringProc←v9872;
   word endProc←v9900;
   word abortProc←v9928;
   word genericAction←v9956;
   word input←v9984;
   word ggData←v10012;
   W2 worldPt←v10040;
   {
   register ptr gf←c67428 =  (ptr) &globalframe;
   /* HandleUnGuardedAux: */ 
SOURCE(12317, 1177)
SOURCE(12489, 1005)
   {
      word var←c63588;
      var←c63588 = (* (( (ptr) ggData←v10012)+10) );
      if ((var←c63588 == (* (( (ptr) gf←c67428)+99) ))) {
SOURCE(12525, 165)
         {
            word var←c63620;
            var←c63620 = genericAction←v9956;
            if ((var←c63620 == (* (( (ptr) gf←c67428)+77) ))) {
SOURCE(12563, 127)
               if ((0 != (word) ( *( (fPt) ((*  (ptr) startProc←v9844 ))))(input←v9984, ggData←v10012, worldPt←v10040, startProc←v9844))) {
SOURCE(12605, 26)
                  (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+78) );
                  }
               else {
SOURCE(12632, 33)
                  (void) ( *( (fPt) ((*  (ptr) abortProc←v9928 ))))(input←v9984, ggData←v10012, worldPt←v10040, abortProc←v9928);
SOURCE(12667, 23)
                  (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+79) );
                  };
               };
            };
         goto endif0204;
         };
      if ((var←c63588 == (* (( (ptr) gf←c67428)+78) ))) {
SOURCE(12718, 530)
         {
            word var←c63652;
            var←c63652 = genericAction←v9956;
            if ((var←c63652 == (* (( (ptr) gf←c67428)+80) ))) {
SOURCE(12755, 34)
               (void) ( *( (fPt) ((*  (ptr) duringProc←v9872 ))))(input←v9984, ggData←v10012, worldPt←v10040, duringProc←v9872);
               goto endif0205;
               };
            if ((var←c63652 == (* (( (ptr) gf←c67428)+84) )) || (var←c63652 == (* (( (ptr) gf←c67428)+85) ))) {
SOURCE(12813, 31)
               (void) ( *( (fPt) ((*  (ptr) endProc←v9900 ))))(input←v9984, ggData←v10012, worldPt←v10040, endProc←v9900);
SOURCE(12846, 20)
               (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+99) );
SOURCE(12868, 24)
               (* (( (ptr) ggData←v10012)+9) ) = (* (( (ptr) gf←c67428)+99) );
               goto endif0205;
               };
            if ((var←c63652 == (* (( (ptr) gf←c67428)+82) ))) {
SOURCE(12908, 33)
               (void) ( *( (fPt) ((*  (ptr) abortProc←v9928 ))))(input←v9984, ggData←v10012, worldPt←v10040, abortProc←v9928);
SOURCE(12943, 23)
               (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+79) );
               goto endif0205;
               };
            if ((var←c63652 == (* (( (ptr) gf←c67428)+77) ))) {
SOURCE(13107, 33)
               (void) ( *( (fPt) ((*  (ptr) abortProc←v9928 ))))(input←v9984, ggData←v10012, worldPt←v10040, abortProc←v9928);
SOURCE(13142, 20)
               (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+99) );
SOURCE(13164, 24)
               (* (( (ptr) ggData←v10012)+9) ) = (* (( (ptr) gf←c67428)+99) );
SOURCE(13190, 58)
               (void) HandleMouseAux←P660(ggData←v10012, input←v9984, (* (( (ptr) (* (( (ptr) ggData←v10012)+16) ))+1) ));
               goto endif0205;
               };
            endif0205: ;
            };
         goto endif0204;
         };
      if ((var←c63588 == (* (( (ptr) gf←c67428)+79) ))) {
SOURCE(13279, 145)
         {
            word var←c63684;
            var←c63684 = genericAction←v9956;
            if ((var←c63684 == (* (( (ptr) gf←c67428)+85) ))) {
SOURCE(13316, 20)
               (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+99) );
SOURCE(13338, 24)
               (* (( (ptr) ggData←v10012)+9) ) = (* (( (ptr) gf←c67428)+99) );
               }
            else {
               if ((var←c63684 == (* (( (ptr) gf←c67428)+84) ))) {
SOURCE(13378, 20)
                  (* (( (ptr) ggData←v10012)+10) ) = (* (( (ptr) gf←c67428)+99) );
SOURCE(13400, 24)
                  (* (( (ptr) ggData←v10012)+9) ) = (* (( (ptr) gf←c67428)+99) );
                  };
               };
            };
         goto endif0204;
         };
SOURCE(13450, 44)
      {
         word var←c0197;
         var←c0197 = (* (( (ptr) gf←c67428)+86) );
         (void) (XR←RaiseSignal((* (( (ptr) gf←c67428)+4)/* Problem←v5380 */  ), 0, (word) &var←c0197));
         };
      goto endif0204;
      endif0204: ;
      };
   }

static word StartCaretPos←P1020(input←v27328, ggData←v27356, worldPt←v27384)
   word input←v27328;
   word ggData←v27356;
   W2 worldPt←v27384;
   {
   register ptr gf←c67460 =  (ptr) &globalframe;
   word success←v27428;
   W2 resultPoint←v14108;
   W2 normal←v14136;
   word feature←v14164 = 0;
   word hitData←v14192 = 0;
   /* StartCaretPos: */ 
SOURCE(13501, 868)
SOURCE(13501, 868)
   success←v27428 = 1;
SOURCE(13607, 45)
   {
      word pd206;
      pd206 = (* (( (ptr) (* (( (ptr) gf←c67460)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd206 ))))((* (( (ptr) gf←c67460)+96) ), (* (( (ptr) gf←c67460)+74) ), pd206);
      };
SOURCE(13654, 22)
   (void) SaveSavedState←P480(ggData←v27356);
SOURCE(13678, 43)
   {
      word pd207;
      pd207 = (* (( (ptr) (* (( (ptr) gf←c67460)+263)/* var←c62916 */  ))+21) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd207 ))))(ggData←v27356, pd207))) {
SOURCE(13721, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(13728, 55)
   {
      word pd208;
      pd208 = (* (( (ptr) (* (( (ptr) gf←c67460)+260)/* var←c62788 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd208 ))))((word) (( (bPt) (* (( (ptr) ggData←v27356)+16) ))+8), (* (( (ptr) ggData←v27356)+13)
          ), pd208);
      };
SOURCE(13785, 123)
   {
      word pd209;
      pd209 = (* (( (ptr) (* (( (ptr) gf←c67460)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd209 ))))(ggData←v27356, 0, 1, 0, 0, 0
         , 1, 1, 1, 0, pd209);
      };
SOURCE(13910, 151)
   {
      W6 var←c63748;
      {
         word pd210;
         pd210 = (* (( (ptr) (* (( (ptr) gf←c67460)+268)/* var←c63716 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd210 ))))((word) &var←c63748, worldPt←v27384, (*  (ptr) (* (( (ptr) ggData←v27356)+18) ) ), (* (
               ( (ptr) (* (( (ptr) ggData←v27356)+18) ))+4) ), (* (( (ptr) (* (( (ptr) ggData←v27356)+18) ))+8) ), ggData←v27356
            , 1, pd210);
         };
      hitData←v14192 = var←c63748.f5;
      feature←v14164 = var←c63748.f4;
      normal←v14136 = (*  (W2Pt) (( (ptr) &var←c63748)+2) );
      resultPoint←v14108 = (*  (W2Pt) &var←c63748 );
      };
SOURCE(14063, 64)
   (void) SetCaretAttractor←P1200(ggData←v27356, resultPoint←v14108, normal←v14136, feature←v14164, hitData←v14192, (* (( (ptr) gf←c67460)+139)
       ));
SOURCE(14160, 132)
   {
      word pd211;
      pd211 = (* (( (ptr) (* (( (ptr) gf←c67460)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd211 ))))((* (( (ptr) gf←c67460)+96) ), ggData←v27356, 4, 0, 0, 1, pd211);
      };
SOURCE(14325, 44)
   {
      word pd212;
      pd212 = (* (( (ptr) (* (( (ptr) gf←c67460)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd212 ))))((* (( (ptr) gf←c67460)+96) ), (* (( (ptr) gf←c67460)+74) ), pd212);
      };
SOURCE(13501, 868)
   return(success←v27428);
   }

static void DuringCaretPos←P1080(input←v27488, ggData←v27516, worldPt←v27544)
   word input←v27488;
   word ggData←v27516;
   W2 worldPt←v27544;
   {
   register ptr gf←c67492 =  (ptr) &globalframe;
   W2 resultPoint←v14248;
   W2 normal←v14276;
   word feature←v14304 = 0;
   word hitData←v14332 = 0;
   /* DuringCaretPos: */ 
SOURCE(14375, 709)
SOURCE(14482, 46)
   {
      word pd213;
      pd213 = (* (( (ptr) (* (( (ptr) gf←c67492)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd213 ))))((* (( (ptr) gf←c67492)+87) ), (* (( (ptr) gf←c67492)+74) ), pd213);
      };
SOURCE(14530, 151)
   {
      W6 var←c63780;
      {
         word pd214;
         pd214 = (* (( (ptr) (* (( (ptr) gf←c67492)+268)/* var←c63716 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd214 ))))((word) &var←c63780, worldPt←v27544, (*  (ptr) (* (( (ptr) ggData←v27516)+18) ) ), (* (
               ( (ptr) (* (( (ptr) ggData←v27516)+18) ))+4) ), (* (( (ptr) (* (( (ptr) ggData←v27516)+18) ))+8) ), ggData←v27516
            , 1, pd214);
         };
      hitData←v14332 = var←c63780.f5;
      feature←v14304 = var←c63780.f4;
      normal←v14276 = (*  (W2Pt) (( (ptr) &var←c63780)+2) );
      resultPoint←v14248 = (*  (W2Pt) &var←c63780 );
      };
SOURCE(14684, 90)
   {
      word pd215;
      pd215 = (* (( (ptr) (* (( (ptr) gf←c67492)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd215 ))))(ggData←v27516, 0, 1, 0, 0, 0
         , 0, 0, 1, 0, pd215);
      };
SOURCE(14776, 64)
   (void) SetCaretAttractor←P1200(ggData←v27516, resultPoint←v14248, normal←v14276, feature←v14304, hitData←v14332, (* (( (ptr) gf←c67492)+139)
       ));
SOURCE(14873, 133)
   {
      word pd216;
      pd216 = (* (( (ptr) (* (( (ptr) gf←c67492)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd216 ))))((* (( (ptr) gf←c67492)+87) ), ggData←v27516, 4, 0, 0, 1, pd216);
      };
SOURCE(15039, 45)
   {
      word pd217;
      pd217 = (* (( (ptr) (* (( (ptr) gf←c67492)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd217 ))))((* (( (ptr) gf←c67492)+87) ), (* (( (ptr) gf←c67492)+74) ), pd217);
      };
   }

static void EndCaretPos←P1140(input←v27604, ggData←v27632, worldPt←v27660)
   word input←v27604;
   word ggData←v27632;
   W2 worldPt←v27660;
   {
   register ptr gf←c67524 =  (ptr) &globalframe;
   W2 resultPoint←v14388;
   W2 normal←v14416;
   word feature←v14444 = 0;
   word hitData←v14472 = 0;
   word currentObjects←v14500;
   word sceneObjects←v14528;
   /* EndCaretPos: */ 
SOURCE(15115, 835)
SOURCE(15219, 58)
   currentObjects←v14500 = (* (( (ptr) (* (( (ptr) ggData←v27632)+18) ))+4) );
SOURCE(15279, 58)
   sceneObjects←v14528 = (* (( (ptr) (* (( (ptr) ggData←v27632)+18) ))+8) );
SOURCE(15339, 43)
   {
      word pd218;
      pd218 = (* (( (ptr) (* (( (ptr) gf←c67524)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd218 ))))((* (( (ptr) gf←c67524)+90) ), (* (( (ptr) gf←c67524)+74) ), pd218);
      };
SOURCE(15384, 131)
   {
      W6 var←c63812;
      {
         word pd219;
         pd219 = (* (( (ptr) (* (( (ptr) gf←c67524)+268)/* var←c63716 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd219 ))))((word) &var←c63812, worldPt←v27660, (*  (ptr) (* (( (ptr) ggData←v27632)+18) ) ), currentObjects←v14500, sceneObjects←v14528, ggData←v27632
            , 1, pd219);
         };
      hitData←v14472 = var←c63812.f5;
      feature←v14444 = var←c63812.f4;
      normal←v14416 = (*  (W2Pt) (( (ptr) &var←c63812)+2) );
      resultPoint←v14388 = (*  (W2Pt) &var←c63812 );
      };
SOURCE(15517, 73)
   (void) SetCaretAttractor←P1200(ggData←v27632, resultPoint←v14388, normal←v14416, feature←v14444, hitData←v14472, (* (( (ptr) gf←c67524)+91)
       ));
SOURCE(15623, 28)
   {
      word pd220;
      pd220 = (* (( (ptr) (* (( (ptr) gf←c67524)+264)/* var←c62948 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd220 ))))(ggData←v27632, pd220);
      };
SOURCE(15653, 32)
   {
      word pd221;
      pd221 = (* (( (ptr) (* (( (ptr) gf←c67524)+260)/* var←c62788 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd221 ))))((* (( (ptr) ggData←v27632)+13) ), 0, pd221);
      };
SOURCE(15745, 30)
   {
      word pd222;
      pd222 = (* (( (ptr) (* (( (ptr) gf←c67524)+263)/* var←c62916 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd222 ))))(ggData←v27632, pd222);
      };
SOURCE(15777, 129)
   {
      word pd223;
      pd223 = (* (( (ptr) (* (( (ptr) gf←c67524)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd223 ))))((* (( (ptr) gf←c67524)+92) ), ggData←v27632, 4, 0, 0, 1, pd223);
      };
SOURCE(15908, 42)
   {
      word pd224;
      pd224 = (* (( (ptr) (* (( (ptr) gf←c67524)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd224 ))))((* (( (ptr) gf←c67524)+90) ), (* (( (ptr) gf←c67524)+74) ), pd224);
      };
   }

static void SetCaretAttractor←P1200(ggData←v10196, mapPoint←v10224, normal←v10252, feature←v10280, hitData←v10308, action←v10336)
   word ggData←v10196;
   W2 mapPoint←v10224;
   W2 normal←v10252;
   word feature←v10280;
   word hitData←v10308;
   word action←v10336;
   {
   register ptr gf←c67556 =  (ptr) &globalframe;
   word scale←v14584;
   /* SetCaretAttractor: */ 
SOURCE(15975, 2528)
SOURCE(16117, 17)
   scale←v14584 = (*  (ptr) &fc225 );
SOURCE(16136, 1567)
   if ((feature←v10280 == 0)) {
SOURCE(16158, 63)
      {
         word pd226;
         pd226 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd226 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, 0, pd226);
         };
      }
   else {
SOURCE(16223, 1480)
      {
         word var←c63844;
         var←c63844 = (*  (ptr) feature←v10280 );
         switch (var←c63844) {
            case 0: 
SOURCE(16257, 200)
               {
                  word partsD←v14628 = 0;
                  word slideD←v14656;
SOURCE(16284, 47)
                  slideD←v14656 = XR←Narrow((* (( (ptr) feature←v10280)+1) ), (* (( (ptr) gf←c67556)+13) ));
SOURCE(16333, 60)
                  {
                     word pd227;
                     pd227 = (* (( (ptr) (* (( (ptr) gf←c67556)+269)/* var←c63876 */  ))+29) );
                     partsD←v14628 = (word) ( *( (fPt) ((*  (ptr) pd227 ))))((*  (ptr) slideD←v14656 ), hitData←v10308, 0, pd227);
                     };
SOURCE(16395, 60)
                  {
                     word pd228;
                     pd228 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
                     (void) ( *( (fPt) ((*  (ptr) pd228 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, partsD←v14628, pd228)
                     ;
                     };
                  };
               break;
            case 6: 
SOURCE(16481, 693)
               {
                  word alignPoint←v14700;
                  word curve1←v14728 = 0;
                  word curve2←v14756 = 0;
SOURCE(16483, 50)
                  alignPoint←v14700 = XR←Narrow((* (( (ptr) feature←v10280)+1) ), (* (( (ptr) gf←c67556)+25) ));
SOURCE(16564, 26)
                  curve1←v14728 = (* (( (ptr) alignPoint←v14700)+3) );
SOURCE(16592, 26)
                  curve2←v14756 = (* (( (ptr) alignPoint←v14700)+4) );
SOURCE(16620, 551)
                  if ((hitData←v10308 == 0)) {
SOURCE(16642, 70)
                     {
                        word pd229;
                        pd229 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
                        (void) ( *( (fPt) ((*  (ptr) pd229 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, alignPoint←v14700, pd229)
                        ;
                        };
                     }
                  else {
SOURCE(16712, 459)
                     {
                        word attractorD←v14800 = 0;
SOURCE(16743, 329)
                        if (((*  (ptr) curve1←v14728 ) == 0)) {
SOURCE(16773, 121)
                           {
/*1*/   word var←c63908;
/*1*/   var←c63908 = (* (( (ptr) curve1←v14728)+1) );
/*1*/   if ((var←c63908 == 0)) {
/*1*/      goto lab←L100002;
/*1*/      };
/*1*/   if (((* (( (ptr) gf←c67556)+13) ) == XR←GetReferentType(var←c63908))) {
/*1*/      {
/*1*/         word sliceD←v14844;
/*1*/         sliceD←v14844 = var←c63908;
SOURCE(16830, 64)
/*1*/         {
/*1*/            word pd230;
/*1*/            pd230 = (* (( (ptr) (* (( (ptr) gf←c67556)+269)/* var←c63876 */  ))+29) );
/*1*/            attractorD←v14800 = (word) ( *( (fPt) ((*  (ptr) pd230 ))))((*  (ptr) sliceD←v14844 ), hitData←v10308, 0, pd230);
/*1*/            };
/*1*/         };
/*1*/      }
/*1*/   else {
/*1*/      lab←L100002: ;
SOURCE(16907, 5)
/*1*/      (void) XR←RaiseUnnamedError();
/*1*/      };
/*1*/   };
                           }
                        else {
SOURCE(16921, 151)
                           if (((*  (ptr) curve2←v14756 ) == 0)) {
SOURCE(16951, 121)
/*1*/   {
/*1*/      word var←c63940;
/*1*/      var←c63940 = (* (( (ptr) curve2←v14756)+1) );
/*1*/      if ((var←c63940 == 0)) {
/*1*/         goto lab←L100003;
/*1*/         };
/*1*/      if (((* (( (ptr) gf←c67556)+13) ) == XR←GetReferentType(var←c63940))) {
/*1*/         {
/*1*/            word sliceD←v14888;
/*1*/            sliceD←v14888 = var←c63940;
SOURCE(17008, 64)
/*1*/            {
/*1*/               word pd231;
/*1*/               pd231 = (* (( (ptr) (* (( (ptr) gf←c67556)+269)/* var←c63876 */  ))+29) );
/*1*/               attractorD←v14800 = (word) ( *( (fPt) ((*  (ptr) pd231 ))))((*  (ptr) sliceD←v14888 ), hitData←v10308, 0, pd231);
/*1*/               };
/*1*/            };
/*1*/         }
/*1*/      else {
/*1*/         lab←L100003: ;
SOURCE(17085, 5)
/*1*/         (void) XR←RaiseUnnamedError();
/*1*/         };
/*1*/      };
/*1*/   }
                           else {
SOURCE(17099, 5)
/*1*/   (void) XR←RaiseUnnamedError();
/*1*/   };
                           };
SOURCE(17106, 65)
                        {
                           word pd232;
                           pd232 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
                           (void) ( *( (fPt) ((*  (ptr) pd232 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, attractorD←v14800, pd232)
                           ;
                           };
                        };
                     };
                  };
               break;
            case 7: 
SOURCE(17191, 426)
               if ((hitData←v10308 == 0)) {
SOURCE(17213, 63)
                  {
                     word pd233;
                     pd233 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
                     (void) ( *( (fPt) ((*  (ptr) pd233 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, 0, pd233);
                     };
                  }
               else {
SOURCE(17276, 343)
                  {
                     word attractorD←v14932 = 0;
                     word alignPoint←v14960;
                     word curveFeature←v14988;
SOURCE(17307, 50)
                     alignPoint←v14960 = XR←Narrow((* (( (ptr) feature←v10280)+1) ), (* (( (ptr) gf←c67556)+25) ));
SOURCE(17359, 45)
                     curveFeature←v14988 = (* (( (ptr) alignPoint←v14960)+3) );
SOURCE(17406, 127)
                     {
                        word var←c63972;
                        var←c63972 = (* (( (ptr) curveFeature←v14988)+1) );
                        if ((var←c63972 == 0)) {
                           goto lab←L100004;
                           };
                        if (((* (( (ptr) gf←c67556)+13) ) == XR←GetReferentType(var←c63972))) {
                           {
/*1*/   word sliceD←v15032;
/*1*/   sliceD←v15032 = var←c63972;
SOURCE(17469, 64)
/*1*/   {
/*1*/      word pd234;
/*1*/      pd234 = (* (( (ptr) (* (( (ptr) gf←c67556)+269)/* var←c63876 */  ))+29) );
/*1*/      attractorD←v14932 = (word) ( *( (fPt) ((*  (ptr) pd234 ))))((*  (ptr) sliceD←v15032 ), hitData←v10308, 0, pd234);
/*1*/      };
/*1*/   };
                           }
                        else {
                           lab←L100004: ;
SOURCE(17546, 5)
                           (void) XR←RaiseUnnamedError();
                           };
                        };
SOURCE(17553, 64)
                     {
                        word pd235;
                        pd235 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
                        (void) ( *( (fPt) ((*  (ptr) pd235 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, attractorD←v14932, pd235)
                        ;
                        };
                     };
                  };
               break;
            default: 
SOURCE(17636, 67)
               {
                  word pd236;
                  pd236 = (* (( (ptr) (* (( (ptr) gf←c67556)+260)/* var←c62788 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd236 ))))((* (( (ptr) ggData←v10196)+13) ), mapPoint←v10224, normal←v10252, (* (( (ptr) feature←v10280)+1)
                      ), pd236);
                  };
               break;
            };
         };
      };
SOURCE(17708, 36)
   {
      word pd237;
      pd237 = (* (( (ptr) (* (( (ptr) gf←c67556)+270)/* var←c64004 */  ))+98) );
      scale←v14584 = (word) ( *( (fPt) ((*  (ptr) pd237 ))))(ggData←v10196, pd237);
      };
SOURCE(17746, 757)
   if ((action←v10336 == 0)) {
SOURCE(17768, 331)
      {
         word var←c64036;
         {
            word var←c64068;
            word var←c64100;
            var←c64068 = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64100 = var←c64068;
            (*  (ptr) var←c64100 ) = 11;
            {
               word pd238;
               pd238 = (* (( (ptr) (* (( (ptr) gf←c67556)+271)/* var←c64164 */  ))+4) );
               (* (( (ptr) var←c64100)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd238 ))))(feature←v10280, hitData←v10308, ggData←v10196, pd238)
               ;
               };
            (* (( (ptr) var←c64100)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64100 = (* (( (ptr) var←c64100)+2) );
            (*  (ptr) var←c64100 ) = 8;
            {
               word x239;
               word x240;
               *(float*)(( (ptr) var←c64100)+1) = (
                  x239 = mapPoint←v10224.f0,  *(float*)&x239
                  ) / (
                  x240 = scale←v14584,  *(float*)&x240
                  );
               };
            (* (( (ptr) var←c64100)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64100 = (* (( (ptr) var←c64100)+2) );
            (*  (ptr) var←c64100 ) = 8;
            {
               word x241;
               word x242;
               *(float*)(( (ptr) var←c64100)+1) = (
                  x241 = mapPoint←v10224.f1,  *(float*)&x241
                  ) / (
                  x242 = scale←v14584,  *(float*)&x242
                  );
               };
            (* (( (ptr) var←c64100)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64100 = (* (( (ptr) var←c64100)+2) );
            (*  (ptr) var←c64100 ) = 8;
            {
               word x243;
               word x244;
               word x245;
               *(float*)(( (ptr) var←c64100)+1) = ((
                  x243 = mapPoint←v10224.f0,  *(float*)&x243
                  ) - (
                  x244 = (* (( (ptr) (* (( (ptr) ggData←v10196)+16) ))+2) ),  *(float*)&x244
                  )) / (
                  x245 = scale←v14584,  *(float*)&x245
                  );
               };
            (* (( (ptr) var←c64100)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64100 = (* (( (ptr) var←c64100)+2) );
            (*  (ptr) var←c64100 ) = 8;
            {
               word x246;
               word x247;
               word x248;
               *(float*)(( (ptr) var←c64100)+1) = ((
                  x246 = mapPoint←v10224.f1,  *(float*)&x246
                  ) - (
                  x247 = (* (( (ptr) (* (( (ptr) ggData←v10196)+16) ))+3) ),  *(float*)&x247
                  )) / (
                  x248 = scale←v14584,  *(float*)&x248
                  );
               };
            var←c64036 = var←c64068;
            };
         {
            word pd249;
            pd249 = (* (( (ptr) (* (( (ptr) gf←c67556)+258)/* var←c62724 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd249 ))))((* (( (ptr) ggData←v10196)+3) ), 0, (* (( (ptr) gf←c67556)+94) ), (* (( (ptr) gf←c67556)+95)
                ), var←c64036, pd249);
            };
         };
      }
   else {
SOURCE(18101, 220)
      {
         word var←c64196;
         {
            word var←c64228;
            word var←c64260;
            var←c64228 = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64260 = var←c64228;
            (*  (ptr) var←c64260 ) = 11;
            (* (( (ptr) var←c64260)+1) ) = action←v10336;
            (* (( (ptr) var←c64260)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64260 = (* (( (ptr) var←c64260)+2) );
            (*  (ptr) var←c64260 ) = 11;
            {
               word pd250;
               pd250 = (* (( (ptr) (* (( (ptr) gf←c67556)+271)/* var←c64164 */  ))+4) );
               (* (( (ptr) var←c64260)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd250 ))))(feature←v10280, hitData←v10308, ggData←v10196, pd250)
               ;
               };
            (* (( (ptr) var←c64260)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64260 = (* (( (ptr) var←c64260)+2) );
            (*  (ptr) var←c64260 ) = 8;
            {
               word x251;
               word x252;
               *(float*)(( (ptr) var←c64260)+1) = (
                  x251 = mapPoint←v10224.f0,  *(float*)&x251
                  ) / (
                  x252 = scale←v14584,  *(float*)&x252
                  );
               };
            (* (( (ptr) var←c64260)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64260 = (* (( (ptr) var←c64260)+2) );
            (*  (ptr) var←c64260 ) = 8;
            {
               word x253;
               word x254;
               *(float*)(( (ptr) var←c64260)+1) = (
                  x253 = mapPoint←v10224.f1,  *(float*)&x253
                  ) / (
                  x254 = scale←v14584,  *(float*)&x254
                  );
               };
            var←c64196 = var←c64228;
            };
         {
            word pd255;
            pd255 = (* (( (ptr) (* (( (ptr) gf←c67556)+258)/* var←c62724 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd255 ))))((* (( (ptr) ggData←v10196)+3) ), 1, (* (( (ptr) gf←c67556)+94) ), (* (( (ptr) gf←c67556)+100)
                ), var←c64196, pd255);
            };
         };
SOURCE(18323, 180)
      {
         word var←c64324;
         {
            word var←c64356;
            word var←c64388;
            var←c64356 = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64388 = var←c64356;
            (*  (ptr) var←c64388 ) = 8;
            {
               word x256;
               word x257;
               word x258;
               *(float*)(( (ptr) var←c64388)+1) = ((
                  x256 = mapPoint←v10224.f0,  *(float*)&x256
                  ) - (
                  x257 = (* (( (ptr) (* (( (ptr) ggData←v10196)+16) ))+2) ),  *(float*)&x257
                  )) / (
                  x258 = scale←v14584,  *(float*)&x258
                  );
               };
            (* (( (ptr) var←c64388)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c67556)+24) ));
            var←c64388 = (* (( (ptr) var←c64388)+2) );
            (*  (ptr) var←c64388 ) = 8;
            {
               word x259;
               word x260;
               word x261;
               *(float*)(( (ptr) var←c64388)+1) = ((
                  x259 = mapPoint←v10224.f1,  *(float*)&x259
                  ) - (
                  x260 = (* (( (ptr) (* (( (ptr) ggData←v10196)+16) ))+3) ),  *(float*)&x260
                  )) / (
                  x261 = scale←v14584,  *(float*)&x261
                  );
               };
            var←c64324 = var←c64356;
            };
         {
            word pd262;
            pd262 = (* (( (ptr) (* (( (ptr) gf←c67556)+258)/* var←c62724 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd262 ))))((* (( (ptr) ggData←v10196)+3) ), 3, (* (( (ptr) gf←c67556)+94) ), (* (( (ptr) gf←c67556)+101)
                ), var←c64324, pd262);
            };
         };
      };
   }

static void UpdateSceneForCopy←P1260(formal←c0270, scene←v10408, router←v10436, ggData←v10464)
   word formal←c0270;
   word scene←v10408;
   word router←v10436;
   word ggData←v10464;
   {
   register ptr gf←c67588 =  (ptr) &globalframe;
   word newSlices←v10508;
   word success←v10536;
   /* UpdateSceneForCopy: */ 
SOURCE(18512, 667)
SOURCE(18512, 667)
   newSlices←v10508 = 0;
SOURCE(18512, 667)
   success←v10536 = 1;
SOURCE(18648, 71)
   {
      word pd263;
      pd263 = (* (( (ptr) (* (( (ptr) gf←c67588)+259)/* var←c62756 */  ))+20) );
      newSlices←v10508 = (word) ( *( (fPt) ((*  (ptr) pd263 ))))(scene←v10408, scene←v10408, pd263);
      };
SOURCE(18721, 39)
   {
      word pd264;
      pd264 = (* (( (ptr) (* (( (ptr) gf←c67588)+270)/* var←c64004 */  ))+105) );
      (void) ( *( (fPt) ((*  (ptr) pd264 ))))(ggData←v10464, 7, pd264);
      };
SOURCE(18762, 417)
   if ((newSlices←v10508 == 0)) {
SOURCE(18786, 12)
      goto lab←L100005;
      }
   else {
SOURCE(18798, 386)
      {
         register word list←v15076 = 0;
         word sliceToExtend←v15104 = 0;
         word extender←v15132 = 0;
SOURCE(18870, 64)
         list←v15076 = newSlices←v10508;
         lab←L100009: ;
         if (((* (( (ptr) list←v15076)+1) ) != 0)) {
            }
         else {
            goto lab←L100006;
            };
         list←v15076 = (* (( (ptr) list←v15076)+1) );
         goto lab←L100009;
         lab←L100006: ;
SOURCE(18936, 26)
         sliceToExtend←v15104 = (*  (ptr) list←v15076 );
SOURCE(18964, 43)
         {
            word pd265;
            pd265 = (* (( (ptr) (* (( (ptr) gf←c67588)+270)/* var←c64004 */  ))+100) );
            extender←v15132 = (word) ( *( (fPt) ((*  (ptr) pd265 ))))(ggData←v10464, pd265);
            };
SOURCE(19009, 170)
         if ( ( (extender←v15132 != 0) ? ((*  (ptr) extender←v15132 ) != sliceToExtend←v15104) : 0 ) ) {
SOURCE(19063, 118)
            {
               word sliceD←v15260;
SOURCE(19065, 72)
               {
                  word pd266;
                  pd266 = (* (( (ptr) (* (( (ptr) gf←c67588)+269)/* var←c63876 */  ))+29) );
                  sliceD←v15260 = (word) ( *( (fPt) ((*  (ptr) pd266 ))))(sliceToExtend←v15104, 0, 6, pd266);
                  };
SOURCE(19139, 40)
               {
                  word pd267;
                  pd267 = (* (( (ptr) (* (( (ptr) gf←c67588)+270)/* var←c64004 */  ))+101) );
                  (void) ( *( (fPt) ((*  (ptr) pd267 ))))(ggData←v10464, sliceD←v15260, pd267);
                  };
               };
            };
         };
      };
   /* removed tail goto */ 
   lab←L100005: ;
   (*  (ptr) formal←c0270 ) = newSlices←v10508;
   (* (( (ptr) formal←c0270)+1) ) = success←v10536;
   return;
   }

static word StartCopyAndDrag←P1320(input←v30244, ggData←v30272, worldPt←v30300)
   word input←v30244;
   word ggData←v30272;
   W2 worldPt←v30300;
   {
   register ptr gf←c67620 =  (ptr) &globalframe;
   word success←v30344;
   word sliceList←v15332 = 0;
   /* StartCopyAndDrag: */ 
SOURCE(19191, 1014)
SOURCE(19191, 1014)
   success←v30344 = 1;
SOURCE(19287, 36)
   {
      word pd268;
      pd268 = (* (( (ptr) (* (( (ptr) gf←c67620)+272)/* var←c64420 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd268 ))))((* (( (ptr) gf←c67620)+102) ), ggData←v30272, pd268);
      };
SOURCE(19356, 22)
   (void) SaveSavedState←P480(ggData←v30272);
SOURCE(19430, 78)
   {
      W2 var←c64452;
      (void) UpdateSceneForCopy←P1260((word) &var←c64452, (* (( (ptr) ggData←v30272)+11) ), (* (( (ptr) ggData←v30272)+3) ), ggData←v30272)
      ;
      success←v30344 = var←c64452.f1;
      sliceList←v15332 = var←c64452.f0;
      };
SOURCE(19554, 26)
   if ((0 == success←v30344)) {
SOURCE(19574, 6)
      return(success←v30344);
      };
SOURCE(19582, 32)
   {
      word pd269;
      pd269 = (* (( (ptr) (* (( (ptr) gf←c67620)+260)/* var←c62788 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd269 ))))((* (( (ptr) ggData←v30272)+13) ), 0, pd269);
      };
SOURCE(19675, 49)
   {
      word pd270;
      pd270 = (* (( (ptr) (* (( (ptr) gf←c67620)+273)/* var←c64484 */  ))+33) );
      (void) ( *( (fPt) ((*  (ptr) pd270 ))))(sliceList←v15332, ggData←v30272, pd270);
      };
SOURCE(19726, 163)
   success←v30344 = (word) StartMotion←P1500(ggData←v30272, (* (( (ptr) gf←c67620)+102) ), (* (( (ptr) gf←c67620)+35) ), worldPt←v30300, 0, 0
      , 1, 0, 0);
SOURCE(19989, 33)
   if ((0 == success←v30344)) {
SOURCE(20009, 13)
      return(0);
      };
SOURCE(20024, 44)
   (void) DragUpdateCaretAndTransform←P1980(worldPt←v30300, ggData←v30272);
SOURCE(20070, 135)
   {
      word pd271;
      pd271 = (* (( (ptr) (* (( (ptr) gf←c67620)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd271 ))))((* (( (ptr) gf←c67620)+36) ), ggData←v30272, 4, 0, 0, 1, pd271);
      };
SOURCE(19191, 1014)
   return(success←v30344);
   }

static word StartAddAndDrag←P1380(input←v30404, ggData←v30432, worldPt←v30460)
   word input←v30404;
   word ggData←v30432;
   W2 worldPt←v30460;
   {
   register ptr gf←c67652 =  (ptr) &globalframe;
   word success←v30504;
   W2 thisPoint←v15488;
   word startBox←v15516 = 0;
   word sliceList←v15544 = 0;
   /* StartAddAndDrag: */ 
SOURCE(20211, 1491)
SOURCE(20211, 1491)
   success←v30504 = 1;
SOURCE(20342, 48)
   thisPoint←v15488 = (*  (W2Pt) XR←Narrow((*  (ptr) (* (( (ptr) input←v30404)+1) ) ), (* (( (ptr) gf←c67652)+21) )) );
SOURCE(20392, 47)
   {
      word var←c64516;
      word var←c64548;
      var←c64516 = XR←NewObject(8, (* (( (ptr) gf←c67652)+18) ));
      var←c64548 = var←c64516;
      (*  (ptr) var←c64548 ) = XR←Narrow((*  (ptr) (* (( (ptr) (* (( (ptr) input←v30404)+1) ))+1) ) ), (* (( (ptr) gf←c67652)+17)
          ));
      sliceList←v15544 = var←c64516;
      };
SOURCE(20442, 36)
   {
      word pd272;
      pd272 = (* (( (ptr) (* (( (ptr) gf←c67652)+272)/* var←c64420 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd272 ))))((* (( (ptr) gf←c67652)+103) ), ggData←v30432, pd272);
      };
SOURCE(20511, 22)
   (void) SaveSavedState←P480(ggData←v30432);
SOURCE(20585, 126)
   {
      word pd273;
      pd273 = (* (( (ptr) (* (( (ptr) gf←c67652)+263)/* var←c62916 */  ))+13) );
      startBox←v15516 = (word) ( *( (fPt) ((*  (ptr) pd273 ))))(ggData←v30432, 1, 1, 0, 0, 0
         , 1, 0, 1, 0, 0, pd273);
      };
SOURCE(20713, 47)
   {
      word pd274;
      pd274 = (* (( (ptr) (* (( (ptr) gf←c67652)+259)/* var←c62756 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd274 ))))((* (( (ptr) ggData←v30432)+11) ), (*  (ptr) sliceList←v15544 ),  (word) -1, pd274)
      ;
      };
SOURCE(20784, 42)
   {
      word pd275;
      pd275 = (* (( (ptr) (* (( (ptr) gf←c67652)+262)/* var←c62852 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd275 ))))((* (( (ptr) ggData←v30432)+11) ), 0, pd275);
      };
SOURCE(20876, 65)
   {
      word pd276;
      pd276 = (* (( (ptr) (* (( (ptr) gf←c67652)+262)/* var←c62852 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd276 ))))((*  (ptr) sliceList←v15544 ), (* (( (ptr) ggData←v30432)+11) ), 0, pd276);
      };
SOURCE(20967, 58)
   {
      W2 var←c64612;
      var←c64612.f0 = (*  (ptr) &fc190 );
      var←c64612.f1 = (*  (ptr) &fc277 );
      {
         word pd278;
         pd278 = (* (( (ptr) (* (( (ptr) gf←c67652)+260)/* var←c62788 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd278 ))))((* (( (ptr) ggData←v30432)+13) ), thisPoint←v15488, var←c64612, 0, pd278);
         };
      };
SOURCE(21056, 32)
   {
      word pd279;
      pd279 = (* (( (ptr) (* (( (ptr) gf←c67652)+260)/* var←c62788 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd279 ))))((* (( (ptr) ggData←v30432)+13) ), 0, pd279);
      };
SOURCE(21148, 49)
   {
      word pd280;
      pd280 = (* (( (ptr) (* (( (ptr) gf←c67652)+273)/* var←c64484 */  ))+33) );
      (void) ( *( (fPt) ((*  (ptr) pd280 ))))(sliceList←v15544, ggData←v30432, pd280);
      };
SOURCE(21199, 185)
   success←v30504 = (word) StartMotion←P1500(ggData←v30432, (* (( (ptr) gf←c67652)+103) ), (* (( (ptr) gf←c67652)+35) ), thisPoint←v15488, 0, 0
      , 1, 0, startBox←v15516);
SOURCE(21484, 33)
   if ((0 == success←v30504)) {
SOURCE(21504, 13)
      return(0);
      };
SOURCE(21519, 46)
   (void) DragUpdateCaretAndTransform←P1980(thisPoint←v15488, ggData←v30432);
SOURCE(21567, 135)
   {
      word pd281;
      pd281 = (* (( (ptr) (* (( (ptr) gf←c67652)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd281 ))))((* (( (ptr) gf←c67652)+36) ), ggData←v30432, 4, 0, 0, 1, pd281);
      };
SOURCE(20211, 1491)
   return(success←v30504);
   }

static void TransformObjectsAfterMove←P1440(scene←v10680, formal←c0660, formal←c0661, formal←c0662)
   word scene←v10680;
   word formal←c0660;
   word formal←c0661;
   word formal←c0662;
   {
   W9 var←c67684;
   /* declaration of transform←v10708 skipped */ 
   /* declaration of editConstraints←v10736 skipped */ 
   /* declaration of history←v10764 skipped */ 
   register ptr gf←c67716 =  (ptr) &globalframe;
   /* declaration of var←c64644 skipped */ 
   (* (( (ptr) &var←c67684)+4)/* transform←v10708 */  ) = formal←c0660;
   (* (( (ptr) &var←c67684)+5)/* editConstraints←v10736 */  ) = formal←c0661;
   (* (( (ptr) &var←c67684)+6)/* history←v10764 */  ) = formal←c0662;
   /* TransformObjectsAfterMove: */ 
SOURCE(21708, 409)
   {
      word tmpAddr282;
      tmpAddr282 = (word) (( (ptr) &var←c67684)+7)/* var←c64644 */ ;
      (*  (ptr) tmpAddr282 ) = ( ((word)  (fPt) DoTransform←P4272) );
      (* (( (ptr) tmpAddr282) + 1) ) = 1;
      };
SOURCE(22051, 66)
   {
      word var←c64676;
      word pd283;
      pd283 = (* (( (ptr) (* (( (ptr) gf←c67716)+259)/* var←c62756 */  ))+32) );
      var←c64676 = (word) ( *( (fPt) ((*  (ptr) pd283 ))))(scene←v10680, 0, (word) (( (bPt) &var←c67684)+28)/* var←c64644 */ , 0, 0, pd283)
      ;
      };
   }

static word DoTransform←P4272(sliceD←v15760, formal←c67780)
   word sliceD←v15760;
   word formal←c67780;
   {
   register ptr gf←c67748 =  (ptr) &globalframe;
   word done←v15804;
   formal←c67780 = (formal←c67780 - 28);
   /* DoTransform: */ 
SOURCE(21884, 162)
SOURCE(21884, 162)
   done←v15804 = 0;
SOURCE(21961, 85)
   {
      word pd284;
      pd284 = (* (( (ptr) (* (( (ptr) gf←c67748)+269)/* var←c63876 */  ))+22) );
      (void) ( *( (fPt) ((*  (ptr) pd284 ))))((*  (ptr) sliceD←v15760 ), (* (( (ptr) sliceD←v15760)+1) ), (* (( (ptr) formal←c67780)+4)
          ), (* (( (ptr) formal←c67780)+5) ), (* (( (ptr) formal←c67780)+6) ), pd284);
      };
SOURCE(21884, 162)
   return(done←v15804);
   }

static word StartMotion←P1500(formal←c0663, opName←v10852, bagType←v10880, worldPt←v10908, saveState←v10936, formal←c0664, backgroundOK←v10992, newCurrent←v11020, startBox←v11048)
   word formal←c0663;
   word opName←v10852;
   word bagType←v10880;
   W2 worldPt←v10908;
   word saveState←v10936;
   word formal←c0664;
   word backgroundOK←v10992;
   word newCurrent←v11020;
   word startBox←v11048;
   {
   W8 var←c67812;
   /* declaration of ggData←v10824 skipped */ 
   /* declaration of needAnchor←v10964 skipped */ 
   register ptr gf←c67844 =  (ptr) &globalframe;
   word success←v11092;
   /* declaration of var←c64708 skipped */ 
   var←c67812.f4/* ggData←v10824 */  = formal←c0663;
   var←c67812.f5/* needAnchor←v10964 */  = formal←c0664;
   /* StartMotion: */ 
SOURCE(22123, 2367)
   {
      word tmpAddr285;
      tmpAddr285 = (word) (( (ptr) &var←c67812)+6)/* var←c64708 */ ;
      (*  (ptr) tmpAddr285 ) = ( ((word)  (fPt) EnsureAnchor←P4332) );
      (* (( (ptr) tmpAddr285) + 1) ) = 1;
      };
SOURCE(22123, 2367)
   success←v11092 = 1;
SOURCE(22871, 43)
   {
      word pd286;
      pd286 = (* (( (ptr) (* (( (ptr) gf←c67844)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd286 ))))((* (( (ptr) gf←c67844)+106) ), (* (( (ptr) gf←c67844)+74) ), pd286);
      };
SOURCE(22916, 43)
   {
      word pd287;
      pd287 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+21) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd287 ))))(var←c67812.f4/* ggData←v10824 */ , pd287))) {
SOURCE(22959, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(22989, 40)
   if ((0 != saveState←v10936)) {
SOURCE(23007, 22)
      (void) SaveSavedState←P480(var←c67812.f4/* ggData←v10824 */ );
      };
SOURCE(23081, 1362)
SOURCE(23087, 74)
   {
      word pd288;
      pd288 = (* (( (ptr) (* (( (ptr) gf←c67844)+262)/* var←c62852 */  ))+19) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd288 ))))((* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+11) ), 0, pd288)) || (0 == (word) EnsureAnchor←P4332(
         (word) ((( (bPt) &var←c67812)+24)/* var←c64708 */ )))) {
SOURCE(23161, 17)
         goto lab←L100010;
         };
      };
SOURCE(23180, 41)
   {
      word pd289;
      pd289 = (* (( (ptr) (* (( (ptr) gf←c67844)+260)/* var←c62788 */  ))+7) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd289 ))))((* ((( (ptr) var←c67812.f4/* ggData←v10824 */ )+13)) ), pd289))) {
SOURCE(23221, 12)
         goto lab←L100011;
         };
      };
SOURCE(23235, 85)
   if ((0 != newCurrent←v11020)) {
SOURCE(23254, 66)
      {
         word var←c64772;
         {
            word var←c64740;
            {
               word pd290;
               pd290 = (* (( (ptr) (* (( (ptr) gf←c67844)+267)/* var←c63300 */  ))+6) );
               var←c64740 = (word) ( *( (fPt) ((*  (ptr) pd290 ))))((* (( (ptr) gf←c67844)+107) ), opName←v10852, pd290);
               };
            {
               word pd291;
               pd291 = (* (( (ptr) (* (( (ptr) gf←c67844)+272)/* var←c64420 */  ))+4) );
               var←c64772 = (word) ( *( (fPt) ((*  (ptr) pd291 ))))(var←c64740, var←c67812.f4/* ggData←v10824 */ , pd291);
               };
            };
         };
      };
SOURCE(23323, 50)
   {
      word pd292;
      pd292 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd292 ))))(var←c67812.f4/* ggData←v10824 */ , 0, pd292);
      };
SOURCE(23375, 55)
   {
      word pd293;
      pd293 = (* (( (ptr) (* (( (ptr) gf←c67844)+260)/* var←c62788 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd293 ))))((word) (( (bPt) (* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+16) ))+8), (* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+13)
          ), pd293);
      };
SOURCE(23432, 55)
   {
      word pd294;
      pd294 = (* (( (ptr) (* (( (ptr) gf←c67844)+274)/* var←c64804 */  ))+7) );
      (* (( (ptr) (* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd294 ))))((*  (ptr) (&fc225) ), pd294)
      ;
      };
SOURCE(23489, 37)
   (* (( (ptr) (* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+2) ))+6) ) = 0;
SOURCE(23528, 38)
   {
      word var←c64836;
      var←c64836 = (word) (( (bPt) (* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+2) ))+36);
      (*  (ptr) var←c64836 ) = (*  (ptr) &fc190 );
      (* (( (ptr) var←c64836)+1) ) = (*  (ptr) &fc190 );
      };
SOURCE(23568, 271)
   if ((0 == backgroundOK←v10992)) {
SOURCE(23595, 30)
      {
         word pd295;
         pd295 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd295 ))))(var←c67812.f4/* ggData←v10824 */ , pd295);
         };
SOURCE(23627, 126)
      {
         word var←c64868;
         {
            word pd296;
            pd296 = (* (( (ptr) (* (( (ptr) gf←c67844)+259)/* var←c62756 */  ))+45) );
            var←c64868 = (word) ( *( (fPt) ((*  (ptr) pd296 ))))((* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+11) ), 0, 1, pd296);
            };
         {
            word pd297;
            pd297 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+11) );
            (void) ( *( (fPt) ((*  (ptr) pd297 ))))(var←c67812.f4/* ggData←v10824 */ , var←c64868, 0, pd297);
            };
         };
SOURCE(23755, 84)
      {
         word pd298;
         pd298 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+22) );
         (void) ( *( (fPt) ((*  (ptr) pd298 ))))(var←c67812.f4/* ggData←v10824 */ , (* (( (ptr) (* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+17)
                ))+20) ), 1, 0, pd298);
         };
      };
SOURCE(23844, 41)
   {
      word pd299;
      pd299 = (* (( (ptr) (* (( (ptr) gf←c67844)+273)/* var←c64484 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd299 ))))(var←c67812.f4/* ggData←v10824 */ , 1, pd299);
      };
SOURCE(23917, 159)
   {
      word pd300;
      pd300 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd300 ))))(var←c67812.f4/* ggData←v10824 */ , 1, 1, 0, 0, 1
         , 1, 1, 1, 1, pd300);
      };
SOURCE(24078, 69)
   if ((startBox←v11048 != 0)) {
SOURCE(24099, 48)
      {
         word pd301;
         pd301 = (* (( (ptr) (* (( (ptr) gf←c67844)+263)/* var←c62916 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd301 ))))(var←c67812.f4/* ggData←v10824 */ , startBox←v11048, 0, pd301);
         };
      };
   goto lab←L100012;
   lab←L100010: ;
SOURCE(24173, 110)
   {
      W2 var←c64900;
      var←c64900.f0 = 11;
      var←c64900.f1 = opName←v10852;
      {
         word pd302;
         pd302 = (* (( (ptr) (* (( (ptr) gf←c67844)+258)/* var←c62724 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd302 ))))((* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+3) ), 0, (* (( (ptr) gf←c67844)+108)
             ), (* (( (ptr) gf←c67844)+109) ), var←c64900, pd302);
         };
      };
SOURCE(24285, 15)
   success←v11092 = 0;
   goto lab←L100012;
   lab←L100011: ;
SOURCE(24318, 103)
   {
      W2 var←c64932;
      var←c64932.f0 = 11;
      var←c64932.f1 = opName←v10852;
      {
         word pd303;
         pd303 = (* (( (ptr) (* (( (ptr) gf←c67844)+258)/* var←c62724 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd303 ))))((* (( (ptr) var←c67812.f4/* ggData←v10824 */ )+3) ), 0, (* (( (ptr) gf←c67844)+108)
             ), (* (( (ptr) gf←c67844)+110) ), var←c64932, pd303);
         };
      };
SOURCE(24423, 15)
   success←v11092 = 0;
   lab←L100012: ;
SOURCE(24448, 42)
   {
      word pd304;
      pd304 = (* (( (ptr) (* (( (ptr) gf←c67844)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd304 ))))((* (( (ptr) gf←c67844)+106) ), (* (( (ptr) gf←c67844)+74) ), pd304);
      };
SOURCE(22123, 2367)
   return(success←v11092);
   }

static word EnsureAnchor←P4332(formal←c67908)
   word formal←c67908;
   {
   register ptr gf←c67876 =  (ptr) &globalframe;
   word anySelections←v15908;
   formal←c67908 = (formal←c67908 - 24);
   /* EnsureAnchor: */ 
SOURCE(22379, 480)
SOURCE(22379, 480)
   anySelections←v15908 = 1;
SOURCE(22439, 420)
   if ((0 != (* (( (ptr) formal←c67908)+5) ))) {
SOURCE(22460, 399)
      {
         word pd305;
         pd305 = (* (( (ptr) (* (( (ptr) gf←c67876)+260)/* var←c62788 */  ))+7) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd305 ))))((* ((( (ptr) (* (( (ptr) formal←c67908)+4) ))+14)) ), pd305))) {
SOURCE(22500, 57)
            {
               W2 var←c64964;
               {
                  word pd306;
                  pd306 = (* (( (ptr) (* (( (ptr) gf←c67876)+260)/* var←c62788 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd306 ))))((word) &var←c64964, (* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+14) ), pd306);
                  };
               (*  (W2Pt) (( (ptr) (* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+16) ))+4) ) = var←c64964;
               };
SOURCE(22559, 59)
            {
               W2 var←c64996;
               {
                  word pd307;
                  pd307 = (* (( (ptr) (* (( (ptr) gf←c67876)+260)/* var←c62788 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd307 ))))((word) &var←c64996, (* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+14) ), pd307);
                  };
               (*  (W2Pt) (( (ptr) (* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+16) ))+6) ) = var←c64996;
               };
            }
         else {
SOURCE(22627, 234)
            {
               word tightBox←v15936;
               word success←v15964 = 1;
SOURCE(22629, 69)
               {
                  word pd308;
                  pd308 = (* (( (ptr) (* (( (ptr) gf←c67876)+259)/* var←c62756 */  ))+46) );
                  tightBox←v15936 = (word) ( *( (fPt) ((*  (ptr) pd308 ))))((* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+11) ), 0, 0, pd308)
                  ;
                  };
SOURCE(22722, 66)
               {
                  W3 var←c65060;
                  {
                     word pd309;
                     pd309 = (* (( (ptr) (* (( (ptr) gf←c67876)+275)/* var←c65028 */  ))+23) );
                     (void) ( *( (fPt) ((*  (ptr) pd309 ))))((word) &var←c65060, tightBox←v15936, pd309);
                     };
                  success←v15964 = var←c65060.f2;
                  (*  (W2Pt) (( (ptr) (* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+16) ))+4) ) = (*  (W2Pt) &var←c65060 );
                  };
SOURCE(22790, 33)
               if ((0 == success←v15964)) {
SOURCE(22810, 13)
                  return(0);
                  };
SOURCE(22825, 34)
               {
                  word var←c65092;
                  var←c65092 = (word) (( (bPt) (* (( (ptr) (* (( (ptr) formal←c67908)+4) ))+16) ))+24);
                  (*  (ptr) var←c65092 ) = (*  (ptr) &fc190 );
                  (* (( (ptr) var←c65092)+1) ) = (*  (ptr) &fc277 );
                  };
               };
            };
         };
      };
SOURCE(22379, 480)
   return(anySelections←v15908);
   }

static word ContinueMotion←P1560(ggData←v11152, opName←v11180, bagType←v11208, worldPt←v11236, startBox←v11264)
   word ggData←v11152;
   word opName←v11180;
   word bagType←v11208;
   W2 worldPt←v11236;
   word startBox←v11264;
   {
   register ptr gf←c67940 =  (ptr) &globalframe;
   word success←v11308;
   word movingBox←v16008 = 0;
   W2 normal←v16036;
   /* ContinueMotion: */ 
SOURCE(24515, 849)
SOURCE(24515, 849)
   success←v11308 = 1;
SOURCE(24708, 43)
   {
      word pd310;
      pd310 = (* (( (ptr) (* (( (ptr) gf←c67940)+263)/* var←c62916 */  ))+21) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd310 ))))(ggData←v11152, pd310))) {
SOURCE(24751, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(24782, 50)
   {
      word pd311;
      pd311 = (* (( (ptr) (* (( (ptr) gf←c67940)+263)/* var←c62916 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd311 ))))(ggData←v11152, 0, pd311);
      };
SOURCE(24834, 55)
   {
      word pd312;
      pd312 = (* (( (ptr) (* (( (ptr) gf←c67940)+260)/* var←c62788 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd312 ))))((word) (( (bPt) (* (( (ptr) ggData←v11152)+16) ))+8), (* (( (ptr) ggData←v11152)+13)
          ), pd312);
      };
SOURCE(24891, 40)
   {
      word pd313;
      pd313 = (* (( (ptr) (* (( (ptr) gf←c67940)+260)/* var←c62788 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd313 ))))((word) &normal←v16036, (* (( (ptr) ggData←v11152)+13) ), pd313);
      };
SOURCE(24933, 71)
   {
      word pd314;
      pd314 = (* (( (ptr) (* (( (ptr) gf←c67940)+260)/* var←c62788 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd314 ))))((* (( (ptr) ggData←v11152)+13) ), (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11152)+16)
             ))+2) ), normal←v16036, 0, pd314);
      };
SOURCE(25036, 55)
   {
      word pd315;
      pd315 = (* (( (ptr) (* (( (ptr) gf←c67940)+274)/* var←c64804 */  ))+7) );
      (* (( (ptr) (* (( (ptr) ggData←v11152)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd315 ))))((*  (ptr) (&fc225) ), pd315)
      ;
      };
SOURCE(25093, 41)
   {
      word pd316;
      pd316 = (* (( (ptr) (* (( (ptr) gf←c67940)+273)/* var←c64484 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd316 ))))(ggData←v11152, 1, pd316);
      };
SOURCE(25136, 34)
   {
      word pd317;
      pd317 = (* (( (ptr) (* (( (ptr) gf←c67940)+263)/* var←c62916 */  ))+25) );
      (void) ( *( (fPt) ((*  (ptr) pd317 ))))(ggData←v11152, 0, pd317);
      };
SOURCE(25205, 159)
   {
      word pd318;
      pd318 = (* (( (ptr) (* (( (ptr) gf←c67940)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd318 ))))(ggData←v11152, 1, 1, 0, 0, 1
         , 1, 1, 1, 1, pd318);
      };
SOURCE(24515, 849)
   return(success←v11308);
   }

static word StartDrag←P1620(input←v30564, ggData←v30592, worldPt←v30620)
   word input←v30564;
   word ggData←v30592;
   W2 worldPt←v30620;
   {
   register ptr gf←c67972 =  (ptr) &globalframe;
   word success←v30664;
   word startSuccess←v16080;
   /* StartDrag: */ 
SOURCE(25370, 408)
SOURCE(25370, 408)
   success←v30664 = 1;
SOURCE(25415, 41)
   {
      word pd319;
      pd319 = (* (( (ptr) (* (( (ptr) gf←c67972)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd319 ))))((* (( (ptr) gf←c67972)+34) ), (* (( (ptr) gf←c67972)+74) ), pd319);
      };
SOURCE(25459, 58)
   startSuccess←v16080 = (word) StartMotion←P1500(ggData←v30592, (* (( (ptr) gf←c67972)+111) ), (* (( (ptr) gf←c67972)+35) ), worldPt←v30620, 1, 0
      , 0, 1, 0);
SOURCE(25519, 38)
   if ((0 == startSuccess←v16080)) {
SOURCE(25544, 13)
      return(0);
      };
SOURCE(25559, 40)
   {
      word pd320;
      pd320 = (* (( (ptr) (* (( (ptr) gf←c67972)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd320 ))))((* (( (ptr) gf←c67972)+34) ), (* (( (ptr) gf←c67972)+74) ), pd320);
      };
SOURCE(25602, 44)
   (void) DragUpdateCaretAndTransform←P1980(worldPt←v30620, ggData←v30592);
SOURCE(25648, 130)
   {
      word pd321;
      pd321 = (* (( (ptr) (* (( (ptr) gf←c67972)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd321 ))))((* (( (ptr) gf←c67972)+106) ), ggData←v30592, 4, 0, 0, 1, pd321);
      };
SOURCE(25370, 408)
   return(success←v30664);
   }

static word StartRotate←P1680(input←v30724, ggData←v30752, worldPt←v30780)
   word input←v30724;
   word ggData←v30752;
   W2 worldPt←v30780;
   {
   register ptr gf←c68004 =  (ptr) &globalframe;
   word success←v30824;
   word startSuccess←v16124;
   /* StartRotate: */ 
SOURCE(25784, 340)
SOURCE(25784, 340)
   success←v30824 = 1;
SOURCE(25832, 72)
   startSuccess←v16124 = (word) StartMotion←P1500(ggData←v30752, (* (( (ptr) gf←c68004)+112) ), (* (( (ptr) gf←c68004)+35) ), worldPt←v30780, 1, 1
      , 0, 1, 0);
SOURCE(25906, 38)
   if ((0 == startSuccess←v16124)) {
SOURCE(25931, 13)
      return(0);
      };
SOURCE(25946, 46)
   (void) RotateUpdateCaretAndTransform←P2100(worldPt←v30780, ggData←v30752);
SOURCE(25994, 130)
   {
      word pd322;
      pd322 = (* (( (ptr) (* (( (ptr) gf←c68004)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd322 ))))((* (( (ptr) gf←c68004)+106) ), ggData←v30752, 4, 0, 0, 1, pd322);
      };
SOURCE(25784, 340)
   return(success←v30824);
   }

static word StartScale←P1740(input←v30884, ggData←v30912, worldPt←v30940)
   word input←v30884;
   word ggData←v30912;
   W2 worldPt←v30940;
   {
   register ptr gf←c68036 =  (ptr) &globalframe;
   word success←v30984;
   W2 originalVector←v16168;
   word startSuccess←v16196;
   /* StartScale: */ 
SOURCE(26130, 612)
SOURCE(26130, 612)
   success←v30984 = 1;
   {
      W2 var←c65156;
SOURCE(26201, 71)
      startSuccess←v16196 = (word) StartMotion←P1500(ggData←v30912, (* (( (ptr) gf←c68036)+113) ), (* (( (ptr) gf←c68036)+35) ), worldPt←v30940, 1, 1
         , 0, 1, 0);
SOURCE(26274, 38)
      if ((0 == startSuccess←v16196)) {
SOURCE(26299, 13)
         return(0);
         };
SOURCE(26314, 79)
      {
         word pd323;
         pd323 = (* (( (ptr) (* (( (ptr) gf←c68036)+276)/* var←c65124 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd323 ))))((word) &originalVector←v16168, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v30912)+16)
                ))+2) ), (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v30912)+16) ))+4) ), pd323);
         };
SOURCE(26395, 165)
      var←c65156.f0 = (*  (ptr) &fc190 );
      var←c65156.f1 = (*  (ptr) &fc190 );
      if (XR←EqualWords(&originalVector←v16168, &var←c65156, 2)) {
SOURCE(26433, 112)
         {
            word pd324;
            pd324 = (* (( (ptr) (* (( (ptr) gf←c68036)+258)/* var←c62724 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd324 ))))((* (( (ptr) ggData←v30912)+3) ), 0, (* (( (ptr) gf←c68036)+108) ), (* (( (ptr) gf←c68036)+114)
                ), pd324);
            };
SOURCE(26547, 13)
         return(0);
         };
SOURCE(26565, 45)
      (void) ScaleUpdateCaretAndTransform←P2220(worldPt←v30940, ggData←v30912);
SOURCE(26612, 130)
      {
         word pd325;
         pd325 = (* (( (ptr) (* (( (ptr) gf←c68036)+264)/* var←c62948 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd325 ))))((* (( (ptr) gf←c68036)+106) ), ggData←v30912, 4, 0, 0, 1, pd325);
         };
      };
SOURCE(26130, 612)
   return(success←v30984);
   }

static word StartSixPoint←P1800(input←v31044, ggData←v31072, worldPt←v31100)
   word input←v31044;
   word ggData←v31072;
   W2 worldPt←v31100;
   {
   register ptr gf←c68068 =  (ptr) &globalframe;
   word success←v31144;
   W2 p0←v16268;
   W2 p1←v16296;
   W2 p2←v16324;
   word crossProduct←v16352;
   word anchor←v16380;
   word startSuccess←v16408;
   /* StartSixPoint: */ 
SOURCE(26748, 842)
SOURCE(26748, 842)
   success←v31144 = 1;
SOURCE(26856, 29)
   anchor←v16380 = (* (( (ptr) ggData←v31072)+14) );
SOURCE(26908, 75)
   startSuccess←v16408 = (word) StartMotion←P1500(ggData←v31072, (* (( (ptr) gf←c68068)+115) ), (* (( (ptr) gf←c68068)+35) ), worldPt←v31100, 1, 1
      , 0, 1, 0);
SOURCE(26985, 38)
   if ((0 == startSuccess←v16408)) {
SOURCE(27010, 13)
      return(0);
      };
SOURCE(27025, 29)
   {
      word pd326;
      pd326 = (* (( (ptr) (* (( (ptr) gf←c68068)+260)/* var←c62788 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd326 ))))((word) &p0←v16268, anchor←v16380, pd326);
      };
SOURCE(27056, 27)
   p2←v16324 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v31072)+16) ))+2) );
SOURCE(27085, 62)
   {
      W2 var←c65188;
      {
         W2 var←c65220;
         {
            word pd327;
            pd327 = (* (( (ptr) (* (( (ptr) gf←c68068)+260)/* var←c62788 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd327 ))))((word) &var←c65220, anchor←v16380, pd327);
            };
         {
            W2 var←c0366;
            {
               word pd328;
               pd328 = (* (( (ptr) (* (( (ptr) gf←c68068)+276)/* var←c65124 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd328 ))))((word) &var←c0366, var←c65220, (*  (ptr) &fc329 ), pd328);
               };
            var←c65188 = var←c0366;
            };
         };
      {
         W2 var←c0367;
         {
            word pd330;
            pd330 = (* (( (ptr) (* (( (ptr) gf←c68068)+276)/* var←c65124 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd330 ))))((word) &var←c0367, p0←v16268, var←c65188, pd330);
            };
         p1←v16296 = var←c0367;
         };
      };
SOURCE(27175, 58)
   {
      W2 var←c65252;
      W2 var←c65284;
      {
         word pd331;
         pd331 = (* (( (ptr) (* (( (ptr) gf←c68068)+276)/* var←c65124 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd331 ))))((word) &var←c65252, p1←v16296, p0←v16268, pd331);
         };
      {
         word pd332;
         pd332 = (* (( (ptr) (* (( (ptr) gf←c68068)+276)/* var←c65124 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd332 ))))((word) &var←c65284, p2←v16324, p0←v16268, pd332);
         };
      {
         word pd333;
         pd333 = (* (( (ptr) (* (( (ptr) gf←c68068)+276)/* var←c65124 */  ))+17) );
         crossProduct←v16352 = (word) ( *( (fPt) ((*  (ptr) pd333 ))))(var←c65252, var←c65284, pd333);
         };
      };
SOURCE(27235, 170)
   {
      float tf334;
      word x335;
      word x337;
      if ((FABS((
            x335 = crossProduct←v16352,  *(float*)&x335
            ), tf334) < (
         x337 = (*  (ptr) &fc336 ),  *(float*)&x337
         ))) {
SOURCE(27273, 117)
         {
            word pd338;
            pd338 = (* (( (ptr) (* (( (ptr) gf←c68068)+258)/* var←c62724 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd338 ))))((* (( (ptr) ggData←v31072)+3) ), 0, (* (( (ptr) gf←c68068)+108) ), (* (( (ptr) gf←c68068)+116)
                ), pd338);
            };
SOURCE(27392, 13)
         return(0);
         };
      };
SOURCE(27410, 48)
   (void) SixPointUpdateCaretAndTransform←P2340(worldPt←v31100, ggData←v31072);
SOURCE(27460, 130)
   {
      word pd339;
      pd339 = (* (( (ptr) (* (( (ptr) gf←c68068)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd339 ))))((* (( (ptr) gf←c68068)+106) ), ggData←v31072, 4, 0, 0, 1, pd339);
      };
SOURCE(26748, 842)
   return(success←v31144);
   }

static void DragTheCaret←P1860(formal←c0381, worldPt←v11368, ggData←v11396, opName←v11424)
   word formal←c0381;
   W2 worldPt←v11368;
   word ggData←v11396;
   word opName←v11424;
   {
   register ptr gf←c68100 =  (ptr) &globalframe;
   W2 mapPoint←v11468;
   word feature←v16452 = 0;
   W2 normal←v16480;
   word hitData←v16508 = 0;
   /* DragTheCaret: */ 
SOURCE(27596, 384)
SOURCE(27761, 148)
   {
      W6 var←c65316;
      {
         word pd340;
         pd340 = (* (( (ptr) (* (( (ptr) gf←c68100)+268)/* var←c63716 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd340 ))))((word) &var←c65316, worldPt←v11368, (*  (ptr) (* (( (ptr) ggData←v11396)+18) ) ), (* (
               ( (ptr) (* (( (ptr) ggData←v11396)+18) ))+4) ), (* (( (ptr) (* (( (ptr) ggData←v11396)+18) ))+8) ), ggData←v11396
            , 1, pd340);
         };
      hitData←v16508 = var←c65316.f5;
      feature←v16452 = var←c65316.f4;
      normal←v16480 = (*  (W2Pt) (( (ptr) &var←c65316)+2) );
      mapPoint←v11468 = (*  (W2Pt) &var←c65316 );
      };
SOURCE(27911, 69)
   (void) SetCaretAttractor←P1200(ggData←v11396, mapPoint←v11468, normal←v16480, feature←v16452, hitData←v16508, opName←v11424)
   ;
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0381 ) = mapPoint←v11468;
   return;
   }

static void DuringDrag←P1920(input←v31204, ggData←v31232, worldPt←v31260)
   word input←v31204;
   word ggData←v31232;
   W2 worldPt←v31260;
   {
   register ptr gf←c68132 =  (ptr) &globalframe;
   /* DuringDrag: */ 
SOURCE(27986, 398)
SOURCE(28012, 42)
   {
      word pd341;
      pd341 = (* (( (ptr) (* (( (ptr) gf←c68132)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd341 ))))((* (( (ptr) gf←c68132)+117) ), (* (( (ptr) gf←c68132)+74) ), pd341);
      };
SOURCE(28056, 108)
   {
      word pd342;
      pd342 = (* (( (ptr) (* (( (ptr) gf←c68132)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd342 ))))(ggData←v31232, 1, 1, 0, 0, 1
         , 0, 0, 1, 0, pd342);
      };
SOURCE(28166, 44)
   (void) DragUpdateCaretAndTransform←P1980(worldPt←v31260, ggData←v31232);
SOURCE(28212, 129)
   {
      word pd343;
      pd343 = (* (( (ptr) (* (( (ptr) gf←c68132)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd343 ))))((* (( (ptr) gf←c68132)+117) ), ggData←v31232, 4, 0, 0, 1, pd343);
      };
SOURCE(28343, 41)
   {
      word pd344;
      pd344 = (* (( (ptr) (* (( (ptr) gf←c68132)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd344 ))))((* (( (ptr) gf←c68132)+117) ), (* (( (ptr) gf←c68132)+74) ), pd344);
      };
   }

static void DragUpdateCaretAndTransform←P1980(worldPt←v11528, ggData←v11556)
   W2 worldPt←v11528;
   word ggData←v11556;
   {
   register ptr gf←c68164 =  (ptr) &globalframe;
   W2 mapPoint←v16564;
   W2 totalDragVector←v16592;
   /* DragUpdateCaretAndTransform: */ 
SOURCE(28408, 1031)
SOURCE(28479, 60)
   (void) DragTheCaret←P1860((word) &mapPoint←v16564, worldPt←v11528, ggData←v11556, (* (( (ptr) gf←c68164)+118) ));
SOURCE(28541, 73)
   {
      word pd345;
      pd345 = (* (( (ptr) (* (( (ptr) gf←c68164)+276)/* var←c65124 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd345 ))))((word) &totalDragVector←v16592, mapPoint←v16564, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11556)+16)
             ))+2) ), pd345);
      };
SOURCE(28616, 94)
   {
      W2 var←c65348;
      var←c65348.f0 = totalDragVector←v16592.f0;
      var←c65348.f1 = totalDragVector←v16592.f1;
      {
         word pd346;
         pd346 = (* (( (ptr) (* (( (ptr) gf←c68164)+274)/* var←c64804 */  ))+10) );
         (* (( (ptr) (* (( (ptr) ggData←v11556)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd346 ))))(var←c65348, pd346);
         };
      };
SOURCE(28712, 727)
   if ((0 != (* (( (ptr) (* (( (ptr) ggData←v11556)+2) ))+6) ))) {
SOURCE(28750, 691)
      {
         word ratio←v16664;
         W2 scaleCaretStart←v16692;
         W2 scaleCaretCurrent←v16720;
         word scaleT←v16748 = 0;
SOURCE(28789, 54)
         scaleCaretStart←v16692 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11556)+2) ))+7) );
SOURCE(28845, 58)
         scaleCaretCurrent←v16720 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11556)+2) ))+9) );
SOURCE(28951, 108)
         {
            word tc347;
            word pd348;
            word pd349;
            pd348 = (* (( (ptr) (* (( (ptr) gf←c68164)+277)/* var←c65380 */  ))+38) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd348 ))))(scaleCaretCurrent←v16720.f0, 116, pd348))) {
               pd349 = (* (( (ptr) (* (( (ptr) gf←c68164)+277)/* var←c65380 */  ))+38) );
               tc347 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd349 ))))(scaleCaretCurrent←v16720.f1, 116, pd349));
               }
            else {
               tc347 =  (word) 0;
               };
            if (tc347) {
SOURCE(29053, 6)
               return;
               };
            };
SOURCE(29084, 104)
         {
            word tc350;
            word pd351;
            word pd352;
            pd351 = (* (( (ptr) (* (( (ptr) gf←c68164)+277)/* var←c65380 */  ))+38) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd351 ))))(scaleCaretStart←v16692.f0, 116, pd351))) {
               pd352 = (* (( (ptr) (* (( (ptr) gf←c68164)+277)/* var←c65380 */  ))+38) );
               tc350 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd352 ))))(scaleCaretStart←v16692.f1, 116, pd352));
               }
            else {
               tc350 =  (word) 0;
               };
            if (tc350) {
SOURCE(29182, 6)
               return;
               };
            };
SOURCE(29217, 83)
         {
            word pd353;
            word x354;
            word pd355;
            word x356;
            pd353 = (* (( (ptr) (* (( (ptr) gf←c68164)+276)/* var←c65124 */  ))+18) );
            pd355 = (* (( (ptr) (* (( (ptr) gf←c68164)+276)/* var←c65124 */  ))+18) );
            *(float*)&ratio←v16664 = (
               x354 = (word) ( *( (fPt) ((*  (ptr) pd353 ))))(scaleCaretCurrent←v16720, pd353),  *(float*)&x354
               ) / (
               x356 = (word) ( *( (fPt) ((*  (ptr) pd355 ))))(scaleCaretStart←v16692, pd355),  *(float*)&x356
               );
            };
SOURCE(29302, 53)
         {
            word pd357;
            pd357 = (* (( (ptr) (* (( (ptr) gf←c68164)+278)/* var←c65412 */  ))+7) );
            scaleT←v16748 = (word) ( *( (fPt) ((*  (ptr) pd357 ))))(mapPoint←v16564, ratio←v16664, pd357);
            };
SOURCE(29357, 82)
         {
            word pd358;
            pd358 = (* (( (ptr) (* (( (ptr) gf←c68164)+274)/* var←c64804 */  ))+13) );
            (* (( (ptr) (* (( (ptr) ggData←v11556)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd358 ))))((* (( (ptr) (* (( (ptr) ggData←v11556)+16)
                   ))+13) ), scaleT←v16748, pd358);
            };
         };
      };
   }

static void DuringRotate←P2040(input←v31320, ggData←v31348, worldPt←v31376)
   word input←v31320;
   word ggData←v31348;
   W2 worldPt←v31376;
   {
   register ptr gf←c68196 =  (ptr) &globalframe;
   /* DuringRotate: */ 
SOURCE(29448, 315)
SOURCE(29476, 108)
   {
      word pd359;
      pd359 = (* (( (ptr) (* (( (ptr) gf←c68196)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd359 ))))(ggData←v31348, 1, 1, 0, 0, 1
         , 0, 0, 1, 0, pd359);
      };
SOURCE(29586, 46)
   (void) RotateUpdateCaretAndTransform←P2100(worldPt←v31376, ggData←v31348);
SOURCE(29634, 129)
   {
      word pd360;
      pd360 = (* (( (ptr) (* (( (ptr) gf←c68196)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd360 ))))((* (( (ptr) gf←c68196)+117) ), ggData←v31348, 4, 0, 0, 1, pd360);
      };
   }

static void RotateUpdateCaretAndTransform←P2100(worldPt←v11616, ggData←v11644)
   W2 worldPt←v11616;
   word ggData←v11644;
   {
   register ptr gf←c68228 =  (ptr) &globalframe;
   W2 anchorPoint←v16792;
   W2 mapPoint←v16820;
   W2 originalVector←v16848;
   W2 newVector←v16876;
   word degrees←v16904;
   /* RotateUpdateCaretAndTransform: */ 
SOURCE(29769, 467)
SOURCE(29842, 44)
   anchorPoint←v16792 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11644)+16) ))+4) );
SOURCE(29888, 60)
   (void) DragTheCaret←P1860((word) &mapPoint←v16820, worldPt←v11616, ggData←v11644, (* (( (ptr) gf←c68228)+119) ));
SOURCE(29950, 75)
   {
      word pd361;
      pd361 = (* (( (ptr) (* (( (ptr) gf←c68228)+276)/* var←c65124 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd361 ))))((word) &originalVector←v16848, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11644)+16)
             ))+2) ), anchorPoint←v16792, pd361);
      };
SOURCE(30027, 56)
   {
      word pd362;
      pd362 = (* (( (ptr) (* (( (ptr) gf←c68228)+276)/* var←c65124 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd362 ))))((word) &newVector←v16876, mapPoint←v16820, anchorPoint←v16792, pd362);
      };
SOURCE(30085, 75)
   {
      word pd363;
      pd363 = (* (( (ptr) (* (( (ptr) gf←c68228)+276)/* var←c65124 */  ))+7) );
      degrees←v16904 = (word) ( *( (fPt) ((*  (ptr) pd363 ))))(originalVector←v16848, newVector←v16876, pd363);
      };
SOURCE(30162, 74)
   {
      word pd364;
      pd364 = (* (( (ptr) (* (( (ptr) gf←c68228)+278)/* var←c65412 */  ))+6) );
      (* (( (ptr) (* (( (ptr) ggData←v11644)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd364 ))))(anchorPoint←v16792, degrees←v16904, pd364)
      ;
      };
   }

static void DuringScale←P2160(input←v31436, ggData←v31464, worldPt←v31492)
   word input←v31436;
   word ggData←v31464;
   W2 worldPt←v31492;
   {
   register ptr gf←c68260 =  (ptr) &globalframe;
   /* DuringScale: */ 
SOURCE(30242, 313)
SOURCE(30269, 108)
   {
      word pd365;
      pd365 = (* (( (ptr) (* (( (ptr) gf←c68260)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd365 ))))(ggData←v31464, 1, 1, 0, 0, 1
         , 0, 0, 1, 0, pd365);
      };
SOURCE(30379, 45)
   (void) ScaleUpdateCaretAndTransform←P2220(worldPt←v31492, ggData←v31464);
SOURCE(30426, 129)
   {
      word pd366;
      pd366 = (* (( (ptr) (* (( (ptr) gf←c68260)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd366 ))))((* (( (ptr) gf←c68260)+117) ), ggData←v31464, 4, 0, 0, 1, pd366);
      };
   }

static void ScaleUpdateCaretAndTransform←P2220(worldPt←v11704, ggData←v11732)
   W2 worldPt←v11704;
   word ggData←v11732;
   {
   register ptr gf←c68292 =  (ptr) &globalframe;
   W2 anchorPoint←v16948;
   W2 mapPoint←v17004;
   W2 originalVector←v17032;
   W2 newVector←v17060;
   word ratio←v17088;
   /* ScaleUpdateCaretAndTransform: */ 
SOURCE(30561, 615)
SOURCE(30633, 44)
   anchorPoint←v16948 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11732)+16) ))+4) );
SOURCE(30703, 59)
   (void) DragTheCaret←P1860((word) &mapPoint←v17004, worldPt←v11704, ggData←v11732, (* (( (ptr) gf←c68292)+120) ));
SOURCE(30764, 75)
   {
      word pd367;
      pd367 = (* (( (ptr) (* (( (ptr) gf←c68292)+276)/* var←c65124 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd367 ))))((word) &originalVector←v17032, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11732)+16)
             ))+2) ), anchorPoint←v16948, pd367);
      };
SOURCE(30841, 56)
   {
      word pd368;
      pd368 = (* (( (ptr) (* (( (ptr) gf←c68292)+276)/* var←c65124 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd368 ))))((word) &newVector←v17060, mapPoint←v17004, anchorPoint←v16948, pd368);
      };
SOURCE(30912, 92)
   {
      word tc369;
      word pd370;
      word pd371;
      pd370 = (* (( (ptr) (* (( (ptr) gf←c68292)+277)/* var←c65380 */  ))+38) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd370 ))))(newVector←v17060.f0, 116, pd370))) {
         pd371 = (* (( (ptr) (* (( (ptr) gf←c68292)+277)/* var←c65380 */  ))+38) );
         tc369 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd371 ))))(newVector←v17060.f1, 116, pd371));
         }
      else {
         tc369 =  (word) 0;
         };
      if (tc369) {
SOURCE(30998, 6)
         return;
         };
      };
SOURCE(31029, 74)
   {
      word pd372;
      word x373;
      word pd374;
      word x375;
      pd372 = (* (( (ptr) (* (( (ptr) gf←c68292)+276)/* var←c65124 */  ))+18) );
      pd374 = (* (( (ptr) (* (( (ptr) gf←c68292)+276)/* var←c65124 */  ))+18) );
      *(float*)&ratio←v17088 = (
         x373 = (word) ( *( (fPt) ((*  (ptr) pd372 ))))(newVector←v17060, pd372),  *(float*)&x373
         ) / (
         x375 = (word) ( *( (fPt) ((*  (ptr) pd374 ))))(originalVector←v17032, pd374),  *(float*)&x375
         );
      };
SOURCE(31105, 71)
   {
      word pd376;
      pd376 = (* (( (ptr) (* (( (ptr) gf←c68292)+278)/* var←c65412 */  ))+7) );
      (* (( (ptr) (* (( (ptr) ggData←v11732)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd376 ))))(anchorPoint←v16948, ratio←v17088, pd376)
      ;
      };
   }

static void DuringSixPoint←P2280(input←v31552, ggData←v31580, worldPt←v31608)
   word input←v31552;
   word ggData←v31580;
   W2 worldPt←v31608;
   {
   register ptr gf←c68324 =  (ptr) &globalframe;
   /* DuringSixPoint: */ 
SOURCE(31182, 319)
SOURCE(31212, 108)
   {
      word pd377;
      pd377 = (* (( (ptr) (* (( (ptr) gf←c68324)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd377 ))))(ggData←v31580, 1, 1, 0, 0, 1
         , 0, 0, 1, 0, pd377);
      };
SOURCE(31322, 48)
   (void) SixPointUpdateCaretAndTransform←P2340(worldPt←v31608, ggData←v31580);
SOURCE(31372, 129)
   {
      word pd378;
      pd378 = (* (( (ptr) (* (( (ptr) gf←c68324)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd378 ))))((* (( (ptr) gf←c68324)+117) ), ggData←v31580, 4, 0, 0, 1, pd378);
      };
   }

static void SixPointUpdateCaretAndTransform←P2340(worldPt←v11792, ggData←v11820)
   W2 worldPt←v11792;
   word ggData←v11820;
   {
   register ptr gf←c68356 =  (ptr) &globalframe;
   W12 pts←v17160;
   word crossProduct←v17188;
   W2 mapPoint←v17216;
   /* SixPointUpdateCaretAndTransform: */ 
SOURCE(31507, 622)
SOURCE(31688, 41)
   {
      W2 var←c65444;
      var←c65444 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11820)+16) ))+4) );
      (*  (W2Pt) (( (ptr) &pts←v17160)+6) ) = var←c65444;
      (*  (W2Pt) &pts←v17160 ) = var←c65444;
      };
SOURCE(31731, 31)
   (*  (W2Pt) (( (ptr) &pts←v17160)+4) ) = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11820)+16) ))+2) );
SOURCE(31764, 78)
   {
      W2 var←c65476;
      {
         W2 var←c65508;
         {
            word pd379;
            pd379 = (* (( (ptr) (* (( (ptr) gf←c68356)+276)/* var←c65124 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd379 ))))((word) &var←c65508, (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v11820)+16) ))+6) ), (*  (ptr) &fc329 ), pd379)
            ;
            };
         {
            W2 var←c0434;
            {
               word pd380;
               pd380 = (* (( (ptr) (* (( (ptr) gf←c68356)+276)/* var←c65124 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd380 ))))((word) &var←c0434, (*  (W2Pt) &pts←v17160 ), var←c65508, pd380);
               };
            var←c65476 = var←c0434;
            };
         };
      (*  (W2Pt) (( (ptr) &pts←v17160)+8) ) = var←c65476;
      (*  (W2Pt) (( (ptr) &pts←v17160)+2) ) = var←c65476;
      };
SOURCE(31844, 64)
   (void) DragTheCaret←P1860((word) &mapPoint←v17216, worldPt←v11792, ggData←v11820, (* (( (ptr) gf←c68356)+121) ));
SOURCE(31910, 17)
   (*  (W2Pt) (( (ptr) &pts←v17160)+10) ) = mapPoint←v17216;
SOURCE(31929, 73)
   {
      W2 var←c65540;
      W2 var←c65572;
      {
         word pd381;
         pd381 = (* (( (ptr) (* (( (ptr) gf←c68356)+276)/* var←c65124 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd381 ))))((word) &var←c65540, (*  (W2Pt) (( (ptr) &pts←v17160)+8) ), (*  (W2Pt) (( (ptr) &pts←v17160)+6)
             ), pd381);
         };
      {
         word pd382;
         pd382 = (* (( (ptr) (* (( (ptr) gf←c68356)+276)/* var←c65124 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd382 ))))((word) &var←c65572, (*  (W2Pt) (( (ptr) &pts←v17160)+10) ), (*  (W2Pt) (( (ptr) &pts←v17160)+6)
             ), pd382);
         };
      {
         word pd383;
         pd383 = (* (( (ptr) (* (( (ptr) gf←c68356)+276)/* var←c65124 */  ))+17) );
         crossProduct←v17188 = (word) ( *( (fPt) ((*  (ptr) pd383 ))))(var←c65540, var←c65572, pd383);
         };
      };
SOURCE(32004, 42)
   {
      float tf384;
      word x385;
      word x386;
      if ((FABS((
            x385 = crossProduct←v17188,  *(float*)&x385
            ), tf384) < (
         x386 = (*  (ptr) &fc336 ),  *(float*)&x386
         ))) {
SOURCE(32040, 6)
         return;
         };
      };
SOURCE(32079, 50)
   {
      word pd387;
      pd387 = (* (( (ptr) (* (( (ptr) gf←c68356)+278)/* var←c65412 */  ))+9) );
      (* (( (ptr) (* (( (ptr) ggData←v11820)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd387 ))))(pts←v17160, pd387);
      };
   }

static word ContinueAdd←P2400(input←v31668, ggData←v31696, worldPt←v31724)
   word input←v31668;
   word ggData←v31696;
   W2 worldPt←v31724;
   {
   register ptr gf←c68388 =  (ptr) &globalframe;
   word success←v31768;
   /* ContinueAdd: */ 
SOURCE(32135, 554)
SOURCE(32135, 554)
   success←v31768 = 1;
SOURCE(32162, 43)
   {
      word pd388;
      pd388 = (* (( (ptr) (* (( (ptr) gf←c68388)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd388 ))))((* (( (ptr) gf←c68388)+122) ), (* (( (ptr) gf←c68388)+74) ), pd388);
      };
SOURCE(32208, 96)
   (void) TransformObjectsAfterMove←P1440((* (( (ptr) ggData←v31696)+11) ), (* (( (ptr) (* (( (ptr) ggData←v31696)+16) ))+13)
       ), (* (( (ptr) (* (( (ptr) ggData←v31696)+16) ))+17) ), 0);
SOURCE(32393, 29)
   {
      word pd389;
      pd389 = (* (( (ptr) (* (( (ptr) gf←c68388)+272)/* var←c64420 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd389 ))))(ggData←v31696, pd389);
      };
SOURCE(32474, 41)
   {
      word pd390;
      pd390 = (* (( (ptr) (* (( (ptr) gf←c68388)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd390 ))))(ggData←v31696, pd390);
      };
SOURCE(32517, 28)
   {
      word pd391;
      pd391 = (* (( (ptr) (* (( (ptr) gf←c68388)+264)/* var←c62948 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd391 ))))(ggData←v31696, pd391);
      };
SOURCE(32547, 40)
   {
      word pd392;
      pd392 = (* (( (ptr) (* (( (ptr) gf←c68388)+273)/* var←c64484 */  ))+31) );
      (void) ( *( (fPt) ((*  (ptr) pd392 ))))(ggData←v31696, 1, pd392);
      };
SOURCE(32590, 42)
   {
      word pd393;
      pd393 = (* (( (ptr) (* (( (ptr) gf←c68388)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd393 ))))((* (( (ptr) gf←c68388)+122) ), (* (( (ptr) gf←c68388)+74) ), pd393);
      };
SOURCE(32634, 55)
   {
      word var←c65604;
      {
         word var←c65636;
         word var←c65668;
         var←c65636 = XR←NewObject(8, (* (( (ptr) gf←c68388)+20) ));
         var←c65668 = var←c65636;
         (*  (ptr) var←c65668 ) = (* (( (ptr) gf←c68388)+122) );
         var←c65604 = var←c65636;
         };
      success←v31768 = (word) StartAdd←P2880(var←c65604, ggData←v31696, worldPt←v31724);
      };
SOURCE(32135, 554)
   return(success←v31768);
   }

static void EndMotion←P2460(input←v31828, ggData←v31856, worldPt←v31884)
   word input←v31828;
   word ggData←v31856;
   W2 worldPt←v31884;
   {
   register ptr gf←c68420 =  (ptr) &globalframe;
   /* EndMotion: */ 
SOURCE(32695, 717)
SOURCE(32721, 41)
   {
      word pd394;
      pd394 = (* (( (ptr) (* (( (ptr) gf←c68420)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd394 ))))((* (( (ptr) gf←c68420)+123) ), (* (( (ptr) gf←c68420)+74) ), pd394);
      };
SOURCE(32764, 160)
   {
      word pd395;
      pd395 = (* (( (ptr) (* (( (ptr) gf←c68420)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd395 ))))(ggData←v31856, 0, 1, 0, 0, 1
         , 1, 1, 1, 1, pd395);
      };
SOURCE(32926, 127)
   {
      word var←c65700;
      W2 var←c0451;
      {
         word pd396;
         pd396 = (* (( (ptr) (* (( (ptr) gf←c68420)+272)/* var←c64420 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd396 ))))((word) &var←c0451, ggData←v31856, pd396);
         };
      var←c65700 = var←c0451.f0;
      (void) TransformObjectsAfterMove←P1440((* (( (ptr) ggData←v31856)+11) ), (* (( (ptr) (* (( (ptr) ggData←v31856)+16) ))+13)
          ), (* (( (ptr) (* (( (ptr) ggData←v31856)+16) ))+17) ), var←c65700);
      };
SOURCE(33055, 29)
   {
      word pd397;
      pd397 = (* (( (ptr) (* (( (ptr) gf←c68420)+272)/* var←c64420 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd397 ))))(ggData←v31856, pd397);
      };
SOURCE(33125, 41)
   {
      word pd398;
      pd398 = (* (( (ptr) (* (( (ptr) gf←c68420)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd398 ))))(ggData←v31856, pd398);
      };
SOURCE(33168, 28)
   {
      word pd399;
      pd399 = (* (( (ptr) (* (( (ptr) gf←c68420)+264)/* var←c62948 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd399 ))))(ggData←v31856, pd399);
      };
SOURCE(33198, 41)
   {
      word pd400;
      pd400 = (* (( (ptr) (* (( (ptr) gf←c68420)+273)/* var←c64484 */  ))+31) );
      (void) ( *( (fPt) ((*  (ptr) pd400 ))))(ggData←v31856, 1, pd400);
      };
SOURCE(33241, 128)
   {
      word pd401;
      pd401 = (* (( (ptr) (* (( (ptr) gf←c68420)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd401 ))))((* (( (ptr) gf←c68420)+123) ), ggData←v31856, 4, 1, 0, 0, pd401);
      };
SOURCE(33372, 40)
   {
      word pd402;
      pd402 = (* (( (ptr) (* (( (ptr) gf←c68420)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd402 ))))((* (( (ptr) gf←c68420)+123) ), (* (( (ptr) gf←c68420)+74) ), pd402);
      };
   }

static void EndMotionNoHistory←P2520(input←v31944, ggData←v31972, worldPt←v32000)
   word input←v31944;
   word ggData←v31972;
   W2 worldPt←v32000;
   {
   register ptr gf←c68452 =  (ptr) &globalframe;
   /* EndMotionNoHistory: */ 
SOURCE(33418, 722)
SOURCE(33453, 50)
   {
      word pd403;
      pd403 = (* (( (ptr) (* (( (ptr) gf←c68452)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd403 ))))((* (( (ptr) gf←c68452)+124) ), (* (( (ptr) gf←c68452)+74) ), pd403);
      };
SOURCE(33505, 160)
   {
      word pd404;
      pd404 = (* (( (ptr) (* (( (ptr) gf←c68452)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd404 ))))(ggData←v31972, 0, 1, 0, 0, 1
         , 1, 1, 1, 1, pd404);
      };
SOURCE(33667, 96)
   (void) TransformObjectsAfterMove←P1440((* (( (ptr) ggData←v31972)+11) ), (* (( (ptr) (* (( (ptr) ggData←v31972)+16) ))+13)
       ), (* (( (ptr) (* (( (ptr) ggData←v31972)+16) ))+17) ), 0);
SOURCE(33765, 29)
   {
      word pd405;
      pd405 = (* (( (ptr) (* (( (ptr) gf←c68452)+272)/* var←c64420 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd405 ))))(ggData←v31972, pd405);
      };
SOURCE(33844, 41)
   {
      word pd406;
      pd406 = (* (( (ptr) (* (( (ptr) gf←c68452)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd406 ))))(ggData←v31972, pd406);
      };
SOURCE(33887, 28)
   {
      word pd407;
      pd407 = (* (( (ptr) (* (( (ptr) gf←c68452)+264)/* var←c62948 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd407 ))))(ggData←v31972, pd407);
      };
SOURCE(33917, 41)
   {
      word pd408;
      pd408 = (* (( (ptr) (* (( (ptr) gf←c68452)+273)/* var←c64484 */  ))+31) );
      (void) ( *( (fPt) ((*  (ptr) pd408 ))))(ggData←v31972, 1, pd408);
      };
SOURCE(33960, 128)
   {
      word pd409;
      pd409 = (* (( (ptr) (* (( (ptr) gf←c68452)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd409 ))))((* (( (ptr) gf←c68452)+123) ), ggData←v31972, 4, 1, 0, 0, pd409);
      };
SOURCE(34091, 49)
   {
      word pd410;
      pd410 = (* (( (ptr) (* (( (ptr) gf←c68452)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd410 ))))((* (( (ptr) gf←c68452)+124) ), (* (( (ptr) gf←c68452)+74) ), pd410);
      };
   }

static void EndMotionNoHistoryAndDeselect←P2580(input←v32060, ggData←v32088, worldPt←v32116)
   word input←v32060;
   word ggData←v32088;
   W2 worldPt←v32116;
   {
   register ptr gf←c68484 =  (ptr) &globalframe;
   /* EndMotionNoHistoryAndDeselect: */ 
SOURCE(34146, 799)
SOURCE(34192, 61)
   {
      word pd411;
      pd411 = (* (( (ptr) (* (( (ptr) gf←c68484)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd411 ))))((* (( (ptr) gf←c68484)+125) ), (* (( (ptr) gf←c68484)+74) ), pd411);
      };
SOURCE(34255, 160)
   {
      word pd412;
      pd412 = (* (( (ptr) (* (( (ptr) gf←c68484)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd412 ))))(ggData←v32088, 0, 1, 0, 0, 1
         , 1, 1, 1, 1, pd412);
      };
SOURCE(34417, 96)
   (void) TransformObjectsAfterMove←P1440((* (( (ptr) ggData←v32088)+11) ), (* (( (ptr) (* (( (ptr) ggData←v32088)+16) ))+13)
       ), (* (( (ptr) (* (( (ptr) ggData←v32088)+16) ))+17) ), 0);
SOURCE(34515, 29)
   {
      word pd413;
      pd413 = (* (( (ptr) (* (( (ptr) gf←c68484)+272)/* var←c64420 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd413 ))))(ggData←v32088, pd413);
      };
SOURCE(34594, 41)
   {
      word pd414;
      pd414 = (* (( (ptr) (* (( (ptr) gf←c68484)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd414 ))))(ggData←v32088, pd414);
      };
SOURCE(34637, 28)
   {
      word pd415;
      pd415 = (* (( (ptr) (* (( (ptr) gf←c68484)+264)/* var←c62948 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd415 ))))(ggData←v32088, pd415);
      };
SOURCE(34667, 41)
   {
      word pd416;
      pd416 = (* (( (ptr) (* (( (ptr) gf←c68484)+273)/* var←c64484 */  ))+31) );
      (void) ( *( (fPt) ((*  (ptr) pd416 ))))(ggData←v32088, 1, pd416);
      };
SOURCE(34710, 42)
   {
      word pd417;
      pd417 = (* (( (ptr) (* (( (ptr) gf←c68484)+262)/* var←c62852 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd417 ))))((* (( (ptr) ggData←v32088)+11) ), 0, pd417);
      };
SOURCE(34754, 128)
   {
      word pd418;
      pd418 = (* (( (ptr) (* (( (ptr) gf←c68484)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd418 ))))((* (( (ptr) gf←c68484)+123) ), ggData←v32088, 4, 1, 0, 0, pd418);
      };
SOURCE(34885, 60)
   {
      word pd419;
      pd419 = (* (( (ptr) (* (( (ptr) gf←c68484)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd419 ))))((* (( (ptr) gf←c68484)+125) ), (* (( (ptr) gf←c68484)+74) ), pd419);
      };
   }

static void SafelyGetCaretTraj←P2640(formal←c0468, caret←v11880)
   word formal←c0468;
   word caret←v11880;
   {
   register ptr gf←c68516 =  (ptr) &globalframe;
   word chair←v11924;
   word traj←v11952;
   word jointNum←v11980;
   word success←v17296 = 0;
   word chairD←v17324 = 0;
   word tJointNum←v17352;
   /* SafelyGetCaretTraj: */ 
SOURCE(34952, 414)
SOURCE(34952, 414)
   chair←v11924 = 0;
SOURCE(34952, 414)
   traj←v11952 = 0;
SOURCE(35127, 31)
   {
      word pd420;
      pd420 = (* (( (ptr) (* (( (ptr) gf←c68516)+260)/* var←c62788 */  ))+10) );
      chair←v11924 = (word) ( *( (fPt) ((*  (ptr) pd420 ))))(caret←v11880, pd420);
      };
SOURCE(35160, 60)
   {
      W3 var←c65732;
      {
         word pd421;
         pd421 = (* (( (ptr) (* (( (ptr) gf←c68516)+269)/* var←c63876 */  ))+75) );
         (void) ( *( (fPt) ((*  (ptr) pd421 ))))((word) &var←c65732, chair←v11924, pd421);
         };
      tJointNum←v17352 = var←c65732.f2;
      chairD←v17324 = var←c65732.f1;
      success←v17296 = var←c65732.f0;
      };
SOURCE(35222, 101)
   if ((0 == success←v17296)) {
SOURCE(35242, 81)
      {
         word var←c0467;
         var←c0467 = (* (( (ptr) gf←c68516)+126) );
         (void) XR←RaiseError((* (( (ptr) gf←c68516)+4)/* Problem←v5380 */  ), (word) &var←c0467);
         };
      };
SOURCE(35325, 20)
   jointNum←v11980 = SGNCK(tJointNum←v17352);
SOURCE(35347, 19)
   traj←v11952 = (*  (ptr) chairD←v17324 );
   /* removed tail goto */ 
   (*  (ptr) formal←c0468 ) = chair←v11924;
   (* (( (ptr) formal←c0468)+1) ) = traj←v11952;
   (* (( (ptr) formal←c0468)+2) ) = jointNum←v11980;
   return;
   }

static void UpdateSceneForAdd←P2700(formal←c0488, scene←v12040, worldPt←v12068, caret←v12096, defaults←v12124)
   word formal←c0488;
   word scene←v12040;
   W2 worldPt←v12068;
   word caret←v12096;
   word defaults←v12124;
   {
   register ptr gf←c68548 =  (ptr) &globalframe;
   word oldTraj←v12168;
   word newTraj←v12196;
   word trajEnd←v12224;
   word newParent←v12252;
   W2 caretPoint←v17396;
   word jointNum←v17424;
   word newSeg←v17452 = 0;
   word extendSeg←v17480 = 0;
   word chair←v17508 = 0;
   word success←v17536;
   /* UpdateSceneForAdd: */ 
SOURCE(35372, 1188)
SOURCE(35372, 1188)
   oldTraj←v12168 = 0;
SOURCE(35372, 1188)
   newTraj←v12196 = 0;
SOURCE(35372, 1188)
   newParent←v12252 = 0;
SOURCE(35639, 36)
   {
      word pd422;
      pd422 = (* (( (ptr) (* (( (ptr) gf←c68548)+260)/* var←c62788 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd422 ))))((word) &caretPoint←v17396, caret←v12096, pd422);
      };
SOURCE(35677, 53)
   {
      word pd423;
      pd423 = (* (( (ptr) (* (( (ptr) gf←c68548)+279)/* var←c65764 */  ))+5) );
      newSeg←v17452 = (word) ( *( (fPt) ((*  (ptr) pd423 ))))(worldPt←v12068, caretPoint←v17396, 0, pd423);
      };
SOURCE(35732, 828)
   {
      word pd424;
      pd424 = (* (( (ptr) (* (( (ptr) gf←c68548)+260)/* var←c62788 */  ))+11) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd424 ))))(caret←v12096, pd424))) {
SOURCE(35770, 54)
         {
            W3 var←c65796;
            (void) SafelyGetCaretTraj←P2640((word) &var←c65796, caret←v12096);
            jointNum←v17424 = var←c65796.f2;
            newTraj←v12196 = var←c65796.f1;
            chair←v17508 = var←c65796.f0;
            };
SOURCE(35826, 17)
         oldTraj←v12168 = newTraj←v12196;
SOURCE(35845, 87)
         {
            word var←c65828;
            var←c65828 = jointNum←v17424;
            {
               word pd425;
               if ((var←c65828 == 0)) {
                  trajEnd←v12224 = 0;
                  }
               else {
                  pd425 = (* (( (ptr) (* (( (ptr) gf←c68548)+280)/* var←c65860 */  ))+39) );
                  if ((var←c65828 == (word) ( *( (fPt) ((*  (ptr) pd425 ))))(newTraj←v12196, pd425))) {
                     trajEnd←v12224 = 1;
                     }
                  else {
                     trajEnd←v12224 =  (unsigned) (
                        XR←RaiseUnnamedError(), 0
                        );
                     };
                  };
               };
            };
SOURCE(35934, 93)
         {
            word var←c65892;
            {
               word pd426;
               if ((trajEnd←v12224 == 0)) {
                  var←c65892 = 0;
                  }
               else {
                  pd426 = (* (( (ptr) (* (( (ptr) gf←c68548)+280)/* var←c65860 */  ))+37) );
                  var←c65892 = (word) ( *( (fPt) ((*  (ptr) pd426 ))))(newTraj←v12196, pd426);
                  };
               };
            {
               word pd427;
               pd427 = (* (( (ptr) (* (( (ptr) gf←c68548)+280)/* var←c65860 */  ))+29) );
               extendSeg←v17480 = (word) ( *( (fPt) ((*  (ptr) pd427 ))))(newTraj←v12196, var←c65892, pd427);
               };
            };
SOURCE(36029, 38)
         {
            word pd428;
            pd428 = (* (( (ptr) (* (( (ptr) gf←c68548)+279)/* var←c65764 */  ))+18) );
            (void) ( *( (fPt) ((*  (ptr) pd428 ))))(extendSeg←v17480, newSeg←v17452, pd428);
            };
SOURCE(36069, 57)
         {
            word pd429;
            pd429 = (* (( (ptr) (* (( (ptr) gf←c68548)+280)/* var←c65860 */  ))+6) );
            success←v17536 = (word) ( *( (fPt) ((*  (ptr) pd429 ))))(newTraj←v12196, trajEnd←v12224, newSeg←v17452, 1, pd429);
            };
SOURCE(36128, 26)
         if ((0 == success←v17536)) {
SOURCE(36148, 6)
            goto lab←L100015;
            };
SOURCE(36156, 23)
         newParent←v12252 = (*  (ptr) chair←v17508 );
         }
      else {
SOURCE(36190, 13)
         oldTraj←v12168 = 0;
SOURCE(36205, 12)
         trajEnd←v12224 = 1;
SOURCE(36219, 39)
         {
            word pd430;
            pd430 = (* (( (ptr) (* (( (ptr) gf←c68548)+280)/* var←c65860 */  ))+4) );
            newTraj←v12196 = (word) ( *( (fPt) ((*  (ptr) pd430 ))))(caretPoint←v17396, pd430);
            };
SOURCE(36260, 66)
         {
            word pd431;
            pd431 = (* (( (ptr) (* (( (ptr) gf←c68548)+269)/* var←c63876 */  ))+57) );
            (void) ( *( (fPt) ((*  (ptr) pd431 ))))(newTraj←v12196, 0, (* (( (ptr) defaults←v12124)+1) ), 0, pd431);
            };
SOURCE(36328, 39)
         {
            word pd432;
            pd432 = (* (( (ptr) (* (( (ptr) gf←c68548)+279)/* var←c65764 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd432 ))))(newSeg←v17452, defaults←v12124, pd432);
            };
SOURCE(36369, 57)
         {
            word pd433;
            pd433 = (* (( (ptr) (* (( (ptr) gf←c68548)+280)/* var←c65860 */  ))+6) );
            success←v17536 = (word) ( *( (fPt) ((*  (ptr) pd433 ))))(newTraj←v12196, trajEnd←v12224, newSeg←v17452, 1, pd433);
            };
SOURCE(36428, 26)
         if ((0 == success←v17536)) {
SOURCE(36448, 6)
            goto lab←L100015;
            };
SOURCE(36456, 64)
         {
            word pd434;
            pd434 = (* (( (ptr) (* (( (ptr) gf←c68548)+281)/* var←c65924 */  ))+5) );
            newParent←v12252 = (word) ( *( (fPt) ((*  (ptr) pd434 ))))(newTraj←v12196, (* (( (ptr) defaults←v12124)+8) ), pd434);
            };
SOURCE(36522, 38)
         {
            word pd435;
            pd435 = (* (( (ptr) (* (( (ptr) gf←c68548)+259)/* var←c62756 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd435 ))))(scene←v12040, newParent←v12252,  (word) -1, pd435);
            };
         };
      };
   /* removed tail goto */ 
   lab←L100015: ;
   (*  (ptr) formal←c0488 ) = oldTraj←v12168;
   (* (( (ptr) formal←c0488)+1) ) = newTraj←v12196;
   (* (( (ptr) formal←c0488)+2) ) = trajEnd←v12224;
   (* (( (ptr) formal←c0488)+3) ) = newParent←v12252;
   return;
   }

static void UpdateSelectionsForAdd←P2760(formal←c0501, scene←v12312, oldTraj←v12340, newTraj←v12368, trajEnd←v12396)
   word formal←c0501;
   word scene←v12312;
   word oldTraj←v12340;
   word newTraj←v12368;
   word trajEnd←v12396;
   {
   register ptr gf←c68580 =  (ptr) &globalframe;
   word newNormal←v12440;
   word newHot←v12468;
   word jointNum←v17580;
   /* UpdateSelectionsForAdd: */ 
SOURCE(36569, 785)
SOURCE(36569, 785)
   newNormal←v12440 = 0;
SOURCE(36569, 785)
   newHot←v12468 = 0;
SOURCE(36711, 92)
   {
      word var←c65956;
      var←c65956 = trajEnd←v12396;
      {
         word pd436;
         if ((var←c65956 == 0)) {
            jointNum←v17580 = 0;
            }
         else {
            if ((var←c65956 == 1)) {
               pd436 = (* (( (ptr) (* (( (ptr) gf←c68580)+280)/* var←c65860 */  ))+39) );
               jointNum←v17580 = (word) ( *( (fPt) ((*  (ptr) pd436 ))))(newTraj←v12368, pd436);
               }
            else {
               jointNum←v17580 = (
                  XR←RaiseUnnamedError(), 0
                  );
               };
            };
         };
      };
SOURCE(36805, 172)
   {
      word pd437;
      if ((oldTraj←v12340 != 0)) {
         pd437 = (* (( (ptr) (* (( (ptr) gf←c68580)+262)/* var←c62852 */  ))+10) );
         newHot←v12468 = (word) ( *( (fPt) ((*  (ptr) pd437 ))))(newTraj←v12368, trajEnd←v12396, scene←v12312, 1, pd437);
         }
      else {
         {
            word var←c65988;
            {
               word var←c66020;
               var←c66020 = XR←Narrow((* (( (ptr) newTraj←v12368)+1) ), (* (( (ptr) gf←c68580)+15) ));
               {
                  word pd438;
                  pd438 = (* (( (ptr) (* (( (ptr) gf←c68580)+282)/* var←c66052 */  ))+6) );
                  var←c65988 = (word) ( *( (fPt) ((*  (ptr) pd438 ))))(var←c66020, pd438);
                  };
               };
            {
               word pd439;
               pd439 = (* (( (ptr) (* (( (ptr) gf←c68580)+283)/* var←c66084 */  ))+8) );
               newHot←v12468 = (word) ( *( (fPt) ((*  (ptr) pd439 ))))(newTraj←v12368, var←c65988, pd439);
               };
            };
         };
      };
SOURCE(37004, 84)
   if ((newHot←v12468 != 0)) {
SOURCE(37025, 63)
      {
         word pd440;
         pd440 = (* (( (ptr) (* (( (ptr) gf←c68580)+284)/* var←c66116 */  ))+84) );
         newHot←v12468 = (word) ( *( (fPt) ((*  (ptr) pd440 ))))(newHot←v12468, pd440);
         };
      };
SOURCE(37090, 108)
   {
      word var←c66148;
      {
         word var←c66180;
         var←c66180 = XR←Narrow((* (( (ptr) newTraj←v12368)+1) ), (* (( (ptr) gf←c68580)+15) ));
         {
            word pd441;
            pd441 = (* (( (ptr) (* (( (ptr) gf←c68580)+282)/* var←c66052 */  ))+8) );
            var←c66148 = (word) ( *( (fPt) ((*  (ptr) pd441 ))))(var←c66180, jointNum←v17580, pd441);
            };
         };
      {
         word pd442;
         pd442 = (* (( (ptr) (* (( (ptr) gf←c68580)+283)/* var←c66084 */  ))+8) );
         newNormal←v12440 = (word) ( *( (fPt) ((*  (ptr) pd442 ))))(newTraj←v12368, var←c66148, pd442);
         };
      };
SOURCE(37200, 69)
   {
      word pd443;
      pd443 = (* (( (ptr) (* (( (ptr) gf←c68580)+284)/* var←c66116 */  ))+84) );
      newNormal←v12440 = (word) ( *( (fPt) ((*  (ptr) pd443 ))))(newNormal←v12440, pd443);
      };
SOURCE(37271, 35)
   {
      word pd444;
      pd444 = (* (( (ptr) (* (( (ptr) gf←c68580)+262)/* var←c62852 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd444 ))))(scene←v12312, 0, pd444);
      };
SOURCE(37308, 46)
   {
      word pd445;
      pd445 = (* (( (ptr) (* (( (ptr) gf←c68580)+262)/* var←c62852 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd445 ))))(newNormal←v12440, scene←v12312, 0, pd445);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0501 ) = newNormal←v12440;
   (* (( (ptr) formal←c0501)+1) ) = newHot←v12468;
   return;
   }

static void UpdateCaretForAdd←P2820(caret←v12528, newOutline←v12556, newNormal←v12584, worldPt←v12612)
   word caret←v12528;
   word newOutline←v12556;
   word newNormal←v12584;
   W2 worldPt←v12612;
   {
   register ptr gf←c68612 =  (ptr) &globalframe;
   word jointD←v17624;
   /* UpdateCaretForAdd: */ 
SOURCE(37360, 302)
SOURCE(37466, 83)
   {
      word pd446;
      pd446 = (* (( (ptr) (* (( (ptr) gf←c68612)+284)/* var←c66116 */  ))+84) );
      jointD←v17624 = (word) ( *( (fPt) ((*  (ptr) pd446 ))))(newNormal←v12584, pd446);
      };
SOURCE(37551, 49)
   {
      W2 var←c66212;
      var←c66212.f0 = (*  (ptr) &fc190 );
      var←c66212.f1 = (*  (ptr) &fc277 );
      {
         word pd447;
         pd447 = (* (( (ptr) (* (( (ptr) gf←c68612)+260)/* var←c62788 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd447 ))))(caret←v12528, worldPt←v12612, var←c66212, 0, pd447);
         };
      };
SOURCE(37634, 28)
   {
      word pd448;
      pd448 = (* (( (ptr) (* (( (ptr) gf←c68612)+260)/* var←c62788 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd448 ))))(caret←v12528, jointD←v17624, pd448);
      };
   }

static word StartAdd←P2880(input←v32176, ggData←v32204, worldPt←v32232)
   word input←v32176;
   word ggData←v32204;
   W2 worldPt←v32232;
   {
   register ptr gf←c68644 =  (ptr) &globalframe;
   word success←v32276;
   /* StartAdd: */ 
SOURCE(37668, 1971)
SOURCE(37668, 1971)
   success←v32276 = 1;
SOURCE(37692, 1947)
   {
      word pd449;
      pd449 = (* (( (ptr) (* (( (ptr) gf←c68644)+260)/* var←c62788 */  ))+7) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd449 ))))((* ((( (ptr) ggData←v32204)+13)) ), pd449))) {
SOURCE(37729, 1795)
         {
            word continue←v17696 = 0;
            word caret←v17724 = 0;
            word oldTraj←v17752 = 0;
            word newTraj←v17780 = 0;
            word ancestor←v17808 = 0;
            word oldOutline←v17836 = 0;
            word trajEnd←v17864;
            word newNormalD←v17892 = 0;
            word startBox←v17920;
SOURCE(37905, 136)
            {
               word pd450;
               pd450 = (* (( (ptr) (* (( (ptr) gf←c68644)+263)/* var←c62916 */  ))+13) );
               startBox←v17920 = (word) ( *( (fPt) ((*  (ptr) pd450 ))))(ggData←v32204, 1, 1, 0, 0, 0
                  , 1, 0, 1, 0, 0, pd450);
               };
SOURCE(38153, 40)
            {
               word pd451;
               pd451 = (* (( (ptr) (* (( (ptr) gf←c68644)+265)/* var←c63172 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd451 ))))((* (( (ptr) gf←c68644)+89) ), (* (( (ptr) gf←c68644)+74) ), pd451);
               };
SOURCE(38195, 51)
            continue←v17696 =  (unsigned) (XR←Narrow((*  (ptr) input←v32176 ), (* (( (ptr) gf←c68644)+16) )) == (* (( (ptr) gf←c68644)+122)
             ));
SOURCE(38248, 37)
            {
               word pd452;
               pd452 = (* (( (ptr) (* (( (ptr) gf←c68644)+272)/* var←c64420 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd452 ))))((* (( (ptr) gf←c68644)+128) ), ggData←v32204, pd452);
               };
SOURCE(38318, 20)
            caret←v17724 = (* (( (ptr) ggData←v32204)+13) );
SOURCE(38340, 22)
            (void) SaveSavedState←P480(ggData←v32204);
SOURCE(38365, 104)
            {
               W4 var←c66244;
               (void) UpdateSceneForAdd←P2700((word) &var←c66244, (* (( (ptr) ggData←v32204)+11) ), worldPt←v32232, caret←v17724, (* (( (ptr) ggData←v32204)+30)
                   ));
               ancestor←v17808 = var←c66244.f3;
               trajEnd←v17864 = var←c66244.f2;
               newTraj←v17780 = var←c66244.f1;
               oldTraj←v17752 = var←c66244.f0;
               };
SOURCE(38471, 79)
            {
               word pd453;
               if ((oldTraj←v17752 == 0)) {
                  oldOutline←v17836 = 0;
                  }
               else {
                  pd453 = (* (( (ptr) (* (( (ptr) gf←c68644)+284)/* var←c66116 */  ))+65) );
                  oldOutline←v17836 = (word) ( *( (fPt) ((*  (ptr) pd453 ))))(oldTraj←v17752, pd453);
                  };
               };
SOURCE(38553, 84)
            {
               W2 var←c66276;
               (void) UpdateSelectionsForAdd←P2760((word) &var←c66276, (* (( (ptr) ggData←v32204)+11) ), oldTraj←v17752, newTraj←v17780, trajEnd←v17864)
               ;
               newNormalD←v17892 = var←c66276.f0;
               };
SOURCE(38639, 55)
            (void) UpdateCaretForAdd←P2820(caret←v17724, ancestor←v17808, newNormalD←v17892, worldPt←v32232);
SOURCE(38696, 70)
            {
               word var←c66308;
               word pd454;
               pd454 = (* (( (ptr) (* (( (ptr) gf←c68644)+273)/* var←c64484 */  ))+32) );
               var←c66308 = (word) ( *( (fPt) ((*  (ptr) pd454 ))))(oldOutline←v17836, newNormalD←v17892, trajEnd←v17864, ggData←v32204, pd454)
               ;
               };
SOURCE(38769, 674)
            if ((0 != continue←v17696)) {
SOURCE(38788, 105)
               success←v32276 = (word) ContinueMotion←P1560(ggData←v32204, (* (( (ptr) gf←c68644)+128) ), (* (( (ptr) gf←c68644)+35) ), worldPt←v32232, 0)
               ;
SOURCE(38895, 44)
               (void) DragUpdateCaretAndTransform←P1980(worldPt←v32232, ggData←v32204);
SOURCE(38941, 130)
               {
                  word pd455;
                  pd455 = (* (( (ptr) (* (( (ptr) gf←c68644)+264)/* var←c62948 */  ))+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd455 ))))((* (( (ptr) gf←c68644)+106) ), ggData←v32204, 4, 0, 0, 1, pd455);
                  };
               }
            else {
SOURCE(39082, 183)
               success←v32276 = (word) StartMotion←P1500(ggData←v32204, (* (( (ptr) gf←c68644)+128) ), (* (( (ptr) gf←c68644)+35) ), worldPt←v32232, 0, 0
                  , 1, 0, startBox←v17920);
SOURCE(39267, 44)
               (void) DragUpdateCaretAndTransform←P1980(worldPt←v32232, ggData←v32204);
SOURCE(39313, 130)
               {
                  word pd456;
                  pd456 = (* (( (ptr) (* (( (ptr) gf←c68644)+264)/* var←c62948 */  ))+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd456 ))))((* (( (ptr) gf←c68644)+106) ), ggData←v32204, 4, 0, 0, 1, pd456);
                  };
               };
SOURCE(39448, 33)
            if ((0 == success←v32276)) {
SOURCE(39468, 13)
               return(0);
               };
SOURCE(39483, 39)
            {
               word pd457;
               pd457 = (* (( (ptr) (* (( (ptr) gf←c68644)+265)/* var←c63172 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd457 ))))((* (( (ptr) gf←c68644)+89) ), (* (( (ptr) gf←c68644)+74) ), pd457);
               };
            };
         }
      else {
SOURCE(39531, 108)
         {
            word pd458;
            pd458 = (* (( (ptr) (* (( (ptr) gf←c68644)+258)/* var←c62724 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd458 ))))((* (( (ptr) ggData←v32204)+3) ), 0, (* (( (ptr) gf←c68644)+108) ), (* (( (ptr) gf←c68644)+129)
                ), pd458);
            };
         };
      };
SOURCE(37668, 1971)
   return(success←v32276);
   }

static word AddNewBoxSlice←P2940(from←v12672, to←v12700, ggData←v12728, withDefaults←v12756)
   W2 from←v12672;
   W2 to←v12700;
   word ggData←v12728;
   word withDefaults←v12756;
   {
   register ptr gf←c68676 =  (ptr) &globalframe;
   word sliceD←v12800;
   word box←v17964 = 0;
   word corner←v17992 = 0;
   word loX←v18020;
   word loY←v18048;
   word hiX←v18076;
   word hiY←v18104;
   /* AddNewBoxSlice: */ 
SOURCE(39661, 805)
SOURCE(39661, 805)
   sliceD←v12800 = 0;
SOURCE(39827, 29)
   {
      word x459;
      float tf460;
      float tf461;
      word x462;
      float tf463;
      loX←v18020 = (
         tf463 = FMIN((
               x459 = from←v12672.f0,  *(float*)&x459
               ), (
               x462 = to←v12700.f0,  *(float*)&x462
               ), tf460, tf461),  *(word*)&tf463
         );
      };
SOURCE(39858, 29)
   {
      word x464;
      float tf465;
      float tf466;
      word x467;
      float tf468;
      loY←v18048 = (
         tf468 = FMIN((
               x464 = from←v12672.f1,  *(float*)&x464
               ), (
               x467 = to←v12700.f1,  *(float*)&x467
               ), tf465, tf466),  *(word*)&tf468
         );
      };
SOURCE(39889, 29)
   {
      word x469;
      float tf470;
      float tf471;
      word x472;
      float tf473;
      hiX←v18076 = (
         tf473 = FMAX((
               x469 = from←v12672.f0,  *(float*)&x469
               ), (
               x472 = to←v12700.f0,  *(float*)&x472
               ), tf470, tf471),  *(word*)&tf473
         );
      };
SOURCE(39920, 29)
   {
      word x474;
      float tf475;
      float tf476;
      word x477;
      float tf478;
      hiY←v18104 = (
         tf478 = FMAX((
               x474 = from←v12672.f1,  *(float*)&x474
               ), (
               x477 = to←v12700.f1,  *(float*)&x477
               ), tf475, tf476),  *(word*)&tf478
         );
      };
SOURCE(39951, 62)
   {
      word x479;
      word x480;
      if (((
         x479 = to←v12700.f0,  *(float*)&x479
         ) == (
         x480 = loX←v18020,  *(float*)&x480
         ))) {
SOURCE(39968, 45)
         {
            word x481;
            word x482;
            if (((
               x481 = to←v12700.f1,  *(float*)&x481
               ) == (
               x482 = loY←v18048,  *(float*)&x482
               ))) {
SOURCE(39985, 17)
               corner←v17992 = 1;
               }
            else {
SOURCE(40002, 11)
               corner←v17992 = 2;
               };
            };
         };
      };
SOURCE(40015, 62)
   {
      word x483;
      word x484;
      if (((
         x483 = to←v12700.f0,  *(float*)&x483
         ) == (
         x484 = hiX←v18076,  *(float*)&x484
         ))) {
SOURCE(40032, 45)
         {
            word x485;
            word x486;
            if (((
               x485 = to←v12700.f1,  *(float*)&x485
               ) == (
               x486 = loY←v18048,  *(float*)&x486
               ))) {
SOURCE(40049, 17)
               corner←v17992 = 4;
               }
            else {
SOURCE(40066, 11)
               corner←v17992 = 3;
               };
            };
         };
      };
SOURCE(40079, 51)
   {
      word pd487;
      pd487 = (* (( (ptr) (* (( (ptr) gf←c68676)+275)/* var←c65028 */  ))+5) );
      box←v17964 = (word) ( *( (fPt) ((*  (ptr) pd487 ))))(loX←v18020, loY←v18048, hiX←v18076, hiY←v18104, 0, 0, pd487);
      };
SOURCE(40132, 94)
   {
      word var←c66340;
      {
         word var←c66372;
         {
            word pd488;
            pd488 = (* (( (ptr) (* (( (ptr) gf←c68676)+278)/* var←c65412 */  ))+4) );
            var←c66372 = (word) ( *( (fPt) ((*  (ptr) pd488 ))))(pd488);
            };
         {
            word pd489;
            pd489 = (* (( (ptr) (* (( (ptr) gf←c68676)+283)/* var←c66084 */  ))+45) );
            var←c66340 = (word) ( *( (fPt) ((*  (ptr) pd489 ))))(box←v17964, corner←v17992, var←c66372, pd489);
            };
         };
      (* (( (ptr) (* (( (ptr) ggData←v12728)+16) ))+12) ) = var←c66340;
      sliceD←v12800 = var←c66340;
      };
SOURCE(40228, 84)
   if ((0 != withDefaults←v12756)) {
SOURCE(40249, 63)
      {
         word pd490;
         pd490 = (* (( (ptr) (* (( (ptr) gf←c68676)+269)/* var←c63876 */  ))+52) );
         (void) ( *( (fPt) ((*  (ptr) pd490 ))))((*  (ptr) sliceD←v12800 ), 0, (* (( (ptr) ggData←v12728)+30) ), 0, pd490);
         };
      };
SOURCE(40314, 102)
   {
      word pd491;
      pd491 = (* (( (ptr) (* (( (ptr) gf←c68676)+285)/* var←c66404 */  ))+28) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd491 ))))(pd491))) {
SOURCE(40358, 58)
         {
            word pd492;
            pd492 = (* (( (ptr) (* (( (ptr) gf←c68676)+269)/* var←c63876 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd492 ))))((*  (ptr) sliceD←v12800 ), 0, 0, (* (( (ptr) gf←c68676)+130) ), 0, pd492);
            };
         };
      };
SOURCE(40418, 48)
   {
      word pd493;
      pd493 = (* (( (ptr) (* (( (ptr) gf←c68676)+259)/* var←c62756 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd493 ))))((* (( (ptr) ggData←v12728)+11) ), (*  (ptr) sliceD←v12800 ),  (word) -1, pd493);
      };
SOURCE(39661, 805)
   return(sliceD←v12800);
   }

static word StartSelectWithBox←P3000(input←v32336, ggData←v32364, worldPt←v32392)
   word input←v32336;
   word ggData←v32364;
   W2 worldPt←v32392;
   {
   register ptr gf←c68708 =  (ptr) &globalframe;
   word success←v32436;
   /* StartSelectWithBox: */ 
SOURCE(40472, 1362)
SOURCE(40472, 1362)
   success←v32436 = 1;
SOURCE(40506, 1328)
   {
      word pd494;
      pd494 = (* (( (ptr) (* (( (ptr) gf←c68708)+260)/* var←c62788 */  ))+7) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd494 ))))((* ((( (ptr) ggData←v32364)+13)) ), pd494))) {
SOURCE(40543, 1170)
         {
            word boxSlideD←v18148 = 0;
            W2 caretPos←v18176;
SOURCE(40590, 50)
            {
               word pd495;
               pd495 = (* (( (ptr) (* (( (ptr) gf←c68708)+265)/* var←c63172 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd495 ))))((* (( (ptr) gf←c68708)+32) ), (* (( (ptr) gf←c68708)+74) ), pd495);
               };
SOURCE(40642, 41)
            {
               word pd496;
               pd496 = (* (( (ptr) (* (( (ptr) gf←c68708)+260)/* var←c62788 */  ))+15) );
               (void) ( *( (fPt) ((*  (ptr) pd496 ))))((word) &caretPos←v18176, (* (( (ptr) ggData←v32364)+13) ), pd496);
               };
SOURCE(40685, 22)
            (void) SaveSavedState←P480(ggData←v32364);
SOURCE(40758, 43)
            {
               word pd497;
               pd497 = (* (( (ptr) (* (( (ptr) gf←c68708)+263)/* var←c62916 */  ))+21) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd497 ))))(ggData←v32364, pd497))) {
SOURCE(40801, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
SOURCE(40831, 32)
            (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v32364)+16) ))+2) ) = worldPt←v32392;
SOURCE(40865, 55)
            {
               word pd498;
               pd498 = (* (( (ptr) (* (( (ptr) gf←c68708)+274)/* var←c64804 */  ))+7) );
               (* (( (ptr) (* (( (ptr) ggData←v32364)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd498 ))))((*  (ptr) (&fc225) ), pd498)
               ;
               };
SOURCE(40922, 123)
            {
               word pd499;
               pd499 = (* (( (ptr) (* (( (ptr) gf←c68708)+263)/* var←c62916 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd499 ))))(ggData←v32364, 0, 1, 0, 0, 0
                  , 1, 1, 1, 0, pd499);
               };
SOURCE(41047, 60)
            boxSlideD←v18148 = (word) AddNewBoxSlice←P2940(caretPos←v18176, worldPt←v32392, ggData←v32364, 0);
SOURCE(41109, 61)
            {
               word pd500;
               pd500 = (* (( (ptr) (* (( (ptr) gf←c68708)+269)/* var←c63876 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd500 ))))((*  (ptr) boxSlideD←v18148 ), 0, 0, (* (( (ptr) gf←c68708)+130) ), 0, pd500);
               };
SOURCE(41172, 72)
            {
               word pd501;
               pd501 = (* (( (ptr) (* (( (ptr) gf←c68708)+269)/* var←c63876 */  ))+59) );
               (void) ( *( (fPt) ((*  (ptr) pd501 ))))((*  (ptr) boxSlideD←v18148 ), 0, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c68708)+286)
                     /* var←c66436 */  ))+54) ) ), (* (( (ptr) gf←c68708)+130) ), 0, pd501);
               };
SOURCE(41246, 62)
            {
               word var←c66468;
               word pd502;
               pd502 = (* (( (ptr) (* (( (ptr) gf←c68708)+269)/* var←c63876 */  ))+53) );
               var←c66468 = (word) ( *( (fPt) ((*  (ptr) pd502 ))))((*  (ptr) boxSlideD←v18148 ), 0, (*  (ptr) &fc225 ), 0, pd502);
               };
SOURCE(41310, 42)
            {
               word pd503;
               pd503 = (* (( (ptr) (* (( (ptr) gf←c68708)+262)/* var←c62852 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd503 ))))((* (( (ptr) ggData←v32364)+11) ), 0, pd503);
               };
SOURCE(41354, 53)
            {
               word pd504;
               pd504 = (* (( (ptr) (* (( (ptr) gf←c68708)+262)/* var←c62852 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd504 ))))(boxSlideD←v18148, (* (( (ptr) ggData←v32364)+11) ), 0, pd504);
               };
SOURCE(41409, 42)
            {
               word pd505;
               pd505 = (* (( (ptr) (* (( (ptr) gf←c68708)+263)/* var←c62916 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd505 ))))(boxSlideD←v18148, ggData←v32364, pd505);
               };
SOURCE(41491, 135)
            {
               word pd506;
               pd506 = (* (( (ptr) (* (( (ptr) gf←c68708)+264)/* var←c62948 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd506 ))))((* (( (ptr) gf←c68708)+131) ), ggData←v32364, 4, 0, 0, 1, pd506);
               };
SOURCE(41628, 32)
            (void) DuringDrag←P1920(0, ggData←v32364, worldPt←v32392);
SOURCE(41662, 49)
            {
               word pd507;
               pd507 = (* (( (ptr) (* (( (ptr) gf←c68708)+265)/* var←c63172 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd507 ))))((* (( (ptr) gf←c68708)+32) ), (* (( (ptr) gf←c68708)+74) ), pd507);
               };
            };
         }
      else {
SOURCE(41720, 114)
         {
            word pd508;
            pd508 = (* (( (ptr) (* (( (ptr) gf←c68708)+258)/* var←c62724 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd508 ))))((* (( (ptr) ggData←v32364)+3) ), 0, (* (( (ptr) gf←c68708)+108) ), (* (( (ptr) gf←c68708)+132)
                ), pd508);
            };
         };
      };
SOURCE(40472, 1362)
   return(success←v32436);
   }

static void EndSelectWithBox←P3060(input←v32496, ggData←v32524, worldPt←v32552)
   word input←v32496;
   word ggData←v32524;
   W2 worldPt←v32552;
   {
   register ptr gf←c68740 =  (ptr) &globalframe;
   word sliceD←v18220;
   word slice←v18248;
   word box←v18276 = 0;
   /* EndSelectWithBox: */ 
SOURCE(41840, 1040)
SOURCE(41872, 59)
   sliceD←v18220 = (* (( (ptr) (* (( (ptr) ggData←v32524)+16) ))+12) );
SOURCE(41933, 27)
   slice←v18248 = (*  (ptr) sliceD←v18220 );
SOURCE(41978, 48)
   {
      word pd509;
      pd509 = (* (( (ptr) (* (( (ptr) gf←c68740)+265)/* var←c63172 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd509 ))))((* (( (ptr) gf←c68740)+133) ), (* (( (ptr) gf←c68740)+74) ), pd509);
      };
SOURCE(42029, 123)
   {
      word pd510;
      pd510 = (* (( (ptr) (* (( (ptr) gf←c68740)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd510 ))))(ggData←v32524, 0, 1, 0, 0, 1
         , 0, 1, 1, 0, pd510);
      };
SOURCE(42154, 105)
   {
      word pd511;
      pd511 = (* (( (ptr) (* (( (ptr) gf←c68740)+269)/* var←c63876 */  ))+22) );
      (void) ( *( (fPt) ((*  (ptr) pd511 ))))((*  (ptr) sliceD←v18220 ), (* (( (ptr) sliceD←v18220)+1) ), (* (( (ptr) (* (( (ptr) ggData←v32524)+16)
             ))+13) ), (* (( (ptr) (* (( (ptr) ggData←v32524)+16) ))+17) ), 0, pd511);
      };
SOURCE(42261, 41)
   {
      word pd512;
      pd512 = (* (( (ptr) (* (( (ptr) gf←c68740)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd512 ))))(ggData←v32524, pd512);
      };
SOURCE(42347, 35)
   {
      word pd513;
      pd513 = (* (( (ptr) (* (( (ptr) gf←c68740)+269)/* var←c63876 */  ))+7) );
      box←v18276 = (word) ( *( (fPt) ((*  (ptr) pd513 ))))(slice←v18248, 0, pd513);
      };
SOURCE(42384, 40)
   {
      word pd514;
      pd514 = (* (( (ptr) (* (( (ptr) gf←c68740)+259)/* var←c62756 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd514 ))))((* (( (ptr) ggData←v32524)+11) ), slice←v18248, pd514);
      };
SOURCE(42426, 46)
   {
      word pd515;
      pd515 = (* (( (ptr) (* (( (ptr) gf←c68740)+259)/* var←c62756 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd515 ))))((* (( (ptr) ggData←v32524)+11) ), box←v18276, 0, pd515);
      };
SOURCE(42474, 124)
   {
      W2 var←c66500;
      W2 var←c66532;
      {
         word pd516;
         pd516 = (* (( (ptr) (* (( (ptr) gf←c68740)+260)/* var←c62788 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd516 ))))((word) &var←c66500, (* (( (ptr) (* (( (ptr) ggData←v32524)+16) ))+10) ), pd516);
         };
      {
         word pd517;
         pd517 = (* (( (ptr) (* (( (ptr) gf←c68740)+260)/* var←c62788 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd517 ))))((word) &var←c66532, (* (( (ptr) (* (( (ptr) ggData←v32524)+16) ))+10) ), pd517);
         };
      {
         word pd518;
         pd518 = (* (( (ptr) (* (( (ptr) gf←c68740)+260)/* var←c62788 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd518 ))))((* (( (ptr) ggData←v32524)+13) ), var←c66500, var←c66532, 0, pd518);
         };
      };
SOURCE(42687, 144)
   {
      word pd519;
      pd519 = (* (( (ptr) (* (( (ptr) gf←c68740)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd519 ))))((* (( (ptr) gf←c68740)+134) ), ggData←v32524, 4, 0, 0, 0, pd519);
      };
SOURCE(42833, 47)
   {
      word pd520;
      pd520 = (* (( (ptr) (* (( (ptr) gf←c68740)+265)/* var←c63172 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd520 ))))((* (( (ptr) gf←c68740)+133) ), (* (( (ptr) gf←c68740)+74) ), pd520);
      };
   }

static word StartBox←P3120(input←v32612, ggData←v32640, worldPt←v32668)
   word input←v32612;
   word ggData←v32640;
   W2 worldPt←v32668;
   {
   register ptr gf←c68772 =  (ptr) &globalframe;
   word success←v32712;
   /* StartBox: */ 
SOURCE(42886, 1358)
SOURCE(42886, 1358)
   success←v32712 = 1;
SOURCE(42910, 1334)
   {
      word pd521;
      pd521 = (* (( (ptr) (* (( (ptr) gf←c68772)+260)/* var←c62788 */  ))+7) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd521 ))))((* ((( (ptr) ggData←v32640)+13)) ), pd521))) {
SOURCE(42947, 1183)
         {
            word sliceD←v18320 = 0;
            W2 caretPos←v18348;
SOURCE(42991, 40)
            {
               word pd522;
               pd522 = (* (( (ptr) (* (( (ptr) gf←c68772)+265)/* var←c63172 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd522 ))))((* (( (ptr) gf←c68772)+30) ), (* (( (ptr) gf←c68772)+74) ), pd522);
               };
SOURCE(43033, 43)
            {
               word pd523;
               pd523 = (* (( (ptr) (* (( (ptr) gf←c68772)+263)/* var←c62916 */  ))+21) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd523 ))))(ggData←v32640, pd523))) {
SOURCE(43076, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
SOURCE(43106, 39)
            {
               word pd524;
               pd524 = (* (( (ptr) (* (( (ptr) gf←c68772)+272)/* var←c64420 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd524 ))))((* (( (ptr) gf←c68772)+135) ), ggData←v32640, pd524);
               };
SOURCE(43178, 41)
            {
               word pd525;
               pd525 = (* (( (ptr) (* (( (ptr) gf←c68772)+260)/* var←c62788 */  ))+15) );
               (void) ( *( (fPt) ((*  (ptr) pd525 ))))((word) &caretPos←v18348, (* (( (ptr) ggData←v32640)+13) ), pd525);
               };
SOURCE(43221, 22)
            (void) SaveSavedState←P480(ggData←v32640);
SOURCE(43295, 122)
            {
               word pd526;
               pd526 = (* (( (ptr) (* (( (ptr) gf←c68772)+263)/* var←c62916 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd526 ))))(ggData←v32640, 1, 1, 0, 0, 0
                  , 1, 1, 1, 0, pd526);
               };
SOURCE(43419, 56)
            sliceD←v18320 = (word) AddNewBoxSlice←P2940(caretPos←v18348, worldPt←v32668, ggData←v32640, 1);
SOURCE(43477, 42)
            {
               word pd527;
               pd527 = (* (( (ptr) (* (( (ptr) gf←c68772)+262)/* var←c62852 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd527 ))))((* (( (ptr) ggData←v32640)+11) ), 0, pd527);
               };
SOURCE(43521, 78)
            {
               word pd528;
               pd528 = (* (( (ptr) (* (( (ptr) gf←c68772)+262)/* var←c62852 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd528 ))))(sliceD←v18320, (* (( (ptr) ggData←v32640)+11) ), 0, pd528);
               };
SOURCE(43601, 39)
            {
               word pd529;
               pd529 = (* (( (ptr) (* (( (ptr) gf←c68772)+263)/* var←c62916 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd529 ))))(sliceD←v18320, ggData←v32640, pd529);
               };
SOURCE(43688, 32)
            (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v32640)+16) ))+2) ) = worldPt←v32668;
SOURCE(43722, 55)
            {
               word pd530;
               pd530 = (* (( (ptr) (* (( (ptr) gf←c68772)+274)/* var←c64804 */  ))+7) );
               (* (( (ptr) (* (( (ptr) ggData←v32640)+16) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd530 ))))((*  (ptr) (&fc225) ), pd530)
               ;
               };
SOURCE(43779, 125)
            {
               word pd531;
               pd531 = (* (( (ptr) (* (( (ptr) gf←c68772)+264)/* var←c62948 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd531 ))))((* (( (ptr) gf←c68772)+99) ), ggData←v32640, 3, 0, 0, 1, pd531);
               };
SOURCE(43906, 44)
            (void) DragUpdateCaretAndTransform←P1980(worldPt←v32668, ggData←v32640);
SOURCE(43952, 135)
            {
               word pd532;
               pd532 = (* (( (ptr) (* (( (ptr) gf←c68772)+264)/* var←c62948 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd532 ))))((* (( (ptr) gf←c68772)+36) ), ggData←v32640, 4, 0, 0, 1, pd532);
               };
SOURCE(44089, 39)
            {
               word pd533;
               pd533 = (* (( (ptr) (* (( (ptr) gf←c68772)+265)/* var←c63172 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd533 ))))((* (( (ptr) gf←c68772)+30) ), (* (( (ptr) gf←c68772)+74) ), pd533);
               };
            };
         }
      else {
SOURCE(44137, 107)
         {
            word pd534;
            pd534 = (* (( (ptr) (* (( (ptr) gf←c68772)+258)/* var←c62724 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd534 ))))((* (( (ptr) ggData←v32640)+3) ), 0, (* (( (ptr) gf←c68772)+108) ), (* (( (ptr) gf←c68772)+136)
                ), pd534);
            };
         };
      };
SOURCE(42886, 1358)
   return(success←v32712);
   }

static void EndBox←P3180(input←v32772, ggData←v32800, worldPt←v32828)
   word input←v32772;
   word ggData←v32800;
   W2 worldPt←v32828;
   {
   register ptr gf←c68804 =  (ptr) &globalframe;
   word sliceD←v18392;
   word slice←v18420;
   /* EndBox: */ 
SOURCE(44250, 778)
SOURCE(44272, 59)
   sliceD←v18392 = (* (( (ptr) (* (( (ptr) ggData←v32800)+16) ))+12) );
SOURCE(44333, 27)
   slice←v18420 = (*  (ptr) sliceD←v18392 );
SOURCE(44362, 105)
   {
      word pd535;
      pd535 = (* (( (ptr) (* (( (ptr) gf←c68804)+269)/* var←c63876 */  ))+22) );
      (void) ( *( (fPt) ((*  (ptr) pd535 ))))((*  (ptr) sliceD←v18392 ), (* (( (ptr) sliceD←v18392)+1) ), (* (( (ptr) (* (( (ptr) ggData←v32800)+16)
             ))+13) ), (* (( (ptr) (* (( (ptr) ggData←v32800)+16) ))+17) ), 0, pd535);
      };
SOURCE(44586, 29)
   {
      word pd536;
      pd536 = (* (( (ptr) (* (( (ptr) gf←c68804)+272)/* var←c64420 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd536 ))))(ggData←v32800, pd536);
      };
SOURCE(44667, 41)
   {
      word pd537;
      pd537 = (* (( (ptr) (* (( (ptr) gf←c68804)+263)/* var←c62916 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd537 ))))(ggData←v32800, pd537);
      };
SOURCE(44710, 141)
   {
      word pd538;
      pd538 = (* (( (ptr) (* (( (ptr) gf←c68804)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd538 ))))(ggData←v32800, 1, 1, 0, 0, 1
         , 1, 1, 1, 0, pd538);
      };
SOURCE(44853, 34)
   (* (( (ptr) (* (( (ptr) ggData←v32800)+17) ))+16) ) = slice←v18420;
SOURCE(44889, 139)
   {
      word pd539;
      pd539 = (* (( (ptr) (* (( (ptr) gf←c68804)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd539 ))))((* (( (ptr) gf←c68804)+137) ), ggData←v32800, 0, 1, 0, 0, pd539);
      };
   }

static void FixupAbortedBox←P3240(ggData←v12860)
   word ggData←v12860;
   {
   register ptr gf←c68836 =  (ptr) &globalframe;
   word sliceD←v18464;
   word slice←v18492;
   /* FixupAbortedBox: */ 
SOURCE(45034, 477)
SOURCE(45077, 59)
   sliceD←v18464 = (* (( (ptr) (* (( (ptr) ggData←v12860)+16) ))+12) );
SOURCE(45138, 27)
   slice←v18492 = (*  (ptr) sliceD←v18464 );
SOURCE(45167, 73)
   {
      word pd540;
      pd540 = (* (( (ptr) (* (( (ptr) gf←c68836)+263)/* var←c62916 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd540 ))))(ggData←v12860, 0, 1, 0, 0, 0
         , 0, 0, 0, 0, pd540);
      };
SOURCE(45242, 70)
   {
      word var←c66564;
      {
         word pd541;
         pd541 = (* (( (ptr) (* (( (ptr) gf←c68836)+269)/* var←c63876 */  ))+7) );
         var←c66564 = (word) ( *( (fPt) ((*  (ptr) pd541 ))))(slice←v18492, 0, pd541);
         };
      {
         word pd542;
         pd542 = (* (( (ptr) (* (( (ptr) gf←c68836)+263)/* var←c62916 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd542 ))))(ggData←v12860, var←c66564, 0, pd542);
         };
      };
SOURCE(45314, 40)
   {
      word pd543;
      pd543 = (* (( (ptr) (* (( (ptr) gf←c68836)+259)/* var←c62756 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd543 ))))((* (( (ptr) ggData←v12860)+11) ), slice←v18492, pd543);
      };
SOURCE(45356, 155)
   {
      word pd544;
      pd544 = (* (( (ptr) (* (( (ptr) gf←c68836)+264)/* var←c62948 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd544 ))))((* (( (ptr) gf←c68836)+138) ), ggData←v12860, 0, 0, 0, 0, pd544);
      };
   }

static void RegisterMouseActions←P3300()
   {
   register ptr gf←c68868 =  (ptr) &globalframe;
   /* RegisterMouseActions: */ 
SOURCE(45517, 2491)
SOURCE(45551, 77)
   {
      word pd545;
      pd545 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd545 ))))((* (( (ptr) gf←c68868)+98) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd545);
      };
SOURCE(45631, 81)
   {
      word pd546;
      pd546 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd546 ))))((* (( (ptr) gf←c68868)+96) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd546);
      };
SOURCE(45714, 76)
   {
      word pd547;
      pd547 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd547 ))))((* (( (ptr) gf←c68868)+89) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd547);
      };
SOURCE(45792, 76)
   {
      word pd548;
      pd548 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd548 ))))((* (( (ptr) gf←c68868)+30) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd548);
      };
SOURCE(45870, 79)
   {
      word pd549;
      pd549 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd549 ))))((* (( (ptr) gf←c68868)+75) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd549);
      };
SOURCE(45951, 86)
   {
      word pd550;
      pd550 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd550 ))))((* (( (ptr) gf←c68868)+32) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd550);
      };
SOURCE(46039, 77)
   {
      word pd551;
      pd551 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd551 ))))((* (( (ptr) gf←c68868)+34) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd551);
      };
SOURCE(46118, 84)
   {
      word pd552;
      pd552 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd552 ))))((* (( (ptr) gf←c68868)+36) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd552);
      };
SOURCE(46204, 83)
   {
      word pd553;
      pd553 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd553 ))))((* (( (ptr) gf←c68868)+38) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd553);
      };
SOURCE(46289, 79)
   {
      word pd554;
      pd554 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd554 ))))((* (( (ptr) gf←c68868)+40) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd554);
      };
SOURCE(46370, 78)
   {
      word pd555;
      pd555 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd555 ))))((* (( (ptr) gf←c68868)+42) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd555);
      };
SOURCE(46450, 81)
   {
      word pd556;
      pd556 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd556 ))))((* (( (ptr) gf←c68868)+44) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd556);
      };
SOURCE(46533, 84)
   {
      word pd557;
      pd557 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd557 ))))((* (( (ptr) gf←c68868)+46) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd557);
      };
SOURCE(46619, 87)
   {
      word pd558;
      pd558 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd558 ))))((* (( (ptr) gf←c68868)+48) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd558);
      };
SOURCE(46708, 86)
   {
      word pd559;
      pd559 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd559 ))))((* (( (ptr) gf←c68868)+50) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd559);
      };
SOURCE(46796, 89)
   {
      word pd560;
      pd560 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd560 ))))((* (( (ptr) gf←c68868)+52) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd560);
      };
SOURCE(46887, 89)
   {
      word pd561;
      pd561 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd561 ))))((* (( (ptr) gf←c68868)+54) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd561);
      };
SOURCE(46978, 92)
   {
      word pd562;
      pd562 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd562 ))))((* (( (ptr) gf←c68868)+56) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd562);
      };
SOURCE(47072, 87)
   {
      word pd563;
      pd563 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd563 ))))((* (( (ptr) gf←c68868)+58) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd563);
      };
SOURCE(47161, 90)
   {
      word pd564;
      pd564 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd564 ))))((* (( (ptr) gf←c68868)+60) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd564);
      };
SOURCE(47253, 88)
   {
      word pd565;
      pd565 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd565 ))))((* (( (ptr) gf←c68868)+62) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd565);
      };
SOURCE(47343, 86)
   {
      word pd566;
      pd566 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd566 ))))((* (( (ptr) gf←c68868)+64) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd566);
      };
SOURCE(47431, 88)
   {
      word pd567;
      pd567 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd567 ))))((* (( (ptr) gf←c68868)+66) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd567);
      };
SOURCE(47521, 91)
   {
      word pd568;
      pd568 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd568 ))))((* (( (ptr) gf←c68868)+68) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd568);
      };
SOURCE(47614, 89)
   {
      word pd569;
      pd569 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd569 ))))((* (( (ptr) gf←c68868)+70) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd569);
      };
SOURCE(47705, 74)
   {
      word pd570;
      pd570 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd570 ))))((* (( (ptr) gf←c68868)+80) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd570);
      };
SOURCE(47781, 73)
   {
      word pd571;
      pd571 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd571 ))))((* (( (ptr) gf←c68868)+85) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd571);
      };
SOURCE(47856, 75)
   {
      word pd572;
      pd572 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd572 ))))((* (( (ptr) gf←c68868)+83) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd572);
      };
SOURCE(47933, 75)
   {
      word pd573;
      pd573 = (* (( (ptr) (* (( (ptr) gf←c68868)+288)/* var←c66628 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd573 ))))((* (( (ptr) gf←c68868)+84) ), (* (( (ptr) (* (( (ptr) gf←c68868)+287)/* var←c66596 */  ))+6)
          ), 0, 0, 0, pd573);
      };
   }

static void RegisterMode←P3360(modeName←v13132, guardP←v13160, startProc←v13188, duringProc←v13216, endProc←v13244, abortProc←v13272, continueProc←v13300)
   word modeName←v13132;
   word guardP←v13160;
   word startProc←v13188;
   word duringProc←v13216;
   word endProc←v13244;
   word abortProc←v13272;
   word continueProc←v13300;
   {
   register ptr gf←c68900 =  (ptr) &globalframe;
   word modeEntry←v18536;
   /* RegisterMode: */ 
SOURCE(48271, 380)
SOURCE(48425, 175)
   modeEntry←v18536 = XR←NewObject(24, (* (( (ptr) gf←c68900)+11) ));
   (*  (ptr) modeEntry←v18536 ) = guardP←v13160;
   (* (( (ptr) modeEntry←v18536)+1) ) = XR←CheckProc(startProc←v13188);
   (* (( (ptr) modeEntry←v18536)+2) ) = XR←CheckProc(duringProc←v13216);
   (* (( (ptr) modeEntry←v18536)+3) ) = XR←CheckProc(endProc←v13244);
   (* (( (ptr) modeEntry←v18536)+4) ) = XR←CheckProc(abortProc←v13272);
   (* (( (ptr) modeEntry←v18536)+5) ) = XR←CheckProc(continueProc←v13300);
SOURCE(48602, 49)
   {
      word var←c66724;
      word pd574;
      pd574 = (* (( (ptr) (* (( (ptr) gf←c68900)+289)/* var←c66692 */  ))+9) );
      var←c66724 = (word) ( *( (fPt) ((*  (ptr) pd574 ))))((* (( (ptr) gf←c68900)+5)/* modeTable←v6976 */  ), modeName←v13132, modeEntry←v18536, pd574)
      ;
      };
   }

static word FindMode←P3420(modeName←v13360)
   word modeName←v13360;
   {
   register ptr gf←c68932 =  (ptr) &globalframe;
   word modeEntry←v13404;
   word found←v18580;
   word val←v18608 = 0;
   /* FindMode: */ 
SOURCE(48657, 183)
SOURCE(48657, 183)
   modeEntry←v13404 = 0;
SOURCE(48753, 48)
   {
      W2 var←c66756;
      {
         word pd575;
         pd575 = (* (( (ptr) (* (( (ptr) gf←c68932)+289)/* var←c66692 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd575 ))))((word) &var←c66756, (* (( (ptr) gf←c68932)+5)/* modeTable←v6976 */  ), modeName←v13360, pd575)
         ;
         };
      val←v18608 = var←c66756.f1;
      found←v18580 = var←c66756.f0;
      };
SOURCE(48803, 37)
   if ((0 != found←v18580)) {
SOURCE(48817, 23)
      modeEntry←v13404 = XR←Narrow(val←v18608, (* (( (ptr) gf←c68932)+11) ));
      };
SOURCE(48657, 183)
   return(modeEntry←v13404);
   }

static void RegisterModes←P3480()
   {
   register ptr gf←c68964 =  (ptr) &globalframe;
   /* RegisterModes: */ 
SOURCE(48846, 3080)
SOURCE(48873, 29)
   {
      word pd576;
      pd576 = (* (( (ptr) (* (( (ptr) gf←c68964)+289)/* var←c66692 */  ))+5) );
      (* (( (ptr) gf←c68964)+5)/* modeTable←v6976 */  ) = (word) ( *( (fPt) ((*  (ptr) pd576 ))))(29, 0, 0, pd576);
      };
SOURCE(48904, 92)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+93) ), 1, (word) (( (bPt) gf←c68964)+888)/* var←c62148 */ , (word) (( (bPt) gf←c68964)+880)
      /* var←c62116 */ , (word) (( (bPt) gf←c68964)+872)/* var←c62084 */ , (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(48998, 72)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+31) ), 1, (word) (( (bPt) gf←c68964)+608)/* var←c61028 */ , (word) (( (bPt) gf←c68964)+768)
      /* var←c61668 */ , (word) (( (bPt) gf←c68964)+600)/* var←c60996 */ , (word) (( (bPt) gf←c68964)+992)/* var←c62564 */ 
      , 0);
SOURCE(49072, 92)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+88) ), 1, (word) (( (bPt) gf←c68964)+640)/* var←c61156 */ , (word) (( (bPt) gf←c68964)+768)
      /* var←c61668 */ , (word) (( (bPt) gf←c68964)+688)/* var←c61348 */ , (word) (( (bPt) gf←c68964)+1008)/* var←c62628 */ 
      , (word) (( (bPt) gf←c68964)+704)/* var←c61412 */ );
SOURCE(49166, 181)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+29) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+19)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+20) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+21)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+22) )
      , (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+23) ));
SOURCE(49349, 78)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+35) ), 1, (word) (( (bPt) gf←c68964)+808)/* var←c61828 */ , (word) (( (bPt) gf←c68964)+768)
      /* var←c61668 */ , (word) (( (bPt) gf←c68964)+696)/* var←c61380 */ , (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(49429, 108)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+37) ), 1, (word) (( (bPt) gf←c68964)+848)/* var←c61988 */ , (word) (( (bPt) gf←c68964)+768)
      /* var←c61668 */ , (word) (( (bPt) gf←c68964)+688)/* var←c61348 */ , (word) (( (bPt) gf←c68964)+1000)/* var←c62596 */ 
      , 0);
SOURCE(49539, 119)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+39) ), 0, (word) (( (bPt) gf←c68964)+840)/* var←c61956 */ , (word) (( (bPt) gf←c68964)+768)
      /* var←c61668 */ , (word) (( (bPt) gf←c68964)+680)/* var←c61316 */ , (word) (( (bPt) gf←c68964)+1000)/* var←c62596 */ 
      , 0);
SOURCE(49660, 84)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+41) ), 1, (word) (( (bPt) gf←c68964)+800)/* var←c61796 */ , (word) (( (bPt) gf←c68964)+752)
      /* var←c61604 */ , (word) (( (bPt) gf←c68964)+696)/* var←c61380 */ , (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(49746, 81)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+43) ), 1, (word) (( (bPt) gf←c68964)+792)/* var←c61764 */ , (word) (( (bPt) gf←c68964)+736)
      /* var←c61540 */ , (word) (( (bPt) gf←c68964)+696)/* var←c61380 */ , (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(49829, 90)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+45) ), 1, (word) (( (bPt) gf←c68964)+784)/* var←c61732 */ , (word) (( (bPt) gf←c68964)+720)
      /* var←c61476 */ , (word) (( (bPt) gf←c68964)+696)/* var←c61380 */ , (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(49921, 104)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+33) ), 0, (word) (( (bPt) gf←c68964)+624)/* var←c61092 */ , (word) (( (bPt) gf←c68964)+768)
      /* var←c61668 */ , (word) (( (bPt) gf←c68964)+616)/* var←c61060 */ , (word) (( (bPt) gf←c68964)+992)/* var←c62564 */ 
      , 0);
SOURCE(50027, 130)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+47) ), 0, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+9)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+10) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+11)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(50159, 155)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+49) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+12)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+14) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+15)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(50316, 132)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+51) ), 0, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+9)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+10) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+11)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(50450, 157)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+53) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+12)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+14) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+15)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(50609, 135)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+55) ), 0, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+9)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+10) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+11)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(50746, 160)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+57) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+12)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+14) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+15)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(50908, 133)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+59) ), 0, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+9)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+10) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+11)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(51043, 158)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+61) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+12)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+14) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+15)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(51203, 161)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+63) ), 0, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+13)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+14) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+15)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(51366, 136)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+65) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+16)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+17) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+18)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(51504, 138)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+67) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+16)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+17) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+18)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(51644, 141)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+69) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+16)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+17) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+18)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
SOURCE(51787, 139)
   (void) RegisterMode←P3360((* (( (ptr) gf←c68964)+71) ), 1, (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+16)
       ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+17) ), (* (( (ptr) (* (( (ptr) gf←c68964)+287)/* var←c66596 */  ))+18)
       ), (word) (( (bPt) gf←c68964)+1016)/* var←c62660 */ 
      , 0);
   }

/* file: GGMouseEventImplA, module: GGMouseEventImplA, compiled at: July 15, 1993 11:20:04 am PDT */ 
extern void XR←install←GGMouseEventImplA() {
   NoName←Q4632();
   }
extern void XR←run←GGMouseEventImplA() { XR←Start(&globalframe); }