/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: May 20, 1992 4:33:00 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: IOSimpleStreamsImpl, module: IOSimpleStreamsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [715216511,883790115] IOSimpleStreamsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W16 f; W3 r;} W19;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W6 *W6Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W7 *W7Pt;
typedef struct {word f0, f1;} W2;
typedef struct {W8 f; W2 r;} W10;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static void NoName←Q3612();
static void IOSimpleStreamsImpl←P0();
static void NoWherePutChar←P60();
static void NoWhereClose←P120();
static word NoInputGetChar←P180();
static void NoInputBackup←P240();
static word NoInputEndOf←P300();
static void NoInputClose←P360();
static word RIS←P420();
static word InputRopeStreamGetChar←P540();
static word InputRopeStreamGetBlock←P600();
static word InputRopeStreamUnsafeGetBlock←P660();
static word InputRopeStreamEndOf←P720();
static void InputRopeStreamBackup←P780();
static void InputRopeStreamReset←P840();
static word InputRopeStreamGetIndex←P900();
static void InputRopeStreamSetIndex←P960();
static word InputRopeStreamGetLength←P1020();
static void RopeStreamClose←P1080();
static word GetRope←P1140();
static word ROS←P1200();
static word ROSNormalize←P1260();
static void OutputRopeStreamPutChar←P1320();
static void OutputRopeStreamEraseChar←P1380();
static void OutputRopeStreamReset←P1440();
static word OutputRopeStreamGetIndex←P1500();
static word RopeFromROS←P1560();
static void PutRope←P1620();
static word TIS←P1680();
static word InputTextStreamGetChar←P1740();
static word InputTextStreamEndOf←P1800();
static void InputTextStreamReset←P1860();
static void InputTextStreamBackup←P1920();
static word InputTextStreamGetIndex←P1980();
static void InputTextStreamSetIndex←P2040();
static word InputTextStreamGetLength←P2100();
static word TOS←P2160();
static word TextFromTOS←P2220();
static word AppendOutput←P2280();
static void OutputTextStreamPutChar←P2340();
static void OutputTextStreamEraseChar←P2400();
static void OutputTextStreamReset←P2460();
static word OutputTextStreamGetIndex←P2520();
static word OutputTextStreamGetLength←P2580();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[44];} string3 = {2752556, "\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\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string5 = {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];} string6 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\112\064\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\037\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\052\241\126\177\300\064\255\221\043\100\340\000\000"};
static struct {unsigned f; char r[8];} string9 = {262152, "TEXT\000\000\000"};
static struct {unsigned f; char r[8];} string10 = {262152, "ROPE\000\000\000"};
static struct {unsigned f; char r[8];} string11 = {262152, "Null\000\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\052\241\126\177\300\064\255\221\043\100\164\000\000"};
static struct {unsigned f; char r[20];} string13 = {1179666, "\006\007\020\001\024\001\030\001\034\001\044\001\050\001\100\134\004\007\000"};
static unsigned string14 = 1229914112;
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\165\000\243\166\300\177\026\106\323\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {
   word f0[26]; word f26; word f27; word f28; 
   word f29; word f30; word f31; word f32; 
   word f33; word f34; word f35; word f36; 
   word f37; word f38; word f39; word f40; 
   word f41; word f42; word f43; word f44; 
   word f45; word f46; word f47; word f48; 
   word f49; word f50; word f51; word f52; 
   word f53; word f54; word f55; word f56; 
   word f57; word f58; word f59; word f60; 
   word f61; word f62; word f63; word f64; 
   word f65; word f66; word f67; word f68; 
   word f69; word f70; word f71; word f72; 
   word f73; word f74; word f75; word f76; 
   word f77; word f78; word f79; word f80; 
   word f81; word f82; word f83; word f84; 
   word f85; word f86; word f87; word f88; 
   word f89; word f90; word f91; word f92; 
   word f93; word f94; word f95; word f96; 
   word f97; word f98; word f99; word f100; 
   word f101; word f102; word f103; word f104; 
   word f105; word f106; word f107; word f108; 
   word f109; word f110; word f111[6]; 
   } globalframe = {
   {0}, (word) OutputTextStreamGetLength←P2580, 0, (word) OutputTextStreamGetIndex←P2520, 
   0, (word) OutputTextStreamReset←P2460, 0, (word) OutputTextStreamEraseChar←P2400, 
   0, (word) OutputTextStreamPutChar←P2340, 0, (word) AppendOutput←P2280, 
   0, (word) TextFromTOS←P2220, 0, (word) TOS←P2160, 
   0, (word) InputTextStreamGetLength←P2100, 0, (word) InputTextStreamSetIndex←P2040, 
   0, (word) InputTextStreamGetIndex←P1980, 0, (word) InputTextStreamBackup←P1920, 
   0, (word) InputTextStreamReset←P1860, 0, (word) InputTextStreamEndOf←P1800, 
   0, (word) InputTextStreamGetChar←P1740, 0, (word) TIS←P1680, 
   0, (word) PutRope←P1620, 0, (word) RopeFromROS←P1560, 
   0, (word) OutputRopeStreamGetIndex←P1500, 0, (word) OutputRopeStreamReset←P1440, 
   0, (word) OutputRopeStreamEraseChar←P1380, 0, (word) OutputRopeStreamPutChar←P1320, 
   0, (word) ROSNormalize←P1260, 0, (word) ROS←P1200, 
   0, (word) GetRope←P1140, 0, (word) RopeStreamClose←P1080, 
   0, (word) InputRopeStreamGetLength←P1020, 0, (word) InputRopeStreamSetIndex←P960, 
   0, (word) InputRopeStreamGetIndex←P900, 0, (word) InputRopeStreamReset←P840, 
   0, (word) InputRopeStreamBackup←P780, 0, (word) InputRopeStreamEndOf←P720, 
   0, (word) InputRopeStreamUnsafeGetBlock←P660, 0, (word) InputRopeStreamGetBlock←P600, 
   0, (word) InputRopeStreamGetChar←P540, 0, (word) RIS←P420, 
   0, (word) NoInputClose←P360, 0, (word) NoInputEndOf←P300, 
   0, (word) NoInputBackup←P240, 0, (word) NoInputGetChar←P180, 
   0, (word) NoWhereClose←P120, 0, (word) NoWherePutChar←P60, 
   0, (word) IOSimpleStreamsImpl←P0, {0}
   };

static void NoName←Q3612()
   {
   register ptr gf←c0255 =  (ptr) &globalframe;
   word var←c25736;
   (* (( (ptr) gf←c0255)+11) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0255)+12) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0255)+15) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0255)+17) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0255)+22) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c0255)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0255)+11) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c0255)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0255)+11) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c0255)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0255)+11) ), (word) &string11);
   (void) XR←DeclareGlobalFrame((word) "IOSimpleStreamsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13)
      , (word) (( (bPt) gf←c0255)+440)/* var←c24232 */ );
   var←c25736 = (word) XR←ImportInterface((word) &string14, (word) XR←GetTypeIndexS((word) (&string15)), 103);
   (* (( (ptr) gf←c0255)+112)/* var←c24296 */  ) = var←c25736;
   (void) XR←ImportProcS(var←c25736, 1053698);
   (void) XR←ImportProcS(var←c25736, 1053444);
   (void) XR←ImportProcS(var←c25736, 68159748);
   (void) XR←ImportProcS(var←c25736, 67373825);
   (void) XR←ImportProcS(var←c25736, 72115219);
   (void) XR←ImportProcS(var←c25736, 67921155);
   var←c25736 = (word) XR←ImportInterface((word) "IOUtils", (word) XR←GetTypeIndexS((word) (&string16)), 27);
   (* (( (ptr) gf←c0255)+115)/* var←c24776 */  ) = var←c25736;
   var←c25736 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string17)), 26);
   (* (( (ptr) gf←c0255)+114)/* var←c24488 */  ) = var←c25736;
   (void) XR←ImportProcS(var←c25736, 67634946);
   (void) XR←ImportProcS(var←c25736, 67371009);
   (void) XR←ImportProcS(var←c25736, 262913);
   (void) XR←ImportProcS(var←c25736, 67371521);
   var←c25736 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string18)), 43);
   (* (( (ptr) gf←c0255)+113)/* var←c24360 */  ) = var←c25736;
   (void) XR←ImportProcS(var←c25736, 67633666);
   (void) XR←ImportProcS(var←c25736, 67903235);
   (void) XR←ImportProcS(var←c25736, 67898627);
   (void) XR←ImportProcS(var←c25736, 67634434);
   (void) XR←ImportProcS(var←c25736, 68429059);
   (void) XR←ImportProcS(var←c25736, 68166660);
   (void) XR←ImportProcS(var←c25736, 67373825);
   var←c25736 = (word) XR←ExportInterface((word) &string14, (word) XR←GetTypeIndexS((word) (&string15)), 103);
   (* (( (ptr) gf←c0255)+116)/* var←c25768 */  ) = var←c25736;
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+384)/* var←c24008 */ , 67640578);
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+288)/* var←c23624 */ , 67378689);
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+240)/* var←c23432 */ , 67641090);
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+224)/* var←c23368 */ , 67641346);
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+160)/* var←c23112 */ , 67641602);
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+152)/* var←c23080 */ , 67379713);
   (void) XR←ExportVar(var←c25736, 35, (word) (( (bPt) gf←c0255)+16)/* noWhereStream←v2720 */ );
   (void) XR←ExportVar(var←c25736, 36, (word) (( (bPt) gf←c0255)+20)/* noInputStream←v2804 */ );
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+296)/* var←c23656 */ , 67917827);
   (void) XR←ExportProcS(var←c25736, (word) (( (bPt) gf←c0255)+232)/* var←c23400 */ , 1071364);
   }

