[sword-devel] cipherfilter
Helmer Krämer
sword-devel@crosswire.org
Sat, 28 Sep 2002 16:46:39 +0200
This is a multi-part message in MIME format.
--Multipart_Sat__28_Sep_2002_16:46:39_+0200_085df7b8
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Hi all,
the attached patch is an attempt to fix the we-use-the-key-param-to-tell-
the-filter-to-decipher hack.
Dunno if it really works, but I can compile sword without any problem
and CVS gnomesword correctly displays the ciphered texts, so it can't
be completely wrong.
Greetings,
Helmer
--Multipart_Sat__28_Sep_2002_16:46:39_+0200_085df7b8
Content-Type: application/octet-stream;
name="cipher-patch"
Content-Disposition: attachment;
filename="cipher-patch"
Content-Transfer-Encoding: base64
SW5kZXg6IC4vaW5jbHVkZS9jaXBoZXJmaWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL2xv
Y2FsL2N2c3Jvb3Qvc3dvcmQvaW5jbHVkZS9jaXBoZXJmaWwuaCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS44CmRpZmYgLXcgLXUgLXAgLXIxLjggY2lwaGVyZmlsLmgKLS0tIC4vaW5jbHVkZS9jaXBo
ZXJmaWwuaAkyOCBKdWwgMjAwMiAwMTo0ODozOCAtMDAwMAkxLjgKKysrIC4vaW5jbHVkZS9jaXBo
ZXJmaWwuaAkyOCBTZXAgMjAwMiAxNDoxNzo1NyAtMDAwMApAQCAtMjYsMTMgKzI2LDQ3IEBACiAK
ICNpbmNsdWRlIDxkZWZzLmg+CiAKLWNsYXNzIFNXRExMRVhQT1JUIENpcGhlckZpbHRlcjpwdWJs
aWMgU1dGaWx0ZXIgeworZW51bSBDaXBoZXJUeXBlIHsgRU5DSVBIRVIsIERFQ0lQSEVSIH07CisK
KwordGVtcGxhdGUgPGNvbnN0IENpcGhlclR5cGUgdHlwZT4gY2xhc3MgU1dETExFWFBPUlQgQ2lw
aGVyRmlsdGVyOnB1YmxpYyBTV0ZpbHRlciB7CiAJU1dDaXBoZXIgKmNpcGhlcjsKIHB1YmxpYzoK
LQlDaXBoZXJGaWx0ZXIoY29uc3QgY2hhciAqa2V5KTsKLQl2aXJ0dWFsIH5DaXBoZXJGaWx0ZXIo
KTsKLQl2aXJ0dWFsIGNoYXIgUHJvY2Vzc1RleHQoY2hhciAqdGV4dCwgaW50IG1heGxlbiwgY29u
c3QgU1dLZXkgKmtleSwgY29uc3QgU1dNb2R1bGUgKiA9IDApOwotCXZpcnR1YWwgU1dDaXBoZXIg
KmdldENpcGhlcigpOworCUNpcGhlckZpbHRlcihjb25zdCBjaGFyICprZXkpIHsKKwkJY2lwaGVy
ID0gbmV3IFNXQ2lwaGVyKCh1bnNpZ25lZCBjaGFyICopa2V5KTsKKwl9CisKKwl2aXJ0dWFsIH5D
aXBoZXJGaWx0ZXIoKSB7CisJCWRlbGV0ZSBjaXBoZXI7CisJfQorCisJdmlydHVhbCBjaGFyIFBy
b2Nlc3NUZXh0KGNoYXIgKnRleHQsIGludCBtYXhsZW4sIGNvbnN0IFNXS2V5ICprZXksIGNvbnN0
IFNXTW9kdWxlICogPSAwKSB7fQorCQorCXZpcnR1YWwgU1dDaXBoZXIgKmdldENpcGhlcigpIHsK
KwkJcmV0dXJuIGNpcGhlcjsKKwl9CiB9OwogCitjaGFyIENpcGhlckZpbHRlcjxERUNJUEhFUj46
OlByb2Nlc3NUZXh0KGNoYXIgKnRleHQsIGludCBtYXhsZW4sIGNvbnN0IFNXS2V5ICprZXksIGNv
bnN0IFNXTW9kdWxlICopICB7CisJaWYobWF4bGVuID4gMCkgeworCQl1bnNpZ25lZCBpbnQgbGVu
ID0gbWF4bGVuOworCisJICAgICAgICBjaXBoZXItPmNpcGhlckJ1ZigmbGVuLCB0ZXh0KTsKKyAg
ICAgICAgICAgICAgICBtZW1jcHkodGV4dCwgY2lwaGVyLT5CdWYoKSwgKGxlbiA8ICh1bnNpZ25l
ZCBpbnQpbWF4bGVuKSA/IGxlbiA6IG1heGxlbik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2No
YXIgQ2lwaGVyRmlsdGVyPEVOQ0lQSEVSPjo6UHJvY2Vzc1RleHQoY2hhciAqdGV4dCwgaW50IG1h
eGxlbiwgY29uc3QgU1dLZXkgKmtleSwgY29uc3QgU1dNb2R1bGUgKikgeworCWlmKG1heGxlbiA+
IDApIHsKKwkJdW5zaWduZWQgaW50IGxlbiA9IG1heGxlbjsKKworCSAgICAgICAgY2lwaGVyLT5C
dWYodGV4dCwgbGVuKTsKKyAgICAgICAgICAgICAgICBjaXBoZXItPmNpcGhlckJ1ZigmbGVuKTsK
KyAgICAgICAgICAgICAgICBtZW1jcHkodGV4dCwgY2lwaGVyLT5jaXBoZXJCdWYoJmxlbiksIChs
ZW4gPCAodW5zaWduZWQgaW50KShtYXhsZW4pKSA/IGxlbiA6IG1heGxlbik7CisJfQorCisJcmV0
dXJuIDA7Cit9CiAjZW5kaWYKSW5kZXg6IC4vc3JjL21nci9zd21nci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL3Vzci9sb2NhbC9jdnNyb290L3N3b3JkL3NyYy9tZ3Ivc3dtZ3IuY3BwLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjc5CmRpZmYgLXcgLXUgLXAgLXIxLjc5IHN3bWdyLmNwcAotLS0g
Li9zcmMvbWdyL3N3bWdyLmNwcAk5IEF1ZyAyMDAyIDA1OjUzOjQ4IC0wMDAwCTEuNzkKKysrIC4v
c3JjL21nci9zd21nci5jcHAJMjggU2VwIDIwMDIgMTQ6MTc6NTggLTAwMDAKQEAgLTgyMyw3ICs4
MjMsNyBAQCB2b2lkIFNXTWdyOjpBZGRSYXdGaWx0ZXJzKFNXTW9kdWxlICptb2R1CiAKIAljaXBo
ZXJLZXkgPSAoKGVudHJ5ID0gc2VjdGlvbi5maW5kKCJDaXBoZXJLZXkiKSkgIT0gc2VjdGlvbi5l
bmQoKSkgPyAoKmVudHJ5KS5zZWNvbmQgOiAoc3RyaW5nKSIiOwogCWlmICghY2lwaGVyS2V5LmVt
cHR5KCkpIHsKLQkJU1dGaWx0ZXIgKmNpcGhlckZpbHRlciA9IG5ldyBDaXBoZXJGaWx0ZXIoY2lw
aGVyS2V5LmNfc3RyKCkpOworCQlTV0ZpbHRlciAqY2lwaGVyRmlsdGVyID0gbmV3IENpcGhlckZp
bHRlcjxERUNJUEhFUj4oY2lwaGVyS2V5LmNfc3RyKCkpOwogCQljaXBoZXJGaWx0ZXJzLmluc2Vy
dChGaWx0ZXJNYXA6OnZhbHVlX3R5cGUobW9kdWxlLT5OYW1lKCksIGNpcGhlckZpbHRlcikpOwog
CQljbGVhbnVwRmlsdGVycy5wdXNoX2JhY2soY2lwaGVyRmlsdGVyKTsKIAkJbW9kdWxlLT5BZGRS
YXdGaWx0ZXIoY2lwaGVyRmlsdGVyKTsKQEAgLTEwNjYsMTQgKzEwNjYsMTQgQEAgc2lnbmVkIGNo
YXIgU1dNZ3I6OnNldENpcGhlcktleShjb25zdCBjaAogCS8vIGNoZWNrIGZvciBmaWx0ZXIgdGhh
dCBhbHJlYWR5IGV4aXN0cwogCWl0ID0gY2lwaGVyRmlsdGVycy5maW5kKG1vZE5hbWUpOwogCWlm
IChpdCAhPSBjaXBoZXJGaWx0ZXJzLmVuZCgpKSB7Ci0JCSgoQ2lwaGVyRmlsdGVyICopKCppdCku
c2Vjb25kKS0+Z2V0Q2lwaGVyKCktPnNldENpcGhlcktleShrZXkpOworCQkoKENpcGhlckZpbHRl
cjxERUNJUEhFUj4gKikoKml0KS5zZWNvbmQpLT5nZXRDaXBoZXIoKS0+c2V0Q2lwaGVyS2V5KGtl
eSk7CiAJCXJldHVybiAwOwogCX0KIAkvLyBjaGVjayBpZiBtb2R1bGUgZXhpc3RzCiAJZWxzZSB7
CiAJCWl0MiA9IE1vZHVsZXMuZmluZChtb2ROYW1lKTsKIAkJaWYgKGl0MiAhPSBNb2R1bGVzLmVu
ZCgpKSB7Ci0JCQlTV0ZpbHRlciAqY2lwaGVyRmlsdGVyID0gbmV3IENpcGhlckZpbHRlcihrZXkp
OworCQkJU1dGaWx0ZXIgKmNpcGhlckZpbHRlciA9IG5ldyBDaXBoZXJGaWx0ZXI8REVDSVBIRVI+
KGtleSk7CiAJCQljaXBoZXJGaWx0ZXJzLmluc2VydChGaWx0ZXJNYXA6OnZhbHVlX3R5cGUobW9k
TmFtZSwgY2lwaGVyRmlsdGVyKSk7CiAJCQljbGVhbnVwRmlsdGVycy5wdXNoX2JhY2soY2lwaGVy
RmlsdGVyKTsKIAkJCSgqaXQyKS5zZWNvbmQtPkFkZFJhd0ZpbHRlcihjaXBoZXJGaWx0ZXIpOwpJ
bmRleDogLi9zcmMvbW9kdWxlcy9jb21tZW50cy9yYXdjb20vcmF3Y29tLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvdXNyL2xvY2FsL2N2c3Jvb3Qvc3dvcmQvc3JjL21vZHVsZXMvY29tbWVudHMv
cmF3Y29tL3Jhd2NvbS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjUKZGlmZiAtdyAtdSAt
cCAtcjEuMjUgcmF3Y29tLmNwcAotLS0gLi9zcmMvbW9kdWxlcy9jb21tZW50cy9yYXdjb20vcmF3
Y29tLmNwcAkyNiBTZXAgMjAwMiAwMjo0Mzo0OSAtMDAwMAkxLjI1CisrKyAuL3NyYy9tb2R1bGVz
L2NvbW1lbnRzL3Jhd2NvbS9yYXdjb20uY3BwCTI4IFNlcCAyMDAyIDE0OjE3OjU4IC0wMDAwCkBA
IC03OCw3ICs3OCw2IEBAIGNoYXIgKlJhd0NvbTo6Z2V0UmF3RW50cnkoKSB7CiAJcmVhZHRleHQo
a2V5LT5UZXN0YW1lbnQoKSwgc3RhcnQsIChzaXplICsgMiksIGVudHJ5YnVmKTsKICAgICAgZW50
cnlidWZbc2l6ZV0gPSAwOwogCi0JcmF3RmlsdGVyKGVudHJ5YnVmLCBzaXplLCAwKTsJLy8gaGFj
aywgZGVjaXBoZXIKIAlyYXdGaWx0ZXIoZW50cnlidWYsIHNpemUsIGtleSk7CiAKICAgICAgICAg
aWYgKCFpc1VuaWNvZGUoKSkKSW5kZXg6IC4vc3JjL21vZHVsZXMvY29tbW9uL3N3Y2lwaGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL2xvY2FsL2N2c3Jvb3Qvc3dvcmQvc3JjL21vZHVs
ZXMvY29tbW9uL3N3Y2lwaGVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXcg
LXUgLXAgLXIxLjUgc3djaXBoZXIuY3BwCkluZGV4OiAuL3NyYy9tb2R1bGVzL2ZpbHRlcnMvY2lw
aGVyZmlsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL2xvY2FsL2N2c3Jvb3Qvc3dvcmQv
c3JjL21vZHVsZXMvZmlsdGVycy9jaXBoZXJmaWwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjEyCmRpZmYgLXcgLXUgLXAgLXIxLjEyIGNpcGhlcmZpbC5jcHAKLS0tIC4vc3JjL21vZHVsZXMv
ZmlsdGVycy9jaXBoZXJmaWwuY3BwCTI2IFNlcCAyMDAyIDAyOjQzOjQ5IC0wMDAwCTEuMTIKKysr
IC4vc3JjL21vZHVsZXMvZmlsdGVycy9jaXBoZXJmaWwuY3BwCTI4IFNlcCAyMDAyIDE0OjE3OjU4
IC0wMDAwCkBAIC03LDM4ICs3LDMgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxz
dHJpbmcuaD4KICNpbmNsdWRlIDxjaXBoZXJmaWwuaD4KLQotCi1DaXBoZXJGaWx0ZXI6OkNpcGhl
ckZpbHRlcihjb25zdCBjaGFyICprZXkpIHsKLQljaXBoZXIgPSBuZXcgU1dDaXBoZXIoKHVuc2ln
bmVkIGNoYXIgKilrZXkpOwotfQotCi0KLUNpcGhlckZpbHRlcjo6fkNpcGhlckZpbHRlcigpIHsK
LQlkZWxldGUgY2lwaGVyOwotfQotCi0KLVNXQ2lwaGVyICpDaXBoZXJGaWx0ZXI6OmdldENpcGhl
cigpIHsKLQlyZXR1cm4gY2lwaGVyOwotfQotCi0KLWNoYXIgQ2lwaGVyRmlsdGVyOjpQcm9jZXNz
VGV4dChjaGFyICp0ZXh0LCBpbnQgbWF4bGVuLCBjb25zdCBTV0tleSAqa2V5LCBjb25zdCBTV01v
ZHVsZSAqbW9kdWxlKSB7Ci0JdW5zaWduZWQgaW50IGxlbjsKLS8vCWxlbiA9IHN0cmxlbih0ZXh0
KTsKLQlsZW4gPSBtYXhsZW47Ci0JaWYgKGxlbiA+IDApIHsKLQkJaWYgKCFrZXkpIHsJLy8gaGFj
aywgdXNpbmcga2V5IHRvIGRldGVybWluZSBlbmNpcGhlciwgb3IgZGVjaXBoZXIKLQkJCWNpcGhl
ci0+Y2lwaGVyQnVmKCZsZW4sIHRleHQpOwotCQkJbWVtY3B5KHRleHQsIGNpcGhlci0+QnVmKCks
IChsZW4gPCAodW5zaWduZWQgaW50KShtYXhsZW4pKSA/IGxlbiA6IG1heGxlbik7Ci0JCX0KLQkJ
ZWxzZSBpZiAoKHVuc2lnbmVkIGxvbmcpa2V5ID09IDEpIHsKLQkJCWNpcGhlci0+QnVmKHRleHQs
IGxlbik7Ci0JCQljaXBoZXItPmNpcGhlckJ1ZigmbGVuKTsKLQkJCW1lbWNweSh0ZXh0LCBjaXBo
ZXItPmNpcGhlckJ1ZigmbGVuKSwgKGxlbiA8ICh1bnNpZ25lZCBpbnQpKG1heGxlbikpID8gbGVu
IDogbWF4bGVuKTsKLQkJfQotCX0KLS8vCXRleHRbbWF4bGVuXSA9IDA7Ci0JcmV0dXJuIDA7Ci19
CkluZGV4OiAuL3NyYy9tb2R1bGVzL2dlbmJvb2svcmF3Z2VuYm9vay9yYXdnZW5ib29rLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL2xvY2FsL2N2c3Jvb3Qvc3dvcmQvc3JjL21vZHVsZXMv
Z2VuYm9vay9yYXdnZW5ib29rL3Jhd2dlbmJvb2suY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjcKZGlmZiAtdyAtdSAtcCAtcjEuNyByYXdnZW5ib29rLmNwcAotLS0gLi9zcmMvbW9kdWxlcy9n
ZW5ib29rL3Jhd2dlbmJvb2svcmF3Z2VuYm9vay5jcHAJMjYgU2VwIDIwMDIgMDI6NDM6NDkgLTAw
MDAJMS43CisrKyAuL3NyYy9tb2R1bGVzL2dlbmJvb2svcmF3Z2VuYm9vay9yYXdnZW5ib29rLmNw
cAkyOCBTZXAgMjAwMiAxNDoxNzo1OCAtMDAwMApAQCAtMTE0LDcgKzExNCw2IEBAIGNoYXIgKlJh
d0dlbkJvb2s6OmdldFJhd0VudHJ5KCkgewogCQlyZWFkKGJkdGZkLT5nZXRGZCgpLCBlbnRyeUJ1
Ziwgc2l6ZSk7CiAgICAgICAgICAgZW50cnlCdWZbc2l6ZV0gPSAwOwogCi0JCXJhd0ZpbHRlcihl
bnRyeUJ1Ziwgc2l6ZSwgMCk7CS8vIGhhY2ssIGRlY2lwaGVyCiAJCXJhd0ZpbHRlcihlbnRyeUJ1
Ziwgc2l6ZSwga2V5KTsKIAogCQkgICBpZiAoIWlzVW5pY29kZSgpKQpJbmRleDogLi9zcmMvbW9k
dWxlcy9sZXhkaWN0L3Jhd2xkL3Jhd2xkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL2xv
Y2FsL2N2c3Jvb3Qvc3dvcmQvc3JjL21vZHVsZXMvbGV4ZGljdC9yYXdsZC9yYXdsZC5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjMKZGlmZiAtdyAtdSAtcCAtcjEuMjMgcmF3bGQuY3BwCi0t
LSAuL3NyYy9tb2R1bGVzL2xleGRpY3QvcmF3bGQvcmF3bGQuY3BwCTI2IFNlcCAyMDAyIDAyOjQz
OjQ5IC0wMDAwCTEuMjMKKysrIC4vc3JjL21vZHVsZXMvbGV4ZGljdC9yYXdsZC9yYXdsZC5jcHAJ
MjggU2VwIDIwMDIgMTQ6MTc6NTggLTAwMDAKQEAgLTkwLDcgKzkwLDYgQEAgY2hhciBSYXdMRDo6
Z2V0RW50cnkobG9uZyBhd2F5KQogCiAJaWYgKCEocmV0dmFsID0gZmluZG9mZnNldChidWYsICZz
dGFydCwgJnNpemUsIGF3YXkpKSkgewogCQlyZWFkdGV4dChzdGFydCwgJnNpemUsICZpZHhidWYs
ICZlbnRyeWJ1Zik7Ci0JCXJhd0ZpbHRlcihlbnRyeWJ1Ziwgc2l6ZSwgMCk7CS8vIGhhY2ssIGRl
Y2lwaGVyCiAJCXJhd0ZpbHRlcihlbnRyeWJ1Ziwgc2l6ZSwga2V5KTsKIAkJZW50cnlTaXplID0g
c2l6ZTsgICAgICAgIC8vIHN1cHBvcnQgZ2V0RW50cnlTaXplIGNhbGwKIAkJaWYgKCFrZXktPlBl
cnNpc3QoKSkJCQkvLyBJZiB3ZSBoYXZlIG91ciBvd24ga2V5CkluZGV4OiAuL3NyYy9tb2R1bGVz
L2xleGRpY3QvcmF3bGQ0L3Jhd2xkNC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3Vzci9sb2Nh
bC9jdnNyb290L3N3b3JkL3NyYy9tb2R1bGVzL2xleGRpY3QvcmF3bGQ0L3Jhd2xkNC5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtdyAtdSAtcCAtcjEuMTMgcmF3bGQ0LmNwcAot
LS0gLi9zcmMvbW9kdWxlcy9sZXhkaWN0L3Jhd2xkNC9yYXdsZDQuY3BwCTI2IFNlcCAyMDAyIDAy
OjQzOjQ5IC0wMDAwCTEuMTMKKysrIC4vc3JjL21vZHVsZXMvbGV4ZGljdC9yYXdsZDQvcmF3bGQ0
LmNwcAkyOCBTZXAgMjAwMiAxNDoxNzo1OCAtMDAwMApAQCAtOTEsNyArOTEsNiBAQCBjaGFyIFJh
d0xENDo6Z2V0RW50cnkobG9uZyBhd2F5KQogCSplbnRyeWJ1ZiA9IDA7CiAJaWYgKCEocmV0dmFs
ID0gZmluZG9mZnNldChidWYsICZzdGFydCwgJnNpemUsIGF3YXkpKSkgewogCQlyZWFkdGV4dChz
dGFydCwgJnNpemUsICZpZHhidWYsICZlbnRyeWJ1Zik7Ci0JCXJhd0ZpbHRlcihlbnRyeWJ1Ziwg
c2l6ZSwgMCk7CS8vIGhhY2ssIGRlY2lwaGVyCiAJCXJhd0ZpbHRlcihlbnRyeWJ1Ziwgc2l6ZSwg
a2V5KTsKIAkJZW50cnlTaXplID0gc2l6ZTsgICAgICAgIC8vIHN1cHBvcnQgZ2V0RW50cnlTaXpl
IGNhbGwKIAkJaWYgKCFrZXktPlBlcnNpc3QoKSkJCQkvLyBJZiB3ZSBoYXZlIG91ciBvd24ga2V5
CkluZGV4OiAuL3NyYy9tb2R1bGVzL3RleHRzL3Jhd3RleHQvcmF3dGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL3Vzci9sb2NhbC9jdnNyb290L3N3b3JkL3NyYy9tb2R1bGVzL3RleHRzL3Jh
d3RleHQvcmF3dGV4dC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTMKZGlmZiAtdyAtdSAt
cCAtcjEuNTMgcmF3dGV4dC5jcHAKLS0tIC4vc3JjL21vZHVsZXMvdGV4dHMvcmF3dGV4dC9yYXd0
ZXh0LmNwcAkyNiBTZXAgMjAwMiAwMjo0Mzo0OSAtMDAwMAkxLjUzCisrKyAuL3NyYy9tb2R1bGVz
L3RleHRzL3Jhd3RleHQvcmF3dGV4dC5jcHAJMjggU2VwIDIwMDIgMTQ6MTc6NTggLTAwMDAKQEAg
LTEwNyw3ICsxMDcsNiBAQCBjaGFyICpSYXdUZXh0OjpnZXRSYXdFbnRyeSgpIHsKIAlyZWFkdGV4
dChrZXktPlRlc3RhbWVudCgpLCBzdGFydCwgKHNpemUgKyAyKSwgZW50cnlidWYpOwogICAgICBl
bnRyeWJ1ZltzaXplXSA9IDA7CiAKLQlyYXdGaWx0ZXIoZW50cnlidWYsIHNpemUsIDApOwkvLyBo
YWNrLCBkZWNpcGhlcgogCXJhd0ZpbHRlcihlbnRyeWJ1Ziwgc2l6ZSwga2V5KTsKIAogCWlmICgh
aXNVbmljb2RlKCkpCkluZGV4OiAuL3V0aWxpdGllcy9jaXBoZXJ0ZXN0Mi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL3Vzci9sb2NhbC9jdnNyb290L3N3b3JkL3V0aWxpdGllcy9jaXBoZXJ0ZXN0
Mi5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC13IC11IC1wIC1yMS4yIGNpcGhl
cnRlc3QyLmNwcAotLS0gLi91dGlsaXRpZXMvY2lwaGVydGVzdDIuY3BwCTE5IE5vdiAxOTk5IDIz
OjAwOjExIC0wMDAwCTEuMgorKysgLi91dGlsaXRpZXMvY2lwaGVydGVzdDIuY3BwCTI4IFNlcCAy
MDAyIDE0OjE3OjU5IC0wMDAwCkBAIC0yNSw3ICsyNSw3IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyICoqYXJndikgewogCX0KIAogCXJhd2RydiA9IG5ldyBSYXdUZXh0KGFyZ3ZbMV0pOwotCXJh
d2Rydi0+QWRkUmF3RmlsdGVyKG5ldyBDaXBoZXJGaWx0ZXIoYXJndlsyXSkpOworCXJhd2Rydi0+
QWRkUmF3RmlsdGVyKG5ldyBDaXBoZXJGaWx0ZXI8REVDSVBIRVI+KGFyZ3ZbMl0pKTsKIAogCXBy
aW50ZigiXG4iKTsKIApJbmRleDogLi91dGlsaXRpZXMvbW9kMnptb2QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC91c3IvbG9jYWwvY3Zzcm9vdC9zd29yZC91dGlsaXRpZXMvbW9kMnptb2QuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE5CmRpZmYgLXcgLXUgLXAgLXIxLjE5IG1vZDJ6bW9k
LmNwcAotLS0gLi91dGlsaXRpZXMvbW9kMnptb2QuY3BwCTI1IFNlcCAyMDAyIDIyOjE4OjMyIC0w
MDAwCTEuMTkKKysrIC4vdXRpbGl0aWVzL21vZDJ6bW9kLmNwcAkyOCBTZXAgMjAwMiAxNDoxNzo1
OSAtMDAwMApAQCAtMTIxLDcgKzEyMSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dikKIAl9CiAKIAlpZiAoIWNpcGhlcktleS5lbXB0eSgpKSB7Ci0JCVNXRmlsdGVyICpjaXBoZXJG
aWx0ZXIgPSBuZXcgQ2lwaGVyRmlsdGVyKGNpcGhlcktleS5jX3N0cigpKTsKKwkJU1dGaWx0ZXIg
KmNpcGhlckZpbHRlciA9IG5ldyBDaXBoZXJGaWx0ZXI8RU5DSVBIRVI+KGNpcGhlcktleS5jX3N0
cigpKTsKIAkJb3V0TW9kdWxlLT5BZGRSYXdGaWx0ZXIoY2lwaGVyRmlsdGVyKTsKIAl9CiAK
--Multipart_Sat__28_Sep_2002_16:46:39_+0200_085df7b8--