/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 19, 1993 1:40:45 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: VoiceInTextImpl, module: VoiceInTextImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1678434320,732380745] VoiceInTextImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; word r;} W9;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; W3 r;} W11;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
static float fc296 = 4.0;
static float fc299 = 3.0;
static float fc305 = 2.0;
static float fc321 = 15.0;
static float fc324 = 16.0;
static float fc373 = 1.0;
static float fc394 = 0.0;
static void NoName←Q5412();
static void VoiceInTextImpl←P0();
static void TiogaVoiceCmdProc←P60();
static void VoiceMenu←P120();
static void ChangeMenu←P180();
static word GoesBefore←P2364();
static word Priority←P2520();
static void ApplyToCharsInPrimarySelection←P240();
static word NoName←Q5472();
static void ScanLocked←P2580();
static void ApplyToLockedChars←P300();
static word StoreVoiceAtSelection←P360();
static word NoName←Q5532();
static word SuitableViewer←P3024();
static void AddVoiceMarkerAtPrimarySelection←P3084();
static void DeleteVoiceProc←P420();
static void DeleteVoiceFromChar←P480();
static void PlaySelection←P540();
static void EditVoiceProc←P600();
static word NoName←Q5592();
static word NoName←Q5652();
static void SearchForVoice←P3240();
static void AddVoiceWindowProps←P3300();
static void DeleteSourceMarkers←P660();
static void DeleteSourceMarker←P3552();
static void DoIt←P3612();
static word SaveRopeAtSourceMarkers←P720();
static void SaveRopeAtSourceMarker←P3672();
static void DoIt←P3732();
static void ScanForVoice←P780();
static word RecordVoiceInstancesAtRoot←P840();
static void DoIt←P3792();
static void DeleteLinks←P900();
static void RemoveAnySourceMarker←P3996();
static void DoIt←P4056();
static void InstallMenuButton←P960();
static void CreateTiogaViewerMenu←P1020();
static void RegisterButtonBehaviors←P1080();
static void TiogaInterpret←P1140();
static void BlinkMessageWindow←P1200();
static word AppendRope←P1260();
static word AppendViewerInfo←P1320();
static void DebugRope←P1380();
static void DebugStreamInit←P1440();
static void TalksBubblePaint←P1500();
static void DrawBubble←P4116();
static void DrawBox←P4176();
static void Inner←P4236();
static word TalksBubbleFormat←P1560();
static void RegisterViewer←P1620();
static word DestroyViewerEvent←P1680();
static void TrackDeletes←P1740();
static void SeverLinks←P4488();
static void BreakVoiceWindowLinks←P1800();
static void DoIt←P4692();
static word ValidateSourceMarker←P1860();
static word GetVoiceViewerNumber←P1920();
static word GetVoiceWindowRope←P1980();
static word CheckVoiceWindowProp←P2040();
static void MapCharProps←P2100();
static void FindCharProp←P2160();
static void Search←P4992();
static word SearchCharProps←P5148();
static void NoName←Q5712();
static void NoName←Q5772();
static void NoName←Q5832();
static void NoName←Q5892();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string2 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\144\012\340\020\300\053\247\076\111\101\364\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\353\351\362\137\300\156\374\044\211\101\254\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\005\000"};
static struct {unsigned f; char r[4];} string9 = {131076, "\216\251\000"};
static struct {unsigned f; char r[44];} string10 = {2752556, "\260\006\005\146\151\162\163\164\257\300\144\012\340\020\300\053\247\076\111\101\320\005\004\162\145\163\164\214\257\300\144\012\340\020\300\053\247\076\111\101\320\261\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\353\351\362\137\300\156\374\044\211\101\174\000\000"};
static struct {unsigned f; char r[4];} string13 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\144\012\340\020\300\053\247\076\111\101\240\000\000"};
static struct {unsigned f; char r[4];} string15 = {131074, "\003\001\000"};
static struct {unsigned f; char r[48];} string16 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\312\131\110\115\300\370\314\351\125\100\200\005\004\162\145\163\164\214\216\257\300\312\131\110\115\300\370\314\351\125\100\200\261\000\000\000"};
static struct {unsigned f; char r[48];} string17 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\363\223\326\161\300\017\164\046\072\104\350\005\004\162\145\163\164\214\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\000\000\000"};
static struct {unsigned f; char r[20];} string18 = {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];} string19 = {851984, "\257\300\312\131\110\115\300\370\314\351\125\101\064\000\000"};
static struct {unsigned f; char r[44];} string20 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\013\170\373\103\300\170\332\235\162\100\164\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\312\131\110\115\300\370\314\351\125\101\050\000\000"};
static struct {unsigned f; char r[8];} string23 = {458760, "Artwork"};
static struct {unsigned f; char r[12];} string24 = {720908, "TalksBubble"};
static struct {unsigned f; char r[12];} string25 = {720908, "textInVoice"};
static struct {unsigned f; char r[12];} string26 = {720908, "voiceWindow"};
static struct {unsigned f; char r[8];} string27 = {327688, "voice\000\000"};
static struct {unsigned f; char r[24];} string28 = {1441816, "No sounds in selection\000"};
static struct {unsigned f; char r[68];} string29 = {4259908, "Non-existent or zero length voice utterance(s) found in selection\000\000"};
static struct {unsigned f; char r[28];} string30 = {1769500, "%d characters in selection\012"};
static struct {unsigned f; char r[36];} string31 = {2228260, "No undisplayed sounds in selection\000"};
static struct {unsigned f; char r[16];} string32 = {983056, "voiceViewerInfo"};
static struct {unsigned f; char r[40];} string33 = {2555944, "Voice already has an associated viewer\012"};
static struct {unsigned f; char r[48];} string34 = {3014704, "Source marker not found in expected document!\012\000"};
static struct {unsigned f; char r[8];} string35 = {458760, "Postfix"};
static struct {unsigned f; char r[28];} string36 = {1769500, "Voice messages in document:"};
static struct {unsigned f; char r[40];} string37 = {2424872, "Confirm discard of voice edits . . . \000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "Save aborted.\000\000"};
static struct {unsigned f; char r[4];} string39 = {65540, "\012\000\000"};
static struct {unsigned f; char r[4];} string40 = {65540, "&\000\000"};
static struct {unsigned f; char r[20];} string41 = {1179668, "(TiogaVoiceLoaded)\000"};
static struct {unsigned f; char r[8];} string42 = {458760, "  none\012"};
static struct {unsigned f; char r[12];} string43 = {589836, "voicelist\000\000"};
static struct {unsigned f; char r[12];} string44 = {524300, "AddVoice\000\000\000"};
static struct {unsigned f; char r[12];} string45 = {655372, "TVAddVoice\000"};
static struct {unsigned f; char r[12];} string46 = {589836, "PlayVoice\000\000"};
static struct {unsigned f; char r[12];} string47 = {720908, "TVPlayVoice"};
static struct {unsigned f; char r[8];} string48 = {262152, "STOP\000\000\000"};
static struct {unsigned f; char r[8];} string49 = {393224, "TVSTOP\000"};
static struct {unsigned f; char r[16];} string50 = {786448, "Pause/Resume\000\000\000"};
static struct {unsigned f; char r[8];} string51 = {458760, "TVPause"};
static struct {unsigned f; char r[12];} string52 = {589836, "EditVoice\000\000"};
static struct {unsigned f; char r[12];} string53 = {720908, "TVEditVoice"};
static struct {unsigned f; char r[12];} string54 = {720908, "DeleteVoice"};
static struct {unsigned f; char r[16];} string55 = {851984, "TVDeleteVoice\000\000"};
static struct {unsigned f; char r[16];} string56 = {983056, "DictationViewer"};
static struct {unsigned f; char r[20];} string57 = {1114132, "TVDictationViewer\000\000"};
static struct {unsigned f; char r[12];} string58 = {720908, "DeleteLinks"};
static struct {unsigned f; char r[16];} string59 = {851984, "TVDeleteLinks\000\000"};
static struct {unsigned f; char r[8];} string60 = {262152, "Text\000\000\000"};
static struct {unsigned f; char r[72];} string61 = {4522056, "Cannot add sound on top of another sound; delete old sound if desired\000\000"};
static struct {unsigned f; char r[64];} string62 = {4063296, "Confirm orphaning all voice viewers created from this document\000"};
static struct {unsigned f; char r[8];} string63 = {327688, "Voice\000\000"};
static struct {unsigned f; char r[12];} string64 = {720908, "TVVoiceMenu"};
static struct {unsigned f; char r[8];} string65 = {458760, "RedSave"};
static struct {unsigned f; char r[12];} string66 = {655372, "YellowSave\000"};
static struct {unsigned f; char r[12];} string67 = {524300, "BlueSave\000\000\000"};
static struct {unsigned f; char r[12];} string68 = {524300, "RedStore\000\000\000"};
static struct {unsigned f; char r[12];} string69 = {720908, "YellowStore"};
static struct {unsigned f; char r[12];} string70 = {589836, "BlueStore\000\000"};
static struct {unsigned f; char r[16];} string71 = {786448, "ButtonParams\000\000\000"};
static struct {unsigned f; char r[52];} string72 = {3276852, "Make a character selection in a Tioga viewer first\000"};
static struct {unsigned f; char r[16];} string73 = {917520, "FirstLevelOnly\000"};
static struct {unsigned f; char r[8];} string74 = {262152, "Find\000\000\000"};
static struct {unsigned f; char r[68];} string75 = {4259908, "TiogaVoice: start package for voice annotation of Tioga documents\000\000"};
static struct {unsigned f; char r[12];} string76 = {655372, "TiogaVoice\000"};
static struct {unsigned f; char r[8];} string77 = {262152, "TRUE\000\000\000"};
static struct {unsigned f; char r[20];} string78 = {1048596, "TiogaVoiceLoaded\000\000\000"};
static struct {unsigned f; char r[160];} string79 = {10354848, "IF (TiogaVoiceLoaded) .where {.pop .false}.cvx {.true}.cvx .ifelse THEN {\042Document contains voice; load TiogaVoice to see annotations\042 1 ReportStyleError} FI \000"};
static struct {unsigned f; char r[44];} string80 = {2752556, "detaching parent link for voice viewer %d\012\000"};
static struct {unsigned f; char r[16];} string81 = {917520, "Sound Viewer #\000"};
static struct {unsigned f; char r[4];} string82 = {65540, "#\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\144\012\340\020\300\053\247\076\111\100\164\000\000"};
static struct {unsigned f; char r[28];} string84 = {1769499, "\006\012\020\001\024\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\100\220\010\000\004\075\001"};
static struct {unsigned f; char r[16];} string85 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "\257\300\255\053\300\023\300\142\135\315\105\100\150\000\000"};
static struct {unsigned f; char r[16];} string87 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string88 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\100\150\000\000"};
static struct {unsigned f; char r[16];} string89 = {851984, "\257\300\046\300\267\143\300\022\215\240\122\100\150\000\000"};
static struct {unsigned f; char r[16];} string90 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string91 = {851984, "\257\300\234\045\277\356\300\323\171\341\105\100\150\000\000"};
static struct {unsigned f; char r[16];} string92 = {851984, "\257\300\317\042\141\053\300\247\142\073\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string93 = {851984, "\257\300\074\270\063\045\300\023\342\016\224\100\150\000\000"};
static struct {unsigned f; char r[16];} string94 = {851984, "\257\300\167\317\044\003\300\277\140\004\026\100\150\000\000"};
static struct {unsigned f; char r[16];} string95 = {851984, "\257\300\375\366\273\111\300\156\046\321\053\100\150\000\000"};
static struct {unsigned f; char r[16];} string96 = {851984, "\257\300\051\356\171\277\300\146\001\231\234\100\150\000\000"};
static struct {unsigned f; char r[16];} string97 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string98 = {851984, "\257\300\353\351\362\137\300\156\374\044\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string99 = {851984, "\257\300\261\010\310\246\300\337\340\027\051\100\150\000\000"};
static struct {unsigned f; char r[16];} string100 = {851984, "\257\300\042\224\360\026\300\243\254\175\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string101 = {851984, "\257\300\056\236\052\251\300\206\175\213\250\100\150\000\000"};
static struct {unsigned f; char r[16];} string102 = {851984, "\257\300\160\267\337\115\300\374\200\221\327\100\150\000\000"};
static struct {unsigned f; char r[16];} string103 = {851984, "\257\300\054\221\365\223\300\171\063\250\230\100\150\000\000"};
static struct {unsigned f; char r[16];} string104 = {851984, "\257\300\136\253\306\024\300\100\114\357\174\100\150\000\000"};
static struct {unsigned f; char r[16];} string105 = {1416195943, "aVoicePrivate"};
static struct {unsigned f; char r[16];} string106 = {851984, "\257\300\312\131\110\115\300\370\314\351\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string107 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\150\000\000"};
static struct {unsigned f; char r[16];} string108 = {851984, "\257\300\216\247\314\015\300\233\126\240\162\100\150\000\000"};
static struct {unsigned f; char r[16];} string109 = {851984, "\257\300\260\261\352\205\300\233\126\263\156\100\150\000\000"};
static struct {unsigned f; char r[16];} string110 = {851984, "\257\300\312\253\314\243\300\267\126\271\104\100\150\000\000"};
static struct {unsigned f; char r[16];} string111 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string112 = {851984, "\257\300\244\340\135\243\300\261\211\021\257\100\150\000\000"};
static struct {
   word f0[97]; word f97; word f98; word f99; 
   word f100; word f101; word f102; word f103; 
   word f104; word f105; word f106; word f107; 
   word f108; word f109; word f110; word f111; 
   word f112; word f113; word f114; word f115; 
   word f116; word f117; word f118; word f119; 
   word f120; word f121; word f122; word f123; 
   word f124; word f125; word f126; word f127; 
   word f128; word f129; word f130; word f131; 
   word f132; word f133; word f134; word f135; 
   word f136; word f137; word f138; word f139; 
   word f140; word f141; word f142; word f143; 
   word f144; word f145; word f146; word f147; 
   word f148; word f149; word f150; word f151; 
   word f152; word f153; word f154; word f155; 
   word f156; word f157; word f158; word f159; 
   word f160; word f161; word f162; word f163; 
   word f164; word f165; word f166; word f167; 
   word f168; word f169; word f170[29]; 
   } globalframe = {
   {0}, (word) FindCharProp←P2160, 0, (word) MapCharProps←P2100, 
   0, (word) CheckVoiceWindowProp←P2040, 0, (word) GetVoiceWindowRope←P1980, 
   0, (word) GetVoiceViewerNumber←P1920, 0, (word) ValidateSourceMarker←P1860, 
   0, (word) BreakVoiceWindowLinks←P1800, 0, (word) TrackDeletes←P1740, 
   0, (word) DestroyViewerEvent←P1680, 0, (word) RegisterViewer←P1620, 
   0, (word) TalksBubbleFormat←P1560, 0, (word) TalksBubblePaint←P1500, 
   0, (word) DebugStreamInit←P1440, 0, (word) DebugRope←P1380, 
   0, (word) AppendViewerInfo←P1320, 0, (word) AppendRope←P1260, 
   0, (word) BlinkMessageWindow←P1200, 0, (word) TiogaInterpret←P1140, 
   0, (word) RegisterButtonBehaviors←P1080, 0, (word) CreateTiogaViewerMenu←P1020, 
   0, (word) InstallMenuButton←P960, 0, (word) DeleteLinks←P900, 
   0, (word) RecordVoiceInstancesAtRoot←P840, 0, (word) ScanForVoice←P780, 
   0, (word) SaveRopeAtSourceMarkers←P720, 0, (word) DeleteSourceMarkers←P660, 
   0, (word) EditVoiceProc←P600, 0, (word) PlaySelection←P540, 
   0, (word) DeleteVoiceFromChar←P480, 0, (word) DeleteVoiceProc←P420, 
   0, (word) StoreVoiceAtSelection←P360, 0, (word) ApplyToLockedChars←P300, 
   0, (word) ApplyToCharsInPrimarySelection←P240, 0, (word) ChangeMenu←P180, 
   0, (word) VoiceMenu←P120, 0, (word) TiogaVoiceCmdProc←P60, 
   0, (word) VoiceInTextImpl←P0, {0}
   };

static void NoName←Q5412()
   {
   register ptr gf←c0497 =  (ptr) &globalframe;
   word var←c54144;
   (* (( (ptr) gf←c0497)+14) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0497)+15) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0497)+16) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0497)+18) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0497)+19) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string4);
   (* (( (ptr) gf←c0497)+23) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0497)+24) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0497)+25) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (* (( (ptr) gf←c0497)+26) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string6);
   (* (( (ptr) gf←c0497)+28) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string6);
   (* (( (ptr) gf←c0497)+29) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string6);
   (* (( (ptr) gf←c0497)+30) ) = (word) XR←GetTypeIndexS((word) (&string19));
   (* (( (ptr) gf←c0497)+31) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string4);
   (* (( (ptr) gf←c0497)+33) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string4);
   (* (( (ptr) gf←c0497)+34) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string4);
   (*  (ptr) (( (bPt) gf←c0497)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0497)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0497)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0497)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0497)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0497)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0497)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0497)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0497)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0497)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0497)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0497)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0497)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0497)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0497)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0497)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0497)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0497)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0497)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0497)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0497)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0497)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0497)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0497)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0497)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0497)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0497)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0497)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0497)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0497)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c0497)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c0497)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c0497)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c0497)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c0497)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c0497)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c0497)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c0497)+292) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c0497)+296) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c0497)+300) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+31) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c0497)+304) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c0497)+308) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c0497)+312) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c0497)+316) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c0497)+320) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c0497)+324) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string68);
   (*  (ptr) (( (bPt) gf←c0497)+328) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string69);
   (*  (ptr) (( (bPt) gf←c0497)+332) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string70);
   (*  (ptr) (( (bPt) gf←c0497)+336) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string71);
   (*  (ptr) (( (bPt) gf←c0497)+340) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string72);
   (*  (ptr) (( (bPt) gf←c0497)+344) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string73);
   (*  (ptr) (( (bPt) gf←c0497)+348) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string74);
   (*  (ptr) (( (bPt) gf←c0497)+352) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string75);
   (*  (ptr) (( (bPt) gf←c0497)+356) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string76);
   (*  (ptr) (( (bPt) gf←c0497)+360) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string77);
   (*  (ptr) (( (bPt) gf←c0497)+364) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string78);
   (*  (ptr) (( (bPt) gf←c0497)+368) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+19) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0497)+372) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string79);
   (*  (ptr) (( (bPt) gf←c0497)+376) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string80);
   (*  (ptr) (( (bPt) gf←c0497)+380) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string81);
   (*  (ptr) (( (bPt) gf←c0497)+384) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0497)+15) ), (word) &string82);
   (void) XR←DeclareGlobalFrame((word) "VoiceInTextImpl", &globalframe, (word) XR←GetTypeIndex((word) &string83, 0, (word) &string84)
      , (word) (( (bPt) gf←c0497)+676)/* var←c48768 */ );
   var←c54144 = (word) XR←ImportInterface((word) "Commander", (word) XR←GetTypeIndexS((word) (&string85)), 3);
   (* (( (ptr) gf←c0497)+177)/* var←c49024 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 1310725);
   var←c54144 = (word) XR←ImportInterface((word) "Convert", (word) XR←GetTypeIndexS((word) (&string86)), 73);
   (* (( (ptr) gf←c0497)+187)/* var←c50560 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67634690);
   (void) XR←ImportProcS(var←c54144, 67901187);
   var←c54144 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string87)), 84);
   (* (( (ptr) gf←c0497)+193)/* var←c52416 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 1319429);
   (void) XR←ImportProcS(var←c54144, 531202);
   (void) XR←ImportProcS(var←c54144, 536578);
   (void) XR←ImportProcS(var←c54144, 803587);
   (void) XR←ImportProcS(var←c54144, 541186);
   (void) XR←ImportProcS(var←c54144, 540674);
   (void) XR←ImportProcS(var←c54144, 532482);
   (void) XR←ImportProcS(var←c54144, 265985);
   (void) XR←ImportProcS(var←c54144, 526338);
   var←c54144 = (word) XR←ImportInterface((word) "ImagerColorPrivate", (word) XR←GetTypeIndexS((word) (&string88)), 48);
   (* (( (ptr) gf←c0497)+173)/* var←c48896 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67645186);
   var←c54144 = (word) XR←ImportInterface((word) "ImagerFont", (word) XR←GetTypeIndexS((word) (&string89)), 26);
   (* (( (ptr) gf←c0497)+195)/* var←c53024 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 268701185);
   (void) XR←ImportProcS(var←c54144, 135533829);
   (void) XR←ImportProcS(var←c54144, 134744578);
   var←c54144 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string90)), 103);
   (* (( (ptr) gf←c0497)+190)/* var←c50848 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 1071364);
   (void) XR←ImportProcS(var←c54144, 67910402);
   var←c54144 = (word) XR←ImportInterface((word) "MBQueue", (word) XR←GetTypeIndexS((word) (&string91)), 8);
   (* (( (ptr) gf←c0497)+172)/* var←c48832 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 68944391);
   (void) XR←ImportProcS(var←c54144, 67371265);
   var←c54144 = (word) XR←ImportInterface((word) "Menus", (word) XR←GetTypeIndexS((word) (&string92)), 21);
   (* (( (ptr) gf←c0497)+179)/* var←c49120 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67371009);
   (void) XR←ImportProcS(var←c54144, 788995);
   (void) XR←ImportProcS(var←c54144, 788483);
   (void) XR←ImportProcS(var←c54144, 68682246);
   (void) XR←ImportProcS(var←c54144, 67634946);
   (void) XR←ImportProcS(var←c54144, 791299);
   (void) XR←ImportProcS(var←c54144, 67638274);
   (void) XR←ImportProcS(var←c54144, 67375617);
   var←c54144 = (word) XR←ImportInterface((word) "MessageWindow", (word) XR←GetTypeIndexS((word) (&string93)), 7);
   (* (( (ptr) gf←c0497)+184)/* var←c50240 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 512);
   (void) XR←ImportProcS(var←c54144, 67372033);
   (void) XR←ImportProcS(var←c54144, 524546);
   (void) XR←ImportProcS(var←c54144, 0);
   var←c54144 = (word) XR←ImportInterface((word) "NodeStyle", (word) XR←GetTypeIndexS((word) (&string94)), 41);
   (* (( (ptr) gf←c0497)+194)/* var←c52992 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67635202);
   (void) XR←ImportProcS(var←c54144, 67380481);
   var←c54144 = (word) XR←ImportInterface((word) "NodeStyleOps", (word) XR←GetTypeIndexS((word) (&string95)), 23);
   (* (( (ptr) gf←c0497)+176)/* var←c48992 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 4352);
   var←c54144 = (word) XR←ImportInterface((word) "NodeStyleWorks", (word) XR←GetTypeIndexS((word) (&string96)), 69);
   (* (( (ptr) gf←c0497)+174)/* var←c48928 */  ) = var←c54144;
   var←c54144 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string97)), 43);
   (* (( (ptr) gf←c0497)+180)/* var←c49184 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67898627);
   (void) XR←ImportProcS(var←c54144, 68159236);
   (void) XR←ImportProcS(var←c54144, 68419845);
   (void) XR←ImportProcS(var←c54144, 67633666);
   (void) XR←ImportProcS(var←c54144, 67896323);
   var←c54144 = (word) XR←ImportInterface((word) "TEditFormat", (word) XR←GetTypeIndexS((word) (&string98)), 17);
   (* (( (ptr) gf←c0497)+178)/* var←c49056 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 264961);
   var←c54144 = (word) XR←ImportInterface((word) "TextEdit", (word) XR←GetTypeIndexS((word) (&string99)), 39);
   (* (( (ptr) gf←c0497)+183)/* var←c49632 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67633154);
   (void) XR←ImportProcS(var←c54144, 1838343);
   (void) XR←ImportProcS(var←c54144, 67898371);
   (void) XR←ImportProcS(var←c54144, 67371521);
   var←c54144 = (word) XR←ImportInterface((word) "TextNode", (word) XR←GetTypeIndexS((word) (&string100)), 34);
   (* (( (ptr) gf←c0497)+191)/* var←c51712 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67372289);
   (void) XR←ImportProcS(var←c54144, 67373569);
   var←c54144 = (word) XR←ImportInterface((word) "TiogaAccess", (word) XR←GetTypeIndexS((word) (&string101)), 32);
   (* (( (ptr) gf←c0497)+189)/* var←c50688 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 335808513);
   (void) XR←ImportProcS(var←c54144, 67372801);
   var←c54144 = (word) XR←ImportInterface((word) "TiogaAccessViewers", (word) XR←GetTypeIndexS((word) (&string102)), 4);
   (* (( (ptr) gf←c0497)+188)/* var←c50624 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67108864);
   var←c54144 = (word) XR←ImportInterface((word) "TiogaMenuOps", (word) XR←GetTypeIndexS((word) (&string103)), 25);
   (* (( (ptr) gf←c0497)+192)/* var←c51808 */  ) = var←c54144;
   var←c54144 = (word) XR←ImportInterface((word) "TiogaOps", (word) XR←GetTypeIndexS((word) (&string104)), 128);
   (* (( (ptr) gf←c0497)+182)/* var←c49472 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 556290);
   (void) XR←ImportProcS(var←c54144, 818179);
   (void) XR←ImportProcS(var←c54144, 810755);
   (void) XR←ImportProcS(var←c54144, 67657730);
   (void) XR←ImportProcS(var←c54144, 67393793);
   (void) XR←ImportProcS(var←c54144, 2374919);
   (void) XR←ImportProcS(var←c54144, 67392001);
   (void) XR←ImportProcS(var←c54144, 537148161);
   (void) XR←ImportProcS(var←c54144, 553474);
   var←c54144 = (word) XR←ImportInterface((word) &string105, (word) XR←GetTypeIndexS((word) (&string106)), 84);
   (* (( (ptr) gf←c0497)+186)/* var←c50432 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67374593);
   (void) XR←ImportProcS(var←c54144, 134488321);
   (void) XR←ImportProcS(var←c54144, 134485249);
   (void) XR←ImportProcS(var←c54144, 134488065);
   (void) XR←ImportProcS(var←c54144, 134484993);
   (void) XR←ImportProcS(var←c54144, 134487809);
   (void) XR←ImportProcS(var←c54144, 528130);
   (void) XR←ImportProcS(var←c54144, 545538);
   (void) XR←ImportProcS(var←c54144, 67375105);
   (void) XR←ImportProcS(var←c54144, 264961);
   (void) XR←ImportProcS(var←c54144, 202114563);
   (void) XR←ImportProcS(var←c54144, 67377153);
   (void) XR←ImportProcS(var←c54144, 1051139);
   (void) XR←ImportProcS(var←c54144, 67389185);
   var←c54144 = (word) XR←ImportInterface((word) "TJaM", (word) XR←GetTypeIndexS((word) (&string107)), 101);
   (* (( (ptr) gf←c0497)+175)/* var←c48960 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 804611);
   var←c54144 = (word) XR←ImportInterface((word) "ViewerBLT", (word) XR←GetTypeIndexS((word) (&string108)), 3);
   (* (( (ptr) gf←c0497)+181)/* var←c49312 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 524546);
   var←c54144 = (word) XR←ImportInterface((word) "ViewerEvents", (word) XR←GetTypeIndexS((word) (&string109)), 3);
   (* (( (ptr) gf←c0497)+196)/* var←c53216 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 524546);
   (void) XR←ImportProcS(var←c54144, 68157444);
   var←c54144 = (word) XR←ImportInterface((word) "ViewerForkers", (word) XR←GetTypeIndexS((word) (&string110)), 2);
   (* (( (ptr) gf←c0497)+197)/* var←c53760 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 786691);
   var←c54144 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string111)), 43);
   (* (( (ptr) gf←c0497)+185)/* var←c50304 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 792579);
   (void) XR←ImportProcS(var←c54144, 1051652);
   (void) XR←ImportProcS(var←c54144, 67639554);
   var←c54144 = (word) XR←ImportInterface((word) "VoiceRope", (word) XR←GetTypeIndexS((word) (&string112)), 20);
   (* (( (ptr) gf←c0497)+171)/* var←c48800 */  ) = var←c54144;
   (void) XR←ImportProcS(var←c54144, 67637762);
   (void) XR←ImportProcS(var←c54144, 67895299);
   var←c54144 = (word) XR←ExportInterface((word) &string105, (word) XR←GetTypeIndexS((word) (&string106)), 84);
   (* (( (ptr) gf←c0497)+198)/* var←c54176 */  ) = var←c54144;
   (void) XR←ExportVar(var←c54144, 2, (word) (( (bPt) gf←c0497)+16)/* thrushHandle←v4092 */ );
   (void) XR←ExportVar(var←c54144, 3, (word) (( (bPt) gf←c0497)+36)/* voiceButtonQueue←v4680 */ );
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+460)/* var←c47904 */ , 276225, (word) "RegisterViewer");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+444)/* var←c47840 */ , 14336, (word) "TrackDeletes");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+524)/* var←c48160 */ , 1329413, (word) "TiogaInterpret");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+492)/* var←c48032 */ , 281089, (word) "DebugRope");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+652)/* var←c48672 */ , 543490, (word) "ChangeMenu");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+644)/* var←c48640 */ , 281601, (word) "ApplyToCharsInPrimarySelection")
   ;
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+636)/* var←c48608 */ , 281857, (word) "ApplyToLockedChars");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+628)/* var←c48576 */ , 67390977, (word) "StoreVoiceAtSelection")
   ;
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+604)/* var←c48480 */ , 20224, (word) "PlaySelection");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+612)/* var←c48512 */ , 544769, (word) "DeleteVoiceFromChar");
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+588)/* var←c48416 */ , 1069315, (word) "DeleteSourceMarkers")
   ;
   (void) XR←ExportProcS(var←c54144, (word) (( (bPt) gf←c0497)+580)/* var←c48384 */ , 68178436, (word) "SaveRopeAtSourceMarkers")
   ;
   }

