/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: June 7, 1993 4:31:01 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: PixelArrayCCITTG4Impl, module: PixelArrayCCITTG4Impl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
#define XRM←BITNOT(x) (~((word)(x)))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
static char versionStamp[] = "@(#)mob←version [3837653933,1669734024] PixelArrayCCITTG4Impl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W3 r;} W11;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; W7 r;} W15;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef W32 *W32Pt;
typedef struct {W8 f; word r;} W9;
typedef struct {W16 f; W3 r;} W19;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#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) )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
static void NoName←Q13536();
static void PixelArrayCCITTG4Impl←P0();
static word FromStream←P360();
static void FillLineBuffer←P420();
static void Close←P480();
static void MakePure←P540();
static word NoName←Q13596();
static void InternalPure←P600();
static void FormatErrorDesc←P660();
static void WithData←P720();
static word G4PixelArrayFromStream←P780();
static word G4PixelArrayFromData←P840();
static word XeroxCCITT4MaxSampleValue←P900();
static void XeroxCCITT4GetSamples←P960();
static void Inner←P3948();
static word NoName←Q13656();
static void XeroxCCITT4Transfer←P1020();
static void Inner←P4008();
static word NoName←Q13716();
static word XeroxCCITT4Copy←P1080();
static void Reset←P1140();
static word NoName←Q13776();
static void OrBltLine←P1200();
static void altOrBltLine←P1260();
static void MoveLine←P1320();
static void FreeLineBuffer←P1380();
static void ErrorEOF←P1440();
static word GetBitIndex←P1500();
static word InitReverseBits←P1560();
static word Scan←P1620();
static void LogError←P1680();
static word ExpandLineTransitions←P1740();
static void Advance←P1800();
static word InitRunTab←P1860();
static void each←P6000();
static word BuildFastScanTab←P1920();
static word MyGetBytes←P1980();
static void PutGoodBits←P2040();
static word OneDimScan←P2100();
static word FastScan←P2160();
static word BitstringSize←P2280();
static word BitstringFetch←P2340();
static word BitstringVal←P2400();
static word NewTreeNode←P2460();
static void MakeBranch←P2520();
static void DumpRoots←P2580();
static word BuildRoots←P2640();
static word BuildTrees←P2700();
static void Each←P7476();
static void PutB←P2760();
static void Indent←P2820();
static void PutAction←P2880();
static void PutState←P2940();
static void DumpTree←P3000();
static word CountLive←P3060();
static void EnumerateLive←P3120();
static word SetSparsityInner←P3180();
static word SetSparsity←P3240();
static word OptimizeTree←P3300();
static word NoName←Q13836();
static void Plug←P8688();
static void EnumerateTransitions←P3360();
static void V←P8796();
static void W←P8952();
static void B←P9060();
static void MW←P9168();
static void MB←P9276();
static void M←P9384();
static void U←P9492();
static void NoName←Q13896();
static void NoName←Q13956();
static void NoName←Q14016();
static void NoName←Q14076();
static void NoName←Q14136();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[32];} string3 = {1835040, "\205\257\300\323\133\315\323\300\356\032\025\306\100\200\216\257\300\323\133\315\323\300\356\032\025\306\100\274\000\000\000"};
static struct {unsigned f; char r[8];} string4 = {327685, "\010\000\004\023\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\323\133\315\323\300\356\032\025\306\100\164\000\000"};
static struct {unsigned f; char r[28];} string6 = {1572888, "\006\010\034\001\040\001\100\100\001\100\104\001\100\110\001\100\114\001\100\140\001\100\160\001\000\000\000"};
static struct {unsigned f; char r[4];} string7 = {65540, "\241\000\000"};
static struct {unsigned f; char r[4];} string8 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\227\306\253\223\300\107\163\142\023\101\160\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\323\133\315\323\300\356\032\025\306\100\214\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\323\133\315\323\300\356\032\025\306\100\274\000\000"};
static struct {unsigned f; char r[16];} string12 = {983055, "\007\040\040\002\011\000\010\100\140\040\000\020\003\001\000"};
static struct {unsigned f; char r[24];} string13 = {1310744, "\254\205\210\242\000\100\177\257\300\344\275\363\255\300\143\206\036\210\102\264\000\000\000"};
static struct {unsigned f; char r[24];} string14 = {1310744, "\254\205\210\242\000\107\377\257\300\344\275\363\255\300\143\206\036\210\102\234\000\000\000"};
static struct {unsigned f; char r[16];} string15 = {786448, "\254\205\210\241\000\100\377\210\241\000\100\377\000\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\323\133\315\323\300\356\032\025\306\100\230\000\000"};
static struct {unsigned f; char r[12];} string17 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\164\000\000"};
static struct {unsigned f; char r[4];} string19 = {196611, "\004@\360"};
static struct {unsigned f; char r[44];} string20 = {2752556, "\260\006\005\146\151\162\163\164\257\300\015\277\004\146\300\034\367\146\045\112\114\005\004\162\145\163\164\214\257\300\015\277\004\146\300\034\367\146\045\112\114\261\000"};
static struct {unsigned f; char r[28];} string21 = {1572888, "\006\002\000\007\000\040\016\000\003\001\000\000\000\000\014\014\000\014\014\014\014\000\010\001\000\000\000"};
static struct {unsigned f; char r[44];} string22 = {2752556, "\260\006\005\146\151\162\163\164\257\300\240\236\274\171\300\344\000\142\023\100\200\005\004\162\145\163\164\214\257\300\240\236\274\171\300\344\000\142\023\100\200\261\000"};
static struct {unsigned f; char r[4];} string23 = {131074, "\004\007\000"};
static struct {unsigned f; char r[12];} string24 = {524300, "bitIndex\000\000\000"};
static struct {unsigned f; char r[16];} string25 = {786448, "ccittg4error\000\000\000"};
static struct {unsigned f; char r[48];} string26 = {3080240, "Error in CCITT-G4 encoding %g near bit index %g"};
static struct {unsigned f; char r[28];} string27 = {1638428, "InternalPure, sSize = %g\012\000\000"};
static struct {unsigned f; char r[4];} string28 = {196612, "eoi"};
static struct {unsigned f; char r[4];} string29 = {196612, "eof"};
static struct {unsigned f; char r[24];} string30 = {1441816, "InternalPure, runs %g\012\000"};
static struct {unsigned f; char r[12];} string31 = {589836, "scan: %g\012\000\000"};
static struct {unsigned f; char r[36];} string32 = {2097188, "LogError: %g, near bit index %g\012\000\000\000"};
static struct {unsigned f; char r[20];} string33 = {1114132, "Advance, [k: %g, \000\000"};
static struct {unsigned f; char r[12];} string34 = {720908, "sSize: %g, "};
static struct {unsigned f; char r[20];} string35 = {1114132, "useFastScan: %g, \000\000"};
static struct {unsigned f; char r[16];} string36 = {983056, "bitBuffer: %g, "};
static struct {unsigned f; char r[16];} string37 = {917520, "goodBits: %g]\012\000"};
static struct {unsigned f; char r[28];} string38 = {1638428, "(begin: %g, bitindex: %g\012\000\000"};
static struct {unsigned f; char r[12];} string39 = {524300, "eod(0):\012\000\000\000"};
static struct {unsigned f; char r[8];} string40 = {393224, "tree: \000"};
static struct {unsigned f; char r[12];} string41 = {524300, "action: \000\000\000"};
static struct {unsigned f; char r[20];} string42 = {1048596, ", j: %g, state: \000\000\000"};
static struct {unsigned f; char r[12];} string43 = {655372, ", val: %g\012\000"};
static struct {unsigned f; char r[12];} string44 = {720908, "eol: 000001"};
static struct {unsigned f; char r[8];} string45 = {262152, "+1-D\000\000\000"};
static struct {unsigned f; char r[8];} string46 = {262152, "+2-D\000\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "truncatedline\000\000"};
static struct {unsigned f; char r[8];} string48 = {393224, "coding\000"};
static struct {unsigned f; char r[8];} string49 = {327688, "eod:\012\000\000"};
static struct {unsigned f; char r[8];} string50 = {393224, "backup\000"};
static struct {unsigned f; char r[24];} string51 = {1310744, "end: %g transitions:\000\000\000"};
static struct {unsigned f; char r[4];} string52 = {196612, " %g"};
static struct {unsigned f; char r[4];} string53 = {131076, ")\012\000"};
static struct {unsigned f; char r[12];} string54 = {524300, "longscan\000\000\000"};
static struct {unsigned f; char r[20];} string55 = {1179668, "fill: %g, bit: %g\012\000"};
static struct {unsigned f; char r[24];} string56 = {1441816, "InternalPure, bits %g\012\000"};
static struct {unsigned f; char r[24];} string57 = {1376280, "InternalPure, s = %g\012\000\000"};
static struct {unsigned f; char r[20];} string58 = {1114132, "OneDimScan entry\012\000\000"};
static struct {unsigned f; char r[24];} string59 = {1376280, "OneDimScan fill: %g, \000\000"};
static struct {unsigned f; char r[24];} string60 = {1376280, "OneDimScan exit: %g, \000\000"};
static struct {unsigned f; char r[28];} string61 = {1638428, "InternalPure, fSize = %g\012\000\000"};
static struct {unsigned f; char r[12];} string62 = {720908, "XeroxCCITT4"};
static struct {unsigned f; char r[20];} string63 = {1179668, "makePureCalls: %g\012\000"};
static struct {unsigned f; char r[20];} string64 = {1114132, "advanceCalls: %g\012\000\000"};
static struct {unsigned f; char r[16];} string65 = {983056, "resetCalls: %g\012"};
static struct {unsigned f; char r[16];} string66 = {983056, "orBltCalls: %g\012"};
static struct {unsigned f; char r[20];} string67 = {1179668, "moveLineCalls: %g\012\000"};
static struct {unsigned f; char r[24];} string68 = {1310744, "fastScanEntries: %g\012\000\000\000"};
static struct {unsigned f; char r[20];} string69 = {1179668, "fastScanLoops: %g\012\000"};
static struct {unsigned f; char r[20];} string70 = {1179668, "fastScanScans: %g\012\000"};
static struct {unsigned f; char r[20];} string71 = {1114132, "fastScanPass: %g\012\000\000"};
static struct {unsigned f; char r[20];} string72 = {1179668, "fastScanHoriz: %g\012\000"};
static struct {unsigned f; char r[16];} string73 = {786448, "\012(case state\000\000\000"};
static struct {unsigned f; char r[8];} string74 = {458760, "\012    (("};
static struct {unsigned f; char r[4];} string75 = {131076, ") \000"};
static struct {unsigned f; char r[4];} string76 = {65540, ")\000\000"};
static struct {unsigned f; char r[8];} string77 = {327688, "black\000\000"};
static struct {unsigned f; char r[8];} string78 = {327688, "white\000\000"};
static struct {unsigned f; char r[4];} string79 = {65540, "\012\000\000"};
static struct {unsigned f; char r[4];} string80 = {131076, "  \000"};
static struct {unsigned f; char r[8];} string81 = {262152, "null\000\000\000"};
static struct {unsigned f; char r[8];} string82 = {327688, "utest\000\000"};
static struct {unsigned f; char r[8];} string83 = {262152, "emit\000\000\000"};
static struct {unsigned f; char r[8];} string84 = {262152, "scan\000\000\000"};
static struct {unsigned f; char r[8];} string85 = {262152, "pass\000\000\000"};
static struct {unsigned f; char r[4];} string86 = {196612, "one"};
static struct {unsigned f; char r[8];} string87 = {327688, "zeros\000\000"};
static struct {unsigned f; char r[4];} string88 = {131076, "??\000"};
static struct {unsigned f; char r[8];} string89 = {393224, "hwhite\000"};
static struct {unsigned f; char r[8];} string90 = {393224, "hblack\000"};
static struct {unsigned f; char r[8];} string91 = {458760, "hhwhite"};
static struct {unsigned f; char r[8];} string92 = {458760, "hhblack"};
static struct {unsigned f; char r[4];} string93 = {196612, "unc"};
static struct {unsigned f; char r[8];} string94 = {327688, "uncb1\000\000"};
static struct {unsigned f; char r[8];} string95 = {327688, "uncb2\000\000"};
static struct {unsigned f; char r[8];} string96 = {327688, "uncb3\000\000"};
static struct {unsigned f; char r[8];} string97 = {327688, "uncb4\000\000"};
static struct {unsigned f; char r[8];} string98 = {327688, "uncb5\000\000"};
static struct {unsigned f; char r[8];} string99 = {327688, "uncw1\000\000"};
static struct {unsigned f; char r[8];} string100 = {327688, "uncw2\000\000"};
static struct {unsigned f; char r[8];} string101 = {327688, "uncw3\000\000"};
static struct {unsigned f; char r[8];} string102 = {327688, "uncw4\000\000"};
static struct {unsigned f; char r[8];} string103 = {327688, "uncw5\000\000"};
static struct {unsigned f; char r[8];} string104 = {327688, "(NIL)\000\000"};
static struct {unsigned f; char r[8];} string105 = {327688, "[%g] \000\000"};
static struct {unsigned f; char r[16];} string106 = {983056, "(case (peek %g)"};
static struct {unsigned f; char r[8];} string107 = {262152, "((#b\000\000\000"};
static struct {unsigned f; char r[8];} string108 = {262152, "..#b\000\000\000"};
static struct {unsigned f; char r[4];} string109 = {196612, "NIL"};
static struct {unsigned f; char r[16];} string110 = {786448, "(accept %g) \000\000\000"};
static struct {unsigned f; char r[4];} string111 = {65540, "(\000\000"};
static struct {unsigned f; char r[8];} string112 = {262152, " %g \000\000\000"};
static struct {unsigned f; char r[16];} string113 = {851984, "\257\300\344\275\363\255\300\143\206\036\210\100\200\000\000"};
static struct {unsigned f; char r[28];} string114 = {1638425, "\006\006\100\100\001\100\104\001\100\114\001\100\120\001\100\124\001\100\344\010\000\004\100\136\001\000\000"};
static struct {unsigned f; char r[16];} string115 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string116 = {851984, "\257\300\170\002\151\000\300\332\212\147\067\100\150\000\000"};
static struct {unsigned f; char r[16];} string117 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string118 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string119 = {851984, "\257\300\207\330\332\257\300\255\011\025\200\100\150\000\000"};
static struct {unsigned f; char r[16];} string120 = {851984, "\257\300\277\374\326\303\300\302\136\022\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string121 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[32];} string122 = {2031648, "\211\023\022\120\151\170\145\154\101\162\162\141\171\103\154\141\163\163\122\145\160\300\230\052\311\306\300\242\375\035\324"};
static struct {unsigned f; char r[16];} string123 = {851984, "\257\300\170\002\151\000\300\332\212\147\067\100\324\000\000"};
static struct {unsigned f; char r[4];} string124 = {196611, "\004@A"};
static struct {unsigned f; char r[16];} string125 = {851984, "\257\300\045\236\020\057\300\120\375\045\322\100\150\000\000"};
static struct {unsigned f; char r[16];} string126 = {851984, "\257\300\323\133\315\323\300\356\032\025\306\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5[10]; word f15; 
   word f16[136]; word f152; word f153; word f154; 
   word f155; word f156; word f157; word f158; 
   word f159; word f160; word f161; word f162; 
   word f163; word f164; word f165; word f166; 
   word f167; word f168; word f169; word f170; 
   word f171; word f172; word f173; word f174; 
   word f175; word f176; word f177; word f178; 
   word f179; word f180; word f181; word f182; 
   word f183; word f184; word f185; word f186; 
   word f187; word f188; word f189; word f190; 
   word f191; word f192; word f193; word f194; 
   word f195; word f196; word f197; word f198; 
   word f199; word f200; word f201; word f202; 
   word f203; word f204; word f205; word f206; 
   word f207; word f208; word f209; word f210; 
   word f211; word f212; word f213; word f214; 
   word f215; word f216; word f217; word f218; 
   word f219; word f220; word f221; word f222; 
   word f223; word f224; word f225; word f226; 
   word f227; word f228; word f229; word f230; 
   word f231; word f232; word f233; word f234; 
   word f235; word f236; word f237; word f238; 
   word f239; word f240; word f241; word f242; 
   word f243; word f244; word f245; word f246; 
   word f247; word f248; word f249; word f250; 
   word f251; word f252; word f253[9]; 
   } globalframe = {
   {0}, (word) 1, {0}, (word) 16, 
   {0}, (word) EnumerateTransitions←P3360, 0, (word) OptimizeTree←P3300, 
   0, (word) SetSparsity←P3240, 0, (word) SetSparsityInner←P3180, 
   0, (word) EnumerateLive←P3120, 0, (word) CountLive←P3060, 
   0, (word) DumpTree←P3000, 0, (word) PutState←P2940, 
   0, (word) PutAction←P2880, 0, (word) Indent←P2820, 
   0, (word) PutB←P2760, 0, (word) BuildTrees←P2700, 
   0, (word) BuildRoots←P2640, 0, (word) DumpRoots←P2580, 
   0, (word) MakeBranch←P2520, 0, (word) NewTreeNode←P2460, 
   0, (word) BitstringVal←P2400, 0, (word) BitstringFetch←P2340, 
   0, (word) BitstringSize←P2280, 0, (word) FastScan←P2160, 
   0, (word) OneDimScan←P2100, 0, (word) PutGoodBits←P2040, 
   0, (word) MyGetBytes←P1980, 0, (word) BuildFastScanTab←P1920, 
   0, (word) InitRunTab←P1860, 0, (word) Advance←P1800, 
   0, (word) ExpandLineTransitions←P1740, 0, (word) LogError←P1680, 
   0, (word) Scan←P1620, 0, (word) InitReverseBits←P1560, 
   0, (word) GetBitIndex←P1500, 0, (word) ErrorEOF←P1440, 
   0, (word) FreeLineBuffer←P1380, 0, (word) MoveLine←P1320, 
   0, (word) altOrBltLine←P1260, 0, (word) OrBltLine←P1200, 
   0, (word) Reset←P1140, 0, (word) XeroxCCITT4Copy←P1080, 
   0, (word) XeroxCCITT4Transfer←P1020, 0, (word) XeroxCCITT4GetSamples←P960, 
   0, (word) XeroxCCITT4MaxSampleValue←P900, 0, (word) G4PixelArrayFromData←P840, 
   0, (word) G4PixelArrayFromStream←P780, 0, (word) WithData←P720, 
   0, (word) FormatErrorDesc←P660, 0, (word) InternalPure←P600, 
   0, (word) MakePure←P540, 0, (word) Close←P480, 
   0, (word) FillLineBuffer←P420, 0, (word) FromStream←P360, 
   0, (word) PixelArrayCCITTG4Impl←P0, {0}
   };

static void NoName←Q13536()
   {
   register ptr gf←c0845 =  (ptr) &globalframe;
   word var←c61048;
   (* (( (ptr) gf←c0845)+24) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0845)+26) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0845)+28) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0845)+29) ) = (word) XR←GetTypeIndexS((word) (&string7));
   (* (( (ptr) gf←c0845)+38) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string2);
   (* (( (ptr) gf←c0845)+42) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0845)+43) ) = (word) XR←GetTypeIndexS((word) (&string10));
   (* (( (ptr) gf←c0845)+44) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
   (* (( (ptr) gf←c0845)+45) ) = (word) XR←GetTypeIndexS((word) (&string13));
   (* (( (ptr) gf←c0845)+46) ) = (word) XR←GetTypeIndexS((word) (&string14));
   (* (( (ptr) gf←c0845)+47) ) = (word) XR←GetTypeIndexS((word) (&string15));
   (* (( (ptr) gf←c0845)+48) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string17);
   (* (( (ptr) gf←c0845)+50) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
   (* (( (ptr) gf←c0845)+51) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21);
   (* (( (ptr) gf←c0845)+55) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23);
   (*  (ptr) (( (bPt) gf←c0845)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0845)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0845)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0845)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0845)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0845)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0845)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0845)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0845)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0845)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0845)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0845)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0845)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0845)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0845)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0845)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0845)+292) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0845)+296) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0845)+300) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0845)+304) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0845)+308) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0845)+312) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0845)+316) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0845)+320) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0845)+324) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0845)+328) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0845)+332) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0845)+336) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0845)+340) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c0845)+344) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c0845)+348) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c0845)+352) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c0845)+356) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c0845)+360) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c0845)+364) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c0845)+368) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c0845)+372) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c0845)+392) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c0845)+396) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+38) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c0845)+400) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c0845)+404) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c0845)+408) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c0845)+412) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c0845)+416) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c0845)+420) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string68);
   (*  (ptr) (( (bPt) gf←c0845)+424) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string69);
   (*  (ptr) (( (bPt) gf←c0845)+428) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string70);
   (*  (ptr) (( (bPt) gf←c0845)+432) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string71);
   (*  (ptr) (( (bPt) gf←c0845)+436) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string72);
   (*  (ptr) (( (bPt) gf←c0845)+440) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string73);
   (*  (ptr) (( (bPt) gf←c0845)+444) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string74);
   (*  (ptr) (( (bPt) gf←c0845)+448) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string75);
   (*  (ptr) (( (bPt) gf←c0845)+452) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string76);
   (*  (ptr) (( (bPt) gf←c0845)+456) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string77);
   (*  (ptr) (( (bPt) gf←c0845)+460) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string78);
   (*  (ptr) (( (bPt) gf←c0845)+464) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string79);
   (*  (ptr) (( (bPt) gf←c0845)+468) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string80);
   (*  (ptr) (( (bPt) gf←c0845)+472) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string81);
   (*  (ptr) (( (bPt) gf←c0845)+476) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string82);
   (*  (ptr) (( (bPt) gf←c0845)+480) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string83);
   (*  (ptr) (( (bPt) gf←c0845)+484) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string84);
   (*  (ptr) (( (bPt) gf←c0845)+488) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string85);
   (*  (ptr) (( (bPt) gf←c0845)+492) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string86);
   (*  (ptr) (( (bPt) gf←c0845)+496) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string87);
   (*  (ptr) (( (bPt) gf←c0845)+500) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string88);
   (*  (ptr) (( (bPt) gf←c0845)+504) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string89);
   (*  (ptr) (( (bPt) gf←c0845)+508) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string90);
   (*  (ptr) (( (bPt) gf←c0845)+512) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string91);
   (*  (ptr) (( (bPt) gf←c0845)+516) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string92);
   (*  (ptr) (( (bPt) gf←c0845)+520) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string93);
   (*  (ptr) (( (bPt) gf←c0845)+524) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string94);
   (*  (ptr) (( (bPt) gf←c0845)+528) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string95);
   (*  (ptr) (( (bPt) gf←c0845)+532) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string96);
   (*  (ptr) (( (bPt) gf←c0845)+536) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string97);
   (*  (ptr) (( (bPt) gf←c0845)+540) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string98);
   (*  (ptr) (( (bPt) gf←c0845)+544) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string99);
   (*  (ptr) (( (bPt) gf←c0845)+548) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string100);
   (*  (ptr) (( (bPt) gf←c0845)+552) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string101);
   (*  (ptr) (( (bPt) gf←c0845)+556) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string102);
   (*  (ptr) (( (bPt) gf←c0845)+560) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string103);
   (*  (ptr) (( (bPt) gf←c0845)+564) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0845)+568) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string104);
   (*  (ptr) (( (bPt) gf←c0845)+572) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string105);
   (*  (ptr) (( (bPt) gf←c0845)+576) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string106);
   (*  (ptr) (( (bPt) gf←c0845)+580) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string107);
   (*  (ptr) (( (bPt) gf←c0845)+584) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string108);
   (*  (ptr) (( (bPt) gf←c0845)+588) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string109);
   (*  (ptr) (( (bPt) gf←c0845)+592) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string110);
   (*  (ptr) (( (bPt) gf←c0845)+596) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string111);
   (*  (ptr) (( (bPt) gf←c0845)+600) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0845)+24) ), (word) &string112);
   (void) XR←DeclareGlobalFrame((word) "PixelArrayCCITTG4Impl", &globalframe, (word) XR←GetTypeIndex((word) &string113, 0, (word) &string114)
      , (word) (( (bPt) gf←c0845)+1008)/* var←c51640 */ );
   var←c61048 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string115)), 3);
   (* (( (ptr) gf←c0845)+258)/* var←c52760 */  ) = var←c61048;
   var←c61048 = (word) XR←ImportInterface((word) "ImagerPixelArrayPrivate", (word) XR←GetTypeIndexS((word) (&string116)), 2)
   ;
   (* (( (ptr) gf←c0845)+254)/* var←c51704 */  ) = var←c61048;
   (void) XR←ImportProcS(var←c61048, 68681734);
   var←c61048 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string117)), 60);
   (* (( (ptr) gf←c0845)+259)/* var←c52952 */  ) = var←c61048;
   (void) XR←ImportProcS(var←c61048, 267009);
   (void) XR←ImportProcS(var←c61048, 2370822);
   (void) XR←ImportProcS(var←c61048, 68686339);
   (void) XR←ImportProcS(var←c61048, 2107398);
   var←c61048 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string118)), 103);
   (* (( (ptr) gf←c0845)+256)/* var←c51928 */  ) = var←c61048;
   (void) XR←ImportProcS(var←c61048, 528642);
   (void) XR←ImportProcS(var←c61048, 1071364);
   (void) XR←ImportProcS(var←c61048, 2111493);
   (void) XR←ImportProcS(var←c61048, 530946);
   (void) XR←ImportProcS(var←c61048, 67377409);
   (void) XR←ImportProcS(var←c61048, 67648770);
   (void) XR←ImportProcS(var←c61048, 1063171);
   var←c61048 = (word) XR←ImportInterface((word) "RasterOp", (word) XR←GetTypeIndexS((word) (&string119)), 8);
   (* (( (ptr) gf←c0845)+255)/* var←c51896 */  ) = var←c61048;
   var←c61048 = (word) XR←ImportInterface((word) "SafeStorage", (word) XR←GetTypeIndexS((word) (&string120)), 27);
   (* (( (ptr) gf←c0845)+257)/* var←c51960 */  ) = var←c61048;
   (void) XR←ImportProcS(var←c61048, 67109376);
   var←c61048 = (word) XR←ExportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string121)), 13);
   (* (( (ptr) gf←c0845)+260)/* var←c61080 */  ) = var←c61048;
   (void) XR←ExportType((word) "PixelArrayClassRep", (word) XR←GetTypeIndexS((word) (&string122)), (word) XR←GetTypeIndex((word) &string123, 0, (word) &string124)
      );
   var←c61048 = (word) XR←ExportInterface((word) "PixelArrayCCITTG4", (word) XR←GetTypeIndexS((word) (&string125)), 1);
   (* (( (ptr) gf←c0845)+261)/* var←c61112 */  ) = var←c61048;
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+944)/* var←c51384 */ , 67895299, (word) "G4PixelArrayFromStream")
   ;
   var←c61048 = (word) XR←ExportInterface((word) "PixelArrayCCITTG4Private", (word) XR←GetTypeIndexS((word) (&string126)), 6)
   ;
   (* (( (ptr) gf←c0845)+261)/* var←c61112 */  ) = var←c61048;
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+1000)/* var←c51608 */ , 67633154, (word) "FromStream");
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+992)/* var←c51576 */ , 786691, (word) "FillLineBuffer");
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+976)/* var←c51512 */ , 262657, (word) "MakePure");
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+984)/* var←c51544 */ , 262913, (word) "Close");
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+936)/* var←c51352 */ , 67896323, (word) "G4PixelArrayFromData")
   ;
   (void) XR←ExportProcS(var←c61048, (word) (( (bPt) gf←c0845)+712)/* var←c50456 */ , 525570, (word) "DumpRoots");
   }

static void PixelArrayCCITTG4Impl←P0(formal←c092, formal←c090)
   word formal←c092;
   word formal←c090;
   {
   register ptr gf←c61144 =  (ptr) &globalframe;
   /* PixelArrayCCITTG4Impl: */ 
SOURCE(185, 52545)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(1338, 26)
   {
      word var←c51672;
      var←c51672 = XR←NewObject(120, (* (( (ptr) gf←c61144)+28) ));
      (* (( (ptr) var←c51672)+10) ) = 18;
      (* (( (ptr) var←c51672)+11) ) = 18;
      (* (( (ptr) var←c51672)+20) ) =  (word) -1;
      (* (( (ptr) var←c51672)+22) ) =  (word) -1;
      (* (( (ptr) gf←c61144)+16)/* dummy←v3728 */  ) = var←c51672;
      };
SOURCE(7557, 263)
   {
      word pd127;
      pd127 = (* (( (ptr) (* (( (ptr) gf←c61144)+254)/* var←c51704 */  ))+4) );
      (* (( (ptr) gf←c61144)+17)/* classCCITT4PixelArray←v4148 */  ) = (word) ( *( (fPt) ((*  (ptr) pd127 ))))((* (( (ptr) gf←c61144)+99)
          ), (word) (( (bPt) gf←c61144)+928)/* var←c51320 */ , 0, (word) (( (bPt) gf←c61144)+920)/* var←c51288 */ , (word) (( (bPt) gf←c61144)+912)
         /* var←c51256 */ , (word) (( (bPt) gf←c61144)+904)/* var←c51224 */ , pd127);
      };
SOURCE(11811, 34)
   (* (( (ptr) gf←c61144)+18)/* transitionCountEstimate←v4288 */  ) = 400;
SOURCE(17968, 49)
   (* (( (ptr) gf←c61144)+19)/* reverseBitsTab←v4540 */  ) = (word) InitReverseBits←P1560();
SOURCE(26678, 36)
   (* (( (ptr) gf←c61144)+20)/* runTabRef←v4708 */  ) = (word) InitRunTab←P1860();
SOURCE(27958, 49)
   (* (( (ptr) gf←c61144)+21)/* fastScanTab←v5044 */  ) = (word) BuildFastScanTab←P1920();
   }

static word FromStream←P360(st←v6976, bitsPerLine←v7004)
   word st←v6976;
   word bitsPerLine←v7004;
   {
   register ptr gf←c61176 =  (ptr) &globalframe;
   word var←c7048;
   word data←v14492;
   /* FromStream: */ 
SOURCE(2195, 267)
SOURCE(2290, 30)
   data←v14492 = XR←NewObject(120, (* (( (ptr) gf←c61176)+28) ));
   (* (( (ptr) data←v14492)+10) ) = 18;
   (* (( (ptr) data←v14492)+11) ) = 18;
   (* (( (ptr) data←v14492)+20) ) =  (word) -1;
   (* (( (ptr) data←v14492)+22) ) =  (word) -1;
SOURCE(2322, 29)
   (* (( (ptr) data←v14492)+4) ) = bitsPerLine←v7004;
SOURCE(2353, 16)
   (* (( (ptr) data←v14492)+8) ) = st←v6976;
SOURCE(2371, 19)
   (* (( (ptr) data←v14492)+9) ) =  (word) -1;
SOURCE(2413, 34)
   (* (( (ptr) data←v14492)+6) ) = (* (( (ptr) gf←c61176)+4)/* defaultFastScan←v3308 */  );
SOURCE(2449, 13)
   return(data←v14492);
   }

static void FillLineBuffer←P420(data←v7108, s←v7136, invert←v7164)
   word data←v7108;
   word s←v7136;
   word invert←v7164;
   {
   register ptr gf←c61208 =  (ptr) &globalframe;
   word lineBuffer←v14536;
   /* FillLineBuffer: */ 
SOURCE(2468, 1334)
SOURCE(2560, 58)
   lineBuffer←v14536 = (* (( (ptr) data←v7108)+17) );
SOURCE(2620, 1182)
   if ((lineBuffer←v14536 != 0)) {
SOURCE(2645, 1160)
      {
         word copyData←v14580;
SOURCE(2647, 34)
         copyData←v14580 = (* (( (ptr) data←v7108)+16) );
SOURCE(2683, 243)
         if ((copyData←v14580 != 0)) {
SOURCE(2708, 39)
            if (( (int)s←v7136 >=  (int)(* (( (ptr) data←v7108)+22) ))) {
SOURCE(2732, 15)
               (* (( (ptr) data←v7108)+23) ) = 1;
               };
SOURCE(2749, 17)
            (* (( (ptr) data←v7108)+14) ) = s←v7136;
SOURCE(2768, 28)
            (* (( (ptr) data←v7108)+15) ) = 0;
            }
         else {
SOURCE(2807, 57)
            if (((* (( (ptr) data←v7108)+24) ) == 0) || ( (int)(* (( (ptr) data←v7108)+14) ) >  (int)s←v7136)) {
SOURCE(2853, 11)
               (void) Reset←P1140(data←v7108);
               };
SOURCE(2866, 60)
            lab←L100002: ;
            if ( ( (0 == (* (( (ptr) data←v7108)+23) )) ? ( (int)(* (( (ptr) data←v7108)+14) ) !=  (int)s←v7136) : 0 ) ) {
               }
            else {
               goto lab←L100000;
               };
SOURCE(2905, 21)
            (void) Advance←P1800(data←v7108);
            goto lab←L100002;
            lab←L100000: ;
            };
SOURCE(2931, 871)
         if ((0 == (* (( (ptr) data←v7108)+15) ))) {
SOURCE(2964, 838)
SOURCE(2966, 33)
            {
               word scanLength←v14624;
               W2 base←v14652;
               word linePtr←v14680;
SOURCE(2966, 33)
               {
                  word idx128;
                  scanLength←v14624 = (
                     idx128 = (* (( (ptr) data←v7108)+4) ),
                     SGNCK(idx128)
                     );
                  };
SOURCE(3068, 39)
               base←v14652 = (*  (W2Pt) (( (ptr) lineBuffer←v14536)+8) );
SOURCE(3109, 29)
               linePtr←v14680 = base←v14652.f0;
SOURCE(3140, 474)
               if (((* (( (ptr) data←v7108)+16) ) != 0)) {
SOURCE(3168, 446)
                  {
                     word var←c51800;
                     word var←c51832;
                     {
                        word var←c51768;
                        var←c51768 = (* (( (ptr) data←v7108)+16) );
                        {
                           word idx129;
                           word limit130;
                           var←c51800 = (* ((( (ptr) var←c51768)+1)+(
/*1*/      idx129 = (* (( (ptr) data←v7108)+14) ),
/*1*/      limit130 = (*  (ptr) var←c51768 ),
/*1*/      BCK(idx129, limit130)
/*1*/      )) );
                           };
                        };
                     if ((var←c51800 == 0)) {
                        goto lab←L100004;
                        };
                     var←c51832 = XR←GetReferentType(var←c51800);
                     if (((* (( (ptr) gf←c61208)+42) ) == var←c51832)) {
                        {
                           word literal←v14736;
                           literal←v14736 = var←c51800;
SOURCE(3247, 282)
                           if ((0 != invert←v7164)) {
SOURCE(3262, 153)
/*1*/   {
/*1*/      W2 var←c51864;
/*1*/      var←c51864.f0 = literal←v14736;
/*1*/      var←c51864.f1 = 0;
/*1*/      {
/*1*/         word pd131;
/*1*/         pd131 = (* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c61208)+255)/* var←c51896 */  ))+8) ))+1) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd131 ))))(base←v14652, var←c51864, scanLength←v14624, scanLength←v14624, 1, scanLength←v14624, pd131)
/*1*/         ;
/*1*/         };
/*1*/      };
/*1*/   }
                           else {
SOURCE(3415, 114)
/*1*/   (void) Basics←MoveBits(linePtr←v14680, base←v14652.f1, literal←v14736, 0, scanLength←v14624);
/*1*/   };
SOURCE(3531, 14)
                           goto lab←L100003;
                           };
                        }
                     else {
                        if (((* (( (ptr) gf←c61208)+43) ) == var←c51832)) {
                           {
/*1*/   word trans←v14792;
/*1*/   trans←v14792 = var←c51800;
SOURCE(3581, 33)
/*1*/   (* (( (ptr) data←v7108)+18) ) = trans←v14792;
/*1*/   };
                           }
                        else {
                           lab←L100004: ;
SOURCE(3627, 5)
                           (void) XR←RaiseUnnamedError();
                           };
                        };
                     };
                  };
SOURCE(3634, 102)
               (void) MoveLine←P1320(data←v7108, linePtr←v14680, base←v14652.f1, 0, scanLength←v14624, invert←v7164);
SOURCE(3738, 14)
               goto lab←L100003;
               };
            /* c2c skipped dead code */ 
            lab←L100003: ;
SOURCE(3773, 27)
            (* (( (ptr) data←v7108)+15) ) = 1;
            };
         };
      };
   }

static void Close←P480(data←v7224)
   word data←v7224;
   {
   /* Close: */ 
SOURCE(3812, 72)
   (void) (XR←MonitorEntry(data←v7224));
SOURCE(3867, 17)
   (* (( (ptr) data←v7224)+8) ) = 0;
SOURCE(3812, 72)
   (void) (XR←MonitorExit(data←v7224));
   return;
   }

static void MakePure←P540(formal←c0955)
   word formal←c0955;
   {
   W5 var←c61240;
   /* declaration of data←v7284 skipped */ 
   var←c61240.f4/* data←v7284 */  = formal←c0955;
   /* MakePure: */ 
SOURCE(3890, 152)
   (void) (XR←MonitorEntry(var←c61240.f4/* data←v7284 */ ));
SOURCE(3948, 94)
SOURCE(3948, 94)
   {
      word var←c01;
      {
         word var←c0910;
         var←c0910 = (word) &var←c61240;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q13596) ), ( ((word)  (fPt) NoName←Q14136) ), var←c0910);
         };
      /* removed trivial cond node */ 
      };
SOURCE(3890, 152)
   (void) (XR←MonitorExit(var←c61240.f4/* data←v7284 */ ));
   return;
   }

static word NoName←Q13596(formal←c0849)
   word formal←c0849;
   {
SOURCE(4024, 18)
   (void) InternalPure←P600((* ((( (ptr) formal←c0849)+4)) ));
   return(0);
   }

