/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 28, 1993 1:28:51 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerPrintContextImpl, module: ImagerPrintContextImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3353152080,2143922687] ImagerPrintContextImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
#define SOURCE(p, l) /* source p, l */
static float fc28 = 0.48;
static float fc29 = 45.0;
static float fc30 = 75.0;
static float fc31 = 105.0;
static float fc32 = 90.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc35 = 0.05;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static float fc75 = 1.0;
static float fc78 = 0.0;
static float fc81 = 2.0;
static float fc84 = 3.0;
static void NoName←Q2028();
static void ImagerPrintContextImpl←P0();
static word MakeHalftoneProperties←P60();
static word SimpleCreate←P120();
static word Create←P180();
static word IsPrintDevice←P240();
static word GetDeviceBitmap←P300();
static word SetDeviceBitmap←P360();
static word GetColorData←P420();
static void ValidateAllow←P480();
static void SetColorData←P540();
static void SetBitmap←P600();
static void SetSeparation←P660();
static void MySetColor←P720();
static word TranslateHalftoneProperties←P780();
static void MySetHalftoneProperties←P840();
static void MyMaskBoxes←P900();
static void MyMaskBitmap←P960();
static void MyMaskRegion←P1020();
static void MyMaskRawBitmaps←P1080();
static void WMaskPixelArray←P1200();
static void SetMaskCacheTradeoffs←P1260();
static void Action←P1668();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\241\011\366\176\300\127\130\105\301\100\274\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\003\016\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\241\011\366\176\300\127\130\105\301\102\250\000\000"};
static struct {unsigned f; char r[44];} string6 = {2752556, "\260\006\005\146\151\162\163\164\257\300\236\211\262\021\300\215\235\324\340\101\034\005\004\162\145\163\164\214\257\300\236\211\262\021\300\215\235\324\340\101\034\261\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004)\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\307\335\012\120\300\177\311\251\377\100\200\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\004\003\000"};
static struct {unsigned f; char r[8];} string10 = {327688, "Print\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\307\335\012\120\300\177\311\251\377\100\164\000\000"};
static struct {unsigned f; char r[12];} string12 = {720907, "\006\004$\001(\001,\001@`\001"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\361\072\110\004\300\054\212\055\367\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\241\011\366\176\300\127\130\105\301\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\362\033\246\002\300\160\342\266\057\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\352\210\333\354\300\066\006\043\223\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\350\311\135\367\300\362\215\374\250\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\166\344\362\325\300\124\127\204\375\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\116\270\002\066\300\261\361\371\343\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\067\246\211\216\300\354\224\134\067\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\136\344\215\017\300\051\016\154\236\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\207\001\021\231\300\362\156\044\006\100\150\000\000"};
static struct {
   word f0[25]; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32; word f33; word f34; word f35; 
   word f36; word f37; word f38; word f39; 
   word f40; word f41; word f42; word f43; 
   word f44; word f45; word f46; word f47; 
   word f48; word f49; word f50; word f51; 
   word f52; word f53; word f54; word f55; 
   word f56; word f57; word f58; word f59; 
   word f60; word f61; word f62; word f63; 
   word f64; word f65; word f66[23]; 
   } globalframe = {
   {0}, (word) SetMaskCacheTradeoffs←P1260, 0, (word) WMaskPixelArray←P1200, 
   0, (word) MyMaskRawBitmaps←P1080, 0, (word) MyMaskRegion←P1020, 
   0, (word) MyMaskBitmap←P960, 0, (word) MyMaskBoxes←P900, 
   0, (word) MySetHalftoneProperties←P840, 0, (word) TranslateHalftoneProperties←P780, 
   0, (word) MySetColor←P720, 0, (word) SetSeparation←P660, 
   0, (word) SetBitmap←P600, 0, (word) SetColorData←P540, 
   0, (word) ValidateAllow←P480, 0, (word) GetColorData←P420, 
   0, (word) SetDeviceBitmap←P360, 0, (word) GetDeviceBitmap←P300, 
   0, (word) IsPrintDevice←P240, 0, (word) Create←P180, 
   0, (word) SimpleCreate←P120, 0, (word) MakeHalftoneProperties←P60, 
   0, (word) ImagerPrintContextImpl←P0, {0}
   };

static void NoName←Q2028()
   {
   register ptr gf←c0186 =  (ptr) &globalframe;
   word var←c33272;
   (* (( (ptr) gf←c0186)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0186)+15) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0186)+17) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c0186)+19) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0186)+22) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (*  (ptr) (( (bPt) gf←c0186)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0186)+12) ), (word) &string10);
   (void) XR←DeclareGlobalFrame((word) "ImagerPrintContextImpl", &globalframe, (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12)
      , (word) (( (bPt) gf←c0186)+260)/* var←c31736 */ );
   var←c33272 = (word) XR←ImportInterface((word) "ImagerBrick", (word) XR←GetTypeIndexS((word) (&string13)), 4);
   (* (( (ptr) gf←c0186)+77)/* var←c32024 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 203424264);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerDevice", (word) XR←GetTypeIndexS((word) (&string14)), 2);
   (* (( (ptr) gf←c0186)+80)/* var←c32280 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 69730569);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerDeviceColor", (word) XR←GetTypeIndexS((word) (&string15)), 14);
   (* (( (ptr) gf←c0186)+81)/* var←c32344 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 67371265);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerDeviceWorks", (word) XR←GetTypeIndexS((word) (&string16)), 23);
   (* (( (ptr) gf←c0186)+75)/* var←c31960 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 791299);
   (void) XR←ImportProcS(var←c33272, 2102792);
   (void) XR←ImportProcS(var←c33272, 67900675);
   (void) XR←ImportProcS(var←c33272, 1577987);
   (void) XR←ImportProcS(var←c33272, 791043);
   (void) XR←ImportProcS(var←c33272, 3150092);
   (void) XR←ImportProcS(var←c33272, 2101254);
   (void) XR←ImportProcS(var←c33272, 2101000);
   (void) XR←ImportProcS(var←c33272, 1576451);
   (void) XR←ImportProcS(var←c33272, 1051908);
   (void) XR←ImportProcS(var←c33272, 1051652);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerManhattan", (word) XR←GetTypeIndexS((word) (&string17)), 24);
   (* (( (ptr) gf←c0186)+84)/* var←c32472 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 268700673);
   (void) XR←ImportProcS(var←c33272, 68425218);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerMaskCache", (word) XR←GetTypeIndexS((word) (&string18)), 21);
   (* (( (ptr) gf←c0186)+79)/* var←c32248 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 265473);
   (void) XR←ImportProcS(var←c33272, 527106);
   (void) XR←ImportProcS(var←c33272, 67375105);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string19)), 13);
   (* (( (ptr) gf←c0186)+87)/* var←c33080 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 2623240);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerPrintColor", (word) XR←GetTypeIndexS((word) (&string20)), 4);
   (* (( (ptr) gf←c0186)+78)/* var←c32152 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 1835780);
   (void) XR←ImportProcS(var←c33272, 786947);
   (void) XR←ImportProcS(var←c33272, 524546);
   (void) XR←ImportProcS(var←c33272, 68157444);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerPrintColorPrivate", (word) XR←GetTypeIndexS((word) (&string21)), 1);
   (* (( (ptr) gf←c0186)+82)/* var←c32376 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 524290);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerRaster", (word) XR←GetTypeIndexS((word) (&string22)), 13);
   (* (( (ptr) gf←c0186)+76)/* var←c31992 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 1312514);
   (void) XR←ImportProcS(var←c33272, 67371521);
   (void) XR←ImportProcS(var←c33272, 68419845);
   (void) XR←ImportProcS(var←c33272, 67371009);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string23)), 60);
   (* (( (ptr) gf←c0186)+85)/* var←c32696 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 798979);
   (void) XR←ImportProcS(var←c33272, 1062660);
   (void) XR←ImportProcS(var←c33272, 1586437);
   var←c33272 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string24)), 55);
   (* (( (ptr) gf←c0186)+86)/* var←c32952 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 262401);
   (void) XR←ImportProcS(var←c33272, 67635458);
   var←c33272 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string25)), 19);
   (* (( (ptr) gf←c0186)+83)/* var←c32440 */  ) = var←c33272;
   (void) XR←ImportProcS(var←c33272, 69210370);
   var←c33272 = (word) XR←ExportInterface((word) "ImagerPrintContext", (word) XR←GetTypeIndexS((word) (&string26)), 5);
   (* (( (ptr) gf←c0186)+88)/* var←c33304 */  ) = var←c33272;
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+100)/* var←c31096 */ , 262145, (word) "SetMaskCacheTradeoffs")
   ;
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+236)/* var←c31640 */ , 69992713, (word) "Create");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+244)/* var←c31672 */ , 69206534, (word) "SimpleCreate");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+180)/* var←c31416 */ , 525058, (word) "SetBitmap");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+172)/* var←c31384 */ , 525314, (word) "SetSeparation");
   var←c33272 = (word) XR←ExportInterface((word) "ImagerPrintDevice", (word) XR←GetTypeIndexS((word) (&string27)), 5);
   (* (( (ptr) gf←c0186)+88)/* var←c33304 */  ) = var←c33272;
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+228)/* var←c31608 */ , 67371009, (word) "IsPrintDevice");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+204)/* var←c31512 */ , 67371265, (word) "GetColorData");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+188)/* var←c31448 */ , 524802, (word) "SetColorData");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+220)/* var←c31576 */ , 67371777, (word) "GetDeviceBitmap");
   (void) XR←ExportProcS(var←c33272, (word) (( (bPt) gf←c0186)+212)/* var←c31544 */ , 67634178, (word) "SetDeviceBitmap");
   }

