From yuji@cs.duke.edu Thu Feb 13 18:44:09 1997
Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by dickory.sdsu.edu (8.8.3/8.8.2) with ESMTP id SAA00168 for <papowell@dickory.sdsu.edu>; Thu, 13 Feb 1997 18:44:06 -0800 (PST)
Received: from loon.cs.duke.edu (loon.cs.duke.edu [152.3.140.85]) by duke.cs.duke.edu (8.8.5/8.6.9) with SMTP id VAA13509; Thu, 13 Feb 1997 21:44:38 -0500 (EST)
Date: Thu, 13 Feb 1997 21:44:37 -0500 (EST)
From: Yuji Shinozaki <yuji@cs.duke.edu>
To: Patrick Powell <papowell@dickory.sdsu.edu>
cc: Yuji Shinozaki <yuji@cs.duke.edu>
Subject: Re: banners
In-Reply-To: <199702140045.QAA28771@dickory.sdsu.edu>
Message-ID: <Pine.GSO.3.95q.970213213435.11177A-400000@loon.cs.duke.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-851401618-855888277=:11177"
Status: R

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-851401618-855888277=:11177
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Thu, 13 Feb 1997, Patrick Powell wrote:

> I suspected that this was the case.  I will see what I can do about this.
> Do you have the source for the filter?  If so,  I can fix it in a very
> short time...
> 
> Patrick
> 

That would increbibly nice of you.  I did discover, as you might
expect, sending a ps job even without banner printing also hangs the
queue.

I have attached the filter source (psf.c) and its Makefile and man
page (in case you need them). 

FYI, this comes from the netatalk 1.4b2 distribution (most recent),
found at ftp://terminator.rs.itd.umich.edu/unix/netatalk .

Thanks!

yuji
----
Yuji Shinozaki                Computer Systems Programmer
(919)660-6573                 Dept of Computer Science
yuji@cs.duke.edu              D125 Levine Sci Res Center
http://www.cs.duke.edu/~yuji  Durham, NC 27708