static void InternalPure←P600(data←v7344)
   word data←v7344;
   {
   register ptr gf←c61272 =  (ptr) &globalframe;
   word copyData←v14848;
   /* InternalPure: */ 
SOURCE(4048, 2037)
SOURCE(4084, 34)
   copyData←v14848 = (* (( (ptr) data←v7344)+16) );
SOURCE(4120, 1965)
   if ((copyData←v14848 == 0)) {
SOURCE(4143, 1944)
      {
         word fSize←v14892;
         word untracedZone←v14920;
         word copyLen←v14948 = 0;
         word lim←v14976;
         word nextS←v15004 = 0;
SOURCE(4145, 28)
         {
            word idx132;
            fSize←v14892 = (
               idx132 = (* (( (ptr) data←v7344)+4) ),
               SGNCK(idx132)
               );
            };
SOURCE(4175, 50)
         {
            word pd133;
            pd133 = (* (( (ptr) (* (( (ptr) gf←c61272)+257)/* var←c51960 */  ))+6) );
            untracedZone←v14920 = (word) ( *( (fPt) ((*  (ptr) pd133 ))))(pd133);
            };
SOURCE(4245, 58)
         lim←v14976 =  ( ( (int)(* (( (ptr) data←v7344)+22) ) <  (int)0) ? 2147483647 : (* (( (ptr) data←v7344)+22) ) ) ;
SOURCE(4321, 33)
         (* (( (ptr) gf←c61272)+10)/* makePureCalls←v3532 */  ) = ((* (( (ptr) gf←c61272)+10)/* makePureCalls←v3532 */  ) + 1);
SOURCE(4356, 107)
         if (((* (( (ptr) data←v7344)+7) ) != 0)) {
SOURCE(4395, 68)
            {
               W2 var←c51992;
               var←c51992.f0 = 5;
               var←c51992.f1 = fSize←v14892;
               {
                  word pd134;
                  pd134 = (* (( (ptr) (* (( (ptr) gf←c61272)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd134 ))))((* (( (ptr) data←v7344)+7) ), (* (( (ptr) gf←c61272)+98) ), var←c51992, pd134);
                  };
               };
            };
SOURCE(4465, 1438)
         {
            register word s←v15056 = 0;
            if ((s←v15056 >= lim←v14976)) {
               goto lab←L100010;
               };
            lab←L100013: ;
            if ((0 == (* (( (ptr) data←v7344)+23) ))) {
               }
            else {
               goto lab←L100010;
               };
            {
               word line←v15100 = 0;
               word end←v15128 = 0;
SOURCE(4546, 99)
               if (((* (( (ptr) data←v7344)+7) ) != 0)) {
SOURCE(4585, 60)
                  {
                     W2 var←c52024;
                     var←c52024.f0 = 5;
                     var←c52024.f1 = s←v15056;
                     {
                        word pd135;
                        pd135 = (* (( (ptr) (* (( (ptr) gf←c61272)+256)/* var←c51928 */  ))+61) );
                        (void) ( *( (fPt) ((*  (ptr) pd135 ))))((* (( (ptr) data←v7344)+7) ), (* (( (ptr) gf←c61272)+90) ), var←c52024, pd135);
                        };
                     };
                  };
SOURCE(4647, 57)
               if (((* (( (ptr) data←v7344)+24) ) == 0) || ( (int)(* (( (ptr) data←v7344)+14) ) >  (int)s←v15056)) {
SOURCE(4693, 11)
                  (void) Reset←P1140(data←v7344);
                  };
SOURCE(4706, 60)
               lab←L100016: ;
               if ( ( (0 == (* (( (ptr) data←v7344)+23) )) ? ( (int)(* (( (ptr) data←v7344)+14) ) !=  (int)s←v15056) : 0 ) ) {
                  }
               else {
                  goto lab←L100014;
                  };
SOURCE(4745, 21)
               (void) Advance←P1800(data←v7344);
               goto lab←L100016;
               lab←L100014: ;
SOURCE(4768, 17)
               if ((0 != (* (( (ptr) data←v7344)+23) ))) {
SOURCE(4785, 4)
                  goto lab←L100011;
                  };
SOURCE(4791, 40)
               if (((* (( (ptr) data←v7344)+18) ) == 0)) {
SOURCE(4831, 5)
                  (void) XR←RaiseUnnamedError();
                  };
SOURCE(4838, 35)
               end←v15128 = (*  (ptr) (* (( (ptr) data←v7344)+18) ) );
SOURCE(4875, 644)
               if (((((word) BCK(end←v15128, 67108861) << 5) + 64) >= fSize←v14892)) {
SOURCE(4922, 46)
                  {
                     word var←c52056;
                     word var←c52088;
                     var←c52056 = ((word) ((word) (fSize←v14892 + 31) >> 5) << 2);
                     {
                        word pd136;
                        pd136 = (*  (ptr) untracedZone←v14920 );
                        var←c52088 = (word) ( *( (fPt) ((*  (ptr) pd136 ))))(untracedZone←v14920, var←c52056, (* (( (ptr) gf←c61272)+42) ), pd136)
                        ;
                        };
                     line←v15100 = var←c52088;
                     };
SOURCE(4970, 104)
                  if (((* (( (ptr) data←v7344)+7) ) != 0)) {
SOURCE(5009, 65)
                     {
                        W2 var←c52120;
                        var←c52120.f0 = 5;
                        var←c52120.f1 = fSize←v14892;
                        {
                           word pd137;
                           pd137 = (* (( (ptr) (* (( (ptr) gf←c61272)+256)/* var←c51928 */  ))+61) );
                           (void) ( *( (fPt) ((*  (ptr) pd137 ))))((* (( (ptr) data←v7344)+7) ), (* (( (ptr) gf←c61272)+89) ), var←c52120, pd137);
                           };
                        };
                     };
SOURCE(5076, 81)
                  (void) MoveLine←P1320(data←v7344, line←v15100, 0, 0, fSize←v14892, 0);
                  }
               else {
SOURCE(5166, 355)
                  {
                     word new←v15184;
SOURCE(5168, 67)
                     {
                        word var←c52152;
                        word var←c52184;
                        var←c52152 = ((word) end←v15128 << 2);
                        {
                           word pd138;
                           pd138 = (*  (ptr) untracedZone←v14920 );
                           var←c52184 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))(untracedZone←v14920, (8 + var←c52152), (* (( (ptr) gf←c61272)+43) ), pd138)
                           ;
                           };
                        (* (( (ptr) var←c52184)+1) ) = end←v15128;
                        new←v15184 = var←c52184;
                        };
SOURCE(5237, 102)
                     if (((* (( (ptr) data←v7344)+7) ) != 0)) {
SOURCE(5276, 63)
                        {
                           W2 var←c52216;
                           var←c52216.f0 = 5;
                           var←c52216.f1 = SGNCK(end←v15128);
                           {
/*1*/   word pd139;
/*1*/   pd139 = (* (( (ptr) (* (( (ptr) gf←c61272)+256)/* var←c51928 */  ))+61) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd139 ))))((* (( (ptr) data←v7344)+7) ), (* (( (ptr) gf←c61272)+63) ), var←c52216, pd139);
/*1*/   };
                           };
                        };
SOURCE(5341, 151)
                     {
                        word var←c52248;
                        word var←c0911;
                        {
                           word limit140;
                           var←c52248 = (* (( (ptr) data←v7344)+18) );
                           var←c0911 = (word) (( (ptr) (( (bPt) var←c52248)+8))+(
/*1*/      limit140 = (* (( (ptr) var←c52248)+1) ),
/*1*/      BCK(0, limit140)
/*1*/      ));
                           };
                        {
                           word limit141;
                           (void) Basics←MoveWords((word) (( (ptr) (( (bPt) new←v15184)+8))+(
/*1*/         limit141 = (* (( (ptr) new←v15184)+1) ),
/*1*/         BCK(0, limit141)
/*1*/         )), var←c0911, BCK(end←v15128, 67108861));
                           };
                        };
SOURCE(5494, 13)
                     (*  (ptr) new←v15184 ) = end←v15128;
SOURCE(5509, 10)
                     line←v15100 = new←v15184;
                     };
                  };
SOURCE(5524, 16)
               if ((s←v15056 > lim←v14976)) {
SOURCE(5540, 5)
                  (void) XR←RaiseUnnamedError();
                  };
SOURCE(5547, 320)
               if ((s←v15056 >= copyLen←v14948)) {
SOURCE(5568, 301)
                  {
                     word rLen←v15240;
                     word revised←v15268;
SOURCE(5570, 63)
                     rLen←v15240 =  ( (lim←v14976 < 2147483647) ? lim←v14976 : ((copyLen←v14948 + ((word) copyLen←v14948 >> 1)) + 8) ) ;
SOURCE(5635, 42)
                     {
                        word var←c52280;
                        word var←c52312;
                        var←c52280 = ((word) rLen←v15240 << 2);
                        var←c52312 = XR←NewObject((4 + var←c52280), (* (( (ptr) gf←c61272)+48) ));
                        (*  (ptr) var←c52312 ) = rLen←v15240;
                        revised←v15268 = var←c52312;
                        };
SOURCE(5679, 152)
                     if ((copyLen←v14948 != 0)) {
SOURCE(5699, 132)
                        {
                           word limit142;
                           word limit143;
                           (void) Basics←MoveWords((word) (( (ptr) (( (bPt) revised←v15268)+4))+(
/*1*/         limit142 = (*  (ptr) revised←v15268 ),
/*1*/         BCK(0, limit142)
/*1*/         )), (word) (( (ptr) (( (bPt) copyData←v14848)+4))+(
/*1*/         limit143 = (*  (ptr) copyData←v14848 ),
/*1*/         BCK(0, limit143)
/*1*/         )), BCK(copyLen←v14948, 67108862));
                           };
                        };
SOURCE(5833, 14)
                     copyLen←v14948 = rLen←v15240;
SOURCE(5849, 18)
                     copyData←v14848 = revised←v15268;
                     };
                  };
SOURCE(5872, 18)
               {
                  word limit144;
                  (* ((( (ptr) copyData←v14848)+1)+(
                        limit144 = (*  (ptr) copyData←v14848 ),
                        BCK(s←v15056, limit144)
                        )) ) = line←v15100;
                  };
SOURCE(5892, 11)
               nextS←v15004 = (s←v15056 + 1);
               };
            s←v15056 = (s←v15056 + 1);
            if ((s←v15056 < lim←v14976)) {
               goto lab←L100013;
               };
            lab←L100010: ;
            lab←L100011: ;
            };
SOURCE(5914, 107)
         if (((* (( (ptr) data←v7344)+7) ) != 0)) {
SOURCE(5953, 68)
            {
               W2 var←c52344;
               var←c52344.f0 = 5;
               var←c52344.f1 = nextS←v15004;
               {
                  word pd145;
                  pd145 = (* (( (ptr) (* (( (ptr) gf←c61272)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd145 ))))((* (( (ptr) data←v7344)+7) ), (* (( (ptr) gf←c61272)+60) ), var←c52344, pd145);
                  };
               };
            };
SOURCE(6023, 18)
         (* (( (ptr) data←v7344)+22) ) = nextS←v15004;
SOURCE(6043, 24)
         (* (( (ptr) data←v7344)+16) ) = copyData←v14848;
SOURCE(6069, 16)
         (* (( (ptr) data←v7344)+23) ) = 0;
         };
      };
   }

static void FormatErrorDesc←P660(formal←c0150, data←v7404)
   word formal←c0150;
   word data←v7404;
   {
   register ptr gf←c61304 =  (ptr) &globalframe;
   word var←c0970;
   word var←c0971;
   word var←c0972;
   word error←v15312;
   word errorIndex←v15340;
   /* FormatErrorDesc: */ 
SOURCE(6093, 475)
   /* Return var split */ 
   (void) (XR←MonitorEntry(data←v7404));
SOURCE(6170, 24)
   error←v15312 = (* (( (ptr) data←v7404)+28) );
SOURCE(6196, 34)
   errorIndex←v15340 = (* (( (ptr) data←v7404)+27) );
SOURCE(6232, 43)
   if ((error←v15312 == 0)) {
SOURCE(6252, 23)
      var←c0970 = 0;
      var←c0971 = 0;
      var←c0972 = 0;
      goto lab←L100018;
      };
SOURCE(6277, 16)
   (* (( (ptr) data←v7404)+28) ) = 0;
SOURCE(6295, 19)
   (* (( (ptr) data←v7404)+27) ) = 0;
SOURCE(6316, 37)
   (* (( (ptr) data←v7404)+29) ) = ((* (( (ptr) data←v7404)+29) ) + 1);
SOURCE(6355, 213)
   {
      word var←c52408;
      word var←c52536;
      {
         word var←c52440;
         {
            word var←c52472;
            word var←c52504;
            var←c52472 = XR←NewObject(12, (* (( (ptr) gf←c61304)+51) ));
            var←c52504 = var←c52472;
            (*  (ptr) var←c52504 ) = 1;
            (* (( (ptr) var←c52504)+1) ) = error←v15312;
            (* (( (ptr) var←c52504)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c61304)+51) ));
            var←c52504 = (* (( (ptr) var←c52504)+2) );
            (*  (ptr) var←c52504 ) = 4;
            (* (( (ptr) var←c52504)+1) ) = errorIndex←v15340;
            var←c52440 = var←c52472;
            };
         {
            word pd146;
            pd146 = (* (( (ptr) (* (( (ptr) gf←c61304)+256)/* var←c51928 */  ))+65) );
            var←c52408 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))((* (( (ptr) gf←c61304)+59) ), var←c52440, pd146);
            };
         };
      {
         word var←c52568;
         word var←c52600;
         var←c52568 = XR←NewObject(12, (* (( (ptr) gf←c61304)+55) ));
         var←c52600 = var←c52568;
         (*  (ptr) var←c52600 ) = (* (( (ptr) gf←c61304)+58) );
         (* (( (ptr) var←c52600)+1) ) = error←v15312;
         (* (( (ptr) var←c52600)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c61304)+55) ));
         var←c52600 = (* (( (ptr) var←c52600)+2) );
         (*  (ptr) var←c52600 ) = (* (( (ptr) gf←c61304)+57) );
         {
            word var←c52664;
            var←c52664 = XR←NewObject(4, (* (( (ptr) gf←c61304)+29) ));
            (*  (ptr) var←c52664 ) = errorIndex←v15340;
            (* (( (ptr) var←c52600)+1) ) = var←c52664;
            };
         var←c52536 = var←c52568;
         };
      var←c0970 = 42;
      var←c0971 = var←c52408;
      var←c0972 = var←c52536;
      /* removed tail goto */ 
      };
   lab←L100018: ;
   (void) (XR←MonitorExit(data←v7404));
   (* (( (ptr) formal←c0150)+2) ) = var←c0972;
   (* (( (ptr) formal←c0150)+1) ) = var←c0971;
   (*  (ptr) formal←c0150 ) = var←c0970;
   return;
   }

static void WithData←P720(proc←v7508, ref←v7536)
   word proc←v7508;
   word ref←v7536;
   {
   register ptr gf←c61336 =  (ptr) &globalframe;
   /* WithData: */ 
SOURCE(6574, 302)
SOURCE(6629, 247)
   {
      word var←c52728;
      var←c52728 = ref←v7536;
      if ((var←c52728 == 0)) {
         goto lab←L100019;
         };
      if (((* (( (ptr) gf←c61336)+28) ) == XR←GetReferentType(var←c52728))) {
         {
            word data←v15384;
            data←v15384 = var←c52728;
SOURCE(6666, 10)
            (void) ( *( (fPt) ((*  (ptr) proc←v7508 ))))(data←v15384, proc←v7508);
SOURCE(6678, 198)
            if (((* (( (ptr) data←v15384)+28) ) != 0)) {
SOURCE(6703, 178)
               {
                  W3 desc←v15428;
SOURCE(6705, 51)
                  (void) FormatErrorDesc←P660((word) &desc←v15428, data←v15384);
SOURCE(6758, 118)
                  if ((desc←v15428.f0 != 0)) {
SOURCE(6783, 59)
                     if (((* (( (ptr) data←v15384)+29) ) >= 20)) {
SOURCE(6813, 29)
                        {
                           W3 var←c0157;
                           var←c0157 = desc←v15428;
                           (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c61336)+258)/* var←c52760 */  ))+4) ), (word) &var←c0157);
                           };
                        };
SOURCE(6844, 32)
                     {
                        W3 var←c0158;
                        var←c0158 = desc←v15428;
                        (void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c61336)+258)/* var←c52760 */  ))+5) ), 0, (word) &var←c0158));
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100019: ;
SOURCE(6898, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
   }

static word G4PixelArrayFromStream←P780(st←v7672, lines←v7700, bitsPerLine←v7728)
   word st←v7672;
   word lines←v7700;
   word bitsPerLine←v7728;
   {
   word var←c7772;
   word data←v15472;
   /* G4PixelArrayFromStream: */ 
SOURCE(6925, 244)
SOURCE(7072, 40)
   data←v15472 = (word) FromStream←P360(st←v7672, bitsPerLine←v7728);
SOURCE(7114, 55)
   return((word) G4PixelArrayFromData←P840(data←v15472, lines←v7700, bitsPerLine←v7728));
   }

static word G4PixelArrayFromData←P840(data←v7832, lines←v7860, bitsPerLine←v7888)
   word data←v7832;
   word lines←v7860;
   word bitsPerLine←v7888;
   {
   register ptr gf←c61368 =  (ptr) &globalframe;
   word var←c7932;
   word pa←v15516;
   /* G4PixelArrayFromData: */ 
SOURCE(7175, 376)
SOURCE(7317, 221)
   pa←v15516 = XR←NewObject(32, (* (( (ptr) gf←c61368)+50) ));
   (* (( (ptr) pa←v15516)+1) ) = 1;
   (* (( (ptr) pa←v15516)+2) ) = SGNCK(lines←v7860);
   (* (( (ptr) pa←v15516)+3) ) = SGNCK(bitsPerLine←v7888);
   (* (( (ptr) pa←v15516)+5) ) = (* (( (ptr) gf←c61368)+17)/* classCCITT4PixelArray←v4148 */  );
   (* (( (ptr) pa←v15516)+6) ) = data←v7832;
SOURCE(7540, 11)
   return(pa←v15516);
   }

static word XeroxCCITT4MaxSampleValue←P900(pa←v7992, i←v8020)
   word pa←v7992;
   word i←v8020;
   {
   word var←c8064;
   /* XeroxCCITT4MaxSampleValue: */ 
SOURCE(7823, 134)
SOURCE(7947, 10)
   return(1);
   }

static void XeroxCCITT4GetSamples←P960(pa←v8124, i←v8152, formal←c0956, formal←c0957, formal←c0958, formal←c0959, formal←c0960)
   word pa←v8124;
   word i←v8152;
   word formal←c0956;
   word formal←c0957;
   word formal←c0958;
   word formal←c0959;
   word formal←c0960;
   {
   W11 var←c61400;
   /* declaration of s←v8180 skipped */ 
   /* declaration of f←v8208 skipped */ 
   /* declaration of buffer←v8236 skipped */ 
   /* declaration of start←v8264 skipped */ 
   /* declaration of count←v8292 skipped */ 
   /* declaration of var←c52856 skipped */ 
   (* (( (ptr) &var←c61400)+4)/* s←v8180 */  ) = formal←c0956;
   (* (( (ptr) &var←c61400)+5)/* f←v8208 */  ) = formal←c0957;
   (* (( (ptr) &var←c61400)+6)/* buffer←v8236 */  ) = formal←c0958;
   (* (( (ptr) &var←c61400)+7)/* start←v8264 */  ) = formal←c0959;
   (* (( (ptr) &var←c61400)+8)/* count←v8292 */  ) = formal←c0960;
   /* XeroxCCITT4GetSamples: */ 
SOURCE(7961, 431)
   {
      word tmpAddr147;
      tmpAddr147 = (word) (( (ptr) &var←c61400)+9)/* var←c52856 */ ;
      (*  (ptr) tmpAddr147 ) = ( ((word)  (fPt) Inner←P3948) );
      (* (( (ptr) tmpAddr147) + 1) ) = 1;
      };
SOURCE(8368, 24)
   (void) WithData←P720((word) (( (bPt) &var←c61400)+36)/* var←c52856 */ , (* (( (ptr) pa←v8124)+6) ));
   }

static void Inner←P3948(formal←c0961, formal←c61464)
   word formal←c0961;
   word formal←c61464;
   {
   W5 var←c61432;
   /* declaration of data←v15636 skipped */ 
   formal←c61464 = (formal←c61464 - 36);
   var←c61432.f4/* data←v15636 */  = formal←c0961;
   var←c61432.f0 = formal←c61464;
   /* Inner: */ 
SOURCE(8119, 244)
   (void) (XR←MonitorEntry(var←c61432.f4/* data←v15636 */ ));
SOURCE(8154, 209)
SOURCE(8154, 209)
   {
      word var←c02;
      {
         word var←c0912;
         var←c0912 = (word) &var←c61432;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q13656) ), ( ((word)  (fPt) NoName←Q14076) ), var←c0912);
         };
      /* removed trivial cond node */ 
      };
SOURCE(8119, 244)
   (void) (XR←MonitorExit(var←c61432.f4/* data←v15636 */ ));
   return;
   }

static word NoName←Q13656(formal←c0856)
   word formal←c0856;
   {
   register ptr gf←c0855 =  (ptr) &globalframe;
SOURCE(8230, 23)
   (void) FillLineBuffer←P420((* (( (ptr) formal←c0856)+4) ), (* (( (ptr) (*  (ptr) formal←c0856 ))+4) ), 0);
SOURCE(8255, 108)
   {
      W2 var←c52888;
      W2 var←c52920;
      var←c52888.f0 = 0;
      var←c52888.f1 = (* (( (ptr) (*  (ptr) formal←c0856 ))+5) );
      var←c52920.f0 = 0;
      var←c52920.f1 = 1;
      {
         word pd148;
         pd148 = (* (( (ptr) (* (( (ptr) gf←c0855)+259)/* var←c52952 */  ))+44) );
         (void) ( *( (fPt) ((*  (ptr) pd148 ))))((* (( (ptr) (* (( (ptr) formal←c0856)+4) ))+17) ), var←c52888, var←c52920, (* (( (ptr) (*  (ptr) formal←c0856 ))+6)
             ), (* (( (ptr) (*  (ptr) formal←c0856 ))+7) ), (* (( (ptr) (*  (ptr) formal←c0856 ))+8) ), pd148);
         };
      };
   return(0);
   }

static void XeroxCCITT4Transfer←P1020(pa←v8352, i←v8380, formal←c0962, formal←c0963, formal←c0964, formal←c0965, formal←c0966, formal←c0967)
   word pa←v8352;
   word i←v8380;
   word formal←c0962;
   word formal←c0963;
   word formal←c0964;
   W2 formal←c0965;
   W2 formal←c0966;
   word formal←c0967;
   {
   W15 var←c61496;
   /* declaration of s←v8408 skipped */ 
   /* declaration of f←v8436 skipped */ 
   /* declaration of dst←v8464 skipped */ 
   /* declaration of dstMin←v8492 skipped */ 
   /* declaration of size←v8520 skipped */ 
   /* declaration of function←v8548 skipped */ 
   /* declaration of var←c52984 skipped */ 
   /* declaration of needFree←v15692 skipped */ 
   (* (( (ptr) &var←c61496)+4)/* s←v8408 */  ) = formal←c0962;
   (* (( (ptr) &var←c61496)+5)/* f←v8436 */  ) = formal←c0963;
   (* (( (ptr) &var←c61496)+6)/* dst←v8464 */  ) = formal←c0964;
   (*  (W2Pt) (( (ptr) &var←c61496)+7)/* dstMin←v8492 */  ) = formal←c0965;
   (*  (W2Pt) (( (ptr) &var←c61496)+9)/* size←v8520 */  ) = formal←c0966;
   (* (( (ptr) &var←c61496)+11)/* function←v8548 */  ) = formal←c0967;
   /* XeroxCCITT4Transfer: */ 
SOURCE(8398, 3278)
   {
      word tmpAddr149;
      tmpAddr149 = (word) (( (ptr) &var←c61496)+12)/* var←c52984 */ ;
      (*  (ptr) tmpAddr149 ) = ( ((word)  (fPt) Inner←P4008) );
      (* (( (ptr) tmpAddr149) + 1) ) = 1;
      };
SOURCE(11628, 22)
   (* (( (ptr) &var←c61496)+14)/* needFree←v15692 */  ) = 0;
SOURCE(11652, 24)
   (void) WithData←P720((word) (( (bPt) &var←c61496)+48)/* var←c52984 */ , (* (( (ptr) pa←v8352)+6) ));
   }

static void Inner←P4008(formal←c0968, formal←c61592)
   word formal←c0968;
   word formal←c61592;
   {
   W5 var←c61528;
   /* declaration of data←v15768 skipped */ 
   register ptr gf←c61560 =  (ptr) &globalframe;
   formal←c61592 = (formal←c61592 - 48);
   var←c61528.f4/* data←v15768 */  = formal←c0968;
   var←c61528.f0 = formal←c61592;
   /* Inner: */ 
SOURCE(8587, 3038)
   (void) (XR←MonitorEntry(var←c61528.f4/* data←v15768 */ ));
SOURCE(8620, 3005)
SOURCE(8622, 2848)
SOURCE(8622, 2848)
   {
      word var←c03;
      {
         word var←c0913;
         var←c0913 = (word) &var←c61528;
         var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q13716) ), ( ((word)  (fPt) NoName←Q14016) ), var←c0913);
         };
      switch (var←c03) {
         case 6: 
            /* removed tail goto */ 
            break;
         case 5: 
            goto lab←L100025;
         case 4: 
            goto lab←L100024;
         };
      };
   goto lab←L100052;
   lab←L100024: ;
SOURCE(11513, 23)
   (void) LogError←P1680(var←c61528.f4/* data←v15768 */ , (* (( (ptr) gf←c61560)+61) ), 0);
SOURCE(11538, 37)
   if ((0 != (* (( (ptr) formal←c61592)+14) ))) {
SOURCE(11555, 20)
      (void) FreeLineBuffer←P1380(var←c61528.f4/* data←v15768 */ );
      };
   goto lab←L100052;
   lab←L100025: ;
SOURCE(11586, 37)
   if ((0 != (* (( (ptr) formal←c61592)+14) ))) {
SOURCE(11603, 20)
      (void) FreeLineBuffer←P1380(var←c61528.f4/* data←v15768 */ );
      };
   lab←L100052: ;
SOURCE(8587, 3038)
   (void) (XR←MonitorExit(var←c61528.f4/* data←v15768 */ ));
   return;
   }

static word NoName←Q13716(formal←c0860)
   word formal←c0860;
   {
   register ptr gf←c0859 =  (ptr) &globalframe;
SOURCE(8698, 63)
   {
      word dstRaster←v15796;
      word sSize←v15824;
      word fSize←v15852;
      word copyData←v15880;
      word var←c53048;
      word map←v49960;
SOURCE(8698, 63)
      {
         word var←c53016;
         var←c53016 = (* (( (ptr) (*  (ptr) formal←c0860 ))+6) );
         if ((var←c53016 == 0)) {
            goto lab←L100030;
            };
         if (((* (( (ptr) var←c53016)+6) ) == 0)) {
            dstRaster←v15796 = var←c53016;
            }
         else {
            lab←L100030: ;
            dstRaster←v15796 = 0;
            };
         };
SOURCE(8814, 19)
      {
         word idx150;
         sSize←v15824 = (
            idx150 = (* (( (ptr) (*  (ptr) formal←c0860 ))+9) ),
            SGNCK(idx150)
            );
         };
SOURCE(8835, 19)
      {
         word idx151;
         fSize←v15852 = (
            idx151 = (* (( (ptr) (*  (ptr) formal←c0860 ))+10) ),
            SGNCK(idx151)
            );
         };
SOURCE(8856, 34)
      copyData←v15880 = (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+16) );
SOURCE(8892, 259)
      if ((copyData←v15880 != 0)) {
SOURCE(8917, 40)
         if (( (int)(* (( (ptr) (*  (ptr) formal←c0860 ))+4) ) >=  (int)(* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+22) ))) {
SOURCE(8942, 15)
            (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+23) ) = 1;
SOURCE(8959, 12)
            return(4);
            };
SOURCE(8974, 17)
         (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+14) ) = (* (( (ptr) (*  (ptr) formal←c0860 ))+4) );
SOURCE(8993, 28)
         (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+15) ) = 0;
         }
      else {
SOURCE(9032, 57)
         if (((* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+24) ) == 0) || ( (int)(* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+14) ) >  (int)(* (
            ( (ptr) (*  (ptr) formal←c0860 ))+4) ))) {
SOURCE(9078, 11)
            (void) Reset←P1140((* ((( (ptr) formal←c0860)+4)) ));
            };
SOURCE(9091, 60)
         lab←L100033: ;
         if ( ( (0 == (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+23) )) ? ( (int)(* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+14) ) !=  (int)(* (
            ( (ptr) (*  (ptr) formal←c0860 ))+4) )) : 0 ) ) {
            }
         else {
            goto lab←L100031;
            };
SOURCE(9130, 21)
         (void) Advance←P1800((* ((( (ptr) formal←c0860)+4)) ));
         goto lab←L100033;
         lab←L100031: ;
         };
SOURCE(9156, 2314)
      {
         word tc152;
         if ( ( (((* (( (ptr) (*  (ptr) formal←c0860 ))+11) ) == 4) || ((* (( (ptr) (*  (ptr) formal←c0860 ))+11) ) == 0)) ? (dstRaster←v15796 != 0) : 0 ) ) {
            map←v49960 = dstRaster←v15796;
            var←c53048 = (* (( (ptr) map←v49960)+5) );
            tc152 =  (word) (var←c53048 == 1);
            }
         else {
            tc152 =  (word) 0;
            };
         if (tc152) {
SOURCE(9284, 1802)
            {
               W4 box←v15968;
               W2 base←v15996;
               word bpl←v16024;
               word dstBase←v16052;
               word lineIndex←v16080;
               word pixelIndex←v16108;
               word dmaxs←v16136;
               word sSpace←v16164;
               word dmaxf←v16192;
               word fSpace←v16220;
               word endf←v16248;
               word fSpaceSrc←v16276;
               word bitIndex←v16304;
               word var←c53112;
SOURCE(9286, 44)
               {
                  word map←v49912;
                  map←v49912 = dstRaster←v15796;
                  box←v15968 = (*  (W4Pt) map←v49912 );
                  };
SOURCE(9332, 63)
               base←v15996 = (*  (W2Pt) (( (ptr) dstRaster←v15796)+8) );
SOURCE(9397, 49)
               {
                  word idx153;
                  bpl←v16024 = (
                     idx153 = (* (( (ptr) dstRaster←v15796)+7) ),
                     SGNCK(idx153)
                     );
                  };
SOURCE(9448, 56)
               dstBase←v16052 = base←v15996.f0;
SOURCE(9506, 36)
               lineIndex←v16080 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+7) ) - box←v15968.f0);
SOURCE(9544, 37)
               pixelIndex←v16108 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+8) ) - box←v15968.f1);
SOURCE(9583, 27)
               dmaxs←v16136 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+7) ) + sSize←v15824);
SOURCE(9612, 30)
               sSpace←v16164 = (box←v15968.f2 - dmaxs←v16136);
SOURCE(9671, 27)
               dmaxf←v16192 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+8) ) + fSize←v15852);
SOURCE(9700, 30)
               fSpace←v16220 = (box←v15968.f3 - dmaxf←v16192);
SOURCE(9759, 19)
               endf←v16248 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+5) ) + fSize←v15852);
SOURCE(9780, 40)
               fSpaceSrc←v16276 = ((* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+4) ) - endf←v16248);
SOURCE(9849, 56)
               bitIndex←v16304 = (((lineIndex←v16080 * bpl←v16024) + pixelIndex←v16108) + base←v15996.f1);
SOURCE(9907, 167)
               {
                  word idx154;
                  {
                     word var←c53144;
                     {
                        word var←c53176;
                        {
                           word var←c53208;
                           var←c53208 = (word) XRM←BITOR(lineIndex←v16080, pixelIndex←v16108);
                           var←c53176 = (word) XRM←BITOR(var←c53208, sSpace←v16164);
                           };
                        var←c53144 = (word) XRM←BITOR(var←c53176, fSpace←v16220);
                        };
                     var←c53112 = (word) XRM←BITOR(var←c53144, fSpaceSrc←v16276);
                     };
                  if (((word) XRM←BITOR(var←c53112, (
                        idx154 = (* (( (ptr) (*  (ptr) formal←c0860 ))+5) ),
                        SGNCK(idx154)
                        )) > 2147483647)) {
SOURCE(10049, 25)
                     (void) XR←RaiseBoundsFault();
                     };
                  };
SOURCE(10076, 619)
               if ((copyData←v15880 != 0)) {
SOURCE(10101, 594)
                  {
                     register word sSrc←v16360;
                     register word noName←c53240;
                     sSrc←v16360 = (* (( (ptr) (*  (ptr) formal←c0860 ))+4) );
                     noName←c53240 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+4) ) + (* (( (ptr) (*  (ptr) formal←c0860 ))+9) ));
                     if (( (int)sSrc←v16360 >=  (int)noName←c53240)) {
                        goto lab←L100036;
                        };
                     lab←L100039: ;
SOURCE(10135, 505)
                     {
                        word var←c53304;
                        word var←c53336;
                        {
                           word var←c53272;
                           var←c53272 = (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+16) );
                           {
/*1*/   word idx155;
/*1*/   word limit156;
/*1*/   var←c53304 = (* ((( (ptr) var←c53272)+1)+(
/*1*/         idx155 = (* (( (ptr) (*  (ptr) formal←c0860 ))+4) ),
/*1*/         limit156 = (*  (ptr) var←c53272 ),
/*1*/         BCK(idx155, limit156)
/*1*/         )) );
/*1*/   };
                           };
                        if ((var←c53304 == 0)) {
                           goto lab←L100040;
                           };
                        var←c53336 = XR←GetReferentType(var←c53304);
                        if (((* (( (ptr) gf←c0859)+42) ) == var←c53336)) {
                           {
/*1*/   word literal←v16404;
/*1*/   literal←v16404 = var←c53304;
SOURCE(10200, 173)
/*1*/   {
/*1*/      W2 var←c53368;
/*1*/      W2 var←c53400;
/*1*/      var←c53368.f0 = dstBase←v16052;
/*1*/      var←c53368.f1 = BCK(bitIndex←v16304, 32);
/*1*/      var←c53400.f0 = literal←v16404;
/*1*/      var←c53400.f1 = 0;
/*1*/      {
/*1*/         word pd157;
/*1*/         pd157 = (word) ((* (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c0859)+255)/* var←c51896 */  ))+8) ))+(((unsigned)(* (( (bPt) (*  (ptr) formal←c0860 ))+47)
/*1*/             ) << 29) >> 30)) ).f0);
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd157 ))))(var←c53368, var←c53400, 32, 32, 1, fSize←v15852, pd157);
/*1*/         };
/*1*/      };
/*1*/   };
                           }
                        else {
                           if (((* (( (ptr) gf←c0859)+43) ) == var←c53336)) {
/*1*/   {
/*1*/      word trans←v16460;
/*1*/      trans←v16460 = var←c53304;
SOURCE(10408, 33)
/*1*/      (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+18) ) = trans←v16460;
SOURCE(10443, 197)
/*1*/      if (((* (( (ptr) (*  (ptr) formal←c0860 ))+11) ) == 4)) {
SOURCE(10473, 87)
/*1*/         {
/*1*/            word idx158;
/*1*/            (void) OrBltLine←P1200((* (( (ptr) formal←c0860)+4) ), dstBase←v16052, bitIndex←v16304, (
/*1*/                  idx158 = (* (( (ptr) (*  (ptr) formal←c0860 ))+5) ),
/*1*/                  SGNCK(idx158)
/*1*/                  ), endf←v16248);
/*1*/            };
/*1*/         }
/*1*/      else {
SOURCE(10560, 80)
/*1*/         {
/*1*/            word idx159;
/*1*/            (void) MoveLine←P1320((* (( (ptr) formal←c0860)+4) ), dstBase←v16052, bitIndex←v16304, (
/*1*/                  idx159 = (* (( (ptr) (*  (ptr) formal←c0860 ))+5) ),
/*1*/                  SGNCK(idx159)
/*1*/                  ), endf←v16248, 0);
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   }
                           else {
/*1*/   lab←L100040: ;
SOURCE(10656, 12)
/*1*/   return(4);
/*1*/   };
                           };
                        };
SOURCE(10670, 25)
                     bitIndex←v16304 = (bitIndex←v16304 + bpl←v16024);
                     sSrc←v16360 = (sSrc←v16360 + 1);
                     if (( (int)sSrc←v16360 <  (int)noName←c53240)) {
                        goto lab←L100039;
                        };
                     lab←L100036: ;
                     };
SOURCE(10706, 10)
                  return(5);
                  };
SOURCE(10721, 354)
               {
                  register word sSrc←v16516;
                  register word noName←c53432;
                  sSrc←v16516 = (* (( (ptr) (*  (ptr) formal←c0860 ))+4) );
                  noName←c53432 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+4) ) + (* (( (ptr) (*  (ptr) formal←c0860 ))+9) ));
                  if (( (int)sSrc←v16516 >=  (int)noName←c53432)) {
                     goto lab←L100041;
                     };
                  lab←L100044: ;
SOURCE(10755, 63)
                  lab←L100047: ;
                  if ( ( (0 == (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+23) )) ? ( (int)(* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+14) ) !=  (int)sSrc←v16516) : 0 ) ) {
                     }
                  else {
                     goto lab←L100045;
                     };
SOURCE(10797, 21)
                  (void) Advance←P1800((* ((( (ptr) formal←c0860)+4)) ));
                  goto lab←L100047;
                  lab←L100045: ;
SOURCE(10820, 17)
                  if ((0 != (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+23) ))) {
SOURCE(10837, 12)
                     return(4);
                     };
SOURCE(10851, 197)
                  if (((* (( (ptr) (*  (ptr) formal←c0860 ))+11) ) == 4)) {
SOURCE(10881, 87)
                     {
                        word idx160;
                        (void) OrBltLine←P1200((* (( (ptr) formal←c0860)+4) ), dstBase←v16052, bitIndex←v16304, (
/*1*/   idx160 = (* (( (ptr) (*  (ptr) formal←c0860 ))+5) ),
/*1*/   SGNCK(idx160)
/*1*/   ), endf←v16248);
                        };
                     }
                  else {
SOURCE(10968, 80)
                     {
                        word idx161;
                        (void) MoveLine←P1320((* (( (ptr) formal←c0860)+4) ), dstBase←v16052, bitIndex←v16304, (
/*1*/   idx161 = (* (( (ptr) (*  (ptr) formal←c0860 ))+5) ),
/*1*/   SGNCK(idx161)
/*1*/   ), endf←v16248, 0);
                        };
                     };
