ImagerandInterpressinterfacesasofFebruary13,1985Vector23ImagerTransformation5ImagerFont9ImagerPath12ImagerPixelArray15ImagerColor17Imager20ImagerOps27ImagerPD28ImagerTypeface29ImagerFontPrivate30ImagerPixelArrayPrivate31ImagerColorPrivate32ImagerColorOperatorPrivate33ImagerPrivate34ImagerState35Prop40AISFileFormat41StrikeFontFormat44PrePressFontFormat46PDFileFormat50PDFileWriter54PDFileReader57ImagerPixelMap60ImagerFrameBuffer64ImagerManhattan65ImagerScanConverter67ImagerStroke69ImagerPixelRow70ImagerSampler72ImagerDevice74pï^õî gîüî" îÈ qï[¦î gî îÃî‹îÈrïUÛîxïUÛî#$ïS`îxïS`î#$ïPåîx ïPåî#$ïNiîx ïNiî#$ïKîîxïKîî#$ïIsîx ïIsî#$ïF÷îxïF÷î#$ïD|îxïD|î#$ïBîxïBî#$ï?…îx ï?…î#$ï= îxï= î#$ï:Žîxï:Žî#$ï8îxï8î#$ï5˜îxï5˜î#$ï3îx ï3î#$ï0¡îx ï0¡î#$ï.&îxï.&î#$ï+ªîx ï+ªî#$ï)/îxï)/î#$ï&³îxï&³î#$ï$8îx ï$8î#$ï!½îx ï!½î#$ïAîx ïAî#$ïÆîx ïÆî#$ïKîxïKî#$ïÏîxïÏî#$ïTîxïTî#$ïÙîx ïÙî#$ï]îx ï]î#$ï âîx ï âî#$ï fîx ï fî#$ÿTVm$ü2ImagerPDDevice76ImagerRasterPrivate77ImagerMaskCache79IPMaster84Interpress94RealExtras95ShortRational96IPInterpreter97IPBase104IPImage106IPImager109index111******************************************************sïg/îEÉrï_7îx ï_7î#$ï\¼îxï\¼î#$ïZAîxïZAî#$ïWÆîxïWÆî#$ïUKîx ïUKî#$ïRÐîx ïRÐî#$ïPUîx ïPUî#$ïMÚîx ïMÚî#$ïK_îxïK_î#$ïHäîxïHäî#$ïFiîxïFiî#$ïCîîxïCîî#$ï ìî gð6ÿÓTVm$i3Vector2.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,February1,19852:01:50pmPSTThisinterfacedefinesatwodimensionalvectortype,andseveralusefulvectoroperations.Vector2:CEDARDEFINITIONS~BEGINVEC:TYPE~MACHINEDEPENDENTRECORD[x,y:REAL];Add:PROC[v1,v2:VEC]RETURNS[VEC];InlineAdd:PROC[v1,v2:VEC]RETURNS[VEC]~INLINE{RETURN[[v1.x+v2.x,v1.y+v2.y]]};Sum,v1+v2.Sub:PROC[v1,v2:VEC]RETURNS[VEC];InlineSub:PROC[v1,v2:VEC]RETURNS[VEC]~INLINE{RETURN[[v1.x-v2.x,v1.y-v2.y]]};Difference,v1-v2.Neg:PROC[v:VEC]RETURNS[VEC];InlineNeg:PROC[v:VEC]RETURNS[VEC]~INLINE{RETURN[[-v.x,-v.y]]};Negative,-v.Mul:PROC[v:VEC,s:REAL]RETURNS[VEC];InlineMul:PROC[v:VEC,s:REAL]RETURNS[VEC]~INLINE{RETURN[[v.x*s,v.y*s]]};Multiplicationbyascalar,sv.Div:PROC[v:VEC,s:REAL]RETURNS[VEC];InlineDiv:PROC[v:VEC,s:REAL]RETURNS[VEC]~INLINE{RETURN[[v.x/s,v.y/s]]};Divisionbyascalar,v/s.MulC:PROC[v1,v2:VEC]RETURNS[VEC];InlineMulC:PROC[v1,v2:VEC]RETURNS[VEC]~INLINE{RETURN[[v1.x*v2.x,v1.y*v2.y]]};Componentwisemultiplication.DivC:PROC[v1,v2:VEC]RETURNS[VEC];InlineDivC:PROC[v1,v2:VEC]RETURNS[VEC]~INLINE{RETURN[[v1.x/v2.x,v1.y/v2.y]]};Componentwisedivision.Dot:PROC[v1,v2:VEC]RETURNS[REAL];InlineDot:PROC[v1,v2:VEC]RETURNS[REAL]~INLINE{RETURN[v1.x*v2.x+v1.y*v2.y]};Dot(inner)product,v19v2=|v1||v2|cos(theta).Cross:PROC[v1,v2:VEC]RETURNS[REAL];InlineCross:PROC[v1,v2:VEC]RETURNS[REAL]~INLINE{RETURN[v1.x*v2.y-v1.y*v2.x]};Magnitudeofcross(outer)product,|v1Xv2|=|v1||v2|sin(theta).Square:PROC[v:VEC]RETURNS[REAL];InlineSquare:PROC[v:VEC]RETURNS[REAL]~INLINE{RETURN[v.x*v.x+v.y*v.y]};Square,v9v=|v||v|.Length:PROC[v:VEC]RETURNS[REAL];sïg/îEÉqï_:îx ï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²îyî î#Lî(5î*€ïXœîxîˆîî‘îÆîR î&Ãî*½î-úî0žî5î8þî<ø tïUMîxuîïUMïUMîÝïUMî¨ tïS¥îxuîïS¥ïS¥î¾ïPVîxtîÇïPVïPVuîÅïPVïPVî~tïPVî6uîÃïPVïPVîÕïPVîéïPVî$–tî)„ïPVïPVî)çî+tuî-"ïPVïPVî-ötî0<ïPVïPVî0ŸvïMîxtîÌïMïMuîÊïMïMîqtîíïMïMîPî�uîëïMïMî¶tî:ïMïMuî"ïMïMîötî"©ïMuïMî# tî%[ïMïMî%¾vïK`îxtî2ïK`ïK`uî0ïK`ïK`î×tîSïK`ïK`î¶îóuîQïK`ïK`îtî ïK`ïK`uî ˆïK`ïK`î!\tî&ïK`uïK`î&rtî(ÁïK`ïK`î)©uî+5ïK`ïK`î+ŸtïK`î/Ñuî1ïK`ïK`î1Ùtî5îïK`ïK`î6Q î=à îE?qïI¸î‰îvïFiîxtîÀïFiïFiuî¾ïFiïFiîftîáïFiïFiîDî�uîàïFiïFiî«tî/ïFiïFiuîïFiïFiîêtî"�ïFiuïFiî#tî%PïFiïFiî%³vïDÁîxtî&ïDÁïDÁuî$ïDÁïDÁîÌtîGïDÁïDÁîªîçuîFïDÁïDÁîtî•ïDÁïDÁuî |ïDÁïDÁî!Ptî&ïDÁuïDÁî&gtî(¶ïDÁïDÁî)�uî+*ïDÁïDÁî+”tïDÁî/Åuî0úïDÁïDÁî1Îtî5âïDÁïDÁî6E î<Ï îCeqïCî‰ îhvï?Ëîxtîâï?Ëï?Ëuîßï?Ëï?Ëî‡tîï?Ëï?Ëîeuîï?Ëï?ËîÞtîbï?Ëï?ËuîJï?Ëï?ËîtîÑï?Ëuï?Ëî 4tî"ƒï?Ëï?Ëî"ævï>#îxtîGï>#ï>#uîEï>#ï>#îítîhï>#ï>#îËuîyï>#ï>#îDtîÈï>#ï>#uî°ï>#ï>#î„tî#7ï>#uï>#î#štî%éï>#ï>#î&Ðuî(]ï>#ï>#î(Çtï>#î,ùuî.-ï>#ï>#î/tî3ï>#ï>#î3yî6êî:fqï<|î‰î~vï9-îxtî÷ï9-ï9-uîõï9-ï9-î�tîï9-ï9-î{uî)ï9-ï9-îôtîxï9-ï9-îUuî×ï9-ï9-îªtîðï9-ï9-uîØï9-ï9-î ¬tî%_ï9-uï9-î%Âtî(ï9-ï9-î(tvï7…îxtî]ï7…ï7…uî[ï7…ï7…îtî~ï7…ï7…îáuî�ï7…ï7…îZtîÞï7…ï7…î»uî<ï7…ï7…î tî"Vï7…ï7…uî#>ï7…ï7…î$tî(Åï7…uï7…î)(tî+wï7…ï7…î,^uî-ëï7…ï7…î.Utï7…î2‡uî3»ï7…ï7…î4�tî8£ï7…ï7…î9î=3îAkqï5Þî‰ îYî3îhî ¬vï2�îxtî‰ï2�ï2�uî‡ï2�ï2�î/tîªï2�ï2�î uî»ï2�ï2�î†tî ï2�ï2�îçuîhï2�ï2�î<tî‚ï2�ï2�uîjï2�ï2�î =tî$ñï2�uï2�î%Ttî'£ï2�ï2�î(vï0çîxtîïï0çï0çuîíï0çï0çî•tîï0çï0çîsuî!ï0çï0çîìtîpï0çï0çîLuîÎï0çï0çî¢tî!èï0çï0çuî"Ïï0çï0çî#£tî(Wï0çuï0çî(ºtî+ ï0çï0çî+ðuî-}ï0çï0çî-çtï0çî2uî3Mï0çï0çî4!tî85ï0çï0çî8™î<Åî@ýqï/@î‰îÙî³îçî+vï+ðîxtîêï+ðï+ðuîèï+ðï+ðî�tî ï+ðï+ðînî«uî ï+ðï+ðîÕtîYï+ðï+ðuî@ï+ðï+ðîtî#Èï+ðuï+ðî$+tî&zï+ðï+ðî&Ývï*Iîx tîPï*Iï*IuîNï*Iï*Iîötîqï*Iï*IîÔîuîpï*Iï*Iî;tî ¿ï*Iï*Iuî!¦ï*Iï*Iî"ztî'.ï*Iuï*Iî'‘tî)àï*Iï*Iî*Çuî,Tï*Iï*Iî,¾tï*Iî0ïuî2$ï*Iï*Iî2øtî7 ï*Iï*Iî7o î>1 îDýqï(¡î‰ î$vï%Rîxtî|ï%Rï%Ruîzï%Rï%Rî"tî�ï%Rï%Rîî=uîœï%Rï%Rîgtîëï%Rï%RuîÒï%Rï%Rî¦tî#Zï%Ruï%Rî#½tî& ï%Rï%Rî&ovï#«îx tîâï#«ï#«uîàï#«ï#«îˆtîï#«ï#«îfî£uîï#«ï#«îÍtî Qï#«ï#«uî!8ï#«ï#«î" tî&¿ï#«uï#«î'#tî)rï#«ï#«î*Yuî+æï#«ï#«î,Ptï#«î0�uî1¶ï#«ï#«î2Štî6žï#«ï#«î7 î=à îD�qï"î‰ î$vï´îxtîÀï´ï´uî¾ï´ï´îftîáï´ï´îDî�uîàï´ï´î«tî/ï´ï´uîï´ï´îêtî"�ï´uï´î#tî&ï´ï´î&}vï îxtî&ï ï uî$ï ï îÌtîGï ï îªîçuîFï ï îtî•ï ï uî |ï ï î!Ptî&ï uï î&gtî)€ï ï î*huî+ôï ï î,^tï î0�uî1Äï ï î2˜tî6­ï ï î7îD[qïeî‰îBî¸îòwî=ïeqïeîÝî ¬î"‘î%î'‘ vïîxtîÉïïuîÇïïîotîêïïîMîŠuîéïïî´tî8ïïuîïïîótî#¦ïuïî$ tî'#ïïî'†vïoîx tî/ïoïouî-ïoïoîÕtîPïoïoî³îðuîOïoïoîtî žïoïouî!…ïoïoî"Ytî' ïouïoî'ptî*‰ïoïoî+quî,ýïoïoî-gtïoî1™uî2Íïoïoî3¡tî7¶ïoïoî8îD}qïÇî‰î]îî]î Ðî& wî'­ïÇqïÇî(ûî+#î-î/ˆî2 vïxîxtîšïxïxuî˜ïxïxî@tî»ïxïxîuîÌïxïxî—tîïxïxuîïxïxî×tî!Šïxuïxî!ítî%ïxïxî%jvïÐîx tîïÐïÐuîþïÐïÐî¦tî!ïÐïÐî„uî2ïÐïÐîýtî�ïÐïÐuîiïÐïÐî =tî$ðïÐuïÐî%Stî(mïÐïÐî)Tuî*áïÐïÐî+KtïÐî/|uî0±ïÐïÐî1…tî5™ïÐïÐî5üî@†qï)î‰îwîï)qï)îºîÙî¾vï Úîxtî¥ï Úï Úuî£ï Úï ÚîJtîÆï Úï Úî)uî×ï Úï Úî¢tî&ï Úï Úuî ï Úï Úîátî!•ï Úuï Úî!øtî%ï Úï Úî%tGTVm$¢4Length(magnitude),|v|=SqRt[v9v].Unit:PROC[v:VEC]RETURNS[VEC];Unitvector,v/|v|.END.******************************************************sïg/îEÉqï_,î‰î7 îîçî Ìwî$Ïï_,qï_,î%ovï[Ýîxtî#ï[Ýï[Ýuî!ï[Ýï[ÝîÈtîDï[Ýï[Ýî§uîUï[Ýï[Ýî tî¤ï[Ýï[Ýuî‹ï[Ýï[Ýî_tî ï[Ýuï[Ýî vtî"Åï[Ýï[Ýî#(qïZ6î‰î³îuïVçîxtîïVçïVçrï ìî gð6ÿ‰TVm$w5ImagerTransformation.mesaCopyright(C)1983,1984,1985byXeroxCorporation.Allrightsreserved.FrankCrow,July31,19833:28pmMichaelPlass,February7,198410:44:55amPSTDougWyatt,February1,19852:13:45pmPSTDIRECTORYVector2USING[VEC];ImagerTransformation:CEDARDEFINITIONS~BEGINCreatingtransformationsVEC:TYPE~Vector2.VEC;Transformation:TYPE~REFTransformationRep;TransformationRep:TYPE~RECORD[a,b,c,d,e,f:REAL,tx,ty:INTEGER_0,integerTrans:BOOL_FALSE,--(tx=cANDty=f)form:NAT_0--identifiesspecialformsofa,b,d,e];Atwo-dimensionalaffinetransformation.Representsthe3by3matrix:ad0be0cf1Thevaluesofa,b,c,d,e,farealwayscorrect.Otherfieldsareperformanceaccelerators.Create:PROC[a,b,c,d,e,f:REAL]RETURNS[Transformation];Createsanewtransformation:ad0be0cf1Copy:PROC[m:Transformation]RETURNS[Transformation];Returnsacopyofm.Scale:PROC[s:REAL]RETURNS[Transformation];Createsatransformationwhichscalesbys:s000s0001Scale2:PROC[s:VEC]RETURNS[Transformation];Createsatransformationwhichscalesxbys.x,ybys.y:s.x000s.y0001Rotate:PROC[r:REAL]RETURNS[Transformation];sïg/îEÉqï_,îxï]„îxîÅî:îØîvî!¼î#–î'® î0î2aî6/ï[Ýî‰î¤îšîî¼î!î$ïZ5î‰îËî«îrî ÿî$Eî)Þî,)ïXŽî‰î?î²îyî î#Lî(5î*€uïU?îxtïS—î‰uîªïS—ïS—î�tïS—îôuîWïS—ïS—î"tî¦ïS—ïS—î ïPHîxuîÜïPHïPHî¦ïPHî!q tïN¡îxuîïN¡ïN¡î¾vïKRî gîuïHîxtîÇïHïHuîÅïHïHî~tïHî6îÃuî·ïHïHî‚tîïHïHïD´îxuî®ïD´ïD´îgtïD´îuî¬ïD´ïD´î€tïD´î wïC îxuî#ïC ïC îÜtïC î•uî "ïC ïC î ötî%ïC ïC ïAeî‰î î¯î&îÊîKuîÂïAeïAeî–tîÜïAeïAeï?½î‰î…uî¢ï?½ï?½î tï?½îfîóï>î‰ uîûï>ï>î´tï>î«uî7ï>ï>îñtî!Õï>ï>qî"²ï>ï>î#+î$)xî(Yï>ï>î)$qï>î+atïïVæïVæî¡uî ïVæïVæîØtî\ïVæïVæuîDïVæïVæîtî"ËïVæïVæî#.qïU?î‰îjîŸ î·î#š î)©î+ƒî-ïïS—î\ïS—îïS—î ÝïQðî\ïQðîïQðî ÝïPHî\ïPHîïPHî ÝvïKRî gîJïHîxtî±ïHïHuî®ïHïHîVtîÑïHïHî4î;îÿuî%ïHïHî%òtî*¦ïHïHî+ qïF[î‰îšîæîOî!1ïD´î\ïD´î ÝïD´î0^ïC î\ïC î ÝïC î0^ïAeî\ïAeî ÝïAeî0^vï>îxtî•ï>ï>uî“ï>ï>î:tî¶ï>ï>îîÏî†î=î  î)Ñuî+^ï>ï>î,Ftî-iï>ï>uî.Qï>ï>î/$tî3Øï>ï>î4;qïrvï6îx tîêï6ï6uîèï6ï6î�tî ï6ï6înî•î'ªuî)Xï6ï6î*#tî+§ï6uï6î,ttî1ûï6uï6î2^tî4­ï6ï6î5qï �î‰îGîØî%Sî'8î-î2î3óvï @îxtîäï @ï @uîâï @ï @îŠtîï @ï @îhî�î)¤uî+Rï @ï @î,tî-¡ï @ï @uî.ˆï @ï @î/\tî4ï @uï @î4stî6Âï @ï @î7%ÿ¯TVm$í8EquivalenttoTransform[Invert[m],v].InverseTransformVec:PROC[m:Transformation,v:VEC]RETURNS[VEC];EquivalenttoTransformVec[Invert[m],v].DRound:PROC[v:VEC]RETURNS[VEC];Roundsbothcomponentsofvtointegers.RoundXY:PROC[m:Transformation,v:VEC]RETURNS[VEC];EquivalenttoInverseTransform[m,DRound[Transform[m,v]]].RoundXYVec:PROC[m:Transformation,v:VEC]RETURNS[VEC];EquivalenttoInverseTransformVec[m,DRound[TransformVec[m,v]]].OtheroperationsFactoredTransformation:TYPE~RECORD[r1:REAL,s:VEC,r2:REAL,t:VEC];RepresentsCat[Rotate[r1],Scale2[s],Rotate[r2],Translate[t]].Factor:PROC[m:Transformation]RETURNS[f:FactoredTransformation];Returnsfsuchthatm=Cat[Rotate[f.r1],Scale2[f.s],Rotate[f.r2],Translate[f.t]].Invert:PROC[m:Transformation]RETURNS[Transformation];Returnsm'sinverse.CloseEnough:PROC[s,t:Transformation,rangeSize:REAL_2000.0]RETURNS[BOOL];ReturnsTRUEifforallpointspsuchthatTransform[p,s]isin[0,0,rangeSize,rangeSize],Transform[p,s]andTransform[p,t]differbyatmost1/4pixel.CloseToTranslation:PROC[s,t:Transformation,rangeSize:REAL_2000.0]RETURNS[BOOL];ReturnsTRUEifforallpointspsuchthatTransformVec[p,s]isin[0,0,rangeSize,rangeSize],TransformVec[p,s]andTransformVec[p,t]differbyatmost1/4pixel.SingularValues:PROC[m:Transformation]RETURNS[VEC];Returnsthesingularvaluesofthenon-translationportionofm.ThesearethesquarerootsoftheeigenvaluesofthesymmetricmatrixMMT,whereMisthenon-translationportion.Thexcomponentisthelargerofthetwo.Thesecorrespondtothemaximumandminimummagnitudesthattheimageofaunitvectorcanachieve.END.******************************************************sïg/îEÉqï_,î‰ îIîîî%Ævï[Ýîxtî"ï[Ýï[Ýuî ï[Ýï[ÝîÇtîCï[Ýï[Ýî¦î!Íî+âuî-�ï[Ýï[Ýî.[tî/ßï[Ýï[Ýuî0Æï[Ýï[Ýî1štî6Nï[Ýuï[Ýî6±tî9ï[Ýï[Ýî9cqïZ6î‰ îIîîî'úvïU@îxtîkïU@ïU@uîiïU@ïU@îtîŒïU@ïU@îïuî�ïU@ïU@îhtîìïU@ïU@uîÓïU@ïU@î§tî"[ïU@uïU@î"¾tî% ïU@ïU@î%pqïS™î‰îlî~ îÐî!tî"“î$8vïPJîxtîIïPJïPJuîFïPJïPJîîtîiïPJïPJîÌîôî%uî&¶ïPJïPJî'�tî)ïPJuïPJî)Òtî/ZïPJuïPJî/½tî2 ïPJïPJî2oqïN£î‰ îIîîî%™î3mvïKTîx tî‡ïKTïKTuî„ïKTïKTî,tî§ïKTïKTî î2î'Fuî(ôïKTïKTî)¿tî+CïKTuïKTî,tî1—ïKTuïKTî1ûtî4JïKTïKTî4­qïI­î‰ îIîîî'Íî7ÔvïD·î gîj tïAhîxuîðïAhïAhîªtïAhî!buî"ïïAhïAhî#Ãtî'ÝïAhïAhî(@uî*rïAhïAhî+Ftî-ŒïAhïAhî.iuî/ëïAhïAhî0µtî29ïAhïAhî3uî5HïAhïAhî6tî8bïAhïAhî9>uî:«ïAhïAhî;vtî<úïAhïAhî=]qï?Áî‰ îHî › î&® î-u vïtîAGï2†ï2†îAªqï0ßî‰xîšï0ßï0ßîSqï0ßîAî˜î¿îºî"µî#êî'î)Ù î1ìî3cî4Îî6tî8oî9ü ï/7î\ î[ î nî!äî$ˆ î,›î-þî1’î3mî5î8Qî:ævï+éîxtîFï+éï+éuîDï+éï+éîìtîgï+éï+éîÊî +î!—î+¬ uî2Yï+éï+éî3-tï+éî5÷î7„uï+éî<tîA¢ï+éuï+éîBtîE0ï+éï+éîE“qï*Aî‰xîšï*Aï*AîSqï*AîAî˜î¿îºî"µî#êî'î)Ùî4î5–î7î8¨î:£î<0 ï(šî\ î[î"¡î$î&»î1î2eî5ùî7Óî9xî<·î?Mvï%Kîx tîmï%Kï%Kuîkï%Kï%Kîtî�ï%Kï%Kîñîuî(7ï%Kï%Kî) tî-¿ï%Kuï%Kî."tî0qï%Kï%Kî0Ôqï#¤î‰îšîæîî!$î"Çî%î.|î3'î4Ëî7Bî;$î=xî?Äï!ýî\îºî]îª îÀî!cî#¯î*î.€xï"Šî1)qï!ýî1âî2¿î6¡î8zî9åî<2ï Uî\îäî¨îóî!Áî#-î%yî)eî+î-Tî0½î4Ÿ î;fî= î?Wï®î\îî î!!î#òî&?î*8î+Ûî-î/ãî3Üî6juï¸îxtîï¸ï¸rï ìî gð6TVm$à9ImagerFont.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.MichaelPlass,July31,198410:58:40amPDTDougWyatt,February3,19853:56:27pmPSTDIRECTORYAtomUSING[PropList],BasicsUSING[BYTE],ImagerTransformationUSING[Transformation],RopeUSING[ROPE],Vector2USING[VEC];ImagerFont:CEDARDEFINITIONS~BEGINCharactersandStringsBYTE:TYPE~Basics.BYTE;Char:TYPE~MACHINEDEPENDENTRECORD[set:BYTE,code:BYTE];nullChar:Char~[377B,377B];ACharisa16-bitXeroxcharactercode.SeetheXeroxCharacterCodeStandard.CharProc:TYPE~PROC[char:Char];StringProc:TYPE~PROC[charAction:CharProc];ROPE:TYPE~Rope.ROPE;MapRope:PROC[rope:ROPE,start:INT_0,len:INT_INT.LAST,charAction:CharProc];MapText:PROC[text:REFREADONLYTEXT,start:NAT_0,len:NAT_NAT.LAST,charAction:CharProc];TheseassumetheXeroxstringencoding;theytreat'\377asanescapecode.SeetheXeroxCharacterCodeStandard,section6,andtheInterpressStandard,section2.5.3.FontsVEC:TYPE~Vector2.VEC;Transformation:TYPE~ImagerTransformation.Transformation;Font:TYPE~REFFontRep;FontRep:TYPE~RECORD[name:ROPE,--universalnameofthefont(seeInterpresssection4.9.1)charToClient:Transformation,--transformsfromcharactertoclientcoordinatesimpl:REFFontImplRep,--privateimplementationdatapropList:Atom.PropList_NIL];sïg/îEÉqï_:îxï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰îËî«î�îÍî"î'¬î)÷ïZCî‰î?î²îyî î#Lî(5î*€uïVôîxtïULî‰uîjïULïULîOtïULî³ ïS¥î‰uî¡ïS¥ïS¥î‡tïS¥îëuîNïS¥ïS¥îtîMïS¥ïS¥î°ïQýî‰uîsïQýïQýîYtïQýî"½ïPUî‰uî>ïPUïPUî$tïPUîˆuîëïPUïPUî¿tîüïPUïPUî_ïN®î‰uîªïN®ïN®î�tïN®îôuîWïN®ïN®î"tî¦ïN®ïN®î ïK_îx uî|ïK_ïK_îFïK_î tïI·îxuîïI·ïI·î¾vïFhî g îWî÷uïCîxtîwïCïCuîuïCïCî.tïCîæîsuî^ïCïCîtî]ïCïCï?Êîxuîdï?Êï?Êîtï?ÊîÖuîcï?Êï?Êîtï?Êî‰ï?Êî%6tî*$ï?Êï?Êî*‡uî-ï?Êï?Êî-Ötî0ï?Êï?Êî0øuî4¸ï?Êï?Êî5rtî7·ï?Êï?Êî8ï>"îxî¸î+î¸îðqïî7¾tïuî‰ îTqî#iïuïuî#âî$à î+‰î.Çî4²î6Wî: tïÎî‰uî>ïÎïÎîtïÎî qî ïÎïÎî „î!‚î%ô î/rtï&î‰î’ îàuî!mï&ï&î"Utï ~TVm$À10FontImplRep:TYPE;--ImagerFontPrivate.FontImplRepExtents:TYPE~RECORD[leftExtent,rightExtent,descent,ascent:REAL];CorrectionType:TYPE~{none,space,mask};Find:PROC[name:ROPE]RETURNS[Font];Findthefontwiththegivenhierarchicalname.It'ssafetouseRefText.TrustTextAsRopeforthename.Modify:PROC[font:Font,m:Transformation]RETURNS[Font];Modifyafontbypost-concatenatingthegiventransformation.Scale:PROC[font:Font,s:REAL]RETURNS[Font];EquivalenttoModify[font,ImagerTransformation.Scale[s]].FindScaled:PROC[name:ROPE,scale:REAL]RETURNS[Font];Aconvenience,equivalenttoScale[Find[name],scale].Contains:PROC[font:Font,char:Char]RETURNS[BOOL];ReturnsTRUEiffthecharacterexistsinthefont.NextChar:PROC[font:Font,char:Char]RETURNS[next:Char];Returnsnextcharinthefont,ornullChar.CallwithnullChartogetfirstcharinfont.BoundingBox:PROC[font:Font,char:Char]RETURNS[Extents];Returnsatrueboundingboxforthecharactermask(notnecessarilyastightaspossible).Width:PROC[font:Font,char:Char]RETURNS[VEC];Returnswidthvectorforthecharacter.Amplified:PROC[font:Font,char:Char]RETURNS[BOOL];ReturnsTRUEiffthecharacterisan'amplifying'character.Correction:PROC[font:Font,char:Char]RETURNS[CorrectionType];Returnsthetypeofcorrection,ifany,forthecharacter.Kern:PROC[font:Font,char,successor:Char]RETURNS[VEC];Returnskerningadjustmentbetweencharandsuccessor,or[0,0].NextKern:PROC[font:Font,char,successor:Char]RETURNS[Char];Returnsnextsuccessorthatkernswithchar.Callwithsuccessor=nullChartogetfirstone.Ligature:PROC[font:Font,char,successor:Char]RETURNS[Char];Returnsaligatureformedfromcharandsuccessor,ornullChar.NextLigature:PROC[font:Font,char,successor:Char]RETURNS[Char];sïg/îEtï_,îx uî›ï_,ï_,îUtî‰ï_,ï_,qî†ï_,ï_,îîýtï[ÝîxuîÜï[Ýï[Ýî•tï[ÝîMuîÚï[Ýï[Ýî®tîÈï[Ýï[Ýî+ î$Ú î,eî1¨uî6Eï[Ýï[Ýî7tî9_ï[Ýï[Ýî9ÂïXŽîxuîÐïXŽïXŽî‰tïXŽîAîÎî"Iî&WvïS—îxtî#ïS—ïS—uî!ïS—ïS—îÈtîDïS—ïS—î§uîàïS—ïS—î´tîñïS—ïS—uîØïS—ïS—î¬tî#`ïS—ïS—î#ÃqïQðî‰î¼îîÚîÖî"î!® î)ïPHî‰îõî¸î]î½î)¬î+Óî.vïLùîxtî»ïLùïLùuî¹ïLùïLùîatîÜïLùïLùî?î§î[î ƒuî*¢ïLùïLùî+vtî0*ïLùïLùî0�qïKRî‰î:îoîAîî&î(Ëî,WvïHîxtî³ïHïHuî±ïHïHîXtîÔïHïHî7îžîSuîÕïHïHî©tî!ïïHïHuî"ÖïHïHî#ªtî(]ïHïHî(ÁqïF[î‰ îIîî î ³vïC îx tîïC ïC uî ïC ïC î´tî/ïC ïC î’uîËïC ïC îŸtî ÜïC ïC î!¹uî%„ïC ïC î&Wtî(�ïC ïC uî)…ïC ïC î*Ytî/ ïC ïC î/oqïAeî‰î îØ î ?î!äî,ÿvïî'î(¦î*òvï7xîxtîIï7xï7xuîFï7xï7xîîtîiï7xï7xîÌî4îéî#ruî'Hï7xï7xî(tî,Ïï7xï7xî-2î0»qï5Ðî‰îšî¯îÀîeî²î"Üî$•ï4)î‰î‚î~î3î×î î"æî%÷î'�vï0Úîx tî…ï0Úï0Úuîƒï0Úï0Úî*tî¦ï0Úï0Úî îqî"%î%®uî)„ï0Úï0Úî*Xtî/ ï0Úï0Úî/oqï/2î‰îšîÏîŸî‚î".î$Vî&¢î,�î0#î3 î9¼î;uî>ªî@c vï+ãîxtî!ï+ãï+ãuîï+ãï+ãîÆtîBï+ãï+ãî¥î îÁî!Juî% ï+ãï+ãî%ôtî*¨ï+ãuï+ãî+ tî-Zï+ãï+ãî-½qï*;î‰îšîFî@îhî!´ vï&ìîxtîï&ìï&ìuîï&ìï&ìîÂtî=ï&ìï&ìî îî¼î#Fuî'ï&ìï&ìî'ïtî,£ï&ìuï&ìî-tî01ï&ìï&ìî0”qï%Eî‰xîšï%Eï%EîSqï%EîAîîRî#>î$©î&œ î-ô vï!öîx tîÍï!öï!öuîÊï!öï!öîrtîíï!öï!öîQî¸î mî#öuî'Ìï!öï!öî( tî-Sï!öï!öî-¶qï Nî‰îšîæîËîo î#î$mî'^î)†î+Ò vïXîxtî\ïXïXuîYïXïXîtî|ïXïXîßîGîüî d î&Ðuî*¦ïXïXî+ztî0-ïXuïXî0�tî2ßïXïXî3Bqï°î‰îšî• î!nî&‰î)šî,> î2iî4"î6vïaîxtîIïaïauîGïaïaîîtîiïaïaîÍî4îéî#Q î)½uî-“ïaïaî.gtî3ïaïaî3~qïºî‰îšî¯î‚î!Tî%î'ýïî‰î‚î~î"âî$‡î&Çî)–vïÃîxtî‚ïÃïÃuî€ïÃïÃî'tî¢ïÃïÃîîmî"î"Š î(öuî,ÌïÃïÃî- tî2SïÃïÃî2·qïî‰îšîÏîÆî Oî#�î&žî)A î/lî1%vï Íîx tîoï Íï Íuîmï Íï Íîtî�ï Íï Íîóî[î"î%w î+äuî/¹ï Íï Íî0�tî5Aï Íï Íî5¤ÿ^TVm$|11Returnsnextsuccessorthathasaligaturewithchar,Callwithsuccessor=nullChartogetfirstone.StringWidth:PROC[font:Font,string:StringProc]RETURNS[VEC];RopeWidth:PROC[font:Font,rope:ROPE,start:INT_0,len:INT_INT.LAST]RETURNS[VEC];TextWidth:PROC[font:Font,text:REFREADONLYTEXT,start:NAT_0,len:NAT_NAT.LAST]RETURNS[VEC];StringBoundingBox:PROC[font:Font,string:StringProc]RETURNS[Extents];RopeBoundingBox:PROC[font:Font,rope:ROPE,start:INT_0,len:INT_INT.LAST]RETURNS[Extents];TextBoundingBox:PROC[font:Font,text:REFREADONLYTEXT,start:NAT_0,len:NAT_NAT.LAST]RETURNS[Extents];END.******************************************************sïg/îEqï_,î‰îšî¯î‚î!Tî#Êî$þî)öî,ñï]…î‰î‚î~î"âî$‡î&Çî)–vïX�îx tîÊïX�ïX�uîÇïX�ïX�îotîêïX�ïX�îMîµî!jî%¹ uî,áïX�ïX�î-µtî2hïX�uïX�î2Ëtî5ïX�ïX�î5}vïU@îxtî0ïU@ïU@uî.ïU@ïU@îÕtîQïU@ïU@î´îî Ðuî$zïU@ïU@î%Ntî'‹ïU@ïU@ïS™î¬uî5ïS™ïS™îŸtïS™îÅîRîÞuî «ïS™ïS™î!tïS™î#;uî$ÈïS™ïS™î%2tî&ÔïS™uïS™î'+tî*ïS™ïS™uî*÷ïS™ïS™î+Ëtî0ïS™uïS™î0âtî31ïS™ïS™î3”vïQñîxtîïïQñïQñuîìïQñïQñî”tîïQñïQñîrîÚî �uî#ÀïQñïQñî$”ïQñî&ŠïQñî-¦tî0¦ïQñïQñïPJî¬uî5ïPJïPJîtïPJî.î»îHuî!ïPJïPJî!ýtïPJî$uî%›ïPJïPJî&„tî(ïPJuïPJî(htî+LïPJïPJuî,4ïPJïPJî-tî1»ïPJuïPJî2tî4mïPJïPJî4ÐvïKTîxtî.ïKTïKTuî+ïKTïKTîÓtîNïKTïKTî±î"î%Îî* uî1EïKTïKTî2tî6ÌïKTïKTî7/vïHîxtî”ïHïHuî’ïHïHî9tî´ïHïHîî!î%4uî(ÞïHïHî)²tî+ïïHïHïF^î¬uî5ïF^ïF^îŸtïF^îÅîRîÞuî «ïF^ïF^î!tïF^î#;uî$ÈïF^ïF^î%2tî&ÔïF^uïF^î'+tî*ïF^uïF^î*Ýtî0dïF^ïF^î0ÇvïD·îxtîSïD·ïD·uîPïD·ïD·îøtîsïD·ïD·îÖî!>î$óuî($ïD·ïD·î(øïD·î*îïD·î2 tî5 ïD·ïD·ïCî¬uî5ïCïCîtïCî.î»îHuî!ïCïCî!ýtïCî$uî%›ïCïCî&„tî(ïCuïCî(htî+LïCïCuî,4ïCïCî-tî1»ïCïCî2uï>îxtîï>ï>rï ìî gð6ÿmTVm$n12ImagerPath.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January26,19852:39:43pmPSTDIRECTORYImagerTransformationUSING[Transformation],Vector2USING[VEC];ImagerPath:CEDARDEFINITIONS~BEGINGeneralPathsVEC:TYPE~Vector2.VEC;Transformation:TYPE~ImagerTransformation.Transformation;MoveToProc:TYPE~PROC[p:VEC];LineToProc:TYPE~PROC[p1:VEC];CurveToProc:TYPE~PROC[p1,p2,p3:VEC];ConicToProc:TYPE~PROC[p1,p2:VEC,r:REAL];ArcToProc:TYPE~PROC[p1,p2:VEC];PathProc:TYPE~PROC[moveTo:MoveToProc,lineTo:LineToProc,curveTo:CurveToProc,conicTo:ConicToProc,arcTo:ArcToProc];APathProcdefinesapathbycallingmoveTo,lineTo,...insequence.ItscallersuppliesmoveTo,lineTo,...proceduresandmaintainsp0:VEC_[0,0].moveTo[p]beginsanewtrajectoryatp;p0_p.lineTo[p1]extendsastraightlinefromp0top1;p0_p1.curveTo[p1,p2,p3]extendsacubiccurvefromp0(controlledbyp1,p2)top3;p0_p3.ThecurvesegmentisdefinedbyfourBeziercontrolpoints:p0,p1,p2,p3.Itbeginsatp0,tangentto[p0,p1],andendsatp3,tangentto[p2,p3].Thecurveisboundedbythequadrilateral[p0,p1,p2,p3].conicTo[p1,p2,r]extendsaconiccurvefromp0(controlledbyp1,r)top2;p0_p2.Letmbethemidpointof[p0,p2].Letpbethepointon[m,p1]suchthatLength[m,p]/Length[m,p1]=r.Thecurvestartsatp0,passesthroughp,andendsatp2.Itisalineifr=0;anellipseif0î‰uîªïU>ïU>î�tïU>îôuîWïU>ïU>î"tî¦ïU>ïU>î ïQïîx uîPïQïïQïîïQïîæ tïPHîxuîïPHïPHî¾vïLùî gîœuïIªîxtîÇïIªïIªuîÅïIªïIªî~tïIªî6îÃuî·ïIªïIªî‚tîïIªïIªïHîxuî®ïHïHîgtïHîî¬ð$ïD³îx uî,ïD³ïD³îåtïD³î�uî*ïD³ïD³îÒtîMïD³ïD³î°uî!uïD³ïD³î"@tî#ÄïD³ïD³î$'ïC îx uî{ïC ïC î4tïC îíuîzïC ïC î!tî�ïC ïC îuî!uïC ïC î"@tî#ÄïC ïC î$'ïAdîx uîcïAdïAdîtïAdîÕuîbïAdïAdî tî…ïAdïAdîèî"<î$�uî'ïAdïAdî'Ïtî)TïAdïAdî)·ï?¼îx uîBï?¼ï?¼îûtï?¼î´uîAï?¼ï?¼îètîdï?¼ï?¼îÇî"uî$�ï?¼ï?¼î%Ztî&ßï?¼ï?¼î'»uî)=ï?¼ï?¼î*tî,Wï?¼ï?¼î,ºï>îx uîìï>ï>î¥tï>î^uîêï>ï>î’tî ï>ï>îqî Äuî#9ï>ï>î$tî%ˆï>ï>î%ëï:ÅîxuîÏï:Åï:Åîˆtï:Åî@uîÍï:Åï:Åîutîðï:Åï:ÅîSî#. î+Áî0“ ï9î¬îˆ î#Rî) î1¶î6 qï7vî‰î î îŠî¿î Ñî"«î'î,ƒî1î2¤î4Jï5Ïî‰î�îRî]î Îî%bî&ï î-žî0Bî6uxî8Óï5Ïï5Ïî9žqï5Ïî;°î=î?ï4'î‰î.îTî‰îN î%Zî&ÿî(­î*’î+ÿï2î‰ îîæîî" î$­î'ëî)Ðî+tî-Óî/¸î1%ï0Øî‰ îÞîîoî!Sî"ˆî&î)¨î,æî.Ë î5ˆî7bî9 î;þî=£î@îAçîCTï/0îšî^îôî'î“î$>î&î(ýî-,î1Âî67î8tî:±î<îï-‰îšî*îPîõî2î!î"´î%_î( î*®î-Áî/eî1£î6€î8%î:Ðï+áîšî^îôî_î»î!–î#â î+Òî.}î0ºî2÷ï*9î‰ îÔîîˆî mî!¡î%-î(Ãî,î-æ î4¤î6~î8»î:=î;âî>@î@%îA“ï(’îšîî·î‡îÓî sî"î$Âï&êîšîîRî!îmîäî×î"8î$‹î'¨î*zî1 î9]î;°î=•ï%Cîšî^îôî–î;î xî$…î)”î+!î-Åî0×î2|ï#›îšî*î–îÊînîÄîWî Kî$cî%¹î+]î,’î2 î3vî8jî9Ÿî?ÉîAï!óîšî^îôî_î»î!–î#âî(Ûî+†î-Ãï Lî‰îœîïîÔîî#þî&Rî)�î+u î23î4 î6kî8î:nî[],--beginnewtrajectory:moveTo[lp]line=>[],--straightline:lineTo[lp]curve=>[p1,p2:VEC],--cubiccurve:curveTo[p1,p2,lp]conic=>[p1:VEC,r:REAL],--coniccurve:conicTo[p1,lp,r]arc=>[p1:VEC],--circulararc:arcTo[p1,lp]ENDCASE];ATrajectoryisanimmutablevalue.MoveTocreatesaTrajectory;otheroperationstakeaTrajectory,extenditwithastraightorcurvedsegment,andreturnanewTrajectory.Everytrajectoryhasalastpoint(lp),theendpointofthetrajectory'slastsegment.LastPoint:PROC[t:Trajectory]RETURNS[VEC];Returnt'slp.MoveTo:PROC[p:VEC]RETURNS[Trajectory];Createanewtrajectory,withasinglevertex.Theresult'slpisp0.LineTo:PROC[t:Trajectory,p1:VEC]RETURNS[Trajectory];LineToX:PROC[t:Trajectory,x:REAL]RETURNS[Trajectory];LineToY:PROC[t:Trajectory,y:REAL]RETURNS[Trajectory];LineToextendstwithastraightlinesegment.Theresult'slpisp1.LineToX[t,x]isequivalenttoLineTo[t,[x,t.lp.y]].LineToY[t,y]isequivalenttoLineTo[t,[t.lp.x,y]].CurveTo:PROC[t:Trajectory,p1,p2,p3:VEC]RETURNS[Trajectory];CurveToextendstwithacubiccurvesegment.Theresult'slpisp3.ConicTo:PROC[t:Trajectory,p1,p2:VEC,r:REAL]RETURNS[Trajectory];ConicToextendstwithasegmentofaconicsection.Theresult'slpisp2.ArcTo:PROC[t:Trajectory,p1,p2:VEC]RETURNS[Trajectory];ArcToextendstwithacirculararc.Theresult'slpisp2.MapTrajectory:PROC[trajectory:Trajectory,sïg/îEvï^—îxtî¾ï^—ï^—uî¼ï^—ï^—îctîßï^—ï^—îBîâï\ïî¬î‡ î"Áî$¦î)y î1î2èî8Ä îA6ï[Hî¬îg î"¸uî$Dï[Hï[Hî%-tî&Pï[Hï[Hî',î+‘î2Œuî4ï[Hï[Hî5tî6$ï[Hï[Hî7uî:áï[Hï[Hî;‰tï[Hî>‰uî@ï[Hï[Hî@þtîB!ï[Hï[HîB„vïWùîxtî¬ïWùïWùuîªïWùïWùîQtîÍïWùïWùî0îÐî#î%, î.éuî0uïWùïWùî1^tî2�ïWùïWùïVRî¬î‡ î"Áî$¦î)y î1î2èî8Ä îA6ïT«î¬îg î"¸uî$DïT«ïT«î%-tî&PïT«ïT«î',î+‘î2Œuî4ïT«ïT«î5tî6$ïT«ïT«î7uî:áïT«ïT«î;‰tïT«î>‰uî@ïT«ïT«î@þtîB!ïT«ïT«îB„vïOµî g îî³tïLfîx uî‰ïLfïLfîBtïLfîûuîˆïLfïLfî\tïLfîR ïJ¿îx uîÿïJ¿ïJ¿î¸tïJ¿îpuîýïJ¿ïJ¿îÑtî!ëïJ¿ïJ¿ïIî‰î( qîïIïIî‘î�î"› tïGpî‰uî<ïGpïGpî%tî±ïGpïGpqîŽïGpïGpîîîêî �î&Eî'ëî*7 tïEÉî‰uî±ïEÉïEÉî|tîïEÉïEÉqîÝïEÉïEÉîVîTî î,tïD!î‰uîŸïD!ïD!î>tïD!îrî4uîiïD!ïD!î"tïBzîšîZîïqî’ïBzïBzî î îªî"p î(õ tï@ÒîšîQîçqî‰ï@Òï@Òîîîîî# tï?+îšî[îðî§uîï?+ï?+îçtî kï?+ï?+î Îqî!«ï?+ï?+î"$î#"î&¬î*» î2î4Mtï=„îšî:îÏuî§ï=„ï=„îrtîöï=„ï=„îÓuî Uï=„ï=„î!)tî#nï=„ï=„î#Ñqï=„î$®î&%î)±î-À î5 î6ûtï;ÜîšîãîyuîQï;Üï;Üîtî ï;Üï;Üîqï;ÜîàîWî$Mî'î-,uï:5îštï8Žî‰qï6æî‰î î�îûîîî"�î&ôî,Jî0Èî1ý î8úî<{ îBöï5?î\î‘ îmîÍî$î" î#Uî(Cî)üî.Bî3Îî6qî:„î;¹î>~ ï3˜î\î3 î?îµîêî!vî$íî'Ðî*î,ªî0!î1Äî4 î:ùî=…vï0IîxtîSï0Iï0IuîPï0Iï0Iîøtîsï0Iï0IîÖîC uî!>ï0Iï0Iî"tî&Åï0Iuï0Iî'(tî)wï0Iï0Iî)Úqï.¢î‰îîçvï+Sîxtîƒï+Sï+Suî�ï+Sï+Sî)tî¤ï+Sï+SîuîÌï+Sï+Sî—tîï+Sï+Suîï+Sï+SîÖtî"‰ï+Sï+Sî"í qï)¬î‰îæîîà îDî"@î#uî'Mî,:î.ýî3’î5)î6•vï&]îxtîÒï&]ï&]uîÐï&]ï&]îxtîóï&]ï&]îVî î²uî"'ï&]ï&]î"òtî$vï&]ï&]uî%^ï&]ï&]î&2tî*åï&]ï&]î+H vï$¶îxtîÐï$¶ï$¶uîÎï$¶ï$¶îutîðï$¶ï$¶îTîÀ î °uî"^ï$¶ï$¶î#2tî%xï$¶ï$¶uî&_ï$¶ï$¶î'3tî+æï$¶ï$¶î,I vï#îxtîÅï#ï#uîÃï#ï#îktîæï#ï#îIîµ î ¥uî"Sï#ï#î#'tî%mï#ï#uî&Tï#ï#î'(tî+Üï#ï#î,? qï!gî‰îUî9î.î*î^î$Lî&ðî-î/Ãî4Xî5ïî7[ïÀî‰ î‰îBî® î!î"ºî(¼î*Îïî‰ î‰î!î� î ôî"™î(›î,ávïÊîxtîšïÊïÊuî˜ïÊïÊî?tîºïÊïÊîîŠ î zî"Îî%"uî'—ïÊïÊî(btî)æïÊïÊuî*ÍïÊïÊî+¡tî0TïÊïÊî0· qï"î‰îîþîóîîî #î#­î'Cî-Sî0î4«î6Cî7®vïÓîxtî™ïÓïÓuî—ïÓïÓî>tîºïÓïÓîî‰ î yî"Íuî%BïÓïÓî& tî'‘ïÓïÓî(nuî)ïïÓïÓî*Ãtî- ïÓïÓuî-ðïÓïÓî.Ätî3xïÓïÓî3Û qï,î‰îîôîéîåî î%Mî&ðî(%î+±î1î3Ñî8eî9ýî;ivïÝîxtîDïÝïÝuîBïÝïÝîétîeïÝïÝîÈî4 î$î!xuî#íïÝïÝî$¸tî&<ïÝïÝuî'#ïÝïÝî'÷tî,«ïÝïÝî- qï6î‰îÂî§î›î—îÌî#Âî&òî)µî.Iî/áî1Mvï @îx tîoï @ï @uîlï @ï @îtî�ï @ï @îò î"‹ TVm$h14moveTo:MoveToProc,lineTo:LineToProc,curveTo:CurveToProc,conicTo:ConicToProc,arcTo:ArcToProc];MapTrajectoryBackward:PROC[trajectory:Trajectory,moveTo:MoveToProc,lineTo:LineToProc,curveTo:CurveToProc,conicTo:ConicToProc,arcTo:ArcToProc];TrajectoryList:TYPE~LISTOFTrajectory;MapTrajectoryList:PROC[trajectoryList:TrajectoryList,moveTo:MoveToProc,lineTo:LineToProc,curveTo:CurveToProc,conicTo:ConicToProc,arcTo:ArcToProc];Outline:TYPE~REFOutlineRep;OutlineRep:TYPE~RECORD[SEQUENCEsize:NATOFTrajectory];MapOutline:PROC[outline:Outline,moveTo:MoveToProc,lineTo:LineToProc,curveTo:CurveToProc,conicTo:ConicToProc,arcTo:ArcToProc];TrajectoriesFromPath:PROC[path:PathProc,m:Transformation_NIL,action:PROC[Trajectory]];TrajectoryListFromPath:PROC[path:PathProc,m:Transformation_NIL]RETURNS[TrajectoryList];OutlineFromPath:PROC[path:PathProc,m:Transformation_NIL]RETURNS[Outline];END.******************************************************sïg/îEtï_,î¬î‡ î#î'ì î/Îî5ª ï]…î¬îg î#î'u vïZ6îxtî?ïZ6ïZ6uî=ïZ6ïZ6îåtî!`ïZ6ïZ6î!à î([ ïX�î¬î‡ î#î'ì î/Îî5ª ïVçî¬îg î#î'u ïQñîxuîÇïQñïQñî€tïQñî8uîÅïQñïQñî~ïQñîÅtïQñî!ß vïN£îxtîÂïN£ïN£uî¿ïN£ïN£îgtîâïN£ïN£îEî'ïLûî¬î‡ î#î'ì î/Îî5ª ïKTî¬îg î#î'u ïF^îxuîñïF^ïF^î«tïF^îcuîðïF^ïF^îÄtïF^îº ïD·îx uîgïD·ïD·î tïD·îØuîeïD·ïD·î9tî SïD·uïD·î ¶tïD·î'{uî*ŸïD·ïD·î+ˆïD·î-™tïD·î/³ vïAhîx tîµïAhïAhuî³ïAhïAhîZtîÖïAhïAhî9îZï?Áî¬î‡ î#î'ì î/Îî5ª ï>î¬îg î#î'u vï9#îxtîœï9#ï9#uî™ï9#ï9#îAtî¼ï9#ï9#î î#¿ï7|î¬îÓ î �uî"ï7|ï7|î#tî$(ï7|ï7|î%uî)–ï7|ï7|î*>tî,¹ï7|ï7|î- vï4-îxtîüï4-ï4-uîúï4-ï4-î¢tî!ï4-ï4-î!€î% ï2†î¬îÓ î �uî"ï2†ï2†î#tî$(ï2†ï2†uî%ï2†ï2†î%ãtî*—ï2†ï2†î*úvï/7îxtîðï/7ï/7uîíï/7ï/7î•tîï/7ï/7îsî!ï-�î¬îÓ î �uî"ï-�ï-�î#tî$(ï-�ï-�uî%ï-�ï-�î%ãtî*—ï-�ï-�î*úuï(šîxtîï(šï(šrï ìî gð6¡TVm$ð15ImagerPixelArray.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.MichaelPlass,August1,19849:59:33amPDTDougWyatt,January25,198511:49:28amPSTDIRECTORYAtomUSING[PropList],ImagerTransformationUSING[Transformation],RopeUSING[ROPE];ImagerPixelArray:CEDARDEFINITIONS~BEGINThePixelArraytypeTransformation:TYPE~ImagerTransformation.Transformation;PixelArray:TYPE~REFPixelArrayRep;PixelArrayRep:TYPE~RECORD[sSize,fSize:INT,--slowandfastdimensions(InterpresscallsthesexPixels,yPixels)samplesPerPixel:NAT,--numberofsamplesforeachpixelm:Transformation,--transforms[s,f]coordinatesto"upright"[x,y]coordinatesclass:REFPixelArrayClassRep,--classoperationsdata:REF,--instancedatapropList:Atom.PropList_NIL];ThepixelarraycontainssSize*fSizepixels,sSize*fSize*samplesPerPixelsamples.Asampleisnamedbyatriple:sIN[0..sSize),fIN[0..fSize),iIN[0..samplesPerPixel).PixelArrayClassRep:TYPE;--ImagerPixelArrayPrivate.PixelArrayClassRepGetClass:PROC[pa:PixelArray]RETURNS[ATOM];ReturnsanATOMthatidentifiesthePixelArray'sclass.Sample:TYPE~CARDINAL;GetSample:PROC[pa:PixelArray,s,f:INT,i:NAT_0]RETURNS[Sample];Returnsthesamplevalueatcoordinatess,f,i.MaxSampleValue:PROC[pa:PixelArray,i:NAT]RETURNS[Sample];Returnsthemaximumsamplevaluefortheithsample.GetSample[pa,s,f,i]IN[0..MaxSampleValue[pa,i]]foralls,f.Formoreefficientaccesstosamples,seeImagerPixelArrayPrivate.CreatingpixelarraysROPE:TYPE~Rope.ROPE;FromAIS:PROC[name:ROPE]RETURNS[PixelArray];MakesapixelarrayfromanAISfile.sïg/îEqï_,îxï]„îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Ýî‰îËî«îKîØî#î(î*RïZ5î‰î?î²î×î î#Zî(óî+>uïVæîxtïU>î‰uîjïU>ïU>îOtïU>î³ ïS—î‰uîsïS—ïS—îYtïS—î"½ïQïî‰uî>ïQïïQïî$tïQïîˆuîëïQïïQïî¿tîüïQïïQïî_ïN îxuîøïN ïN îÃïN î� tïLøîxuîïLøïLøî¾vïI©î gî@ î$tïFZîxuî®ïFZïFZîgtïFZîî¬ð$ïC îx uîÊïC ïC îƒtïC î<uîÉïC ïC î�tïC î“ ïAdîx uî?ïAdïAdîùtïAdî±uî>ïAdïAdîtî",ïAdïAdï?¼î‰îTuî5ï?¼ï?¼îžtî@ï?¼ï?¼qîï?¼ï?¼î–î”î—î";î$Ó î+´ î2sî5�î8øî>/tï>î‰uîï>ï>îtîŒï>ï>qîiï>ï>îâîàî$Åî&hî+jî-’î0¹tï[class:REFConstantColorClassRep,--operationsdata:REF,--instancedatapropList:Atom.PropList_NIL],sampled=>[pa:PixelArray,--thearrayofpixelsum:Transformation,--transformsfromcolortodevicecoordinatescolorOperator:ColorOperator,--mapspixelsintocolorspropList:Atom.PropList_NIL],ENDCASE];ConstantColorClassRep:TYPE;ConstantColor:TYPE~REFColorRep[constant];SampledColor:TYPE~REFColorRep[sampled];black:READONLYConstantColor;--MakeGray[1]white:READONLYConstantColor;--MakeGray[0]MakeGray:PROC[f:REAL]RETURNS[ConstantColor];MakeCIE:PROC[x,y,Y:REAL]RETURNS[ConstantColor];MakeSampledBlack:PROC[pa:PixelArray,um:Transformation,clear:BOOL_FALSE]RETURNS[SampledColor];sïg/îEqï_,îxï]„îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Ýî‰î?î²îyî î#Lî(5î*€uïXŽîxtïVæî‰uîjïVæïVæîOtïVæî³ ïU>î‰uî�ïU>ïU>îutïU>îÙ ïS—î‰uîsïS—ïS—îYtïS—î"½ïQïî‰uî>ïQïïQïî$tïQïîˆuîëïQïïQïî¿tîüïQïïQïî_ïN îx uîÿïN ïN îÊïN î• tïLøîxuîïLøïLøî¾vïI©î gtïFZîxuî®ïFZïFZîgtïFZîî¬ð$ïD³îx uîÊïD³ïD³îƒtïD³î<îÉuïC îxtî‰ïC ïC uî‡ïC ïC î@tïC îùî…uîïC ïC îâtîïC ïC ï?¼îxuîÒï?¼ï?¼î‹tï?¼îCuîÐï?¼ï?¼î¤tï?¼î›ï>îxuîGï>ï>îtï>î¸uîEï>ï>îtî3ï>ï>uï„ïïî?=tîB"ïïuï qî¬tî3ï qï qî– ÿ]TVm$18MakeSampledColor:PROC[pa:PixelArray,um:Transformation,colorOperator:ColorOperator]RETURNS[SampledColor];ColorOperatorsColorOperator:TYPE~REFColorOperatorRep;ColorOperatorRep:TYPE~RECORD[samplesPerPixel:NAT,class:REFColorOperatorClassRep,data:REF,propList:Atom.PropList_NIL];ColorOperatorClassRep:TYPE;SampleMapProc:TYPE~PROC[CARDINAL]RETURNS[REAL];Mapssamplevaluesintootherarbitraryvalues.PixelProc:TYPE~PROC[NAT]RETURNS[CARDINAL];Returnstheindexedsamplevalueforapixel.ColorOperatorType:PROC[ColorOperator]RETURNS[ATOM];ReturnsanATOMthatidentifiestheColorOperator.ColorFromPixel:PROC[op:ColorOperator,s:PixelProc]RETURNS[Color];Appliesacoloroperator.GrayFromPixel:PROC[op:ColorOperator,s:PixelProc]RETURNS[f:REAL];Appliesacoloroperator,returningagrayvalue.BlackOp:PROC[clear:BOOL]RETURNS[ColorOperator];GrayLinearOp:PROC[sWhite,sBlack:REAL,mapSize:CARDINAL_0,mapProc:SampleMapProc_NIL]RETURNS[ColorOperator];GrayVisualOp:PROC[sWhite,sBlack:REAL,mapSize:CARDINAL_0,mapProc:SampleMapProc_NIL]RETURNS[ColorOperator];GrayDensityOp:PROC[sWhite,sBlack,dWhite,dBlack:REAL,mapSize:CARDINAL_0,mapProc:SampleMapProc_NIL]RETURNS[ColorOperator];ColorDensityOp:PROC[sWhite,sBlack,dWhite,dBlack:REAL,mapSize:CARDINAL_0,mapProc:SampleMapProc_NIL]RETURNS[ColorOperator];sïg/îEvï_,îxtîEï_,ï_,uîCï_,ï_,îêtîfï_,ï_,îÉî!3 î(dî+Rî5f ï]…î¬ uï[Ýî¬tî3ï[Ýï[Ýî– vïVçî gî<tïS˜îx uî*ïS˜ïS˜îãtïS˜î›uî(ïS˜ïS˜îütïS˜îóïQðîxuîŸïQðïQðîXtïQðîuî�ïQðïQðî qtî$ŒïQðïQðïPHî‰uîïPHïPHîtîŒïPHïPHïN¡î‰uî3ïN¡ïN¡îtïN¡îþïLùî‰uîïLùïLùîÜtîNïLùïLùïKRî‰î’ îàuî!mïKRïKRî"UtïIªî‰ïF[îxuî®ïF[ïF[îgtî ›ïF[ïF[ïC îx uîJïC ïC îtïC î»uîHïC ïC îðtî!kïC uïC î!Îtî(ïC ïC uî(íïC ïC î)Átî.tïC uïC î.×tî1ñïC ïC î2TqïAdî‰îGîÄîÓîšî#î(µtï>îx uîï>ï>îÉtï>î�uîï>ï>î¶tî1ï>uï>î”tî ï>ï>uî ñï>ï>î!Ätî&xï>uï>î&Ûtî-ï>ï>î-uqïïDÂïDÂî$tïDÂîˆuîëïDÂïDÂî¿tîüïDÂïDÂî_ïCî‰uîªïCïCî�tïCîôuîWïCïCî"tî¦ïCïCî pï?Ëîxvî’ï?Ëï?Ëî…ï?Ëî tï>$îxuîï>$ï>$î¾vï:Õî gtï7†îxuî)ï7†ï7†îâtï7†îšuî'ï7†ï7†îûtï7†îò ï5Þîx uîžï5Þï5ÞîWtï5Þîuî�ï5Þï5Þîqtî ‹ï5Þï5Þï47î‰uî3ï47ï47îtï47îþqî^ï47ï47îØîÕ î%Pî'xî)Äî.”tï2�î‰uî4ï2�ï2�îtï2�îþqî?ï2�ï2�î¹î¶î#‡î'î(iî-æ tï0èî‰uîï0èï0èîÜtîNï0èï0èqî*ï0èï0èî¤î¡îàî æî*ãtï/@î‰î’ îàuî!mï/@ï/@î"Uqï/@î#üî%sî*²î0tï-™î‰ï*Jîxuîúï*Jï*Jî³tîçï*Jï*Jqîåï*Jï*Jî^î\tï(¢îxuîÛï(¢ï(¢î”tîÈï(¢ï(¢qîÆï(¢ï(¢î?î=tï%Sîxuî¥ï%Sï%Sî_tî·ï%Sï%Sîî ï#«îx uî‰ï#«ï#«îBtï#«îûuîˆï#«ï#«î\tîvï#«ï#«îÙuî#™ï#«ï#«î$mtî'ï#«ï#«î'ð uî/Óï#«ï#«î0§tî2äï#«ï#«î3GvïµîxtîÐïµïµuîÍïµïµîutîðïµïµîSî¡uî#;ïµïµî$tî(Ãïµuïµî)&tî, ïµïµî-qï î‰îšxî�ï ï îXqï î‚îT î$ î&Vî+&vïîxtîlïïuîiïïîtîŒïïîïî=î"Íuî%Üïïî&¯tî("ïïî(þuî+µïïî,‰tî-ûïïî.^vïoîxtî‚ïoïouî€ïoïoî'tî¢ïoïoîîSî"ãuî%òïoïoî&Ætî(8ïoïouî)ïoïoî)ótî.§ïoïoî/ uî1Àïoïoî2”tî4ïoïoî4jqïÈî‰ îhî[î#Ýî)Aî*­î.Lî0ïî6î7áî<ìî?� vïÑîxtîïÑïÑuîïÑïÑî¹tî4ïÑïÑî˜îåî"uuî'ïÑïÑî'®tî**ïÑïÑî*�vï)îxtîÍï)ï)uîËï)ï)îrtîîï)ï)îQîŸî$.uî(Àï)ï)î)htî+ãï)ï)î,Fqï ‚î‰îlî[îØ î!Êî$`î&¬î*¾ î1Aî4Lî8³î=1 ï Úî‰î”î€î{îÜî!)î%×î*åî-‰ÿÏTVm$ü21DoSaveAllrestoreseverything.TransformationsandcurrentpositionTransformation:TYPE~ImagerTransformation.Transformation;VEC:TYPE~Vector2.VEC;--RECORD[x,y:REAL];metersPerInch:REAL~0.0254;metersPerPoint:REAL~0.0003514598;metersPerMica:REAL~0.00001;pointsPerInch:REAL~72.27;pointsPerMica:REAL~0.028452756;micasPerInch:REAL~2540.0;micasPerPoint:REAL~35.14598;inchesPerPoint:REAL~0.013837;inchesPerMica:REAL~0.00039370079;Handyconversionfactors;thefirstthreeareusefulforScaleT.ConcatT:PROC[context:Context,m:Transformation];Premultipliesthecurrenttransformationbym.ScaleT:PROC[context:Context,s:REAL];Scalesthecurrenttransformationbys.EquivalenttoConcatT[context,ImagerTransformation.Scale[s]].Scale2T:PROC[context:Context,s:VEC];EquivalenttoConcatT[context,ImagerTransformation.Scale2[s]].RotateT:PROC[context:Context,a:REAL];EquivalenttoConcatT[context,ImagerTransformation.Rotate[a]].Angleaisindegreescounterclockwise.TranslateT:PROC[context:Context,t:VEC];EquivalenttoConcatT[context,ImagerTransformation.Translate[t]].Move:PROC[context:Context];Translatestheorigintothecurrentposition.Trans:PROC[context:Context];Translatestheorigintothegridpointnearestthecurrentposition.SetXY:PROC[context:Context,p:VEC];SetXYI:PROC[context:Context,x,y:INTEGER];Setsthecurrentposition.SetXYRel:PROC[context:Context,v:VEC];SetXYRelI:PROC[context:Context,x,y:INTEGER];Addsarelativedisplacementtothecurrentposition.sïg/îEqï_,î‰îXîD vïZ5î gî²îRîtïVæîxuî®ïVæïVæîgtïVæîî¬ð$uïU?îxtîÇïU?ïU?uîÅïU?ïU?î~tïU?î6îÃuî·ïU?ïU?î‚tîïU?ïU?îuî {ïU?ïU?î!Otî%iïU?ïU?î%Ìî'Yuî)ïU?ïU?î)Ûtî,!ïU?ïU?î,„ïQðîx uî ïQðïQðîÞtïQðî¨î5ïPHîxuîƒïPHïPHîVtïPHî î­ ïN îx uîVïN ïN î*tïN îôî�ïLùîx uî½ïLùïLùî‘tïLùî[îèïKQîx uî ïKQïKQîÝtïKQî§î4 ïIªîx uîoïIªïIªîCtïIªî îšïHîx uîèïHïHî¼tïHî†îïFZîxuîLïFZïFZî tïFZîêîwïD³îx uî ïD³ïD³îôtïD³î¾îK qïC î‰îü îšî {î"Çî%–î)î+Uî/Dî1lvï?¼îxtî¤ï?¼ï?¼uî¢ï?¼ï?¼îJtîÅï?¼ï?¼î(îvî#î%-qï>î‰ î³îÿî­ î(Åî*Ÿvï:Åîxtî§ï:Åï:Åuî¤ï:Åï:ÅîLtîÇï:Åï:Åî+îxî"uî#Šï:Åï:Åî$^tî&£ï:Åï:Åî'qï9î‰î¸îî² î$Êî&¤ï7vî‰ îIîîî#”vï4'îxtîWï4'ï4'uîUï4'ï4'îýtîxï4'ï4'îÛî)î"¸uî$:ï4'ï4'î%tî&‰ï4'ï4'î&ìqï2î‰ îIîîî#”vï/0îxtîmï/0ï/0uîkï/0ï/0îtîŽï/0ï/0îñî?î"Îuî$rï/0ï/0î%Ftî'‹ï/0ï/0î'îqï-ˆî‰ îIîîî#”ï+áî‰îxî­îî¾î}vï(’îx tîï(’ï(’uîï(’ï(’î¶tî1ï(’ï(’î•îâî$ruî%Þï(’ï(’î&©tî(-ï(’ï(’î(�qï&êî‰ îIîîî#”ð#vï!óîxtîÔï!óï!óuîÒï!óï!óîztîõï!óï!óîXî¦qï Lî‰ îî[îJîîî!;î%évïüîxtîëïüïüuîèïüïüî�tî ïüïüîoî¼qïUî‰ îî[îJîîî!;î$î'~î, î.lî3vï^îxtîdï^ï^uîbï^ï^î tî…ï^ï^îèî6î!Åuî#Šï^ï^î$Utî%Ùï^ï^î&<vï¶îxtîèï¶ï¶uîæï¶ï¶îŽtî ï¶ï¶îlîºî"Iî#Öuî%„ï¶ï¶î%îtî*Äï¶ï¶î+'qïî‰îyîÆîtvïÀîxtîjïÀïÀuîhïÀïÀîtî‹ïÀïÀîîî<î#Ëuî%yïÀïÀî&Dtî'ÈïÀïÀî(,vïîxtîïïïuîìïïî”tîïïîrîÀî$Pî%Ýuî'‹ïïî'ôtî,Ëïïî-.qï pî‰îðî%îå î!Úî#î%Ëî*ytTVm$r22SetXRel:PROC[context:Context,x:REAL];SetXRelI:PROC[context:Context,x:INTEGER];EquivalenttoSetXYRel[context,x,0]SetYRel:PROC[context:Context,y:REAL];SetYRelI:PROC[context:Context,y:INTEGER];EquivalenttoSetXYRel[context,0,y]TextandspacingcorrectionFont:TYPE~ImagerFont.Font;Char:TYPE~ImagerFont.Char;StringProc:TYPE~ImagerFont.StringProc;ROPE:TYPE~Rope.ROPE;SetFont:PROC[context:Context,font:Font];SetsthefontforsubsequentShowoperations.SetAmplifySpace:PROC[context:Context,amplifySpace:REAL];Setsthescalefactorforwidthsof`amplified'characters.Show:PROC[context:Context,string:StringProc,xrel:BOOL_FALSE];Showsastringofcharactersinthecurrentfont,startingatthecurrentposition.Ifxrel~TRUE,everyothercharmeansSetXRel[context,char.code-128].ShowChar:PROC[context:Context,char:CHAR];Showsan8-bitcharacter(inCharacterSet0).ShowXChar:PROC[context:Context,char:Char];Showsa16-bitXeroxCharacterCode.ShowRope:PROC[context:Context,rope:ROPE,start:INT_0,len:INT_INT.LAST,xrel:BOOL_FALSE];ShowscharactersfromaROPE,usingtheXeroxStringEncoding.ShowText:PROC[context:Context,text:REFREADONLYTEXT,start:NAT_0,len:NAT_NAT.LAST,xrel:BOOL_FALSE];ShowscharactersfromaREFTEXT,usingtheXeroxStringEncoding.StartUnderline:PROC[context:Context];Remembersthestartingxpositionforanunderline.MaskUnderline:PROC[context:Context,dy,h:REAL];MaskUnderlineI:PROC[context:Context,dy,h:INTEGER];DrawsanunderlinefromtheStartUnderlinepointtothecurrentposition.Theunderline'stopisdybelowthecurrentposition;itsheightish.Example:StartUnderline[ctx];ShowRope[ctx,"underlined"];MaskUnderline[ctx,3,1];sïg/îEvï_,îxtîwï_,ï_,uîuï_,ï_,îtî˜ï_,ï_,îûîIî"Øuî$†ï_,ï_,î%Ztî' ï_,ï_,î(vï]„îxtîüï]„ï]„uîùï]„ï]„î¡tîï]„ï]„îîÍî#]uî% ï]„ï]„î%utî*Kï]„ï]„î*®qï[Ýî‰ îIîîî$cî&vïXŽîxtîmïXŽïXŽuîjïXŽïXŽîtî�ïXŽïXŽîðî>î"Îuî$|ïXŽïXŽî%Ptî'•ïXŽïXŽî'ùvïVæîxtîñïVæïVæuîïïVæïVæî–tîïVæïVæîuîÃî#Ruî%ïVæïVæî%jtî*@ïVæïVæî*£qïU>î‰ îIîîî$cî%ðvïPHî gî¹îYîA tïLùîxuîNïLùïLùîtïLùîÀîLïKQîxuîdïKQïKQîtïKQîÖîcïIªîx uî¶ïIªïIªîotïIªî(î´uïHîxtî‰ïHïHuî‡ïHïHî@tïHîùî…uîïHïHîâtîïHïHvïD³îxtî@ïD³ïD³uî=ïD³ïD³îåtî`ïD³ïD³îÃîî"¡î&qïC î‰îyîÆî˜î¿ î!‹î%@ vï?¼îxtîŒï?¼ï?¼uîŠï?¼ï?¼î2tî­ï?¼ï?¼îî"^î'í uî0åï?¼ï?¼î1¹tî3ÿï?¼ï?¼î4bqï>î‰îyîÆîîûî"î#Sî$ö î+… vï9îxtî³ï9ï9uî°ï9ï9îXtîÓï9ï9î6î„î!î%c î,€uî/ºï9ï9î0ttï9î3juî4÷ï9ï9î5°tî8•ï9ï9î8øqï7vî‰îÃîøîÇîj î!Úî#€î%Ìî*zî-¤î2”î49î6…î;3ï5Îî‰îxîZï5Îï5Îîqî}ï5Îï5ÎîZîØî Yî#jî'’î2 vï2îxtî–ï2ï2uî“ï2ï2î;tî¶ï2ï2îîgî#÷uî'€ï2ï2î(Ktî*Ùï2ï2î+<qï0Øî‰îÃî¶îèîÓî!òî(@î*¬vï-ˆîxtî“ï-ˆï-ˆuî‘ï-ˆï-ˆî9tî´ï-ˆï-ˆîîeî$ôî(~qï+áî‰îÃîøîÚîòî$@vï(’îxtîÂï(’ï(’uî¿ï(’ï(’îgtîâï(’ï(’îEî“î$#uî'Ìï(’ï(’î( tî*Ýï(’ï(’ï&êî¬uî5ï&êï&êîŸtï&êîÅîRîÞuî «ï&êï&êî!tï&êî#;uî$Èï&êï&êî%2tî&Ôï&êuï&êî'+tî*ï&êï&êî*ìuî.'ï&êï&êî.àtï&êî1×uî3dï&êï&êî4tî7ï&êï&êî7eqï%Cî‰îà î2îpxî¥ï%Cï%Cî pqî"Èï%Cï%Cî#¤î'<î)ˆî- î1Çvï!óîxtî€ï!óï!óuî~ï!óï!óî&tî¡ï!óï!óîîRî#áuî'ï!óï!óî'æï!óî)Ýï!óî0ùtî3øï!óï!óï Lî¬uî5ï Lï Lîtï Lî.î»îHuî!ï Lï Lî!ýtï Lî$uî%›ï Lï Lî&„tî(ï Luï Lî(htî+Lï Lï Lî,)uî/dï Lï Lî0tï Lî3uî4 ï Lï Lî5Ytî8>ï Lï Lî8¡qï¤î‰îà î2îpxî¥ï¤ï¤î pï¤î"gqî%gï¤ï¤î&Cî)Úî,&î0?î4fvï­îx tîKï­ï­uîIï­ï­îñtîlï­ï­îÏî!qïî‰îÁî îýî Hî%Wî'~î)q vï·îx tî£ï·ï·uî¡ï·ï·îHtîÄï·ï·î'î!uî'î)Xuî+ï·ï·î+ñtî.6ï·ï·î.™vïîx tî'ïïuî%ïïîÍtîHïïî«î!ùî'ˆî)Üuî+¡ïïî, tî0áïïî1Dqïgî‰îÂîµî£îáî"- î+dî.Ûî0€î2Ìî7zïÀî‰îM îîmîÙî³î#}î%Êî*xî0î1Üî5øî7dïî‰î¶î# î,[ î5CîApîBýTVm$‘23CorrectMask:PROC[context:Context];CorrectSpace:PROC[context:Context,v:VEC];Note"correctionspace"opportunitiesforCorrect;seeCorrect,below.Usually,fontcharacterscalltheseimplicitlywithinShow.Space:PROC[context:Context,x:REAL];SpaceI:PROC[context:Context,x:INTEGER];UseSpaceratherthanSetXReltomakecorrectablespacesinsideCorrect.Equivalentto{SetXRel[ctx,x];CorrectSpace[ctx,[x,0]]}.SetCorrectMeasure:PROC[context:Context,v:VEC];SetstheexpectedlinemeasureforsubsequentCorrectoperations.SetCorrectTolerance:PROC[context:Context,v:VEC];SetsthelinemeasuretoleranceforsubsequentCorrectoperations.SetCorrectShrink:PROC[context:Context,correctShrink:REAL];SetstheallowablefractionofspaceshrinkforsubsequentCorrectoperations.Correct:PROC[context:Context,action:PROC];Ensuresreasonablespacingoftext(orothermasks)eveniftheimagerapproximatesfonts.LikeDoSave[context,action],butadjusts"correctionspace"ifnecessarytoensurethatthenetchangeincurrentpositioniswithincorrectToleranceofcorrectMeasure.NotethatCorrectmay(ormaynot)invokeactiontwice.SeetheInterpressStandard,section4.10,andtheIntroductiontoInterpress,section10.DontCorrect:PROC[context:Context,action:PROC,saveCP:BOOL_FALSE];Disablescorrection,callsaction,thenrestorescorrectionstate.IfsaveCP~TRUE,alsosavesandrestorescurrentposition.Forrelevantexamples,seetheIntroductiontoInterpress,section10.6.ColorColor:TYPE~ImagerColor.Color;ColorOperator:TYPE~ImagerColor.ColorOperator;PixelArray:TYPE~ImagerPixelArray.PixelArray;black:READONLYColor;white:READONLYColor;SetColor:PROC[context:Context,color:Color];Setsthecurrentcolor.SetGray:PROC[context:Context,f:REAL];EquivalenttoSetColor[context,MakeGray[f]]SetSampledColor:PROC[context:Context,pa:PixelArray,m:Transformation_NIL,colorOperator:ColorOperator];EquivalenttoSetColor[context,MakeSampledColor[pa,Concat[m,T],colorOperator].sïg/îEvï_,îx tîOï_,ï_,uîMï_,ï_,îôtîpï_,ï_,îÓî !vï]…îx tî|ï]…ï]…uîyï]…ï]…î!tîœï]…ï]…îÿî Mî%Ýuî'‹ï]…ï]…î(Vtî)Úï]…ï]…î*=qï[Ýî‰îÝ îÝî- î'8î)_î.ºî0øî61ïZ5î‰îÖî© îî!®î% î+î/!vïU?îxtîïU?ïU?uîþïU?ïU?î¦tî!ïU?ïU?î„îÒî!auî#ïU?ïU?î#ãtî&)ïU?ïU?î&ŒvïS—îxtî…ïS—ïS—uî‚ïS—ïS—î*tî¥ïS—ïS—îîVî!æuî#”ïS—ïS—î#ýtî(ÔïS—ïS—î)7qïQðî‰î@î8î=î]î#Âî%gî) î/ðî4î7ìïPHî‰ îIîîî" î" î$Sî/?î1Pî3avïKRîxtîïKRïKRuîïKRïKRî¿tî:ïKRïKRî�î#ëî){uî+)ïKRïKRî+ôtî-xïKRïKRî-ÛqïIªî‰îyîÆîMîñî#7î%_ î,*î1 vïF[îxtîáïF[ïF[uîßïF[ïF[î†tîïF[ïF[îeî$²î*Buî+ðïF[ïF[î,»tî.?ïF[ïF[î.¢qïD´î‰îyîÆîiî¯î#{î%£ î,nî1O vïAeîxtîäïAeïAeuîâïAeïAeîŠtîïAeïAeîhî"¶î(E uî1HïAeïAeî2tî4bïAeïAeî4Åqï?½î‰îyîÆî·î ¼î"_î%þî*1î,X î3$î8 vï:Çîxtîóï:Çï:Çuîñï:Çï:Çî™tîï:Çï:ÇîwîÅî"Tuî&æï:Çï:Çî'Žtî* ï:Çï:Çî*lqï9î‰î¤ îIî! î"Ãî%Šî'¼î+=î/Ðî2äî4:î6†î; îCMï7xî‰îÆîãî"»î%î)š î0šî4êî6@î<6î=ÛîBï5Ðî\î¨îöîŒî2î àî%ïî'[î+xî5µî7Xï4)î‰îÝî®î�îî ²î#¢î&~î*Òî.ãï2�î‰î îl î±î!ßî&_î)¥î,Iî.• î6aî8 î>¤îC$vï/2îx tî÷ï/2ï/2uîôï/2ï/2îœtîï/2ï/2îzîÈî%Xuî)éï/2ï/2î*‘tî- ï/2ï/2î-éuî35ï/2ï/2î3îtï/2î6åuî8qï/2ï/2î9+tî<ï/2ï/2îî6î7Mï;Ûî‰îÂîé îöîœî!èî$úî'õî)*î.î1î2j ï:3î‰îxîoï:3ï:3îqîï:3ï:3îüîHî!nî'�î)Šî-…î0�î5�î:¬ï8Œî‰îxîoï8Œï8Œî(qî’ï8Œï8Œînîºî àî'î(üî,÷î/óî2ˆî7˜vï5=îxtîï5=ï5=uî ï5=ï5=î´tî/ï5=ï5=î’î#àî)p î0 î6øuî;iï5=ï5=î<"tï5=î?uî@¥ï5=ï5=îA^tîDCï5=ï5=îD¦qï3–î‰î˜îäî îÜî!¶î"ê vï0GîxtîUï0Gï0GuîSï0Gï0Gîútîvï0Gï0GîÙî"'î'¶î,×î2/uî6 ï0Gï0Gî7Ytï0Gî:Ouî;Üï0Gï0Gî<•tî?zï0Gï0Gî?Ýqï.Ÿî‰î˜îäî îÜî!¶î#©vï+Pîx tîºï+Pï+Puî¸ï+Pï+Pî_tîÛï+Pï+Pî>î!Œî'î(¨î*5î,uî-Ôï+Pï+Pî.¨tî0íï+Pï+Pî1Pvï)©îx tî>ï)©ï)©uî<ï)©ï)©îätî_ï)©ï)©îÂî"î'Ÿî),î*¹î,“uî.Xï)©ï)©î.Âtî3˜ï)©ï)©î3ûqï(î‰î˜îäî°îÁî±î$ î%ûî*Uî.bî0tvï$³îxtî=ï$³ï$³uî;ï$³ï$³îãtî^ï$³ï$³îÁîî#žî&Ïqï# î‰î˜îäî°îùî$ î(¿î,çî1†î6î:Lï!dî‰î î€î¨î î#mî%vïnîx tîïnïnuîïnïnî¸tî3ïnïnî–î!äî't uî/Åïnïnî0™tî2ßïnïnî3BqïÆî‰ î|îÈîuîœ î&htïwîx uîÁïwïwîztïwî3î¿î .î#vqïÐî‰îHî�îŸîÇî!Uî$‡î*ºî-î1î2ïî5² ï(î‰îÔîî,îSîáî#5î&1î(}ï�î‰îçîÌîóî�î!}î"² î*@î,Àî.c î6tï2îx uî;ï2ï2îôtï2î¬î9î!Xqï ‹î‰îÛî;înî"©î%ßî(Ñî,î0"î4Hî7ôî;Sî>ýï ãî‰îçî¡îXîþî 3î#Òî%v î-&ÿATVm$e25StrokeStyle:TYPE~RECORD[end:StrokeEnd,joint:StrokeJoint];SetStrokeStyle:PROC[context:Context,strokeStyle:StrokeStyle];Establishesendpointandjointtreatmentforsubsequentstrokes.MaskStroke:PROC[context:Context,path:PathProc,closed:BOOL_FALSE];FillswiththecurrentcolorastrokewithcurrentstrokeWidthandstrokeStylealongapath.Ifclosed~FALSE,putsendpointsoftypestrokeStyle.endatbothendsofeachtrajectory.Ifclosed~TRUE,closeseachtrajectorywithalineifnecessary;therearenoendpoints.MaskStrokeTrajectory:PROC[context:Context,trajectory:Trajectory,closed:BOOL_FALSE];Fillsastrokealongatrajectory.MaskVector:PROC[context:Context,p1,p2:VEC];MaskVectorI:PROC[context:Context,x1,y1,x2,y2:INTEGER];Fillsastrokealongthelinejoiningp1andp2.MaskPixel:PROC[context:Context,pa:PixelArray];Usesapixelarrayasamask;pamusthaveonebitperpixel.MaskBits:PROC[context:Context,base:LONGPOINTER,wordsPerLine:NAT,sMin,fMin,sSize,fSize:NAT,sOffset,fOffset:INTEGER_0];Clip:PROC[context:Context,path:PathProc,parity,exclude:BOOL_FALSE];Clipssubsequentmaskstotheinteriorofaregiondescribed(asforMaskFill)byapath.Ifexclude~TRUE,clipstotheexterioroftheregioninsteadoftheinterior.Thisregionisitselfclippedbyanyclippingregionpreviouslyinforce.ClipOutline:PROC[context:Context,outline:Outline,parity,exclude:BOOL_FALSE];Clipstoanoutline.ClipRectangle:PROC[context:Context,x,y,w,h:REAL,exclude:BOOL_FALSE];ClipRectangleI:PROC[context:Context,x,y,w,h:INTEGER,exclude:BOOL_FALSE];Clipstotherectangle[x,y],[x+w,y],[x+w,y+h],[x,y+h].PrivateaccesstoimagervariablesNotallContextsimplementthese.Tobedevice-independent,clientsshouldavoidthem.IntKey:TYPE~{--forSetInt,GetIntpriorityImportant,noImage,strokeStyle,correctPass,int1,int2,int3--spares};sïg/îEtï_,îx uî;ï_,ï_,îôtï_,î¬uî9ï_,ï_,î tî 'ï_,ï_,î Šî#» î*ãî.— vï[Ýîx tînï[Ýï[Ýuîkï[Ýï[ÝîtîŽï[Ýï[Ýîñî!?î&Ï î.N qïZ5î‰ î|îýî¡î"Êî(Þî+ î1ÑvïVæîx tîÊïVæïVæuîÈïVæïVæîotîëïVæïVæîNîœî%+î(Ëî/uî3¨ïVæïVæî4atïVæî7Wuî8äïVæïVæî9�tî<‚ïVæïVæî<åqïU>î‰î˜î”îàîŽî õî"*î&9î)5î-ã î5“î87 î?6îBíïS—î\ïQðî‰îxî�ïQðïQðî?qî@ïQðïQðîîî$î%ªî(�î1ñî3–î6¨î9ºî;^î>… ïPHî‰îxî�ïPHïPHîHqî²ïPHïPHîŽîeî!Œ î'˜î*”î+Èî.lî/à î62î9�î;ñî=ä vïLùîxtîÿïLùïLùuîýïLùïLùî¤tî ïLùïLùî ƒî%Ñî+` î1ø î8èuî=�ïLùïLùî>ItïLùîA?uïKQî¬tîJïKQïKQî­qïIªî‰î˜îÌîÜî“îÈ vïF[îx tîËïF[ïF[uîÈïF[ïF[îptîëïF[ïF[îOîœî%,î'€uî)õïF[ïF[î*Àtî,DïF[ïF[î,§vïD³îx tîOïD³ïD³uîMïD³ïD³îôtîpïD³ïD³îÓî !î%°î'íî*+î,huî.ÆïD³ïD³î/0tî4ïD³ïD³î4iqïC î‰î˜îÌîÜî“îßî!ƒî&î'óî*—vï>îxtîâï>ï>uîàï>ï>î‡tîï>ï>îfî´î$Cî&­ qïî-Ìî/Ôî2(vï9îxtî3ï9ï9uî0ï9ï9îØtîSï9ï9î¶îî#”uî''ï9ï9î'áï9î+tî05ï9ï9î1 uî:Iï9ï9î;2tî<¾ï9ï9ï7vî¬îŒîaî ,uî$ ï7vï7vî$õtî&‚ï7vï7vî'^î,^uî1tï7vï7vî1Ýtï7vî78î8Åvï2€îxtîâï2€ï2€uîàï2€ï2€î‡tîï2€ï2€îfî³î Cî#ãî*î.guî3ìï2€ï2€î4¥tï2€î7œuî9)ï2€ï2€î9âtî<Çï2€ï2€î=*qï0Øî‰î îÒîìî ‘î"Ýî'ªî)Mî*‚î.¨î4zî6¬î8Ôî?'îAîB6ï/0î‰îxîyï/0ï/0î2qîœï/0ï/0îxî’î 7î"ƒî'‘î)4î+€î/¦î4<î5ßî8,ï-‰î‰î™î¿î+îsî!î"ßî%xî*�î.¶ î5î6¨vï*:îx tî]ï*:ï*:uî[ï*:ï*:îtî~ï*:ï*:îáî/î$¾î)ßî/7î3‡uî9 ï*:ï*:î9Åtï*:î<»uî>Hï*:ï*:î?tîAæï*:ï*:îBIqï(’î‰îî«îžvï%Cîx tîÈï%Cï%CuîÆï%Cï%Cîmtîéï%Cï%CîLî šî&)î'¶î)Cî+uî,âï%Cï%Cî-¶tî/ûï%Cï%Cî0Øuî6]ï%Cï%Cî7tï%Cî: uî;™ï%Cï%CîCï#›ï#›î>ýtîAáï#›ï#›îBEqï!ôî‰îî«î÷îÃîÔî!Äî&î(î,hî0uî2‡vïýî gî$îgî î¦qï®îxî1î+îãînî#¶î%Òî'¢î3gî7šî;àî?ttï_îxuî¦ï_ï_î_tï_îî¤qîÙï_ï_îRîPîxî"tï·î‰ïî‰ïhî‰ ïÀî‰ ïî‰î¯îÔqî¡ïïîîtï qTVm$r26RealKey:TYPE~{--forSetReal,GetRealDCScpx,DCScpy,mediumXSize,mediumYSize,fieldXMin,fieldYMin,fieldXMax,fieldYMax,strokeWidth,underlineStart,amplifySpace,correctShrink,correctMX,correctMY,correctTX,correctTY,real1,real2,real3--spares};SetInt:PROC[context:Context,key:IntKey,val:INT];SetReal:PROC[context:Context,key:RealKey,val:REAL];SetT:PROC[context:Context,m:Transformation];GetInt:PROC[context:Context,key:IntKey]RETURNS[INT];GetReal:PROC[context:Context,key:RealKey]RETURNS[REAL];GetT:PROC[context:Context]RETURNS[Transformation];GetFont:PROC[context:Context]RETURNS[Font];GetColor:PROC[context:Context]RETURNS[Color];GetCP:PROC[context:Context,rounded:BOOL_FALSE]RETURNS[VEC];END.******************************************************sïg/îEtï_,îxuî£ï_,ï_,î\tï_,îî¢qîÖï_,ï_,îPîMîuî#åtï]…î‰î\ï[Ýî‰ î ïZ6î‰ îš î« î%è ïX�î‰ ïVçî‰ïU@î‰ ïS™î‰ ïQñî‰ îÒ ïPJî‰ îd ïN£î‰îIîqîoïN£ïN£îèîætïLûî‰vïHîxtî,ïHïHuî*ïHïHîÑtîMïHïHî°îþî!�î$œî)¨uî,_ïHïHî,Étî.kïHïHî.ÎvïF^îxtî*ïF^ïF^uî(ïF^ïF^îÏtîKïF^ïF^î®îüî"‹î%šî+¤uî.ZïF^ïF^î/.tî1tïF^ïF^î1×vïD·îxtîgïD·ïD·uîeïD·ïD·î tîˆïD·ïD·îëî9î Èî"ðvïAhîxtîcïAhïAhuîaïAhïAhîtî„ïAhïAhîçî5î!Äî$Óuî)êïAhïAhî*¾tî/rïAhuïAhî/Õtî1àïAhïAhî2Dvï?Áîxtîaï?Áï?Áuî_ï?Áï?Áîtî‚ï?Áï?Áîåî3î"Âî%Ñuî+æï?Áï?Áî,ºtî1mï?Áuï?Áî1Ðtî4êï?Áï?Áî5Mvï>îxtîžï>ï>uîœï>ï>îDtî¿ï>ï>î"îpuî! ï>ï>î!Þtî&’ï>ï>î&õvï'îxtî¬ï>'ï>'uîªï>'ï>'îRtîÍï>'ï>'î0î~vï:ÙîxtîÅï:Ùï:ÙuîÃï:Ùï:Ùîjtîæï:Ùï:ÙîIî–î#&î&Æî,ûuî1lï:Ùï:Ùî2%tï:Ùî5uî6¨ï:Ùï:Ùî7atî:Fï:Ùï:Ùî;"uî@§ï:Ùï:ÙîA`tï:ÙîDWuï91î¬tîJï91ï91î­vï7Šîxtî«ï7Šï7Šuî©ï7Šï7ŠîPtîÌï7Šï7Šî/î#}î) î*™î,&î.uî/Åï7Šï7Šî0/tî5ï7Šï7Šî5áuî;fï7Šï7Šî<tï7Šî?uî@¢ï7Šï7ŠîA[tîD@ï7Šï7ŠîD£qï5ãî‰ îŸî_îî"²î%·vï2”îx tîï2”ï2”uîþï2”ï2”î¦tî!ï2”ï2”î„î Òî&aî'îuî)œï2”ï2”î*tî.Üï2”ï2”î/?vï/Eîx tîï/Eï/Euîï/Eï/EîÃtî?ï/Eï/Eî¢î!ðî'uî)Dï/Eï/Eî*tî+“ï/Eï/Euî,zï/Eï/Eî-Ntî2ï/Euï/Eî2dtî4³ï/Eï/Eî5vï-žîx tîï-žï-žuîï-žï-žîÃtî?ï-žï-žî¢î!ðî'uî)Dï-žï-žî*tî+“ï-žï-žuî,zï-žï-žî-Ntî2ï-žuï-žî2dtî4³ï-žï-žî5vï*Oîx tîŒï*Oï*OuîŠï*Oï*Oî2tî­ï*Oï*Oîî"^î'íuî)²ï*Oï*Oî*}tî,ï*Oï*Ouî,èï*Oï*Oî-¼tî2pï*Ouï*Oî2Ótî5"ï*Oï*Oî5…vï(¨îx tîŒï(¨ï(¨uîŠï(¨ï(¨î2tî­ï(¨ï(¨îî"^î'íuî)²ï(¨ï(¨î*}tî,ï(¨ï(¨uî,èï(¨ï(¨î-¼tî2pï(¨uï(¨î2Ótî5"ï(¨ï(¨î5…vï%Yîxtî<ï%Yï%Yuî:ï%Yï%Yîâtî]ï%Yï%YîÀî#î(�uî*bï%Yï%Yî+-tî,±ï%Yï%Yuî-˜ï%Yï%Yî.ltî3 ï%Yuï%Yî3ƒtî5Òï%Yï%Yî65vï#²îxtî<ï#²ï#²uî:ï#²ï#²îâtî]ï#²ï#²îÀî#î(�uî*bï#²ï#²î+-tî,±ï#²ï#²uî-˜ï#²ï#²î.ltî3 ï#²uï#²î3ƒtî5Òï#²ï#²î65uï cîxtîï cï crï ìî gð6ÿOTVm$³28ImagerPD.mesaCopyright(C)1983,1984,1985byXeroxCorporation.Allrightsreserved.MichaelPlass,December2,19833:17pmDougWyatt,January24,19854:16:00pmPSTDIRECTORYImagerUSING[Context],RopeUSING[ROPE];ImagerPD:CEDARDEFINITIONS~BEGINROPE:TYPE~Rope.ROPE;Context:TYPE~Imager.Context;Printer:TYPE~{nil,raven,hornet,gnat,plateMaker,reticleMaker,puffin,colorVersatec,spare1,spare2,spare3};Create:PROC[name:ROPE,printer:Printer]RETURNS[Context];CreateFromParameters:PROC[name:ROPE,deviceCode:CARDINAL,sResolution,fResolution:CARDINAL,--pixelsperinchimageSSize,imageFSize:CARDINAL,--pixelsnColors:CARDINAL,leftovers:BOOL,bandSSize:NAT,maxLoadWords:INT]RETURNS[Context];NewPage:PROC[Context];Close:PROC[Context];END.******************************************************sïg/îEqï_:îx ï]“îxîÅî:îØîvî!¼î#–î'® î0î2aî6/ï[ëî‰îËî«îùî!†î$Ìî'ÛïZDî‰î?î²î×î î#Zî(Cî*ŽuïVõîxtïUNî‰uî;ïUNïUNî!tïUNî… ïS§î‰uî>ïS§ïS§î$tïS§îˆuîëïS§ïS§î¿tîüïS§ïS§î_ïPXîxuî”ïPXïPXî_ïPXî* tïN±îxuîïN±ïN±î¾ïKbîxtî‰ïKbïKbuî‡ïKbïKbî@tïKbîùî…uîïKbïKbîâtîïKbïKbïI»îxuî)ïI»ïI»îâtïI»îšî'ïFlîxuîŽïFlïFlîGtïFlîîŒî¦îÉî$‡î'î î/� î7ëî'îxtîLï>'ï>'uîIï>'ï>'îñtî lï>'ï>'î Ïuî%ï>'ï>'î%Ütî(ï>'ï>'î(ö uî0Ùï>'ï>'î1¤tî7ï>'ï>'ï<€î¬ îx uî$[ï<€ï<€î%&tî*’ï<€ï<€qî+oï<€ï<€î+èî,æî0Çî3tï:Ùî¬ îA uî$ï:Ùï:Ùî$ãtî*Oï:Ùï:Ùqî++ï:Ùï:Ùî+¥î,¢tï91î¬uîPï91ï91îtî ‡ï91ï91î!c uî'kï91ï91î(%tî*—ï91ï91î+s uî2›ï91ï91î3„tî5ï91ï91î5í uî@eï91ï91î@ÏtîBpï91ï91uï7Šî¬tî3ï7Šï7Šî–vï4;îxtîï4;ï4;uîï4;ï4;î¬tî'ï4;ï4;îŠvï0íîxtî¾ï0íï0íuî¼ï0íï0íîdtîßï0íï0íîBuï-žîxtîï-žï-žrï ìî gð6ñTVm$%29ImagerTypeface.mesaCopyright(C)1985byXeroxCorporation.Allrightsreserved.DougWyatt,January26,19853:25:53pmPSTDIRECTORYAtomUSING[PropList],ImagerUSING[Context],ImagerFontUSING[Char,CorrectionType,Extents,VEC],RopeUSING[ROPE];ImagerTypeface:CEDARDEFINITIONS~BEGINOPENImagerFont;Typeface:TYPE~REFTypefaceRep;TypefaceRep:TYPE~RECORD[class:TypefaceClass,data:REF,propList:Atom.PropList_NIL];TypefaceClass:TYPE~REFTypefaceClassRep;TypefaceClassRep:TYPE~RECORD[Contains:PROC[self:Typeface,char:Char]RETURNS[BOOL],NextChar:PROC[self:Typeface,char:Char]RETURNS[next:Char],Width:PROC[self:Typeface,char:Char]RETURNS[VEC],Amplified:PROC[self:Typeface,char:Char]RETURNS[BOOL],Correction:PROC[self:Typeface,char:Char]RETURNS[CorrectionType],BoundingBox:PROC[self:Typeface,char:Char]RETURNS[Extents],Ligature:PROC[self:Typeface,char,successor:Char]RETURNS[Char],NextLigature:PROC[self:Typeface,char,successor:Char]RETURNS[Char],Kern:PROC[self:Typeface,char,successor:Char]RETURNS[VEC],NextKern:PROC[self:Typeface,char,successor:Char]RETURNS[Char],MaskChar:PROC[self:Typeface,char:Char,context:Imager.Context],propList:Atom.PropList_NIL];ROPE:TYPE~Rope.ROPE;Register:PROC[name:ROPE,fileName:ROPE,create:PROC[fileName:ROPE]RETURNS[Typeface]];Registersatypefacename;associatesafilenameandcreationprocedurewithit.Alias:PROC[alias:ROPE,for:ROPE];Registersanaliasforatypefacename.Find:PROC[name:ROPE]RETURNS[Typeface];Returnsthenamedtypeface.END.******************************************************sïg/îEqï_,îxï]…îxîÅî:î€îZî r î(Ýî+%î.òï[Ýî‰î?î²î×î î#Zî(Cî*ŽuïX�îxtïVçî‰uîjïVçïVçîOtïVçî³ ïU@î‰uî;ïU@ïU@î!tïU@î… ïS™î‰ uîïS™ïS™îùtïS™î]î ‹î*Áuî0ïS™ïS™î0Îtî2RïS™ïS™î2¶ïQñî‰uî>ïQñïQñî$tïQñîˆuîëïQñïQñî¿tîüïQñïQñî_ïN£îxuîïN£ïN£îÒïN£îœ tïLûîxuîïLûïLûî¾ïLûî<tïLûîæ ïI­îxuîÙïI­ïI­î’tïI­îKuîØïI­ïI­î¬tïI­î¢ ïHîx uîOïHïHîtïHîÀuîMïHïHî!tî!;ïHïHïF^î‰î3 ïD·î‰uîïD·ïD·îÜtîNïD·ïD·ïCî‰î’ îàuî!mïCïCî"UtïAhî‰ï>îx uîèï>ï>î¡tï>îZuîæï>ï>îºtï>î±ïî*’î.6î0Úî6 î<6î?2vïîxtîqïïuîoïïîtî’ïïîõuîˆïïî\tî™ïïîvuî ,ïïî!tî#=ïïî# qïiî‰îRîEîtîœîÑî$ vïîxtî#ïïuî!ïïîÈtîDïïî§uîàïïî´tîñïïuîØïïî¬tî#`ïïî#à qïsî‰îšîæî;uï%îxtîï%ï%rï ìî gð6ÿÉTVm$«30ImagerFontPrivate.mesaCopyright(C)1985byXeroxCorporation.Allrightsreserved.DougWyatt,February13,19854:46:51pmPSTDIRECTORYImagerUSING[Context],ImagerFontUSING[Char,CorrectionType,Font],ImagerTypefaceUSING[Typeface];ImagerFontPrivate:CEDARDEFINITIONS~BEGINOPENImagerFont;FontImpl:TYPE~REFFontImplRep;FontImplRep:TYPE~RECORD[typeface:ImagerTypeface.Typeface,widthX:REFWidths_NIL,widthY:REFWidths_NIL,info:REFInfo];Char8Code:TYPE~[0..256);Widths:TYPE~ARRAYChar8CodeOFREAL;Info:TYPE~PACKEDARRAYChar8CodeOFInfoRec;InfoRec:TYPE~RECORD[exists:BOOL,amplified:BOOL,correction:CorrectionType];MaskChar:PROC[font:Font,char:Char,context:Imager.Context];END.******************************************************sïg/îEqï_:îxï]“îxîÅî:î€îZî r î(Ýî+%î.òï[ëî‰î?î²îyî ·î#üî(åî+0uïX�îxtïVõî‰uî;ïVõïVõî!tïVõî… ïUNî‰ uîïUNïUNîùtïUNî]î ‹î*ÁïS§î‰ uîŸïS§ïS§î„tïS§îè ïPXîxuîŸïPXïPXîjïPXî4 tïN±îxuîïN±ïN±î¾ïN±î<tïN±îæ ïKbîxuî&ïKbïKbîßtïKbî˜uî%ïKbïKbîøtïKbîï ïI»îx uî›ïI»ïI»îUtïI»î uîšïI»ïI»întî!ˆïI»ïI»ïHî‰îrïFlî‰uîíïFlïFlîÁtïFlî¸î�uîïFlïFlî÷tî!ïFlïFlïDÅî‰uîíïDÅïDÅîÁtïDÅî·î€uî ïDÅïDÅîötî!ïDÅïDÅïCî‰uîåïCïCî¹tïCî°ïAvî‰ï<€îx uî:ï<€ï<€îótï<€î¬î8ï:Ùîxuî»ï:Ùï:Ùîttï:Ùî,uî¹ï:Ùï:Ùî�tï:Ùî`uî$¨ï:Ùï:Ùî%„ï:Ùî&Âtî)Ûï:Ùï:Ùï91îxuîõï91ï91î¯tï91îguîôï91ï91îœï91îDtï91î êuî(3ï91ï91î)tï91î*Lï7Šîxuî?ï7Šï7Šîøtï7Šî°uî=ï7Šï7Šîtî+ï7Šï7ŠîŽuî"¼ï7Šï7Šî#utî%çï7Šï7Šî&Ä uî-gï7Šï7Šî. tî0’ï7Šï7Šî1n î8_vï2”îxtî·ï2”ï2”uîµï2”ï2”î\tîØï2”ï2”î;î¢î Wî#àî'«î,ùuï/Eîxtîï/Eï/Erï ìî gð6ÿ¼TVm$ï31ImagerPixelArrayPrivate.mesaCopyright(C)1985byXeroxCorporation.Allrightsreserved.DougWyatt,January25,198511:09:39amPSTDIRECTORYAtomUSING[PropList],ImagerPixelArrayUSING[PixelArray,Sample];ImagerPixelArrayPrivate:CEDARDEFINITIONS~BEGINOPENImagerPixelArray;Val:TYPE~[0..377B];--asamplevalue,8bitsRow:TYPE~REFRowRep;RowRep:TYPE~RECORD[PACKEDSEQUENCEsize:NATOFVal];Samples:TYPE~RECORD[PACKEDSEQUENCECOMPUTEDCARDINALOFSample];UnsafeGetSamples:UNSAFEPROC[pa:PixelArray,s,f:INT,i:NAT,base:LONGPOINTERTOSamples,startIndex:INT_0,count:INT_INT.LAST]RETURNS[nSamplesRead:INT];PixelArrayClass:TYPE~REFPixelArrayClassRep;PixelArrayClassRep:TYPE~RECORD[type:ATOM,MaxSampleValue:PROC[pa:PixelArray,i:NAT]RETURNS[Val],GetSample:PROC[pa:PixelArray,s,f,i:NAT]RETURNS[Val],GetRow:PROC[pa:PixelArray,row:Row,s,f,i:NAT],propList:Atom.PropList];GetRow:PROC[pa:PixelArray,row:Row,s,f,i:NAT_0];FORk:NATIN[0..MIN[row.size,pa.fSize-f])DOrow[k]_GetSample[pa,s,f+k,i];ENDLOOP;END.******************************************************sïg/îEqï_,îxï]…îxîÅî:î€îZî r î(Ýî+%î.òï[Ýî‰î?î²î×î î#Zî(óî+>uïX�îxtïVçî‰uîjïVçïVçîOtïVçî³ ïU@î‰uî�ïU@ïU@îutïU@îÙ î'mïQñîxuîïQñïQñîæïQñî"° tïPJîxuîïPJïPJî¾ïPJî<tïPJîæïLûîxuî|ïLûïLûî5tïLûîîî{ qî–ïLûïLûîî îBî#¿î'¢î(×tïKTîxuî8ïKTïKTîñtïKTî©uî6ïKTïKTî tïKTîïI­îxuî­ïI­ïI­îftïI­îuî¬ïI­ïI­îtîšïI­uïI­îýïI­î$MtïI­î+uî.6ïI­ïI­î/ïI­î1/tïI­î3IïF^îxuî`ïF^ïF^îtïF^îÑuî^ïF^ïF^î2tîLïF^uïF^î°ïF^î#ÿïF^î*ÄïF^î1æïF^î8¡tïF^î:»vïCîxtîµïCïCuî²ïCïCî˜ïCîétî# ïCïCî#pî%Ú î- î.kuî/âïCïCî0Ltî1îïCïCî2Êuî4+ïCïCî5tî6 ïCïCïAhî¬uî?ïAhïAhîùïAhî0ïAhî!ÑtïAhî#ëî)± uî0¢ïAhïAhî1 tïAhî32î4¿î6Luî:œïAhïAhî;tïAhî=,uî>¹ïAhïAhî?#tî@ÄïAhuïAhîAtîDïAhïAhuï?Áî¬tî3ï?Áï?Áî– uî$_ï?Áï?Áî$Étî&kï?Áï?Áî&Îïîxtîfï>ï>uîdï>ï>îtï>îÕuîbï>ï>î6tîPï>uï>î³tî‡ï>ï>uîdï>tï>î7uîï>tï>îÍuî Êï>ï>î!žtî#äï>ï>î$Gqî%Eï>ï>î%¾î&¼î)Ì î0vî4Ýî6_î8Dtï:Ëîx uî$ï:Ëï:ËîÝtï:Ëî•uî"ï:Ëï:Ëîötï:Ëîíï9#îxuî™ï9#ï9#îRtï9#î uî˜ï9#ï9#îktî"†ï9#ï9#ï7|î‰îóî‰î5îžî3îßî"'î$œuî'Hï7|ï7|î(tî*aï7|ï7|qî+>ï7|ï7|î+·î,µ î3^î5Èî7mtï5Õî‰îóî\î¤î:îÏîCî!ðî$œuî'Hï5Õï5Õî(qï5Õî*åî,\ î3î6ƒî8(tï4-î‰uï0ßîxtîóï0ßï0ßuîñï0ßï0ßîªtï0ßîcuîðï0ßï0ßîÄtîÞï0ßï0ßîAî¢î.uî óï0ßï0ßî!Çtî$ ï0ßï0ßî$pqî%mï0ßï0ßî%çî&äî)�î-–uï/7îxtîÉï/7ï/7uîÆï/7ï/7îtï/7î8uîÅï/7ï/7î™tî³ï/7ï/7îî¹îuî Èï/7ï/7î!œtî#âï/7ï/7î$Eqî%Cï/7ï/7î%¼î&ºî)ª î0_uï-�îxtî·ï-�ï-�uî´ï-�ï-�întï-�î&uî³ï-�ï-�î‡tî¡ï-�ï-�îî¨îuî iï-�ï-�î!=tî#ƒï-�ï-�î#æqî$äï-�ï-�î%]î&[î)K î0vï*Aîxtî1ï*Aï*Auî.ï*Aï*AîÖtîQï*Auï*Aî´tî Îï*Aï*Auî!¶ï*Aï*Aî"‰tî'=ï*Auï*Aî' tî)Žï*Aï*Aî)ñvï(šîxtî1ï(šï(šuî.ï(šï(šîÖtîQï(šuï(šî´tî¢ï(šï(šuî Šï(šï(šî!^tî&ï(šuï(šî&ttî)Žï(šï(šî)ñvï%Kîx tî ï%Kï%Kuîï%Kï%Kî°tî+ï%Kï%KîŽuîˆï%Kï%Kî\tî!ï%Kï%Kî!àî$� î+³uî-@ï%Kï%Kî.(tî/Kï%Kï%Kuî03ï%Kï%Kî1tî5ºï%Kuï%Kî6tî8 ï%Kï%Kî8nvï#¤îx tî ï#¤ï#¤uîï#¤ï#¤î°tî+ï#¤ï#¤îŽuî0ï#¤ï#¤îûtî ï#¤ï#¤î úî#› î*Íuî,Zï#¤ï#¤î-Ctî.fï#¤ï#¤uî/Mï#¤ï#¤î0!tî4Ôï#¤uï#¤î58tî7³ï#¤ï#¤î8vï Uîx tî¥ï Uï Uuî£ï Uï UîKtîÆï Uuï Uî)tî¤ï Uï UuîŒï Uï Uî `tî%ï Uuï Uî%vtî'Çï Uï Uî(*vï®îx tî¥ï®ï®uî£ï®ï®îKtîÆï®uï®î)tîyï®ï®uîaï®ï®î 5tî$èï®uï®î%Ktî'Çï®ï®î(*vï_îx tîšï_ï_uî—ï_ï_î?tîºï_uï_îtî™ï_ï_uî€ï_ï_î Ttî%ï_uï_î%ktî'©ï_ï_î( vï¸îx tîšï¸ï¸uî—ï¸ï¸î?tîºï¸uï¸îtî\ï¸ï¸uîCï¸ï¸î tî$Ëï¸uï¸î%.tî'©ï¸ï¸î( vïiîx tîïiïiuîïiïiî¸tî3ïiuïiî–tî§ïiïiuî �ïiïiî!ctî&ïiuïiî&ytî(¸ïiïiî)vïÂîx tîïÂïÂuîïÂïÂî¸tî3ïÂïÂî–uîBïÂïÂî (tî!�ïÂïÂî"]uî&ïÂïÂî'tïÂî)î*£uî,:ïÂïÂî-tî1ÂïÂuïÂî2%tî56ïÂïÂî5™uïsîxtîüïsïsuîúïsïsîÎtïsî uïÌîxtîïÌïÌrï ìî gð6ÿTVm$r33ImagerColorOperatorPrivate.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January25,19852:31:50pmPSTDIRECTORYAtomUSING[PropList],ImagerColor;ImagerColorOperatorPrivate:CEDARDEFINITIONS~BEGINOPENImagerColor;ColorOperatorClass:TYPE~REFColorOperatorClassRep;ColorOperatorClassRep:TYPE~RECORD[type:ATOM,ColorFromPixel:PROC[op:ColorOperator,s:PixelProc]RETURNS[Color],GrayFromPixel:PROC[op:ColorOperator,s:PixelProc]RETURNS[REAL],propList:Atom.PropList_NIL];SampleMap:TYPE~REFSampleMapRep;SampleMapRep:TYPE~RECORD[SEQUENCEsize:CARDINALOFREAL];BlackDataRep:TYPE~RECORD[clear:BOOL];GrayLinearDataRep:TYPE~RECORD[sWhite,sBlack:REAL,map:SampleMap_NIL];GrayVisualDataRep:TYPE~RECORD[sWhite,sBlack:REAL,map:SampleMap_NIL];GrayDensityDataRep:TYPE~RECORD[sWhite,sBlack:REAL,dWhite,dBlack:REAL,map:SampleMap_NIL];ColorDensityDataRep:TYPE~RECORD[sWhite,sBlack:REAL,dWhite,dBlack:REAL,map:SampleMap_NIL];MapDataRep:TYPE~RECORD[SEQUENCEsize:CARDINALOFConstantColor];BuildMapDataRep:TYPE~RECORD[op:ColorOperator,size:CARDINAL,samples:SEQUENCEnSamples:CARDINALOFCARDINALsïg/îEqï_,îxï]„îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Ýî‰î?î²î×î î#Zî(Cî*ŽuïXŽîxtïVæî‰uîjïVæïVæîOtïVæî³ ïU?î‰ ïQðîxuî zïQðïQðî!EïQðî% tïPHîxuîïPHïPHî¾ïPHî<tïPHîæ ïLùîxuî8ïLùïLùîòtïLùîªuî 7ïLùïLùî! tïLùî#ïKRîxuî®ïKRïKRîgtïKRî!uî"¬ïKRïKRî#€tî'šïKRïKRïIªî‰uîïIªïIªîætî�ïIªïIªvïHî‰ tîïHïHuîïHïHî½tî9ïHïHîœî! î*¬î,. uî2¯ïHïHî3ƒtî87ïHïHî8švïF[î‰ tîµïF[ïF[uî²ïF[ïF[îZtîÕïF[ïF[î8î ¸ î*Iî+Ë uî2LïF[ïF[î3 tî7ÓïF[uïF[î86tî;PïF[ïF[î;³ïD´î‰î’ îàuî!mïD´ïD´î"UtïC î‰ï?½îx uîžï?½ï?½îWtï?½îuîœï?½ï?½îptï?½îg ï>îx uîï>ï>îÌtï>î…uîï>ï>îætî#ï>uï>î#ctï>î*'uî-Lï>ï>î.ï>î4ï>î6!tî9:ï>ï>î9�ï:Çîx uî ï:Çï:ÇîÃtï:Çî|uî ï:Çï:ÇîÝtî!÷ï:Çï:Çî"Zuî&%ï:Çï:Çî&Þtî)Pï:Çï:Çî)³ï7xîxuî¨ï7xï7xîatï7xîuî §ï7xï7xî!{tî%•ï7xï7xï5Ðî‰î‰uîQï5Ðï5Ðî%tîkï5Ðï5Ðï4)î‰îîÉuîVï4)ï4)î?tï2�î‰ï/2îxuî}ï/2ï/2î6tï/2îîuî {ï/2ï/2î!Otî%iï/2ï/2ï-‹î‰î‰uîQï-‹ï-‹î%tîkï-‹ï-‹ï+ãî‰îîÉuîVï+ãï+ãî?tï*;î‰ï&ìîxuîZï&ìï&ìîtï&ìîËuî!Xï&ìï&ìî",tî&Fï&ìï&ìï%Eî‰î‰uîQï%Eï%Eî%tîkï%Eï%Eï#�î‰îÌuî×ï#�ï#�î«tîðï#�ï#�ï!öî‰îîÉuîVï!öï!öî?tï Nî‰ïÿîxuî²ïÿïÿîktïÿî #uî!°ïÿïÿî"„tî&žïÿïÿïXî‰î‰uîQïXïXî%tîkïXïXï°î‰îÌuî×ï°ï°î«tîðï°ï°ï î‰îîÉuîVï ï î?tïaî‰ïîx uî†ïïî?tïîøuî…ïïîYtî!sïuïî!Ötïî(šuî+¿ïïî,Šïî2ztïî4”ïÃîxuîÂïÃïÃî{tïÃî3uîÀïÃïÃî ”tî$®ïÃïÃïî‰î ï tî‰uî®ï tï tîytîåï tï tï Íî‰uî.ï Íï ÍîÍtï Íîóuî#¡ï Íï Íî$lï Íî*\ï Íî,vÿ6TVm$]34nSamples=op.samplesPerPixel*size];END.******************************************************sïg/îEqï_,îšî³î˜tï]…î‰uïX�îxtîïX�ïX�rï ìî gð6^TVm$*35ImagerPrivate.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January24,19856:41:23pmPSTDIRECTORYAtomUSING[PropList],ImagerUSING[Color,ColorOperator,Context,Font,IntKey,Outline,PathProc,PixelArray,RealKey,StringProc,StrokeStyle,Transformation,VEC];ImagerPrivate:CEDARDEFINITIONS~BEGINOPENImager;Clipper:TYPE~REFClipperRep;--forSetClipper,GetClipperClipperRep:TYPE~RECORD[rest:Clipper,outline:Outline,parity:BOOL,exclude:BOOL];StrokeDashes:TYPE~REFStrokeDashesRep;StrokeDashesRep:TYPE~RECORD[begin,repeat,end:DashPattern_NIL];DashPattern:TYPE~LISTOFDashSpec;DashSpec:TYPE~RECORD[style:StrokeStyle,width,length,stretch:REAL];Class:TYPE~REFClassRep;ClassRep:TYPE~RECORD[type:ATOM_,DoSave:PROC[context:Context,action:PROC,all:BOOL]_,SetInt:PROC[context:Context,key:IntKey,val:INT]_,SetReal:PROC[context:Context,key:RealKey,val:REAL]_,SetT:PROC[context:Context,m:Transformation]_,SetFont:PROC[context:Context,font:Font]_,SetColor:PROC[context:Context,color:Color]_,SetClipper:PROC[context:Context,clipper:Clipper]_,SetStrokeDashes:PROC[context:Context,strokeDashes:StrokeDashes]_,GetInt:PROC[context:Context,key:IntKey]RETURNS[INT]_,GetReal:PROC[context:Context,key:RealKey]RETURNS[REAL]_,GetT:PROC[context:Context]RETURNS[Transformation]_,GetFont:PROC[context:Context]RETURNS[Font]_,GetColor:PROC[context:Context]RETURNS[Color]_,GetClipper:PROC[context:Context]RETURNS[Clipper]_,GetStrokeDashes:PROC[context:Context]RETURNS[StrokeDashes]_,ConcatT:PROC[context:Context,m:Transformation]_,Scale2T:PROC[context:Context,s:VEC]_,RotateT:PROC[context:Context,a:REAL]_,TranslateT:PROC[context:Context,t:VEC]_,Move:PROC[context:Context,rounded:BOOL]_,SetXY:PROC[context:Context,p:VEC]_,SetXYRel:PROC[context:Context,v:VEC]_,GetCP:PROC[context:Context,rounded:BOOL]RETURNS[VEC]_,Show:PROC[context:Context,string:StringProc,xrel:BOOL]_,sïg/îEqï_:îxï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(Cî*ŽuïXœîxtïVôî‰uîjïVôïVôîOtïVôî³ ïUMî‰uî;ïUMïUMî!tïUMî…î î'°î-@î0ôî6î;YïS¥î½ îîî#ø î+ î2¶uî<ÊïS¥ïS¥î=•tî?ïS¥ïS¥î?|ïPVîx uîÆïPVïPVî‘ïPVî\ tïN¯îxuîïN¯ïN¯î¾ïN¯î<tïN¯îæïK`îxuîñïK`ïK`î«tïK`îcuîðïK`ïK`îÄtïK`îº qî#©ïK`ïK`î$"î% î'H î.P tïI¸îx uîgïI¸ïI¸î tïI¸îØuîeïI¸ïI¸î9tî SïI¸ïI¸ïHî‰î¤ïFiî‰îªïDÂî‰uîúïDÂïDÂî³tî%ïDÂïDÂïCî‰uîïCïCîÇtïAsî‰ï>$îx uî†ï>$ï>$î?tï>$î÷uî„ï>$ï>$îXtï>$îOï<|îxuîûï<|ï<|î´tï<|îmuîùï<|ï<|îÍtî#çï<|ï<|î$Kî(nî,õî0% î7þuî9‹ï<|ï<|î:ttî;—ï<|ï<|î;úï:Ôîx uîËï:Ôï:Ôî„tï:Ôî<uîÉï:Ôï:Ôî‚ï:ÔîÉtï:Ôî âï9-îxuîTï9-ï9-î tï9-îÆuîRï9-ï9-î&tîAï9-ï9-î¤î#M î*ïî/)î3ºuî8¥ï9-ï9-î9ytî;¿ï9-ï9-î<"ï5Þîxuî…ï5Þï5Þî>tï5Þîöuîƒï5Þï5ÞîWtï5ÞîNï46îxuîúï46ï46î³tï46îluîøï46ï46îÌtîçï46ï46ï2�î‰uîï2�ï2�îætï2�îvï0çî‰tî%ï0çï0çuî#ï0çï0çîÊtîFï0çï0çî©î÷î$†uî)ï0çï0çî)¿tî,;ï0çï0çî-uî/�ï0çï0çî0:tî2¬ï0çï0çî3“vï/@î‰tî=ï/@ï/@uî;ï/@ï/@îãtî^ï/@ï/@îÁîî#žî&­î+ºuî.pï/@ï/@î.Útî0|ï/@ï/@î1cvï-˜î‰tî;ï-˜ï-˜uî9ï-˜ï-˜îátî\ï-˜ï-˜î¿î î$œî'«î-µuî0lï-˜ï-˜î1?tî3…ï-˜ï-˜î4mvï+ñî‰tîxï+ñï+ñuîvï+ñï+ñîtî™ï+ñï+ñîüîJî"Ùî%î/ vï*Iî‰tîQï*Iï*IuîNï*Iï*Iîötîqï*Iï*IîÔî"î$²î(î+Ùvï(¢î‰tîÖï(¢ï(¢uîÓï(¢ï(¢î{tîöï(¢ï(¢îYî§î%7î)-î-pvï&úî‰ tîÈï&úï&úuîÆï&úï&úîntîéï&úï&úîLî šî&)î+@î0£vï%Sî‰tî¾ï%Sï%Suî¼ï%Sï%Sîctîßï%Sï%SîBî$�î* î2ê î;ávï#«î‰tîtï#«ï#«uîrï#«ï#«îtî•ï#«ï#«îøîFî#Õî&äuî+üï#«ï#«î,Ðtî1ƒï#«uï#«î1ætî3òï#«ï#«î4Ùvï"î‰tîrï"ï"uîpï"ï"îtî“ï"ï"îöîDî$Óî'âuî-÷ï"ï"î.Ëtî3~ï"uï"î3átî6ûï"ï"î7âvï \î‰tî¯ï \ï \uî­ï \ï \îUtîÐï \ï \î3î�uî#ï \ï \î#ïtî(£ï \ï \î)î3%vï´î‰tîˆï´ï´uî…ï´ï´î-tî¨ï´ï´î îYuî$ôï´ï´î%Ètî*{ï´ï´î*Þî.žvï î‰tî ï ï uî ï ï î²tî-ï ï î�îÞuî%yï ï î&Mtî+ï ï î+cî/¦vïeî‰ tîïeïeuîýïeïeî¥tî ïeïeîƒî Ñuî&kïeïeî'?tî+óïeïeî,Vî1¹vï¾î‰tîõï¾ï¾uîóï¾ï¾îštîï¾ï¾îyî$Çuî*aï¾ï¾î+5tî/èï¾ï¾î0K î9Cvïî‰tî¶ïïuî³ïïî[tîÖïïî9î‡î%î'>î1^vïoî‰tîhïoïouîfïoïoîtî‰ïoïoîìî:î$Éuî&Kïoïoî'tî(šïoïoî)‚vïÇî‰tîïÇïÇuî|ïÇïÇî$tîŸïÇïÇîîPî$àuî&ƒïÇïÇî'Wtî)œïÇïÇî*„vï î‰ tî"ï ï uî ï ï îÇtîCï ï î¦î ôî&ƒuî'ðï ï î(ºtî*>ï ï î+&vïxî‰tîåïxïxuîãïxïxî‹tîïxïxîiî·î#Fuî)Eïxïxî)þtî,pïxïxî-WvïÑî‰tîuïÑïÑuîsïÑïÑîtî–ïÑïÑîùîGî#Öuî%›ïÑïÑî&ftî'êïÑïÑî(Ñvï)î‰tî|ï)ï)uîyï)ï)î!tîœï)ï)îÿî Mî%Ýuî'‹ï)ï)î(Vtî)Úï)ï)î*Ávï ‚î‰tî–ï ‚ï ‚uî”ï ‚ï ‚î;tî·ï ‚ï ‚îîhî#÷uî)õï ‚ï ‚î*¯tî- ï ‚ï ‚uî.ï ‚ï ‚î.Ütî3�ï ‚uï ‚î3òtî6Aï ‚ï ‚î7)vï Úî‰tîÄï Úï ÚuîÂï Úï Úîitîäï Úï ÚîHî•î#%î't î.‘uî1Ìï Úï Úî2…tî4÷ï Úï Úî5Þÿ8TVm$36ShowText:PROC[context:Context,text:REFREADONLYTEXT,start,len:NAT,xrel:BOOL]_,StartUnderline:PROC[context:Context]_,MaskUnderline:PROC[context:Context,dy,h:REAL]_,CorrectMask:PROC[context:Context]_,CorrectSpace:PROC[context:Context,v:VEC]_,Space:PROC[context:Context,x:REAL]_,SetCorrectMeasure:PROC[context:Context,v:VEC]_,SetCorrectTolerance:PROC[context:Context,v:VEC]_,Correct:PROC[context:Context,action:PROC]_,DontCorrect:PROC[context:Context,action:PROC,saveCP:BOOL]_,SetGray:PROC[context:Context,f:REAL]_,SetSampledColor:PROC[context:Context,pa:PixelArray,m:Transformation,colorOperator:ColorOperator]_,MaskFill:PROC[context:Context,path:PathProc,parity:BOOL]_,MaskRectangle:PROC[context:Context,x,y,w,h:REAL]_,MaskRectangleI:PROC[context:Context,x,y,w,h:INTEGER]_,MaskStroke:PROC[context:Context,path:PathProc,closed:BOOL]_,MaskVector:PROC[context:Context,p1,p2:VEC]_,MaskPixel:PROC[context:Context,pa:PixelArray]_,MaskBits:PROC[context:Context,base:LONGPOINTER,wordsPerLine:NAT,sMin,fMin,sSize,fSize:NAT,sOffset,fOffset:INTEGER]_,Clip:PROC[context:Context,path:PathProc,parity:BOOL,exclude:BOOL]_,ClipRectangle:PROC[context:Context,x,y,w,h:REAL,exclude:BOOL]_,ClipRectangleI:PROC[context:Context,x,y,w,h:INTEGER,exclude:BOOL]_,propList:Atom.PropList_NIL];SetClipper:PROC[context:Context,clipper:Clipper];SetStrokeDashes:PROC[context:Context,strokeDashes:StrokeDashes];GetClipper:PROC[context:Context]RETURNS[Clipper];GetStrokeDashes:PROC[context:Context]RETURNS[StrokeDashes];END.******************************************************sïg/îEvï_,î‰tî‘ï_,ï_,uî�ï_,ï_,î7tî²ï_,ï_,îî cî%òuî)#ï_,ï_,î)÷ï_,î+îï_,î3 tî6 ï_,ï_,î6æî:Nuî=ï_,ï_,î>tî?�ï_,ï_,î@luï]…î½tîèï]…ï]…îÏvï[Ýî‰ tî]ï[Ýï[ÝuîZï[Ýï[Ýîtî}ï[Ýï[Ýîàî#.î(ÈvïZ6î‰ tî´ïZ6ïZ6uî²ïZ6ïZ6îZtîÕïZ6ïZ6î8î#†î)î+iuî-.ïZ6ïZ6î.tî0GïZ6ïZ6î1/vïX�î‰ tî`ïX�ïX�uî^ïX�ïX�îtî�ïX�ïX�îäî"2î'ÌvïVçî‰ tî�ïVçïVçuîŠïVçïVçî2tî­ïVçïVçîî"^î'îuî)œïVçïVçî*gtî+ëïVçïVçî,ÒvïU@î‰tîïU@ïU@uîïU@ïU@î·tî2ïU@ïU@î•îãî#suî%!ïU@ïU@î%ôtî(:ïU@ïU@î)"vïS™î‰tî+ïS™ïS™uî(ïS™ïS™îÐtî KïS™ïS™î ®î%üî+Œuî-:ïS™ïS™î.tî/‰ïS™ïS™î0pvïQñî‰tîòïQñïQñuîðïQñïQñî—tî!ïQñïQñî!vî&Äî,Suî.ïQñïQñî.Ìtî0PïQñïQñî18vïPJî‰tîïPJïPJuîïPJïPJîªtî%ïPJïPJîˆîÖî$fuî(÷ïPJïPJî)Ÿtî,ïPJïPJî-vïN£î‰ tîïN£ïN£uîïN£ïN£î­tî(ïN£ïN£î‹î!Ùî'iuî+ûïN£ïN£î,¢tî/ïN£ïN£î/úuî5FïN£ïN£î6tî8qïN£ïN£î9YvïLûî‰tîrïLûïLûuîpïLûïLûîtî“ïLûïLûîöîDî$Óuî&JïLûïLûî'tî)dïLûïLûî*KvïKTî‰tîàïKTïKTuîÝïKTïKTî…tîïKTïKTîcî$±î*Aî,« ïI­î½îäî"ù î,G î5ãvïHî‰tîëïHïHuîéïHïHî�tî ïHïHîoî¼î%Lî(ìî/!uî3’ïHïHî4Ktî6½ïHïHî7¤vïF^î‰ tîËïF^ïF^uîÉïF^ïF^îqtîìïF^ïF^îOî#�î),î*¹î,Fî. uî/åïF^ïF^î0¹tî2þïF^ïF^î3ævïD·î‰ tîPïD·ïD·uîMïD·ïD·îõtîpïD·ïD·îÓî$!î)±î+=î,Êî.¤uî0iïD·ïD·î0Ótî5©ïD·ïD·î6�vïCî‰ tîÛïCïCuîÙïCïCî�tîüïCïCî_î!­î'<î*Üî1uî5¹ïCïCî6rtî8äïCïCî9ÌvïAhî‰ tîÜïAhïAhuîÚïAhïAhî�tîýïAhïAhî`î!®î'=î)‘uî,ïAhïAhî,Ñtî.UïAhïAhî/<vï?Áî‰tîóï?Áï?Áuîñï?Áï?Áî˜tîï?Áï?Áîwî Åî&Tî(¾ î/úvï>î‰tîDï>ï>uîAï>ï>îétîdï>ï>îÈî î%¥uî)9ï>ï>î)òï>î-)tî2Fï>ï>î3" uîï>î=Ctî>Ðï>ï>ï9vï9#î‰ tîÙï9#ï9#uî×ï9#ï9#îtîúï9#ï9#î]î"«î(:î)Çî+Tî-.uî.óï9#ï9#î/Çtî2 ï9#ï9#î2éuî8nï9#ï9#î9'tî;™ï9#ï9#î<€vï7|î‰ tî^ï7|ï7|uî[ï7|ï7|îtî~ï7|ï7|îáî#/î(¿î*Kî+Øî-²uî/wï7|ï7|î/átî4·ï7|ï7|î5”uî;ï7|ï7|î;Òtî>Cï7|ï7|î?+ï5Õî‰î’ îàuî!mï5Õï5Õî"Utï4-î‰vï/7îx tî·ï/7ï/7uîµï/7ï/7î]tîØï/7ï/7î;î‰î$î)/vï-�îxtî­ï-�ï-�uîªï-�ï-�îRtîÍï-�ï-�î1î"~î( î0Ù vï*Aîx tîîï*Aï*Auîìï*Aï*Aî”tîï*Aï*AîrîÀuî$Zï*Aï*Aî%.tî)âï*Aï*Aî*Evï(šîxtîäï(šï(šuîâï(šï(šî‰tîï(šï(šîhî"µuî(Pï(šï(šî)$tî-×ï(šï(šî.: uï%Kîxtîï%Kï%Krï ìî gð6TVm$37ImagerState.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January23,198510:30:48pmPSTDIRECTORYBasicsUSING[BITAND,BITOR],ImagerUSING[Color,ColorOperator,Context,Font,IntKey,PathProc,PixelArray,RealKey,Transformation,VEC],ImagerPrivateUSING[Clipper,StrokeDashes];ImagerState:CEDARDEFINITIONSIMPORTSBasics~BEGINOPENImager,ImagerPrivate;Flags:TYPE~RECORD[T:BOOL_FALSE,clipper:BOOL_FALSE,font:BOOL_FALSE,color:BOOL_FALSE,priorityImportant:BOOL_FALSE,strokeWidth:BOOL_FALSE,strokeStyle:BOOL_FALSE,strokeDashes:BOOL_FALSE,amplifySpace:BOOL_FALSE,unused:[0..177B]_0];noFlags:Flags~[];OrFlags:PROC[f1,f2:Flags]RETURNS[Flags]~INLINE{RETURN[LOOPHOLE[Basics.BITOR[LOOPHOLE[f1],LOOPHOLE[f2]]]];};AndFlags:PROC[f1,f2:Flags]RETURNS[Flags]~INLINE{RETURN[LOOPHOLE[Basics.BITAND[LOOPHOLE[f1],LOOPHOLE[f2]]]];};PersistentVariables:TYPE~RECORD[cp:VEC_[0,0],--currentposition,viewcoordscorrectMeasure:VEC_[0,0],--targetlinemeasureforCorrect,viewcoordscorrectMaskCount:INT_0,--tallynumberofCorrectMaskcallsinpass1correctSum:VEC_[0,0],--tallyadjustablespacefromCorrectSpacecallsinpass1correctMask:VEC_[0,0],--spaceinsertedbyeachCorrectMaskcallinpass2correctSpace:VEC_[0,0]--adjustmentfactorsforeachCorrectSpacecallinpass2];NonPersistentVariables:TYPE~RECORD[flags:Flags_[],priorityImportant:INT_0,--ifnonzero,priorityofmasksisimportantmediumSize:VEC_[0,0],--sizeofmedium,inmetersfieldMin:VEC_[0,0],--minimumxandyoffield,inmeterssïg/îEqï_:îxï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(óî+>uïXœîxtïVôî‰uî¡ïVôïVôî‡tïVôîëuîNïVôïVôîtîËïVôïVôuî¨ïVôïVôîatî"4ïVôïVôî"˜ïUMî‰uî;ïUMïUMî!tïUMî…î î'°î-@î0ôî6î<6 ïS¥î½îÇuî&ÛïS¥ïS¥î'¦tî)*ïS¥ïS¥î)�ïQþî‰ uî^ïQþïQþîDtïQþî¨î#c ïN¯îx uî“ïN¯ïN¯î^ïN¯î( ïMîxtïMî(ïK`îxuîïK`ïK`î¾ïK`î<tïK`îæîð ïHîxuîšïHïHîTtïHî uî™ïHïHîmtî‡ïHïHïFiî‰uînïFiïFiî(tïFiîuî«ïFiïFiîdtîIïFiïFiïDÂî‰uî ïDÂïDÂîYtïDÂîOuîÜïDÂïDÂî•tîzïDÂïDÂïCî‰uîñïCïCîªtïCî uî-ïCïCîætîËïCïCïAsî‰uî€ïAsïAsî9tïAsî/uî¼ïAsïAsîutîZïAsïAsï?Ëî‰uîöï?Ëï?Ëî¯tï?Ëî¥uî!2ï?Ëï?Ëî!ëtî$Ðï?Ëï?Ëï>$î‰ uîÛï>$ï>$î”tï>$îŠuîï>$ï>$îÐtî!µï>$ï>$ï<|î‰ uî ï<|ï<|îÂtï<|î¹uîEï<|ï<|îÿtî ãï<|ï<|ï:Ôî‰ uîTï:Ôï:Ôî tï:Ôîuî�ï:Ôï:ÔîItî".ï:Ôï:Ôï9-î‰ uî�ï9-ï9-î:tï9-î0uî½ï9-ï9-îvtî"[ï9-ï9-ï7…î‰îÌîoîüï5Þî‰ï2�îxîîÅîRvï/@îxtîLï/@ï/@uîJï/@ï/@îñtîmï/@ï/@îÐîÖîýuî ï/@ï/@î Ýtî%‘ï/@ï/@î%ôî*uî+�ï/@ï/@î+÷tï/@î0(uï-˜î‰tîrï-˜uï-˜îÕtî#ï-˜ï-˜î†uî qï-˜ï-˜î!*tî#þï-˜uï-˜î$atî*°ï-˜ï-˜î+uî-|ï-˜ï-˜î.5tî3Ëï-˜ï-˜î4.ï+ñî‰vï(¢îxtîï(¢ï(¢uîï(¢ï(¢î¬tî'ï(¢ï(¢îŠî�î¸uî Äï(¢ï(¢î!˜tî&Kï(¢ï(¢î&®î*ºuî,Gï(¢ï(¢î,±tï(¢î0âuï&úî‰tîrï&úuï&úîÕtî#ï&úï&úî†uî qï&úï&úî!*tî$ïï&úuï&úî%Rtî+¡ï&úï&úî,uî.mï&úï&úî/&tî4¼ï&úï&úî5ï%Sî‰ï \îxuîªï \ï \îctï \îuî©ï \ï \î }tî$—ï \ï \ï´î‰uîéï´ï´î´tï´î¼îIî9qî)ï´ï´î¢î î!Nî&µî)¹tï î‰uî«ï ï îvtï î~î î ûqî"ëï ï î#dî$bî(Fî*êî00î2Xî7‘î:•tïeî‰uî…ïeïeîïtïeîî ¢qî"/ïeïeî"¨î#¦î&¶î+›î-? î5pî8Šî:0î=tï¾î‰ uîMï¾ï¾îtï¾î î­î�qî �ï¾ï¾î!î"î% î+lî/ î2I î:�î=·î?]îBKtïî‰ uîÐïïî›tïî£î0î qî!ïïî!‰î"‡î&&î++î-î0, î8]î:óî<™î?†tïoî‰ uî ïoïoîÓtïoîÜîiîYqî ñïoïoî!jî"h î)@î-¨î/Ðî2÷ î;Kî=àî?†îBttïÇî‰ïxîxuîOïxïxîtïxî Àuî"Mïxïxî#!tî';ïxïxïÑî‰î>îçîsï)î‰uîöï)ï)î_tï)î…î qî!Ÿï)ï)î"î#î$lî)áî.ªî0Nî4hî5Ótï ‚î‰ uîÛï ‚ï ‚î¦tï ‚î®î;î+qî!ï ‚ï ‚î!”î"’î%3î&×î,Jî-ðtï Úî‰uî³ï Úï Úî~tï Úî†îîqîóï Úï Úîlî jî&rî'½î*`î+Šî-.î0Šî20ÿ™TVm$¨38fieldMax:VEC_[0,0],--maximumxandyoffield,inmetersnoImage:INT_0,--ifnonzero,don'timagemasksstrokeWidth:REAL_0,--strokewidth,clientcoordsstrokeStyle:INT_0,--strokeendandjointtreatmentunderlineStart:REAL_0,--startingxpositionforunderline,clientcoordsamplifySpace:REAL_1.0,--multiplieswidthofamplifiedcharacterscorrectPass:INT_0,--whichpass,duringCorrectcorrectShrink:REAL_0.5,--allowablespaceshrinkcorrectTolerance:VEC_[0,0]--tolerabledeviationfromcorrectMeasure,viewcoords];ContainsnoREFs,socanbecopiedwithblocktransfers.State:TYPE~REFStateRep;StateRep:TYPE~RECORD[flags:Flags_[],p:PersistentVariables_[],--persistentvariablesnp:NonPersistentVariables_[],--non-persistentvariablesotherthanREFsbelowT:Transformation_NIL,--currenttransformation(mutable!)font:Font_NIL,--current"showVec"color:Color_NIL,--currentcolorclipper:Clipper_NIL,--currentclippingoutlinestrokeDashes:StrokeDashes_NIL--currentdashpatternforstrokes];StateDoSave:PROC[context:Context,action:PROC,all:BOOL];StateSetInt:PROC[context:Context,key:IntKey,val:INT];StateSetReal:PROC[context:Context,key:RealKey,val:REAL];StateSetT:PROC[context:Context,m:Transformation];StateSetFont:PROC[context:Context,font:Font];StateSetColor:PROC[context:Context,color:Color];StateSetClipper:PROC[context:Context,clipper:Clipper];StateSetStrokeDashes:PROC[context:Context,strokeDashes:StrokeDashes];StateGetInt:PROC[context:Context,key:IntKey]RETURNS[INT];StateGetReal:PROC[context:Context,key:RealKey]RETURNS[REAL];StateGetT:PROC[context:Context]RETURNS[Transformation];StateGetFont:PROC[context:Context]RETURNS[Font];StateGetColor:PROC[context:Context]RETURNS[Color];StateGetClipper:PROC[context:Context]RETURNS[Clipper];StateGetStrokeDashes:PROC[context:Context]RETURNS[StrokeDashes];StateConcatT:PROC[context:Context,m:Transformation];StateScale2T:PROC[context:Context,s:VEC];StateRotateT:PROC[context:Context,a:REAL];StateTranslateT:PROC[context:Context,t:VEC];StateMove:PROC[context:Context,rounded:BOOL];StateSetXY:PROC[context:Context,p:VEC];StateSetXYRel:PROC[context:Context,v:VEC];StateGetCP:PROC[context:Context,rounded:BOOL]RETURNS[VEC];StateStartUnderline:PROC[context:Context];StateMaskUnderline:PROC[context:Context,dy,h:REAL];StateCorrectMask:PROC[context:Context];StateCorrectSpace:PROC[context:Context,v:VEC];sïg/îEtï_,î‰uîßï_,ï_,îªtï_,î²î?î/qîï_,ï_,î˜î –î&óî(?î*âî, î-¯î1 î2²tï]„î‰uî²ï]„ï]„îtï]„îBîÏqî\ï]„ï]„îÕîÓî)î$�î( î,tï[Ýî‰ uîÛï[Ýï[Ýî¯tï[Ýîyîqî“ï[Ýï[Ýî î! î%î)î,ÌtïZ5î‰ uî ïZ5ïZ5îstïZ5î™î&qî³ïZ5ïZ5î,î*î#9î%Çî(kî+”tïXŽî‰uîïXŽïXŽîÚtïXŽî¤î1qî ¾ïXŽïXŽî!7î"5î'$î(oî-~î/¦ î5íî9œtïVæî‰ uî�ïVæïVæîUtïVæîî¬qî!@ïVæïVæî!ºî"· î(Ûî,‡î.*î4 tïU?î‰ uîïU?ïU?î~tïU?î¤î1qî¾ïU?ïU?î7î5î#î&^î*¦tïS—î‰ uîŒïS—ïS—î`tïS—î*î·qî!LïS—ïS—î!Åî"Ãî(´î,StïQðî‰uîqïQðïQðî<tïQðîDîÑî!Áqî#YïQðïQðî#Òî$Ðî*Vî0î3Tî=*î@.tïPHî‰qïN¡î‰îAî4îbîî ©î"xî&§î)¢î-M tïKRîxuîeïKRïKRîtïKRî×uîdïKRïKRî8tïKRî.ïIªîxuîÛïIªïIªî”tïIªîLuîÙïIªïIªî­tîÇïIªïIªïHî‰î>îçîsïF[î‰îNîî”qî!6ïF[ïF[î!°î"­ î(§tïD´î‰îî!rî"ÿqî$¢ïD´ïD´î%î& î.¹î4Sî7Óî:óî>ÉtïC î‰în î+uî¸ïC ïC î tîÃïC ïC qî  ïC ïC î!î"î&Å î/Ý tïAeî‰îñîMuîÚïAeïAeîÃtîæïAeïAeqîÂïAeïAeî<î9î!çtï?½î‰î€î`uîíï?½ï?½îÕtîøï?½ï?½qîÕï?½ï?½îNîLî"útï>î‰î î uî-ï>ï>îtî8ï>ï>qîï>ï>îŽî Œî%:î*RtïeïQñïQñî>ÈvïPJîxtîíïPJïPJuîëïPJïPJî’tîïPJïPJîqî#¿î)Nî*Ûî,hî.Buî0ïPJïPJî0Ûtî3 ïPJïPJî3ýuî9‚ïPJïPJî:;tî<­ïPJïPJî=vïN£îxtîqïN£ïN£uîoïN£ïN£îtî’ïN£ïN£îõî$Cî)Òî+_î,ìî.Æuî0‹ïN£ïN£î0õtî5ËïN£ïN£î6§uî<,ïN£ïN£î<åtî?WïN£ïN£î?ºuïKTîxtîïKTïKTrï ìî gð6ÿ›TVm$40Prop.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January22,19853:09:11pmPSTImplementsimmutable,sharablepropertylists.DIRECTORYAtomUSING[PropList];Prop:CEDARDEFINITIONS~BEGINPropList:TYPE~Atom.PropList;Put:PROC[propList:PropList,key:REF,val:REF]RETURNS[PropList];Returnsanewlistwhichcontains(key,val).Get[Put[anyPropList,key,val],key]=val.Get:PROC[propList:PropList,key:REF]RETURNS[val:REF];Returnsvalassociatedwithkey,NILifnone.UsesREFequalitytocomparekeys.Rem:PROC[propList:PropList,key:REF]RETURNS[PropList];Returnsanewlistwhichdoesnotcontainkey.EquivalenttoPut[propList,key,NIL].END.******************************************************sïg/îEqï_:îxï]“îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(Cî*ŽïX�îx îÀ î·î"î'^uïUNîxtïS§î‰uîjïS§ïS§îOtïS§î³ ïPXîxuîNïPXïPXîïPXîã tïN±îxuîïN±ïN±î¾tïKbîxuîŒïKbïKbîEtïKbîýîŠ vïHîxtî”ïHïHuî’ïHïHî:tîµïHïHîî!î!uî$"ïHïHî$ötî&hïHïHî'Euî)ûïHïHî*Ïtî,AïHïHuî-)ïHïHî-ýtî2°ïHïHî3 qïFlî‰îšîÏî”îÓî¶î% î(hî+ðî8ñî;Õî>ÎvïCîxtîªïCïCuî¨ïCïCîPtîËïCïCî.î7î!)uî$8ïCïCî% tî&~ïCïCuî'fïCïCî(:tî,íïCïCî-Puî0ïCïCî0Ûtî2MïCïCî2°qïAvî‰îšîÍ î$î! xî$ïAvïAvî$àqïAvî&£î'ùî,"xî/]ïAvïAvî0(qïAvî2î78î8Ýî>Bvï>'îxtî/ï>'ï>'uî,ï>'ï>'îÔtîOï>'ï>'î²î»î!®uî$¼ï>'ï>'î%�tî'ï>'ï>'uî'êï>'ï>'î(¾tî-qï>'ï>'î-Ô qï<€î‰îšîÏî”îÓî¶î"ºî%î)îî-V î4î5º î=ùxî@Ýï<€ï<€îAºqîBøï<€ï<€îCfuï91îxtîï91ï91rï ìî gð6žTVm$Í41AISFileFormat.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January21,198511:05:16pmPSTAISFileFormat:CEDARDEFINITIONS~BEGINbytesPerWord:NAT~2;--a"word"is16bits("size"valuesbelowareinwords!)wordsPerPage:NAT~1024;--a"page"is1024"words"nil:CARDINAL~177777B;--commonlyusedforanilvaluepasswordValue:CARDINAL~LOOPHOLE[-31574];AttributeHeader:TYPE~MACHINEDEPENDENTRECORD[password(0:0..15):CARDINAL,--password,mustequalpasswordValuelength(1:0..15):CARDINAL--lengthinwordsofattributepart,includingthisheader--lengthmustbeamultipleofwordsPerPage];sizeAttributeHeader:NAT~SIZE[AttributeHeader];PartHeader:TYPE~MACHINEDEPENDENTRECORD[type(0:0..5):PartType,--typeofattributepartlength(0:6..15):[0..1777B]--lengthinwords,includingthisone];sizePartHeader:NAT~SIZE[PartHeader];PartType:TYPE~MACHINEDEPENDENT{nil(0),--nomorepartsraster(1),--RasterPartfollowsplacement(2),--PlacementPartfollowsphotometry(3),--PhotometryPartfollowscomment(4),--CommentPartfollows(77B)};RasterPart:TYPE~MACHINEDEPENDENTRECORD[scanCount(0:0..15):CARDINAL,--numberofscanlinesscanLength(1:0..15):CARDINAL,--pixelsperscanlinescanDirection(2:0..15):ScanDirection,--scanningdirectionssamplesPerPixel(3:0..15):CARDINAL,--numberofsamplescodingType(4:0..15):CodingType--methodofcoding];sizeRasterPart:NAT~SIZE[RasterPart];ScanDirection:TYPE~CARDINAL;Theremaynotbeuniversalagreementontheinterpretationofthisvalue.TheAISdocumentationdisagreeswith(atleastsomeversionsof)AISFile.d.Fortunately,thetwomostcommonlyusedvaluesareunambiguous:3=>pixelsgotowardtherightofthepage,scanlinestowardthebottom0,8=>pixelsgotowardthetopofthepage,scanlinestowardtherightsïg/îEqï_,îxï]„îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Ýî‰î?î²î×î î#Zî(óî+>tïXŽîx uî�ïXŽïXŽîLïXŽî tïVæîxuîïVæïVæî¾tïS—îx uîèïS—ïS—îÑtïS—îâîoqîïS—ïS—î–î”î Èî%zî&æî(Ëî+Wî/Óî3áî7¬î9ÿî;¥tïQïîx uîÆïQïïQïî¯tïQïîÀîMqî ïQïïQïî …î!ƒî"¸î'Iî(´î+útïN îxuîïN ïN îÎtïN î¾îKqîRïN ïN îÌî Éî'<î*Mî,tî-©î/²tïKQîx uîbïKQïKQî-tïKQîuî ªïKQïKQî!ctî&øïKQïKQî'[ïHîxuîAïHïHîútïHî²uî?ïHïHîQïHî$eïHî,tî1ïHïHïFZî‰uîÝïFZïFZî¨tî"ïFZïFZqî"ðïFZïFZî#jî$gî*zî-Åî1e tïD²î‰uîïD²ïD²îäqïD²î Ôî"Kî&iî(î+äî-ˆî2üî6.î<î>ªïC î‰îîîjî9înî!ªî#M tïAcî‰ï?¼îxuîhï?¼ï?¼îPtï?¼îauîîï?¼ï?¼î �tî"iï?¼ï?¼î"ÌïhtïN¡î‰uî �ïN¡ïN¡î!ZqïN¡î'Kî(Âî,—î.:î3Rî4÷î7…î9(î=+î?4î@ŠîB}ïLùî‰îîWîÂîîœ î&àïKRî\ð2tïI«î‰ïHîx uîïHïHîtïHîuî¢ïHïHîAtî ïHïHî € ïD´îx uîÿïD´ïD´î¸tïD´îquîýïD´ïD´îïD´î##ïD´î*Ðtî/¾ïD´ïD´ïC î‰uî‰ïC ïC îótîÉïC ïC qî¥ïC ïC î î!î&+î'Ïî+mî-ÎtïAeî‰uîyïAeïAeîãtî ¹ïAeïAeï?½î‰uîÕï?½ï?½î>tî ï?½ï?½qî ñï?½ï?½î!jî"hî% î&­î*¦î-ªî/�tï>î‰uî#ï>ï>îŒtï½î@ÇîBï#žî½tï!öî‰ï Oîxuîøï Oï Oîàtï Oîñuî~ï Oï Oî tî!ùï Oï Oî"\ïîx uî$ïïîÝtïî•uî"ïïî4ïî!Htïî(õïXî‰qîÎïXïXîGîEîïî’tï±î‰qîúï±ï±îsîqîÄ tï î‰qîŸï ï îîî tïbî‰qîOïbïbîÈîÆîs tïºî‰qîÀïºïºî:î7îk tïî‰ qî ïïî‚î€îõ tïkî‰ qîÞïkïkîWîUîx tïÄî‰qî¹ïÄïÄî3î0î|îjtïî‰qî¹ïïî3î0îZuï uî‰tîï uï uî~qîåï uï uî^î\îî î!ýî'Wî(‹î*ßuï Íî‰tî9ï Íï Íî²qîï Íï Íî“î�îî!éî& î+fî,›î.îÿTVm$d43CMYB(102),--cyan,magenta,yellow,blacksamples,4perpixelYxy(103),--Y,x,y(CIE)samples,3perpixelcomments(177776B),--specifiedincommentsundefined(177777B)--undefined};ScaleType:TYPE~MACHINEDEPENDENT{nil(0),--undefinedreflectance(1),--reflectanceortransmittancedensity(2),--opticaldensitycomments(177776B),--specifiedincommentsundefined(177777B)--undefined};Value:TYPE~MACHINEDEPENDENTRECORD[sample(0:0..15):INTEGER,--1000*(actualreflectanceordensity)level(1:0..15):CARDINAL--correspondingdigitalsamplevalue];SpotType:TYPE~MACHINEDEPENDENT{nil(0),--undefinedrectangular(1),--spotWidthbyspotLengthcircular(2),--diameter=spotWidth,spotLengthisundefinedcomments(177776B),--specifiedincommentsundefined(177777B)--undefined};histogramScale:INTEGER~32767;CommentPart:TYPE~BCPLStringBody;sizeCommentPart:NAT~SIZE[CommentPart];--maximumBCPLStringBody:TYPE~PACKEDARRAY[0..256)OFCHAR;IfsisaPOINTERTOBCPLStringBody,lengthisORD[s[0]],textiss[1..length]END.******************************************************sïg/îEuï_,î‰tîòï_,ï_,îlqîÓï_,ï_,îLîJîÕî"£î'î*Çî0!î1Vî3ªtï]…î‰qîÓï]…ï]…îLîJî$îÇîñî ôî&Mî'‚î)Ötï[Ýî‰qîkï[Ýï[Ýîäîâî$Qî%÷tïZ6î‰qîïZ6ïZ6î�î‹tïX�î‰ïU@îx uîŠïU@ïU@îCtïU@îüuîˆïU@ïU@îšïU@î ®tïU@î([ïS™î‰qî–ïS™ïS™îî tïQñî‰qîkïQñïQñîäîâ î!¢î#[ tïPJî‰ qîCïPJïPJî¼îºî tïN£î‰qîkïN£ïN£îäîâî$Qî%÷tïLûî‰qîïLûïLûî�î‹tïKTî‰ïHîxuîèïHïHî¢tïHîZuîçïHïHîøïHî ïHî%ºtî*¨ïHïHïF^î‰uî‡ïF^ïF^îðtîÇïF^ïF^qî £ïF^ïF^î!î" î* î0Õî2ŽtïD·î‰uî%ïD·ïD·îðqïD·îàî!W î)ðî.î2�tïCî‰ï?Áîxuî2ï?Áï?Áîëtï?Áî¤uî1ï?Áï?ÁîBï?Áî Vtï?Áî(ï>î‰qî–ï>ï>îî tïî»î2î~î@ïN¡î‰ïKRîx xî=ïKRïKRîöqïKRîÁxî¦ïKRïKRî·ïKRî"ÚïKRî*‰qî/eïKRïKRïIªî‰î_î€î÷ïHî‰î¯ î—îî Zî#,î)ïF[î‰î>îîŠîÖî˜ïD´î‰î=îiîàî3î Öî%î'ªî+Ðîtî;uï¹ï¹î;Øïjîx uîˆïjïjîAtïjîúuîßïjïjîðïjî"ïjî)²tî. ïjïjî/ î6ý ïÃîxîÜ î rî"W ï tîxuî3ï tï tîìtï tî¥uîŠï tï tî^tîxï tuï tîÛï tî%Ÿï tî,Áï tî3|tï tî5– ï Ìîxÿ TVm$É45******************************************************sïg/îErï_/î gð6ÿ8TVm$46PrePressFontFormat.mesaCopyrightc1984,XeroxCorporation.Allrightsreserved.DougWyatt,October9,19849:35:05amPDTDIRECTORYPrincOpsUSING[zEXCH],ScaledUSING[Value];PrePressFontFormat:CEDARDEFINITIONS~BEGINBYTE:TYPE~[0..377B];BCPLDOUBLE:TYPE~MACHINEDEPENDENTRECORD[highbits,lowbits:CARDINAL];ABCPLdoubleword;orderofthehalvesisthereverseoftheMesaconvention.CardFromDouble:PROC[BCPLDOUBLE]RETURNS[LONGCARDINAL]~TRUSTEDMACHINECODE{PrincOps.zEXCH};FractionFromDouble:PROC[BCPLDOUBLE]RETURNS[Scaled.Value]~TRUSTEDMACHINECODE{PrincOps.zEXCH};BCPLREAL:TYPE~MACHINEDEPENDENTRECORD[w0,w1:CARDINAL];ABCPLfloatingpointnumber;useRealConverttoconverttoMesaREAL.IXType:TYPE~MACHINEDEPENDENT{end(0),--endofindexpartname(1),--NameIndexEntryfollowsspline(2),--StdIndexEntryfollowscharacter(3),--CharacterIndexEntryfollowswidth(4),--StdIndexEntryfollowsorbit(5),--CharacterIndexEntryfollowsmultipleCharacter(6),--MultipleCharacterIndexEntryfollows(17B)};IXHeader:TYPE~MACHINEDEPENDENTRECORD[type(0:0..3):IXType,--typeofentrylength(0:4..15):[0..7777B]--lengthofentry,includingthisheader];NameIndexEntry:TYPE~MACHINEDEPENDENTRECORD[--ix.type=namecode(0:0..15):CARDINAL,--numericcodeforthisnamechars(1):PACKEDARRAY[0..20)OFBYTE--nameasaBCPLstring:firstbyteislength];StdIndexEntry:TYPE~MACHINEDEPENDENTRECORD[--ix.type=spline,widthfamily(0:0..7):BYTE,--familyname,usinganamecodeface(0:8..15):BYTE,--faceencodingbc(1:0..7):BYTE,--beginningcharacterec(1:8..15):BYTE,--endingcharactersïg/îEqï_:îxï]’î‰wîÖï]’qï]’î¼îZî s î(Þî+&î.óï[ëî‰î?î²îÕîbî"¨î'‘î)ÛuïXœîxtïVôî‰uî‡ïVôïVôîltïVôîÐïUMî‰uîäïUMïUMîÊtïUMî.ïQþîxuî²ïQþïQþî}ïQþî H tïPVîxuîïPVïPVî¾ïMîxtîwïMïMuîuïMïMî.tïMîæîs uïI¸îx tî0ïI¸ïI¸uî.ïI¸ïI¸îçtïI¸îŸuî,ïI¸ïI¸î>ïI¸î"RïI¸î)ÿtî.íïI¸ïI¸î/Pî4ëuî:"ïI¸ïI¸î:ítî@YïI¸ïI¸î@¼qïHî‰î î[ îñî!yî#î%iî)wî*ãî-/î1¬î3Oî5›î9D vïDÁîx tîÃïDÁïDÁuîÁïDÁïDÁîhtîäïDÁuïDÁîG tî$ÿïDÁïDÁuî%æïDÁïDÁî&ºtî+mïDÁuïDÁî+ÐïDÁî/Átî5øïDÁïDÁïCî‰uîïCïCîÏïCîïCî*tïCî!õî#) î.&vï?Ëîxtîôï?Ëï?Ëuîòï?Ëï?Ëîštîï?Ëuï?Ëîx tî'0ï?Ëï?Ëuî(ï?Ëï?Ëî(ëtî-Ÿï?Ëï?Ëî. ï>#î‰uîï>#ï>#îÏï>#îï>#î*tï>#î!õî#) î.&uï:Ôîxtîwï:Ôï:Ôuîtï:Ôï:Ôî-tï:Ôîæuîsï:Ôï:Ôî„ï:Ôî ™ï:Ôî(Ftî-4ï:Ôï:Ôî-—î0!uî2Íï:Ôï:Ôî3˜tî9ï:Ôï:Ôî9gqï9-î‰î î[îTîËî$)î&‰ î.Qî/õî4®î6Rxî9ûï9-ï9-î:Æqî=ï9-ï9-tï46îxuîï46ï46îÀtï46îyuîï46ï46îï46î,tï46î&Ùï2�î‰qî<ï2�ï2�îµî³îAîäî�tï0çî‰qîDï0çï0çî¾î» î"ktï/@î‰ qî‡ï/@ï/@îîþ î!6tï-˜î‰ qîmï-˜ï-˜îçîäî&étï+ðî‰qîfï+ðï+ðîàîÝ î!tï*Iî‰qîáï*Iï*Iî[îXî$]tï(¡î‰qîÅï(¡ï(¡î?î<î17tï&úî‰ï%Rî‰ï"îxuî_ï"ï"îtï"îÐuî]ï"ï"înï"î ƒï"î(0tî-ï"ï"ï \î‰ î?qî­ï \ï \î&î$î" î#¬tï´î‰î qî lï´ï´î åî!ãî&î'¤î+tî1Wî3ðtï î‰ï¾îxuîÆï¾ï¾îtï¾î8uîÅï¾ï¾îÖï¾î$ëï¾î,˜tî1†ï¾ï¾qî2mï¾ï¾î2çî3äî8Lî:1tïî‰ uî&ïïîñtî]ïïqî :ïïî ³î!±î&ãî)þî,&î.¾tïoî‰uî:ïoïoîâïoîŠtî¬ïoïoî uî#Íïoïoî$©ïoî%çqïoî)jî*áî.…î0>î1sî5Âî: î<Ùî?¿îA*tïÇî‰ïxîx uî,ïxïxîåtïxî�uî*ïxïxî<ïxî#Pïxî*ýtî/ëïxïxqî0Óïxïxî1Lî2Jî6±î8–î<ÇtïÐî‰uîrïÐïÐî,tîqïÐïÐqîNïÐïÐîÇîÅî"êî&æî*}î+²î/Vtï)î‰ uîÃï)ï)î|tîÂï)ï)qîžï)ï)îîî îtï �î‰ uîï �ï �îÎtîï �ï �qîðï �ï �îjîgî"™tï Úî‰ uî¤ï Úï Úî]tî£ï Úï Úqîï Úï Úîùîöî!V­TVm$47size(2:0..15):CARDINAL,--sizeinmicasrotation(3:0..15):CARDINAL,--rotationinminutesofarcanticlockwisesegmentSA(4:0..31):BCPLDOUBLE,--startingaddressinfileofthesegment(inwords!)segmentLength(6:0..31):BCPLDOUBLE--lengthofthesegment(inwords!)];CharacterIndexEntry:TYPE~MACHINEDEPENDENTRECORD[--ix.type=character,orbitfamily(0:0..7):BYTE,--familyname,usinganamecodeface(0:8..15):BYTE,--faceencodingbc(1:0..7):BYTE,--beginningcharacterec(1:8..15):BYTE,--endingcharactersize(2:0..15):CARDINAL,--sizeinmicasrotation(3:0..15):CARDINAL,--rotationinminutesofarcanticlockwisesegmentSA(4:0..31):BCPLDOUBLE,--startingaddressinfileofthesegment(inwords!)segmentLength(6:0..31):BCPLDOUBLE,--lengthofthesegment(inwords!)resolutionX(8:0..15):CARDINAL,--10*resolutioninscanlinesperinchresolutionY(9:0..15):CARDINAL--10*resolutioninbitsperinch];MultipleCharacterIndexEntry:TYPE~MACHINEDEPENDENTRECORD[--ix.type=multipleCharacterfamily(0:0..7):BYTE,--familyname,usinganamecodeface(0:8..15):BYTE,--faceencodingbc(1:0..7):BYTE,--beginningcharacterec(1:8..15):BYTE,--endingcharactersize(2:0..15):CARDINAL,--sizeinmicasrotation(3:0..15):CARDINAL,--rotationinminutesofarcanticlockwiseresolutionX(4:0..15):CARDINAL,--10*resolutioninscanlinesperinchresolutionY(5:0..15):CARDINAL,--10*resolutioninbitsperinchnumSegs(6:0..15):CARDINAL--numberofsegments--segs:ARRAY[0..numSegs)OFDatedSegmentEntry];DatedSegmentEntry:TYPE~MACHINEDEPENDENTRECORD[segmentSA(0:0..31):BCPLDOUBLE,segmentLength(2:0..31):BCPLDOUBLE,expirationDate(4:0..31):BCPLDOUBLE];CharacterSegment:TYPE~RECORD[charData:CharacterDataArray[ec-bc+1],directory:DirectoryArray[ec-bc+1]--followedbyrasters,pointedtobythedirectory];CharacterData:TYPE~MACHINEDEPENDENTRECORD[wx(0:0..31):BCPLDOUBLE,--xwidth(signedfraction)wy(2:0..31):BCPLDOUBLE,--ywidth(signedfraction)bbox(4:0..15):INTEGER,--xoffsetforboundingboxbboy(5:0..15):INTEGER,--yoffsetforboundingboxbbdx(6:0..15):INTEGER,--widthofboundingbox(scanlines)sïg/îEtï_,î‰ uî‹ï_,ï_,îVtîÂï_,ï_,qîžï_,ï_,î î!î#¶î%\tï]…î‰uî ï]…ï]…îÖtî!Bï]…ï]…qî"ï]…ï]…î"˜î#–î(±î*Wî/_î1î3W tï[Ýî‰uîï[Ýï[ÝîËtî$Éï[Ýï[Ýqî%¦ï[Ýï[Ýî&î'î, î0Êî2pî4Äî6gî8³î=çî@tïZ5î‰uî|ïZ5ïZ5î 5qïZ5î'¸î)/î-Mî.ñî1=î6pî8�tïXŽî‰ïU?îxuîöïU?ïU?î¯tïU?îhuî õïU?ïU?î"ïU?î'ïU?î.Ètî3¶ïU?ïU?qî4�ïU?ïU?î5î6î:|îîKtïîx uîXï>ï>îtï>îÉuîVï>ï>îhï>î#|ï>î+)tî0ï>ï>ïï5Ðï5Ðî!·î"µî#êî%@î';î(†î,·tï4)î‰îŒqî!>ï4)ï4)î!·î"µî#êî%@î';î(eî,•tï2�î‰î~ qî �ï2�ï2�î ûî!øï0Úî‰îîq xîÜï0Úï0ÚîXqï0Úî � xî(Ëï0Úï0Úî)„qï0Úî,–xî-Ëï0Úï0Úî.�qï0Úî1Gï/2î‰îîP xî»ï/2ï/2î7qï/2î l xî(ˆï/2ï/2î)Aqï/2î,Sxî-‡ï/2ï/2î.Jqï/2î1tï-‹î‰ï*;îx uî�ï*;ï*;îVtï*;îuîœï*;ï*;îotî Šï*;uï*;î íï*;î'±ï*;î.Óï*;î5Žï*;î7¨tî<èï*;ï*;î=Kï&ìîx uî¦ï&ìï&ìîtï&ìîjuî÷ï&ìï&ìî°tî%Fï&ìï&ìî%©qï%Eî‰îî· î9î °î"Øî$ î(åï Nîx xî*ï Nï Nîãqï Nî®xî,ï Nï Nî÷qî"ï Nï Nï§î‰ îÀïÿî‰ îŸïXî‰îîMî'îî ÷î%¹î'^î)8î+„ï°î‰tïaîx uîïaïaîÈtïaî�uî ïaïaîïaî!3ïaî(àtî-Îïaïaïºî‰ uîïºïºîËtîïºïºqîíïºïºîfî dî$î%¶î'î,•î.N tïî‰ uîïïîËtîïïqîíïïîfî dî$î%¶î&ßtïkî‰ uîgïkïkî!tîfïkïkqî Bïkïkî ¼î!¹î$î'5î(Ùî.¼tïÃî‰ uîgïÃïÃî!tîfïÃïÃqî BïÃïÃî ¼î!¹î&Eî)`î+î0ætïî‰ uî”ïïîMtî’ïïqî nïïî èî!åî%/î(Iî)íî/Ïtï tî‰uîDï tï tîýqï tî Çî">î$“î'®î)Qî/4tï Íî‰ITVm$f49missingSpline:BCPLREAL~[w0:0,w1:CARDINAL.LAST];valueofwxinSplineDataforamissingcharacterSplineDataArray:TYPE~RECORD[SEQUENCECOMPUTEDCARDINALOFSplineData];SplineCode:TYPE~MACHINEDEPENDENT{moveTo(1),drawTo(2),drawCurve(3),endDefinition(177776B),newObject(177777B)};SplineCommand:TYPE~MACHINEDEPENDENTRECORD[code:SplineCode];SplineCoords:TYPE~MACHINEDEPENDENTRECORD[x(0:0..31):BCPLREAL,y(2:0..31):BCPLREAL];END.******************************************************sïg/îEtï^—îx uî¦ï^—ï^—î_tï^—î(îµî"Äî$Quî&ýï^—ï^—î'Ètî-4ï^—uï^—î-‹tî0pï^—ï^—î0Óqï\ïî‰îî·îêî� î ¥î"Íî$î(ÙtïY¡îxuîvïY¡ïY¡î/tïY¡îçuîtïY¡ïY¡îHtî#bïY¡uïY¡î#ÅïY¡î*‰ïY¡î1¬ïY¡î8gtïY¡î:� ïVRîx uî[ïVRïVRîtïVRîÍuîZïVRïVRîkïVRî!€tïVRî)-ïT«î‰ îç î÷ ïSî‰î´ïQ\î‰ïN îx uîvïN ïN î/tïN îçuîtïN ïN î†ïN î$šïN î,Gtî15ïN ïN î1˜î5X ïJ¿îx uîzïJ¿ïJ¿î3tïJ¿îìuîxïJ¿ïJ¿îŠïJ¿î"žïJ¿î*Ktî/9ïJ¿ïJ¿ïIî‰ uîïIïIîÍtîïIïIïGpî‰ uîïGpïGpîÍtïEÉî‰uï@Óîxtîï@Óï@Órï ìî gð6ÐTVm$$50PDFileFormat.mesaCopyright(C)1983,1984,1985byXeroxCorporation.Allrightsreserved.CreatedMarch14,1983MichaelPlass,April29,198311:01amDougWyatt,January4,19851:36:27pmPSTPDFileFormat:DEFINITIONS~BEGINpasswordValue:CARDINAL~125252B;versionValue:CARDINAL~1B;DeviceCode:TYPE~MACHINEDEPENDENT{invalid(0),raven(1),hornet(2),gnat(3),mig(4),reticleMaker(5),puffin(6),colorVersatec(7),last(LAST[CARDINAL])};Herald:TYPE~MACHINEDEPENDENTRECORD[password(0):CARDINAL_passwordValue,version(1):CARDINAL_versionValue,deviceCode(2):DeviceCode_invalid,sResolution(3):CARDINAL,fResolution(4):CARDINAL,imageSSize(5):CARDINAL,imageFSize(6):CARDINAL,bandSSize(7):CARDINAL,maxLoadWord(8):LONGCARDINAL,copies(10):CARDINAL];Typ:TYPE~MACHINEDEPENDENT{control(0),imaging(2)};ImagingCom:TYPE~MACHINEDEPENDENT{maskSamplesRef(0),maskRunGroupRef(1),maskRectangle(2),maskTrapezoid(3),maskRunGroup(4),maskSamples(5),colorSamples(6)};ControlCom:TYPE~MACHINEDEPENDENT{startImage(0),setPriority(1),setColorInk(2),sïg/îEqï_,îxï]„îxîÅî:îØîvî!¼î#–î'® î0î2aî6/ï[Ýî‰î–îûî9ïZ5î‰îËî«î(îeî"«î&jïXŽî‰î?î²î×îdî"ªî'“î)ÝtïU?îx uîïU?ïU?î tïU?î >uî!ËïU?ïU?î"„tïQðîx uîbïQðïQðî-tïQðîî ªïPHîx uî,ïPHïPHî÷tïPHîçîtïLùîx uî´ïLùïLùîmtïLùî%uî²ïLùïLùîÄïLùî!ØtïLùî)…ïKRî‰ ïIªî‰ïHî‰ ïF[î‰ïD´î‰ïC î‰ïAeî‰ ï?½î‰ï>î‰uîþï>ï>î·tîãï>uï>îFtî}ï>ï>îàï[com(0:2..7):ImagingCom,addrHighBits(0:8..15):[0..256)_0],addrHighBitsisusedbythemaskSamplesRefandmaskRunGroupRefcommands.control=>[com(0:2..7):ControlCom,rest(0:8..15):[0..256)_0]restisusedbythesetPriorityandsetColorTilecommands.ENDCASE];SampleArray:TYPE~MACHINEDEPENDENTRECORD[sSize(0):CARDINAL,fSize(1):CARDINALFollowedbytheactualscanlines,eachpaddedouttoaword.];Tile:TYPE~MACHINEDEPENDENTRECORD[phase(0):CARDINAL,sMin(1):CARDINAL,fMin(2):CARDINAL,sSize(3):CARDINAL,fSize(4):CARDINALFollowedbytheactualscanlines,eachpaddedouttoaword.];RunGroup:TYPE~MACHINEDEPENDENTRECORD[sSize(0):CARDINALFollowedbytheRuns.];Run:TYPE~MACHINEDEPENDENTRECORD[fMin(0):CARDINAL,lastRun(1:0..0):BOOLEAN,fSize(1:1..15):NAT];MaskRectangle:TYPE~MACHINEDEPENDENTRECORD[sMin(0):CARDINAL,sSize(1):CARDINAL,fMin(2):CARDINAL,fSize(3):CARDINAL];sïg/îEtï_,î‰ï]…î‰ï[Ýî‰ ïZ5î‰ïXŽî‰ ïVæî‰ïU?î‰ïQðîxîÅîî¬ïPHîx îqîÌîYïLùîxuîµïLùïLùîntïLùî'uî´ïLùïLùîÅïLùî ÚïLùî(‡tïLùî-ùïKRî‰ uîïKRïKRî¦tïKRîÚ î$êuî'ÍïKRïKRî(†tïIªîšîÜîq î"~ î+î8åî=¶î?CqïHî¬ î îvî!†î#aî%­ î0î2Ãî>xtïF[îšîMîã î!ð î*@ î27î7î8•qïD´î¬îDî¯îÀîšîæ î&vî) î0¼uïC îštïAeî‰ï>îx uîBï>ï>îûtï>î´uîAï>ï>îRï>î"gï>î*tï>î/†ïïU@ïU@î&tî³ïU@ïU@ïS™î‰ uî�ïS™ïS™îxtîïS™ïS™ïQñî‰ uîðïQñïQñî»tî'ïQñïQñïPJî‰ uîÚïPJïPJî¥tïN£î‰ïKTîx uî ïKTïKTîYtïKTîuîžïKTïKTî°ïKTî ÄïKTî(qtïKTî-äïI­î‰uîFïI­ïI­îïI­î7tî$nïI­ïI­ïHî‰ uîäïHïHî¯qïF^î‰îDîîjîptïD·î‰uï?Áîxtîï?Áï?Árï ìî gð6ÿšTVm$54PDFileWriter.mesaCopyright(C)1984,1985XeroxCorporation.Allrightsreserved.MichaelPlass,April9,19849:57:08amPSTDougWyatt,January19,19853:09:47pmPSTThisinterfaceprovidesawayofcreatingapd(printer-dependent)imagefile.DIRECTORYPDFileFormatUSING[DeviceCode,Toner],RopeUSING[ROPE];PDFileWriter:CEDARDEFINITIONS~BEGINPDState:TYPE~REFPDStateRec;PDStateRec:TYPE;DeviceCode:TYPE~PDFileFormat.DeviceCode;Toner:TYPE~PDFileFormat.Toner;LoadReference:TYPE~NAT;LoadReferenceRep:TYPE~RECORD[assignedLoadAddress:INT_-1,sSize,fSize:CARDINAL,data:SELECTtag:*FROMsamples=>[],tile=>[],runGroup=>[],ENDCASE];TFlag:TYPE~{opaque,transparent};CreatinganewPDfile.Create:PROC[fileName:Rope.ROPE,deviceCode:DeviceCode,sResolution,fResolution,imageSSize,imageFSize:CARDINAL,bandSSize:CARDINAL_16,copies:CARDINAL_1,leftOverMode:BOOLEAN_TRUE,maxLoadWords:INT_60000]RETURNS[pdState:PDState];SetPriorityImportant:PROC[pdState:PDState,priorityImportant:BOOLEAN]RETURNS[previousValue:BOOLEAN];priorityImportantisinitiallyFALSETonerSet:TYPE~PACKEDARRAYTonerOFInitiallyFalse;InitiallyFalse:TYPE~BOOLEAN_FALSE;StartImage:PROC[pdState:PDState,toners:TonerSet_[black:TRUE],feed,strip:BOOLEAN_TRUE];ThisinterfacemaybeusedtocreatecolorPDfileseitheronelayeratatime,oralllayerssimultaneously.Thetonersparameterspecifieswhichlayersaretobecreatedinthecurrentpass;feedappliestothefirstofthelayers,andstriptothelast.ThecalltoStartImagemaybeomittedifthedefaultparameterssuffice.sïg/îEqï_,îxï]„îxîÅî:îØîî"6 î*¡î,éî0¶ï[Ýî‰îËî«î(îµî!ûî&äî).ïZ5î‰î?î²î×î î#Zî(Cî*ŽïVæîxîˆîîIî~î ?î!ãî'î(Hî*-î5Òî9ÌuïS—îxtïQïî‰ uî¶ïQïïQïîœtïQïî î&}ïPHî‰uî>ïPHïPHî$tïPHîˆuîëïPHïPHî¿tîüïPHïPHî_ïLøîx uîšïLøïLøîeïLøî0 tïKQîxuîïKQïKQî¾tïHîxuîVïHïHîtïHîÈuîTïHïHî(tïHî ïFZîx uîŸïFZïFZîXtîŒïFZïFZïD²îx uî´ïD²ïD²îmtïD²î%î²ïC îxuî ïC ïC îÂtïC î{îïAcîx uîƒïAcïAcî<tïAcîôuî�ïAcïAcîjtîöïAcïAcï?¼îxuîøï?¼ï?¼î±tï?¼îjuî÷ï?¼ï?¼î Ëtï?¼î%iï>î‰uîSï>ï>î½tï>î ãî"pïêuï#›î½tï#›îxîî ’ uî)ëï#›ï#›î*¤tï#›î0uî1�ï#›ï#›î2Vtî4Èï#›ï#›î5¥ uî@ï#›ï#›î@‡tï#›îB­ï!ôî½uîï!ôï!ôîêtï!ôî!"î'vï¤î‰tîûï¤ï¤uîùï¤ï¤î tï¤î! î'~î-;uî8§ï¤ï¤î9`tî>Gï¤ï¤uïýîštïýî¦uî"„ïýïýî#>tî(%ïýïýî(ˆqïUîšîIîµxî#­ïUïUî$^tïî‰uîõïïî®tïîguîôïïî›ïî!Dtïî%êuî*ïïî*Þtïî,ï^î‰uî=ï^ï^îötï^î®uî;ï^ï^îôtï^î$`uî%íï^ï^î&¦tî)‹ï^ï^vï·î‰ tî+ï·ï·uî)ï·ï·îÑtï·îÐî!®î'kî,î1úî3‡uî8 ï·ï·î8Ætî;9ï·ï·î;œîcïVçî\îWîînî£î"oî'î(¶î+Lî.Hî1oî4Bî5åî9Çî=î?ìîADïU@î\ îDîlî¸î!­î&Oî'ôî+¡î.9î0šî2=î4‰î:î=šî>òîAgvïQñî‰tîÌïQñïQñuîÊïQñïQñîƒtïQñî";uî#ÈïQñïQñî$ptïQñî'ovïN¡î‰ tî|ïN¡ïN¡uîzïN¡ïN¡î3tïN¡îëuî xïN¡ïN¡î! tïN¡î$î(cî,8uî0ïN¡ïN¡î0ätî6PïN¡ïN¡î6³vïKRî‰tîDïKRïKRuî BïKRïKRî ûtïKRî#³uî%@ïKRïKRî%ètïKRî(èvïHî‰tî ïHïHuîžïHïHîWtïHî"uî#œïHïHî$DtïHî'Duî'§ïHïHî(`ïHî+—tî0´ïHïHî1qïD´îx î8 îŠîÈî"vïAeî‰tî ïAeïAeuîïAeïAeîÅtïAeîÅî!£uî'kïAeïAeî(>tïAeî-vî1æuî6ïAeïAeî6Ótîî‰ tîï>ï>uîþï>ï>î¦tï>î¦î%„î+@uî.ßï>ï>î/‡tî2ï>ï>î2eqïî½tîôï>ï>îÐî!›uî%{ï>ï>î&Ftî+²ï>ï>î,�uî1nï>ï>î2'ï>î5_tî:{ï>ï>uî;cï>ï>î<7tïïN¡ïN¡î$tïN¡îˆuîëïN¡ïN¡î¿tîüïN¡ïN¡î_ïKRîx uîþïKRïKRîÉïKRî” tïIªîxuîïIªïIªî¾ïF[î‰tîšïF[ïF[uî˜ïF[ïF[îQtïF[î î—uîïF[ïF[îótî 0ïF[ïF[qïD´îxîC tïC î‰uîâïC ïC îœtïC îTuîáïC ïC îµtïC î«ïAeî‰uîüïAeïAeîµtïAeînuîûïAeïAeîÏtïAeîmï?½îšîXï>îšî ïCtî?åï#�ï#�ï!öî½ uîHï!öï!öîtî!Yï!öï!öî!½qï Oîšî¬îœîý î$�î&2î)6î+‚î1pvï§î‰tî¨ï§ï§uî¦ï§ï§îEtï§î–î úî&2î)ò î1$ î8l uî@#ï§ï§î@�tîB/ï§ï§ïî½ uîHïïîtî!Yïïî!½ïXî‰ uîÜïXïXî•tïXîNîÚqï±îštï î¬ïbî¬ïºî¬ïî¬ïkî¬ïÄî¬ïî¬ï tî¬ï Íî¬ ÿvTVm$Ë58warnings:wrongFormatVersion,unreasonableResolution,unreasonableBandSSize,unreasonableImageSize,unreasonableLoadSize,unreasonableNumberOfCopies,objectOutOfBand,emptyRunGroup,nonZeroFill,imageBoundsExceedPageBounds,tooFewBands,unknownColorTileFlag};FilecontrolOpen:PROC[fileName:ROPE]RETURNS[Handle];MayraiseFileIO.OpenFailed,PDFileReader.Error,orPDFileReader.WarningFromStream:PROC[stream:IO.STREAM]RETURNS[Handle];MayraisePDFileReader.ErrororPDFileReader.WarningClose:PROC[handle:Handle];ReadingoperationsGet:PROC[handle:Handle,scanning:BOOLEAN_FALSE]RETURNS[REF];ReturnsoneofthedatatypesbelowMayraisePDFileReader.ErrororPDFileReader.WarningIFscanning=TRUE,largeGetBlockswillnotbedoneforruns,loads,...Keep:PROC[handle:Handle,ref:REF]RETURNS[REF];Normally,storagereturnedbyacallonGetissubjecttore-useonlatercalls.CallingKeeppreventsre-useofthespecifiedstorage.ColorTileFromLoad:PROC[handle:Handle,colorTileLoadAddress:INT,scratch:REFImagerPixelMap.PixelMapRep_NIL]RETURNS[colorTile:ImagerPixelMap.Tile];DatatypesreturnedbyGetMaskRectangle:TYPE~REFMaskRectangleRep;MaskRectangleRep:TYPE~RECORD[sMin,fMin,sSize,fSize:CARDINAL];MaskTrapezoid:TYPE~REFMaskTrapezoidRep;MaskTrapezoidRep:TYPE~RECORD[sMin,fMin,fMinLast,sSize,fSize,fSizeLast:CARDINAL];MaskRunGroup:TYPE~REFMaskRunGroupRep;MaskRunGroupRep:TYPE~RECORD[sMin,fMin,sSize,fSize:CARDINAL,fOffset:CARDINAL,--addthistofMinofeachrunrunCount:INT,--numberofrunspointer:LONGPOINTERTOPDFileFormat.Run,loadAddress:INT,---1ifnotintheloadref:REF--forgarbagecollectionhacks];sïg/îEqï_:îštï]’î¬ï[ëî¬ïZCî¬ïXœî¬ïVôî¬ïUMî¬ïS¥î¬ïQþî¬ ïPVî¬ ïN¯î¬ïMî¬ ïK`î¬ïI¸îšqïFiîxî:vïDÁî‰tîºïDÁïDÁuî¸ïDÁïDÁî_tïDÁî_ uî<ïDÁïDÁî tî"MïDÁïDÁuî#5ïDÁïDÁî$ tïDÁî)@qïCîšîÉîî$áî1—î3PvïArî‰ tîüïArïAruîúïArïArî¢tïArî¡uî!îïArïArî"Xtî#4ïAruïArî#Œtî(VïArïAruî)>ïArïArî*tïArî/Iqï?ËîšîÉîî%bî'vï>#î‰tîÐï>#ï>#uîÍï>#ï>#îutï>#îtîØqï:ÔîxîÈ vï9-î‰tî¼ï9-ï9-uî¹ï9-ï9-îatï9-îaîÄî!üuî(%ï9-ï9-î(ßî./î/mtî3 ï9-ï9-uî3òï9-ï9-î4Ætï9-î9þuî:aï9-ï9-î;5tî<§ï9-ï9-î= qï7…îšî«î9îÝî)î!/î$˜ï5ÞîšîÉîî%bî'ï46îšî– îÞî#Eî)¿î,Tî.·î0‡î3Åî5íî9Mî="vï2�î‰tîƒï2�ï2�uî�ï2�ï2�î)tï2�î(îŒî"Äuî%dï2�ï2�î&8tî'ªï2�ï2�uî(’ï2�ï2�î)ftï2�î.žuî/ï2�ï2�î/Õtî1Gï2�ï2�î1ªqï0çîšîñîšî"ùî$Óî&î(�î*‘î-î.‰î3î4­î8¦î:™î=ÀîA·ï/@îmîàîî î!¹î$î)tvï-˜î‰tîmï-˜ï-˜uîkï-˜ï-˜îtï-˜î!î&uî+­uî9Ïï-˜ï-˜î:9tî;Úï-˜ï-˜î<·uîAÎï-˜ï-˜îB¢tï+ñî½î)›uî+(ï+ñï+ñî,tî-4ï+ñï+ñuî.ï+ñï+ñî.ïtï+ñî4' ï*Iî½qï&úîxîáîJî©îƒtï%Sî‰ uîŸï%Sï%SîXtï%Sîuî�ï%Sï%Sî qtï%Sî"hï#«îšuî%ï#«ï#«îßtï#«î"—uî$$ï#«ï#«î$øtï#«î)–ï"î¬îŒîaî ,uî$ ï"ï"î$Øtï \î¬ïµî‰ uî¿ïµïµîxtïµî1uî¾ïµïµî ‘tïµî"ˆï îšuîFï ï îÿtï î"·uî$Dï ï î%tï î)¶ïfî¬îŒîaî"·î&�î*A uî0¢ïfïfî1ltï¾î¬ïî‰ uîPïïî tïîÁuî Nïïî!"tïî#ïoîšuîÖïoïoî �tïoî#Huî$Õïoïoî%©tïoî*GïÈî¬îŒîaî ,uî$ ïÈïÈî$Øtî*DïÈïÈï î¬uîÁï ï îŒtîøï ï qî Õï ï î!Nî"Lî$áî'zî)î,ˆî.+î1Rtïxî¬uîqïxïxîÚtî|ïxïxqîYïxïxîÒîÐî$µî&XtïÑî¬uîîïÑïÑî§ïÑîÞïÑî#tïÑî%™ï)î¬ uîýï)ï)îgtîï)ï)qîåï)ï)î ^î!\î# î$`î&Ãî(iî*µtï ‚î¬uîLï ‚ï ‚î qï ‚îîŽî¶î"Ë î(Ùtï Úî¬ÿíTVm$ª59MaskSamples:TYPE~REFMaskSamplesRep;MaskSamplesRep:TYPE~RECORD[loadAddress:INT,---1ifnotintheloadsamples:ImagerPixelMap.PixelMap];ColorSamples:TYPE~REFColorSamplesRep;ColorSamplesRep:TYPE~RECORD[samples:ImagerPixelMap.PixelMap];DeviceCommand:TYPE~REFDeviceCommandRep;DeviceCommandRep:TYPE~RECORD[SEQUENCEwordCount:NATOFCARDINAL];StateChange:TYPE~REFStateChangeRep;StateChangeRep:TYPE~RECORD[whatChanged:WhatChanged,loadChangeStart,loadChangeLength:INT];WhatChanged:TYPE~{imageStart,imageEnd,priorityChange,colorChange,bandChange,loadChange,documentEnd};END.******************************************************sïg/îEtï_,î‰ uî¬ï_,ï_,îetï_,îuîªï_,ï_,î~tï_,î!uï]…îšuî2ï]…ï]…îìtï]…î!¤uî#1ï]…ï]…î$tï]…î(£ï[Ýî¬ uîýï[Ýï[Ýîgtîï[Ýï[Ýqîåï[Ýï[Ýî ^î!\î# î$`î&Ãî(iî*µtïZ6î¬îQïX�î¬ïVçî‰ uîÍïVçïVçî†tïVçî>uîËïVçïVçîŸtïVçî!–ïU@îšuîSïU@ïU@î tïU@î!Åuî#RïU@ïU@î$&tïU@î(ÄïS™î¬îQïQñî¬ïPJî‰ uîßïPJïPJî˜tïPJîQuî ÝïPJïPJî!±tïPJî#¨ïN£îšuî eïN£ïN£î!tïN£î#×uî%dïN£ïN£î&8tïN£î*ÖuïLûî¬tïLûîp uî#'ïLûïLûî$ïLûî& ïLûî(:tïKTî¬ïI­î‰ uîýïI­ïI­î¶tïI­îouîûïI­ïI­îÏtïI­î ÆïHîšuîƒïHïHî=tïHî õuî"‚ïHïHî#VtïHî'ôïF^î¬ îÐ ïD·î¬îhuî+°ïD·ïD·î,tïCî¬ïAhî¬ uî3ïAhïAhîìtïAhî!¤î#1ï?Áî½ îðî$Éî.� î6ù ï>îð î$Þ ï+------------+|--||^|--|||fMin|--|sOrigin|vlines|--|<-------->+----------------------------+--|^originofbuffer--||--||fOrigin--||--||--|v--+-------------------------------------------->--DevicespaceoriginsAPixelMapdescribesawindowintoabuffer,andthebufferitselfmaybepositionedanywhereinaglobaldevicespace.ThewindowinginformationisstoredinthePixelMaprecord,sothatitmaybeeasilychangedtoaccomplishtranslationandclippingbyrectangles.Thetranslationfeaturemaybeusedfordestinationmapstoconvenientlyimplementbandbuffers.sïg/îEqï_,îxï]…îxîÅî:îØîvî!¼î#–î'® î0î2aî6/ï[Ýî‰îËî«îÎî! î$Qî'`ïZ6î‰î?î²î×îdî"ªî'“î)ÝïVçîxî" î�î�î$ƒî(šî*>uïS˜îxtïQðî‰uî¡ïQðïQðî‡tïQðîë ïPIî‰uî‡ïPIïPIîltïPIîÐî!2ïLúîxuîSïLúïLúîïLúîé ïLúî&tïLúî+¸î/Ðuî1]ïLúïLúî2qïI«î‰î™î#îZî!™î#=î%‰ î-aî/î3mî8Fî:’î@�îCÌïHî\î>îŠîî 7î#Êî)Úî+Íî0î2ðî5<î87î9£ î?ØîB„ïF\î\î î·îÓîvî"#î$vî)­î,Qî.� î5³î8î>î?¶îCdîEïDµî\îîKîsîvîî Žî"åî$î(÷î+Cî,Lî//î0šî6Dî;\î>îAûïC î\î¾î±îæîPî!î!¸î#^î%ªî(± î.�yî0éïC qïC î1Üî4¿î7Tî:Ëî=™î@\ïAfî\î'î²îþî•î" î#¯tï>î‰zï>ï>îtïð#tï 9î‰zï 9ï 9îï 9î ¬{ï Æî!„î$¸î&tï’î‰zï’ï’îï’î›tïêî‰zïêïêîïêî›{îsïêïêîÔtïCî‰zïCïCîïCî›tï›î‰zï›ï›îï›î›tïôî‰zïôïôîïôî›tïLî‰zïLïLîð.tï¥î‰zï¥{ï2îî/î'tï¥î,;qïVî‰î îTîúî/î$î&Ëî'ÿî,Fî.éî15î5#î8lî;\î=, ï®î\îSîùî.î:î"=î&¹î)|î0$ î7uî8áî<Úî>€ïî\î¥î!îÚî ¬î"î$óî&Ãî*‚î/Éî1n î8V î?îA»ï `î\î6 îcî& î#èî(rî+bî-2î0Cî2j î9Cî<Âî>g ï ¸î\îèî<ÿgTVm$É61PixelMap:TYPE~RECORD[Theseparametersdefineawindowwithinthebuffer,aswellaswherethebufferispositionedindevicespace;theyarefairgameforclientstomodify.sOrigin,fOrigin:INTEGER,sMin,fMin:INTEGER,sSize,fSize:NAT,refRep:REFPixelMapRep];DeviceRectangle:TYPE~RECORD[sMin,fMin:INTEGER,sSize,fSize:NAT];Intersect:PROC[a,b:DeviceRectangle]RETURNS[DeviceRectangle];Computestheintersectionofdevicerectangles.Create:PROC[lgBitsPerPixel:[0..4],bounds:DeviceRectangle]RETURNS[PixelMap];Allocatesanewpixelmap.CreateFrameBuffer:UNSAFEPROC[pointer:LONGPOINTER,words:LONGCARDINAL,lgBitsPerPixel:[0..4],rast:CARDINAL,lines:CARDINAL,ref:REF_NIL]RETURNS[PixelMap];Tocreateadescriptionofapre-allocatedframebufferasaPixelMap.Therefmaybeusedforfinalization,ifdesired;otherwisetheclientisresponsibleformakingsurethestoragedoesnotgoawaywhilethePixelMapisstillinuse.Clear:PROC[pixelMap:PixelMap];Averyfastwaytoclearawholebuffer.Theeffectisnotlimitedtothewindowedarea.Reshape:PROC[refRep:REFPixelMapRep,lgBitsPerPixel:[0..4],bounds:DeviceRectangle]RETURNS[PixelMap];MakesaPixelMapfromrecycledstorage.Copy:PROC[p:PixelMap,scratch:REFPixelMapRep_NIL]RETURNS[PixelMap];CopiesthewindowedpartofaPixelMap.ShiftMap:PROC[p:PixelMap,s,f:INTEGER]RETURNS[PixelMap];TranslatesthepixelMapindevicespace.ShiftWindow:PROC[p:PixelMap,s,f:INTEGER]RETURNS[PixelMap];Translatesthewindowindevicespace.Clip:PROC[p:PixelMap,bounds:DeviceRectangle]RETURNS[PixelMap];Furtherrestrictsthewindow.SetWindow:PROC[p:PixelMap,bounds:DeviceRectangle]RETURNS[PixelMap];Changesthewindow.Window:PROC[p:PixelMap]RETURNS[DeviceRectangle];BufferBounds:PROC[p:PixelMap]RETURNS[DeviceRectangle];Returnsarectangledescribingtheactualboundsofthebuffer.BoundedWindow:PROC[p:PixelMap]RETURNS[DeviceRectangle];sïg/îEtï^—îxuî&ï^—ï^—îßtï^—î—uî$ï^—ï^—îøtï^—î—qï\ïî‰îl îJîEî zî%Oî)mî+¹î/ÿî1¸î4…î6>î: îtî#XïOµïOµî#»î'›uî+’ïOµïOµî+ütî0ÒïOµïOµî1®î5yuî9ZïOµïOµî:Btî;ÏïOµïOµî<2vïLfîxtî®ïLfïLfuî¬ïLfïLfîStïLfîSî8îýuî&ÚïLfïLfî'­tïLfî,åqïJ¿î‰îÎî î Lî!ïî%ò vïGpîxtîdïGpïGpuîbïGpïGpî tïGpî î ¤î$Vî)¯uî4ŒïGpïGpî5`tïGpî:˜ qïEÈî‰î]î‘îVî³vïBzîxtîãïBzïBzuîàïBzïBzîÆïBzî tïBzî#¿uî)dïBzïBzî*ïBzî-Ttî2qïBzïBzî3Nuî7ÔïBzïBzî8�ïBzî;ÄtîAûïBzïBzï@Òî¬îãî!–uî$°ï@Òï@Òî%{tî*çï@Òï@Òî+Äuî/xï@Òï@Òî0Ctî5¯ï@Òï@Òî6‹uî9,ï@Òï@Òî:tï@Òî;÷uî=„ï@Òï@Òî>ltî?�ï@Òï@Òuî@vï@Òï@ÒîAJtï?+î¬ qï=„î‰î¥îŸîÔ î�î @î!u î)pî-Hî16î2ïî4$î;Jî> î@îCï;Üî\îmî• îî\î$\î*Fî,’î0Aî1­ î8Šî:±î?•îBzï:5î\îî îmîRî Äî$Mî&šî,ãî.Nî0ðî2–vï6æîxtî¨ï6æï6æuî¦ï6æï6æîNtï6æîM îS qï5?î‰î îïî‡îIîíî?î tî$Kî)î+Ùî/{yî0çï5?ï5?î1¢qî3Pï5?ï5?î3´î7Ðî9tî;ÀîAávï1ðîxtîlï1ðï1ðuîjï1ðï1ðîtï1ðîuîŠï1ðï1ðî^tï1ðî U î)Vî2Žî6Aî;™uï0Iî¬tï0Iî· qï.¢î‰îùî-îvî´î$ávï+Sîxtî|ï+Sï+Suîzï+Sï+Sî"tï+Sî!îIîÕuî#íï+Sï+Sî$Átï+Sî&· î/auî0îï+Sï+Sî1Ötî2ùï+Sï+Suî3àï+Sï+Sî4´tï+Sî9ì qï)¬î‰îîî:î[î 5î!Øî# vï&]îxtîï&]ï&]uîï&]ï&]îÁtï&]îÁîéî!uî"Öuî$Mï&]ï&]î$·tî)�ï&]ï&]uî*tï&]ï&]î+Htï&]î0€ qï$¶î‰ îî[îmî!î%vï!gîx tî-ï!gï!guî*ï!gï!gîÒtï!gîÑîùî#†î$æuî&]ï!gï!gî&Çtî+�ï!gï!guî,…ï!gï!gî-Ytï!gî2� qïÀî‰ îî[î1î×î#Úvïqîxtîâïqïquîàïqïqî‡tïqî‡î®î;î#”uî.qïqïqî/Etïqî4| qïÊî‰îwî†îÒvï{îxtîEï{ï{uîCï{ï{îëtï{îêîî"žî'÷uî2Ôï{ï{î3¨tï{î8à qïÓî‰îîSvï…îxtîJï…ï…uîHï…ï…îïtï…îïîuî ®ï…ï…î!‚tï…î&ºvï6îx tî‘ï6ï6uîŽï6ï6î6tï6î6î]uî#õï6ï6î$Étï6î*qï �î‰îšîÏî› î"óî%?î)Oî-äî/ˆî1Ôvï @îx tîuï @ï @uîsï @ï @îtï @îîBuî%Ùï @ï @î&­tï @î+åÅTVm$g62p.Window.Intersect[p.BufferBounds]GetPixel:PROC[source:PixelMap,s,f:INTEGER]RETURNS[CARDINAL];Raisesboundsfaultifthepointisnotinthewindow.ThefollowinginlineversionsofGetPixelassumethattheclientalreadyknowsthenumberofbitsperpixel.Theydonoboundscheck,sincetheworstthatcanhappenisanaddressfault.GetBit:PROC[source:PixelMap,s,f:INTEGER]RETURNS[CARDINAL]~TRUSTEDINLINE{RETURN[LOOPHOLE[source.refRep.pointer+Basics.LongMult[(s-source.sOrigin),source.refRep.rast],LONGPOINTERTOPACKEDARRAY[0..0)OF[0..2)][f-source.fOrigin]]};Get2Bits:PROC[source:PixelMap,s,f:INTEGER]RETURNS[CARDINAL]~TRUSTEDINLINE{RETURN[LOOPHOLE[source.refRep.pointer+Basics.LongMult[(s-source.sOrigin),source.refRep.rast],LONGPOINTERTOPACKEDARRAY[0..0)OF[0..4)][f-source.fOrigin]]};Get4Bits:PROC[source:PixelMap,s,f:INTEGER]RETURNS[CARDINAL]~TRUSTEDINLINE{RETURN[LOOPHOLE[source.refRep.pointer+Basics.LongMult[(s-source.sOrigin),source.refRep.rast],LONGPOINTERTOPACKEDARRAY[0..0)OF[0..16)][f-source.fOrigin]]};Get8Bits:PROC[source:PixelMap,s,f:INTEGER]RETURNS[CARDINAL]~TRUSTEDINLINE{RETURN[LOOPHOLE[source.refRep.pointer+Basics.LongMult[(s-source.sOrigin),source.refRep.rast],LONGPOINTERTOPACKEDARRAY[0..0)OF[0..256)][f-source.fOrigin]]};Get16Bits:PROC[source:PixelMap,s,f:INTEGER]RETURNS[CARDINAL]~TRUSTEDINLINE{RETURN[LOOPHOLE[source.refRep.pointer+Basics.LongMult[(s-source.sOrigin),source.refRep.rast],LONGPOINTERTOPACKEDARRAY[0..0)OFCARDINAL][f-source.fOrigin]]};Equal:PROC[a,b:PixelMap]RETURNS[BOOLEAN];Testsforequality.IsAll:PROC[pixelMap:PixelMap,value:CARDINAL_0]RETURNS[BOOLEAN];Testsforaconstant.Trim:PROC[pixelMap:PixelMap,background:CARDINAL_0]RETURNS[PixelMap];Shrinkstheboundingboxtoremoveunneededbackground.Fill:PROC[dest:PixelMap,area:DeviceRectangle,value:CARDINAL,function:Function_[null,null]];Function:TYPE~RECORD[dstFunc:PrincOps.DstFunc,srcFunc:PrincOps.SrcFunc];[null,null]makeszerobitswhite,onebitsblack[or,null]makeszerobitstransparent,onebitsblack[and,null]makeszerobitswhite,onebitsblack[and,complement]makeszerobitstransparent,onebitswhite[xor,null]makeszerobitstransparent,onebitsinvertedetcetera.Transfer:PROC[dest,source:PixelMap,function:Function_[null,null]];DoesaBITBLTfromthesourcetothedest,throughtheintersectionofthetwowindows.Doestherightthingifthesourceanddestoverlapinthesamebuffer.sïg/îEqï_,î‰ð"vï[Ýîxtî¹ï[Ýï[Ýuî¶ï[Ýï[Ýî^tï[Ýî]î‰î$î%wuî&îï[Ýï[Ýî'Wtî,.ï[Ýï[Ýuî-ï[Ýï[Ýî-étï[Ýî3!uî3„ï[Ýï[Ýî4Otî9»ï[Ýï[Ýî:qïZ5î‰îÂîWî‹îáî -î#¤î%î'sî)î+eïVæî‰îMî îæî!ÿyî#¢ïVæïVæî$«qïVæî)hî.î0åî31î6àî;�î?ÃîBïU?î\îîŒîàî•îþî ãî"Öî'kî+œî.üî1Hî4Üî7®î:<î>èî@TîBGïS—î\vïQðî‰tî‹ïQðïQðuî‰ïQðïQðî0tïQðî0î\î$èî&Iuî'ÀïQðïQðî(*tî-ïQðïQðuî-èïQðïQðî.¼tïQðî3óuî4VïQðïQðî5!tî:�ïQðïQðïPHîšuî'ïPHïPHîáïPHîtïPHî±uîaïPHïPHî 5tïPHî$Îuî%1ïPHïPHî%êtî+ïPHïPHî+âî9>î;#ïN¡îÎîÌî#žuî/�ïN¡ïN¡î0FïN¡î3}ïN¡î9ïN¡î;8ïN¡î@ˆtïLùîÎuî?ïLùïLùîtïLùîXî# î$vïKRî‰tîËïKRïKRuîÈïKRïKRîptïKRîpîœî&(î'‰uî)ïKRïKRî)jtî.@ïKRïKRuî/'ïKRïKRî/ûtïKRî53uî5–ïKRïKRî6atî;ÍïKRïKRïIªîšuî'ïIªïIªîáïIªîtïIªî±uîaïIªïIªî 5tïIªî$Îuî%1ïIªïIªî%êtî+ïIªïIªî+âî9>î;#ïHîÎîÌî#žuî/�ïHïHî0FïHî3}ïHî9ïHî;8ïHî@ˆtïF\îÎuî?ïF\ïF\îtïF\îXî# î$vïD´î‰tîËïD´ïD´uîÈïD´ïD´îptïD´îpîœî&(î'‰uî)ïD´ïD´î)jtî.@ïD´ïD´uî/'ïD´ïD´î/ûtïD´î53uî5–ïD´ïD´î6atî;ÍïD´ïD´ïC îšuî'ïC ïC îáïC îtïC î±uîaïC ïC î 5tïC î$Îuî%1ïC ïC î%êtî+ïC ïC î+âî9>î;#ïAeîÎîÌî#žuî/�ïAeïAeî0FïAeî3}ïAeî9ïAeî;8ïAeî@ˆtï?¾îÎuî?ï?¾ï?¾îtï?¾îX î#¹î$·vï>î‰tîËï>ï>uîÈï>ï>îptï>îpîœî&(î'‰uî)ï>ï>î)jtî.@ï>ï>uî/'ï>ï>î/ûtï>î53uî5–ï>ï>î6atî;Íï>ï>ïî;#ï:ÇîÎîÌî#žuî/�ï:Çï:Çî0Fï:Çî3}ï:Çî9ï:Çî;8ï:Çî@ˆtï9 îÎuî?ï9 ï9 îtï9 îX î$iî%gvï7xî‰tî{ï7xï7xuîyï7xï7xî!tï7xî î Lî&Øî(9uî)°ï7xï7xî*tî.ðï7xï7xuî/Øï7xï7xî0¬tï7xî5ãuî6Fï7xï7xî7tî<}ï7xï7xï5Ñîšuî'ï5Ñï5Ñîáï5Ñîtï5Ñî±uîaï5Ñï5Ñî 5tï5Ñî$Îuî%1ï5Ñï5Ñî%êtî+ï5Ñï5Ñî+âî9>î;#ï4)îÎîÌî#žuî/�ï4)ï4)î0Fï4)î3}ï4)î9ï4)î;8ï4)î@ˆtï2‚îÎuî?ï2‚ï2‚îï2‚îXtî$�ï2‚ï2‚î$òî&Sî'Qvï/3îxtîßï/3ï/3uîÜï/3ï/3î„tï/3î„îiî-uî Åï/3ï/3î!™tï/3î&Ðuî'3ï/3ï/3î'ítî,Ôï/3ï/3î-7qï-‹î‰î î0vï*<îxtîEï*<ï*ÞîDÆï§î¬î?ïÿîxuîÚïÿïÿî“tïÿîKuîØïÿïÿî¬tïÿîJî%uî1Dî6õqïXî‰îîIîzîiî õî$äî'rî)þï°î‰î î<îmî\îè î'[î)éî,uï î‰îóî'îXîGî Óî$Âî'Pî)Üïaî‰îó îÕî î"ôî%€ î,óî/�î2ï¹î‰îÐîî4î#î ¯ î("î*°î-<ïî‰vïÃîxtîƒïÃïÃuî€ïÃïÃî(tïÃî'îÇî �î'î-î2÷î4„î8qïî‰îñxî%ïïîèqïîßîîiî#™î%>î'Šî*¦î/¶î2 î93î:×î=#î?¯ï tî\îÄîîYîÜî2î!~î%®î(Qî+î/Èî1nî3ºî7$ðTVm$Þ63Tile:TYPE~RECORD[sOrigin,fOrigin:INTEGER,sSize,fSize:NAT,phase:INTEGER,refRep:REFPixelMapRep];AtileissimilartoaPixelMap,butthewindowspecificationsaremoreprimitive,andthereisanadditionalphasespecification.Atileisreplicatedtofilltheplane,withtileshiftedbyphasepixelsinthefdirectioneverysource.sSizelines.CreateTile:PROC[pixelMap:PixelMap,phase:INTEGER_0,fSizeHint:NAT_100,scratch:REFPixelMapRep_NIL]RETURNS[tile:Tile];ThepixelMapisturnedintoatile.Thismayinvolvereplicatingthepatterntomakealargertilethatwillspeedthecoloringoperation,sothesizeoftheresultwillnotingeneralbethesameasthesource.ThefSizeHintisusedtohelpdecidehowbigtomakethemacro-tile.Theclientmaysupplysomescratchstorageforre-use.TileFromStipple:PROC[stipple:CARDINAL,scratch:REFPixelMapRep_NIL]RETURNS[tile:Tile];Makesa4-by-4one-bit-per-pixeltilefromthestipplebits.TileFromConstant:PROC[pixelValue:CARDINAL,lgBitsPerPixel:[0..4]_0,scratch:REFPixelMapRep_NIL]RETURNS[tile:Tile];Makesatilewithaconstantvalue.TransferTile:PROC[dest:PixelMap,tile:Tile,function:Function_[null,null]];Transfersfromthetiledplanetodest.Rotate:PROC[pixelMap:PixelMap,scratch:REFPixelMapRep_NIL]RETURNS[PixelMap];MakesapixelMapthatisrotated90degreescounterclockwise.Repeattogetotherrotations.Reflect:PROC[pixelMap:PixelMap,scratch:REFPixelMapRep_NIL]RETURNS[PixelMap];MakesapixelMapthatisreflectedaboutthefaxis.PixelMapRep:TYPE~RECORD[ref:REF,pointer:LONGPOINTER,words:LONGCARDINAL,lgBitsPerPixel:[0..4],--logarithmbasetwoofbitsPerPixelrast:CARDINAL,lines:CARDINALStoredcontiguously,witheachlinepaddedtoawordboundary,rastwordsperline.Therefisforgarbagecollectionhacks;thelongpointerpointstotheactualbits.Musthaverast*lines<=words.Clientsshouldtrytoavoiddealingdirectlywiththisrecord.];END.******************************************************sïg/îEtï_,îxuîÉï_,ï_,î‚tï_,î;uîÇï_,ï_,î›tï_,î:ï]…î‰î¿uî ï]…ï]…îutî Kï]…ï]…ï[Ýî‰îTuî5ï[Ýï[Ýîtîªï[Ýï[ÝïZ6î‰uîäïZ6ïZ6îNtî$ïZ6ïZ6ïX�î‰uîŸïX�ïX�îstïX�îj ïVçî‰qïU@î‰î îaîÍîIîîî#î#Äî&&î(rî-G î5}î7Ñî;: îA1ïS™î\îÇî3î& îuî"6 î*Ãî,Eî.›î0 î6'î7Ìî9éî<5î@/îC*ïQñî\î¯î‰îJî+î Ñî#î$î)¤î-# î4¤vïN£îx tîÄïN£ïN£uîÁïN£ïN£îitïN£îi î oî&ûuî+VïN£ïN£î+ÀtïN£î1î2§î44 uî:ÍïN£ïN£î;µtïN£î=Æî?SïLûî¬uîÃïLûïLûî—tïLûî� î%7uî&ÄïLûïLûî'¬tî(ÏïLûïLûuî)·ïLûïLûî*‹tïLûî/Âî2þqïKTî‰îMî_îÊî î!Ðî#î&7î)Gî,7î0Á î7hî9µî>Xî?ýîC©ïI­î\îHî�îoîî £î"ðî() î.xî01î2}î5î6Âî9î<Æî?[îA¾ïHî\îîìî9î¢î[î!§î&´î)wî/›î1î4î5¼î8¬î<Äî?�îAåïF^î\î îU î–î!Yî%î'ùî,'î/‘î41î8Úî;vïCîxtî*ïCïCuî'ïCïCîÏtïCîÎuî"ïCïCî"çtî(SïCïCî)/uî.FïCïCî/tïCî1 î9»uî;GïCïCî<0tî=SïCïCuî>:ïCïCî?tïAhî¬îçqï?Áî‰îùî-î[î$�î&Öî*î,`î0›vïîxî; îQî¥î1î×î#…î%)î&1î(Õî)Èî,iî/lî2uïQïîxtïPHî‰ uîëïPHïPHîÑtïPHî5ïLøîxuîïLøïLøîæïLøî± tïLøî&Ðuî(]ïLøïLøî)qïKQîxîátïI©î‰uî}ïI©ïI©î6tïI©îîî {xïHîšqïHîûî@xî "ïHïHî žqî%NïHïHî&+î*xî-ãïHïHî.¿qî0CïHïHî0±tïD²î‰uîZïD²ïD²îtïD²îËuîXïD²ïD²îïD²îXtïD²î rqïC îšî(î]îî5î‰ î"—î&bî(î*Tî,ìî07î3^ïAcî¬î3îxîŸïAcïAcî jqïAcî"§î'.î)xî-™ïAcïAcî.dqïAcî0¡ î:aî<öxï?¼î¬qï>î¬ î–î!+vï:Åî‰tîsï:Åï:Åuîpï:Åï:Åîtï:Åîî @uî%ûï:Åï:Åî&Ïtï:Åî, qï9îšîZî,îxî Cî%ûî'g tï7vîšuî#ï7vï7vî#Êtî'"ï7vï7vqï5Îîxî¼vï4&î‰ tî¨ï4&ï4&uî¦ï4&ï4&îMtï4&îMï2îšuî.ï2ï2îÖtîQï2ï2qî9ï2ï2î²î°î î#&î%¿tï0×î¬uî»ï0×ï0×îctîÞï0×ï0×îAî"uî#ï0×ï0×î#‚tî(Xï0×ï0×î)5uî-ï0×ï0×î-þtî/Šï0×ï0×î/îqî1Nï0×ï0×î1Èî2Åî6tî9Žî<'î?eîC=tï/0î¬uîTï/0ï/0îûtîwï/0ï/0îÚuî+Ïï/0ï/0î,·tî.Dï/0ï/0qî/°ï/0ï/0î0)î1'î4Öî7ðî:ˆî<-î@<îAqtï-ˆî¬ï+àîšuî‚ï+àï+àîVtï+àîŽ qï*9îšî^îfîjî°î"Fî$Êî&òî*î,õî.›î8Vî9·î;Fî>6î@ÌîDÛï(’îmî,î`î’î"+vï%Bî‰ tîï%Bï%Buî ï%Bï%Bî´tï%Bî³î)±uî4Žï%Bï%Bî5btï%Bî:š qï#›îxî¼ vï!óî‰tî0ï!óï!óuî.ï!óï!óîÕtï!óîÕuî"Ìï!óï!óî#…ï!óî%Ëtï!óî'åqï Lîšî·îîÆî¹î­î"óî%2î&×î(¦î.Mî1üî5³î8Óî=î?Tï¤îmîÞîÃîî Îî#0î&œî+:î,oî.®î2´î5Kî7Ÿî:ƒî?-î@™ïýîmîaî•îÑîî Wî$î&®î(îî.î3‹ î9çî;=î>/ïUîm ïîxîšî_î(îevï_î‰tîŽï_ï_uî‹ï_ï_î3tï_î2uî^ï_ï_tî)ï_ï_îúuî#ãï_ï_î$·tï_î)î vïî‰tî1ïïuî/ïïî×tïîÖî»î€uî":ïïî#tïî(F vïÀî‰ tî™ïÀïÀuî–ïÀïÀî>tïÀî=î#îçuî%¡ïÀïÀî&utïÀî+­ vï qî‰ tî±ï qï quî¯ï qï qîVtï qîVî;îuî$ºï qï qî%Žtï qî*Æ 2TVm$ä66ModifyingexistingPolygonsShift:PROC[polygon:Polygon,sShift,fShift:INTEGER];Canonicalize:PROC[rectangleList:LISTOFDeviceRectangle]RETURNS[Polygon];TurnsalistofarbitraryrectanglesintoavalidPolygon.Re-usesthestorage,socopyfirstifrectangleListmightbeshared.ExtractinginfofromPolygonsBoundingBox:PROC[polygon:Polygon]RETURNS[DeviceRectangle];CountBoxes:PROC[polygon:Polygon]RETURNS[INT];CountRuns:PROC[polygon:Polygon]RETURNS[INT];MapRuns:PROC[polygon:Polygon,run:PROC[sMin,fMin:INTEGER,fSize:NAT]];Visibility:TYPE~{visible,partlyVisible,invisible};IsVisible:PROC[mask,clipper:Polygon]RETURNS[Visibility];SELECTIntersection[mask,clipper]FROM=empty=>invisible,=mask=>visible,ENDCASE=>partlyVisible;N.B.willreturninvisibleifmaskisempty.END.******************************************************sïg/îEqï_,îxîûî vï]…î‰tîlï]…ï]…uîiï]…ï]…îtï]…îî9î#éî(#uî,sï]…ï]…î,Ýtî1³ï]…ï]…î2vïZ6î‰ tîïZ6ïZ6uîïZ6ïZ6îÃtïZ6îÂuî%¹ïZ6ïZ6î&rïZ6î(¹tïZ6î*Òuî5¯ïZ6ïZ6î6ƒtïZ6î;» qïX�îšîŠî¿îþî¡î!< î'Œî*Sî+ˆî.Îî4îî9åî<1îA2îBëïVçîmî<î“ î©î#„î%SïU@îx î8îþî;vïS™î‰ tî–ïS™ïS™uî”ïS™ïS™î<tïS™î;î#duî)ïS™ïS™î)òtïS™î/*vïPJî‰ tîÅïPJïPJuîÃïPJïPJîktïPJîjî"“uî(MïPJïPJî)!tïPJî.Yuî.¼ïPJïPJî/&tî0ÈïPJïPJî1+vïLûî‰tî+ïLûïLûuî(ïLûïLûîÐtïLûîÏî!øuî'²ïLûïLûî(†tïLûî-¾uî.!ïLûïLûî.‹tî0-ïLûïLûî0�vïI­î‰tîNïI­ïI­uîLïI­ïI­îótïI­îóî!î&Ëuî)ÛïI­ïI­î*‚tïI­î-‚î1Åuî5¼ïI­ïI­î6&tî:üïI­ïI­î;Øuî?¹ïI­ïI­î@¢tîB.ïI­ïI­îB‘ïF^î‰ uîßïF^ïF^î˜tïF^îPîÝî!5 î)œ vïCî‰tîžïCïCuîœïCïCîDtïCîCî’î#¨uî)bïCïCî*6tïCî/n qïAhîšîºî#ûî(Îï?Áî¬î‘îŒî! ï>î¬î‘î'î¼ïîx tî1ï>ï>uî.ï>ï>îÖtîQï>ï>î´îTï­ï/2ï/2î?qï-‹î‰ îÂîgî6î)î êî%Sî)™î+iî.»î0`î2¬vï*<îx tîÑï*<ï*uî$ËïOµïOµî%ŸtïOµî*=uïN îštïN î_ uî!ïN ïN î!þïN î$tïN î&)ïLfîšïJ¿î‰uî¬ïJ¿ïJ¿îftïJ¿îuî«ïJ¿ïJ¿î¼ïJ¿îÑïJ¿î'~tïJ¿î,ðqïIîšîÏî îîSî! î"cî$ñî&Áî*ºî-fî.›tïGpîšuî#ïGpïGpî tî˜ïGpïGpqîuïGpïGpîîîìî¬î!PtïEÉîš îÛïD!îšïBzî‰ uî"ïBzïBzîÛtïBzî“î î#Ÿ ï@Óî‰ uîüï@Óï@Óî¤ï@Óîwtï@Óî!èuî#uï@Óï@Óî$Itï@Óî&?ï?+î‰uîEï?+ï?+îíï?+î Àtï?+î$1uî%¾ï?+ï?+î&’tï?+î+1uî0Gï?+ï?+î1/tî2¼ï?+ï?+î3˜uî6‡ï?+ï?+î7&tï?+î=K uï=„î½ï=„î¶ï=„îÐtî!ï=„ï=„î!sï;Ýî‰ uîï;Ýï;ÝîÅï;Ýî˜tï;Ýî" uî#–ï;Ýï;Ýî$jtï;Ýî) ï:5îš uî¬ï:5ï:5îtîìï:5ï:5qîÉï:5ï:5î Bî!@ î'çî)Ìî,aî0áî3-î5üî9î;²î>„îBÿï8ŽîÎtï6çîš îÛ ï5?îš uîÙï5?ï5?îÁtîNï5?ï5?qî*ï5?ï5?î¤î¡î#†î%*î(<î+dî.6î1“î4+tï3˜îšî¬î²îÃuîêï3˜ï3˜î¾tï1ñîšï0Iî‰uîï0Iï0Iî¾ï0Iî‘tï0Iî uî!�ï0Iï0Iî"ctï0Iî'ï.¢îšîCuîï.¢ï.¢îmtîCï.¢ï.¢qî ï.¢ï.¢î ˜î!–î#<î'?tï,ûîšuî,ï,ûï,ûî÷tîcï,ûï,ûï+Sîšuî»ï+Sï+Sî†tîòï+Sï+Sï)¬îš uî¬ï)¬ï)¬îtîìï)¬ï)¬qîÉï)¬ï)¬î Bî!@ î'çî)Ìî,aî0áî3-î5üî9î;²î>„îBÿï(îÎtï&]îš uîÙï&]ï&]î¤tî ï&]ï&]qî ìï&]ï&]î!eî"cî'Hî(ìî+þî/&î1øî5Tî7ítï$¶îš îÛ ï#îšuî‹ï#ï#îstî!ï#ï#ï!gîšuîÂï!gï!gî�tîùï!gï!gïÀîšî¬uîÓïÀïÀîžtî ïÀïÀïîšî¬uîÓïïîžtî ïïïqîšî¬uîÓïqïqîžqïÊî¬î‰î� î!ûî$G î+]î-î0wî1_ï#î½ îÑî¶î!Lî#1î&Äî2ãî4Ètï{îšuï-îxtîï-ï-rï ìî gð6õTVm$œ69ImagerStroke.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.MichaelPlass,February6,19841:34:15pmPSTDougWyatt,January21,198510:24:09pmPSTDIRECTORYImagerPathUSING[PathProc],ImagerScanConverterUSING[DevicePath,DeviceRectangle],ImagerTransformationUSING[Transformation],Vector2USING[VEC];ImagerStroke:CEDARDEFINITIONS~BEGINVEC:TYPE~Vector2.VEC;Transformation:TYPE~ImagerTransformation.Transformation;PathProc:TYPE~ImagerPath.PathProc;DevicePath:TYPE~ImagerScanConverter.DevicePath;DeviceRectangle:TYPE~ImagerScanConverter.DeviceRectangle;DevicePathFromStroke:PROC[path:PathProc,closed:BOOL,width:REAL,style:INT,dashes:REF_NIL,clientToDevice:Transformation,clipBox:DeviceRectangle,scratch:DevicePath_NIL--forre-useofstorage]RETURNS[devicePath:DevicePath];Bezier:TYPE~RECORD[b0,b1,b2,b3:VEC];--BeziercontrolpointsforacubiccurveSubdivide:PROC[bezier:Bezier,vertex:PROC[VEC],tolerance:REAL_0.5];FlatBezier:PROC[bezier:Bezier,epsilon:REAL]RETURNS[BOOLEAN];Split:PROC[bezier:Bezier]RETURNS[firstHalf,secondHalf:Bezier];StrokeDashes:TYPE~REFStrokeDashesRep;StrokeDashesRep:TYPE~REF;Thisisopaquesowecanexperimentwiththespecification.Stroke:PROC[path:PathProc,closed:BOOL_FALSE,m:Transformation_NIL,width:REAL,style:StrokeStyle_[square,miter],dashes:StrokeDashes_NIL,moveTo:MoveToProc_,lineTo:LineToProc_,curveTo:CurveToProc_,conicTo:ConicToProc_NIL,arcTo:ArcToProc_NIL];Producestheoutlineofastroke,givenapathforthecenterline.END.******************************************************sïg/îEqï_,îxï]…îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Ýî‰îËî«îrî ÿî$Eî).î+yïZ6î‰î?î²î×î î#Zî(óî+>uïVçîxtïU@î‰ uîèïU@ïU@îÍtïU@î1 ïS™î‰uîûïS™ïS™îátïS™î"E î*JïQñî‰uîsïQñïQñîYtïQñî"½ïPJî‰uîªïPJïPJî�tïPJîôuîWïPJïPJî"tî¦ïPJïPJî ïLûîx uîzïLûïLûîDïLûî tïKTîxuîïKTïKTî¾ïHîxtîÇïHïHuîÅïHïHî~tïHî6îÃuî·ïHïHî‚tîïHïHïF^îxuî®ïF^ïF^îgtïF^îî¬ð$ïD·îxuîÏïD·ïD·îˆtïD·î@îÍïAhîx uî;ïAhïAhîôtïAhî­î9ï?Áîxuîkï?Áï?Áî$tï?ÁîÝîjð$vïLï_ï_ï¸îKxîqï¸ï¸î;qî‹ï¸ï¸îhîý î"Uî#Âî(Îî-!î1ß î:kxî;Øï¸ï¸î<´qî=óï¸ï¸ïîKîÝ îêî°î#e î*çî,­î2T î:›ïiîKîè î&xî“ïiïiîoqî ®ïiïiî!Šî%ïî,ßxî.Lïiïiî/)qî0gïiïiî0ÕïÂî‰îQî�îîÂîöî$^î'êî)î,1î.Xî0¤ uïsîxtîïsïsrï ìî gð6ÿÐTVm$Ó70ImagerPixelRow.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.MichaelPlass,August6,19849:07:08amPDTDougWyatt,January19,19853:06:59pmPSTDIRECTORYImagerPixelMapUSING[PixelMap,PixelMapRep],ImagerTransformationUSING[Transformation];ImagerPixelRow:CEDARDEFINITIONS~BEGINPixelMap:TYPE~ImagerPixelMap.PixelMap;PixelMapRep:TYPE~ImagerPixelMap.PixelMapRep;Transformation:TYPE~ImagerTransformation.Transformation;Pixel:TYPE~CARDINAL;PixelRow:TYPE~REFPixelRowRep;PixelRowRep:TYPE~RECORD[sOrigin:INTEGER,fOrigin:INTEGER,fSize:NAT,pixel:SEQUENCEmaxSize:NATOFPixel];CreatePixelRow:PROC[sMin,fMin:INTEGER,fSize:NAT]RETURNS[new:PixelRow];ClearPixelRow:PROC[pixelRow:PixelRow];CopyPixelRow:PROC[pixelRow:PixelRow,scratch:PixelRow_NIL]RETURNS[new:PixelRow];AddByColumn:PROC[dest,source:PixelRow];SubtractByColumn:PROC[dest,source:PixelRow];LoadPixelRow:PROC[pixelRow:PixelRow,source:PixelMap];StorePixelRow:PROC[pixelRow:PixelRow,dest:PixelMap];TransferSamples:PROC[dest,source:PixelMap,transformation:Transformation,tile:BOOLEAN_FALSE,multiplier:CARDINAL_1,lgScale:INTEGER_0];UnderSample:PROC[pixelMap:PixelMap,transformation:Transformation,tile:BOOLEAN_FALSE,background:CARDINAL_0,scratch:REFPixelMapRep_NIL]RETURNS[PixelMap];BoxFilter:PROC[pixelMap:PixelMap,sSizeBox,fSizeBox:NAT];BoxTooBig:ERROR;ChangeBitsPerPixel:PROC[pixelMap:PixelMap,newLgBitsPerPixel:[0..4],scratch:REFPixelMapRep_NIL]RETURNS[PixelMap];Renormalize:PROC[pixelMap:PixelMap,oldmin,oldmax,newmin,newmax:REAL];sïg/îEqï_,îxï]„îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Ýî‰îËî«îKîØî#î(î*RïZ5î‰î?î²î×î î#Zî(Cî*ŽuïVæîxtïU?î‰ uîëïU?ïU?îÑtïU?î5 î&$ ïS—î‰uîsïS—ïS—îYtïS—î"½ïPHîxuîSïPHïPHîïPHîè tïN¡îxuîïN¡ïN¡î¾tïLùîxuî&ïLùïLùîßtïLùî—î$ïKRîx uî›ïKRïKRîTtïKRî îšïIªîxuî®ïIªïIªîgtïIªîî¬ð$ïHîxuîcïHïHîtïHîÕuîbïHïHî-tî™ïHïHïF[îxuî%ïF[ïF[îßtïF[î—uî$ïF[ïF[îøtïF[îî ïD´îx uî›ïD´ïD´îTtïD´î uî™ïD´ïD´îmtïD´î" ïC î‰uîàïC ïC îJtî ïC ïC ïAeî‰uîÕïAeïAeî?tîïAeïAeï?½î‰uîjï?½ï?½îStîßï?½ï?½ï>î‰uîjï>ï>î tï>î.uî!ï>ï>î!þï>î$tï>î&(ï/ï2�ï2�î>“ï0Úî¬ vï-‹îx tîï-‹ï-‹uîþï-‹ï-‹î¥tî ï-‹ï-‹î„îÀî#ˆ vï*<îxtîÁï*<ï*×ïXïXî?�tïXîDûuï±î¬tîJï±ï±î& uî!+ï±ï±î!ötï±î'æî)sî+uî0ï±ï±î0ëtï±î2â î;‹uî=ï±ï±î>tî?$ï±ï±uî@ ï±ï±î@ßtï î¬ vïºîxtî'ïºïºuî%ïºïºîÍtîHïºïºî«îNî%Úî+øuî2,ïºïºî3tî4¡ïºïºî5ïî‰ uî3ïïîìtîEïïvïÄîxtîfïÄïÄuîcïÄïÄî tî†ïÄïÄîêî%Œî,î8?î;ñuîAïÄïÄîAÜtïî¬ îUuîâïïîËtî îïïuî!Õïïî"©tî'\ïïî'À vï Îîx tîàï Îï ÎuîÞï Îï Îî…tîï Îï Îîdî!î'“î,¨î1êî7„uî=kï Îï Îî>?tî@„ï Îï Îî@çÈTVm$ø71END.******************************************************sïg/îEuï_lîxtîï_lï_lrï ìî gð6<TVm$72ImagerSampler.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,August7,19843:17:05pmPDTDougWyatt,October18,19849:22:40amPDTDIRECTORYImagerPixelMapUSING[PixelMap],ImagerPixelRowUSING[PixelRow],ImagerTransformationUSING[Transformation],ScaledUSING[Value];ImagerSampler:CEDARDEFINITIONS~BEGINPixelMap:TYPE~ImagerPixelMap.PixelMap;Transformation:TYPE~ImagerTransformation.Transformation;Pixel:TYPE~CARDINAL;PixelRow:TYPE~ImagerPixelRow.PixelRow;Sampler:TYPE~REFSamplerRep;SamplerRep:TYPE~RECORD[m:Transformation,x,y:INTEGER,sPixels,fPixels:NAT,sStart,fStart:Scaled.Value,--InverseTransform[m,[x+0.5,y+0.5]]MOD[sPixels,fPixels]sDelta,fDelta:Scaled.Value,--InverseTransformVec[m,[0,1]]sDeltaLine,fDeltaLine:Scaled.Value--InverseTransformVec[m,[1,0]]];CreateSampler:PROC[m:Transformation,x,y:INTEGER,sPixels,fPixels:NAT]RETURNS[sampler:Sampler];SetSamplePosition:PROC[sampler:Sampler,x,y:INTEGER];Incremental,assumingsampleHandleisalreadycorrect.ObtainPointSamples:PROC[pixelRow:PixelRow,source:PixelMap,sampler:Sampler,multiplier:CARDINAL_1,lgScale:INTEGER_0];Uses[pixelRow.sOrigin,pixelRow.fOrigin]toset[sampler.x,sampler.y]Fetchesonlysamplepointsthatfallwithinsource.BoundedWindowUnfetchedsamplesareunchangedinthebufferPixelvaluesaremultipliedbymultiplier*2**lgScaleObtainInterpolatedSamples:PROC[pixelRow:PixelRow,source:PixelMap,sampler:Sampler,multiplier:CARDINAL_1,lgScale:INTEGER_0];InterpolatesfoursurroundingpixelstogetresultPixelvaluesaremultipliedbymultiplier*2**lgScalebeforeinterpolationHalftoneLine:PROC[dest:PixelMap,pixels:PixelRow,thresholds:PixelRow,invertOutput:BOOLEAN_FALSE,transparent:BOOLEAN_FALSE];Eachthresholdistheminimumpixelvaluethatshouldbedisplayedaswhite.White=IFinvertOutputTHEN1ELSE0sïg/îEqï_,îxï]„î‰îÖîKîéî! î)lî+´î/‚ï[Ýî‰îËî«îKîØî#î(î*RïZ5î‰î?î²îÕî î#Xî(Aî*ŒuïVæîxtïU?î‰ uîëïU?ïU?îÑtïU?î5 ïS—î‰ uîëïS—ïS—îÐtïS—î4 ïQðî‰uîsïQðïQðîYtïQðî"½ïPHî‰uîäïPHïPHîÊtïPHî.ïLùîx uî�ïLùïLùîXïLùî# tïKRîxuîïKRïKRî¾tïHîxuî&ïHïHîßtïHî—î$ïF[îxuî®ïF[ïF[îgtïF[îî¬ð$ïD´îxuîcïD´ïD´îtïD´îÕuîbïD´ïD´î-tî™ïD´ïD´ïC îxuî%ïC ïC îßtïC î—î$ï?½îxuî`ï?½ï?½îtï?½îÑuî^ï?½ï?½î2tï?½î) ï>îx uîÕï>ï>îŽtï>îGuîÔï>ï>î¨tï>î!Fïlï5Ðî\tï4)î‰î&îÙ qî"Wï4)ï4)î"Ðî#Îî2¬î4§tï2�î‰ îÝ îF qî'lï2�ï2�î'åî(ãî7Áî9¼tï0Úî‰vï-‹îx tîBï-‹ï-‹uî?ï-‹ï-‹îçtï-‹îçîqî(†î*uî+Áï-‹ï-‹î,+tî1ï-‹ï-‹î1Ýî6°uî;™ï-‹ï-‹î<�tî>ï-‹ï-‹uî>õï-‹ï-‹î?Étï+ãîKîSvï(”îxtîµï(”ï(”uî²ï(”ï(”îZtï(”îZî$bî*(î+µuî-cï(”ï(”î-Ítî2£ï(”ï(”î3qï&íî‰ îlîN î'î(~î-<vï#žîxtî³ï#žï#žuî±ï#žï#žîXtï#žîX î&^î,êî1³î8?î=äï!öîK uî%ï!öï!öîðtï!öîáîmîúuî%ï!öï!öî%…tï!öî*àî,lqï Oî‰îÅî'î*î+Àî-Ó î4º ï§î‰îlîhîåî àî#²î&î*9ïî‰îüîþîRî%î&¹î)ïXî‰îî,î€ î Ïî"©vï îxtîªï ï uî§ï ï î Otï î#O î*Tî0àî5©î<6ïbîKî uîìïbïbî·tïbî"§î$4î%Áuî*âïbïbî+Ltïbî0¦î23qïºî‰ îúîÞ î"Zî&;î'àî* ïî‰îî,î€ î Ïî"©î/Çî3Õ vïÄîx tîdïÄïÄuîaïÄïÄî tïÄîîÉî%Uî)ºî0F î7Xî=ä uïîKtïîpuîüïïî¶tîšïïîw uî##ïïî#Ýtïî)Huî*Õïïî+Žtî.sïïî.Öqï uî‰î îÞîJî–î#žî&úî*…î-Vî1œî3lî9=î:öï Îî‰î™xî~ï Îï Îîúqï Îî/ xî ï Îï Îî Öqï Îî#çxî%ï Îï Îî%Þqï Îî(˜ÄTVm$’73DotScreen:PROC[r:REAL_0.5,sSize:NAT_16,fSize:NAT_16,maxPixelValue:CARDINAL]RETURNS[pixelMap:PixelMap];CreatesapixelMapwiththresholdsderivedfromtwocrossedcosines,uncorrectedTRC.ApplyTRC:PROC[thresholds:PixelMap,trc:PROC[x:REAL]RETURNS[y:REAL],maxPixelValue:CARDINAL];AdjuststhevaluesinthepixelMapsotheyturnonaccordingtothegiventransferfunction.Thexvaluesoftrcspecifytheinputs,asfractionsofmaxPixelValue.Theyvaluesoftrcspecifytheoutputs,as(numberofblackpixels)/(sSize*fSize)Bothxandyrangeover[0.0..1.0]Trcshouldbeanondecreasingfunction.Identity:PROC[x:REAL]RETURNS[y:REAL];Justreturnsy.END.******************************************************sïg/îEvï^—îxtîÌï^—ï^—uîÊï^—ï^—îrtï^—îquîVï^—ï^—î*tï^—îôî �î#uî'ï^—ï^—î'êtï^—î)ûî+ˆî-Åuî1¦ï^—ï^—î2Žtï^—î4Ÿî6,î8i uï\ïîKtî‚ï\ïï\ïuîiï\ïï\ïî=tï\ïîu î#{ qï[Hî‰îjîŸî±î­ î&î*£î-áî0mî5î: xîAFï[Hï[HîBvïWùîxtî¹ïWùïWùuî·ïWùïWùî^tïWùî^ î Óî'`uî)ëïWùïWùî*“tî-xïWùïWùî-Ûuî/‰ïWùïWùî0]tî2£ïWùïWùuî3ŠïWùïWùî4^tïWùî9–uî;§ïWùïWùî<{tî>ÁïWùïWùî?$ïVRîK uî)ïVRïVRîótî_ïVRïVRîÃqïT«î‰îTî î¯îUî¡î%³î'lî*]î-Qî/Eî5fî7 î9Wî<ãïSî\ïQ\î‰îMî˜î¦îJî^î Äî#î'oî)(î.²î0U ïOµî‰îMîvî…î(î<î ¢î"îî( î)Ãî/!î0Äî4nïN î‰îÞî)îÍî÷î¹î¨ ïLfî‰îîZî*î^ î#vïIîxtî ïIïIuîïIïIî®tïIî­uî¿ïIïIî“tîØïIïIuîÀïIïIî”tïIî#Ëuî%ÜïIïIî&°tî(öïIïIî)YqïGpî‰îZîñuïD!îxtîïD!ïD!rï ìî gð6„TVm$´74ImagerDevice.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January19,19853:07:39pmPSTDIRECTORYImagerColorUSING[Color],ImagerPixelMapUSING[DeviceRectangle],ImagerTransformationUSING[Transformation],Vector2USING[VEC];ImagerDevice:CEDARDEFINITIONS~BEGINColor:TYPE~ImagerColor.Color;DeviceRectangle:TYPE~ImagerPixelMap.DeviceRectangle;Transformation:TYPE~ImagerTransformation.Transformation;VEC:TYPE~Vector2.VEC;HalftoneParameters:TYPE~RECORD[dotsPerInch:REAL,angle:REAL,--degreesanticlockwisefrom+xaxisshape:REAL--0.5iscircular];RunProc:TYPE~PROC[sMin,fMin:INTEGER,fSize:NAT];Device:TYPE~REFDeviceRep;DeviceRep:TYPE~RECORD[class:Class,--classoperationsdata:REF,--instancedataclipBox:DeviceRectangle,--boundingrectangle,indevicecoordinatessurfaceToDevice:Transformation,--transformationfromsurfacetodevicecoordinatessurfaceUnitsPerInch:VEC,--xandyscalefactorssurfaceUnitsPerPixel:NAT--surfaceresolutionmaybeamultipleofpixelresolution];Class:TYPE~REFClassRep;ClassRep:TYPE~RECORD[type:ATOM,SetColor:PROC[device:Device,color:Color,viewToDevice:Transformation],SetPriority:PROC[device:Device,priorityImportant:BOOL],SetHalftone:PROC[device:Device,halftone:HalftoneParameters],MaskRuns:PROC[device:Device,runs:PROC[RunProc]]];SetColor:PROC[device:Device,color:Color,viewToDevice:Transformation]~INLINE{device.class.SetColor[device:device,color:color,viewToDevice:viewToDevice]};Establishthecolorforfollowingmasks.SetPriority:PROC[device:Device,priorityImportant:BOOL]~INLINE{device.class.SetPriority[device:device,priorityImportant:priorityImportant]sïg/îEqï_:îxï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(Cî*ŽuïXœîxtïVôî‰ uî—ïVôïVôî|tïVôîàïUMî‰ uîëïUMïUMîÑtïUMî5ïS¥î‰uîsïS¥ïS¥îYtïS¥î"½ïQþî‰uîªïQþïQþî�tïQþîôuîWïQþïQþî"tî¦ïQþïQþî ïN¯îx uî¼ïN¯ïN¯î‡ïN¯îQ tïMîxuîïMïMî¾tïI¸îxuîÒïI¸ïI¸î‹tïI¸îCîÐïHîxuîkïHïHî$tïHîÝîjïFiîxuî®ïFiïFiîgtïFiîî¬ð$uïDÁîxtîÇïDÁïDÁuîÅïDÁïDÁî~tïDÁî6îÃuî·ïDÁïDÁî‚tîïDÁïDÁïArîxuî;ïArïArîôtïArî¬uî 9ïArïArî! tî%'ïArïArï?Ëî‰ uî¤ï?Ëï?Ëîxtî¾ï?Ëï?Ëï>#î‰uî¬ï>#ï>#î€tîÆï>#ï>#qî¢ï>#ï>#îîî× î'î*Vî-tï<|î‰uîäï<|ï<|î¸qï<|î‚îùî6î¢tï:Ôî‰ï7…îxuî¸ï7…ï7…îrtï7…î*uî·ï7…ï7…î^tîÚï7…ï7…î=î!uî%ï7…ï7…î%~tî*Tï7…ï7…î+0uî/ï7…ï7…î/útî1†ï7…ï7…î1éï46îxuîŽï46ï46îGtï46îuî�ï46ï46îatï46îW ï2�îx uîï2�ï2�î½tï2�îuuîï2�ï2�îÖtîðï2�ï2�ï0çî‰î3qîï0çï0çî˜î•îÑ tï/@î‰uîï/@ï/@îÜtîNï/@ï/@qî*ï/@ï/@î¤î¡îàtï-˜î‰îqî Ôï-˜ï-˜î!Nî"Kî(. î.Rî/øî3û tï+ðî‰îqqî%…ï+ðï+ðî%ÿî&ü î0î3Rî7ñî9–î=™ tï*Iî‰uî™ï*Iï*Iîdtîèï*Iï*Iqî Åï*Iï*Iî!>î"<î#‡î&+î'Tî*¦tï(¡î‰uîÚï(¡ï(¡îÃqï(¡î Ôî"Kî&é î-#î0î1ãî3î8Tî9÷î=T tï&úî‰ï#«îxuî…ï#«ï#«î>tï#«îöuîƒï#«ï#«îWtï#«îNï"îxuîúï"ï"î³tï"îluîøï"ï"îÌtîçï"ï"ï \î‰uîï \ï \îætî�ï \ï \vï´î‰tîÖï´ï´uîÓï´ï´î{tîöï´ï´îYîî$ î(î,; î5«vï î‰ tîï ï uîï ï îºtî6ï ï î™î Wî%Luî0¸ï ï î1qtî3ãï ï î4Fvïeî‰ tîÅïeïeuîÃïeïeîjtîæïeïeîIî!î%üî+Øvï¾î‰tîèï¾ï¾uîæï¾ï¾îŽtî ï¾ï¾îlî *î%uî(³ï¾ï¾î)Ztî+Öï¾ï¾î,9ïî‰vïÇîxtîÅïÇïÇuîÂïÇïÇîjtîåïÇïÇîHîî!ûî%òî** î3™ïî‰uîïïî€tïî²îæî)Yî-öî1íî5 ïxî½ î qïÑî‰î]î©îî8î$ vï ‚îx tîï ‚ï ‚uîï ‚ï ‚î©tî$ï ‚ï ‚îˆîEî#:uî.§ï ‚ï ‚î/`tî1Òï ‚ï ‚ï Úî‰uîï Úï Úî€tï Úî²îæî*yî/î:‚ÿ"TVm$ò75};Declarewhetherpriorityorderisimportantforfollowingmasks.SetHalftone:PROC[device:Device,halftone:HalftoneParameters]~INLINE{device.class.SetHalftone[device:device,halftone:halftone]};Sethalftoningparameters.MaskRuns:PROC[device:Device,runs:PROC[RunProc]]~INLINE{device.class.MaskRuns[device:device,runs:runs]};Applythecurrentcolorwithinthespecifiedruns.END.******************************************************sïg/îEtï_,î½qï]…î‰îŠî™îcî"ëî$Wî*ˆî,°î2„vïZ6îx tî´ïZ6ïZ6uî²ïZ6ïZ6îYtîÔïZ6ïZ6î8îöî#êî)ÇïX�î‰uîïX�ïX�î€tïX�î²îæî+6î/Òî5¯î;vqïVçî‰îõ îj vïS™îxtî×ïS™ïS™uîÕïS™ïS™î|tîøïS™ïS™î[îî#uî&¡ïS™ïS™î'Itî)ÄïS™ïS™î*'ïQñî‰uîïQñïQñî€tïQñî²îæî*xî/î2©î6&qïPJî‰îuîÁîoîÖî"ôî%@î*¯uïKTîxtîïKTïKTrï ìî gð6žTVm$Ì76ImagerPDDevice.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January19,19853:08:27pmPSTDIRECTORYImagerDeviceUSING[Device],PDFileWriterUSING[PDState];ImagerPDDevice:CEDARDEFINITIONS~BEGINCreate:PROC[pdState:PDFileWriter.PDState,sSize,fSize,sPixelsPerInch,fPixelsPerInch:CARDINAL]RETURNS[ImagerDevice.Device];END.******************************************************sïg/îEqï_:îxï]“îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(Cî*ŽuïX�îxtïVõî‰ uîTïVõïVõî9tïVõî�ïUNî‰ uî2ïUNïUNîtïUNî| ïQÿîxuî­ïQÿïQÿîxïQÿîB tïPXîxuîïPXïPXî¾vïM îxtîdïM ïM uîbïM ïM î tî…ïM ïM îèîcïKbî‰îTîî!Žuî+ïKbïKbî+êtî1VïKbïKbuïI»î‰tîïI»ïI»îtuïFlîxtîïFlïFlrï ìî gð6‰TVm$Â77ImagerRasterPrivate.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January19,19853:12:20pmPSTDIRECTORYBasicsUSING[BITAND,BITNOT,BITOR],ImagerDeviceUSING[Device],ImagerManhattanUSING[DeviceRectangle,Polygon],ImagerScanConverterUSING[DevicePath],ImagerTransformationUSING[Transformation];ImagerRasterPrivate:CEDARDEFINITIONSIMPORTSBasics~BEGINDevice:TYPE~ImagerDevice.Device;DevicePath:TYPE~ImagerScanConverter.DevicePath;Transformation:TYPE~ImagerTransformation.Transformation;ManhattanPolygon:TYPE~ImagerManhattan.Polygon;DeviceRectangle:TYPE~ImagerManhattan.DeviceRectangle;Flags:TYPE~RECORD[clientToDevice:BOOL_FALSE,--clientToDeviceisvalidcharToDevice:BOOL_FALSE,--charToDeviceisvalidclientClipper:BOOL_FALSE,--clientClipMaskandclientClipBoxarevaliddeviceColor:BOOL_FALSE,--colorlastsetbySetColor[device,...]isvaliddevicePriority:BOOL_FALSE,--prioritylastsetbySetPriority[device,...]isvalidunused:[0..3777B]_0];noFlags:Flags~[];OrFlags:PROC[f1,f2:Flags]RETURNS[Flags]~INLINE{RETURN[LOOPHOLE[Basics.BITOR[LOOPHOLE[f1],LOOPHOLE[f2]]]];};AndFlags:PROC[f1,f2:Flags]RETURNS[Flags]~INLINE{RETURN[LOOPHOLE[Basics.BITAND[LOOPHOLE[f1],LOOPHOLE[f2]]]];};NotFlags:PROC[f:Flags]RETURNS[Flags]~INLINE{RETURN[LOOPHOLE[Basics.BITNOT[LOOPHOLE[f]]]];};Data:TYPE~REFDataRep;DataRep:TYPE~RECORD[device:Device_NIL,--aparticularrasterdevicedevicePath:DevicePath_NIL,--scratchstorageforscanconvertervalid:Flags_[],viewToDevice:Transformation_NIL,--alwaysvalidviewClipMask:ManhattanPolygon_NIL,--devicecoords;alwaysvalidviewClipBox:DeviceRectangle_[0,0,0,0],--devicecoords;alwaysvalidsïg/îEqï_:îxï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(Cî*ŽuïXœîxtïVôî‰uî¡ïVôïVôî‡tïVôîëuîNïVôïVôîtîËïVôïVôuî¨ïVôïVôîatî#ïVôïVôuî#ßïVôïVôî$˜tî'kïVôïVôî'ÎïUMî‰ uîTïUMïUMî9tïUMî�ïS¥î‰uî³ïS¥ïS¥î™tïS¥îýî+2ïQþî‰uîûïQþïQþîátïQþî"E ïPVî‰uîsïPVïPVîYtïPVî"½ïMîxuî’ïMïMî]ïMî ' ïK`îxtïK`î(ïI¸îxuîïI¸ïI¸î¾tïFiîxuîŽïFiïFiîGtïFiîî�ïDÁîx uî;ïDÁïDÁîôtïDÁî­î9ïCîxuî®ïCïCîgtïCîî¬ð$ïArîxuîÀïArïArîztïArî2î¿ï?Ëîxuîkï?Ëï?Ëî$tï?ËîÝîjï<|îxuîšï<|ï<|îTtï<|î uî™ï<|ï<|îmtî‡ï<|ï<|ï:Ôî‰uî~ï:Ôï:Ôî7tï:Ôî.uîºï:Ôï:Ôî ttî#Xï:Ôï:Ôqî$5ï:Ôï:Ôî$®î%¬ î.Õî0Atï9-î‰ uîÎï9-ï9-î‡tï9-î}uî ï9-ï9-îÃtî"¨ï9-ï9-qî#„ï9-ï9-î#þî$û î-†î.òtï7…î‰ uî?ï7…ï7…îøtï7…îîuî{ï7…ï7…î4tî"ï7…ï7…qî"õï7…ï7…î#oî$l î-àî0ƒ î9î;etï5Þî‰ uî£ï5Þï5Þî\tï5ÞîRuîßï5Þï5Þî˜tî!}ï5Þï5Þqî"Zï5Þï5Þî"Óî#Ñî'8î)Äî+Øî-²î7©î9¤î;tï46î‰uîÂï46ï46î{tï46îruîþï46ï46î¸tî"œï46ï46qî#yï46ï46î#òî$ðî)¹î,Fî.Yî03î;aî=\î>Çtï2�î‰îÌ îî¬ï0çî‰ï-˜îxîîÅîRvï*IîxtîLï*Iï*IuîJï*Iï*Iîñtîmï*Iï*IîÐîÖîýuî ï*Iï*Iî Ýtî%‘ï*Iï*Iî%ôî*uî+�ï*Iï*Iî+÷tï*Iî0(uï(¡î‰tîrï(¡uï(¡îÕtî#ï(¡ï(¡î†uî qï(¡ï(¡î!*tî#þï(¡uï(¡î$atî*°ï(¡ï(¡î+uî-|ï(¡ï(¡î.5tî3Ëï(¡ï(¡î4.ï&úî‰vï#«îxtîï#«ï#«uîï#«ï#«î¬tî'ï#«ï#«îŠî�î¸uî Äï#«ï#«î!˜tî&Kï#«ï#«î&®î*ºuî,Gï#«ï#«î,±tï#«î0âuï"î‰tîrï"uï"îÕtî#ï"ï"î†uî qï"ï"î!*tî$ïï"uï"î%Rtî+¡ï"ï"î,uî.mï"ï"î/&tî4¼ï"ï"î5ï \î‰vï îxtîðï ï uîîï ï î•tîï ï îtîëuî÷ï ï îËtî#~ï ï î#áî'íuî)zï ï î)ätï î.uïeî‰tîrïeuïeîÕtî#ïeïeî†uî qïeïeî!*tî$Ìïeuïeî%/tî+}ïeïeî+àï¾î‰ïoîxuîOïoïoîtïoîÀuîMïoïoî!tïoîïÇîxuîÄïÇïÇî}tïÇî6uîÂïÇïÇî–tî±ïÇïÇïî‰îGîäuîqïïîYtî|ïïqîYïïîÒîÐî! î'1î*ýtïxî‰ îô î=uî Êïxïxî!³tî"Öïxïxqî#²ïxïxî$,î%)î)Éî.rî0šî3¬tïÐî‰îjîî ï)î‰ îù î#µuî%Bï)ï)î&+tî'Nï)ï)qî(*ï)ï)î(£î)¡î-útï �î‰ îî%Òuî'_ï �ï �î(Htî)kï �ï �qî*Gï �ï �î*Áî+¾î/Âî4tî8Ítï Úî‰ îî#•î%"î'î(Ÿî*,qî,ï Úï Úî,•î-“î1–î6Iî:¢7TVm$‰78clientToDevice:Transformation_NIL,--validiffvalid.clientToDeviceclientClipMask:ManhattanPolygon_NIL,--devicecoords;validiffvalid.clientClipperclientClipBox:DeviceRectangle_[0,0,0,0],--devicecoords;validiffvalid.clientClippercharToDevice:Transformation_NIL--validiffvalid.charToDevice];CreateData:PROC[Device]RETURNS[Data];END.******************************************************sïg/îEtï_,î‰î~ î$;uî%Çï_,ï_,î&°tî'Óï_,ï_,qî(¯ï_,ï_,î))î*&î-mî/2tï]…î‰î‰î&Xuî'åï]…ï]…î(Ítî)ðï]…ï]…qî*Íï]…ï]…î+Fî,Dî0Gî4ùî8?î:tï[Ýî‰ î¡î$î%¨î'˜î)%î*±qî,¡ï[Ýï[Ýî-î.î2î6Îî:î;ÙtïZ6î‰ îÎ î#Šuî%ïZ6ïZ6î&qïZ6î'§î)î,dî.)tïX�î‰vïU@îx tîRïU@ïU@uîOïU@ïU@î÷tîrïU@ïU@îÖuîÕïU@ïU@î©tî$]ïU@ïU@î$ÀuïQñîxtîïQñïQñrï ìî gð6ÿ~TVm$Î79ImagerMaskCache.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.CreatedMay1,1984MichaelPlass,August23,198410:32:54amPDTDougWyatt,January26,19855:36:29pmPSTDIRECTORYBasicTimeUSING[GMT],PDFileFormatUSING[Run],ScaledUSING[Value],ImagerTransformationUSING[Transformation],RopeUSING[ROPE];ImagerMaskCache:CEDARDEFINITIONS~BEGINOverviewThisistheinterfacetotheglobalcacheofcharactermasks.Thiscachelivesonthelocaldiskunderthename"[]<>FontCache.dontDeleteMe".Normallyatmostonecacheisinactiveuseatanygiventime.Thecachemaybeinoneofthefollowingstates:disabled-notinuseatall.readOnly-filemaybeopenforread,butnothingwillbeaddedtothefile.extendable-fileisopenforwrite;newmasksmaybeadded.(normalstate)transition-movingbetweenstates.Thefileformatconsistsofafixed-lengthheaderatthebeginning,alargenumberofvariablelengthrecords,andawordofzerosasatrailer.Thefileformatissimpleenoughandhasenoughredundancysothatitshouldbescavangableevenifleftinasomewhatinconsistentstate.Sinceitisjustacache,itshouldalwaysbecorrecttothrowawaythefontcachefileandstartover,butinpracticeitmayprovetobesomewhatcostlytorebuildittoausablestate.Thereisahashtableinvirtualmemorythatmapseachfont/transformation/charcodetoanindextothemaskinthecache.Thishashtableisrebuiltwheneverthefontcacheisopened,andmaintainedasnewmasksareaddedtothecache.Eachentryinthehashtablealsocontainsausecount,whichismergedbackintothefontcachefilewhenitisclosed;thesestatisticsmaybehelpfulforutilitiesforofflineprocessingofthecache,suchascullingrarely-usedentries,groupingfrequently-usedentriestogether,orcalculatingbit-tunedversionsofthemasks.Eachmaskisidentifiedbythetriple[fontID,transformation,charCode]wherefontIDisauniqueidentifer(i.e.,hierarchicalnameandtimestamp)forthefontthatwasthesourceofthemasktransformationisthe(affine)transformation(charactercoordinates=>devicecoordinates),togetherwithacodedescribingthetypeofscanconversionused.charCodeisthe32-bitcharactercode.ThefontcachefilecontainsentriesthatmapfontIDsandtransformationsonto16-bitcodes,sothatthe[fontID,transformation,charCode]identifieris4wordslong.sïg/îEqï_,îxï]„îxîÅî:îØîîøî$ î,{î.Ãî2�ï[Üî‰î–îÅîRïZ4î‰îËî«îKî ‰î#Ïî)hî+³ïXŒî‰î?î²î×î î#Zî(Cî*ŽuïU<îxtïS”î‰uî7ïS”ïS”îtïS”î€uîãïS”ïS”îÑtîœïS”ïS”îÿïQìî‰ uî¶ïQìïQìîœtïQìîïPDî‰uîäïPDïPDîÊtïPDî.ïNœî‰uîsïNœïNœîYtïNœî"½ïLôî‰uî>ïLôïLôî$tïLôîˆuîëïLôïLôî¿tîüïLôïLôî_ïI¤îxuî‰ïI¤ïI¤îTïI¤î tïGüîxuîïGüïGüî¾vïD¬î gqïA]îxîˆîôî@îÊîoî»î"Çî&‰î(-î.î3î6î9àî<åî>ØîA$ï?µîKî.îýîIîíî/Öî5Õî7zî:¹î=GîA îBuï>îKî$î„î)îÁîMî!2î#öî'¸î*¨î,wî.î0«î2Oî4›î:nïj ï/(îKî\îîkî×îpî¥î!¿î#î'\î+¶î-…î2î3¨î7uî:çî=3î@îCÈï-�îKîïî îSîµî[î!hî"Àî%°î)Oî*ôî,Ãî2òî6¾î8cî<êî>Bî?çîAï+ÙîKï(‰îxî[îÆîûî-î�î'î!nî&“î)eî,äî0 îAõîCšï&âîKîî¨îôîŠî0î|î#î&*î)]î,°î.î2cî8:î:†î=XîAï%;îKî-îÑ îÊîƒî"Hî&cî(¶î,—î.<î0ˆî5'î8¦î<î=Ãî@îCBï#“îKîîlî¡îîî"÷î$cî)î,_î/&î1rî4Dî8î:Zî=Üî?3î@Ÿï!ìîKî¶ î*îîéî!gî#�î(\î*„î.¶ î5/î6Óî9î=9î@VîBï EîK î1îÞî ‡î)Þî.2î3Æî5 î<_ï�îKîdîîTïMîxîøî�îù îÛîµî!ï¥î‰î|îTîÅî%ÎïýîxïUî‰î îvîªîî!gî$l î+Íî/qî2 î9î;)î=uî@GîCï®î\î¨îØî{îÈïî‰ î¡î îYî" î+3 î1— î8­î;Cï_î\ îDî€î!|î"°î%Ë î,$î.pî1Uî2øî6 î<©ï·î‰î“îÿîKî-î$ïîxî;îîÐî$îxî#Íî&Ÿî)šî.žî1Bî:Þî=òîAÔï gîKîîÖî"îîíî%]î+gî,Y î2î3{î4¯î8„TVm$Ù80FontCacheFileRecordDefinitionsCoefficients:TYPE~MACHINEDEPENDENTRECORD[a,b,c,d,e,f:REAL];denominatorisalwayspositivepasswordValue:CARDINAL~0FCACH;Header:TYPE~MACHINEDEPENDENTRECORD[password:CARDINAL,numberOfEntries:LONGCARDINAL,numberOfWords:LONGCARDINAL,totalUsage:LONGCARDINAL];EntryType:TYPE~MACHINEDEPENDENT{trailer,unused,fontIDCode,transformationCode,mask};EntryPrefix:TYPE~MACHINEDEPENDENTRECORD[entryType:EntryType,entryLengthInWords:[0..8192)notincludingtheprefixword];FontIDCodeEntry:TYPE~MACHINEDEPENDENTRECORD[codeValue:CARDINAL,createdTime:BasicTime.GMT,name:PACKEDSEQUENCEchars:CARDINALOFCHARThenameisstoredusinglower-caseletters,withslashesseparatingthecomponents.];TransformationCodeEntry:TYPE~MACHINEDEPENDENTRECORD[codeValue:CARDINAL,coefficients:Coefficients,scanConversionType:ScanConversionType];ScanConversionType:TYPE~MACHINEDEPENDENTRECORD[rasterAlignment:{unaligned,aligned}_unaligned,tuning:{none,quick,slow,hand}_none,sSpread,fSpread:[0..4)_0,spare:BOOLEAN_FALSE,algorithmCode:CHAR_'\000];MaskRepresentation:TYPE~MACHINEDEPENDENT{raster,runs};MaskEntry:TYPE~MACHINEDEPENDENTRECORD[fontIDCode:CARDINAL,transformationCode:CARDINAL,charCode:INT,usage:CARDINAL,sWidth,fWidth:Scaled.Value,sMinBB,fMinBB:INTEGER,sïg/îEvï_,î gî·îåî²îo tï[Ýîx uî‡ï[Ýï[Ýî@tï[Ýîùuî†ï[Ýï[Ýî—ï[Ýî!¬ï[Ýî)Ytï[Ýî.Ëî0°î2Tî3Ëî5nî6ðuî8gï[Ýï[Ýî9;tî;�ï[Ýï[Ýî;äqïZ6î‰ îUîÀîtïVæîx uîbïVæïVæî-tïVæîzî ªïVæïVæî!‚tïU?îxuîÑïU?ïU?îŠtïU?îCuîÐïU?ïU?îáïU?îöïU?î&£tïU?î,ïS—î‰uîïS—ïS—îËtïQðî‰uîêïQðïQðî£ïQðîÚtî&ïQðïQðïPHî‰ uî¨ïPHïPHîaïPHî˜tî%ÏïPHïPHïN¡î‰ uîÇïN¡ïN¡î€ïN¡î·tïLùî‰ïIªîx uîÌïIªïIªî…tïIªî=uîÊïIªïIªîÛïIªî ðtïHî‰îŸîÀ î"Ðî/‘ïD´îx uîOïD´ïD´î tïD´îÁuîNïD´ïD´î_ïD´î!tïD´î)!tïD´î.“ïC î‰ î› ïAdî‰îqï?½îšîþîáî-î!tï>î‰ï:Æîxuîhï:Æï:Æî!tï:ÆîÚuîgï:Æï:Æî xï:Æî%�ï:Æî-:tï:Æî2¬ï9î‰ uî¼ï9ï9î‡tîóï9ï9ï7wî‰ îæ uîfï7wï7wî Utî"ï7wï7wï5Ðî‰uîÂï5Ðï5Ðîjï5Ðîtï5Ðî Öuî$äï5Ðï5Ðî%¯ï5Ðî+Ÿï5Ðî-¹qï4(îšî^îînîfî!þ î(€î,Þî/Úî4V î:Ñî= tï2�î‰ï/2îxuî%ï/2ï/2îÞtï/2î"–uî$#ï/2ï/2î%5ï/2î*Iï/2î1ötï/2î7iï-Šî‰ uî¼ï-Šï-Šî‡tîóï-Šï-Šï+âî‰ î6 ï*;î‰îÚï(“î‰ï%Dîxuî ï%Dï%DîÄtï%Dî}uî! ï%Dï%Dî"ï%Dî'/ï%Dî.Ütï%Dî4Oï#�î‰î î"�î(î)’ ï!õî‰î]îØîüî!yî%¨î'5ï Nî‰îî©îî §ï¦î‰uî¡ï¦ï¦î[tï¦îÆuîSï¦ï¦î tîñï¦ï¦ïÿî‰ uîhïÿïÿî2tïÿîDîÑïWî‰ïîxuî¨ïïîatïîuî §ïïî!¸ïî&Ítïî.zî3Mï¹îx uîï¹ï¹î»tï¹îtuîï¹ï¹îï¹î!'ï¹î(Ôtï¹î.Fïî‰ uîºïïî…tîñïïïjî‰uîlïjïjî7tî#£ïjïjïÂî‰uî8ïÂïÂî¢tîCïÂïÂïî‰uîÎïïî˜tîïïï sî‰î«îâ ï Ìî‰î9uîþï Ìï Ìîhtî!>ï Ìï ÌÿÓTVm$81sSizeBB,fSizeBB:CARDINAL,flag:PACKEDARRAY[0..12)OFBOOLEAN,--forpaddingandexpansionamplified:BOOLEAN,correctSpace:BOOLEAN,correctMask:BOOLEAN,data:SELECTrepresentation:MaskRepresentationFROMraster=>[bits:SEQUENCECOMPUTEDCARDINAL--sSize*Ceiling[fSize/16.0]--OFWORD],runs=>[nRuns:CARDINAL,run:SEQUENCECOMPUTEDCARDINALOFRun],ENDCASE];Run:TYPE~PDFileFormat.Run;[fMin:CARDINAL,lastRun:BOOLEAN,fSize:NAT]fMinisrelativetofMinBBFontCacheOperationsStatus:TYPE~{disabled,readOnly,extendable,transition};Mask:TYPE~REF;Transformation:TYPE~ImagerTransformation.Transformation;ROPE:TYPE~Rope.ROPE;GetStatus:PROC[waitDuringTransition:BOOLEAN_TRUE]RETURNS[Status];DoUnderLock:PROC[action:PROC];Callstheactionprocedure.Untiltheactionprocedureterminates,nootherprocesseswillbeallowedtoalterthestatusofthecache.Disable:PROC;Turnsthefontcacheoff,aftercompletinganypendingwrites.MakeReadOnly:PROC;Makesthecacheread-only,aftercompletinganypendingwrites.Updatestousecountsarestillallowed.Enable:PROC;MakesthecacheextendableFontCacheInconsistency:ERROR[reason:ATOM,wordOffset:INT];TransID:TYPE~REFTransformationCodeEntry;Canonicalizedatcreation.ThecodeValuefieldmaychangewhenthecacheistrimmed.TransIDFromTransformation:PROC[transformation:Transformation,scanConversionType:ScanConversionType,hint:TransID_NIL]RETURNS[TransID];Thehintmaybesuppliediftheclienthasagoodideaofwhattheidprobablyis.TheScanConversionTypeischosenbythedevice.TransformationFromTransID:PROC[transID:TransID]RETURNS[Transformation];sïg/îEtï_,î‰î#uîÒï_,ï_,î�tî" ï_,ï_,ï]…î‰uî¹ï]…ï]…îaï]…î tï]…î°uî!Ñï]…ï]…î"­ï]…î#êtî)‹ï]…ï]…qî*ëï]…ï]…î+eî,bî.Šî3¢î6Ftï[Ýî‰ uî,ï[Ýï[ÝîåtîÌï[Ýï[ÝïZ5î‰ uî ïZ5ïZ5îÂtî©ïZ5ïZ5ïXŽî‰ uîÐïXŽïXŽî‰tîpïXŽïXŽïVæî‰uîïVæïVæî§tïVæîÛî"Kuî/ïVæïVæî/»tïU?îšîeîûuîyïU?ïU?îïU?î#=ïU?î*_qïU?î1î2‘îAÊuïU?îCAïS˜îÎtî~ïS˜ïS˜îáïQðîšîµîJuî�ïQðïQðîXtî#ÄïQðïQðî$ uî'°ïQðïQðî(OïQðî.tïQðî5–ïQðîkuïPIîštïN¡î‰ïKRîxuî ïKRïKRîÅtïKRî~î qïIªî‰xîÚïIªïIªî¥qîýïIªïIªîÙxî!XïIªïIªî"qî&ÿïIªïIªî'Üxî+¾ïIªïIªî,šqïHî‰îòî^îîÃvïC î gî·îå tï?¾îxuî ï?¾ï?¾îÄtï?¾î}î î�î$á î,* ï>îxuî±ï>ï>îjtï>î"uî¯ï>ï>îƒtîõï>ï>ïqï î‰ îDîéïbî‰îMîÐîÕîÅî$[î'Ýî*)î-ëî/Wvïîxtîéïïuî çïïî!�tïî$Žî.®î8Ãïlî¬î"î%zî*þuî,‹ïlïlî-ttî.—ïlïluî/~ïlïlî0Rtïlî5Š qïÄî‰îMîîîßî î!mî#¹î'hî)Þî+î.Xî1;î2ßî6(î8tî: î?�ïî‰îMî î!xî%âî'¼î*vï Íîxtîéï Íï Íuî çï Íï Íî!�tï Íî$Žî*vuî0]ï Íï Íî11tï Íî6hÿÈTVm$Æ82FontID:TYPE~REFFontIDCodeEntry;Canonicalizedatcreation.ThecodeValuefieldmaychangewhenthecacheistrimmed.FontIDFromRopeAndGMT:PROC[name:ROPE,createdTime:BasicTime.GMT]RETURNS[FontID];RopeFromFontID:PROC[fontID:FontID]RETURNS[name:ROPE];GMTFromFontID:PROC[fontID:FontID]RETURNS[createdTime:BasicTime.GMT];InsertMask:PROC[fontID:FontID,transID:TransID,charCode:INT,sWidth,fWidth:Scaled.Value,mask:Mask,amplified,correctSpace,correctMask:BOOLEAN_FALSE]RETURNS[ok:BOOLEAN];Choosestherepresentation.Mayrefusetoaddamaskifitistoobigorifthecacheisfull.MaskDesc:TYPE~RECORD[ref:REF,maskEntryPtr:LONGPOINTERTOMaskEntry];Forsafety'ssake,don'tdroptherefuntilyouaredonewiththelongpointer.GetMask:UNSAFEPROC[fontID:FontID,transID:TransID,charCode:INT]RETURNS[MaskDesc];ReturnsaNILmaskEntryPtrifthecharacterisnotinthecacheorthecacheisdisabled.RopeOrRefText:TYPE~REF;StringBodyDesc:TYPE~RECORD[stringBody:RopeOrRefText,start:INT_0,length:INT_INT.LAST,fontSet:[0..256)_0];ThestringisencodedusingtheInterpressstring-bodyencoding,i.e.,acharacterof'\377istreatedasanescapecodethatprecedesabytecontainingthehigh-order8bitsofanewcharactercodeoffset.Current:PROC[stringBodyDesc:StringBodyDesc]RETURNS[charCode:INT];Advance:PROC[stringBodyDesc:StringBodyDesc]RETURNS[StringBodyDesc];GetStringBodyMasks:PROC[fontID:FontID,transID:TransID,stringBodyDesc:StringBodyDesc,maskProc:UNSAFEPROC[MaskDesc]]RETURNS[StringBodyDesc];CallsthemaskProcforeachcharactercodeintheStringBody,untilthelengthisexhaustedoruntilanunavailablemaskisencountered.ThereturnedStringBodyDescwillhaveanupdatedstart,length,andfontSet.FlushingthecacheTrimCache:PROC[maxNumberOfMasks:INT,maxNumberOfWords:INT];Discardsunpopularmasksfromthecacheuntilthespecifiedlimitsaremet.Maskswithzerousagearealwaysdiscarded.sïg/îEtï^—îxuîñï^—ï^—î«tï^—îcuîðï^—ï^—îÄtï^—îºqï\ïî‰ îDîéï[Hî‰îMîÐîÕîÅî$[î'Ýî*)î-ëî/WvïWùîxtîáïWùïWùuîßïWùïWùî †tïWùî#†uî("ïWùïWùî(ötî+3ïWùïWùî, î4l uî:íïWùïWùî;Ûtî=¥ïWùïWùuî>�ïWùïWùî?atïVRî¬vïSîx tîïSïSuîïSïSîÀtïSî¿î#.uî(‘ïSïSî)etïSî.œuî38ïSïSî4 tî6JïSïSî6­vïO´îx tîtïO´ïO´uîqïO´ïO´îtïO´îî#‡uî(êïO´ïO´î)¾tïO´î.ö î7µ uî>6ïO´ïO´î?$tî@ïïO´ïO´îARvïLeîx tîEïLeïLeuîCïLeïLeîëtïLeîêîYî$±î*5î0uî6ÀïLeïLeî7*tî8ËïLeïLeî9¨î>ÉïJ¾î¬ î)î!6î%M î+Ï î4- uîtï;Ûî¬ qï:4î‰îšîÏîõ î"²î$î&Tî,?î-«î0î1´î4î7Âî9{î;Èî?Šî@õtï6åîx uîï6åï6åîËtï6åî„uîï6åï6åîåtî Wï6åï6åï5=îxuîï5=ï5=îÁtï5=îyuîï5=ï5=îÚtï5=î#y î+E î5¾uî9Gï5=ï5=î9±tï5=î;×î=dî>ñuîC¤ï5=ï5=îD tï3–î¬uî9ï3–ï3–î¢tîDï3–uï3–îœtî€ï3–ï3–î]î! î&qî'þqï1ïî‰îMîî‡î¬î!Cî#� î)Õ î0Ôî6×î9bî:—î@‚îB%îE�ï0Gî\îÜî•îˆîÂî Ýî#®î)î*<î-! î3Äî6 î<Ÿî=Óî@`îBîC8ï. î\îGîbvï+Qîxtî ï+Qï+Quîï+Qï+Qî®tï+Qî®î"^uî,×ï+Qï+Qî-«tï+Qî2ã uî9õï+Qï+Qî:_tî<ï+Qï+QîïQþïQþî$tïQþîˆuîëïQþïQþî¿tîüïQþïQþî_ïN¯îxuîäïN¯ïN¯î¯ïN¯îy tïMîxuîïMïMî¾vïI¸î gî@îbtïFiîx uî¶ïFiïFiîotïFiî(îµî)8î*kqî;ïFiïFiî;Šî<ˆî>mtïDÂîxuîèïDÂïDÂîRtïDÂî¬î!9ïAsîx uîŽïAsïAsîGtïAsîÿuîŒïAsïAsîžïAsî#²tïAsî+_qî,”ïAsïAsî- î. î/ðtï?Ëî‰ï>$î‰qîRï>$ï>$îËîÉtï:Õî‰ qî³ï:Õï:Õî,î*tï9-î‰ qî?ï9-ï9-î¹î¶tï7…î‰ qî�ï7…ï7…îîtï5Þî‰ qî�ï5Þï5Þîîtï46î‰ qîÆï46ï46î?î=tï2�î‰ qîÆï2�ï2�î?î=tï0çî‰ qîêï0çï0çîdîatï/@î‰qî~ï/@ï/@î÷îõtï-˜î‰qîáï-˜ï-˜îZîXtï+ñî‰qîµï+ñï+ñî.î,tï*Iî‰qî÷ï*Iï*Iîqîntï(¢î‰qîËï(¢ï(¢îEîBtï&úî‰qî¾ï&úï&úî7î5tï%Sî‰ qîï%Sï%Sî�î�tï#«î‰qî\ï#«ï#«îÕîÓtï"î‰ qîï"ï"î˜î•tï´î‰qîBï´ï´î»î¹î /tï î‰qî ï ï î †î!ƒî#ùtïeî‰qî ïeïeî†îƒtï¾î‰ qîùï¾ï¾îrîptïî‰ qî=ïïî¶î´tïoî‰qî(ïoïoî¢îŸtïÇî‰qîÊïÇïÇîDîAtï î‰ qî·ï ï î0î.tïÑî‰ qîxïÑïÑîñîïtï ‚î‰qîÑï ‚ï ‚îJîHtï Úî‰ qîðï Úï ÚîiîgŒTVm$ˆ85makecompiledimage(116),--fulldosavesimplebody(120),--2.0dobody(121),--fulldosavebody(122),--fulldosaveallbody(123),--fullshowandxrel(146),--2.0findfont(147),--2.0modifyfont(148),--2.0finddecompressor(149),--2.0findfontvec(150),--fullsetfont(151),--2.0setcorrectmeasure(154),--2.0setcorrecttolerance(155),--2.0correctmask(156),--2.0correctspace(157),--2.0getcp(159),--2.0maket(160),--fullopent(161),--fulltranslate(162),--2.0rotate(163),--2.0scale(164),--2.0concat(165),--2.0scale2(166),--2.0invert(167),--fullconcatt(168),--2.0move(169),--2.0trans(170),--2.0transform(174),--fulltransformvec(175),--fullroundxy(176),--fullroundxyvec(177),--fullpop(180),--2.0dup(181),--2.0copy(183),--2.0roll(184),--2.0exch(185),--2.0mark(186),--2.0unmark(187),--2.0count(188),--2.0unmark0(192),--2.0abs(200),--2.0add(201),--2.0and(202),--2.0sïg/îEtï_,î‰qî ›ï_,ï_,î!î"tï[Ýî‰qîFï[Ýï[Ýî¿î ½tïZ5î‰ qîæïZ5ïZ5î_î]tïXŽî‰qîeïXŽïXŽîßîÜtïVæî‰qîÑïVæïVæîJîHtïS—î‰qîÞïS—ïS—îXîUtïQðî‰ qî>ïQðïQðî·îµtïPHî‰qî ïPHïPHî†î„tïN¡î‰qîùïN¡ïN¡îrî ptïLùî‰qî/ïLùïLùî¨î¦tïKRî‰ qîlïKRïKRîæîãtïHî‰qîúïHïHîsî qtïF[î‰qîsïF[ïF[îíî êtïD´î‰qî†ïD´ïD´îîýtïC î‰qî©ïC ïC î"î tï?½î‰ qî�ï?½ï?½î îtï>î‰ qîï>ï>î‚îtïtï:Çî‰qîjï:Çï:Çîãîátï9î‰ qîÒï9ï9îKîItï7xî‰ qî7ï7xï7xî°î®tï5Ðî‰ qî6ï5Ðï5Ðî¯î­tï4)î‰ qîçï4)ï4)îaî^tï2�î‰ qîÜï2�ï2�îVîStï0Úî‰ qî¤ï0Úï0Úîîtï/2î‰ qî¥ï/2ï/2îîtï-‹î‰ qîMï-‹ï-‹îÆîÄtï*;î‰qî0ï*;ï*;î©î§tï(”î‰qî!ï(”ï(”îšî˜tï&ìî‰ qî_ï&ìï&ìîØîÖtï%Eî‰qîOï%Eï%EîÉîÆtï!öî‰qî³ï!öï!öî,î*tï Nî‰qî¿ï Nï Nî8î6tïÿî‰ qî7ïÿïÿî±î®tïXî‰ qîpïXïXîéîçtï°î‰ qî!ï°ï°î›î˜tï î‰ qîyï ï îòîðtïaî‰ qîïaïaîî}tïºî‰ qî¼ïºïºî6î3tïkî‰ qî¶ïkïkî0î-tïî‰qîZïïîÔîÑtï tî‰qî�ï tï tîîtï Íî‰qî�ï Íï Íîîÿ;TVm$U86ceiling(203),--2.0div(204),--2.0eq(205),--2.0floor(206),--2.0ge(207),--2.0gt(208),--2.0mod(209),--2.0mul(210),--2.0neg(211),--2.0not(212),--2.0or(213),--2.0sub(214),--2.0trunc(215),--2.0rem(216),--2.0round(217),--2.0eqname(218),--fulltype(220),--2.0atan(221),--fullcos(222),--fullexp(223),--fulllog(224),--fullsin(225),--fullsqrt(226),--fullmax(227),--fullmin(228),--fulldo(231),--2.0dosave(232),--2.0dosaveall(233),--2.0if(239),--2.0ifcopy(240),--2.0ifelse(241),--2.0loop(242),--fullframe(250),--fullpoolop(253),--fullpool(254),--fullpget(255),--fullpset(256),--fullmakepool(257),--fullnopool(258),--fullenv(260),--fullmakeveclu(282),--2.0makevec(283),--2.0shape(285),--2.0openvec(286),--fullsïg/îEtï_,î‰ qîJï_,ï_,îÄîÁtï]…î‰qîDï]…ï]…î¾î»tï[Ýî‰qîÖï[Ýï[ÝîOîMtïZ5î‰ qîAïZ5ïZ5îºî¸tïXŽî‰qîÀïXŽïXŽî9î7tïVæî‰qî‰ïVæïVæîîtïU?î‰qîïU?ïU?î�î�tïS—î‰qî¾ïS—ïS—î7î5tïQðî‰qî†ïQðïQðîîýtïPHî‰qîZïPHïPHîÔîÑtïN¡î‰qî©ïN¡ïN¡î#î tïLùî‰qî|ïLùïLùîõîótïKRî‰ qî…ïKRïKRîÿîütïIªî‰qî½ïIªïIªî7î4tïHî‰ qîþïHïHîwîutïF[î‰ qîïF[ïF[î‹îˆtïC î‰ qîõïC ïC îoîltïAeî‰ qîêïAeïAeîcîatï?½î‰qîDï?½ï?½î¾î»tï>î‰qî‡ï>ï>îîþtïtï Íî‰ qîIï Íï ÍîÂîÀ·TVm$b87getprop(287),--2.0getp(288),--fullmergeprop(289),--fulldround(300),--fullgetcprounded(301),--fullcurveto(402),--fullarcto(403),--fullconicto(404),--fullmaskfillparity(408),--full?maskfill(409),--2.0maskrectangle(410),--2.0masktrapezoidx(411),--2.0masktrapezoidy(412),--2.0startunderline(413),--2.0maskunderline(414),--2.0makeoutline(417),--2.0clipoutline(418),--fullcliprectangle(419),--fullfindcoloroperator(421),--2.1findcolormodeloperator(422),--2.1findcolor(423),--2.0setgray(424),--2.0makegray(425),--2.0makesampledblack(426),--2.0makesampledcolor(427),--2.1excludeoutline(430),--full?excluderectangle(431),--full?maskstrokeclosed(440),--fullmaskvector(441),--2.0makepixelarray(450),--2.0extractpixelarray(451),--2.1maskpixel(452),--2.0joinpixelarrays(453),--full?error(600),--2.1(17777B)};SequenceType:TYPE~MACHINEDEPENDENT{--5bitsnil(0),sequenceString(1),sequenceInteger(2),sequenceReal(3),--full?sïg/îEtï^—î‰ qîüï^—ï^—îuîstï\ïî‰ qîõï\ïï\ïîoîltï[Hî‰qîáï[Hï[HîZîXtïWùî‰ qîÅïWùïWùî>î<tïVRî‰qî‘ïVRïVRî îtïSî‰ qîÐïSïSîIîGtïQ\î‰ qîXïQ\ïQ\îÒîÏtïOµî‰ qî¯ïOµïOµî(î&tïLfî‰qîŽïLfïLfîîî {tïJ¿î‰ qîïJ¿ïJ¿î•î’tïIî‰qîÑïIïIîJîHtïGpî‰qî­ïGpïGpî'î$tïEÈî‰qî­ïEÈïEÈî'î$tïD!î‰qî¦ïD!ïD!îîtïBzî‰qî)ïBzïBzî¢î tï?+î‰qî½ï?+ï?+î6î4tï=„î‰qîµï=„ï=„î/î,tï;Üî‰qîêï;Üï;Üîdîatï8Žî‰qîÍï8Žï8ŽîFî Dtï6æî‰qî"�ï6æï6æî"ûî#øtï5?î‰qîÍï5?ï5?îFîDtï3˜î‰ qî�ï3˜ï3˜îîtï1ðî‰ qî$ï1ðï1ðîžî›tï0Iî‰qî©ï0Iï0Iî #î! tï.¢î‰qî}ï.¢ï.¢îöî ôtï+Sî‰qîï+Sï+SîŽî‹î!tï)¬î‰qîIï)¬ï)¬îÃîÀî"6tï&]î‰qî¶ï&]ï&]î/î -tï$¶î‰qîï$¶ï$¶î‘î�tï!gî‰qî�ï!gï!gîúîøtïÀî‰qîIïÀïÀîÂîÀtïî‰qî\ïïîÕîÓtïqî‰qîïqïqî–î”î! tï"î‰ qîWï"ï"îÑîÎtïÓî‰ï,î‰ïÝîx uî!ïÝïÝîÚtïÝî’uîïÝïÝî1ïÝî#EtïÝî*òqî,'ïÝïÝî, î-žî.Ótï6î‰ï �î‰ï çî‰ï @î‰qî$ï @ï @î�î›îŠTVm$.88sequenceRational(4),sequenceIdentifier(5),sequenceComment(6),sequenceContinued(7),sequenceLargeVector(8),sequencePackedPixelVector(9),sequenceCompressedPixelVector(10),sequenceInsertFile(11),sequenceAdaptivePixelVector(12),--2.1(37B)};Encoding-independenttypesVersion:TYPE~RECORD[major,minor:CARDINAL];--InterpressversionnumbercurrentVersion:Version~[3,0];--latestversionsupportedbythisinterfaceOp:TYPE~{nil,--BASEprimitivesget,makeveclu,makevec,shape,openvec,getprop,getp,mergeprop,frame,fget,fset,poolop,pool,pget,pset,env,makepool,nopool,makeco,makesimpleco,do,dosave,dosaveall,dobody,dosavebody,dosaveallbody,dosavesimplebody,makecompiledimage,pop,copy,dup,roll,exch,mark,unmark,unmark0,count,nop,error,if,ifelse,ifcopy,loop,eq,eqname,gt,ge,and,or,not,type,add,sub,neg,abs,floor,ceiling,trunc,round,mul,div,mod,rem,max,min,sqrt,exp,log,sin,cos,atan,--IMAGEprimitivesiget,iset,dround,maket,opent,translate,rotate,scale,scale2,concat,invert,transform,transformvec,roundxy,roundxyvec,concatt,move,trans,show,showandxrel,setxy,setxyrel,setxrel,setyrel,getcp,getcprounded,makepixelarray,extractpixelarray,joinpixelarrays,finddecompressor,makegray,findcolor,findcoloroperator,findcolormodeloperator,makesampledcolor,makesampledblack,setgray,moveto,lineto,linetox,linetoy,curveto,conicto,arcto,makeoutline,maskfill,maskfillparity,maskstroke,maskstrokeclosed,maskrectangle,maskvector,startunderline,maskunderline,masktrapezoidx,masktrapezoidy,maskpixel,clipoutline,excludeoutline,cliprectangle,excluderectangle,findfont,findfontvec,modifyfont,setfont,correctmask,correctspace,correct,setcorrectmeasure,setcorrecttolerance,space,--SymbolsbeginBody,endBody,beginBlock,endBlock,pageInstructions,noPages,metricMaster,environmentMaster,--sparesspare1,spare2,spare3};sïg/îEtï_,î‰ï]…î‰ï[Ýî‰ïZ5î‰ïXŽî‰ïVæî‰ïU?î‰ð"ïS—î‰ïQðî‰qî%[ïQðïQðî%Ôî&ÒtïN¡î‰ïLùî‰vïHî gîëtïD´îxuîïD´ïD´îÀtïD´îxuîïD´ïD´îÙtîóïD´ïD´îVî"¥uî'5ïD´ïD´î(tî-lïD´ïD´î-Ïqî.ÍïD´ïD´î/Fî0D î6‰î;tïC îxîLîaîîî Þqî"ïïC ïC î#hî$fî'ýî,’î2¨î4‚î7tï?½îxuîPï?½ï?½î tï?½îÂîOï>î‰qï îî#_î' î+cî0 ï&ìî‰ î, î¿î%‘ ï%Eî‰î î¸îxî!Y ï#�î‰î_îÂîtî#&î') ï!öî‰î}î%8î.Èï Nî‰î î`î(Ÿï§î‰îyî(•ïÿî‰îËîîíî#Öî)î.:î2 ïXî‰îî î&—î1À î; ï°î‰î¢ î#>î-^î7~ ï î‰ î±î!8 î)•ïaî‰î: îÛ î%[ïºî‰ îƒ î žî%ˆî0õî<Ûqïî‰îtïkî‰ îÆîð î%oïÃî‰î$î Ô î)‰qïî‰îtï tî‰î1îØï Íî‰ßTVm$489TypeCode:TYPE~MACHINEDEPENDENT{null(0),number(1),identifier(2),vector(3),operator(4),--Basetypestransformation(5),pixelArray(6),color(7),trajectory(8),outline(9),--Imagetypes(CARDINAL.LAST)--roomforlotsmore};ImagerVariable:TYPE~MACHINEDEPENDENT{DCScpx(0),DCScpy(1),correctMX(2),correctMY(3),T(4),priorityImportant(5),mediumXSize(6),mediumYSize(7),fieldXMin(8),fieldYMin(9),fieldXMax(10),fieldYMax(11),showVec(12),color(13),noImage(14),strokeWidth(15),strokeStyle(16),underlineStart(17),amplifySpace(18),correctPass(19),correctShrink(20),correctTX(21),correctTY(22),spare1(23),spare2(24),spare3(25)--spares(correctExpand?strokeDashes?clipper?)};StrokeStyle:TYPE~MACHINEDEPENDENT{square(0),butt(1),round(2),--standard,allwithmiteredjoints(CARDINAL.LAST)--roomforexpansion(roundjoints,probably)};Errors,UtilitiesBYTE:TYPE~[0..377B];CARD:TYPE~LONGCARDINAL;ROPE:TYPE~Rope.ROPE;STREAM:TYPE~IO.STREAM;NATLAST:NAT~NAT.LAST;INTLAST:INT~INT.LAST;theseareherebecausetheinterpretercan'thandleXXX.LASTasadefaultargumentErrorCode:TYPE~{nil,bug,unimplemented,overflow,invalidHeader,invalidVersion,invalidSkeleton,invalidToken,invalidRational,invalidIdentifier,invalidString};Error:ERROR[code:ErrorCode,explanation:ROPE];OpFromEvArray:TYPE~PACKEDARRAYEncodingValueOFOp;GetOpFromEv:PROCRETURNS[REFREADONLYOpFromEvArray];sïg/îEtï^—îxuîŸï^—ï^—îYtï^—îuîžï^—ï^—î¯ï^—î Ätï^—î(qï\ïî‰ï[Hî‰ î± îŸ î%¾ qî-=ï[Hï[Hî-¶î.´î1ûtïY î‰îÈ î$’î* î2% qî8ÈïY ïY î9Aî:?î>otïWùî‰uîïWùïWùîÎtî:ïWùuïWùî‘tîvïWùïWùqîtïWùïWùîíîëî jî"’î%tïVQî‰ïSîxuî£ïSïSî\tïSîuî¡ïSïSî³ïSî#ÇtïSî+tïQ[î‰ îÿ îu î(a ïO´î‰îðî Þî+»ïN î‰ î= î!ñ î+‚ ïLeî‰ îü î$ ïJ½î‰î î$Àî0nïIî‰îGî%| î.ª ïGoî‰ î„ î qî%"ïGoïGoî%›î&™î*¥î4¶ î=xtïEÇî‰ïBxîx uî;ïBxïBxîôtïBxî¬uî9ïBxïBxîKïBxî!_tïBxî) ï@Ñî‰ îêîÕqî!éï@Ñï@Ñî"cî#`î)5î+0î.,î3tï?)î‰uîï?)ï?)îÎtî:ï?)uï?)î‘tîvï?)ï?)qîtï?)ï?)îíîëî jî"’î(íî-Kî1Qtï=‚î‰vï8Œî gîuï5=îxtîwï5=ï5=uîuï5=ï5=î.tï5=îæîs uï3–îxtîÐï3–ï3–uîÎï3–ï3–î‡tï3–î?uîÌï3–ï3–î…ï3–î½tî!ôï3–ï3–uï1îîxtî‰ï1îï1îuî‡ï1îï1îî@tï1îîùî…uîï1îï1îîâtîï1îï1îuï0GîxtîBï0Gï0Guî@ï0Gï0Gîùtï0Gî²uî?ï0Gï0Gî¨tî…ï0Guï0GîÜtî§ï0Gï0Guï,øîxtîÒï,øï,øuîÐï,øï,øî¸tï,øîÉuîVï,øï,øî?tîËï,øuï,øî#tîï,øï,øuï+Pîxtîiï+Pï+Puîfï+Pï+PîÐtï+Pîöuîƒï+Pï+PîítîŽï+Puï+PîætîËï+Pï+Pqï)©î‰îõîHîCî:î † î'î*qxî.Ïï)©ï)©î/šqî10ï)©xï)©î1ˆqï)©î5î6¼î7ñî[body:Body],block=>[block:Block],sïg/îEtï_,îx uî ï_,ï_,îYtï_,îuîžï_,ï_,îFï_,î#îtï_,î(”uî*óï_,ï_,î+Ðtï_,î- vï]…îx tî,ï]…ï]…uî*ï]…ï]…îÒï]…îÑtî!Yï]…uï]…î!¼ï]…î$†tï]…î+¢vïZ5îxtîaïZ5ïZ5uî_ïZ5ïZ5îtî ‚ïZ5ïZ5î åuî#§ïZ5ïZ5î${tî).ïZ5ïZ5î)’qïXŽî‰î)î]îvî!!î$«î&Pî(Cî*äî/õî1þî3T vïU?îxtîaïU?ïU?uî_ïU?ïU?îtî ‚ïU?ïU?î å uî*åïU?ïU?î+¹tî0lïU?ïU?î0ÏqïS—î‰î)îîdî î>î!Vî'vïPHîx tî‡ïPHïPHuî…ïPHïPHî,tî§ïPHïPHî uîÌïPHïPHî tî#TïPHuïPHî#·tî&ÈïPHïPHî'+qïN¡î‰î)xî]ïN¡ïN¡î(qïN¡îî©î�î!=î&î)fî.wî0€î1Ö vïKRîx tî‡ïKRïKRuî…ïKRïKRî,tî§ïKRuïKRî tîïKRïKRuîïKRïKRî×tî$ŠïKRïKRî$îqïIªî‰î)îîdî xî>ïIªïIªî qî aïIªïIªî!=xî&NïIªïIªî'*qïIªî(íî*Cî-ÏvïF[îxtîÍïF[ïF[uîËïF[ïF[îrtî!îïF[ïF[î"Quî,eïF[ïF[î-9tî1íïF[uïF[î2Ptî5aïF[ïF[î5ÄqïD´î‰î)î î!Åî#jxî$ŸïD´ïD´î%jqî'ÂïD´ïD´vï?½îxtîÿï?½ï?½uîüï?½ï?½î¤tîï?½ï?½îƒuî,ï?½ï?½î tî"=ï?½ï?½î#uî&£ï?½ï?½î' tï?½î)3î*Àî,Muî/ï?½ï?½î/ƒtï?½î1©uî36ï?½ï?½î3 tî8&ï?½ï?½uî9ï?½ï?½î9âtî>•ï?½uï?½î>øtîB#ï?½ï?½îB‡vï>îx tî;ï>ï>uî9ï>ï>îàtî[ï>ï>î¿uîhï>ï>î<tî yï>ï>î!Vuî$ßï>ï>î%Itï>î'oî(üî*‰uî-Vï>ï>î-¿tï>î/åuî1rï>ï>î1Ütî6cï>ï>uî7Jï>ï>î8tî<Ñï>uï>î=4tî@`ï>ï>î@ÃvïtîA<ï:Çï:ÇîA vï7xîxtî·ï7xï7xuî´ï7xï7xî\tî×ï7xï7xî:uîäï7xï7xî¸tîõï7xï7xî Òuî$[ï7xï7xî$Åtï7xî&ëî(xî*uî,Ñï7xï7xî-;tï7xî/auî0îï7xï7xî1Xtî5Þï7xï7xï5Ðî¬uî=ï5Ðï5Ðîåtî`ï5Ðï5ÐîÄuî Wï5Ðï5Ðî!+tî#hï5Ðï5Ðî$Eî'­uî*zï5Ðï5Ðî*ätî,…ï5Ðï5Ðuî-mï5Ðï5Ðî.Atî2ôï5Ðï5Ðî3Wuî6µï5Ðï5Ðî7ntï5Ðî:duî;ñï5Ðï5Ðî<ªtî?�ï5Ðï5Ðî?òuï4)î¬tî3ï4)uï4)î–tîÁï4)ï4)î$qï2�î‰îîî@îgî$5î%Ùî' î-_î1[ î9î;dîAXîC3ï0Úî‰îñîƒî9î î W î'ªî)ýî-D ï/2î‰xîšï/2ï/2îSqï/2îAîÃî -î$?xî(Öï/2ï/2î)�qî+ùï/2ï/2vï+ãîx tîxï+ãï+ãuîuï+ãï+ãîtî˜ï+ãï+ãîüuî¥ï+ãï+ãî ytî"¶ï+ãï+ãî#“uî'ï+ãï+ãî'†tï+ãî)¬î+9î,Æuî/’ï+ãï+ãî/ütï+ãî2"uî3¯ï+ãï+ãî4tî8 ï+ãï+ãuï*<î¬tî3ï*<uï*<î–ï*<î–ï*<î°tî"Áï*<ï*<î#$qï(”î‰îÅîsîî Ðî" î(Vî+úî-Ÿî.Óî1î2¶ vï%Eîxtî<ï%Eï%Euî:ï%Eï%Eîátî]ï%Eï%EîÀuî!iï%Eï%Eî"=tî${ï%Eï%Eî%Wuî(àï%Eï%Eî)Jtï%Eî+pî,ýî.Šuî1Wï%Eï%Eî1Átï%Eî3çuî5sï%Eï%Eî5Ýtî:dï%Eï%Euï#žî¬tî3ï#žï#žî–qï!öî‰îÍîîùîÞî!‚î#Îî' vïî gî¾îòtï±îxuî�ï±ï±îItï±îuîŽï±ï±îbtï±îYï îxuîï ï î¾tï îwuîï ï îØtîòï ï îUî#xuî(+ï ï î(•tî*7ï ï î*šïºîxuîÀïºïºîytïºî2uî¿ïºïºî“tïºî‰ïîxuî6ïïîïtïî§uî4ïïîtî"ïïïkî‰î¬uî_ïkïkîÉtîkïkïkïÄî‰îEqî<ïÄïÄîµî ³î#£î%stïî‰uîíïïî�tïîÀîƒuî·ïïîptï uîšîî®îï ÍîšîZîðîŒÿ&TVm$A91ENDCASE];Block:TYPE~REFBlockRep;BlockRep:TYPE~RECORD[index,length:INT,noPages:BOOL,preamble:Node,nodes:SEQUENCEsize:NATOFNode];Skeleton:TYPE~REFSkeletonRep;SkeletonRep:TYPE~RECORD[instructions:Body,--maybeNILtopBlock:Block];GetHeader:PROC[stream:STREAM,prefix:ROPE_NIL,maxLength:INT_100]RETURNS[ROPE];Readsuptothefirstspace;leavesthestreampositionedafterthespace.ReturnstheheaderasaROPE,omittingthespace(Example:"Interpress/Xerox/2.1").Ifprefixissupplied,thebeginningoftheheadermustmatchit.!Error[invalidHeader]iftheprefixdoesn'tmatchorlengthexceedsmaxLength.GetSkeleton:PROC[stream:STREAM]RETURNS[Skeleton];Parsestheskeletonstructureofthemaster.!Error[invalidSkeleton]iftheskeletonismalformed.SkipToEndOfBody:PROC[stream:STREAM];Skipstotheendoftheenclosingbody.Leavesthestreampositionedatthetokenfollowingthebody.SetIndex:PROC[stream:STREAM,index:INT];SameasIO.SetIndex[stream,index].Hereforconvenience.CopyBytes:PROC[to:STREAM,from:STREAM,count:INT]RETURNS[copied:INT];Copiesbytestoanoutputstreamfromaninputstream.Returnstheactualnumberofbytescopied.CopySegment:PROC[to:STREAM,from:STREAM,start,length:INT];DoesSetIndex[from,start],thencopieslengthbytes.!IO.EndOfStream[from]iftoofewbyteswerecopied.TokenType:TYPE~{nil,num,op,seq};Token:TYPE~RECORD[index:INT_0,type:TokenType_nil,num:ShortNumber_ShortNumber.FIRST,ev:EncodingValue_nil,seq:SequenceType_nil,sïg/îEuï_eîštï]¾î‰ïZnîxuîÒïZnïZnî‹tïZnîCuîÐïZnïZnî¤tïZnî›ïXÇîxuîGïXÇïXÇîtïXÇî¹uîFïXÇïXÇîtî4ïXÇïXÇïWî‰î¬uî_ïWïWîÉtîkïWïWïUxî‰uîZïUxïUxîtî…ïUxïUxïSÐî‰îïR)î‰uîúïR)ïR)î™tïR)î¾uîãïR)ïR)îËïR)î!ÜtïR)î#öïP�î‰ïM2îxuî—ïM2ïM2îPtïM2îuî•ïM2ïM2îitïM2î` ïKŠîx uî ïKŠïKŠîÅtïKŠî~uî ïKŠïKŠîßtî ùïKŠïKŠïIãî‰ îbqîYïIãïIãîÒîÐî Àî"�tïH;î‰îÔïF“î‰vïA�îxtîïA�ïA�uîïA�ïA�îªtî%ïA�ïA�îˆuîrïA�ïA�îtî#<ïA�ïA�î$uî(”ïA�ïA�î)gtïA�î,)uî-¶ïA�ïA�î.žtî/ÁïA�ïA�î0ž uî8UïA�ïA�î8¿tïA�î:åîNî‰î‹î}î!înî=î!Uî%Bî'Žî+ì î2Fî5yî7Åï<¦î‰îšîæîBîûxî0ï<¦ï<¦îûqî"Sï<¦ï<¦î#/î(�î*Ûî.zî5 ï:ÿî‰îîîpîîLî%~î'!î)mî-Éî1î5'ï9Wî‰î¨îaî¸î"î%ðî*{î.Žî0Gî4eî9P vï6îx tîàï6ï6uîÞï6ï6î…tîï6ï6îduîMï6ï6îítî$ï6ï6uî$ÿï6ï6î%Ótî*†ï6ï6î*é qï4`î‰îÍîîaî"î#¥î%ñï2¹î‰î¨î8î Žî"Úî("î)Ž vï/jîxtî¸ï/jï/juîµï/jï/jî]tîØï/jï/jî;uî#%ï/jï/jî#Ätî'ïï/jï/jî(Rqï-Âî‰îIîîî:îÈîkî·î$šï,î‰îîRî° î" î#¯î%ûî)Àî/”î1àvï(ËîxtîÄï(Ëï(ËuîÁï(Ëï(Ëîitîäï(Ëï(ËîGuî1ï(Ëï(ËîÐtî!ûï(Ëï(Ëî"Øuî'ï(Ëï(Ëî'†tî)'ï(Ëï(Ëî)Šqï'$î‰îKxîï'$ï'$î€qî]ï'$ï'$îµî"-î&«î*î,; vï#ÔîxtîÃï#Ôï#ÔuîÁï#Ôï#Ôîhtîäï#Ôï#ÔîGuînï#Ôï#Ôîtî 9ï#Ôï#Ôî!uî$öï#Ôï#Ôî%•tî)Àï#Ôï#Ôî*œuî.ìï#Ôï#Ôî/Vtî0øï#Ôï#Ôuî1ßï#Ôï#Ôî2³tî7gï#Ôï#Ôî7Êuî<´ï#Ôï#Ôî=tî>Àï#Ôï#Ôî?#qï"-î‰îîîXîýîðî /î$�î'Ëî)¾î-Aï …î‰îšîæîöî Ûî"î%èvï6îx tîœï6ï6uîšï6ï6îAtî½ï6ï6î uîGï6ï6îçtî"ï6ï6î"îuî&Ïï6ï6î'ntî+™ï6ï6î,uî/Ýuî4�ï6ï6î4útî6œï6ï6î6ÿqï�î‰îñ îHî!,î$6î(9î,Wïçî‰î¨îßî!6î#‹î&î)jî,�tïðîx uîDïðïðîýtïðî¶îCî\î!ðî$OïIîxuî@ïIïIîùtïIî²uî>ïIïIîtî-ïIïIï¡î‰uîÎï¡ï¡î7tï¡î]îêïùî‰îîeîòïRî‰î> îî� uî'(ïRïRî'átî*wïRïRï ªî‰îÝ îyîï î‰îx î§î4PTVm$92len:INT_0];GetToken:PROC[stream:STREAM,flushComments:BOOL_TRUE]RETURNS[Token];ReadsfromthestreamatokenintheXeroxencoding.(SeeInterpress,section2.5.1.)Iftoken.type=seq,callermustreadtoken.lendatabytesfromstreamtoreachnexttoken.SkipBytes:PROC[stream:STREAM,len:INT];Skipslenbytesinthestream.IntFromData:PROC[text:REFREADONLYTEXT,start:NAT_0,len:NAT_NATLAST]RETURNS[INT];RealFromData:PROC[text:REFREADONLYTEXT,start:NAT_0,len:NAT_NATLAST]RETURNS[REAL];Theseinterprettext[start..start+len)asatwo'scomplementbinaryinteger.WritingamasterPutOp:PROC[stream:STREAM,op:Op];Appendsaprimitiveoperatororsymbolliteral;choosestheshortestencoding.PutInt:PROC[stream:STREAM,n:INT];AppendsaNumberliteral;choosestheshortestencoding.PutBool:PROC[stream:STREAM,bool:BOOL];Appendsa1forTRUE,0forFALSE.PutRational:PROC[stream:STREAM,n,d:INT];AppendsaNumberliteral,n/d.!Error[invalidRational]ifdiszero.PutReal:PROC[stream:STREAM,val:REAL];AppendsaNumberliteral.Choosesarationalapproximationifnecessary.PutIdentifier:PROC[stream:STREAM,rope:ROPE,start:INT_0,len:INT_INTLAST];AppendsanIdentifierliteral.!Error[invalidIdentifier]iftheropeisnotalegalidentifier.PutString:PROC[stream:STREAM,rope:ROPE,start:INT_0,len:INT_INTLAST];Appendstheencodingnotationforastring.Treats'\377asanescapecode.SeetheCharacterCodeStandard,chapter6,andInterpress,section2.5.3.!Error[invalidString]iftheropeisnotalegalstring.PutComment:PROC[stream:STREAM,rope:ROPE,start:INT_0,len:INT_INTLAST];Appendsacommenttoken.PutInsertFile:PROC[stream:STREAM,rope:ROPE,start:INT_0,len:INT_INTLAST];AppendsasequenceInsertFile.PutName:PROC[stream:STREAM,rope:ROPE,start:INT_0,len:INT_INTLAST];ParsesastructurednameandappendstokenstobuildaVectorofIdentifiers.sïg/îEtï_,î‰uîVï_,ï_,îÀtï_,îæîsï]…î‰vïZ5îxtîuïZ5ïZ5uîsïZ5ïZ5îtî–ïZ5ïZ5îùuîãïZ5ïZ5î‚tî"­ïZ5ïZ5î#‰ uî-áïZ5ïZ5î.›tïZ5î1‘uî3ïZ5ïZ5î3×tî6IïZ5ïZ5uî71ïZ5ïZ5î8tî<¸ïZ5ïZ5î=qïXŽî‰î‹îÉîîsî¨î#mî%î'_î+xî1{î4‹ î;(î?©ïVæî‰îîîÓî#î&#î+ýî/î2lî5ªî:î;­î?XîBmvïS—îxtîjïS—ïS—uîhïS—ïS—îtî‹ïS—ïS—îîuî×ïS—ïS—îwtî"¢ïS—ïS—î#~uî&KïS—ïS—î&µtî(WïS—ïS—î(ºqïQðî‰îIîŠîóî™îåvïN¡îx tîNïN¡ïN¡uîLïN¡ïN¡îótîoïN¡ïN¡îÒuîïN¡ïN¡î×ïN¡î ÍïN¡î'étî*éïN¡ïN¡ïLùî¬uî5ïLùïLùîtïLùî.î»îHuî!ïLùïLùî!ýtïLùî$uî%›ïLùïLùî&„tî*õïLùïLùuî+ÜïLùïLùî,°tî1dïLùuïLùî1Çtî3ÒïLùïLùî46vïKRîx tîLïKRïKRuîJïKRïKRîñtîmïKRïKRîÐuîïKRïKRîÕïKRî!ËïKRî(çtî+çïKRïKRïI«î¬uî5ïI«ïI«îtïI«î.î»îHuî!ïI«ïI«î!ýtïI«î$uî%›ïI«ïI«î&„tî*õïI«ïI«uî+ÜïI«ïI«î,°tî1dïI«uïI«î1Çtî4áïI«ïI«î5DqïHî‰îlîáî&�î(Hî)}î,æ î4Yî8‰vïC î gî{î°ï?¾îxtîeï?¾ï?¾uîbï?¾ï?¾î tî…ï?¾ï?¾îèuîÒï?¾ï?¾îqtî œï?¾ï?¾î!yî#ùqï>î‰îúî/îÍî"'î#àî(gî,Îî1®î3úî8ôvï:ÇîxtîMï:Çï:ÇuîKï:Çï:Çîòtîmï:Çï:ÇîÑuîºï:Çï:ÇîYtî „ï:Çï:Çî!auî#%ï:Çï:Çî#�tî%1ï:Çï:Çî%”qï9 î‰îúî/îiî Ðî%°î'üî,õvï5Ñîxtîaï5Ñï5Ñuî_ï5Ñï5Ñîtî‚ï5Ñï5ÑîåuîÎï5Ñï5Ñîntî!™ï5Ñï5Ñî"uuî&ï5Ñï5Ñî&Ítî)?ï5Ñï5Ñî)¢qï4)î‰îúî/îcxî‹ï4)ï4)îDqî®ï4)ï4)î‹î¿xî!çï4)ï4)î"—qî%˜ï4)ï4)vï0Úîx tî©ï0Úï0Úuî¦ï0Úï0ÚîNtîÉï0Úï0Úî,uîï0Úï0Úîµtî#àï0Úï0Úî$½î&`uî($ï0Úï0Úî(Žtî*0ï0Úï0Úî*“qï/2î‰îúî/îiî ®ï-‹î‰î¨î!î wî!«î#vï*<îxtîKï*<ï*;"foo"produces.SeeInterpress,section3.2.1.!Error[invalidIdentifier]ifthenamecontainsaninvalididentifier.PutBits:PROC[stream:STREAM,base:LONGPOINTER,wordsPerLine:NAT,sMin,fMin,sSize,fSize:NAT];AppendsasequencePackedPixelVector,onebitpersample.PutDescriptor:PROC[stream:STREAM,seq:SequenceType,len:INT];Appendsasequencedescriptor;lendatabytesmustfollow.PutShortNumber:PROC[stream:STREAM,n:ShortNumber];AppendsaShortNumbertoken.PutShortOp:PROC[stream:STREAM,ev:EncodingValue[VAL[0]..VAL[37B]]];PutLongOp:PROC[stream:STREAM,ev:EncodingValue];AppendsaShortOporLongOptoken.PutShortSequence:PROC[stream:STREAM,seq:SequenceType,len:[0..377B]];PutLongSequence:PROC[stream:STREAM,seq:SequenceType,len:INT--[0..77777777B]--];AppendsaShortSequenceorLongSequencetoken;lendatabytesmustfollow.PutUnsigned:PROC[stream:STREAM,len:[0..4],val:CARD];Appendstheloworderlenbytesofval.PutSigned:PROC[stream:STREAM,len:[0..4],val:INT];Appendstheloworderlenbytesofval.END.******************************************************sïg/îEqï_,î‰îîÒîî#¤î$Ùî& î'Bî(axî)–ï_,ï_,î*¦qï_,î/äî1’î5Fî:×î< î>_xî?”ï_,ï_,î@¤qï]…î\ï[Ýî‰î î½î>ïZ6î‰î¨î†î Üî#(î&Ìî,!î.î2| vïVçîxtîóïVçïVçuîñïVçïVçî˜tîïVçïVçîwuî`ïVçïVçîtî!+ïVçïVçïU@î¬uî?ïU@ïU@îùïU@î0tî!MïU@ïU@î") uî+aïU@ïU@î,Jtî-ÖïU@ïU@î.³î2“î6iî:3uî>ïU@ïU@î>ütî@‰ïU@ïU@î@ìqïS™î‰îúî/î(Sî*áî,éî/=vïPJîx tîÓïPJïPJuîÐïPJïPJîxtîóïPJïPJîVuî @ïPJïPJî ßtî% ïPJïPJî%çî(Õ î2]uî5)ïPJïPJî5“tî75ïPJïPJî7˜qïN£î‰îúî/îÎ î#sî%´î(ºî,#î/ovïI­îx tî¢ïI­ïI­uîŸïI­ïI­îGtîÂïI­ïI­î%uî"ïI­ïI­î"®tî&ÙïI­ïI­î'¶î)z qïHî‰îúî/ î§vïD·îx tîµïD·ïD·uî³ïD·ïD·î[tîÖïD·ïD·î9uî#ïD·ïD·îÂtî#íïD·ïD·î$Éî' uî0˜ïD·ïD·î1ctî2ïïD·ïD·î3Suî5ïD·ïD·î5àtî7mïD·ïD·î7ÐvïCîxtîsïCïCuîpïCïCîtî“ïCïCîöuîàïCïCîtî#ªïCïCî$‡î&ÚqïAhî‰îúî/îµînî#Évï>îxtî~ï>ï>uî|ï>ï>î#tîŸï>ï>îuî"ëï>ï>î#‹tî'¶ï>ï>î(’î+€ î5î7Õ vï î4Åuî7’ïïN±ïN±î$tïN±îˆuîëïN±ïN±î¿tîüïN±ïN±î_ïM î‰uîªïM ïM î�tïM îôuîWïM ïM î"tî¦ïM ïM î ïI»îx uîSïI»ïI»îïI»îè tïHîxuîïHïHî¾ïDÅîxtî‰ïDÅïDÅuî‡ïDÅïDÅî@tïDÅîùî…uîïDÅïDÅîâtîïDÅïDÅuïCîxtîBïCïCuî@ïCïCîùtïCî²uî?ïCïCî¨tî…ïCuïCîÜtî§ïCïCï?Ïîxuîžï?Ïï?ÏîWtï?Ïîuîœï?Ïï?Ïîptï?Ïîgï>'îxuîëï>'ï>'î¤tîØï>'ï>'vï:Ùîxtî©ï:Ùï:Ùuî¦ï:Ùï:ÙîNtîÉï:Ùï:Ùî-uî§ï:Ùï:Ùî{tî¸ï:Ùï:Ùuî Ÿï:Ùï:Ùî!stî&'ï:Ùï:Ùî&Švï91îxtîõï91ï91uîóï91ï91îštîï91ï91îyî}uîŒï91ï91î`tî"ï91uï91î"vtî$ëï91ï91î%Nvï7Šîxtî5ï7Šï7Šuî2ï7Šï7ŠîÚtîUï7Šï7Šî¸î¼îÀuî!€ï7Šï7Šî"itî#õï7Šï7Šî$Òî* î44uî7ï7Šï7Šî7ktî8Gï7Šuï7Šî8Ÿtî=iï7Šï7Šî=Ìuï4;îxtîÇï4;ï4;uîÅï4;ï4;î~tï4;î6îÃuî·ï4;ï4;î‚tîï4;ï4;ï2”îx uîÊï2”ï2”îƒtï2”î<îÉï0íîx uî*ï0íï0íîãtï0íî›î(ï-žîxuîæï-žï-žîŸtï-žîXuîåï-žï-žî¹tï-žî ¯ï+÷îxuî\ï+÷ï+÷îtï+÷îÍuî Zï+÷ï+÷î!.tî%Hï+÷ï+÷ï*Oî‰ uîï*Oï*Oîêtînï*Oï*Oï(¨î‰ uî¹ï(¨ï(¨î�tîÒï(¨ï(¨ï'î‰ uî¹ï'ï'î�tîÒï'ï'ï%Yî‰ î? ï#²î‰ î) ï" î‰ îØ ï cî‰uîï cï cîÜtîNï cï cï¼î‰î’ îàuî!mï¼ï¼î"Utïî‰vïÆîxtî ïÆïÆuî ïÆïÆî²tî-ïÆïÆî‘uî"ÊïÆïÆî#�tî%ÛïÆïÆuî&ÂïÆïÆî'–tî,IïÆïÆî,­vïîxtî!€ïïuî"~ïïî#%tî%¡ïïî&uî*íïïî+�tî/¸ïïuî0Ÿïïî1stî6&ïïî6ŠuïÐîxtîïÐïÐrï ìî gð6TVm$j95RealExtras.mesaCopyrightc1984XeroxCorporation.Allrightsreserved.DougWyatt,August13,19844:14:13pmPDTRealExtras:CEDARDEFINITIONS=BEGINFloor:PROC[a:REAL]RETURNS[REAL];Ceiling:PROC[a:REAL]RETURNS[REAL];Trunc:PROC[a:REAL]RETURNS[REAL];Round:PROC[a:REAL]RETURNS[REAL];Mod:PROC[a,b:REAL]RETURNS[REAL];Rem:PROC[a,b:REAL]RETURNS[REAL];END.******************************************************sïg/îEqï_,îxï]…î‰wîÖï]…qï]…î¼îî  î(…î*Îî.›ï[Ýî‰î?î²îRî�î"Öî'¾î* tïX�îx uîáïX�ïX�î¬ïX�îw tïVçîxuî]ïVçïVçîvïS™îxtî³ïS™ïS™uî°ïS™ïS™îXtîÓïS™ïS™î6uîÚïS™ïS™î­tîóïS™ïS™uîÛïS™ïS™î¯tî!bïS™uïS™î!Åtî$ßïS™ïS™î%BvïQñîxtî¥ïQñïQñuî£ïQñïQñîKtîÆïQñïQñî)uîÌïQñïQñî tîæïQñïQñuîÍïQñïQñî¡tî"UïQñuïQñî"¸tî%ÑïQñïQñî&4vïPJîxtî ïPJïPJuî ïPJïPJî±tî-ïPJïPJî�uî3ïPJïPJîtîLïPJïPJuî4ïPJïPJîtî!»ïPJuïPJî"tî%8ïPJïPJî%›vïN£îxtîXïN£ïN£uîUïN£ïN£îýtîxïN£ïN£îÜuîïN£ïN£îStî˜ïN£ïN£uî€ïN£ïN£îTtî"ïN£uïN£î"jtî%„ïN£ïN£î%çvïLûîxtîEïLûïLûuîBïLûïLûîêtîeïLûïLûîÈîJuîïLûïLûîãtî)ïLûïLûuîïLûïLûîätî"—ïLûuïLûî"útî&ïLûïLûî&wvïKTîxtî/ïKTïKTuî,ïKTïKTîÔtîOïKTïKTî²î4uîùïKTïKTîÍtîïKTïKTuîúïKTïKTîÎtî"�ïKTuïKTî"åtî%þïKTïKTî&auïHîxtîïHïHrï ìî gð6ÿ‚TVm$Ó96ShortRational.mesaMichaelPlass,May2,198410:40:13amPDTShortRational:CEDARDEFINITIONS=BEGINRational:TYPE~RECORD[numerator:INTEGER,denominator:CARDINAL];FromReal:PROC[real:REAL]RETURNS[Rational];picksacloserationalapproximationfortherealnumber.denominatorwillbezeroforout-of-rangeinputs.answerisalwaysinlowestterms.END.******************************************************sïg/îEqï_,îxï]…îxîºîšîÉîUî›î%5î'tïZ6îx uî½ïZ6ïZ6îˆïZ6îR tïZ6î$ruî&WïZ6ïZ6î'tïVçî‰uî’ïVçïVçîKtïVçîuî�ïVçïVçîdtïVçî! uî(˜ïVçïVçî)tî-ØïVçïVçî.µ uî7HïVçïVçî8tî=ïVçïVçî=âvïS™î‰tîpïS™ïS™uîmïS™ïS™îtïS™îuî¨ïS™ïS™î{tî!ÁïS™ïS™uî"©ïS™ïS™î#}tïS™î(´ qïQñîšîîMîŸî® î(ªî*Òî-î/ÕïPJîš îfîûîÊî!¹î#á î+“ïN£îšîî„îÞî„î"’uïKTî‰tîïKTïKTrï ìî gð6ÿtTVm$æ97IPInterpreter.mesaCopyright(C)1984,1985byXeroxCorporation.Allrightsreserved.DougWyatt,January23,19854:37:32pmPSTTypesandoperationsfortheInterpressinterpreter.DIRECTORYImagerUSING[Context],ImagerColorUSING[Color],ImagerFontUSING[Char,Font,StringProc],ImagerPathUSING[Outline,Trajectory],ImagerPixelArrayUSING[PixelArray],ImagerTransformationUSING[Transformation],IOUSING[STREAM],IPMasterUSING[Body,Op,Skeleton,TypeCode],PrincOpsUSING[zAND,zBNDCK,zLI1,zLIW,zPOP],RopeUSING[ROPE],Vector2USING[VEC];IPInterpreter:CEDARDEFINITIONS~BEGINTypesROPE:TYPE~Rope.ROPE;STREAM:TYPE~IO.STREAM;Op:TYPE~IPMaster.Op;TypeCode:TYPE~IPMaster.TypeCode;Body:TYPE~IPMaster.Body;maxInteger:INT~77777777B;--2^24-1=16777215maxVecSize:NAT~30000;--forresultofMakeVecorMakeVecLUtopFrameSize:NAT~50;Any:TYPE~REF;Integer:TYPE~INT--[0..maxInteger]--;Int:PROC[i:INT]RETURNS[Integer]~TRUSTEDMACHINECODE{PrincOps.zLIW,1,0;PrincOps.zBNDCK;};IFiIN[0..maxInteger]THENRETURN[i]ELSEERRORRuntimeError.BoundsFault;Odd:PROC[i:Integer]RETURNS[BOOL]~TRUSTEDMACHINECODE{PrincOps.zPOP;PrincOps.zLI1;PrincOps.zAND;};RETURN[(iMOD2)#0]Number:TYPE~REFNumberRep;NumberRep:TYPE~RECORD[SELECTtag:*FROMzero=>[zero:Integer_0],int=>[int:INT],sïg/îEqï_:îxï]’îxîÅî:îØîîøî$ î,{î.Ãî2�ï[ëî‰î?î²î×î î#Zî(Cî*ŽïXœîxîYîü îxîŸîë î&1 uïUMîxtïS¥î‰uî;ïS¥ïS¥î!tïS¥î… ïQþî‰ uî—ïQþïQþî|tïQþîàïPVî‰ uîïPVïPVîùtïPVî]î ‹î$? ïN¯î‰ uîèïN¯ïN¯îÍtïN¯î1î!í ïMî‰uî�ïMïMîutïMîÙ ïK`î‰uîsïK`ïK`îYtïK`î"½uïI¸î‰ïI¸îTtïI¸î�uîïI¸ïI¸î tîËïI¸ïI¸î.ïHî‰uî|ïHïHîatïHîÅîî!Öî'Ó ïFiî‰uî‡ïFiïFiîltïFiîÐîôî&²î*Eî.ˆïDÁî‰uî>ïDÁïDÁî$tïDÁîˆuîëïDÁïDÁî¿tîüïDÁïDÁî_ïCî‰uîªïCïCî�tïCîôuîWïCïCî"tî¦ïCïCî ï?Ëîx uî8ï?Ëï?Ëîï?ËîÎ tï>#îxuîï>#ï>#î¾vï:Ôî guï7…îxtî‰ï7…ï7…uî‡ï7…ï7…î@tï7…îùî…uîï7…ï7…îâtîï7…ï7…uï5ÞîxtîBï5Þï5Þuî@ï5Þï5Þîùtï5Þî²uî?ï5Þï5Þî¨tî…ï5Þuï5ÞîÜtî§ï5Þï5Þï2�îxuîPï2�ï2�î tï2�îÂîO ï0çîxuîŸï0çï0çîYtï0çîîžï/@îxuî�ï/@ï/@îItï/@îîŽ ï+ñîx uî/ï+ñï+ñî˜tï+ñî¾îK qî!´ï+ñï+ñî"-î#+î&—î'•î(Êî*¯tï*Iîx uî�ï*Iï*Iî†tï*Iî–î#qî“ï*Iï*Iî î! î#2î&éî(�î.«î0dtï(¢îx uî±ï(¢ï(¢îštï(¢îªî7ï%Sîxuîõï%Sï%Sî®tï%Sîguîôï%Sï%SîÇtî:ï%Sï%Sï"îxuî¯ï"ï"îhtï"î!uî®ï"ï"îqî¹ï"ï"î2tî%�ï"ï"vï´îxtî1ï´ï´uî.ï´ï´îÖtîQï´ï´î´uîï´ï´îtî!ï´ï´uîï´ï´îÜtî�ï´ï´îóî$uï î¬ï îšï î Àtï î$Šî%¿ î/Óî1_î3î?¾xïfî‰qïfî:xî!ïfïfî�qîzïfïfîè xîüïfïfîµïfî!Çqî&‘ïfïfî&ÿxî(Tïfïfî)ïfî+Ðqïfî0Tvïîxtîùïïuîöïïîžtîïïî}îÝuîþïïîÒtî!…ïuïî!ètî%ïïî%ûuïoî¬ïoîšïoî Àtïoî$Šî%¿ î/Þ î9c îDxïÇî‰qîTïÇïÇîÂxî"ïÇïÇî3qïÇîptïxîxuîzïxïxî3tïxîìuîxïxïxîLtïxîC ïÑîx uîïïÑïÑî¨tïÑîauîîïÑïÑîÂtî ÜïÑïÑuï)î‰tï)î\îuîSï)ï)î tï ‚îšîžî3îî Ñî"^ï Úîšî·îMuîFï Úï Úî°tîRï Úï Úîµÿ¢TVm$¾98real=>[real:REAL],rational=>[n,d:INTEGER],ENDCASE];Identifier:TYPE~REFIdentifierRep;IdentifierRep:TYPE~RECORD[atom:ATOM,rope:ROPE];Marker:TYPE~LONGCARDINAL;--auniquemarkvalueassociatedwithacontextnullMarker:Marker~0;VectorShape:TYPE~RECORD[lowerBound:Integer,size:INT--[0..maxInteger+1]--];Upperbound"u"=lowerBound+size-1.Vector:TYPE~REFVectorRep;VectorRep:TYPE~RECORD[class:VectorClass,data:REF,font:Font_NIL];VectorClass:TYPE~REFVectorClassRep;VectorClassRep:TYPE~RECORD[type:ATOM,--$Array,$Merged,$Font,$String,...shape:PROC[v:Vector]RETURNS[VectorShape],get:PROC[v:Vector,i:Integer]RETURNS[Any],getProp:PROC[v:Vector,propName:Any]RETURNS[found:BOOL,value:Any]_NIL];Operator:TYPE~REFOperatorRep;OperatorRep:TYPE~RECORD[class:OperatorClass,data:REF];OperatorClass:TYPE~REFOperatorClassRep;OperatorClassRep:TYPE~RECORD[type:ATOM,--$Composed,$Pool,$Char,$Decompressor,$ColorOperator,...do:PROC[op:Operator,state:Ref]];VEC:TYPE~Vector2.VEC;Transformation:TYPE~ImagerTransformation.Transformation;PixelArray:TYPE~ImagerPixelArray.PixelArray;Color:TYPE~ImagerColor.Color;Trajectory:TYPE~ImagerPath.Trajectory;Outline:TYPE~ImagerPath.Outline;Font:TYPE~ImagerFont.Font;Char:TYPE~ImagerFont.Char;StringProc:TYPE~ImagerFont.StringProc;Array:TYPE~REFArrayRep;--amutablearrayofvalues,suchasaframeorpoolArrayRep:TYPE~RECORD[lowerBound:Integer,--lowerbound,asinVectorShapearray:SEQUENCEsize:[0..maxVecSize]OFAny];Pool:TYPE~REFPoolRep;--apooloperator,fromMAKEPOOLorNOPOOLsïg/îEtï_,îšîQîçuîzï_,ï_,îNtî“ï_,ï_,îöï]…îšî¥î:îAuîï]…ï]…îotî#Eï]…ï]…î#¨uï[ÝîštïZ5î‰ïVæîx uîïVæïVæî¾tïVæîwuîïVæïVæîØtïVæîÎ ïU?îx uî{ïU?ïU?î4tïU?îìuîyïU?ïU?îMtî!gïU?ïU?î!Êuî%ÁïU?ïU?î&•tî)<ïU?ïU?î*uî-ÂïU?ïU?î.–tî0ÓïU?ïU?î16ïQðîxuîÚïQðïQðî”tïQðîLuîÙïQðïQðî’ïQðîÊtî#ïQðïQðqî#þïQðïQðî$wî%uî&ªî+î.ªî25 î8Œî;ˆî<½tïPHîx î.îî¤ïLùîx uîïLùïLùî»tïLùîtuîïLùïLùîÔtî ïïLùïLùî!R î)Œî.¢uî1ÇïLùïLùî21qî3ÒïLùïLùî4Ltî@ÇïLùïLùîA*qïKRî‰î¡î²îTî9tïHîxuîbïHïHîtïHîÔuîaïHïHî5tïHî+ ïF[îx uîØïF[ïF[î‘tïF[îIuîÖïF[ïF[îªtîÄïF[ïF[î 'î#Ñ î+©uî/'ïF[ïF[î/ûtî1mïF[ïF[î2Jî5±î9uî:›ïF[ïF[î;ƒtî<¦ïF[ïF[î= ïC îx uîqïC ïC î*tïC îãuîoïC ïC îCtïC î:ïAeîxuîæïAeïAeîŸtïAeîXuîåïAeïAeî¹tî"ÓïAeïAeï?½î‰uîï?½ï?½îætî�ï?½ï?½qîiï?½ï?½îãîàîÉî$Æî)î.>tï>î‰uîäï>ï>îŒtîï>ï>îjîuîìï>ï>îÀtî$sï>ï>î$Ö ïŠtïîxuîRïïî tïîÃuîPïïî$tî>ïïïkî‰ îÄqîÚïkïkîSîQî"ïî'Xî)î*· tïÃî‰uî‹ïÃïÃî*tïÃîOîtuî(EïÃïÃî)!tïÃî*_ïî‰ï Íîxuî!ï Íï ÍîÚtï Íî“uî ï Íï Íîôtï Íîêqî ï Íï Íî ‚î!î"´î%­î+^uî.œï Íï Íî/®qï Íî5¿uî7xï Íï Íî8`ÿµTVm$¥99PoolRep:TYPE~RECORD[persistent:BOOL,level:NAT_0,array:Array];Context:TYPE~REFContextRep;--anexecutioncontextContextRep:TYPE~RECORD[caller:Context,--caller'scontextmarker:Marker,--uniquemarkforthiscontextindex:INT,--indexoftokencurrentlybeingexecutedinitialFrame:Vector,--initialframeframe:Array,--currentframe(NILifunchangedfrominitialframe)pool:Pool,--sharedpoolenv:Vector--environment];stackArraySize:NAT~8;StackArray:TYPE~REFStackArrayRep;StackArrayRep:TYPE~ARRAY[0..stackArraySize)OFNumberRep;StackList:TYPE~LISTOFAny;StackMark:TYPE~RECORD[count:INT_0,marker:Marker_nullMarker];StackMarkList:TYPE~LISTOFStackMark;Ref:TYPE~REFRep;--anInterpressinterpreterinstanceRep:TYPE~RECORD[stream:STREAM_NIL,--inputstreamonthemasterbeinginterpretedskeleton:IPMaster.Skeleton_NIL,--skeletonstructureofthemasterbuffer:REFTEXT_NIL,--textbufferforsequencedatatopFrame:Vector_NIL,--initialframeforthetoplevelblocktopEnv:Vector_NIL,--environmentforthetoplevelblocklastMarker:Marker_nullMarker,--lastmarkvalueusedcontext:Context_NIL,--thecurrentcontextstackArray:StackArray_NIL,--afewnumbersontopofthestackstackArrayCount:[0..stackArraySize]_0,--numberofelementsinstackArraystackList:StackList_NIL,--therestofthestackstackCount:INT_0,--numberofstackelementsabovethetopmarkstackCountMax:INT_0,--maximumcountpermittedabovethetopmarkstackMarkList:StackMarkList_NIL,--marksonthestackimager:Imager.Context_NIL,--imagerstateshowVec:Vector_NIL,--currentshowVeclog:STREAM_NIL--outputstreamforloggingerrors];OperationsAddState:PROC[self:Ref,inner:PROC];UsesProcessPropstoaddan$InterpressStatepropertyforthedurationofthecallofinner.GetState:PROCRETURNS[Ref];sïg/îEtï_,îxuî–ï_,ï_,îPtï_,îuî•ï_,ï_,îitîƒï_,ï_,ï]…î‰ uî-ï]…ï]…îætîXï]…ï]…ï[Ýî‰uîIï[Ýï[Ýî1tï[ÝîBîÏïZ5î‰î‹ïXŽî‰ïU?îxuî)ïU?ïU?îâtïU?îšuî'ïU?ïU?îûtïU?îò qî$ïU?ïU?î$‘î%�î'‚î-�tïS—îx uîžïS—ïS—îWtïS—îuî�ïS—ïS—îqtî ‹ïS—ïS—ïQðî‰î·qîGïQðïQðîÀî¾î OtïPHî‰îÀqîïPHïPHîzîxî âî$xî& î)9tïN¡î‰uîÎïN¡ïN¡î7tîÙïN¡ïN¡qî¶ïN¡ïN¡î/î-îåîˆî"Mî(î+¦tïLùî‰ îÏqî˜ïLùïLùîîî"þtïKRî‰îùqî<ïKRïKRî¶î³îaî#:î&Ùî(/î.ñî2/î6tïIªî‰î(qî°ïIªïIªî)î'îltïHî‰î£qîïHïHî�î‹ tïF[î‰ïC îxuî5ïC ïC îtïC î.î»ïAeîx uîïAeïAeîÇtïAeîuî ïAeïAeîàtïAeî× ï?½îx uîƒï?½ï?½î<tï?½îõuî‚ï?½ï?½îUtî!¤ï?½ï?½î"uî-#ï?½ï?½î-ÿtï?½î/= ï>îx uîåï>ï>îžtï>îVuîãï>ï>îœï>îãtï>îýïtîaï/2ï/2qî >ï/2ï/2î ·î!µî%¥î)}î+¥î-ñî0Gî3btï-‹î‰îÖîGuîÔï-‹ï-‹î½tîàï-‹ï-‹qî¼ï-‹ï-‹î5î 3 î'áî* î,Uî.ªî1Ætï+ãî‰ îçîÐî] qî%òï+ãï+ãî&kî'iî)õî-‹î1tï*;î‰î×îuî›ï*;ï*;î„tî§ï*;ï*;qîƒï*;ï*;îýî úî#Fî'ôtï(”î‰ îÜ îùuî †ï(”ï(”î!ntî"‘ï(”ï(”qî#nï(”ï(”î#çî$åî&î(�î-øî/ëî2@î3äî60tï&ìî‰î’î&ûî(ˆqî*ï&ìï&ìî*Žî+‹î0pî2î7•î9; tï%Eî‰ î³î§uî3ï%Eï%Eîtî ?ï%Eï%Eqî!ï%Eï%Eî!•î"’î$ßî'vî)î+ftï#�î‰ uî+ï#�ï#�î•tï#�î»îHqîÕï#�ï#�îNîLî$1î%Ôî)_î.àî2«î4÷î7Mtï!öî‰ uî×ï!öï!öîAtï!öîgîóqî €ï!öï!öî úî!÷î(Uî,î2î5Óî8 î:utï Nî‰ îî î#uî$©ï Nï Nî%’tî&µï Nï Nqî'‘ï Nï Nî( î)î-#î/î1btï§î‰î“ îPuî Ýï§ï§î!Åtî"èï§ï§qî#Åï§ï§î$>î%<î)¹tïÿî‰îÉî:uîÇïÿïÿî¯tîÒïÿïÿqî¯ïÿïÿî (î!&î%ÔtïXî‰uîVïXïXîõtïXî¤uî1ïXïXîqïXîÁî8î"wî&Õî(ýî-Ètï°î‰vïºî g ïkîxtîñïkïkuîïïkïkî–tîïkïkîuîyî}uî"•ïkïkî#<tî%¸ïkïkî&qïÃî‰îÅ îôî™î .î""î,î1nî3–î5âî;Jî<íî?9îAÏïî\vï ÍîxtîÐï Íï ÍuîÍï Íï Íîuï Íîttîüï Íï Íî_ÿcTVm$100Returnsthecurrentvalueofthe$InterpressStateproperty,NILifnonefound.Bug:ERROR;Error:ERROR;ErrorClass:TYPE~{nil,masterError,masterWarning,appearanceError,appearanceWarning,comment};ProduceError:PROC[class:ErrorClass,code:ATOM,explanation:ROPE];MasterErrorType:TYPE~{unimplemented,boundsFault,nilFault,undefinedProperty,invalidPropVec,runSizeOverflow,invalidRunVec,invalidArgs,limitExceeded,markMismatch,missingBody,notInteger,stackOverflow,stackUnderflow,undefinedOperation,unmarkFailed,wrongType};MasterError:PROC[type:MasterErrorType,explanation:ROPE_NIL];MasterWarningType:TYPE~{bug,unimplemented,unknownToken,nullValue,invalidEncodingValue,invalidSequenceType,invalidRational,invalidIdentifier};MasterWarning:PROC[type:MasterWarningType,explanation:ROPE_NIL];IntegerFromReal:PROC[REAL]RETURNS[Integer];IntegerFromNum:PROC[NumberRep]RETURNS[Integer];RealFromNum:PROC[NumberRep]RETURNS[REAL];sïg/îD=qï_,î‰îšîæî”î î!Âî$î. xî3²ï_,ï_,î4�qï_,î6Rî7¨î:ôtïZ5îxuîÕïZ5ïZ5îŽtîæïZ5ïZ5ïXŽîxuî¥ïXŽïXŽî_tî·ïXŽïXŽïU?îx uî´ïU?ïU?îmtïU?î&î³ïS—î¬ î¤ ïQðî¬îgïPIî¬ïN¡î¬vïKRîx tî…ïKRïKRuîƒïKRïKRî+tî¦ïKRïKRî î³ î%Îuî)ŽïKRïKRî*atî-ïKRïKRî-å uî5ÈïKRïKRî6œtî8ÙïKRïKRî9<ïHîxuîÂïHïHî{tïHî3îÀïF\î‰ ïD´î‰ ïC î‰ïAeî‰ï?¾î‰ï>î‰ïï Íï Íîætîaï Íï ÍîÄ uî$%ï Íï Íî$ùtî)­ï Íuï Íî*tî-)ï Íï Íî-�ÿTVm$$101IntegerFromAny:PROC[Any]RETURNS[Integer];RealFromAny:PROC[Any]RETURNS[REAL];NumberFromAny:PROC[Any]RETURNS[Number];IdentifierFromAny:PROC[Any]RETURNS[Identifier];VectorFromAny:PROC[Any]RETURNS[Vector];OperatorFromAny:PROC[Any]RETURNS[Operator];TransformationFromAny:PROC[Any]RETURNS[Transformation];PixelArrayFromAny:PROC[Any]RETURNS[PixelArray];ColorFromAny:PROC[Any]RETURNS[Color];TrajectoryFromAny:PROC[Any]RETURNS[Trajectory];OutlineFromAny:PROC[Any]RETURNS[Outline];Eq:PROC[a,b:Any]RETURNS[BOOL];EqName:PROC[a,b:Any]RETURNS[BOOL];Type:PROC[a:Any]RETURNS[TypeCode];Get:PROC[v:Vector,i:Integer]RETURNS[Any];GetInteger:PROC[v:Vector,i:Integer]RETURNS[Integer];GetReal:PROC[v:Vector,i:Integer]RETURNS[REAL];Shape:PROC[v:Vector]RETURNS[VectorShape];ZeroVec:PROC[n:Integer]RETURNS[Vector];CreatesaVectorwithnelements,allzero.MakeVec:PROC[n:Integer,pop:PROCRETURNS[Any]]RETURNS[Vector];MakeVecLU:PROC[l,u:Integer,pop:PROCRETURNS[Any]]RETURNS[Vector];CreatesaVectorwiththespecifiedshape.Callspopshape.ntimestogettheelements,lastelementfirst.MergeProp:PROC[v1,v2:Vector]RETURNS[Vector];GetProp:PROC[v:Vector,propName:Any]RETURNS[found:BOOL,value:Any];GetP:PROC[v:Vector,propName:Any]RETURNS[Any];RunSize:PROC[r:Vector]RETURNS[Integer];RunGet:PROC[r:Vector,i:Integer]RETURNS[Any];VectorFromArray:PROC[Array]RETURNS[Vector];CreatesaVectorwiththesameshapeandelementsastheArray.TheresultcontainsacopyoftheArray;itdoesnotsharetheoriginal.ArrayFromVector:PROC[Vector]RETURNS[Array];CreatesanArraywiththesameshapeandelementsastheVector.Theresultisanew,mutablecopy;itsharesnothingwiththeVector.VectorFromString:PROC[string:StringProc]RETURNS[Vector];A"String"usestheencodingschemeintheXeroxCharacterCodeStandard.StringFromVector:PROC[v:Vector,action:PROC[Char]];Callsactionforeachelementofvinorder.ErrorifanyelementisnotanintegerthatfitsinaChar.sïg/îD=vï_,îx tî3ï_,ï_,uî1ï_,ï_,îÙtîTï_,ï_,î·uî ï_,ï_,î òtî%¥ï_,ï_,î&vï]„îx tî²ï]„ï]„uî°ï]„ï]„îWtîÒï]„ï]„î6uîœï]„ï]„îptî$$ï]„uï]„î$‡tî' ï]„ï]„î(vï[Ýîx tî¸ï[Ýï[Ýuîµï[Ýï[Ýî]tîØï[Ýï[Ýî;uî ¢ï[Ýï[Ýî!vtî&)ï[Ýï[Ýî&�vïZ5îxtîhïZ5ïZ5uîeïZ5ïZ5î tîˆïZ5ïZ5îìuî!RïZ5ïZ5î"&tî&ÚïZ5ïZ5î'= vïXŽîx tîòïXŽïXŽuîðïXŽïXŽî˜tîïXŽïXŽîvuîÝïXŽïXŽî ±tî%dïXŽïXŽî%ÇvïVæîxtî_ïVæïVæuî\ïVæïVæîtîïVæïVæîâuî!IïVæïVæî"tî&ÐïVæïVæî'3 vïU>îxtî2ïU>ïU>uî0ïU>ïU>îØtî!SïU>ïU>î!¶uî%ïU>ïU>î%ñtî*¤ïU>ïU>î+vïS—îxtî[ïS—ïS—uîYïS—ïS—îtî{ïS—ïS—îßuî"EïS—ïS—î#tî'ÍïS—ïS—î(0 vïQïîx tîLïQïïQïuîJïQïïQïîòtîmïQïïQïîÐuî7ïQïïQïî tî$¾ïQïïQïî%!vïPHîxtî0ïPHïPHuî.ïPHïPHîÕtîQïPHïPHî´uî"ïPHïPHî"îtî'¢ïPHïPHî( vïN îx tîwïN ïN uîtïN ïN îtî—ïN ïN îúuî aïN ïN î!5tî%èïN ïN î&KvïKQîxtîïKQïKQuîïKQïKQîµtî1ïKQïKQî”îîÚuîAïKQïKQîtî ÈïKQuïKQî!+tî$VïKQïKQî$ºvïI©îxtî�ïI©ïI©uî‹ïI©ïI©î2tî­ïI©ïI©îî’îWuî¾ïI©ïI©î’tî$EïI©uïI©î$¨tî'ÓïI©ïI©î(6vïHîxtîgïHïHuîeïHïHî tîˆïHïHîëîŽuîõïHïHîÉtî |ïHïHî ß vïD²îxtîªïD²ïD²uî¨ïD²ïD²îPtîËïD²ïD²î.îÜî¥îuî"'ïD²ïD²î"útî'®ïD²ïD²î(vïC îx tîãïC ïC uîàïC ïC îˆtîïC ïC îfîîÝî!>uî&_ïC ïC î'3tî+æïC ïC î,IvïAcîxtîaïAcïAcuî_ïAcïAcîtî‚ïAcïAcîåî“î\î¼uî$ÝïAcïAcî%±tî*eïAcuïAcî*Ètî-áïAcïAcî.Dvï?¼îxtîï?¼ï?¼uîï?¼ï?¼î»tî7ï?¼ï?¼îšîHuîï?¼ï?¼îðtî"£ï?¼ï?¼î# vïî9î †î#ïî'°î*Tî/Õî1Žî3Úï­î‰îMîîpî¥îÂî!èî%‡î&Þî*øî/êî2åî52vï¶îxtîGï¶ï¶uîEï¶ï¶îítîhï¶ï¶îËî" uî)Bï¶ï¶î*tî.Éï¶ï¶î/,qïî‰î î“îxîÄî"oî'î(Áî+ î/&î5tî8ñvï¿îxtîGï¿ï¿uîEï¿ï¿îítîhï¿ï¿îËîyî$Buî(Ôï¿ï¿î){tî+÷ï¿ï¿î,Zqïî‰îîî@îgî"dî$î%&î&Ìï pî‰î>î”î-î)î•î ùî"ìî'lî*>î,‰î./î/c,TVm$?102VectorFromRope:PROC[ROPE]RETURNS[Vector];RopeFromVector:PROC[Vector]RETURNS[ROPE];TheseuseVectorFromStringandStringFromVectortoconvertbetweenVectorsandROPEs.TheropeusestheencodingschemeintheXeroxCharacterCodeStandard.PushAny:PROC[self:Ref,val:Any];PushNum:PROC[self:Ref,val:NumberRep];PushBool:PROC[self:Ref,val:BOOL];PushInteger:PROC[self:Ref,val:Integer];PushReal:PROC[self:Ref,val:REAL];PushVec:PROC[self:Ref,val:VEC];PushIdentifier:PROC[self:Ref,val:Identifier];PushVector:PROC[self:Ref,val:Vector];PushOperator:PROC[self:Ref,val:Operator];PushTransformation:PROC[self:Ref,val:Transformation];PushPixelArray:PROC[self:Ref,val:PixelArray];PushColor:PROC[self:Ref,val:Color];PushTrajectory:PROC[self:Ref,val:Trajectory];PushOutline:PROC[self:Ref,val:Outline];Thesepushanelementonthestack.PopAny:PROC[self:Ref]RETURNS[Any];PopNum:PROC[self:Ref]RETURNS[NumberRep];PopBool:PROC[self:Ref]RETURNS[BOOL];PopInteger:PROC[self:Ref]RETURNS[Integer];PopReal:PROC[self:Ref]RETURNS[REAL];PopVec:PROC[self:Ref]RETURNS[VEC];PopIdentifier:PROC[self:Ref]RETURNS[Identifier];PopVector:PROC[self:Ref]RETURNS[Vector];PopOperator:PROC[self:Ref]RETURNS[Operator];PopTransformation:PROC[self:Ref]RETURNS[Transformation];PopPixelArray:PROC[self:Ref]RETURNS[PixelArray];PopColor:PROC[self:Ref]RETURNS[Color];PopTrajectory:PROC[self:Ref]RETURNS[Trajectory];PopOutline:PROC[self:Ref]RETURNS[Outline];Thesepopanelementfromthestack.TopType:PROC[self:Ref]RETURNS[TypeCode];Pop:PROC[self:Ref];Copy:PROC[self:Ref,depth:Integer];Roll:PROC[self:Ref,depth,moveFirst:Integer];Mark:PROC[self:Ref,n:Integer];Unmark:PROC[self:Ref,n:Integer];Count:PROC[self:Ref]RETURNS[Integer];PopToActiveMark:PROC[self:Ref]RETURNS[Marker];Call:PROC[self:Ref,action:PROC,frame:Vector,pool:Pool,env:Vector];Executestheactioninanewcontextwithspecifiedframe,pool,andenvironment.sïg/îD=vï_,îx tî®ï_,ï_,uî«ï_,ï_,îStîÎï_,uï_,î1tî Bï_,ï_,uî!*ï_,ï_,î!þtî&±ï_,ï_,î'vï]„îx tî®ï]„ï]„uî«ï]„ï]„îStîÎï]„ï]„î1uî"ï]„ï]„î"Ùtî'Œï]„uï]„î'ðtî+ï]„ï]„î+dqï[Ýî‰îlîÌî!óî$–î/½î1bî6î;5î@ïZ6î\ïXŽî‰îMîQî5î�î!-î%Ùî'î)Ëî-ãî41î7¯vïS—îxtî¹ïS—ïS—uî·ïS—ïS—î^tîÚïS—ïS—î=îAîEî ûvïQðîxtîHïQðïQðuîEïQðïQðîítîhïQðïQðîÌîÏîÔî!Š vïPHîxtî2ïPHïPHuî0ïPHïPHîØtîSïPHïPHî¶îºî¾uî!uïPHïPHî".tî$ ïPHïPHî%vïN îx tîžïN ïN uî›ïN ïN îCtî¾ïN ïN î!î%î )î"àvïLùîxtîïLùïLùuîïLùïLùîÁtî=ïLùïLùî î¤î¨uî!_ïLùïLùî"2tî$xïLùïLùî$ÛvïKQîxtî£ïKQïKQuî¡ïKQïKQîItîÄïKQïKQî'î+î/uî æïKQïKQî!±tî#5ïKQïKQî#˜vïIªîx tîÒïIªïIªuîÐïIªïIªîwtîóïIªïIªîVîZî!^î$ vïHîx tî\ïHïHuîZïHïHîtî}ïHïHîàîäîèî"ŸvïFZîx tîÉïFZïFZuîÆïFZïFZîntîéïFZïFZîMîPî!Uî$ vïD³îxtîœïD³ïD³uîšïD³ïD³îBtî½ïD³ïD³î î"$î%(î'ßvïC îx tîÅïC ïC uîÃïC ïC îjtîæïC ïC îIîMî"Qî% vïAdîxtî·ïAdïAduî´ïAdïAdî\tî×ïAdïAdî:î>îBî!ùvï?¼îx tîšï?¼ï?¼uî˜ï?¼ï?¼î@tî»ï?¼ï?¼îî"î"&î$Ý vï>îx tîáï>ï>uîÞï>ï>î†tîï>ï>îdîhî mî##qï,withmarkrecoveryifnecessary.Apply:PROC[self:Ref,op:Op];Executesaprimitive.Do:PROC[self:Ref,op:Operator];ExecutesanOperator.GetInlineBody:PROC[self:Ref]RETURNS[Body];Readsabodyfromthemaster,recordingitforlateruse.SkipInlineBody:PROC[self:Ref];Skipsoverabodyinthemaster.CallInlineBody:PROC[self:Ref,frame:Vector,pool:Pool,env:Vector];Executesabodyinanewcontext.MakeCO:PROC[frame:Vector,pool:Pool,env:Vector,body:Body]RETURNS[Operator];MakeCompiledImage:PROC[frame:Vector,env:Vector,body:Body]RETURNS[Operator];END.******************************************************sïg/îD=vï_,îxtîBï_,ï_,uî@ï_,ï_,îètîcï_,ï_,îÆîÊuîÙï_,ï_,î­tî"`ï_,ï_,î"Ävï]…îxtî‡ï]…ï]…uî…ï]…ï]…î,tî¨ï]…ï]…î îîîtuî"”ï]…ï]…î#htî(ï]…ï]…î(vï[ÝîxtîPï[Ýï[ÝuîNï[Ýï[Ýîõtîqï[Ýï[ÝîÔîØîÜîŠî æî"FvïZ6îxtî ïZ6ïZ6uîïZ6ïZ6î¯tî*ïZ6ïZ6î�î‘uî ïZ6ïZ6îttî#(ïZ6ïZ6î#‹vïX�îxtî’ïX�ïX�uî�ïX�ïX�î7tî²ïX�ïX�îîîîuî"ŸïX�ïX�î#stî('ïX�ïX�î(ŠvïVçîxtî[ïVçïVçuîYïVçïVçîtî{ïVçïVçîßîâîçî•î ðî"QvïU@îxtîµïU@ïU@uî³ïU@ïU@îZtîÖïU@ïU@î9î=uîLïU@ïU@î tî ÓïU@ïU@î!6vïQñîxtî«ïQñïQñuî©ïQñïQñîQtîÌïQñïQñî/îÝî¦ uî&JïQñïQñî'tî)uïQñïQñuî*\ïQñïQñî+0tî/ãïQñïQñî0GvïPJîxtîïPJïPJuîïPJïPJî®ïPJî­tî4ïPJïPJî˜vïN£îxtîÌïN£ïN£uîÊïN£ïN£îrtîíïN£ïN£îPuî$�ïN£ïN£î%ctî*ïN£ïN£î*zvïLûîxtîÌïLûïLûuîÊïLûïLûîrtîíïLûïLûîPuî!ãïLûïLûî"·tî'jïLûïLûî'Í vïKTîx tî`ïKTïKTuî^ïKTïKTîtî�ïKTïKTîäuî vïKTïKTî!Jtî%þïKTïKTî&avïHîxtîïHïHuîïHïHî¹tî4ïHïHî˜î›î uî"1ïHïHî"Ùtî%TïHïHî%¸qïF^î‰îIî–îî î$ö î-–vïCîxtîÍïCïCuîËïCïCîrtîîïCïCîQîUîYuî#ëïCïCî$’tî'ïCïCî'qqïAhî‰îIî–îî î$öî&ñvï>îxtîÎï>ï>uîÌï>ï>îttî ïï>ï>î!Rî$Vî'Zuî+ìï>ï>î,”tî/ï>ï>î/rqïCï_ï_î>¦ vï¸îxtîï¸ï¸uîï¸ï¸î¼tî7ï¸ï¸îšî$ î(Óî+íî0¶î4­uî8¯ï¸ï¸î9ƒtî>6ï¸ï¸î>™ uïiîxtîïiïirï ìî gð6ÿüTVm$104IPBase.mesaCopyright(C)1984XeroxCorporation.Allrightsreserved.DougWyatt,December14,19844:11:09pmPSTDIRECTORYIPInterpreterUSING[Ref];IPBase:CEDARDEFINITIONS~BEGINRef:TYPE=IPInterpreter.Ref;Vectoroperators(2.4.3)ApplyGET:PROC[Ref];ApplyMAKEVECLU:PROC[Ref];ApplyMAKEVEC:PROC[Ref];ApplySHAPE:PROC[Ref];ApplyOPENVEC:PROC[Ref];ApplyGETPROP:PROC[Ref];ApplyGETP:PROC[Ref];ApplyMERGEPROP:PROC[Ref];Frame,pool,andenvironmentoperators(2.4.4)ApplyFRAME:PROC[Ref];ApplyFGET:PROC[Ref];ApplyFSET:PROC[Ref];ApplyPOOLOP:PROC[Ref];ApplyPOOL:PROC[Ref];ApplyPGET:PROC[Ref];ApplyPSET:PROC[Ref];ApplyENV:PROC[Ref];Operatoroperators(2.4.5)ApplyMAKEPOOL:PROC[Ref];ApplyNOPOOL:PROC[Ref];ApplyMAKECO:PROC[Ref];ApplyMAKESIMPLECO:PROC[Ref];ApplyDO:PROC[Ref];ApplyDOSAVE:PROC[Ref];ApplyDOSAVEALL:PROC[Ref];ApplyDOBODY:PROC[Ref];ApplyDOSAVEBODY:PROC[Ref];ApplyDOSAVEALLBODY:PROC[Ref];ApplyDOSAVESIMPLEBODY:PROC[Ref];ApplyMAKECOMPILEDIMAGE:PROC[Ref];Stackoperators(2.4.6)ApplyPOP:PROC[Ref];ApplyCOPY:PROC[Ref];sïg/îD=qï_:îx ï]’îxîÅî:î€î˜ î'î)Kî-ï[ëî‰î?î²îî!=î$ƒî)lî+·uïXœîxtïVôî‰ uîÐïVôïVôî¶tïVôîïS¥îxuî‚ïS¥ïS¥îMïS¥î tïS¥î 7uî!ÄïS¥ïS¥î"}tïPVîxuîžïPVïPVîWtïPVîîôvïMî gîâîõïI¸îxtîÃïI¸ïI¸uîÁïI¸ïI¸îitîäïI¸ïI¸îGvïHîx tî×ïHïHuîÕïHïHî|tîøïHïHî[vïFiîx tîÜïFiïFiuîÚïFiïFiî�tîýïFiïFiî`vïDÂîx tî�ïDÂïDÂuîšïDÂïDÂîBtî½ïDÂïDÂî vïCîx tî¤ïCïCuî¢ïCïCîJtîÅïCïCî(vïAsîx tî°ïAsïAsuî­ïAsïAsîUtîÐïAsïAsî3vï?Ëîxtî«ï?Ëï?Ëuî¨ï?Ëï?ËîPtîËï?Ëï?Ëî.vï>$îx tîï>$ï>$uîÿï>$ï>$î§tî"ï>$ï>$î…vï:Õî gîîtî îßî$ñï7†îx tîêï7†ï7†uîèï7†ï7†î�tî ï7†ï7†învï5Þîxtî ï5Þï5Þuî�ï5Þï5ÞîEtîÀï5Þï5Þî#vï47îxtîiï47ï47uîfï47ï47îtî‰ï47ï47îìvï2�îx tîêï2�ï2�uîèï2�ï2�î�tî ï2�ï2�învï0èîxtîãï0èï0èuîáï0èï0èîˆtîï0èï0èîgvï/@îxtî«ï/@ï/@uî¨ï/@ï/@îPtîËï/@ï/@î.vï-˜îxtîtï-˜ï-˜uîqï-˜ï-˜îtî”ï-˜ï-˜î÷vï+ñîxtîÃï+ñï+ñuîÀï+ñï+ñîhtîãï+ñï+ñîFvï(¢î gîOîaï%Sîx tîï%Sï%Suîï%Sï%SîÂtî>ï%Sï%Sî¡vï#¬îx tîï#¬ï#¬uîï#¬ï#¬î¼tî7ï#¬ï#¬îšvï"îx tî!ï"ï"uîï"ï"îÇtîBï"ï"î¥vï \îxtî™ï \ï \uî—ï \ï \î?tî!ºï \ï \î"vïµîxtîïµïµuîïµïµî­tî)ïµïµîŒvï îx tî²ï ï uî°ï ï îWtîÓï ï î6vïfîx tîtïfïfuîrïfïfîtî”ïfïfîøvï¾îx tî!ï¾ï¾uîï¾ï¾îÇtîBï¾ï¾î¥vïîxtîÌïïuîÉïïîqtîìïïî Ovïoîxtî�ïoïouî‹ïoïoî 3tî"®ïoïoî#vïÈîxtî!CïÈïÈuî"AïÈïÈî"étî%dïÈïÈî%Çvï îxtî"£ï ï uî#¡ï ï î$Itî&Äï ï î''vïÑî gîRîeï ‚îxtîÃï ‚ï ‚uîÁï ‚ï ‚îitîäï ‚ï ‚îGvï ÛîxtîÂï Ûï ÛuîÀï Ûï Ûîgtîãï Ûï ÛîFÖTVm$y105ApplyDUP:PROC[Ref];ApplyROLL:PROC[Ref];ApplyEXCH:PROC[Ref];ApplyMARK:PROC[Ref];ApplyUNMARK:PROC[Ref];ApplyUNMARK0:PROC[Ref];ApplyCOUNT:PROC[Ref];ApplyNOP:PROC[Ref];ApplyERROR:PROC[Ref];Controloperators(2.4.7)ApplyIF:PROC[Ref];ApplyIFELSE:PROC[Ref];ApplyIFCOPY:PROC[Ref];ApplyLOOP:PROC[Ref];Testoperators(2.4.8)ApplyEQ:PROC[Ref];ApplyEQNAME:PROC[Ref];ApplyGT:PROC[Ref];ApplyGE:PROC[Ref];ApplyAND:PROC[Ref];ApplyOR:PROC[Ref];ApplyNOT:PROC[Ref];ApplyTYPE:PROC[Ref];Arithmeticoperators(2.4.9)ApplyADD:PROC[Ref];ApplySUB:PROC[Ref];ApplyNEG:PROC[Ref];ApplyABS:PROC[Ref];ApplyFLOOR:PROC[Ref];ApplyCEILING:PROC[Ref];ApplyTRUNC:PROC[Ref];ApplyROUND:PROC[Ref];ApplyMUL:PROC[Ref];ApplyDIV:PROC[Ref];ApplyMOD:PROC[Ref];ApplyREM:PROC[Ref];ApplyMAX:PROC[Ref];ApplyMIN:PROC[Ref];ApplySQRT:PROC[Ref];ApplyEXP:PROC[Ref];ApplyLOG:PROC[Ref];ApplySIN:PROC[Ref];ApplyCOS:PROC[Ref];ApplyATAN:PROC[Ref];END.******************************************************sïg/îD=vï_,îxtîãï_,ï_,uîáï_,ï_,îˆtîï_,ï_,îgvï]…îxtîÁï]…ï]…uî¿ï]…ï]…îftîâï]…ï]…îEvï[ÝîxtîÖï[Ýï[ÝuîÔï[Ýï[Ýî|tî÷ï[Ýï[ÝîZvïZ6îxtî%ïZ6ïZ6uî"ïZ6ïZ6îÊtîEïZ6ïZ6î¨vïX�îx tîLïX�ïX�uîIïX�ïX�îñtîlïX�ïX�îÐvïVçîx tîüïVçïVçuîúïVçïVçî¢tîïVçïVçî€vïU@îx tîïU@ïU@uîïU@ïU@î¨tî#ïU@ïU@î†vïS™îxtîïïS™ïS™uîíïS™ïS™î•tîïS™ïS™îsvïQñîx tîÕïQñïQñuîÒïQñïQñîztîõïQñïQñîYvïN£î gîqîƒïKTîxtî5ïKTïKTuî3ïKTïKTîÛtîVïKTïKTî¹vïI­îx tîÈïI­ïI­uîÆïI­ïI­îmtîéïI­ïI­îLvïHîx tî#ïHïHuî ïHïHîÈtîCïHïHî¦vïF^îxtîãïF^ïF^uîáïF^ïF^îˆtîïF^ïF^îgvïCî gî�îŸï?ÁîxtîÛï?Áï?ÁuîÙï?Áï?Áî€tîüï?Áï?Áî_vï>îx tî*ï>ï>uî(ï>ï>îÏtîKï>ï>î®vïïAsïAsîåtîaïAsïAsîÄvï>$î gî²îR îÜï:Õîx tîï:Õï:Õuîï:Õï:Õî¨tî#ï:Õï:Õî†vï9-îx tîËï9-ï9-uîÈï9-ï9-îptîëï9-ï9-îNvï7†îx tî_ï7†ï7†uî\ï7†ï7†îtîï7†ï7†îâvï5Þîx tî´ï5Þï5Þuî²ï5Þï5ÞîYtîÕï5Þï5Þî8vï47îx tîfï47ï47uîdï47ï47î tî‡ï47ï47îêvï2�îx tîï2�ï2�uîï2�ï2�î¼tî7ï2�ï2�îšvï0èîx tîÕï0èï0èuîÓï0èï0èîztîöï0èï0èîYvï/@îx tî8ï/@ï/@uî6ï/@ï/@îÞtîYï/@ï/@î¼vï+ñîx tîï+ñï+ñuîï+ñï+ñî©tî$ï+ñï+ñîˆvï*JîxtîÑï*Jï*JuîÏï*Jï*Jîwtî!òï*Jï*Jî"Uvï(¢îx tîï(¢ï(¢uîï(¢ï(¢îÃtî>ï(¢ï(¢î¡vï&ûîxtîëï&ûï&ûuîéï&ûï&ûî�tî ï&ûï&ûî ovï#¬îx tîÉï#¬ï#¬uîÆï#¬ï#¬întîéï#¬ï#¬îLvï"îxtî0ï"ï"uî-ï"ï"îÕtîPï"ï"î³vï \îx tî©ï \ï \uî§ï \ï \îNtîÊï \ï \î-vï îxtî[ï ï uîYï ï îtî|ï ï îßvïfîxtî@ïfïfuî=ïfïfîåtî!`ïfïfî!Ãvïî gî|î±îÄïÈîx tî}ïÈïÈuî{ïÈïÈî"tîžïÈïÈîvï îx tîIï ï uîGï ï îïtîjï ï îÍvïyîx tîVïyïyuîTïyïyîütîwïyïyîÚvïÑîx tîLïÑïÑuîIïÑïÑîñtîlïÑïÑîÐvï ‚îx tîžï ‚ï ‚uî›ï ‚ï ‚îCtî¾ï ‚ï ‚î!vï Ûîxtîñï Ûï Ûuîîï Ûï Ûî–tî"ï Ûï Ûî"utTVm$107Pixelarrays(4.6)ApplyMAKEPIXELARRAY:PROC[Ref];ApplyEXTRACTPIXELARRAY:PROC[Ref];ApplyJOINPIXELARRAYS:PROC[Ref];ApplyFINDDECOMPRESSOR:PROC[Ref];Color(4.7)ApplyMAKEGRAY:PROC[Ref];ApplyFINDCOLOR:PROC[Ref];ApplyFINDCOLOROPERATOR:PROC[Ref];ApplyFINDCOLORMODELOPERATOR:PROC[Ref];ApplyMAKESAMPLEDCOLOR:PROC[Ref];ApplyMAKESAMPLEDBLACK:PROC[Ref];ApplySETGRAY:PROC[Ref];Maskoperators(4.8)ApplyMOVETO:PROC[Ref];ApplyLINETO:PROC[Ref];ApplyLINETOX:PROC[Ref];ApplyLINETOY:PROC[Ref];ApplyCURVETO:PROC[Ref];ApplyCONICTO:PROC[Ref];ApplyARCTO:PROC[Ref];ApplyMAKEOUTLINE:PROC[Ref];ApplyMASKFILL:PROC[Ref];ApplyMASKFILLPARITY:PROC[Ref];ApplyMASKSTROKE:PROC[Ref];ApplyMASKSTROKECLOSED:PROC[Ref];ApplyMASKVECTOR:PROC[Ref];ApplyMASKRECTANGLE:PROC[Ref];ApplySTARTUNDERLINE:PROC[Ref];ApplyMASKUNDERLINE:PROC[Ref];ApplyMASKTRAPEZOIDX:PROC[Ref];ApplyMASKTRAPEZOIDY:PROC[Ref];ApplyMASKPIXEL:PROC[Ref];ApplyCLIPOUTLINE:PROC[Ref];ApplyCLIPRECTANGLE:PROC[Ref];ApplyEXCLUDEOUTLINE:PROC[Ref];ApplyEXCLUDERECTANGLE:PROC[Ref];Characteroperators(4.9)ApplyFINDFONT:PROC[Ref];sïg/îD=vï_,î gîùîï[Ýîxtîï[Ýï[Ýuî ï[Ýï[Ýî Átî#<ï[Ýï[Ýî#ŸvïZ6îxtî!’ïZ6ïZ6uî"�ïZ6ïZ6î#7tî%²ïZ6ïZ6î&vïXŽîxtî1ïXŽïXŽuî .ïXŽïXŽî Ötî#QïXŽïXŽî#´vïU?îxtî!nïU?ïU?uî"lïU?ïU?î#tî%�ïU?ïU?î%òvïQðî gî<ïN¡îx tîïN¡ïN¡uîïN¡ïN¡î«tî&ïN¡ïN¡îŠvïLúîx tîtïLúïLúuîrïLúïLúîtî•ïLúïLúîøvïKRîxtî"eïKRïKRuî#cïKRïKRî$ tî&†ïKRïKRî&évïI«îxtî'ÈïI«ïI«uî(ÆïI«ïI«î)mtî+éïI«ïI«î,LvïF\îxtî"!ïF\ïF\uî#ïF\ïF\î#Ætî&AïF\ïF\î&¤vïD´îxtî!ÈïD´ïD´uî"ÆïD´ïD´î#mtî%éïD´ïD´î&LvïAeîx tî„ïAeïAeuî�ïAeïAeî)tî¤ïAeïAeîvï>î gîGîYï:Çîx tîCï:Çï:ÇuîAï:Çï:Çîétîdï:Çï:ÇîÇvï9 îx tîOï9 ï9 uîMï9 ï9 îôtîoï9 ï9 îÓvï7xîx tîMï7xï7xuîJï7xï7xîòtîmï7xï7xîÐvï5Ñîx tîBï5Ñï5Ñuî@ï5Ñï5Ñîçtîcï5Ñï5ÑîÆvï4)îx tîÇï4)ï4)uîÅï4)ï4)îltîèï4)ï4)îKvï2‚îx tî†ï2‚ï2‚uî„ï2‚ï2‚î+tî§ï2‚ï2‚î vï0Úîx tîÌï0Úï0ÚuîÊï0Úï0Úîqtîíï0Úï0ÚîPvï/3îxtîœï/3ï/3uîšï/3ï/3îBtî ½ï/3ï/3î! vï+äîx tî3ï+äï+äuî1ï+äï+äîÙtîTï+äï+äî·vï*<îxtîwï*<ï*uïXœîxtïVôî‰ uî—ïVôïVôî|tïVôîàî!|ïUMî‰ uîïUMïUMîùtïUMî]ïS¥î‰uî�ïS¥ïS¥îutïS¥îÙ ïQþî‰uîsïQþïQþîYtïQþî"½uïPVî‰ïPVîTtïPVî�uîïPVïPVî tîËïPVïPVî.ïN¯î‰ uîÐïN¯ïN¯î¶tïN¯îî"’î(Çî+ËïMî‰uî>ïMïMî$tïMîˆuîëïMïMî¿tîüïMïMî_ïI¸îxuîùïI¸ïI¸îÄïI¸î� tïHîxuîïHïHî¾ïDÁîxtî‰ïDÁïDÁuî‡ïDÁïDÁî@tïDÁîùî…uîïDÁïDÁîâtîïDÁïDÁuïCîxtîBïCïCuî@ïCïCîùtïCî²uî?ïCïCî¨tî…ïCuïCîÜtî§ïCïCï?Ëîxuî¯ï?Ëï?Ëîhtï?Ëî!î®ï>#îxuîbï>#ï>#îtï>#îÔîaï<|îxuîÎï<|ï<|î‡tï<|î?îÌï:Ôîxuîžï:Ôï:ÔîWtï:Ôîîœï7…îxuîNï7…ï7…îtï7…îÀîLï5Þîxuî®ï5Þï5Þîgtï5Þîî¬ð$ï46îx uîÊï46ï46îƒtï46î<îÉï2�îxuîÒï2�ï2�î‹tï2�îCîÐï0çîx uî*ï0çï0çîãtï0çî›î(vï-˜îxtî³ï-˜ï-˜uî°ï-˜ï-˜îXtîÓï-˜ï-˜î6î:î?îívï+ðîx tîï+ðï+ðuîï+ðï+ðîºtî6ï+ðï+ðî™î�î!¡î#Ovï(¡îx tîkï(¡ï(¡uîiï(¡ï(¡îtî‹ï(¡ï(¡îïuî ®ï(¡ï(¡î!‚tî&5ï(¡ï(¡î&™vï&úîx tîkï&úï&úuîiï&úï&úîtî‹ï&úï&úîïuî!Âï&úï&úî"–tî'Jï&úï&úî'­vï#«îxtîïï#«ï#«uîíï#«ï#«î•tîï#«ï#«îsîwî{î )uî$ýï#«ï#«î%Ñtî*„ï#«ï#«î*çvï"îx tî-ï"ï"uî+ï"ï"îÓtîNï"ï"î±îµî ¹î"guî';ï"ï"î(tî,Âï"ï"î-%vï \îx tî‡ï \ï \uî…ï \ï \î-tî¨ï \ï \î î¹î ‚î"©uî,Éï \ï \î-�tî2Pï \ï \î2³vï îxtîSï ï uîQï ï îøtîtï ï î×uî"Àï ï î#`tî'‹ï ï î(guî-ï ï î-„tî/&ï ï î0uî:ÿï ï î;ètî=uï ï uïeî¬tî3ïeïeî–vïîxtî‰ïïuî†ïïî.tî©ïïî î!î$î%Âuî*–ïïî+jtî0ïïî0� vïoîxtîtïoïouîrïoïoîtî•ïoïoîøîüîî ®uî%‚ïoïoî&Vtî+ ïoïoî+lvïÇîxtîØïÇïÇuîÕïÇïÇî}tîøïÇïÇî[î!_î$cî&uî*åïÇïÇî+¹tî0mïÇïÇî0Ð vï îxtî­ï ï uîªï ï îRtî!Íï ï î"0î%4î(9î)çuî.ºï ï î/Žtî4Bï ï î4¥ vïÑîx tîJïÑïÑuîGïÑïÑîïtîjïÑïÑï)î¬îªîÊqî#àï)ï)î$Zî%Wî*<î+àî/Áî1gî4jî7î9¦ tï ‚î¬î:qî$Oï ‚ï ‚î$Éî%Æî*«î,Oî0Ìî4Ûî7î:*tï Úî¬î qî$Êï Úï Úî%Cî&Aî,Ÿî1î5 î6vî9ô TVm$P110maxSampleValueImaxSampleValueI:Integer,--constantmaximumsamplevalue,ifmaxSampleValue=NILsamplesInterleaved:BOOL,--iftrue,samplesforonepixelarecontiguousm:Transformation,--transformationfrompixelcoordinatestomastercoordinatessamples:Vector--theactualsamples]RETURNS[PixelArray];ColorOperatorFromOperator:PROC[Operator]RETURNS[ColorOperator];OperatorFromColorOperator:PROC[ColorOperator]RETURNS[Operator];END.******************************************************sïg/îD=qï_,î¬tï]…î¬î †qî%›ï]…ï]…î&î'î,tî2Ñî7Oî;1ï[Ýî¬tïZ6î¬uî ÿïZ6ïZ6î!¸tî$*ïZ6ïZ6qî%ïZ6ïZ6î%€î&~î'Ôî*üî/þî2&î4´î8î:d tïX�î¬îÓqî èïX�ïX�î!aî"_ î+wî.´î2 î9'î:Ìî?* tïVçî¬îQqîÁïVçïVçî;î 8î"„î&”tïU@î¬uî“ïU@ïU@îgtîïU@ïU@î~ vïQñîxtîÀïQñïQñuî ½ïQñïQñî!etî#àïQñïQñî$Cuî*ƒïQñïQñî+Wtî0 ïQñïQñî0mvïPJîxtîÀïPJïPJuî ½ïPJïPJî!etî#àïPJïPJî$C uî-ßïPJïPJî.³tî3fïPJïPJî3É uïLûîxtîïLûïLûrï ìî gð6ÿÐTVm$÷111IndexAISFileFormat41Imager20ImagerColor17ImagerColorOperatorPrivate33ImagerColorPrivate32ImagerDevice74ImagerFont9ImagerFontPrivate30ImagerFrameBuffer64ImagerManhattan65ImagerMaskCache79ImagerOps27ImagerPath12ImagerPD28ImagerPDDevice76ImagerPixelArray15ImagerPixelArrayPrivate31ImagerPixelMap60ImagerPixelRow70ImagerPrivate34ImagerRasterPrivate77ImagerSampler72ImagerScanConverter67ImagerState35ImagerStroke69ImagerTransformation5ImagerTypeface29Interpress94IPBase104IPImage106IPImager109IPInterpreter97IPMaster84sïg/îD=vï\ïî grïY î g ïY î!ïW%î gïW%î!ïTªî g ïTªî!ïR/î gïR/î!ïO´î gïO´î!ïM9î g ïM9î!ïJ¾î g ïJ¾î!ïHCî gïHCî!ïEÈî gïEÈî!ïCMî gïCMî!ï@Òî gï@Òî!ï>Vî gï>Vî!ï;Ûî g ï;Ûî!ï9`î gï9`î!ï6åî g ï6åî!ï4jî gï4jî!ï1ïî gï1ïî!ï/tî g ï/tî!ï,ùî g ï,ùî!ï*~î g ï*~î!ï(î gï(î!ï%ˆî g ï%ˆî!ï# î gï# î!ï ‘î g ï ‘î!ïî g ïî!ï›î gï›î!ï î g ï î!ï¥î g ï¥î!ï*î gï*î!ï¯î gï¯î!ï4î gï4î!ï ¹î g ï ¹î!ï >î gï >î!ÿTVm$ü112PDFileFormat50PDFileReader57PDFileWriter54PrePressFontFormat46Prop40RealExtras95ShortRational96StrikeFontFormat44Vector23sïg/îD=rï_/î g ï_/î!ï\´î g ï\´î!ïZ9î g ïZ9î!ïW¾î gïW¾î!ïUCî gïUCî!ïRÈî g ïRÈî!ïPMî g ïPMî!ïMÒî gïMÒî!ïKWî gïKWî!ÿ|TVm$P ÿLAURELþæ ÿGACHAþŸ ÿ TIMESROMANþŸÿ TIMESROMANþæÿMATHþŸÿ TIMESROMANþŸÿ TIMESROMANþæÿLAURELþŸÿ HELVETICAþŸÿ TIMESROMANþŸÿ TIMESROMANþŸÿ TIMESROMANþYú, 9Cz~:$+à2T:Z> 0G P>TH[[^¸d½k—mtÓ{cƒ}‹ ù”?œ\ $¦aªo²²¶Á¼Ä‡Ê¦Ë PÕ æÞŠæ ¦ò—öãúù  0Î" >'t/ó2ê7Y<CA C{JQ\Vù\^cMf‚m5u ©€7ˆò‹’‚–œè£Dª#±Ã² ¹ ¼üÄdÆxÈZÐrÒÚxàUçRï3ò±÷ ûAÿ [ N «; À*î0Ž6k9_;ðBJ ³SW *a khr›x~0ƒq‰Y‹¨“ •—q˜j/œq™ž:¶jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3[]<>Users>Plass.pa>newimager>ImagerAndInterpressInt'Wednesday, February 13, 1985 6:11 pm PS