static void IOSimpleStreamsImpl←P0(formal←c068, formal←c059)
   word formal←c068;
   word formal←c059;
   {
   register ptr gf←c25800 =  (ptr) &globalframe;
   /* IOSimpleStreamsImpl: */ 
SOURCE(170, 13118)
SOURCE(347, 152)
   {
      word var←c24264;
      {
         W19 var←c061;
         (*  (ptr) (word) &var←c061 ) = 1;
         (* (( (ptr) (word) &var←c061) + 1) ) = (* (( (ptr) gf←c25800)+25) );
         (* (( (ptr) (word) &var←c061) + 2) ) = 0;
         (* (( (ptr) (word) &var←c061) + 3) ) = 0;
         (* (( (ptr) (word) &var←c061) + 4) ) = 0;
         (* (( (ptr) (word) &var←c061) + 5) ) = 0;
         (* (( (ptr) (word) &var←c061) + 6) ) = 0;
         (* (( (ptr) (word) &var←c061) + 7) ) = 0;
         (* (( (ptr) (word) &var←c061) + 8) ) = (word) (( (bPt) gf←c25800)+432)/* var←c24200 */ ;
         (* (( (ptr) (word) &var←c061) + 9) ) = 0;
         (* (( (ptr) (word) &var←c061) + 10) ) = 0;
         (* (( (ptr) (word) &var←c061) + 11) ) = 0;
         (* (( (ptr) (word) &var←c061) + 12) ) = 0;
         (* (( (ptr) (word) &var←c061) + 13) ) = (word) (( (bPt) gf←c25800)+424)/* var←c24168 */ ;
         (* (( (ptr) (word) &var←c061) + 14) ) = 0;
         (* (( (ptr) (word) &var←c061) + 15) ) = 0;
         (* (( (ptr) (word) &var←c061) + 16) ) = 0;
         (* (( (ptr) (word) &var←c061) + 17) ) = 0;
         (* (( (ptr) (word) &var←c061) + 18) ) = 0;
         {
            word pd19;
            pd19 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+104) );
            var←c24264 = (word) ( *( (fPt) ((*  (ptr) pd19 ))))((word) (&var←c061), pd19);
            };
         };
      {
         word pd20;
         pd20 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+105) );
         (* (( (ptr) gf←c25800)+4)/* noWhereStream←v2720 */  ) = (word) ( *( (fPt) ((*  (ptr) pd20 ))))(var←c24264, 0, 0, pd20);
         };
      };
SOURCE(609, 221)
   {
      word var←c24328;
      {
         W19 var←c063;
         (*  (ptr) (word) &var←c063 ) = 0;
         (* (( (ptr) (word) &var←c063) + 1) ) = (* (( (ptr) gf←c25800)+25) );
         (* (( (ptr) (word) &var←c063) + 2) ) = (word) (( (bPt) gf←c25800)+416)/* var←c24136 */ ;
         (* (( (ptr) (word) &var←c063) + 3) ) = 0;
         (* (( (ptr) (word) &var←c063) + 4) ) = 0;
         (* (( (ptr) (word) &var←c063) + 5) ) = (word) (( (bPt) gf←c25800)+400)/* var←c24072 */ ;
         (* (( (ptr) (word) &var←c063) + 6) ) = 0;
         (* (( (ptr) (word) &var←c063) + 7) ) = (word) (( (bPt) gf←c25800)+408)/* var←c24104 */ ;
         (* (( (ptr) (word) &var←c063) + 8) ) = 0;
         (* (( (ptr) (word) &var←c063) + 9) ) = 0;
         (* (( (ptr) (word) &var←c063) + 10) ) = 0;
         (* (( (ptr) (word) &var←c063) + 11) ) = 0;
         (* (( (ptr) (word) &var←c063) + 12) ) = 0;
         (* (( (ptr) (word) &var←c063) + 13) ) = (word) (( (bPt) gf←c25800)+392)/* var←c24040 */ ;
         (* (( (ptr) (word) &var←c063) + 14) ) = 0;
         (* (( (ptr) (word) &var←c063) + 15) ) = 0;
         (* (( (ptr) (word) &var←c063) + 16) ) = 0;
         (* (( (ptr) (word) &var←c063) + 17) ) = 0;
         (* (( (ptr) (word) &var←c063) + 18) ) = 0;
         {
            word pd21;
            pd21 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+104) );
            var←c24328 = (word) ( *( (fPt) ((*  (ptr) pd21 ))))((word) (&var←c063), pd21);
            };
         };
      {
         word pd22;
         pd22 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+105) );
         (* (( (ptr) gf←c25800)+5)/* noInputStream←v2804 */  ) = (word) ( *( (fPt) ((*  (ptr) pd22 ))))(var←c24328, 0, 0, pd22);
         };
      };
SOURCE(1329, 428)
   {
      W19 var←c064;
      (*  (ptr) (word) &var←c064 ) = 0;
      (* (( (ptr) (word) &var←c064) + 1) ) = (* (( (ptr) gf←c25800)+24) );
      (* (( (ptr) (word) &var←c064) + 2) ) = (word) (( (bPt) gf←c25800)+376)/* var←c23976 */ ;
      (* (( (ptr) (word) &var←c064) + 3) ) = (word) (( (bPt) gf←c25800)+368)/* var←c23944 */ ;
      (* (( (ptr) (word) &var←c064) + 4) ) = (word) (( (bPt) gf←c25800)+360)/* var←c23912 */ ;
      (* (( (ptr) (word) &var←c064) + 5) ) = (word) (( (bPt) gf←c25800)+352)/* var←c23880 */ ;
      (* (( (ptr) (word) &var←c064) + 6) ) = 0;
      (* (( (ptr) (word) &var←c064) + 7) ) = (word) (( (bPt) gf←c25800)+344)/* var←c23848 */ ;
      (* (( (ptr) (word) &var←c064) + 8) ) = 0;
      (* (( (ptr) (word) &var←c064) + 9) ) = 0;
      (* (( (ptr) (word) &var←c064) + 10) ) = 0;
      (* (( (ptr) (word) &var←c064) + 11) ) = 0;
      (* (( (ptr) (word) &var←c064) + 12) ) = (word) (( (bPt) gf←c25800)+336)/* var←c23816 */ ;
      (* (( (ptr) (word) &var←c064) + 13) ) = (word) (( (bPt) gf←c25800)+304)/* var←c23688 */ ;
      (* (( (ptr) (word) &var←c064) + 14) ) = (word) (( (bPt) gf←c25800)+328)/* var←c23784 */ ;
      (* (( (ptr) (word) &var←c064) + 15) ) = (word) (( (bPt) gf←c25800)+320)/* var←c23752 */ ;
      (* (( (ptr) (word) &var←c064) + 16) ) = (word) (( (bPt) gf←c25800)+312)/* var←c23720 */ ;
      (* (( (ptr) (word) &var←c064) + 17) ) = 0;
      (* (( (ptr) (word) &var←c064) + 18) ) = 0;
      {
         word pd23;
         pd23 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+104) );
         (* (( (ptr) gf←c25800)+6)/* InputRopeStreamProcs←v3000 */  ) = (word) ( *( (fPt) ((*  (ptr) pd23 ))))((word) (&var←c064), pd23)
         ;
         };
      };
SOURCE(6505, 316)
   {
      W19 var←c065;
      (*  (ptr) (word) &var←c065 ) = 1;
      (* (( (ptr) (word) &var←c065) + 1) ) = (* (( (ptr) gf←c25800)+24) );
      (* (( (ptr) (word) &var←c065) + 2) ) = 0;
      (* (( (ptr) (word) &var←c065) + 3) ) = 0;
      (* (( (ptr) (word) &var←c065) + 4) ) = 0;
      (* (( (ptr) (word) &var←c065) + 5) ) = 0;
      (* (( (ptr) (word) &var←c065) + 6) ) = 0;
      (* (( (ptr) (word) &var←c065) + 7) ) = 0;
      (* (( (ptr) (word) &var←c065) + 8) ) = (word) (( (bPt) gf←c25800)+272)/* var←c23560 */ ;
      (* (( (ptr) (word) &var←c065) + 9) ) = 0;
      (* (( (ptr) (word) &var←c065) + 10) ) = 0;
      (* (( (ptr) (word) &var←c065) + 11) ) = 0;
      (* (( (ptr) (word) &var←c065) + 12) ) = (word) (( (bPt) gf←c25800)+256)/* var←c23496 */ ;
      (* (( (ptr) (word) &var←c065) + 13) ) = (word) (( (bPt) gf←c25800)+304)/* var←c23688 */ ;
      (* (( (ptr) (word) &var←c065) + 14) ) = (word) (( (bPt) gf←c25800)+248)/* var←c23464 */ ;
      (* (( (ptr) (word) &var←c065) + 15) ) = 0;
      (* (( (ptr) (word) &var←c065) + 16) ) = (word) (( (bPt) gf←c25800)+248)/* var←c23464 */ ;
      (* (( (ptr) (word) &var←c065) + 17) ) = 0;
      (* (( (ptr) (word) &var←c065) + 18) ) = (word) (( (bPt) gf←c25800)+264)/* var←c23528 */ ;
      {
         word pd24;
         pd24 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+104) );
         (* (( (ptr) gf←c25800)+7)/* OutputRopeStreamProcs←v3392 */  ) = (word) ( *( (fPt) ((*  (ptr) pd24 ))))((word) (&var←c065), pd24)
         ;
         };
      };
SOURCE(9614, 322)
   {
      W19 var←c066;
      (*  (ptr) (word) &var←c066 ) = 0;
      (* (( (ptr) (word) &var←c066) + 1) ) = (* (( (ptr) gf←c25800)+23) );
      (* (( (ptr) (word) &var←c066) + 2) ) = (word) (( (bPt) gf←c25800)+216)/* var←c23336 */ ;
      (* (( (ptr) (word) &var←c066) + 3) ) = 0;
      (* (( (ptr) (word) &var←c066) + 4) ) = 0;
      (* (( (ptr) (word) &var←c066) + 5) ) = (word) (( (bPt) gf←c25800)+208)/* var←c23304 */ ;
      (* (( (ptr) (word) &var←c066) + 6) ) = 0;
      (* (( (ptr) (word) &var←c066) + 7) ) = (word) (( (bPt) gf←c25800)+192)/* var←c23240 */ ;
      (* (( (ptr) (word) &var←c066) + 8) ) = 0;
      (* (( (ptr) (word) &var←c066) + 9) ) = 0;
      (* (( (ptr) (word) &var←c066) + 10) ) = 0;
      (* (( (ptr) (word) &var←c066) + 11) ) = 0;
      (* (( (ptr) (word) &var←c066) + 12) ) = (word) (( (bPt) gf←c25800)+200)/* var←c23272 */ ;
      (* (( (ptr) (word) &var←c066) + 13) ) = 0;
      (* (( (ptr) (word) &var←c066) + 14) ) = (word) (( (bPt) gf←c25800)+184)/* var←c23208 */ ;
      (* (( (ptr) (word) &var←c066) + 15) ) = (word) (( (bPt) gf←c25800)+176)/* var←c23176 */ ;
      (* (( (ptr) (word) &var←c066) + 16) ) = (word) (( (bPt) gf←c25800)+168)/* var←c23144 */ ;
      (* (( (ptr) (word) &var←c066) + 17) ) = 0;
      (* (( (ptr) (word) &var←c066) + 18) ) = 0;
      {
         word pd25;
         pd25 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+104) );
         (* (( (ptr) gf←c25800)+9)/* InputTextStreamProcs←v3672 */  ) = (word) ( *( (fPt) ((*  (ptr) pd25 ))))((word) (&var←c066), pd25)
         ;
         };
      };