SOURCE(11050, 25)
                  bitIndex←v16304 = (bitIndex←v16304 + bpl←v16024);
                  sSrc←v16516 = (sSrc←v16516 + 1);
                  if (( (int)sSrc←v16516 <  (int)noName←c53432)) {
                     goto lab←L100044;
                     };
                  lab←L100041: ;
                  };
               };
            }
         else {
SOURCE(11095, 125)
            if (((* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+17) ) == 0)) {
SOURCE(11127, 76)
               {
                  W4 var←c53464;
                  var←c53464.f0 = 0;
                  var←c53464.f1 = 0;
                  var←c53464.f2 = 1;
                  {
                     word idx162;
                     var←c53464.f3 = (
                        idx162 = (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+4) ),
                        SGNCK(idx162)
                        );
                     };
                  {
                     word pd163;
                     pd163 = (* (( (ptr) (* (( (ptr) gf←c0859)+259)/* var←c52952 */  ))+22) );
                     (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+17) ) = (word) ( *( (fPt) ((*  (ptr) pd163 ))))(var←c53464, 1, 0, pd163);
                     };
                  };
SOURCE(11205, 15)
               (* (( (ptr) (*  (ptr) formal←c0860 ))+14) ) = 1;
               };
SOURCE(11225, 245)
            {
               register word sSrc←v16560;
               register word noName←c53496;
               sSrc←v16560 = (* (( (ptr) (*  (ptr) formal←c0860 ))+4) );
               noName←c53496 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+4) ) + (* (( (ptr) (*  (ptr) formal←c0860 ))+9) ));
               if (( (int)sSrc←v16560 >=  (int)noName←c53496)) {
                  goto lab←L100048;
                  };
               lab←L100051: ;
SOURCE(11259, 26)
               (void) FillLineBuffer←P420((* (( (ptr) formal←c0860)+4) ), sSrc←v16560, 0);
SOURCE(11287, 17)
               if ((0 != (* (( (ptr) (* (( (ptr) formal←c0860)+4) ))+23) ))) {
SOURCE(11304, 12)
                  return(4);
                  };
SOURCE(11318, 152)
               {
                  W2 var←c53528;
                  W2 var←c53560;
                  W2 var←c53592;
                  var←c53528.f0 = ((* (( (ptr) (*  (ptr) formal←c0860 ))+7) ) + (sSrc←v16560 - (* (( (ptr) (*  (ptr) formal←c0860 ))+4) )));
                  var←c53528.f1 = (* (( (ptr) (*  (ptr) formal←c0860 ))+8) );
                  var←c53560.f0 = 0;
                  var←c53560.f1 = (* (( (ptr) (*  (ptr) formal←c0860 ))+5) );
                  var←c53592.f0 = 1;
                  var←c53592.f1 = (* (( (ptr) (*  (ptr) formal←c0860 ))+10) );
                  {
                     word pd164;
                     pd164 = (* (( (ptr) (* (( (ptr) gf←c0859)+259)/* var←c52952 */  ))+49) );
                     (void) ( *( (fPt) ((*  (ptr) pd164 ))))((* (( (ptr) (*  (ptr) formal←c0860 ))+6) ), (* (( (ptr) (* (( (ptr) formal←c0860)+4)
                            ))+17) ), var←c53528, var←c53560, var←c53592, (* (( (ptr) (*  (ptr) formal←c0860 ))+11) ), pd164);
                     };
                  };
               sSrc←v16560 = (sSrc←v16560 + 1);
               if (( (int)sSrc←v16560 <  (int)noName←c53496)) {
                  goto lab←L100051;
                  };
               lab←L100048: ;
               };
            };
         };
SOURCE(11484, 10)
      return(5);
      };
   /* c2c skipped dead code */ 
   }

static word XeroxCCITT4Copy←P1080(pa←v32256)
   word pa←v32256;
   {
   register ptr gf←c61624 =  (ptr) &globalframe;
   word var←c32300;
   /* XeroxCCITT4Copy: */ 
SOURCE(11682, 123)
SOURCE(11744, 27)
   (void) WithData←P720((word) (( (bPt) gf←c61624)+976)/* var←c51512 */ , (* (( (ptr) pa←v32256)+6) ));
SOURCE(11773, 19)
   (*  (ptr) pa←v32256 ) = 1;
SOURCE(11794, 11)
   return(pa←v32256);
   }

static void Reset←P1140(data←v8608)
   word data←v8608;
   {
   W7 var←c61656;
   register ptr gf←c61688 =  (ptr) &globalframe;
   word scanLength←v16604;
   word tSize←v16632;
   word untracedZone←v16660;
   /* Reset: */ 
SOURCE(11847, 1016)
SOURCE(11883, 33)
   {
      word idx165;
      scanLength←v16604 = (
         idx165 = (* (( (ptr) data←v8608)+4) ),
         SGNCK(idx165)
         );
      };
SOURCE(11918, 57)
   {
      word x166;
      word idx167;
      tSize←v16632 = (
         idx167 = (word) ((x166 = (* (( (ptr) gf←c61688)+18)/* transitionCountEstimate←v4288 */  ),
            MIN((int)(word), x166, scanLength←v16604)) + 3),
         SGNCK(idx167)
         );
      };
SOURCE(11977, 50)
   {
      word pd168;
      pd168 = (* (( (ptr) (* (( (ptr) gf←c61688)+257)/* var←c51960 */  ))+6) );
      untracedZone←v16660 = (word) ( *( (fPt) ((*  (ptr) pd168 ))))(pd168);
      };
SOURCE(12048, 27)
   (* (( (ptr) gf←c61688)+12)/* resetCalls←v3588 */  ) = ((* (( (ptr) gf←c61688)+12)/* resetCalls←v3588 */  ) + 1);
SOURCE(12077, 26)
   (* (( (ptr) data←v8608)+10) ) = 0;
SOURCE(12105, 18)
   (* (( (ptr) data←v8608)+12) ) = 0;
SOURCE(12125, 17)
   (* (( (ptr) data←v8608)+13) ) = 0;
SOURCE(12144, 16)
   (* (( (ptr) data←v8608)+23) ) = 0;
SOURCE(12162, 34)
   if (((* (( (ptr) data←v8608)+16) ) != 0)) {
SOURCE(12190, 6)
      return;
      };
SOURCE(12198, 55)
   if (((* (( (ptr) data←v8608)+24) ) == 0)) {
SOURCE(12223, 30)
      (* (( (ptr) data←v8608)+24) ) = (word) BuildRoots←P2640((* ((( (ptr) gf←c61688)+16)/* dummy←v3728 */ ) ));
      };
SOURCE(12255, 18)
   (* (( (ptr) data←v8608)+14) ) =  (word) -1;
SOURCE(12275, 28)
   (* (( (ptr) data←v8608)+15) ) = 0;
SOURCE(12305, 109)
   if (((* (( (ptr) data←v8608)+18) ) == 0)) {
SOURCE(12345, 69)
      {
         word var←c53624;
         {
            word var←c53656;
            word var←c53688;
            var←c53656 = ((word) tSize←v16632 << 2);
            {
               word pd169;
               pd169 = (*  (ptr) untracedZone←v16660 );
               var←c53688 = (word) ( *( (fPt) ((*  (ptr) pd169 ))))(untracedZone←v16660, (8 + var←c53656), (* (( (ptr) gf←c61688)+43) ), pd169)
               ;
               };
            (* (( (ptr) var←c53688)+1) ) = tSize←v16632;
            var←c53624 = var←c53688;
            };
         (* (( (ptr) data←v8608)+18) ) = var←c53624;
         };
      };
SOURCE(12416, 33)
   {
      word var←c53720;
      var←c53720 = (* (( (ptr) data←v8608)+18) );
      {
         word limit170;
         (* ((( (ptr) var←c53720)+2)+(
               limit170 = (* (( (ptr) var←c53720)+1) ),
               BCK(0, limit170)
               )) ) =  (word) -1;
         };
      };
SOURCE(12451, 41)
   {
      word var←c53752;
      var←c53752 = (* (( (ptr) data←v8608)+18) );
      {
         word limit171;
         (* ((( (ptr) var←c53752)+2)+(
               limit171 = (* (( (ptr) var←c53752)+1) ),
               BCK(1, limit171)
               )) ) = scanLength←v16604;
         };
      };
SOURCE(12494, 41)
   {
      word var←c53784;
      var←c53784 = (* (( (ptr) data←v8608)+18) );
      {
         word limit172;
         (* ((( (ptr) var←c53784)+2)+(
               limit172 = (* (( (ptr) var←c53784)+1) ),
               BCK(2, limit172)
               )) ) = scanLength←v16604;
         };
      };
SOURCE(12537, 33)
   (*  (ptr) (* (( (ptr) data←v8608)+18) ) ) = 3;
SOURCE(12572, 99)
   if (((* (( (ptr) data←v8608)+19) ) == 0)) {
SOURCE(12607, 64)
      {
         word var←c53816;
         {
            word var←c53848;
            word var←c53880;
            var←c53848 = ((word) tSize←v16632 << 2);
            {
               word pd173;
               pd173 = (*  (ptr) untracedZone←v16660 );
               var←c53880 = (word) ( *( (fPt) ((*  (ptr) pd173 ))))(untracedZone←v16660, (8 + var←c53848), (* (( (ptr) gf←c61688)+43) ), pd173)
               ;
               };
            (* (( (ptr) var←c53880)+1) ) = tSize←v16632;
            var←c53816 = var←c53880;
            };
         (* (( (ptr) data←v8608)+19) ) = var←c53816;
         };
      };
SOURCE(12673, 50)
   if (((* (( (ptr) data←v8608)+8) ) == 0)) {
SOURCE(12700, 15)
      (* (( (ptr) data←v8608)+23) ) = 1;
SOURCE(12717, 6)
      return;
      };
SOURCE(12726, 137)
   if (( (int)(* (( (ptr) data←v8608)+9) ) <  (int)0)) {
SOURCE(12753, 55)
SOURCE(12753, 55)
      {
         /* declaration of var←c04 skipped */ 
         /* declaration of var←c05 skipped */ 
         var←c61656.f4/* var←c04 */  = (* (( (ptr) data←v8608)+8) );
         var←c61656.f5/* var←c05 */  = (* (( (ptr) (* (( (ptr) gf←c61688)+256)/* var←c51928 */  ))+29) );
         {
            /* declaration of var←c06 skipped */ 
            {
               word var←c07;
               {
                  word var←c0914;
                  var←c0914 = (word) &var←c61656;
                  var←c07 = (word) XR←Enable(( ((word)  (fPt) NoName←Q13776) ), ( ((word)  (fPt) NoName←Q13956) ), var←c0914);
                  };
               if ((var←c07 == 7)) {
                  goto lab←L100054;
                  };
               };
            (* (( (ptr) data←v8608)+9) ) = var←c61656.f6/* var←c06 */ ;
            };
         };
      lab←L100054: ;
      }
   else {
SOURCE(12823, 40)
      {
         word pd174;
         pd174 = (* (( (ptr) (* (( (ptr) gf←c61688)+256)/* var←c51928 */  ))+30) );
         (void) ( *( (fPt) ((*  (ptr) pd174 ))))((* (( (ptr) data←v8608)+8) ), (* (( (ptr) data←v8608)+9) ), pd174);
         };
      };
   }

static word NoName←Q13776(formal←c0863)
   word formal←c0863;
   {
SOURCE(12753, 55)
   {
      word pd175;
      pd175 = (* (( (ptr) formal←c0863)+5) );
      (* (( (ptr) formal←c0863)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd175 ))))((* ((( (ptr) formal←c0863)+4)) ), pd175);
      };
   return(0);
   }

static void OrBltLine←P1200(data←v8668, dstBase←v8696, dstBitIndex←v8724, min←v8752, max←v8780)
   word data←v8668;
   word dstBase←v8696;
   word dstBitIndex←v8724;
   word min←v8752;
   word max←v8780;
   {
   register ptr gf←c61720 =  (ptr) &globalframe;
   /* OrBltLine: */ 
SOURCE(12869, 1486)
SOURCE(12998, 27)
   (* (( (ptr) gf←c61720)+13)/* orBltCalls←v3616 */  ) = ((* (( (ptr) gf←c61720)+13)/* orBltCalls←v3616 */  ) + 1);
SOURCE(13027, 1328)
   if ((min←v8752 < max←v8780)) {
SOURCE(13045, 1321)
      {
         word rp←v16712;
         word start←v16740;
         word fill←v16768 =  (word) -1;
         word p0←v16796;
         word c0←v16824;
SOURCE(13047, 86)
         rp←v16712 = ((* (( (ptr) data←v8668)+18) ) + 12);
SOURCE(13176, 75)
         p0←v16796 = (dstBase←v8696 + ((word) ((word) dstBitIndex←v8724 >> 5) << 2));
SOURCE(13253, 34)
         c0←v16824 = (dstBitIndex←v8724 & 037);
SOURCE(13289, 44)
         lab←L100059: ;
         if (((* (( (ptr) rp←v16712)+1) ) <= min←v8752)) {
            }
         else {
            goto lab←L100057;
            };
SOURCE(13311, 22)
         rp←v16712 = (rp←v16712 + 8);
         goto lab←L100059;
         lab←L100057: ;
SOURCE(13365, 23)
         {
            word x176;
            start←v16740 = (x176 = (*  (ptr) rp←v16712 ),
               MAX( (unsigned) , x176, min←v8752));
            };
SOURCE(13418, 937)
         lab←L100062: ;
         if ((start←v16740 < max←v8780)) {
            }
         else {
            goto lab←L100060;
            };
         {
            word lim←v16868;
SOURCE(13439, 31)
            {
               word x177;
               lim←v16868 = (x177 = (* (( (ptr) rp←v16712)+1) ),
                  MIN( (unsigned) , x177, max←v8780));
               };
SOURCE(13472, 843)
            if ((lim←v16868 > start←v16740)) {
SOURCE(13492, 823)
SOURCE(13494, 33)
               {
                  word dstStart←v16912;
                  word p←v16940;
                  word dstMod←v16968;
                  word dstLim←v16996;
                  word w←v17024;
                  word words←v17052;
SOURCE(13494, 33)
                  dstStart←v16912 = ((start←v16740 - min←v8752) + c0←v16824);
SOURCE(13529, 46)
                  p←v16940 = (p0←v16796 + ((word) ((word) dstStart←v16912 >> 5) << 2));
SOURCE(13577, 35)
                  dstMod←v16968 = (dstStart←v16912 & 037);
SOURCE(13614, 37)
                  dstLim←v16996 = (dstMod←v16968 + (lim←v16868 - start←v16740));
SOURCE(13653, 40)
                  w←v17024 = (word) XRM←BITRSHIFT(fill←v16768, dstMod←v16968);
SOURCE(13695, 30)
                  words←v17052 = ((word) dstLim←v16996 >> 5);
SOURCE(13727, 475)
                  if ((words←v17052 != 0)) {
SOURCE(13747, 28)
                     {
                        word var←c53912;
                        var←c53912 = (word) XRM←BITOR((*  (ptr) p←v16940 ), w←v17024);
                        (*  (ptr) p←v16940 ) = var←c53912;
                        };
SOURCE(13777, 18)
                     p←v16940 = (p←v16940 + 4);
SOURCE(13797, 8)
                     w←v17024 = fill←v16768;
SOURCE(13807, 363)
                     if ((words←v17052 > 1)) {
SOURCE(13825, 345)
SOURCE(13827, 17)
                        words←v17052 = (words←v17052 - 1);
SOURCE(13846, 99)
                        lab←L100067: ;
                        if ((words←v17052 >= 4)) {
                           }
                        else {
                           goto lab←L100065;
                           };
SOURCE(13866, 8)
                        (*  (ptr) p←v16940 ) = w←v17024;
SOURCE(13876, 8)
                        (* (( (ptr) p←v16940)+1) ) = w←v17024;
SOURCE(13886, 8)
                        (* (( (ptr) p←v16940)+2) ) = w←v17024;
SOURCE(13896, 8)
                        (* (( (ptr) p←v16940)+3) ) = w←v17024;
SOURCE(13906, 20)
                        p←v16940 = (p←v16940 + 16);
SOURCE(13928, 17)
                        words←v17052 = (words←v17052 - 4);
                        goto lab←L100067;
                        lab←L100065: ;
SOURCE(13956, 18)
                        if ((words←v17052 == 0)) {
SOURCE(13974, 14)
                           goto lab←L100064;
                           };
SOURCE(13990, 8)
                        (*  (ptr) p←v16940 ) = w←v17024;
SOURCE(14000, 18)
                        p←v16940 = (p←v16940 + 4);
SOURCE(14020, 18)
                        if ((words←v17052 == 1)) {
SOURCE(14038, 14)
                           goto lab←L100064;
                           };
SOURCE(14054, 8)
                        (*  (ptr) p←v16940 ) = w←v17024;
SOURCE(14064, 18)
                        p←v16940 = (p←v16940 + 4);
SOURCE(14084, 18)
                        if ((words←v17052 == 2)) {
SOURCE(14102, 14)
                           goto lab←L100064;
                           };
SOURCE(14118, 8)
                        (*  (ptr) p←v16940 ) = w←v17024;
SOURCE(14128, 18)
                        p←v16940 = (p←v16940 + 4);
                        goto lab←L100068;
                        lab←L100064: ;
                        lab←L100068: ;
                        };
SOURCE(14173, 29)
                     if (((dstLim←v16996 & 037) == 0)) {
SOURCE(14202, 11)
                        goto lab←L100063;
                        };
                     };
SOURCE(14218, 46)
                  w←v17024 = (w←v17024 - (word) XRM←BITRSHIFT(fill←v16768, (dstLim←v16996 & 037)));
SOURCE(14266, 28)
                  {
                     word var←c53944;
                     var←c53944 = (word) XRM←BITOR((*  (ptr) p←v16940 ), w←v17024);
                     (*  (ptr) p←v16940 ) = var←c53944;
                     };
                  };
               goto lab←L100069;
               lab←L100063: ;
               lab←L100069: ;
               };
SOURCE(14318, 22)
            rp←v16712 = (rp←v16712 + 8);
SOURCE(14342, 13)
            start←v16740 = (*  (ptr) rp←v16712 );
            };
         goto lab←L100062;
         lab←L100060: ;
         };
      };
   }

static void altOrBltLine←P1260(data←v8852, dstBase←v8880, dstBitIndex←v8908, min←v8936, max←v8964)
   word data←v8852;
   word dstBase←v8880;
   word dstBitIndex←v8908;
   word min←v8936;
   word max←v8964;
   {
   register ptr gf←c61752 =  (ptr) &globalframe;
   /* altOrBltLine: */ 
SOURCE(14373, 1530)
SOURCE(14505, 27)
   (* (( (ptr) gf←c61752)+13)/* orBltCalls←v3616 */  ) = ((* (( (ptr) gf←c61752)+13)/* orBltCalls←v3616 */  ) + 1);
SOURCE(14534, 1369)
   if ((min←v8936 < max←v8964)) {
SOURCE(14552, 1356)
      {
         word rp←v17096;
         word shift←v17124;
         word p←v17152;
         word w←v17180 = 0;
         word fill←v17208 = 0;
SOURCE(14554, 86)
         rp←v17096 = ((* (( (ptr) data←v8852)+18) ) + 12);
SOURCE(14642, 37)
         shift←v17124 = (dstBitIndex←v8908 & 037);
SOURCE(14681, 72)
         p←v17152 = (dstBase←v8880 + ((word) ((word) dstBitIndex←v8908 >> 5) << 2));
SOURCE(14784, 68)
         lab←L100072: ;
         if (((*  (ptr) rp←v17096 ) <= min←v8936)) {
            }
         else {
            goto lab←L100070;
            };
SOURCE(14806, 18)
         rp←v17096 = (rp←v17096 + 4);
SOURCE(14826, 26)
         fill←v17208 = (word) XRM←BITNOT(fill←v17208);
         goto lab←L100072;
         lab←L100070: ;
SOURCE(14863, 890)
         lab←L100075: ;
         if ((min←v8936 < max←v8964)) {
            }
         else {
            goto lab←L100073;
            };
         {
            word newMin←v17252;
            word outLim←v17280;
            word words←v17308;
SOURCE(14882, 30)
            {
               word x178;
               newMin←v17252 = (x178 = (*  (ptr) rp←v17096 ),
                  MIN( (unsigned) , max←v8964, x178));
               };
SOURCE(14914, 37)
            outLim←v17280 = ((newMin←v17252 - min←v8936) + shift←v17124);
SOURCE(14953, 30)
            words←v17308 = ((word) outLim←v17280 >> 5);
SOURCE(14985, 703)
            if ((fill←v17208 == 0)) {
SOURCE(15004, 97)
               if ((words←v17308 != 0)) {
SOURCE(15024, 50)
                  if ((w←v17180 != 0)) {
SOURCE(15039, 28)
                     {
                        word var←c53976;
                        var←c53976 = (word) XRM←BITOR((*  (ptr) p←v17152 ), w←v17180);
                        (*  (ptr) p←v17152 ) = var←c53976;
                        };
SOURCE(15069, 5)
                     w←v17180 = 0;
                     };
SOURCE(15077, 24)
                  p←v17152 = (p←v17152 + ((word) words←v17308 << 2));
                  };
SOURCE(15106, 22)
               shift←v17124 = (outLim←v17280 & 037);
               }
            else {
SOURCE(15139, 37)
               w←v17180 = (w←v17180 + (word) XRM←BITRSHIFT(fill←v17208, shift←v17124));
SOURCE(15178, 443)
               if ((words←v17308 != 0)) {
SOURCE(15198, 28)
                  {
                     word var←c54008;
                     var←c54008 = (word) XRM←BITOR((*  (ptr) p←v17152 ), w←v17180);
                     (*  (ptr) p←v17152 ) = var←c54008;
                     };
SOURCE(15228, 18)
                  p←v17152 = (p←v17152 + 4);
SOURCE(15248, 8)
                  w←v17180 = fill←v17208;
SOURCE(15258, 363)
                  if ((words←v17308 > 1)) {
SOURCE(15276, 345)
SOURCE(15278, 17)
                     words←v17308 = (words←v17308 - 1);
SOURCE(15297, 99)
                     lab←L100079: ;
                     if ((words←v17308 >= 4)) {
                        }
                     else {
                        goto lab←L100077;
                        };
SOURCE(15317, 8)
                     (*  (ptr) p←v17152 ) = w←v17180;
SOURCE(15327, 8)
                     (* (( (ptr) p←v17152)+1) ) = w←v17180;
SOURCE(15337, 8)
                     (* (( (ptr) p←v17152)+2) ) = w←v17180;
SOURCE(15347, 8)
                     (* (( (ptr) p←v17152)+3) ) = w←v17180;
SOURCE(15357, 20)
                     p←v17152 = (p←v17152 + 16);
SOURCE(15379, 17)
                     words←v17308 = (words←v17308 - 4);
                     goto lab←L100079;
                     lab←L100077: ;
SOURCE(15407, 18)
                     if ((words←v17308 == 0)) {
SOURCE(15425, 14)
                        goto lab←L100076;
                        };
SOURCE(15441, 8)
                     (*  (ptr) p←v17152 ) = w←v17180;
SOURCE(15451, 18)
                     p←v17152 = (p←v17152 + 4);
SOURCE(15471, 18)
                     if ((words←v17308 == 1)) {
SOURCE(15489, 14)
                        goto lab←L100076;
                        };
SOURCE(15505, 8)
                     (*  (ptr) p←v17152 ) = w←v17180;
SOURCE(15515, 18)
                     p←v17152 = (p←v17152 + 4);
SOURCE(15535, 18)
                     if ((words←v17308 == 2)) {
SOURCE(15553, 14)
                        goto lab←L100076;
                        };
SOURCE(15569, 8)
                     (*  (ptr) p←v17152 ) = w←v17180;
SOURCE(15579, 18)
                     p←v17152 = (p←v17152 + 4);
                     goto lab←L100080;
                     lab←L100076: ;
                     lab←L100080: ;
                     };
                  };
SOURCE(15627, 22)
               shift←v17124 = (outLim←v17280 & 037);
SOURCE(15651, 37)
               w←v17180 = (w←v17180 - (word) XRM←BITRSHIFT(fill←v17208, shift←v17124));
               };
SOURCE(15693, 18)
            rp←v17096 = (rp←v17096 + 4);
SOURCE(15713, 12)
            min←v8936 = newMin←v17252;
SOURCE(15727, 26)
            fill←v17208 = (word) XRM←BITNOT(fill←v17208);
            };
         goto lab←L100075;
         lab←L100073: ;
SOURCE(15764, 139)
         if ( ( (w←v17180 != 0) ? (shift←v17124 != 0) : 0 ) ) {
SOURCE(15792, 113)
            {
               word mask←v17352;
SOURCE(15794, 47)
               mask←v17352 = (word) XRM←BITRSHIFT( (word) -1, shift←v17124);
SOURCE(15843, 30)
               w←v17180 = (w←v17180 - (word) XRM←BITAND(w←v17180, mask←v17352));
SOURCE(15875, 28)
               {
                  word var←c54040;
                  var←c54040 = (word) XRM←BITOR(w←v17180, (*  (ptr) p←v17152 ));
                  (*  (ptr) p←v17152 ) = var←c54040;
                  };
               };
            };
         };
      };
   }

static void MoveLine←P1320(data←v9036, dstBase←v9064, dstBitIndex←v9092, min←v9120, max←v9148, invert←v9176)
   word data←v9036;
   word dstBase←v9064;
   word dstBitIndex←v9092;
   word min←v9120;
   word max←v9148;
   word invert←v9176;
   {
   register ptr gf←c61784 =  (ptr) &globalframe;
   /* MoveLine: */ 
SOURCE(15915, 1499)
SOURCE(16065, 33)
   (* (( (ptr) gf←c61784)+14)/* moveLineCalls←v3644 */  ) = ((* (( (ptr) gf←c61784)+14)/* moveLineCalls←v3644 */  ) + 1);
SOURCE(16100, 1314)
   if ((min←v9120 < max←v9148)) {
SOURCE(16118, 1301)
      {
         word rp←v17396;
         word shift←v17424;
         word p←v17452;
         word w←v17480 = 0;
         word fill←v17508;
SOURCE(16120, 86)
         rp←v17396 = ((* (( (ptr) data←v9036)+18) ) + 12);
SOURCE(16208, 37)
         shift←v17424 = (dstBitIndex←v9092 & 037);
SOURCE(16247, 72)
         p←v17452 = (dstBase←v9064 + ((word) ((word) dstBitIndex←v9092 >> 5) << 2));
SOURCE(16334, 44)
         fill←v17508 =  ( (0 != invert←v9176) ?  (word) -1 : 0 ) ;
SOURCE(16380, 68)
         lab←L100083: ;
         if (((*  (ptr) rp←v17396 ) <= min←v9120)) {
            }
         else {
            goto lab←L100081;
            };
SOURCE(16402, 18)
         rp←v17396 = (rp←v17396 + 4);
SOURCE(16422, 26)
         fill←v17508 = (word) XRM←BITNOT(fill←v17508);
         goto lab←L100083;
         lab←L100081: ;
SOURCE(16459, 89)
         if ((shift←v17424 != 0)) {
SOURCE(16479, 8)
            w←v17480 = (*  (ptr) p←v17452 );
SOURCE(16489, 59)
            {
               word var←c54072;
               word var←c0915;
               var←c54072 = (word) XRM←BITLSHIFT(w←v17480, shift←v17424);
               var←c0915 = (word) XRM←BITRSHIFT(var←c54072, shift←v17424);
               w←v17480 = (w←v17480 - var←c0915);
               };
            };
SOURCE(16553, 713)
         lab←L100086: ;
         if ((min←v9120 < max←v9148)) {
            }
         else {
            goto lab←L100084;
            };
         {
            word newMin←v17552;
            word outLim←v17580;
            word words←v17608;
SOURCE(16572, 30)
            {
               word x179;
               newMin←v17552 = (x179 = (*  (ptr) rp←v17396 ),
                  MIN( (unsigned) , max←v9148, x179));
               };
SOURCE(16604, 37)
            outLim←v17580 = ((newMin←v17552 - min←v9120) + shift←v17424);
SOURCE(16643, 30)
            words←v17608 = ((word) outLim←v17580 >> 5);
SOURCE(16675, 37)
            w←v17480 = (w←v17480 + (word) XRM←BITRSHIFT(fill←v17508, shift←v17424));
SOURCE(16714, 423)
            if ((words←v17608 != 0)) {
SOURCE(16734, 8)
               (*  (ptr) p←v17452 ) = w←v17480;
SOURCE(16744, 18)
               p←v17452 = (p←v17452 + 4);
SOURCE(16764, 8)
               w←v17480 = fill←v17508;
SOURCE(16774, 363)
               if ((words←v17608 > 1)) {
SOURCE(16792, 345)
SOURCE(16794, 17)
                  words←v17608 = (words←v17608 - 1);
SOURCE(16813, 99)
                  lab←L100090: ;
                  if ((words←v17608 >= 4)) {
                     }
                  else {
                     goto lab←L100088;
                     };
SOURCE(16833, 8)
                  (*  (ptr) p←v17452 ) = w←v17480;
SOURCE(16843, 8)
                  (* (( (ptr) p←v17452)+1) ) = w←v17480;
SOURCE(16853, 8)
                  (* (( (ptr) p←v17452)+2) ) = w←v17480;
SOURCE(16863, 8)
                  (* (( (ptr) p←v17452)+3) ) = w←v17480;
SOURCE(16873, 20)
                  p←v17452 = (p←v17452 + 16);
SOURCE(16895, 17)
                  words←v17608 = (words←v17608 - 4);
                  goto lab←L100090;
                  lab←L100088: ;
SOURCE(16923, 18)
                  if ((words←v17608 == 0)) {
SOURCE(16941, 14)
                     goto lab←L100087;
                     };
SOURCE(16957, 8)
                  (*  (ptr) p←v17452 ) = w←v17480;
SOURCE(16967, 18)
                  p←v17452 = (p←v17452 + 4);
SOURCE(16987, 18)
                  if ((words←v17608 == 1)) {
SOURCE(17005, 14)
                     goto lab←L100087;
                     };
SOURCE(17021, 8)
                  (*  (ptr) p←v17452 ) = w←v17480;
SOURCE(17031, 18)
                  p←v17452 = (p←v17452 + 4);
SOURCE(17051, 18)
                  if ((words←v17608 == 2)) {
SOURCE(17069, 14)
                     goto lab←L100087;
                     };
SOURCE(17085, 8)
                  (*  (ptr) p←v17452 ) = w←v17480;
SOURCE(17095, 18)
                  p←v17452 = (p←v17452 + 4);
                  goto lab←L100091;
                  lab←L100087: ;
                  lab←L100091: ;
                  };
               };
SOURCE(17143, 22)
            shift←v17424 = (outLim←v17580 & 037);
SOURCE(17167, 37)
            w←v17480 = (w←v17480 - (word) XRM←BITRSHIFT(fill←v17508, shift←v17424));
SOURCE(17206, 18)
            rp←v17396 = (rp←v17396 + 4);
SOURCE(17226, 12)
            min←v9120 = newMin←v17552;
SOURCE(17240, 26)
            fill←v17508 = (word) XRM←BITNOT(fill←v17508);
            };
         goto lab←L100086;
         lab←L100084: ;
SOURCE(17277, 137)
         if ((shift←v17424 != 0)) {
SOURCE(17295, 121)
            {
               word mask←v17652;
SOURCE(17297, 47)
               mask←v17652 = (word) XRM←BITRSHIFT( (word) -1, shift←v17424);
SOURCE(17346, 30)
               w←v17480 = (w←v17480 - (word) XRM←BITAND(w←v17480, mask←v17652));
SOURCE(17378, 36)
               {
                  word var←c54104;
                  var←c54104 = (w←v17480 + (word) XRM←BITAND((*  (ptr) p←v17452 ), mask←v17652));
                  (*  (ptr) p←v17452 ) = var←c54104;
                  };
               };
            };
         };
      };
   }