---559023410-851401618-855888277=:11177
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="psf.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.95q.970213214437.11177B@loon.cs.duke.edu>
Content-Description: psf filter src

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5MCwxOTk1IFJlZ2VudHMgb2YgVGhl
IFVuaXZlcnNpdHkgb2YgTWljaGlnYW4uDQogKiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLiBTZWUgQ09QWVJJR0hULg0KICovDQoNCi8qDQogKiBQb3N0U2NyaXB0
IEZpbHRlciwgcHNmLg0KICoNCiAqIEhhbmRsZXMgYm90aCBQb3N0U2NyaXB0
IGZpbGVzIGFuZCB0ZXh0IGZpbGVzLiAgRmlsZXMgd2l0aCB0aGUNCiAqICcl
IScgUG9zdFNjcmlwdCBoZWFkZXIgYXJlIHNlbnQgZGlyZWN0bHkgdG8gdGhl
IHByaW50ZXIsDQogKiB1bm1vZGlmaWVkLiAgVGV4dCBmaWxlcyBhcmUgZmly
c3QgY29udmVydGVkIHRvIFBvc3RTY3JpcHQsDQogKiB0aGVuIHNlbnQuICBQ
cmludGVycyBtYXkgYmUgZGlyZWN0bHkgYXR0YWNoZWQgb3Igb24gYW4gQXBw
bGVUYWxrDQogKiBuZXR3b3JrLiAgT3RoZXIgbWVkaWEgYXJlIHBvc3NpYmxl
LiAgQ3VycmVudGx5LCBwc2YgaW52b2tlcw0KICogcGFwIHRvIHNlbmQgZmls
ZXMgdG8gQXBwbGVUYWxrLWVkIHByaW50ZXJzLiAgUmVwbGFjZSB0aGUgcGFw
Kg0KICogdmFyaWFibGVzIHRvIHVzZSBhbm90aGVyIHByb2dyYW0gZm9yIGNv
bW11bmljYXRpb24uICBwc2Ygb25seQ0KICogY29udmVydHMgcGxhaW4tdGV4
dC4gIElmIGNhbGxlZCBhcyAidGYiIG9yICJkZiIsIHBzZiB3aWxsIGludm9r
ZQ0KICogYSB0cm9mZiBvciBkdmkgdG8gUG9zdFNjcmlwdCBjb252ZXJ0ZXIu
DQogKi8NCg0KI2RlZmluZSBGVUNLRUQNCg0KI2luY2x1ZGUgPHN5cy90eXBl
cy5oPg0KI2luY2x1ZGUgPHN5cy93YWl0Lmg+DQojaW5jbHVkZSA8c3lzL2Zp
bGUuaD4NCiNpbmNsdWRlIDxzeXMvc3lzbG9nLmg+DQojaW5jbHVkZSA8YXRh
bGsvcGF0aHMuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0
cmluZ3MuaD4NCiNpbmNsdWRlIDxjdHlwZS5oPg0KI2luY2x1ZGUgPHNpZ25h
bC5oPg0KDQpjaGFyCQlwc2FwYXRoW10gPSBfUEFUSF9QU0E7DQpjaGFyCQkq
cHNhYXJndltdID0geyAicHNhIiwgMCwgMCwgMCwgMCB9Ow0KDQovKg0KICog
SWYgd2UncmUgbm90IGRvaW5nIGFjY291bnRpbmcsIHdlIGp1c3QgY2FsbCBw
YXAgYXMgYmVsb3cuDQogKiBJZiB3ZSBhcmUgZG9pbmcgYWNjb3VudGluZywg
d2UgY2FsbCBwYXAgdHdpY2UuICBUaGUgZmlyc3QgdGltZSwNCiAqIHdlIGNh
bGwgaXQgd2l0aCAiLUUiIGluIGFyZyAyLCBwYWdlY291bnQucHMgaW4gYXJn
IDMsIGFuZCAiLSIgaW4NCiAqIGFyZyA0LiAgVGhlIHNlY29uZCB0aW1lLCB3
ZSBjYWxsIGl0IHdpdGggIi1jIiBpbiBhcmcgMiwgcGFnZWNvdW50LnBzDQog
KiBpbiBhcmcgMywgYW5kIDAgaW4gYXJnIDQuDQogKi8NCmNoYXIJCXBhcHBh
dGhbXSA9IF9QQVRIX1BBUDsNCmNoYXIJCSpwYXBhcmd2W10gPSB7ICJwYXAi
LCAiLXNzdGF0dXMiLCAwLCAwLCAwLCAwLCAwLCAwIH07DQoNCmNoYXIJCXJl
dnBhdGhbXSA9IF9QQVRIX1BTT1JERVI7DQpjaGFyCQkqcmV2YXJndltdID0g
eyAicHNvcmRlciIsICItZCIsIDAgfTsNCg0KY2hhcgkJKmZpbHRhcmd2W10g
PSB7IDAsIDAsIDAgfTsNCg0KY2hhcgkJaW5idWZbIDEwMjQgKiA4IF07DQpp
bnQJCWlubGVuOw0KDQpGSUxFCQkqYWNjdGZpbGUgPSBOVUxMOw0KaW50CQls
aXRlcmFsOw0KI2lmZGVmIFVTRUE0DQppbnQJCXdpZHRoID0gODAsIGxlbmd0
aCA9IDcwLCBpbmRlbnQgPSAwOw0KI2Vsc2UgVVNFQTQNCmludAkJd2lkdGgg
PSA4MCwgbGVuZ3RoID0gNjYsIGluZGVudCA9IDA7DQojZW5kaWYgVVNFQTQN
CmNoYXIJCSpwcm9nLCAqbmFtZSwgKmhvc3Q7DQoNCm1haW4oIGFjLCBhdiAp
IA0KICAgIGludAkJYWM7DQogICAgY2hhcgkqKmF2Ow0Kew0KICAgIGludAkJ
CWMsIHJjLCBpLCBjaGlsZHJlbiA9IDA7DQojaWZkZWYgRlVDS0VEDQogICAg
aW50CQkJcHNhZmlsZW5vLCBtdWx0aWNvbm4gPSAwLCB3YWl0aWRsZSA9IDA7
DQojZW5kaWYgRlVDS0VEDQogICAgaW50CQkJc3RhdHVzOw0KICAgIGV4dGVy
biBjaGFyCQkqb3B0YXJnOw0KICAgIGV4dGVybiBpbnQJCW9wdGluZDsNCg0K
ICAgIGlmICgoIHByb2cgPSByaW5kZXgoIGF2WyAwIF0sICcvJyApKSA9PSBO
VUxMICkgew0KCXByb2cgPSBhdlsgMCBdOw0KICAgIH0gZWxzZSB7DQoJcHJv
ZysrOw0KICAgIH0NCiNpZmRlZiB1bHRyaXgNCiAgICBvcGVubG9nKCBwcm9n
LCBMT0dfUElEICk7DQojZWxzZSB1bHRyaXgNCiAgICBvcGVubG9nKCBwcm9n
LCBMT0dfUElELCBMT0dfTFBSICk7DQojZW5kaWYgdWx0cml4DQoNCiAgICB3
aGlsZSAoKCBjID0gZ2V0b3B0KCBhYywgYXYsICJQOkM6RDp4Onk6bjpoOnc6
bDppOmMiICkpICE9IEVPRiApIHsNCglzd2l0Y2ggKCBjICkgew0KCWNhc2Ug
J24nIDoNCgkgICAgbmFtZSA9IG9wdGFyZzsNCgkgICAgYnJlYWs7DQoNCglj
YXNlICdoJyA6DQoJICAgIGhvc3QgPSBvcHRhcmc7DQoJICAgIGJyZWFrOw0K
DQoJY2FzZSAndycgOg0KCSAgICB3aWR0aCA9IGF0b2koIG9wdGFyZyApOw0K
I2lmZGVmIFpFUk9XSURUSA0KCSAgICAvKg0KCSAgICAgKiBTb21lIHZlcnNp
b24gb2YgbHBkIHBhc3MgMCBmb3IgdGhlIHBhZ2Ugd2lkdGguDQoJICAgICAq
Lw0KCSAgICBpZiAoIHdpZHRoID09IDAgKSB7DQoJCXdpZHRoID0gODA7DQoJ
ICAgIH0NCiNlbmRpZiBaRVJPV0lEVEgNCgkgICAgYnJlYWs7DQoNCgljYXNl
ICdsJyA6DQoJICAgIGxlbmd0aCA9IGF0b2koIG9wdGFyZyApOw0KCSAgICBi
cmVhazsNCg0KCWNhc2UgJ2knIDoNCgkgICAgaW5kZW50ID0gYXRvaSggb3B0
YXJnICk7DQoJICAgIGJyZWFrOw0KDQoJY2FzZSAnYycgOgkvKiBQcmludCBj
b250cm9sIGNoYXJzICovDQoJICAgIGxpdGVyYWwrKzsNCgkgICAgYnJlYWs7
DQoNCgljYXNlICd4JyA6DQoJY2FzZSAneScgOg0KCSAgICBicmVhazsNCgkN
CiNpZmRlZiBub3RkZWYNCglkZWZhdWx0IDoNCgkgICAgc3lzbG9nKCBMT0df
RVJSLCAiYmFkIG9wdGlvbjogJWMiLCBjICk7DQoJICAgIGV4aXQoIDIgKTsN
CiNlbmRpZiBub3RkZWYNCgl9DQogICAgfQ0KICAgIGlmICggYWMgLSBvcHRp
bmQgPiAxICkgew0KCXN5c2xvZyggTE9HX0VSUiwgIlRvbyBtYW55IGFyZ3Vt
ZW50cyIgKTsNCglleGl0KCAyICk7DQogICAgfQ0KI2lmZGVmIEZVQ0tFRA0K
ICAgIGlmICggaW5kZXgoIHByb2csICd3JyApKSB7DQoJd2FpdGlkbGUrKzsN
CiAgICB9DQogICAgaWYgKCBpbmRleCggcHJvZywgJ20nICkpIHsNCgltdWx0
aWNvbm4rKzsNCiAgICB9DQojZW5kaWYgRlVDS0VEDQoNCiAgICBzeXNsb2co
IExPR19JTkZPLCAic3RhcnRpbmcgZm9yICVzIiwgbmFtZSA/IG5hbWUgOiAi
PyIgKTsNCg0KcmVzdGFydDoNCiAgICBpZiAoKCBpbmxlbiA9IHJlYWQoIDAs
IGluYnVmLCBzaXplb2YoIGluYnVmICkpKSA8IDAgKSB7DQoJc3lzbG9nKCBM
T0dfRVJSLCAicmVhZDogJW0iICk7DQoJZXhpdCggMSApOw0KICAgIH0NCiAg
ICBpZiAoIGlubGVuID09IDAgKSB7CS8qIG5vdGhpbmcgdG8gYmUgZG9uZSAq
Lw0KCXN5c2xvZyggTE9HX0lORk8sICJkb25lIiApOw0KCWV4aXQoIDAgKTsN
CiAgICB9DQoNCiAgICAvKg0KICAgICAqIElmIHdlJ3ZlIGJlZW4gZ2l2ZW4g
YW4gYWNjb3VudGluZyBmaWxlLCBzdGFydCB0aGUgYWNjb3VudGluZw0KICAg
ICAqIHByb2Nlc3MuDQogICAgICovDQogICAgaWYgKCBvcHRpbmQgPCBhYyAp
IHsNCgkvKiBidWlsZCBhcmd1bWVudHMgKi8NCglwc2Fhcmd2WyAxIF0gPSBh
dlsgb3B0aW5kIF07DQoJcHNhYXJndlsgMiBdID0gbmFtZTsNCglwc2Fhcmd2
WyAzIF0gPSBob3N0Ow0KCWlmICgoIGMgPSBwZXhlY3YoIHBzYXBhdGgsIHBz
YWFyZ3YgKSkgPCAwICkgew0KCSAgICBzeXNsb2coIExPR19FUlIsICIlczog
JW0iLCBwc2FwYXRoICk7DQoJICAgIGV4aXQoIDIgKTsNCgl9DQoJY2hpbGRy
ZW4rKzsNCglzeXNsb2coIExPR19JTkZPLCAiYWNjb3VudGluZyB3aXRoIHBz
YVslZF0iLCBjICk7DQogICAgfQ0KDQogICAgLyoNCiAgICAgKiBDaGVjayBw
cm9nJ3MgbmFtZSB0byBkZWNpZGUgd2hhdCBwcm9ncmFtcyB0byBleGVjdXRl
Lg0KICAgICAqLw0KICAgIGlmICggc3Ryc3RyKCBwcm9nLCAicGFwIiApICE9
IE5VTEwgKSB7DQoJaWYgKCBvcHRpbmQgPCBhYyApIHsJLyogYWNjb3VudGlu
ZyAqLw0KI2lmZGVmIEZVQ0tFRA0KCSAgICBpZiAoIG11bHRpY29ubiApIHsN
CgkJcHNhZmlsZW5vID0gZ2V0ZHRhYmxlc2l6ZSgpOw0KCQlwc2FmaWxlbm8t
LTsNCgkJZHVwMiggMSwgcHNhZmlsZW5vICk7DQoNCgkJaWYgKCB3YWl0aWRs
ZSApIHsNCgkJICAgIHBhcGFyZ3ZbIDIgXSA9ICItdyI7DQoJCSAgICBwYXBh
cmd2WyAzIF0gPSAiLWMiOw0KCQkgICAgcGFwYXJndlsgNCBdID0gIi1FIjsN
CgkJICAgIHBhcGFyZ3ZbIDUgXSA9IF9QQVRIX1BBR0VDT1VOVDsNCgkJICAg
IHBhcGFyZ3ZbIDYgXSA9ICItIjsNCgkJICAgIHBhcGFyZ3ZbIDcgXSA9IDA7
DQoJCX0gZWxzZSB7DQoJCSAgICBwYXBhcmd2WyAyIF0gPSAiLWMiOw0KCQkg
ICAgcGFwYXJndlsgMyBdID0gIi1FIjsNCgkJICAgIHBhcGFyZ3ZbIDQgXSA9
IF9QQVRIX1BBR0VDT1VOVDsNCgkJICAgIHBhcGFyZ3ZbIDUgXSA9ICItIjsN
CgkJICAgIHBhcGFyZ3ZbIDYgXSA9IDA7DQoJCX0NCgkgICAgfSBlbHNlIHsN
CgkJLyoNCgkJICogVGhpcyBpcyBob3cgaXQgc2hvdWxkIGJlIGRvbmUuDQoJ
CSAqLw0KCQlwYXBhcmd2WyAyIF0gPSAiLWMiOw0KCQlwYXBhcmd2WyAzIF0g
PSBfUEFUSF9QQUdFQ09VTlQ7DQoJCXBhcGFyZ3ZbIDQgXSA9ICItIjsNCgkJ
cGFwYXJndlsgNSBdID0gX1BBVEhfUEFHRUNPVU5UOw0KCQlwYXBhcmd2WyA2
IF0gPSAwOw0KCSAgICB9DQojZW5kaWYgRlVDS0VEDQoJfSBlbHNlIHsNCgkg
ICAgcGFwYXJndlsgMiBdID0gIi1jIjsNCgkgICAgcGFwYXJndlsgMyBdID0g
Ii1FIjsNCgkgICAgcGFwYXJndlsgNCBdID0gMDsNCgl9DQoNCglpZiAoKCBj
ID0gcGV4ZWN2KCBwYXBwYXRoLCBwYXBhcmd2ICkpIDwgMCApIHsNCgkgICAg
c3lzbG9nKCBMT0dfRVJSLCAiJXM6ICVtIiwgcGFwcGF0aCApOw0KCSAgICBl
eGl0KCAyICk7DQoJfQ0KCWNoaWxkcmVuKys7DQoJc3lzbG9nKCBMT0dfSU5G
TywgInNlbmRpbmcgdG8gcGFwWyVkXSIsIGMgKTsNCiAgICB9DQoNCiAgICAv
Kg0KICAgICAqIE1pZ2h0IGJlIGEgZ29vZCBpZGVhIHRvIGhhdmUgYm90aCBh
ICJmb3J3IiBhbmQgYSAicmV2Iiwgc28gdGhhdA0KICAgICAqIHJldmVyc2Vk
IGRvY3VtZW50cyBjYW4gYmUgcmVvcmRlcmVkIGZvciB0aGUgcHJpbnRpbmcg
ZGV2aWNlLg0KICAgICAqLw0KICAgIGlmICggc3Ryc3RyKCBwcm9nLCAicmV2
IiApICE9IE5VTEwgKSB7DQoJaWYgKCggYyA9IHBleGVjdiggcmV2cGF0aCwg
cmV2YXJndiApKSA8IDAgKSB7DQoJICAgIHN5c2xvZyggTE9HX0VSUiwgIiVz
OiAlbSIsIHJldnBhdGggKTsNCgkgICAgZXhpdCggMiApOw0KCX0NCglzeXNs
b2coIExPR19JTkZPLCAic2VuZGluZyB0byByZXZbJWRdIiwgYyApOw0KCWNo
aWxkcmVuKys7DQogICAgfQ0KDQogICAgLyoNCiAgICAgKiBJbnZva2UgYW4g
ZXh0ZXJuYWwgKHNjcmlwdCkgZmlsdGVyIHRvIHByb2R1Y2UgUG9zdFNjcmlw
dCBmcm9tDQogICAgICogbm9uLXRleHQgaW5wdXQuDQogICAgICovDQogICAg
aWYgKCAqcHJvZyAhPSAnaScgJiYgKnByb2cgIT0gJ28nICYmICooIHByb2cg
KyAxICkgPT0gJ2YnICkgew0KCWZpbHRhcmd2WyAwIF0gPSBmaWx0YXJndlsg
MSBdID0gcHJvZzsNCglpZiAoKCBjID0gcGV4ZWN2KCBfUEFUSF9QU0ZJTFRF
UiwgZmlsdGFyZ3YgKSkgPCAwICkgew0KCSAgICBzeXNsb2coIExPR19FUlIs
ICIlczogJW0iLCBfUEFUSF9QU0ZJTFRFUiApOw0KCSAgICBleGl0KCAyICk7
DQoJfQ0KCXN5c2xvZyggTE9HX0lORk8sICJleHRlcm5hbCBmaWx0ZXJbJWRd
IiwgYyApOw0KCWNoaWxkcmVuKys7DQoJcmMgPSBjb3B5aW8oKTsJCS8qIGV4
dGVybmFsIGZpbHRlciAqLw0KICAgIH0gZWxzZSB7DQoJaWYgKCBpbmxlbiA+
PSAyICYmIGluYnVmWyAwIF0gPT0gJyUnICYmIGluYnVmWyAxIF0gPT0gJyEn
ICkgew0KCSAgICBzeXNsb2coIExPR19JTkZPLCAiUG9zdFNjcmlwdCIgKTsN
CgkgICAgcmMgPSBjb3B5aW8oKTsJLyogUG9zdFNjcmlwdCAqLw0KCX0gZWxz
ZSB7DQoJICAgIHN5c2xvZyggTE9HX0lORk8sICJzdHJhaWdodCB0ZXh0IiAp
Ow0KCSAgICByYyA9IHRleHRwcygpOwkvKiBzdHJhaWdodCB0ZXh0ICovDQoJ
fQ0KICAgIH0NCg0KI2lmZGVmIEZVQ0tFRA0KICAgIGlmICggc3Ryc3RyKCBw
cm9nLCAicGFwIiApICE9IE5VTEwgJiYgb3B0aW5kIDwgYWMgJiYgbXVsdGlj
b25uICkgew0KCWR1cDIoIHBzYWZpbGVubywgMSApOw0KCWNsb3NlKCBwc2Fm
aWxlbm8gKTsNCglwYXBhcmd2WyAyIF0gPSAiLWMiOw0KCWlmICggd2FpdGlk
bGUgKSB7DQoJICAgIHBhcGFyZ3ZbIDMgXSA9ICItdyI7DQoJICAgIHBhcGFy
Z3ZbIDQgXSA9IF9QQVRIX1BBR0VDT1VOVDsNCgkgICAgcGFwYXJndlsgNSBd
ID0gMDsNCgl9IGVsc2Ugew0KCSAgICBwYXBhcmd2WyAzIF0gPSBfUEFUSF9Q
QUdFQ09VTlQ7DQoJICAgIHBhcGFyZ3ZbIDQgXSA9IDA7DQoJfQ0KDQoJaWYg
KCggYyA9IHBleGVjdiggcGFwcGF0aCwgcGFwYXJndiApKSA8IDAgKSB7DQoJ
ICAgIHN5c2xvZyggTE9HX0VSUiwgIiVzOiAlbSIsIHBhcHBhdGggKTsNCgkg
ICAgZXhpdCggMiApOw0KCX0NCgljaGlsZHJlbisrOw0KCXN5c2xvZyggTE9H
X0lORk8sICJwYWdlY291bnQgd2l0aCBwYXBbJWRdIiwgYyApOw0KICAgIH0N
CiNlbmRpZiBGVUNLRUQNCg0KICAgIGlmICggY2hpbGRyZW4gKSB7DQoJY2xv
c2UoIDEgKTsNCiAgICB9DQogICAgd2hpbGUgKCBjaGlsZHJlbiApIHsNCglp
ZiAoKCBjID0gd2FpdDMoICZzdGF0dXMsIDAsIDAgKSkgPCAwICkgew0KCSAg
ICBzeXNsb2coIExPR19FUlIsICJ3YWl0MzogJW0iICk7DQoJICAgIGV4aXQo
IDEgKTsNCgl9DQoJaWYgKCBXSUZFWElURUQoIHN0YXR1cyApKSB7DQojaWZu
ZGVmIFdFWElUU1RBVFVTDQojZGVmaW5lIFdFWElUU1RBVFVTKHgpCSgoeCku
d19zdGF0dXMpDQojZW5kaWYgV0VYSVRTVEFUVVMNCgkgICAgaWYgKCBXRVhJ
VFNUQVRVUyggc3RhdHVzICkgIT0gMCApIHsNCgkJc3lzbG9nKCBMT0dfRVJS
LCAiJWQgZGllZCB3aXRoICVkIiwgYywgV0VYSVRTVEFUVVMoIHN0YXR1cyAp
KTsNCgkJZXhpdCggV0VYSVRTVEFUVVMoIHN0YXR1cyApKTsNCgkgICAgfSBl
bHNlIHsNCgkJc3lzbG9nKCBMT0dfSU5GTywgIiVkIGRvbmUiLCBjICk7DQoJ
CWNoaWxkcmVuLS07DQoJICAgIH0NCgl9IGVsc2Ugew0KCSAgICBzeXNsb2co
IExPR19FUlIsICIlZCBkaWVkIGJhZGx5IiwgYyApOw0KCSAgICBleGl0KCAx
ICk7DQoJfQ0KICAgIH0NCg0KICAgIGlmICggcmMgPT0gMyApIHsNCglzeXNs
b2coIExPR19JTkZPLCAicGF1c2luZyIgKTsNCglraWxsKCBnZXRwaWQoKSwg
U0lHU1RPUCApOw0KCXN5c2xvZyggTE9HX0lORk8sICJyZXN0YXJ0aW5nIiAp
Ow0KCWdvdG8gcmVzdGFydDsNCiAgICB9DQoNCiAgICBzeXNsb2coIExPR19J
TkZPLCAiZG9uZSIgKTsNCiAgICBleGl0KCByYyApOw0KfQ0KDQpjb3B5aW8o
KQ0Kew0KICAgIGRvIHsNCglpZiAoIHdyaXRlKCAxLCBpbmJ1ZiwgaW5sZW4g
KSAhPSBpbmxlbiApIHsNCgkgICAgc3lzbG9nKCBMT0dfRVJSLCAid3JpdGU6
ICVtIiApOw0KCSAgICByZXR1cm4oIDEgKTsNCgl9DQogICAgfSB3aGlsZSAo
KCBpbmxlbiA9IHJlYWQoIDAsIGluYnVmLCBzaXplb2YoIGluYnVmICkpKSA+
IDAgKTsNCiAgICBpZiAoIGlubGVuIDwgMCApIHsNCglzeXNsb2coIExPR19F
UlIsICJyZWFkOiAlbSIgKTsNCglyZXR1cm4oIDEgKTsNCiAgICB9DQogICAg
cmV0dXJuKCAwICk7DQp9DQoNCmNoYXIJCSpmb250ID0gIkNvdXJpZXIiOw0K
aW50CQlwb2ludCA9IDExOw0KI2lmZGVmIFVTRUE0DQpmbG9hdAkJd2luID0g
OC4yNywgaGluID0gMTEuNjk7DQojZWxzZSBVU0VBNA0KZmxvYXQJCXdpbiA9
IDguNSwgaGluID0gMTE7DQojZW5kaWYgVVNFQTQNCg0KY2hhcgkJcHNwcm9b
XSA9ICJcDQovR1NWIHNhdmUgZGVmCQkJCQkJJSBnbG9iYWwgVk1cblwNCi9T
UCB7XG5cDQoJL1NWIHNhdmUgZGVmCQkJCQklIHNhdmUgdm1zdGF0ZVxuXA0K
CWR1cCAvSCBleGNoIGRlZgkJCQkJJSBzYXZlIGZvbnQgaGVpZ2h0XG5cDQoJ
ZXhjaCBmaW5kZm9udCBleGNoIHNjYWxlZm9udCBzZXRmb250CQklIHNlbGVj
dCBmb250XG5cDQoJKCApIHN0cmluZ3dpZHRoIHBvcCAvVyBleGNoIGRlZgkJ
CSUgc2F2ZSBmb250IHdpZHRoXG5cDQoJNzIgbXVsIGV4Y2ggMiBzdWIgSCBt
dWwgYWRkIDIgZGl2IC9DWSBleGNoIGRlZgklIHNhdmUgc3RhcnQgWVxuXA0K
CTcyIG11bCBleGNoIDEgYWRkIFcgbXVsIHN1YiAyIGRpdlxuXA0KCQlleGNo
IFcgbXVsIDIgZGl2IGFkZCAvQ1ggZXhjaCBkZWYJJSBzYXZlIHN0YXJ0IFhc
blwNCglDWCBDWSBtb3ZldG8JCQkJCSUgbWFrZSBjdXJyZW50IHBvaW50XG5c
DQp9IGJpbmQgZGVmXG5cDQovUyAvc2hvdyBsb2FkIGRlZlxuXA0KL05MIHsg
Q1ggQ1kgSCBzdWIgZHVwIC9DWSBleGNoIGRlZiBtb3ZldG8gfSBiaW5kIGRl
ZlxuXA0KL0NSIHsgQ1ggQ1kgbW92ZXRvIH0gYmluZCBkZWZcblwNCi9CIHsg
VyBuZWcgMCBybW92ZXRvfWJpbmQgZGVmXG5cDQovVCB7IFcgbXVsIDAgcm1v
dmV0b31iaW5kIGRlZlxuXA0KL0VQIHsgU1YgcmVzdG9yZSBzaG93cGFnZSB9
IGJpbmQgZGVmXG5cDQolJUVuZFByb2xvZ1xuIjsNCg0KdGV4dHBzKCkNCnsN
CiAgICBpbnQJCXN0YXRlID0gMCwgbGluZSA9IDAsIGNvbCA9IDAsIG5wYWdl
cyA9IDAsIHJjOw0KICAgIGNoYXIJKnAsICplbmQ7DQoNCiNkZWZpbmUgU1Rf
QVZBSUwJCSgxPDwwKQ0KI2RlZmluZSBTVF9DT05UUk9MCQkoMTw8MSkNCiNk
ZWZpbmUgU1RfUEFHRQkJCSgxPDwyKQ0KICAgIC8qDQogICAgICogY29udmVy
dCB0ZXh0IGxpbmVzIHRvIHBvc3RzY3JpcHQuDQogICAgICogQSBncnVuZ3kg
bGl0dGxlIHN0YXRlIG1hY2hpbmUuIElmIEkgd2FzIG1vcmUgY3JlYXRpdmUs
IEkgY291bGQNCiAgICAgKiBwcm9iYWJseSB0aGluayBvZiBhIGJldHRlciB3
YXkgb2YgZG9pbmcgdGhpcy4uLg0KICAgICAqLw0KICAgIGRvIHsNCglwID0g
aW5idWY7DQoJZW5kID0gaW5idWYgKyBpbmxlbjsNCgl3aGlsZSAoIHAgPCBl
bmQgKSB7DQoJICAgIGlmICgoIHN0YXRlICYgU1RfUEFHRSApID09IDAgJiYg
KnAgIT0gJ1wwMzEnICYmICpwICE9ICdcMDAxJyApIHsNCgkJaWYgKCBucGFn
ZXMgPT0gMCApIHsNCgkJICAgIHByaW50ZiggIiUlIVBTLUFkb2JlLTIuMFxu
JSUlJVBhZ2VzOiAoYXRlbmQpXG4iICk7DQoJCSAgICBwcmludGYoICIlJSUl
RG9jdW1lbnRGb250czogJXNcbiIsIGZvbnQgKTsNCgkJICAgIGZmbHVzaCgg
c3Rkb3V0ICk7DQoNCgkJICAgIC8qIG91dHB1dCBwb3N0c2NyaXB0IHByb2xv
Z3VlOiAqLw0KCQkgICAgaWYgKCB3cml0ZSggMSwgcHNwcm8sIHNpemVvZigg
cHNwcm8gKSAtIDEgKSAhPQ0KCQkJICAgIHNpemVvZiggcHNwcm8gKSAtIDEg
KSB7DQoJCQlzeXNsb2coIExPR19FUlIsICJ3cml0ZSBwcm9sb2d1ZTogJW0i
ICk7DQoJCQlyZXR1cm4oIDEgKTsNCgkJICAgIH0NCgkJICAgIGlmICggbmFt
ZSAmJiBob3N0ICkgew0KCQkJcHJpbnRmKCAic3RhdHVzZGljdCAvam9ibmFt
ZSAoJXNAJXMpIHB1dFxuIiwgbmFtZSwNCgkJCQlob3N0ICk7DQoJCSAgICB9
DQoJCX0NCg0KCQlwcmludGYoICIlJSUlUGFnZTogPyAlZFxuIiwgKytucGFn
ZXMgKTsNCgkJcHJpbnRmKCAiJWQgJWQgJWYgJWQgJWYgLyVzICVkIFNQXG4i
LA0KCQkJaW5kZW50LCB3aWR0aCwgd2luLCBsZW5ndGgsIGhpbiwgZm9udCwg
cG9pbnQgKTsNCgkJc3RhdGUgfD0gU1RfUEFHRTsNCgkgICAgfQ0KCSAgICBp
ZiAoIHN0YXRlICYgU1RfQ09OVFJPTCAmJiAqcCAhPSAnXDAwMScgKSB7DQoJ
CWlmICggIWxpdGVyYWwgKSB7DQoJCSAgICBmcHJpbnRmKCBzdGRlcnIsICJ1
bnByaW50YWJsZSBjaGFyYWN0ZXIgKDB4JXgpIVxuIiwNCgkJCSAgICAodW5z
aWduZWQgY2hhcikwMzEgKTsNCgkJICAgIHJldHVybiggMiApOwkvKiBUb3Nz
IGpvYiAqLw0KCQl9DQoJCXByaW50ZiggIlxcJW8iLCAodW5zaWduZWQgY2hh
cikwMzEgKTsNCgkJc3RhdGUgJj0gflNUX0NPTlRST0w7DQoJCWNvbCsrOw0K
CSAgICB9DQoNCgkgICAgc3dpdGNoICggKnAgKSB7DQoJICAgIGNhc2UgJ1xu
JyA6CQkvKiBlbmQgb2YgbGluZSAqLw0KCQlpZiAoIHN0YXRlICYgU1RfQVZB
SUwgKSB7DQoJCSAgICBwcmludGYoICIpU1xuIiApOw0KCQkgICAgc3RhdGUg
Jj0gflNUX0FWQUlMOw0KCQl9DQoJCXByaW50ZiggIk5MXG4iICk7DQoJCWxp
bmUrKzsNCgkJY29sID0gMDsNCgkJaWYgKCBsaW5lID49IGxlbmd0aCApIHsN
CgkJICAgIHByaW50ZiggIkVQXG4iICk7DQoJCSAgICBzdGF0ZSAmPSB+U1Rf
UEFHRTsNCgkJICAgIGxpbmUgPSAwOw0KCQl9DQoJCWJyZWFrOw0KDQoJICAg
IGNhc2UgJ1xyJyA6CQkvKiBjYXJyaWFnZSByZXR1cm4gKGZvciBvdmVydHlw
aW5nKSAqLw0KCQlpZiAoIHN0YXRlICYgU1RfQVZBSUwgKSB7DQoJCSAgICBw
cmludGYoICIpUyBDUlxuIiApOw0KCQkgICAgc3RhdGUgJj0gflNUX0FWQUlM
Ow0KCQl9DQoJCWNvbCA9IDA7DQoJCWJyZWFrOw0KDQoJICAgIGNhc2UgJ1xm
JyA6CQkvKiBmb3JtIGZlZWQgKi8NCgkJaWYgKCBzdGF0ZSAmIFNUX0FWQUlM
ICkgew0KCQkgICAgcHJpbnRmKCAiKVNcbiIgKTsNCgkJICAgIHN0YXRlICY9
IH5TVF9BVkFJTDsNCgkJfQ0KCQlwcmludGYoICJFUFxuIiApOw0KCQlzdGF0
ZSAmPSB+U1RfUEFHRTsNCgkJbGluZSA9IDA7DQoJCWNvbCA9IDA7DQoJCWJy
ZWFrOw0KDQoJICAgIGNhc2UgJ1xiJyA6CQkvKiBiYWNrc3BhY2UgKi8NCgkJ
Lyogc2hvdyBsaW5lLCBiYWNrIHVwIG9uZSBjaGFyYWN0ZXIgKi8NCgkJaWYg
KCBzdGF0ZSAmIFNUX0FWQUlMICkgew0KCQkgICAgcHJpbnRmKCAiKVNcbiIg
KTsNCgkJICAgIHN0YXRlICY9IH5TVF9BVkFJTDsNCgkJfQ0KCQlwcmludGYo
ICJCXG4iICk7DQoJCWNvbC0tOw0KCQlicmVhazsNCg0KCSAgICBjYXNlICdc
dCcgOgkJLyogdGFiICovDQoJCWlmICggc3RhdGUgJiBTVF9BVkFJTCApIHsN
CgkJICAgIHByaW50ZiggIilTXG4iICk7DQoJCSAgICBzdGF0ZSAmPSB+U1Rf
QVZBSUw7DQoJCX0NCgkJcHJpbnRmKCAiJWQgVFxuIiwgOCAtICggY29sICUg
OCApKTsNCgkJY29sICs9IDggLSAoIGNvbCAlIDggKTsNCgkJYnJlYWs7DQoN
CgkgICAgLyoNCgkgICAgICogYmVnaW5uaW5nIG9mIGxwciBjb250cm9sIHNl
cXVlbmNlDQoJICAgICAqLw0KCSAgICBjYXNlICdcMDMxJyA6DQoJCXN0YXRl
IHw9IFNUX0NPTlRST0w7DQoJCWJyZWFrOw0KDQoJICAgIGNhc2UgJ1wwMDEn
IDoJLyogbHByIGNvbnRyb2wgc2VxdWVuY2UgKi8NCgkJaWYgKCBzdGF0ZSAm
IFNUX0NPTlRST0wgKSB7DQoJCSAgICByYyA9IDM7DQoJCSAgICBnb3RvIG91
dDsNCgkJfQ0KCQkvKiBGQUxMVEhST1VHSCAqLw0KDQoJICAgIGNhc2UgJ1xc
JyA6DQoJICAgIGNhc2UgJyknIDoNCgkgICAgY2FzZSAnKCcgOg0KCQlpZiAo
KCBzdGF0ZSAmIFNUX0FWQUlMICkgPT0gMCApIHsNCgkJICAgIHByaW50Zigg
IigiICk7DQoJCSAgICBzdGF0ZSB8PSBTVF9BVkFJTDsNCgkJfQ0KCQlwdXRj
aGFyKCAnXFwnICk7DQoJCS8qIEZBTExUSFJPVUdIICovDQoNCgkgICAgZGVm
YXVsdCA6DQoJCWlmICgoIHN0YXRlICYgU1RfQVZBSUwgKSA9PSAwICkgew0K
CQkgICAgcHJpbnRmKCAiKCIgKTsNCgkJICAgIHN0YXRlIHw9IFNUX0FWQUlM
Ow0KCQl9DQoJCWlmICggIWlzYXNjaWkoICpwICkgfHwgIWlzcHJpbnQoICpw
ICkpIHsNCgkJICAgIGlmICggIWxpdGVyYWwgKSB7DQoJCQlmcHJpbnRmKCBz
dGRlcnIsICJ1bnByaW50YWJsZSBjaGFyYWN0ZXIgKDB4JXgpIVxuIiwNCgkJ
CQkodW5zaWduZWQgY2hhcikqcCApOw0KCQkJcmV0dXJuKCAyICk7CS8qIFRv
c3Mgam9iICovDQoJCSAgICB9DQoJCSAgICBwcmludGYoICJcXCVvIiwgKHVu
c2lnbmVkIGNoYXIpKnAgKTsNCgkJfSBlbHNlIHsNCgkJICAgIHB1dGNoYXIo
ICpwICk7DQoJCX0NCgkJY29sKys7DQoJCWJyZWFrOw0KCSAgICB9DQoJcCsr
Ow0KCX0NCiAgICB9IHdoaWxlICgoIGlubGVuID0gcmVhZCggMCwgaW5idWYs
IHNpemVvZiggaW5idWYgKSkpID4gMCApOw0KICAgIGlmICggaW5sZW4gPCAw
ICkgew0KCXN5c2xvZyggTE9HX0VSUiwgInJlYWQ6ICVtIiApOw0KCXJldHVy
biggMSApOw0KICAgIH0NCiAgICByYyA9IDA7DQoNCm91dDoNCiAgICBpZiAo
IHN0YXRlICYgU1RfQVZBSUwgKSB7DQoJcHJpbnRmKCAiKVNcbiIgKTsNCglz
dGF0ZSAmPSB+U1RfQVZBSUw7DQogICAgfQ0KDQogICAgaWYgKCBzdGF0ZSAm
IFNUX1BBR0UgKSB7DQoJcHJpbnRmKCAiRVBcbiIgKTsNCglzdGF0ZSAmPSB+
U1RfUEFHRTsNCiAgICB9DQoNCiAgICBpZiAoIG5wYWdlcyA+IDAgKSB7DQoJ
cHJpbnRmKCAiJSUlJVRyYWlsZXJcbkdTViByZXN0b3JlXG4lJSUlUGFnZXM6
ICVkXG4lJSUlRU9GXG4iLCBucGFnZXMgKTsNCglmZmx1c2goIHN0ZG91dCAp
Ow0KICAgIH0NCg0KICAgIHJldHVybiggcmMgKTsNCn0NCg0KLyoNCiAqIElu
dGVyZmFjZSB0byBwaXBlIGFuZCBleGVjLCBmb3Igc3RhcnRpbmcgY2hpbGRy
ZW4gaW4gcGlwZWxpbmVzLg0KICoNCiAqIE1hbmlwdWxhdGVzIGZpbGUgZGVz
Y3JpcHRvcnMgMCwgMSwgYW5kIDIsIHN1Y2ggdGhhdCB0aGUgbmV3IGNoaWxk
DQogKiBpcyByZWFkaW5nIGZyb20gdGhlIHBhcmVudCdzIG91dHB1dC4NCiAq
Lw0KcGV4ZWN2KCBwYXRoLCBhcmd2ICkNCiAgICBjaGFyCSpwYXRoLCAqYXJn
dltdOw0Kew0KICAgIGludAkJZmRbIDIgXSwgYzsNCg0KICAgIGlmICggcGlw
ZSggZmQgKSA8IDAgKSB7DQoJcmV0dXJuKCAtMSApOw0KICAgIH0NCg0KICAg
IHN3aXRjaCAoIGMgPSB2Zm9yaygpKSB7DQogICAgY2FzZSAtMSA6DQoJcmV0
dXJuKCAtMSApOw0KCS8qIE5PVFJFQUNIRUQgKi8NCg0KICAgIGNhc2UgMCA6
DQoJaWYgKCBjbG9zZSggZmRbIDEgXSApIDwgMCApIHsNCgkgICAgcmV0dXJu
KCAtMSApOw0KCX0NCglpZiAoIGR1cDIoIGZkWyAwIF0sIDAgKSA8IDAgKSB7
DQoJICAgIHJldHVybiggLTEgKTsNCgl9DQoJaWYgKCBjbG9zZSggZmRbIDAg
XSApIDwgMCApIHsNCgkgICAgcmV0dXJuKCAtMSApOw0KCX0NCglleGVjdigg
cGF0aCwgYXJndiApOw0KCXJldHVybiggLTEgKTsNCgkvKiBOT1RSRUFDSEVE
ICovDQoNCiAgICBkZWZhdWx0IDoNCglpZiAoIGNsb3NlKCBmZFsgMCBdICkg
PCAwICkgew0KCSAgICByZXR1cm4oIC0xICk7DQoJfQ0KCWlmICggZHVwMigg
ZmRbIDEgXSwgMSApIDwgMCApIHsNCgkgICAgcmV0dXJuKCAtMSApOw0KCX0N
CglpZiAoIGNsb3NlKCBmZFsgMSBdICkgPCAwICkgew0KCSAgICByZXR1cm4o
IC0xICk7DQoJfQ0KCXJldHVybiggYyApOw0KICAgIH0NCn0NCg==
---559023410-851401618-855888277=:11177
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.95q.970213214437.11177C@loon.cs.duke.edu>
Content-Description: Makefile