SOURCE(11314, 271)
   {
      W19 var←c067;
      (*  (ptr) (word) &var←c067 ) = 1;
      (* (( (ptr) (word) &var←c067) + 1) ) = (* (( (ptr) gf←c25800)+23) );
      (* (( (ptr) (word) &var←c067) + 2) ) = 0;
      (* (( (ptr) (word) &var←c067) + 3) ) = 0;
      (* (( (ptr) (word) &var←c067) + 4) ) = 0;
      (* (( (ptr) (word) &var←c067) + 5) ) = 0;
      (* (( (ptr) (word) &var←c067) + 6) ) = 0;
      (* (( (ptr) (word) &var←c067) + 7) ) = 0;
      (* (( (ptr) (word) &var←c067) + 8) ) = (word) (( (bPt) gf←c25800)+136)/* var←c23016 */ ;
      (* (( (ptr) (word) &var←c067) + 9) ) = 0;
      (* (( (ptr) (word) &var←c067) + 10) ) = 0;
      (* (( (ptr) (word) &var←c067) + 11) ) = 0;
      (* (( (ptr) (word) &var←c067) + 12) ) = (word) (( (bPt) gf←c25800)+120)/* var←c22952 */ ;
      (* (( (ptr) (word) &var←c067) + 13) ) = 0;
      (* (( (ptr) (word) &var←c067) + 14) ) = (word) (( (bPt) gf←c25800)+112)/* var←c22920 */ ;
      (* (( (ptr) (word) &var←c067) + 15) ) = 0;
      (* (( (ptr) (word) &var←c067) + 16) ) = (word) (( (bPt) gf←c25800)+104)/* var←c22888 */ ;
      (* (( (ptr) (word) &var←c067) + 17) ) = 0;
      (* (( (ptr) (word) &var←c067) + 18) ) = (word) (( (bPt) gf←c25800)+128)/* var←c22984 */ ;
      {
         word pd26;
         pd26 = (* (( (ptr) (* (( (ptr) gf←c25800)+112)/* var←c24296 */  ))+104) );
         (* (( (ptr) gf←c25800)+10)/* OutputTextStreamProcs←v3924 */  ) = (word) ( *( (fPt) ((*  (ptr) pd26 ))))((word) (&var←c067), pd26)
         ;
         };
      };
   }

static void NoWherePutChar←P60(self←v4228, char←v4256)
   word self←v4228;
   word char←v4256;
   {
   /* NoWherePutChar: */ 
   }

static void NoWhereClose←P120(self←v4316, abort←v4344)
   word self←v4316;
   word abort←v4344;
   {
   /* NoWhereClose: */ 
   }

static word NoInputGetChar←P180(self←v4404)
   word self←v4404;
   {
   register ptr gf←c25832 =  (ptr) &globalframe;
   word var←c4448;
   /* NoInputGetChar: */ 
SOURCE(832, 82)
SOURCE(887, 27)
   {
      word var←c075;
      var←c075 = self←v4404;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c25832)+112)/* var←c24296 */  ))+4) ), (word) &var←c075);
      };
   }

static void NoInputBackup←P240(self←v4508, char←v4536)
   word self←v4508;
   word char←v4536;
   {
   register ptr gf←c25864 =  (ptr) &globalframe;
   /* NoInputBackup: */ 
SOURCE(917, 88)
SOURCE(968, 37)
   {
      W4 var←c078;
      (*  (ptr) (word) &var←c078 ) = 4;
      (* (( (ptr) (word) &var←c078) + 1) ) = self←v4508;
      (* (( (ptr) (word) &var←c078) + 2) ) = 0;
      (* (( (ptr) (word) &var←c078) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c25864)+112)/* var←c24296 */  ))+5) ), (word) &var←c078);
      };
   }

static word NoInputEndOf←P300(self←v4596)
   word self←v4596;
   {
   word var←c4640;
   /* NoInputEndOf: */ 
SOURCE(1008, 66)
SOURCE(1061, 13)
   return(1);
   }

static void NoInputClose←P360(self←v4700, abort←v4728)
   word self←v4700;
   word abort←v4728;
   {
   /* NoInputClose: */ 
   }

static word RIS←P420(rope←v4912, oldStream←v4940)
   word rope←v4912;
   word oldStream←v4940;
   {
   register ptr gf←c25896 =  (ptr) &globalframe;
   word var←c4984;
   word size←v8924;
   word self←v8952;
   word data←v8980;
   word bufSize←v9064;
   word buffer←v9092;
   /* RIS: */ 
SOURCE(1760, 704)
SOURCE(1830, 27)
   {
      word pd27;
      pd27 = (* (( (ptr) (* (( (ptr) gf←c25896)+113)/* var←c24360 */  ))+15) );
      size←v8924 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))(rope←v4912, pd27);
      };
SOURCE(1859, 72)
   self←v8952 =  ( (oldStream←v4940 != 0) ? oldStream←v4940 : XR←NewObject(32, (* (( (ptr) gf←c25896)+17) )) ) ;
SOURCE(1933, 61)
   {
      word var←c24424;
      var←c24424 = (* (( (ptr) self←v8952)+1) );
      if ((var←c24424 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c25896)+22) ) == XR←GetReferentType(var←c24424))) {
         data←v8980 = var←c24424;
         }
      else {
         lab←L100000: ;
         data←v8980 = XR←NewObject(12, (* (( (ptr) gf←c25896)+22) ));
         };
      };
SOURCE(2125, 72)
   bufSize←v9064 =  ( ( (int)size←v8924 <=  (int)128) ? 128 : 2048 ) ;
SOURCE(2199, 126)
   {
      word tc28;
      word tc29;
      word pd30;
      if (((* (( (ptr) self←v8952)+4) ) != 0)) {
         tc29 =  (word) ((* (( (hPt) (* (( (ptr) self←v8952)+4) ))+1) ) >= bufSize←v9064);
         }
      else {
         tc29 =  (word) 0;
         };
      if (tc29) {
         tc28 =  (word) (* (( (ptr) self←v8952)+4) );
         }
      else {
         pd30 = (* (( (ptr) (* (( (ptr) gf←c25896)+114)/* var←c24488 */  ))+6) );
         tc28 =  (word) ( *( (fPt) ((*  (ptr) pd30 ))))(BCK(bufSize←v9064, 32768), pd30);
         };
      buffer←v9092 = tc28;
      };
SOURCE(2327, 44)
   (*  (ptr) data←v8980 ) = rope←v4912;
   (* (( (ptr) data←v8980)+1) ) = size←v8924;
   (* (( (ptr) data←v8980)+2) ) = 0;
SOURCE(2373, 77)
   XR←FillWords(&(* (W6Pt) ((( (ptr) self←v8952)+2))), 6, 0);
   (*  (ptr) self←v8952 ) = (* (( (ptr) gf←c25896)+6)/* InputRopeStreamProcs←v3000 */  );
   (* (( (ptr) self←v8952)+1) ) = data←v8980;
   (* (( (ptr) self←v8952)+4) ) = buffer←v9092;
SOURCE(2452, 12)
   return(self←v8952);
   }

static word InputRopeStreamGetChar←P540(self←v5148)
   word self←v5148;
   {
   register ptr gf←c25928 =  (ptr) &globalframe;
   word char←v5192;
   word i←v9220;
   /* InputRopeStreamGetChar: */ 
SOURCE(2705, 455)
SOURCE(2774, 25)
   i←v9220 = (* (( (ptr) self←v5148)+7) );
SOURCE(2801, 359)
   if ((i←v9220 < (* (( (ptr) self←v5148)+5) ))) {
SOURCE(2838, 22)
      (* (( (ptr) self←v5148)+7) ) = (i←v9220 + 1);
SOURCE(2862, 23)
      {
         word var←c0285;
         {
            word var←c24520;
            var←c24520 = (* (( (ptr) self←v5148)+4) );
            {
               word limit31;
               var←c0285 = (word) (* ((( (bPt) var←c24520)+4)+(
                     limit31 = (word) (* (( (hPt) var←c24520)+1) ),
                     BCK(i←v9220, limit31)
                     )) );
               };
            };
         return(var←c0285);
         };
      }
   else {
SOURCE(2892, 270)
      {
         word data←v9264;
SOURCE(2894, 46)
         {
            word self←v22840;
            self←v22840 = self←v5148;
            {
               word data←v9192;
               data←v9192 = XR←Narrow((* (( (ptr) self←v22840)+1) ), (* (( (ptr) gf←c25928)+22) ));
SOURCE(2598, 40)
               (* (( (ptr) data←v9192)+2) ) = ((* (( (ptr) data←v9192)+2) ) + (* (( (ptr) self←v22840)+7) ));
SOURCE(2640, 45)
               (* (( (ptr) self←v22840)+5) ) = 0;
               (* (( (ptr) self←v22840)+7) ) = 0;
SOURCE(2687, 12)
               data←v9264 = data←v9192;
               };
            };
SOURCE(2942, 22)
         (*  (hPt) (* (( (ptr) self←v5148)+4) ) ) = 0;
SOURCE(2966, 77)
         {
            word var←c24584;
            {
               word pd32;
               pd32 = (* (( (ptr) (* (( (ptr) gf←c25928)+113)/* var←c24360 */  ))+40) );
               var←c24584 = (word) ( *( (fPt) ((*  (ptr) pd32 ))))((* (( (ptr) self←v5148)+4) ), (*  (ptr) data←v9264 ), (* (( (ptr) data←v9264)+2)
                   ), 2147483647, pd32);
               };
            (* (( (ptr) self←v5148)+5) ) = var←c24584;
            };
SOURCE(3045, 115)
         if (((* (( (ptr) self←v5148)+5) ) > 0)) {
SOURCE(3082, 20)
            (* (( (ptr) self←v5148)+7) ) = 1;
SOURCE(3104, 23)
            {
               word var←c0286;
               {
                  word var←c24616;
                  var←c24616 = (* (( (ptr) self←v5148)+4) );
                  {
                     word limit33;
                     var←c0286 = (word) (* ((( (bPt) var←c24616)+4)+(
                           limit33 = (word) (* (( (hPt) var←c24616)+1) ),
                           BCK(0, limit33)
                           )) );
                     };
                  };
               return(var←c0286);
               };
            }
         else {
SOURCE(3134, 26)
            {
               word var←c0102;
               var←c0102 = self←v5148;
               (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c25928)+112)/* var←c24296 */  ))+4) ), (word) &var←c0102);
               };
            };
         };
      };
   }