static void FreeLineBuffer←P1380(data←v9248)
   word data←v9248;
   {
   register ptr gf←c61816 =  (ptr) &globalframe;
   word lineBuffer←v17696;
   /* FreeLineBuffer: */ 
SOURCE(17426, 218)
SOURCE(17464, 58)
   lineBuffer←v17696 = (* (( (ptr) data←v9248)+17) );
SOURCE(17524, 28)
   (* (( (ptr) data←v9248)+15) ) = 0;
SOURCE(17554, 21)
   (* (( (ptr) data←v9248)+17) ) = 0;
SOURCE(17577, 67)
   if ((lineBuffer←v17696 != 0)) {
SOURCE(17602, 42)
      {
         word pd180;
         pd180 = (* (( (ptr) (* (( (ptr) gf←c61816)+259)/* var←c52952 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd180 ))))(lineBuffer←v17696, pd180);
         };
      };
   }

static void ErrorEOF←P1440(data←v9308)
   word data←v9308;
   {
   register ptr gf←c61848 =  (ptr) &globalframe;
   /* ErrorEOF: */ 
SOURCE(17650, 132)
SOURCE(17682, 45)
   if (((* (( (ptr) data←v9308)+28) ) == 0)) {
SOURCE(17709, 18)
      (* (( (ptr) data←v9308)+28) ) = (* (( (ptr) gf←c61848)+62) );
      };
SOURCE(17730, 15)
   (* (( (ptr) data←v9308)+23) ) = 1;
SOURCE(17747, 35)
   {
      word var←c54136;
      {
         word idx181;
         var←c54136 = (
            idx181 = (word) GetBitIndex←P1500(data←v9308),
            SGNCK(idx181)
            );
         };
      (* (( (ptr) data←v9308)+27) ) = var←c54136;
      };
   }

static word GetBitIndex←P1500(data←v9368)
   word data←v9368;
   {
   register ptr gf←c61880 =  (ptr) &globalframe;
   word var←c9412;
   word init←v17740;
   /* GetBitIndex: */ 
SOURCE(17788, 129)
SOURCE(17837, 34)
   {
      word x182;
      init←v17740 = (x182 = (* (( (ptr) data←v9368)+9) ),
         MAX((int)(word), 0, x182));
      };
SOURCE(17873, 44)
   {
      word pd183;
      pd183 = (* (( (ptr) (* (( (ptr) gf←c61880)+256)/* var←c51928 */  ))+29) );
      return(IOP2( * ,  (int)((word) ( *( (fPt) ((*  (ptr) pd183 ))))((* ((( (ptr) data←v9368)+8)) ), pd183) - init←v17740),  (int)8)
      );
      };
   }

static word InitReverseBits←P1560()
   {
   register ptr gf←c61912 =  (ptr) &globalframe;
   word var←c9500;
   word new←v17784;
   /* InitReverseBits: */ 
SOURCE(18019, 333)
SOURCE(18069, 35)
   new←v17784 = XR←NewObject(256, (* (( (ptr) gf←c61912)+47) ));
SOURCE(18106, 223)
   {
      register word b←v17840 = 0;
      lab←L100095: ;
      {
         word w←v17884;
SOURCE(18129, 61)
         w←v17884 = (((word) XRM←BITAND(b←v17840, 170) >> 1) + ((word) XRM←BITAND(b←v17840, 85) << 1));
SOURCE(18192, 55)
         w←v17884 = (((word) XRM←BITAND(w←v17884, 204) >> 2) + ((word) XRM←BITAND(w←v17884, 51) << 2));
SOURCE(18249, 59)
         w←v17884 = (((word) XRM←BITAND(w←v17884, 240) >> 4) + ((word) XRM←BITAND(w←v17884, 15) << 4));
SOURCE(18310, 19)
         (* (( (bPt) new←v17784)+b←v17840) ) = (w←v17884 & 0377);
         };
      if ((b←v17840 >= 255)) {
         goto lab←L100092;
         };
      b←v17840 = (b←v17840 + 1);
      goto lab←L100095;
      lab←L100092: ;
      };
SOURCE(18340, 12)
   return(new←v17784);
   }

static word Scan←P1620(j←v9572, bit←v9600, data←v9628)
   word j←v9572;
   word bit←v9600;
   word data←v9628;
   {
   register ptr gf←c61944 =  (ptr) &globalframe;
   word var←c9692;
   word ref←v17928;
   word min←v17956;
   word i←v17984;
   word refi←v18012 = 0;
   /* Scan: */ 
SOURCE(18358, 521)
SOURCE(18429, 53)
   ref←v17928 = (* (( (ptr) data←v9628)+18) );
SOURCE(18484, 51)
   {
      word x184;
      min←v17956 = (x184 = (* (( (ptr) data←v9628)+4) ),
         MIN((int)(word), (j←v9572 + 1), x184));
      };
SOURCE(18537, 33)
   i←v17984 = (* (( (ptr) data←v9628)+26) );
SOURCE(18587, 31)
   lab←L100098: ;
   {
      word limit185;
      if (( (int)(* ((( (ptr) ref←v17928)+2)+(
            limit185 = (* (( (ptr) ref←v17928)+1) ),
            BCK(i←v17984, limit185)
            )) ) >  (int)min←v17956)) {
         }
      else {
         goto lab←L100096;
         };
      };
SOURCE(18609, 9)
   i←v17984 = (i←v17984 - 1);
   goto lab←L100098;
   lab←L100096: ;
SOURCE(18629, 33)
   if ((bit←v9600 != (i←v17984 & 1))) {
SOURCE(18653, 9)
      i←v17984 = (i←v17984 + 1);
      };
SOURCE(18664, 48)
   {
      word var←c0916;
      lab←L100101: ;
      {
         word limit186;
         refi←v18012 = (* ((( (ptr) ref←v17928)+2)+(
               limit186 = (* (( (ptr) ref←v17928)+1) ),
               BCK(i←v17984, limit186)
               )) );
         };
      var←c0916 = refi←v18012;
      if (( (int)var←c0916 <  (int)min←v17956)) {
         }
      else {
         goto lab←L100099;
         };
SOURCE(18695, 17)
      i←v17984 = (i←v17984 + 2);
      goto lab←L100101;
      lab←L100099: ;
      };
SOURCE(18714, 21)
   {
      word x187;
      i←v17984 = (x187 = ((*  (ptr) ref←v17928 ) - 2),
         MIN( (unsigned) , i←v17984, x187));
      };
SOURCE(18737, 23)
   (* (( (ptr) data←v9628)+26) ) = i←v17984;
SOURCE(18762, 89)
   if (((* (( (ptr) data←v9628)+7) ) != 0)) {
SOURCE(18800, 51)
      {
         W2 var←c54200;
         var←c54200.f0 = 5;
         var←c54200.f1 = refi←v18012;
         {
            word pd188;
            pd188 = (* (( (ptr) (* (( (ptr) gf←c61944)+256)/* var←c51928 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd188 ))))((* (( (ptr) data←v9628)+7) ), (* (( (ptr) gf←c61944)+64) ), var←c54200, pd188);
            };
         };
      };
SOURCE(18853, 26)
   {
      word var←c0917;
      {
         word var←c54264;
         word x←v46100;
         x←v46100 = j←v9572;
SOURCE(1477, 103)
         {
            word var←c54328;
            var←c54328 = ((word) XRM←BITRSHIFT(x←v46100, 31) - 1);
            var←c54264 = (word) XRM←BITAND(x←v46100, var←c54328);
            };
         var←c0917 = (refi←v18012 - var←c54264);
         };
      return(var←c0917);
      };
   }

static void LogError←P1680(data←v9752, error←v9780, bufferedBits←v9808)
   word data←v9752;
   word error←v9780;
   word bufferedBits←v9808;
   {
   register ptr gf←c61976 =  (ptr) &globalframe;
   /* LogError: */ 
SOURCE(18883, 288)
SOURCE(18947, 224)
   if (((* (( (ptr) data←v9752)+28) ) == 0)) {
SOURCE(18974, 18)
      (* (( (ptr) data←v9752)+28) ) = error←v9780;
SOURCE(18994, 50)
      {
         word var←c54360;
         var←c54360 = ((word) GetBitIndex←P1500(data←v9752) - bufferedBits←v9808);
         (* (( (ptr) data←v9752)+27) ) = var←c54360;
         };
SOURCE(19046, 125)
      if (((* (( (ptr) data←v9752)+7) ) != 0)) {
SOURCE(19071, 100)
         {
            W2 var←c54392;
            W2 var←c54424;
            W2 var←c0918;
            var←c54392.f0 = 1;
            var←c54392.f1 = error←v9780;
            var←c54424.f0 = 5;
            {
               word idx189;
               var←c54424.f1 = (
                  idx189 = (* (( (ptr) data←v9752)+27) ),
                  SGNCK(idx189)
                  );
               };
            (*  (ptr) (word) &var←c0918 ) = 0;
            (* (( (ptr) (word) &var←c0918) + 1) ) = 0;
            {
               word pd190;
               pd190 = (* (( (ptr) (* (( (ptr) gf←c61976)+256)/* var←c51928 */  ))+60) );
               (void) ( *( (fPt) ((*  (ptr) pd190 ))))((* (( (ptr) data←v9752)+7) ), (* (( (ptr) gf←c61976)+65) ), var←c54392, var←c54424, var←c0918, pd190)
               ;
               };
            };
         };
      };
   }

static word ExpandLineTransitions←P1740(data←v9868)
   word data←v9868;
   {
   register ptr gf←c62008 =  (ptr) &globalframe;
   word var←c9912;
   word old←v18068;
   word oldSize←v18096;
   word newSize←v18124;
   word new←v18152;
   /* ExpandLineTransitions: */ 
SOURCE(19180, 408)
SOURCE(19256, 48)
   old←v18068 = (* (( (ptr) data←v9868)+19) );
SOURCE(19306, 28)
   oldSize←v18096 = (* (( (ptr) old←v18068)+1) );
SOURCE(19336, 40)
   newSize←v18124 = ((oldSize←v18096 + ((word) oldSize←v18096 >> 1)) + 32);
SOURCE(19378, 88)
   {
      word var←c54488;
      word var←c54552;
      var←c54488 = ((word) newSize←v18124 << 2);
      {
         word var←c54520;
         {
            word pd191;
            pd191 = (* (( (ptr) (* (( (ptr) gf←c62008)+257)/* var←c51960 */  ))+6) );
            var←c54520 = (word) ( *( (fPt) ((*  (ptr) pd191 ))))(pd191);
            };
         {
            word pd192;
            pd192 = (*  (ptr) var←c54520 );
            var←c54552 = (word) ( *( (fPt) ((*  (ptr) pd192 ))))(var←c54520, (8 + var←c54488), (* (( (ptr) gf←c62008)+43) ), pd192);
            };
         };
      (* (( (ptr) var←c54552)+1) ) = newSize←v18124;
      new←v18152 = var←c54552;
      };
SOURCE(19468, 50)
   {
      register word i←v18220 = 0;
      if ((i←v18220 >= oldSize←v18096)) {
         goto lab←L100103;
         };
      lab←L100106: ;
SOURCE(19503, 15)
      {
         word limit193;
         word limit194;
         (* ((( (ptr) new←v18152)+2)+(
               limit193 = (* (( (ptr) new←v18152)+1) ),
               BCK(i←v18220, limit193)
               )) ) = (* ((( (ptr) old←v18068)+2)+(
               limit194 = (* (( (ptr) old←v18068)+1) ),
               BCK(i←v18220, limit194)
               )) );
         };
      i←v18220 = (i←v18220 + 1);
      if ((i←v18220 < oldSize←v18096)) {
         goto lab←L100106;
         };
      lab←L100103: ;
      };
SOURCE(19529, 17)
   (*  (ptr) new←v18152 ) = (*  (ptr) old←v18068 );
SOURCE(19548, 26)
   (* (( (ptr) data←v9868)+19) ) = new←v18152;
SOURCE(19576, 12)
   return(new←v18152);
   }

static void Advance←P1800(data←v9984)
   word data←v9984;
   {
   register ptr gf←c62040 =  (ptr) &globalframe;
   word scanLength←v18264;
   word bitBuffer←v18292;
   word goodBits←v18320;
   word state←v18404;
   word current←v18432;
   word val←v18460 = 0;
   word j←v18488 =  (word) -1;
   word lineTransitions←v18516;
   word debug←v18600;
   word var←c54968;
   word self←v49864;
   /* Advance: */ 
SOURCE(19594, 7078)
SOURCE(19632, 33)
   {
      word idx195;
      scanLength←v18264 = (
         idx195 = (* (( (ptr) data←v9984)+4) ),
         SGNCK(idx195)
         );
      };
SOURCE(19667, 32)
   bitBuffer←v18292 = (* (( (ptr) data←v9984)+12) );
SOURCE(19724, 34)
   goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
SOURCE(20061, 33)
   state←v18404 = (* (( (ptr) data←v9984)+10) );
SOURCE(20096, 33)
   current←v18432 = (* (( (ptr) (* (( (ptr) data←v9984)+24) ))+state←v18404) );
SOURCE(20158, 60)
   lineTransitions←v18516 = (* (( (ptr) data←v9984)+19) );
SOURCE(20961, 29)
   debug←v18600 = (* (( (ptr) data←v9984)+7) );
SOURCE(21011, 31)
   (* (( (ptr) gf←c62040)+11)/* advanceCalls←v3560 */  ) = ((* (( (ptr) gf←c62040)+11)/* advanceCalls←v3560 */  ) + 1);
SOURCE(21044, 502)
   if ((debug←v18600 != 0)) {
SOURCE(21079, 337)
      if (( (int)(* (( (ptr) data←v9984)+14) ) <  (int)0)) {
SOURCE(21107, 56)
         {
            W2 var←c54584;
            var←c54584.f0 = 5;
            var←c54584.f1 = (* (( (ptr) data←v9984)+20) );
            {
               word pd196;
               pd196 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd196 ))))(debug←v18600, (* (( (ptr) gf←c62040)+66) ), var←c54584, pd196);
               };
            };
SOURCE(21165, 54)
         {
            W2 var←c54616;
            var←c54616.f0 = 5;
            var←c54616.f1 = (* (( (ptr) data←v9984)+22) );
            {
               word pd197;
               pd197 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd197 ))))(debug←v18600, (* (( (ptr) gf←c62040)+67) ), var←c54616, pd197);
               };
            };
SOURCE(21221, 66)
         {
            W2 var←c54648;
            var←c54648.f0 = 2;
            var←c54648.f1 = (* (( (ptr) data←v9984)+6) );
            {
               word pd198;
               pd198 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd198 ))))(debug←v18600, (* (( (ptr) gf←c62040)+68) ), var←c54648, pd198);
               };
            };
SOURCE(21289, 63)
         {
            W2 var←c54680;
            var←c54680.f0 = 4;
            var←c54680.f1 = (* (( (ptr) data←v9984)+12) );
            {
               word pd199;
               pd199 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd199 ))))(debug←v18600, (* (( (ptr) gf←c62040)+69) ), var←c54680, pd199);
               };
            };
SOURCE(21354, 62)
         {
            W2 var←c54712;
            var←c54712.f0 = 4;
            var←c54712.f1 = (* (( (ptr) data←v9984)+13) );
            {
               word pd200;
               pd200 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd200 ))))(debug←v18600, (* (( (ptr) gf←c62040)+70) ), var←c54712, pd200);
               };
            };
         };
SOURCE(21421, 125)
      {
         word var←c54744;
         {
            word var←c54776;
            word x←v46052;
            x←v46052 = ((word) GetBitIndex←P1500(data←v9984) - goodBits←v18320);
SOURCE(1477, 103)
            {
               word var←c54840;
               var←c54840 = ((word) XRM←BITRSHIFT(x←v46052, 31) - 1);
               var←c54776 = (word) XRM←BITAND(x←v46052, var←c54840);
               };
            var←c54744 = var←c54776;
            };
         {
            W2 var←c54872;
            W2 var←c54904;
            W2 var←c0919;
            var←c54872.f0 = 4;
            var←c54872.f1 = ((* (( (ptr) data←v9984)+14) ) + 1);
            var←c54904.f0 = 4;
            var←c54904.f1 = var←c54744;
            (*  (ptr) (word) &var←c0919 ) = 0;
            (* (( (ptr) (word) &var←c0919) + 1) ) = 0;
            {
               word pd201;
               pd201 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
               (void) ( *( (fPt) ((*  (ptr) pd201 ))))(debug←v18600, (* (( (ptr) gf←c62040)+71) ), var←c54872, var←c54904, var←c0919, pd201)
               ;
               };
            };
         };
      };
SOURCE(21551, 26)
   (* (( (ptr) data←v9984)+10) ) = 0;
SOURCE(21579, 23)
   (* (( (ptr) data←v9984)+26) ) = 0;
SOURCE(21604, 23)
   if ((0 != (* (( (ptr) data←v9984)+23) ))) {
SOURCE(21621, 6)
      return;
      };
SOURCE(21629, 37)
   {
      word lineTransitions←v46656;
      lineTransitions←v46656 = lineTransitions←v18516;
SOURCE(2121, 68)
      (*  (ptr) (lineTransitions←v46656 + 8) ) =  (word) -1;
      };
SOURCE(21668, 23)
   (*  (ptr) lineTransitions←v18516 ) = 1;
SOURCE(21693, 10)
SOURCE(20847, 106)
   if ((goodBits←v18320 < 24)) {
SOURCE(20877, 50)
      bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
      goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
      };
SOURCE(21705, 144)
   {
      word tc202;
      if ((bitBuffer←v18292 == 0)) {
         self←v49864 = (* (( (ptr) data←v9984)+8) );
         {
            word pd203;
            if (((* (( (ptr) self←v49864)+7) ) >= (* (( (ptr) self←v49864)+5) ))) {
               pd203 = (* (( (ptr) (*  (ptr) self←v49864 ))+3) );
               var←c54968 =  (unsigned) (0 != (word) ( *( (fPt) ((*  (ptr) pd203 ))))(self←v49864, pd203));
               }
            else {
               var←c54968 =  (unsigned) 0;
               };
            };
         tc202 =  (word) (0 != var←c54968);
         }
      else {
         tc202 =  (word) 0;
         };
      if (tc202) {
SOURCE(21761, 63)
         if ((debug←v18600 != 0)) {
SOURCE(21794, 30)
            {
               word pd204;
               pd204 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
               (void) ( *( (fPt) ((*  (ptr) pd204 ))))(debug←v18600, (* (( (ptr) gf←c62040)+72) ), 0, 2147483647, pd204);
               };
            };
SOURCE(21826, 15)
         (* (( (ptr) data←v9984)+23) ) = 1;
SOURCE(21843, 6)
         return;
         };
      };
   if (((word) XRM←BITRSHIFT(bitBuffer←v18292, 26) == 0)) {
      }
   else {
      if ((state←v18404 > 1)) {
         }
      else {
SOURCE(21964, 353)
         if ((0 != (* (( (ptr) data←v9984)+21) ))) {
SOURCE(22001, 47)
            j←v18488 = (word) OneDimScan←P2100(data←v9984, j←v18488, bitBuffer←v18292, goodBits←v18320, 0);
            }
         else {
            if ((0 != (* (( (ptr) data←v9984)+6) ))) {
SOURCE(22070, 45)
               j←v18488 = (word) FastScan←P2160(data←v9984, j←v18488, bitBuffer←v18292, goodBits←v18320, 0);
               }
            else {
SOURCE(22128, 14)
               goto lab←L100109;
               };
            };
SOURCE(22144, 38)
         lineTransitions←v18516 = (* (( (ptr) data←v9984)+19) );
SOURCE(22184, 24)
         goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
SOURCE(22210, 26)
         bitBuffer←v18292 = (* (( (ptr) data←v9984)+12) );
SOURCE(22238, 26)
         state←v18404 = (* (( (ptr) data←v9984)+11) );
SOURCE(22266, 27)
         current←v18432 = (* (( (ptr) (* (( (ptr) data←v9984)+24) ))+state←v18404) );
         goto lab←L100110;
         lab←L100109: ;
         lab←L100110: ;
         };
      };
SOURCE(22321, 3622)
   lab←L100113: ;
SOURCE(22324, 60)
   if (( (int)j←v18488 >=  (int)scanLength←v18264)) {
SOURCE(22348, 36)
      if (((state←v18404 - 4) > 2)) {
SOURCE(22384, 4)
         goto lab←L100112;
         };
      };
SOURCE(22390, 3553)
   {
      word var←c55032;
      var←c55032 = current←v18432;
      if ((var←c55032 == 0)) {
         goto lab←L100114;
         };
      {
         word var←c57560;
         var←c57560 = (* (( (ptr) var←c55032)+1) );
         if ((var←c57560 == 0)) {
            {
               word tree←v19080;
               tree←v19080 = var←c55032;
SOURCE(22433, 349)
               {
                  word needBits←v19124;
                  W2 branch←v19152;
SOURCE(22435, 34)
                  needBits←v19124 = (* (( (ptr) tree←v19080)+2) );
SOURCE(22471, 14)
                  branch←v19152.f0 = 0;
                  branch←v19152.f1 = 0;
SOURCE(22506, 27)
                  (*  (ptr) tree←v19080 ) = ((*  (ptr) tree←v19080 ) + 1);
SOURCE(22535, 18)
                  {
                     word needBits←v49016;
                     needBits←v49016 = BCK(needBits←v19124, 25);
SOURCE(20847, 106)
                     if ((goodBits←v18320 < needBits←v49016)) {
SOURCE(20877, 50)
                        bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
                        goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
                        };
                     };
SOURCE(22555, 29)
                  {
                     word var←c55096;
                     var←c55096 = (word) XRM←BITRSHIFT(bitBuffer←v18292, (32 - needBits←v19124));
                     {
                        word limit205;
                        branch←v19152 = (* (( (W2Pt) (( (ptr) tree←v19080)+4))+(
/*1*/   limit205 = (* (( (ptr) tree←v19080)+3) ),
/*1*/   BCK(var←c55096, limit205)
/*1*/   )) );
                        };
                     };
SOURCE(22586, 40)
                  {
                     word idx206;
                     needBits←v19124 = (
                        idx206 = (word) (needBits←v19124 - branch←v19152.f0),
                        BCK(idx206, 32)
                        );
                     };
SOURCE(22628, 107)
                  if ((debug←v18600 != 0)) {
SOURCE(22663, 27)
                     {
                        word pd207;
                        pd207 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
                        (void) ( *( (fPt) ((*  (ptr) pd207 ))))(debug←v18600, (* (( (ptr) gf←c62040)+73) ), 0, 2147483647, pd207);
                        };
SOURCE(22692, 43)
                     {
                        word var←c55128;
                        var←c55128 = (word) XRM←BITRSHIFT(bitBuffer←v18292, (32 - needBits←v19124));
                        (void) PutB←P2760(debug←v18600, var←c55128, needBits←v19124, 1);
                        };
                     };
SOURCE(22740, 17)
                  {
                     word n←v46704;
                     n←v46704 = needBits←v19124;
SOURCE(19969, 43)
                     goodBits←v18320 = (goodBits←v18320 - n←v46704);
SOURCE(20014, 42)
                     bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, n←v46704);
                     };
SOURCE(22759, 21)
                  current←v18432 = branch←v19152.f1;
                  };
               };
            }
         else {
            if ((var←c57560 == 1)) {
               {
                  word leaf←v19196;
                  leaf←v19196 = var←c55032;
SOURCE(22803, 3091)
SOURCE(22805, 23)
                  val←v18460 = (val←v18460 + (* (( (ptr) leaf←v19196)+4) ));
SOURCE(22849, 27)
                  (*  (ptr) leaf←v19196 ) = ((*  (ptr) leaf←v19196 ) + 1);
SOURCE(22895, 219)
                  {
                     word st←v19240;
SOURCE(22897, 21)
                     st←v19240 = debug←v18600;
SOURCE(22920, 189)
                     if ((st←v19240 != 0)) {
SOURCE(22939, 26)
                        {
                           word pd208;
                           pd208 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
                           (void) ( *( (fPt) ((*  (ptr) pd208 ))))(st←v19240, (* (( (ptr) gf←c62040)+74) ), 0, 2147483647, pd208);
                           };
SOURCE(22967, 26)
                        (void) PutAction←P2880(st←v19240, (* (( (ptr) leaf←v19196)+3) ));
SOURCE(22995, 47)
                        {
                           W2 var←c55160;
                           var←c55160.f0 = 5;
                           var←c55160.f1 = j←v18488;
                           {
/*1*/   word pd209;
/*1*/   pd209 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd209 ))))(st←v19240, (* (( (ptr) gf←c62040)+75) ), var←c55160, pd209);
/*1*/   };
                           };
SOURCE(23044, 19)
                        (void) PutState←P2940(st←v19240, state←v18404);
SOURCE(23065, 44)
                        {
                           W2 var←c55192;
                           var←c55192.f0 = 5;
                           var←c55192.f1 = val←v18460;
                           {
/*1*/   word pd210;
/*1*/   pd210 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd210 ))))(st←v19240, (* (( (ptr) gf←c62040)+76) ), var←c55192, pd210);
/*1*/   };
                           };
                        };
                     };
SOURCE(23117, 2351)
                  {
                     word var←c55224;
                     var←c55224 = (* (( (ptr) leaf←v19196)+3) );
                     switch (var←c55224) {
                        case 0: 
                           break;
                        case 1: 
SOURCE(23166, 11)
SOURCE(20847, 106)
                           if ((goodBits←v18320 < 6)) {
SOURCE(20877, 50)
/*1*/   bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
/*1*/   goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
/*1*/   };
                           if (((word) XRM←BITRSHIFT(bitBuffer←v18292, 26) == 1)) {
SOURCE(23211, 1067)
SOURCE(23370, 10)
SOURCE(19969, 43)
/*1*/   goodBits←v18320 = (goodBits←v18320 - 6);
SOURCE(20014, 42)
/*1*/   bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, 6);
SOURCE(23382, 8)
SOURCE(23237, 125)
/*1*/   {
/*1*/      word var←c55256;
/*1*/      var←c55256 = (* (( (ptr) data←v9984)+20) );
/*1*/      if (( (int)var←c55256 <  (int)0)) {
/*1*/         }
/*1*/      else {
/*1*/         if (( (int)var←c55256 ==  (int)0)) {
SOURCE(23272, 21)
/*1*/            (* (( (ptr) data←v9984)+21) ) = 1;
/*1*/            }
/*1*/         else {
SOURCE(23308, 11)
SOURCE(20847, 106)
/*1*/            if ((goodBits←v18320 < 1)) {
SOURCE(20877, 50)
/*1*/               bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
/*1*/               goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
/*1*/               };
SOURCE(23321, 29)
/*1*/            {
/*1*/               word var←c55288;
/*1*/               {
/*1*/                  word idx211;
/*1*/                  var←c55288 = (
/*1*/                     idx211 = (word) XRM←BITRSHIFT(bitBuffer←v18292, 31),
/*1*/                     BCK(idx211, 2)
/*1*/                     );
/*1*/                  };
/*1*/               (* (( (ptr) data←v9984)+21) ) = var←c55288;
/*1*/               };
SOURCE(23352, 10)
SOURCE(19969, 43)
/*1*/            goodBits←v18320 = (goodBits←v18320 - 1);
SOURCE(20014, 42)
/*1*/            bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, 1);
/*1*/            };
/*1*/         };
/*1*/      };
SOURCE(23409, 177)
/*1*/   {
/*1*/      word st←v19344;
SOURCE(23411, 21)
/*1*/      st←v19344 = debug←v18600;
SOURCE(23434, 147)
/*1*/      if ((st←v19344 != 0)) {
SOURCE(23453, 29)
/*1*/         {
/*1*/            word pd212;
/*1*/            pd212 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
/*1*/            (void) ( *( (fPt) ((*  (ptr) pd212 ))))(st←v19344, (* (( (ptr) gf←c62040)+77) ), 0, 2147483647, pd212);
/*1*/            };
SOURCE(23484, 76)
/*1*/         if (( (int)(* (( (ptr) data←v9984)+20) ) >  (int)0)) {
SOURCE(23503, 57)
/*1*/            {
/*1*/               word pd213;
/*1*/               pd213 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
/*1*/               (void) ( *( (fPt) ((*  (ptr) pd213 ))))(st←v19344,  ( (0 != (* (( (ptr) data←v9984)+21) )) ? (* (( (ptr) gf←c62040)+78) ) : (* (
/*1*/                     ( (ptr) gf←c62040)+79) ) ) , 0, 2147483647, pd213);
/*1*/               };
/*1*/            };
SOURCE(23562, 19)
/*1*/         {
/*1*/            word pd214;
/*1*/            pd214 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+21) );
/*1*/            (void) ( *( (fPt) ((*  (ptr) pd214 ))))(st←v19344, 10, pd214);
/*1*/            };
/*1*/         };
/*1*/      };
SOURCE(23589, 12)
SOURCE(20847, 106)
/*1*/   if ((goodBits←v18320 < 12)) {
SOURCE(20877, 50)
/*1*/      bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
/*1*/      goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
/*1*/      };
SOURCE(23603, 69)
/*1*/   if ( ( ( (int)j←v18488 >  (int)0) ? ( (int)(* (( (ptr) data←v9984)+20) ) <  (int)0) : 0 ) ) {
SOURCE(23632, 40)
/*1*/      (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+80) ), goodBits←v18320);
/*1*/      };
SOURCE(23674, 373)
/*1*/   if (((word) XRM←BITRSHIFT(bitBuffer←v18292, 20) == 1)) {
SOURCE(23722, 327)
/*1*/      {
/*1*/         word repeat←v19388;
SOURCE(23724, 46)
/*1*/         repeat←v19388 =  ( ( (int)(* (( (ptr) data←v9984)+20) ) >=  (int)0) ? 6 : 2 ) ;
SOURCE(23772, 170)
/*1*/         lab←L100119: ;
SOURCE(23775, 11)
SOURCE(19969, 43)
/*1*/         goodBits←v18320 = (goodBits←v18320 - 12);
SOURCE(20014, 42)
/*1*/         bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, 12);
SOURCE(23788, 8)
SOURCE(23237, 125)
/*1*/         {
/*1*/            word var←c55320;
/*1*/            var←c55320 = (* (( (ptr) data←v9984)+20) );
/*1*/            if (( (int)var←c55320 <  (int)0)) {
/*1*/               }
/*1*/            else {
/*1*/               if (( (int)var←c55320 ==  (int)0)) {
SOURCE(23272, 21)
/*1*/                  (* (( (ptr) data←v9984)+21) ) = 1;
/*1*/                  }
/*1*/               else {
SOURCE(23308, 11)
SOURCE(20847, 106)
/*1*/                  if ((goodBits←v18320 < 1)) {
SOURCE(20877, 50)
/*1*/                     bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
/*1*/                     goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
/*1*/                     };
SOURCE(23321, 29)
/*1*/                  {
/*1*/                     word var←c55352;
/*1*/                     {
/*1*/                        word idx215;
/*1*/                        var←c55352 = (
/*1*/                           idx215 = (word) XRM←BITRSHIFT(bitBuffer←v18292, 31),
/*1*/                           BCK(idx215, 2)
/*1*/                           );
/*1*/                        };
/*1*/                     (* (( (ptr) data←v9984)+21) ) = var←c55352;
/*1*/                     };
SOURCE(23352, 10)
SOURCE(19969, 43)
/*1*/                  goodBits←v18320 = (goodBits←v18320 - 1);
SOURCE(20014, 42)
/*1*/                  bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(23798, 19)
/*1*/         repeat←v19388 = (repeat←v19388 - 1);
SOURCE(23819, 20)
/*1*/         if (( (int)repeat←v19388 <=  (int)1)) {
SOURCE(23839, 4)
/*1*/            goto lab←L100118;
/*1*/            };
SOURCE(23845, 12)
SOURCE(20847, 106)
/*1*/         if ((goodBits←v18320 < 12)) {
SOURCE(20877, 50)
/*1*/            bitBuffer←v18292 = (bitBuffer←v18292 + (word) MyGetBytes←P1980(data←v9984, goodBits←v18320));
SOURCE(20929, 24)
/*1*/            goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
/*1*/            };
SOURCE(23859, 83)
/*1*/         if (((word) XRM←BITRSHIFT(bitBuffer←v18292, 20) != 1)) {
SOURCE(23909, 33)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+81) ), goodBits←v18320);
SOURCE(23944, 4)
/*1*/            goto lab←L100118;
/*1*/            };
/*1*/         goto lab←L100119;
/*1*/         lab←L100118: ;
SOURCE(23962, 60)
/*1*/         if ((debug←v18600 != 0)) {
SOURCE(23995, 27)
/*1*/            {
/*1*/               word pd216;
/*1*/               pd216 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
/*1*/               (void) ( *( (fPt) ((*  (ptr) pd216 ))))(debug←v18600, (* (( (ptr) gf←c62040)+82) ), 0, 2147483647, pd216);
/*1*/               };
/*1*/            };
SOURCE(24024, 15)
/*1*/         (* (( (ptr) data←v9984)+23) ) = 1;
SOURCE(24041, 6)
/*1*/         return;
/*1*/         };
/*1*/      };
SOURCE(24052, 13)
/*1*/   state←v18404 = 0;
/*1*/   if (( (int)j←v18488 >=  (int)0)) {
SOURCE(24094, 4)
/*1*/      goto lab←L100112;
/*1*/      }
/*1*/   else {
/*1*/      if ((0 != (* (( (ptr) data←v9984)+21) ))) {
SOURCE(24118, 47)
/*1*/         j←v18488 = (word) OneDimScan←P2100(data←v9984, j←v18488, bitBuffer←v18292, goodBits←v18320, 0);
/*1*/         }
/*1*/      else {
/*1*/         if ((0 != (* (( (ptr) data←v9984)+6) ))) {
SOURCE(24187, 45)
/*1*/            j←v18488 = (word) FastScan←P2160(data←v9984, j←v18488, bitBuffer←v18292, goodBits←v18320, 0);
/*1*/            }
/*1*/         else {
SOURCE(24245, 16)
/*1*/            goto lab←L100115;
/*1*/            };
/*1*/         };
/*1*/      };
SOURCE(24263, 13)
/*1*/   goto lab←L100116;
/*1*/   }
                           else {
/*1*/   if ( ( (0 == (* (( (ptr) data←v9984)+21) )) ? ((word) XRM←BITRSHIFT(bitBuffer←v18292, 28) == 15) : 0 ) ) {
SOURCE(24322, 10)
SOURCE(19969, 43)
/*1*/      goodBits←v18320 = (goodBits←v18320 - 4);
SOURCE(20014, 42)
/*1*/      bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, 4);
SOURCE(24334, 11)
/*1*/      state←v18404 = 6;
/*1*/      }
/*1*/   else {
/*1*/      if ( ( (0 != (* (( (ptr) data←v9984)+21) )) ? ((word) XRM←BITRSHIFT(bitBuffer←v18292, 26) == 15) : 0 ) ) {
SOURCE(24387, 10)
SOURCE(19969, 43)
/*1*/         goodBits←v18320 = (goodBits←v18320 - 6);
SOURCE(20014, 42)
/*1*/         bitBuffer←v18292 = (word) XRM←BITLSHIFT(bitBuffer←v18292, 6);
SOURCE(24399, 11)
/*1*/         state←v18404 = 6;
/*1*/         }
/*1*/      else {
SOURCE(24428, 33)
/*1*/         (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+81) ), goodBits←v18320);
SOURCE(24463, 5)
/*1*/         goto lab←L100112;
/*1*/         };
/*1*/      };
/*1*/   };
SOURCE(24471, 16)
                           goto lab←L100115;
                        case 2: 