static void VoiceInTextImpl←P0(formal←c087, formal←c085)
   word formal←c087;
   word formal←c085;
   {
   register ptr gf←c54208 =  (ptr) &globalframe;
   /* VoiceInTextImpl: */ 
SOURCE(2296, 30501)
SOURCE(2706, 56)
   {
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c54208)+171)/* var←c48800 */  ))+4) );
      (* (( (ptr) gf←c54208)+4)/* thrushHandle←v4092 */  ) = (word) ( *( (fPt) ((*  (ptr) pd113 ))))(0, 0, 0, pd113);
      };
SOURCE(2764, 45)
   (* (( (ptr) gf←c54208)+5)/* voiceRopePrefix←v4120 */  ) = (* (( (ptr) gf←c54208)+95) );
SOURCE(17784, 197)
   (* (( (ptr) gf←c54208)+7)/* checkTiogaVoiceLoaded←v4596 */  ) = (* (( (ptr) gf←c54208)+93) );
SOURCE(18420, 57)
   {
      word pd114;
      pd114 = (* (( (ptr) (* (( (ptr) gf←c54208)+172)/* var←c48832 */  ))+5) );
      (* (( (ptr) gf←c54208)+9)/* voiceButtonQueue←v4680 */  ) = (word) ( *( (fPt) ((*  (ptr) pd114 ))))(1, pd114);
      };
SOURCE(25742, 158)
   {
      word var←c48864;
      var←c48864 = XR←NewObject(12, (* (( (ptr) gf←c54208)+18) ));
      (*  (ptr) var←c48864 ) = (* (( (ptr) gf←c54208)+92) );
      (* (( (ptr) var←c48864)+1) ) = (word) (( (bPt) gf←c54208)+468)/* var←c47936 */ ;
      (* (( (ptr) gf←c54208)+11)/* talksBubbleClass←v5044 */  ) = var←c48864;
      };
SOURCE(25903, 93)
   {
      word pd115;
      pd115 = (* (( (ptr) (* (( (ptr) gf←c54208)+173)/* var←c48896 */  ))+51) );
      (* (( (ptr) gf←c54208)+12)/* textColor←v5072 */  ) = (word) ( *( (fPt) ((*  (ptr) pd115 ))))(31710, 4, pd115);
      };
SOURCE(32445, 76)
   {
      word pd116;
      pd116 = (* (( (ptr) (* (( (ptr) gf←c54208)+175)/* var←c48960 */  ))+75) );
      (void) ( *( (fPt) ((*  (ptr) pd116 ))))((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c54208)+174)/* var←c48928 */  ))+15) ) ), (* (
            ( (ptr) gf←c54208)+91) ), (* (( (ptr) gf←c54208)+90) ), pd116);
      };
SOURCE(32523, 26)
   {
      word pd117;
      pd117 = (* (( (ptr) (* (( (ptr) gf←c54208)+176)/* var←c48992 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd117 ))))(pd117);
      };
SOURCE(32552, 23)
   (void) CreateTiogaViewerMenu←P1020();
SOURCE(32577, 25)
   (void) RegisterButtonBehaviors←P1080();
SOURCE(32605, 136)
   {
      word pd118;
      pd118 = (* (( (ptr) (* (( (ptr) gf←c54208)+177)/* var←c49024 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd118 ))))((* (( (ptr) gf←c54208)+89) ), (word) (( (bPt) gf←c54208)+668)/* var←c48736 */ , (* (
            ( (ptr) gf←c54208)+88) ), 0, 1, pd118);
      };
SOURCE(32743, 54)
   {
      word pd119;
      pd119 = (* (( (ptr) (* (( (ptr) gf←c54208)+178)/* var←c49056 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd119 ))))((* ((( (ptr) gf←c54208)+11)/* talksBubbleClass←v5044 */ ) ), pd119);
      };
   }

static void TiogaVoiceCmdProc←P60(formal←c091, cmd←v39804)
   word formal←c091;
   word cmd←v39804;
   {
   word result←v39848;
   word msg←v39876;
   /* TiogaVoiceCmdProc: */ 
SOURCE(2812, 43)
SOURCE(2812, 43)
   result←v39848 = 0;
SOURCE(2812, 43)
   msg←v39876 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c091 ) = result←v39848;
   (* (( (ptr) formal←c091)+1) ) = msg←v39876;
   return;
   }

static void VoiceMenu←P120(formal←c095, viewer←v39936)
   word formal←c095;
   word viewer←v39936;
   {
   register ptr gf←c54240 =  (ptr) &globalframe;
   word recordAtom←v39980;
   word quit←v40008;
   /* VoiceMenu: */ 
SOURCE(2867, 74)
SOURCE(2867, 74)
   recordAtom←v39980 = 1;
SOURCE(2867, 74)
   quit←v40008 = 0;
SOURCE(2903, 38)
   (void) ChangeMenu←P180(viewer←v39936, (* (( (ptr) gf←c54240)+8)/* voiceMenu←v4652 */  ));
   /* removed tail goto */ 
   (*  (ptr) formal←c095 ) = recordAtom←v39980;
   (* (( (ptr) formal←c095)+1) ) = quit←v40008;
   return;
   }

static void ChangeMenu←P180(viewer←v5600, subMenu←v5628)
   word viewer←v5600;
   word subMenu←v5628;
   {
   W6 var←c54272;
   register ptr gf←c54304 =  (ptr) &globalframe;
   /* declaration of var←c49088 skipped */ 
   word menu←v9196;
   word found←v9224 = 0;
   word numLines←v9252;
   word newLines←v9280;
   /* ChangeMenu: */ 
SOURCE(2945, 1310)
   {
      word tmpAddr120;
      tmpAddr120 = (word) (( (ptr) &var←c54272)+4)/* var←c49088 */ ;
      (*  (ptr) tmpAddr120 ) = ( ((word)  (fPt) GoesBefore←P2364) );
      (* (( (ptr) tmpAddr120) + 1) ) = 1;
      };
SOURCE(3031, 30)
   menu←v9196 = (* (( (ptr) viewer←v5600)+16) );
SOURCE(3084, 55)
   {
      word pd121;
      pd121 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+22) );
      numLines←v9252 = (word) ( *( (fPt) ((*  (ptr) pd121 ))))(menu←v9196, pd121);
      };
SOURCE(3141, 35)
   newLines←v9280 = numLines←v9252;
SOURCE(3178, 262)
   {
      register word i←v9324 = 1;
      word var←c49152;
      if (( (int)i←v9324 >=  (int)numLines←v9252)) {
         goto lab←L100002;
         };
      lab←L100005: ;
SOURCE(3220, 220)
      {
         word pd123;
         {
            word pd122;
            pd122 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+24) );
            var←c49152 = (* (( (ptr) ( *( (fPt) ((*  (ptr) pd122 ))))(menu←v9196, i←v9324, pd122))+5) );
            };
         pd123 = (* (( (ptr) (* (( (ptr) gf←c54304)+180)/* var←c49184 */  ))+8) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd123 ))))(var←c49152, (* (( (ptr) subMenu←v5628)+5) ), 1, pd123))) {
SOURCE(3304, 90)
            {
               register word j←v9368;
               j←v9368 = i←v9324;
               if (( (int)j←v9368 >=  (int)numLines←v9252)) {
                  goto lab←L100006;
                  };
               j←v9368 = (j←v9368 + 1);
               if (( (int)j←v9368 ==  (int)numLines←v9252)) {
                  goto lab←L100006;
                  };
               lab←L100009: ;
SOURCE(3346, 48)
               {
                  word var←c49216;
                  {
                     word pd124;
                     pd124 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+24) );
                     var←c49216 = (word) ( *( (fPt) ((*  (ptr) pd124 ))))(menu←v9196, j←v9368, pd124);
                     };
                  {
                     word pd125;
                     pd125 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+23) );
                     (void) ( *( (fPt) ((*  (ptr) pd125 ))))(menu←v9196, BCK((j←v9368 - 1), 5), var←c49216, pd125);
                     };
                  };
               j←v9368 = (j←v9368 + 1);
               if ((j←v9368 < numLines←v9252)) {
                  goto lab←L100009;
                  };
               lab←L100006: ;
               };
SOURCE(3405, 21)
            newLines←v9280 = BCK((newLines←v9280 - 1), 5);
SOURCE(3428, 12)
            found←v9224 = 1;
SOURCE(3442, 6)
            goto lab←L100003;
            };
         };
      i←v9324 = (i←v9324 + 1);
      if ((i←v9324 < numLines←v9252)) {
         goto lab←L100005;
         };
      lab←L100002: ;
      lab←L100003: ;
      };
SOURCE(3460, 743)
   if ((0 == found←v9224)) {
SOURCE(3475, 730)
      {
         word newLast←v9440;
SOURCE(3793, 61)
         newLast←v9440 = (MIN( (unsigned) , numLines←v9252, 4));
SOURCE(3856, 21)
         newLines←v9280 = BCK((newLines←v9280 + 1), 5);
SOURCE(3879, 252)
         {
            register word i←v9616 = 1;
            word var←c49248;
            if (( (int)i←v9616 >=  (int)numLines←v9252)) {
               goto lab←L100010;
               };
            lab←L100013: ;
SOURCE(3921, 210)
            {
               word pd126;
               pd126 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+24) );
               var←c49248 = (word) ( *( (fPt) ((*  (ptr) pd126 ))))(menu←v9196, i←v9616, pd126);
               };
            if ((0 != (word) GoesBefore←P2364(subMenu←v5628, var←c49248, (word) (( (bPt) &var←c54272)+16)/* var←c49088 */ ))) {
SOURCE(3975, 100)
               {
                  register word j←v9660;
                  j←v9660 = newLast←v9440;
                  if (( (int)i←v9616 >=  (int)j←v9660)) {
                     goto lab←L100014;
                     };
                  lab←L100017: ;
SOURCE(4027, 48)
                  {
                     word var←c49280;
                     {
                        word pd127;
                        pd127 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+24) );
                        var←c49280 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))(menu←v9196, BCK((j←v9660 - 1), 5), pd127);
                        };
                     {
                        word pd128;
                        pd128 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+23) );
                        (void) ( *( (fPt) ((*  (ptr) pd128 ))))(menu←v9196, j←v9660, var←c49280, pd128);
                        };
                     };
                  j←v9660 = (j←v9660 - 1);
                  if ((i←v9616 < j←v9660)) {
                     goto lab←L100017;
                     };
                  lab←L100014: ;
                  };
SOURCE(4086, 31)
               {
                  word pd129;
                  pd129 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+23) );
                  (void) ( *( (fPt) ((*  (ptr) pd129 ))))(menu←v9196, i←v9616, subMenu←v5628, pd129);
                  };
SOURCE(4119, 12)
               found←v9224 = 1;
SOURCE(4133, 6)
               goto lab←L100011;
               };
            i←v9616 = (i←v9616 + 1);
            if ((i←v9616 < numLines←v9252)) {
               goto lab←L100013;
               };
            lab←L100010: ;
            lab←L100011: ;
            };
SOURCE(4151, 52)
         if ((0 == found←v9224)) {
SOURCE(4166, 37)
            {
               word pd130;
               pd130 = (* (( (ptr) (* (( (ptr) gf←c54304)+179)/* var←c49120 */  ))+23) );
               (void) ( *( (fPt) ((*  (ptr) pd130 ))))(menu←v9196, newLast←v9440, subMenu←v5628, pd130);
               };
            };
         };
      };
SOURCE(4208, 47)
   {
      word pd131;
      pd131 = (* (( (ptr) (* (( (ptr) gf←c54304)+181)/* var←c49312 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd131 ))))(viewer←v5600, newLines←v9280, pd131);
      };
   }

static word GoesBefore←P2364(m1←v9516, m2←v9544, formal←c54368)
   word m1←v9516;
   word m2←v9544;
   word formal←c54368;
   {
   W6 var←c54336;
   word var←c9588;
   /* declaration of var←c49344 skipped */ 
   formal←c54368 = (formal←c54368 - 16);
   var←c54336.f0 = formal←c54368;
   /* GoesBefore: */ 
SOURCE(3477, 18)
   {
      word tmpAddr132;
      tmpAddr132 = (word) (( (ptr) &var←c54336)+4)/* var←c49344 */ ;
      (*  (ptr) tmpAddr132 ) = ( ((word)  (fPt) Priority←P2520) );
      (* (( (ptr) tmpAddr132) + 1) ) = 1;
      };
SOURCE(3752, 38)
   return( (unsigned) ( (int)(word) Priority←P2520(m1←v9516, (word) (( (bPt) &var←c54336)+16)/* var←c49344 */ ) >  (int)(word) Priority←P2520(
      m2←v9544, (word) (( (bPt) &var←c54336)+16)/* var←c49344 */ )));
   }

static word Priority←P2520(m←v9780, formal←c54432)
   word m←v9780;
   word formal←c54432;
   {
   register ptr gf←c54400 =  (ptr) &globalframe;
   word var←c9824;
   formal←c54432 = (formal←c54432 - 16);
   /* Priority: */ 
SOURCE(3539, 16)
SOURCE(3597, 152)
   {
      word pd133;
      word pd134;
      pd133 = (* (( (ptr) (* (( (ptr) gf←c54400)+180)/* var←c49184 */  ))+8) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd133 ))))((* (( (ptr) m←v9780)+5) ), (* (( (ptr) gf←c54400)+87) ), 1, pd133))) {
         return(1);
         }
      else {
         pd134 = (* (( (ptr) (* (( (ptr) gf←c54400)+180)/* var←c49184 */  ))+8) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd134 ))))((* (( (ptr) m←v9780)+5) ), (* (( (ptr) gf←c54400)+86) ), 1, pd134))) {
            return(0);
            }
         else {
            return( (word) -1);
            };
         };
      };
   }

static void ApplyToCharsInPrimarySelection←P240(formal←c0613)
   word formal←c0613;
   {
   W8 var←c54464;
   /* declaration of actionProc←v5688 skipped */ 
   register ptr gf←c54496 =  (ptr) &globalframe;
   /* declaration of var←c49440 skipped */ 
   var←c54464.f4/* actionProc←v5688 */  = formal←c0613;
   /* ApplyToCharsInPrimarySelection: */ 
SOURCE(4261, 893)
   {
      word tmpAddr135;
      tmpAddr135 = (word) (( (ptr) &var←c54464)+5)/* var←c49440 */ ;
      (*  (ptr) tmpAddr135 ) = ( ((word)  (fPt) ScanLocked←P2580) );
      (* (( (ptr) tmpAddr135) + 1) ) = 1;
      };
SOURCE(5094, 60)
SOURCE(5094, 60)
   {
      /* declaration of var←c01 skipped */ 
      var←c54464.f7/* var←c01 */  = (* (( (ptr) (* (( (ptr) gf←c54496)+182)/* var←c49472 */  ))+118) );
      {
         word var←c02;
         {
            word var←c0580;
            var←c0580 = (word) &var←c54464;
            var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5472) ), ( ((word)  (fPt) NoName←Q5892) ), var←c0580);
            };
         /* removed trivial cond node */ 
         };
      };
   }

static word NoName←Q5472(formal←c0505)
   word formal←c0505;
   {
SOURCE(5094, 60)
   {
      word pd136;
      pd136 = (* (( (ptr) formal←c0505)+7) );
      (void) ( *( (fPt) ((*  (ptr) pd136 ))))((word) (( (bPt) formal←c0505)+20), 0, pd136);
      };
   return(0);
   }

static void ScanLocked←P2580(root←v9928, formal←c54560)
   word root←v9928;
   word formal←c54560;
   {
   register ptr gf←c54528 =  (ptr) &globalframe;
   W2 current←v9956;
   W2 end←v9984;
   word level←v10012 = 1;
   formal←c54560 = (formal←c54560 - 20);
   /* ScanLocked: */ 
SOURCE(4352, 725)
SOURCE(4394, 35)
   current←v9956.f0 = 0;
   current←v9956.f1 = 0;
   end←v9984 = current←v9956;
SOURCE(4463, 66)
   {
      W8 var←c49536;
      {
         word pd137;
         pd137 = (* (( (ptr) (* (( (ptr) gf←c54528)+182)/* var←c49472 */  ))+63) );
         (void) ( *( (fPt) ((*  (ptr) pd137 ))))((word) &var←c49536, 0, pd137);
         };
      level←v10012 = var←c49536.f5;
      end←v9984 = (*  (W2Pt) (( (ptr) &var←c49536)+3) );
      current←v9956 = (*  (W2Pt) (( (ptr) &var←c49536)+1) );
      };
SOURCE(4531, 26)
   if ((level←v10012 == 0)) {
SOURCE(4551, 6)
      return;
      };
SOURCE(4595, 482)
   if ((current←v9956.f0 == end←v9984.f0)) {
SOURCE(4627, 87)
      {
         register word i←v10056;
         register word noName←c49568;
         i←v10056 = current←v9956.f1;
         noName←c49568 = end←v9984.f1;
         if (( (int)i←v10056 >  (int)noName←c49568)) {
            goto lab←L100022;
            };
         lab←L100025: ;
SOURCE(4671, 43)
         {
            W2 var←c49600;
            var←c49600.f0 = current←v9956.f0;
            var←c49600.f1 = i←v10056;
            {
               word pd138;
               pd138 = (* (( (ptr) formal←c54560)+4) );
               (void) ( *( (fPt) ((*  (ptr) pd138 ))))(var←c49600, pd138);
               };
            };
         if (( (int)i←v10056 >=  (int)noName←c49568)) {
            goto lab←L100022;
            };
         i←v10056 = (i←v10056 + 1);
         goto lab←L100025;
         lab←L100022: ;
         };
      }
   else {
SOURCE(4716, 99)
      {
         register word i←v10100;
         register word noName←c49664;
         i←v10100 = current←v9956.f1;
         {
            word pd139;
            pd139 = (* (( (ptr) (* (( (ptr) gf←c54528)+183)/* var←c49632 */  ))+6) );
            noName←c49664 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))(current←v9956.f0, pd139);
            };
         if (( (int)i←v10100 >=  (int)noName←c49664)) {
            goto lab←L100026;
            };
         lab←L100029: ;
SOURCE(4778, 37)
         {
            W2 var←c49696;
            var←c49696.f0 = current←v9956.f0;
            var←c49696.f1 = i←v10100;
            {
               word pd140;
               pd140 = (* (( (ptr) formal←c54560)+4) );
               (void) ( *( (fPt) ((*  (ptr) pd140 ))))(var←c49696, pd140);
               };
            };
         i←v10100 = (i←v10100 + 1);
         if (( (int)i←v10100 <  (int)noName←c49664)) {
            goto lab←L100029;
            };
         lab←L100026: ;
         };
SOURCE(4817, 260)
      lab←L100032: ;
SOURCE(4820, 49)
      {
         word pd141;
         pd141 = (* (( (ptr) (* (( (ptr) gf←c54528)+182)/* var←c49472 */  ))+86) );
         current←v9956.f0 = (word) ( *( (fPt) ((*  (ptr) pd141 ))))(current←v9956.f0, pd141);
         };
SOURCE(4871, 206)
      if ((current←v9956.f0 == end←v9984.f0)) {
SOURCE(4905, 69)
         {
            register word i←v10144 = 0;
            register word noName←c49728;
            noName←c49728 = end←v9984.f1;
            if (( (int)i←v10144 >=  (int)noName←c49728)) {
               goto lab←L100033;
               };
            lab←L100036: ;
SOURCE(4937, 37)
            {
               W2 var←c49760;
               var←c49760.f0 = current←v9956.f0;
               var←c49760.f1 = i←v10144;
               {
                  word pd142;
                  pd142 = (* (( (ptr) formal←c54560)+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd142 ))))(var←c49760, pd142);
                  };
               };
            i←v10144 = (i←v10144 + 1);
            if (( (int)i←v10144 <  (int)noName←c49728)) {
               goto lab←L100036;
               };
            lab←L100033: ;
            };