QUxMPQlhZnBkIGF0YWxrZCBwYXBkIHBzZg0KVEFHU0ZJTEU9dGFncw0KQ0M9
Y2MNCklOU1RBTEw9CWluc3RhbGwNCg0KYWxsOgkke0FMTH0NCg0KJHtBTEx9
OiBGUkMNCgljZCAkQDsgJHtNQUtFfSAke01GTEFHU30gQ0M9IiR7Q0N9IiBc
DQoJICAgIEFERExJQlM9IiR7QURETElCU30iIERFRlM9IiR7REVGU30iIE9Q
VE9QVFM9IiR7T1BUT1BUU30iIFwNCgkgICAgU0JJTkRJUj0iJHtTQklORElS
fSIgQklORElSPSIke0JJTkRJUn0iIFJFU0RJUj0iJHtSRVNESVJ9IiBcDQoJ
ICAgIEVUQ0RJUj0iJHtFVENESVJ9IiBMSUJESVI9IiR7TElCRElSfSIgSU5D
RElSPSIke0lOQ0RJUn0iIFwNCgkgICAgREVTVERJUj0iJHtERVNURElSfSIg
QUZTRElSPSIke0FGU0RJUn0iIEtSQkRJUj0iJHtLUkJESVJ9Ig0KDQpGUkM6
DQoNCnRhZ3M6DQoJZm9yIGkgaW4gJHtBTEx9OyBkbyBcDQoJICAgIChjZCAk
JGk7ICR7TUFLRX0gJHtNRkxBR1N9IERFRlM9IiR7REVGU30iIFwNCgkJVEFH
U0ZJTEU9Li4vJHtUQUdTRklMRX0gdGFncyk7IFwNCglkb25lDQoNCmluc3Rh
bGw6DQoJLW1rZGlyICR7RVRDRElSfQ0KCWZvciBpIGluICR7QUxMfTsgXA0K
CSAgICBkbyAoY2QgJCRpOyAke01BS0V9ICR7TUZMQUdTfSBDQz0iJHtDQ30i
IFwNCgkJQURETElCUz0iJHtBRERMSUJTfSIgREVGUz0iJHtERUZTfSIgT1BU
T1BUUz0iJHtPUFRPUFRTfSIgXA0KCSAgICAgICAgU0JJTkRJUj0iJHtTQklO
RElSfSIgQklORElSPSIke0JJTkRJUn0iIFJFU0RJUj0iJHtSRVNESVJ9IiBc
DQoJICAgICAgICBFVENESVI9IiR7RVRDRElSfSIgTElCRElSPSIke0xJQkRJ
Un0iIElOQ0RJUj0iJHtJTkNESVJ9IiBcDQoJCURFU1RESVI9IiR7REVTVERJ
Un0iIEFGU0RJUj0iJHtBRlNESVJ9IiBLUkJESVI9IiR7S1JCRElSfSIgXA0K
CQlJTlNUQUxMPSIke0lOU1RBTEx9IiBpbnN0YWxsKTsgXA0KCWRvbmUNCg0K
Y2xlYW46DQoJZm9yIGkgaW4gJHtBTEx9OyBcDQoJICAgIGRvIChjZCAkJGk7
ICR7TUFLRX0gJHtNRkxBR1N9IGNsZWFuKTsgXA0KCWRvbmUNCg0KZGVwZW5k
Og0KCWZvciBpIGluICR7QUxMfTsgXA0KCSAgICBkbyAoY2QgJCRpOyAke01B
S0V9ICR7TUZMQUdTfSBERUZTPSR7REVGU30gZGVwZW5kKTsgXA0KCWRvbmUN
Cg==
---559023410-851401618-855888277=:11177
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="psf.8"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.95q.970213214437.11177D@loon.cs.duke.edu>
Content-Description: man page