SOURCE(24502, 39)
                           {
/*1*/   word var←c55384;
/*1*/   word j0←v48864;
/*1*/   word count←v48892;
/*1*/   word bit←v48920;
/*1*/   j0←v48864 = j←v18488;
/*1*/   count←v48892 = val←v18460;
/*1*/   bit←v48920 = (state←v18404 & 1);
/*1*/   {
/*1*/      word j←v19724;
/*1*/      word nj←v19752;
/*1*/      {
/*1*/         word x←v46004;
/*1*/         x←v46004 = j0←v48864;
SOURCE(1477, 103)
/*1*/         {
/*1*/            word var←c55480;
/*1*/            var←c55480 = ((word) XRM←BITRSHIFT(x←v46004, 31) - 1);
/*1*/            j←v19724 = (word) XRM←BITAND(x←v46004, var←c55480);
/*1*/            };
/*1*/         };
/*1*/      nj←v19752 = (j←v19724 + count←v48892);
SOURCE(20335, 78)
/*1*/      if (( (int)nj←v19752 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/         (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/         nj←v19752 = scanLength←v18264;
/*1*/         };
SOURCE(20418, 344)
/*1*/      if (( (int)nj←v19752 >  (int)j←v19724)) {
/*1*/         {
/*1*/            word end←v19780;
/*1*/            end←v19780 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/            if ((bit←v48920 == (end←v19780 & 1))) {
SOURCE(20500, 110)
/*1*/               if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                  {
/*1*/                     W2 var←c55512;
/*1*/                     W2 var←c55544;
/*1*/                     W2 var←c55576;
/*1*/                     W2 var←c0920;
/*1*/                     var←c55512.f0 = 5;
/*1*/                     var←c55512.f1 = j←v19724;
/*1*/                     var←c55544.f0 = 11;
/*1*/                     var←c55576.f0 = (* (( (ptr) gf←c62040)+115) );
/*1*/                     var←c55576.f1 = (* (( (ptr) gf←c62040)+114) );
/*1*/                     var←c55544.f1 = (* (( (ptr) &var←c55576)+bit←v48920) );
/*1*/                     (*  (ptr) (word) &var←c0920 ) = 0;
/*1*/                     (* (( (ptr) (word) &var←c0920) + 1) ) = 0;
/*1*/                     {
/*1*/                        word pd217;
/*1*/                        pd217 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                        (void) ( *( (fPt) ((*  (ptr) pd217 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c55512, var←c55544, var←c0920, pd217)
/*1*/                        ;
/*1*/                        };
/*1*/                     };
/*1*/                  };
SOURCE(20612, 81)
/*1*/               if ((end←v19780 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                  lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                  };
SOURCE(20695, 38)
/*1*/               {
/*1*/                  word lineTransitions←v46484;
/*1*/                  lineTransitions←v46484 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                  (* (( (ptr) (lineTransitions←v46484 + 8))+end←v19780) ) = j←v19724;
/*1*/                  };
SOURCE(20735, 27)
/*1*/               (*  (ptr) lineTransitions←v18516 ) = (end←v19780 + 1);
/*1*/               };
/*1*/            };
/*1*/         };
SOURCE(20770, 11)
/*1*/      var←c55384 = nj←v19752;
/*1*/      };
/*1*/   j←v18488 = var←c55384;
/*1*/   };
SOURCE(24543, 7)
                           val←v18460 = 0;
                           break;
                        case 3: 
SOURCE(24563, 314)
                           {
/*1*/   word bit←v19432;
/*1*/   word scan←v19460;
SOURCE(24565, 32)
/*1*/   bit←v19432 = (state←v18404 & 1);
SOURCE(24599, 38)
/*1*/   scan←v19460 = ((word) Scan←P1620(j←v18488, (1 - bit←v19432), data←v9984) + val←v18460);
SOURCE(24639, 62)
/*1*/   if (( (int)scan←v19460 <  (int)0)) {
SOURCE(24658, 33)
/*1*/      (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+83) ), goodBits←v18320);
SOURCE(24693, 8)
/*1*/      scan←v19460 = 0;
/*1*/      };
SOURCE(24706, 22)
/*1*/   {
/*1*/      word var←c55640;
/*1*/      word j0←v48572;
/*1*/      word count←v48600;
/*1*/      word bit←v48628;
/*1*/      j0←v48572 = j←v18488;
/*1*/      count←v48600 = scan←v19460;
/*1*/      bit←v48628 = bit←v19432;
/*1*/      {
/*1*/         word j←v48660;
/*1*/         word nj←v48688;
/*1*/         {
/*1*/            word x←v48732;
/*1*/            x←v48732 = j0←v48572;
SOURCE(1477, 103)
/*1*/            {
/*1*/               word var←c55736;
/*1*/               var←c55736 = ((word) XRM←BITRSHIFT(x←v48732, 31) - 1);
/*1*/               j←v48660 = (word) XRM←BITAND(x←v48732, var←c55736);
/*1*/               };
/*1*/            };
/*1*/         nj←v48688 = (j←v48660 + count←v48600);
SOURCE(20335, 78)
/*1*/         if (( (int)nj←v48688 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/            nj←v48688 = scanLength←v18264;
/*1*/            };
SOURCE(20418, 344)
/*1*/         if (( (int)nj←v48688 >  (int)j←v48660)) {
/*1*/            {
/*1*/               word end←v48776;
/*1*/               end←v48776 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/               if ((bit←v48628 == (end←v48776 & 1))) {
SOURCE(20500, 110)
/*1*/                  if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                     {
/*1*/                        W2 var←c55768;
/*1*/                        W2 var←c55800;
/*1*/                        W2 var←c55832;
/*1*/                        W2 var←c0921;
/*1*/                        var←c55768.f0 = 5;
/*1*/                        var←c55768.f1 = j←v48660;
/*1*/                        var←c55800.f0 = 11;
/*1*/                        var←c55832.f0 = (* (( (ptr) gf←c62040)+115) );
/*1*/                        var←c55832.f1 = (* (( (ptr) gf←c62040)+114) );
/*1*/                        var←c55800.f1 = (* (( (ptr) &var←c55832)+bit←v48628) );
/*1*/                        (*  (ptr) (word) &var←c0921 ) = 0;
/*1*/                        (* (( (ptr) (word) &var←c0921) + 1) ) = 0;
/*1*/                        {
/*1*/                           word pd218;
/*1*/                           pd218 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                           (void) ( *( (fPt) ((*  (ptr) pd218 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c55768, var←c55800, var←c0921, pd218)
/*1*/                           ;
/*1*/                           };
/*1*/                        };
/*1*/                     };
SOURCE(20612, 81)
/*1*/                  if ((end←v48776 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                     lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                     };
SOURCE(20695, 38)
/*1*/                  {
/*1*/                     word lineTransitions←v48820;
/*1*/                     lineTransitions←v48820 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                     (* (( (ptr) (lineTransitions←v48820 + 8))+end←v48776) ) = j←v48660;
/*1*/                     };
SOURCE(20735, 27)
/*1*/                  (*  (ptr) lineTransitions←v18516 ) = (end←v48776 + 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(20770, 11)
/*1*/         var←c55640 = nj←v48688;
/*1*/         };
/*1*/      j←v18488 = var←c55640;
/*1*/      };
SOURCE(24730, 118)
/*1*/   if ( (  ( (0 != (* (( (ptr) data←v9984)+6) )) ? (0 == (* (( (ptr) data←v9984)+21) )) : 0 )  ? ( (int)j←v18488 <  (int)scanLength←v18264) : 0 ) ) {
SOURCE(24799, 49)
/*1*/      j←v18488 = (word) FastScan←P2160(data←v9984, j←v18488, bitBuffer←v18292, goodBits←v18320, (1 - bit←v19432));
SOURCE(24850, 13)
/*1*/      goto lab←L100116;
/*1*/      };
SOURCE(24868, 7)
/*1*/   val←v18460 = 0;
/*1*/   };
                           break;
                        case 4: 
SOURCE(24888, 123)
                           {
/*1*/   word bit←v19504;
SOURCE(24890, 32)
/*1*/   bit←v19504 = (state←v18404 & 1);
SOURCE(24924, 38)
/*1*/   {
/*1*/      word var←c55896;
/*1*/      word j0←v48308;
/*1*/      word count←v48336;
/*1*/      j0←v48308 = j←v18488;
/*1*/      count←v48336 = (word) Scan←P1620(j←v18488, (1 - bit←v19504), data←v9984);
/*1*/      {
/*1*/         word j←v48368;
/*1*/         word nj←v48396;
/*1*/         {
/*1*/            word x←v48440;
/*1*/            x←v48440 = j0←v48308;
SOURCE(1477, 103)
/*1*/            {
/*1*/               word var←c55992;
/*1*/               var←c55992 = ((word) XRM←BITRSHIFT(x←v48440, 31) - 1);
/*1*/               j←v48368 = (word) XRM←BITAND(x←v48440, var←c55992);
/*1*/               };
/*1*/            };
/*1*/         nj←v48396 = (j←v48368 + count←v48336);
SOURCE(20335, 78)
/*1*/         if (( (int)nj←v48396 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/            nj←v48396 = scanLength←v18264;
/*1*/            };
SOURCE(20418, 344)
/*1*/         if (( (int)nj←v48396 >  (int)j←v48368)) {
/*1*/            {
/*1*/               word end←v48484;
/*1*/               end←v48484 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/               if ((bit←v19504 == (end←v48484 & 1))) {
SOURCE(20500, 110)
/*1*/                  if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                     {
/*1*/                        W2 var←c56024;
/*1*/                        W2 var←c56056;
/*1*/                        W2 var←c56088;
/*1*/                        W2 var←c0922;
/*1*/                        var←c56024.f0 = 5;
/*1*/                        var←c56024.f1 = j←v48368;
/*1*/                        var←c56056.f0 = 11;
/*1*/                        var←c56088.f0 = (* (( (ptr) gf←c62040)+115) );
/*1*/                        var←c56088.f1 = (* (( (ptr) gf←c62040)+114) );
/*1*/                        var←c56056.f1 = (* (( (ptr) &var←c56088)+bit←v19504) );
/*1*/                        (*  (ptr) (word) &var←c0922 ) = 0;
/*1*/                        (* (( (ptr) (word) &var←c0922) + 1) ) = 0;
/*1*/                        {
/*1*/                           word pd219;
/*1*/                           pd219 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                           (void) ( *( (fPt) ((*  (ptr) pd219 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c56024, var←c56056, var←c0922, pd219)
/*1*/                           ;
/*1*/                           };
/*1*/                        };
/*1*/                     };
SOURCE(20612, 81)
/*1*/                  if ((end←v48484 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                     lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                     };
SOURCE(20695, 38)
/*1*/                  {
/*1*/                     word lineTransitions←v48528;
/*1*/                     lineTransitions←v48528 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                     (* (( (ptr) (lineTransitions←v48528 + 8))+end←v48484) ) = j←v48368;
/*1*/                     };
SOURCE(20735, 27)
/*1*/                  (*  (ptr) lineTransitions←v18516 ) = (end←v48484 + 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(20770, 11)
/*1*/         var←c55896 = nj←v48396;
/*1*/         };
/*1*/      j←v18488 = var←c55896;
/*1*/      };
SOURCE(24964, 36)
/*1*/   {
/*1*/      word var←c56152;
/*1*/      word j0←v48044;
/*1*/      word count←v48072;
/*1*/      j0←v48044 = j←v18488;
/*1*/      count←v48072 = (word) Scan←P1620(j←v18488, bit←v19504, data←v9984);
/*1*/      {
/*1*/         word j←v48104;
/*1*/         word nj←v48132;
/*1*/         {
/*1*/            word x←v48176;
/*1*/            x←v48176 = j0←v48044;
SOURCE(1477, 103)
/*1*/            {
/*1*/               word var←c56248;
/*1*/               var←c56248 = ((word) XRM←BITRSHIFT(x←v48176, 31) - 1);
/*1*/               j←v48104 = (word) XRM←BITAND(x←v48176, var←c56248);
/*1*/               };
/*1*/            };
/*1*/         nj←v48132 = (j←v48104 + count←v48072);
SOURCE(20335, 78)
/*1*/         if (( (int)nj←v48132 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/            nj←v48132 = scanLength←v18264;
/*1*/            };
SOURCE(20418, 344)
/*1*/         if (( (int)nj←v48132 >  (int)j←v48104)) {
/*1*/            {
/*1*/               word end←v48220;
/*1*/               end←v48220 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/               if ((bit←v19504 == (end←v48220 & 1))) {
SOURCE(20500, 110)
/*1*/                  if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                     {
/*1*/                        W2 var←c56280;
/*1*/                        W2 var←c56312;
/*1*/                        W2 var←c56344;
/*1*/                        W2 var←c0923;
/*1*/                        var←c56280.f0 = 5;
/*1*/                        var←c56280.f1 = j←v48104;
/*1*/                        var←c56312.f0 = 11;
/*1*/                        var←c56344.f0 = (* (( (ptr) gf←c62040)+115) );
/*1*/                        var←c56344.f1 = (* (( (ptr) gf←c62040)+114) );
/*1*/                        var←c56312.f1 = (* (( (ptr) &var←c56344)+bit←v19504) );
/*1*/                        (*  (ptr) (word) &var←c0923 ) = 0;
/*1*/                        (* (( (ptr) (word) &var←c0923) + 1) ) = 0;
/*1*/                        {
/*1*/                           word pd220;
/*1*/                           pd220 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                           (void) ( *( (fPt) ((*  (ptr) pd220 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c56280, var←c56312, var←c0923, pd220)
/*1*/                           ;
/*1*/                           };
/*1*/                        };
/*1*/                     };
SOURCE(20612, 81)
/*1*/                  if ((end←v48220 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                     lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                     };
SOURCE(20695, 38)
/*1*/                  {
/*1*/                     word lineTransitions←v48264;
/*1*/                     lineTransitions←v48264 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                     (* (( (ptr) (lineTransitions←v48264 + 8))+end←v48220) ) = j←v48104;
/*1*/                     };
SOURCE(20735, 27)
/*1*/                  (*  (ptr) lineTransitions←v18516 ) = (end←v48220 + 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(20770, 11)
/*1*/         var←c56152 = nj←v48132;
/*1*/         };
/*1*/      j←v18488 = var←c56152;
/*1*/      };
SOURCE(25002, 7)
/*1*/   val←v18460 = 0;
/*1*/   };
                           break;
                        case 5: 
SOURCE(25023, 213)
                           if (( (int)(j←v18488 + val←v18460) >  (int)scanLength←v18264)) {
SOURCE(25054, 133)
/*1*/   {
/*1*/      word leftover←v19548;
SOURCE(25056, 36)
/*1*/      leftover←v19548 = (val←v18460 - (scanLength←v18264 - j←v18488));
SOURCE(25094, 30)
/*1*/      {
/*1*/         word var←c56408;
/*1*/         word j0←v47780;
/*1*/         word count←v47808;
/*1*/         j0←v47780 = j←v18488;
/*1*/         count←v47808 = (scanLength←v18264 - j←v18488);
/*1*/         {
/*1*/            word j←v47840;
/*1*/            word nj←v47868;
/*1*/            {
/*1*/               word x←v47912;
/*1*/               x←v47912 = j0←v47780;
SOURCE(1477, 103)
/*1*/               {
/*1*/                  word var←c56504;
/*1*/                  var←c56504 = ((word) XRM←BITRSHIFT(x←v47912, 31) - 1);
/*1*/                  j←v47840 = (word) XRM←BITAND(x←v47912, var←c56504);
/*1*/                  };
/*1*/               };
/*1*/            nj←v47868 = (j←v47840 + count←v47808);
SOURCE(20335, 78)
/*1*/            if (( (int)nj←v47868 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/               (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/               nj←v47868 = scanLength←v18264;
/*1*/               };
SOURCE(20418, 344)
/*1*/            if (( (int)nj←v47868 >  (int)j←v47840)) {
/*1*/               {
/*1*/                  word end←v47956;
/*1*/                  end←v47956 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/                  if ((0 == (end←v47956 & 1))) {
SOURCE(20500, 110)
/*1*/                     if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                        {
/*1*/                           W2 var←c56536;
/*1*/                           W2 var←c56568;
/*1*/                           W2 var←c0924;
/*1*/                           var←c56536.f0 = 5;
/*1*/                           var←c56536.f1 = j←v47840;
/*1*/                           var←c56568.f0 = 11;
/*1*/                           var←c56568.f1 = (* (( (ptr) gf←c62040)+115) );
/*1*/                           (*  (ptr) (word) &var←c0924 ) = 0;
/*1*/                           (* (( (ptr) (word) &var←c0924) + 1) ) = 0;
/*1*/                           {
/*1*/                              word pd221;
/*1*/                              pd221 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                              (void) ( *( (fPt) ((*  (ptr) pd221 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c56536, var←c56568, var←c0924, pd221)
/*1*/                              ;
/*1*/                              };
/*1*/                           };
/*1*/                        };
SOURCE(20612, 81)
/*1*/                     if ((end←v47956 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                        lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                        };
SOURCE(20695, 38)
/*1*/                     {
/*1*/                        word lineTransitions←v48000;
/*1*/                        lineTransitions←v48000 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                        (* (( (ptr) (lineTransitions←v48000 + 8))+end←v47956) ) = j←v47840;
/*1*/                        };
SOURCE(20735, 27)
/*1*/                     (*  (ptr) lineTransitions←v18516 ) = (end←v47956 + 1);
/*1*/                     };
/*1*/                  };
/*1*/               };
SOURCE(20770, 11)
/*1*/            var←c56408 = nj←v47868;
/*1*/            };
/*1*/         j←v18488 = var←c56408;
/*1*/         };
SOURCE(25126, 53)
/*1*/      (* (( (ptr) data←v9984)+10) ) = BCK((leftover←v19548 + 6), 19);
SOURCE(25181, 4)
/*1*/      goto lab←L100112;
/*1*/      };
/*1*/   }
                           else {
SOURCE(25196, 21)
/*1*/   {
/*1*/      word var←c56632;
/*1*/      word j0←v47516;
/*1*/      word count←v47544;
/*1*/      j0←v47516 = j←v18488;
/*1*/      count←v47544 = (val←v18460 - 1);
/*1*/      {
/*1*/         word j←v47576;
/*1*/         word nj←v47604;
/*1*/         {
/*1*/            word x←v47648;
/*1*/            x←v47648 = j0←v47516;
SOURCE(1477, 103)
/*1*/            {
/*1*/               word var←c56728;
/*1*/               var←c56728 = ((word) XRM←BITRSHIFT(x←v47648, 31) - 1);
/*1*/               j←v47576 = (word) XRM←BITAND(x←v47648, var←c56728);
/*1*/               };
/*1*/            };
/*1*/         nj←v47604 = (j←v47576 + count←v47544);
SOURCE(20335, 78)
/*1*/         if (( (int)nj←v47604 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/            nj←v47604 = scanLength←v18264;
/*1*/            };
SOURCE(20418, 344)
/*1*/         if (( (int)nj←v47604 >  (int)j←v47576)) {
/*1*/            {
/*1*/               word end←v47692;
/*1*/               end←v47692 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/               if ((0 == (end←v47692 & 1))) {
SOURCE(20500, 110)
/*1*/                  if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                     {
/*1*/                        W2 var←c56760;
/*1*/                        W2 var←c56792;
/*1*/                        W2 var←c0925;
/*1*/                        var←c56760.f0 = 5;
/*1*/                        var←c56760.f1 = j←v47576;
/*1*/                        var←c56792.f0 = 11;
/*1*/                        var←c56792.f1 = (* (( (ptr) gf←c62040)+115) );
/*1*/                        (*  (ptr) (word) &var←c0925 ) = 0;
/*1*/                        (* (( (ptr) (word) &var←c0925) + 1) ) = 0;
/*1*/                        {
/*1*/                           word pd222;
/*1*/                           pd222 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                           (void) ( *( (fPt) ((*  (ptr) pd222 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c56760, var←c56792, var←c0925, pd222)
/*1*/                           ;
/*1*/                           };
/*1*/                        };
/*1*/                     };
SOURCE(20612, 81)
/*1*/                  if ((end←v47692 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                     lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                     };
SOURCE(20695, 38)
/*1*/                  {
/*1*/                     word lineTransitions←v47736;
/*1*/                     lineTransitions←v47736 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                     (* (( (ptr) (lineTransitions←v47736 + 8))+end←v47692) ) = j←v47576;
/*1*/                     };
SOURCE(20735, 27)
/*1*/                  (*  (ptr) lineTransitions←v18516 ) = (end←v47692 + 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(20770, 11)
/*1*/         var←c56632 = nj←v47604;
/*1*/         };
/*1*/      j←v18488 = var←c56632;
/*1*/      };
SOURCE(25219, 17)
/*1*/   {
/*1*/      word var←c56856;
/*1*/      word j0←v47280;
/*1*/      j0←v47280 = j←v18488;
/*1*/      {
/*1*/         word j←v47312;
/*1*/         word nj←v47340;
/*1*/         {
/*1*/            word x←v47384;
/*1*/            x←v47384 = j0←v47280;
SOURCE(1477, 103)
/*1*/            {
/*1*/               word var←c56952;
/*1*/               var←c56952 = ((word) XRM←BITRSHIFT(x←v47384, 31) - 1);
/*1*/               j←v47312 = (word) XRM←BITAND(x←v47384, var←c56952);
/*1*/               };
/*1*/            };
/*1*/         nj←v47340 = (j←v47312 + 1);
SOURCE(20335, 78)
/*1*/         if (( (int)nj←v47340 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/            nj←v47340 = scanLength←v18264;
/*1*/            };
SOURCE(20418, 344)
/*1*/         if (( (int)nj←v47340 >  (int)j←v47312)) {
/*1*/            {
/*1*/               word end←v47428;
/*1*/               end←v47428 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/               if ((1 == (end←v47428 & 1))) {
SOURCE(20500, 110)
/*1*/                  if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                     {
/*1*/                        W2 var←c56984;
/*1*/                        W2 var←c57016;
/*1*/                        W2 var←c0926;
/*1*/                        var←c56984.f0 = 5;
/*1*/                        var←c56984.f1 = j←v47312;
/*1*/                        var←c57016.f0 = 11;
/*1*/                        var←c57016.f1 = (* (( (ptr) gf←c62040)+114) );
/*1*/                        (*  (ptr) (word) &var←c0926 ) = 0;
/*1*/                        (* (( (ptr) (word) &var←c0926) + 1) ) = 0;
/*1*/                        {
/*1*/                           word pd223;
/*1*/                           pd223 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                           (void) ( *( (fPt) ((*  (ptr) pd223 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c56984, var←c57016, var←c0926, pd223)
/*1*/                           ;
/*1*/                           };
/*1*/                        };
/*1*/                     };
SOURCE(20612, 81)
/*1*/                  if ((end←v47428 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                     lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                     };
SOURCE(20695, 38)
/*1*/                  {
/*1*/                     word lineTransitions←v47472;
/*1*/                     lineTransitions←v47472 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                     (* (( (ptr) (lineTransitions←v47472 + 8))+end←v47428) ) = j←v47312;
/*1*/                     };
SOURCE(20735, 27)
/*1*/                  (*  (ptr) lineTransitions←v18516 ) = (end←v47428 + 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(20770, 11)
/*1*/         var←c56856 = nj←v47340;
/*1*/         };
/*1*/      j←v18488 = var←c56856;
/*1*/      };
/*1*/   };
SOURCE(25241, 7)
                           val←v18460 = 0;
                           break;
                        case 6: 
SOURCE(25264, 192)
                           if (( (int)(j←v18488 + val←v18460) >  (int)scanLength←v18264)) {
SOURCE(25295, 133)
/*1*/   {
/*1*/      word leftover←v19592;
SOURCE(25297, 36)
/*1*/      leftover←v19592 = (val←v18460 - (scanLength←v18264 - j←v18488));
SOURCE(25335, 30)
/*1*/      {
/*1*/         word var←c57080;
/*1*/         word j0←v47016;
/*1*/         word count←v47044;
/*1*/         j0←v47016 = j←v18488;
/*1*/         count←v47044 = (scanLength←v18264 - j←v18488);
/*1*/         {
/*1*/            word j←v47076;
/*1*/            word nj←v47104;
/*1*/            {
/*1*/               word x←v47148;
/*1*/               x←v47148 = j0←v47016;
SOURCE(1477, 103)
/*1*/               {
/*1*/                  word var←c57176;
/*1*/                  var←c57176 = ((word) XRM←BITRSHIFT(x←v47148, 31) - 1);
/*1*/                  j←v47076 = (word) XRM←BITAND(x←v47148, var←c57176);
/*1*/                  };
/*1*/               };
/*1*/            nj←v47104 = (j←v47076 + count←v47044);
SOURCE(20335, 78)
/*1*/            if (( (int)nj←v47104 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/               (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/               nj←v47104 = scanLength←v18264;
/*1*/               };
SOURCE(20418, 344)
/*1*/            if (( (int)nj←v47104 >  (int)j←v47076)) {
/*1*/               {
/*1*/                  word end←v47192;
/*1*/                  end←v47192 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/                  if ((0 == (end←v47192 & 1))) {
SOURCE(20500, 110)
/*1*/                     if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                        {
/*1*/                           W2 var←c57208;
/*1*/                           W2 var←c57240;
/*1*/                           W2 var←c0927;
/*1*/                           var←c57208.f0 = 5;
/*1*/                           var←c57208.f1 = j←v47076;
/*1*/                           var←c57240.f0 = 11;
/*1*/                           var←c57240.f1 = (* (( (ptr) gf←c62040)+115) );
/*1*/                           (*  (ptr) (word) &var←c0927 ) = 0;
/*1*/                           (* (( (ptr) (word) &var←c0927) + 1) ) = 0;
/*1*/                           {
/*1*/                              word pd224;
/*1*/                              pd224 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                              (void) ( *( (fPt) ((*  (ptr) pd224 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c57208, var←c57240, var←c0927, pd224)
/*1*/                              ;
/*1*/                              };
/*1*/                           };
/*1*/                        };
SOURCE(20612, 81)
/*1*/                     if ((end←v47192 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                        lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                        };
SOURCE(20695, 38)
/*1*/                     {
/*1*/                        word lineTransitions←v47236;
/*1*/                        lineTransitions←v47236 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                        (* (( (ptr) (lineTransitions←v47236 + 8))+end←v47192) ) = j←v47076;
/*1*/                        };
SOURCE(20735, 27)
/*1*/                     (*  (ptr) lineTransitions←v18516 ) = (end←v47192 + 1);
/*1*/                     };
/*1*/                  };
/*1*/               };
SOURCE(20770, 11)
/*1*/            var←c57080 = nj←v47104;
/*1*/            };
/*1*/         j←v18488 = var←c57080;
/*1*/         };
SOURCE(25367, 53)
/*1*/      (* (( (ptr) data←v9984)+10) ) = BCK((leftover←v19592 + 11), 19);
SOURCE(25422, 4)
/*1*/      goto lab←L100112;
/*1*/      };
/*1*/   }
                           else {
SOURCE(25437, 19)
/*1*/   {
/*1*/      word var←c57304;
/*1*/      word j0←v46752;
/*1*/      word count←v46780;
/*1*/      j0←v46752 = j←v18488;
/*1*/      count←v46780 = val←v18460;
/*1*/      {
/*1*/         word j←v46812;
/*1*/         word nj←v46840;
/*1*/         {
/*1*/            word x←v46884;
/*1*/            x←v46884 = j0←v46752;
SOURCE(1477, 103)
/*1*/            {
/*1*/               word var←c57400;
/*1*/               var←c57400 = ((word) XRM←BITRSHIFT(x←v46884, 31) - 1);
/*1*/               j←v46812 = (word) XRM←BITAND(x←v46884, var←c57400);
/*1*/               };
/*1*/            };
/*1*/         nj←v46840 = (j←v46812 + count←v46780);
SOURCE(20335, 78)
/*1*/         if (( (int)nj←v46840 >  (int)scanLength←v18264)) {
SOURCE(20361, 35)
/*1*/            (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+87) ), goodBits←v18320);
SOURCE(20398, 15)
/*1*/            nj←v46840 = scanLength←v18264;
/*1*/            };
SOURCE(20418, 344)
/*1*/         if (( (int)nj←v46840 >  (int)j←v46812)) {
/*1*/            {
/*1*/               word end←v46928;
/*1*/               end←v46928 = (*  (ptr) lineTransitions←v18516 );
SOURCE(20472, 290)
/*1*/               if ((0 == (end←v46928 & 1))) {
SOURCE(20500, 110)
/*1*/                  if ((debug←v18600 != 0)) {
SOURCE(20533, 77)
/*1*/                     {
/*1*/                        W2 var←c57432;
/*1*/                        W2 var←c57464;
/*1*/                        W2 var←c0928;
/*1*/                        var←c57432.f0 = 5;
/*1*/                        var←c57432.f1 = j←v46812;
/*1*/                        var←c57464.f0 = 11;
/*1*/                        var←c57464.f1 = (* (( (ptr) gf←c62040)+115) );
/*1*/                        (*  (ptr) (word) &var←c0928 ) = 0;
/*1*/                        (* (( (ptr) (word) &var←c0928) + 1) ) = 0;
/*1*/                        {
/*1*/                           word pd225;
/*1*/                           pd225 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+60) );
/*1*/                           (void) ( *( (fPt) ((*  (ptr) pd225 ))))(debug←v18600, (* (( (ptr) gf←c62040)+88) ), var←c57432, var←c57464, var←c0928, pd225)
/*1*/                           ;
/*1*/                           };
/*1*/                        };
/*1*/                     };
SOURCE(20612, 81)
/*1*/                  if ((end←v46928 >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(20648, 45)
/*1*/                     lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
/*1*/                     };
SOURCE(20695, 38)
/*1*/                  {
/*1*/                     word lineTransitions←v46972;
/*1*/                     lineTransitions←v46972 = lineTransitions←v18516;
SOURCE(2121, 68)
/*1*/                     (* (( (ptr) (lineTransitions←v46972 + 8))+end←v46928) ) = j←v46812;
/*1*/                     };
SOURCE(20735, 27)
/*1*/                  (*  (ptr) lineTransitions←v18516 ) = (end←v46928 + 1);
/*1*/                  };
/*1*/               };
/*1*/            };
SOURCE(20770, 11)
/*1*/         var←c57304 = nj←v46840;
/*1*/         };
/*1*/      j←v18488 = var←c57304;
/*1*/      };
/*1*/   };
SOURCE(25461, 7)
                           val←v18460 = 0;
                           break;
                        };
                     };
SOURCE(25482, 16)
                  state←v18404 = (* (( (ptr) leaf←v19196)+2) );
SOURCE(25500, 109)
                  if ((0 != (* (( (ptr) data←v9984)+21) ))) {
SOURCE(25525, 16)
                     state←v18404 = (* (( (ptr) leaf←v19196)+2) );
SOURCE(25543, 66)
                     {
                        word var←c57528;
                        var←c57528 = state←v18404;
                        if ((var←c57528 == 0)) {
SOURCE(25570, 14)
                           state←v18404 = 2;
                           }
                        else {
                           if ((var←c57528 == 1)) {
SOURCE(25595, 14)
/*1*/   state←v18404 = 3;
/*1*/   };
                           };
                        };
                     };
SOURCE(25623, 16)
                  goto lab←L100115;
                  /* c2c skipped dead code */ 
                  lab←L100115: ;
SOURCE(25661, 27)
                  current←v18432 = (* (( (ptr) (* (( (ptr) data←v9984)+24) ))+state←v18404) );
                  goto lab←L100138;
                  lab←L100116: ;
SOURCE(25703, 38)
                  lineTransitions←v18516 = (* (( (ptr) data←v9984)+19) );
SOURCE(25743, 24)
                  goodBits←v18320 = (* (( (ptr) data←v9984)+13) );
SOURCE(25769, 26)
                  bitBuffer←v18292 = (* (( (ptr) data←v9984)+12) );
SOURCE(25797, 26)
                  state←v18404 = (* (( (ptr) data←v9984)+11) );
SOURCE(25825, 27)
                  current←v18432 = (* (( (ptr) (* (( (ptr) data←v9984)+24) ))+state←v18404) );
SOURCE(25854, 26)
                  (* (( (ptr) data←v9984)+10) ) = 0;
SOURCE(25882, 7)
                  val←v18460 = 0;
                  lab←L100138: ;
                  };
               }
            else {
               lab←L100114: ;
SOURCE(25910, 33)
               (void) LogError←P1680(data←v9984, (* (( (ptr) gf←c62040)+81) ), goodBits←v18320);
SOURCE(25945, 5)
               goto lab←L100112;
               };
            };
         };
      };
   goto lab←L100113;
   lab←L100112: ;
SOURCE(25962, 26)
   (* (( (ptr) data←v9984)+12) ) = bitBuffer←v18292;
SOURCE(25990, 24)
   (* (( (ptr) data←v9984)+13) ) = goodBits←v18320;
SOURCE(26016, 33)
   (* (( (ptr) data←v9984)+14) ) = ((* (( (ptr) data←v9984)+14) ) + 1);
SOURCE(26051, 28)
   (* (( (ptr) data←v9984)+15) ) = 0;
SOURCE(26081, 255)
   {
      word end←v19636;
SOURCE(26083, 35)
      end←v19636 = (*  (ptr) lineTransitions←v18516 );
SOURCE(26120, 83)
      if (((end←v19636 + 1) >= (* (( (ptr) lineTransitions←v18516)+1) ))) {
SOURCE(26158, 45)
         lineTransitions←v18516 = (word) ExpandLineTransitions←P1740(data←v9984);
         };
SOURCE(26205, 47)
      {
         word lineTransitions←v46608;
         lineTransitions←v46608 = lineTransitions←v18516;
SOURCE(2121, 68)
         (* (( (ptr) (lineTransitions←v46608 + 8))+end←v19636) ) = scanLength←v18264;
         };
SOURCE(26254, 49)
      {
         word lineTransitions←v46532;
         word i←v46560;
         lineTransitions←v46532 = lineTransitions←v18516;
         i←v46560 = (end←v19636 + 1);
SOURCE(2121, 68)
         (* (( (ptr) (lineTransitions←v46532 + 8))+i←v46560) ) = scanLength←v18264;
         };
SOURCE(26305, 29)
      (*  (ptr) lineTransitions←v18516 ) = (end←v19636 + 2);
      };
SOURCE(26339, 235)
   if ((debug←v18600 != 0)) {
SOURCE(26374, 66)
      {
         W2 var←c57592;
         var←c57592.f0 = 4;
         {
            word idx226;
            var←c57592.f1 = (
               idx226 = (* (( (ptr) data←v9984)+14) ),
               SGNCK(idx226)
               );
            };
         {
            word pd227;
            pd227 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd227 ))))(debug←v18600, (* (( (ptr) gf←c62040)+84) ), var←c57592, pd227);
            };
         };
SOURCE(26442, 97)
      {
         register word i←v19680 = 1;
         register word noName←c57624;
         noName←c57624 = ((*  (ptr) lineTransitions←v18516 ) - 1);
         if ((i←v19680 >= noName←c57624)) {
            goto lab←L100139;
            };
         lab←L100142: ;
SOURCE(26486, 53)
         {
            W2 var←c57656;
            var←c57656.f0 = 5;
            {
               word limit228;
               var←c57656.f1 = (* ((( (ptr) lineTransitions←v18516)+2)+(
                     limit228 = (* (( (ptr) lineTransitions←v18516)+1) ),
                     BCK(i←v19680, limit228)
                     )) );
               };
            {
               word pd229;
               pd229 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd229 ))))(debug←v18600, (* (( (ptr) gf←c62040)+85) ), var←c57656, pd229);
               };
            };
         i←v19680 = (i←v19680 + 1);
         if ((i←v19680 < noName←c57624)) {
            goto lab←L100142;
            };
         lab←L100139: ;
         };
SOURCE(26550, 24)
      {
         word pd230;
         pd230 = (* (( (ptr) (* (( (ptr) gf←c62040)+256)/* var←c51928 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd230 ))))(debug←v18600, (* (( (ptr) gf←c62040)+86) ), 0, 2147483647, pd230);
         };
      };
SOURCE(26579, 48)
   (* (( (ptr) data←v9984)+19) ) = (* (( (ptr) data←v9984)+18) );
SOURCE(26629, 43)
   (* (( (ptr) data←v9984)+18) ) = lineTransitions←v18516;
   }

static word InitRunTab←P1860()
   {
   W7 var←c62072;
   register ptr gf←c62104 =  (ptr) &globalframe;
   word var←c10204;
   /* declaration of var←c57688 skipped */ 
   word untracedZone←v19836;
   /* declaration of tab←v19864 skipped */ 
   /* InitRunTab: */ 
SOURCE(27157, 794)
   {
      word tmpAddr231;
      tmpAddr231 = (word) (( (ptr) &var←c62072)+4)/* var←c57688 */ ;
      (*  (ptr) tmpAddr231 ) = ( ((word)  (fPt) each←P6000) );
      (* (( (ptr) tmpAddr231) + 1) ) = 1;
      };
SOURCE(27229, 50)
   {
      word pd232;
      pd232 = (* (( (ptr) (* (( (ptr) gf←c62104)+257)/* var←c51960 */  ))+6) );
      untracedZone←v19836 = (word) ( *( (fPt) ((*  (ptr) pd232 ))))(pd232);
      };
SOURCE(27281, 58)
   {
      word pd233;
      pd233 = (*  (ptr) untracedZone←v19836 );
      var←c62072.f6/* tab←v19864 */  = (word) ( *( (fPt) ((*  (ptr) pd233 ))))(untracedZone←v19836, 4096, (* (( (ptr) gf←c62104)+46)
          ), pd233);
      };
SOURCE(27911, 26)
   (void) EnumerateTransitions←P3360((word) ((( (bPt) &var←c62072)+16)/* var←c57688 */ ));
SOURCE(27939, 12)
   return(var←c62072.f6/* tab←v19864 */ );
   }

static void each←P6000(old←v43456, bitstring←v43484, new←v43512, action←v43540, length←v43568, formal←c62136)
   word old←v43456;
   word bitstring←v43484;
   word new←v43512;
   word action←v43540;
   word length←v43568;
   word formal←c62136;
   {
   word base←v19956 = 0;
   formal←c62136 = (formal←c62136 - 16);
   /* each: */ 
SOURCE(27341, 553)
SOURCE(27396, 97)
   {
      word var←c57752;
      var←c57752 = old←v43456;
      switch (var←c57752) {
         case 2: case 4: 
            break;
         case 3: case 5: 
SOURCE(27454, 20)
            base←v19956 = 1024;
            break;
         default: 
SOURCE(27487, 6)
            return;
         };
      };
SOURCE(27495, 410)
   {
      word bits←v20000;
      word e←v20028;
      word shift←v20056;
      word bv←v20084;
      word nx←v20112;
      word x←v20140;
SOURCE(27497, 47)
      {
         word idx234;
         bits←v20000 = (
            idx234 = (word) BitstringSize←P2280(bitstring←v43484),
            BCK(idx234, 14)
            );
         };
SOURCE(27546, 42)
      e←v20028 = (((word) BCK(length←v43568, 4096) << 4) +  (unsigned) (bits←v20000 & 017));
SOURCE(27590, 35)
      shift←v20056 = (13 - bits←v20000);
SOURCE(27627, 59)
      {
         word var←c57816;
         var←c57816 = (word) BitstringVal←P2400(bitstring←v43484);
         bv←v20084 = (word) XRM←BITLSHIFT(var←c57816, shift←v20056);
         };
SOURCE(27688, 41)
      nx←v20112 = (word) XRM←BITLSHIFT(1, shift←v20056);
SOURCE(27731, 12)
      x←v20140 = bv←v20084;
SOURCE(27745, 97)
      if ((bv←v20084 >= 512)) {
SOURCE(27773, 21)
         nx←v20112 = ((word) nx←v20112 >> 4);
SOURCE(27796, 19)
         x←v20140 = ((word) x←v20140 >> 4);
SOURCE(27817, 25)
         base←v19956 = (base←v19956 + 512);
         };
SOURCE(27847, 47)
      {
         register word i←v20184 = 0;
         register word noName←c57848;
         noName←c57848 = nx←v20112;
         if ((i←v20184 >= noName←c57848)) {
            goto lab←L100143;
            };
         lab←L100146: ;
SOURCE(27877, 17)
         {
            word idx235;
            (* (( (hPt) (* (( (ptr) formal←c62136)+6) ))+(
                  idx235 = (word) ((base←v19956 + x←v20140) + i←v20184),
                  BCK(idx235, 2048)
                  )) ) = e←v20028;
            };
         i←v20184 = (i←v20184 + 1);
         if ((i←v20184 < noName←c57848)) {
            goto lab←L100146;
            };
         lab←L100143: ;
         };
      };
   }

static word BuildFastScanTab←P1920()
   {
   register ptr gf←c62168 =  (ptr) &globalframe;
   word var←c10592;
   word untracedZone←v20228;
   word new←v20256;
   /* BuildFastScanTab: */ 
SOURCE(28352, 544)
SOURCE(28405, 50)
   {
      word pd236;
      pd236 = (* (( (ptr) (* (( (ptr) gf←c62168)+257)/* var←c51960 */  ))+6) );
      untracedZone←v20228 = (word) ( *( (fPt) ((*  (ptr) pd236 ))))(pd236);
      };
SOURCE(28457, 64)
   {
      word pd237;
      pd237 = (*  (ptr) untracedZone←v20228 );
      new←v20256 = (word) ( *( (fPt) ((*  (ptr) pd237 ))))(untracedZone←v20228, 128, (* (( (ptr) gf←c62168)+45) ), pd237);
      };
   XR←FillWords(&(* (W32Pt) (new←v20256)), 32, 252645135);
SOURCE(28523, 350)
   {
      register word i←v20320 = 0;
      lab←L100150: ;
      {
         word e←v20364 = 15;
SOURCE(28604, 248)
         {
            word var←c57912;
            var←c57912 = i←v20320;
            if ((var←c57912 >= 64)) {
SOURCE(28627, 16)
               e←v20364 = 44;
               goto endif0238;
               };
            if ((var←c57912 >= 48)) {
SOURCE(28654, 16)
               e←v20364 = 112;
               goto endif0238;
               };
            if ((var←c57912 >= 32)) {
SOURCE(28681, 17)
               e←v20364 = 104;
               goto endif0238;
               };
            if ((var←c57912 >= 16)) {
SOURCE(28709, 17)
               e←v20364 = 110;
               goto endif0238;
               };
            if ((var←c57912 >= 8)) {
SOURCE(28736, 16)
               e←v20364 = 141;
               goto endif0238;
               };
            if ((var←c57912 == 6) || (var←c57912 == 7)) {
SOURCE(28762, 16)
               e←v20364 = 212;
               goto endif0238;
               };
            if ((var←c57912 == 4) || (var←c57912 == 5)) {
SOURCE(28788, 17)
               e←v20364 = 196;
               goto endif0238;
               };
            if ((var←c57912 == 3)) {
SOURCE(28812, 16)
               e←v20364 = 248;
               goto endif0238;
               };
            if ((var←c57912 == 2)) {
SOURCE(28835, 17)
               e←v20364 = 224;
               goto endif0238;
               };
            endif0238: ;
            };
SOURCE(28863, 10)
         (* (( (bPt) new←v20256)+i←v20320) ) = e←v20364;
         };
      if ((i←v20320 >= 127)) {
         goto lab←L100147;
         };
      i←v20320 = (i←v20320 + 1);
      goto lab←L100150;
      lab←L100147: ;
      };
SOURCE(28884, 12)
   return(new←v20256);
   }

static word MyGetBytes←P1980(data←v10664, gb←v10692)
   word data←v10664;
   word gb←v10692;
   {
   register ptr gf←c62200 =  (ptr) &globalframe;
   word var←c10736;
   word st←v20408;
   word w←v20436 = 0;
   word tab←v20464;
   word i←v20492;
   word len←v20520;
   /* MyGetBytes: */ 
SOURCE(28902, 611)
SOURCE(28989, 27)
   st←v20408 = (* (( (ptr) data←v10664)+8) );
SOURCE(29031, 69)
   tab←v20464 =  ( (0 != (* (( (ptr) data←v10664)+5) )) ? 0 : (* (( (ptr) gf←c62200)+19)/* reverseBitsTab←v4540 */  ) ) ;
SOURCE(29102, 23)
   i←v20492 = (* (( (ptr) st←v20408)+7) );
SOURCE(29127, 31)
   len←v20520 = (* (( (ptr) st←v20408)+5) );
SOURCE(29160, 312)
   lab←L100153: ;
   if ((gb←v10692 < 24)) {
      }
   else {
      goto lab←L100151;
      };
   {
      word b←v20576;
      if ((i←v20492 < len←v20520)) {
SOURCE(29220, 20)
         {
            word var←c57944;
            var←c57944 = (* (( (ptr) st←v20408)+4) );
            {
               word limit239;
               b←v20576 =  (unsigned) (word) (* ((( (bPt) var←c57944)+4)+(
                     limit239 = (word)  (unsigned) (* (( (hPt) var←c57944)+1) ),
                     BCK(i←v20492, limit239)
                     )) );
               };
            };
SOURCE(29242, 24)
         {
            word var←c57976;
            var←c57976 = (i←v20492 + 1);
            i←v20492 = var←c57976;
            (* (( (ptr) st←v20408)+7) ) = var←c57976;
            };
         }
      else {
         {
            word tc240;
            word pd241;
            if (((* (( (ptr) st←v20408)+7) ) >= (* (( (ptr) st←v20408)+5) ))) {
               pd241 = (* (( (ptr) (*  (ptr) st←v20408 ))+3) );
               tc240 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd241 ))))(st←v20408, pd241));
               }
            else {
               tc240 =  (word) 0;
               };
            if (tc240) {
SOURCE(29291, 5)
               b←v20576 = 0;
               }
            else {
SOURCE(29310, 24)
               {
                  word var←c58008;
                  word self←v44952;
                  self←v44952 = st←v20408;
                  {
                     word i←v45000;
                     i←v45000 = (* (( (ptr) self←v44952)+7) );
                     {
                        word pd242;
                        if ((i←v45000 < (* (( (ptr) self←v44952)+5) ))) {
                           (* (( (ptr) self←v44952)+7) ) = (i←v45000 + 1);
                           {
/*1*/   word var←c58072;
/*1*/   word buffer←v45032;
/*1*/   buffer←v45032 = (* (( (ptr) self←v44952)+4) );
/*1*/   var←c58072 =  (unsigned) (word) (* ((( (bPt) buffer←v45032)+4)+i←v45000) );
/*1*/   var←c58008 = var←c58072;
/*1*/   };
                           }
                        else {
                           pd242 = (*  (ptr) (*  (ptr) self←v44952 ) );
                           var←c58008 = (word) ( *( (fPt) ((*  (ptr) pd242 ))))(self←v44952, pd242);
                           };
                        };
                     };
                  b←v20576 = var←c58008;
                  };
SOURCE(29336, 18)
               i←v20492 = (* (( (ptr) st←v20408)+7) );
SOURCE(29356, 26)
               len←v20520 = (* (( (ptr) st←v20408)+5) );
               };
            };
         };
SOURCE(29385, 28)
      if ((tab←v20464 != 0)) {
SOURCE(29403, 10)
         b←v20576 =  (unsigned) (word) (* (( (bPt) tab←v20464)+b←v20576) );
         };
SOURCE(29415, 20)
      gb←v10692 = BCK((gb←v10692 + 8), 32);
SOURCE(29437, 35)
      w←v20436 = (w←v20436 + (word) XRM←BITLSHIFT(b←v20576, BCK((32 - gb←v10692), 32)));
      };
   goto lab←L100153;
   lab←L100151: ;
SOURCE(29483, 18)
   (* (( (ptr) data←v10664)+13) ) = gb←v10692;
SOURCE(29503, 10)
   return(w←v20436);
   }

static void PutGoodBits←P2040(st←v10796, w←v10824, bits←v10852)
   word st←v10796;
   word w←v10824;
   word bits←v10852;
   {
   register ptr gf←c62232 =  (ptr) &globalframe;
   /* PutGoodBits: */ 
SOURCE(29519, 145)
SOURCE(29577, 87)
   {
      register word noName←c58136 = 0;
      register word noName←c58168;
      noName←c58168 = (MIN( (unsigned) , bits←v10852, 32));
      if ((noName←c58136 >= noName←c58168)) {
         goto lab←L100156;
         };
      lab←L100159: ;
SOURCE(29608, 45)
      {
         word var←c58200;
         {
            word idx243;
            var←c58200 = (
               idx243 = (word) ((word) XRM←BITRSHIFT(w←v10824, 31) + 48),
               BCK(idx243, 256)
               );
            };
         {
            word pd244;
            pd244 = (* (( (ptr) (* (( (ptr) gf←c62232)+256)/* var←c51928 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd244 ))))(st←v10796, var←c58200, pd244);
            };
         };
SOURCE(29655, 9)
      w←v10824 = (w←v10824 + w←v10824);
      noName←c58136 = (noName←c58136 + 1);
      if ((noName←c58136 < noName←c58168)) {
         goto lab←L100159;
         };
      lab←L100156: ;
      };
   }

static word OneDimScan←P2100(data←v10912, j←v10940, bitBuffer←v10968, goodBits←v10996, color←v11024)
   word data←v10912;
   word j←v10940;
   word bitBuffer←v10968;
   word goodBits←v10996;
   word color←v11024;
   {
   register ptr gf←c62264 =  (ptr) &globalframe;
   word var←c11068;
   word nj←v20620 = 0;
   word i←v20648;
   word needBits←v20676 = 24;
   word scanLength←v20704;
   /* OneDimScan: */ 
SOURCE(29679, 2863)
SOURCE(29797, 33)
   i←v20648 = (* (( (ptr) data←v10912)+26) );
SOURCE(29866, 37)
   {
      word idx245;
      scanLength←v20704 = (
         idx245 = (* (( (ptr) data←v10912)+4) ),
         SGNCK(idx245)
         );
      };
SOURCE(31315, 71)
   if (((* (( (ptr) data←v10912)+7) ) != 0)) {
SOURCE(31342, 44)
      {
         word pd246;
         pd246 = (* (( (ptr) (* (( (ptr) gf←c62264)+256)/* var←c51928 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd246 ))))((* (( (ptr) data←v10912)+7) ), (* (( (ptr) gf←c62264)+91) ), 0, 2147483647, pd246)
         ;
         };
      };
SOURCE(31391, 769)
   lab←L100162: ;
   if (( (int)j←v10940 <  (int)scanLength←v20704)) {
      }
   else {
      goto lab←L100160;
      };
SOURCE(31415, 42)
   if ((goodBits←v10996 < 13)) {
SOURCE(31447, 10)
SOURCE(30247, 519)
      {
         word st←v21016;
         word index←v21044;
         st←v21016 = (* (( (ptr) data←v10912)+8) );
         index←v21044 = (* (( (ptr) st←v21016)+7) );
SOURCE(30312, 331)
         if ( ( ((index←v21044 + 3) < (* (( (ptr) st←v21016)+5) )) ? (0 != (* (( (ptr) data←v10912)+5) )) : 0 ) ) {
            {
               word bp←v21072;
               bp←v21072 = ((* (( (ptr) st←v21016)+4) ) + 4);
SOURCE(30438, 205)
               lab←L100166: ;
SOURCE(30441, 43)
               goodBits←v10996 = (goodBits←v10996 + 8);
SOURCE(30486, 85)
               bitBuffer←v10968 = (bitBuffer←v10968 + (word) XRM←BITLSHIFT( (unsigned) (word) (* (( (bPt) bp←v21072)+index←v21044) ), (32 - goodBits←v10996))
               );
SOURCE(30573, 17)
               index←v21044 = (index←v21044 + 1);
SOURCE(30592, 51)
               if ((goodBits←v10996 >= 24)) {
SOURCE(30621, 22)
                  (* (( (ptr) st←v21016)+7) ) = SGNCK(index←v21044);
SOURCE(30645, 10)
                  goto lab←L100163;
                  };
               goto lab←L100166;
               };
            };
SOURCE(30670, 50)
         bitBuffer←v10968 = (bitBuffer←v10968 + (word) MyGetBytes←P1980(data←v10912, goodBits←v10996));
SOURCE(30722, 24)
         goodBits←v10996 = (* (( (ptr) data←v10912)+13) );
         };
      goto lab←L100167;
      lab←L100163: ;
      lab←L100167: ;
      };
SOURCE(31459, 47)
   if (((word) XRM←BITRSHIFT(bitBuffer←v10968, 24) == 0)) {
SOURCE(31506, 4)
      goto lab←L100161;
      };
SOURCE(31512, 16)
   {
      word var←c58232;
      word x←v45956;
      x←v45956 = j←v10940;
SOURCE(1477, 103)
      {
         word var←c58296;
         var←c58296 = ((word) XRM←BITRSHIFT(x←v45956, 31) - 1);
         var←c58232 = (word) XRM←BITAND(x←v45956, var←c58296);
         };
      nj←v20620 = var←c58232;
      };
SOURCE(31530, 325)
   lab←L100171: ;
SOURCE(31530, 325)
   {
      word x←v20900;
SOURCE(31533, 55)
      x←v20900 = (word) XRM←BITRSHIFT(bitBuffer←v10968, 19);
SOURCE(31590, 58)
      if ((x←v20900 >= 512)) {
SOURCE(31615, 33)
         x←v20900 = (((word) x←v20900 >> 4) + 512);
         };
SOURCE(31650, 160)
      {
         word e←v20944;
         word v←v20972;
SOURCE(31652, 38)
         e←v20944 =  (unsigned) (word) (* (( (hPt) (* (( (ptr) gf←c62264)+20)/* runTabRef←v4708 */  ))+((((word) color←v11024 << 10) + 
            x←v20900) & 03777)) );
SOURCE(31692, 14)
         v←v20972 =  (unsigned) (((unsigned)e←v20944 << 16) >> 20);
SOURCE(31708, 17)
         needBits←v20676 =  (unsigned) (e←v20944 & 017);
SOURCE(31727, 21)
         if ((needBits←v20676 == 0)) {
SOURCE(31748, 4)
            goto lab←L100170;
            };
SOURCE(31754, 9)
SOURCE(30117, 50)
         goodBits←v10996 = (goodBits←v10996 - needBits←v20676);
SOURCE(30169, 49)
         bitBuffer←v10968 = (word) XRM←BITLSHIFT(bitBuffer←v10968, needBits←v20676);
SOURCE(31765, 11)
         nj←v20620 = (nj←v20620 + v←v20972);
SOURCE(31778, 26)
         if (( (int)v←v20972 <  (int)64)) {
SOURCE(31804, 4)
            goto lab←L100170;
            };
         };
SOURCE(31813, 42)
      if ((goodBits←v10996 < 13)) {
SOURCE(31845, 10)
SOURCE(30247, 519)
         {
            word st←v49064;
            word index←v49092;
            st←v49064 = (* (( (ptr) data←v10912)+8) );
            index←v49092 = (* (( (ptr) st←v49064)+7) );
SOURCE(30312, 331)
            if ( ( ((index←v49092 + 3) < (* (( (ptr) st←v49064)+5) )) ? (0 != (* (( (ptr) data←v10912)+5) )) : 0 ) ) {
               {
                  word bp←v49136;
                  bp←v49136 = ((* (( (ptr) st←v49064)+4) ) + 4);
SOURCE(30438, 205)
                  lab←L100175: ;
SOURCE(30441, 43)
                  goodBits←v10996 = (goodBits←v10996 + 8);
SOURCE(30486, 85)
                  bitBuffer←v10968 = (bitBuffer←v10968 + (word) XRM←BITLSHIFT( (unsigned) (word) (* (( (bPt) bp←v49136)+index←v49092) ), (32 - goodBits←v10996))
                  );
SOURCE(30573, 17)
                  index←v49092 = (index←v49092 + 1);
SOURCE(30592, 51)
                  if ((goodBits←v10996 >= 24)) {
SOURCE(30621, 22)
                     (* (( (ptr) st←v49064)+7) ) = SGNCK(index←v49092);
SOURCE(30645, 10)
                     goto lab←L100172;
                     };
                  goto lab←L100175;
                  };
               };
SOURCE(30670, 50)
            bitBuffer←v10968 = (bitBuffer←v10968 + (word) MyGetBytes←P1980(data←v10912, goodBits←v10996));
SOURCE(30722, 24)
            goodBits←v10996 = (* (( (ptr) data←v10912)+13) );
            };
         goto lab←L100176;
         lab←L100172: ;
         lab←L100176: ;
         };
      };
   goto lab←L100171;
   lab←L100170: ;
SOURCE(31866, 78)
   if (( (int)nj←v20620 >  (int)scanLength←v20704)) {
SOURCE(31892, 35)
      (void) LogError←P1680(data←v10912, (* (( (ptr) gf←c62264)+87) ), goodBits←v10996);
SOURCE(31929, 15)
      nj←v20620 = scanLength←v20704;
      };
SOURCE(31949, 160)
   if (((* (( (ptr) data←v10912)+7) ) != 0)) {
SOURCE(31976, 61)
      {
         W2 var←c58328;
         var←c58328.f0 = 5;
         var←c58328.f1 = nj←v20620;
         {
            word pd247;
            pd247 = (* (( (ptr) (* (( (ptr) gf←c62264)+256)/* var←c51928 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd247 ))))((* (( (ptr) data←v10912)+7) ), (* (( (ptr) gf←c62264)+92) ), var←c58328, pd247);
            };
         };
SOURCE(32039, 41)
      {
         W2 var←c58360;
         word var←c0929;
         var←c58360.f0 = (* (( (ptr) gf←c62264)+115) );
         var←c58360.f1 = (* (( (ptr) gf←c62264)+114) );
         var←c0929 = (* (( (ptr) &var←c58360)+color←v11024) );
         {
            word pd248;
            pd248 = (* (( (ptr) (* (( (ptr) gf←c62264)+256)/* var←c51928 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd248 ))))((* (( (ptr) data←v10912)+7) ), var←c0929, 0, 2147483647, pd248);
            };
         };
SOURCE(32082, 27)
      {
         word pd249;
         pd249 = (* (( (ptr) (* (( (ptr) gf←c62264)+256)/* var←c51928 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd249 ))))((* (( (ptr) data←v10912)+7) ), 10, pd249);
         };
      };
SOURCE(32114, 6)
   {
      word jb←v21100;
      word lineTransitions←v21128;
      word end←v21156;
      {
         word x←v45908;
         x←v45908 = j←v10940;
SOURCE(1477, 103)
         {
            word var←c58456;
            var←c58456 = ((word) XRM←BITRSHIFT(x←v45908, 31) - 1);
            jb←v21100 = (word) XRM←BITAND(x←v45908, var←c58456);
            };
         };
      lineTransitions←v21128 = (* (( (ptr) data←v10912)+19) );
      end←v21156 = (*  (ptr) lineTransitions←v21128 );
SOURCE(30914, 385)
      if ( ( ( (int)nj←v20620 >  (int)jb←v21100) ? (color←v11024 == (end←v21156 & 1)) : 0 ) ) {
SOURCE(30956, 81)
         if ((end←v21156 >= (* (( (ptr) lineTransitions←v21128)+1) ))) {
SOURCE(30992, 45)
            lineTransitions←v21128 = (word) ExpandLineTransitions←P1740(data←v10912);
            };
SOURCE(31231, 39)
         {
            word lineTransitions←v46436;
            lineTransitions←v46436 = lineTransitions←v21128;
SOURCE(2121, 68)
            (* (( (ptr) (lineTransitions←v46436 + 8))+end←v21156) ) = jb←v21100;
            };
SOURCE(31272, 27)
         (*  (ptr) lineTransitions←v21128 ) = (end←v21156 + 1);
         };
SOURCE(31304, 6)
      j←v10940 = nj←v20620;
      };
SOURCE(32143, 17)
   color←v11024 = (1 - color←v11024);
   goto lab←L100162;
   lab←L100160: ;
   lab←L100161: ;
SOURCE(32171, 76)
   if (( (int)j←v10940 >  (int)scanLength←v20704)) {
SOURCE(32196, 35)
      (void) LogError←P1680(data←v10912, (* (( (ptr) gf←c62264)+87) ), goodBits←v10996);
SOURCE(32233, 14)
      j←v10940 = scanLength←v20704;
      };
SOURCE(32252, 31)
   (* (( (ptr) data←v10912)+11) ) = color←v11024;
SOURCE(32285, 162)
   if (((* (( (ptr) data←v10912)+7) ) != 0)) {
SOURCE(32312, 60)
      {
         W2 var←c58488;
         var←c58488.f0 = 5;
         var←c58488.f1 = j←v10940;
         {
            word pd250;
            pd250 = (* (( (ptr) (* (( (ptr) gf←c62264)+256)/* var←c51928 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd250 ))))((* (( (ptr) data←v10912)+7) ), (* (( (ptr) gf←c62264)+93) ), var←c58488, pd250);
            };
         };
SOURCE(32374, 44)
      (void) PutGoodBits←P2040((* (( (ptr) data←v10912)+7) ), bitBuffer←v10968, goodBits←v10996);
SOURCE(32420, 27)
      {
         word pd251;
         pd251 = (* (( (ptr) (* (( (ptr) gf←c62264)+256)/* var←c51928 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd251 ))))((* (( (ptr) data←v10912)+7) ), 10, pd251);
         };
      };
SOURCE(32452, 23)
   (* (( (ptr) data←v10912)+26) ) = i←v20648;
SOURCE(32478, 26)
   (* (( (ptr) data←v10912)+12) ) = bitBuffer←v10968;
SOURCE(32506, 24)
   (* (( (ptr) data←v10912)+13) ) = goodBits←v10996;
SOURCE(32532, 10)
   return(j←v10940);
   }

static word FastScan←P2160(data←v11128, j←v11156, bitBuffer←v11184, goodBits←v11212, color←v11240)
   word data←v11128;
   word j←v11156;
   word bitBuffer←v11184;
   word goodBits←v11212;
   word color←v11240;
   {
   register ptr gf←c62296 =  (ptr) &globalframe;
   word var←c11284;
   word nj←v21196 = 0;
   word i←v21224;
   word needBits←v21252 = 24;
   word scanLength←v21280;
   /* FastScan: */ 
SOURCE(32548, 4181)
SOURCE(32664, 33)
   i←v21224 = (* (( (ptr) data←v11128)+26) );
SOURCE(32733, 56)
   scanLength←v21280 = (* (( (ptr) data←v11128)+4) );
SOURCE(34382, 1948)
   lab←L100180: ;
   if (( (int)j←v11156 <  (int)scanLength←v21280)) {
      }
   else {
      goto lab←L100178;
      };
SOURCE(34464, 42)
   if ((goodBits←v11212 < 7)) {
SOURCE(34496, 10)
SOURCE(33133, 534)
      {
         word st←v21864;
         word index←v21892;
         st←v21864 = (* (( (ptr) data←v11128)+8) );
         index←v21892 = (* (( (ptr) st←v21864)+7) );
SOURCE(33198, 346)
         if ( ( ((index←v21892 + 3) < (* (( (ptr) st←v21864)+5) )) ? (0 != (* (( (ptr) data←v11128)+5) )) : 0 ) ) {
            {
               word bp←v21920;
               bp←v21920 = ((* (( (ptr) st←v21864)+4) ) + 4);
SOURCE(33324, 220)
               lab←L100184: ;
SOURCE(33327, 43)
               goodBits←v11212 = (goodBits←v11212 + 8);
SOURCE(33372, 85)
               bitBuffer←v11184 = (bitBuffer←v11184 + (word) XRM←BITLSHIFT( (unsigned) (word) (* (( (bPt) bp←v21920)+index←v21892) ), (32 - goodBits←v11212))
               );
SOURCE(33459, 17)
               index←v21892 = (index←v21892 + 1);
SOURCE(33478, 66)
               if ((goodBits←v11212 >= 24)) {
SOURCE(33507, 37)
                  (* (( (ptr) st←v21864)+7) ) = SGNCK(index←v21892);
SOURCE(33546, 10)
                  goto lab←L100181;
                  };
               goto lab←L100184;
               };
            };
SOURCE(33571, 50)
         bitBuffer←v11184 = (bitBuffer←v11184 + (word) MyGetBytes←P1980(data←v11128, goodBits←v11212));
SOURCE(33623, 24)
         goodBits←v11212 = (* (( (ptr) data←v11128)+13) );
         };
      goto lab←L100185;
      lab←L100181: ;
      lab←L100185: ;
      };
SOURCE(34508, 1822)
SOURCE(34510, 96)
   {
      word b←v21476;
      word e←v21504;
SOURCE(34510, 96)
      b←v21476 = (word) XRM←BITRSHIFT(bitBuffer←v11184, 25);
SOURCE(34608, 33)
      e←v21504 =  (unsigned) (word) (* (( (bPt) (* (( (ptr) gf←c62296)+21)/* fastScanTab←v5044 */  ))+b←v21476) );
SOURCE(34643, 1532)
      {
         word var←c58520;
         var←c58520 =  (unsigned) (e←v21504 & 3);
         switch (var←c58520) {
            case 0: 
SOURCE(34670, 445)
               {
                  word ref←v21548;
                  word var←c58552;
                  word lineTransitions←v46340;
                  word var←c0930;
SOURCE(34672, 53)
                  ref←v21548 = (* (( (ptr) data←v11128)+18) );
SOURCE(34727, 46)
                  lab←L100190: ;
                  lineTransitions←v46340 = ref←v21548;
SOURCE(1942, 73)
                  var←c58552 = (* (( (ptr) (lineTransitions←v46340 + 8))+i←v21224) );
                  if (( (int)var←c58552 >  (int)(j←v11156 + 1))) {
                     }
                  else {
                     goto lab←L100188;
                     };
SOURCE(34764, 9)
                  i←v21224 = (i←v21224 - 1);
                  goto lab←L100190;
                  lab←L100188: ;
SOURCE(34784, 29)
                  i←v21224 = (i←v21224 + (((color←v11240 + i←v21224) + 1) & 1));
SOURCE(34815, 52)
                  lab←L100194: ;
                  {
                     word var←c58584;
                     word lineTransitions←v46292;
                     lineTransitions←v46292 = ref←v21548;
SOURCE(1942, 73)
                     var←c58584 = (* (( (ptr) (lineTransitions←v46292 + 8))+i←v21224) );
                     nj←v21196 = var←c58584;
                     };
                  var←c0930 = nj←v21196;
                  if (( (int)var←c0930 <=  (int)j←v11156)) {
                     }
                  else {
                     goto lab←L100192;
                     };
SOURCE(34858, 9)
                  i←v21224 = (i←v21224 + 2);
                  goto lab←L100194;
                  lab←L100192: ;
SOURCE(34878, 17)
                  nj←v21196 = (( (unsigned) (((unsigned)e←v21504 << 27) >> 29) - 3) + nj←v21196);
SOURCE(34897, 52)
                  {
                     word end←v21604;
SOURCE(34899, 25)
                     end←v21604 = ((*  (ptr) ref←v21548 ) - 2);
SOURCE(34926, 23)
                     if ((i←v21224 > end←v21604)) {
SOURCE(34942, 7)
                        i←v21224 = end←v21604;
                        };
                     };
SOURCE(34952, 15)
                  if (( (int)nj←v21196 <  (int)j←v11156)) {
SOURCE(34967, 12)
                     goto lab←L100186;
                     };
SOURCE(35039, 15)
                  needBits←v21252 =  (unsigned) (((unsigned)e←v21504 << 24) >> 29);
SOURCE(35056, 9)
SOURCE(33003, 50)
                  goodBits←v11212 = (goodBits←v11212 - needBits←v21252);
SOURCE(33055, 49)
                  bitBuffer←v11184 = (word) XRM←BITLSHIFT(bitBuffer←v11184, needBits←v21252);
SOURCE(35067, 6)
                  {
                     word jb←v21948;
                     word lineTransitions←v21976;
                     word end←v22004;
                     {
                        word x←v45812;
                        x←v45812 = j←v11156;
SOURCE(1477, 103)
                        {
                           word var←c58680;
                           var←c58680 = ((word) XRM←BITRSHIFT(x←v45812, 31) - 1);
                           jb←v21948 = (word) XRM←BITAND(x←v45812, var←c58680);
                           };
                        };
                     lineTransitions←v21976 = (* (( (ptr) data←v11128)+19) );
                     end←v22004 = (*  (ptr) lineTransitions←v21976 );
SOURCE(33815, 385)
                     if ( ( ( (int)nj←v21196 >  (int)jb←v21948) ? (color←v11240 == (end←v22004 & 1)) : 0 ) ) {
SOURCE(33857, 81)
                        if ((end←v22004 >= (* (( (ptr) lineTransitions←v21976)+1) ))) {
SOURCE(33893, 45)
                           lineTransitions←v21976 = (word) ExpandLineTransitions←P1740(data←v11128);
                           };
SOURCE(34132, 39)
                        {
                           word lineTransitions←v46388;
                           lineTransitions←v46388 = lineTransitions←v21976;
SOURCE(2121, 68)
                           (* (( (ptr) (lineTransitions←v46388 + 8))+end←v22004) ) = jb←v21948;
                           };
SOURCE(34173, 27)
                        (*  (ptr) lineTransitions←v21976 ) = (end←v22004 + 1);
                        };
SOURCE(34205, 6)
                     j←v11156 = nj←v21196;
                     };
SOURCE(35096, 17)
                  color←v11240 = (1 - color←v11240);
                  };
               break;
            case 2: 
SOURCE(35187, 12)
               needBits←v21252 = 3;
SOURCE(35201, 9)
SOURCE(33003, 50)
               goodBits←v11212 = (goodBits←v11212 - needBits←v21252);
SOURCE(33055, 49)
               bitBuffer←v11184 = (word) XRM←BITLSHIFT(bitBuffer←v11184, needBits←v21252);
SOURCE(35242, 514)
               {
                  register word noName←c58712 = 0;
                  if ((noName←c58712 > 1)) {
                     goto lab←L100197;
                     };
                  lab←L100200: ;
SOURCE(35260, 16)
                  {
                     word var←c58744;
                     word x←v45860;
                     x←v45860 = j←v11156;
SOURCE(1477, 103)
                     {
                        word var←c58808;
                        var←c58808 = ((word) XRM←BITRSHIFT(x←v45860, 31) - 1);
                        var←c58744 = (word) XRM←BITAND(x←v45860, var←c58808);
                        };
                     nj←v21196 = var←c58744;
                     };
SOURCE(35278, 328)
                  lab←L100204: ;
SOURCE(35281, 42)
                  if ((goodBits←v11212 < 13)) {
SOURCE(35313, 10)
SOURCE(33133, 534)
                     {
                        word st←v49260;
                        word index←v49288;
                        st←v49260 = (* (( (ptr) data←v11128)+8) );
                        index←v49288 = (* (( (ptr) st←v49260)+7) );
SOURCE(33198, 346)
                        if ( ( ((index←v49288 + 3) < (* (( (ptr) st←v49260)+5) )) ? (0 != (* (( (ptr) data←v11128)+5) )) : 0 ) ) {
                           {
/*1*/   word bp←v49332;
/*1*/   bp←v49332 = ((* (( (ptr) st←v49260)+4) ) + 4);
SOURCE(33324, 220)
/*1*/   lab←L100208: ;
SOURCE(33327, 43)
/*1*/   goodBits←v11212 = (goodBits←v11212 + 8);
SOURCE(33372, 85)
/*1*/   bitBuffer←v11184 = (bitBuffer←v11184 + (word) XRM←BITLSHIFT( (unsigned) (word) (* (( (bPt) bp←v49332)+index←v49288) ), (32 - goodBits←v11212))
/*1*/   );
SOURCE(33459, 17)
/*1*/   index←v49288 = (index←v49288 + 1);
SOURCE(33478, 66)
/*1*/   if ((goodBits←v11212 >= 24)) {
SOURCE(33507, 37)
/*1*/      (* (( (ptr) st←v49260)+7) ) = SGNCK(index←v49288);
SOURCE(33546, 10)
/*1*/      goto lab←L100205;
/*1*/      };
/*1*/   goto lab←L100208;
/*1*/   };
                           };
SOURCE(33571, 50)
                        bitBuffer←v11184 = (bitBuffer←v11184 + (word) MyGetBytes←P1980(data←v11128, goodBits←v11212));
SOURCE(33623, 24)
                        goodBits←v11212 = (* (( (ptr) data←v11128)+13) );
                        };
                     goto lab←L100209;
                     lab←L100205: ;
                     lab←L100209: ;
                     };
SOURCE(35325, 290)
                  {
                     word x←v21648;
SOURCE(35327, 55)
                     x←v21648 = (word) XRM←BITRSHIFT(bitBuffer←v11184, 19);
SOURCE(35384, 58)
                     if ((x←v21648 >= 512)) {
SOURCE(35409, 33)
                        x←v21648 = (((word) x←v21648 >> 4) + 512);
                        };
SOURCE(35444, 168)
                     {
                        word e←v21692;
                        word v←v21720;
SOURCE(35446, 38)
                        e←v21692 =  (unsigned) (word) (* (( (hPt) (* (( (ptr) gf←c62296)+20)/* runTabRef←v4708 */  ))+((((word) color←v11240 << 10) + 
                           x←v21648) & 03777)) );
SOURCE(35486, 14)
                        v←v21720 =  (unsigned) (((unsigned)e←v21692 << 16) >> 20);
SOURCE(35502, 17)
                        needBits←v21252 =  (unsigned) (e←v21692 & 017);
SOURCE(35521, 21)
                        if ((needBits←v21252 == 0)) {
SOURCE(35542, 12)
                           goto lab←L100187;
                           };
SOURCE(35556, 9)
SOURCE(33003, 50)
                        goodBits←v11212 = (goodBits←v11212 - needBits←v21252);
SOURCE(33055, 49)
                        bitBuffer←v11184 = (word) XRM←BITLSHIFT(bitBuffer←v11184, needBits←v21252);
SOURCE(35567, 11)
                        nj←v21196 = (nj←v21196 + v←v21720);
SOURCE(35580, 26)
                        if (( (int)v←v21720 <  (int)64)) {
SOURCE(35606, 4)
                           goto lab←L100203;
                           };
                        };
                     };
                  goto lab←L100204;
                  lab←L100203: ;
SOURCE(35627, 78)
                  if (( (int)nj←v21196 >  (int)scanLength←v21280)) {
SOURCE(35653, 35)
                     (void) LogError←P1680(data←v11128, (* (( (ptr) gf←c62296)+87) ), goodBits←v11212);
SOURCE(35690, 15)
                     nj←v21196 = scanLength←v21280;
                     };
SOURCE(35710, 6)
                  {
                     word jb←v49596;
                     word lineTransitions←v49624;
                     word end←v49652;
                     {
                        word x←v49696;
                        x←v49696 = j←v11156;
SOURCE(1477, 103)
                        {
                           word var←c58904;
                           var←c58904 = ((word) XRM←BITRSHIFT(x←v49696, 31) - 1);
                           jb←v49596 = (word) XRM←BITAND(x←v49696, var←c58904);
                           };
                        };
                     lineTransitions←v49624 = (* (( (ptr) data←v11128)+19) );
                     end←v49652 = (*  (ptr) lineTransitions←v49624 );
SOURCE(33815, 385)
                     if ( ( ( (int)nj←v21196 >  (int)jb←v49596) ? (color←v11240 == (end←v49652 & 1)) : 0 ) ) {
SOURCE(33857, 81)
                        if ((end←v49652 >= (* (( (ptr) lineTransitions←v49624)+1) ))) {
SOURCE(33893, 45)
                           lineTransitions←v49624 = (word) ExpandLineTransitions←P1740(data←v11128);
                           };
SOURCE(34132, 39)
                        {
                           word lineTransitions←v49740;
                           lineTransitions←v49740 = lineTransitions←v49624;
SOURCE(2121, 68)
                           (* (( (ptr) (lineTransitions←v49740 + 8))+end←v49652) ) = jb←v49596;
                           };
SOURCE(34173, 27)
                        (*  (ptr) lineTransitions←v49624 ) = (end←v49652 + 1);
                        };
SOURCE(34205, 6)
                     j←v11156 = nj←v21196;
                     };
SOURCE(35739, 17)
                  color←v11240 = (1 - color←v11240);
                  if ((noName←c58712 >= 1)) {
                     goto lab←L100197;
                     };
                  noName←c58712 = (noName←c58712 + 1);
                  goto lab←L100200;
                  lab←L100197: ;
                  };
               break;
            case 1: 
SOURCE(35778, 420)
               {
                  word ref←v21764;
                  word var←c58936;
                  word lineTransitions←v46244;
                  word var←c0931;
SOURCE(35780, 53)
                  ref←v21764 = (* (( (ptr) data←v11128)+18) );
SOURCE(35835, 46)
                  lab←L100213: ;
                  lineTransitions←v46244 = ref←v21764;
SOURCE(1942, 73)
                  var←c58936 = (* (( (ptr) (lineTransitions←v46244 + 8))+i←v21224) );
                  if (( (int)var←c58936 >  (int)(j←v11156 + 1))) {
                     }
                  else {
                     goto lab←L100211;
                     };
SOURCE(35872, 9)
                  i←v21224 = (i←v21224 - 1);
                  goto lab←L100213;
                  lab←L100211: ;
SOURCE(35892, 29)
                  i←v21224 = (i←v21224 + (((color←v11240 + i←v21224) + 1) & 1));
SOURCE(35923, 52)
                  lab←L100217: ;
                  {
                     word var←c58968;
                     word lineTransitions←v46196;
                     lineTransitions←v46196 = ref←v21764;
SOURCE(1942, 73)
                     var←c58968 = (* (( (ptr) (lineTransitions←v46196 + 8))+i←v21224) );
                     nj←v21196 = var←c58968;
                     };
                  var←c0931 = nj←v21196;
                  if (( (int)var←c0931 <=  (int)j←v11156)) {
                     }
                  else {
                     goto lab←L100215;
                     };
SOURCE(35966, 9)
                  i←v21224 = (i←v21224 + 2);
                  goto lab←L100217;
                  lab←L100215: ;
SOURCE(35986, 9)
                  i←v21224 = (i←v21224 + 1);
SOURCE(35997, 52)
                  {
                     word end←v21820;
SOURCE(35999, 25)
                     end←v21820 = ((*  (ptr) ref←v21764 ) - 2);
SOURCE(36026, 23)
                     if ((i←v21224 > end←v21820)) {
SOURCE(36042, 7)
                        i←v21224 = end←v21820;
                        };
                     };
SOURCE(36052, 26)
                  {
                     word var←c59000;
                     word lineTransitions←v46148;
                     lineTransitions←v46148 = ref←v21764;
SOURCE(1942, 73)
                     var←c59000 = (* (( (ptr) (lineTransitions←v46148 + 8))+i←v21224) );
                     nj←v21196 = var←c59000;
                     };
SOURCE(36136, 12)
                  needBits←v21252 = 4;
SOURCE(36150, 9)
SOURCE(33003, 50)
                  goodBits←v11212 = (goodBits←v11212 - needBits←v21252);
SOURCE(33055, 49)
                  bitBuffer←v11184 = (word) XRM←BITLSHIFT(bitBuffer←v11184, needBits←v21252);
SOURCE(36169, 6)
                  {
                     word jb←v49408;
                     word lineTransitions←v49436;
                     word end←v49464;
                     {
                        word x←v49508;
                        x←v49508 = j←v11156;
SOURCE(1477, 103)
                        {
                           word var←c59096;
                           var←c59096 = ((word) XRM←BITRSHIFT(x←v49508, 31) - 1);
                           jb←v49408 = (word) XRM←BITAND(x←v49508, var←c59096);
                           };
                        };
                     lineTransitions←v49436 = (* (( (ptr) data←v11128)+19) );
                     end←v49464 = (*  (ptr) lineTransitions←v49436 );
SOURCE(33815, 385)
                     if ( ( ( (int)nj←v21196 >  (int)jb←v49408) ? (color←v11240 == (end←v49464 & 1)) : 0 ) ) {
SOURCE(33857, 81)
                        if ((end←v49464 >= (* (( (ptr) lineTransitions←v49436)+1) ))) {
SOURCE(33893, 45)
                           lineTransitions←v49436 = (word) ExpandLineTransitions←P1740(data←v11128);
                           };
SOURCE(34132, 39)
                        {
                           word lineTransitions←v49552;
                           lineTransitions←v49552 = lineTransitions←v49436;
SOURCE(2121, 68)
                           (* (( (ptr) (lineTransitions←v49552 + 8))+end←v49464) ) = jb←v49408;
                           };
SOURCE(34173, 27)
                        (*  (ptr) lineTransitions←v49436 ) = (end←v49464 + 1);
                        };
SOURCE(34205, 6)
                     j←v11156 = nj←v21196;
                     };
                  };
               break;
            default: 
SOURCE(36212, 4)
               goto lab←L100179;
            };
         };
      };
   goto lab←L100221;
   lab←L100186: ;
SOURCE(36235, 33)
   (void) LogError←P1680(data←v11128, (* (( (ptr) gf←c62296)+83) ), goodBits←v11212);
SOURCE(36270, 4)
   goto lab←L100179;
   /* c2c skipped dead code */ 
   lab←L100187: ;
SOURCE(36288, 33)
   (void) LogError←P1680(data←v11128, (* (( (ptr) gf←c62296)+81) ), goodBits←v11212);
SOURCE(36323, 4)
   goto lab←L100179;
   lab←L100221: ;
   goto lab←L100180;
   lab←L100178: ;
   lab←L100179: ;
SOURCE(36342, 76)
   if (( (int)j←v11156 >  (int)scanLength←v21280)) {
SOURCE(36367, 35)
      (void) LogError←P1680(data←v11128, (* (( (ptr) gf←c62296)+87) ), goodBits←v11212);
SOURCE(36404, 14)
      j←v11156 = scanLength←v21280;
      };
SOURCE(36423, 31)
   (* (( (ptr) data←v11128)+11) ) = color←v11240;
SOURCE(36639, 23)
   (* (( (ptr) data←v11128)+26) ) = i←v21224;
SOURCE(36665, 26)
   (* (( (ptr) data←v11128)+12) ) = bitBuffer←v11184;
SOURCE(36693, 24)
   (* (( (ptr) data←v11128)+13) ) = goodBits←v11212;
SOURCE(36719, 10)
   return(j←v11156);
   }

static word BitstringSize←P2280(b←v12136)
   word b←v12136;
   {
   word var←c12180;
   /* BitstringSize: */ 
SOURCE(37090, 130)
SOURCE(37148, 72)
   {
      register word i←v22044 = 31;
      lab←L100225: ;
SOURCE(37185, 35)
      {
         word ix252;
         if (( (unsigned) (
            ix252 = BCK(i←v22044, 32),
            ((word) b←v12136 >> (31 - (word) ix252)) & 1
            ) == 1)) {
SOURCE(37202, 18)
            return(BCK(i←v22044, 32));
            };
         };
      if ((0 >= i←v22044)) {
         goto lab←L100222;
         };
      i←v22044 = (i←v22044 - 1);
      goto lab←L100225;
      lab←L100222: ;
      };
SOURCE(37222, 5)
   (void) XR←RaiseUnnamedError();
   }

static word BitstringFetch←P2340(b←v12240, i←v12268)
   word b←v12240;
   word i←v12268;
   {
   word var←c12312;
   /* BitstringFetch: */ 
SOURCE(37232, 74)
SOURCE(37294, 12)
   {
      word ix253;
      return( (unsigned) (
         ix253 = BCK(i←v12268, 32),
         ((word) b←v12240 >> (31 - (word) ix253)) & 1
         ));
      };
   }

static word BitstringVal←P2400(b←v12372)
   word b←v12372;
   {
   word var←c12416;
   word c←v22088;
   /* BitstringVal: */ 
SOURCE(37311, 153)
SOURCE(37368, 25)
   c←v22088 = b←v12372;
SOURCE(37395, 44)
   if ((c←v22088 != 0)) {
SOURCE(37409, 30)
      lab←L100228: ;
      if (((c←v22088 & 1) != 1)) {
         }
      else {
         goto lab←L100226;
         };
SOURCE(37430, 9)
      c←v22088 = ((word) c←v22088 >> 1);
      goto lab←L100228;
      lab←L100226: ;
      };
SOURCE(37450, 14)
   return(((word) c←v22088 >> 1));
   }

static word NewTreeNode←P2460(bitCount←v12648)
   word bitCount←v12648;
   {
   register ptr gf←c62328 =  (ptr) &globalframe;
   word var←c12692;
   word new←v22132;
   /* NewTreeNode: */ 
SOURCE(37587, 156)
SOURCE(37653, 50)
   {
      word var←c59128;
      word var←c59160;
      word var←c59192;
      var←c59128 = ( (unsigned) 1 << bitCount←v12648);
      var←c59160 = ((word) var←c59128 << 3);
      var←c59192 = XR←NewObject((16 + var←c59160), (* (( (ptr) gf←c62328)+44) ));
      (* (( (ptr) var←c59192)+3) ) = var←c59128;
      new←v22132 = var←c59192;
      };
SOURCE(37705, 23)
   (* (( (ptr) new←v22132)+2) ) = bitCount←v12648;
SOURCE(37730, 13)
   return(new←v22132);
   }

static void MakeBranch←P2520(formal←c0661, reserveBits←v12752, node←v12780)
   word formal←c0661;
   word reserveBits←v12752;
   word node←v12780;
   {
   word var←c0973;
   word var←c0974;
   /* MakeBranch: */ 
SOURCE(37747, 101)
   /* Return var split */ 
SOURCE(37821, 27)
   var←c0973 = reserveBits←v12752;
   var←c0974 = node←v12780;
   /* removed tail goto */ 
   (* (( (ptr) formal←c0661)+1) ) = var←c0974;
   (*  (ptr) formal←c0661 ) = var←c0973;
   return;
   }

static void DumpRoots←P2580(st←v12884, clear←v12912)
   word st←v12884;
   word clear←v12912;
   {
   register ptr gf←c62360 =  (ptr) &globalframe;
   /* DumpRoots: */ 
SOURCE(37854, 1328)
SOURCE(37923, 1259)
   if ((st←v12884 != 0)) {
SOURCE(37940, 1244)
      {
         word roots←v22176;
SOURCE(37942, 50)
         roots←v22176 = (word) BuildRoots←P2640((* ((( (ptr) gf←c62360)+16)/* dummy←v3728 */ ) ));
SOURCE(37994, 89)
         if (((* (( (ptr) gf←c62360)+10)/* makePureCalls←v3532 */  ) != 0)) {
SOURCE(38020, 63)
            {
               W2 var←c59256;
               var←c59256.f0 = 4;
               var←c59256.f1 = (* (( (ptr) gf←c62360)+10)/* makePureCalls←v3532 */  );
               {
                  word pd254;
                  pd254 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd254 ))))(st←v12884, (* (( (ptr) gf←c62360)+100) ), var←c59256, pd254);
                  };
               };
            };
SOURCE(38085, 389)
         if ((((((* (( (ptr) gf←c62360)+11)/* advanceCalls←v3560 */  ) + (* (( (ptr) gf←c62360)+12)/* resetCalls←v3588 */  )) + (* (
            ( (ptr) gf←c62360)+13)/* orBltCalls←v3616 */  )) + (* (( (ptr) gf←c62360)+14)/* moveLineCalls←v3644 */  )) != 0)) {
SOURCE(38156, 61)
            {
               W2 var←c59288;
               var←c59288.f0 = 4;
               var←c59288.f1 = (* (( (ptr) gf←c62360)+11)/* advanceCalls←v3560 */  );
               {
                  word pd255;
                  pd255 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd255 ))))(st←v12884, (* (( (ptr) gf←c62360)+101) ), var←c59288, pd255);
                  };
               };
SOURCE(38219, 57)
            {
               W2 var←c59320;
               var←c59320.f0 = 4;
               var←c59320.f1 = (* (( (ptr) gf←c62360)+12)/* resetCalls←v3588 */  );
               {
                  word pd256;
                  pd256 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd256 ))))(st←v12884, (* (( (ptr) gf←c62360)+102) ), var←c59320, pd256);
                  };
               };
SOURCE(38278, 57)
            {
               W2 var←c59352;
               var←c59352.f0 = 4;
               var←c59352.f1 = (* (( (ptr) gf←c62360)+13)/* orBltCalls←v3616 */  );
               {
                  word pd257;
                  pd257 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd257 ))))(st←v12884, (* (( (ptr) gf←c62360)+103) ), var←c59352, pd257);
                  };
               };
SOURCE(38337, 63)
            {
               W2 var←c59384;
               var←c59384.f0 = 4;
               var←c59384.f1 = (* (( (ptr) gf←c62360)+14)/* moveLineCalls←v3644 */  );
               {
                  word pd258;
                  pd258 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd258 ))))(st←v12884, (* (( (ptr) gf←c62360)+104) ), var←c59384, pd258);
                  };
               };
SOURCE(38402, 72)
            if ((0 != clear←v12912)) {
SOURCE(38416, 58)
               (* (( (ptr) gf←c62360)+14)/* moveLineCalls←v3644 */  ) = 0;
               (* (( (ptr) gf←c62360)+13)/* orBltCalls←v3616 */  ) = 0;
               (* (( (ptr) gf←c62360)+12)/* resetCalls←v3588 */  ) = 0;
               (* (( (ptr) gf←c62360)+11)/* advanceCalls←v3560 */  ) = 0;
               };
            };
SOURCE(38479, 453)
         if (((* (( (ptr) gf←c62360)+5)/* fastScanEntries←v3392 */  ) != 0)) {
SOURCE(38509, 67)
            {
               W2 var←c59416;
               var←c59416.f0 = 4;
               var←c59416.f1 = (* (( (ptr) gf←c62360)+5)/* fastScanEntries←v3392 */  );
               {
                  word pd259;
                  pd259 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd259 ))))(st←v12884, (* (( (ptr) gf←c62360)+105) ), var←c59416, pd259);
                  };
               };
SOURCE(38578, 63)
            {
               W2 var←c59448;
               var←c59448.f0 = 4;
               var←c59448.f1 = (* (( (ptr) gf←c62360)+6)/* fastScanLoops←v3420 */  );
               {
                  word pd260;
                  pd260 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd260 ))))(st←v12884, (* (( (ptr) gf←c62360)+106) ), var←c59448, pd260);
                  };
               };
SOURCE(38643, 63)
            {
               W2 var←c59480;
               var←c59480.f0 = 4;
               var←c59480.f1 = (* (( (ptr) gf←c62360)+7)/* fastScanScans←v3448 */  );
               {
                  word pd261;
                  pd261 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd261 ))))(st←v12884, (* (( (ptr) gf←c62360)+107) ), var←c59480, pd261);
                  };
               };
SOURCE(38708, 61)
            {
               W2 var←c59512;
               var←c59512.f0 = 4;
               var←c59512.f1 = (* (( (ptr) gf←c62360)+8)/* fastScanPass←v3476 */  );
               {
                  word pd262;
                  pd262 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd262 ))))(st←v12884, (* (( (ptr) gf←c62360)+108) ), var←c59512, pd262);
                  };
               };
SOURCE(38771, 63)
            {
               W2 var←c59544;
               var←c59544.f0 = 4;
               var←c59544.f1 = (* (( (ptr) gf←c62360)+9)/* fastScanHoriz←v3504 */  );
               {
                  word pd263;
                  pd263 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+61) );
                  (void) ( *( (fPt) ((*  (ptr) pd263 ))))(st←v12884, (* (( (ptr) gf←c62360)+109) ), var←c59544, pd263);
                  };
               };
SOURCE(38836, 96)
            if ((0 != clear←v12912)) {
SOURCE(38850, 82)
               (* (( (ptr) gf←c62360)+9)/* fastScanHoriz←v3504 */  ) = 0;
               (* (( (ptr) gf←c62360)+8)/* fastScanPass←v3476 */  ) = 0;
               (* (( (ptr) gf←c62360)+7)/* fastScanScans←v3448 */  ) = 0;
               (* (( (ptr) gf←c62360)+6)/* fastScanLoops←v3420 */  ) = 0;
               (* (( (ptr) gf←c62360)+5)/* fastScanEntries←v3392 */  ) = 0;
               };
            };
SOURCE(38937, 31)
         {
            word pd264;
            pd264 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd264 ))))(st←v12884, (* (( (ptr) gf←c62360)+110) ), 0, 2147483647, pd264);
            };
SOURCE(38970, 177)
         {
            register word s←v22248 = 0;
            lab←L100233: ;
            {
               word n←v22292;
SOURCE(38995, 18)
               n←v22292 = (* (( (ptr) roots←v22176)+s←v22248) );
SOURCE(39015, 132)
               if ((n←v22292 != 0)) {
SOURCE(39033, 26)
                  {
                     word pd265;
                     pd265 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd265 ))))(st←v12884, (* (( (ptr) gf←c62360)+111) ), 0, 2147483647, pd265);
                     };
SOURCE(39061, 15)
                  (void) PutState←P2940(st←v12884, s←v22248);
SOURCE(39079, 20)
                  {
                     word pd266;
                     pd266 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd266 ))))(st←v12884, (* (( (ptr) gf←c62360)+112) ), 0, 2147483647, pd266);
                     };
SOURCE(39101, 25)
                  (void) DumpTree←P3000(st←v12884, n←v22292, 2, clear←v12912);
SOURCE(39128, 19)
                  {
                     word pd267;
                     pd267 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd267 ))))(st←v12884, (* (( (ptr) gf←c62360)+113) ), 0, 2147483647, pd267);
                     };
                  };
               };
            if ((s←v22248 >= 18)) {
               goto lab←L100230;
               };
            s←v22248 = (s←v22248 + 1);
            goto lab←L100233;
            lab←L100230: ;
            };
