[whups] Assignment patch

Alex Leverington admin@networkessence.net
Wed, 31 Oct 2001 01:23:58 -0600


---------------------- multipart/mixed attachment

why do I always forget the attachment ;)

Here's the attachment

-Alex

Quoting Alex Leverington <admin@networkessence.net>:

> > Quoting Chuck Hagenbuch <chuck@horde.org>:
> > 
> [snip]
> > > Most of this patch failed to apply for me. I committed the bits that
> did
> > > apply;
> [snip] 
> > it's good to change it as I go. What failed to apply?
> 
> Nothing applied it looks like :)
> 
> Here is the diff that follows CODING_STANDARDS and uses the proper table
> format.
> I've also tested the code as of the attached diff and it works. It uses the
> 
> proper
> function {
>     //
> }
> format and uses the new applied table format in the SQL queries. As soon as
> 
> this is patched, I will submit a patch so that ALL the whups code is standard
> 
> with the horde coding standards and will start on the user backend. The user
> 
> backend will not just use an sql table.
> 
> The table script is:
> 
> create table whups_users (
>     user_id varchar(32) not null,
>     user_name varchar(64),
>     user_email varchar(96),
>     primary key (user_id)
> );
> 
> -Alex
> 
> -- 
> Whups mailing list: http://horde.org/whups/
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: whups-unsubscribe@lists.horde.org
> 