static void ImagerPrintContextImpl←P0(formal←c049, formal←c046)
   word formal←c049;
   word formal←c046;
   {
   register ptr gf←c33336 =  (ptr) &globalframe;
   /* ImagerPrintContextImpl: */ 
SOURCE(321, 10916)
SOURCE(923, 28)
   (* (( (ptr) gf←c33336)+4)/* defaultDotShape←v3448 */  ) = (*  (ptr) &fc28 );
SOURCE(953, 117)
   (* (( (ptr) gf←c33336)+5) ) = (*  (ptr) &fc29 );
   (* (( (ptr) gf←c33336)+6) ) = (*  (ptr) &fc30 );
   (* (( (ptr) gf←c33336)+7) ) = (*  (ptr) &fc31 );
   (* (( (ptr) gf←c33336)+8) ) = (*  (ptr) &fc32 );
SOURCE(9665, 257)
   {
      word var←c31896;
      var←c31896 = XR←NewObject(60, (* (( (ptr) gf←c33336)+15) ));
      (*  (ptr) var←c31896 ) = (word) (( (bPt) gf←c33336)+164)/* var←c31352 */ ;
      (* (( (ptr) var←c31896)+1) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+2) ) = (word) (( (bPt) gf←c33336)+148)/* var←c31288 */ ;
      (* (( (ptr) var←c31896)+3) ) = (word) (( (bPt) gf←c33336)+140)/* var←c31256 */ ;
      (* (( (ptr) var←c31896)+4) ) = (word) (( (bPt) gf←c33336)+124)/* var←c31192 */ ;
      (* (( (ptr) var←c31896)+5) ) = (word) (( (bPt) gf←c33336)+132)/* var←c31224 */ ;
      (* (( (ptr) var←c31896)+6) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+7) ) = (word) (( (bPt) gf←c33336)+116)/* var←c31160 */ ;
      (* (( (ptr) var←c31896)+8) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+9) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+10) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+11) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+12) ) = XR←CheckProc(0);
      (* (( (ptr) var←c31896)+13) ) = XR←CheckProc(0);
      (* (( (ptr) gf←c33336)+9)/* deviceClass←v4064 */  ) = var←c31896;
      };
SOURCE(9925, 599)
   {
      word var←c31928;
      var←c31928 = XR←NewObject(44, (* (( (ptr) gf←c33336)+17) ));
      (*  (ptr) var←c31928 ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+16) );
      (* (( (ptr) var←c31928)+1) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+17) );
      (* (( (ptr) var←c31928)+2) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+18) );
      (* (( (ptr) var←c31928)+3) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+19) );
      (* (( (ptr) var←c31928)+4) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+20) );
      (* (( (ptr) var←c31928)+5) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+21) );
      (* (( (ptr) var←c31928)+6) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+22) );
      (* (( (ptr) var←c31928)+7) ) = (word) (( (bPt) gf←c33336)+108)/* var←c31128 */ ;
      (* (( (ptr) var←c31928)+8) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+24) );
      (* (( (ptr) var←c31928)+9) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+25) );
      (* (( (ptr) var←c31928)+10) ) = (* (( (ptr) (* (( (ptr) gf←c33336)+75)/* var←c31960 */  ))+26) );
      (* (( (ptr) gf←c33336)+10)/* worksClass←v4092 */  ) = var←c31928;
      };