static word InputRopeStreamGetBlock←P600(self←v5252, block←v5280, startIndex←v5308, count←v5336)
   word self←v5252;
   word block←v5280;
   word startIndex←v5308;
   word count←v5336;
   {
   register ptr gf←c25960 =  (ptr) &globalframe;
   word nBytesRead←v5392;
   word data←v9308;
   word index←v9336;
   /* InputRopeStreamGetBlock: */ 
SOURCE(3169, 339)
SOURCE(3290, 46)
   {
      word self←v22764;
      self←v22764 = self←v5252;
      {
         word data←v22796;
         data←v22796 = XR←Narrow((* (( (ptr) self←v22764)+1) ), (* (( (ptr) gf←c25960)+22) ));
SOURCE(2598, 40)
         (* (( (ptr) data←v22796)+2) ) = ((* (( (ptr) data←v22796)+2) ) + (* (( (ptr) self←v22764)+7) ));
SOURCE(2640, 45)
         (* (( (ptr) self←v22764)+5) ) = 0;
         (* (( (ptr) self←v22764)+7) ) = 0;
SOURCE(2687, 12)
         data←v9308 = data←v22796;
         };
      };
SOURCE(3338, 23)
   index←v9336 = (* (( (ptr) data←v9308)+2) );
SOURCE(3363, 25)
   (*  (hPt) block←v5280 ) = BCK(startIndex←v5308, 32768);
SOURCE(3390, 87)
   {
      word pd34;
      pd34 = (* (( (ptr) (* (( (ptr) gf←c25960)+113)/* var←c24360 */  ))+40) );
      nBytesRead←v5392 = (word) ( *( (fPt) ((*  (ptr) pd34 ))))(block←v5280, (*  (ptr) data←v9308 ), index←v9336, count←v5336, pd34)
      ;
      };
SOURCE(3479, 29)
   (* (( (ptr) data←v9308)+2) ) = (index←v9336 + nBytesRead←v5392);
SOURCE(3169, 339)
   return(nBytesRead←v5392);
   }

static word InputRopeStreamUnsafeGetBlock←P660(self←v5452, block←v5480)
   word self←v5452;
   W3 block←v5480;
   {
   register ptr gf←c25992 =  (ptr) &globalframe;
   word nBytesRead←v5524;
   word data←v9380;
   word index←v9408;
   /* InputRopeStreamUnsafeGetBlock: */ 
SOURCE(3514, 309)
SOURCE(3629, 46)
   {
      word self←v22688;
      self←v22688 = self←v5452;
      {
         word data←v22720;
         data←v22720 = XR←Narrow((* (( (ptr) self←v22688)+1) ), (* (( (ptr) gf←c25992)+22) ));
SOURCE(2598, 40)
         (* (( (ptr) data←v22720)+2) ) = ((* (( (ptr) data←v22720)+2) ) + (* (( (ptr) self←v22688)+7) ));
SOURCE(2640, 45)
         (* (( (ptr) self←v22688)+5) ) = 0;
         (* (( (ptr) self←v22688)+7) ) = 0;
SOURCE(2687, 12)
         data←v9380 = data←v22720;
         };
      };
SOURCE(3677, 23)
   index←v9408 = (* (( (ptr) data←v9380)+2) );
SOURCE(3710, 81)
SOURCE(3712, 79)
   {
      word pd35;
      pd35 = (* (( (ptr) (* (( (ptr) gf←c25992)+113)/* var←c24360 */  ))+41) );
      nBytesRead←v5524 = (word) ( *( (fPt) ((*  (ptr) pd35 ))))(block←v5480, (*  (ptr) data←v9380 ), index←v9408, pd35);
      };
SOURCE(3794, 29)
   (* (( (ptr) data←v9380)+2) ) = (index←v9408 + nBytesRead←v5524);
SOURCE(3514, 309)
   return(nBytesRead←v5524);
   }

static word InputRopeStreamEndOf←P720(self←v5584)
   word self←v5584;
   {
   register ptr gf←c26024 =  (ptr) &globalframe;
   word var←c5628;
   word data←v9452;
   /* InputRopeStreamEndOf: */ 
SOURCE(3829, 166)
SOURCE(3890, 51)
   data←v9452 = XR←Narrow((* (( (ptr) self←v5584)+1) ), (* (( (ptr) gf←c26024)+22) ));
SOURCE(3943, 52)
   return(( (int)((* (( (ptr) data←v9452)+2) ) + (* (( (ptr) self←v5584)+7) )) >=  (int)(* (( (ptr) data←v9452)+1) )));
   }

static void InputRopeStreamBackup←P780(self←v5688, char←v5716)
   word self←v5688;
   word char←v5716;
   {
   register ptr gf←c26056 =  (ptr) &globalframe;
   word data←v9496;
   /* InputRopeStreamBackup: */ 
SOURCE(4001, 240)
SOURCE(4060, 46)
   {
      word self←v22612;
      self←v22612 = self←v5688;
      {
         word data←v22644;
         data←v22644 = XR←Narrow((* (( (ptr) self←v22612)+1) ), (* (( (ptr) gf←c26056)+22) ));
SOURCE(2598, 40)
         (* (( (ptr) data←v22644)+2) ) = ((* (( (ptr) data←v22644)+2) ) + (* (( (ptr) self←v22612)+7) ));
SOURCE(2640, 45)
         (* (( (ptr) self←v22612)+5) ) = 0;
         (* (( (ptr) self←v22612)+7) ) = 0;
SOURCE(2687, 12)
         data←v9496 = data←v22644;
         };
      };
SOURCE(4108, 133)
   {
      word tc36;
      word pd37;
      if (( (int)(* (( (ptr) data←v9496)+2) ) >  (int)0)) {
         pd37 = (* (( (ptr) (* (( (ptr) gf←c26056)+113)/* var←c24360 */  ))+9) );
         tc36 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd37 ))))((*  (ptr) data←v9496 ), ((* (( (ptr) data←v9496)+2) ) - 1), pd37) == char←v5716);
         }
      else {
         tc36 =  (word) 0;
         };
      if (tc36) {
SOURCE(4174, 31)
         (* (( (ptr) data←v9496)+2) ) = ((* (( (ptr) data←v9496)+2) ) - 1);
         }
      else {
SOURCE(4205, 36)
         {
            W4 var←c0127;
            (*  (ptr) (word) &var←c0127 ) = 4;
            (* (( (ptr) (word) &var←c0127) + 1) ) = self←v5688;
            (* (( (ptr) (word) &var←c0127) + 2) ) = 0;
            (* (( (ptr) (word) &var←c0127) + 3) ) = 0;
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26056)+112)/* var←c24296 */  ))+5) ), (word) &var←c0127);
            };
         };
      };
   }

static void InputRopeStreamReset←P840(self←v5776)
   word self←v5776;
   {
   register ptr gf←c26088 =  (ptr) &globalframe;
   word data←v9540;
   /* InputRopeStreamReset: */ 
SOURCE(4247, 118)
SOURCE(4293, 46)
   {
      word self←v22536;
      self←v22536 = self←v5776;
      {
         word data←v22568;
         data←v22568 = XR←Narrow((* (( (ptr) self←v22536)+1) ), (* (( (ptr) gf←c26088)+22) ));
SOURCE(2598, 40)
         (* (( (ptr) data←v22568)+2) ) = ((* (( (ptr) data←v22568)+2) ) + (* (( (ptr) self←v22536)+7) ));
SOURCE(2640, 45)
         (* (( (ptr) self←v22536)+5) ) = 0;
         (* (( (ptr) self←v22536)+7) ) = 0;
SOURCE(2687, 12)
         data←v9540 = data←v22568;
         };
      };
SOURCE(4341, 24)
   (* (( (ptr) data←v9540)+2) ) = (* (( (ptr) data←v9540)+1) );
   }

static word InputRopeStreamGetIndex←P900(self←v5836)
   word self←v5836;
   {
   register ptr gf←c26120 =  (ptr) &globalframe;
   word var←c5880;
   word data←v9584;
   /* InputRopeStreamGetIndex: */ 
SOURCE(4371, 151)
SOURCE(4434, 51)
   data←v9584 = XR←Narrow((* (( (ptr) self←v5836)+1) ), (* (( (ptr) gf←c26120)+22) ));
SOURCE(4487, 35)
   return(((* (( (ptr) data←v9584)+2) ) + (* (( (ptr) self←v5836)+7) )));
   }

static void InputRopeStreamSetIndex←P960(self←v5940, index←v5968)
   word self←v5940;
   word index←v5968;
   {
   register ptr gf←c26152 =  (ptr) &globalframe;
   word data←v9628;
   /* InputRopeStreamSetIndex: */ 
SOURCE(4528, 357)
SOURCE(4589, 51)
   data←v9628 = XR←Narrow((* (( (ptr) self←v5940)+1) ), (* (( (ptr) gf←c26152)+22) ));
SOURCE(4642, 68)
   if (( (int)index←v5968 <  (int)0) || ( (int)index←v5968 >  (int)(* (( (ptr) data←v9628)+1) ))) {
SOURCE(4679, 31)
      {
         W4 var←c0138;
         (*  (ptr) (word) &var←c0138 ) = 6;
         (* (( (ptr) (word) &var←c0138) + 1) ) = self←v5940;
         (* (( (ptr) (word) &var←c0138) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0138) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26152)+112)/* var←c24296 */  ))+5) ), (word) &var←c0138);
         };
      };
