--00504502bc639b1d3004777bf8a1
Content-Type: text/plain; charset=ISO-8859-1

okay, that was long and painful, but i have emerged triumphant ... i hope :)

http://pastie.org/681968 and attached

martin

--00504502bc639b1d3004777bf8a1
Content-Type: application/octet-stream; name="hamurabi.rb"
Content-Disposition: attachment; filename="hamurabi.rb"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g1l0n7as0

IyAqKiogQ09OVkVSVEVEIEZST00gVEhFIE9SSUdJTkFMIEZPQ0FMIFBST0dSQU0gQU5EIE1PRElG
SUVECiMgKioqIEZPUiBFRFVTWVNURU0gNzAgQlkgREFWSUQgQUhMLCBESUdJVEFMCiMgKioqIE1P
RElGSUVEIEZPUiA4SyBNSUNST1NPRlQgQkFTSUMgQlkgUEVURVIgVFVSTkJVTEwKIyAqKiogUlVC
WSBQT1JUIEJZIE1BUlRJTiBERU1FTExPCgpjbGFzcyBBZHZpc29yRXhjZXB0aW9uIDwgRXhjZXB0
aW9uOyBlbmQKCmNsYXNzIEhhbXVyYWJpCiAgYXR0cl9hY2Nlc3NvciA6eWVhciwgOnBvcHVsYXRp
b24sIDphY3JlcywgOmdyYWluLCA6ZXhjaGFuZ2UKICBhdHRyX2FjY2Vzc29yIDpzdGF0cywgOnN0
YXJ2ZWQsIDppbmMsIDpyYXRzLCA6aGFydmVzdAoKICBkZWYgaW5pdGlhbGl6ZQogICAgQHN0YXRz
ID0gezp0b3RhbCA9PiAwLCA6YXZnID0+IDB9ICMgc3RhcnZhdGlvbiBzdGF0aXN0aWNzCiAgICBA
eWVhciA9IDAKICAgIEBwb3B1bGF0aW9uID0gOTUKICAgIEBncmFpbiA9IDI4MDAKICAgIEByYXRz
ID0gMjAwCiAgICBAYWNyZXMgPSAxMDAwCiAgICBAc3RhcnZlZCA9IDAKICAgIEBpbmMgPSA1CiAg
ICBAaGFydmVzdCA9IDMKICBlbmQKCiAgZGVmIGludHJvCiAgICBwdXRzICJUUlkgWU9VUiBIQU5E
IEFUIEdPVkVSTklORyBBTkNJRU5UIFNVTUVSSUEiCiAgICBwdXRzICJTVUNDRVNTRlVMTFkgRk9S
IEEgMTAtWVIgVEVSTSBPRiBPRkZJQ0UuIgogICAgcHV0cwogIGVuZAoKICBkZWYgcm9sbAogICAg
cmFuZCg1KSArIDEKICBlbmQKICAKICBkZWYgdXBkYXRlCiAgICBzZWxmLnllYXIgKz0gMQogICAg
c2VsZi5leGNoYW5nZSA9IHJhbmQoMTApICsgMTcKICAgIHNlbGYucG9wdWxhdGlvbiArPSBpbmMK
ICAgIHB1dHMKICAgIHB1dHMKICAgIHB1dHMgIkhBTVVSQUJJOiAgSSBCRUcgVE8gUkVQT1JUIFRP
IFlPVSwiCiAgICBwdXRzICJJTiBZRUFSICN7eWVhcn0sICN7c3RhcnZlZH0gUEVPUExFIFNUQVJW
RUQsICN7aW5jfSBDQU1FIFRPIFRIRSBDSVRZLiIKICAgIHB1dHMgIlBPUFVMQVRJT04gSVMgTk9X
ICN7cG9wdWxhdGlvbn0iIAogICAgcHV0cyAiVEhFIENJVFkgTk9XIE9XTlMgI3thY3Jlc30gQUNS
RVMuIgogICAgcHV0cyAiWU9VIEhBUlZFU1RFRCAje2hhcnZlc3R9IEJVU0hFTFMgUEVSIEFDUkUu
IgogICAgcHV0cyAiUkFUUyBBVEUgI3tyYXRzfSBCVVNIRUxTLiIKICAgIHB1dHMgIllPVSBOT1cg
SEFWRSAje2dyYWlufSBCVVNIRUxTIElOIFNUT1JFLiIKICAgIHB1dHMKICBlbmQKCiAgZGVmIGN5
Y2xlCiAgICB1cGRhdGUKCiAgICAjIG1ha2UgZGVjaXNpb25zCiAgICB0cmFkZV9sYW5kCiAgICBm
ZWQgPSBhbGxvY2F0ZV9mb29kIC8gMjAKICAgIHBsYW50ZWQgPSBwbGFudF9ncmFpbgogICAgCiAg
ICAjIHRocm93IHRoZSBkaWNlCiAgICBzZWxmLmhhcnZlc3QgPSByb2xsCiAgICBjcm9wID0gcGxh
bnRlZCAqIGhhcnZlc3QKICAgIGMgPSByb2xsCiAgICBzZWxmLnJhdHMgPSBjICUgMiA9PSAwID8g
Z3JhaW4vYyA6IDAKICAgIHNlbGYuZ3JhaW4gPSBncmFpbiAtIHJhdHMgKyBjcm9wIAogICAgCiAg
ICBzZWxmLmluYyA9IHJvbGwqKDIwKmFjcmVzK2dyYWluKS9wb3B1bGF0aW9uLzEwMCsxCiAgICBw
bGFndWUgaWYgcmFuZCA8IDAuMTUKICAgIHN0YXJ2ZWQgPSBwb3B1bGF0aW9uIDwgZmVkID8gMCA6
IHBvcHVsYXRpb24gLSBmZWQKICAgIGltcGVhY2hlZCEoc3RhcnZlZCkgaWYgc3RhcnZlZCA+IHBv
cHVsYXRpb24gKiAwLjQ1CiAgICBzdGF0c1s6YXZnXSA9KCh5ZWFyIC0gMSkgKiBzdGF0c1s6YXZn
XSArIHN0YXJ2ZWQgKiAxMDAuMC9wb3B1bGF0aW9uKS95ZWFyCiAgICBzdGF0c1s6dG90YWxdICs9
IHN0YXJ2ZWQKICBlbmQKCiAgZGVmIHBsYWd1ZQogICAgc2VsZi5wb3B1bGF0aW9uIC89IDIKICAg
IHB1dHMgIkEgSE9SUklCTEUgUExBR1VFIFNUUlVDSyEgIEhBTEYgVEhFIFBFT1BMRSBESUVELiIK
ICBlbmQKCiAgIyBkZWNpc2lvbnMKICBkZWYgcmVmdXNlCiAgICBwdXRzCiAgICBwdXRzICJIQU1V
UkFCSTogIEkgQ0FOTk9UIERPIFdIQVQgWU9VIFdJU0guIgogICAgcHV0cyAiR0VUIFlPVVJTRUxG
IEFOT1RIRVIgU1RFV0FSRCEhISEhIgogICAgYnllCiAgZW5kCiAgCiAgZGVmIGdldF9udW0ocHJv
bXB0KQogICAgcHJpbnQgIiN7cHJvbXB0fTogIgogICAgaSA9IGdldHMudG9faQogICAgcmVmdXNl
IGlmIGkgPCAwCiAgICBpCiAgZW5kCgogIGRlZiBhY3Rpb24KICAgIHdoaWxlIHRydWUKICAgICAg
YmVnaW4KICAgICAgICByZXR1cm4geWllbGQKICAgICAgcmVzY3VlIEFkdmlzb3JFeGNlcHRpb24g
PT4gZQogICAgICAgIHB1dHMgZS50b19zICsgIiBOT1csIFRIRU4sIgogICAgICBlbmQKICAgIGVu
ZAogIGVuZAoKICBkZWYgY2hlY2soY29uZCwgbXNnKQogICAgcmFpc2UgQWR2aXNvckV4Y2VwdGlv
bi5uZXcobXNnKSB1bmxlc3MgY29uZAogIGVuZAoKICBkZWYgb3V0X29mX2dyYWluX2Vycm9yCiAg
ICByZXR1cm4gIkhBTVVSQUJJOiAgVEhJTksgQUdBSU4uIFlPVSBIQVZFIE9OTFkgI3tncmFpbn0g
QlVTSEVMUyBPRiBHUkFJTi4iCiAgZW5kCgogIGRlZiBzZWxsX2xhbmQKICAgIGFjdGlvbiBkbwog
ICAgICBxID0gZ2V0X251bSgle0hPVyBNQU5ZIEFDUkVTIERPIFlPVSBXSVNIIFRPIFNFTEx9KQog
ICAgICBjaGVjayhxIDwgYWNyZXMsICJIQU1VUkFCSTogIFRISU5LIEFHQUlOLiBZT1UgT1dOIE9O
TFkgI3thY3Jlc30gQUNSRVMuIikKICAgICAgc2VsZi5hY3JlcyAtPSBxCiAgICAgIHNlbGYuZ3Jh
aW4gKz0gZXhjaGFuZ2UqcQogICAgZW5kCiAgZW5kCgogIGRlZiB0cmFkZV9sYW5kCiAgICBwdXRz
ICJMQU5EIElTIFRSQURJTkcgQVQgI3tleGNoYW5nZX0gQlVTSEVMUyBQRVIgQUNSRS4iCiAgICBh
Y3Rpb24gZG8KICAgICAgcSA9IGdldF9udW0oIkhPVyBNQU5ZIEFDUkVTIERPIFlPVSBXSVNIIFRP
IEJVWSIpCiAgICAgIHJldHVybiBzZWxsX2xhbmQgaWYgcSA9PSAwCiAgICAgIGNoZWNrKGV4Y2hh
bmdlICogcSA8PSBncmFpbiwgb3V0X29mX2dyYWluX2Vycm9yKQogICAgICBzZWxmLmFjcmVzICs9
IHEKICAgICAgc2VsZi5ncmFpbiAtPSBleGNoYW5nZSpxCiAgICBlbmQKICBlbmQKCiAgZGVmIGFs
bG9jYXRlX2Zvb2QKICAgIGFjdGlvbiBkbwogICAgICBxID0gZ2V0X251bSgiSE9XIE1BTlkgQlVT
SEVMUyBETyBZT1UgV0lTSCBUTyBGRUVEIFlPVVIgUEVPUExFIikKICAgICAgY2hlY2socSA8PSBn
cmFpbiwgb3V0X29mX2dyYWluX2Vycm9yKQogICAgICBzZWxmLmdyYWluIC09IHEKICAgICAgcQog
ICAgZW5kCiAgZW5kCgogIGRlZiBwbGFudF9ncmFpbgogICAgYWN0aW9uIGRvCiAgICAgIGQgPSBn
ZXRfbnVtKCJIT1cgTUFOWSBBQ1JFUyBETyBZT1UgV0lTSCBUTyBQTEFOVCBXSVRIIFNFRUQiKQog
ICAgICByZXR1cm4gMCBpZiBkID09IDAKICAgICAgY2hlY2soZCA8PSBhY3JlcywgIkhBTVVSQUJJ
OiAgVEhJTksgQUdBSU4uIFlPVSBPV04gT05MWSAje2FjcmVzfSBBQ1JFUy4iKQogICAgICBjaGVj
ayhkLzIgPCBncmFpbiwgb3V0X29mX2dyYWluX2Vycm9yKQogICAgICBjaGVjayhkIDwgMTAqcG9w
dWxhdGlvbiwgIkJVVCBZT1UgSEFWRSBPTkxZICN7cG9wdWxhdGlvbn0gUEVPUExFIFRPIFRFTkQg
VEhFIEZJRUxEUy4iKQogICAgICBzZWxmLmdyYWluIC09IGQvMgogICAgICBkCiAgICBlbmQKICBl
bmQKCiAgZGVmIHNjb3JlCiAgICBsID0gYWNyZXMvcG9wdWxhdGlvbgogICAgYSA9IHN0YXRzWzph
dmddCiAgICBwdXRzICJJTiBZT1VSIDEwLVlFQVIgVEVSTSBPRiBPRkZJQ0UsICN7YX0gUEVSQ0VO
VCBPRiBUSEUiCiAgICBwdXRzICJQT1BVTEFUSU9OIFNUQVJWRUQgUEVSIFlFQVIgT04gQVZFUkFH
RSwgSS5FLiwgQSBUT1RBTCBPRiIKICAgIHB1dHMgIiN7c3RhdHNbOnRvdGFsXX0gUEVPUExFIERJ
RUQhISIKICAgIHB1dHMgIllPVSBTVEFSVEVEIFdJVEggMTAgQUNSRVMgUEVSIFBFUlNPTiBBTkQg
RU5ERUQgV0lUSCIKICAgIHB1dHMgIiN7bH0gQUNSRVMgUEVSIFBFUlNPTi4iCiAgICBwdXRzCiAg
ICBjYXNlIHRydWUKICAgIHdoZW4gKGEgPiAzMyBvciBsIDwgNykgdGhlbiBpbXBlYWNoIQogICAg
d2hlbiAoYSA+IDEwIG9yIGwgPCA5KSB0aGVuIGxvc2UKICAgIHdoZW4gKGEgPiAzIG9yIGwgPCAx
MCkgdGhlbiBibGVoCiAgICBlbHNlIHdpbgogICAgZW5kCiAgZW5kCgoKICBkZWYgd2luCiAgICBw
dXRzICJBIEZBTlRBU1RJQyBQRVJGT1JNQU5DRSEhISAgQ0hBUkxFTUFOR0UsIERJU1JBRUxJLCBB
TkQiCiAgICBwdXRzICJKRUZGRVJTT04gQ09NQklORUQgQ09VTEQgTk9UIEhBVkUgRE9ORSBCRVRU
RVIhIgogIGVuZAoKICBkZWYgbG9zZQogICAgcHV0cyAiWU9VUiBIRUFWWS1IQU5ERUQgUEVSRk9S
TUFOQ0UgU01BQ0tTIE9GIE5FUk8gQU5EIElWQU4gSVYuIgogICAgcHV0cyAiVEhFIFBFT1BMRSAo
UkVNQUlOSU5HKSBGSU5EIFlPVSBBTiBVTlBMRUFTQU5UIFJVTEVSLCBBTkQsIgogICAgcHV0cyAi
RlJBTktMWSwgSEFURSBZT1VSIEdVVFMhIgogIGVuZAoKICBkZWYgYmxlaAogICAgcHV0cyAiWU9V
UiBQRVJGT1JNQU5DRSBDT1VMRCBIQVZFIEJFRU4gU09NRVdIQVQgQkVUVEVSLCBCVVQiCiAgICBw
dXRzICJSRUFMTFkgV0FTTidUIFRPTyBCQUQgQVQgQUxMLiAiOwogICAgcHV0cyAiI3tyYW5kKHBv
cHVsYXRpb24qOC8xMCl9IFBFT1BMRSBXT1VMRCIKICAgIHB1dHMgIkRFQVJMWSBMSUtFIFRPIFNF
RSBZT1UgQVNTQVNTSU5BVEVEIEJVVCBXRSBBTEwgSEFWRSBPVVIiCiAgICBwdXRzICJUUklWSUFM
IFBST0JMRU1TLiIKICBlbmQKCiAgZGVmIGltcGVhY2hlZCEoc3RhcnZlZCA9IG5pbCkKICAgIHB1
dHMKICAgIHB1dHMgIllPVSBTVEFSVkVEICN7c3RhcnZlZH0gUEVPUExFIElOIE9ORSBZRUFSISEh
IiBpZiBzdGFydmVkCiAgICBwdXRzICJEVUUgVE8gVEhJUyBFWFRSRU1FIE1JU01BTkFHRU1FTlQg
WU9VIEhBVkUgTk9UIE9OTFkiCiAgICBwdXRzICJCRUVOIElNUEVBQ0hFRCBBTkQgVEhST1dOIE9V
VCBPRiBPRkZJQ0UgQlVUIFlPVSBIQVZFIgogICAgcHV0cyAiQUxTTyBCRUVOIERFQ0xBUkVEICdO
QVRJT05BTCBGSU5LJyAhISIKICAgIGJ5ZQogIGVuZAoKICBkZWYgYnllCiAgICAxMC50aW1lcyB7
IHByaW50IDcuY2hyIH0KICAgIHB1dHMgIlNPIExPTkcgRk9SIE5PVy4iCiAgICBleGl0CiAgZW5k
CgplbmQKCiMgbWFpbiBsb29wCgpnYW1lID0gSGFtdXJhYmkubmV3CmdhbWUuaW50cm8KMTAudGlt
ZXMgeyBnYW1lLmN5Y2xlIH0KZ2FtZS5zY29yZQpieWUK
--00504502bc639b1d3004777bf8a1--