Re: getting the list of all gnome-vfs modules

Christophe Fergeau <[email protected]> Thu, 22 Aug 2002 16:22:48 +0200
Newsgroups gmane.comp.gnome.vfs
Organization Mipsys
Message-ID <[email protected]>
This is a multi-part message in MIME format.

--Multipart_Thu__22_Aug_2002_16:22:48_+0200_083d1dd8
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Here is a first version of the patch made before receiving your answer. After some quick tests, it seems to work, to test it I added a .application file for gedit and added a uses_gnome_vfs=true to this file. Don't try it with a ftp uri though because it hangs (still don't know if it's a bug in eel or gnome-vfs since nobody answered my mail about that...). http locations work.

> 
> 	I believe what you want to do is to find some private ( not installed )
> header, and add the method prototype to that; so it's not adding public
> API. And treat this feature as a bug fix to gnome-vfs-2.0 - since it
> really is a bug that we can't specify "uses all vfs schemes" - really
> broken ;-)

I added a gnome_vfs_configuration_get_methods_list to gnome-vfs-configuration.h, and by chance it's a private header.

> 	I'd switch the existing gboolean to a guint user_owned : 1; and add
> another bit-field for your thing; it might also be worthwhile moving the
> expect_uris into the 'ints' block, so we don't waste more space
> mid-structure with pointer alignment requirements - or maybe I'm
> paranoid.

Actually I didn't add any member to the Application struct, it is stored in the keys HashTable with can_handle_multiple_files and runs_in_terminal. If you think some precious memory can be saved by reworking that storage a little, I can look into that.


> 
> 	Sounds fine; for now.

For now ? And later ?

> 
> 	I think we need to treat that padding like gold dust ;-)

Yeah, I agree with that, that's why I didn't modify GnomeVFSMimeApplication. It can be added later if it is really needed

> 
> 	Sounds quite complicated - ultimately if it's has complex requirements
> it gets to startup and fail - telling the user that it needs to open
> R/W/Seekable but it can't because the thing's RO/linear.
> The problem is that adding this sort of complex constraint in gnome-vfs
> will only lead to more complexity - different formats need different
> constraints etc. ;-) [ some are not mime-sniffable ] etc. etc.

That was also my opinion.


