----=_NextPart_ST_19_46_05_Monday_December_06_2004_17975
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

A couple of years ago, I wrote a script to convert Across Lite PUZ files=0At=
o Postscript that prints the way the puzzles normally look in=0Anewspapers. =
 It's definitely not perfect, but I figured I'd throw it in=0Afor fun.=0A=
=0AI generally convert the postscript into a PDF before printing, because=
=0Amany printers seem to have problems with the fonts, even though they=0Ash=
ould all come standard on a Postscript printer ... probably because my=0APS =
knowledge isn't as good as it could be!=0A=0AI've attached the script, and a=
 sample PUZ.  I was going to include the=0Aequivalent PDF, but the list serv=
er wasn't happy with the size of the=0Amessage.=0A=0AI use this six days a w=
eek to convert the Sydney Morning Herald=0Acrossword into a form that I can =
print and do on the train.=0A=0ACheers,=0A=0AH.=0A=0APS - Note that this was=
 one of my earliest Ruby programs, so the style=0Ais probably horrible ... n=
ot to say things are any better now, of course=0A:-).=0A=0A=0A**************=
**********************************************************=0A=0AIf you have =
received this e-mail in error, please delete it and notify the sender as soo=
n as possible. The contents of this e-mail may be confidential and the unaut=
horized use, copying, or dissemination of it and any attachments to it, is p=
rohibited. =
=0A=0AInternet communications are not secure and Hyperion does not, therefor=
e, accept legal responsibility for the contents of this message nor for any =
damage caused by viruses.  The views expressed here do not necessarily repre=
sent those of Hyperion.=0A=0AFor more information about Hyperion, please vis=
it our Web site at www.hyperion.com=0A


----=_NextPart_ST_19_46_05_Monday_December_06_2004_17975
Content-Type: application/octet-stream;
	name="20041004.puz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="20041004.puz"
Content-Description: 20041004.puz

ioZBQ1JPU1MmRE9XTgABSkg0K/kLfTU+MS4yAAAAAAAAAAAAAAAAAAAAAAAPDxoAAQAAAC5TLkMu
Uy4uLlMuWS5ELlNQQVJTRS5ERVBMT1lFRC5VLk8uVC5SLlIuVS5MLi5SSVNPVFRPLklOQ0lURS5J
LlMuTC5PLk4uQS5BLi5PTlRIRVNQT1QuTk9TSC5VLkguLi5TLkUuTi4uLkFTQ0VUSUMuQURWRVJT
RS4uLlIuTS5QLi4uVi5FLkJFQVUuUEVSTUFORU5ULi5QLkIuTy5PLlMuUi5BLk1PVElGUy5NVVRB
VEVTLi5DLkMuVC5QLkguRS5JLlRIUk9XT1VULk1FTE9EWS5TLk4uUi4uLkEuTC5FLi4tLi0uLS4u
Li0uLS4tLi0tLS0tLS4tLS0tLS0tLS4tLi0uLS4tLi0uLS4tLi4tLS0tLS0tLi0tLS0tLS4tLi0u
LS4tLi0uLS4tLi4tLS0tLS0tLS0uLS0tLS4tLi0uLi4tLi0uLS4uLi0tLS0tLS0uLS0tLS0tLS4u
Li0uLS4tLi4uLS4tLi0tLS0uLS0tLS0tLS0tLi4tLi0uLS4tLi0uLS4tLi0tLS0tLS4tLS0tLS0t
Li4tLi0uLS4tLi0uLS4tLi0tLS0tLS0tLi0tLS0tLS4tLi0uLS4uLi0uLS4tLkNyeXB0aWMsIE9j
dG9iZXIgNCwgMjAwNABDcmVhdGVkIGJ5IEVQAKkgVGhlIFN5ZG5leSBNb3JuaW5nIEhlcmFsZABJ
bmNlbnRpdmUgdG8gc2hvdyB0aGF0IGRlYnRzIGFyZSBmYWxzZSAoOCkASXJyaXRhdGVkIGJ5IHRo
ZSBwb2xpc2ggb24gdGhlIHNpZ24sIGJ1dCBjYW4ndCBnbyBiYWNrICg1LDMsNykAQ2xlYXIgdXAg
dGhlIHNlYXQgKDYpAFJ1c2hlZCB0byBmaW5kIHRoZSBjb3Vyc2Ugd2hpY2ggaGFkIGJlZW4gcHVi
bGlzaGVkICg4KQBZb3UgbXVzdCBhbHdheXMga2VlcCBtdW0gLS0gdW5zdXJlIHdoYXQgd2lsbCBo
YXBwZW4hICgzLDMsNSw0KQBHcmVlayBsZXR0ZXJzIGxhc3RlZCBpbmRlZmluaXRlbHkgKDYpAFF1
YXJyZWwgY29uY2VybmluZyBkaXJlY3Rpb25zIHdhcyBpbmZyZXF1ZW50ICg2KQBJbnN0YWxsZWQg
YW5kIHRoZW4gZ290IHJpZCBvZiB0aGUgdHJpY2shICg4KQBXaWx0cyB3aGVuIGRpcmVjdG9yIGZp
bmRzIGFuaW1hbCB0cmFjayByZXR1cm5pbmcgKDYpAERpc2ggbWF5IGNhdXNlIHJpb3RzIHRvIHJl
Y3VyICg3KQBFbmNvdXJhZ2UgdG8gY29tZSBpbnRvIHZpZXcgb2YgdGhlIGF1ZGllbmNlICg2KQBJ
bW1lZGlhdGVseSBpbiB0cm91YmxlICgyLDMsNCkARG9uJ3QgYmUgcXVpZXQgYWJvdXQgdGhlIGZv
b2QgKDQpAFB1cml0YW4gaGFzIGEgcGVjdWxpYXIgY2FzZSBvZiBzcGFzbSAoNykAQSB0YXggb3Ig
YSBmYWtlPyAoOCkASG9zdGlsZSB0byB0aGUgcHJvbW90aW9uIG9mIHRoZSBsaW1lcmljayAoNykA
UmVzZXJ2ZSBhdCB0aGUgYmVhY2ggaXMgd2l0aG91dCBjZW50cmFsIGhlYXRpbmcgKDMtNSkAUXVp
Y2shIEpvZyB0aGUgbWVtb3J5ICg2KQBUaGUgbG92ZXIgc2VlbWVkIGJlYXV0aWZ1bCBpbiBQYXJp
cyAoNCkASG9wZXMgaW52ZW50aW9uIGluY2x1ZGVzIGNvbGQgcGVyaW9kcyAoNikASGFpcmRvIGhh
cyBhIG5ldyBleG90aWMgbmV0IHdoaWNoIHdvbid0IGNoYW5nZSAoOSkAQ29tcGxhaW50IGFib3V0
IG1hdGhzIGNvbWluZyBmaXJzdCAoNikARGVzaWducyBmb3Igc2Vjb25kIGxvdWQgcXVhcnJlbHMg
KDYpAENoYW5nZXMgb2NjdXIgaW4gVXRhaCB3aGVuIGZyaWVuZHMgY29tZSBhcm91bmQgKDcpAFJl
ZnVzZSB0byBhY2NlcHQgdGhhdCBpdCdzIG9mdGVuIHdvcnRoIGJlaW5nIGFic2VudCAoNSwzKQBB
IHBpZWNlIG9mIG11c2ljIGluIHRoZSBQaGlsb21lbCBPZHlzc2V5ICg2KQAA