SOURCE(4976, 7)
         return;
         }
      else {
SOURCE(4990, 87)
         {
            register word i←v10188 = 0;
            register word noName←c49792;
            {
               word pd143;
               pd143 = (* (( (ptr) (* (( (ptr) gf←c54528)+183)/* var←c49632 */  ))+6) );
               noName←c49792 = (word) ( *( (fPt) ((*  (ptr) pd143 ))))(current←v9956.f0, pd143);
               };
            if (( (int)i←v10188 >=  (int)noName←c49792)) {
               goto lab←L100037;
               };
            lab←L100040: ;
SOURCE(5040, 37)
            {
               W2 var←c49824;
               var←c49824.f0 = current←v9956.f0;
               var←c49824.f1 = i←v10188;
               {
                  word pd144;
                  pd144 = (* (( (ptr) formal←c54560)+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd144 ))))(var←c49824, pd144);
                  };
               };
            i←v10188 = (i←v10188 + 1);
            if (( (int)i←v10188 <  (int)noName←c49792)) {
               goto lab←L100040;
               };
            lab←L100037: ;
            };
         };
      goto lab←L100032;
      };
   }

static void ApplyToLockedChars←P300(actionProc←v5808)
   word actionProc←v5808;
   {
   register ptr gf←c54592 =  (ptr) &globalframe;
   W2 current←v10232;
   W2 end←v10260;
   word level←v10288 = 1;
   /* ApplyToLockedChars: */ 
SOURCE(5168, 762)
SOURCE(5247, 35)
   current←v10232.f0 = 0;
   current←v10232.f1 = 0;
   end←v10260 = current←v10232;
SOURCE(5316, 66)
   {
      W8 var←c49888;
      {
         word pd145;
         pd145 = (* (( (ptr) (* (( (ptr) gf←c54592)+182)/* var←c49472 */  ))+63) );
         (void) ( *( (fPt) ((*  (ptr) pd145 ))))((word) &var←c49888, 0, pd145);
         };
      level←v10288 = var←c49888.f5;
      end←v10260 = (*  (W2Pt) (( (ptr) &var←c49888)+3) );
      current←v10232 = (*  (W2Pt) (( (ptr) &var←c49888)+1) );
      };
SOURCE(5384, 26)
   if ((level←v10288 == 0)) {
SOURCE(5404, 6)
      return;
      };
SOURCE(5448, 482)
   if ((current←v10232.f0 == end←v10260.f0)) {
SOURCE(5480, 87)
      {
         register word i←v10332;
         register word noName←c49920;
         i←v10332 = current←v10232.f1;
         noName←c49920 = end←v10260.f1;
         if (( (int)i←v10332 >  (int)noName←c49920)) {
            goto lab←L100041;
            };
         lab←L100044: ;
SOURCE(5524, 43)
         {
            W2 var←c49952;
            var←c49952.f0 = current←v10232.f0;
            var←c49952.f1 = i←v10332;
            (void) ( *( (fPt) ((*  (ptr) actionProc←v5808 ))))(var←c49952, actionProc←v5808);
            };
         if (( (int)i←v10332 >=  (int)noName←c49920)) {
            goto lab←L100041;
            };
         i←v10332 = (i←v10332 + 1);
         goto lab←L100044;
         lab←L100041: ;
         };
      }
   else {
SOURCE(5569, 99)
      {
         register word i←v10376;
         register word noName←c49984;
         i←v10376 = current←v10232.f1;
         {
            word pd146;
            pd146 = (* (( (ptr) (* (( (ptr) gf←c54592)+183)/* var←c49632 */  ))+6) );
            noName←c49984 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))(current←v10232.f0, pd146);
            };
         if (( (int)i←v10376 >=  (int)noName←c49984)) {
            goto lab←L100045;
            };
         lab←L100048: ;
SOURCE(5631, 37)
         {
            W2 var←c50016;
            var←c50016.f0 = current←v10232.f0;
            var←c50016.f1 = i←v10376;
            (void) ( *( (fPt) ((*  (ptr) actionProc←v5808 ))))(var←c50016, actionProc←v5808);
            };
         i←v10376 = (i←v10376 + 1);
         if (( (int)i←v10376 <  (int)noName←c49984)) {
            goto lab←L100048;
            };
         lab←L100045: ;
         };
SOURCE(5670, 260)
      lab←L100051: ;
SOURCE(5673, 49)
      {
         word pd147;
         pd147 = (* (( (ptr) (* (( (ptr) gf←c54592)+182)/* var←c49472 */  ))+86) );
         current←v10232.f0 = (word) ( *( (fPt) ((*  (ptr) pd147 ))))(current←v10232.f0, pd147);
         };
SOURCE(5724, 206)
      if ((current←v10232.f0 == end←v10260.f0)) {
SOURCE(5758, 69)
         {
            register word i←v10420 = 0;
            register word noName←c50048;
            noName←c50048 = end←v10260.f1;
            if (( (int)i←v10420 >=  (int)noName←c50048)) {
               goto lab←L100052;
               };
            lab←L100055: ;
SOURCE(5790, 37)
            {
               W2 var←c50080;
               var←c50080.f0 = current←v10232.f0;
               var←c50080.f1 = i←v10420;
               (void) ( *( (fPt) ((*  (ptr) actionProc←v5808 ))))(var←c50080, actionProc←v5808);
               };
            i←v10420 = (i←v10420 + 1);
            if (( (int)i←v10420 <  (int)noName←c50048)) {
               goto lab←L100055;
               };
            lab←L100052: ;
            };
SOURCE(5829, 7)
         return;
         }
      else {
SOURCE(5843, 87)
         {
            register word i←v10464 = 0;
            register word noName←c50112;
            {
               word pd148;
               pd148 = (* (( (ptr) (* (( (ptr) gf←c54592)+183)/* var←c49632 */  ))+6) );
               noName←c50112 = (word) ( *( (fPt) ((*  (ptr) pd148 ))))(current←v10232.f0, pd148);
               };
            if (( (int)i←v10464 >=  (int)noName←c50112)) {
               goto lab←L100056;
               };
            lab←L100059: ;
SOURCE(5893, 37)
            {
               W2 var←c50144;
               var←c50144.f0 = current←v10232.f0;
               var←c50144.f1 = i←v10464;
               (void) ( *( (fPt) ((*  (ptr) actionProc←v5808 ))))(var←c50144, actionProc←v5808);
               };
            i←v10464 = (i←v10464 + 1);
            if (( (int)i←v10464 <  (int)noName←c50112)) {
               goto lab←L100059;
               };
            lab←L100056: ;
            };
         };
      goto lab←L100051;
      };
   }

static word StoreVoiceAtSelection←P360(formal←c0614)
   word formal←c0614;
   {
   W13 var←c54624;
   /* declaration of voiceViewerInfo←v5928 skipped */ 
   register ptr gf←c54656 =  (ptr) &globalframe;
   word succeeded←v5972;
   /* declaration of var←c50176 skipped */ 
   /* declaration of var←c50208 skipped */ 
   /* declaration of selectedViewer←v10508 skipped */ 
   /* declaration of suitableViewer←v10536 skipped */ 
   /* declaration of alreadyVoiceThere←v10564 skipped */ 
   (* (( (ptr) &var←c54624)+4)/* voiceViewerInfo←v5928 */  ) = formal←c0614;
   /* StoreVoiceAtSelection: */ 
SOURCE(5947, 2623)
   {
      word tmpAddr149;
      tmpAddr149 = (word) (( (ptr) &var←c54624)+5)/* var←c50176 */ ;
      (*  (ptr) tmpAddr149 ) = ( ((word)  (fPt) AddVoiceMarkerAtPrimarySelection←P3084) );
      (* (( (ptr) tmpAddr149) + 1) ) = 1;
      };
   {
      word tmpAddr150;
      tmpAddr150 = (word) (( (ptr) &var←c54624)+7)/* var←c50208 */ ;
      (*  (ptr) tmpAddr150 ) = ( ((word)  (fPt) SuitableViewer←P3024) );
      (* (( (ptr) tmpAddr150) + 1) ) = 1;
      };
SOURCE(5947, 2623)
   succeeded←v5972 = 0;
SOURCE(6076, 36)
   (* (( (ptr) &var←c54624)+9)/* selectedViewer←v10508 */  ) = 0;
SOURCE(6114, 31)
   (* (( (ptr) &var←c54624)+10)/* suitableViewer←v10536 */  ) = 0;
SOURCE(6147, 34)
   (* (( (ptr) &var←c54624)+11)/* alreadyVoiceThere←v10564 */  ) = 0;
SOURCE(8140, 56)
   if (((* (( (ptr) (* (( (ptr) &var←c54624)+4)/* voiceViewerInfo←v5928 */  ))+2) ) == 0)) {
SOURCE(8190, 6)
      return(succeeded←v5972);
      };
SOURCE(8199, 82)
SOURCE(8199, 82)
   {
      /* declaration of var←c03 skipped */ 
      (* (( (ptr) &var←c54624)+12)/* var←c03 */  ) = (* (( (ptr) (* (( (ptr) gf←c54656)+182)/* var←c49472 */  ))+118) );
      {
         word var←c04;
         {
            word var←c0581;
            var←c0581 = (word) &var←c54624;
            var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5532) ), ( ((word)  (fPt) NoName←Q5832) ), var←c0581);
            };
         /* removed trivial cond node */ 
         };
      };
   if ((0 == (* (( (ptr) &var←c54624)+10)/* suitableViewer←v10536 */  ))) {
SOURCE(8331, 72)
      (void) BlinkMessageWindow←P1200((* ((( (ptr) gf←c54656)+85)) ));
      }
   else {
      if ((0 != (* (( (ptr) &var←c54624)+11)/* alreadyVoiceThere←v10564 */  ))) {
SOURCE(8426, 91)
         (void) BlinkMessageWindow←P1200((* ((( (ptr) gf←c54656)+74)) ));
         }
      else {
SOURCE(8531, 21)
         {
            word pd151;
            pd151 = (* (( (ptr) (* (( (ptr) gf←c54656)+184)/* var←c50240 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd151 ))))(pd151);
            };
SOURCE(8554, 16)
         succeeded←v5972 = 1;
         };
      };
SOURCE(5947, 2623)
   return(succeeded←v5972);
   }

static word NoName←Q5532(formal←c0510)
   word formal←c0510;
   {
SOURCE(8199, 82)
   {
      word pd152;
      pd152 = (* (( (ptr) formal←c0510)+12) );
      (void) ( *( (fPt) ((*  (ptr) pd152 ))))((word) (( (bPt) formal←c0510)+20), 0, pd152);
      };
   return(0);
   }

static word SuitableViewer←P3024(formal←c54720)
   word formal←c54720;
   {
   register ptr gf←c54688 =  (ptr) &globalframe;
   word var←c10696;
   formal←c54720 = (formal←c54720 - 28);
   /* SuitableViewer: */ 
SOURCE(6184, 154)
SOURCE(6228, 110)
   {
      word tc153;
      word pd154;
      if (((*  (ptr) (*  (ptr) (* (( (ptr) formal←c54720)+9) ) ) ) == (* (( (ptr) gf←c54688)+73) ))) {
         pd154 = (* (( (ptr) (* (( (ptr) gf←c54688)+185)/* var←c50304 */  ))+29) );
         tc153 =  (word)  (unsigned) ((word) ( *( (fPt) ((*  (ptr) pd154 ))))((* (( (ptr) formal←c54720)+9) ), (* (( (ptr) gf←c54688)+45)
             ), pd154) == 0);
         }
      else {
         tc153 =  (word)  (unsigned) 0;
         };
      return(tc153);
      };
   }

static void AddVoiceMarkerAtPrimarySelection←P3084(root←v10756, formal←c54784)
   word root←v10756;
   word formal←c54784;
   {
   register ptr gf←c54752 =  (ptr) &globalframe;
   W2 startChar←v10784;
   W2 endChar←v10812;
   W2 targetChar←v10840;
   word node←v10868 = 0;
   word caretBefore←v10896;
   word pendingDelete←v10924;
   word level←v10952 = 1;
   formal←c54784 = (formal←c54784 - 20);
   /* AddVoiceMarkerAtPrimarySelection: */ 
SOURCE(6342, 1745)
SOURCE(6406, 53)
   startChar←v10784.f0 = 0;
   startChar←v10784.f1 = 0;
   endChar←v10812 = startChar←v10784;
   targetChar←v10840 = endChar←v10812;
SOURCE(6560, 152)
   {
      W8 var←c50368;
      {
         word pd155;
         pd155 = (* (( (ptr) (* (( (ptr) gf←c54752)+182)/* var←c49472 */  ))+63) );
         (void) ( *( (fPt) ((*  (ptr) pd155 ))))((word) &var←c50368, 0, pd155);
         };
      pendingDelete←v10924 = var←c50368.f7;
      caretBefore←v10896 = var←c50368.f6;
      level←v10952 = var←c50368.f5;
      endChar←v10812 = (*  (W2Pt) (( (ptr) &var←c50368)+3) );
      startChar←v10784 = (*  (W2Pt) (( (ptr) &var←c50368)+1) );
      (* (( (ptr) formal←c54784)+9) ) = var←c50368.f0;
      };
SOURCE(6714, 33)
   (* (( (ptr) formal←c54784)+10) ) = (word) SuitableViewer←P3024((word) ((( (bPt) formal←c54784)+28)));
SOURCE(6750, 275)
   if (((0 != pendingDelete←v10924) && (0 != (* (( (ptr) formal←c54784)+10) )))) {
SOURCE(6793, 39)
      (void) ApplyToLockedChars←P300((word) ((( (bPt) gf←c54752)+612)/* var←c48512 */ ));
SOURCE(6834, 191)
      {
         word pd156;
         pd156 = (* (( (ptr) (* (( (ptr) gf←c54752)+182)/* var←c49472 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd156 ))))((* (( (ptr) formal←c54784)+9) ), startChar←v10784, endChar←v10812, level←v10952, caretBefore←v10896, 0
            , 0, pd156);
         };
      };
SOURCE(7029, 1058)
   if ((0 != (* (( (ptr) formal←c54784)+10) ))) {
SOURCE(7054, 55)
      if ((0 != caretBefore←v10896)) {
         targetChar←v10840 = startChar←v10784;
         }
      else {
         targetChar←v10840 = endChar←v10812;
         };
SOURCE(7111, 22)
      node←v10868 = targetChar←v10840.f0;
SOURCE(7160, 93)
      {
         word pd157;
         pd157 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+6) );
         if (( (int)(word) ( *( (fPt) ((*  (ptr) pd157 ))))(node←v10868, pd157) <=  (int)targetChar←v10840.f1)) {
SOURCE(7208, 45)
            {
               word x158;
               targetChar←v10840.f1 = (x158 = (targetChar←v10840.f1 - 1),
                  MAX((int)(word), x158, 0));
               };
            };
         };
SOURCE(7255, 70)
      {
         word pd159;
         pd159 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+6) );
         if (( (int)(word) ( *( (fPt) ((*  (ptr) pd159 ))))(node←v10868, pd159) <=  (int)targetChar←v10840.f1)) {
SOURCE(7303, 22)
            (* (( (ptr) formal←c54784)+10) ) = 0;
            };
         };
SOURCE(7327, 78)
      {
         word pd160;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+16) );
         (* (( (ptr) formal←c54784)+11) ) =  (unsigned) ((word) ( *( (fPt) ((*  (ptr) pd160 ))))(node←v10868, targetChar←v10840.f1, (* (
               ( (ptr) gf←c54752)+40) ), pd160) != 0);
         };
SOURCE(7407, 54)
      if ((0 == (* (( (ptr) formal←c54784)+10) )) || (0 != (* (( (ptr) formal←c54784)+11) ))) {
SOURCE(7455, 6)
         return;
         };
SOURCE(7464, 89)
      {
         word pd161;
         pd161 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd161 ))))(node←v10868, targetChar←v10840.f1, (* (( (ptr) gf←c54752)+40) ), (* (( (ptr) (* (
                  ( (ptr) formal←c54784)+4) ))+2) ), 1, 0
            , 0, pd161);
         };
SOURCE(7555, 124)
      {
         word var←c50400;
         {
            word pd162;
            pd162 = (* (( (ptr) (* (( (ptr) gf←c54752)+186)/* var←c50432 */  ))+75) );
            var←c50400 = (word) ( *( (fPt) ((*  (ptr) pd162 ))))((* ((( (ptr) (* (( (ptr) formal←c54784)+4) ))+8)) ), pd162);
            };
         {
            word pd163;
            pd163 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd163 ))))(node←v10868, targetChar←v10840.f1, (* (( (ptr) gf←c54752)+38) ), var←c50400, 1, 0
               , 0, pd163);
            };
         };
SOURCE(7681, 88)
      {
         word pd164;
         pd164 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd164 ))))(node←v10868, targetChar←v10840.f1, (* (( (ptr) gf←c54752)+36) ), (* (( (ptr) gf←c54752)+37)
             ), 1, 0
            , 0, pd164);
         };
SOURCE(7819, 78)
      {
         word pd165;
         pd165 = (* (( (ptr) (* (( (ptr) gf←c54752)+186)/* var←c50432 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd165 ))))((* (( (ptr) formal←c54784)+4) ), (* (( (ptr) formal←c54784)+9) ), targetChar←v10840, pd165)
         ;
         };
SOURCE(7899, 188)
      {
         word var←c50464;
         {
            word var←c50496;
            word var←c50592;
            {
               word var←c50528;
               {
                  word pd166;
                  pd166 = (* (( (ptr) (* (( (ptr) gf←c54752)+187)/* var←c50560 */  ))+27) );
                  var←c50528 = (word) ( *( (fPt) ((*  (ptr) pd166 ))))((* (( (ptr) (* (( (ptr) formal←c54784)+4) ))+1) ), 8, 1, pd166);
                  };
               {
                  word pd167;
                  pd167 = (* (( (ptr) (* (( (ptr) gf←c54752)+180)/* var←c49184 */  ))+6) );
                  var←c50496 = (word) ( *( (fPt) ((*  (ptr) pd167 ))))((* (( (ptr) gf←c54752)+5)/* voiceRopePrefix←v4120 */  ), var←c50528, pd167)
                  ;
                  };
               };
            var←c50592 = XR←NewObject(4, (* (( (ptr) gf←c54752)+34) ));
            (*  (ptr) var←c50592 ) = var←c50496;
            var←c50464 = var←c50592;
            };
         {
            word pd168;
            pd168 = (* (( (ptr) (* (( (ptr) gf←c54752)+183)/* var←c49632 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd168 ))))(node←v10868, targetChar←v10840.f1, (* (( (ptr) gf←c54752)+39) ), var←c50464, 1, 0
               , 0, pd168);
            };
         };
      };
   }

static void DeleteVoiceProc←P420(formal←c0182, viewer←v40068)
   word formal←c0182;
   word viewer←v40068;
   {
   register ptr gf←c54816 =  (ptr) &globalframe;
   word recordAtom←v40112;
   word quit←v40140;
   /* DeleteVoiceProc: */ 
SOURCE(8610, 217)
SOURCE(8610, 217)
   recordAtom←v40112 = 1;
SOURCE(8610, 217)
   quit←v40140 = 0;
SOURCE(8652, 18)
   (* (( (ptr) gf←c54816)+6)/* voiceThere←v4344 */  ) = 0;
SOURCE(8672, 51)
   (void) ApplyToCharsInPrimarySelection←P240((word) ((( (bPt) gf←c54816)+612)/* var←c48512 */ ));
SOURCE(8725, 102)
   if ((0 == (* (( (ptr) gf←c54816)+6)/* voiceThere←v4344 */  ))) {
SOURCE(8748, 58)
      {
         word pd169;
         pd169 = (* (( (ptr) (* (( (ptr) gf←c54816)+184)/* var←c50240 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd169 ))))((* (( (ptr) gf←c54816)+41) ), 1, pd169);
         };
      }
   else {
SOURCE(8806, 21)
      {
         word pd170;
         pd170 = (* (( (ptr) (* (( (ptr) gf←c54816)+184)/* var←c50240 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd170 ))))(pd170);
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0182 ) = recordAtom←v40112;
   (* (( (ptr) formal←c0182)+1) ) = quit←v40140;
   return;
   }

static void DeleteVoiceFromChar←P480(position←v6032)
   W2 position←v6032;
   {
   register ptr gf←c54848 =  (ptr) &globalframe;
   word node←v10996;
   word offset←v11024;
   /* DeleteVoiceFromChar: */ 
SOURCE(9039, 532)
SOURCE(9110, 34)
   node←v10996 = position←v6032.f0;
SOURCE(9146, 28)
   offset←v11024 = position←v6032.f1;
SOURCE(9176, 395)
   {
      word pd171;
      pd171 = (* (( (ptr) (* (( (ptr) gf←c54848)+183)/* var←c49632 */  ))+16) );
      if (((word) ( *( (fPt) ((*  (ptr) pd171 ))))(node←v10996, offset←v11024, (* (( (ptr) gf←c54848)+40) ), pd171) != 0)) {
SOURCE(9231, 345)
         {
            word viewerInfo←v11068;
SOURCE(9233, 82)
            viewerInfo←v11068 = (word) ValidateSourceMarker←P1860(node←v10996, offset←v11024, 0);
SOURCE(9317, 17)
            (* (( (ptr) gf←c54848)+6)/* voiceThere←v4344 */  ) = 1;
SOURCE(9336, 49)
            {
               word pd172;
               pd172 = (* (( (ptr) (* (( (ptr) gf←c54848)+183)/* var←c49632 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd172 ))))(node←v10996, offset←v11024, (* (( (ptr) gf←c54848)+36) ), 0, 1, 0
                  , 0, pd172);
               };
SOURCE(9387, 47)
            {
               word pd173;
               pd173 = (* (( (ptr) (* (( (ptr) gf←c54848)+183)/* var←c49632 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd173 ))))(node←v10996, offset←v11024, (* (( (ptr) gf←c54848)+40) ), 0, 1, 0
                  , 0, pd173);
               };
SOURCE(9436, 53)
            {
               word pd174;
               pd174 = (* (( (ptr) (* (( (ptr) gf←c54848)+183)/* var←c49632 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd174 ))))(node←v10996, offset←v11024, (* (( (ptr) gf←c54848)+38) ), 0, 1, 0
                  , 0, pd174);
               };
SOURCE(9491, 80)
            if ((viewerInfo←v11068 != 0)) {
SOURCE(9518, 53)
               {
                  word pd175;
                  pd175 = (* (( (ptr) (* (( (ptr) gf←c54848)+183)/* var←c49632 */  ))+17) );
                  (void) ( *( (fPt) ((*  (ptr) pd175 ))))(node←v10996, offset←v11024, (* (( (ptr) gf←c54848)+39) ), 0, 1, 0
                     , 0, pd175);
                  };
               };
            };
         };
      };
   }

static void PlaySelection←P540()
   {
   register ptr gf←c54880 =  (ptr) &globalframe;
   word selectStream←v11112;
   word charsInSelection←v11140 = 0;
   word soundsInSelection←v11168 = 0;
   W5 heavyChar←v11196;
   register word props←v11224 = 0;
   word badRopes←v11252 = 2;
   word badRope←v11280 = 2;
   /* PlaySelection: */ 
SOURCE(9583, 1042)
SOURCE(9614, 69)
   {
      word pd176;
      pd176 = (* (( (ptr) (* (( (ptr) gf←c54880)+188)/* var←c50624 */  ))+4) );
      selectStream←v11112 = (word) ( *( (fPt) ((*  (ptr) pd176 ))))(pd176);
      };
SOURCE(9740, 32)
   XR←FillWords(&heavyChar←v11196, 5, 0);
SOURCE(9850, 436)
   {
      word pd177;
      pd177 = (* (( (ptr) (* (( (ptr) gf←c54880)+189)/* var←c50688 */  ))+11) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd177 ))))(selectStream←v11112, pd177))) {
SOURCE(9894, 392)
         lab←L100067: ;
SOURCE(9897, 41)
         {
            word pd178;
            pd178 = (* (( (ptr) (* (( (ptr) gf←c54880)+189)/* var←c50688 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd178 ))))((word) &heavyChar←v11196, selectStream←v11112, pd178);
            };
SOURCE(9940, 40)
         {
            word pd179;
            pd179 = (* (( (ptr) (* (( (ptr) gf←c54880)+189)/* var←c50688 */  ))+11) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd179 ))))(selectStream←v11112, pd179))) {
SOURCE(9980, 4)
               goto lab←L100066;
               };
            };
SOURCE(9986, 39)
         charsInSelection←v11140 = (charsInSelection←v11140 + 1);
SOURCE(10027, 259)
         props←v11224 = heavyChar←v11196.f4;
         lab←L100071: ;
         if ((props←v11224 != 0)) {
            }
         else {
            goto lab←L100068;
            };
SOURCE(10091, 195)
         if (((*  (ptr) props←v11224 ) == (* (( (ptr) gf←c54880)+40) ))) {
SOURCE(10126, 82)
            {
               word var←c50720;
               {
                  word var←c50752;
                  var←c50752 = XR←Narrow((* (( (ptr) props←v11224)+1) ), (* (( (ptr) gf←c54880)+14) ));
                  if ((var←c50752 == 0)) {
                     goto lab←L100072;
                     };
                  if (( (unsigned) (*(int*)var←c50752<0) == 0)) {
                     goto lab←L100072;
                     };
                  (void) XR←RaiseError(XR←NarrowFault, 0);
                  lab←L100072: ;
                  var←c50720 = var←c50752;
                  };
               {
                  word pd180;
                  pd180 = (* (( (ptr) (* (( (ptr) gf←c54880)+186)/* var←c50432 */  ))+28) );
                  badRope←v11280 = (word) ( *( (fPt) ((*  (ptr) pd180 ))))(var←c50720, pd180);
                  };
               };
SOURCE(10210, 33)
            badRopes←v11252 =  (unsigned) ((MIN( (unsigned) , badRopes←v11252, badRope←v11280)) & 3);
SOURCE(10245, 41)
            soundsInSelection←v11168 = (soundsInSelection←v11168 + 1);
            };
         props←v11224 = (* (( (ptr) props←v11224)+2) );
         goto lab←L100071;
         lab←L100068: ;
         goto lab←L100067;
         lab←L100066: ;
         };
      };