SOURCE(4712, 173)
   if ( ( ( (int)index←v5968 >=  (int)(* (( (ptr) data←v9628)+2) )) ? ( (int)index←v5968 <=  (int)((* (( (ptr) data←v9628)+2)
    ) + (* (( (ptr) self←v5940)+5) ))) : 0 ) ) {
SOURCE(4776, 41)
      {
         word idx38;
         (* (( (ptr) self←v5940)+7) ) = (
            idx38 = (word) (index←v5968 - (* (( (ptr) data←v9628)+2) )),
            SGNCK(idx38)
            );
         };
      }
   else {
SOURCE(4819, 45)
      (* (( (ptr) self←v5940)+5) ) = 0;
      (* (( (ptr) self←v5940)+7) ) = 0;
SOURCE(4866, 19)
      (* (( (ptr) data←v9628)+2) ) = index←v5968;
      };
   }

static word InputRopeStreamGetLength←P1020(self←v6028)
   word self←v6028;
   {
   register ptr gf←c26184 =  (ptr) &globalframe;
   word length←v6072;
   word data←v9672;
   /* InputRopeStreamGetLength: */ 
SOURCE(4892, 144)
SOURCE(4964, 51)
   data←v9672 = XR←Narrow((* (( (ptr) self←v6028)+1) ), (* (( (ptr) gf←c26184)+22) ));
SOURCE(5017, 19)
   return((* (( (ptr) data←v9672)+1) ));
   }

static void RopeStreamClose←P1080(self←v6132, abort←v6160)
   word self←v6132;
   word abort←v6160;
   {
   register ptr gf←c26216 =  (ptr) &globalframe;
   /* RopeStreamClose: */ 
SOURCE(5042, 139)
SOURCE(5096, 35)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c26216)+114)/* var←c24488 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd39 ))))((* ((( (ptr) self←v6132)+4)) ), pd39);
      };
SOURCE(5133, 48)
   XR←FillWords(&(* (W7Pt) ((( (ptr) self←v6132)+1))), 7, 0);
   (*  (ptr) self←v6132 ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c26216)+115)/* var←c24776 */  ))+15) ) );
   }

static word GetRope←P1140(self←v6220, len←v6248, demand←v6276)
   word self←v6220;
   word len←v6248;
   word demand←v6276;
   {
   register ptr gf←c26248 =  (ptr) &globalframe;
   word rope←v6320;
   word ropeSize←v9716 = 0;
   /* GetRope: */ 
SOURCE(5187, 1312)
SOURCE(5187, 1312)
   rope←v6320 = 0;
SOURCE(5317, 1119)
   {
      word var←c24808;
      var←c24808 = (* (( (ptr) self←v6220)+1) );
      if ((var←c24808 == 0)) {
         goto lab←L100006;
         };
      if (((* (( (ptr) gf←c26248)+22) ) == XR←GetReferentType(var←c24808))) {
         {
            word data←v9760;
            data←v9760 = var←c24808;
SOURCE(5379, 186)
            {
               word index←v9804;
SOURCE(5381, 40)
               index←v9804 = ((* (( (ptr) data←v9760)+2) ) + (* (( (ptr) self←v6220)+7) ));
SOURCE(5447, 41)
               {
                  word pd40;
                  pd40 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+17) );
                  rope←v6320 = (word) ( *( (fPt) ((*  (ptr) pd40 ))))((*  (ptr) data←v9760 ), index←v9804, len←v6248, pd40);
                  };
SOURCE(5490, 26)
               {
                  word pd41;
                  pd41 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+15) );
                  ropeSize←v9716 = (word) ( *( (fPt) ((*  (ptr) pd41 ))))(rope←v6320, pd41);
                  };
SOURCE(5518, 45)
               (void) InputRopeStreamSetIndex←P960(self←v6220, (index←v9804 + ropeSize←v9716));
               };
            };
         }
      else {
         lab←L100006: ;
SOURCE(5579, 859)
         {
            W10 s←v9904;
            word buf←v9932;
            word residual←v9960;
SOURCE(5622, 42)
            XR←FillWords(&s←v9904, 10, 0);
SOURCE(5666, 46)
            {
               word pd42;
               pd42 = (* (( (ptr) (* (( (ptr) gf←c26248)+114)/* var←c24488 */  ))+6) );
               buf←v9932 = (word) ( *( (fPt) ((*  (ptr) pd42 ))))(512, pd42);
               };
SOURCE(5714, 19)
            residual←v9960 = len←v6248;
SOURCE(5735, 469)
            lab←L100009: ;
            {
               word tc43;
               word pd44;
               if (( (int)residual←v9960 !=  (int)0)) {
                  pd44 = (* (( (ptr) (* (( (ptr) gf←c26248)+112)/* var←c24296 */  ))+15) );
                  tc43 =  (word) (0 == (word) ( *( (fPt) ((*  (ptr) pd44 ))))(self←v6220, pd44));
                  }
               else {
                  tc43 =  (word) 0;
                  };
               if (tc43) {
                  }
               else {
                  goto lab←L100007;
                  };
               };
            {
               word chunkSize←v10052;
               word bytesRead←v10080;
SOURCE(5775, 39)
               chunkSize←v10052 = (MIN((int)(word), residual←v9960, 512));
SOURCE(5816, 95)
               {
                  word pd45;
                  pd45 = (* (( (ptr) (* (( (ptr) gf←c26248)+112)/* var←c24296 */  ))+13) );
                  bytesRead←v10080 = (word) ( *( (fPt) ((*  (ptr) pd45 ))))(self←v6220, buf←v9932, 0, chunkSize←v10052, pd45);
                  };
SOURCE(5913, 20)
               if ((bytesRead←v10080 == 0)) {
SOURCE(5933, 4)
                  goto lab←L100008;
                  };
SOURCE(5939, 31)
               residual←v9960 = (residual←v9960 - bytesRead←v10080);
SOURCE(5972, 28)
               {
                  word pd46;
                  pd46 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+35) );
                  rope←v6320 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))(buf←v9932, 0, 32767, pd46);
                  };
SOURCE(6002, 202)
               {
                  register word i←v10144 = 0;
                  lab←L100013: ;
SOURCE(6034, 43)
                  if (((* (( (ptr) &s←v9904)+BCK(i←v10144, 10)) ) == 0)) {
SOURCE(6054, 11)
                     (* (( (ptr) &s←v9904)+BCK(i←v10144, 10)) ) = rope←v6320;
SOURCE(6067, 10)
                     rope←v6320 = 0;
SOURCE(6079, 4)
                     goto lab←L100011;
                     };
SOURCE(6086, 67)
                  if ((i←v10144 == 9)) {
SOURCE(6111, 30)
                     {
                        word var←c24872;
                        {
                           word pd47;
                           pd47 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+6) );
                           var←c24872 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((* (( (ptr) &s←v9904)+BCK(i←v10144, 10)) ), rope←v6320, pd47);
                           };
                        (* (( (ptr) &s←v9904)+BCK(i←v10144, 10)) ) = var←c24872;
                        };
SOURCE(6143, 10)
                     rope←v6320 = 0;
SOURCE(6155, 4)
                     goto lab←L100011;
                     };
SOURCE(6162, 30)
                  {
                     word pd48;
                     pd48 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+6) );
                     rope←v6320 = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((* (( (ptr) &s←v9904)+BCK(i←v10144, 10)) ), rope←v6320, pd48);
                     };
SOURCE(6194, 10)
                  (* (( (ptr) &s←v9904)+BCK(i←v10144, 10)) ) = 0;
                  if ((i←v10144 >= 9)) {
                     goto lab←L100010;
                     };
                  i←v10144 = (i←v10144 + 1);
                  goto lab←L100013;
                  lab←L100010: ;
                  lab←L100011: ;
                  };
               };
            goto lab←L100009;
            lab←L100007: ;
            lab←L100008: ;
SOURCE(6224, 19)
            if ((rope←v6320 != 0)) {
SOURCE(6243, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(6250, 81)
            {
               register word i←v10188 = 0;
               lab←L100017: ;
SOURCE(6282, 49)
               if (((* (( (ptr) &s←v9904)+BCK(i←v10188, 10)) ) != 0)) {
SOURCE(6301, 30)
                  {
                     word pd49;
                     pd49 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+6) );
                     rope←v6320 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))((* (( (ptr) &s←v9904)+BCK(i←v10188, 10)) ), rope←v6320, pd49);
                     };
                  };
               if ((i←v10188 >= 9)) {
                  goto lab←L100014;
                  };
               i←v10188 = (i←v10188 + 1);
               goto lab←L100017;
               lab←L100014: ;
               };
SOURCE(6342, 26)
            {
               word pd50;
               pd50 = (* (( (ptr) (* (( (ptr) gf←c26248)+113)/* var←c24360 */  ))+15) );
               ropeSize←v9716 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))(rope←v6320, pd50);
               };
SOURCE(6370, 32)
            if (( (int)(ropeSize←v9716 + residual←v9960) !=  (int)len←v6248)) {
SOURCE(6402, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(6409, 27)
            {
               word pd51;
               pd51 = (* (( (ptr) (* (( (ptr) gf←c26248)+114)/* var←c24488 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd51 ))))(buf←v9932, pd51);
               };
            };
         };
      };
SOURCE(6441, 58)
   if ( ( (0 != demand←v6276) ? ( (int)ropeSize←v9716 <  (int)len←v6248) : 0 ) ) {
SOURCE(6473, 26)
      {
         word var←c0160;
         var←c0160 = self←v6220;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26248)+112)/* var←c24296 */  ))+4) ), (word) &var←c0160);
         };
      };
SOURCE(5187, 1312)
   return(rope←v6320);
   }