---------------------- multipart/mixed attachment
Y3ZzIC16MyBkaWZmIHdodXBzDQo/IHdodXBzL2xpYi9CYWNrZW5kL3NxbC5iYWNrdXAucGhwDQpj
dnMgc2VydmVyOiBEaWZmaW5nIHdodXBzDQpJbmRleDogd2h1cHMvZGV0YWlscy5waHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NClJDUyBmaWxlOiAvcmVwb3NpdG9yeS93aHVwcy9kZXRhaWxzLnBocCx2DQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuOA0KZGlmZiAtdSAtcjEuOCBkZXRhaWxzLnBocA0KLS0tIHdodXBzL2Rl
dGFpbHMucGhwICAgMjAwMS8xMC8wNiAxOTowNzozMCAgICAgMS44DQorKysgd2h1cHMvZGV0YWls
cy5waHAgICAyMDAxLzEwLzMxIDA3OjE3OjAxDQpAQCAtNzcsNiArNzcsNyBAQA0KICAgICAgICAg
ICAgICRhc3NpZ25mb3JtMi0+Z2V0SW5mbygkdmFycywgJGluZm8pOw0KICAgICAgICAgICAgICRi
YWNrZW5kLT5hc3NpZ25UaWNrZXQoJGluZm8pOw0KICAgICAgICAgICAgICR2YXJzLT51bnNldFZh
cignYXNzaWduZWUnKTsNCisgICAgICAgICAgICAkdmFycy0+dW5zZXRWYXIoJ3VzZXJ0eXBlJyk7
DQogICAgICAgICAgICAgJHZhcnMtPnVuc2V0VmFyKCduZXdjb21tZW50Jyk7DQogICAgICAgICB9
IGVsc2Ugew0KICAgICAgICAgICAgICRmcm9tID0gJ2Fzc2lnbnRpY2tldHN0ZXAxZm9ybSc7DQpj
dnMgc2VydmVyOiBEaWZmaW5nIHdodXBzL2NvbmZpZw0KY3ZzIHNlcnZlcjogRGlmZmluZyB3aHVw
cy9kb2NzDQpjdnMgc2VydmVyOiBEaWZmaW5nIHdodXBzL2dyYXBoaWNzDQpjdnMgc2VydmVyOiBE
aWZmaW5nIHdodXBzL2xpYg0KSW5kZXg6IHdodXBzL2xpYi9CYWNrZW5kLnBocA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9yZXBvc2l0b3J5L3dodXBzL2xpYi9CYWNrZW5kLnBocCx2DQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNw0KZGlmZiAtdSAtcjEuNyBCYWNrZW5kLnBocA0KLS0tIHdodXBzL2xp
Yi9CYWNrZW5kLnBocCAgICAgICAyMDAxLzEwLzEwIDE0OjE2OjU4ICAgICAxLjcNCisrKyB3aHVw
cy9saWIvQmFja2VuZC5waHAgICAgICAgMjAwMS8xMC8zMSAwNzoxNzowMg0KQEAgLTE0LDcgKzE0
LDcgQEANCiAgKiBXaHVwc19CYWNrZW5kIENsYXNzDQogICoNCiAgKiBAYXV0aG9yIFJvYmVydCBF
LiBDb3lsZSA8cm9iZXJ0ZWNveWxlQGhvdG1haWwuY29tPg0KLSAqIEB2ZXJzaW9uICRSZXZpc2lv
bjogMS43ICQNCisgKiBAdmVyc2lvbiAkUmV2aXNpb246IDEuNiAkDQogICogQHBhY2thZ2Ugd2h1
cHMNCiAgKi8NCiBjbGFzcyBXaHVwc19CYWNrZW5kIHsNCkBAIC02NSwxMCArNjUsMTEgQEANCiAg
ICAgfQ0KIA0KICAgICBmdW5jdGlvbiBub3RpZnlBc3NpZ25tZW50KCYkb2xkZGV0YWlscywgJiRj
b21tZW50LCAkb3duZXJuYW1lLCAkb3duZXJlbWFpbCwgJG5ld3N0YXRlKSB7DQotICAgICAgICAk
bXlkZXRhaWxzID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzKEF1dGg6OmdldEF1dGgoKSk7DQorICAg
ICAgICAkbXlkZXRhaWxzID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzRnJvbUVtYWlsKEF1dGg6Omdl
dEF1dGgoKSk7DQorICAgICAgICAkbXlkZXRhaWxzID0gJG15ZGV0YWlsc1swXTsNCiANCi0gICAg
ICAgICRteW5hbWUgPSAkbXlkZXRhaWxzWyduYW1lJ107DQotICAgICAgICAkbXllbWFpbCA9ICRt
eWRldGFpbHNbJ2VtYWlsJ107DQorICAgICAgICAkbXluYW1lID0gJG15ZGV0YWlsc1sndXNlcl9u
YW1lJ107DQorICAgICAgICAkbXllbWFpbCA9ICRteWRldGFpbHNbJ3VzZXJfZW1haWwnXTsNCiAN
CiAgICAgICAgICR0aWNrZXRfaWQgPSAkb2xkZGV0YWlsc1snaWQnXTsNCiAgICAgICAgICRzdGF0
ZV9uYW1lID0gJHRoaXMtPmdldFN0YXRlTmFtZSgkb2xkZGV0YWlsc1sndHlwZSddLCAkbmV3c3Rh
dGUpOw0KSW5kZXg6IHdodXBzL2xpYi9Gb3Jtcy5waHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv
cmVwb3NpdG9yeS93aHVwcy9saWIvRm9ybXMucGhwLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS42
DQpkaWZmIC11IC1yMS42IEZvcm1zLnBocA0KLS0tIHdodXBzL2xpYi9Gb3Jtcy5waHAgMjAwMS8x
MC8wNiAwNDozMTozOSAgICAgMS42DQorKysgd2h1cHMvbGliL0Zvcm1zLnBocCAyMDAxLzEwLzMx
IDA3OjE3OjAyDQpAQCAtMTIsNyArMTIsNyBAQA0KICAqIFR5cGUgQ2xhc3MNCiAgKg0KICAqIEBh
dXRob3IgUm9iZXJ0IEUuIENveWxlIDxyb2JlcnRlY295bGVAaG90bWFpbC5jb20+DQotICogQHZl
cnNpb24gJFJldmlzaW9uOiAxLjYgJA0KKyAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMS40ICQNCiAg
KiBAcGFja2FnZSB3aHVwcw0KICAqLw0KIGNsYXNzIFR5cGUgew0KQEAgLTE0MSw5ICsxNDEsMTMg
QEANCiAgICAgfQ0KIA0KICAgICBmdW5jdGlvbiBpc1ZhbGlkKCYkdmFycywgJHZhbHVlLCAmJG1l
c3NhZ2UpIHsNCi0gICAgICAgICR1aWQgPSAkdGhpcy0+YmFja2VuZC0+Z2V0VXNlckZyb21FbWFp
bCgkdmFsdWUpOw0KKyAgICAgICAgJHVpZHR5cGUgPSAkdmFycy0+Z2V0VmFyKCd1c2VydHlwZScp
Ow0KKyAgICAgICAgaWYoJHVpZHR5cGU9PScxJykNCisgICAgICAgICAgICAkdWlkID0gJHRoaXMt
PmJhY2tlbmQtPmdldFVzZXJGcm9tRW1haWwoJHZhbHVlKTsNCisgICAgICAgIGlmKCR1aWR0eXBl
PT0nMicpDQorICAgICAgICAkdWlkID0gJHRoaXMtPmJhY2tlbmQtPmdldFVzZXJGcm9tTmFtZSgk
dmFsdWUpOw0KIA0KLSAgICAgICAgaWYgKCEkdWlkKSB7DQorICAgICAgICBpZiAoIWlzc2V0KCR1
aWQpKSB7DQogICAgICAgICAgICAgJG1lc3NhZ2UgPSAibm8gc3VjaCB1c2VyICIgLiBodG1sc3Bl
Y2lhbGNoYXJzKCR2YWx1ZSk7DQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAg
fQ0KSW5kZXg6IHdodXBzL2xpYi9TZWFyY2gucGhwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3Jl
cG9zaXRvcnkvd2h1cHMvbGliL1NlYXJjaC5waHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYN
CmRpZmYgLXUgLXIxLjYgU2VhcmNoLnBocA0KLS0tIHdodXBzL2xpYi9TZWFyY2gucGhwICAgICAg
ICAyMDAxLzEwLzA2IDE2OjQ3OjE2ICAgICAxLjYNCisrKyB3aHVwcy9saWIvU2VhcmNoLnBocCAg
ICAgICAgMjAwMS8xMC8zMSAwNzoxNzowMg0KQEAgLTE0LDcgKzE0LDcgQEANCiAgKiBTZWFyY2hG
b3JtIENsYXNzDQogICoNCiAgKiBAYXV0aG9yIFJvYmVydCBFLiBDb3lsZSA8cm9iZXJ0ZWNveWxl
QGhvdG1haWwuY29tPg0KLSAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMS42ICQNCisgKiBAdmVyc2lv
biAkUmV2aXNpb246IDEuMyAkDQogICogQHBhY2thZ2Ugd2h1cHMNCiAgKi8NCiBjbGFzcyBTZWFy
Y2hGb3JtIGV4dGVuZHMgRm9ybSB7DQpAQCAtMTEyLDEzICsxMTIsMTkgQEANCiAgICAgZnVuY3Rp
b24gQXNzaWduVGlja2V0U3RlcDFGb3JtKCYkdmFycywgJiRiYWNrZW5kKSB7DQogICAgICAgICAk
dGhpcy0+Rm9ybSgnYXNzaWdudGlja2V0c3RlcDFmb3JtJyk7DQogDQorICAgICAgICAkdHlwZSA9
ICR2YXJzLT5nZXRWYXIoJ3R5cGUnKTsNCisgICAgICAgICR1c2VydHlwZXMgPSAkYmFja2VuZC0+
Z2V0VXNlclR5cGVzKCR0eXBlKTsNCisgICAgICAgICR1c2VydHlwZXMgPSBuZXcgRW51bVR5cGUo
JHVzZXJ0eXBlcyk7DQorDQogICAgICAgICAkdmFyMSA9IG5ldyBWYXJpYWJsZSgnVGlja2V0IFR5
cGUnLCAndHlwZScsIGdldEludFR5cGUoKSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7DQogICAgICAgICAk
dmFyMiA9IG5ldyBWYXJpYWJsZSgnVGlja2V0IElEJywgJ2lkJywgZ2V0SW50VHlwZSgpLCB0cnVl
LCB0cnVlLCB0cnVlKTsNCiAgICAgICAgICR2YXIzID0gbmV3IFZhcmlhYmxlKCdBc3NpZ25lZScs
ICdhc3NpZ25lZScsIGdldFVzZXJUeXBlKCRiYWNrZW5kKSwgdHJ1ZSk7DQorICAgICAgICAkdmFy
NCA9IG5ldyBWYXJpYWJsZSgnQXNzaWduZWUgVHlwZScsICd1c2VydHlwZScsICR1c2VydHlwZXMs
IHRydWUpOw0KIA0KICAgICAgICAgJHRoaXMtPmFkZFZhcmlhYmxlKCR2YXIxKTsNCiAgICAgICAg
ICR0aGlzLT5hZGRWYXJpYWJsZSgkdmFyMik7DQogICAgICAgICAkdGhpcy0+YWRkVmFyaWFibGUo
JHZhcjMpOw0KKyAgICAgICAgJHRoaXMtPmFkZFZhcmlhYmxlKCR2YXI0KTsNCiAgICAgfQ0KIH0N
CiANCmN2cyBzZXJ2ZXI6IERpZmZpbmcgd2h1cHMvbGliL0JhY2tlbmQNCkluZGV4OiB3aHVwcy9s
aWIvQmFja2VuZC9zcWwucGhwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvd2h1
cHMvbGliL0JhY2tlbmQvc3FsLnBocCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTENCmRpZmYg
LXUgLXIxLjExIHNxbC5waHANCi0tLSB3aHVwcy9saWIvQmFja2VuZC9zcWwucGhwICAgMjAwMS8x
MC8xMCAxNDoxNjo1OSAgICAgMS4xMQ0KKysrIHdodXBzL2xpYi9CYWNrZW5kL3NxbC5waHAgICAy
MDAxLzEwLzMxIDA3OjE3OjAzDQpAQCAtMTIsNyArMTIsNyBAQA0KICAqIFdodXBzX0JhY2tlbmRf
c3FsIENsYXNzDQogICoNCiAgKiBAYXV0aG9yIFJvYmVydCBFLiBDb3lsZSA8cm9iZXJ0ZWNveWxl
QGhvdG1haWwuY29tPg0KLSAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMS4xMSAkDQorICogQHZlcnNp
b24gJFJldmlzaW9uOiAxLjIgJA0KICAqIEBwYWNrYWdlIHdodXBzDQogICovDQogY2xhc3MgV2h1
cHNfQmFja2VuZF9zcWwgZXh0ZW5kcyBXaHVwc19CYWNrZW5kIHsNCkBAIC05OSwxMyArOTksMjQg
QEANCiANCiAgICAgZnVuY3Rpb24gYXNzaWduVGlja2V0KCYkaW5mbykgew0KICAgICAgICAgJHRp
Y2tldF9pZCA9ICRpbmZvWydpZCddOw0KLSAgICAgICAgJGVtYWlsID0gJGluZm9bJ2Fzc2lnbmVl
J107DQorICAgICAgICAkYXNzaWduZWUgPSAkaW5mb1snYXNzaWduZWUnXTsNCisgICAgICAgICR1
c2VydHlwZSA9ICRpbmZvWyd1c2VydHlwZSddOw0KICAgICAgICAgJHN0YXRlID0gJGluZm9bJ3Rv
c3RhdGUnXTsNCiAgICAgICAgICRtb3JlY29tbWVudCA9ICRpbmZvWyduZXdjb21tZW50J107DQog
DQotICAgICAgICAkZGV0YWlscyA9ICR0aGlzLT5nZXRVc2VyRGV0YWlsc0Zyb21FbWFpbCgkZW1h
aWwpOw0KLSAgICAgICAgJGFzc2lnbmVlID0gJGRldGFpbHNbJ2lkJ107DQotICAgICAgICAkbmFt
ZSA9ICRkZXRhaWxzWyduYW1lJ107DQorICAgICAgICBpZigkdXNlcnR5cGU9PScxJykgew0KKyAg
ICAgICAgICAgICRkZXRhaWxzID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzRnJvbUVtYWlsKCRhc3Np
Z25lZSk7DQorICAgICAgICAgICAgJGRldGFpbHMgPSAkZGV0YWlsc1swXTsNCisgICAgICAgIH0N
CisNCisgICAgICAgaWYoJHVzZXJ0eXBlPT0nMicpIHsNCisgICAgICAgICAgICAkZGV0YWlscyA9
ICR0aGlzLT5nZXRVc2VyRGV0YWlsc0Zyb21OYW1lKCRhc3NpZ25lZSk7DQorICAgICAgICAgICAg
JGRldGFpbHMgPSAkZGV0YWlsc1swXTsNCisgICAgICAgIH0NCisNCisgICAgICAgICRhc3NpZ25l
ZSA9ICRkZXRhaWxzWyd1c2VyX2lkJ107DQorICAgICAgICAkbmFtZSA9ICRkZXRhaWxzWyd1c2Vy
X25hbWUnXTsNCisgICAgICAgICRlbWFpbCA9ICRkZXRhaWxzWyd1c2VyX2VtYWlsJ107DQogDQog
ICAgICAgICAkY29tbWVudCA9ICJBc3NpZ25lZCB0aWNrZXQgdG8gJG5hbWUgPCRlbWFpbD4iOw0K
IA0KQEAgLTExNSw3ICsxMjYsNyBAQA0KIA0KICAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+Z2V0
VGlja2V0RGV0YWlscygkdGlja2V0X2lkKTsNCiANCi0gICAgICAgICR0aGlzLT5fcXVlcnkoIlVQ
REFURSB0aWNrZXQgU0VUIG93bmVyID0gJGFzc2lnbmVlLCBzdGF0ZSA9ICRzdGF0ZSBXSEVSRSBp
ZCA9ICR0aWNrZXRfaWQiKTsNCisgICAgICAgICR0aGlzLT5fcXVlcnkoIlVQREFURSB3aHVwc190
aWNrZXRzIFNFVCB1c2VyX2lkX293bmVyID0gJGFzc2lnbmVlLCBzdGF0ZV9pZCA9ICRzdGF0ZSBX
SEVSRSB0aWNrZXRfaWQgPSAkdGlja2V0X2lkIik7DQogICAgICAgICAkbmV3X2NvbW1lbnRfaWQg
PSAkdGhpcy0+X2FkZENvbW1lbnQoJHRpY2tldF9pZCwgJGNvbW1lbnQsIEF1dGg6OmdldEF1dGgo
KSk7DQogICAgICAgICAkdGhpcy0+X3VwZGF0ZVN0YXRlTG9nKCR0aWNrZXRfaWQsICRkZXRhaWxz
WydzdGF0ZSddLCAkc3RhdGUsIEF1dGg6OmdldEF1dGgoKSwgJG5ld19jb21tZW50X2lkKTsNCiAN
CkBAIC0yMzQsMTAgKzI0NSwxNCBAQA0KICAgICAgICAgfQ0KIA0KICAgICAgICAgaWYgKCFlbXB0
eSgkcmVzdWx0Wyd1c2VyX2lkX293bmVyJ10pKSB7DQotICAgICAgICAgICAgJHJlc3VsdFsnX293
bmVyX25hbWUnXSA9ICRyZXN1bHRbJ293bmVyJ107DQotICAgICAgICAgICAgJHJlc3VsdFsnX293
bmVyJ10gPSAkcmVzdWx0Wydvd25lciddOw0KKyAgICAgICAgICAgICR0aWNrZXRfb3duZXJfZGV0
YWlscyA9ICR0aGlzLT5nZXRVc2VyRGV0YWlscygkcmVzdWx0Wyd1c2VyX2lkX293bmVyJ10pOw0K
KyAgICAgICAgICAgICR0aWNrZXRfb3duZXJfZGV0YWlscyA9ICR0aWNrZXRfb3duZXJfZGV0YWls
c1swXTsNCisNCisgICAgICAgICAgICAkcmVzdWx0Wydfb3duZXJfbmFtZSddID0gJHRpY2tldF9v
d25lcl9kZXRhaWxzWyd1c2VyX25hbWUnXTsNCisgICAgICAgICAgICAkcmVzdWx0Wydfb3duZXJf
ZW1haWwnXSA9ICR0aWNrZXRfb3duZXJfZGV0YWlsc1sndXNlcl9lbWFpbCddOw0KKw0KKyAgICAg
ICAgICAgICRyZXN1bHRbJ19vd25lciddID0gJHJlc3VsdFsnX293bmVyX2VtYWlsJ107DQogICAg
ICAgICB9DQotICAgICAgICANCiAgICAgICAgIHJldHVybiAkcmVzdWx0Ow0KICAgICB9DQogDQpA
QCAtMjcxLDYgKzI4NiwxMCBAQA0KICAgICAgICAgcmV0dXJuICR0aGlzLT5fZ2V0QXNzb2MoJ1NF
TEVDVCB0eXBlX2lkLCB0eXBlX25hbWUgRlJPTSB3aHVwc190eXBlcycpOw0KICAgICB9DQogDQor
ICAgIGZ1bmN0aW9uIGdldFVzZXJUeXBlcygpIHsNCisgICAgICAgIHJldHVybiBhcnJheSgnMScg
PT4gJ0VtYWlsIEFkZHJlc3MnLCAnMicgPT4gJ1VzZXIgTmFtZScpOw0KKyAgICB9DQorDQogICAg
IGZ1bmN0aW9uIGdldFN0YXRlcygkdHlwZSwgJGNhdGVnb3J5ID0gJycsICRub3RjYXRlZ29yeSA9
ICcnKQ0KICAgICB7DQogICAgICAgICAkd2hlcmUgPSAidHlwZV9pZCA9ICR0eXBlIjsNCkBAIC0y
OTUsMjMgKzMxNCwyNyBAQA0KICAgICAgICAgcmV0dXJuICR0aGlzLT5fZ2V0T25lKCJTRUxFQ1Qg
cHJpb3JpdHlfbmFtZSBGUk9NIHdodXBzX3ByaW9yaXRpZXMgV0hFUkUgdHlwZV9pZCA9ICR0eXBl
IEFORCBwcmlvcml0eV9pZCA9ICRwcmlvcml0eSIpOw0KICAgICB9DQogDQotICAgIGZ1bmN0aW9u
IGdldFVzZXJGcm9tRW1haWwoJGVtYWlsKQ0KLSAgICB7DQorICAgIGZ1bmN0aW9uIGdldFVzZXJG
cm9tRW1haWwoJGVtYWlsKSB7DQogICAgICAgICAkZW1haWwgPSAkdGhpcy0+ZGItPnF1b3RlKCRl
bWFpbCk7DQotICAgICAgICByZXR1cm4gJHRoaXMtPl9nZXRPbmUoIlNFTEVDVCBpZCBGUk9NIHVz
ZXIgV0hFUkUgZW1haWwgPSAkZW1haWwiKTsNCisgICAgICAgIHJldHVybiAkdGhpcy0+X2dldE9u
ZSgiU0VMRUNUIHVzZXJfaWQgRlJPTSB3aHVwc191c2VycyBXSEVSRSB1c2VyX2VtYWlsID0gJGVt
YWlsIik7DQogICAgIH0NCiANCi0gICAgZnVuY3Rpb24gZ2V0VXNlckRldGFpbHMoJGlkKQ0KLSAg
ICB7DQotICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPl9nZXRBbGwoIlNFTEVDVCBuYW1lLCBlbWFp
bCBGUk9NIHVzZXIgV0hFUkUgaWQgPSAkaWQiKTsNCi0gICAgICAgIHJldHVybiAkcmVzdWx0WzBd
Ow0KKyAgICBmdW5jdGlvbiBnZXRVc2VyRnJvbU5hbWUoJHVzZXJuYW1lKSB7DQorICAgICAgICBy
ZXR1cm4gJHRoaXMtPl9nZXRPbmUoIlNFTEVDVCB1c2VyX2lkIEZST00gd2h1cHNfdXNlcnMgV0hF
UkUgdXNlcl9uYW1lID0gJHVzZXJuYW1lIik7DQogICAgIH0NCiANCi0gICAgZnVuY3Rpb24gZ2V0
VXNlckRldGFpbHNGcm9tRW1haWwoJGVtYWlsKQ0KLSAgICB7DQorICAgIGZ1bmN0aW9uIGdldFVz
ZXJEZXRhaWxzKCRpZCkgew0KKyAgICAgICAgcmV0dXJuICR0aGlzLT5fZ2V0QWxsKCJTRUxFQ1Qg
dXNlcl9pZCwgdXNlcl9uYW1lLCB1c2VyX2VtYWlsIEZST00gd2h1cHNfdXNlcnMgV0hFUkUgdXNl
cl9pZCA9ICRpZCIpOw0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzRnJv
bU5hbWUoJG5hbWUpIHsNCisgICAgICAgJG5hbWUgPSAkdGhpcy0+ZGItPnF1b3RlKCRuYW1lKTsN
CisgICAgICAgcmV0dXJuICR0aGlzLT5fZ2V0QWxsKCJTRUxFQ1QgdXNlcl9pZCwgdXNlcl9uYW1l
LCB1c2VyX2VtYWlsIEZST00gd2h1cHNfdXNlcnMgV0hFUkUgdXNlcl9uYW1lID0gJG5hbWUiKTsN
CisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBnZXRVc2VyRGV0YWlsc0Zyb21FbWFpbCgkZW1haWwp
IHsNCiAgICAgICAgICRlbWFpbCA9ICR0aGlzLT5kYi0+cXVvdGUoJGVtYWlsKTsNCi0gICAgICAg
ICRyZXN1bHQgPSAkdGhpcy0+X2dldEFsbCgiU0VMRUNUIGlkLCBuYW1lIEZST00gdXNlciBXSEVS
RSBlbWFpbCA9ICRlbWFpbCIpOw0KLSAgICAgICAgcmV0dXJuICRyZXN1bHRbMF07DQorICAgICAg
ICByZXR1cm4gJHRoaXMtPl9nZXRBbGwoIlNFTEVDVCB1c2VyX2lkLCB1c2VyX25hbWUsIHVzZXJf
ZW1haWwgRlJPTSB3aHVwc191c2VycyBXSEVSRSB1c2VyX2VtYWlsID0gJGVtYWlsIik7DQogICAg
IH0NCiANCiAgICAgZnVuY3Rpb24gZ2V0VXNlclNlYXJjaGVzKCR1c2VyKQ0KY3ZzIHNlcnZlcjog
RGlmZmluZyB3aHVwcy9zY3JpcHRzDQpjdnMgc2VydmVyOiBEaWZmaW5nIHdodXBzL3NjcmlwdHMv
YmFja2VuZA0KY3ZzIHNlcnZlcjogRGlmZmluZyB3aHVwcy90ZW1wbGF0ZXMNCmN2cyBzZXJ2ZXI6
IERpZmZpbmcgd2h1cHMvdGVtcGxhdGVzL2luZGV4

---------------------- multipart/mixed attachment--