SOURCE(10310, 234)
   if (( (int)soundsInSelection←v11168 ==  (int)0)) {
SOURCE(10340, 58)
      {
         word pd181;
         pd181 = (* (( (ptr) (* (( (ptr) gf←c54880)+184)/* var←c50240 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd181 ))))((* (( (ptr) gf←c54880)+41) ), 1, pd181);
         };
      }
   else {
SOURCE(10398, 146)
      if ((badRopes←v11252 < 2)) {
SOURCE(10422, 101)
         {
            word pd182;
            pd182 = (* (( (ptr) (* (( (ptr) gf←c54880)+184)/* var←c50240 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) gf←c54880)+42) ), 1, pd182);
            };
         }
      else {
SOURCE(10523, 21)
         {
            word pd183;
            pd183 = (* (( (ptr) (* (( (ptr) gf←c54880)+184)/* var←c50240 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd183 ))))(pd183);
            };
         };
      };
SOURCE(10546, 79)
   {
      word var←c50784;
      {
         W2 var←c50816;
         var←c50816.f0 = 5;
         var←c50816.f1 = charsInSelection←v11140;
         {
            word pd184;
            pd184 = (* (( (ptr) (* (( (ptr) gf←c54880)+190)/* var←c50848 */  ))+63) );
            var←c50784 = (word) ( *( (fPt) ((*  (ptr) pd184 ))))((* (( (ptr) gf←c54880)+43) ), var←c50816, pd184);
            };
         };
      (void) DebugRope←P1380(var←c50784);
      };
   }

static void EditVoiceProc←P600(formal←c0212, viewer←v40200)
   word formal←c0212;
   word viewer←v40200;
   {
   W12 var←c54912;
   register ptr gf←c54944 =  (ptr) &globalframe;
   word recordAtom←v40244;
   word quit←v40272;
   /* declaration of var←c50880 skipped */ 
   /* declaration of var←c50912 skipped */ 
   /* EditVoiceProc: */ 
SOURCE(10629, 2822)
   {
      word tmpAddr185;
      tmpAddr185 = (word) (( (ptr) &var←c54912)+4)/* var←c50880 */ ;
      (*  (ptr) tmpAddr185 ) = ( ((word)  (fPt) AddVoiceWindowProps←P3300) );
      (* (( (ptr) tmpAddr185) + 1) ) = 1;
      };
   {
      word tmpAddr186;
      tmpAddr186 = (word) (( (ptr) &var←c54912)+6)/* var←c50912 */ ;
      (*  (ptr) tmpAddr186 ) = ( ((word)  (fPt) SearchForVoice←P3240) );
      (* (( (ptr) tmpAddr186) + 1) ) = 1;
      };
SOURCE(10629, 2822)
   recordAtom←v40244 = 1;
SOURCE(10629, 2822)
   quit←v40272 = 0;
SOURCE(10667, 2784)
SOURCE(10669, 11)
   {
      /* declaration of voiceList←v11324 skipped */ 
      /* declaration of textInVoiceList←v11352 skipped */ 
      /* declaration of newViewerInfoList←v11380 skipped */ 
      /* declaration of nonRopes←v11408 skipped */ 
SOURCE(10669, 11)
      (* (( (ptr) &var←c54912)+8)/* voiceList←v11324 */  ) = 0;
SOURCE(10705, 17)
      (* (( (ptr) &var←c54912)+9)/* textInVoiceList←v11352 */  ) = 0;
SOURCE(10747, 62)
      (* (( (ptr) &var←c54912)+10)/* newViewerInfoList←v11380 */  ) = 0;
SOURCE(10811, 22)
      (* (( (ptr) &var←c54912)+11)/* nonRopes←v11408 */  ) = 0;
SOURCE(12683, 72)
      {
         word var←c05;
         {
            word var←c0582;
            var←c0582 = (word) &var←c54912;
            var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5652) ), ( ((word)  (fPt) NoName←Q5772) ), var←c0582);
            };
         if ((var←c05 == 4)) {
            goto lab←L100074;
            };
         };
SOURCE(12767, 220)
      if (((* (( (ptr) &var←c54912)+8)/* voiceList←v11324 */  ) == 0)) {
SOURCE(12793, 156)
         {
            word pd187;
            pd187 = (* (( (ptr) (* (( (ptr) gf←c54944)+184)/* var←c50240 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd187 ))))( ( (0 != (* (( (ptr) &var←c54912)+11)/* nonRopes←v11408 */  )) ? (* (( (ptr) gf←c54944)+42)
                ) : (* (( (ptr) gf←c54944)+44) ) ) , 1, pd187);
            };
SOURCE(12951, 6)
         goto lab←L100073;
         }
      else {
SOURCE(12966, 21)
         {
            word pd188;
            pd188 = (* (( (ptr) (* (( (ptr) gf←c54944)+184)/* var←c50240 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd188 ))))(pd188);
            };
         };
SOURCE(12990, 351)
      {
         register word l←v11796;
         l←v11796 = (* (( (ptr) &var←c54912)+8)/* voiceList←v11324 */  );
         lab←L100080: ;
         if ((l←v11796 != 0)) {
            }
         else {
            goto lab←L100077;
            };
         {
            word newInfo←v11924 = 0;
SOURCE(13096, 131)
            {
               W3 var←c50944;
               {
                  word pd189;
                  pd189 = (* (( (ptr) (* (( (ptr) gf←c54944)+186)/* var←c50432 */  ))+10) );
                  (void) ( *( (fPt) ((*  (ptr) pd189 ))))((word) &var←c50944, (*  (ptr) l←v11796 ), (*  (ptr) (* (( (ptr) &var←c54912)+9)/* textInVoiceList←v11352 */  ) ), 0, pd189)
                  ;
                  };
               newInfo←v11924 = var←c50944.f1;
               };
SOURCE(13229, 64)
            (* (( (ptr) &var←c54912)+10)/* newViewerInfoList←v11380 */  ) = (word) AppendViewerInfo←P1320((* (( (ptr) &var←c54912)+10)
               /* newViewerInfoList←v11380 */  ), newInfo←v11924);
SOURCE(13295, 46)
            (* (( (ptr) &var←c54912)+9)/* textInVoiceList←v11352 */  ) = (* (( (ptr) (* (( (ptr) &var←c54912)+9)/* textInVoiceList←v11352 */  ))+1)
             );
            };
         l←v11796 = (* (( (ptr) l←v11796)+1) );
         goto lab←L100080;
         lab←L100077: ;
         };
SOURCE(13344, 77)
SOURCE(13344, 77)
      {
         word var←c06;
         {
            word var←c0583;
            var←c0583 = (word) &var←c54912;
            var←c06 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5592) ), ( ((word)  (fPt) NoName←Q5712) ), var←c0583);
            };
         /* removed trivial cond node */ 
         };
      };
   goto lab←L100085;
   lab←L100074: ;
   lab←L100085: ;
   /* removed tail goto */ 
   lab←L100073: ;
   (*  (ptr) formal←c0212 ) = recordAtom←v40244;
   (* (( (ptr) formal←c0212)+1) ) = quit←v40272;
   return;
   }

static word NoName←Q5592(formal←c0519)
   word formal←c0519;
   {
SOURCE(13344, 77)
   (void) ApplyToCharsInPrimarySelection←P240((word) ((( (bPt) formal←c0519)+16)));
   return(0);
   }

static word NoName←Q5652(formal←c0520)
   word formal←c0520;
   {
SOURCE(12683, 72)
   (void) ApplyToCharsInPrimarySelection←P240((word) ((( (bPt) formal←c0520)+24)));
   return(0);
   }

static void SearchForVoice←P3240(targetChar←v11708, formal←c55008)
   W2 targetChar←v11708;
   word formal←c55008;
   {
   register ptr gf←c54976 =  (ptr) &globalframe;
   word node←v11968;
   word voiceRopeID←v11996;
   word viewerInfo←v12024;
   formal←c55008 = (formal←c55008 - 24);
   /* SearchForVoice: */ 
SOURCE(10835, 22)
SOURCE(10896, 36)
   node←v11968 = targetChar←v11708.f0;
SOURCE(10934, 96)
   {
      word pd190;
      pd190 = (* (( (ptr) (* (( (ptr) gf←c54976)+183)/* var←c49632 */  ))+16) );
      voiceRopeID←v11996 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd190 ))))(node←v11968, targetChar←v11708.f1, (* (( (ptr) gf←c54976)+40)
             ), pd190), (* (( (ptr) gf←c54976)+14) ));
      };
   if ((voiceRopeID←v11996 == 0)) {
      goto lab←L100086;
      };
   if (( (unsigned) (*(int*)voiceRopeID←v11996<0) == 0)) {
      goto lab←L100086;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100086: ;
SOURCE(11032, 92)
   viewerInfo←v12024 = (word) ValidateSourceMarker←P1860(node←v11968, targetChar←v11708.f1, 0);
SOURCE(11172, 505)
   if ((voiceRopeID←v11996 != 0)) {
SOURCE(11198, 481)
      {
         word fullRope←v12068;
SOURCE(11202, 88)
         fullRope←v12068 = XR←NewObject(12, (* (( (ptr) gf←c54976)+33) ));
         (*  (ptr) fullRope←v12068 ) = voiceRopeID←v11996;
SOURCE(11292, 70)
         {
            word pd191;
            pd191 = (* (( (ptr) (* (( (ptr) gf←c54976)+171)/* var←c48800 */  ))+22) );
            (* (( (ptr) fullRope←v12068)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd191 ))))((* (( (ptr) gf←c54976)+4)/* thrushHandle←v4092 */  ), fullRope←v12068, pd191)
            ;
            };
SOURCE(11364, 313)
         if (( (int)(* (( (ptr) fullRope←v12068)+2) ) <=  (int)0)) {
SOURCE(11393, 21)
            (* (( (ptr) formal←c55008)+11) ) = 1;
            }
         else {
SOURCE(11416, 261)
            if ((viewerInfo←v12024 == 0)) {
SOURCE(11443, 46)
               (* (( (ptr) formal←c55008)+8) ) = (word) AppendRope←P1260((* (( (ptr) formal←c55008)+8) ), voiceRopeID←v11996);
SOURCE(11491, 125)
               {
                  word var←c51040;
                  {
                     word var←c51072;
                     {
                        word pd192;
                        pd192 = (* (( (ptr) (* (( (ptr) gf←c54976)+183)/* var←c49632 */  ))+16) );
                        var←c51072 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd192 ))))(node←v11968, targetChar←v11708.f1, (* (( (ptr) gf←c54976)+38)
/*1*/    ), pd192), (* (( (ptr) gf←c54976)+14) ));
                        };
                     if ((var←c51072 == 0)) {
                        goto lab←L100087;
                        };
                     if (( (unsigned) (*(int*)var←c51072<0) == 0)) {
                        goto lab←L100087;
                        };
                     (void) XR←RaiseError(XR←NarrowFault, 0);
                     lab←L100087: ;
                     var←c51040 = var←c51072;
                     };
                  (* (( (ptr) formal←c55008)+9) ) = (word) AppendRope←P1260((* (( (ptr) formal←c55008)+9) ), var←c51040);
                  };
               }
            else {
SOURCE(11623, 54)
               (void) DebugRope←P1380((* ((( (ptr) gf←c54976)+46)) ));
               };
            };
         };
      };
   }

static void AddVoiceWindowProps←P3300(targetChar←v11768, formal←c55072)
   W2 targetChar←v11768;
   word formal←c55072;
   {
   register ptr gf←c55040 =  (ptr) &globalframe;
   word node←v12112;
   word voiceRopeID←v12140;
   formal←c55072 = (formal←c55072 - 16);
   /* AddVoiceWindowProps: */ 
SOURCE(11685, 27)
SOURCE(11751, 36)
   node←v12112 = targetChar←v11768.f0;
SOURCE(11789, 96)
   {
      word pd193;
      pd193 = (* (( (ptr) (* (( (ptr) gf←c55040)+183)/* var←c49632 */  ))+16) );
      voiceRopeID←v12140 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd193 ))))(node←v12112, targetChar←v11768.f1, (* (( (ptr) gf←c55040)+40)
             ), pd193), (* (( (ptr) gf←c55040)+14) ));
      };
   if ((voiceRopeID←v12140 == 0)) {
      goto lab←L100088;
      };
   if (( (unsigned) (*(int*)voiceRopeID←v12140<0) == 0)) {
      goto lab←L100088;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100088: ;
SOURCE(11887, 30)
   if (((* (( (ptr) formal←c55072)+8) ) == 0)) {
SOURCE(11911, 6)
      return;
      };
SOURCE(11919, 32)
   if ((voiceRopeID←v12140 == 0)) {
SOURCE(11945, 6)
      return;
      };
SOURCE(11954, 79)
   {
      word pd194;
      pd194 = (* (( (ptr) (* (( (ptr) gf←c55040)+183)/* var←c49632 */  ))+16) );
      if (((word) ( *( (fPt) ((*  (ptr) pd194 ))))(node←v12112, targetChar←v11768.f1, (* (( (ptr) gf←c55040)+39) ), pd194) != 0)) {
SOURCE(12027, 6)
         return;
         };
      };
SOURCE(12036, 636)
   {
      word pd195;
      pd195 = (* (( (ptr) (* (( (ptr) gf←c55040)+180)/* var←c49184 */  ))+8) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd195 ))))(voiceRopeID←v12140, (*  (ptr) (* (( (ptr) formal←c55072)+8) ) ), 1, pd195)
      )) {
SOURCE(12080, 595)
         {
            word parentViewer←v12184;
            W8 var←c0224;
            word alreadyEdited←v12212;
SOURCE(12083, 67)
            {
               word pd196;
               pd196 = (* (( (ptr) (* (( (ptr) gf←c55040)+182)/* var←c49472 */  ))+63) );
               (void) ( *( (fPt) ((*  (ptr) pd196 ))))((word) &var←c0224, 0, pd196);
               };
            parentViewer←v12184 = var←c0224.f0;
SOURCE(12152, 48)
            alreadyEdited←v12212 =  (unsigned) (((unsigned)(* (( (bPt) parentViewer←v12184)+76) ) << 29) >> 31);
SOURCE(12202, 84)
            {
               word pd197;
               pd197 = (* (( (ptr) (* (( (ptr) gf←c55040)+186)/* var←c50432 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd197 ))))((*  (ptr) (* (( (ptr) formal←c55072)+10) ) ), parentViewer←v12184, targetChar←v11768, pd197)
               ;
               };
SOURCE(12288, 197)
            {
               word var←c51136;
               {
                  word var←c51168;
                  word var←c51232;
                  {
                     word var←c51200;
                     {
                        word pd198;
                        pd198 = (* (( (ptr) (* (( (ptr) gf←c55040)+187)/* var←c50560 */  ))+27) );
                        var←c51200 = (word) ( *( (fPt) ((*  (ptr) pd198 ))))((* (( (ptr) (*  (ptr) (* (( (ptr) formal←c55072)+10) ) ))+1) ), 8, 1, pd198)
                        ;
                        };
                     {
                        word pd199;
                        pd199 = (* (( (ptr) (* (( (ptr) gf←c55040)+180)/* var←c49184 */  ))+6) );
                        var←c51168 = (word) ( *( (fPt) ((*  (ptr) pd199 ))))((* (( (ptr) gf←c55040)+5)/* voiceRopePrefix←v4120 */  ), var←c51200, pd199)
                        ;
                        };
                     };
                  var←c51232 = XR←NewObject(4, (* (( (ptr) gf←c55040)+34) ));
                  (*  (ptr) var←c51232 ) = var←c51168;
                  var←c51136 = var←c51232;
                  };
               {
                  word pd200;
                  pd200 = (* (( (ptr) (* (( (ptr) gf←c55040)+183)/* var←c49632 */  ))+17) );
                  (void) ( *( (fPt) ((*  (ptr) pd200 ))))(node←v12112, targetChar←v11768.f1, (* (( (ptr) gf←c55040)+39) ), var←c51136, 1, 0
                     , 0, pd200);
                  };
               };