static word ROS←P1200(oldStream←v6392)
   word oldStream←v6392;
   {
   register ptr gf←c26280 =  (ptr) &globalframe;
   word var←c6436;
   word self←v10232;
   word buffer←v10260;
   /* ROS: */ 
SOURCE(6824, 388)
SOURCE(6882, 72)
   self←v10232 =  ( (oldStream←v6392 != 0) ? oldStream←v6392 : XR←NewObject(32, (* (( (ptr) gf←c26280)+17) )) ) ;
SOURCE(6956, 30)
   buffer←v10260 = (* (( (ptr) self←v10232)+4) );
SOURCE(6988, 77)
   if ((buffer←v10260 == 0)) { goto then052;};
   if (((* (( (hPt) buffer←v10260)+1) ) < 10)) {
      then052: ;
SOURCE(7030, 35)
      {
         word pd53;
         pd53 = (* (( (ptr) (* (( (ptr) gf←c26280)+114)/* var←c24488 */  ))+6) );
         buffer←v10260 = (word) ( *( (fPt) ((*  (ptr) pd53 ))))(256, pd53);
         };
      };
SOURCE(7067, 131)
   {
      word var←c24936;
      var←c24936 = (* (( (hPt) buffer←v10260)+1) );
      XR←FillWords(&(* (W7Pt) ((( (ptr) self←v10232)+1))), 7, 0);
      (*  (ptr) self←v10232 ) = (* (( (ptr) gf←c26280)+7)/* OutputRopeStreamProcs←v3392 */  );
      (* (( (ptr) self←v10232)+4) ) = buffer←v10260;
      (* (( (ptr) self←v10232)+6) ) = var←c24936;
      };
SOURCE(7200, 12)
   return(self←v10232);
   }

static word ROSNormalize←P1260(self←v6496)
   word self←v6496;
   {
   register ptr gf←c26312 =  (ptr) &globalframe;
   word rope←v6540;
   /* ROSNormalize: */ 
SOURCE(7218, 285)
SOURCE(7218, 285)
   rope←v6540 = 0;
SOURCE(7277, 30)
   {
      word var←c24968;
      var←c24968 = XR←Narrow((* (( (ptr) self←v6496)+1) ), (* (( (ptr) gf←c26312)+15) ));
      if ((var←c24968 == 0)) {
         goto lab←L100018;
         };
      if (((*(int*)var←c24968<0) == 0)) {
         goto lab←L100018;
         };
      (void) XR←RaiseError(XR←NarrowFault, 0);
      lab←L100018: ;
      rope←v6540 = var←c24968;
      };
SOURCE(7340, 163)
   if (((* (( (ptr) self←v6496)+7) ) > 0)) {
SOURCE(7369, 37)
      {
         word idx54;
         (*  (hPt) (* (( (ptr) self←v6496)+4) ) ) = (
            idx54 = (* (( (ptr) self←v6496)+7) ),
            BCK(idx54, 32768)
            );
         };
SOURCE(7408, 73)
      {
         word var←c25000;
         {
            word var←c25032;
            {
               word pd55;
               pd55 = (* (( (ptr) (* (( (ptr) gf←c26312)+113)/* var←c24360 */  ))+35) );
               var←c25032 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) self←v6496)+4) ), 0, 32767, pd55);
               };
            {
               word pd56;
               pd56 = (* (( (ptr) (* (( (ptr) gf←c26312)+113)/* var←c24360 */  ))+6) );
               var←c25000 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))(rope←v6540, var←c25032, pd56);
               };
            };
         rope←v6540 = var←c25000;
         (* (( (ptr) self←v6496)+1) ) = var←c25000;
         };
SOURCE(7483, 20)
      (* (( (ptr) self←v6496)+7) ) = 0;
      };
SOURCE(7218, 285)
   return(rope←v6540);
   }

static void OutputRopeStreamPutChar←P1320(self←v6600, char←v6628)
   word self←v6600;
   word char←v6628;
   {
   word i←v10316;
   /* OutputRopeStreamPutChar: */ 
SOURCE(7512, 250)
SOURCE(7573, 25)
   i←v10316 = (* (( (ptr) self←v6600)+7) );
SOURCE(7600, 162)
   if ((i←v10316 < (* (( (ptr) self←v6600)+6) ))) {
SOURCE(7638, 22)
      (* (( (ptr) self←v6600)+7) ) = (i←v10316 + 1);
SOURCE(7662, 22)
      {
         word var←c25064;
         var←c25064 = (* (( (ptr) self←v6600)+4) );
         {
            word limit57;
            (* ((( (bPt) var←c25064)+4)+(
                  limit57 = (word) (* (( (hPt) var←c25064)+1) ),
                  BCK(i←v10316, limit57)
                  )) ) = char←v6628;
            };
         };
      }
   else {
SOURCE(7693, 23)
      {
         word var←c25096;
         var←c25096 = (word) ROSNormalize←P1260(self←v6600);
         };
SOURCE(7718, 20)
      (* (( (ptr) self←v6600)+7) ) = 1;
SOURCE(7740, 22)
      {
         word var←c25128;
         var←c25128 = (* (( (ptr) self←v6600)+4) );
         {
            word limit58;
            (* ((( (bPt) var←c25128)+4)+(
                  limit58 = (word) (* (( (hPt) var←c25128)+1) ),
                  BCK(0, limit58)
                  )) ) = char←v6628;
            };
         };
      };
   }

static void OutputRopeStreamEraseChar←P1380(self←v6688, char←v6716)
   word self←v6688;
   word char←v6716;
   {
   register ptr gf←c26344 =  (ptr) &globalframe;
   /* OutputRopeStreamEraseChar: */ 
SOURCE(7769, 260)
SOURCE(7832, 197)
   if (((* (( (ptr) self←v6688)+7) ) > 0)) {
SOURCE(7861, 43)
      {
         word idx59;
         (* (( (ptr) self←v6688)+7) ) = (
            idx59 = (word) ((* (( (ptr) self←v6688)+7) ) - 1),
            SGNCK(idx59)
            );
         };
      }
   else {
SOURCE(7904, 127)
      {
         word rope←v10360;
         word size←v10388;
SOURCE(7906, 31)
         rope←v10360 = (word) ROSNormalize←P1260(self←v6688);
SOURCE(7939, 27)
         {
            word pd60;
            pd60 = (* (( (ptr) (* (( (ptr) gf←c26344)+113)/* var←c24360 */  ))+15) );
            size←v10388 = (word) ( *( (fPt) ((*  (ptr) pd60 ))))(rope←v10360, pd60);
            };
SOURCE(7968, 61)
         if (( (int)size←v10388 >  (int)0)) {
SOURCE(7983, 46)
            {
               word pd61;
               pd61 = (* (( (ptr) (* (( (ptr) gf←c26344)+113)/* var←c24360 */  ))+17) );
               (* (( (ptr) self←v6688)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd61 ))))(rope←v10360, 0, (size←v10388 - 1), pd61);
               };
            };
         };
      };
   }

static void OutputRopeStreamReset←P1440(self←v6776)
   word self←v6776;
   {
   /* OutputRopeStreamReset: */ 
SOURCE(8038, 90)
SOURCE(8085, 21)
   (* (( (ptr) self←v6776)+1) ) = 0;
SOURCE(8108, 20)
   (* (( (ptr) self←v6776)+7) ) = 0;
   }

static word OutputRopeStreamGetIndex←P1500(self←v6836)
   word self←v6836;
   {
   register ptr gf←c26376 =  (ptr) &globalframe;
   word var←c6880;
   /* OutputRopeStreamGetIndex: */ 
SOURCE(8134, 181)
SOURCE(8198, 117)
   if (((* (( (ptr) self←v6836)+1) ) == 0)) {
SOURCE(8226, 30)
      return((* (( (ptr) self←v6836)+7) ));
      }
   else {
SOURCE(8256, 59)
      {
         word var←c0288;
         {
            word var←c25192;
            word var←c0287;
            var←c25192 = XR←Narrow((* (( (ptr) self←v6836)+1) ), (* (( (ptr) gf←c26376)+15) ));
            {
               word pd62;
               pd62 = (* (( (ptr) (* (( (ptr) gf←c26376)+113)/* var←c24360 */  ))+15) );
               var←c0287 = (word) ( *( (fPt) ((*  (ptr) pd62 ))))(var←c25192, pd62);
               };
            var←c0288 = (var←c0287 + (* (( (ptr) self←v6836)+7) ));
            };
         return(var←c0288);
         };
      };
   }

static word RopeFromROS←P1560(self←v6940, close←v6968)
   word self←v6940;
   word close←v6968;
   {
   register ptr gf←c26408 =  (ptr) &globalframe;
   word var←c7012;
   /* RopeFromROS: */ 
SOURCE(8397, 325)
SOURCE(8469, 253)
   if (((*  (ptr) self←v6940 ) == (* (( (ptr) gf←c26408)+7)/* OutputRopeStreamProcs←v3392 */  ))) {
SOURCE(8516, 149)
      {
         word rope←v10432;
SOURCE(8518, 31)
         rope←v10432 = (word) ROSNormalize←P1260(self←v6940);
SOURCE(8551, 42)
         if ((0 != close←v6968)) {
SOURCE(8565, 28)
            (void) RopeStreamClose←P1080(self←v6940, 0);
            };
SOURCE(8595, 68)
         {
            word tc63;
            word pd64;
            if ((0 != (* (( (ptr) gf←c26408)+8)/* debugRopeFromROS←v3588 */  ))) {
               pd64 = (* (( (ptr) (* (( (ptr) gf←c26408)+113)/* var←c24360 */  ))+15) );
               tc63 =  (word) ( (int)(word) ( *( (fPt) ((*  (ptr) pd64 ))))(rope←v10432, pd64) ==  (int)0);
               }
            else {
               tc63 =  (word) 0;
               };
            if (tc63) {
               return(0);
               }
            else {
               return(rope←v10432);
               };
            };
         };
      }
   else {
SOURCE(8672, 50)
      {
         W4 var←c0189;
         (*  (ptr) (word) &var←c0189 ) = 1;
         (* (( (ptr) (word) &var←c0189) + 1) ) = self←v6940;
         (* (( (ptr) (word) &var←c0189) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0189) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26408)+112)/* var←c24296 */  ))+5) ), (word) &var←c0189);
         };
      };
   }

static void PutRope←P1620(self←v7072, r←v7100, start←v7128, len←v7156)
   word self←v7072;
   word r←v7100;
   word start←v7128;
   word len←v7156;
   {
   register ptr gf←c26440 =  (ptr) &globalframe;
   word ref←v10476;
   word rem←v10504;
   /* PutRope: */ 
SOURCE(8728, 868)
SOURCE(8814, 12)
   ref←v10476 = r←v7100;
SOURCE(8828, 35)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c26440)+113)/* var←c24360 */  ))+15) );
      rem←v10504 = ((word) ( *( (fPt) ((*  (ptr) pd65 ))))(r←v7100, pd65) - SGNCK(start←v7128));
      };
SOURCE(8865, 25)
   if (( (int)rem←v10504 <  (int)len←v7156)) {
SOURCE(8881, 9)
      len←v7156 = rem←v10504;
      };