SOURCE(39161, 21)
         {
            word pd268;
            pd268 = (* (( (ptr) (* (( (ptr) gf←c62360)+256)/* var←c51928 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd268 ))))(st←v12884, (* (( (ptr) gf←c62360)+86) ), 0, 2147483647, pd268);
            };
         };
      };
   }

static word BuildRoots←P2640(data←v12972)
   word data←v12972;
   {
   word var←c13016;
   /* BuildRoots: */ 
SOURCE(39191, 150)
   (void) (XR←MonitorEntry(data←v12972));
SOURCE(39265, 53)
   if (((* (( (ptr) data←v12972)+24) ) == 0)) {
SOURCE(39292, 26)
      (* (( (ptr) data←v12972)+24) ) = (word) BuildTrees←P2700();
      };
SOURCE(39321, 20)
   {
      word var←c59576;
      var←c59576 = (* (( (ptr) data←v12972)+24) );
      (void) (XR←MonitorExit(data←v12972));
      return(var←c59576);
      };
   }

static word BuildTrees←P2700()
   {
   W7 var←c62392;
   register ptr gf←c62424 =  (ptr) &globalframe;
   word var←c13104;
   /* declaration of var←c59608 skipped */ 
   /* declaration of roots←v22336 skipped */ 
   /* BuildTrees: */ 
SOURCE(39345, 767)
   {
      word tmpAddr269;
      tmpAddr269 = (word) (( (ptr) &var←c62392)+4)/* var←c59608 */ ;
      (*  (ptr) tmpAddr269 ) = ( ((word)  (fPt) Each←P7476) );
      (* (( (ptr) tmpAddr269) + 1) ) = 1;
      };
SOURCE(39400, 57)
   var←c62392.f6/* roots←v22336 */  = XR←NewObject(76, (* (( (ptr) gf←c62424)+26) ));
SOURCE(39940, 49)
   {
      register word s←v22452 = 0;
      lab←L100237: ;
SOURCE(39965, 24)
      {
         word var←c59672;
         var←c59672 = (word) NewTreeNode←P2460(1);
         (* (( (ptr) var←c62392.f6/* roots←v22336 */ )+s←v22452) ) = var←c59672;
         };
      if ((s←v22452 >= 18)) {
         goto lab←L100234;
         };
      s←v22452 = (s←v22452 + 1);
      goto lab←L100237;
      lab←L100234: ;
      };
SOURCE(40000, 26)
   (void) EnumerateTransitions←P3360((word) ((( (bPt) &var←c62392)+16)/* var←c59608 */ ));
SOURCE(40028, 58)
   {
      register word s←v22496 = 0;
      lab←L100241: ;
SOURCE(40053, 33)
      {
         word var←c59704;
         var←c59704 = (word) OptimizeTree←P3300((* ((( (ptr) var←c62392.f6/* roots←v22336 */ )+s←v22496)) ));
         (* (( (ptr) var←c62392.f6/* roots←v22336 */ )+s←v22496) ) = var←c59704;
         };
      if ((s←v22496 >= 18)) {
         goto lab←L100238;
         };
      s←v22496 = (s←v22496 + 1);
      goto lab←L100241;
      lab←L100238: ;
      };
SOURCE(40097, 15)
   return(var←c62392.f6/* roots←v22336 */ );
   }

static void Each←P7476(old←v45192, bitstring←v45220, new←v45248, action←v45276, length←v45304, formal←c62488)
   word old←v45192;
   word bitstring←v45220;
   word new←v45248;
   word action←v45276;
   word length←v45304;
   word formal←c62488;
   {
   register ptr gf←c62456 =  (ptr) &globalframe;
   word size←v22540;
   formal←c62488 = (formal←c62488 - 16);
   /* Each: */ 
SOURCE(39459, 473)
SOURCE(39494, 36)
   size←v22540 = (word) BitstringSize←P2280(bitstring←v45220);
SOURCE(39532, 400)
   if (( (int)size←v22540 ==  (int)0)) {
SOURCE(39551, 63)
      {
         word var←c59736;
         var←c59736 = XR←NewObject(20, (* (( (ptr) gf←c62456)+44) ));
         (* (( (ptr) var←c59736)+1) ) = 1;
         (* (( (ptr) var←c59736)+2) ) = new←v45248;
         (* (( (ptr) var←c59736)+3) ) = action←v45276;
         (* (( (ptr) var←c59736)+4) ) = length←v45304;
         (* (( (ptr) (* (( (ptr) formal←c62488)+6) ))+old←v45192) ) = var←c59736;
         };
      }
   else {
SOURCE(39623, 311)
      {
         word s←v22584;
SOURCE(39625, 32)
         s←v22584 = (* (( (ptr) (* (( (ptr) formal←c62488)+6) ))+old←v45192) );
         if ((s←v22584 == 0)) {
            goto lab←L100242;
            };
         if (((* (( (ptr) s←v22584)+1) ) == 0)) {
            goto lab←L100242;
            };
         (void) XR←RaiseError(XR←NarrowFault, 0);
         lab←L100242: ;
SOURCE(39659, 156)
         {
            register word i←v22628 = 0;
            register word noName←c59800;
            noName←c59800 = (size←v22540 - 1);
            if (( (int)i←v22628 >=  (int)noName←c59800)) {
               goto lab←L100243;
               };
            lab←L100246: ;
            {
               word c←v22672;
SOURCE(39688, 37)
               c←v22672 = (word) BitstringFetch←P2340(bitstring←v45220, i←v22628);
SOURCE(39727, 63)
               {
                  word limit270;
                  if (((* (( (W2Pt) (( (ptr) s←v22584)+4))+(
                        limit270 = (* (( (ptr) s←v22584)+3) ),
                        BCK(c←v22672, limit270)
                        )) ).f1 == 0)) {
SOURCE(39753, 37)
                     {
                        W2 var←c59832;
                        {
                           word var←c59864;
                           var←c59864 = (word) NewTreeNode←P2460(1);
                           (void) MakeBranch←P2520((word) &var←c59832, 0, var←c59864);
                           };
                        {
                           word limit271;
                           (* (( (W2Pt) (( (ptr) s←v22584)+4))+(
/*1*/      limit271 = (* (( (ptr) s←v22584)+3) ),
/*1*/      BCK(c←v22672, limit271)
/*1*/      )) ) = var←c59832;
                           };
                        };
                     };
                  };
SOURCE(39792, 23)
               {
                  word var←c59896;
                  {
                     word limit272;
                     var←c59896 = (* (( (W2Pt) (( (ptr) s←v22584)+4))+(
                           limit272 = (* (( (ptr) s←v22584)+3) ),
                           BCK(c←v22672, limit272)
                           )) ).f1;
                     };
                  if ((var←c59896 == 0)) {
                     goto lab←L100247;
                     };
                  if (((* (( (ptr) var←c59896)+1) ) == 0)) {
                     goto lab←L100247;
                     };
                  (void) XR←RaiseError(XR←NarrowFault, 0);
                  lab←L100247: ;
                  s←v22584 = var←c59896;
                  };
               };
            i←v22628 = (i←v22628 + 1);
            if (( (int)i←v22628 <  (int)noName←c59800)) {
               goto lab←L100246;
               };
            lab←L100243: ;
            };
SOURCE(39826, 106)
         {
            W2 var←c59928;
            {
               word var←c59960;
               {
                  word var←c59992;
                  var←c59992 = XR←NewObject(20, (* (( (ptr) gf←c62456)+44) ));
                  (* (( (ptr) var←c59992)+1) ) = 1;
                  (* (( (ptr) var←c59992)+2) ) = new←v45248;
                  (* (( (ptr) var←c59992)+3) ) = action←v45276;
                  (* (( (ptr) var←c59992)+4) ) = length←v45304;
                  var←c59960 = var←c59992;
                  };
               {
                  W2 var←c0705;
                  (void) MakeBranch←P2520((word) &var←c0705, 0, var←c59960);
                  var←c59928 = var←c0705;
                  };
               };
            {
               word var←c60024;
               var←c60024 = (word) BitstringFetch←P2340(bitstring←v45220, (size←v22540 - 1));
               {
                  word limit273;
                  (* (( (W2Pt) (( (ptr) s←v22584)+4))+(
                        limit273 = (* (( (ptr) s←v22584)+3) ),
                        BCK(var←c60024, limit273)
                        )) ) = var←c59928;
                  };
               };
            };
         };
      };
   }

static void PutB←P2760(st←v13192, i←v13220, bitCount←v13248, nl←v13276)
   word st←v13192;
   word i←v13220;
   word bitCount←v13248;
   word nl←v13276;
   {
   register ptr gf←c62520 =  (ptr) &globalframe;
   /* PutB: */ 
SOURCE(40116, 239)
SOURCE(40189, 166)
   if ((st←v13192 != 0)) {
SOURCE(40208, 106)
      {
         register word k←v22716;
         {
            word idx274;
            k←v22716 = (
               idx274 = (word) XR←SignedPwr( (int)2,  (int)(bitCount←v13248 - 1)),
               SGNCK(idx274)
               );
            };
         lab←L100251: ;
         if ((k←v22716 != 0)) {
            }
         else {
            goto lab←L100248;
            };
SOURCE(40256, 58)
         {
            word var←c60056;
            if (((word) XRM←BITAND(i←v13220, k←v22716) == 0)) {
               var←c60056 = 48;
               }
            else {
               var←c60056 = 49;
               };
            {
               word pd275;
               pd275 = (* (( (ptr) (* (( (ptr) gf←c62520)+256)/* var←c51928 */  ))+21) );
               (void) ( *( (fPt) ((*  (ptr) pd275 ))))(st←v13192, var←c60056, pd275);
               };
            };
         k←v22716 = ((word) k←v22716 >> 1);
         goto lab←L100251;
         lab←L100248: ;
         };
SOURCE(40325, 30)
      if ((0 != nl←v13276)) {
SOURCE(40336, 19)
         {
            word pd276;
            pd276 = (* (( (ptr) (* (( (ptr) gf←c62520)+256)/* var←c51928 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd276 ))))(st←v13192, 10, pd276);
            };
         };
      };
   }

static void Indent←P2820(st←v13336, i←v13364)
   word st←v13336;
   word i←v13364;
   {
   register ptr gf←c62552 =  (ptr) &globalframe;
   /* Indent: */ 
SOURCE(40364, 128)
SOURCE(40405, 87)
   if ((st←v13336 != 0)) {
SOURCE(40424, 20)
      {
         word pd277;
         pd277 = (* (( (ptr) (* (( (ptr) gf←c62552)+256)/* var←c51928 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd277 ))))(st←v13336, (* (( (ptr) gf←c62552)+116) ), 0, 2147483647, pd277);
         };
SOURCE(40446, 46)
      {
         register word noName←c60088 = 0;
         register word noName←c60120;
         noName←c60120 = i←v13364;
         if ((noName←c60088 >= noName←c60120)) {
            goto lab←L100252;
            };
         lab←L100255: ;
SOURCE(40464, 28)
         {
            word pd278;
            pd278 = (* (( (ptr) (* (( (ptr) gf←c62552)+256)/* var←c51928 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd278 ))))(st←v13336, (* (( (ptr) gf←c62552)+117) ), 0, 2147483647, pd278);
            };
         noName←c60088 = (noName←c60088 + 1);
         if ((noName←c60088 < noName←c60120)) {
            goto lab←L100255;
            };
         lab←L100252: ;
         };
      };
   }

static void PutAction←P2880(st←v13424, action←v13452)
   word st←v13424;
   word action←v13452;
   {
   register ptr gf←c62584 =  (ptr) &globalframe;
   /* PutAction: */ 
SOURCE(40501, 216)
SOURCE(40553, 164)
   if ((st←v13424 != 0)) {
SOURCE(40570, 147)
      {
         word var←c60152;
         word var←c0932;
         var←c60152 = action←v13452;
         var←c0932 =  ( (var←c60152 == 0) ? (* (( (ptr) gf←c62584)+118) ) :  ( (var←c60152 == 1) ? (* (( (ptr) gf←c62584)+119) ) :  ( (var←c60152 == 2) ? (* (
            ( (ptr) gf←c62584)+120) ) :  ( (var←c60152 == 3) ? (* (( (ptr) gf←c62584)+121) ) :  ( (var←c60152 == 4) ? (* (( (ptr) gf←c62584)+122)
          ) :  ( (var←c60152 == 5) ? (* (( (ptr) gf←c62584)+123) ) :  ( (var←c60152 == 6) ? (* (( (ptr) gf←c62584)+124) ) : (* (( (ptr) gf←c62584)+125)
          ) )  )  )  )  )  )  ) ;
         {
            word pd279;
            pd279 = (* (( (ptr) (* (( (ptr) gf←c62584)+256)/* var←c51928 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd279 ))))(st←v13424, var←c0932, 0, 2147483647, pd279);
            };
         };
      };
   }

static void PutState←P2940(st←v13512, state←v13540)
   word st←v13512;
   word state←v13540;
   {
   register ptr gf←c62616 =  (ptr) &globalframe;
   /* PutState: */ 
SOURCE(40723, 406)
SOURCE(40772, 357)
   if ((st←v13512 != 0)) {
SOURCE(40791, 338)
      {
         word var←c60184;
         word var←c0933;
         var←c60184 = state←v13540;
         var←c0933 =  ( (var←c60184 == 0) ? (* (( (ptr) gf←c62616)+115) ) :  ( (var←c60184 == 1) ? (* (( (ptr) gf←c62616)+114) ) :  ( (var←c60184 == 2) ? (* (
            ( (ptr) gf←c62616)+126) ) :  ( (var←c60184 == 3) ? (* (( (ptr) gf←c62616)+127) ) :  ( (var←c60184 == 4) ? (* (( (ptr) gf←c62616)+128)
          ) :  ( (var←c60184 == 5) ? (* (( (ptr) gf←c62616)+129) ) :  ( (var←c60184 == 6) ? (* (( (ptr) gf←c62616)+130) ) :  ( (var←c60184 == 7) ? (* (
            ( (ptr) gf←c62616)+131) ) :  ( (var←c60184 == 8) ? (* (( (ptr) gf←c62616)+132) ) :  ( (var←c60184 == 9) ? (* (( (ptr) gf←c62616)+133)
          ) :  ( (var←c60184 == 10) ? (* (( (ptr) gf←c62616)+134) ) :  ( (var←c60184 == 11) ? (* (( (ptr) gf←c62616)+135) ) :  ( (var←c60184 == 12) ? (* (
            ( (ptr) gf←c62616)+136) ) :  ( (var←c60184 == 13) ? (* (( (ptr) gf←c62616)+137) ) :  ( (var←c60184 == 14) ? (* (( (ptr) gf←c62616)+138)
          ) :  ( (var←c60184 == 15) ? (* (( (ptr) gf←c62616)+139) ) :  ( (var←c60184 == 16) ? (* (( (ptr) gf←c62616)+140) ) :  ( (var←c60184 == 17) ? (* (
            ( (ptr) gf←c62616)+141) ) : (* (( (ptr) gf←c62616)+125) ) )  )  )  )  )  )  )  )  )  )  )  )  )  )  )  )  )  ) ;
         {
            word pd280;
            pd280 = (* (( (ptr) (* (( (ptr) gf←c62616)+256)/* var←c51928 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd280 ))))(st←v13512, var←c0933, 0, 2147483647, pd280);
            };
         };
      };
   }

static void DumpTree←P3000(st←v13600, node←v13628, nest←v13656, clear←v13684)
   word st←v13600;
   word node←v13628;
   word nest←v13656;
   word clear←v13684;
   {
   register ptr gf←c62648 =  (ptr) &globalframe;
   /* DumpTree: */ 
SOURCE(41138, 1156)
SOURCE(41209, 51)
   if ((node←v13628 == 0)) {
SOURCE(41229, 23)
      {
         word pd281;
         pd281 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd281 ))))(st←v13600, (* (( (ptr) gf←c62648)+142) ), 0, 2147483647, pd281);
         };
SOURCE(41254, 6)
      return;
      };
SOURCE(41263, 1031)
   {
      word var←c60216;
      var←c60216 = node←v13628;
      if ((var←c60216 == 0)) {
         goto lab←L100256;
         };
      {
         word var←c60440;
         var←c60440 = (* (( (ptr) var←c60216)+1) );
         if ((var←c60440 == 0)) {
            {
               word tree←v22760;
               tree←v22760 = var←c60216;
SOURCE(41303, 744)
               {
                  word i←v22804 = 0;
                  word size←v22832;
SOURCE(41317, 21)
                  {
                     word idx282;
                     size←v22832 = (
                        idx282 = (* (( (ptr) tree←v22760)+3) ),
                        SGNCK(idx282)
                        );
                     };
SOURCE(41340, 16)
                  (void) Indent←P2820(st←v13600, nest←v13656);
SOURCE(41358, 68)
                  if (((*  (ptr) tree←v22760 ) != 0)) {
SOURCE(41381, 45)
                     {
                        W2 var←c60248;
                        var←c60248.f0 = 4;
                        var←c60248.f1 = (*  (ptr) tree←v22760 );
                        {
                           word pd283;
                           pd283 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+61) );
                           (void) ( *( (fPt) ((*  (ptr) pd283 ))))(st←v13600, (* (( (ptr) gf←c62648)+143) ), var←c60248, pd283);
                           };
                        };
                     };
SOURCE(41428, 14)
                  (*  (ptr) tree←v22760 ) = 0;
SOURCE(41444, 57)
                  {
                     W2 var←c60280;
                     var←c60280.f0 = 5;
                     var←c60280.f1 = (* (( (ptr) tree←v22760)+2) );
                     {
                        word pd284;
                        pd284 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+61) );
                        (void) ( *( (fPt) ((*  (ptr) pd284 ))))(st←v13600, (* (( (ptr) gf←c62648)+144) ), var←c60280, pd284);
                        };
                     };
SOURCE(41503, 512)
                  lab←L100259: ;
                  if ((i←v22804 < size←v22832)) {
                     }
                  else {
                     goto lab←L100257;
                     };
                  {
                     word sep←v22876 = 0;
                     W2 elem←v22904;
                     word i0←v22932;
                     word var←c60312;
SOURCE(41538, 22)
                     {
                        word limit285;
                        elem←v22904 = (* (( (W2Pt) (( (ptr) tree←v22760)+4))+(
/*1*/   limit285 = (* (( (ptr) tree←v22760)+3) ),
/*1*/   BCK(i←v22804, limit285)
/*1*/   )) );
                        };
SOURCE(41562, 11)
                     i0←v22932 = i←v22804;
SOURCE(41575, 18)
                     (void) Indent←P2820(st←v13600, (nest←v13656 + 1));
SOURCE(41595, 22)
                     {
                        word pd286;
                        pd286 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                        (void) ( *( (fPt) ((*  (ptr) pd286 ))))(st←v13600, (* (( (ptr) gf←c62648)+145) ), 0, 2147483647, pd286);
                        };
SOURCE(41619, 26)
                     (void) PutB←P2760(st←v13600, i←v22804, (* (( (ptr) tree←v22760)+2) ), 0);
SOURCE(41647, 64)
                     lab←L100262: ;
                     {
                        word tc287;
                        word limit288;
                        if (((i←v22804 + 1) < size←v22832)) {
                           var←c60312 = (i←v22804 + 1);
                           tc287 =  (word) XR←EqualWords((( (W2Pt) (( (ptr) tree←v22760)+4))+(
/*1*/         limit288 = (* (( (ptr) tree←v22760)+3) ),
/*1*/         BCK(var←c60312, limit288)
/*1*/         )), &elem←v22904, 2);
                           }
                        else {
                           tc287 =  (word) 0;
                           };
                        if (tc287) {
                           }
                        else {
                           goto lab←L100260;
                           };
                        };
SOURCE(41688, 7)
                     i←v22804 = (i←v22804 + 1);
SOURCE(41697, 14)
                     {
                        word limit289;
                        elem←v22904 = (* (( (W2Pt) (( (ptr) tree←v22760)+4))+(
/*1*/   limit289 = (* (( (ptr) tree←v22760)+3) ),
/*1*/   BCK(i←v22804, limit289)
/*1*/   )) );
                        };
                     goto lab←L100262;
                     lab←L100260: ;
SOURCE(41722, 67)
                     if ((i←v22804 != i0←v22932)) {
SOURCE(41739, 22)
                        {
                           word pd290;
                           pd290 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                           (void) ( *( (fPt) ((*  (ptr) pd290 ))))(st←v13600, (* (( (ptr) gf←c62648)+146) ), 0, 2147483647, pd290);
                           };
SOURCE(41763, 26)
                        (void) PutB←P2760(st←v13600, i←v22804, (* (( (ptr) tree←v22760)+2) ), 0);
                        };
SOURCE(41794, 20)
                     {
                        word pd291;
                        pd291 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                        (void) ( *( (fPt) ((*  (ptr) pd291 ))))(st←v13600, (* (( (ptr) gf←c62648)+112) ), 0, 2147483647, pd291);
                        };
SOURCE(41816, 164)
                     if ((elem←v22904.f1 == 0)) {
SOURCE(41840, 27)
                        {
                           word pd292;
                           pd292 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                           (void) ( *( (fPt) ((*  (ptr) pd292 ))))(st←v13600, (* (( (ptr) gf←c62648)+147) ), 0, 2147483647, pd292);
                           };
                        }
                     else {
SOURCE(41869, 71)
                        {
                           W2 var←c60344;
                           var←c60344.f0 = 5;
                           var←c60344.f1 = ((* (( (ptr) tree←v22760)+2) ) - elem←v22904.f0);
                           {
/*1*/   word pd293;
/*1*/   pd293 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+61) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd293 ))))(st←v13600, (* (( (ptr) gf←c62648)+148) ), var←c60344, pd293);
/*1*/   };
                           };
SOURCE(41942, 38)
                        (void) DumpTree←P3000(st←v13600, elem←v22904.f1, (nest←v13656 + 2), clear←v13684);
                        };
SOURCE(41985, 19)
                     {
                        word pd294;
                        pd294 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                        (void) ( *( (fPt) ((*  (ptr) pd294 ))))(st←v13600, (* (( (ptr) gf←c62648)+113) ), 0, 2147483647, pd294);
                        };
SOURCE(42006, 9)
                     i←v22804 = (i←v22804 + 1);
                     };
                  goto lab←L100259;
                  lab←L100257: ;
SOURCE(42026, 19)
                  {
                     word pd295;
                     pd295 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd295 ))))(st←v13600, (* (( (ptr) gf←c62648)+113) ), 0, 2147483647, pd295);
                     };
                  };
               };
            }
         else {
            if ((var←c60440 == 1)) {
               {
                  word leaf←v22976;
                  leaf←v22976 = var←c60216;
SOURCE(42070, 68)
                  if (((*  (ptr) leaf←v22976 ) != 0)) {
SOURCE(42093, 45)
                     {
                        W2 var←c60376;
                        var←c60376.f0 = 4;
                        var←c60376.f1 = (*  (ptr) leaf←v22976 );
                        {
                           word pd296;
                           pd296 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+61) );
                           (void) ( *( (fPt) ((*  (ptr) pd296 ))))(st←v13600, (* (( (ptr) gf←c62648)+143) ), var←c60376, pd296);
                           };
                        };
                     };
SOURCE(42140, 14)
                  (*  (ptr) leaf←v22976 ) = 0;
SOURCE(42156, 19)
                  {
                     word pd297;
                     pd297 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd297 ))))(st←v13600, (* (( (ptr) gf←c62648)+149) ), 0, 2147483647, pd297);
                     };
SOURCE(42177, 26)
                  (void) PutAction←P2880(st←v13600, (* (( (ptr) leaf←v22976)+3) ));
SOURCE(42205, 44)
                  {
                     W2 var←c60408;
                     var←c60408.f0 = 5;
                     var←c60408.f1 = (* (( (ptr) leaf←v22976)+4) );
                     {
                        word pd298;
                        pd298 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+61) );
                        (void) ( *( (fPt) ((*  (ptr) pd298 ))))(st←v13600, (* (( (ptr) gf←c62648)+150) ), var←c60408, pd298);
                        };
                     };
SOURCE(42251, 22)
                  (void) PutState←P2940(st←v13600, (* (( (ptr) leaf←v22976)+2) ));
SOURCE(42275, 19)
                  {
                     word pd299;
                     pd299 = (* (( (ptr) (* (( (ptr) gf←c62648)+256)/* var←c51928 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd299 ))))(st←v13600, (* (( (ptr) gf←c62648)+113) ), 0, 2147483647, pd299);
                     };
                  };
               }
            else {
               lab←L100256: ;
SOURCE(42310, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      };
   }

static word CountLive←P3060(node←v13760, depth←v13788)
   word node←v13760;
   word depth←v13788;
   {
   register ptr gf←c62680 =  (ptr) &globalframe;
   word var←c13832;
   /* CountLive: */ 
SOURCE(42387, 446)
SOURCE(42446, 29)
   if ((node←v13760 == 0)) {
SOURCE(42465, 10)
      return(0);
      };
SOURCE(42477, 28)
   if ((depth←v13788 == 0)) {
SOURCE(42495, 10)
      return(1);
      };
SOURCE(42507, 326)
   {
      word var←c60472;
      var←c60472 = node←v13760;
      if ((var←c60472 == 0)) {
         goto lab←L100263;
         };
      {
         word var←c60536;
         var←c60536 = (* (( (ptr) var←c60472)+1) );
         if ((var←c60536 == 0)) {
            {
               word tree←v23020;
               tree←v23020 = var←c60472;
SOURCE(42547, 190)
               {
                  word count←v23064 = 0;
SOURCE(42565, 146)
                  {
                     register word i←v23108 = 0;
                     register word noName←c60504;
                     noName←c60504 = (* (( (ptr) tree←v23020)+3) );
                     if ((i←v23108 >= noName←c60504)) {
                        goto lab←L100264;
                        };
                     lab←L100267: ;
                     {
                        W2 branch←v23152;
                        word child←v23180;
SOURCE(42597, 24)
                        {
                           word limit300;
                           branch←v23152 = (* (( (W2Pt) (( (ptr) tree←v23020)+4))+(
/*1*/      limit300 = (* (( (ptr) tree←v23020)+3) ),
/*1*/      BCK(i←v23108, limit300)
/*1*/      )) );
                           };
SOURCE(42623, 25)
                        child←v23180 = branch←v23152.f1;
SOURCE(42650, 61)
                        if ((child←v23180 != 0)) {
SOURCE(42670, 41)
                           {
/*1*/   word idx301;
/*1*/   count←v23064 = (
/*1*/      idx301 = (word) (count←v23064 + (word) CountLive←P3060(child←v23180, SGNCK((depth←v13788 - 1)))),
/*1*/      SGNCK(idx301)
/*1*/      );
/*1*/   };
                           };
                        };
                     i←v23108 = (i←v23108 + 1);
                     if ((i←v23108 < noName←c60504)) {
                        goto lab←L100267;
                        };
                     lab←L100264: ;
                     };
SOURCE(42722, 15)
                  return(count←v23064);
                  };
               };
            }
         else {
            if ((var←c60536 == 1)) {
               {
                  word leaf←v23224;
                  leaf←v23224 = var←c60472;
SOURCE(42760, 35)
                  if (((* (( (ptr) leaf←v23224)+2) ) == 17)) {
SOURCE(42783, 12)
                     (void) XR←RaiseError((word) (( (bPt) gf←c62680)+604)/* var←c50008 */ , 0);
                     };
SOURCE(42797, 10)
                  return(1);
                  };
               }
            else {
               lab←L100263: ;
SOURCE(42823, 10)
               return(1);
               };
            };
         };
      };
   }

static void EnumerateLive←P3120(node←v13892, depth←v13920, index←v13948, visit←v13976)
   word node←v13892;
   word depth←v13920;
   word index←v13948;
   word visit←v13976;
   {
   /* EnumerateLive: */ 
SOURCE(42839, 549)
SOURCE(42929, 459)
   if ((depth←v13920 == 0)) {
SOURCE(42949, 52)
      {
         W2 var←c60568;
         {
            word var←c60600;
            var←c60600 = (word) OptimizeTree←P3300(node←v13892);
            (void) MakeBranch←P2520((word) &var←c60568, BCK(depth←v13920, 32), var←c60600);
            };
         (void) ( *( (fPt) ((*  (ptr) visit←v13976 ))))(index←v13948, var←c60568, visit←v13976);
         };
      }
   else {
SOURCE(43010, 378)
      {
         word var←c60632;
         var←c60632 = node←v13892;
         if ((var←c60632 == 0)) {
            goto lab←L100268;
            };
         if (((* (( (ptr) var←c60632)+1) ) == 0)) {
            {
               word tree←v23268;
               tree←v23268 = var←c60632;
SOURCE(43052, 22)
               if (((* (( (ptr) tree←v23268)+3) ) != 2)) {
SOURCE(43074, 5)
                  (void) XR←RaiseUnnamedError();
                  };
SOURCE(43081, 144)
               {
                  register word i←v23312 = 0;
                  lab←L100272: ;
                  {
                     W2 branch←v23356;
                     word child←v23384;
SOURCE(43105, 24)
                     {
                        word limit302;
                        branch←v23356 = (* (( (W2Pt) (( (ptr) tree←v23268)+4))+(
/*1*/   limit302 = (* (( (ptr) tree←v23268)+3) ),
/*1*/   BCK(i←v23312, limit302)
/*1*/   )) );
                        };
SOURCE(43131, 25)
                     child←v23384 = branch←v23356.f1;
SOURCE(43158, 67)
                     if ((child←v23384 != 0)) {
SOURCE(43178, 47)
                        (void) EnumerateLive←P3120(child←v23384, SGNCK((depth←v13920 - 1)), (((word) index←v13948 << 1) + i←v23312), visit←v13976)
                        ;
                        };
                     };
                  if ((i←v23312 >= 1)) {
                     goto lab←L100269;
                     };
                  i←v23312 = (i←v23312 + 1);
                  goto lab←L100272;
                  lab←L100269: ;
                  };
               };
            }
         else {
            lab←L100268: ;
SOURCE(43250, 149)
            {
               word ix←v23428;
               W2 branch←v23456;
SOURCE(43252, 25)
               ix←v23428 = (index←v13948 * ( (unsigned) 1 << depth←v13920));
SOURCE(43279, 54)
               {
                  word var←c60664;
                  var←c60664 = (word) OptimizeTree←P3300(node←v13892);
                  (void) MakeBranch←P2520((word) &branch←v23456, BCK(depth←v13920, 32), var←c60664);
                  };
SOURCE(43335, 53)
               {
                  register word j←v23500 = 0;
                  register word noName←c60696;
                  noName←c60696 = ( (unsigned) 1 << depth←v13920);
                  if ((j←v23500 >= noName←c60696)) {
                     goto lab←L100273;
                     };
                  lab←L100276: ;
SOURCE(43367, 21)
                  (void) ( *( (fPt) ((*  (ptr) visit←v13976 ))))((ix←v23428 + j←v23500), branch←v23456, visit←v13976);
                  j←v23500 = (j←v23500 + 1);
                  if ((j←v23500 < noName←c60696)) {
                     goto lab←L100276;
                     };
                  lab←L100273: ;
                  };
               };
            };
         };
      };
   }

static word SetSparsityInner←P3180(data←v14124, new←v14152)
   word data←v14124;
   word new←v14152;
   {
   register ptr gf←c62712 =  (ptr) &globalframe;
   word old←v14196;
   /* SetSparsityInner: */ 
SOURCE(43409, 123)
   (void) (XR←MonitorEntry(data←v14124));
SOURCE(43484, 14)
   old←v14196 = (* (( (ptr) gf←c62712)+15)/* sparsity←v3672 */  );
SOURCE(43500, 14)
   (* (( (ptr) gf←c62712)+15)/* sparsity←v3672 */  ) = new←v14152;
SOURCE(43516, 16)
   (* (( (ptr) data←v14124)+24) ) = 0;
SOURCE(43409, 123)
   (void) (XR←MonitorExit(data←v14124));
   return(old←v14196);
   }

static word SetSparsity←P3240(new←v14256)
   word new←v14256;
   {
   register ptr gf←c62744 =  (ptr) &globalframe;
   word var←c14300;
   /* SetSparsity: */ 
SOURCE(43538, 126)
SOURCE(43587, 77)
   if (((new←v14256 - 1) <= 255)) {
SOURCE(43611, 43)
      return((word) SetSparsityInner←P3180((* (( (ptr) gf←c62744)+16)/* dummy←v3728 */  ), SGNCK(new←v14256)));
      }
   else {
SOURCE(43654, 10)
      return(0);
      };
   }

static word OptimizeTree←P3300(node←v14360)
   word node←v14360;
   {
   W9 var←c62776;
   word var←c14404;
   /* declaration of var←c60760 skipped */ 
   /* OptimizeTree: */ 
SOURCE(43670, 598)
   {
      word tmpAddr303;
      tmpAddr303 = (word) (( (ptr) &var←c62776)+4)/* var←c60760 */ ;
      (*  (ptr) tmpAddr303 ) = ( ((word)  (fPt) Plug←P8688) );
      (* (( (ptr) tmpAddr303) + 1) ) = 1;
      };
SOURCE(43721, 547)
   {
      word var←c60792;
      var←c60792 = node←v14360;
      if ((var←c60792 == 0)) {
         goto lab←L100277;
         };
      if (((* (( (ptr) var←c60792)+1) ) == 0)) {
         {
            /* declaration of tree←v23544 skipped */ 
            (* (( (ptr) &var←c62776)+6)/* tree←v23544 */  ) = var←c60792;
SOURCE(43761, 480)
            {
               /* declaration of bitCount←v23588 skipped */ 
SOURCE(43763, 18)
               (* (( (ptr) &var←c62776)+7)/* bitCount←v23588 */  ) = 1;
SOURCE(43783, 245)
SOURCE(43785, 203)
               {
                  word var←c08;
                  {
                     word var←c0934;
                     var←c0934 = (word) &var←c62776;
                     var←c08 = (word) XR←Enable(( ((word)  (fPt) NoName←Q13836) ), ( ((word)  (fPt) NoName←Q13896) ), var←c0934);
                     };
                  if ((var←c08 == 8)) {
                     goto lab←L100278;
                     };
                  };
               goto lab←L100284;
               lab←L100278: ;
               lab←L100284: ;
SOURCE(44031, 205)
               if (((* (( (ptr) &var←c62776)+7)/* bitCount←v23588 */  ) == (* (( (ptr) (* (( (ptr) &var←c62776)+6)/* tree←v23544 */  ))+2)
                ))) {
SOURCE(44064, 19)
                  return((* (( (ptr) &var←c62776)+6)/* tree←v23544 */  ));
                  }
               else {
SOURCE(44083, 155)
                  {
                     /* declaration of new←v23704 skipped */ 
SOURCE(44085, 37)
                     {
                        word idx304;
                        (* (( (ptr) &var←c62776)+8)/* new←v23704 */  ) = (word) NewTreeNode←P2460((
/*1*/   idx304 = (* (( (ptr) &var←c62776)+7)/* bitCount←v23588 */  ),
/*1*/   BCK(idx304, 32)
/*1*/   ));
                        };
SOURCE(44184, 38)
                     {
                        word idx305;
                        (void) EnumerateLive←P3120((* (( (ptr) &var←c62776)+6)/* tree←v23544 */  ), (
/*1*/   idx305 = (* (( (ptr) &var←c62776)+7)/* bitCount←v23588 */  ),
/*1*/   SGNCK(idx305)
/*1*/   ), 0, (word) (( (bPt) &var←c62776)+16)/* var←c60760 */ );
                        };
SOURCE(44224, 12)
                     return((* (( (ptr) &var←c62776)+8)/* new←v23704 */  ));
                     };
                  };
               };
            };
         }
      else {
         lab←L100277: ;
SOURCE(44255, 13)
         return(node←v14360);
         };
      };
   }

static word NoName←Q13836(formal←c0896)
   word formal←c0896;
   {
   register ptr gf←c0895 =  (ptr) &globalframe;
SOURCE(43812, 176)
   lab←L100283: ;
SOURCE(43812, 176)
   {
      word trialCount←v23632;
      word x←v23660;
SOURCE(43815, 29)
      trialCount←v23632 = ((* (( (ptr) formal←c0896)+7) ) + 1);
SOURCE(43846, 36)
      x←v23660 = (word) CountLive←P3060((* (( (ptr) formal←c0896)+6) ), SGNCK(trialCount←v23632));
SOURCE(43928, 60)
      if ((((* (( (ptr) gf←c0895)+15)/* sparsity←v3672 */  ) * x←v23660) >= ( (unsigned) 1 << trialCount←v23632))) {
SOURCE(43966, 22)
         (* (( (ptr) formal←c0896)+7) ) = trialCount←v23632;
         }
      else {
SOURCE(43995, 4)
         goto lab←L100282;
         };
      };
   goto lab←L100283;
   lab←L100282: ;
   return(0);
   }

static void Plug←P8688(i←v23808, branch←v23836, formal←c62808)
   word i←v23808;
   W2 branch←v23836;
   word formal←c62808;
   {
   formal←c62808 = (formal←c62808 - 16);
   /* Plug: */ 
SOURCE(44124, 12)
SOURCE(44165, 16)
   {
      word limit306;
      (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c62808)+8) ))+4))+(
            limit306 = (* (( (ptr) (* (( (ptr) formal←c62808)+8) ))+3) ),
            BCK(i←v23808, limit306)
            )) ) = branch←v23836;
      };
   }

static void EnumerateTransitions←P3360(formal←c0969)
   word formal←c0969;
   {
   W19 var←c62840;
   /* declaration of T←v14464 skipped */ 
   /* declaration of var←c60824 skipped */ 
   /* declaration of var←c60856 skipped */ 
   /* declaration of var←c60888 skipped */ 
   /* declaration of var←c60920 skipped */ 
   /* declaration of var←c60952 skipped */ 
   /* declaration of var←c60984 skipped */ 
   /* declaration of var←c61016 skipped */ 
   (* (( (ptr) &var←c62840)+4)/* T←v14464 */  ) = formal←c0969;
   /* EnumerateTransitions: */ 
SOURCE(44274, 8456)
   {
      word tmpAddr307;
      tmpAddr307 = (word) (( (ptr) &var←c62840)+5)/* var←c60824 */ ;
      (*  (ptr) tmpAddr307 ) = ( ((word)  (fPt) U←P9492) );
      (* (( (ptr) tmpAddr307) + 1) ) = 1;
      };
   {
      word tmpAddr308;
      tmpAddr308 = (word) (( (ptr) &var←c62840)+7)/* var←c60856 */ ;
      (*  (ptr) tmpAddr308 ) = ( ((word)  (fPt) M←P9384) );
      (* (( (ptr) tmpAddr308) + 1) ) = 1;
      };
   {
      word tmpAddr309;
      tmpAddr309 = (word) (( (ptr) &var←c62840)+9)/* var←c60888 */ ;
      (*  (ptr) tmpAddr309 ) = ( ((word)  (fPt) MB←P9276) );
      (* (( (ptr) tmpAddr309) + 1) ) = 1;
      };
   {
      word tmpAddr310;
      tmpAddr310 = (word) (( (ptr) &var←c62840)+11)/* var←c60920 */ ;
      (*  (ptr) tmpAddr310 ) = ( ((word)  (fPt) MW←P9168) );
      (* (( (ptr) tmpAddr310) + 1) ) = 1;
      };
   {
      word tmpAddr311;
      tmpAddr311 = (word) (( (ptr) &var←c62840)+13)/* var←c60952 */ ;
      (*  (ptr) tmpAddr311 ) = ( ((word)  (fPt) B←P9060) );
      (* (( (ptr) tmpAddr311) + 1) ) = 1;
      };
   {
      word tmpAddr312;
      tmpAddr312 = (word) (( (ptr) &var←c62840)+15)/* var←c60984 */ ;
      (*  (ptr) tmpAddr312 ) = ( ((word)  (fPt) W←P8952) );
      (* (( (ptr) tmpAddr312) + 1) ) = 1;
      };
   {
      word tmpAddr313;
      tmpAddr313 = (word) (( (ptr) &var←c62840)+17)/* var←c61016 */ ;
      (*  (ptr) tmpAddr313 ) = ( ((word)  (fPt) V←P8796) );
      (* (( (ptr) tmpAddr313) + 1) ) = 1;
      };
SOURCE(44335, 287)
SOURCE(44469, 12)
   (void) V←P8796(0, 3221225472, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44483, 16)
   (void) V←P8796(1, 1879048192, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44501, 22)
   (void) V←P8796(2, 234881024, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44525, 24)
   (void) V←P8796(3, 117440512, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44551, 17)
   (void) V←P8796( (word) -1, 1342177280, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44570, 23)
   (void) V←P8796( (word) -2, 167772160, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44595, 25)
   (void) V←P8796( (word) -3, 83886080, (word) (( (bPt) &var←c62840)+68)/* var←c61016 */ );
SOURCE(44625, 37)
   {
      word pd314;
      pd314 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd314 ))))(0, 805306368, 2, 0, 0, pd314);
      };
SOURCE(44664, 37)
   {
      word pd315;
      pd315 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd315 ))))(1, 805306368, 3, 0, 0, pd315);
      };
SOURCE(44703, 103)
   {
      register word s←v23996 = 0;
      lab←L100288: ;
SOURCE(44737, 30)
      {
         word pd316;
         pd316 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
         (void) ( *( (fPt) ((*  (ptr) pd316 ))))(s←v23996, 402653184, s←v23996, 4, 0, pd316);
         };
SOURCE(44769, 37)
      {
         word pd317;
         pd317 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
         (void) ( *( (fPt) ((*  (ptr) pd317 ))))(s←v23996, 33554432, 6, 1, 0, pd317);
         };
      if ((s←v23996 >= 1)) {
         goto lab←L100285;
         };
      s←v23996 = (s←v23996 + 1);
      goto lab←L100288;
      lab←L100285: ;
      };
SOURCE(44817, 1873)
SOURCE(44956, 27)
   (void) W←P8952(0, 897581056, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(44985, 23)
   (void) W←P8952(1, 503316480, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45010, 19)
   (void) W←P8952(2, 2013265920, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45031, 19)
   (void) W←P8952(3, 2281701376, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45052, 19)
   (void) W←P8952(4, 3087007744, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45073, 19)
   (void) W←P8952(5, 3355443200, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45094, 19)
   (void) W←P8952(6, 3892314112, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45115, 19)
   (void) W←P8952(7, 4160749568, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45136, 21)
   (void) W←P8952(8, 2617245696, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45159, 21)
   (void) W←P8952(9, 2751463424, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45182, 21)
   (void) W←P8952(10, 1006632960, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45205, 21)
   (void) W←P8952(11, 1140850688, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45228, 23)
   (void) W←P8952(12, 570425344, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45253, 23)
   (void) W←P8952(13, 234881024, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45278, 23)
   (void) W←P8952(14, 3523215360, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45303, 23)
   (void) W←P8952(15, 3590324224, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45328, 23)
   (void) W←P8952(16, 2852126720, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45353, 23)
   (void) W←P8952(17, 2919235584, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45378, 25)
   (void) W←P8952(18, 1325400064, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45405, 25)
   (void) W←P8952(19, 419430400, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45432, 25)
   (void) W←P8952(20, 285212672, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45459, 25)
   (void) W←P8952(21, 788529152, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45486, 25)
   (void) W←P8952(22, 117440512, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45513, 25)
   (void) W←P8952(23, 150994944, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45540, 25)
   (void) W←P8952(24, 1358954496, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45567, 25)
   (void) W←P8952(25, 1459617792, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45594, 25)
   (void) W←P8952(26, 654311424, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45621, 25)
   (void) W←P8952(27, 1224736768, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45648, 25)
   (void) W←P8952(28, 822083584, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45675, 27)
   (void) W←P8952(29, 41943040, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45704, 27)
   (void) W←P8952(30, 58720256, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45733, 27)
   (void) W←P8952(31, 444596224, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45762, 27)
   (void) W←P8952(32, 461373440, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45791, 27)
   (void) W←P8952(33, 310378496, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45820, 27)
   (void) W←P8952(34, 327155712, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45849, 27)
   (void) W←P8952(35, 343932928, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45878, 27)
   (void) W←P8952(36, 360710144, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45907, 27)
   (void) W←P8952(37, 377487360, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45936, 27)
   (void) W←P8952(38, 394264576, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45965, 27)
   (void) W←P8952(39, 679477248, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(45994, 27)
   (void) W←P8952(40, 696254464, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46023, 27)
   (void) W←P8952(41, 713031680, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46052, 27)
   (void) W←P8952(42, 729808896, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46081, 27)
   (void) W←P8952(43, 746586112, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46110, 27)
   (void) W←P8952(44, 763363328, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46139, 27)
   (void) W←P8952(45, 75497472, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46168, 27)
   (void) W←P8952(46, 92274688, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46197, 27)
   (void) W←P8952(47, 176160768, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46226, 27)
   (void) W←P8952(48, 192937984, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46255, 27)
   (void) W←P8952(49, 1384120320, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46284, 27)
   (void) W←P8952(50, 1400897536, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46313, 27)
   (void) W←P8952(51, 1417674752, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46342, 27)
   (void) W←P8952(52, 1434451968, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46371, 27)
   (void) W←P8952(53, 612368384, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46400, 27)
   (void) W←P8952(54, 629145600, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46429, 27)
   (void) W←P8952(55, 1484783616, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46458, 27)
   (void) W←P8952(56, 1501560832, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46487, 27)
   (void) W←P8952(57, 1518338048, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46516, 27)
   (void) W←P8952(58, 1535115264, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46545, 27)
   (void) W←P8952(59, 1249902592, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46574, 27)
   (void) W←P8952(60, 1266679808, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46603, 27)
   (void) W←P8952(61, 847249408, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46632, 27)
   (void) W←P8952(62, 864026624, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46661, 27)
   (void) W←P8952(63, 880803840, (word) (( (bPt) &var←c62840)+60)/* var←c60984 */ );
SOURCE(46693, 2279)
SOURCE(46832, 31)
   (void) B←P9060(0, 232783872, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46865, 17)
   (void) B←P9060(1, 1342177280, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46884, 15)
   (void) B←P9060(2, 3758096384, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46901, 15)
   (void) B←P9060(3, 2684354560, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46918, 17)
   (void) B←P9060(4, 1879048192, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46937, 19)
   (void) B←P9060(5, 939524096, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46958, 19)
   (void) B←P9060(6, 671088640, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(46979, 21)
   (void) B←P9060(7, 469762048, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47002, 23)
   (void) B←P9060(8, 369098752, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47027, 23)
   (void) B←P9060(9, 301989888, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47052, 25)
   (void) B←P9060(10, 150994944, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47079, 25)
   (void) B←P9060(11, 184549376, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47106, 25)
   (void) B←P9060(12, 251658240, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47133, 27)
   (void) B←P9060(13, 75497472, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47162, 27)
   (void) B←P9060(14, 125829120, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47191, 29)
   (void) B←P9060(15, 205520896, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47222, 31)
   (void) B←P9060(16, 98566144, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47255, 31)
   (void) B←P9060(17, 102760448, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47288, 31)
   (void) B←P9060(18, 35651584, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47321, 33)
   (void) B←P9060(19, 217055232, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47356, 33)
   (void) B←P9060(20, 219152384, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47391, 33)
   (void) B←P9060(21, 227540992, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47426, 33)
   (void) B←P9060(22, 116391936, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47461, 33)
   (void) B←P9060(23, 84934656, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47496, 33)
   (void) B←P9060(24, 49283072, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47531, 33)
   (void) B←P9060(25, 51380224, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47566, 35)
   (void) B←P9060(26, 212336640, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47603, 35)
   (void) B←P9060(27, 213385216, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47640, 35)
   (void) B←P9060(28, 214433792, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47677, 35)
   (void) B←P9060(29, 215482368, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47714, 35)
   (void) B←P9060(30, 109576192, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47751, 35)
   (void) B←P9060(31, 110624768, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47788, 35)
   (void) B←P9060(32, 111673344, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47825, 35)
   (void) B←P9060(33, 112721920, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47862, 35)
   (void) B←P9060(34, 220725248, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47899, 35)
   (void) B←P9060(35, 221773824, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47936, 35)
   (void) B←P9060(36, 222822400, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(47973, 35)
   (void) B←P9060(37, 223870976, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48010, 35)
   (void) B←P9060(38, 224919552, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48047, 35)
   (void) B←P9060(39, 225968128, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48084, 35)
   (void) B←P9060(40, 113770496, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48121, 35)
   (void) B←P9060(41, 114819072, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48158, 35)
   (void) B←P9060(42, 229113856, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48195, 35)
   (void) B←P9060(43, 230162432, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48232, 35)
   (void) B←P9060(44, 88604672, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48269, 35)
   (void) B←P9060(45, 89653248, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48306, 35)
   (void) B←P9060(46, 90701824, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48343, 35)
   (void) B←P9060(47, 91750400, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48380, 35)
   (void) B←P9060(48, 105381888, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48417, 35)
   (void) B←P9060(49, 106430464, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48454, 35)
   (void) B←P9060(50, 86507520, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48491, 35)
   (void) B←P9060(51, 87556096, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48528, 35)
   (void) B←P9060(52, 38273024, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48565, 35)
   (void) B←P9060(53, 58195968, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48602, 35)
   (void) B←P9060(54, 59244544, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48639, 35)
   (void) B←P9060(55, 41418752, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48676, 35)
   (void) B←P9060(56, 42467328, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48713, 35)
   (void) B←P9060(57, 92798976, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48750, 35)
   (void) B←P9060(58, 93847552, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48787, 35)
   (void) B←P9060(59, 45613056, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48824, 35)
   (void) B←P9060(60, 46661632, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48861, 35)
   (void) B←P9060(61, 94896128, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48898, 35)
   (void) B←P9060(62, 107479040, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48935, 35)
   (void) B←P9060(63, 108527616, (word) (( (bPt) &var←c62840)+52)/* var←c60952 */ );
SOURCE(48975, 1015)
SOURCE(49116, 24)
   (void) MW←P9168(64, 3690987520, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49142, 24)
   (void) MW←P9168(128, 2483027968, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49168, 26)
   (void) MW←P9168(192, 1577058304, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49196, 28)
   (void) MW←P9168(256, 1862270976, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49226, 30)
   (void) MW←P9168(320, 914358272, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49258, 30)
   (void) MW←P9168(384, 931135488, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49290, 30)
   (void) MW←P9168(448, 1686110208, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49322, 30)
   (void) MW←P9168(512, 1702887424, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49354, 30)
   (void) MW←P9168(576, 1753219072, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49386, 30)
   (void) MW←P9168(640, 1736441856, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49418, 32)
   (void) MW←P9168(704, 1715470336, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49452, 32)
   (void) MW←P9168(768, 1723858944, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49486, 32)
   (void) MW←P9168(832, 1765801984, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49520, 32)
   (void) MW←P9168(896, 1774190592, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49554, 32)
   (void) MW←P9168(960, 1782579200, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49588, 32)
   (void) MW←P9168(1024, 1790967808, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49622, 32)
   (void) MW←P9168(1088, 1799356416, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49656, 32)
   (void) MW←P9168(1152, 1807745024, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49690, 32)
   (void) MW←P9168(1216, 1816133632, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49724, 32)
   (void) MW←P9168(1280, 1824522240, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49758, 32)
   (void) MW←P9168(1344, 1832910848, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49792, 32)
   (void) MW←P9168(1408, 1841299456, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49826, 32)
   (void) MW←P9168(1472, 1279262720, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49860, 32)
   (void) MW←P9168(1536, 1287651328, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49894, 32)
   (void) MW←P9168(1600, 1296039936, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49928, 26)
   (void) MW←P9168(1664, 1644167168, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49956, 32)
   (void) MW←P9168(1728, 1304428544, (word) (( (bPt) &var←c62840)+44)/* var←c60920 */ );
SOURCE(49993, 1257)
SOURCE(50134, 34)
   (void) MB←P9276(64, 65011712, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50170, 38)
   (void) MB←P9276(128, 210239488, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50210, 38)
   (void) MB←P9276(192, 211288064, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50250, 38)
   (void) MB←P9276(256, 95944704, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50290, 38)
   (void) MB←P9276(320, 54001664, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50330, 38)
   (void) MB←P9276(384, 55050240, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50370, 38)
   (void) MB←P9276(448, 56098816, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50410, 40)
   (void) MB←P9276(512, 56885248, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50452, 40)
   (void) MB←P9276(576, 57409536, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50494, 40)
   (void) MB←P9276(640, 39059456, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50536, 40)
   (void) MB←P9276(704, 39583744, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50578, 40)
   (void) MB←P9276(768, 40108032, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50620, 40)
   (void) MB←P9276(832, 40632320, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50662, 40)
   (void) MB←P9276(896, 60030976, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50704, 40)
   (void) MB←P9276(960, 60555264, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50746, 40)
   (void) MB←P9276(1024, 61079552, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50788, 40)
   (void) MB←P9276(1088, 61603840, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50830, 40)
   (void) MB←P9276(1152, 62128128, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50872, 40)
   (void) MB←P9276(1216, 62652416, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50914, 40)
   (void) MB←P9276(1280, 43253760, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50956, 40)
   (void) MB←P9276(1344, 43778048, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(50998, 40)
   (void) MB←P9276(1408, 44302336, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(51040, 40)
   (void) MB←P9276(1472, 44826624, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(51082, 40)
   (void) MB←P9276(1536, 47448064, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(51124, 40)
   (void) MB←P9276(1600, 47972352, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(51166, 40)
   (void) MB←P9276(1664, 52690944, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(51208, 40)
   (void) MB←P9276(1728, 53215232, (word) (( (bPt) &var←c62840)+36)/* var←c60888 */ );
SOURCE(51253, 731)
SOURCE(51483, 35)
   (void) M←P9384(1792, 17825792, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51520, 35)
   (void) M←P9384(1856, 26214400, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51557, 35)
   (void) M←P9384(1920, 28311552, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51594, 37)
   (void) M←P9384(1984, 19398656, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51633, 37)
   (void) M←P9384(2048, 20447232, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51672, 37)
   (void) M←P9384(2112, 21495808, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51711, 37)
   (void) M←P9384(2176, 22544384, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51750, 37)
   (void) M←P9384(2240, 23592960, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51789, 37)
   (void) M←P9384(2304, 24641536, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51828, 37)
   (void) M←P9384(2368, 29884416, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51867, 37)
   (void) M←P9384(2432, 30932992, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51906, 37)
   (void) M←P9384(2496, 31981568, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51945, 37)
   (void) M←P9384(2560, 33030144, (word) (( (bPt) &var←c62840)+28)/* var←c60856 */ );
SOURCE(51987, 218)
SOURCE(52074, 12)
   (void) U←P9492(1, 3221225472, (word) (( (bPt) &var←c62840)+20)/* var←c60824 */ );
SOURCE(52088, 14)
   (void) U←P9492(2, 1610612736, (word) (( (bPt) &var←c62840)+20)/* var←c60824 */ );
SOURCE(52104, 16)
   (void) U←P9492(3, 805306368, (word) (( (bPt) &var←c62840)+20)/* var←c60824 */ );
SOURCE(52122, 18)
   (void) U←P9492(4, 402653184, (word) (( (bPt) &var←c62840)+20)/* var←c60824 */ );
SOURCE(52142, 20)
   (void) U←P9492(5, 201326592, (word) (( (bPt) &var←c62840)+20)/* var←c60824 */ );
SOURCE(52164, 39)
   {
      word pd318;
      pd318 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd318 ))))(6, 100663296, 6, 6, 5, pd318);
      };
SOURCE(52208, 211)
   {
      register word length←v24832 = 0;
      lab←L100292: ;
      {
         word b←v24896 = 0;
SOURCE(52287, 15)
         (*  (ptr) &b←v24896 ) |= ((unsigned) 1 << 32 - ((word) (length←v24832 + 6)+1));
SOURCE(52304, 15)
         (*  (ptr) &b←v24896 ) &= ~((unsigned) 1 << 32 - ((word) (length←v24832 + 7)+1));
SOURCE(52321, 15)
         (*  (ptr) &b←v24896 ) |= ((unsigned) 1 << 32 - ((word) (length←v24832 + 8)+1));
SOURCE(52338, 31)
         {
            word pd319;
            pd319 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
            (void) ( *( (fPt) ((*  (ptr) pd319 ))))(6, b←v24896, 0, 6, length←v24832, pd319);
            };
SOURCE(52371, 15)
         (*  (ptr) &b←v24896 ) |= ((unsigned) 1 << 32 - ((word) (length←v24832 + 7)+1));
SOURCE(52388, 31)
         {
            word pd320;
            pd320 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
            (void) ( *( (fPt) ((*  (ptr) pd320 ))))(6, b←v24896, 1, 6, length←v24832, pd320);
            };
         };
      if ((length←v24832 >= 4)) {
         goto lab←L100289;
         };
      length←v24832 = (length←v24832 + 1);
      goto lab←L100292;
      lab←L100289: ;
      };
SOURCE(52432, 27)
   {
      word pd321;
      pd321 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd321 ))))(7, 2147483648, 6, 5, 1, pd321);
      };
SOURCE(52461, 27)
   {
      word pd322;
      pd322 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd322 ))))(8, 2147483648, 6, 5, 2, pd322);
      };