SOURCE(12487, 111)
            if ((0 == alreadyEdited←v12212)) {
SOURCE(12513, 31)
               (* (( (ptr) parentViewer←v12184) + 19) ) &= 4227858431;
SOURCE(12546, 52)
               {
                  word pd201;
                  pd201 = (* (( (ptr) (* (( (ptr) gf←c55040)+185)/* var←c50304 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd201 ))))(parentViewer←v12184, 3, 0, 0, pd201);
                  };
               };
SOURCE(12602, 26)
            (* (( (ptr) formal←c55072)+8) ) = (* (( (ptr) (* (( (ptr) formal←c55072)+8) ))+1) );
SOURCE(12630, 42)
            (* (( (ptr) formal←c55072)+10) ) = (* (( (ptr) (* (( (ptr) formal←c55072)+10) ))+1) );
            };
         };
      };
   }

static void DeleteSourceMarkers←P660(formal←c0615, voiceViewerNumber←v6136, formal←c0616)
   word formal←c0615;
   word voiceViewerNumber←v6136;
   W2 formal←c0616;
   {
   W13 var←c55104;
   /* declaration of viewer←v6108 skipped */ 
   /* declaration of exceptionLoc←v6164 skipped */ 
   register ptr gf←c55136 =  (ptr) &globalframe;
   /* declaration of var←c51264 skipped */ 
   /* declaration of var←c51296 skipped */ 
   word rootNode←v12312;
   word alreadyEdited←v12340;
   /* declaration of foundOne←v12368 skipped */ 
   /* declaration of voiceWindowRope←v12396 skipped */ 
   (* (( (ptr) &var←c55104)+4)/* viewer←v6108 */  ) = formal←c0615;
   (*  (W2Pt) (( (ptr) &var←c55104)+5)/* exceptionLoc←v6164 */  ) = formal←c0616;
   /* DeleteSourceMarkers: */ 
SOURCE(13455, 1186)
   {
      word tmpAddr202;
      tmpAddr202 = (word) (( (ptr) &var←c55104)+7)/* var←c51264 */ ;
      (*  (ptr) tmpAddr202 ) = ( ((word)  (fPt) DoIt←P3612) );
      (* (( (ptr) tmpAddr202) + 1) ) = 1;
      };
   {
      word tmpAddr203;
      tmpAddr203 = (word) (( (ptr) &var←c55104)+9)/* var←c51296 */ ;
      (*  (ptr) tmpAddr203 ) = ( ((word)  (fPt) DeleteSourceMarker←P3552) );
      (* (( (ptr) tmpAddr203) + 1) ) = 1;
      };
SOURCE(14074, 51)
   {
      word pd204;
      pd204 = (* (( (ptr) (* (( (ptr) gf←c55136)+182)/* var←c49472 */  ))+93) );
      rootNode←v12312 = (word) ( *( (fPt) ((*  (ptr) pd204 ))))((* ((( (ptr) &var←c55104)+4)/* viewer←v6108 */ ) ), pd204);
      };
SOURCE(14127, 39)
   alreadyEdited←v12340 =  (unsigned) (((unsigned)(* (( (bPt) (* (( (ptr) &var←c55104)+4)/* viewer←v6108 */  ))+76) ) << 29) >> 31);
SOURCE(14168, 22)
   (* (( (ptr) &var←c55104)+11)/* foundOne←v12368 */  ) = 0;
SOURCE(14192, 97)
   {
      word var←c51328;
      {
         word pd205;
         pd205 = (* (( (ptr) (* (( (ptr) gf←c55136)+187)/* var←c50560 */  ))+27) );
         var←c51328 = (word) ( *( (fPt) ((*  (ptr) pd205 ))))(voiceViewerNumber←v6136, 8, 1, pd205);
         };
      {
         word pd206;
         pd206 = (* (( (ptr) (* (( (ptr) gf←c55136)+180)/* var←c49184 */  ))+6) );
         (* (( (ptr) &var←c55104)+12)/* voiceWindowRope←v12396 */  ) = (word) ( *( (fPt) ((*  (ptr) pd206 ))))((* (( (ptr) gf←c55136)+5)
            /* voiceRopePrefix←v4120 */  ), var←c51328, pd206);
         };
      };
SOURCE(14291, 38)
   {
      word pd207;
      pd207 = (* (( (ptr) (* (( (ptr) gf←c55136)+182)/* var←c49472 */  ))+118) );
      (void) ( *( (fPt) ((*  (ptr) pd207 ))))((word) (( (bPt) &var←c55104)+28)/* var←c51264 */ , rootNode←v12312, pd207);
      };
SOURCE(14331, 310)
   if ( ( (0 == (* (( (ptr) &var←c55104)+11)/* foundOne←v12368 */  )) ? ((* (( (ptr) &var←c55104)+5) ) == 0) : 0 ) ) {
SOURCE(14380, 60)
      (void) DebugRope←P1380((* ((( (ptr) gf←c55136)+47)) ));
SOURCE(14442, 93)
      {
         word var←c51360;
         {
            word pd208;
            pd208 = (* (( (ptr) (* (( (ptr) gf←c55136)+186)/* var←c50432 */  ))+20) );
            var←c51360 = (word) ( *( (fPt) ((*  (ptr) pd208 ))))(voiceViewerNumber←v6136, pd208);
            };
         {
            word pd209;
            pd209 = (* (( (ptr) (* (( (ptr) gf←c55136)+186)/* var←c50432 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd209 ))))(var←c51360, pd209);
            };
         };
      }
   else {
SOURCE(14544, 97)
      if ((0 == alreadyEdited←v12340)) {
SOURCE(14569, 25)
         (* (( (ptr) (* (( (ptr) &var←c55104)+4)/* viewer←v6108 */  )) + 19) ) &= 4227858431;
SOURCE(14596, 45)
         {
            word pd210;
            pd210 = (* (( (ptr) (* (( (ptr) gf←c55136)+185)/* var←c50304 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd210 ))))((* (( (ptr) &var←c55104)+4)/* viewer←v6108 */  ), 3, 0, 0, pd210);
            };
         };
      };
   }

static void DeleteSourceMarker←P3552(node←v45632, offset←v45660, charProp←v45688, formal←c55200)
   word node←v45632;
   word offset←v45660;
   word charProp←v45688;
   word formal←c55200;
   {
   register ptr gf←c55168 =  (ptr) &globalframe;
   formal←c55200 = (formal←c55200 - 36);
   /* DeleteSourceMarker: */ 
SOURCE(13584, 356)
SOURCE(13622, 318)
   if ( ( (0 != (word) CheckVoiceWindowProp←P2040((* (( (ptr) formal←c55200)+12) ), charProp←v45688)) ?  ( (node←v45632 != (* (
      ( (ptr) formal←c55200)+5) )) ? 1 : ( (int)offset←v45660 !=  (int)(* (( (ptr) formal←c55200)+6) )) )  : 0 ) ) {
SOURCE(13762, 15)
      (* (( (ptr) formal←c55200)+11) ) = 1;
SOURCE(13779, 53)
      {
         word pd211;
         pd211 = (* (( (ptr) (* (( (ptr) gf←c55168)+183)/* var←c49632 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd211 ))))(node←v45632, offset←v45660, (* (( (ptr) gf←c55168)+39) ), 0, 1, 0
            , 0, pd211);
         };
SOURCE(13834, 106)
      {
         word pd212;
         pd212 = (* (( (ptr) (* (( (ptr) gf←c55168)+183)/* var←c49632 */  ))+16) );
         if (((word) ( *( (fPt) ((*  (ptr) pd212 ))))(node←v45632, offset←v45660, (* (( (ptr) gf←c55168)+40) ), pd212) == 0)) {
SOURCE(13891, 49)
            {
               word pd213;
               pd213 = (* (( (ptr) (* (( (ptr) gf←c55168)+183)/* var←c49632 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd213 ))))(node←v45632, offset←v45660, (* (( (ptr) gf←c55168)+36) ), 0, 1, 0
                  , 0, pd213);
               };
            };
         };
      };
   }

static void DoIt←P3612(root←v12472, formal←c55264)
   word root←v12472;
   word formal←c55264;
   {
   register ptr gf←c55232 =  (ptr) &globalframe;
   formal←c55264 = (formal←c55264 - 28);
   /* DoIt: */ 
SOURCE(13948, 120)
SOURCE(13984, 84)
   (void) MapCharProps←P2100((* (( (ptr) formal←c55264)+4) ), (* (( (ptr) gf←c55232)+39) ), (word) (( (bPt) formal←c55264)+36)
      );
   }

static word SaveRopeAtSourceMarkers←P720(formal←c0617, voiceViewerNumber←v6252, formal←c0618, formal←c0619)
   word formal←c0617;
   word voiceViewerNumber←v6252;
   word formal←c0618;
   word formal←c0619;
   {
   W13 var←c55296;
   /* declaration of viewer←v6224 skipped */ 
   /* declaration of voiceRopeID←v6280 skipped */ 
   /* declaration of textInVoice←v6308 skipped */ 
   register ptr gf←c55328 =  (ptr) &globalframe;
   /* declaration of succeeded←v6352 skipped */ 
   /* declaration of var←c51392 skipped */ 
   /* declaration of var←c51424 skipped */ 
   word rootNode←v12556;
   /* declaration of voiceWindowRope←v12584 skipped */ 
   (* (( (ptr) &var←c55296)+4)/* viewer←v6224 */  ) = formal←c0617;
   (* (( (ptr) &var←c55296)+5)/* voiceRopeID←v6280 */  ) = formal←c0618;
   (* (( (ptr) &var←c55296)+6)/* textInVoice←v6308 */  ) = formal←c0619;
   /* SaveRopeAtSourceMarkers: */ 
SOURCE(14650, 942)
   {
      word tmpAddr214;
      tmpAddr214 = (word) (( (ptr) &var←c55296)+8)/* var←c51392 */ ;
      (*  (ptr) tmpAddr214 ) = ( ((word)  (fPt) DoIt←P3732) );
      (* (( (ptr) tmpAddr214) + 1) ) = 1;
      };
   {
      word tmpAddr215;
      tmpAddr215 = (word) (( (ptr) &var←c55296)+10)/* var←c51424 */ ;
      (*  (ptr) tmpAddr215 ) = ( ((word)  (fPt) SaveRopeAtSourceMarker←P3672) );
      (* (( (ptr) tmpAddr215) + 1) ) = 1;
      };
SOURCE(15213, 51)
   {
      word pd216;
      pd216 = (* (( (ptr) (* (( (ptr) gf←c55328)+182)/* var←c49472 */  ))+93) );
      rootNode←v12556 = (word) ( *( (fPt) ((*  (ptr) pd216 ))))((* ((( (ptr) &var←c55296)+4)/* viewer←v6224 */ ) ), pd216);
      };
SOURCE(15266, 97)
   {
      word var←c51456;
      {
         word pd217;
         pd217 = (* (( (ptr) (* (( (ptr) gf←c55328)+187)/* var←c50560 */  ))+27) );
         var←c51456 = (word) ( *( (fPt) ((*  (ptr) pd217 ))))(voiceViewerNumber←v6252, 8, 1, pd217);
         };
      {
         word pd218;
         pd218 = (* (( (ptr) (* (( (ptr) gf←c55328)+180)/* var←c49184 */  ))+6) );
         (* (( (ptr) &var←c55296)+12)/* voiceWindowRope←v12584 */  ) = (word) ( *( (fPt) ((*  (ptr) pd218 ))))((* (( (ptr) gf←c55328)+5)
            /* voiceRopePrefix←v4120 */  ), var←c51456, pd218);
         };
      };
SOURCE(15365, 17)
   (* (( (ptr) &var←c55296)+7)/* succeeded←v6352 */  ) = 0;
SOURCE(15384, 38)
   {
      word pd219;
      pd219 = (* (( (ptr) (* (( (ptr) gf←c55328)+182)/* var←c49472 */  ))+118) );
      (void) ( *( (fPt) ((*  (ptr) pd219 ))))((word) (( (bPt) &var←c55296)+32)/* var←c51392 */ , rootNode←v12556, pd219);
      };
SOURCE(15424, 168)
   if ((0 == (* (( (ptr) &var←c55296)+7)/* succeeded←v6352 */  ))) {
SOURCE(15499, 93)
      {
         word var←c51488;
         {
            word pd220;
            pd220 = (* (( (ptr) (* (( (ptr) gf←c55328)+186)/* var←c50432 */  ))+20) );
            var←c51488 = (word) ( *( (fPt) ((*  (ptr) pd220 ))))(voiceViewerNumber←v6252, pd220);
            };
         {
            word pd221;
            pd221 = (* (( (ptr) (* (( (ptr) gf←c55328)+186)/* var←c50432 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd221 ))))(var←c51488, pd221);
            };
         };
      };
SOURCE(14650, 942)
   return((* (( (ptr) &var←c55296)+7)/* succeeded←v6352 */  ));
   }

static void SaveRopeAtSourceMarker←P3672(node←v45748, offset←v45776, charProp←v45804, formal←c55392)
   word node←v45748;
   word offset←v45776;
   word charProp←v45804;
   word formal←c55392;
   {
   register ptr gf←c55360 =  (ptr) &globalframe;
   formal←c55392 = (formal←c55392 - 40);
   /* SaveRopeAtSourceMarker: */ 
SOURCE(14820, 255)
SOURCE(14862, 213)
   if ((0 != (word) CheckVoiceWindowProp←P2040((* (( (ptr) formal←c55392)+12) ), charProp←v45804))) {
SOURCE(14939, 55)
      {
         word pd222;
         pd222 = (* (( (ptr) (* (( (ptr) gf←c55360)+183)/* var←c49632 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd222 ))))(node←v45748, offset←v45776, (* (( (ptr) gf←c55360)+40) ), (* (( (ptr) formal←c55392)+5)
             ), 1, 0
            , 0, pd222);
         };
SOURCE(14996, 61)
      {
         word pd223;
         pd223 = (* (( (ptr) (* (( (ptr) gf←c55360)+183)/* var←c49632 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd223 ))))(node←v45748, offset←v45776, (* (( (ptr) gf←c55360)+38) ), (* (( (ptr) formal←c55392)+6)
             ), 1, 0
            , 0, pd223);
         };
SOURCE(15059, 16)
      (* (( (ptr) formal←c55392)+7) ) = 1;
      };
   }

static void DoIt←P3732(root←v12660, formal←c55456)
   word root←v12660;
   word formal←c55456;
   {
   register ptr gf←c55424 =  (ptr) &globalframe;
   formal←c55456 = (formal←c55456 - 32);
   /* DoIt: */ 
SOURCE(15083, 124)
SOURCE(15119, 88)
   (void) MapCharProps←P2100((* (( (ptr) formal←c55456)+4) ), (* (( (ptr) gf←c55424)+39) ), (word) (( (bPt) formal←c55456)+40)
      );
   }

static void ScanForVoice←P780(formal←c0264, viewer←v40332)
   word formal←c0264;
   word viewer←v40332;
   {
   word recordAtom←v40376;
   word quit←v40404;
   /* ScanForVoice: */ 
SOURCE(15598, 131)
SOURCE(15598, 131)
   recordAtom←v40376 = 1;
SOURCE(15598, 131)
   quit←v40404 = 0;
SOURCE(15637, 92)
   if ((* (( (bPt) viewer←v40332)+76) ) & 02 || (* (( (bPt) viewer←v40332)+76) ) & 04) {
SOURCE(15681, 48)
      {
         word var←c51552;
         var←c51552 = (word) RecordVoiceInstancesAtRoot←P840(viewer←v40332);
         recordAtom←v40376 = 1;
         quit←v40404 = var←c51552;
         goto lab←L100089;
         };
      };
   /* removed tail goto */ 
   lab←L100089: ;
   (*  (ptr) formal←c0264 ) = recordAtom←v40376;
   (* (( (ptr) formal←c0264)+1) ) = quit←v40404;
   return;
   }

static word RecordVoiceInstancesAtRoot←P840(viewer←v6412)
   word viewer←v6412;
   {
   W8 var←c55488;
   register ptr gf←c55520 =  (ptr) &globalframe;
   word quit←v6456;
   /* declaration of var←c51584 skipped */ 
   word rootRef←v12688;
   /* declaration of voiceList←v12716 skipped */ 
   /* declaration of postfixProp←v12744 skipped */ 
   word soundsInDocument←v12800 = 0;
   word userConfirmed←v12828 = 0;
   /* RecordVoiceInstancesAtRoot: */ 
SOURCE(15735, 1458)
   {
      word tmpAddr224;
      tmpAddr224 = (word) (( (ptr) &var←c55488)+4)/* var←c51584 */ ;
      (*  (ptr) tmpAddr224 ) = ( ((word)  (fPt) DoIt←P3792) );
      (* (( (ptr) tmpAddr224) + 1) ) = 1;
      };
SOURCE(15735, 1458)
   quit←v6456 = 0;
SOURCE(15832, 50)
   {
      word pd225;
      pd225 = (* (( (ptr) (* (( (ptr) gf←c55520)+182)/* var←c49472 */  ))+93) );
      rootRef←v12688 = (word) ( *( (fPt) ((*  (ptr) pd225 ))))(viewer←v6412, pd225);
      };
SOURCE(15884, 26)
   var←c55488.f6/* voiceList←v12716 */  = 0;
SOURCE(15912, 68)
   {
      word pd226;
      pd226 = (* (( (ptr) (* (( (ptr) gf←c55520)+182)/* var←c49472 */  ))+100) );
      var←c55488.f7/* postfixProp←v12744 */  = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd226 ))))(rootRef←v12688, (* (( (ptr) gf←c55520)+48)
             ), pd226), (* (( (ptr) gf←c55520)+14) ));
      };
   if ((var←c55488.f7/* postfixProp←v12744 */  == 0)) {
      goto lab←L100090;
      };
   if (( (unsigned) (*(int*)var←c55488.f7/* postfixProp←v12744 */ <0) == 0)) {
      goto lab←L100090;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100090: ;
SOURCE(16173, 40)
   (void) DebugRope←P1380((* ((( (ptr) gf←c55520)+49)) ));
SOURCE(16215, 656)
   {
      register word n←v12932;
      n←v12932 = rootRef←v12688;
      lab←L100094: ;
      if ((n←v12932 != 0)) {
         }
      else {
         goto lab←L100091;
         };
SOURCE(16287, 584)
      {
         register word i←v12976 = 0;
         register word noName←c51648;
         {
            word pd227;
            pd227 = (* (( (ptr) (* (( (ptr) gf←c55520)+183)/* var←c49632 */  ))+6) );
            noName←c51648 = (word) ( *( (fPt) ((*  (ptr) pd227 ))))(n←v12932, pd227);
            };
         if (( (int)i←v12976 >=  (int)noName←c51648)) {
            goto lab←L100095;
            };
         lab←L100098: ;
         {
            word voiceRope←v13020 = 0;
            word viewerInfo←v13048;
SOURCE(16348, 74)
            viewerInfo←v13048 = (word) ValidateSourceMarker←P1860(n←v12932, i←v12976, 0);
SOURCE(16424, 232)
            if ((viewerInfo←v13048 != 0)) {
SOURCE(16449, 207)
               if ( ( (0 == userConfirmed←v12828) ? (0 != (* (( (ptr) viewerInfo←v13048)+11) )) : 0 ) ) {
SOURCE(16499, 157)
                  {
                     word pd228;
                     pd228 = (* (( (ptr) (* (( (ptr) gf←c55520)+184)/* var←c50240 */  ))+8) );
                     if ((0 == (word) ( *( (fPt) ((*  (ptr) pd228 ))))((* ((( (ptr) gf←c55520)+50)) ), pd228))) {
SOURCE(16576, 37)
                        {
                           word pd229;
                           pd229 = (* (( (ptr) (* (( (ptr) gf←c55520)+184)/* var←c50240 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd229 ))))((* (( (ptr) gf←c55520)+51) ), 0, pd229);
                           };
SOURCE(16615, 12)
                        return(1);
                        }
                     else {
SOURCE(16636, 20)
                        userConfirmed←v12828 = 1;
                        };
                     };
                  };
               };
SOURCE(16664, 54)
            {
               word var←c51680;
               {
                  word pd230;
                  pd230 = (* (( (ptr) (* (( (ptr) gf←c55520)+183)/* var←c49632 */  ))+16) );
                  var←c51680 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd230 ))))(n←v12932, i←v12976, (* (( (ptr) gf←c55520)+40) ), pd230), (* (
                        ( (ptr) gf←c55520)+14) ));
                  };
               if ((var←c51680 == 0)) {
                  goto lab←L100099;
                  };
               if (( (unsigned) (*(int*)var←c51680<0) == 0)) {
                  goto lab←L100099;
                  };
               (void) XR←RaiseError(XR←NarrowFault, 0);
               lab←L100099: ;
               voiceRope←v13020 = var←c51680;
               };
SOURCE(16720, 151)
            if ((voiceRope←v13020 != 0)) {
SOURCE(16744, 15)
               (void) DebugRope←P1380((* ((( (ptr) gf←c55520)+52)) ));
SOURCE(16761, 20)
               (void) DebugRope←P1380(voiceRope←v13020);
SOURCE(16783, 39)
               soundsInDocument←v12800 = (soundsInDocument←v12800 + 1);
SOURCE(16824, 47)
               {
                  word pd231;
                  pd231 = (* (( (ptr) (* (( (ptr) gf←c55520)+180)/* var←c49184 */  ))+5) );
                  var←c55488.f6/* voiceList←v12716 */  = (word) ( *( (fPt) ((*  (ptr) pd231 ))))(var←c55488.f6/* voiceList←v12716 */ , (* (
                        ( (ptr) gf←c55520)+53) ), voiceRope←v13020, 0, 0, pd231);
                  };
               };
            };
         i←v12976 = (i←v12976 + 1);
         if (( (int)i←v12976 <  (int)noName←c51648)) {
            goto lab←L100098;
            };
         lab←L100095: ;
         };
      {
         word pd232;
         pd232 = (* (( (ptr) (* (( (ptr) gf←c55520)+191)/* var←c51712 */  ))+14) );
         n←v12932 = (word) ( *( (fPt) ((*  (ptr) pd232 ))))(n←v12932, pd232);
         };
      goto lab←L100094;
      lab←L100091: ;
      };
SOURCE(16894, 299)
   if (( (int)soundsInDocument←v12800 !=  (int)0)) {
SOURCE(16925, 120)
      {
         word pd233;
         pd233 = (* (( (ptr) (* (( (ptr) gf←c55520)+180)/* var←c49184 */  ))+11) );
         if (( (int)(word) ( *( (fPt) ((*  (ptr) pd233 ))))(var←c55488.f7/* postfixProp←v12744 */ , (* (( (ptr) gf←c55520)+54) ), 0, 1, pd233)
          ==  (int) (word) -1)) {
SOURCE(16984, 61)
            {
               word pd234;
               pd234 = (* (( (ptr) (* (( (ptr) gf←c55520)+180)/* var←c49184 */  ))+6) );
               var←c55488.f7/* postfixProp←v12744 */  = (word) ( *( (fPt) ((*  (ptr) pd234 ))))((* (( (ptr) gf←c55520)+7)/* checkTiogaVoiceLoaded←v4596 */  ), var←c55488.f7/* postfixProp←v12744 */ , pd234)
               ;
               };
            };
         };
SOURCE(17047, 37)
      {
         word pd235;
         pd235 = (* (( (ptr) (* (( (ptr) gf←c55520)+182)/* var←c49472 */  ))+118) );
         (void) ( *( (fPt) ((*  (ptr) pd235 ))))((word) (( (bPt) &var←c55488)+16)/* var←c51584 */ , rootRef←v12688, pd235);
         };
SOURCE(17086, 15)
      (void) DebugRope←P1380((* ((( (ptr) gf←c55520)+52)) ));
SOURCE(17103, 60)
      {
         word pd236;
         pd236 = (* (( (ptr) (* (( (ptr) gf←c55520)+186)/* var←c50432 */  ))+87) );
         (void) ( *( (fPt) ((*  (ptr) pd236 ))))(viewer←v6412, var←c55488.f6/* voiceList←v12716 */ , pd236);
         };
      }
   else {
SOURCE(17172, 21)
      (void) DebugRope←P1380((* ((( (ptr) gf←c55520)+55)) ));
      };
SOURCE(15735, 1458)
   return(quit←v6456);
   }

static void DoIt←P3792(root←v12904, formal←c55584)
   word root←v12904;
   word formal←c55584;
   {
   register ptr gf←c55552 =  (ptr) &globalframe;
   formal←c55584 = (formal←c55584 - 16);
   /* DoIt: */ 
SOURCE(15983, 128)
SOURCE(16019, 45)
   {
      word pd237;
      pd237 = (* (( (ptr) (* (( (ptr) gf←c55552)+182)/* var←c49472 */  ))+99) );
      (void) ( *( (fPt) ((*  (ptr) pd237 ))))(root←v12904, (* (( (ptr) gf←c55552)+56) ), (* (( (ptr) formal←c55584)+6) ), pd237)
      ;
      };
SOURCE(16066, 45)
   {
      word pd238;
      pd238 = (* (( (ptr) (* (( (ptr) gf←c55552)+182)/* var←c49472 */  ))+99) );
      (void) ( *( (fPt) ((*  (ptr) pd238 ))))(root←v12904, (* (( (ptr) gf←c55552)+48) ), (* (( (ptr) formal←c55584)+7) ), pd238)
      ;
      };
   }

static void DeleteLinks←P900(formal←c0287, formal←c0620)
   word formal←c0287;
   word formal←c0620;
   {
   W9 var←c55616;
   /* declaration of viewer←v40464 skipped */ 
   register ptr gf←c55648 =  (ptr) &globalframe;
   word recordAtom←v40508;
   word quit←v40536;
   /* declaration of var←c51744 skipped */ 
   /* declaration of var←c51776 skipped */ 
   word rootNode←v13148;
   word alreadyEdited←v13176;
   (* (( (ptr) &var←c55616)+4)/* viewer←v40464 */  ) = formal←c0620;
   /* DeleteLinks: */ 
SOURCE(17199, 578)
   {
      word tmpAddr239;
      tmpAddr239 = (word) (( (ptr) &var←c55616)+5)/* var←c51744 */ ;
      (*  (ptr) tmpAddr239 ) = ( ((word)  (fPt) DoIt←P4056) );
      (* (( (ptr) tmpAddr239) + 1) ) = 1;
      };
   {
      word tmpAddr240;
      tmpAddr240 = (word) (( (ptr) &var←c55616)+7)/* var←c51776 */ ;
      (*  (ptr) tmpAddr240 ) = ( ((word)  (fPt) RemoveAnySourceMarker←P3996) );
      (* (( (ptr) tmpAddr240) + 1) ) = 1;
      };
SOURCE(17199, 578)
   recordAtom←v40508 = 1;
SOURCE(17199, 578)
   quit←v40536 = 0;
SOURCE(17466, 51)
   {
      word pd241;
      pd241 = (* (( (ptr) (* (( (ptr) gf←c55648)+182)/* var←c49472 */  ))+93) );
      rootNode←v13148 = (word) ( *( (fPt) ((*  (ptr) pd241 ))))((* ((( (ptr) &var←c55616)+4)/* viewer←v40464 */ ) ), pd241);
      };
SOURCE(17519, 39)
   alreadyEdited←v13176 =  (unsigned) (((unsigned)(* (( (bPt) (* (( (ptr) &var←c55616)+4)/* viewer←v40464 */  ))+76) ) << 29) >> 31);
SOURCE(17560, 38)
   {
      word pd242;
      pd242 = (* (( (ptr) (* (( (ptr) gf←c55648)+182)/* var←c49472 */  ))+118) );
      (void) ( *( (fPt) ((*  (ptr) pd242 ))))((word) (( (bPt) &var←c55616)+20)/* var←c51744 */ , rootNode←v13148, pd242);
      };
SOURCE(17600, 97)
   if ((0 == alreadyEdited←v13176)) {
SOURCE(17625, 25)
      (* (( (ptr) (* (( (ptr) &var←c55616)+4)/* viewer←v40464 */  )) + 19) ) &= 4227858431;
SOURCE(17652, 45)
      {
         word pd243;
         pd243 = (* (( (ptr) (* (( (ptr) gf←c55648)+185)/* var←c50304 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd243 ))))((* (( (ptr) &var←c55616)+4)/* viewer←v40464 */  ), 3, 0, 0, pd243);
         };
      };
SOURCE(17702, 75)
   {
      word pd244;
      pd244 = (* (( (ptr) (* (( (ptr) gf←c55648)+186)/* var←c50432 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd244 ))))((* (( (ptr) &var←c55616)+4)/* viewer←v40464 */  ), 0, pd244);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0287 ) = recordAtom←v40508;
   (* (( (ptr) formal←c0287)+1) ) = quit←v40536;
   return;
   }

static void RemoveAnySourceMarker←P3996(node←v45896, offset←v45924, charProp←v45952, formal←c55712)
   word node←v45896;
   word offset←v45924;
   word charProp←v45952;
   word formal←c55712;
   {
   register ptr gf←c55680 =  (ptr) &globalframe;
   formal←c55712 = (formal←c55712 - 28);
   /* RemoveAnySourceMarker: */ 
SOURCE(17238, 94)
SOURCE(17279, 53)
   {
      word pd245;
      pd245 = (* (( (ptr) (* (( (ptr) gf←c55680)+183)/* var←c49632 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd245 ))))(node←v45896, offset←v45924, (* (( (ptr) gf←c55680)+39) ), 0, 1, 0
         , 0, pd245);
      };
   }

static void DoIt←P4056(root←v13252, formal←c55776)
   word root←v13252;
   word formal←c55776;
   {
   register ptr gf←c55744 =  (ptr) &globalframe;
   formal←c55776 = (formal←c55776 - 20);
   /* DoIt: */ 
SOURCE(17337, 123)
SOURCE(17373, 87)
   (void) MapCharProps←P2100((* (( (ptr) formal←c55776)+4) ), (* (( (ptr) gf←c55744)+39) ), (word) (( (bPt) formal←c55776)+28)
      );
   }

static void InstallMenuButton←P960(name←v6516, proc←v6544, clientData←v6572)
   word name←v6516;
   word proc←v6544;
   word clientData←v6572;
   {
   register ptr gf←c55808 =  (ptr) &globalframe;
   word old←v13280;
   word new←v13308;
   /* InstallMenuButton: */ 
SOURCE(17984, 402)
SOURCE(18079, 85)
   {
      word pd246;
      pd246 = (* (( (ptr) (* (( (ptr) gf←c55808)+179)/* var←c49120 */  ))+11) );
      old←v13280 = (word) ( *( (fPt) ((*  (ptr) pd246 ))))((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c55808)+192)/* var←c51808 */  ))+28)
          ) ), name←v6516, pd246);
      };
SOURCE(18166, 88)
   {
      word pd247;
      pd247 = (* (( (ptr) (* (( (ptr) gf←c55808)+179)/* var←c49120 */  ))+6) );
      new←v13308 = (word) ( *( (fPt) ((*  (ptr) pd247 ))))(name←v6516, proc←v6544, clientData←v6572, 0, 1, 0, pd247);
      };
SOURCE(18256, 130)
   if ((old←v13280 == 0)) {
SOURCE(18274, 56)
      {
         word pd248;
         pd248 = (* (( (ptr) (* (( (ptr) gf←c55808)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd248 ))))((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c55808)+192)/* var←c51808 */  ))+28) ) ), new←v13308, 0, pd248)
         ;
         };
      }
   else {
SOURCE(18330, 56)
      {
         word pd249;
         pd249 = (* (( (ptr) (* (( (ptr) gf←c55808)+179)/* var←c49120 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd249 ))))((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c55808)+192)/* var←c51808 */  ))+28) ) ), old←v13280, new←v13308, pd249)
         ;
         };
      };
   }

static void CreateTiogaViewerMenu←P1020()
   {
   register ptr gf←c55840 =  (ptr) &globalframe;
   word initVoiceMenu←v13352;
   /* CreateTiogaViewerMenu: */ 
SOURCE(18479, 1306)
SOURCE(18512, 46)
   {
      word pd250;
      pd250 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+4) );
      initVoiceMenu←v13352 = (word) ( *( (fPt) ((*  (ptr) pd250 ))))(1, pd250);
      };
SOURCE(18560, 120)
   {
      word var←c51840;
      {
         word pd251;
         pd251 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c51840 = (word) ( *( (fPt) ((*  (ptr) pd251 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+57)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+58) ), 0, 0
            , 0, pd251);
         };
      {
         word pd252;
         pd252 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd252 ))))(initVoiceMenu←v13352, var←c51840, 0, pd252);
         };
      };
SOURCE(18682, 122)
   {
      word var←c51872;
      {
         word pd253;
         pd253 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c51872 = (word) ( *( (fPt) ((*  (ptr) pd253 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+59)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+60) ), 0, 0
            , 0, pd253);
         };
      {
         word pd254;
         pd254 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd254 ))))(initVoiceMenu←v13352, var←c51872, 0, pd254);
         };
      };
SOURCE(18806, 112)
   {
      word var←c51904;
      {
         word pd255;
         pd255 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c51904 = (word) ( *( (fPt) ((*  (ptr) pd255 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+61)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+62) ), 0, 0
            , 0, pd255);
         };
      {
         word pd256;
         pd256 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd256 ))))(initVoiceMenu←v13352, var←c51904, 0, pd256);
         };
      };
SOURCE(18920, 121)
   {
      word var←c51936;
      {
         word pd257;
         pd257 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c51936 = (word) ( *( (fPt) ((*  (ptr) pd257 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+63)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+64) ), 0, 0
            , 0, pd257);
         };
      {
         word pd258;
         pd258 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd258 ))))(initVoiceMenu←v13352, var←c51936, 0, pd258);
         };
      };