SOURCE(10527, 74)
   {
      word pd33;
      pd33 = (* (( (ptr) (* (( (ptr) gf←c33336)+76)/* var←c31992 */  ))+4) );
      (* (( (ptr) gf←c33336)+11)/* contextClass←v4120 */  ) = (word) ( *( (fPt) ((*  (ptr) pd33 ))))((* ((( (ptr) gf←c33336)+24)
         ) ), pd33);
      };
SOURCE(11208, 29)
   (void) SetMaskCacheTradeoffs←P1260((* ((( (ptr) gf←c33336)+24)) ));
   }

static word MakeHalftoneProperties←P60(logicalDevice←v4348, pixelsPerHalftoneDot←v4376, toners←v4404)
   word logicalDevice←v4348;
   word pixelsPerHalftoneDot←v4376;
   word toners←v4404;
   {
   register ptr gf←c33368 =  (ptr) &globalframe;
   word h←v4448;
   W4 angle←v7152;
   /* MakeHalftoneProperties: */ 
SOURCE(1073, 563)
SOURCE(1073, 563)
   h←v4448 = 0;
SOURCE(1259, 73)
   angle←v7152 = (*  (W4Pt) (( (ptr) gf←c33368)+5)/* defaultScreenAngle←v3476 */  );
SOURCE(1334, 302)
   {
      register word t←v7232 = 0;
      lab←L100003: ;
SOURCE(1396, 240)
      if (((word) toners←v4404 >> (31 - (word) (t←v7232 + 16))) & 1) {
SOURCE(1414, 224)
         {
            word angle←v7276;
            W3 brick←v7304;
SOURCE(1416, 35)
            angle←v7276 = (* ((( (ptr) gf←c33368)+5)/* defaultScreenAngle←v3476 */ +BCK(t←v7232, 4)) );
SOURCE(1453, 133)
            {
               word pd34;
               pd34 = (* (( (ptr) (* (( (ptr) gf←c33368)+77)/* var←c32024 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd34 ))))((word) &brick←v7304, pixelsPerHalftoneDot←v4376, angle←v7276, (* (( (ptr) gf←c33368)+4)
                  /* defaultDotShape←v3448 */  ), (*  (ptr) &fc35 ), 16
                  , 255, 0, 0, pd34);
               };
SOURCE(1588, 48)
            {
               word var←c32056;
               var←c32056 = XR←NewObject(24, (* (( (ptr) gf←c33368)+19) ));
               (* (( (ptr) var←c32056)+1) ) = t←v7232;
               (*  (W3Pt) (( (ptr) var←c32056)+2) ) = brick←v7304;
               (* (( (ptr) var←c32056)+5) ) = h←v4448;
               h←v4448 = var←c32056;
               };
            };
         };
      if ((t←v7232 >= 3)) {
         goto lab←L100000;
         };
      t←v7232 = (t←v7232 + 1);
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(1073, 563)
   return(h←v4448);
   }

static word SimpleCreate←P120(deviceSpaceSize←v4508, scanMode←v4536, surfaceUnitsPerInch←v4564, logicalDevice←v4592, pixelsPerHalftoneDot←v4620, toners←v4648)
   W2 deviceSpaceSize←v4508;
   word scanMode←v4536;
   W2 surfaceUnitsPerInch←v4564;
   word logicalDevice←v4592;
   word pixelsPerHalftoneDot←v4620;
   word toners←v4648;
   {
   register ptr gf←c33400 =  (ptr) &globalframe;
   word var←c4692;
   word halftoneProperties←v7348;
   /* SimpleCreate: */ 
SOURCE(1654, 599)
SOURCE(1914, 119)
   halftoneProperties←v7348 = (word) MakeHalftoneProperties←P60(logicalDevice←v4592, pixelsPerHalftoneDot←v4620, toners←v4648)
   ;
SOURCE(2035, 218)
   return((word) Create←P180(deviceSpaceSize←v4508, scanMode←v4536, surfaceUnitsPerInch←v4564, logicalDevice←v4592, halftoneProperties←v7348, 0
      , 0, (* (( (ptr) gf←c33400)+24) ), 0));
   }

static word Create←P180(deviceSpaceSize←v4752, scanMode←v4780, surfaceUnitsPerInch←v4808, logicalDevice←v4836, halftoneProperties←v4864, correction←v4892, interpolate←v4920, fontCacheName←v4948, parameters←v4976)
   W2 deviceSpaceSize←v4752;
   word scanMode←v4780;
   W2 surfaceUnitsPerInch←v4808;
   word logicalDevice←v4836;
   word halftoneProperties←v4864;
   word correction←v4892;
   word interpolate←v4920;
   word fontCacheName←v4948;
   word parameters←v4976;
   {
   register ptr gf←c33432 =  (ptr) &globalframe;
   word var←c5020;
   word data←v7392;
   word deviceParm←v7420;
   word context←v7448;
   word device←v7476;
   /* Create: */ 
SOURCE(2259, 1320)
SOURCE(2636, 215)
   {
      word var←c32120;
      word var←c32184;
      {
         word pd36;
         pd36 = (* (( (ptr) (* (( (ptr) gf←c33432)+78)/* var←c32152 */  ))+4) );
         var←c32120 = (word) ( *( (fPt) ((*  (ptr) pd36 ))))(logicalDevice←v4836, halftoneProperties←v4864, correction←v4892, interpolate←v4920, pd36)
         ;
         };
      var←c32184 = XR←NewObject(8, (* (( (ptr) gf←c33432)+22) ));
      (* (( (ptr) var←c32184)+1) ) = var←c32120;
      data←v7392 = var←c32184;
      };
SOURCE(2853, 307)
   {
      word var←c32216;
      {
         word pd37;
         pd37 = (* (( (ptr) (* (( (ptr) gf←c33432)+79)/* var←c32248 */  ))+20) );
         var←c32216 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(fontCacheName←v4948, pd37);
         };
      {
         word pd38;
         word idx39;
         word idx40;
         pd38 = (* (( (ptr) (* (( (ptr) gf←c33432)+80)/* var←c32280 */  ))+5) );
         deviceParm←v7420 = (word) ( *( (fPt) ((*  (ptr) pd38 ))))((* (( (ptr) gf←c33432)+9)/* deviceClass←v4064 */  ), (
               idx39 = (word) deviceSpaceSize←v4752.f0,
               SGNCK(idx39)
               ), (
               idx40 = (word) deviceSpaceSize←v4752.f1,
               SGNCK(idx40)
               ), scanMode←v4780, surfaceUnitsPerInch←v4808, 1
            , var←c32216, parameters←v4976, 0, pd38);
         };
      };
SOURCE(3162, 147)
   {
      word pd41;
      pd41 = (* (( (ptr) (* (( (ptr) gf←c33432)+76)/* var←c31992 */  ))+5) );
      context←v7448 = (word) ( *( (fPt) ((*  (ptr) pd41 ))))((* (( (ptr) gf←c33432)+11)/* contextClass←v4120 */  ), (* (( (ptr) gf←c33432)+9)
         /* deviceClass←v4064 */  ), deviceParm←v7420, data←v7392, 0, pd41);
      };
SOURCE(3311, 48)
   {
      word pd42;
      pd42 = (* (( (ptr) (* (( (ptr) gf←c33432)+76)/* var←c31992 */  ))+6) );
      device←v7476 = (word) ( *( (fPt) ((*  (ptr) pd42 ))))(context←v7448, pd42);
      };
SOURCE(3361, 116)
   {
      word var←c32312;
      {
         word pd43;
         pd43 = (* (( (ptr) (* (( (ptr) gf←c33432)+81)/* var←c32344 */  ))+5) );
         var←c32312 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))(device←v7476, pd43);
         };
      {
         word pd44;
         pd44 = (* (( (ptr) (* (( (ptr) gf←c33432)+82)/* var←c32376 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd44 ))))((* (( (ptr) data←v7392)+1) ), var←c32312, pd44);
         };
      };
SOURCE(3479, 25)
   (*  (ptr) device←v7476 ) = (* (( (ptr) gf←c33432)+10)/* worksClass←v4092 */  );
SOURCE(3506, 54)
   {
      word pd45;
      pd45 = (* (( (ptr) (* (( (ptr) gf←c33432)+76)/* var←c31992 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd45 ))))(context←v7448, (*  (W4Pt) (( (ptr) gf←c33432)+67)/* var←c31800 */  ), pd45);
      };
SOURCE(3562, 17)
   return(context←v7448);
   }

static word IsPrintDevice←P240(device←v5080)
   word device←v5080;
   {
   register ptr gf←c33464 =  (ptr) &globalframe;
   word var←c5124;
   /* IsPrintDevice: */ 
SOURCE(3583, 146)
SOURCE(3646, 83)
   {
      word var←c32408;
      var←c32408 = (* (( (ptr) device←v5080)+7) );
      if ((var←c32408 == 0)) {
         goto lab←L100004;
         };
      if (((* (( (ptr) gf←c33464)+22) ) == XR←GetReferentType(var←c32408))) {
         {
            word data←v7520;
            data←v7520 = var←c32408;
SOURCE(3689, 13)
            return(1);
            };
         }
      else {
         lab←L100004: ;
SOURCE(3715, 14)
         return(0);
         };
      };
   }

static word GetDeviceBitmap←P300(device←v5184)
   word device←v5184;
   {
   register ptr gf←c33496 =  (ptr) &globalframe;
   word var←c5228;
   word data←v7564;
   /* GetDeviceBitmap: */ 
SOURCE(3735, 138)
SOURCE(3818, 32)
   data←v7564 = XR←Narrow((* (( (ptr) device←v5184)+7) ), (* (( (ptr) gf←c33496)+22) ));
SOURCE(3852, 21)
   return((*  (ptr) data←v7564 ));
   }

static word SetDeviceBitmap←P360(device←v5288, bitmap←v5316)
   word device←v5288;
   word bitmap←v5316;
   {
   register ptr gf←c33528 =  (ptr) &globalframe;
   word clipperNeedsFixing←v5360;
   word data←v7608;
   W4 box←v7636;
   word clipper←v7664;
   /* SetDeviceBitmap: */ 
SOURCE(3877, 566)
SOURCE(3994, 32)
   data←v7608 = XR←Narrow((* (( (ptr) device←v5288)+7) ), (* (( (ptr) gf←c33528)+22) ));
SOURCE(4028, 70)
   {
      word tcp46;
      if ((bitmap←v5316 == 0)) {
         tcp46 = (word) (( (ptr) gf←c33528)+71);
         /* var←c31864 */ }
      else {
         tcp46 = (word) bitmap←v5316;
         };
      box←v7636 = (*  (W4Pt) tcp46 );
      };
SOURCE(4100, 63)
   clipper←v7664 = (* (( (ptr) device←v5288)+1) );
SOURCE(4165, 60)
   {
      word pd47;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c33528)+83)/* var←c32440 */  ))+21) );
      clipperNeedsFixing←v5360 =  (unsigned) (0 == (word) ( *( (fPt) ((*  (ptr) pd47 ))))(box←v7636, (*  (W4Pt) (( (ptr) (* (( (ptr) device←v5288)+6)
             ))+1) ), pd47));
      };
SOURCE(4227, 25)
   (*  (W4Pt) (( (ptr) (* (( (ptr) device←v5288)+6) ))+1) ) = box←v7636;
SOURCE(4254, 73)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c33528)+84)/* var←c32472 */  ))+26) );
      (* (( (ptr) clipper←v7664)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((* (( (ptr) clipper←v7664)+4) ), box←v7636, pd48)
      ;
      };
SOURCE(4329, 63)
   {
      word pd49;
      pd49 = (* (( (ptr) (* (( (ptr) gf←c33528)+84)/* var←c32472 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd49 ))))((word) clipper←v7664, (* (( (ptr) clipper←v7664)+4) ), pd49);
      };
SOURCE(4394, 20)
   (*  (ptr) data←v7608 ) = bitmap←v5316;
SOURCE(4416, 27)
   (void) ValidateAllow←P480(device←v5288, data←v7608);
SOURCE(3877, 566)
   return(clipperNeedsFixing←v5360);
   }

static word GetColorData←P420(device←v5420)
   word device←v5420;
   {
   register ptr gf←c33560 =  (ptr) &globalframe;
   word var←c5464;
   word data←v7708;
   /* GetColorData: */ 
SOURCE(4449, 154)
SOURCE(4539, 32)
   data←v7708 = XR←Narrow((* (( (ptr) device←v5420)+7) ), (* (( (ptr) gf←c33560)+22) ));
SOURCE(4573, 30)
   return((* (( (ptr) data←v7708)+1) ));
   }

static void ValidateAllow←P480(device←v5524, data←v5552)
   word device←v5524;
   word data←v5552;
   {
   word realRaster←v7752;
   /* ValidateAllow: */ 
SOURCE(4607, 446)
SOURCE(4660, 68)
   {
      word var←c32504;
      var←c32504 = (*  (ptr) data←v5552 );
      if ((var←c32504 == 0)) {
         realRaster←v7752 =  (unsigned) 1;
         }
      else {
         realRaster←v7752 =  (unsigned) ((* (( (ptr) var←c32504)+6) ) == 0);
         };
      };
SOURCE(4730, 323)
   (*  (ptr) (* (( (ptr) device←v5524)+6) ) ) = (((word) (((word) (((word) (((word)  (unsigned) ((* (( (ptr) (* (( (ptr) data←v5552)+1)
       ))+10) ) < 3) << 1) +  (unsigned) ((* (( (ptr) (* (( (ptr) data←v5552)+1) ))+10) ) < 3)) << 1) +  (unsigned)  ( ((* (( (ptr) (* (
         ( (ptr) data←v5552)+1) ))+10) ) == 1) ? (0 != realRaster←v7752) : 0 ) ) << 1) +  (unsigned) ((* (( (ptr) (* (( (ptr) data←v5552)+1)
       ))+10) ) == 1)) << 28) + ((word)  (unsigned)  ( ((* (( (ptr) (* (( (ptr) data←v5552)+1) ))+10) ) == 1) ? (0 != realRaster←v7752) : 0 )  << 27));
   }

static void SetColorData←P540(device←v5612, deviceColorData←v5640)
   word device←v5612;
   word deviceColorData←v5640;
   {
   register ptr gf←c33592 =  (ptr) &globalframe;
   word data←v7796;
   /* SetColorData: */ 
SOURCE(5059, 204)
SOURCE(5157, 32)
   data←v7796 = XR←Narrow((* (( (ptr) device←v5612)+7) ), (* (( (ptr) gf←c33592)+22) ));
SOURCE(5191, 43)
   (* (( (ptr) data←v7796)+1) ) = (* (( (ptr) data←v7796)+1) );
SOURCE(5236, 27)
   (void) ValidateAllow←P480(device←v5612, data←v7796);
   }

static void SetBitmap←P600(context←v5700, bitmap←v5728)
   word context←v5700;
   word bitmap←v5728;
   {
   register ptr gf←c33624 =  (ptr) &globalframe;
   word device←v7840;
   /* SetBitmap: */ 
SOURCE(5269, 255)
SOURCE(5354, 48)
   {
      word pd50;
      pd50 = (* (( (ptr) (* (( (ptr) gf←c33624)+76)/* var←c31992 */  ))+6) );
      device←v7840 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))(context←v5700, pd50);
      };
SOURCE(5404, 120)
   if ((0 != (word) SetDeviceBitmap←P360(device←v7840, bitmap←v5728))) {
SOURCE(5465, 59)
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) gf←c33624)+76)/* var←c31992 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd51 ))))(context←v5700, (*  (W4Pt) (( (ptr) (* (( (ptr) device←v7840)+6) ))+1) ), pd51);
         };
      };
   }

static void SetSeparation←P660(context←v5788, toner←v5816)
   word context←v5788;
   word toner←v5816;
   {
   register ptr gf←c33656 =  (ptr) &globalframe;
   word data←v7884;
   /* SetSeparation: */ 
SOURCE(5533, 200)
SOURCE(5615, 57)
   {
      word pd52;
      pd52 = (* (( (ptr) (* (( (ptr) gf←c33656)+76)/* var←c31992 */  ))+6) );
      data←v7884 = XR←Narrow((* (( (ptr) ( *( (fPt) ((*  (ptr) pd52 ))))(context←v5788, pd52))+7) ), (* (( (ptr) gf←c33656)+22)
          ));
      };
SOURCE(5674, 59)
   {
      word pd53;
      pd53 = (* (( (ptr) (* (( (ptr) gf←c33656)+78)/* var←c32152 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) data←v7884)+1) ), toner←v5816, pd53);
      };
   }

static void MySetColor←P720(device←v5876, color←v5904, viewToDevice←v5932)
   word device←v5876;
   word color←v5904;
   word viewToDevice←v5932;
   {
   register ptr gf←c33688 =  (ptr) &globalframe;
   word data←v7928;
   /* MySetColor: */ 
SOURCE(5739, 256)
SOURCE(5854, 32)
   data←v7928 = XR←Narrow((* (( (ptr) device←v5876)+7) ), (* (( (ptr) gf←c33688)+22) ));
SOURCE(5888, 78)
   {
      word pd54;
      pd54 = (* (( (ptr) (* (( (ptr) gf←c33688)+78)/* var←c32152 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) data←v7928)+1) ), color←v5904, viewToDevice←v5932, pd54);
      };
SOURCE(5968, 27)
   (void) ValidateAllow←P480(device←v5876, data←v7928);
   }

static word TranslateHalftoneProperties←P780(h←v5992)
   word h←v5992;
   {
   register ptr gf←c33720 =  (ptr) &globalframe;
   word var←c6036;
   /* TranslateHalftoneProperties: */ 
SOURCE(6001, 267)
SOURCE(6115, 153)
   if ((h←v5992 == 0)) {
      return(0);
      }
   else {
      {
         word var←c32600;
         word var←c32632;
         var←c32600 = (word) TranslateHalftoneProperties←P780((* ((( (ptr) h←v5992)+6)) ));
         var←c32632 = XR←NewObject(24, (* (( (ptr) gf←c33720)+19) ));
         (*  (ptr) var←c32632 ) = (*  (ptr) h←v5992 );
         (* (( (ptr) var←c32632)+1) ) = (* (( (ptr) h←v5992)+1) );
         (*  (W3Pt) (( (ptr) var←c32632)+2) ) = (*  (W3Pt) (( (ptr) h←v5992)+2) );
         (* (( (ptr) var←c32632)+5) ) = var←c32600;
         return(var←c32632);
         };
      };
   }

static void MySetHalftoneProperties←P840(device←v6096, halftoneProperties←v6124)
   word device←v6096;
   word halftoneProperties←v6124;
   {
   register ptr gf←c33752 =  (ptr) &globalframe;
   word data←v7972;
   /* MySetHalftoneProperties: */ 
SOURCE(6272, 308)
SOURCE(6375, 32)
   data←v7972 = XR←Narrow((* (( (ptr) device←v6096)+7) ), (* (( (ptr) gf←c33752)+22) ));
SOURCE(6409, 89)
   (* (( (ptr) (* (( (ptr) data←v7972)+1) ))+1) ) = (word) TranslateHalftoneProperties←P780(halftoneProperties←v6124);
SOURCE(6500, 80)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c33752)+78)/* var←c32152 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) data←v7972)+1) ), (* (( (ptr) (* (( (ptr) data←v7972)+1) ))+5) ), pd55)
      ;
      };
   }

static void MyMaskBoxes←P900(device←v6184, bounds←v6212, boxes←v6240)
   word device←v6184;
   W4 bounds←v6212;
   word boxes←v6240;
   {
   register ptr gf←c33784 =  (ptr) &globalframe;
   word data←v8016;
   /* MyMaskBoxes: */ 
SOURCE(6620, 189)
SOURCE(6699, 32)
   data←v8016 = XR←Narrow((* (( (ptr) device←v6184)+7) ), (* (( (ptr) gf←c33784)+22) ));
SOURCE(6733, 76)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c33784)+78)/* var←c32152 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd56 ))))((*  (ptr) data←v8016 ), (* (( (ptr) data←v8016)+1) ), bounds←v6212, boxes←v6240, pd56)
      ;
      };
   }

static void MyMaskBitmap←P960(device←v6300, bitmap←v6328, delta←v6356, bounds←v6384, boxes←v6412)
   word device←v6300;
   word bitmap←v6328;
   W2 delta←v6356;
   W4 bounds←v6384;
   word boxes←v6412;
   {
   register ptr gf←c33816 =  (ptr) &globalframe;
   word data←v8060;
   word function←v8088 = 0;
   /* MyMaskBitmap: */ 
SOURCE(6815, 506)
SOURCE(6942, 32)
   data←v8060 = XR←Narrow((* (( (ptr) device←v6300)+7) ), (* (( (ptr) gf←c33816)+22) ));
SOURCE(7024, 45)
   if (((* (( (ptr) (* (( (ptr) data←v8060)+1) ))+10) ) != 1)) {
SOURCE(7069, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(7076, 120)
   {
      word var←c32664;
      var←c32664 = (* (( (ptr) (* (( (ptr) data←v8060)+1) ))+11) );
      switch (var←c32664) {
         case 0: 
SOURCE(7120, 6)
            return;
         case 2: 
SOURCE(7135, 21)
            function←v8088 = 4;
            break;
         case 1: 
SOURCE(7168, 28)
            function←v8088 = 3;
            break;
         default: 
SOURCE(7209, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(7216, 105)
   {
      word pd57;
      pd57 = (* (( (ptr) (* (( (ptr) gf←c33816)+85)/* var←c32696 */  ))+57) );
      (void) ( *( (fPt) ((*  (ptr) pd57 ))))((*  (ptr) data←v8060 ), bitmap←v6328, delta←v6356, boxes←v6412, function←v8088, pd57)
      ;
      };
   }

static void MyMaskRegion←P1020(device←v6472, bounds←v6500, edgeGenerator←v6528)
   word device←v6472;
   W4 bounds←v6500;
   word edgeGenerator←v6528;
   {
   register ptr gf←c33848 =  (ptr) &globalframe;
   word data←v8132;
   word value←v8160 = 1;
   /* MyMaskRegion: */ 
SOURCE(7327, 436)
SOURCE(7430, 32)
   data←v8132 = XR←Narrow((* (( (ptr) device←v6472)+7) ), (* (( (ptr) gf←c33848)+22) ));
SOURCE(7485, 45)
   if (((* (( (ptr) (* (( (ptr) data←v8132)+1) ))+10) ) != 1)) {
SOURCE(7530, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(7537, 89)
   {
      word var←c32728;
      var←c32728 = (* (( (ptr) (* (( (ptr) data←v8132)+1) ))+11) );
      switch (var←c32728) {
         case 0: 
SOURCE(7581, 6)
            return;
         case 2: 
SOURCE(7596, 9)
            value←v8160 = 1;
            break;
         case 1: 
SOURCE(7617, 9)
            value←v8160 = 0;
            break;
         default: 
SOURCE(7639, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(7646, 117)
   {
      word var←c32760;
      {
         word var←c32792;
         var←c32792 = (*  (ptr) data←v8132 );
         if ((var←c32792 == 0)) {
            goto lab←L100005;
            };
         if (((* (( (ptr) var←c32792)+6) ) == 0)) {
            goto lab←L100005;
            };
         (void) XR←RaiseError(XR←NarrowFault, 0);
         lab←L100005: ;
         var←c32760 = var←c32792;
         };
      {
         word pd58;
         pd58 = (* (( (ptr) (* (( (ptr) gf←c33848)+85)/* var←c32696 */  ))+59) );
         (void) ( *( (fPt) ((*  (ptr) pd58 ))))(var←c32760, edgeGenerator←v6528, value←v8160, 0, pd58);
         };
      };
   }

static void MyMaskRawBitmaps←P1080(device←v6648, list←v6676)
   word device←v6648;
   word list←v6676;
   {
   register ptr gf←c33880 =  (ptr) &globalframe;
   word data←v8204;
   word function←v8232 = 0;
   /* MyMaskRawBitmaps: */ 
SOURCE(7769, 445)
SOURCE(7855, 32)
   data←v8204 = XR←Narrow((* (( (ptr) device←v6648)+7) ), (* (( (ptr) gf←c33880)+22) ));
SOURCE(7937, 45)
   if (((* (( (ptr) (* (( (ptr) data←v8204)+1) ))+10) ) != 1)) {
SOURCE(7982, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(7989, 120)
   {
      word var←c32824;
      var←c32824 = (* (( (ptr) (* (( (ptr) data←v8204)+1) ))+11) );
      switch (var←c32824) {
         case 0: 
SOURCE(8033, 6)
            return;
         case 2: 
SOURCE(8048, 21)
            function←v8232 = 4;
            break;
         case 1: 
SOURCE(8081, 28)
            function←v8232 = 3;
            break;
         default: 
SOURCE(8122, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(8129, 85)
   {
      word var←c32856;
      {
         word var←c32888;
         var←c32888 = (*  (ptr) data←v8204 );
         if ((var←c32888 == 0)) {
            goto lab←L100006;
            };
         if (((* (( (ptr) var←c32888)+6) ) == 0)) {
            goto lab←L100006;
            };
         (void) XR←RaiseError(XR←NarrowFault, 0);
         lab←L100006: ;
         var←c32856 = var←c32888;
         };
      {
         word pd59;
         pd59 = (* (( (ptr) (* (( (ptr) gf←c33880)+85)/* var←c32696 */  ))+53) );
         (void) ( *( (fPt) ((*  (ptr) pd59 ))))(var←c32856, list←v6676, function←v8232, pd59);
         };
      };
   }

static void WMaskPixelArray←P1200(device←v7008, bitmap←v7036, clientToDevice←v7064)
   word device←v7008;
   word bitmap←v7036;
   word clientToDevice←v7064;
   {
   register ptr gf←c33912 =  (ptr) &globalframe;
   word clip←v8388;
   word maskToDevice←v8416;
   word form←v8444;
   word integerTrans←v8472;
   word s0←v8500;
   word f0←v8528;
   /* WMaskPixelArray: */ 
SOURCE(8414, 1245)
SOURCE(8509, 6)
   {
      word b←v8276;
      b←v8276 = (* (( (ptr) (* (( (ptr) device←v7008)+1) ))+4) );
SOURCE(8349, 59)
      if ((b←v8276 == 0) || ((* (( (ptr) b←v8276)+4) ) == 0)) {
SOURCE(8381, 15)
         clip←v8388 = b←v8276;
         }
      else {
SOURCE(8396, 12)
         clip←v8388 = 0;
         };
      };
SOURCE(8555, 84)
   {
      word pd60;
      pd60 = (* (( (ptr) (* (( (ptr) gf←c33912)+86)/* var←c32952 */  ))+13) );
      maskToDevice←v8416 = (word) ( *( (fPt) ((*  (ptr) pd60 ))))((* (( (ptr) bitmap←v7036)+4) ), clientToDevice←v7064, pd60);
      };
SOURCE(8641, 29)
   form←v8444 = (* (( (ptr) maskToDevice←v8416)+9) );
SOURCE(8672, 46)
   integerTrans←v8472 = (* (( (ptr) maskToDevice←v8416)+8) );
SOURCE(8720, 25)
   s0←v8500 = (* (( (ptr) maskToDevice←v8416)+6) );
SOURCE(8747, 25)
   f0←v8528 = (* (( (ptr) maskToDevice←v8416)+7) );
SOURCE(8774, 42)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c33912)+86)/* var←c32952 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd61 ))))(maskToDevice←v8416, pd61);
      };
SOURCE(8818, 18)
   maskToDevice←v8416 = 0;
SOURCE(8838, 738)
   if ( (  ( ( (int)form←v8444 ==  (int)3) ? (0 != integerTrans←v8472) : 0 )  ? (clip←v8388 != 0) : 0 ) ) {
SOURCE(8887, 697)
      {
         word data←v8656;
SOURCE(8889, 32)
         data←v8656 = XR←Narrow((* (( (ptr) device←v7008)+7) ), (* (( (ptr) gf←c33912)+22) ));
SOURCE(8923, 653)
         if (((* (( (ptr) (* (( (ptr) data←v8656)+1) ))+10) ) == 1)) {
SOURCE(8968, 613)
            {
               word function←v8700 = 0;
SOURCE(9018, 120)
               {
                  word var←c32984;
                  var←c32984 = (* (( (ptr) (* (( (ptr) data←v8656)+1) ))+11) );
                  switch (var←c32984) {
                     case 0: 
SOURCE(9062, 6)
                        return;
                     case 2: 
SOURCE(9077, 21)
                        function←v8700 = 4;
                        break;
                     case 1: 
SOURCE(9110, 28)
                        function←v8700 = 3;
                        break;
                     };
                  };
SOURCE(9149, 427)
               if ((function←v8700 != 0)) {
SOURCE(9181, 397)
                  {
                     word sMin←v8744;
                     word fMin←v8772;
                     word sMax←v8800;
                     word fMax←v8828;
SOURCE(9183, 37)
                     {
                        word x62;
                        sMin←v8744 = (x62 = (*  (ptr) clip←v8388 ),
                           MAX((int)(word), x62, s0←v8500));
                        };
SOURCE(9222, 37)
                     {
                        word x63;
                        fMin←v8772 = (x63 = (* (( (ptr) clip←v8388)+1) ),
                           MAX((int)(word), x63, f0←v8528));
                        };
SOURCE(9261, 52)
                     {
                        word x64;
                        word x65;
                        sMax←v8800 = (x64 = (* (( (ptr) clip←v8388)+2) ),
                           x65 = (s0←v8500 + (* (( (ptr) bitmap←v7036)+2) )),
                           MIN((int)(word), x64, x65));
                        };
SOURCE(9315, 52)
                     {
                        word x66;
                        word x67;
                        fMax←v8828 = (x66 = (* (( (ptr) clip←v8388)+3) ),
                           x67 = (f0←v8528 + (* (( (ptr) bitmap←v7036)+3) )),
                           MIN((int)(word), x66, x67));
                        };
SOURCE(9369, 196)
                     if ( ( ( (int)sMin←v8744 <  (int)sMax←v8800) ? ( (int)fMin←v8772 <  (int)fMax←v8828) : 0 ) ) {
SOURCE(9407, 158)
                        {
                           W2 var←c33016;
                           W2 var←c33048;
                           var←c33016.f0 = sMin←v8744;
                           var←c33016.f1 = fMin←v8772;
                           var←c33048.f0 = (sMax←v8800 - sMin←v8744);
                           var←c33048.f1 = (fMax←v8828 - fMin←v8772);
                           {
/*1*/   word pd68;
/*1*/   pd68 = (* (( (ptr) (* (( (ptr) gf←c33912)+87)/* var←c33080 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd68 ))))(bitmap←v7036, 0, (sMin←v8744 - s0←v8500), (fMin←v8772 - f0←v8528), (*  (ptr) data←v8656 ), var←c33016
/*1*/      , var←c33048, function←v8700, pd68);
/*1*/   };
                           };
                        };
SOURCE(9570, 6)
                     return;
                     };
                  };
               };
            };
         };
      };
SOURCE(9587, 72)
   {
      word pd69;
      pd69 = (* (( (ptr) (* (( (ptr) gf←c33912)+75)/* var←c31960 */  ))+23) );
      (void) ( *( (fPt) ((*  (ptr) pd69 ))))(device←v7008, bitmap←v7036, clientToDevice←v7064, pd69);
      };
   }

static void SetMaskCacheTradeoffs←P1260(fontCacheName←v7124)
   word fontCacheName←v7124;
   {
   W7 var←c33944;
   register ptr gf←c33976 =  (ptr) &globalframe;
   /* declaration of var←c33112 skipped */ 
   word x←v8872;
   /* declaration of changed←v8900 skipped */ 
   /* SetMaskCacheTradeoffs: */ 
SOURCE(10604, 598)
   {
      word tmpAddr70;
      tmpAddr70 = (word) (( (ptr) &var←c33944)+4)/* var←c33112 */ ;
      (*  (ptr) tmpAddr70 ) = ( ((word)  (fPt) Action←P1668) );
      (* (( (ptr) tmpAddr70) + 1) ) = 1;
      };
SOURCE(10665, 75)
   {
      word pd71;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c33976)+79)/* var←c32248 */  ))+20) );
      x←v8872 = (word) ( *( (fPt) ((*  (ptr) pd71 ))))(fontCacheName←v7124, pd71);
      };
SOURCE(10742, 21)
   var←c33944.f6/* changed←v8900 */  = 0;
SOURCE(11117, 43)
   {
      word pd72;
      pd72 = (* (( (ptr) (* (( (ptr) gf←c33976)+79)/* var←c32248 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd72 ))))(x←v8872, (word) (( (bPt) &var←c33944)+16)/* var←c33112 */ , pd72);
      };
SOURCE(11162, 40)
   if ((0 != var←c33944.f6/* changed←v8900 */ )) {
SOURCE(11178, 24)
      {
         word pd73;
         pd73 = (* (( (ptr) (* (( (ptr) gf←c33976)+79)/* var←c32248 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd73 ))))(x←v8872, pd73);
         };
      };
   }

static void Action←P1668(p←v9164, formal←c34008)
   word p←v9164;
   word formal←c34008;
   {
   formal←c34008 = (formal←c34008 - 16);
   /* Action: */ 
SOURCE(10873, 239)
SOURCE(10922, 47)
   {
      word var←c33144;
      word from←v31020;
      from←v31020 = (* (( (ptr) p←v9164)+2) );
SOURCE(10824, 32)
      {
         word x74;
         word x76;
         if (((
            x74 = from←v31020,  *(float*)&x74
            ) != (
            x76 = (*  (ptr) &fc75 ),  *(float*)&x76
            ))) {
SOURCE(10842, 14)
            (* (( (ptr) formal←c34008)+6) ) = 1;
            };
         };
SOURCE(10858, 12)
      var←c33144 = (*  (ptr) &fc75 );
      (* (( (ptr) p←v9164)+2) ) = var←c33144;
      };
SOURCE(10971, 49)
   {
      word var←c33176;
      word from←v30944;
      from←v30944 = (* (( (ptr) p←v9164)+3) );
SOURCE(10824, 32)
      {
         word x77;
         word x79;
         if (((
            x77 = from←v30944,  *(float*)&x77
            ) != (
            x79 = (*  (ptr) &fc78 ),  *(float*)&x79
            ))) {
SOURCE(10842, 14)
            (* (( (ptr) formal←c34008)+6) ) = 1;
            };
         };
SOURCE(10858, 12)
      var←c33176 = (*  (ptr) &fc78 );
      (* (( (ptr) p←v9164)+3) ) = var←c33176;
      };
SOURCE(11022, 43)
   {
      word var←c33208;
      word from←v30868;
      from←v30868 = (* (( (ptr) p←v9164)+4) );
SOURCE(10824, 32)
      {
         word x80;
         word x82;
         if (((
            x80 = from←v30868,  *(float*)&x80
            ) != (
            x82 = (*  (ptr) &fc81 ),  *(float*)&x82
            ))) {
SOURCE(10842, 14)
            (* (( (ptr) formal←c34008)+6) ) = 1;
            };
         };
SOURCE(10858, 12)
      var←c33208 = (*  (ptr) &fc81 );
      (* (( (ptr) p←v9164)+4) ) = var←c33208;
      };
SOURCE(11067, 45)
   {
      word var←c33240;
      word from←v30792;
      from←v30792 = (* (( (ptr) p←v9164)+5) );
SOURCE(10824, 32)
      {
         word x83;
         word x85;
         if (((
            x83 = from←v30792,  *(float*)&x83
            ) != (
            x85 = (*  (ptr) &fc84 ),  *(float*)&x85
            ))) {
SOURCE(10842, 14)
            (* (( (ptr) formal←c34008)+6) ) = 1;
            };
         };
SOURCE(10858, 12)
      var←c33240 = (*  (ptr) &fc84 );
      (* (( (ptr) p←v9164)+5) ) = var←c33240;
      };
   }

/* file: ImagerPrintContextImpl, module: ImagerPrintContextImpl, compiled at: October 28, 1993 1:28:50 pm PDT */ 
extern void XR←install←ImagerPrintContextImpl() {
   NoName←Q2028();
   }
extern void XR←run←ImagerPrintContextImpl() { XR←Start(&globalframe); }