----=_NextPart_ST_19_46_05_Monday_December_06_2004_17975
Content-Type: application/octet-stream;
	name="crossword.rb"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="crossword.rb"
Content-Description: crossword.rb

CkRFQlVHID0gZmFsc2UKCiNTSVpFICA9IDI3ClNJWkUgID0gMTUKCgpjbGFzcyBCdWZmZXIKCiAg
ICBkZWYgaW5pdGlhbGl6ZShzdHJpbmcpCgoJQHN0cmluZyA9IHN0cmluZwoJQGluZGV4ICA9IDAK
CUBsZW5ndGggPSBzdHJpbmcubGVuZ3RoCgogICAgZW5kCgogICAgZGVmIGdldHMKCglpZiBAaW5k
ZXggPT0gQGxlbmd0aAoJICAgIHN0cmluZyA9IG5pbAoJZWxzZQoJICAgIHN0cmluZyA9ICIiCgoJ
ICAgIHdoaWxlIEBpbmRleCA8IEBsZW5ndGgKCQljID0gQHN0cmluZ1tAaW5kZXhdCgoJCWlmIGMg
PT0gMAoJCSAgICBicmVhawoJCWVsc2UKCQkgICAgc3RyaW5nIDw8IGMKCgkJICAgIEBpbmRleCAr
PSAxCgkJZW5kCgkgICAgZW5kCgoJICAgIGlmIEBpbmRleCA8IEBsZW5ndGgKCQlAaW5kZXggKz0g
MQoJICAgIGVuZAoJZW5kCgoJcmV0dXJuIHN0cmluZwoKICAgIGVuZAoKCiAgICBkZWYgcmVhZChu
KQoKCWlmIEBpbmRleCA9PSBAbGVuZ3RoCgkgICAgc3RyaW5nID0gbmlsCgllbHNlCgkgICAgaWYg
biA+IChAbGVuZ3RoIC0gQGluZGV4KQoJCW4gPSAoQGxlbmd0aCAtIEBpbmRleCkKCSAgICBlbmQK
CgkgICAgc3RyaW5nID0gQHN0cmluZ1tAaW5kZXgsIG5dCgoJICAgIEBpbmRleCArPSBuCgllbmQK
CglyZXR1cm4gc3RyaW5nCgogICAgZW5kCgplbmQKCgpjbGFzcyBDcm9zc3dvcmQKCgogICAgZGVm
IGluaXRpYWxpemUocGF0aCwgYW5zd2Vyc1BhdGggPSBuaWwpCgoJaWYgcGF0aCA9fiAvLipcLnB1
eiQvCgkgICAgUmVhZFBVWihwYXRoKQoJZWxzaWYgcGF0aCA9fiAvLipcLnR4dCQvCgkgICAgUmVh
ZFRYVChwYXRoLCBhbnN3ZXJzUGF0aCkKCWVuZAoKICAgIGVuZAoKCiAgICBkZWYgQW5zd2VyKGks
IGopCgoJaWYgQGFuc3dlcnMKCSAgICBpZiBAYW5zd2Vyc1tpXS5uaWw/CgkJIyRzdGRlcnIucHV0
cyAiQGFuc3dlcnNbI3tpfV0gaXMgbmlsICEhIgoJCSIgIgoJICAgIGVsc2UKCQlpZiBAYW5zd2Vy
c1tpXVtqXS5uaWw/CgkJICAgICMkc3RkZXJyLnB1dHMgIkBhbnN3ZXJzWyN7aX1dWyN7an1dIGlz
IG5pbCAhISIKCQkgICAgIiAiCgkJZWxzZQoJCSAgICBpZiBAYW5zd2Vyc1tpXVtqXSA9PSBTdHJp
bmcKCQkJQGFuc3dlcnNbaV1bal0KCQkgICAgZWxzZQoJCQlpZiAoYSA9IEBhbnN3ZXJzW2ldW2pd
LmNocikgPT0gIi4iCgkJCSAgICAiICIKCQkJZWxzZQoJCQkgICAgYQoJCQllbmQKCQkgICAgZW5k
CgkJZW5kCgkgICAgZW5kCgllbHNlCgkgICAgIiAiCgllbmQKCiAgICBlbmQKCgogICAgZGVmIENh
bGN1bGF0ZU51bWJlcnMKCgludW1iZXIgPSAxCglzaXplICAgPSBAZ3JpZC5sZW5ndGgKCglAdG90
YWxBY3Jvc3NDbHVlcyA9IDAKCUB0b3RhbERvd25DbHVlcyAgID0gMAoKCUBjbHVlcyA9IEFycmF5
Lm5ldwoKCSgwLi4oc2l6ZSAtIDEpKS5lYWNoIGRvIHxpfAoJICAgICgwLi4oc2l6ZSAtIDEpKS5l
YWNoIGRvIHxqfAoJCWlmIEBncmlkW2ldW2pdICE9IC0xCgkJICAgIG51bWJlcmVkID0gZmFsc2UK
CgkJICAgIGlmIGogPT0gMCB8fCAoQGdyaWRbaV1baiAtIDFdID09IC0xKQoJCQlpZiAoaiA8IChz
aXplIC0gMSkpICYmIChAZ3JpZFtpXVtqICsgMV0gIT0gLTEpCgkJCSAgICBAdG90YWxBY3Jvc3ND
bHVlcyArPSAxCgkJCSAgICBAY2x1ZXMucHVzaChbIkEiLCBudW1iZXJdKTsKCgkJCSAgICBudW1i
ZXJlZCA9IHRydWUKCQkJZW5kCgkJICAgIGVuZAoKCQkgICAgaWYgaSA9PSAwIHx8IChAZ3JpZFtp
IC0gMV1bal0gPT0gLTEpCgkJCWlmIChpIDwgKHNpemUgLSAxKSkgJiYgKEBncmlkW2kgKyAxXVtq
XSAhPSAtMSkKCQkJICAgIEB0b3RhbERvd25DbHVlcyArPSAxCgkJCSAgICBAY2x1ZXMucHVzaChb
IkQiLCBudW1iZXJdKTsKCgkJCSAgICBudW1iZXJlZCA9IHRydWUKCQkJZW5kCgkJICAgIGVuZAoK
CgkJICAgIGlmIG51bWJlcmVkCgkJCUBncmlkW2ldW2pdID0gbnVtYmVyCgoJCQludW1iZXIgKz0g
MQoJCSAgICBlbmQKCQllbmQKCSAgICBlbmQKCWVuZAoKICAgIGVuZAoKCiAgICBkZWYgQ2xlYW4o
dGV4dCkKCWNsZWFuID0gdGV4dC5nc3ViKC9bKF0vLCAiXFwoIikKCgljbGVhbi5nc3ViISgvWyld
LywgIlxcKSIpCgljbGVhbi5nc3ViISgiJSIsICJcXCUiKQoJY2xlYW4uZ3N1YiEoJ5InLCAnXCcn
KQoJY2xlYW4uZ3N1YiEoJ+knLCAnZScpCgoJY2xlYW4KICAgIGVuZAoKCiAgICBkZWYgUmVhZEFu
c3dlcnMoZmlsZSkKCgl0ZXh0ID0gZmlsZS5nZXRzCgoJQGFuc3dlcnMgPSBBcnJheS5uZXcKCglp
bmRleCA9IDAKCgkoMCAuLi4gU0laRSkuZWFjaCBkbyB8aXwKCSAgICByb3cgPSBBcnJheS5uZXcK
CgkgICAgKDAgLi4uIFNJWkUpLmVhY2ggZG8gfGp8CgkJcm93W2pdID0gdGV4dFtpbmRleF0KCgkJ
aW5kZXggKz0gMQoJICAgIGVuZAoKCSAgICBAYW5zd2Vycy5wdXNoKHJvdykKCWVuZAoKICAgIGVu
ZAoKCiAgICBkZWYgUmVhZENyb3Nzd29yZChmaWxlKQoKCUB0aXRsZSA9IGZpbGUucmVhZGxpbmUu
Y2hvcAoKCSRzdGRlcnIucHV0cyAiVGl0bGUgaXMgI3tAdGl0bGV9IgoKCXVudGlsIChsaW5lID0g
ZmlsZS5nZXRzLmNob3ApID1+IC9HcmlkLwoJICAgICMgVGhyb3cgdGhpcyBsaW5lIGF3YXkKCWVu
ZAoKCUBncmlkID0gQXJyYXkubmV3CgoJdW50aWwgKGxpbmUgPSBmaWxlLmdldHMuY2hvcCkgPX4g
L0Fjcm9zcy8KCSAgICBpZiBsaW5lLmxlbmd0aCA+IDAKCQlyb3cgPSBBcnJheS5uZXcKCgkJbGlu
ZS5lYWNoX2J5dGUgZG8gfGN8CgkJICAgIGlmIGMuY2hyID09ICdXJwoJCQl4ID0gMAoJCSAgICBl
bHNlCgkJCXggPSAtMQoJCSAgICBlbmQKCgkJICAgIHJvdy5wdXNoKHgpCgkJZW5kCgoJCUBncmlk
LnB1c2gocm93KQoJICAgIGVuZAoJZW5kCgoJQ2FsY3VsYXRlTnVtYmVycygpCgoJQGFjcm9zcyA9
IEhhc2gubmV3CgoJd2hpbGUgKGNsdWUgPSBmaWxlLmdldHMuY2hvcCkgIX4gL0Rvd24vCgoJICAg
IGlmIGNsdWUgPX4gLyhcZCopICguKikvCgkJbnVtYmVyID0gJDEKCQl0ZXh0ICAgPSAkMgoKCQlA
YWNyb3NzW251bWJlcl0gPSB0ZXh0CgkgICAgZW5kCgoJZW5kCgoJQGRvd24gPSBIYXNoLm5ldwoK
CXdoaWxlICFmaWxlLmVvZgoJICAgIGNsdWUgPSBmaWxlLmdldHMuY2hvcAoKCSAgICBpZiBjbHVl
ID1+IC8oXGQqKSAoLiopLwoJCW51bWJlciA9ICQxCgkJdGV4dCAgID0gJDIKCgkJQGRvd25bbnVt
YmVyXSA9IHRleHQKCSAgICBlbmQKCWVuZAogICAgZW5kCgoKICAgIGRlZiBSZWFkUFVaKHBhdGgp
CgoJRmlsZS5vcGVuKHBhdGgsICJyYiIpIGRvIHxmaWxlfAoJICAgICNmaWxlLmJpbm1vZGUKCgkg
ICAgZGF0YSA9IGZpbGUuc3lzcmVhZChmaWxlLnN0YXQuc2l6ZSkKCgkgICAgYnVmZmVyID0gQnVm
ZmVyLm5ldyhkYXRhKQoKCSAgICAjIFNraXAgaGVhZGVyIGluZm9ybWF0aW9uIC4uLgoKCSAgICBi
dWZmZXIucmVhZCg1MikKCgkgICAgIyBQdWxsIG91dCB0aGUgdmFyaW91cyBzdHJpbmdzIHdlIG5l
ZWQgLi4uCgoJICAgIEBhbnN3ZXJzU3RyaW5nID0gYnVmZmVyLnJlYWQoU0laRSAqIFNJWkUpCgkg
ICAgQGdyaWRTdHJpbmcJICAgPSBidWZmZXIucmVhZChTSVpFICogU0laRSkKCSAgICBAdGl0bGUJ
ICAgPSBidWZmZXIuZ2V0cwoJICAgIEBjcmVhdG9yCSAgID0gYnVmZmVyLmdldHMuc3RyaXAKCiMk
c3RkZXJyLnB1dHMgIkBhbnN3ZXJzU3RyaW5nID0gJyN7QGFuc3dlcnNTdHJpbmd9JyIKCiMkc3Rk
ZXJyLnB1dHMgInRpdGxlICAgPSA+PiN7QHRpdGxlfTw8IgojJHN0ZGVyci5wdXRzICJjcmVhdG9y
ID0gPj4je0BjcmVhdG9yfTw8IgoKCSAgICBAdGl0bGUgPDwgIiAgXCgje0BjcmVhdG9yfVwpIgoK
CSAgICAjIFNraXAgb3ZlciBhIHN0cmluZyB3ZSBkb24ndCBuZWVkIC4uLgoKCSAgICBAZXh0cmEJ
ICAgPSBidWZmZXIuZ2V0cwoKCSAgICAjIFJlYWQgdGhlIGNsdWUgc3RyaW5ncyAuLi4KCgkgICAg
QGNsdWVTdHJpbmdzID0gQXJyYXkubmV3CgoJICAgIHdoaWxlIChzID0gYnVmZmVyLmdldHMpICE9
IG5pbAoJCUBjbHVlU3RyaW5ncy5wdXNoKHMpCgkgICAgZW5kCgoJICAgIEBncmlkID0gQXJyYXku
bmV3CgoJICAgIGluZGV4ID0gMAoKCSAgICAoMCAuLi4gU0laRSkuZWFjaCBkbyB8aXwKCQlyb3cg
PSBBcnJheS5uZXcKCgkJKDAgLi4uIFNJWkUpLmVhY2ggZG8gfGp8CgkJICAgIGMgPSBAZ3JpZFN0
cmluZ1tpbmRleF0uY2hyCgoJCSAgICBpZiBjID09ICIuIgoJCQlyb3cucHVzaCgtMSkKCQkgICAg
ZWxzZQoJCQlyb3cucHVzaCgwKQoJCSAgICBlbmQKCgkJICAgIGluZGV4ICs9IDEKCQllbmQKCgkJ
QGdyaWQucHVzaChyb3cpCgkgICAgZW5kCgoJICAgIENhbGN1bGF0ZU51bWJlcnMoKQoKCSAgICBA
YW5zd2VycyA9IEFycmF5Lm5ldwoKCSAgICBpbmRleCA9IDAKCgkgICAgKDAgLi4uIFNJWkUpLmVh
Y2ggZG8gfGl8CgkJcm93ID0gQXJyYXkubmV3CgoJCSgwIC4uLiBTSVpFKS5lYWNoIGRvIHxqfAoJ
CSAgICByb3dbal0gPSBAYW5zd2Vyc1N0cmluZ1tpbmRleF0KCgoJCSAgICBpZiByb3dbal0ubmls
PwoJCQlyb3dbal0gPSAnICcKCQkgICAgZW5kCgojJHN0ZGVyci5wdXRzICJAYW5zd2Vyc1sje2l9
XVsje2p9XSA9ICN7cm93W2pdLmNocn0iCgoJCSAgICBpbmRleCArPSAxCgkJZW5kCgoJCUBhbnN3
ZXJzLnB1c2gocm93KQoJICAgIGVuZAoKCSAgICBpbmRleCAgID0gMAoKCSAgICBAYWNyb3NzID0g
SGFzaC5uZXcKCSAgICBAZG93biAgID0gSGFzaC5uZXcKCgkgICAgQGNsdWVzLmVhY2hfaW5kZXgg
ZG8gfGl8CgkJY2x1ZSAgID0gQGNsdWVzW2ldCgkJdHlwZSAgID0gY2x1ZVswXQoJCW51bWJlciA9
IGNsdWVbMV0KCQlzdHJpbmcgPSBAY2x1ZVN0cmluZ3NbaV0KCgkJaWYgdHlwZSA9PSAiQSIKCQkg
ICAgQGFjcm9zc1tudW1iZXJdID0gc3RyaW5nCgkJZWxzZQoJCSAgICBAZG93bltudW1iZXJdID0g
c3RyaW5nCgkJZW5kCgkgICAgZW5kCgllbmQKCiAgICBlbmQKCgogICAgZGVmIFJlYWRUWFQocGF0
aCwgYW5zd2Vyc1BhdGgpCgoJRmlsZS5vcGVuKHBhdGgpIGRvIHxmaWxlfAoKCSAgICBSZWFkQ3Jv
c3N3b3JkKGZpbGUpCgoJZW5kCgoJaWYgYW5zd2Vyc1BhdGggPT0gbmlsCgkgICAgQGFuc3dlcnMg
PSBuaWwKCWVsc2UKCSAgICBGaWxlLm9wZW4oYW5zd2Vyc1BhdGgpIGRvIHxmaWxlfAoKCQlSZWFk
QW5zd2VycyhmaWxlKQoKCSAgICBlbmQKCWVuZAoKICAgIGVuZAoKCiAgICBkZWYgZWFjaF9ncmlk
Cglyb3dOdW1iZXIgPSAwCgoJQGdyaWQuZWFjaCBkbyB8cm93fAoJICAgIHJvd051bWJlciArPSAx
CgoJICAgIGNvbHVtbk51bWJlciA9IDAKCgkgICAgcm93LmVhY2ggZG8gfGNvbHVtbnwKCQljb2x1
bW5OdW1iZXIgKz0gMQoKCQl5aWVsZCByb3dOdW1iZXIsIGNvbHVtbk51bWJlciwgY29sdW1uCgkg
ICAgZW5kCgllbmQKICAgIGVuZAoKCiAgICBkZWYgZWFjaF9hY3Jvc3MKCShAYWNyb3NzLmtleXMu
c29ydCB7IHxhLCBifCBhLnRvX2kgPD0+IGIudG9faSB9KS5lYWNoIGRvIHxudW1iZXJ8CgkgICAg
eWllbGQgbnVtYmVyLCBAYWNyb3NzW251bWJlcl0KCWVuZAogICAgZW5kCgoKICAgIGRlZiBlYWNo
X2Rvd24KCShAZG93bi5rZXlzLnNvcnQgeyB8YSwgYnwgYS50b19pIDw9PiBiLnRvX2kgfSkuZWFj
aCBkbyB8bnVtYmVyfAoJICAgIHlpZWxkIG51bWJlciwgQGRvd25bbnVtYmVyXQoJZW5kCiAgICBl
bmQKCgogICAgZGVmIE91dHB1dAoJcHV0cyAiI3tAdGl0bGV9XG5cbiIKCglwdXRzICJHcmlkIgoK
CUBncmlkLmVhY2ggZG8gfHJvd3wKCSAgICByb3cuZWFjaCBkbyB8Y29sdW1ufAoJCXggPSAoY29s
dW1uID09IC0xKSA/ICJCIiA6ICJXIgoJCXByaW50ICIje3h9IgoJICAgIGVuZAoKCSAgICBwdXRz
ICIiCgllbmQKCglwdXRzICJcbkFjcm9zc1xuXG4iCgoJKEBhY3Jvc3Mua2V5cy5zb3J0IHsgfGEs
IGJ8IGEudG9faSA8PT4gYi50b19pIH0pLmVhY2ggZG8gfG51bWJlcnwKCSAgICBwcmludGYgIiUw
MmQgJXNcbiIsIG51bWJlciwgQGFjcm9zc1tudW1iZXJdCgllbmQKCglwdXRzICJcbkRvd25cblxu
IgoKCShAZG93bi5rZXlzLnNvcnQgeyB8YSwgYnwgYS50b19pIDw9PiBiLnRvX2kgfSkuZWFjaCBk
byB8bnVtYmVyfAoJICAgIHByaW50ZiAiJTAyZCAlc1xuIiwgbnVtYmVyLCBAZG93bltudW1iZXJd
CgllbmQKICAgIGVuZAoKCiAgICBkZWYgT3V0cHV0QWNyb3NzCgoJcHV0cyAiQWNyb3NzSGVhZGVy
IgoJcHV0cyAiU3RhcnRBY3Jvc3NDbHVlcyIKCglzZWxmLmVhY2hfYWNyb3NzIGRvIHxudW1iZXIs
IHRleHR8CgkgICAgcHV0cyAiI3tudW1iZXJ9IFN0YXJ0Q2x1ZSIKCgkgICAgY2xlYW4gPSBDbGVh
bih0ZXh0KQoJICAgIHdvcmRzID0gY2xlYW4uc3BsaXQoIiAiKQoKCSAgICB3b3Jkcy5lYWNoIGRv
IHx3fAoJCXB1dHMgIigje3d9KSBDbHVlV29yZCIKCSAgICBlbmQKCWVuZAoKICAgIGVuZAoKCiAg
ICBkZWYgT3V0cHV0RG93bgoJcHV0cyAiRG93bkhlYWRlciIKCXB1dHMgIlN0YXJ0RG93bkNsdWVz
IgoKCXNlbGYuZWFjaF9kb3duIGRvIHxudW1iZXIsIHRleHR8CgkgICAgcHV0cyAiI3tudW1iZXJ9
IFN0YXJ0Q2x1ZSIKCgkgICAgY2xlYW4gPSBDbGVhbih0ZXh0KQoJICAgIHdvcmRzID0gY2xlYW4u
c3BsaXQoIiAiKQoKCSAgICB3b3Jkcy5lYWNoIGRvIHx3fAoJCXB1dHMgIigje3d9KSBDbHVlV29y
ZCIKCSAgICBlbmQKCWVuZAoKICAgIGVuZAoKCiAgICBkZWYgT3V0cHV0R3JpZCh3aXRoQW5zd2Vy
cykKCglzaXplID0gQGdyaWQubGVuZ3RoCgoJKDAuLihzaXplIC0gMSkpLmVhY2ggZG8gfGl8Cgkg
ICAgKDAuLihzaXplIC0gMSkpLmVhY2ggZG8gfGp8CgkJeCA9IEBncmlkW2ldW2pdCgoJCWlmIHgg
PT0gLTEKCQkgICAgcHV0cyAiI3tqfSAje2l9IEJsYWNrU3F1YXJlIgoJCWVsc2UKCQkgICAgaWYg
d2l0aEFuc3dlcnMKCQkJYSA9IEFuc3dlcihpLCBqKQoKIyRzdGRlcnIucHV0cyAiQW5zd2VyKCN7
aX0sICN7an0pID0gI3thfSIKCgkJCXB1dHMgIiN7an0gI3tpfSAje3h9ICgje2F9KSBXaGl0ZVNx
dWFyZSIKCQkgICAgZWxzZQoJCQlwdXRzICIje2p9ICN7aX0gI3t4fSAoICkgV2hpdGVTcXVhcmUi
CgkJICAgIGVuZAoJCWVuZAoJICAgIGVuZAoJZW5kCgogICAgZW5kCgoKICAgIGRlZiBPdXRwdXRO
ZXdQYWdlCglwdXRzICJcbnNob3dwYWdlXG4iCiAgICBlbmQKCiAgICBkZWYgT3V0cHV0UG9zdHNj
cmlwdCh3aXRoQW5zd2VycykKCU91dHB1dFByZWFtYmxlKCkKCU91dHB1dFN1YnJvdXRpbmVzKCkK
CU91dHB1dEdyaWQod2l0aEFuc3dlcnMpCglPdXRwdXRUaXRsZSgpCgoJaWYgU0laRSA+IDE1Cgkg
ICAgT3V0cHV0TmV3UGFnZSgpCgllbmQKCglPdXRwdXRBY3Jvc3MoKQoJT3V0cHV0RG93bigpCglP
dXRwdXRQcm9sb2d1ZSgpCiAgICBlbmQKCgogICAgZGVmIE91dHB1dFByZWFtYmxlKG91dCA9ICRz
dGRvdXQpCgoJIyBPdXRwdXQgdGhlIG5lY2Vzc2FyeSBQb3N0c2NyaXB0IHByZWFtYmxlLCB2aWEK
CSMgYSBoZXJlIGRvY3VtZW50IC4uLgoKCW91dC5wdXRzIDw8UFJFQU1CTEUKJSFQUy1BZG9iZS0z
LjAKJSVDcmVhdG9yOiBIYXJyeSBPJ3MgQ3Jvc3N3b3JkIFByaW50ZXIKJSVMYW5ndWFnZUxldmVs
OiAyCiUlRG9jdW1lbnRNZWRpYTogcGxhaW4gNjEyIDc5MiAwICgpICgpCiUlUGFnZXM6IDEKJSVF
bmRDb21tZW50cwolJUJlZ2luRGVmYXVsdHMKJSVQYWdlTWVkaWE6IHBsYWluCiUlRW5kRGVmYXVs
dHMKJSVCZWdpblByb2xvZwolJUVuZFByb2xvZwoKUFJFQU1CTEUKCiAgICBlbmQKCgogICAgZGVm
IE91dHB1dFByb2xvZ3VlKG91dCA9ICRzdGRvdXQpCgoJb3V0LnB1dHMgIlxuXG5zaG93cGFnZSIK
CiAgICBlbmQKCgogICAgZGVmIE91dHB1dFN1YnJvdXRpbmVzKG91dCA9ICRzdGRvdXQpCgoJIyBP
dXRwdXQgdGhlIG5lY2Vzc2FyeSBQb3N0c2NyaXB0IHN1YnJvdXRpbmVzIHZpYQoJIyBhIGhlcmUg
ZG9jdW1lbnQgLi4uCgoJb3V0LnB1dHMgPDxTVUJST1VUSU5FUwoKJQolIFNldCB0aGUgZm9udHMg
dG8gdXNlIC4uLgolCgovTlVNQkVSRk9OVCAvVGltZXNSb21hbiBmaW5kZm9udCA2ICBzY2FsZWZv
bnQgZGVmCi9BTlNXRVJGT05UIC9UaW1lc1JvbWFuIGZpbmRmb250IDEyIHNjYWxlZm9udCBkZWYK
CgolCiUgR3JpZCBzaXplIC4uLgolCgovR1JJRF9TSVpFICN7U0laRX0gZGVmCgoKJQolIFNpemUg
b2Ygc3F1YXJlIC4uLgolCgovU1FVQVJFX1NJWkUgMjIgZGVmCgoKJQolIERlZmluZSB0aGUgdG9w
IGxlZnRoYW5kIGNvcm5lciBvZiB0aGUKJSBjcm9zc3dvcmQgZ3JpZCAuLi4KJQoKL0dSSURfVE9Q
WCA4LjUgIDcyIG11bCBHUklEX1NJWkUgU1FVQVJFX1NJWkUgMSBhZGQgbXVsIHN1YiAyIGRpdiBk
ZWYKL0dSSURfVE9QWSAxMS41IDcyIG11bCBkZWYKCi9DTFVFX1RPUFggR1JJRF9UT1BYIDAgYWRk
IGRlZgoKL0NMVUVfVE9QWSAjeyhTSVpFID09IDE1KSA/ICJHUklEX1RPUFkgU1FVQVJFX1NJWkUg
R1JJRF9TSVpFIG11bCBzdWIgNSBzdWIiIDogIkdSSURfVE9QWSA3MCBzdWIifSBkZWYKCgolCiUg
SG93IGhpZ2ggZWFjaCBsaW5lIG9mIGNsdWUgdGV4dCBpcyAuLi4KJQoKL0NMVUVfSEVJR0hUIDEw
IGRlZgoKCiUKJSBEZWZpbmUgdGhlIHdpZHRoIG9mIHRoZSBzcGFjZSB3ZSBoYXZlIGZvcgolIGEg
Y29sdW1uIG9mIGNsdWUgdGV4dCAuLi4KJQoKL0NMVUVfV0lEVEggR1JJRF9TSVpFIFNRVUFSRV9T
SVpFIDEgYWRkIG11bCAyIGRpdiAyNSBzdWIgZGVmCgoKJQolIFRoZSBzcGFjZSBmcm9tIHRoZSBz
dGFydCBvZiB0aGUgY2x1ZSBsaW5lcwolIHRvIHRoZSBjbHVlIHRleHQgLi4uCiUKCi9DTFVFX1NQ
QUNJTkcgMTUgZGVmCgoKJQolIEhvdyB0byBvdXRwdXQgdGhlIGFjcm9zcyBoZWFkZXIgLi4uCiUK
Ci9BY3Jvc3NIZWFkZXIKewogICAgQ0xVRV9UT1BYIENMVUVfVE9QWSBtb3ZldG8KCiAgICAvVGlt
ZXNSb21hbkJvbGQgZmluZGZvbnQgMTIgc2NhbGVmb250IHNldGZvbnQKCiAgICAoQWNyb3NzKSBz
aG93Cn0KZGVmCgoKJQolIEhvdyB0byBkcmF3IGEgYmxhY2sgc3F1YXJlCiUKCi9CbGFja1NxdWFy
ZQp7CiAgICAlIFN0b3JlIHRoZSBzdGFjayBjb250ZW50czogWCBZCgogICAgU1FVQVJFX1NJWkUg
MSBzdWIgbXVsIEdSSURfVE9QWSBleGNoIHN1YiAvdG9wWSBleGNoIGRlZgogICAgU1FVQVJFX1NJ
WkUgMSBzdWIgbXVsIEdSSURfVE9QWCBleGNoIGFkZCAvdG9wWCBleGNoIGRlZgoKICAgICUgU3Rh
cnQgYSBuZXcgcGF0aCB0byBiZSBzdHJva2VkIG91dCAuLi4KCiAgICBuZXdwYXRoCgogICAgJSBN
b3ZlIHRvIHRoZSB0b3AtbGVmdCBjb3JuZXIgYW5kIGRyYXcgYSBzcXVhcmUsCiAgICAlIHVzaW5n
IHJlbGF0aXZlIGxpbmV0bydzIC4uLgoKICAgIHRvcFggICAgICAgICAgICAgICAgCXRvcFkgICAg
ICAgICAgICAJbW92ZXRvCiAgICBTUVVBUkVfU0laRSAxIHN1YiAgICAgCTAgICAgICAgICAgICAg
ICAJcmxpbmV0bwogICAgMCAgICAgICAgICAgICAgICAgICAJU1FVQVJFX1NJWkUgMSBzdWIgbmVn
CXJsaW5ldG8KICAgIFNRVUFSRV9TSVpFIDEgc3ViIG5lZwkwICAgICAgICAgICAJCXJsaW5ldG8K
ICAgIGNsb3NlcGF0aAoKICAgIGZpbGwKfQpkZWYKCgolCiUgQWRkIGEgd29yZCB0byB0aGUgY3Vy
cmVudCBjbHVlIC4uLgolCgovQ2x1ZVdvcmQKewogICAgL1dPUkQgZXhjaCBkZWYKCiAgICAlIENh
bGN1bGF0ZSB0aGUgd2lkdGggb2YgdGhpcyB3b3JkLCBwbHVzIGEgY291cGxlCiAgICAlIG9mIHBp
eGVscyBmb3Igc3BhY2luZyAuLi4KCiAgICAvV09SRF9XSURUSCBXT1JEIHN0cmluZ3dpZHRoIHBv
cCAyIGFkZCBkZWYKICAgIAogICAgJSBXb3JrIG91dCB3aGV0aGVyIHRoZXJlJ3MgZW5vdWdoIHNw
YWNlIGxlZnQgb24gdGhlCiAgICAlIGN1cnJlbnQgbGluZSBmb3IgdGhpcyB3b3JkIC4uLgoKICAg
IFdPUkRfV0lEVEggQ0xVRV9YIGFkZCBDTFVFX0xFRlRYIHN1YgogICAgQ0xVRV9XSURUSCBndAog
ICAgewoJJSBUaGlzIHdvcmQgd29uJ3QgZml0LCBzbyBtb3ZlIHRvIHRoZQoJJSBuZXh0IGxpbmUg
Li4uCgoJL0NMVUVfWSBDTFVFX1kgQ0xVRV9IRUlHSFQgc3ViIGRlZgoJL0NMVUVfWCBDTFVFX0xF
RlRYIENMVUVfU1BBQ0lORyBhZGQgZGVmCiAgICB9CiAgICBpZgoKICAgIENMVUVfWCBDTFVFX1kg
bW92ZXRvIFdPUkQgc2hvdwoKICAgIC9DTFVFX1ggQ0xVRV9YIFdPUkRfV0lEVEggYWRkIGRlZgp9
CmRlZgoKCiUKJSBIb3cgdG8gb3V0cHV0IHRoZSBkb3duIGhlYWRlciAuLi4KJQoKL0Rvd25IZWFk
ZXIKewogICAgQ0xVRV9UT1BYIFNRVUFSRV9TSVpFICBHUklEX1NJWkUgbXVsIDIgZGl2IGFkZAog
ICAgQ0xVRV9UT1BZCiAgICBtb3ZldG8KCiAgICAvVGltZXNSb21hbkJvbGQgZmluZGZvbnQgMTIg
c2NhbGVmb250IHNldGZvbnQKCiAgICAoRG93bikgc2hvdwp9CmRlZgoKCiUKJSBTdGFydCBhIG5l
dyBjbHVlIC4uLgolCgovTmV3Q2x1ZQp7CiAgICAvTlVNQkVSIGV4Y2ggZGVmCn0KZGVmCgoKJQol
IERyYXcgYSBudW1iZXIsIGluIHRoZSBzcGVjaWZpZWQgd2lkdGggLi4uCiUKCi9OdW1iZXIKewog
ICAgMiBzdHJpbmcgY3ZzIHNob3cKfQpkZWYKCgolCiUgU3RhcnQgYSBuZXcgY2x1ZSAuLi4KJQoK
L1N0YXJ0Q2x1ZQp7CiAgICAlIFB1bGwgdGhlIGNsdWUgbnVtYmVyIG9mZiB0aGUgc3RhY2sgLi4u
CgogICAgL05VTUJFUiBleGNoIGRlZgoKICAgICUgU2V0IHRoZSBYIGNvb3JkaW5hdGUgdG8gdGhl
IGN1cnJlbnQKICAgICUgbGVmdCBtYXJnaW4gLi4uCgogICAgL0NMVUVfWCBDTFVFX0xFRlRYIGRl
ZgoKICAgICUgTW92ZSBkb3duIGEgbGluZSAuLi4KCiAgICAvQ0xVRV9ZIENMVUVfWSBDTFVFX0hF
SUdIVCBzdWIgMiBzdWIgZGVmCgogICAgJSBNb3ZlIHRvIHRoZSBhcHByb3ByaWF0ZSAoWCwgWSkg
Li4uCgogICAgQ0xVRV9YIENMVUVfWSBtb3ZldG8KCiAgICAlIE91dHB1dCB0aGUgY2x1ZSBudW1i
ZXIgaW4gVGltZSBSb21hbiBCb2xkIDEwIHB0IC4uLgoKICAgIC9UaW1lc1JvbWFuQm9sZCBmaW5k
Zm9udCAxMCBzY2FsZWZvbnQgc2V0Zm9udAoKICAgIE5VTUJFUiAyIHN0cmluZyBjdnMgc2hvdwoK
ICAgICUgU3RhcnQgdGhlIGNsdWUgdGV4dCBhIGZldyBwaXhlbHMgdG8gdGhlCiAgICAlIHJpZ2h0
IG9mIHRoZSBjbHVlIG51bWJlciBjb2x1bW4gLi4uCgogICAgL0NMVUVfWCBDTFVFX1ggQ0xVRV9T
UEFDSU5HIGFkZCBkZWYKCiAgICAlIE1ha2Ugc3VyZSB0aGUgY2x1ZSB0ZXh0IGNvbWVzIG91dCBp
biB0aGUgcmlnaHQKICAgICUgZm9udCAuLi4KCiAgICAvVGltZXNSb21hbiBmaW5kZm9udCAxMCBz
Y2FsZWZvbnQgc2V0Zm9udAp9CmRlZgoKCiUKJSBTdGFydCB0aGUgYWNyb3NzIGNsdWVzIC4uLgol
CgovU3RhcnRBY3Jvc3NDbHVlcwp7CiAgICBDTFVFX1RPUFggU3RhcnRDbHVlTGlzdAp9CmRlZgoK
CiUKJSBTZXQgdGhlIG9mZnNldCBmb3IgdGhlIHN0YXJ0IG9mIGNsdWVzIC4uLgolCgovU3RhcnRD
bHVlTGlzdAp7CiAgICAvQ0xVRV9MRUZUWCBleGNoIGRlZgoKICAgIENMVUVfVE9QWSAvQ0xVRV9Z
IGV4Y2ggZGVmCn0KZGVmCgoKJQolIFN0YXJ0IHRoZSBkb3duIGNsdWVzIC4uLgolCgovU3RhcnRE
b3duQ2x1ZXMKewogICAgQ0xVRV9UT1BYIFNRVUFSRV9TSVpFIEdSSURfU0laRSBtdWwgMiBkaXYg
YWRkIFN0YXJ0Q2x1ZUxpc3QKfQpkZWYKCgolCiUgRHJhdyB0aGUgY3Jvc3N3b3JkJ3MgdGl0bGUg
Li4uCiUKCi9UaXRsZQp7CiAgICAlIFN0b3JlIHRoZSB0aXRsZSAuLi4KCiAgICAvVElUTEUgZXhj
aCBkZWYKCiAgICAlIENhbGN1bGF0ZSB0aGUgWCBvZmZzZXQgcmVxdWlyZWQgdG8gY2VudHJlCiAg
ICAlIHRoZSB0aXRsZSBhYm92ZSB0aGUgY3Jvc3N3b3JkIC4uLgoKICAgIC9UaW1lc1JvbWFuQm9s
ZCBmaW5kZm9udCAxNCBzY2FsZWZvbnQgc2V0Zm9udAoKICAgIFNRVUFSRV9TSVpFIDEgc3ViIEdS
SURfU0laRSBtdWwKICAgIFRJVExFIHN0cmluZ3dpZHRoIHBvcCBzdWIKICAgIDIgZGl2CiAgICBH
UklEX1RPUFggYWRkCgogICAgR1JJRF9UT1BZIDEyIGFkZAoKICAgIG1vdmV0bwoKICAgIFRJVExF
IHNob3cKfQpkZWYKCgolCiUgSG93IHRvIGRyYXcgYSB3aGl0ZSBzcXVhcmUKJQoKL1doaXRlU3F1
YXJlCnsKICAgICUgU3RvcmUgdGhlIHN0YWNrIGNvbnRlbnRzOiBYIFkgTlVNQkVSIEFOU1dFUgoK
ICAgIC9BTlNXRVIgZXhjaCBkZWYKICAgIC9OVU1CRVIgZXhjaCBkZWYKCiAgICBTUVVBUkVfU0la
RSAxIHN1YiBtdWwgR1JJRF9UT1BZIGV4Y2ggc3ViIC90b3BZIGV4Y2ggZGVmCiAgICBTUVVBUkVf
U0laRSAxIHN1YiBtdWwgR1JJRF9UT1BYIGV4Y2ggYWRkIC90b3BYIGV4Y2ggZGVmCgogICAgJSBT
dGFydCBhIG5ldyBwYXRoIHRvIGJlIHN0cm9rZWQgb3V0IC4uLgoKICAgIG5ld3BhdGgKCiAgICAl
IE1vdmUgdG8gdGhlIHRvcC1sZWZ0IGNvcm5lciBhbmQgZHJhdyBhIHNxdWFyZSwKICAgICUgdXNp
bmcgcmVsYXRpdmUgbGluZXRvJ3MgLi4uCgogICAgdG9wWCAgICAgICAgICAgICAgICAJdG9wWSAg
ICAgICAgICAgIAltb3ZldG8KICAgIFNRVUFSRV9TSVpFIDEgc3ViICAgICAJMCAgICAgICAgICAg
ICAgIAlybGluZXRvCiAgICAwICAgICAgICAgICAgICAgICAgIAlTUVVBUkVfU0laRSAxIHN1YiBu
ZWcJcmxpbmV0bwogICAgU1FVQVJFX1NJWkUgMSBzdWIgbmVnCTAgICAgICAgICAgIAkJcmxpbmV0
bwogICAgY2xvc2VwYXRoCgogICAgc3Ryb2tlCgogICAgJSBBZGQgdGhlIGNsdWUgbnVtYmVyIC4u
LgoKICAgIE5VTUJFUiAwIGd0CiAgICB7CglOVU1CRVJGT05UIHNldGZvbnQKCgl0b3BYIDIgYWRk
IHRvcFkgNiBzdWIgbW92ZXRvIE5VTUJFUiAyIHN0cmluZyBjdnMgc2hvdwogICAgfQogICAgaWYK
CiAgICAlIEFkZCB0aGUgYW5zd2VyICh3aGljaCBtYXkgYmUgYmxhbmspIC4uLgoKICAgIEFOU1dF
UkZPTlQgc2V0Zm9udAoKICAgIHRvcFggNyBhZGQgdG9wWSAxNiBzdWIgbW92ZXRvIEFOU1dFUiBz
aG93Cn0KZGVmCgoKJSBTZXQgdGhlIGxpbmUgd2lkdGggdG8gb25lIHBpeGVsIGFuZCBjb2xvdXIg
dG8gYmxhY2sgLi4uCgoxIHNldGxpbmV3aWR0aAowIHNldGNvbG9yCgowLjgwIDAuODAgc2NhbGUK
MTIwIDQ1IHRyYW5zbGF0ZQoKU1VCUk9VVElORVMKCiAgICBlbmQKCgogICAgZGVmIE91dHB1dFRp
dGxlKG91dCA9ICRzdGRvdXQpCgoJb3V0LnB1dHMgIigje0B0aXRsZX0pIFRpdGxlIgoKICAgIGVu
ZAoKCiAgICBkZWYgVGl0bGUKCUB0aXRsZQogICAgZW5kCiAgICAKZW5kCgoKaWYgJDAgPT0gX19G
SUxFX18KCiAgICBjcm9zc3dvcmRGaWxlID0gQVJHVlswXQoKICAgIGlmIEFSR1YubGVuZ3RoID4g
MQoJYW5zd2VycyA9IEFSR1ZbMV0KICAgIGVsc2UKCWFuc3dlcnMgPSBuaWwKICAgIGVuZAoJCiAg
ICBjID0gQ3Jvc3N3b3JkLm5ldyhjcm9zc3dvcmRGaWxlLCBhbnN3ZXJzKQoKICAgIGMuT3V0cHV0
UG9zdHNjcmlwdChhbnN3ZXJzICE9IG5pbCkKCmVuZAoK


----=_NextPart_ST_19_46_05_Monday_December_06_2004_17975--