SOURCE(19043, 122)
   {
      word var←c51968;
      {
         word pd259;
         pd259 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c51968 = (word) ( *( (fPt) ((*  (ptr) pd259 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+65)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+66) ), 0, 0
            , 0, pd259);
         };
      {
         word pd260;
         pd260 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd260 ))))(initVoiceMenu←v13352, var←c51968, 0, pd260);
         };
      };
SOURCE(19167, 126)
   {
      word var←c52000;
      {
         word pd261;
         pd261 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c52000 = (word) ( *( (fPt) ((*  (ptr) pd261 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+67)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+68) ), 0, 0
            , 0, pd261);
         };
      {
         word pd262;
         pd262 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd262 ))))(initVoiceMenu←v13352, var←c52000, 0, pd262);
         };
      };
SOURCE(19295, 134)
   {
      word var←c52032;
      {
         word pd263;
         pd263 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c52032 = (word) ( *( (fPt) ((*  (ptr) pd263 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+69)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+70) ), 0, 0
            , 0, pd263);
         };
      {
         word pd264;
         pd264 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd264 ))))(initVoiceMenu←v13352, var←c52032, 0, pd264);
         };
      };
SOURCE(19431, 250)
   {
      word var←c52064;
      {
         word pd265;
         pd265 = (* (( (ptr) (* (( (ptr) gf←c55840)+172)/* var←c48832 */  ))+6) );
         var←c52064 = (word) ( *( (fPt) ((*  (ptr) pd265 ))))((* (( (ptr) gf←c55840)+9)/* voiceButtonQueue←v4680 */  ), (* (( (ptr) gf←c55840)+71)
             ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+72) ), (* (( (ptr) gf←c55840)+75) ), 1
            , 0, pd265);
         };
      {
         word pd266;
         pd266 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd266 ))))(initVoiceMenu←v13352, var←c52064, 0, pd266);
         };
      };
SOURCE(19683, 43)
   {
      word pd267;
      pd267 = (* (( (ptr) (* (( (ptr) gf←c55840)+179)/* var←c49120 */  ))+24) );
      (* (( (ptr) gf←c55840)+8)/* voiceMenu←v4652 */  ) = (word) ( *( (fPt) ((*  (ptr) pd267 ))))(initVoiceMenu←v13352, 0, pd267)
      ;
      };
SOURCE(19729, 56)
   (void) InstallMenuButton←P960((* (( (ptr) gf←c55840)+76) ), (word) (( (bPt) gf←c55840)+524)/* var←c48160 */ , (* (( (ptr) gf←c55840)+77)
       ));
   }

static void RegisterButtonBehaviors←P1080()
   {
   register ptr gf←c55872 =  (ptr) &globalframe;
   /* RegisterButtonBehaviors: */ 
SOURCE(19791, 1107)
SOURCE(19827, 60)
   {
      word pd268;
      pd268 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd268 ))))((* (( (ptr) gf←c55872)+78) ), (word) (( (bPt) gf←c55872)+572)/* var←c48352 */ , 1, pd268)
      ;
      };
SOURCE(19889, 63)
   {
      word pd269;
      pd269 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd269 ))))((* (( (ptr) gf←c55872)+79) ), (word) (( (bPt) gf←c55872)+572)/* var←c48352 */ , 1, pd269)
      ;
      };
SOURCE(19954, 61)
   {
      word pd270;
      pd270 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd270 ))))((* (( (ptr) gf←c55872)+80) ), (word) (( (bPt) gf←c55872)+572)/* var←c48352 */ , 1, pd270)
      ;
      };
SOURCE(20018, 61)
   {
      word pd271;
      pd271 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd271 ))))((* (( (ptr) gf←c55872)+81) ), (word) (( (bPt) gf←c55872)+572)/* var←c48352 */ , 1, pd271)
      ;
      };
SOURCE(20081, 64)
   {
      word pd272;
      pd272 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd272 ))))((* (( (ptr) gf←c55872)+82) ), (word) (( (bPt) gf←c55872)+572)/* var←c48352 */ , 1, pd272)
      ;
      };
SOURCE(20147, 62)
   {
      word pd273;
      pd273 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd273 ))))((* (( (ptr) gf←c55872)+83) ), (word) (( (bPt) gf←c55872)+572)/* var←c48352 */ , 1, pd273)
      ;
      };
SOURCE(20213, 61)
   {
      word pd274;
      pd274 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd274 ))))((* (( (ptr) gf←c55872)+77) ), (word) (( (bPt) gf←c55872)+660)/* var←c48704 */ , 1, pd274)
      ;
      };
SOURCE(20276, 81)
   {
      word pd275;
      pd275 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd275 ))))((* (( (ptr) gf←c55872)+58) ), (* (( (ptr) (* (( (ptr) gf←c55872)+186)/* var←c50432 */  ))+35)
          ), 1, pd275);
      };
SOURCE(20359, 86)
   {
      word pd276;
      pd276 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd276 ))))((* (( (ptr) gf←c55872)+60) ), (* (( (ptr) (* (( (ptr) gf←c55872)+186)/* var←c50432 */  ))+24)
          ), 1, pd276);
      };
SOURCE(20447, 75)
   {
      word pd277;
      pd277 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd277 ))))((* (( (ptr) gf←c55872)+62) ), (* (( (ptr) (* (( (ptr) gf←c55872)+186)/* var←c50432 */  ))+36)
          ), 1, pd277);
      };
SOURCE(20524, 75)
   {
      word pd278;
      pd278 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd278 ))))((* (( (ptr) gf←c55872)+64) ), (* (( (ptr) (* (( (ptr) gf←c55872)+186)/* var←c50432 */  ))+25)
          ), 1, pd278);
      };
SOURCE(20601, 65)
   {
      word pd279;
      pd279 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd279 ))))((* (( (ptr) gf←c55872)+66) ), (word) (( (bPt) gf←c55872)+596)/* var←c48448 */ , 1, pd279)
      ;
      };
SOURCE(20668, 69)
   {
      word pd280;
      pd280 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd280 ))))((* (( (ptr) gf←c55872)+68) ), (word) (( (bPt) gf←c55872)+620)/* var←c48544 */ , 1, pd280)
      ;
      };
SOURCE(20739, 92)
   {
      word pd281;
      pd281 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd281 ))))((* (( (ptr) gf←c55872)+70) ), (* (( (ptr) (* (( (ptr) gf←c55872)+186)/* var←c50432 */  ))+37)
          ), 1, pd281);
      };
SOURCE(20833, 65)
   {
      word pd282;
      pd282 = (* (( (ptr) (* (( (ptr) gf←c55872)+182)/* var←c49472 */  ))+128) );
      (void) ( *( (fPt) ((*  (ptr) pd282 ))))((* (( (ptr) gf←c55872)+72) ), (word) (( (bPt) gf←c55872)+556)/* var←c48288 */ , 1, pd282)
      ;
      };
   }

static void TiogaInterpret←P1140(parent←v40596, clientData←v40624, mouseButton←v40652, shift←v40680, control←v40708)
   word parent←v40596;
   word clientData←v40624;
   word mouseButton←v40652;
   word shift←v40680;
   word control←v40708;
   {
   register ptr gf←c55904 =  (ptr) &globalframe;
   /* TiogaInterpret: */ 
SOURCE(20903, 201)
SOURCE(20945, 113)
   {
      word var←c52096;
      {
         word var←c52128;
         var←c52128 = XR←NewObject(12, (* (( (ptr) gf←c55904)+30) ));
         (*  (ptr) var←c52128 ) = mouseButton←v40652;
         (* (( (ptr) var←c52128)+1) ) = shift←v40680;
         (* (( (ptr) var←c52128)+2) ) = control←v40708;
         var←c52096 = var←c52128;
         };
      {
         word pd283;
         pd283 = (* (( (ptr) (* (( (ptr) gf←c55904)+185)/* var←c50304 */  ))+28) );
         (void) ( *( (fPt) ((*  (ptr) pd283 ))))(parent←v40596, (* (( (ptr) gf←c55904)+84) ), var←c52096, pd283);
         };
      };
SOURCE(21060, 44)
   {
      word var←c52160;
      {
         word var←c52192;
         word var←c52224;
         var←c52192 = XR←NewObject(8, (* (( (ptr) gf←c55904)+29) ));
         var←c52224 = var←c52192;
         (*  (ptr) var←c52224 ) = clientData←v40624;
         var←c52160 = var←c52192;
         };
      {
         word pd284;
         pd284 = (* (( (ptr) (* (( (ptr) gf←c55904)+182)/* var←c49472 */  ))+129) );
         (void) ( *( (fPt) ((*  (ptr) pd284 ))))(parent←v40596, var←c52160, pd284);
         };
      };
   }

static void BlinkMessageWindow←P1200(r←v6680)
   word r←v6680;
   {
   register ptr gf←c55936 =  (ptr) &globalframe;
   /* BlinkMessageWindow: */ 
SOURCE(21110, 96)
SOURCE(21154, 29)
   {
      word pd285;
      pd285 = (* (( (ptr) (* (( (ptr) gf←c55936)+184)/* var←c50240 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd285 ))))(r←v6680, 1, pd285);
      };
SOURCE(21185, 21)
   {
      word pd286;
      pd286 = (* (( (ptr) (* (( (ptr) gf←c55936)+184)/* var←c50240 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd286 ))))(pd286);
      };
   }

static word AppendRope←P1260(list←v6740, entry←v6768)
   word list←v6740;
   word entry←v6768;
   {
   register ptr gf←c55968 =  (ptr) &globalframe;
   word var←c6896;
   word oneElementList←v13396;
   word hangOffPoint←v13424;
   /* AppendRope: */ 
SOURCE(21212, 356)
SOURCE(21305, 16)
   oneElementList←v13396 = XR←NewObject(8, (* (( (ptr) gf←c55968)+28) ));
   (*  (ptr) oneElementList←v13396 ) = entry←v6768;
SOURCE(21359, 14)
   hangOffPoint←v13424 = list←v6740;
SOURCE(21399, 42)
   if ((list←v6740 == 0)) {
SOURCE(21418, 23)
      return(oneElementList←v13396);
      };
SOURCE(21443, 73)
   lab←L100103: ;
   if (((* (( (ptr) hangOffPoint←v13424)+1) ) != 0)) {
      }
   else {
      goto lab←L100101;
      };
SOURCE(21476, 40)
   hangOffPoint←v13424 = (* (( (ptr) hangOffPoint←v13424)+1) );
   goto lab←L100103;
   lab←L100101: ;
SOURCE(21518, 34)
   (* (( (ptr) hangOffPoint←v13424)+1) ) = oneElementList←v13396;
SOURCE(21554, 14)
   return(list←v6740);
   }

static word AppendViewerInfo←P1320(list←v7040, entry←v7068)
   word list←v7040;
   word entry←v7068;
   {
   register ptr gf←c56000 =  (ptr) &globalframe;
   word var←c7196;
   word oneElementList←v13636;
   word hangOffPoint←v13664;
   /* AppendViewerInfo: */ 
SOURCE(21571, 482)
SOURCE(21742, 16)
   oneElementList←v13636 = XR←NewObject(8, (* (( (ptr) gf←c56000)+26) ));
   (*  (ptr) oneElementList←v13636 ) = entry←v7068;
SOURCE(21820, 14)
   hangOffPoint←v13664 = list←v7040;
SOURCE(21884, 42)
   if ((list←v7040 == 0)) {
SOURCE(21903, 23)
      return(oneElementList←v13636);
      };
SOURCE(21928, 73)
   lab←L100106: ;
   if (((* (( (ptr) hangOffPoint←v13664)+1) ) != 0)) {
      }
   else {
      goto lab←L100104;
      };
SOURCE(21961, 40)
   hangOffPoint←v13664 = (* (( (ptr) hangOffPoint←v13664)+1) );
   goto lab←L100106;
   lab←L100104: ;
SOURCE(22003, 34)
   (* (( (ptr) hangOffPoint←v13664)+1) ) = oneElementList←v13636;
SOURCE(22039, 14)
   return(list←v7040);
   }

static void DebugRope←P1380(rope←v7340)
   word rope←v7340;
   {
   register ptr gf←c56032 =  (ptr) &globalframe;
   /* DebugRope: */ 
SOURCE(22087, 97)
SOURCE(22132, 52)
   if (((* (( (ptr) gf←c56032)+10)/* debugStream←v4876 */  ) != 0)) {
SOURCE(22158, 26)
      {
         word pd287;
         pd287 = (* (( (ptr) (* (( (ptr) gf←c56032)+190)/* var←c50848 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd287 ))))((* (( (ptr) gf←c56032)+10)/* debugStream←v4876 */  ), rope←v7340, 0, 2147483647, pd287)
         ;
         };
      };
   }

static void DebugStreamInit←P1440(formal←c0331, cmd←v40768)
   word formal←c0331;
   word cmd←v40768;
   {
   register ptr gf←c56064 =  (ptr) &globalframe;
   word result←v40812;
   word msg←v40840;
   /* DebugStreamInit: */ 
SOURCE(22187, 65)
SOURCE(22187, 65)
   result←v40812 = 0;
SOURCE(22187, 65)
   msg←v40840 = 0;
SOURCE(22230, 22)
   (* (( (ptr) gf←c56064)+10)/* debugStream←v4876 */  ) = (* (( (ptr) cmd←v40768)+1) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0331 ) = result←v40812;
   (* (( (ptr) formal←c0331)+1) ) = msg←v40840;
   return;
   }

static void TalksBubblePaint←P1500(self←v7612, formal←c0621)
   word self←v7612;
   word formal←c0621;
   {
   W12 var←c56096;
   /* declaration of context←v7640 skipped */ 
   register ptr gf←c56128 =  (ptr) &globalframe;
   /* declaration of var←c52320 skipped */ 
   /* declaration of var←c52352 skipped */ 
   /* declaration of var←c52384 skipped */ 
   /* declaration of data←v13876 skipped */ 
   (* (( (ptr) &var←c56096)+4)/* context←v7640 */  ) = formal←c0621;
   /* TalksBubblePaint: */ 
SOURCE(22418, 1718)
   {
      word tmpAddr288;
      tmpAddr288 = (word) (( (ptr) &var←c56096)+5)/* var←c52320 */ ;
      (*  (ptr) tmpAddr288 ) = ( ((word)  (fPt) Inner←P4236) );
      (* (( (ptr) tmpAddr288) + 1) ) = 1;
      };
   {
      word tmpAddr289;
      tmpAddr289 = (word) (( (ptr) &var←c56096)+7)/* var←c52352 */ ;
      (*  (ptr) tmpAddr289 ) = ( ((word)  (fPt) DrawBox←P4176) );
      (* (( (ptr) tmpAddr289) + 1) ) = 1;
      };
   {
      word tmpAddr290;
      tmpAddr290 = (word) (( (ptr) &var←c56096)+9)/* var←c52384 */ ;
      (*  (ptr) tmpAddr290 ) = ( ((word)  (fPt) DrawBubble←P4116) );
      (* (( (ptr) tmpAddr290) + 1) ) = 1;
      };
SOURCE(22507, 48)
   (* (( (ptr) &var←c56096)+11)/* data←v13876 */  ) = XR←Narrow((* (( (ptr) self←v7612)+8) ), (* (( (ptr) gf←c56128)+25) ));
SOURCE(24107, 29)
   {
      word pd291;
      pd291 = (* (( (ptr) (* (( (ptr) gf←c56128)+193)/* var←c52416 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd291 ))))((* (( (ptr) &var←c56096)+4)/* context←v7640 */  ), (word) (( (bPt) &var←c56096)+20)
         /* var←c52320 */ , pd291);
      };
   }

static void DrawBubble←P4116(moveTo←v46220, lineTo←v46248, curveTo←v46276, conicTo←v46304, arcTo←v46332, formal←c56160)
   word moveTo←v46220;
   word lineTo←v46248;
   word curveTo←v46276;
   word conicTo←v46304;
   word arcTo←v46332;
   word formal←c56160;
   {
   word height←v14032;
   formal←c56160 = (formal←c56160 - 36);
   /* DrawBubble: */ 
SOURCE(22558, 757)
SOURCE(22594, 41)
   {
      word x292;
      word x293;
      *(float*)&height←v14032 = (
         x292 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+2) ),  *(float*)&x292
         ) + (
         x293 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x293
         );
      };
SOURCE(22637, 48)
   {
      W2 var←c52448;
      var←c52448.f0 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) );
      {
         word x294;
         word x295;
         word x297;
         *(float*)&var←c52448.f1 = ( - (
            x294 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x294
            )) + ((
            x295 = height←v14032,  *(float*)&x295
            ) / (
            x297 = (*  (ptr) &fc296 ),  *(float*)&x297
            ));
         };
      (void) ( *( (fPt) ((*  (ptr) moveTo←v46220 ))))(var←c52448, moveTo←v46220);
      };
SOURCE(22687, 50)
   {
      W2 var←c52480;
      var←c52480.f0 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) );
      {
         word x298;
         word x300;
         word x301;
         word x302;
         *(float*)&var←c52480.f1 = ( - (
            x298 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x298
            )) + (((
            x300 = (*  (ptr) &fc299 ),  *(float*)&x300
            ) * (
            x301 = height←v14032,  *(float*)&x301
            )) / (
            x302 = (*  (ptr) &fc296 ),  *(float*)&x302
            ));
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46248 ))))(var←c52480, lineTo←v46248);
      };
SOURCE(22739, 115)
   {
      W2 var←c52512;
      W2 var←c52544;
      {
         word x303;
         word x304;
         word x306;
         *(float*)&var←c52512.f0 = (
            x303 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x303
            ) + ((
            x304 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x304
            ) / (
            x306 = (*  (ptr) &fc305 ),  *(float*)&x306
            ));
         };
      {
         word x307;
         word x308;
         *(float*)&var←c52512.f1 = ( - (
            x307 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x307
            )) + (
            x308 = height←v14032,  *(float*)&x308
            );
         };
      {
         word x309;
         word x310;
         *(float*)&var←c52544.f0 = (
            x309 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x309
            ) + (
            x310 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x310
            );
         };
      {
         word x311;
         word x312;
         word x313;
         word x314;
         *(float*)&var←c52544.f1 = ( - (
            x311 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x311
            )) + (((
            x312 = (*  (ptr) &fc299 ),  *(float*)&x312
            ) * (
            x313 = height←v14032,  *(float*)&x313
            )) / (
            x314 = (*  (ptr) &fc296 ),  *(float*)&x314
            ));
         };
      (void) ( *( (fPt) ((*  (ptr) arcTo←v46332 ))))(var←c52512, var←c52544, arcTo←v46332);
      };
SOURCE(22856, 59)
   {
      W2 var←c52576;
      {
         word x315;
         word x316;
         *(float*)&var←c52576.f0 = (
            x315 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x315
            ) + (
            x316 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x316
            );
         };
      {
         word x317;
         word x318;
         word x319;
         *(float*)&var←c52576.f1 = ( - (
            x317 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x317
            )) + ((
            x318 = height←v14032,  *(float*)&x318
            ) / (
            x319 = (*  (ptr) &fc296 ),  *(float*)&x319
            ));
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46248 ))))(var←c52576, lineTo←v46248);
      };
SOURCE(22917, 117)
   {
      W2 var←c52608;
      W2 var←c52640;
      {
         word x320;
         word x322;
         word x323;
         word x325;
         *(float*)&var←c52608.f0 = (
            x320 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x320
            ) + (((
            x322 = (*  (ptr) &fc321 ),  *(float*)&x322
            ) * (
            x323 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x323
            )) / (
            x325 = (*  (ptr) &fc324 ),  *(float*)&x325
            ));
         };
      {
         word x326;
         word x327;
         word x328;
         *(float*)&var←c52608.f1 = ( - (
            x326 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x326
            )) + ((
            x327 = height←v14032,  *(float*)&x327
            ) / (
            x328 = (*  (ptr) &fc324 ),  *(float*)&x328
            ));
         };
      {
         word x329;
         word x330;
         word x331;
         word x332;
         *(float*)&var←c52640.f0 = (
            x329 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x329
            ) + (((
            x330 = (*  (ptr) &fc299 ),  *(float*)&x330
            ) * (
            x331 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x331
            )) / (
            x332 = (*  (ptr) &fc296 ),  *(float*)&x332
            ));
         };
      {
         word x333;
         *(float*)&var←c52640.f1 =  - (
            x333 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x333
            );
         };
      (void) ( *( (fPt) ((*  (ptr) arcTo←v46332 ))))(var←c52608, var←c52640, arcTo←v46332);
      };
SOURCE(23036, 63)
   {
      W2 var←c52672;
      {
         word x334;
         word x335;
         word x336;
         *(float*)&var←c52672.f0 = (
            x334 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x334
            ) + ((
            x335 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x335
            ) / (
            x336 = (*  (ptr) &fc296 ),  *(float*)&x336
            ));
         };
      {
         word x337;
         word x338;
         word x339;
         *(float*)&var←c52672.f1 = ( - (
            x337 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x337
            )) - ((
            x338 = height←v14032,  *(float*)&x338
            ) / (
            x339 = (*  (ptr) &fc305 ),  *(float*)&x339
            ));
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46248 ))))(var←c52672, lineTo←v46248);
      };
SOURCE(23101, 52)
   {
      W2 var←c52704;
      {
         word x340;
         word x341;
         word x342;
         *(float*)&var←c52704.f0 = (
            x340 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x340
            ) + ((
            x341 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x341
            ) / (
            x342 = (*  (ptr) &fc305 ),  *(float*)&x342
            ));
         };
      {
         word x343;
         *(float*)&var←c52704.f1 =  - (
            x343 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x343
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46248 ))))(var←c52704, lineTo←v46248);
      };
SOURCE(23155, 52)
   {
      W2 var←c52736;
      {
         word x344;
         word x345;
         word x346;
         *(float*)&var←c52736.f0 = (
            x344 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x344
            ) + ((
            x345 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x345
            ) / (
            x346 = (*  (ptr) &fc296 ),  *(float*)&x346
            ));
         };
      {
         word x347;
         *(float*)&var←c52736.f1 =  - (
            x347 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x347
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46248 ))))(var←c52736, lineTo←v46248);
      };
SOURCE(23209, 106)
   {
      W2 var←c52768;
      W2 var←c52800;
      {
         word x348;
         word x349;
         word x350;
         *(float*)&var←c52768.f0 = (
            x348 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) ),  *(float*)&x348
            ) + ((
            x349 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+4) ),  *(float*)&x349
            ) / (
            x350 = (*  (ptr) &fc324 ),  *(float*)&x350
            ));
         };
      {
         word x351;
         word x352;
         word x353;
         *(float*)&var←c52768.f1 = ( - (
            x351 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x351
            )) + ((
            x352 = height←v14032,  *(float*)&x352
            ) / (
            x353 = (*  (ptr) &fc324 ),  *(float*)&x353
            ));
         };
      var←c52800.f0 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+5) );
      {
         word x354;
         word x355;
         word x356;
         *(float*)&var←c52800.f1 = ( - (
            x354 = (* (( (ptr) (* (( (ptr) formal←c56160)+11) ))+3) ),  *(float*)&x354
            )) + ((
            x355 = height←v14032,  *(float*)&x355
            ) / (
            x356 = (*  (ptr) &fc296 ),  *(float*)&x356
            ));
         };
      (void) ( *( (fPt) ((*  (ptr) arcTo←v46332 ))))(var←c52768, var←c52800, arcTo←v46332);
      };
   }

static void DrawBox←P4176(moveTo←v46392, lineTo←v46420, curveTo←v46448, conicTo←v46476, arcTo←v46504, formal←c56192)
   word moveTo←v46392;
   word lineTo←v46420;
   word curveTo←v46448;
   word conicTo←v46476;
   word arcTo←v46504;
   word formal←c56192;
   {
   formal←c56192 = (formal←c56192 - 28);
   /* DrawBox: */ 
SOURCE(23321, 304)
SOURCE(23354, 57)
   {
      W2 var←c52832;
      {
         word x357;
         word x358;
         *(float*)&var←c52832.f0 = (
            x357 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+5) ),  *(float*)&x357
            ) + (
            x358 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+6) ),  *(float*)&x358
            );
         };
      {
         word x359;
         *(float*)&var←c52832.f1 =  - (
            x359 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+3) ),  *(float*)&x359
            );
         };
      (void) ( *( (fPt) ((*  (ptr) moveTo←v46392 ))))(var←c52832, moveTo←v46392);
      };
SOURCE(23413, 55)
   {
      W2 var←c52864;
      {
         word x360;
         word x361;
         *(float*)&var←c52864.f0 = (
            x360 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+5) ),  *(float*)&x360
            ) + (
            x361 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+6) ),  *(float*)&x361
            );
         };
      var←c52864.f1 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+2) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46420 ))))(var←c52864, lineTo←v46420);
      };
SOURCE(23470, 46)
   {
      W2 var←c52896;
      {
         word x362;
         word x363;
         *(float*)&var←c52896.f0 = (
            x362 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+5) ),  *(float*)&x362
            ) + (
            x363 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+4) ),  *(float*)&x363
            );
         };
      var←c52896.f1 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+2) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46420 ))))(var←c52896, lineTo←v46420);
      };