LlRIIFBTRiA4ICIxNyBEZWMgMTk5MSIgIm5ldGF0YWxrIDEuMiINCi5TSCBO
QU1FDQpwc2YgXC0gUG9zdFNjcmlwdCBmaWx0ZXINCi5TSCBTWU5PUFNJUw0K
LkIgcHNmDQpbDQouQiAtbg0KLkkgbmFtZQ0KXSBbDQouQiAtaA0KLkkgaG9z
dA0KXSBbDQouQiAtdw0KLkkgd2lkdGgNCl0gWw0KLkIgLWwNCi5JIGxlbmd0
aA0KXSBbDQouQiAtaQ0KLkkgaW5kZW50DQpdIFsNCi5CIC1jDQpdDQouU0gg
REVTQ1JJUFRJT04NCi5CIHBzZg0KaXMgYW4NCi5CIGxwZA0KZmlsdGVyIGZv
ciBQb3N0U2NyaXB0IHByaW50aW5nLg0KLkIgcHNmDQppbnRlcnByZXRzIHRo
ZSBuYW1lIGl0IHdhcyBjYWxsZWQgd2l0aCB0byBkZXRlcm1pbmUgd2hhdCBm
aWx0ZXJzIHRvDQppbnZva2UuIEZpcnN0LCBpZiB0aGUgc3RyaW5nIGBgcGFw
JycgYXBwZWFycyBhbnl3aGVyZSBpbiB0aGUgbmFtZSwNCi5CIHBzZg0KaW52
b2tlcw0KLkIgcGFwDQp0byB0YWxrIHRvIGEgcHJpbnRlciB2aWEgQXBwbGVU
YWxrLiBOZXh0LCBpZiB0aGUgc3RyaW5nIGBgcmV2JycgYXBwZWFycywNCi5C
IHBzZg0KaW52b2tlcw0KLkIgcHNvcmRlcg0KdG8gcmV2ZXJzZSB0aGUgcGFn
ZXMgb2YgdGhlIGpvYi4gRmluYWxseSwgaWYNCi5CIHBzZg0Kd2FzIGNhbGxl
ZCB3aXRoIGEgZmlsdGVyJ3MgbmFtZSBhcyB0aGUgbGVhZGluZyBzdHJpbmcs
IGl0IGludm9rZXMgdGhhdA0KZmlsdGVyLiBJZiB0aGVyZSBpcyBubyBmaWx0
ZXIgdG8gcnVuLA0KLkIgcHNmDQpleGFtaW5lcyB0aGUgbWFnaWMgbnVtYmVy
IG9mIHRoZSBpbnB1dCwgYW5kIGlmIHRoZSBpbnB1dCBpcyBub3QNClBvc3RT
Y3JpcHQsIGNvbnZlcnRzIGl0IHRvIFBvc3RTY3JpcHQuDQouU0ggS0xVREdF
DQpJbiB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLA0KLkIgcHNmDQpzdXBw
b3J0cyB0d28ga2x1ZGdlcy4gIFRoZSBmaXJzdCBjYXVzZXMNCi5CIHBzZg0K
dG8gY2hlY2sgaXRzIG5hbWUgZm9yIHRoZSBsZXR0ZXIgYG0nLiAgSWYgdGhp
cyBsZXR0ZXIgaXMgZm91bmQgYW5kIGFjY291bnRpbmcNCmlzIHR1cm5lZCBv
biwNCi5CIHBzZg0KY2FsbHMNCi5CIHBhcA0KdHdpY2UsIG9uY2UgdG8gZ2V0
IGFuIGluaXRpYWwgcGFnZSBjb3VudCBhbmQgdG8gcHJpbnQgdGhlIGpvYiwg
YW5kDQphbm90aGVyIHRpbWUgdG8gZ2V0IGEgZmluYWwgcGFnZSBjb3VudC4g
IFRoaXMgaXMgYSB3b3JrLWFyb3VuZCBmb3IgYnVncw0KaW4gYSB2YXJpZXR5
IG9mIFBBUCBpbXBsZW1lbnRpb25zIHRoYXQgY2F1c2UgcHJpbnRlcnMgdG8g
bmV2ZXIgcHJvcGVybHkNCmNsb3NlIHRoZSBQQVAgb3V0cHV0IGZpbGUuICBB
IG5vdGFibGUgZXhhbXBsZSBpcyBhbnkgcHJpbnRlciBieQ0KSGV3bGV0dC1Q
YWNrYXJkLg0KLkxQDQpUaGUgc2Vjb25kIGtsdWRnZSBjYXVzZXMNCi5CIHBz
Zg0KdG8gZXhhbWluZSBpdHMgbmFtZSBmb3IgdGhlIGxldHRlciBgdycuICBJ
ZiB0aGlzIGxldHRlciBpcyBmb3VuZCBhbmQNCmFjY291bnRpbmcgaXMgdHVy
bmVkIG9uLA0KLkIgcHNmDQpjYWxscw0KLkIgcGFwDQp3aXRoIHRoZQ0KLkIg
XC13DQpmbGFnLiAgVGhpcyBmbGFnIGNhdXNlcw0KLkIgcGFwDQp0byB3YWl0
IHVudGlsIHRoZSBwcmludGVyJ3Mgc3RhdHVzIGNvbnRhaW5zIHRoZSBzdHJp
bmcgYGlkbGUnLiAgT25jZQ0KdGhpcyBzdHJpbmcgaXMgZm91bmQsIHRoZSBq
b2IgaXMgcHJpbnRlZCBhcyBub3JtYWwuICBUaGlzIGtsdWRnZSBpcyBhDQp3
b3JrLWFyb3VuZCBmb3IgcHJpbnRlcnMsIG5vdGFibHkgSGV3bGV0dC1QYWNr
YXJkJ3MgTGFzZXJKZXQgSVYsIHdoaWNoDQp3aWxsIHJlcG9ydCBhIHBhZ2Ug
Y291bnQgd2hpbGUgYSBwcmV2aW91cyBqb2JzIGlzIHN0aWxsIHByaW50aW5n
Lg0KLlNIIEVYQU1QTEUNClRoZSBzYW1wbGUNCi5CIHByaW50Y2FwDQplbnRy
eSBiZWxvdyBpbnZva2VzDQouQiBwc2YNCnRvIHByaW50IHRleHQgZmlsZXMs
IFBvc3RTY3JpcHQgZmlsZXMsDQouQlIgdHJvZmYgJ3MNCkMvQS9UIG91dHB1
dCwgYW5kDQouQlIgVGVYICdzDQpEVkkgb3V0cHV0LCB0byBhbiBBcHBsZVRh
bGsgY29ubmVjdGVkIExhc2VyV3JpdGVyIFBsdXMuIFNpbmNlIHRoZQ0KTGFz
ZXJXcml0ZXIgUGx1cyBzdGFja3MgcGFnZXMgaW4gZGVzY2VuZGluZyBvcmRl
ciwgd2UgcmV2ZXJzZSB0aGUgcGFnZXMNCmFuZCBwcmludCB0aGUgYnVyc3Qg
cGFnZSBsYXN0Lg0KLnNwDQouUlMNCi5uZg0KbGFzZXJ8bHB8TGFzZXJXcml0
ZXIgUGx1cyBvbiBBcHBsZVRhbGs6XFwNCiAgICA6c2Q9L3Vzci9zcG9vbC9s
cGQvbGFzZXI6XFwNCiAgICA6bHA9L3Vzci9zcG9vbC9scGQvbGFzZXIvbnVs
bDpcXA0KICAgIDpsZj0vdmFyL2FkbS9scGQtZXJyczpwdyM4MDpobDpcXA0K
ICAgIDpvZj06TElCRElSOi9maWx0ZXJzL29mcGFwOlxcDQogICAgOmlmPTpM
SUJESVI6L2ZpbHRlcnMvaWZwYXByZXY6XFwNCiAgICA6dGY9OkxJQkRJUjov
ZmlsdGVycy90ZnBhcHJldjpcXA0KICAgIDpkZj06TElCRElSOi9maWx0ZXJz
L2RmcGFwcmV2Og0KLmZpDQouUkUNCi5zcA0KTm90ZSB0aGF0IGlmIHRoZSBo
b3N0IGluIHF1ZXN0aW9uIHNwb29scyB0byBtb3JlIHRoYW4gb25lIEFwcGxl
VGFsaw0KcHJpbnRlciwNCi5CIC9kZXYvbnVsbA0Kc2hvdWxkIG5vdCBiZSB1
c2VkIGZvciB0aGUNCi5CIGxwDQpjYXBhYmlsaXR5LiBJbnN0ZWFkLCBhIG51
bGwgZGV2aWNlIHNob3VsZCBiZSBjcmVhdGVkIHdpdGgNCi5CIG1rbm9kDQpm
b3IgZWFjaCBwcmludGVyLCBhcyBoYXMgYmVlbiBkb25lIGFib3ZlLg0KLkxQ
DQpGaW5hbGx5LCB0aGVyZSBpcyBhIGZpbGUgaW4gdGhlIHNwb29sIGRpcmVj
dG9yeSwNCi5CUiAvdmFyL3Nwb29sL2xwZC9sYXNlciAsDQpjYWxsZWQNCi5C
UiAucGFwcmMgLA0Kd2hpY2gNCi5CIHBhcA0KcmVhZHMgZm9yIHRoZSBBcHBs
ZVRhbGsgbmFtZSBvZiB0aGUgcHJpbnRlci4NCi5TSCBTRUUgQUxTTw0KLkJS
IHBzb3JkZXIgKDEpLA0KLkJSIHByaW50Y2FwICg1KSwNCi5CUiBscGQgKDgp
LA0KLkJSIG1rbm9kICg4KSwNCi5CUiBwYXAgKDgpLg0K
---559023410-851401618-855888277=:11177--