Any comments about the attached patches are obviously welcome. When these patches are ok, the next steps will be to fix the various gnome-vfs modules (apart from the file module, the various modules I tried weren't really working :( and to convince apps writers that they should use gnome-vfs. For example, gedit only support reading remote files, it can't edit them (I hacked gedit to be able to edit ftp files, but I still need to figure out how to test if an uri is writeable before submitting a patch). It would also be nice if file-roller and gthumb supported it....


Christophe


--Multipart_Thu__22_Aug_2002_16:22:48_+0200_083d1dd8
Content-Type: text/plain;
 name="gnome-vfs-doc.diff"
Content-Disposition: attachment;
 filename="gnome-vfs-doc.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtcnUgZ25vbWUtdmZzL2RvYy9taW1lLWRhdGEtc3BlY2lmaWNhdGlvbi50eHQgZ25vbWUt
dmZzLW5ldy9kb2MvbWltZS1kYXRhLXNwZWNpZmljYXRpb24udHh0Ci0tLSBnbm9tZS12ZnMvZG9j
L21pbWUtZGF0YS1zcGVjaWZpY2F0aW9uLnR4dAkyMDAxLTA1LTAyIDAwOjE0OjE4LjAwMDAwMDAw
MCArMDIwMAorKysgZ25vbWUtdmZzLW5ldy9kb2MvbWltZS1kYXRhLXNwZWNpZmljYXRpb24udHh0
CTIwMDItMDgtMjEgMjM6NTY6MTMuMDAwMDAwMDAwICswMjAwCkBAIC00MDIsMTAgKzQwMiwxMSBA
QAogICAgZm9yIHNvbWUga25vd24gYXBwbGljYXRpb25zIHRoYXQgc3VwcG9ydCAiaHR0cCIgc2No
ZW1lIFVSSXMgYW5kCiAgICBsb2NhbCBmaWxlIHBhdGhzLCBidXQgbm90ICJmaWxlIiBzY2hlbWUg
VVJJcy4pCiAKLTUuIFt0byBiZSBpbXBsZW1lbnRlZF0gYWxsX2dub21lX3Zmc19zY2hlbWVzX3N1
cHBvcnRlZDogSWYgInRydWUiLCBhbGwKLSAgIGdub21lLXZmcyBzY2hlbWVzIHNob3VsZCBiZSBp
bmNsdWRlZCBpbiB0aGUgc2V0IG9mICJzdXBwb3J0ZWQKLSAgIHNjaGVtZXMiLiBPdGhlciBzY2hl
bWVzIGNhbiBiZSBhZGRlZCBieSBhbHNvIGluY2x1ZGluZyBhCi0gICBzdXBwb3J0ZWRfdXJpX3Nj
aGVtZXMga2V5IGFzIHdlbGwuICAKKzUuIHVzZXNfZ25vbWVfdmZzOiBJZiAidHJ1ZSIsIGFsbCBn
bm9tZS12ZnMgc2NoZW1lcyBzaG91bGQgYmUgaW5jbHVkZWQgCisgICBpbiB0aGUgc2V0IG9mICJz
dXBwb3J0ZWQgc2NoZW1lcyIuIE90aGVyIHNjaGVtZXMgY2FuIGJlIGFkZGVkIGJ5IAorICAgYWxz
byBpbmNsdWRpbmcgYSBzdXBwb3J0ZWRfdXJpX3NjaGVtZXMga2V5IGFzIHdlbGwuIFdoZW4gdGhp
cyBrZXkKKyAgIGlzICJ0cnVlIiwgaWYgZXhwZWN0c191cmlzIGlzICJmYWxzZSIsIGl0IGlzIGF1
dG9tYXRpY2FsbHkgc2V0IHRvCisgICAidHJ1ZSIuCiAKIFttYXkgd2FudCB0byBkaXNjdXNzIGlz
c3VlIG9mIHVzaW5nIGNvdmVyIHNjcmlwdHMgdG8gbWFrZSBwcm9ncmFtcwogZWFzaWx5IGludm9r
YWJsZSByYXRoZXIgdGhhbiB0ZWFjaGluZyBjbGllbnRzIHRvIHBhc3MgY29tbWFuZC1saW5lCg==

--Multipart_Thu__22_Aug_2002_16:22:48_+0200_083d1dd8
Content-Type: text/plain;
 name="gnome-vfs.diff"
Content-Disposition: attachment;
 filename="gnome-vfs.diff"
Content-Transfer-Encoding: base64

U2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogLmRlcHMKZGlmZiAtcnUg
Z25vbWUtdmZzL2xpYmdub21ldmZzL2dub21lLXZmcy1hcHBsaWNhdGlvbi1yZWdpc3RyeS5jIGdu
b21lLXZmcy1uZXcvbGliZ25vbWV2ZnMvZ25vbWUtdmZzLWFwcGxpY2F0aW9uLXJlZ2lzdHJ5LmMK
LS0tIGdub21lLXZmcy9saWJnbm9tZXZmcy9nbm9tZS12ZnMtYXBwbGljYXRpb24tcmVnaXN0cnku
YwkyMDAyLTA1LTI5IDAyOjQzOjQ3LjAwMDAwMDAwMCArMDIwMAorKysgZ25vbWUtdmZzLW5ldy9s
aWJnbm9tZXZmcy9nbm9tZS12ZnMtYXBwbGljYXRpb24tcmVnaXN0cnkuYwkyMDAyLTA4LTIxIDIz
OjQ3OjMwLjAwMDAwMDAwMCArMDIwMApAQCAtNzA1LDcgKzcwNSw3IEBACiAJQXBwbGljYXRpb24g
KmFwcGxpY2F0aW9uOwogCWNoYXIgKmtleTsKIAljaGFyICpsYW5nOwotCQorCiAJZnAgPSBmb3Bl
biAoZmlsZW5hbWUsICJyIik7CiAJaWYgKGZwID09IE5VTEwpCiAJCXJldHVybjsKQEAgLTE1OTQs
NyArMTU5NCw4IEBACiAJCQkJCQkgICAgY29uc3QgY2hhciAqdXJpX3NjaGVtZSkKIHsKIAlBcHBs
aWNhdGlvbiAqYXBwbGljYXRpb247Ci0KKwlnYm9vbGVhbiB1c2VzX2dub21ldmZzID0gRkFMU0U7
CisJCiAJZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGFwcF9pZCAhPSBOVUxMLCBGQUxTRSk7CiAJZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKHVyaV9zY2hlbWUgIT0gTlVMTCwgRkFMU0UpOwogCkBAIC0xNjA0
LDcgKzE2MDUsMTAgQEAKIAlpZiAoYXBwbGljYXRpb24gPT0gTlVMTCkKIAkJcmV0dXJuIEZBTFNF
OwogCisJdXNlc19nbm9tZXZmcyA9IHJlYWxfZ2V0X2Jvb2xfdmFsdWUgKGFwcGxpY2F0aW9uLCBH
Tk9NRV9WRlNfQVBQTElDQVRJT05fUkVHSVNUUllfVVNFU19HTk9NRVZGUywgTlVMTCk7CisKIAlp
ZiAoc3RyY21wICh1cmlfc2NoZW1lLCAiZmlsZSIpID09IDAgJiYKKwkgICAgdXNlc19nbm9tZXZm
cyA9PSBOVUxMICYmCiAJICAgIGFwcGxpY2F0aW9uLT5zdXBwb3J0ZWRfdXJpX3NjaGVtZXMgPT0g
TlVMTCAmJgogCSAgICBhcHBsaWNhdGlvbi0+dXNlcl9hcHBsaWNhdGlvbi0+c3VwcG9ydGVkX3Vy
aV9zY2hlbWVzID09IE5VTEwpIHsKIAkJcmV0dXJuIFRSVUU7CkBAIC0xNjI0LDYgKzE2MjgsMjEg
QEAKIAkJCQkgKEdDb21wYXJlRnVuYykgc3RyY21wKSAhPSBOVUxMKSkgewogCQlyZXR1cm4gVFJV
RTsKIAl9CisJLyogY2hlY2sgaW4gdGhlIGxpc3Qgb2YgdXJpcyBzdXBwb3J0ZWQgYnkgZ25vbWUt
dmZzIGlmIG5lY2Vzc2FyeSAqLworCWVsc2UgaWYgKHVzZXNfZ25vbWV2ZnMgPT0gVFJVRSkgewor
CQlHTGlzdCAqc3VwcG9ydGVkX3VyaXMgPSBOVUxMOworCQlnYm9vbGVhbiByZXMgPSBGQUxTRTsK
KwkJCisJCXN1cHBvcnRlZF91cmlzID0gZ25vbWVfdmZzX2NvbmZpZ3VyYXRpb25fZ2V0X21ldGhv
ZHNfbGlzdCgpOworCQlyZXMgPSAoZ19saXN0X2ZpbmRfY3VzdG9tKHN1cHBvcnRlZF91cmlzLAor
CQkJCQkgIC8qZ2xpYiBpcyBjb25zdCBpbmNvcnJlY3QqLyhncG9pbnRlcikgdXJpX3NjaGVtZSwK
KwkJCQkJICAoR0NvbXBhcmVGdW5jKSBzdHJjbXApICE9IE5VTEwpOworCisJCWdfbGlzdF9mb3Jf
ZWFjaChzdXBwb3J0ZWRfdXJpcywgKEdGdW5jKSBnX2ZyZWUsIE5VTEwpOworCQlnX2xpc3RfZnJl
ZShzdXBwb3J0ZWRfdXJpcyk7CisKKwkJcmV0dXJuIHJlczsKKwl9CiAKIAlyZXR1cm4gRkFMU0U7
CiB9CkBAIC0xODUxLDYgKzE4NzAsNyBAQAogewogCUFwcGxpY2F0aW9uICppX2FwcGxpY2F0aW9u
OwogCUdub21lVkZTTWltZUFwcGxpY2F0aW9uICphcHBsaWNhdGlvbjsKKwlnYm9vbGVhbiB1c2Vz
X2dub21lX3ZmcyA9IEZBTFNFOwogCiAJZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGFwcF9pZCAhPSBO
VUxMLCBOVUxMKTsKIApAQCAtMTg4OSw2ICsxOTA5LDI4IEBACiAJCQkgR05PTUVfVkZTX0FQUExJ
Q0FUSU9OX1JFR0lTVFJZX1JFUVVJUkVTX1RFUk1JTkFMLAogCQkJIE5VTEwpOwogCisJdXNlc19n
bm9tZV92ZnMgPSByZWFsX2dldF9ib29sX3ZhbHVlIChpX2FwcGxpY2F0aW9uLCBHTk9NRV9WRlNf
QVBQTElDQVRJT05fUkVHSVNUUllfVVNFU19HTk9NRVZGUywgTlVMTCk7CisKKwlpZiAodXNlc19n
bm9tZV92ZnMgPT0gVFJVRSkgeworCQlHTGlzdCAqbWV0aG9kc19saXN0ID0gCisJCQlnbm9tZV92
ZnNfY29uZmlndXJhdGlvbl9nZXRfbWV0aG9kc19saXN0KCk7CisJCUdMaXN0ICp0bXAgPSBtZXRo
b2RzX2xpc3Q7CisJCWlmIChhcHBsaWNhdGlvbi0+ZXhwZWN0c191cmlzID09IEdOT01FX1ZGU19N
SU1FX0FQUExJQ0FUSU9OX0FSR1VNRU5UX1RZUEVfUEFUSFMpIHsKKwkJCWFwcGxpY2F0aW9uLT5l
eHBlY3RzX3VyaXMgPSBHTk9NRV9WRlNfTUlNRV9BUFBMSUNBVElPTl9BUkdVTUVOVF9UWVBFX1VS
SVM7CisJCX0KKwkJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJCQlpZiAoZ19saXN0X2ZpbmRfY3Vz
dG9tIChhcHBsaWNhdGlvbi0+c3VwcG9ydGVkX3VyaV9zY2hlbWVzLAorCQkJCQkJLypnbGliIGlz
IGNvbnN0IGluY29ycmVjdCovKGdwb2ludGVyKSB0bXAtPmRhdGEsCisJCQkJCQkoR0NvbXBhcmVG
dW5jKSBzdHJjbXApID09IE5VTEwpIHsKKwkJCQlhcHBsaWNhdGlvbi0+c3VwcG9ydGVkX3VyaV9z
Y2hlbWVzID0gCisJCQkJCWdfbGlzdF9wcmVwZW5kKGFwcGxpY2F0aW9uLT5zdXBwb3J0ZWRfdXJp
X3NjaGVtZXMsIAorCQkJCQkJICAgICAgIHRtcC0+ZGF0YSk7CisJCQl9CisJCQl0bXAgPSB0bXAt
Pm5leHQ7CisJCX0KKwkJZ19saXN0X2ZyZWUobWV0aG9kc19saXN0KTsKKwl9CQorCiAJcmV0dXJu
IGFwcGxpY2F0aW9uOwogfQogClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2
ZnM6IGdub21lLXZmcy1hcHBsaWNhdGlvbi1yZWdpc3RyeS5jfgpkaWZmIC1ydSBnbm9tZS12ZnMv
bGliZ25vbWV2ZnMvZ25vbWUtdmZzLWFwcGxpY2F0aW9uLXJlZ2lzdHJ5LmggZ25vbWUtdmZzLW5l
dy9saWJnbm9tZXZmcy9nbm9tZS12ZnMtYXBwbGljYXRpb24tcmVnaXN0cnkuaAotLS0gZ25vbWUt
dmZzL2xpYmdub21ldmZzL2dub21lLXZmcy1hcHBsaWNhdGlvbi1yZWdpc3RyeS5oCTIwMDEtMDgt
MDMgMDI6Mzk6NTguMDAwMDAwMDAwICswMjAwCisrKyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZz
L2dub21lLXZmcy1hcHBsaWNhdGlvbi1yZWdpc3RyeS5oCTIwMDItMDgtMjAgMjI6NDg6MjguMDAw
MDAwMDAwICswMjAwCkBAIC0zOSw2ICszOSw3IEBACiAvKiBUaGVzZSBhcmUgdGhlIHN0YW5kYXJk
IGJvb2xlYW4ga2V5cyB0byBnZXQgKi8KICNkZWZpbmUgR05PTUVfVkZTX0FQUExJQ0FUSU9OX1JF
R0lTVFJZX0NBTl9PUEVOX01VTFRJUExFX0ZJTEVTICJjYW5fb3Blbl9tdWx0aXBsZV9maWxlcyIK
ICNkZWZpbmUgR05PTUVfVkZTX0FQUExJQ0FUSU9OX1JFR0lTVFJZX1JFUVVJUkVTX1RFUk1JTkFM
ICJyZXF1aXJlc190ZXJtaW5hbCIKKyNkZWZpbmUgR05PTUVfVkZTX0FQUExJQ0FUSU9OX1JFR0lT
VFJZX1VTRVNfR05PTUVWRlMgInVzZXNfZ25vbWV2ZnMiCiAJCiAvKgogICogRXhpc3RhbmNlIGNo
ZWNrClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1h
cHBsaWNhdGlvbi1yZWdpc3RyeS5ofgpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdu
b21ldmZzOiBnbm9tZS12ZnMtYXBwbGljYXRpb24tcmVnaXN0cnkubG8KU2V1bGVtZW50IGRhbnMg
Z25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWFwcGxpY2F0aW9uLXJlZ2lzdHJ5
Lm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWFz
eW5jLWpvYi1tYXAubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczog
Z25vbWUtdmZzLWFzeW5jLWpvYi1tYXAubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xp
Ymdub21ldmZzOiBnbm9tZS12ZnMtYXN5bmMtb3BzLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZm
cy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1hc3luYy1vcHMubwpTZXVsZW1lbnQgZGFucyBn
bm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtY2FuY2VsbGFibGUtb3BzLmxvClNl
dWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1jYW5jZWxs
YWJsZS1vcHMubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9t
ZS12ZnMtY2FuY2VsbGF0aW9uLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25v
bWV2ZnM6IGdub21lLXZmcy1jYW5jZWxsYXRpb24ubwpkaWZmIC1ydSBnbm9tZS12ZnMvbGliZ25v
bWV2ZnMvZ25vbWUtdmZzLWNvbmZpZ3VyYXRpb24uYyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZz
L2dub21lLXZmcy1jb25maWd1cmF0aW9uLmMKLS0tIGdub21lLXZmcy9saWJnbm9tZXZmcy9nbm9t
ZS12ZnMtY29uZmlndXJhdGlvbi5jCTIwMDItMDEtMjggMjA6MTA6MDcuMDAwMDAwMDAwICswMTAw
CisrKyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzL2dub21lLXZmcy1jb25maWd1cmF0aW9uLmMJ
MjAwMi0wOC0yMSAyMzo0ODo1OC4wMDAwMDAwMDAgKzAyMDAKQEAgLTU1NCwzICs1NTQsMjkgQEAK
IAkJKmFyZ3MgPSBlbGVtZW50LT5hcmdzOwogCXJldHVybiBlbGVtZW50LT5wYXRoOwogfQorCitz
dGF0aWMgdm9pZAorYWRkX21ldGhvZF90b19saXN0KGNvbnN0IGdjaGFyICprZXksIGdwb2ludGVy
IHZhbHVlLCBHTGlzdCAqKm1ldGhvZHNfbGlzdCkKK3sKKwkqbWV0aG9kc19saXN0ID0gZ19saXN0
X2FwcGVuZCgqbWV0aG9kc19saXN0LCBnX3N0cmR1cChrZXkpKTsKK30KKworR0xpc3QgKgorZ25v
bWVfdmZzX2NvbmZpZ3VyYXRpb25fZ2V0X21ldGhvZHNfbGlzdCAodm9pZCkKK3sKKwlHTGlzdCAq
bWV0aG9kc19saXN0ID0gTlVMTDsKKworCUdfTE9DSyAoY29uZmlndXJhdGlvbik7CisJaWYgKGNv
bmZpZ3VyYXRpb24gIT0gTlVMTCkgeworCQltYXliZV9yZWxvYWQgKCk7CisJCWdfaGFzaF90YWJs
ZV9mb3JlYWNoKGNvbmZpZ3VyYXRpb24tPm1ldGhvZF90b19tb2R1bGVfcGF0aCwgCisJCQkJICAg
ICAoR0hGdW5jKWFkZF9tZXRob2RfdG9fbGlzdCwgJm1ldGhvZHNfbGlzdCk7CisJfSBlbHNlIHsK
KwkJLyogVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiAgKi8KKwkJZ193YXJuaW5nICgiSW50ZXJu
YWwgZXJyb3I6IHRoZSBjb25maWd1cmF0aW9uIHN5c3RlbSB3YXMgbm90IGluaXRpYWxpemVkLiBE
aWQgeW91IGNhbGwgZ25vbWVfdmZzX2NvbmZpZ3VyYXRpb25faW5pdD8iKTsKKwkJbWV0aG9kc19s
aXN0ID0gTlVMTDsKKwl9CisKKwlHX1VOTE9DSyAoY29uZmlndXJhdGlvbik7CisJcmV0dXJuIG1l
dGhvZHNfbGlzdDsKK30KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczog
Z25vbWUtdmZzLWNvbmZpZ3VyYXRpb24uY34KZGlmZiAtcnUgZ25vbWUtdmZzL2xpYmdub21ldmZz
L2dub21lLXZmcy1jb25maWd1cmF0aW9uLmggZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmcy9nbm9t
ZS12ZnMtY29uZmlndXJhdGlvbi5oCi0tLSBnbm9tZS12ZnMvbGliZ25vbWV2ZnMvZ25vbWUtdmZz
LWNvbmZpZ3VyYXRpb24uaAkyMDAxLTA4LTAzIDAyOjM5OjU4LjAwMDAwMDAwMCArMDIwMAorKysg
Z25vbWUtdmZzLW5ldy9saWJnbm9tZXZmcy9nbm9tZS12ZnMtY29uZmlndXJhdGlvbi5oCTIwMDIt
MDgtMjAgMjI6MzI6MTguMDAwMDAwMDAwICswMjAwCkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5l
IEdOT01FX1ZGU19DT05GSUdVUkFUSU9OX0gKIAogI2luY2x1ZGUgPGdsaWIvZ3R5cGVzLmg+Cisj
aW5jbHVkZSA8Z2xpYi9nbGlzdC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTMyLDYgKzMzLDgg
QEAKIGdib29sZWFuICAgICBnbm9tZV92ZnNfY29uZmlndXJhdGlvbl9pbml0ICAgICAgICAgICAg
KHZvaWQpOwogdm9pZCAgICAgICAgIGdub21lX3Zmc19jb25maWd1cmF0aW9uX3VuaW5pdCAgICAg
ICAgICAodm9pZCk7CiBjb25zdCBnY2hhciAqZ25vbWVfdmZzX2NvbmZpZ3VyYXRpb25fZ2V0X21v
ZHVsZV9wYXRoIChjb25zdCBnY2hhciAqbWV0aG9kX25hbWUsIGNvbnN0IGNoYXIgKiogYXJncyk7
CitHTGlzdCAgICAgICAqZ25vbWVfdmZzX2NvbmZpZ3VyYXRpb25fZ2V0X21ldGhvZHNfbGlzdCh2
b2lkKTsKKwogCiBHX0VORF9ERUNMUwogClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGli
Z25vbWV2ZnM6IGdub21lLXZmcy1jb25maWd1cmF0aW9uLmh+ClNldWxlbWVudCBkYW5zIGdub21l
LXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1jb25maWd1cmF0aW9uLmxvClNldWxlbWVu
dCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1jb25maWd1cmF0aW9u
Lm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWNv
bnRleHQubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUt
dmZzLWNvbnRleHQubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBn
bm9tZS12ZnMtZGlyZWN0b3J5LmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25v
bWV2ZnM6IGdub21lLXZmcy1kaXJlY3RvcnkubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3
L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtZmlsZS1pbmZvLmxvClNldWxlbWVudCBkYW5zIGdub21l
LXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1maWxlLWluZm8ubwpTZXVsZW1lbnQgZGFu
cyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtZmlsZS1zaXplLmgKU2V1bGVt
ZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWZpbmQtZGlyZWN0
b3J5LmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZm
cy1maW5kLWRpcmVjdG9yeS5vClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2
ZnM6IGdub21lLXZmcy1oYW5kbGUubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJn
bm9tZXZmczogZ25vbWUtdmZzLWhhbmRsZS5vClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcv
bGliZ25vbWV2ZnM6IGdub21lLXZmcy1pMThuLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1u
ZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1pMThuLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZz
LW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWluZXQtY29ubmVjdGlvbi5sbwpTZXVsZW1lbnQg
ZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtaW5ldC1jb25uZWN0aW9u
Lm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWlu
aXQubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZz
LWluaXQubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12
ZnMtaW9idWYubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25v
bWUtdmZzLWlvYnVmLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczog
Z25vbWUtdmZzLWpvYi5sbwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZz
OiBnbm9tZS12ZnMtam9iLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZm
czogZ25vbWUtdmZzLWpvYi1xdWV1ZS5sbwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xp
Ymdub21ldmZzOiBnbm9tZS12ZnMtam9iLXF1ZXVlLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZz
LW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLWpvYi1zbGF2ZS5sbwpTZXVsZW1lbnQgZGFucyBn
bm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtam9iLXNsYXZlLm8KU2V1bGVtZW50
IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLW1ldGhvZC5sbwpTZXVs
ZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtbWV0aG9kLm8K
U2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLW1pbWUt
aGFuZGxlcnMubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25v
bWUtdmZzLW1pbWUtaGFuZGxlcnMubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdu
b21ldmZzOiBnbm9tZS12ZnMtbWltZS1pbmZvLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1u
ZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1taW1lLWluZm8ubwpTZXVsZW1lbnQgZGFucyBnbm9t
ZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtbWltZS5sbwpTZXVsZW1lbnQgZGFucyBn
bm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtbWltZS1tYWdpYy5sbwpTZXVsZW1l
bnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtbWltZS1tYWdpYy5v
ClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1taW1l
LW1vbml0b3IubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25v
bWUtdmZzLW1pbWUtbW9uaXRvci5vClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25v
bWV2ZnM6IGdub21lLXZmcy1taW1lLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJn
bm9tZXZmczogZ25vbWUtdmZzLW1pbWUtc25pZmYtYnVmZmVyLmxvClNldWxlbWVudCBkYW5zIGdu
b21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1taW1lLXNuaWZmLWJ1ZmZlci5vClNl
dWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1tb2R1bGUt
Y2FsbGJhY2subG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25v
bWUtdmZzLW1vZHVsZS1jYWxsYmFjay1tb2R1bGUtYXBpLmxvClNldWxlbWVudCBkYW5zIGdub21l
LXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1tb2R1bGUtY2FsbGJhY2stbW9kdWxlLWFw
aS5vClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1t
b2R1bGUtY2FsbGJhY2subwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZz
OiBnbm9tZS12ZnMtbW9kdWxlLWNhbGxiYWNrLXByaXZhdGUubG8KU2V1bGVtZW50IGRhbnMgZ25v
bWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLW1vZHVsZS1jYWxsYmFjay1wcml2YXRl
Lm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLW1v
ZHVsZS5sbwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12
ZnMtbW9kdWxlLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25v
bWUtdmZzLW1vZHVsZS1zaGFyZWQubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJn
bm9tZXZmczogZ25vbWUtdmZzLW1vZHVsZS1zaGFyZWQubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12
ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtbW9uaXRvci5sbwpTZXVsZW1lbnQgZGFucyBn
bm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtbW9uaXRvci5vClNldWxlbWVudCBk
YW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1vcHMubG8KU2V1bGVtZW50
IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLW9wcy5vClNldWxlbWVu
dCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1wYXJzZS1scy5sbwpT
ZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtcGFyc2Ut
bHMubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMt
cHJpdmF0ZS5sbwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9t
ZS12ZnMtcHJpdmF0ZS5vClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6
IGdub21lLXZmcy1wcml2YXRlLXV0aWxzLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcv
bGliZ25vbWV2ZnM6IGdub21lLXZmcy1wcml2YXRlLXV0aWxzLm8KU2V1bGVtZW50IGRhbnMgZ25v
bWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLXByb2Nlc3MubG8KU2V1bGVtZW50IGRh
bnMgZ25vbWUtdmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLXByb2Nlc3MubwpTZXVsZW1l
bnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtcmVzdWx0LmxvClNl
dWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1yZXN1bHQu
bwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtc29j
a2V0LWJ1ZmZlci5sbwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBn
bm9tZS12ZnMtc29ja2V0LWJ1ZmZlci5vClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGli
Z25vbWV2ZnM6IGdub21lLXZmcy1zb2NrZXQubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5l
dy9saWJnbm9tZXZmczogZ25vbWUtdmZzLXNvY2tldC5vClNldWxlbWVudCBkYW5zIGdub21lLXZm
cy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy1zc2wubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUt
dmZzLW5ldy9saWJnbm9tZXZmczogZ25vbWUtdmZzLXNzbC5vClNldWxlbWVudCBkYW5zIGdub21l
LXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZmcy10aHJlYWQtcG9vbC5sbwpTZXVsZW1lbnQg
ZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtdGhyZWFkLXBvb2wubwpT
ZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBnbm9tZS12ZnMtdHJhbnNm
b3JtLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6IGdub21lLXZm
cy10cmFuc2Zvcm0ubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZzOiBn
bm9tZS12ZnMtdXJpLmxvClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6
IGdub21lLXZmcy11cmkubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3L2xpYmdub21ldmZz
OiBnbm9tZS12ZnMtdXRpbHMubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJnbm9t
ZXZmczogZ25vbWUtdmZzLXV0aWxzLm8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9saWJn
bm9tZXZmczogZ25vbWUtdmZzLXhmZXIubG8KU2V1bGVtZW50IGRhbnMgZ25vbWUtdmZzLW5ldy9s
aWJnbm9tZXZmczogZ25vbWUtdmZzLXhmZXIubwpTZXVsZW1lbnQgZGFucyBnbm9tZS12ZnMtbmV3
L2xpYmdub21ldmZzOiBsaWJnbm9tZXZmcy0yLmxhClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1u
ZXcvbGliZ25vbWV2ZnM6IC5saWJzClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25v
bWV2ZnM6IE1ha2VmaWxlClNldWxlbWVudCBkYW5zIGdub21lLXZmcy1uZXcvbGliZ25vbWV2ZnM6
IE1ha2VmaWxlLmluCg==

--Multipart_Thu__22_Aug_2002_16:22:48_+0200_083d1dd8--