SOURCE(23518, 48)
   {
      W2 var←c52928;
      {
         word x364;
         word x365;
         *(float*)&var←c52928.f0 = (
            x364 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+5) ),  *(float*)&x364
            ) + (
            x365 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+4) ),  *(float*)&x365
            );
         };
      {
         word x366;
         *(float*)&var←c52928.f1 =  - (
            x366 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+3) ),  *(float*)&x366
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46420 ))))(var←c52928, lineTo←v46420);
      };
SOURCE(23568, 57)
   {
      W2 var←c52960;
      {
         word x367;
         word x368;
         *(float*)&var←c52960.f0 = (
            x367 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+5) ),  *(float*)&x367
            ) + (
            x368 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+6) ),  *(float*)&x368
            );
         };
      {
         word x369;
         *(float*)&var←c52960.f1 =  - (
            x369 = (* (( (ptr) (* (( (ptr) formal←c56192)+11) ))+3) ),  *(float*)&x369
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v46420 ))))(var←c52960, lineTo←v46420);
      };
   }

static void Inner←P4236(formal←c56256)
   word formal←c56256;
   {
   register ptr gf←c56224 =  (ptr) &globalframe;
   formal←c56256 = (formal←c56256 - 20);
   /* Inner: */ 
SOURCE(23631, 469)
SOURCE(23647, 20)
   {
      word pd370;
      pd370 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd370 ))))((* ((( (ptr) formal←c56256)+4)) ), pd370);
      };
SOURCE(23669, 38)
   {
      word pd371;
      pd371 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+36) );
      (void) ( *( (fPt) ((*  (ptr) pd371 ))))((* (( (ptr) formal←c56256)+4) ), (*  (ptr) (* (( (ptr) formal←c56256)+11) ) ), pd371)
      ;
      };
SOURCE(23709, 391)
   if (((* (( (ptr) (* (( (ptr) formal←c56256)+11) ))+1) ) == 0)) {
SOURCE(23737, 35)
      {
         word pd372;
         pd372 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+68) );
         (void) ( *( (fPt) ((*  (ptr) pd372 ))))((* (( (ptr) formal←c56256)+4) ), (*  (ptr) &fc373 ), pd372);
         };
SOURCE(23774, 37)
      {
         word pd374;
         pd374 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+70) );
         (void) ( *( (fPt) ((*  (ptr) pd374 ))))((* (( (ptr) formal←c56256)+4) ), 2, pd374);
         };
SOURCE(23813, 44)
      {
         word pd375;
         pd375 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+71) );
         (void) ( *( (fPt) ((*  (ptr) pd375 ))))((* (( (ptr) formal←c56256)+4) ), (word) (( (bPt) formal←c56256)+36), 1, pd375);
         };
      }
   else {
SOURCE(23869, 35)
      {
         word pd376;
         pd376 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+52) );
         (void) ( *( (fPt) ((*  (ptr) pd376 ))))((* (( (ptr) formal←c56256)+4) ), (* (( (ptr) gf←c56224)+12)/* textColor←v5072 */  ), pd376)
         ;
         };
SOURCE(23907, 36)
      {
         word pd377;
         pd377 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+31) );
         (void) ( *( (fPt) ((*  (ptr) pd377 ))))((* (( (ptr) formal←c56256)+4) ), (*  (ptr) &fc373 ), pd377);
         };
SOURCE(23945, 36)
      {
         word pd378;
         pd378 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+38) );
         (void) ( *( (fPt) ((*  (ptr) pd378 ))))((* (( (ptr) formal←c56256)+4) ), (* (( (ptr) (* (( (ptr) formal←c56256)+11) ))+1)
             ), 0, 2147483647, 0, pd378);
         };
SOURCE(23983, 35)
      {
         word pd379;
         pd379 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+68) );
         (void) ( *( (fPt) ((*  (ptr) pd379 ))))((* (( (ptr) formal←c56256)+4) ), (*  (ptr) &fc373 ), pd379);
         };
SOURCE(24020, 37)
      {
         word pd380;
         pd380 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+70) );
         (void) ( *( (fPt) ((*  (ptr) pd380 ))))((* (( (ptr) formal←c56256)+4) ), 2, pd380);
         };
SOURCE(24059, 41)
      {
         word pd381;
         pd381 = (* (( (ptr) (* (( (ptr) gf←c56224)+193)/* var←c52416 */  ))+71) );
         (void) ( *( (fPt) ((*  (ptr) pd381 ))))((* (( (ptr) formal←c56256)+4) ), (word) (( (bPt) formal←c56256)+28), 1, pd381);
         };
      };
   }

static word TalksBubbleFormat←P1560(class←v7700, loc←v7728, style←v7756)
   word class←v7700;
   W2 loc←v7728;
   word style←v7756;
   {
   register ptr gf←c56288 =  (ptr) &globalframe;
   word var←c7800;
   word font←v14076;
   word brightness←v14104;
   word ascent←v14132;
   word descent←v14160;
   word bearoff←v14188;
   word label←v14216 = 0;
   word letter←v14244;
   word width←v14272;
   word firstCharWidth←v14300;
   W2 escapement←v14328;
   /* TalksBubbleFormat: */ 
SOURCE(24142, 1594)
SOURCE(24297, 48)
   {
      word pd382;
      pd382 = (* (( (ptr) (* (( (ptr) gf←c56288)+194)/* var←c52992 */  ))+41) );
      font←v14076 = (word) ( *( (fPt) ((*  (ptr) pd382 ))))(style←v7756, pd382);
      };
SOURCE(24347, 59)
   {
      word pd383;
      pd383 = (* (( (ptr) (* (( (ptr) gf←c56288)+194)/* var←c52992 */  ))+12) );
      brightness←v14104 = (word) ( *( (fPt) ((*  (ptr) pd383 ))))(style←v7756, 11, pd383);
      };
SOURCE(24408, 57)
   {
      word pd384;
      pd384 = (* (( (ptr) (* (( (ptr) gf←c56288)+194)/* var←c52992 */  ))+12) );
      ascent←v14132 = (word) ( *( (fPt) ((*  (ptr) pd384 ))))(style←v7756, 72, pd384);
      };
SOURCE(24467, 59)
   {
      word pd385;
      pd385 = (* (( (ptr) (* (( (ptr) gf←c56288)+194)/* var←c52992 */  ))+12) );
      descent←v14160 = (word) ( *( (fPt) ((*  (ptr) pd385 ))))(style←v7756, 73, pd385);
      };
SOURCE(24528, 59)
   {
      word pd386;
      pd386 = (* (( (ptr) (* (( (ptr) gf←c56288)+194)/* var←c52992 */  ))+12) );
      bearoff←v14188 = (word) ( *( (fPt) ((*  (ptr) pd386 ))))(style←v7756, 68, pd386);
      };
SOURCE(24695, 48)
   {
      word pd387;
      pd387 = (* (( (ptr) (* (( (ptr) gf←c56288)+183)/* var←c49632 */  ))+4) );
      letter←v14244 = (word) ( *( (fPt) ((*  (ptr) pd387 ))))(loc←v7728.f0, loc←v7728.f1, pd387);
      };
SOURCE(24745, 48)
   {
      word pd388;
      pd388 = (* (( (ptr) (* (( (ptr) gf←c56288)+195)/* var←c53024 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd388 ))))((word) &escapement←v14328, font←v14076, letter←v14244, pd388);
      };
SOURCE(24795, 29)
   firstCharWidth←v14300 = escapement←v14328.f0;
SOURCE(24827, 107)
   if (((word) ValidateSourceMarker←P1860(loc←v7728.f0, loc←v7728.f1, 1) != 0)) {
SOURCE(24887, 47)
      label←v14216 = (word) GetVoiceWindowRope←P1980(loc←v7728.f0, loc←v7728.f1);
      };
SOURCE(24936, 91)
   if ((label←v14216 != 0)) {
SOURCE(24956, 71)
      {
         W2 var←c0381;
         word var←c0584;
         {
            word pd389;
            pd389 = (* (( (ptr) (* (( (ptr) gf←c56288)+195)/* var←c53024 */  ))+25) );
            (void) ( *( (fPt) ((*  (ptr) pd389 ))))((word) &var←c0381, font←v14076, label←v14216, 0, 2147483647, (*  (ptr) &fc373 ), pd389)
            ;
            };
         var←c0584 = var←c0381.f0;
         {
            word x390;
            word x391;
            *(float*)&escapement←v14328.f0 = (
               x390 = escapement←v14328.f0,  *(float*)&x390
               ) + (
               x391 = var←c0584,  *(float*)&x391
               );
            };
         };
      };
SOURCE(25029, 20)
   width←v14272 = escapement←v14328.f0;
SOURCE(25052, 190)
   {
      word x392;
      word x393;
      word x395;
      if (((
         x392 = ascent←v14132,  *(float*)&x392
         ) + (
         x393 = descent←v14160,  *(float*)&x393
         ) <= (
         x395 = (*  (ptr) &fc394 ),  *(float*)&x395
         ))) {
SOURCE(25082, 162)
         {
            W4 fontBoundingBox←v14372;
SOURCE(25084, 70)
            {
               word pd396;
               pd396 = (* (( (ptr) (* (( (ptr) gf←c56288)+195)/* var←c53024 */  ))+18) );
               (void) ( *( (fPt) ((*  (ptr) pd396 ))))((word) &fontBoundingBox←v14372, font←v14076, pd396);
               };
SOURCE(25156, 41)
            {
               word x397;
               word x398;
               *(float*)&ascent←v14132 = (
                  x397 = fontBoundingBox←v14372.f3,  *(float*)&x397
                  ) + (
                  x398 = bearoff←v14188,  *(float*)&x398
                  );
               };
SOURCE(25199, 43)
            {
               word x399;
               word x400;
               *(float*)&descent←v14160 = (
                  x399 = fontBoundingBox←v14372.f2,  *(float*)&x399
                  ) - (
                  x400 = bearoff←v14188,  *(float*)&x400
                  );
               };
            };
         };
      };
SOURCE(25248, 488)
   {
      word data←v14416;
      W4 extents←v14444;
SOURCE(25250, 187)
      data←v14416 = XR←NewObject(28, (* (( (ptr) gf←c56288)+25) ));
      (*  (ptr) data←v14416 ) = letter←v14244;
      (* (( (ptr) data←v14416)+1) ) = label←v14216;
      (* (( (ptr) data←v14416)+2) ) = ascent←v14132;
      (* (( (ptr) data←v14416)+3) ) = descent←v14160;
      (* (( (ptr) data←v14416)+4) ) = width←v14272;
      (* (( (ptr) data←v14416)+5) ) = bearoff←v14188;
      (* (( (ptr) data←v14416)+6) ) = firstCharWidth←v14300;
SOURCE(25439, 167)
      {
         word x401;
         word x402;
         *(float*)&extents←v14444.f0 = ( - (
            x401 = (* (( (ptr) data←v14416)+5) ),  *(float*)&x401
            )) + (
            x402 = (*  (ptr) &fc305 ),  *(float*)&x402
            );
         };
      {
         word x403;
         word x404;
         word x405;
         *(float*)&extents←v14444.f1 = ((
            x403 = (* (( (ptr) data←v14416)+5) ),  *(float*)&x403
            ) + (
            x404 = (* (( (ptr) data←v14416)+4) ),  *(float*)&x404
            )) + (
            x405 = (*  (ptr) &fc305 ),  *(float*)&x405
            );
         };
      {
         word x406;
         word x407;
         word x408;
         *(float*)&extents←v14444.f2 = ((
            x406 = (* (( (ptr) data←v14416)+3) ),  *(float*)&x406
            ) + (
            x407 = (* (( (ptr) data←v14416)+2) ),  *(float*)&x407
            )) / (
            x408 = (*  (ptr) &fc305 ),  *(float*)&x408
            );
         };
      {
         word x409;
         word x410;
         *(float*)&extents←v14444.f3 = (
            x409 = (* (( (ptr) data←v14416)+2) ),  *(float*)&x409
            ) + (
            x410 = (*  (ptr) &fc305 ),  *(float*)&x410
            );
         };
SOURCE(25608, 128)
      {
         word var←c53152;
         var←c53152 = XR←NewObject(36, (* (( (ptr) gf←c56288)+24) ));
         (*  (ptr) var←c53152 ) = (word) (( (bPt) gf←c56288)+476)/* var←c47968 */ ;
         (*  (W4Pt) (( (ptr) var←c53152)+1) ) = extents←v14444;
         (*  (W2Pt) (( (ptr) var←c53152)+5) ) = escapement←v14328;
         (* (( (ptr) var←c53152)+8) ) = data←v14416;
         return(var←c53152);
         };
      };
   }

static void RegisterViewer←P1620(viewer←v8016)
   word viewer←v8016;
   {
   register ptr gf←c56320 =  (ptr) &globalframe;
   word alreadyInList←v14500 = 0;
   /* RegisterViewer: */ 
SOURCE(26168, 500)
SOURCE(26263, 163)
   {
      register word l←v14544;
      l←v14544 = (* (( (ptr) gf←c56320)+13)/* registeredViewerList←v5128 */  );
      lab←L100111: ;
      if ( ( (l←v14544 != 0) ? (0 == alreadyInList←v14500) : 0 ) ) {
         }
      else {
         goto lab←L100108;
         };
SOURCE(26366, 60)
      if (((*  (ptr) l←v14544 ) == viewer←v8016)) {
SOURCE(26398, 28)
         alreadyInList←v14500 = 1;
         };
      l←v14544 = (* (( (ptr) l←v14544)+2) );
      goto lab←L100111;
      lab←L100108: ;
      };
SOURCE(26429, 239)
   if ((0 == alreadyInList←v14500)) {
SOURCE(26452, 216)
      {
         W2 newEntry←v14672;
SOURCE(26455, 150)
         newEntry←v14672.f0 = viewer←v8016;
         {
            word pd411;
            pd411 = (* (( (ptr) (* (( (ptr) gf←c56320)+196)/* var←c53216 */  ))+4) );
            newEntry←v14672.f1 = (word) ( *( (fPt) ((*  (ptr) pd411 ))))((word) (( (bPt) gf←c56320)+452)/* var←c47872 */ , 2, viewer←v8016, 1, pd411)
            ;
            };
SOURCE(26607, 61)
         {
            word var←c53248;
            var←c53248 = XR←NewObject(12, (* (( (ptr) gf←c56320)+23) ));
            (*  (W2Pt) var←c53248 ) = newEntry←v14672;
            (* (( (ptr) var←c53248)+2) ) = (* (( (ptr) gf←c56320)+13)/* registeredViewerList←v5128 */  );
            (* (( (ptr) gf←c56320)+13)/* registeredViewerList←v5128 */  ) = var←c53248;
            };
         };
      };
   }

static word DestroyViewerEvent←P1680(viewer←v41492, event←v41520, before←v41548)
   word viewer←v41492;
   word event←v41520;
   word before←v41548;
   {
   register ptr gf←c56352 =  (ptr) &globalframe;
   word abort←v41592;
   word firstEntry←v14716;
   word previousEntry←v14744;
   /* DestroyViewerEvent: */ 
SOURCE(26674, 619)
SOURCE(26674, 619)
   abort←v41592 = 0;
SOURCE(26722, 64)
   firstEntry←v14716 =  (unsigned) (viewer←v41492 == (*  (ptr) (* (( (ptr) gf←c56352)+13)/* registeredViewerList←v5128 */  ) ));
SOURCE(26788, 15)
   previousEntry←v14744 = (* (( (ptr) gf←c56352)+13)/* registeredViewerList←v5128 */  );
SOURCE(26856, 112)
   if ((0 == firstEntry←v14716)) {
SOURCE(26876, 92)
      lab←L100114: ;
      if (((*  (ptr) (* (( (ptr) previousEntry←v14744)+2) ) ) != viewer←v41492)) {
         }
      else {
         goto lab←L100112;
         };
SOURCE(26926, 42)
      previousEntry←v14744 = (* (( (ptr) previousEntry←v14744)+2) );
      goto lab←L100114;
      lab←L100112: ;
      };
SOURCE(26971, 126)
   {
      word pd412;
      pd412 = (* (( (ptr) (* (( (ptr) gf←c56352)+196)/* var←c53216 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd412 ))))((* (( (ptr)  ( (0 != firstEntry←v14716) ? (* (( (ptr) gf←c56352)+13)/* registeredViewerList←v5128 */  ) : (* (
               ( (ptr) previousEntry←v14744)+2) ) ) )+1) ), 2, pd412);
      };
SOURCE(27099, 117)
   if ((0 != firstEntry←v14716)) {
SOURCE(27118, 54)
      (* (( (ptr) gf←c56352)+13)/* registeredViewerList←v5128 */  ) = (* (( (ptr) (* (( (ptr) gf←c56352)+13)/* registeredViewerList←v5128 */  ))+2)
       );
      }
   else {
SOURCE(27172, 44)
      (* (( (ptr) previousEntry←v14744)+2) ) = (* (( (ptr) (* (( (ptr) previousEntry←v14744)+2) ))+2) );
      };