SOURCE(52490, 27)
   {
      word pd323;
      pd323 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd323 ))))(9, 2147483648, 6, 5, 3, pd323);
      };
SOURCE(52519, 27)
   {
      word pd324;
      pd324 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd324 ))))(10, 2147483648, 6, 5, 4, pd324);
      };
SOURCE(52548, 27)
   {
      word pd325;
      pd325 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd325 ))))(11, 2147483648, 6, 5, 5, pd325);
      };
SOURCE(52577, 29)
   {
      word pd326;
      pd326 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd326 ))))(12, 2147483648, 6, 6, 1, pd326);
      };
SOURCE(52608, 29)
   {
      word pd327;
      pd327 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd327 ))))(13, 2147483648, 6, 6, 2, pd327);
      };
SOURCE(52639, 29)
   {
      word pd328;
      pd328 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd328 ))))(14, 2147483648, 6, 6, 3, pd328);
      };
SOURCE(52670, 29)
   {
      word pd329;
      pd329 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd329 ))))(15, 2147483648, 6, 6, 4, pd329);
      };
SOURCE(52701, 29)
   {
      word pd330;
      pd330 = (* (( (ptr) &var←c62840)+4)/* T←v14464 */  );
      (void) ( *( (fPt) ((*  (ptr) pd330 ))))(16, 2147483648, 6, 6, 5, pd330);
      };
   }