SOURCE(8892, 21)
   if (( (int)len←v7156 <=  (int)0)) {
SOURCE(8907, 6)
      return;
      };
SOURCE(8915, 681)
   {
      word tc66;
      word tc67;
      word tc69;
      if ((ref←v10476 == 0)) { goto then068;};
      if (((* (( (ptr) gf←c26440)+15) ) == XR←GetReferentType(ref←v10476))) {
         tc69 =  (word) ((*(int*)ref←v10476<0) == 0);
         }
      else {
         tc69 =  (word) 0;
         };
      if (tc69) {
         then068: ;
         tc67 =  (word) ((*  (ptr) self←v7072 ) == (* (( (ptr) gf←c26440)+7)/* OutputRopeStreamProcs←v3392 */  ));
         }
      else {
         tc67 =  (word) 0;
         };
      if (tc67) {
         if (((* (( (ptr) self←v7072)+7) ) == 0)) {
            tc66 =  (word) 1;
            }
         else {
            tc66 =  (word) ( (int)len←v7156 >  (int)((* (( (ptr) self←v7072)+6) ) - (* (( (ptr) self←v7072)+7) )));
            };
         }
      else {
         tc66 =  (word) 0;
         };
      if (tc66) {
SOURCE(9063, 83)
         {
            word var←c25256;
            word var←c25288;
            var←c25256 = (word) ROSNormalize←P1260(self←v7072);
            {
               word pd70;
               pd70 = (* (( (ptr) (* (( (ptr) gf←c26440)+113)/* var←c24360 */  ))+17) );
               var←c25288 = (word) ( *( (fPt) ((*  (ptr) pd70 ))))(r←v7100, start←v7128, len←v7156, pd70);
               };
            {
               word pd71;
               pd71 = (* (( (ptr) (* (( (ptr) gf←c26440)+113)/* var←c24360 */  ))+6) );
               (* (( (ptr) self←v7072)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd71 ))))(var←c25256, var←c25288, pd71);
               };
            };
         }
      else {
SOURCE(9146, 450)
         {
            word var←c25320;
            word var←c25352;
            var←c25320 = ref←v10476;
            if ((var←c25320 == 0)) {
               goto lab←L100019;
               };
            var←c25352 = XR←GetReferentType(var←c25320);
            {
               word tc73;
               if (((* (( (ptr) gf←c26440)+12) ) == var←c25352)) {
                  {
                     word t←v10564;
                     t←v10564 = var←c25320;
SOURCE(9182, 32)
                     {
                        word pd72;
                        pd72 = (* (( (ptr) (* (( (ptr) gf←c26440)+112)/* var←c24296 */  ))+23) );
                        (void) ( *( (fPt) ((*  (ptr) pd72 ))))(self←v7072, t←v10564, SGNCK(start←v7128), SGNCK(len←v7156), pd72);
                        };
                     };
                  }
               else {
                  if (((* (( (ptr) gf←c26440)+15) ) == var←c25352)) {
                     if (((*(int*)var←c25320<0) == 0)) {
                        tc73 =  (word) ((*(( short *)var←c25320 + 1)<0) == 0);
                        }
                     else {
                        tc73 =  (word) 0;
                        };
                     }
                  else {
                     tc73 =  (word) 0;
                     };
                  if (tc73) {
                     {
                        word t←v10620;
                        t←v10620 = var←c25320;
SOURCE(9232, 61)
                        {
                           word pd74;
                           pd74 = (* (( (ptr) (* (( (ptr) gf←c26440)+112)/* var←c24296 */  ))+23) );
                           (void) ( *( (fPt) ((*  (ptr) pd74 ))))(self←v7072, t←v10620, SGNCK(start←v7128), SGNCK(len←v7156), pd74);
                           };
                        };
                     }
                  else {
                     lab←L100019: ;
SOURCE(9314, 293)
                     {
                        W16 buffer←v10692;
                        word base←v10720;
SOURCE(9371, 52)
                        base←v10720 = (word) &buffer←v10692;
SOURCE(9425, 171)
                        lab←L100022: ;
                        if (( (int)len←v7156 >  (int)0)) {
                           }
                        else {
                           goto lab←L100020;
                           };
                        {
                           word moved←v10812;
SOURCE(9442, 69)
                           {
/*1*/   W3 var←c25384;
/*1*/   var←c25384.f0 = base←v10720;
/*1*/   var←c25384.f1 = 0;
/*1*/   var←c25384.f2 = (MIN((int)(word), len←v7156, 64));
/*1*/   {
/*1*/      word pd75;
/*1*/      word idx76;
/*1*/      pd75 = (* (( (ptr) (* (( (ptr) gf←c26440)+113)/* var←c24360 */  ))+41) );
/*1*/      moved←v10812 = (
/*1*/         idx76 = (word) ( *( (fPt) ((*  (ptr) pd75 ))))(var←c25384, r←v7100, start←v7128, pd75),
/*1*/         SGNCK(idx76)
/*1*/         );
/*1*/      };
/*1*/   };
SOURCE(9513, 41)
                           {
/*1*/   W3 var←c25416;
/*1*/   var←c25416.f0 = base←v10720;
/*1*/   var←c25416.f1 = 0;
/*1*/   var←c25416.f2 = moved←v10812;
/*1*/   {
/*1*/      word pd77;
/*1*/      pd77 = (* (( (ptr) (* (( (ptr) gf←c26440)+112)/* var←c24296 */  ))+24) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd77 ))))(self←v7072, var←c25416, pd77);
/*1*/      };
/*1*/   };
SOURCE(9556, 21)
                           start←v7128 = (start←v7128 + moved←v10812);
SOURCE(9579, 17)
                           len←v7156 = (len←v7156 - moved←v10812);
                           };
                        goto lab←L100022;
                        lab←L100020: ;
                        };
                     };
                  };
               };
            };
         };
      };
   }

static word TIS←P1680(text←v7228, oldStream←v7256)
   word text←v7228;
   word oldStream←v7256;
   {
   register ptr gf←c26472 =  (ptr) &globalframe;
   word var←c7312;
   word self←v10856;
   /* TIS: */ 
SOURCE(9938, 369)
SOURCE(10021, 72)
   self←v10856 =  ( (oldStream←v7256 != 0) ? oldStream←v7256 : XR←NewObject(32, (* (( (ptr) gf←c26472)+17) )) ) ;
SOURCE(10095, 60)
   XR←FillWords(&(* (W7Pt) ((( (ptr) self←v10856)+1))), 7, 0);
   (*  (ptr) self←v10856 ) = (* (( (ptr) gf←c26472)+9)/* InputTextStreamProcs←v3672 */  );
SOURCE(10165, 31)
SOURCE(10167, 29)
   (* (( (ptr) self←v10856)+4) ) = text←v7228;
SOURCE(10236, 57)
   {
      word x78;
      word x79;
      (* (( (ptr) self←v10856)+5) ) = (x78 = (*  (hPt) text←v7228 ),
         x79 = (* (( (hPt) text←v7228)+1) ),
         MIN( (unsigned) , x78, x79));
      };
SOURCE(10295, 12)
   return(self←v10856);
   }

static word InputTextStreamGetChar←P1740(self←v7372)
   word self←v7372;
   {
   register ptr gf←c26504 =  (ptr) &globalframe;
   word var←c7416;
   word i←v10900;
   /* InputTextStreamGetChar: */ 
SOURCE(10313, 207)
SOURCE(10376, 25)
   i←v10900 = (* (( (ptr) self←v7372)+7) );
SOURCE(10403, 117)
   if ((i←v10900 < (* (( (ptr) self←v7372)+5) ))) {
SOURCE(10440, 22)
      (* (( (ptr) self←v7372)+7) ) = (i←v10900 + 1);
SOURCE(10464, 23)
      {
         word var←c0289;
         {
            word var←c25480;
            var←c25480 = (* (( (ptr) self←v7372)+4) );
            {
               word limit80;
               var←c0289 = (word) (* ((( (bPt) var←c25480)+4)+(
                     limit80 = (word) (* (( (hPt) var←c25480)+1) ),
                     BCK(i←v10900, limit80)
                     )) );
               };
            };
         return(var←c0289);
         };
      }
   else {
SOURCE(10494, 26)
      {
         word var←c0215;
         var←c0215 = self←v7372;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26504)+112)/* var←c24296 */  ))+4) ), (word) &var←c0215);
         };
      };
   }

static word InputTextStreamEndOf←P1800(self←v7476)
   word self←v7476;
   {
   word var←c7520;
   /* InputTextStreamEndOf: */ 
SOURCE(10526, 109)
SOURCE(10587, 48)
   return(((* (( (ptr) self←v7476)+7) ) >= (* (( (ptr) self←v7476)+5) )));
   }

static void InputTextStreamReset←P1860(self←v7580)
   word self←v7580;
   {
   /* InputTextStreamReset: */ 
SOURCE(10641, 87)
SOURCE(10687, 41)
   (* (( (ptr) self←v7580)+7) ) = (* (( (ptr) self←v7580)+5) );
   }

static void InputTextStreamBackup←P1920(self←v7640, char←v7668)
   word self←v7640;
   word char←v7668;
   {
   register ptr gf←c26536 =  (ptr) &globalframe;
   word var←c25512;
   word var←c25544;
   word var←c0290;
   /* InputTextStreamBackup: */ 
SOURCE(10733, 206)
SOURCE(10792, 147)
   {
      word tc81;
      if (((* (( (ptr) self←v7640)+7) ) > 0)) {
         var←c25512 = ((* (( (ptr) self←v7640)+7) ) - 1);
         var←c25544 = (* (( (ptr) self←v7640)+4) );
         {
            word limit82;
            var←c0290 = (word) (* ((( (bPt) var←c25544)+4)+(
                  limit82 = (word) (* (( (hPt) var←c25544)+1) ),
                  BCK(var←c25512, limit82)
                  )) );
            };
         tc81 =  (word) (var←c0290 == char←v7668);
         }
      else {
         tc81 =  (word) 0;
         };
      if (tc81) {
SOURCE(10860, 43)
         {
            word idx83;
            (* (( (ptr) self←v7640)+7) ) = (
               idx83 = (word) ((* (( (ptr) self←v7640)+7) ) - 1),
               SGNCK(idx83)
               );
            };
         }
      else {
SOURCE(10903, 36)
         {
            W4 var←c0223;
            (*  (ptr) (word) &var←c0223 ) = 4;
            (* (( (ptr) (word) &var←c0223) + 1) ) = self←v7640;
            (* (( (ptr) (word) &var←c0223) + 2) ) = 0;
            (* (( (ptr) (word) &var←c0223) + 3) ) = 0;
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26536)+112)/* var←c24296 */  ))+5) ), (word) &var←c0223);
            };
         };
      };
   }