SOURCE(27219, 74)
   {
      word pd413;
      pd413 = (* (( (ptr) (* (( (ptr) gf←c56352)+186)/* var←c50432 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd413 ))))(viewer←v41492, 1, pd413);
      };
SOURCE(26674, 619)
   return(abort←v41592);
   }

static void TrackDeletes←P1740()
   {
   W7 var←c56384;
   register ptr gf←c56416 =  (ptr) &globalframe;
   /* declaration of var←c53280 skipped */ 
   word viewer←v14872 = 0;
   W2 start←v14900;
   W2 end←v14928;
   W2 current←v14956;
   /* declaration of infoList←v14984 skipped */ 
   /* TrackDeletes: */ 
SOURCE(27300, 1430)
   {
      word tmpAddr414;
      tmpAddr414 = (word) (( (ptr) &var←c56384)+4)/* var←c53280 */ ;
      (*  (ptr) tmpAddr414 ) = ( ((word)  (fPt) SeverLinks←P4488) );
      (* (( (ptr) tmpAddr414) + 1) ) = 1;
      };
SOURCE(27360, 42)
   start←v14900.f0 = 0;
   start←v14900.f1 = 0;
   end←v14928 = start←v14900;
   current←v14956 = end←v14928;
SOURCE(27404, 10)
   var←c56384.f6/* infoList←v14984 */  = 0;
SOURCE(27843, 66)
   {
      W8 var←c53344;
      {
         word pd415;
         pd415 = (* (( (ptr) (* (( (ptr) gf←c56416)+182)/* var←c49472 */  ))+63) );
         (void) ( *( (fPt) ((*  (ptr) pd415 ))))((word) &var←c53344, 0, pd415);
         };
      end←v14928 = (*  (W2Pt) (( (ptr) &var←c53344)+3) );
      start←v14900 = (*  (W2Pt) (( (ptr) &var←c53344)+1) );
      viewer←v14872 = var←c53344.f0;
      };
SOURCE(27911, 61)
   {
      word pd416;
      pd416 = (* (( (ptr) (* (( (ptr) gf←c56416)+186)/* var←c50432 */  ))+18) );
      var←c56384.f6/* infoList←v14984 */  = (word) ( *( (fPt) ((*  (ptr) pd416 ))))(viewer←v14872, pd416);
      };
SOURCE(27974, 29)
   if ((var←c56384.f6/* infoList←v14984 */  == 0)) {
SOURCE(27997, 6)
      return;
      };
SOURCE(28006, 384)
   if ((start←v14900.f0 == end←v14928.f0)) {
SOURCE(28037, 52)
      (void) SeverLinks←P4488(start←v14900.f0, start←v14900.f1, end←v14928.f1, (word) (( (bPt) &var←c56384)+16)/* var←c53280 */ )
      ;
      }
   else {
SOURCE(28092, 15)
      current←v14956 = start←v14900;
SOURCE(28109, 70)
      {
         word var←c53376;
         {
            word pd417;
            pd417 = (* (( (ptr) (* (( (ptr) gf←c56416)+183)/* var←c49632 */  ))+6) );
            var←c53376 = ((word) ( *( (fPt) ((*  (ptr) pd417 ))))(current←v14956.f0, pd417) - 1);
            };
         (void) SeverLinks←P4488(current←v14956.f0, current←v14956.f1, var←c53376, (word) (( (bPt) &var←c56384)+16)/* var←c53280 */ )
         ;
         };
SOURCE(28181, 209)
      lab←L100117: ;
SOURCE(28184, 49)
      {
         word pd418;
         pd418 = (* (( (ptr) (* (( (ptr) gf←c56416)+182)/* var←c49472 */  ))+86) );
         current←v14956.f0 = (word) ( *( (fPt) ((*  (ptr) pd418 ))))(current←v14956.f0, pd418);
         };
SOURCE(28235, 155)
      if ((current←v14956.f0 == end←v14928.f0)) {
SOURCE(28270, 38)
         (void) SeverLinks←P4488(current←v14956.f0, 0, end←v14928.f1, (word) (( (bPt) &var←c56384)+16)/* var←c53280 */ );
SOURCE(28310, 5)
         goto lab←L100116;
         }
      else {
SOURCE(28323, 67)
         {
            word var←c53408;
            {
               word pd419;
               pd419 = (* (( (ptr) (* (( (ptr) gf←c56416)+183)/* var←c49632 */  ))+6) );
               var←c53408 = ((word) ( *( (fPt) ((*  (ptr) pd419 ))))(current←v14956.f0, pd419) - 1);
               };
            (void) SeverLinks←P4488(current←v14956.f0, 0, var←c53408, (word) (( (bPt) &var←c56384)+16)/* var←c53280 */ );
            };
         };
      goto lab←L100117;
      lab←L100116: ;
      };
SOURCE(28394, 336)
   {
      word positionAdjustment←v15256;
SOURCE(28397, 53)
      positionAdjustment←v15256 = ((end←v14928.f1 - start←v14900.f1) + 1);
SOURCE(28452, 278)
      {
         register word l←v15300;
         l←v15300 = var←c56384.f6/* infoList←v14984 */ ;
         lab←L100121: ;
         if ((l←v15300 != 0)) {
            }
         else {
            goto lab←L100118;
            };
SOURCE(28533, 197)
         if ( ( ((* (( (ptr) (*  (ptr) l←v15300 ))+16) ) == end←v14928.f0) ? ( (int)(* (( (ptr) (*  (ptr) l←v15300 ))+17) ) >  (int)end←v14928.f1) : 0 ) ) {
SOURCE(28629, 101)
            {
               word var←c53440;
               word var←c53472;
               var←c53440 = ((* (( (ptr) (*  (ptr) l←v15300 ))+17) ) - positionAdjustment←v15256);
               var←c53472 = (word) (( (bPt) (*  (ptr) l←v15300 ))+64);
               (*  (ptr) var←c53472 ) = start←v14900.f0;
               (* (( (ptr) var←c53472)+1) ) = var←c53440;
               };
            };
         l←v15300 = (* (( (ptr) l←v15300)+1) );
         goto lab←L100121;
         lab←L100118: ;
         };
      };
   }

static void SeverLinks←P4488(node←v15172, from←v15200, to←v15228, formal←c56480)
   word node←v15172;
   word from←v15200;
   word to←v15228;
   word formal←c56480;
   {
   register ptr gf←c56448 =  (ptr) &globalframe;
   formal←c56480 = (formal←c56480 - 16);
   /* SeverLinks: */ 
SOURCE(27464, 365)
SOURCE(27525, 304)
   {
      register word l←v15344;
      word var←c53504;
      l←v15344 = (* (( (ptr) formal←c56480)+6) );
      lab←L100125: ;
      if ((l←v15344 != 0)) {
         }
      else {
         goto lab←L100122;
         };
SOURCE(27606, 223)
      {
         word tc420;
         if (((* (( (ptr) (*  (ptr) l←v15344 ))+16) ) == node←v15172)) {
            var←c53504 = (* (( (ptr) (*  (ptr) l←v15344 ))+17) );
            if (( (int)var←c53504 >=  (int)from←v15200)) {
               tc420 =  (word) ( (int)var←c53504 <=  (int)to←v15228);
               }
            else {
               tc420 =  (word) 0;
               };
            }
         else {
            tc420 =  (word) 0;
            };
         if (tc420) {
SOURCE(27703, 26)
            (* (( (ptr) (*  (ptr) l←v15344 ))+15) ) = 0;
SOURCE(27731, 98)
            {
               word var←c53536;
               {
                  W2 var←c53568;
                  {
                     W2 var←c53600;
                     word v←v47568;
                     v←v47568 = (* (( (ptr) (*  (ptr) l←v15344 ))+1) );
                     var←c53600.f0 = 5;
                     var←c53600.f1 = v←v47568;
                     var←c53568 = var←c53600;
                     };
                  {
                     word pd421;
                     pd421 = (* (( (ptr) (* (( (ptr) gf←c56448)+190)/* var←c50848 */  ))+63) );
                     var←c53536 = (word) ( *( (fPt) ((*  (ptr) pd421 ))))((* (( (ptr) gf←c56448)+94) ), var←c53568, pd421);
                     };
                  };
               (void) DebugRope←P1380(var←c53536);
               };
            };
         };
      l←v15344 = (* (( (ptr) l←v15344)+1) );
      goto lab←L100125;
      lab←L100122: ;
      };
   }

static void BreakVoiceWindowLinks←P1800(data←v41652)
   word data←v41652;
   {
   W7 var←c56512;
   register ptr gf←c56544 =  (ptr) &globalframe;
   /* declaration of var←c53664 skipped */ 
   /* declaration of whereData←v15416 skipped */ 
   /* BreakVoiceWindowLinks: */ 
SOURCE(28858, 330)
   {
      word tmpAddr422;
      tmpAddr422 = (word) (( (ptr) &var←c56512)+4)/* var←c53664 */ ;
      (*  (ptr) tmpAddr422 ) = ( ((word)  (fPt) DoIt←P4692) );
      (* (( (ptr) tmpAddr422) + 1) ) = 1;
      };
SOURCE(29080, 35)
   var←c56512.f6/* whereData←v15416 */  = XR←Narrow(data←v41652, (* (( (ptr) gf←c56544)+16) ));
SOURCE(29117, 71)
   if (((* (( (ptr) var←c56512.f6/* whereData←v15416 */ )+1) ) != 0)) {
SOURCE(29144, 44)
      {
         word pd423;
         pd423 = (* (( (ptr) (* (( (ptr) gf←c56544)+182)/* var←c49472 */  ))+118) );
         (void) ( *( (fPt) ((*  (ptr) pd423 ))))((word) (( (bPt) &var←c56512)+16)/* var←c53664 */ , (*  (ptr) var←c56512.f6/* whereData←v15416 */  ), pd423)
         ;
         };
      };
   }

static void DoIt←P4692(root←v15492, formal←c56608)
   word root←v15492;
   word formal←c56608;
   {
   register ptr gf←c56576 =  (ptr) &globalframe;
   formal←c56608 = (formal←c56608 - 16);
   /* DoIt: */ 
SOURCE(28908, 167)
SOURCE(28944, 131)
   {
      word pd424;
      pd424 = (* (( (ptr) (* (( (ptr) gf←c56576)+183)/* var←c49632 */  ))+6) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd424 ))))((* ((( (ptr) (* (( (ptr) formal←c56608)+6) ))+1)) ), pd424) >  (int)(* (
         ( (ptr) (* (( (ptr) formal←c56608)+6) ))+2) ))) {
SOURCE(29002, 73)
         {
            word pd425;
            pd425 = (* (( (ptr) (* (( (ptr) gf←c56576)+183)/* var←c49632 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd425 ))))((* (( (ptr) (* (( (ptr) formal←c56608)+6) ))+1) ), (* (( (ptr) (* (( (ptr) formal←c56608)+6)
                   ))+2) ), (* (( (ptr) gf←c56576)+39) ), 0, 1, 0
               , 0, pd425);
            };
         };
      };
   }

static word ValidateSourceMarker←P1860(node←v8204, offset←v8232, locked←v8260)
   word node←v8204;
   word offset←v8232;
   word locked←v8260;
   {
   register ptr gf←c56640 =  (ptr) &globalframe;
   word viewerInfo←v8304;
   word root←v15520 = 0;
   word v←v15548;
   /* ValidateSourceMarker: */ 
SOURCE(29194, 722)
SOURCE(29194, 722)
   viewerInfo←v8304 = 0;
SOURCE(29363, 94)
   {
      word pd426;
      pd426 = (* (( (ptr) (* (( (ptr) gf←c56640)+183)/* var←c49632 */  ))+16) );
      v←v15548 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd426 ))))(node←v8204, offset←v8232, (* (( (ptr) gf←c56640)+39) ), pd426)
         , (* (( (ptr) gf←c56640)+34) ));
      };
SOURCE(29459, 20)
   if ((v←v15548 == 0)) {
SOURCE(29473, 6)
      return(viewerInfo←v8304);
      };
SOURCE(29481, 80)
   {
      word var←c53696;
      var←c53696 = (word) GetVoiceViewerNumber←P1920((*  (ptr) (v←v15548) ));
      {
         word pd427;
         pd427 = (* (( (ptr) (* (( (ptr) gf←c56640)+186)/* var←c50432 */  ))+20) );
         viewerInfo←v8304 = (word) ( *( (fPt) ((*  (ptr) pd427 ))))(var←c53696, pd427);
         };
      };
SOURCE(29563, 29)
   if ((viewerInfo←v8304 == 0)) {
SOURCE(29586, 6)
      return(viewerInfo←v8304);
      };
SOURCE(29594, 26)
   {
      word pd428;
      pd428 = (* (( (ptr) (* (( (ptr) gf←c56640)+191)/* var←c51712 */  ))+9) );
      root←v15520 = (word) ( *( (fPt) ((*  (ptr) pd428 ))))(node←v8204, pd428);
      };
SOURCE(29622, 294)
   {
      word pd430;
      if (((* (( (ptr) viewerInfo←v8304)+15) ) == 0)) { goto then0429;};
      pd430 = (* (( (ptr) (* (( (ptr) gf←c56640)+182)/* var←c49472 */  ))+93) );
      if ((root←v15520 != (word) ( *( (fPt) ((*  (ptr) pd430 ))))((* ((( (ptr) viewerInfo←v8304)+15)) ), pd430))) {
         then0429: ;
SOURCE(29710, 208)
         {
            word whereData←v15592;
SOURCE(29712, 63)
            whereData←v15592 = XR←NewObject(12, (* (( (ptr) gf←c56640)+16) ));
            (*  (ptr) whereData←v15592 ) = root←v15520;
            (* (( (ptr) whereData←v15592)+1) ) = node←v8204;
            (* (( (ptr) whereData←v15592)+2) ) = offset←v8232;
SOURCE(29777, 121)
            if ((0 != locked←v8260)) {
SOURCE(29792, 74)
               {
                  word pd431;
                  pd431 = (* (( (ptr) (* (( (ptr) gf←c56640)+197)/* var←c53760 */  ))+5) );
                  (void) ( *( (fPt) ((*  (ptr) pd431 ))))(0, (word) (( (bPt) gf←c56640)+436)/* var←c47808 */ , whereData←v15592, pd431);
                  };
               }
            else {
SOURCE(29866, 32)
               (void) BreakVoiceWindowLinks←P1800(whereData←v15592);
               };
SOURCE(29900, 16)
            viewerInfo←v8304 = 0;
            };
         };
      };
SOURCE(29194, 722)
   return(viewerInfo←v8304);
   }

static word GetVoiceViewerNumber←P1920(voiceLabel←v8364)
   word voiceLabel←v8364;
   {
   register ptr gf←c56672 =  (ptr) &globalframe;
   word var←c8408;
   /* GetVoiceViewerNumber: */ 
SOURCE(29925, 139)
SOURCE(29994, 70)
   {
      word var←c53856;
      word var←c53824;
      {
         word pd433;
         {
            word pd432;
            pd432 = (* (( (ptr) (* (( (ptr) gf←c56672)+180)/* var←c49184 */  ))+11) );
            var←c53856 = ((word) ( *( (fPt) ((*  (ptr) pd432 ))))(voiceLabel←v8364, (* (( (ptr) gf←c56672)+96) ), 0, 1, pd432) + 1);
            };
         pd433 = (* (( (ptr) (* (( (ptr) gf←c56672)+180)/* var←c49184 */  ))+17) );
         var←c53824 = (word) ( *( (fPt) ((*  (ptr) pd433 ))))(voiceLabel←v8364, var←c53856, 2147483647, pd433);
         };
      {
         word pd434;
         pd434 = (* (( (ptr) (* (( (ptr) gf←c56672)+187)/* var←c50560 */  ))+10) );
         return((word) ( *( (fPt) ((*  (ptr) pd434 ))))(var←c53824, 8, pd434));
         };
      };
   }

static word GetVoiceWindowRope←P1980(node←v8468, offset←v8496)
   word node←v8468;
   word offset←v8496;
   {
   register ptr gf←c56704 =  (ptr) &globalframe;
   word var←c8540;
   word v←v15636;
   /* GetVoiceWindowRope: */ 
SOURCE(30070, 225)
SOURCE(30153, 94)
   {
      word pd435;
      pd435 = (* (( (ptr) (* (( (ptr) gf←c56704)+183)/* var←c49632 */  ))+16) );
      v←v15636 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd435 ))))(node←v8468, offset←v8496, (* (( (ptr) gf←c56704)+39) ), pd435)
         , (* (( (ptr) gf←c56704)+34) ));
      };
SOURCE(30249, 46)
   if ((v←v15636 != 0)) {
SOURCE(30263, 21)
      return((*  (ptr) v←v15636 ));
      }
   else {
SOURCE(30284, 11)
      return(0);
      };
   }

static word CheckVoiceWindowProp←P2040(propVal←v41712, charProp←v41740)
   word propVal←v41712;
   word charProp←v41740;
   {
   register ptr gf←c56736 =  (ptr) &globalframe;
   word var←c41784;
   /* CheckVoiceWindowProp: */ 
SOURCE(30452, 207)
SOURCE(30492, 147)
   if ((charProp←v41740 != 0)) {
SOURCE(30513, 128)
      {
         word v←v15680;
         word var←c53888;
SOURCE(30515, 54)
         v←v15680 = XR←Narrow(charProp←v41740, (* (( (ptr) gf←c56736)+34) ));
SOURCE(30571, 68)
         {
            word pd436;
            {
               word var←c53920;
               var←c53920 = XR←Narrow(propVal←v41712, (* (( (ptr) gf←c56736)+14) ));
               if ((var←c53920 == 0)) {
                  goto lab←L100127;
                  };
               if (( (unsigned) (*(int*)var←c53920<0) == 0)) {
                  goto lab←L100127;
                  };
               (void) XR←RaiseError(XR←NarrowFault, 0);
               lab←L100127: ;
               var←c53888 = var←c53920;
               };
            pd436 = (* (( (ptr) (* (( (ptr) gf←c56736)+180)/* var←c49184 */  ))+8) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd436 ))))((*  (ptr) v←v15680 ), var←c53888, 1, pd436))) {
SOURCE(30627, 12)
               return(1);
               };
            };
         };
      };
SOURCE(30644, 15)
   return(0);
   }

static void MapCharProps←P2100(viewer←v8884, propName←v8912, actionProc←v8940)
   word viewer←v8884;
   word propName←v8912;
   word actionProc←v8940;
   {
   register ptr gf←c56768 =  (ptr) &globalframe;
   word rootNode←v15724;
   /* MapCharProps: */ 
SOURCE(30663, 475)
SOURCE(30760, 51)
   {
      word pd437;
      pd437 = (* (( (ptr) (* (( (ptr) gf←c56768)+182)/* var←c49472 */  ))+93) );
      rootNode←v15724 = (word) ( *( (fPt) ((*  (ptr) pd437 ))))(viewer←v8884, pd437);
      };
SOURCE(30901, 237)
   {
      register word n←v15768;
      n←v15768 = rootNode←v15724;
      lab←L100131: ;
      if ((n←v15768 != 0)) {
         }
      else {
         goto lab←L100128;
         };
SOURCE(30974, 164)
      if (((* (( (ptr) n←v15768)+6) ) != 0)) {
SOURCE(30998, 140)
         {
            register word i←v15812 = 0;
            register word noName←c53952;
            {
               word pd438;
               pd438 = (* (( (ptr) (* (( (ptr) gf←c56768)+183)/* var←c49632 */  ))+6) );
               noName←c53952 = (word) ( *( (fPt) ((*  (ptr) pd438 ))))(n←v15768, pd438);
               };
            if (( (int)i←v15812 >=  (int)noName←c53952)) {
               goto lab←L100132;
               };
            lab←L100135: ;
            {
               word charProp←v15856;
SOURCE(31037, 52)
               {
                  word pd439;
                  pd439 = (* (( (ptr) (* (( (ptr) gf←c56768)+183)/* var←c49632 */  ))+16) );
                  charProp←v15856 = (word) ( *( (fPt) ((*  (ptr) pd439 ))))(n←v15768, i←v15812, propName←v8912, pd439);
                  };
SOURCE(31091, 47)
               if ((charProp←v15856 != 0)) {
SOURCE(31112, 26)
                  (void) ( *( (fPt) ((*  (ptr) actionProc←v8940 ))))(n←v15768, i←v15812, charProp←v15856, actionProc←v8940);
                  };
               };
            i←v15812 = (i←v15812 + 1);
            if (( (int)i←v15812 <  (int)noName←c53952)) {
               goto lab←L100135;
               };
            lab←L100132: ;
            };
         };
      {
         word pd440;
         pd440 = (* (( (ptr) (* (( (ptr) gf←c56768)+191)/* var←c51712 */  ))+14) );
         n←v15768 = (word) ( *( (fPt) ((*  (ptr) pd440 ))))(n←v15768, pd440);
         };
      goto lab←L100131;
      lab←L100128: ;
      };
   }

static void FindCharProp←P2160(formal←c0466, viewer←v9000, formal←c0622, formal←c0623, formal←c0624, locHint←v9112)
   word formal←c0466;
   word viewer←v9000;
   word formal←c0622;
   word formal←c0623;
   word formal←c0624;
   W2 locHint←v9112;
   {
   W11 var←c56800;
   /* declaration of propName←v9028 skipped */ 
   /* declaration of propVal←v9056 skipped */ 
   /* declaration of checkPropProc←v9084 skipped */ 
   register ptr gf←c56832 =  (ptr) &globalframe;
   /* declaration of foundLoc←v9168 skipped */ 
   /* declaration of var←c53984 skipped */ 
   word hintNode←v15940 = 0;
   word nextNode←v15968 = 0;
   (* (( (ptr) &var←c56800)+4)/* propName←v9028 */  ) = formal←c0622;
   (* (( (ptr) &var←c56800)+5)/* propVal←v9056 */  ) = formal←c0623;
   (* (( (ptr) &var←c56800)+6)/* checkPropProc←v9084 */  ) = formal←c0624;
   /* FindCharProp: */ 
SOURCE(31162, 1240)
   {
      word tmpAddr441;
      tmpAddr441 = (word) (( (ptr) &var←c56800)+9)/* var←c53984 */ ;
      (*  (ptr) tmpAddr441 ) = ( ((word)  (fPt) Search←P4992) );
      (* (( (ptr) tmpAddr441) + 1) ) = 1;
      };
SOURCE(31162, 1240)
   (* (( (ptr) &var←c56800)+7) ) = 0;
   (* (( (ptr) &var←c56800)+8) ) = 0;
SOURCE(31922, 19)
   (* (( (ptr) &var←c56800)+7) ) = 0;
SOURCE(31943, 23)
   hintNode←v15940 = locHint←v9112.f0;
SOURCE(31968, 50)
   {
      word pd442;
      pd442 = (* (( (ptr) (* (( (ptr) gf←c56832)+191)/* var←c51712 */  ))+9) );
      if (((word) ( *( (fPt) ((*  (ptr) pd442 ))))(hintNode←v15940, pd442) == 0)) {
SOURCE(32004, 14)
         hintNode←v15940 = 0;
         };
      };
SOURCE(32020, 276)
   if ((hintNode←v15940 != 0)) {
      {
         word var←c54016;
SOURCE(32043, 148)
         {
            word tc443;
            word pd444;
            word pd446;
            pd444 = (* (( (ptr) (* (( (ptr) gf←c56832)+183)/* var←c49632 */  ))+6) );
            if (( (int)locHint←v9112.f1 <  (int)(word) ( *( (fPt) ((*  (ptr) pd444 ))))(hintNode←v15940, pd444))) {
               {
                  word pd445;
                  pd445 = (* (( (ptr) (* (( (ptr) gf←c56832)+183)/* var←c49632 */  ))+16) );
                  var←c54016 = (word) ( *( (fPt) ((*  (ptr) pd445 ))))(hintNode←v15940, locHint←v9112.f1, (* (( (ptr) &var←c56800)+4)/* propName←v9028 */  ), pd445)
                  ;
                  };
               pd446 = (* (( (ptr) &var←c56800)+6)/* checkPropProc←v9084 */  );
               tc443 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd446 ))))((* (( (ptr) &var←c56800)+5)/* propVal←v9056 */  ), var←c54016, pd446)
               );
               }
            else {
               tc443 =  (word) 0;
               };
            if (tc443) {
SOURCE(32175, 16)
               (*  (W2Pt) (( (ptr) &var←c56800)+7)/* foundLoc←v9168 */  ) = locHint←v9112;
               goto lab←L100136;
               };
            };
SOURCE(32193, 41)
         {
            word pd447;
            pd447 = (* (( (ptr) (* (( (ptr) gf←c56832)+191)/* var←c51712 */  ))+14) );
            nextNode←v15968 = (word) ( *( (fPt) ((*  (ptr) pd447 ))))(hintNode←v15940, pd447);
            };
SOURCE(32236, 26)
         (void) Search←P4992(hintNode←v15940, nextNode←v15968, (word) (( (bPt) &var←c56800)+36)/* var←c53984 */ );
SOURCE(32264, 32)
         if (((* (( (ptr) &var←c56800)+7) ) != 0)) {
SOURCE(32290, 6)
            goto lab←L100136;
            };
         };
      };
SOURCE(32301, 44)
   {
      word var←c54048;
      {
         word pd448;
         pd448 = (* (( (ptr) (* (( (ptr) gf←c56832)+182)/* var←c49472 */  ))+93) );
         var←c54048 = (word) ( *( (fPt) ((*  (ptr) pd448 ))))(viewer←v9000, pd448);
         };
      (void) Search←P4992(var←c54048, hintNode←v15940, (word) (( (bPt) &var←c56800)+36)/* var←c53984 */ );
      };
SOURCE(32347, 32)
   if (((* (( (ptr) &var←c56800)+7) ) != 0)) {
SOURCE(32373, 6)
      goto lab←L100136;
      };
SOURCE(32381, 21)
   (void) Search←P4992(nextNode←v15968, 0, (word) (( (bPt) &var←c56800)+36)/* var←c53984 */ );
   /* removed tail goto */ 
   lab←L100136: ;
   (*  (W2Pt) formal←c0466 ) = (*  (W2Pt) (( (ptr) &var←c56800)+7)/* foundLoc←v9168 */  );
   return;
   }

static void Search←P4992(startnode←v16044, endnode←v16072, formal←c56928)
   word startnode←v16044;
   word endnode←v16072;
   word formal←c56928;
   {
   W9 var←c56864;
   register ptr gf←c56896 =  (ptr) &globalframe;
   /* declaration of var←c54080 skipped */ 
   formal←c56928 = (formal←c56928 - 36);
   (*  (ptr) &var←c56864 ) = formal←c56928;
   /* Search: */ 
SOURCE(31350, 515)
   {
      word tmpAddr449;
      tmpAddr449 = (word) (( (ptr) &var←c56864)+4)/* var←c54080 */ ;
      (*  (ptr) tmpAddr449 ) = ( ((word)  (fPt) SearchCharProps←P5148) );
      (* (( (ptr) tmpAddr449) + 1) ) = 1;
      };
SOURCE(31402, 463)
   {
      /* declaration of n←v16100 skipped */ 
      (* (( (ptr) &var←c56864)+6)/* n←v16100 */  ) = startnode←v16044;
      lab←L100140: ;
      if (((* (( (ptr) &var←c56864)+6)/* n←v16100 */  ) != endnode←v16072)) {
         }
      else {
         goto lab←L100137;
         };
      {
         /* declaration of startChar←v16144 skipped */ 
         /* declaration of endChar←v16172 skipped */ 
SOURCE(31480, 18)
         (* (( (ptr) &var←c56864)+7)/* startChar←v16144 */  ) = 0;
SOURCE(31500, 31)
         {
            word pd450;
            pd450 = (* (( (ptr) (* (( (ptr) gf←c56896)+183)/* var←c49632 */  ))+6) );
            (* (( (ptr) &var←c56864)+8)/* endChar←v16172 */  ) = (word) ( *( (fPt) ((*  (ptr) pd450 ))))((* ((( (ptr) &var←c56864)+6)
               /* n←v16100 */ ) ), pd450);
            };
SOURCE(31786, 79)
         if ( ( ((* (( (ptr) (* (( (ptr) &var←c56864)+6)/* n←v16100 */  ))+6) ) == 0) ? (0 != (word) SearchCharProps←P5148((word) ((
               ( (bPt) &var←c56864)+16)/* var←c54080 */ ))) : 0 ) ) {
SOURCE(31840, 17)
            (* (( (ptr) formal←c56928)+7) ) = (* (( (ptr) &var←c56864)+6)/* n←v16100 */  );
SOURCE(31859, 6)
            return;
            };
         };
      {
         word pd451;
         pd451 = (* (( (ptr) (* (( (ptr) gf←c56896)+191)/* var←c51712 */  ))+14) );
         (* (( (ptr) &var←c56864)+6)/* n←v16100 */  ) = (word) ( *( (fPt) ((*  (ptr) pd451 ))))((* ((( (ptr) &var←c56864)+6)/* n←v16100 */ ) ), pd451)
         ;
         };
      goto lab←L100140;
      lab←L100137: ;
      };
   }

static word SearchCharProps←P5148(formal←c56992)
   word formal←c56992;
   {
   register ptr gf←c56960 =  (ptr) &globalframe;
   word found←v16276;
   formal←c56992 = (formal←c56992 - 16);
   /* SearchCharProps: */ 
SOURCE(31533, 31)
SOURCE(31533, 31)
   found←v16276 = 0;
SOURCE(31592, 179)
   {
      register word i←v16304;
      register word noName←c54112;
      i←v16304 = (* (( (ptr) formal←c56992)+7) );
      noName←c54112 = (* (( (ptr) formal←c56992)+8) );
      if (( (int)i←v16304 >=  (int)noName←c54112)) {
         goto lab←L100141;
         };
      lab←L100144: ;
      if ((0 == found←v16276)) {
         }
      else {
         goto lab←L100141;
         };
      {
         word charProp←v16348;
SOURCE(31642, 52)
         {
            word pd452;
            pd452 = (* (( (ptr) (* (( (ptr) gf←c56960)+183)/* var←c49632 */  ))+16) );
            charProp←v16348 = (word) ( *( (fPt) ((*  (ptr) pd452 ))))((* (( (ptr) formal←c56992)+6) ), i←v16304, (* (( (ptr) (*  (ptr) formal←c56992 ))+4)
                ), pd452);
            };
SOURCE(31696, 75)
         {
            word pd453;
            pd453 = (* (( (ptr) (*  (ptr) formal←c56992 ))+6) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd453 ))))((* (( (ptr) (*  (ptr) formal←c56992 ))+5) ), charProp←v16348, pd453))) {
SOURCE(31738, 18)
               (* (( (ptr) (*  (ptr) formal←c56992 ))+8) ) = i←v16304;
SOURCE(31759, 12)
               found←v16276 = 1;
               };
            };
         };
      i←v16304 = (i←v16304 + 1);
      if (( (int)i←v16304 <  (int)noName←c54112)) {
         goto lab←L100144;
         };
      lab←L100141: ;
      };
SOURCE(31533, 31)
   return(found←v16276);
   }

static void NoName←Q5712(formal←c0481, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0481;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0576 =  (ptr) &globalframe;
   if ((formal←c200013 == (* (( (ptr) (* (( (ptr) gf←c0576)+182)/* var←c49472 */  ))+119) ))) {
SOURCE(13421, 17)
      (*  (ptr) formal←c0481 ) = 2;
      (* (( (ptr) formal←c0481)+1) ) = 5;
      return;
      };
   (*  (ptr) formal←c0481 ) = 0;
   (* (( (ptr) formal←c0481)+1) ) = 0;
   return;
   }

static void NoName←Q5772(formal←c0486, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0486;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0577 =  (ptr) &globalframe;
   if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0577)+182)/* var←c49472 */  ))+119) ))) {
SOURCE(12755, 10)
      (*  (ptr) formal←c0486 ) = 2;
      (* (( (ptr) formal←c0486)+1) ) = 4;
      return;
      };
   (*  (ptr) formal←c0486 ) = 0;
   (* (( (ptr) formal←c0486)+1) ) = 0;
   return;
   }

static void NoName←Q5832(formal←c0491, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0491;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0578 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0578)+182)/* var←c49472 */  ))+119) ))) {
SOURCE(8281, 9)
      (*  (ptr) formal←c0491 ) = 2;
      (* (( (ptr) formal←c0491)+1) ) = 3;
      return;
      };
   (*  (ptr) formal←c0491 ) = 0;
   (* (( (ptr) formal←c0491)+1) ) = 0;
   return;
   }

static void NoName←Q5892(formal←c0496, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0496;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0579 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0579)+182)/* var←c49472 */  ))+119) ))) {
SOURCE(5154, 10)
      (*  (ptr) formal←c0496 ) = 2;
      (* (( (ptr) formal←c0496)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0496 ) = 0;
   (* (( (ptr) formal←c0496)+1) ) = 0;
   return;
   }

/* file: VoiceInTextImpl, module: VoiceInTextImpl, compiled at: October 19, 1993 1:40:43 pm PDT */ 
extern void XR←install←VoiceInTextImpl() {
   NoName←Q5412();
   }
extern void XR←run←VoiceInTextImpl() { XR←Start(&globalframe); }