static void V←P8796(length←v23940, bitstring←v23968, formal←c62872)
   word length←v23940;
   word bitstring←v23968;
   word formal←c62872;
   {
   formal←c62872 = (formal←c62872 - 68);
   /* V: */ 
SOURCE(44336, 9)
SOURCE(44384, 40)
   {
      word pd331;
      pd331 = (* (( (ptr) formal←c62872)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd331 ))))(0, bitstring←v23968, 1, 3, length←v23940, pd331);
      };
SOURCE(44426, 40)
   {
      word pd332;
      pd332 = (* (( (ptr) formal←c62872)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd332 ))))(1, bitstring←v23968, 0, 3, length←v23940, pd332);
      };
   }

static void W←P8952(length←v24116, bitstring←v24144, formal←c62904)
   word length←v24116;
   word bitstring←v24144;
   word formal←c62904;
   {
   formal←c62904 = (formal←c62904 - 60);
   /* W: */ 
SOURCE(44818, 9)
SOURCE(44866, 43)
   {
      word pd333;
      pd333 = (* (( (ptr) formal←c62904)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd333 ))))(2, bitstring←v24144, 5, 2, length←v24116, pd333);
      };
SOURCE(44911, 42)
   {
      word pd334;
      pd334 = (* (( (ptr) formal←c62904)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd334 ))))(4, bitstring←v24144, 1, 2, length←v24116, pd334);
      };
   }

static void B←P9060(length←v24248, bitstring←v24276, formal←c62936)
   word length←v24248;
   word bitstring←v24276;
   word formal←c62936;
   {
   formal←c62936 = (formal←c62936 - 52);
   /* B: */ 
SOURCE(46694, 9)
SOURCE(46742, 42)
   {
      word pd335;
      pd335 = (* (( (ptr) formal←c62936)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd335 ))))(5, bitstring←v24276, 0, 2, length←v24248, pd335);
      };
SOURCE(46786, 43)
   {
      word pd336;
      pd336 = (* (( (ptr) formal←c62936)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd336 ))))(3, bitstring←v24276, 4, 2, length←v24248, pd336);
      };
   }

static void MW←P9168(length←v24380, bitstring←v24408, formal←c62968)
   word length←v24380;
   word bitstring←v24408;
   word formal←c62968;
   {
   formal←c62968 = (formal←c62968 - 44);
   /* MW: */ 
SOURCE(48976, 10)
SOURCE(49025, 42)
   {
      word pd337;
      pd337 = (* (( (ptr) formal←c62968)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd337 ))))(2, bitstring←v24408, 2, 0, length←v24380, pd337);
      };
SOURCE(49069, 44)
   {
      word pd338;
      pd338 = (* (( (ptr) formal←c62968)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd338 ))))(4, bitstring←v24408, 4, 0, length←v24380, pd338);
      };
   }

static void MB←P9276(length←v24512, bitstring←v24540, formal←c63000)
   word length←v24512;
   word bitstring←v24540;
   word formal←c63000;
   {
   formal←c63000 = (formal←c63000 - 36);
   /* MB: */ 
SOURCE(49994, 10)
SOURCE(50043, 42)
   {
      word pd339;
      pd339 = (* (( (ptr) formal←c63000)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd339 ))))(3, bitstring←v24540, 3, 0, length←v24512, pd339);
      };
SOURCE(50087, 44)
   {
      word pd340;
      pd340 = (* (( (ptr) formal←c63000)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd340 ))))(5, bitstring←v24540, 5, 0, length←v24512, pd340);
      };
   }

static void M←P9384(length←v24644, bitstring←v24672, formal←c63032)
   word length←v24644;
   word bitstring←v24672;
   word formal←c63032;
   {
   formal←c63032 = (formal←c63032 - 28);
   /* M: */ 
SOURCE(51254, 9)
SOURCE(51302, 42)
   {
      word pd341;
      pd341 = (* (( (ptr) formal←c63032)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd341 ))))(2, bitstring←v24672, 2, 0, length←v24644, pd341);
      };
SOURCE(51346, 44)
   {
      word pd342;
      pd342 = (* (( (ptr) formal←c63032)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd342 ))))(4, bitstring←v24672, 4, 0, length←v24644, pd342);
      };
SOURCE(51392, 42)
   {
      word pd343;
      pd343 = (* (( (ptr) formal←c63032)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd343 ))))(3, bitstring←v24672, 3, 0, length←v24644, pd343);
      };
SOURCE(51436, 44)
   {
      word pd344;
      pd344 = (* (( (ptr) formal←c63032)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd344 ))))(5, bitstring←v24672, 5, 0, length←v24644, pd344);
      };
   }

static void U←P9492(length←v24776, bitstring←v24804, formal←c63064)
   word length←v24776;
   word bitstring←v24804;
   word formal←c63064;
   {
   formal←c63064 = (formal←c63064 - 20);
   /* U: */ 
SOURCE(51988, 9)
SOURCE(52036, 35)
   {
      word pd345;
      pd345 = (* (( (ptr) formal←c63064)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd345 ))))(6, bitstring←v24804, 6, 5, length←v24776, pd345);
      };
   }

static void NoName←Q13896(formal←c0817, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0817;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0905 =  (ptr) &globalframe;
   if ((formal←c200017 == (word) (( (bPt) gf←c0905)+604)/* var←c50008 */ )) {
SOURCE(43800, 10)
      (*  (ptr) formal←c0817 ) = 2;
      (* (( (ptr) formal←c0817)+1) ) = 8;
      return;
      };
   (*  (ptr) formal←c0817 ) = 0;
   (* (( (ptr) formal←c0817)+1) ) = 0;
   return;
   }

static void NoName←Q13956(formal←c0826, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0826;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0906 =  (ptr) &globalframe;
   if ((formal←c200013 == (* (( (ptr) (* (( (ptr) gf←c0906)+256)/* var←c51928 */  ))+5) ))) {
      {
         word ec←v40524;
         word stream←v40552;
         word details←v40580;
         word msg←v40608;
         ec←v40524 = (*  (ptr) formal←c200015 );
         stream←v40552 = (* (( (ptr) formal←c200015)+1) );
         details←v40580 = (* (( (ptr) formal←c200015)+2) );
         msg←v40608 = (* (( (ptr) formal←c200015)+3) );
SOURCE(12808, 15)
         (*  (ptr) formal←c0826 ) = 2;
         (* (( (ptr) formal←c0826)+1) ) = 7;
         return;
         };
      };
   (*  (ptr) formal←c0826 ) = 0;
   (* (( (ptr) formal←c0826)+1) ) = 0;
   return;
   }

static void NoName←Q14016(formal←c0832, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0832;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0907 =  (ptr) &globalframe;
   if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0907)+256)/* var←c51928 */  ))+4) ))) {
      {
         word stream←v37848;
         stream←v37848 = (*  (ptr) formal←c200011 );
SOURCE(8651, 14)
         (void) ErrorEOF←P1440((* ((( (ptr) formal←c200008)+4)) ));
SOURCE(8667, 9)
         (*  (ptr) formal←c0832 ) = 2;
         (* (( (ptr) formal←c0832)+1) ) = 6;
         return;
         };
      }
   else {
      if ((formal←c200009 == XR←Unwind)) {
         (void) (XR←MonitorExit(* (( (ptr) formal←c200008)+4) ));
         };
      };
   (*  (ptr) formal←c0832 ) = 0;
   (* (( (ptr) formal←c0832)+1) ) = 0;
   return;
   }

static void NoName←Q14076(formal←c0838, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0838;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0908 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0908)+256)/* var←c51928 */  ))+4) ))) {
      {
         word stream←v37388;
         stream←v37388 = (*  (ptr) formal←c200007 );
SOURCE(8183, 14)
         (void) ErrorEOF←P1440((* ((( (ptr) formal←c200004)+4)) ));
SOURCE(8199, 9)
         (*  (ptr) formal←c0838 ) = 2;
         (* (( (ptr) formal←c0838)+1) ) = 3;
         return;
         };
      }
   else {
      if ((formal←c200005 == XR←Unwind)) {
         (void) (XR←MonitorExit(* (( (ptr) formal←c200004)+4) ));
         };
      };
   (*  (ptr) formal←c0838 ) = 0;
   (* (( (ptr) formal←c0838)+1) ) = 0;
   return;
   }

static void NoName←Q14136(formal←c0844, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0844;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0909 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0909)+256)/* var←c51928 */  ))+4) ))) {
      {
         word stream←v34200;
         stream←v34200 = (*  (ptr) formal←c200003 );
SOURCE(3977, 14)
         (void) ErrorEOF←P1440((* ((( (ptr) formal←c200000)+4)) ));
SOURCE(3993, 9)
         (*  (ptr) formal←c0844 ) = 2;
         (* (( (ptr) formal←c0844)+1) ) = 2;
         return;
         };
      }
   else {
      if ((formal←c200001 == XR←Unwind)) {
         (void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) ));
         };
      };
   (*  (ptr) formal←c0844 ) = 0;
   (* (( (ptr) formal←c0844)+1) ) = 0;
   return;
   }

/* file: PixelArrayCCITTG4Impl, module: PixelArrayCCITTG4Impl, compiled at: June 7, 1993 4:30:59 pm PDT */ 
extern void XR←install←PixelArrayCCITTG4Impl() {
   NoName←Q13536();
   }
extern void XR←run←PixelArrayCCITTG4Impl() { XR←Start(&globalframe); }