static word InputTextStreamGetIndex←P1980(self←v7728)
   word self←v7728;
   {
   word var←c7772;
   /* InputTextStreamGetIndex: */ 
SOURCE(10944, 87)
SOURCE(11007, 24)
   return((* (( (ptr) self←v7728)+7) ));
   }

static void InputTextStreamSetIndex←P2040(self←v7832, index←v7860)
   word self←v7832;
   word index←v7860;
   {
   register ptr gf←c26568 =  (ptr) &globalframe;
   /* InputTextStreamSetIndex: */ 
SOURCE(11036, 166)
SOURCE(11097, 105)
   if ( ( ( (int)index←v7860 >=  (int)0) ? ( (int)index←v7860 <=  (int)(* (( (ptr) self←v7832)+5) )) : 0 ) ) {
SOURCE(11141, 30)
      (* (( (ptr) self←v7832)+7) ) = SGNCK(index←v7860);
      }
   else {
SOURCE(11171, 31)
      {
         W4 var←c0228;
         (*  (ptr) (word) &var←c0228 ) = 6;
         (* (( (ptr) (word) &var←c0228) + 1) ) = self←v7832;
         (* (( (ptr) (word) &var←c0228) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0228) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26568)+112)/* var←c24296 */  ))+5) ), (word) &var←c0228);
         };
      };
   }

static word InputTextStreamGetLength←P2100(self←v7920)
   word self←v7920;
   {
   word length←v7964;
   /* InputTextStreamGetLength: */ 
SOURCE(11207, 102)
SOURCE(11279, 30)
   return((* (( (ptr) self←v7920)+5) ));
   }

static word TOS←P2160(text←v8036, oldStream←v8064)
   word text←v8036;
   word oldStream←v8064;
   {
   register ptr gf←c26600 =  (ptr) &globalframe;
   word var←c8120;
   word self←v10944;
   /* TOS: */ 
SOURCE(11587, 331)
SOURCE(11661, 72)
   self←v10944 =  ( (oldStream←v8064 != 0) ? oldStream←v8064 : XR←NewObject(32, (* (( (ptr) gf←c26600)+17) )) ) ;
SOURCE(11735, 61)
   XR←FillWords(&(* (W7Pt) ((( (ptr) self←v10944)+1))), 7, 0);
   (*  (ptr) self←v10944 ) = (* (( (ptr) gf←c26600)+10)/* OutputTextStreamProcs←v3924 */  );
SOURCE(11798, 57)
   {
      word var←c25608;
      {
         word pd84;
         if ((text←v8036 != 0)) {
            var←c25608 = text←v8036;
            }
         else {
            pd84 = (* (( (ptr) (* (( (ptr) gf←c26600)+114)/* var←c24488 */  ))+4) );
            var←c25608 = (word) ( *( (fPt) ((*  (ptr) pd84 ))))(128, pd84);
            };
         };
      (* (( (ptr) self←v10944)+4) ) = var←c25608;
      };
SOURCE(11857, 47)
   (* (( (ptr) self←v10944)+6) ) = (* (( (hPt) (* (( (ptr) self←v10944)+4) ))+1) );
SOURCE(11906, 12)
   return(self←v10944);
   }

static word TextFromTOS←P2220(self←v8180)
   word self←v8180;
   {
   register ptr gf←c26632 =  (ptr) &globalframe;
   word var←c8224;
   /* TextFromTOS: */ 
SOURCE(11924, 228)
SOURCE(11987, 165)
   if (((*  (ptr) self←v8180 ) == (* (( (ptr) gf←c26632)+10)/* OutputTextStreamProcs←v3924 */  ))) {
SOURCE(12036, 37)
      {
         word idx85;
         (*  (hPt) (* (( (ptr) self←v8180)+4) ) ) = (
            idx85 = (* (( (ptr) self←v8180)+7) ),
            BCK(idx85, 32768)
            );
         };
SOURCE(12075, 20)
      return((* (( (ptr) self←v8180)+4) ));
      }
   else {
SOURCE(12102, 50)
      {
         W4 var←c0238;
         (*  (ptr) (word) &var←c0238 ) = 1;
         (* (( (ptr) (word) &var←c0238) + 1) ) = self←v8180;
         (* (( (ptr) (word) &var←c0238) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0238) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c26632)+112)/* var←c24296 */  ))+5) ), (word) &var←c0238);
         };
      };
   }

static word AppendOutput←P2280(to←v8296, from←v8324)
   word to←v8296;
   word from←v8324;
   {
   register ptr gf←c26664 =  (ptr) &globalframe;
   word var←c8440;
   word self←v10988;
   /* AppendOutput: */ 
SOURCE(12157, 302)
SOURCE(12242, 145)
   self←v10988 = XR←NewObject(32, (* (( (ptr) gf←c26664)+17) ));
   (*  (ptr) self←v10988 ) = (* (( (ptr) gf←c26664)+10)/* OutputTextStreamProcs←v3924 */  );
   (* (( (ptr) self←v10988)+4) ) = to←v8296;
   (* (( (ptr) self←v10988)+6) ) = (* (( (hPt) to←v8296)+1) );
   (* (( (ptr) self←v10988)+7) ) = (*  (hPt) to←v8296 );
SOURCE(12389, 10)
   (void) ( *( (fPt) ((*  (ptr) from←v8324 ))))(self←v10988, from←v8324);
SOURCE(12401, 37)
   {
      word idx86;
      (*  (hPt) (* (( (ptr) self←v10988)+4) ) ) = (
         idx86 = (* (( (ptr) self←v10988)+7) ),
         BCK(idx86, 32768)
         );
      };
SOURCE(12440, 19)
   return((* (( (ptr) self←v10988)+4) ));
   }

static void OutputTextStreamPutChar←P2340(self←v8512, char←v8540)
   word self←v8512;
   word char←v8540;
   {
   register ptr gf←c26696 =  (ptr) &globalframe;
   word i←v11032;
   /* OutputTextStreamPutChar: */ 
SOURCE(12465, 408)
SOURCE(12526, 25)
   i←v11032 = (* (( (ptr) self←v8512)+7) );
SOURCE(12553, 320)
   if ((i←v11032 < (* (( (ptr) self←v8512)+6) ))) {
SOURCE(12591, 22)
      (* (( (ptr) self←v8512)+7) ) = (i←v11032 + 1);
SOURCE(12615, 22)
      {
         word var←c25672;
         var←c25672 = (* (( (ptr) self←v8512)+4) );
         {
            word limit87;
            (* ((( (bPt) var←c25672)+4)+(
                  limit87 = (word) (* (( (hPt) var←c25672)+1) ),
                  BCK(i←v11032, limit87)
                  )) ) = char←v8540;
            };
         };
      }
   else {
      {
         word var←c25704;
         word var←c0291;
SOURCE(12646, 22)
         (*  (hPt) (* (( (ptr) self←v8512)+4) ) ) = BCK(i←v11032, 32768);
SOURCE(12670, 51)
         {
            word pd88;
            pd88 = (* (( (ptr) (* (( (ptr) gf←c26696)+114)/* var←c24488 */  ))+11) );
            (* (( (ptr) self←v8512)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd88 ))))((* (( (ptr) self←v8512)+4) ), char←v8540, pd88);
            };
SOURCE(12723, 37)
         (* (( (ptr) self←v8512)+7) ) = (*  (hPt) (* (( (ptr) self←v8512)+4) ) );
SOURCE(12762, 47)
         (* (( (ptr) self←v8512)+6) ) = (* (( (hPt) (* (( (ptr) self←v8512)+4) ))+1) );
SOURCE(12811, 62)
         if (((* (( (ptr) self←v8512)+7) ) != (i←v11032 + 1))) { goto then089;};
         var←c25704 = (* (( (ptr) self←v8512)+4) );
         {
            word limit90;
            var←c0291 = (word) (* ((( (bPt) var←c25704)+4)+(
                  limit90 = (word) (* (( (hPt) var←c25704)+1) ),
                  BCK(i←v11032, limit90)
                  )) );
            };
         if ((var←c0291 != char←v8540)) {
            then089: ;
SOURCE(12873, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static void OutputTextStreamEraseChar←P2400(self←v8600, char←v8628)
   word self←v8600;
   word char←v8628;
   {
   /* OutputTextStreamEraseChar: */ 
SOURCE(12902, 127)
SOURCE(12965, 64)
   if (((* (( (ptr) self←v8600)+7) ) > 0)) {
SOURCE(12992, 37)
      {
         word idx91;
         (* (( (ptr) self←v8600)+7) ) = (
            idx91 = (word) ((* (( (ptr) self←v8600)+7) ) - 1),
            SGNCK(idx91)
            );
         };
      };
   }

static void OutputTextStreamReset←P2460(self←v8688)
   word self←v8688;
   {
   /* OutputTextStreamReset: */ 
SOURCE(13034, 67)
SOURCE(13081, 20)
   (* (( (ptr) self←v8688)+7) ) = 0;
   }

static word OutputTextStreamGetIndex←P2520(self←v8748)
   word self←v8748;
   {
   word var←c8792;
   /* OutputTextStreamGetIndex: */ 
SOURCE(13106, 88)
SOURCE(13170, 24)
   return((* (( (ptr) self←v8748)+7) ));
   }

static word OutputTextStreamGetLength←P2580(self←v8852)
   word self←v8852;
   {
   word var←c8896;
   /* OutputTextStreamGetLength: */ 
SOURCE(13199, 89)
SOURCE(13264, 24)
   return((* (( (ptr) self←v8852)+7) ));
   }

/* file: IOSimpleStreamsImpl, module: IOSimpleStreamsImpl, compiled at: May 20, 1992 4:32:59 pm PDT */ 
extern void XR←install←IOSimpleStreamsImpl() {
   NoName←Q3612();
   }
extern void XR←run←IOSimpleStreamsImpl() { XR←Start(&globalframe); }