From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Fix sync ibus_input_context_process_key_event() Date: Sun, 31 May 2026 02:08:11 GMT Message-ID: <178019329196.1.15673619065037637688.rpms-ibus-25ad70d24586@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 25ad70d2458691ff9d1210c04c910cb2a07acd49 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiAyNWFkNzBkMjQ1ODY5MWZmOWQxMjEwYzA0YzkxMGNiMmEwN2Fj ZDQ5CkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIzLTA3LTA3VDA5OjM5OjM5KzA5OjAwClN0YXRzICA6ICsxOTA3Ly0xIGluIDIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy8yNWFk NzBkMjQ1ODY5MWZmOWQxMjEwYzA0YzkxMGNiMmEwN2FjZDQ5P2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpGaXggc3luYyBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnQoKQoKLS0tCmRp ZmYgLS1naXQgYS9pYnVzLUhFQUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gKaW5kZXggYTY5MWFm Ny4uOWYyYWU1NiAxMDA2NDQKLS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyBiL2lidXMtSEVBRC5w YXRjaApAQCAtMjMzNiwzICsyMzM2LDE5MDYgQEAgaW5kZXggNjhkZGUyZjMuLmZlZTBiM2VlIDEw MDY0NAogLS0gCiAyLjQxLjAKIAorRnJvbSA4YTFiZDVmZjcyYjdlZGY0NzUyNmNmYTE5MzI1Zjdl MWRhYjg1ZjU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogRnJpLCA3IEp1bCAyMDIzIDA4OjQ5OjQ5ICsw OTAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBzcmM6IEZpeCBzeW5jIGlidXNfaW5wdXRfY29udGV4 dF9wcm9jZXNzX2tleV9ldmVudCgpCisKK1RoZSBzeW5jaHJvbm91cyAiUHJvY2Vzc0tleUV2ZW50 IiBELUJ1cyBtZXRob2QgY2Fubm90IHJlY2VpdmUKKyJDb21taXRUZXh0IiBhbmQgIkZvcndhcmRL ZXlFdmVudCIgRC1CdXMgc2lnbmFscyBkdXJpbmcgY2FsbGluZyB0aGUgbWV0aG9kLgorVG8gcmVz b2x2ZSB0aGUgaXNzdWUsIG5vdworaWJ1c19pbnB1dF9jb250ZXh0X3NldF9wb3N0X3Byb2Nlc3Nf a2V5X2V2ZW50KCkgYW5kCitpYnVzX2lucHV0X2NvbnRleHRfcG9zdF9wcm9jZXNzX2tleV9ldmVu dCgpIGFyZSBhZGRlZCBuZXdseS4KKworaWJ1c19pbnB1dF9jb250ZXh0X3Bvc3RfcHJvY2Vzc19r ZXlfZXZlbnQoKSByZXRyaWVzICJDb21taXRUZXh0IiBhbmQKKyJGb3J3YXJkS2V5RXZlbnQiIEQt QnVzIHNpZ25hbHMgZHVyaW5nIGNhbGxpbmcgdGhlICJQcm9jZXNzS2V5RXZlbnQiIEQtQnVzCitt ZXRob2QgYW5kIGlidXMtZGFlbW9uIGRvZXMgbm90IGhhbmRsZSB0aG9zZSBzaWduYWxzLgorCitC VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjQ4NgorLS0tCisgYnVzL2lu cHV0Y29udGV4dC5jICAgICAgICAgIHwgNTg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLQorIGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8ICA1MSArKy0tCisgc3JjL2li dXNpbnB1dGNvbnRleHQuYyAgICAgIHwgMTYyICsrKysrKysrKy0KKyBzcmMvaWJ1c2lucHV0Y29u dGV4dC5oICAgICAgfCAgMzAgKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDY1MiBpbnNlcnRpb25zKCsp LCAxNzggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9idXMvaW5wdXRjb250ZXh0LmMgYi9i dXMvaW5wdXRjb250ZXh0LmMKK2luZGV4IGU3NmJiZGZjLi4yMTEwYWY4NyAxMDA2NDQKKy0tLSBh L2J1cy9pbnB1dGNvbnRleHQuYworKysrIGIvYnVzL2lucHV0Y29udGV4dC5jCitAQCAtMzEsNiAr MzEsOCBAQAorICNpbmNsdWRlICJtYXJzaGFsZXJzLmgiCisgI2luY2x1ZGUgInR5cGVzLmgiCisg CisrI2RlZmluZSBNQVhfU1lOQ19EQVRBIDMwCisrCisgc3RydWN0IF9TZXRFbmdpbmVCeURlc2NE YXRhIHsKKyAgICAgLyogY29udGV4dCByZWxhdGVkIHRvIHRoZSBkYXRhICovCisgICAgIEJ1c0lu cHV0Q29udGV4dCAqY29udGV4dDsKK0BAIC0zOCwxMyArNDAsMTkgQEAgc3RydWN0IF9TZXRFbmdp bmVCeURlc2NEYXRhIHsKKyAgICAgR1Rhc2sgKnRhc2s7CisgICAgIC8qIGEgb2JqZWN0IHRvIGNh bmNlbCBidXNfZW5naW5lX3Byb3h5X25ldyBjYWxsICovCisgICAgIEdDYW5jZWxsYWJsZSAqY2Fu Y2VsbGFibGU7CistICAgIC8qIGEgb2JqZWN0IGJlaW5nIHBhc3NlZCB0byB0aGUgYnVzX2lucHV0 X2NvbnRleHRfc2V0X2VuZ2luZV9ieV9kZXNjIGZ1bmN0aW9uLiBpZiBvcmlnaW5fY2FuY2VsbGFi bGUgaXMgY2FuY2VsbGVkIGJ5IHNvbWVvbmUsCisrICAgIC8qIGEgb2JqZWN0IGJlaW5nIHBhc3Nl ZCB0byB0aGUgYnVzX2lucHV0X2NvbnRleHRfc2V0X2VuZ2luZV9ieV9kZXNjCisrICAgICAqIGZ1 bmN0aW9uLiBpZiBvcmlnaW5fY2FuY2VsbGFibGUgaXMgY2FuY2VsbGVkIGJ5IHNvbWVvbmUsCisg ICAgICAqIHdlIGNhbmNlbCB0aGUgY2FuY2VsbGFibGUgYWJvdmUgYXMgd2VsbC4gKi8KKyAgICAg R0NhbmNlbGxhYmxlICpvcmlnaW5fY2FuY2VsbGFibGU7CisgICAgIGd1bG9uZyBjYW5jZWxsZWRf aGFuZGxlcl9pZDsKKyB9OworIHR5cGVkZWYgc3RydWN0IF9TZXRFbmdpbmVCeURlc2NEYXRhIFNl dEVuZ2luZUJ5RGVzY0RhdGE7CisgCisrdHlwZWRlZiBzdHJ1Y3QgX1N5bmNGb3J3YXJkaW5nRGF0 YSB7CisrICAgIGdjaGFyICAgICBrZXk7CisrICAgIElCdXNUZXh0ICp0ZXh0OworK30gU3luY0Zv cndhcmRpbmdEYXRhOworKworIHN0cnVjdCBfQnVzSW5wdXRDb250ZXh0IHsKKyAgICAgSUJ1c1Nl cnZpY2UgcGFyZW50OworIAorQEAgLTk4LDYgKzEwNiw5IEBAIHN0cnVjdCBfQnVzSW5wdXRDb250 ZXh0IHsKKyAKKyAgICAgQnVzUGFuZWxQcm94eSAqZW1vamlfZXh0ZW5zaW9uOworICAgICBnYm9v bGVhbiBpc19leHRlbnNpb25fbG9va3VwX3RhYmxlOworKyAgICBHUXVldWUgKnF1ZXVlX2R1cmlu Z19wcm9jZXNzX2tleV9ldmVudDsKKysgICAgZ2Jvb2xlYW4gdXNlX3Bvc3RfcHJvY2Vzc19rZXlf ZXZlbnQ7CisrICAgIGdib29sZWFuIHByb2Nlc3Npbmdfa2V5X2V2ZW50OworIH07CisgCisgc3Ry dWN0IF9CdXNJbnB1dENvbnRleHRDbGFzcyB7CitAQCAtMTU1LDYgKzE2NiwxNSBAQCBzdGF0aWMg dm9pZCAgICAgYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9tZXRob2RfY2FsbAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqbWV0aG9k X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAg ICAgICAgICAgICpwYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbik7Cisrc3RhdGljIEdWYXJpYW50 ICoKKysgICAgICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9nZXRfcHJvcGVy dHkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzU2VydmljZSAgICAg ICAgICAgKnNlcnZpY2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RC dXNDb25uZWN0aW9uICAgICAgICpjb25uZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2VuZGVyLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqb2JqZWN0X3Bh dGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg ICAgICAgICppbnRlcmZhY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnByb3BlcnR5X25hbWUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgKiplcnJvcik7Cisg c3RhdGljIGdib29sZWFuIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2Vfc2V0X3Byb3BlcnR5Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1NlcnZpY2UgICAgICAgICAg ICpzZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzQ29u bmVjdGlvbiAgICAgICAqY29ubmVjdGlvbiwKK0BAIC0yMTQsOCArMjM0LDExIEBAIHN0YXRpYyBj b25zdCBnY2hhciBpbnRyb3NwZWN0aW9uX3htbFtdID0KKyAgICAgIjxub2RlPiIKKyAgICAgIiAg PGludGVyZmFjZSBuYW1lPSdvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQnPiIKKyAg ICAgLyogcHJvcGVydGllcyAqLworKyAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdQb3N0UHJvY2Vz c0tleUV2ZW50JyB0eXBlPScoYSh5dikpJyBhY2Nlc3M9J3JlYWQnIC8+XG4iCisgICAgICIgICAg PHByb3BlcnR5IG5hbWU9J0NvbnRlbnRUeXBlJyB0eXBlPScodXUpJyBhY2Nlc3M9J3dyaXRlJyAv PiIKKyAgICAgIiAgICA8cHJvcGVydHkgbmFtZT0nQ2xpZW50Q29tbWl0UHJlZWRpdCcgdHlwZT0n KGIpJyBhY2Nlc3M9J3dyaXRlJyAvPlxuIgorKyAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdFZmZl Y3RpdmVQb3N0UHJvY2Vzc0tleUV2ZW50JyB0eXBlPScoYiknICIKKysgICAgIiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzPSd3cml0ZScgLz5c biIKKyAgICAgLyogbWV0aG9kcyAqLworICAgICAiICAgIDxtZXRob2QgbmFtZT0nUHJvY2Vzc0tl eUV2ZW50Jz4iCisgICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nICB0eXBlPSd1JyBuYW1l PSdrZXl2YWwnIC8+IgorQEAgLTIyMyw2ICsyNDYsMTIgQEAgc3RhdGljIGNvbnN0IGdjaGFyIGlu dHJvc3BlY3Rpb25feG1sW10gPQorICAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyAgdHlw ZT0ndScgbmFtZT0nc3RhdGUnIC8+IgorICAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J291dCcg dHlwZT0nYicgbmFtZT0naGFuZGxlZCcgLz4iCisgICAgICIgICAgPC9tZXRob2Q+IgorKyAgICAi ICAgIDxtZXRob2QgbmFtZT0nUHJvY2Vzc0tleUV2ZW50U3luYyc+IgorKyAgICAiICAgICAgPGFy ZyBkaXJlY3Rpb249J2luJyAgdHlwZT0ndScgbmFtZT0na2V5dmFsJyAvPiIKKysgICAgIiAgICAg IDxhcmcgZGlyZWN0aW9uPSdpbicgIHR5cGU9J3UnIG5hbWU9J2tleWNvZGUnIC8+IgorKyAgICAi ICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyAgdHlwZT0ndScgbmFtZT0nc3RhdGUnIC8+IgorKyAg ICAiICAgICAgPGFyZyBkaXJlY3Rpb249J291dCcgdHlwZT0nYmEoeXYpJyBuYW1lPSdoYW5kbGVk JyAvPiIKKysgICAgIiAgICA8L21ldGhvZD4iCisgICAgICIgICAgPG1ldGhvZCBuYW1lPSdTZXRD dXJzb3JMb2NhdGlvbic+IgorICAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSdp JyBuYW1lPSd4JyAvPiIKKyAgICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0naScg bmFtZT0neScgLz4iCitAQCAtMzEyLDExICszNDEsMTQgQEAgc3RhdGljIGNvbnN0IGdjaGFyIGlu dHJvc3BlY3Rpb25feG1sW10gPQorIAorIEdfREVGSU5FX1RZUEUgKEJ1c0lucHV0Q29udGV4dCwg YnVzX2lucHV0X2NvbnRleHQsIElCVVNfVFlQRV9TRVJWSUNFKQorIAorLS8qIFRSVUUgaWYgd2Ug Y2FuIHNlbmQgcHJlZWRpdCB0ZXh0IHRvIGNsaWVudC4gRkFMU0UgaWYgdGhlIHBhbmVsIGhhcyB0 byBoYW5kbGUgaXQuIE5vdGUgdGhhdCB3ZSBjaGVjayBJQlVTX0NBUF9GT0NVUyBoZXJlIHNpbmNl CistICogd2hlbiB0aGUgY2FwYWJpbGl0eSBpcyBub3Qgc2V0LCB0aGUgY2xpZW50IGhhcyB0byBo YW5kbGUgYSBwcmVlZGl0IHRleHQgcmVnYXJkbGVzcyBvZiB0aGUgZW1iZWRfcHJlZWRpdF90ZXh0 IGNvbmZpZy4gKi8KKysvKiBUUlVFIGlmIHdlIGNhbiBzZW5kIHByZWVkaXQgdGV4dCB0byBjbGll bnQuIEZBTFNFIGlmIHRoZSBwYW5lbCBoYXMgdG8gaGFuZGxlCisrICogaXQuIE5vdGUgdGhhdCB3 ZSBjaGVjayBJQlVTX0NBUF9GT0NVUyBoZXJlIHNpbmNlCisrICogd2hlbiB0aGUgY2FwYWJpbGl0 eSBpcyBub3Qgc2V0LCB0aGUgY2xpZW50IGhhcyB0byBoYW5kbGUgYSBwcmVlZGl0IHRleHQKKysg KiByZWdhcmRsZXNzIG9mIHRoZSBlbWJlZF9wcmVlZGl0X3RleHQgY29uZmlnLiAqLworICNkZWZp bmUgUFJFRURJVF9DT05ESVRJT04gIFwKKyAgICAgKChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJ QlVTX0NBUF9QUkVFRElUX1RFWFQpICYmIFwKKy0gICAgIChidXNfaWJ1c19pbXBsX2lzX2VtYmVk X3ByZWVkaXRfdGV4dCAoQlVTX0RFRkFVTFRfSUJVUykgfHwgKGNvbnRleHQtPmNhcGFiaWxpdGll cyAmIElCVVNfQ0FQX0ZPQ1VTKSA9PSAwKSkKKysgICAgIChidXNfaWJ1c19pbXBsX2lzX2VtYmVk X3ByZWVkaXRfdGV4dCAoXAorKyAgICAgICAgICAgIEJVU19ERUZBVUxUX0lCVVMpIHx8IChjb250 ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9GT0NVUykgPT0gMCkpCisgCisgc3RhdGljIHZv aWQKKyBfY29ubmVjdGlvbl9kZXN0cm95X2NiIChCdXNDb25uZWN0aW9uICAgKmNvbm5lY3Rpb24s CitAQCAtMzQzLDE3ICszNzUsMjMgQEAgYnVzX2lucHV0X2NvbnRleHRfY2xhc3NfaW5pdCAoQnVz SW5wdXRDb250ZXh0Q2xhc3MgKmNsYXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiIik7CisgICAgIGdfb2JqZWN0X3JlZl9zaW5rIChj bGFzcy0+ZGVmYXVsdF9lbmdpbmVfZGVzYyk7CisgCistICAgIGlidXNfb2JqZWN0X2NsYXNzLT5k ZXN0cm95ID0gKElCdXNPYmplY3REZXN0cm95RnVuYykgYnVzX2lucHV0X2NvbnRleHRfZGVzdHJv eTsKKysgICAgaWJ1c19vYmplY3RfY2xhc3MtPmRlc3Ryb3kgPQorKyAgICAgICAgICAgIChJQnVz T2JqZWN0RGVzdHJveUZ1bmMpYnVzX2lucHV0X2NvbnRleHRfZGVzdHJveTsKKyAKKyAgICAgLyog b3ZlcnJpZGUgdGhlIHBhcmVudCBjbGFzcydzIGltcGxlbWVudGF0aW9uLiAqLworICAgICBJQlVT X1NFUlZJQ0VfQ0xBU1MgKGNsYXNzKS0+c2VydmljZV9tZXRob2RfY2FsbCA9CisgICAgICAgICBi dXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxsOworKyAgICBJQlVTX1NFUlZJQ0Vf Q0xBU1MgKGNsYXNzKS0+c2VydmljZV9nZXRfcHJvcGVydHkgPQorKyAgICAgICAgYnVzX2lucHV0 X2NvbnRleHRfc2VydmljZV9nZXRfcHJvcGVydHk7CisgICAgIElCVVNfU0VSVklDRV9DTEFTUyAo Y2xhc3MpLT5zZXJ2aWNlX3NldF9wcm9wZXJ0eSA9CisgICAgICAgICBidXNfaW5wdXRfY29udGV4 dF9zZXJ2aWNlX3NldF9wcm9wZXJ0eTsKKy0gICAgLyogcmVnaXN0ZXIgdGhlIHhtbCBzbyB0aGF0 IGJ1c19pYnVzX2ltcGxfc2VydmljZV9tZXRob2RfY2FsbCB3aWxsIGJlIGNhbGxlZCBvbiBhIG1l dGhvZCBjYWxsIGRlZmluZWQgaW4gdGhlIHhtbCAoZS5nLiAnRm9jdXNJbicuKSAqLworKyAgICAv KiByZWdpc3RlciB0aGUgeG1sIHNvIHRoYXQgYnVzX2lidXNfaW1wbF9zZXJ2aWNlX21ldGhvZF9j YWxsIHdpbGwgYmUKKysgICAgICogY2FsbGVkIG9uIGEgbWV0aG9kIGNhbGwgZGVmaW5lZCBpbiB0 aGUgeG1sIChlLmcuICdGb2N1c0luJy4pICovCisgICAgIGlidXNfc2VydmljZV9jbGFzc19hZGRf aW50ZXJmYWNlcyAoSUJVU19TRVJWSUNFX0NMQVNTIChjbGFzcyksIGludHJvc3BlY3Rpb25feG1s KTsKKyAKKy0gICAgLyogaW5zdGFsbCBnbGliIHNpZ25hbHMgdGhhdCB3b3VsZCBiZSBoYW5kbGVk IGJ5IG90aGVyIGNsYXNzZXMgbGlrZSBpYnVzaW1wbC5jIGFuZCBwYW5lbHByb3h5LmMuICovCisr ICAgIC8qIGluc3RhbGwgZ2xpYiBzaWduYWxzIHRoYXQgd291bGQgYmUgaGFuZGxlZCBieSBvdGhl ciBjbGFzc2VzIGxpa2UKKysgICAgICogaWJ1c2ltcGwuYyBhbmQgcGFuZWxwcm94eS5jLgorKyAg ICAgKi8KKyAgICAgY29udGV4dF9zaWduYWxzW1BST0NFU1NfS0VZX0VWRU5UXSA9CisgICAgICAg ICBnX3NpZ25hbF9uZXcgKElfKCJwcm9jZXNzLWtleS1ldmVudCIpLAorICAgICAgICAgICAgIEdf VFlQRV9GUk9NX0NMQVNTIChjbGFzcyksCitAQCAtNTc2LDggKzYxNCwxMSBAQCBidXNfaW5wdXRf Y29udGV4dF9jbGFzc19pbml0IChCdXNJbnB1dENvbnRleHRDbGFzcyAqY2xhc3MpCisgICAgICAg ICAgICAgR19UWVBFX05PTkUsCisgICAgICAgICAgICAgMCk7CisgCistICAgIC8qIFRoaXMgc2ln bmFsIGlzIG5vdCBmb3Igbm90aWZ5aW5nIGFuIGV2ZW50IG9uIHRoaXMgb2JqZWN0LCBidXQgaXMg Zm9yIHJlcXVlc3RpbmcgYW4gZW5naW5lIGFzIHRoZSBuYW1lIHNob3dzLgorLSAgICAgKiBPbiB0 aGUgc2lnbmFsIGVtaXNzaW9uLCBpYnVzaW1wbC5jIHdpbGwgaW1tZWRpYXRlbHkgdXBkYXRlIHRo ZSBjb250ZXh0LT5lbmdpbmUgdmFyaWFibGUuICovCisrICAgIC8qIFRoaXMgc2lnbmFsIGlzIG5v dCBmb3Igbm90aWZ5aW5nIGFuIGV2ZW50IG9uIHRoaXMgb2JqZWN0LCBidXQgaXMgZm9yCisrICAg ICAqIHJlcXVlc3RpbmcgYW4gZW5naW5lIGFzIHRoZSBuYW1lIHNob3dzLgorKyAgICAgKiBPbiB0 aGUgc2lnbmFsIGVtaXNzaW9uLCBpYnVzaW1wbC5jIHdpbGwgaW1tZWRpYXRlbHkgdXBkYXRlIHRo ZQorKyAgICAgKiBjb250ZXh0LT5lbmdpbmUgdmFyaWFibGUuCisrICAgICAqLworICAgICBjb250 ZXh0X3NpZ25hbHNbUkVRVUVTVF9FTkdJTkVdID0KKyAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8o InJlcXVlc3QtZW5naW5lIiksCisgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNz KSwKK0BAIC02MTQsNyArNjU1LDggQEAgYnVzX2lucHV0X2NvbnRleHRfY2xhc3NfaW5pdCAoQnVz SW5wdXRDb250ZXh0Q2xhc3MgKmNsYXNzKQorIAorICAgICB0ZXh0X2VtcHR5ID0gaWJ1c190ZXh0 X25ld19mcm9tX3N0cmluZyAoIiIpOworICAgICBnX29iamVjdF9yZWZfc2luayAodGV4dF9lbXB0 eSk7CistICAgIGxvb2t1cF90YWJsZV9lbXB0eSA9IGlidXNfbG9va3VwX3RhYmxlX25ldyAoOSAv KiBwYWdlIHNpemUgKi8sIDAsIEZBTFNFLCBGQUxTRSk7CisrICAgIGxvb2t1cF90YWJsZV9lbXB0 eSA9IGlidXNfbG9va3VwX3RhYmxlX25ldyAoOSAvKiBwYWdlIHNpemUgKi8sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgRkFMU0UsIEZBTFNFKTsK KyAgICAgZ19vYmplY3RfcmVmX3NpbmsgKGxvb2t1cF90YWJsZV9lbXB0eSk7CisgICAgIHByb3Bz X2VtcHR5ID0gaWJ1c19wcm9wX2xpc3RfbmV3ICgpOworICAgICBnX29iamVjdF9yZWZfc2luayAo cHJvcHNfZW1wdHkpOworQEAgLTY2Miw5ICs3MDQsMTAgQEAgYnVzX2lucHV0X2NvbnRleHRfZGVz dHJveSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorICAgICB9CisgCisgICAgIGlmIChjb250 ZXh0LT5jb25uZWN0aW9uKSB7CistICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0 X2J5X2Z1bmMgKGNvbnRleHQtPmNvbm5lY3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoR0NhbGxiYWNrKSBfY29ubmVjdGlvbl9kZXN0cm95X2NiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCk7CisrICAgICAg ICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMgKAorKyAgICAgICAgICAgICAg ICBjb250ZXh0LT5jb25uZWN0aW9uLAorKyAgICAgICAgICAgICAgICAoR0NhbGxiYWNrKSBfY29u bmVjdGlvbl9kZXN0cm95X2NiLAorKyAgICAgICAgICAgICAgICBjb250ZXh0KTsKKyAgICAgICAg IGdfb2JqZWN0X3VucmVmIChjb250ZXh0LT5jb25uZWN0aW9uKTsKKyAgICAgICAgIGNvbnRleHQt PmNvbm5lY3Rpb24gPSBOVUxMOworICAgICB9CitAQCAtNjc0LDcgKzcxNyw4IEBAIGJ1c19pbnB1 dF9jb250ZXh0X2Rlc3Ryb3kgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyAgICAgICAgIGNv bnRleHQtPmNsaWVudCA9IE5VTEw7CisgICAgIH0KKyAKKy0gICAgSUJVU19PQkpFQ1RfQ0xBU1Mg KGJ1c19pbnB1dF9jb250ZXh0X3BhcmVudF9jbGFzcyktPmRlc3Ryb3kgKElCVVNfT0JKRUNUIChj b250ZXh0KSk7CisrICAgIElCVVNfT0JKRUNUX0NMQVNTIChidXNfaW5wdXRfY29udGV4dF9wYXJl bnRfY2xhc3MpLT4KKysgICAgICAgICAgICBkZXN0cm95IChJQlVTX09CSkVDVCAoY29udGV4dCkp OworIH0KKyAKKyBzdGF0aWMgZ2Jvb2xlYW4KK0BAIC02ODksMjUgKzczMywzMCBAQCBidXNfaW5w dXRfY29udGV4dF9zZW5kX3NpZ25hbCAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorICAgICAg ICAgcmV0dXJuIFRSVUU7CisgICAgIH0KKyAKKy0gICAgR0RCdXNNZXNzYWdlICptZXNzYWdlID0g Z19kYnVzX21lc3NhZ2VfbmV3X3NpZ25hbCAoaWJ1c19zZXJ2aWNlX2dldF9vYmplY3RfcGF0aCAo KElCdXNTZXJ2aWNlICopY29udGV4dCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZV9uYW1lLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWxfbmFtZSk7Cisr ICAgIEdEQnVzTWVzc2FnZSAqbWVzc2FnZSA9IGdfZGJ1c19tZXNzYWdlX25ld19zaWduYWwgKAor KyAgICAgICAgICAgIGlidXNfc2VydmljZV9nZXRfb2JqZWN0X3BhdGggKChJQnVzU2VydmljZSAq KWNvbnRleHQpLAorKyAgICAgICAgICAgIGludGVyZmFjZV9uYW1lLAorKyAgICAgICAgICAgIHNp Z25hbF9uYW1lKTsKKyAgICAgZ19kYnVzX21lc3NhZ2Vfc2V0X3NlbmRlciAobWVzc2FnZSwgIm9y Zy5mcmVlZGVza3RvcC5JQnVzIik7CistICAgIGdfZGJ1c19tZXNzYWdlX3NldF9kZXN0aW5hdGlv biAobWVzc2FnZSwgYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lIChjb250ZXh0LT5jb25u ZWN0aW9uKSk7CisrICAgIGdfZGJ1c19tZXNzYWdlX3NldF9kZXN0aW5hdGlvbiAoCisrICAgICAg ICAgICAgbWVzc2FnZSwKKysgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25h bWUgKGNvbnRleHQtPmNvbm5lY3Rpb24pKTsKKyAgICAgaWYgKHBhcmFtZXRlcnMgIT0gTlVMTCkK KyAgICAgICAgIGdfZGJ1c19tZXNzYWdlX3NldF9ib2R5IChtZXNzYWdlLCBwYXJhbWV0ZXJzKTsK KyAKKy0gICAgZ2Jvb2xlYW4gcmV0dmFsID0gIGdfZGJ1c19jb25uZWN0aW9uX3NlbmRfbWVzc2Fn ZSAoYnVzX2Nvbm5lY3Rpb25fZ2V0X2RidXNfY29ubmVjdGlvbiAoY29udGV4dC0+Y29ubmVjdGlv biksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1lc3NhZ2UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdfREJVU19TRU5EX01FU1NBR0VfRkxBR1NfTk9ORSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZXJyb3Ip OworKyAgICBnYm9vbGVhbiByZXR2YWwgPSAgZ19kYnVzX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdl ICgKKysgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9nZXRfZGJ1c19jb25uZWN0aW9uIChjb250 ZXh0LT5jb25uZWN0aW9uKSwKKysgICAgICAgICAgICBtZXNzYWdlLAorKyAgICAgICAgICAgIEdf REJVU19TRU5EX01FU1NBR0VfRkxBR1NfTk9ORSwKKysgICAgICAgICAgICBOVUxMLCBlcnJvcik7 CisgICAgIGdfb2JqZWN0X3VucmVmIChtZXNzYWdlKTsKKyAgICAgcmV0dXJuIHJldHZhbDsKKyB9 CisgCisgLyoqCisgICogYnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWw6CistICogQHNpZ25h bF9uYW1lOiBUaGUgRC1CdXMgc2lnbmFsIG5hbWUgdG8gZW1pdCB3aGljaCBpcyBpbiB0aGUgaW50 cm9zcGVjdGlvbl94bWwuCisrICogQHNpZ25hbF9uYW1lOiBUaGUgRC1CdXMgc2lnbmFsIG5hbWUg dG8gZW1pdCB3aGljaCBpcyBpbiB0aGUKKysgKiBpbnRyb3NwZWN0aW9uX3htbC4KKyAgKgorICAq IEVtaXQgdGhlIEQtQnVzIHNpZ25hbC4KKyAgKi8KK0BAIC03NjMsNiArODEyLDExIEBAIGJ1c19p bnB1dF9jb250ZXh0X3Byb3BlcnR5X2NoYW5nZWQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwK KyB9CisgCisgCisrdHlwZWRlZiBzdHJ1Y3QgX1BhbmVsUHJvY2Vzc0tleUV2ZW50RGF0YSB7Cisr ICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbjsKKysgICAgQnVzSW5wdXRDb250 ZXh0ICpjb250ZXh0OworK30gUGFuZWxQcm9jZXNzS2V5RXZlbnREYXRhOworKworIC8qKgorICAq IF9wYW5lbF9wcm9jZXNzX2tleV9ldmVudF9jYjoKKyAgKgorQEAgLTc3MCwxNCArODI0LDIxIEBA IGJ1c19pbnB1dF9jb250ZXh0X3Byb3BlcnR5X2NoYW5nZWQgKEJ1c0lucHV0Q29udGV4dCAqY29u dGV4dCwKKyAgKiBidXNfcGFuZWxfcHJveHlfcHJvY2Vzc19rZXlfZXZlbnQoKSBpcyBmaW5pc2hl ZC4KKyAgKi8KKyBzdGF0aWMgdm9pZAorLV9wYW5lbF9wcm9jZXNzX2tleV9ldmVudF9jYiAoR09i amVjdCAgICAgICAgICAgICAgICpzb3VyY2UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHQXN5bmNSZXN1bHQgICAgICAgICAgKnJlcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbikKKytfcGFuZWxfcHJvY2Vzc19r ZXlfZXZlbnRfY2IgKEdPYmplY3QgICAgICAgICAgICAgICAgICAqc291cmNlLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICpyZXMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYW5lbFByb2Nlc3NLZXlFdmVudERhdGEgKmRhdGEp CisgeworICAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKKyAgICAgR1ZhcmlhbnQgKnZhbHVlID0g Z19kYnVzX3Byb3h5X2NhbGxfZmluaXNoICgoR0RCdXNQcm94eSAqKXNvdXJjZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3IpOworKyAgICBH REJ1c01ldGhvZEludm9jYXRpb24gKmludm9jYXRpb247CisrICAgIEJ1c0lucHV0Q29udGV4dCAq Y29udGV4dDsKKysKKysgICAgZ19hc3NlcnQgKGRhdGEpOworKyAgICBpbnZvY2F0aW9uID0gZGF0 YS0+aW52b2NhdGlvbjsKKysgICAgY29udGV4dCA9IGRhdGEtPmNvbnRleHQ7CisrICAgIGdfc2xp Y2VfZnJlZSAoUGFuZWxQcm9jZXNzS2V5RXZlbnREYXRhLCBkYXRhKTsKKyAgICAgaWYgKHZhbHVl ICE9IE5VTEwpIHsKKyAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFs dWUgKGludm9jYXRpb24sIHZhbHVlKTsKKyAgICAgICAgIGdfdmFyaWFudF91bnJlZiAodmFsdWUp OworQEAgLTc4Niw2ICs4NDcsNyBAQCBfcGFuZWxfcHJvY2Vzc19rZXlfZXZlbnRfY2IgKEdPYmpl Y3QgICAgICAgICAgICAgICAqc291cmNlLAorICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0 aW9uX3JldHVybl9nZXJyb3IgKGludm9jYXRpb24sIGVycm9yKTsKKyAgICAgICAgIGdfZXJyb3Jf ZnJlZSAoZXJyb3IpOworICAgICB9CisrICAgIGNvbnRleHQtPnByb2Nlc3Npbmdfa2V5X2V2ZW50 ID0gRkFMU0U7CisgfQorIAorIHR5cGVkZWYgc3RydWN0IF9Qcm9jZXNzS2V5RXZlbnREYXRhIFBy b2Nlc3NLZXlFdmVudERhdGE7CitAQCAtODIyLDIxICs4ODQsMjcgQEAgX2ljX3Byb2Nlc3Nfa2V5 X2V2ZW50X3JlcGx5X2NiIChHT2JqZWN0ICAgICAgICAgICAgICAgKnNvdXJjZSwKKyAgICAgICAg IGdib29sZWFuIHJldHZhbCA9IEZBTFNFOworICAgICAgICAgZ192YXJpYW50X2dldCAodmFsdWUs ICIoYikiLCAmcmV0dmFsKTsKKyAgICAgICAgIGlmIChjb250ZXh0LT5lbW9qaV9leHRlbnNpb24g JiYgIXJldHZhbCkgeworKyAgICAgICAgICAgIFBhbmVsUHJvY2Vzc0tleUV2ZW50RGF0YSAqcGRh dGEgPQorKyAgICAgICAgICAgICAgICAgICAgZ19zbGljZV9uZXcgKFBhbmVsUHJvY2Vzc0tleUV2 ZW50RGF0YSk7CisrICAgICAgICAgICAgcGRhdGEtPmludm9jYXRpb24gPSBpbnZvY2F0aW9uOwor KyAgICAgICAgICAgIHBkYXRhLT5jb250ZXh0ID0gY29udGV4dDsKKyAgICAgICAgICAgICBidXNf cGFuZWxfcHJveHlfcHJvY2Vzc19rZXlfZXZlbnQgKGNvbnRleHQtPmVtb2ppX2V4dGVuc2lvbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXZhbCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleWNvZGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmll cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Fz eW5jUmVhZHlDYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgX3BhbmVsX3Byb2Nlc3Nfa2V5X2V2ZW50X2NiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2NhdGlvbik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGF0YSk7CisgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5f dmFsdWUgKGludm9jYXRpb24sIHZhbHVlKTsKKysgICAgICAgICAgICBjb250ZXh0LT5wcm9jZXNz aW5nX2tleV9ldmVudCA9IEZBTFNFOworICAgICAgICAgfQorICAgICAgICAgZ192YXJpYW50X3Vu cmVmICh2YWx1ZSk7CisgICAgIH0KKyAgICAgZWxzZSB7CisgICAgICAgICBnX2RidXNfbWV0aG9k X2ludm9jYXRpb25fcmV0dXJuX2dlcnJvciAoaW52b2NhdGlvbiwgZXJyb3IpOworICAgICAgICAg Z19lcnJvcl9mcmVlIChlcnJvcik7CisrICAgICAgICBjb250ZXh0LT5wcm9jZXNzaW5nX2tleV9l dmVudCA9IEZBTFNFOworICAgICB9CisgCisgICAgIGdfb2JqZWN0X3VucmVmIChjb250ZXh0KTsK K0BAIC04NTAsMTQgKzkxOCwxNiBAQCBfaWNfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfY2IgKEdP YmplY3QgICAgICAgICAgICAgICAqc291cmNlLAorICAqIG9yZy5mcmVlZGVza3RvcC5JQnVzLklu cHV0Q29udGV4dCBpbnRlcmZhY2UuCisgICovCisgc3RhdGljIHZvaWQKKy1faWNfcHJvY2Vzc19r ZXlfZXZlbnQgIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCistICAgICAgICAgICAg ICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICAgICpwYXJhbWV0ZXJzLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbikKKytfaWNf cHJvY2Vzc19rZXlfZXZlbnQgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKKysgICAg ICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAgICAqcGFyYW1ldGVycywKKysg ICAgICAgICAgICAgICAgICAgICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbikK KyB7CisgICAgIGd1aW50IGtleXZhbCA9IElCVVNfS0VZX1ZvaWRTeW1ib2w7CisgICAgIGd1aW50 IGtleWNvZGUgPSAwOworICAgICBndWludCBtb2RpZmllcnMgPSAwOworIAorKyAgICBpZiAoY29u dGV4dC0+dXNlX3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQpCisrICAgICAgICBjb250ZXh0LT5wcm9j ZXNzaW5nX2tleV9ldmVudCA9IFRSVUU7CisgICAgIGdfdmFyaWFudF9nZXQgKHBhcmFtZXRlcnMs ICIodXV1KSIsICZrZXl2YWwsICZrZXljb2RlLCAmbW9kaWZpZXJzKTsKKyAgICAgaWYgKEdfVU5M SUtFTFkgKCFjb250ZXh0LT5oYXNfZm9jdXMpKSB7CisgICAgICAgICAvKiB3b3JrYXJvdW5kOiBz ZXQgZm9jdXMgaWYgY29udGV4dCBkb2VzIG5vdCBoYXZlIGZvY3VzICovCitAQCAtOTI1LDcgKzk5 NSw4IEBAIF9pY19wcm9jZXNzX2tleV9ldmVudCAgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29u dGV4dCwKKyAvKioKKyAgKiBfaWNfc2V0X2N1cnNvcl9sb2NhdGlvbjoKKyAgKgorLSAqIEltcGxl bWVudCB0aGUgIlNldEN1cnNvckxvY2F0aW9uIiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVk ZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKysgKiBJbXBsZW1lbnQgdGhlICJT ZXRDdXJzb3JMb2NhdGlvbiIgbWV0aG9kIGNhbGwgb2YgdGhlCisrICogb3JnLmZyZWVkZXNrdG9w LklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKyAgKi8KKyBzdGF0aWMgdm9pZAorIF9pY19z ZXRfY3Vyc29yX2xvY2F0aW9uIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCitAQCAt MTAwOCw3ICsxMDc5LDggQEAgX2ljX3Byb2Nlc3NfaGFuZF93cml0aW5nX2V2ZW50IChCdXNJbnB1 dENvbnRleHQgICAgICAgKmNvbnRleHQsCisgICAgIC8qIGRvIG5vdGhpbmcgaWYgaXQgaXMgYSBm YWtlIGlucHV0IGNvbnRleHQgKi8KKyAgICAgaWYgKGNvbnRleHQtPmhhc19mb2N1cyAmJgorICAg ICAgICAgY29udGV4dC0+ZW5naW5lICYmIGNvbnRleHQtPmZha2UgPT0gRkFMU0UpIHsKKy0gICAg ICAgIGJ1c19lbmdpbmVfcHJveHlfcHJvY2Vzc19oYW5kX3dyaXRpbmdfZXZlbnQgKGNvbnRleHQt PmVuZ2luZSwgcGFyYW1ldGVycyk7CisrICAgICAgICBidXNfZW5naW5lX3Byb3h5X3Byb2Nlc3Nf aGFuZF93cml0aW5nX2V2ZW50IChjb250ZXh0LT5lbmdpbmUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzKTsKKyAgICAgfQor ICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlIChpbnZvY2F0aW9uLCBO VUxMKTsKKyB9CitAQCAtMTAzMiw3ICsxMTA0LDggQEAgX2ljX2NhbmNlbF9oYW5kX3dyaXRpbmcg KEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKKyAvKioKKyAgKiBfaWNfZm9jdXNfaW46 CisgICoKKy0gKiBJbXBsZW1lbnQgdGhlICJGb2N1c0luIiBtZXRob2QgY2FsbCBvZiB0aGUgb3Jn LmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKysgKiBJbXBsZW1lbnQg dGhlICJGb2N1c0luIiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5w dXRDb250ZXh0CisrICogaW50ZXJmYWNlLgorICAqLworIHN0YXRpYyB2b2lkCisgX2ljX2ZvY3Vz X2luIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCitAQCAtMTA0NCwxNSArMTExNywx NyBAQCBfaWNfZm9jdXNfaW4gKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKKyAgICAg ICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sIE5V TEwpOworICAgICB9CisgICAgIGVsc2UgeworLSAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0 aW9uX3JldHVybl9lcnJvciAoaW52b2NhdGlvbiwgR19EQlVTX0VSUk9SLCBHX0RCVVNfRVJST1Jf RkFJTEVELAorLSAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgaW5wdXQgY29udGV4dCBkb2Vz IG5vdCBzdXBwb3J0IGZvY3VzLiIpOworKyAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9u X3JldHVybl9lcnJvciAoCisrICAgICAgICAgICAgICAgIGludm9jYXRpb24sIEdfREJVU19FUlJP UiwgR19EQlVTX0VSUk9SX0ZBSUxFRCwKKysgICAgICAgICAgICAgICAgIlRoZSBpbnB1dCBjb250 ZXh0IGRvZXMgbm90IHN1cHBvcnQgZm9jdXMuIik7CisgICAgIH0KKyB9CisgCisgLyoqCisgICog X2ljX2ZvY3VzX291dDoKKyAgKgorLSAqIEltcGxlbWVudCB0aGUgIkZvY3VzT3V0IiBtZXRob2Qg Y2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4K KysgKiBJbXBsZW1lbnQgdGhlICJGb2N1c091dCIgbWV0aG9kIGNhbGwgb2YgdGhlIG9yZy5mcmVl ZGVza3RvcC5JQnVzLklucHV0Q29udGV4dAorKyAqIGludGVyZmFjZS4KKyAgKi8KKyBzdGF0aWMg dm9pZAorIF9pY19mb2N1c19vdXQgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKK0BA IC0xMDY0LDE1ICsxMTM5LDE3IEBAIF9pY19mb2N1c19vdXQgKEJ1c0lucHV0Q29udGV4dCAgICAg ICAqY29udGV4dCwKKyAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFs dWUgKGludm9jYXRpb24sIE5VTEwpOworICAgICB9CisgICAgIGVsc2UgeworLSAgICAgICAgZ19k YnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvciAoaW52b2NhdGlvbiwgR19EQlVTX0VS Uk9SLCBHX0RCVVNfRVJST1JfRkFJTEVELAorLSAgICAgICAgICAgICAgICAgICAgICAgICJUaGUg aW5wdXQgY29udGV4dCBkb2VzIG5vdCBzdXBwb3J0IGZvY3VzLiIpOworKyAgICAgICAgZ19kYnVz X21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvciAoCisrICAgICAgICAgICAgICAgIGludm9j YXRpb24sIEdfREJVU19FUlJPUiwgR19EQlVTX0VSUk9SX0ZBSUxFRCwKKysgICAgICAgICAgICAg ICAgIlRoZSBpbnB1dCBjb250ZXh0IGRvZXMgbm90IHN1cHBvcnQgZm9jdXMuIik7CisgICAgIH0K KyB9CisgCisgLyoqCisgICogX2ljX3Jlc2V0OgorICAqCistICogSW1wbGVtZW50IHRoZSAiUmVz ZXQiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQg aW50ZXJmYWNlLgorKyAqIEltcGxlbWVudCB0aGUgIlJlc2V0IiBtZXRob2QgY2FsbCBvZiB0aGUg b3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0CisrICogaW50ZXJmYWNlLgorICAqLwor IHN0YXRpYyB2b2lkCisgX2ljX3Jlc2V0IChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQs CitAQCAtMTA5NCw3ICsxMTcxLDggQEAgX2ljX3Jlc2V0IChCdXNJbnB1dENvbnRleHQgICAgICAg KmNvbnRleHQsCisgLyoqCisgICogX2ljX3NldF9jYXBhYmlsaXRpZXM6CisgICoKKy0gKiBJbXBs ZW1lbnQgdGhlICJTZXRDYXBhYmlsaXRpZXMiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRl c2t0b3AuSUJ1cy5JbnB1dENvbnRleHQgaW50ZXJmYWNlLgorKyAqIEltcGxlbWVudCB0aGUgIlNl dENhcGFiaWxpdGllcyIgbWV0aG9kIGNhbGwgb2YgdGhlCisrICogb3JnLmZyZWVkZXNrdG9wLklC dXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKyAgKi8KKyBzdGF0aWMgdm9pZAorIF9pY19zZXRf Y2FwYWJpbGl0aWVzIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCitAQCAtMTExMiw3 ICsxMTkwLDggQEAgX2ljX3NldF9jYXBhYmlsaXRpZXMgKEJ1c0lucHV0Q29udGV4dCAgICAgICAq Y29udGV4dCwKKyAvKioKKyAgKiBfaWNfcHJvcGVydHlfYWN0aXZhdGU6CisgICoKKy0gKiBJbXBs ZW1lbnQgdGhlICJQcm9wZXJ0eUFjdGl2YXRlIiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVk ZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKysgKiBJbXBsZW1lbnQgdGhlICJQ cm9wZXJ0eUFjdGl2YXRlIiBtZXRob2QgY2FsbCBvZiB0aGUKKysgKiBvcmcuZnJlZWRlc2t0b3Au SUJ1cy5JbnB1dENvbnRleHQgaW50ZXJmYWNlLgorICAqLworIHN0YXRpYyB2b2lkCisgX2ljX3By b3BlcnR5X2FjdGl2YXRlIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCitAQCAtMTEy NCw3ICsxMjAzLDkgQEAgX2ljX3Byb3BlcnR5X2FjdGl2YXRlIChCdXNJbnB1dENvbnRleHQgICAg ICAgKmNvbnRleHQsCisgICAgIGdfdmFyaWFudF9nZXQgKHBhcmFtZXRlcnMsICIoJnN1KSIsICZw cm9wX25hbWUsICZwcm9wX3N0YXRlKTsKKyAKKyAgICAgaWYgKGNvbnRleHQtPmVuZ2luZSkgewor LSAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9wcm9wZXJ0eV9hY3RpdmF0ZSAoY29udGV4dC0+ZW5n aW5lLCBwcm9wX25hbWUsIHByb3Bfc3RhdGUpOworKyAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9w cm9wZXJ0eV9hY3RpdmF0ZSAoY29udGV4dC0+ZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcF9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcF9zdGF0ZSk7CisgICAgIH0KKyAKKyAjaWZkZWYg T1NfQ0hST01FT1MKK0BAIC0xMTMyLDkgKzEyMTMsMTIgQEAgX2ljX3Byb3BlcnR5X2FjdGl2YXRl IChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCisgICAgICAqIHNvIHBhc3MgUHJvcGVy dHlBY3RpdmF0ZSBzaWduYWwgdG8gdGhlIGZvY3VzZWQgY29udGV4dC4KKyAgICAgICovCisgICAg IGVsc2UgaWYgKGNvbnRleHQtPmZha2UpIHsKKy0gICAgICAgIEJ1c0lucHV0Q29udGV4dCAqZm9j dXNlZF9jb250ZXh0ID0gYnVzX2lidXNfaW1wbF9nZXRfZm9jdXNlZF9pbnB1dF9jb250ZXh0IChC VVNfREVGQVVMVF9JQlVTKTsKKysgICAgICAgIEJ1c0lucHV0Q29udGV4dCAqZm9jdXNlZF9jb250 ZXh0ID0KKysgICAgICAgICAgICAgICAgYnVzX2lidXNfaW1wbF9nZXRfZm9jdXNlZF9pbnB1dF9j b250ZXh0IChCVVNfREVGQVVMVF9JQlVTKTsKKyAgICAgICAgIGlmIChmb2N1c2VkX2NvbnRleHQg JiYgZm9jdXNlZF9jb250ZXh0LT5lbmdpbmUpCistICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94 eV9wcm9wZXJ0eV9hY3RpdmF0ZSAoZm9jdXNlZF9jb250ZXh0LT5lbmdpbmUsIHByb3BfbmFtZSwg cHJvcF9zdGF0ZSk7CisrICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9wcm9wZXJ0eV9hY3Rp dmF0ZSAoZm9jdXNlZF9jb250ZXh0LT5lbmdpbmUsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcF9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3Bfc3RhdGUpOworICAgICB9CisgI2VuZGlm CisgCitAQCAtMTE2NCw3ICsxMjQ4LDggQEAgX2ljX3NldF9lbmdpbmVfZG9uZSAoQnVzSW5wdXRD b250ZXh0ICAgICAgICpjb250ZXh0LAorIC8qKgorICAqIF9pY19zZXRfZW5naW5lOgorICAqCist ICogSW1wbGVtZW50IHRoZSAiU2V0RW5naW5lIiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVk ZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKysgKiBJbXBsZW1lbnQgdGhlICJT ZXRFbmdpbmUiIG1ldGhvZCBjYWxsIG9mIHRoZQorKyAqIG9yZy5mcmVlZGVza3RvcC5JQnVzLklu cHV0Q29udGV4dCBpbnRlcmZhY2UuCisgICovCisgc3RhdGljIHZvaWQKKyBfaWNfc2V0X2VuZ2lu ZSAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAorQEAgLTEyMDUsNyArMTI5MCw4IEBA IF9pY19zZXRfZW5naW5lIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCisgLyoqCisg ICogX2ljX2dldF9lbmdpbmU6CisgICoKKy0gKiBJbXBsZW1lbnQgdGhlICJHZXRFbmdpbmUiIG1l dGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQgaW50ZXJm YWNlLgorKyAqIEltcGxlbWVudCB0aGUgIkdldEVuZ2luZSIgbWV0aG9kIGNhbGwgb2YKKysgKiB0 aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KKyAgKi8KKyBz dGF0aWMgdm9pZAorIF9pY19nZXRfZW5naW5lIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRl eHQsCitAQCAtMTIxOCw3ICsxMzA0LDkgQEAgX2ljX2dldF9lbmdpbmUgKEJ1c0lucHV0Q29udGV4 dCAgICAgICAqY29udGV4dCwKKyAKKyAKKyAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3Jl dHVybl92YWx1ZSAoaW52b2NhdGlvbiwKKy0gICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHYp IiwgaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKWRlc2Mp KSk7CisrICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih2KSIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlICopZGVzYykpKTsKKyB9Cisg Cisgc3RhdGljIHZvaWQKK0BAIC0xMjcwLDcgKzEzNTgsOCBAQCBidXNfaW5wdXRfY29udGV4dF9z ZXJ2aWNlX2F1dGhvcml6ZWRfbWV0aG9kIChJQnVzU2VydmljZSAgICAgKnNlcnZpY2UsCisgLyoq CisgICogYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9tZXRob2RfY2FsbDoKKyAgKgorLSAqIEhh bmRsZSBhIEQtQnVzIG1ldGhvZCBjYWxsIHdob3NlIGRlc3RpbmF0aW9uIGFuZCBpbnRlcmZhY2Ug bmFtZSBhcmUgYm90aCAib3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IgorKyAqIEhh bmRsZSBhIEQtQnVzIG1ldGhvZCBjYWxsIHdob3NlIGRlc3RpbmF0aW9uIGFuZCBpbnRlcmZhY2Ug bmFtZSBhcmUgYm90aAorKyAqICJvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQiCisg ICovCisgc3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxs IChJQnVzU2VydmljZSAgICAgICAgICAgICpzZXJ2aWNlLAorQEAgLTEyODMsMjEgKzEzNzIsMjMg QEAgYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9tZXRob2RfY2FsbCAoSUJ1c1NlcnZpY2UgICAg ICAgICAgICAqc2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHREJ1c01ldGhvZEludm9jYXRpb24gICppbnZvY2F0aW9uKQorIHsKKyAgICAgaWYgKGdfc3Ry Y21wMCAoaW50ZXJmYWNlX25hbWUsIElCVVNfSU5URVJGQUNFX0lOUFVUX0NPTlRFWFQpICE9IDAp IHsKKy0gICAgICAgIElCVVNfU0VSVklDRV9DTEFTUyAoYnVzX2lucHV0X2NvbnRleHRfcGFyZW50 X2NsYXNzKS0+c2VydmljZV9tZXRob2RfY2FsbCAoCistICAgICAgICAgICAgICAgICAgICAgICAg c2VydmljZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIHNlbmRlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Rf cGF0aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfbmFtZSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICBtZXRob2RfbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBw YXJhbWV0ZXJzLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb24pOworKyAgICAg ICAgSUJVU19TRVJWSUNFX0NMQVNTIChidXNfaW5wdXRfY29udGV4dF9wYXJlbnRfY2xhc3MpLT4K KysgICAgICAgICAgICAgICAgc2VydmljZV9tZXRob2RfY2FsbCAoc2VydmljZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VuZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvYmplY3RfcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50ZXJmYWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1ldGhvZF9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYXJhbWV0ZXJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZv Y2F0aW9uKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQorIAorICAgICBzdGF0aWMgY29uc3Qg c3RydWN0IHsKKyAgICAgICAgIGNvbnN0IGdjaGFyICptZXRob2RfbmFtZTsKKy0gICAgICAgIHZv aWQgKCogbWV0aG9kX2NhbGxiYWNrKSAoQnVzSW5wdXRDb250ZXh0ICosIEdWYXJpYW50ICosIEdE QnVzTWV0aG9kSW52b2NhdGlvbiAqKTsKKysgICAgICAgIHZvaWQgKCogbWV0aG9kX2NhbGxiYWNr KSAoQnVzSW5wdXRDb250ZXh0ICosCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdWYXJpYW50ICosCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzTWV0 aG9kSW52b2NhdGlvbiAqKTsKKyAgICAgfSBtZXRob2RzIFtdID0gIHsKKyAgICAgICAgIHsgIlBy b2Nlc3NLZXlFdmVudCIsICAgX2ljX3Byb2Nlc3Nfa2V5X2V2ZW50IH0sCisgICAgICAgICB7ICJT ZXRDdXJzb3JMb2NhdGlvbiIsIF9pY19zZXRfY3Vyc29yX2xvY2F0aW9uIH0sCitAQCAtMTMyMiw3 ICsxNDEzLDkgQEAgYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9tZXRob2RfY2FsbCAoSUJ1c1Nl cnZpY2UgICAgICAgICAgICAqc2VydmljZSwKKyAKKyAgICAgZm9yIChpID0gMDsgaSA8IEdfTl9F TEVNRU5UUyAobWV0aG9kcyk7IGkrKykgeworICAgICAgICAgaWYgKGdfc3RyY21wMCAobWV0aG9k X25hbWUsIG1ldGhvZHNbaV0ubWV0aG9kX25hbWUpID09IDApIHsKKy0gICAgICAgICAgICBtZXRo b2RzW2ldLm1ldGhvZF9jYWxsYmFjayAoKEJ1c0lucHV0Q29udGV4dCAqKXNlcnZpY2UsIHBhcmFt ZXRlcnMsIGludm9jYXRpb24pOworKyAgICAgICAgICAgIG1ldGhvZHNbaV0ubWV0aG9kX2NhbGxi YWNrICgoQnVzSW5wdXRDb250ZXh0ICopc2VydmljZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW52b2NhdGlvbik7CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAg ICAgfQorICAgICB9CitAQCAtMTMzMCwxNyArMTQyMywxMDkgQEAgYnVzX2lucHV0X2NvbnRleHRf c2VydmljZV9tZXRob2RfY2FsbCAoSUJ1c1NlcnZpY2UgICAgICAgICAgICAqc2VydmljZSwKKyAg ICAgZ19yZXR1cm5faWZfcmVhY2hlZCAoKTsKKyB9CisgCistc3RhdGljIHZvaWQKKysvKioKKysg KiBfaWNfZ2V0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQ6CisrICoKKysgKiBJbXBsZW1lbnQgdGhl ICJQb3N0UHJvY2Vzc0tleUV2ZW50IiBnZXQgcHJvcGVydHkgb2YgdGhlCisrICogb3JnLmZyZWVk ZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZSBiZWNhdXNlIGN1cnJlbnRseSB0aGUg R2lvCisrICogRC1CdXMgbWV0aG9kIGNhbGxzIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgbmVzdGVk IHR1cGxlcyBsaWtlcworKyAqIEdfVkFSSUFOVF9UWVBFICgiKChiYSh5dikpKSIpKSBpbiAiUHJv Y2Vzc0tleUV2ZW50IiBELUJ1cyBtZXRob2QKKysgKiBTbyB0aGVzZSBwb3N0IGV2ZW50cyBhcmUg c2VwYXJhdGVkIGZyb20gdGhlIHJldHVybiB2YWx1ZSAiYiIgb2YgCisrICogdGhlICJQcm9jZXNz S2V5RXZlbnQiIEQtQnVzIG1ldGhvZCBjYWxsLgorKyAqLworK3N0YXRpYyBHVmFyaWFudCAqCisr X2ljX2dldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24gKmNvbm5l Y3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAq KmVycm9yKQorK3sKKysgICAgY29uc3QgY2hhciAqZXJyb3JfbWVzc2FnZSA9IE5VTEw7CisrICAg IEdWYXJpYW50QnVpbGRlciBhcnJheTsKKysgICAgU3luY0ZvcndhcmRpbmdEYXRhICpkYXRhOwor KworKyAgICBkbyB7CisrICAgICAgICBpZiAoIUJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0 KSkgeworKyAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAiQnVzSW5wdXRDb250ZXh0IGlzIGZy ZWVkIjsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICAgIGlmIChjb250 ZXh0LT5wcm9jZXNzaW5nX2tleV9ldmVudCkgeworKyAgICAgICAgICAgIGVycm9yX21lc3NhZ2Ug PSAiQW5vdGhlciBQcm9jZXNzS2V5RXZlbnQgaXMgY2FsbGVkLiI7CisrICAgICAgICAgICAgYnJl YWs7CisrICAgICAgICB9CisrICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0ICgmYXJyYXks IEdfVkFSSUFOVF9UWVBFICgiYSh5dikiKSk7CisrICAgICAgICB3aGlsZSAoKGRhdGEgPQorKyAg ICAgICAgICAgICAgICBnX3F1ZXVlX3BvcF9oZWFkIChjb250ZXh0LT5xdWV1ZV9kdXJpbmdfcHJv Y2Vzc19rZXlfZXZlbnQpKSkgeworKyAgICAgICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0gaWJ1 c19zZXJpYWxpemFibGVfc2VyaWFsaXplX29iamVjdCAoCisrICAgICAgICAgICAgICAgICAgICBJ QlVTX1NFUklBTElaQUJMRSAoZGF0YS0+dGV4dCkpOworKyAgICAgICAgICAgIGdfdmFyaWFudF9i dWlsZGVyX2FkZCAoJmFycmF5LCAiKHl2KSIsIGRhdGEtPmtleSwgdmFyaWFudCk7CisrICAgICAg ICAgICAgZ19vYmplY3RfdW5yZWYgKGRhdGEtPnRleHQpOworKyAgICAgICAgICAgIGdfc2xpY2Vf ZnJlZSAoU3luY0ZvcndhcmRpbmdEYXRhLCBkYXRhKTsKKysgICAgICAgIH0KKysgICAgfSB3aGls ZSAoRkFMU0UpOworKyAgICBpZiAoZXJyb3JfbWVzc2FnZSkgeworKyAgICAgICAgZ19zZXRfZXJy b3IgKGVycm9yLAorKyAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUiwKKysgICAgICAg ICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfRkFJTEVELAorKyAgICAgICAgICAgICAgICAgICAg ICIlcyIsIGVycm9yX21lc3NhZ2UpOworKyAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKysg ICAgcmV0dXJuIGdfdmFyaWFudF9idWlsZGVyX2VuZCAoJmFycmF5KTsKKyt9CisrCisrc3RhdGlj IEdWYXJpYW50ICoKKytidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX2dldF9wcm9wZXJ0eSAoSUJ1 c1NlcnZpY2UgICAgICAgICAgICpzZXJ2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24gICAgICAgKmNvbm5lY3Rpb24sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAq c2VuZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAgICAgICAgICAgKm9iamVjdF9wYXRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKmludGVyZmFjZV9uYW1lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg ICAgKnByb3BlcnR5X25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdFcnJvciAgICAgICAgICAgICAgICoqZXJyb3IpCisreworKyAgICBpbnQgaTsKKysgICAg c3RhdGljIGNvbnN0IHN0cnVjdCB7CisrICAgICAgICBjb25zdCBjaGFyICpwcm9wZXJ0eV9uYW1l OworKyAgICAgICAgR1ZhcmlhbnQgKiAoKiBwcm9wZXJ0eV9jYWxsYmFjaykgKEJ1c0lucHV0Q29u dGV4dCAqLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVz Q29ubmVjdGlvbiAqLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdFcnJvciAqKik7CisrICAgIH0gcHJvcGVydGllcyBbXSA9ICB7CisrICAgICAgICB7ICJQb3N0 UHJvY2Vzc0tleUV2ZW50IiwgICBfaWNfZ2V0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQgfSwKKysg ICAgfTsKKysKKysgICAgaWYgKGVycm9yKQorKyAgICAgICAgKmVycm9yID0gTlVMTDsKKysgICAg aWYgKGdfc3RyY21wMCAoaW50ZXJmYWNlX25hbWUsIElCVVNfSU5URVJGQUNFX0lOUFVUX0NPTlRF WFQpICE9IDApIHsKKysgICAgICAgIHJldHVybiBJQlVTX1NFUlZJQ0VfQ0xBU1MgKGJ1c19pbnB1 dF9jb250ZXh0X3BhcmVudF9jbGFzcyktPgorKyAgICAgICAgICAgICAgICBzZXJ2aWNlX2dldF9w cm9wZXJ0eSAoCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSwgY29ubmVjdGlvbiwg c2VuZGVyLCBvYmplY3RfcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2Vf bmFtZSwgcHJvcGVydHlfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcik7Cisr ICAgIH0KKysgICAgZm9yIChpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyAocHJvcGVydGllcyk7IGkr KykgeworKyAgICAgICAgaWYgKGdfc3RyY21wMCAocHJvcGVydGllc1tpXS5wcm9wZXJ0eV9uYW1l LCBwcm9wZXJ0eV9uYW1lKSA9PSAwKSB7CisrICAgICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNb aV0ucHJvcGVydHlfY2FsbGJhY2sgKChCdXNJbnB1dENvbnRleHQgKilzZXJ2aWNlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl cnJvcik7CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgZ19zZXRfZXJyb3IgKGVycm9yLAor KyAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SLAorKyAgICAgICAgICAgICAgICAgR19EQlVT X0VSUk9SX0ZBSUxFRCwKKysgICAgICAgICAgICAgICAgICJzZXJ2aWNlX2dldF9wcm9wZXJ0eSBy ZWNlaXZlZCBhbiB1bmtub3duIHByb3BlcnR5OiAlcyIsCisrICAgICAgICAgICAgICAgICBwcm9w ZXJ0eV9uYW1lID8gcHJvcGVydHlfbmFtZSA6ICIobnVsbCkiKTsKKysgICAgZ19yZXR1cm5fdmFs X2lmX3JlYWNoZWQgKE5VTEwpOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKyBfaWNfc2V0X2Nv bnRlbnRfdHlwZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorLSAgICAgICAgICAgICAgICAg ICAgICBHVmFyaWFudCAgICAgICAgKnZhbHVlKQorKyAgICAgICAgICAgICAgICAgICAgICBHVmFy aWFudCAgICAgICAgKnZhbHVlLAorKyAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAg ICAqKmVycm9yKQorIHsKKyAgICAgZ3VpbnQgcHVycG9zZSA9IDA7CisgICAgIGd1aW50IGhpbnRz ID0gMDsKKysgICAgZ2Jvb2xlYW4gcmV0dmFsID0gVFJVRTsKKyAKKyAgICAgZ192YXJpYW50X2dl dCAodmFsdWUsICIodXUpIiwgJnB1cnBvc2UsICZoaW50cyk7CisgICAgIGlmIChwdXJwb3NlICE9 IGNvbnRleHQtPnB1cnBvc2UgfHwgaGludHMgIT0gY29udGV4dC0+aGludHMpIHsKKy0gICAgICAg IEdFcnJvciAqZXJyb3I7CistICAgICAgICBnYm9vbGVhbiByZXR2YWw7CisgCisgICAgICAgICBj b250ZXh0LT5wdXJwb3NlID0gcHVycG9zZTsKKyAgICAgICAgIGNvbnRleHQtPmhpbnRzID0gaGlu dHM7CitAQCAtMTM1OCwyNCArMTU0MywzMCBAQCBfaWNfc2V0X2NvbnRlbnRfdHlwZSAoQnVzSW5w dXRDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQt PmhpbnRzKTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGVycm9yID0gTlVMTDsKKyAgICAgICAg IHJldHZhbCA9IGJ1c19pbnB1dF9jb250ZXh0X3Byb3BlcnR5X2NoYW5nZWQgKGNvbnRleHQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29u dGVudFR5cGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmFsdWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmZXJyb3IpOworLSAgICAgICAgaWYgKCFyZXR2YWwpIHsKKy0gICAgICAg ICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gZW1pdCBQcm9wZXJ0aWVzQ2hhbmdlZCBzaWduYWw6 ICVzIiwKKy0gICAgICAgICAgICAgICAgICAgICAgIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICAg ICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKy0gICAgICAgIH0KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKTsKKyAgICAgfQorKyAg ICByZXR1cm4gcmV0dmFsOworIH0KKyAKKy1zdGF0aWMgdm9pZAorK3N0YXRpYyBnYm9vbGVhbgor IF9pY19zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAqdmFsdWUp CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAqdmFsdWUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICoqZXJyb3Ip CisgeworICAgICBnX3ZhcmlhbnRfZ2V0ICh2YWx1ZSwgIihiKSIsICZjb250ZXh0LT5jbGllbnRf Y29tbWl0X3ByZWVkaXQpOworKyAgICByZXR1cm4gVFJVRTsKKyt9CisrCisrc3RhdGljIGdib29s ZWFuCisrX2ljX3NldF91c2VfcG9zdF9wcm9jZXNzX2tleV9ldmVudCAoQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50 ICAgICAgICAqdmFsdWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vy cm9yICAgICAgICAgKiplcnJvcikKKyt7CisrICAgIGdfdmFyaWFudF9nZXQgKHZhbHVlLCAiKGIp IiwgJmNvbnRleHQtPnVzZV9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50KTsKKysgICAgcmV0dXJuIFRS VUU7CisgfQorIAorIHN0YXRpYyBnYm9vbGVhbgorQEAgLTEzODgsNiArMTU3OSwxOCBAQCBidXNf aW5wdXRfY29udGV4dF9zZXJ2aWNlX3NldF9wcm9wZXJ0eSAoSUJ1c1NlcnZpY2UgICAgICpzZXJ2 aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAg ICAgICAgKnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH RXJyb3IgICAgICAgICAqKmVycm9yKQorIHsKKysgICAgaW50IGk7CisrICAgIHN0YXRpYyBjb25z dCBzdHJ1Y3QgeworKyAgICAgICAgY29uc3QgY2hhciAqcHJvcGVydHlfbmFtZTsKKysgICAgICAg IGdib29sZWFuICgqIHByb3BlcnR5X2NhbGxiYWNrKSAoQnVzSW5wdXRDb250ZXh0ICosCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICosCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAqKik7CisrICAgIH0gcHJv cGVydGllcyBbXSA9ICB7CisrICAgICAgICB7ICJDb250ZW50VHlwZSIsICAgICAgICAgICAgICAg ICAgIF9pY19zZXRfY29udGVudF90eXBlIH0sCisrICAgICAgICB7ICJDbGllbnRDb21taXRQcmVl ZGl0IiwgICAgICAgICAgIF9pY19zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IH0sCisrICAgICAg ICB7ICJFZmZlY3RpdmVQb3N0UHJvY2Vzc0tleUV2ZW50IiwgIF9pY19zZXRfdXNlX3Bvc3RfcHJv Y2Vzc19rZXlfZXZlbnQgfSwKKysgICAgfTsKKysKKyAgICAgaWYgKGVycm9yKQorICAgICAgICAg KmVycm9yID0gTlVMTDsKKyAgICAgaWYgKGdfc3RyY21wMCAoaW50ZXJmYWNlX25hbWUsIElCVVNf SU5URVJGQUNFX0lOUFVUX0NPTlRFWFQpICE9IDApIHsKK0BAIC0xNDE4LDE0ICsxNjIxLDEyIEBA IGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2Vfc2V0X3Byb3BlcnR5IChJQnVzU2VydmljZSAgICAg KnNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgIiAiKTsKKyAgICAgICAgIHJldHVybiBG QUxTRTsKKyAgICAgfQorLQorLSAgICBpZiAoZ19zdHJjbXAwIChwcm9wZXJ0eV9uYW1lLCAiQ29u dGVudFR5cGUiKSA9PSAwKSB7CistICAgICAgICBfaWNfc2V0X2NvbnRlbnRfdHlwZSAoQlVTX0lO UFVUX0NPTlRFWFQgKHNlcnZpY2UpLCB2YWx1ZSk7CistICAgICAgICByZXR1cm4gVFJVRTsKKy0g ICAgfQorLSAgICBpZiAoZ19zdHJjbXAwIChwcm9wZXJ0eV9uYW1lLCAiQ2xpZW50Q29tbWl0UHJl ZWRpdCIpID09IDApIHsKKy0gICAgICAgIF9pY19zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IChC VVNfSU5QVVRfQ09OVEVYVCAoc2VydmljZSksIHZhbHVlKTsKKy0gICAgICAgIHJldHVybiBUUlVF OworKyAgICBmb3IgKGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTIChwcm9wZXJ0aWVzKTsgaSsrKSB7 CisrICAgICAgICBpZiAoZ19zdHJjbXAwIChwcm9wZXJ0aWVzW2ldLnByb3BlcnR5X25hbWUsIHBy b3BlcnR5X25hbWUpID09IDApIHsKKysgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tpXS5w cm9wZXJ0eV9jYWxsYmFjayAoKEJ1c0lucHV0Q29udGV4dCAqKSBzZXJ2aWNlLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IpOwor KyAgICAgICAgfQorICAgICB9CisgCisgICAgIGdfc2V0X2Vycm9yIChlcnJvciwKK0BAIC0xNDY1 LDE1ICsxNjY2LDIzIEBAIGJ1c19pbnB1dF9jb250ZXh0X2ZvY3VzX2luIChCdXNJbnB1dENvbnRl eHQgKmNvbnRleHQpCisgICAgICAgICAgICAgICAgIGlidXNfc2VydmljZV9nZXRfb2JqZWN0X3Bh dGggKChJQnVzU2VydmljZSAqKWNvbnRleHQpOworICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9m b2N1c19pbiAoY29udGV4dC0+ZW5naW5lLCBwYXRoLCBjb250ZXh0LT5jbGllbnQpOworICAgICAg ICAgYnVzX2VuZ2luZV9wcm94eV9lbmFibGUgKGNvbnRleHQtPmVuZ2luZSk7CistICAgICAgICBi dXNfZW5naW5lX3Byb3h5X3NldF9jYXBhYmlsaXRpZXMgKGNvbnRleHQtPmVuZ2luZSwgY29udGV4 dC0+Y2FwYWJpbGl0aWVzKTsKKy0gICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2N1cnNvcl9s b2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT54LCBjb250ZXh0LT55LCBjb250ZXh0 LT53LCBjb250ZXh0LT5oKTsKKy0gICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2NvbnRlbnRf dHlwZSAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT5wdXJwb3NlLCBjb250ZXh0LT5oaW50cyk7 CisrICAgICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jYXBhYmlsaXRpZXMgKGNvbnRleHQtPmVu Z2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4 dC0+Y2FwYWJpbGl0aWVzKTsKKysgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2N1cnNvcl9s b2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZXh0LT54LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT55LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT53LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5oKTsKKysgICAgICAgIGJ1c19lbmdp bmVfcHJveHlfc2V0X2NvbnRlbnRfdHlwZSAoY29udGV4dC0+ZW5naW5lLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5wdXJwb3NlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5oaW50cyk7Cisg ICAgIH0KKyAKKyAgICAgaWYgKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX0ZPQ1VT KSB7CisgICAgICAgICBnX3NpZ25hbF9lbWl0IChjb250ZXh0LCBjb250ZXh0X3NpZ25hbHNbRk9D VVNfSU5dLCAwKTsKKyAgICAgICAgIGlmIChjb250ZXh0LT5lbmdpbmUpIHsKKy0gICAgICAgICAg ICAvKiBpZiBuZWNlc3NhcnksIGVtaXQgZ2xpYiBzaWduYWxzIHRvIHRoZSBjb250ZXh0IG9iamVj dCB0byB1cGRhdGUgcGFuZWwgc3RhdHVzLiBzZWUgdGhlIGNvbW1lbnQgZm9yIFBSRUVESVRfQ09O RElUSU9OCisrICAgICAgICAgICAgLyogaWYgbmVjZXNzYXJ5LCBlbWl0IGdsaWIgc2lnbmFscyB0 byB0aGUgY29udGV4dCBvYmplY3QgdG8gdXBkYXRlCisrICAgICAgICAgICAgICogcGFuZWwgc3Rh dHVzLiBzZWUgdGhlIGNvbW1lbnQgZm9yIFBSRUVESVRfQ09ORElUSU9OCisgICAgICAgICAgICAg ICogZm9yIGRldGFpbHMuICovCisgICAgICAgICAgICAgaWYgKGNvbnRleHQtPnByZWVkaXRfdmlz aWJsZSAmJiAhUFJFRURJVF9DT05ESVRJT04pIHsKKyAgICAgICAgICAgICAgICAgZ19zaWduYWxf ZW1pdCAoY29udGV4dCwKK0BAIC0xNDgzLDE0ICsxNjkyLDE2IEBAIGJ1c19pbnB1dF9jb250ZXh0 X2ZvY3VzX2luIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRleHQtPnByZWVkaXRfY3Vyc29yX3BvcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGV4dC0+cHJlZWRpdF92aXNpYmxlKTsKKyAgICAgICAgICAg ICB9CistICAgICAgICAgICAgaWYgKGNvbnRleHQtPmF1eGlsaWFyeV92aXNpYmxlICYmIChjb250 ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9BVVhJTElBUllfVEVYVCkgPT0gMCkgeworKyAg ICAgICAgICAgIGlmIChjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSAmJgorKyAgICAgICAgICAg ICAgICAoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJQVJZX1RFWFQpID09 IDApIHsKKyAgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9zaWduYWxzW1VQREFURV9BVVhJTElBUllf VEVYVF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmF1eGlsaWFyeV90ZXh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSk7CisgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIGlmIChjb250ZXh0LT5sb29rdXBfdGFibGVfdmlzaWJsZSAm JiAoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKSA9PSAwKSB7 CisrICAgICAgICAgICAgaWYgKGNvbnRleHQtPmxvb2t1cF90YWJsZV92aXNpYmxlICYmCisrICAg ICAgICAgICAgICAgIChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFC TEUpID09IDApIHsKKyAgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9zaWduYWxzW1VQREFURV9MT09L VVBfVEFCTEVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorQEAgLTE2MzAs MTQgKzE4NDEsMTcgQEAgYnVzX2lucHV0X2NvbnRleHRfcHJvcGVydHlfYWN0aXZhdGUgKEJ1c0lu cHV0Q29udGV4dCAqY29udGV4dCwKKyAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhU IChjb250ZXh0KSk7CisgCisgICAgIGlmIChjb250ZXh0LT5lbmdpbmUpIHsKKy0gICAgICAgIGJ1 c19lbmdpbmVfcHJveHlfcHJvcGVydHlfYWN0aXZhdGUgKGNvbnRleHQtPmVuZ2luZSwgcHJvcF9u YW1lLCBwcm9wX3N0YXRlKTsKKysgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfcHJvcGVydHlfYWN0 aXZhdGUgKGNvbnRleHQtPmVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByb3BfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByb3Bfc3RhdGUpOworICAgICB9CisgfQorIAorIC8qKgorICAqIGJ1c19p bnB1dF9jb250ZXh0X3Nob3dfcHJlZWRpdF90ZXh0OgorICAqCistICogU2hvdyBhIHByZWVkaXQg dGV4dC4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBjbGllbnQgb3Igc2Vu ZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2Yg dGhlIGNsaWVudC4KKysgKiBTaG93IGEgcHJlZWRpdCB0ZXh0LiBTZW5kIEQtQnVzIHNpZ25hbCB0 byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kCisrICogZ2xpYiBzaWduYWwgdG8gdGhl IHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCisgICovCisg c3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF9zaG93X3ByZWVkaXRfdGV4dCAoQnVzSW5w dXRDb250ZXh0ICpjb250ZXh0LAorQEAgLTE2NzgsNyArMTg5Miw4IEBAIGJ1c19pbnB1dF9jb250 ZXh0X3Nob3dfcHJlZWRpdF90ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgLyoqCisg ICogYnVzX2lucHV0X2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHQ6CisgICoKKy0gKiBIaWRlIGEg cHJlZWRpdCB0ZXh0LiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVu dCBvciBzZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxp dGllcyBvZiB0aGUgY2xpZW50LgorKyAqIEhpZGUgYSBwcmVlZGl0IHRleHQuIFNlbmQgRC1CdXMg c2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQKKysgKiBnbGliIHNpZ25h bCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4K KyAgKi8KKyBzdGF0aWMgdm9pZAorIGJ1c19pbnB1dF9jb250ZXh0X2hpZGVfcHJlZWRpdF90ZXh0 IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCitAQCAtMTcxNyw3ICsxOTMyLDggQEAgYnVzX2lu cHV0X2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwK KyAvKioKKyAgKiBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfYXV4aWxpYXJ5X3RleHQ6CisgICoK Ky0gKiBVcGRhdGUgYW4gYXV4IHRleHQuIFNlbmQgRC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0 dXMgb2YgY2xpZW50IG9yIHNlbmQgZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcg b24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCisrICogVXBkYXRlIGFuIGF1eCB0ZXh0LiBT ZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kCisrICog Z2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRo ZSBjbGllbnQuCisgICovCisgc3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF91cGRhdGVf YXV4aWxpYXJ5X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKK0BAIC0xNzMwLDExICsx OTQ2LDEzIEBAIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9hdXhpbGlhcnlfdGV4dCAoQnVzSW5w dXRDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGNvbnRleHQtPmF1 eGlsaWFyeV90ZXh0KTsKKyAgICAgfQorIAorLSAgICBjb250ZXh0LT5hdXhpbGlhcnlfdGV4dCA9 IChJQnVzVGV4dCAqKSBnX29iamVjdF9yZWZfc2luayAodGV4dCA/IHRleHQgOiB0ZXh0X2VtcHR5 KTsKKysgICAgY29udGV4dC0+YXV4aWxpYXJ5X3RleHQgPSAoSUJ1c1RleHQgKilnX29iamVjdF9y ZWZfc2luayAoCisrICAgICAgICAgICAgdGV4dCA/IHRleHQgOiB0ZXh0X2VtcHR5KTsKKyAgICAg Y29udGV4dC0+YXV4aWxpYXJ5X3Zpc2libGUgPSB2aXNpYmxlOworIAorICAgICBpZiAoY29udGV4 dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJQVJZX1RFWFQpIHsKKy0gICAgICAgIEdW YXJpYW50ICp2YXJpYW50ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1Nlcmlh bGl6YWJsZSAqKXRleHQpOworKyAgICAgICAgR1ZhcmlhbnQgKnZhcmlhbnQgPQorKyAgICAgICAg ICAgICAgICBpYnVzX3NlcmlhbGl6YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICop dGV4dCk7CisgICAgICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXBkYXRlQXV4aWxpYXJ5 VGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50 X25ldyAoIih2YikiLCB2YXJpYW50LCB2aXNpYmxlKSwKK0BAIC0xNzUyLDcgKzE5NzAsOCBAQCBi dXNfaW5wdXRfY29udGV4dF91cGRhdGVfYXV4aWxpYXJ5X3RleHQgKEJ1c0lucHV0Q29udGV4dCAq Y29udGV4dCwKKyAvKioKKyAgKiBidXNfaW5wdXRfY29udGV4dF9zaG93X2F1eGlsaWFyeV90ZXh0 OgorICAqCistICogU2hvdyBhbiBhdXggdGV4dC4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRl IHN0YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVu ZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4KKysgKiBTaG93IGFuIGF1eCB0ZXh0 LiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGds aWIKKysgKiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9m IHRoZSBjbGllbnQuCisgICovCisgc3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF9zaG93 X2F1eGlsaWFyeV90ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCitAQCAtMTc2NSw3ICsx OTg0LDggQEAgYnVzX2lucHV0X2NvbnRleHRfc2hvd19hdXhpbGlhcnlfdGV4dCAoQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0KQorIAorICAgICBjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSA9IFRS VUU7CisgCistICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJ QVJZX1RFWFQpID09IElCVVNfQ0FQX0FVWElMSUFSWV9URVhUKSB7CisrICAgIGlmICgoY29udGV4 dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJQVJZX1RFWFQpCisrICAgICAgICA9PSBJ QlVTX0NBUF9BVVhJTElBUllfVEVYVCkgeworICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfZW1p dF9zaWduYWwgKGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlNob3dBdXhpbGlhcnlUZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLAorQEAgLTE3ODEsNyArMjAwMSw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X3No b3dfYXV4aWxpYXJ5X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyAvKioKKyAgKiBi dXNfaW5wdXRfY29udGV4dF9oaWRlX2F1eGlsaWFyeV90ZXh0OgorICAqCistICogSGlkZSBhbiBh dXggdGV4dC4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBjbGllbnQgb3Ig c2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMg b2YgdGhlIGNsaWVudC4KKysgKiBIaWRlIGFuIGF1eCB0ZXh0LiBTZW5kIEQtQnVzIHNpZ25hbCB0 byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIKKysgKiBzaWduYWwgdG8gdGhl IHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCisgICovCisg c3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF9oaWRlX2F1eGlsaWFyeV90ZXh0IChCdXNJ bnB1dENvbnRleHQgKmNvbnRleHQpCitAQCAtMTc5NCw3ICsyMDE1LDggQEAgYnVzX2lucHV0X2Nv bnRleHRfaGlkZV9hdXhpbGlhcnlfdGV4dCAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorIAor ICAgICBjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSA9IEZBTFNFOworIAorLSAgICBpZiAoKGNv bnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX0FVWElMSUFSWV9URVhUKSA9PSBJQlVTX0NB UF9BVVhJTElBUllfVEVYVCkgeworKyAgICBpZiAoKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElC VVNfQ0FQX0FVWElMSUFSWV9URVhUKQorKyAgICAgICAgPT0gSUJVU19DQVBfQVVYSUxJQVJZX1RF WFQpIHsKKyAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaWRlQXV4aWxpYXJ5VGV4 dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKK0BAIC0x ODI5LDExICsyMDUxLDEzIEBAIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9sb29rdXBfdGFibGUg KEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgIGdfb2JqZWN0X3VucmVmIChjb250 ZXh0LT5sb29rdXBfdGFibGUpOworICAgICB9CisgCistICAgIGNvbnRleHQtPmxvb2t1cF90YWJs ZSA9IChJQnVzTG9va3VwVGFibGUgKikgZ19vYmplY3RfcmVmX3NpbmsgKHRhYmxlID8gdGFibGUg OiBsb29rdXBfdGFibGVfZW1wdHkpOworKyAgICBjb250ZXh0LT5sb29rdXBfdGFibGUgPSAoSUJ1 c0xvb2t1cFRhYmxlICopZ19vYmplY3RfcmVmX3NpbmsgKAorKyAgICAgICAgICAgIHRhYmxlID8g dGFibGUgOiBsb29rdXBfdGFibGVfZW1wdHkpOworICAgICBjb250ZXh0LT5sb29rdXBfdGFibGVf dmlzaWJsZSA9IHZpc2libGU7CisgCisgICAgIGlmIChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJ QlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKKy0gICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0gaWJ1 c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXRhYmxlKTsKKysg ICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0KKysgICAgICAgICAgICAgICAgaWJ1c19zZXJpYWxp emFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXRhYmxlKTsKKyAgICAgICAgIGJ1 c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJVcGRhdGVMb29rdXBUYWJsZSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih2YikiLCB2YXJpYW50 LCB2aXNpYmxlKSwKK0BAIC0xODUxLDcgKzIwNzUsOCBAQCBidXNfaW5wdXRfY29udGV4dF91cGRh dGVfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgLyoqCisgICogYnVz X2lucHV0X2NvbnRleHRfc2hvd19sb29rdXBfdGFibGU6CisgICoKKy0gKiBTaG93IHRoZSBsb29r dXAgdGFibGUuIFNlbmQgRC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9y IHNlbmQgZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVz IG9mIHRoZSBjbGllbnQuCisrICogU2hvdyB0aGUgbG9va3VwIHRhYmxlLiBTZW5kIEQtQnVzIHNp Z25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kCisrICogZ2xpYiBzaWduYWwg dG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCisg ICovCisgc3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF9zaG93X2xvb2t1cF90YWJsZSAo QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorQEAgLTE4NjQsNyArMjA4OSw4IEBAIGJ1c19pbnB1 dF9jb250ZXh0X3Nob3dfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCisg CisgICAgIGNvbnRleHQtPmxvb2t1cF90YWJsZV92aXNpYmxlID0gVFJVRTsKKyAKKy0gICAgaWYg KChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpID09IElCVVNf Q0FQX0xPT0tVUF9UQUJMRSkgeworKyAgICBpZiAoKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElC VVNfQ0FQX0xPT0tVUF9UQUJMRSkKKysgICAgICAgID09IElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkg eworICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWwgKGNvbnRleHQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNob3dMb29rdXBUYWJsZSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKK0BAIC0xODgwLDcg KzIxMDYsOCBAQCBidXNfaW5wdXRfY29udGV4dF9zaG93X2xvb2t1cF90YWJsZSAoQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0KQorIC8qKgorICAqIGJ1c19pbnB1dF9jb250ZXh0X2hpZGVfbG9va3Vw X3RhYmxlOgorICAqCistICogSGlkZSB0aGUgbG9va3VwIHRhYmxlLiBTZW5kIEQtQnVzIHNpZ25h bCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBw YW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgorKyAqIEhpZGUg dGhlIGxvb2t1cCB0YWJsZS4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBj bGllbnQgb3Igc2VuZAorKyAqIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9u IGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgorICAqLworIHN0YXRpYyB2b2lkCisgYnVzX2lu cHV0X2NvbnRleHRfaGlkZV9sb29rdXBfdGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkK K0BAIC0xODkzLDcgKzIxMjAsOCBAQCBidXNfaW5wdXRfY29udGV4dF9oaWRlX2xvb2t1cF90YWJs ZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorIAorICAgICBjb250ZXh0LT5sb29rdXBfdGFi bGVfdmlzaWJsZSA9IEZBTFNFOworIAorLSAgICBpZiAoKGNvbnRleHQtPmNhcGFiaWxpdGllcyAm IElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkgPT0gSUJVU19DQVBfTE9PS1VQX1RBQkxFKSB7CisrICAg IGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKQorKyAg ICAgICAgPT0gSUJVU19DQVBfTE9PS1VQX1RBQkxFKSB7CisgICAgICAgICBidXNfaW5wdXRfY29u dGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiSGlkZUxvb2t1cFRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorQEAgLTE5MDksNyArMjEzNyw4IEBAIGJ1c19pbnB1dF9jb250 ZXh0X2hpZGVfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCisgLyoqCisg ICogYnVzX2lucHV0X2NvbnRleHRfcGFnZV91cF9sb29rdXBfdGFibGU6CisgICoKKy0gKiBDaGFu Z2UgY3Vyc29yIHBvc2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9m IGNsaWVudCBvciBzZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNh cGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgorKyAqIENoYW5nZSBjdXJzb3IgcG9zaXRpb24uIFNl bmQgRC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQKKysgKiBn bGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhl IGNsaWVudC4KKyAgKi8KKyBzdGF0aWMgdm9pZAorIGJ1c19pbnB1dF9jb250ZXh0X3BhZ2VfdXBf bG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCitAQCAtMTkyMCw3ICsyMTQ5 LDggQEAgYnVzX2lucHV0X2NvbnRleHRfcGFnZV91cF9sb29rdXBfdGFibGUgKEJ1c0lucHV0Q29u dGV4dCAqY29udGV4dCkKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQorIAorLSAgICBpZiAoKGNv bnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkgPT0gSUJVU19DQVBf TE9PS1VQX1RBQkxFKSB7CisrICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19D QVBfTE9PS1VQX1RBQkxFKQorKyAgICAgICAgPT0gSUJVU19DQVBfTE9PS1VQX1RBQkxFKSB7Cisg ICAgICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFnZVVwTG9va3VwVGFibGUiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCitAQCAtMTkzNiw3ICsy MTY2LDggQEAgYnVzX2lucHV0X2NvbnRleHRfcGFnZV91cF9sb29rdXBfdGFibGUgKEJ1c0lucHV0 Q29udGV4dCAqY29udGV4dCkKKyAvKioKKyAgKiBidXNfaW5wdXRfY29udGV4dF9wYWdlX2Rvd25f bG9va3VwX3RhYmxlOgorICAqCistICogQ2hhbmdlIGN1cnNvciBwb3NpdGlvbi4gU2VuZCBELUJ1 cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliIHNpZ25hbCB0 byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4KKysg KiBDaGFuZ2UgY3Vyc29yIHBvc2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3Rh dHVzIG9mIGNsaWVudCBvciBzZW5kCisrICogZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBl bmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCisgICovCisgc3RhdGljIHZvaWQK KyBidXNfaW5wdXRfY29udGV4dF9wYWdlX2Rvd25fbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRl eHQgKmNvbnRleHQpCitAQCAtMTk0Nyw3ICsyMTc4LDggQEAgYnVzX2lucHV0X2NvbnRleHRfcGFn ZV9kb3duX2xvb2t1cF90YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorICAgICAgICAg cmV0dXJuOworICAgICB9CisgCistICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJV U19DQVBfTE9PS1VQX1RBQkxFKSA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKKysgICAgaWYg KChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpCisrICAgICAg ICA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKKyAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0 X2VtaXRfc2lnbmFsIChjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJQYWdlRG93bkxvb2t1cFRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorQEAgLTE5NjMsNyArMjE5NSw4IEBAIGJ1c19pbnB1dF9jb250 ZXh0X3BhZ2VfZG93bl9sb29rdXBfdGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyAv KioKKyAgKiBidXNfaW5wdXRfY29udGV4dF9jdXJzb3JfdXBfbG9va3VwX3RhYmxlOgorICAqCist ICogQ2hhbmdlIGN1cnNvciBwb3NpdGlvbi4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0 YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGlu ZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4KKysgKiBDaGFuZ2UgY3Vyc29yIHBvc2l0 aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5k CisrICogZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVz IG9mIHRoZSBjbGllbnQuCisgICovCisgc3RhdGljIHZvaWQKKyBidXNfaW5wdXRfY29udGV4dF9j dXJzb3JfdXBfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCitAQCAtMTk3 NCw3ICsyMjA3LDggQEAgYnVzX2lucHV0X2NvbnRleHRfY3Vyc29yX3VwX2xvb2t1cF90YWJsZSAo QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorICAgICAgICAgcmV0dXJuOworICAgICB9CisgCist ICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKSA9 PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKKysgICAgaWYgKChjb250ZXh0LT5jYXBhYmlsaXRp ZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpCisrICAgICAgICA9PSBJQlVTX0NBUF9MT09LVVBf VEFCTEUpIHsKKyAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDdXJzb3JVcExvb2t1 cFRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor QEAgLTE5OTAsNyArMjIyNCw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X2N1cnNvcl91cF9sb29rdXBf dGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyAvKioKKyAgKiBidXNfaW5wdXRfY29u dGV4dF9jdXJzb3JfZG93bl9sb29rdXBfdGFibGU6CisgICoKKy0gKiBDaGFuZ2UgY3Vyc29yIHBv c2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBz ZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBv ZiB0aGUgY2xpZW50LgorKyAqIENoYW5nZSBjdXJzb3IgcG9zaXRpb24uIFNlbmQgRC1CdXMgc2ln bmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQKKysgKiBnbGliIHNpZ25hbCB0 byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4KKyAg Ki8KKyBzdGF0aWMgdm9pZAorIGJ1c19pbnB1dF9jb250ZXh0X2N1cnNvcl9kb3duX2xvb2t1cF90 YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorQEAgLTIwMDEsNyArMjIzNiw4IEBAIGJ1 c19pbnB1dF9jb250ZXh0X2N1cnNvcl9kb3duX2xvb2t1cF90YWJsZSAoQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0KQorICAgICAgICAgcmV0dXJuOworICAgICB9CisgCistICAgIGlmICgoY29udGV4 dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKSA9PSBJQlVTX0NBUF9MT09L VVBfVEFCTEUpIHsKKysgICAgaWYgKChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9M T09LVVBfVEFCTEUpCisrICAgICAgICA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKKyAgICAg ICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDdXJzb3JEb3duTG9va3VwVGFibGUiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCitAQCAtMjAxNyw3ICsy MjUzLDggQEAgYnVzX2lucHV0X2NvbnRleHRfY3Vyc29yX2Rvd25fbG9va3VwX3RhYmxlIChCdXNJ bnB1dENvbnRleHQgKmNvbnRleHQpCisgLyoqCisgICogYnVzX2lucHV0X2NvbnRleHRfcmVnaXN0 ZXJfcHJvcGVydGllczoKKyAgKgorLSAqIFJlZ2lzdGVyIHByb3BlcnRpZXMuIFNlbmQgRC1CdXMg c2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQgZ2xpYiBzaWduYWwgdG8g dGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCisrICog UmVnaXN0ZXIgcHJvcGVydGllcy4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBv ZiBjbGllbnQgb3Igc2VuZAorKyAqIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5n IG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgorICAqLworIHN0YXRpYyB2b2lkCisgYnVz X2lucHV0X2NvbnRleHRfcmVnaXN0ZXJfcHJvcGVydGllcyAoQnVzSW5wdXRDb250ZXh0ICpjb250 ZXh0LAorQEAgLTIwMjcsNyArMjI2NCw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X3JlZ2lzdGVyX3By b3BlcnRpZXMgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKKyAgICAgZ19hc3NlcnQgKElCVVNf SVNfUFJPUF9MSVNUIChwcm9wcykpOworIAorICAgICBpZiAoY29udGV4dC0+Y2FwYWJpbGl0aWVz ICYgSUJVU19DQVBfUFJPUEVSVFkpIHsKKy0gICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0gaWJ1 c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXByb3BzKTsKKysg ICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0KKysgICAgICAgICAgICAgICAgaWJ1c19zZXJpYWxp emFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXByb3BzKTsKKyAgICAgICAgIGJ1 c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJSZWdpc3RlclByb3BlcnRpZXMiLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIodikiLCB2YXJpYW50 KSwKK0BAIC0yMDQ0LDcgKzIyODIsOCBAQCBidXNfaW5wdXRfY29udGV4dF9yZWdpc3Rlcl9wcm9w ZXJ0aWVzIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgLyoqCisgICogYnVzX2lucHV0X2Nv bnRleHRfdXBkYXRlX3Byb3BlcnR5OgorICAqCistICogVXBkYXRlIHByb3BlcnR5LiBTZW5kIEQt QnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIgc2lnbmFs IHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50Lgor KyAqIFVwZGF0ZSBwcm9wZXJ0eS4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBv ZiBjbGllbnQgb3Igc2VuZCBnbGliCisrICogc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5n IG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgorICAqLworIHN0YXRpYyB2b2lkCisgYnVz X2lucHV0X2NvbnRleHRfdXBkYXRlX3Byb3BlcnR5IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQs CitAQCAtMjA1NCw3ICsyMjkzLDggQEAgYnVzX2lucHV0X2NvbnRleHRfdXBkYXRlX3Byb3BlcnR5 IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgICAgIGdfYXNzZXJ0IChJQlVTX0lTX1BST1BF UlRZIChwcm9wKSk7CisgCisgICAgIGlmIChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NB UF9QUk9QRVJUWSkgeworLSAgICAgICAgR1ZhcmlhbnQgKnZhcmlhbnQgPSBpYnVzX3NlcmlhbGl6 YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopcHJvcCk7CisrICAgICAgICBHVmFy aWFudCAqdmFyaWFudCA9CisrICAgICAgICAgICAgICAgIGlidXNfc2VyaWFsaXphYmxlX3Nlcmlh bGl6ZSAoKElCdXNTZXJpYWxpemFibGUgKilwcm9wKTsKKyAgICAgICAgIGJ1c19pbnB1dF9jb250 ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJVcGRhdGVQcm9wZXJ0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih2KSIsIHZhcmlhbnQpLAorQEAgLTIwODksNyAr MjMyOSw4IEBAIF9lbmdpbmVfZGVzdHJveV9jYiAoQnVzRW5naW5lUHJveHkgICplbmdpbmUsCisg LyoqCisgICogX2VuZ2luZV9jb21taXRfdGV4dF9jYjoKKyAgKgorLSAqIEEgZnVuY3Rpb24gdG8g YmUgY2FsbGVkIHdoZW4gImNvbW1pdC10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBl bmdpbmUgb2JqZWN0LgorKyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gImNvbW1pdC10 ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBlbmdpbmUKKysgKiBvYmplY3QuCisgICov Cisgc3RhdGljIHZvaWQKKyBfZW5naW5lX2NvbW1pdF90ZXh0X2NiIChCdXNFbmdpbmVQcm94eSAg KmVuZ2luZSwKK0BAIC0yMTA4LDcgKzIzNDksOCBAQCBfZW5naW5lX2NvbW1pdF90ZXh0X2NiIChC dXNFbmdpbmVQcm94eSAgKmVuZ2luZSwKKyAvKioKKyAgKiBfZW5naW5lX2ZvcndhcmRfa2V5X2V2 ZW50X2NiOgorICAqCistICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAiZm9yd2FyZC1r ZXktZXZlbnQiIGdsaWIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGVuZ2luZSBvYmplY3QuCisrICog QSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAiZm9yd2FyZC1rZXktZXZlbnQiIGdsaWIgc2ln bmFsIGlzIHNlbnQgdG8gdGhlCisrICogZW5naW5lIG9iamVjdC4KKyAgKi8KKyBzdGF0aWMgdm9p ZAorIF9lbmdpbmVfZm9yd2FyZF9rZXlfZXZlbnRfY2IgKEJ1c0VuZ2luZVByb3h5ICAgICplbmdp bmUsCitAQCAtMjEyMiwxNiArMjM2NCwzMyBAQCBfZW5naW5lX2ZvcndhcmRfa2V5X2V2ZW50X2Ni IChCdXNFbmdpbmVQcm94eSAgICAqZW5naW5lLAorIAorICAgICBnX2Fzc2VydCAoY29udGV4dC0+ ZW5naW5lID09IGVuZ2luZSk7CisgCisrICAgIGlmIChjb250ZXh0LT5wcm9jZXNzaW5nX2tleV9l dmVudCAmJiBnX3F1ZXVlX2dldF9sZW5ndGggKAorKyAgICAgICAgICAgICAgICAgICBjb250ZXh0 LT5xdWV1ZV9kdXJpbmdfcHJvY2Vzc19rZXlfZXZlbnQpIDw9IE1BWF9TWU5DX0RBVEEpIHsKKysg ICAgICAgIFN5bmNGb3J3YXJkaW5nRGF0YSAqZGF0YTsKKysgICAgICAgIElCdXNUZXh0ICp0ZXh0 ID0gaWJ1c190ZXh0X25ld19mcm9tX3ByaW50ZiAoIiV1LCV1LCV1IiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBrZXljb2RlLCBz dGF0ZSk7CisrICAgICAgICBpZiAoZ19xdWV1ZV9nZXRfbGVuZ3RoIChjb250ZXh0LT5xdWV1ZV9k dXJpbmdfcHJvY2Vzc19rZXlfZXZlbnQpCisrICAgICAgICAgICAgPT0gTUFYX1NZTkNfREFUQSkg eworKyAgICAgICAgICAgIGdfd2FybmluZyAoIkV4Y2VlZCBtYXggbnVtYmVyIG9mIHBvc3QgcHJv Y2Vzc19rZXlfZXZlbnQgZGF0YSIpOworKyAgICAgICAgfQorKyAgICAgICAgZGF0YSA9IGdfc2xp Y2VfbmV3IChTeW5jRm9yd2FyZGluZ0RhdGEpOworKyAgICAgICAgZGF0YS0+a2V5ID0gJ2YnOwor KyAgICAgICAgZGF0YS0+dGV4dCA9IHRleHQ7CisrICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAo Y29udGV4dC0+cXVldWVfZHVyaW5nX3Byb2Nlc3Nfa2V5X2V2ZW50LCBkYXRhKTsKKysgICAgICAg IHJldHVybjsKKysgICAgfQorICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29u dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3J3YXJkS2V5RXZl bnQiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAo Iih1dXUpIiwga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHV1dSkiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyB9CisgCisgLyoq CisgICogX2VuZ2luZV9kZWxldGVfc3Vycm91bmRpbmdfdGV4dF9jYjoKKyAgKgorLSAqIEEgZnVu Y3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gImRlbGV0ZS1zdXJyb3VuZGluZy10ZXh0IiBnbGliIHNp Z25hbCBpcyBzZW50IHRvIHRoZSBlbmdpbmUgb2JqZWN0LgorKyAqIEEgZnVuY3Rpb24gdG8gYmUg Y2FsbGVkIHdoZW4gImRlbGV0ZS1zdXJyb3VuZGluZy10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50 CisrICogdG8gdGhlIGVuZ2luZSBvYmplY3QuCisgICovCisgc3RhdGljIHZvaWQKKyBfZW5naW5l X2RlbGV0ZV9zdXJyb3VuZGluZ190ZXh0X2NiIChCdXNFbmdpbmVQcm94eSAgICAqZW5naW5lLAor QEAgLTIxNDYsMTQgKzI0MDUsMTYgQEAgX2VuZ2luZV9kZWxldGVfc3Vycm91bmRpbmdfdGV4dF9j YiAoQnVzRW5naW5lUHJveHkgICAgKmVuZ2luZSwKKyAKKyAgICAgYnVzX2lucHV0X2NvbnRleHRf ZW1pdF9zaWduYWwgKGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRGVsZXRlU3Vycm91bmRpbmdUZXh0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdfdmFyaWFudF9uZXcgKCIoaXUpIiwgb2Zmc2V0X2Zyb21fY3Vyc29yLCBuY2hhcnMp LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihp dSkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0X2Zyb21fY3Vyc29yLCBuY2hhcnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCk7CisgfQorIAorIC8qKgorICAqIF9lbmdpbmVfcmVxdWlyZV9zdXJyb3Vu ZGluZ190ZXh0X2NiOgorICAqCistICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAicmVx dWlyZS1zdXJyb3VuZGluZy10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBlbmdpbmUg b2JqZWN0LgorKyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gInJlcXVpcmUtc3Vycm91 bmRpbmctdGV4dCIgZ2xpYiBzaWduYWwgaXMgc2VudAorKyAqIHRvIHRoZSBlbmdpbmUgb2JqZWN0 LgorICAqLworIHN0YXRpYyB2b2lkCisgX2VuZ2luZV9yZXF1aXJlX3N1cnJvdW5kaW5nX3RleHRf Y2IgKEJ1c0VuZ2luZVByb3h5ICAgICplbmdpbmUsCitAQCAtMjE3Myw3ICsyNDM0LDggQEAgX2Vu Z2luZV9yZXF1aXJlX3N1cnJvdW5kaW5nX3RleHRfY2IgKEJ1c0VuZ2luZVByb3h5ICAgICplbmdp bmUsCisgLyoqCisgICogX2VuZ2luZV91cGRhdGVfcHJlZWRpdF90ZXh0X2NiOgorICAqCistICog QSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAidXBkYXRlLXByZWVkaXQtdGV4dCIgZ2xpYiBz aWduYWwgaXMgc2VudCB0byB0aGUgZW5naW5lIG9iamVjdC4KKysgKiBBIGZ1bmN0aW9uIHRvIGJl IGNhbGxlZCB3aGVuICJ1cGRhdGUtcHJlZWRpdC10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRv CisrICogdGhlIGVuZ2luZSBvYmplY3QuCisgICovCisgc3RhdGljIHZvaWQKKyBfZW5naW5lX3Vw ZGF0ZV9wcmVlZGl0X3RleHRfY2IgKEJ1c0VuZ2luZVByb3h5ICAqZW5naW5lLAorQEAgLTIxOTcs NyArMjQ1OSw4IEBAIF9lbmdpbmVfdXBkYXRlX3ByZWVkaXRfdGV4dF9jYiAoQnVzRW5naW5lUHJv eHkgICplbmdpbmUsCisgLyoqCisgICogX2VuZ2luZV91cGRhdGVfYXV4aWxpYXJ5X3RleHRfY2I6 CisgICoKKy0gKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuICJ1cGRhdGUtYXV4aWxpYXJ5 LXRleHQiIGdsaWIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGVuZ2luZSBvYmplY3QuCisrICogQSBm dW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAidXBkYXRlLWF1eGlsaWFyeS10ZXh0IiBnbGliIHNp Z25hbCBpcyBzZW50IHRvCisrICogdGhlIGVuZ2luZSBvYmplY3QuCisgICovCisgc3RhdGljIHZv aWQKKyBfZW5naW5lX3VwZGF0ZV9hdXhpbGlhcnlfdGV4dF9jYiAoQnVzRW5naW5lUHJveHkgICAq ZW5naW5lLAorQEAgLTIyMTcsNyArMjQ4MCw4IEBAIF9lbmdpbmVfdXBkYXRlX2F1eGlsaWFyeV90 ZXh0X2NiIChCdXNFbmdpbmVQcm94eSAgICplbmdpbmUsCisgLyoqCisgICogX2VuZ2luZV91cGRh dGVfbG9va3VwX3RhYmxlX2NiOgorICAqCistICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hl biAidXBkYXRlLWxvb2t1cC10YWJsZSIgZ2xpYiBzaWduYWwgaXMgc2VudCB0byB0aGUgZW5naW5l IG9iamVjdC4KKysgKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuICJ1cGRhdGUtbG9va3Vw LXRhYmxlIiBnbGliIHNpZ25hbCBpcyBzZW50IHRvCisrICogdGhlIGVuZ2luZSBvYmplY3QuCisg ICovCisgc3RhdGljIHZvaWQKKyBfZW5naW5lX3VwZGF0ZV9sb29rdXBfdGFibGVfY2IgKEJ1c0Vu Z2luZVByb3h5ICAgKmVuZ2luZSwKK0BAIC0yMjM3LDcgKzI1MDEsOCBAQCBfZW5naW5lX3VwZGF0 ZV9sb29rdXBfdGFibGVfY2IgKEJ1c0VuZ2luZVByb3h5ICAgKmVuZ2luZSwKKyAvKioKKyAgKiBf ZW5naW5lX3JlZ2lzdGVyX3Byb3BlcnRpZXNfY2I6CisgICoKKy0gKiBBIGZ1bmN0aW9uIHRvIGJl IGNhbGxlZCB3aGVuICJyZWdpc3Rlci1wcm9wZXJ0aWVzIiBnbGliIHNpZ25hbCBpcyBzZW50IHRv IHRoZSBlbmdpbmUgb2JqZWN0LgorKyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gInJl Z2lzdGVyLXByb3BlcnRpZXMiIGdsaWIgc2lnbmFsIGlzIHNlbnQgdG8KKysgKiB0aGUgZW5naW5l IG9iamVjdC4KKyAgKi8KKyBzdGF0aWMgdm9pZAorIF9lbmdpbmVfcmVnaXN0ZXJfcHJvcGVydGll c19jYiAoQnVzRW5naW5lUHJveHkgICplbmdpbmUsCitAQCAtMjI1Niw3ICsyNTIxLDggQEAgX2Vu Z2luZV9yZWdpc3Rlcl9wcm9wZXJ0aWVzX2NiIChCdXNFbmdpbmVQcm94eSAgKmVuZ2luZSwKKyAv KioKKyAgKiBfZW5naW5lX3VwZGF0ZV9wcm9wZXJ0eV9jYjoKKyAgKgorLSAqIEEgZnVuY3Rpb24g dG8gYmUgY2FsbGVkIHdoZW4gInVwZGF0ZS1wcm9wZXJ0eSIgZ2xpYiBzaWduYWwgaXMgc2VudCB0 byB0aGUgZW5naW5lIG9iamVjdC4KKysgKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuICJ1 cGRhdGUtcHJvcGVydHkiIGdsaWIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlCisrICogZW5naW5lIG9i amVjdC4KKyAgKi8KKyBzdGF0aWMgdm9pZAorIF9lbmdpbmVfdXBkYXRlX3Byb3BlcnR5X2NiIChC dXNFbmdpbmVQcm94eSAgKmVuZ2luZSwKK0BAIC0yMzQ2LDEwICsyNjEyLDExIEBAIGJ1c19pbnB1 dF9jb250ZXh0X25ldyAoQnVzQ29ubmVjdGlvbiAgICAqY29ubmVjdGlvbiwKKyAKKyAgICAgQnVz SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKKyAgICAgaWYgKGNvbm5lY3Rpb24pIHsKKy0g ICAgICAgIGNvbnRleHQgPSAoQnVzSW5wdXRDb250ZXh0ICopIGdfb2JqZWN0X25ldyAoQlVTX1RZ UEVfSU5QVVRfQ09OVEVYVCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIm9iamVjdC1wYXRoIiwgcGF0aCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rpb24iLCBidXNfY29ubmVj dGlvbl9nZXRfZGJ1c19jb25uZWN0aW9uIChjb25uZWN0aW9uKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrICAgICAgICBjb250 ZXh0ID0gKEJ1c0lucHV0Q29udGV4dCAqKSBnX29iamVjdF9uZXcgKAorKyAgICAgICAgICAgICAg ICBCVVNfVFlQRV9JTlBVVF9DT05URVhULAorKyAgICAgICAgICAgICAgICAib2JqZWN0LXBhdGgi LCBwYXRoLAorKyAgICAgICAgICAgICAgICAiY29ubmVjdGlvbiIsIGJ1c19jb25uZWN0aW9uX2dl dF9kYnVzX2Nvbm5lY3Rpb24gKGNvbm5lY3Rpb24pLAorKyAgICAgICAgICAgICAgICBOVUxMKTsK KyAgICAgfQorICAgICBlbHNlIHsKKyAgICAgICAgIGNvbnRleHQgPSAoQnVzSW5wdXRDb250ZXh0 ICopIGdfb2JqZWN0X25ldyAoQlVTX1RZUEVfSU5QVVRfQ09OVEVYVCwKK0BAIC0yMzYyLDYgKzI2 MjksNyBAQCBidXNfaW5wdXRfY29udGV4dF9uZXcgKEJ1c0Nvbm5lY3Rpb24gICAgKmNvbm5lY3Rp b24sCisgCisgICAgIC8qIGl0IGlzIGEgZmFrZSBpbnB1dCBjb250ZXh0LCBqdXN0IG5lZWQgcHJv Y2VzcyBob3RrZXkgKi8KKyAgICAgY29udGV4dC0+ZmFrZSA9IChzdHJuY21wIChjbGllbnQsICJm YWtlIiwgNCkgPT0gMCk7CisrICAgIGNvbnRleHQtPnF1ZXVlX2R1cmluZ19wcm9jZXNzX2tleV9l dmVudCA9IGdfcXVldWVfbmV3ICgpOworIAorICAgICBpZiAoY29ubmVjdGlvbikgeworICAgICAg ICAgZ19vYmplY3RfcmVmX3NpbmsgKGNvbm5lY3Rpb24pOworQEAgLTI0MzksMjggKzI3MDcsMzcg QEAgYnVzX2lucHV0X2NvbnRleHRfZGlzYWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQor ICAgICB9CisgfQorIAorLS8qIEEgbGlzdCBvZiBzaWduYWxzIChhbmQgdGhlaXIgaGFuZGxlciBm dW5jdGlvbnMpIHRoYXQgY291bGQgYmUgZW1pdCBieSB0aGUgZW5naW5lIHByb3h5IG9iamVjdC4g Ki8KKysvKiBBIGxpc3Qgb2Ygc2lnbmFscyAoYW5kIHRoZWlyIGhhbmRsZXIgZnVuY3Rpb25zKSB0 aGF0IGNvdWxkIGJlIGVtaXQgYnkgdGhlCisrICogZW5naW5lIHByb3h5IG9iamVjdC4KKysgKi8K KyBjb25zdCBzdGF0aWMgc3RydWN0IHsKKyAgICAgY29uc3QgZ2NoYXIgKm5hbWU7CisgICAgIEdD YWxsYmFjayAgICBjYWxsYmFjazsKKyB9IGVuZ2luZV9zaWduYWxzIFtdID0geworICAgICB7ICJj b21taXQtdGV4dCIsICAgICAgICAgICAgICBHX0NBTExCQUNLIChfZW5naW5lX2NvbW1pdF90ZXh0 X2NiKSB9LAorICAgICB7ICJmb3J3YXJkLWtleS1ldmVudCIsICAgICAgICBHX0NBTExCQUNLIChf ZW5naW5lX2ZvcndhcmRfa2V5X2V2ZW50X2NiKSB9LAorLSAgICB7ICJkZWxldGUtc3Vycm91bmRp bmctdGV4dCIsICBHX0NBTExCQUNLIChfZW5naW5lX2RlbGV0ZV9zdXJyb3VuZGluZ190ZXh0X2Ni KSB9LAorLSAgICB7ICJyZXF1aXJlLXN1cnJvdW5kaW5nLXRleHQiLCBHX0NBTExCQUNLIChfZW5n aW5lX3JlcXVpcmVfc3Vycm91bmRpbmdfdGV4dF9jYikgfSwKKysgICAgeyAiZGVsZXRlLXN1cnJv dW5kaW5nLXRleHQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sg KF9lbmdpbmVfZGVsZXRlX3N1cnJvdW5kaW5nX3RleHRfY2IpIH0sCisrICAgIHsgInJlcXVpcmUt c3Vycm91bmRpbmctdGV4dCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExC QUNLIChfZW5naW5lX3JlcXVpcmVfc3Vycm91bmRpbmdfdGV4dF9jYikgfSwKKyAgICAgeyAidXBk YXRlLXByZWVkaXQtdGV4dCIsICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV91cGRhdGVfcHJlZWRp dF90ZXh0X2NiKSB9LAorICAgICB7ICJzaG93LXByZWVkaXQtdGV4dCIsICAgICAgICBHX0NBTExC QUNLIChfZW5naW5lX3Nob3dfcHJlZWRpdF90ZXh0X2NiKSB9LAorICAgICB7ICJoaWRlLXByZWVk aXQtdGV4dCIsICAgICAgICBHX0NBTExCQUNLIChfZW5naW5lX2hpZGVfcHJlZWRpdF90ZXh0X2Ni KSB9LAorLSAgICB7ICJ1cGRhdGUtYXV4aWxpYXJ5LXRleHQiLCAgICBHX0NBTExCQUNLIChfZW5n aW5lX3VwZGF0ZV9hdXhpbGlhcnlfdGV4dF9jYikgfSwKKysgICAgeyAidXBkYXRlLWF1eGlsaWFy eS10ZXh0IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9l bmdpbmVfdXBkYXRlX2F1eGlsaWFyeV90ZXh0X2NiKSB9LAorICAgICB7ICJzaG93LWF1eGlsaWFy eS10ZXh0IiwgICAgICBHX0NBTExCQUNLIChfZW5naW5lX3Nob3dfYXV4aWxpYXJ5X3RleHRfY2Ip IH0sCisgICAgIHsgImhpZGUtYXV4aWxpYXJ5LXRleHQiLCAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdp bmVfaGlkZV9hdXhpbGlhcnlfdGV4dF9jYikgfSwKKyAgICAgeyAidXBkYXRlLWxvb2t1cC10YWJs ZSIsICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV91cGRhdGVfbG9va3VwX3RhYmxlX2NiKSB9LAor ICAgICB7ICJzaG93LWxvb2t1cC10YWJsZSIsICAgICAgICBHX0NBTExCQUNLIChfZW5naW5lX3No b3dfbG9va3VwX3RhYmxlX2NiKSB9LAorICAgICB7ICJoaWRlLWxvb2t1cC10YWJsZSIsICAgICAg ICBHX0NBTExCQUNLIChfZW5naW5lX2hpZGVfbG9va3VwX3RhYmxlX2NiKSB9LAorLSAgICB7ICJw YWdlLXVwLWxvb2t1cC10YWJsZSIsICAgICBHX0NBTExCQUNLIChfZW5naW5lX3BhZ2VfdXBfbG9v a3VwX3RhYmxlX2NiKSB9LAorLSAgICB7ICJwYWdlLWRvd24tbG9va3VwLXRhYmxlIiwgICBHX0NB TExCQUNLIChfZW5naW5lX3BhZ2VfZG93bl9sb29rdXBfdGFibGVfY2IpIH0sCistICAgIHsgImN1 cnNvci11cC1sb29rdXAtdGFibGUiLCAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVfY3Vyc29yX3VwX2xv b2t1cF90YWJsZV9jYikgfSwKKy0gICAgeyAiY3Vyc29yLWRvd24tbG9va3VwLXRhYmxlIiwgR19D QUxMQkFDSyAoX2VuZ2luZV9jdXJzb3JfZG93bl9sb29rdXBfdGFibGVfY2IpIH0sCisrICAgIHsg InBhZ2UtdXAtbG9va3VwLXRhYmxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHX0NBTExCQUNLIChfZW5naW5lX3BhZ2VfdXBfbG9va3VwX3RhYmxlX2NiKSB9LAorKyAgICB7 ICJwYWdlLWRvd24tbG9va3VwLXRhYmxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR19DQUxMQkFDSyAoX2VuZ2luZV9wYWdlX2Rvd25fbG9va3VwX3RhYmxlX2NiKSB9LAorKyAg ICB7ICJjdXJzb3ItdXAtbG9va3VwLXRhYmxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9jdXJzb3JfdXBfbG9va3VwX3RhYmxlX2NiKSB9LAor KyAgICB7ICJjdXJzb3ItZG93bi1sb29rdXAtdGFibGUiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9jdXJzb3JfZG93bl9sb29rdXBfdGFibGVfY2Ip IH0sCisgICAgIHsgInJlZ2lzdGVyLXByb3BlcnRpZXMiLCAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdp bmVfcmVnaXN0ZXJfcHJvcGVydGllc19jYikgfSwKKyAgICAgeyAidXBkYXRlLXByb3BlcnR5Iiwg ICAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV91cGRhdGVfcHJvcGVydHlfY2IpIH0sCisgICAg IHsgInBhbmVsLWV4dGVuc2lvbiIsICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVfcGFuZWxf ZXh0ZW5zaW9uX2NiKSB9LAorQEAgLTI1MzEsOSArMjgwOCwxNiBAQCBidXNfaW5wdXRfY29udGV4 dF9zZXRfZW5naW5lIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAg ICAgICBpYnVzX3NlcnZpY2VfZ2V0X29iamVjdF9wYXRoICgoSUJ1c1NlcnZpY2UgKiljb250ZXh0 KTsKKyAgICAgICAgICAgICBidXNfZW5naW5lX3Byb3h5X2ZvY3VzX2luIChjb250ZXh0LT5lbmdp bmUsIHBhdGgsIGNvbnRleHQtPmNsaWVudCk7CisgICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94 eV9lbmFibGUgKGNvbnRleHQtPmVuZ2luZSk7CistICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94 eV9zZXRfY2FwYWJpbGl0aWVzIChjb250ZXh0LT5lbmdpbmUsIGNvbnRleHQtPmNhcGFiaWxpdGll cyk7CistICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9zZXRfY3Vyc29yX2xvY2F0aW9uIChj b250ZXh0LT5lbmdpbmUsIGNvbnRleHQtPngsIGNvbnRleHQtPnksIGNvbnRleHQtPncsIGNvbnRl eHQtPmgpOworLSAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2NvbnRlbnRfdHlwZSAo Y29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT5wdXJwb3NlLCBjb250ZXh0LT5oaW50cyk7CisrICAg ICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9zZXRfY2FwYWJpbGl0aWVzIChjb250ZXh0LT5lbmdp bmUsIAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGV4dC0+Y2FwYWJpbGl0aWVzKTsKKysgICAgICAgICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9j dXJzb3JfbG9jYXRpb24gKGNvbnRleHQtPmVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPngsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT55LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+dywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQt PmgpOworKyAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2NvbnRlbnRfdHlwZSAoY29u dGV4dC0+ZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGV4dC0+cHVycG9zZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRleHQtPmhpbnRzKTsKKyAgICAgICAgIH0KKyAgICAgfQorICAg ICBnX3NpZ25hbF9lbWl0IChjb250ZXh0LAorQEAgLTI3NzksNyArMzA2Myw4IEBAIGJ1c19pbnB1 dF9jb250ZXh0X3NldF9jYXBhYmlsaXRpZXMgKEJ1c0lucHV0Q29udGV4dCAgICAqY29udGV4dCwK KyB7CisgICAgIGdfYXNzZXJ0IChCVVNfSVNfSU5QVVRfQ09OVEVYVCAoY29udGV4dCkpOworIAor LSAgICAvKiBJZiB0aGUgY29udGV4dCBkb2VzIG5vdCBzdXBwb3J0IElCVVNfQ0FQX0ZPQ1VTLCB0 aGVuIHRoZSBjbGllbnQgYXBwbGljYXRpb24gaGF2ZSB0byBoYW5kbGUgYWxsIGluZm9ybWF0aW9u IHN1Y2ggYXMKKysgICAgLyogSWYgdGhlIGNvbnRleHQgZG9lcyBub3Qgc3VwcG9ydCBJQlVTX0NB UF9GT0NVUywgdGhlbiB0aGUgY2xpZW50CisrICAgICAqIGFwcGxpY2F0aW9uIGhhdmUgdG8gaGFu ZGxlIGFsbCBpbmZvcm1hdGlvbiBzdWNoIGFzCisgICAgICAqIHByZWVkaXQgYW5kIGF1eGlsaWFy eSB0ZXh0LiAqLworICAgICBpZiAoKGNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX0ZPQ1VTKSA9PSAw KSB7CisgICAgICAgICBjYXBhYmlsaXRpZXMgfD0gKElCVVNfQ0FQX1BSRUVESVRfVEVYVCB8IElC VVNfQ0FQX0FVWElMSUFSWV9URVhUIHwgSUJVU19DQVBfTE9PS1VQX1RBQkxFIHwgSUJVU19DQVBf UFJPUEVSVFkpOworQEAgLTI4MjgsMTEgKzMxMTMsMTcgQEAgYnVzX2lucHV0X2NvbnRleHRfc2V0 X2NvbnRlbnRfdHlwZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgaGludHMpCisgeworICAgICBH VmFyaWFudCAqdmFsdWU7CisrICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworIAorICAgICBnX2Fz c2VydCAoQlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKKyAKKyAgICAgdmFsdWUgPSBn X3ZhcmlhbnRfcmVmX3NpbmsgKGdfdmFyaWFudF9uZXcgKCIodXUpIiwgcHVycG9zZSwgaGludHMp KTsKKy0gICAgX2ljX3NldF9jb250ZW50X3R5cGUgKGNvbnRleHQsIHZhbHVlKTsKKysgICAgX2lj X3NldF9jb250ZW50X3R5cGUgKGNvbnRleHQsIHZhbHVlLCAmZXJyb3IpOworKyAgICBpZiAoZXJy b3IpIHsKKysgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBlbWl0IFByb3BlcnRpZXNDaGFu Z2VkIHNpZ25hbDogJXMiLAorKyAgICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7Cisr ICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKysgICAgfQorICAgICBnX3ZhcmlhbnRfdW5y ZWYgKHZhbHVlKTsKKyB9CisgCitAQCAtMjg0MiwxMiArMzEzMywyNCBAQCBidXNfaW5wdXRfY29u dGV4dF9jb21taXRfdGV4dF91c2VfZXh0ZW5zaW9uIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g ICAgICAgICB1c2VfZXh0ZW5zaW9uKQorIHsKKyAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9D T05URVhUIChjb250ZXh0KSk7CisrICAgIGdfYXNzZXJ0IChjb250ZXh0LT5xdWV1ZV9kdXJpbmdf cHJvY2Vzc19rZXlfZXZlbnQpOworIAorICAgICBpZiAodGV4dCA9PSB0ZXh0X2VtcHR5IHx8IHRl eHQgPT0gTlVMTCkKKyAgICAgICAgIHJldHVybjsKKyAKKyAgICAgaWYgKHVzZV9leHRlbnNpb24g JiYgY29udGV4dC0+ZW1vamlfZXh0ZW5zaW9uKSB7CisgICAgICAgICBidXNfcGFuZWxfcHJveHlf Y29tbWl0X3RleHRfcmVjZWl2ZWQgKGNvbnRleHQtPmVtb2ppX2V4dGVuc2lvbiwgdGV4dCk7Cisr ICAgIH0gZWxzZSBpZiAoY29udGV4dC0+cHJvY2Vzc2luZ19rZXlfZXZlbnQgJiYgZ19xdWV1ZV9n ZXRfbGVuZ3RoICgKKysgICAgICAgICAgICAgICAgICAgY29udGV4dC0+cXVldWVfZHVyaW5nX3By b2Nlc3Nfa2V5X2V2ZW50KSA8PSBNQVhfU1lOQ19EQVRBKSB7CisrICAgICAgICBTeW5jRm9yd2Fy ZGluZ0RhdGEgKmRhdGE7CisrICAgICAgICBpZiAoZ19xdWV1ZV9nZXRfbGVuZ3RoIChjb250ZXh0 LT5xdWV1ZV9kdXJpbmdfcHJvY2Vzc19rZXlfZXZlbnQpCisrICAgICAgICAgICAgPT0gTUFYX1NZ TkNfREFUQSkgeworKyAgICAgICAgICAgIGdfd2FybmluZyAoIkV4Y2VlZCBtYXggbnVtYmVyIG9m IHN5bmMgcHJvY2Vzc19rZXlfZXZlbnQgZGF0YSIpOworKyAgICAgICAgfQorKyAgICAgICAgZGF0 YSA9IGdfc2xpY2VfbmV3IChTeW5jRm9yd2FyZGluZ0RhdGEpOworKyAgICAgICAgZGF0YS0+a2V5 ID0gJ2MnOworKyAgICAgICAgZGF0YS0+dGV4dCA9IGdfb2JqZWN0X3JlZiAodGV4dCk7CisrICAg ICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoY29udGV4dC0+cXVldWVfZHVyaW5nX3Byb2Nlc3Nfa2V5 X2V2ZW50LCBkYXRhKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIEdWYXJpYW50ICp2YXJpYW50 ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgKKyAgICAgICAgICAgICAgICAgKElCdXNT ZXJpYWxpemFibGUgKil0ZXh0KTsKK2RpZmYgLS1naXQgYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250 ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKK2luZGV4IGVhODI3MGJiLi44ZWU4 NTE0OSAxMDA2NDQKKy0tLSBhL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYworKysrIGIvY2xp ZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCitAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyBndWlu dCAgICBfc2lnbmFsX2RlbGV0ZV9zdXJyb3VuZGluZ19pZCA9IDA7Cisgc3RhdGljIGd1aW50ICAg IF9zaWduYWxfcmV0cmlldmVfc3Vycm91bmRpbmdfaWQgPSAwOworIAorICNpZiBHVEtfQ0hFQ0tf VkVSU0lPTiAoMywgOTgsIDQpCistc3RhdGljIGNoYXIgX3VzZV9zeW5jX21vZGUgPSAyOworK3N0 YXRpYyBjaGFyIF91c2Vfc3luY19tb2RlID0gMTsKKyAjZWxzZQorIHN0YXRpYyBjb25zdCBnY2hh ciAqX25vX3Nub29wZXJfYXBwcyA9IE5PX1NOT09QRVJfQVBQUzsKKyBzdGF0aWMgZ2Jvb2xlYW4g X3VzZV9rZXlfc25vb3BlciA9IEVOQUJMRV9TTk9PUEVSOworQEAgLTM4Niw2ICszODYsMjMgQEAg dHlwZWRlZiBzdHJ1Y3QgeworICAgICBnYm9vbGVhbiAgcmV0dmFsOworIH0gUHJvY2Vzc0tleUV2 ZW50UmVwbHlEYXRhOworIAorK3N0YXRpYyBnYm9vbGVhbgorK19wcm9jZXNzX2tleV9ldmVudF9z eW5jIChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICBndWludCAgICAgICAgICAgICBrZXl2YWwsCisrICAgICAgICAgICAgICAgICAgICAgICAgIGd1 aW50ICAgICAgICAgICAgIGtleWNvZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50 ICAgICAgICAgICAgIHN0YXRlKQorK3sKKysgICAgZ2Jvb2xlYW4gcmV0dmFsOworKworKyAgICBn X2Fzc2VydCAoSUJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7CisrICAgIHJldHZhbCA9 IGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWwsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5Y29kZSAt IDgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RhdGUpOworKyAgICBpYnVzX2lucHV0X2NvbnRleHRfcG9zdF9wcm9jZXNzX2tleV9ldmVudCAo Y29udGV4dCk7CisrICAgIHJldHVybiByZXR2YWw7CisrfQorKworIHN0YXRpYyB2b2lkCisgX3By b2Nlc3Nfa2V5X2V2ZW50X2RvbmUgKEdPYmplY3QgICAgICAqb2JqZWN0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlcywKK0BAIC01MDUsMTAgKzUyMiw3IEBAIF9w cm9jZXNzX2tleV9ldmVudCAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKKyAKKyAgICAgc3dp dGNoIChfdXNlX3N5bmNfbW9kZSkgeworICAgICBjYXNlIDE6IHsKKy0gICAgICAgIHJldHZhbCA9 IGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr ZXljb2RlIC0gOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhdGUpOworKyAgICAgICAgcmV0dmFsID0gX3Byb2Nlc3Nfa2V5X2V2ZW50 X3N5bmMgKGNvbnRleHQsIGtleXZhbCwga2V5Y29kZSwgc3RhdGUpOworICAgICAgICAgYnJlYWs7 CisgICAgIH0KKyAgICAgY2FzZSAyOiB7CitAQCAtNTE5LDEwICs1MzMsNyBAQCBfcHJvY2Vzc19r ZXlfZXZlbnQgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgZGF0YSA9 IGdfc2xpY2VfbmV3MCAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhKTsKKyAgICAgICAgIGlmICgh ZGF0YSkgeworICAgICAgICAgICAgIGdfd2FybmluZyAoIkNhbm5vdCB3YWl0IGZvciB0aGUgcmVw bHkgb2YgdGhlIHByb2Nlc3Mga2V5IGV2ZW50LiIpOworLSAgICAgICAgICAgIHJldHZhbCA9IGli dXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXZhbCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGtleWNvZGUgLSA4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdGUpOworKyAgICAgICAgICAgIHJldHZhbCA9IF9wcm9j ZXNzX2tleV9ldmVudF9zeW5jIChjb250ZXh0LCBrZXl2YWwsIGtleWNvZGUsIHN0YXRlKTsKKyAg ICAgICAgICAgICBpZiAoc291cmNlKQorICAgICAgICAgICAgICAgICBnX3NvdXJjZV9kZXN0cm95 IChzb3VyY2UpOworICAgICAgICAgICAgIGJyZWFrOworQEAgLTU0MiwxNyArNTUzLDE5IEBAIF9w cm9jZXNzX2tleV9ldmVudCAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgIGdf c291cmNlX3NldF9jYWxsYmFjayAoc291cmNlLCBfcHJvY2Vzc19rZXlfZXZlbnRfY291bnRfY2Is IGRhdGEsIE5VTEwpOworICAgICAgICAgd2hpbGUgKGRhdGEtPmNvdW50KQorICAgICAgICAgICAg IGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbiAoTlVMTCwgVFJVRSk7CistICAgICAgICBpZiAoc291 cmNlLT5yZWZfY291bnQgPiAwKSB7CistICAgICAgICAgICAgLyogZ19zb3VyY2VfZ2V0X2lkKCkg Y291bGQgY2F1c2VzIGEgU0VHViAqLworLSAgICAgICAgICAgIGdfaW5mbyAoIkJyb2tlbiBHU291 cmNlLnJlZl9jb3VudCBhbmQgbWF5YmUgYSB0aW1pbmcgaXNzdWUgaW4gJXAuIiwKKy0gICAgICAg ICAgICAgICAgICAgIHNvdXJjZSk7CistICAgICAgICB9CisrICAgICAgICAvKiAjMjQ5OCBDaGVj a2luZyBzb3VyY2UtPnJlZl9jb3VudCBtaWdodCBjYXVzZSBOYXV0aWx1cyBoYW5nIHVwCisrICAg ICAgICAgKi8KKyAgICAgICAgIHJldHZhbCA9IGRhdGEtPnJldHZhbDsKKyAgICAgICAgIGdfc2xp Y2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKKyAgICAgICAgIGJyZWFr OworICAgICB9CisgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgIFByb2Nlc3NLZXlFdmVudERhdGEg KmRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudERhdGEpOworKyAgICAgICAgaWYg KCFkYXRhKSB7CisrICAgICAgICAgICAgZ193YXJuaW5nICgiQ2Fubm90IGFsbG9jYXRlIGFzeW5j IGRhdGEiKTsKKysgICAgICAgICAgICByZXR2YWwgPSBfcHJvY2Vzc19rZXlfZXZlbnRfc3luYyAo Y29udGV4dCwga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSk7CisrICAgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICB9CisgI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyAgICAgICAgIGRh dGEtPmV2ZW50ID0gZ2RrX2V2ZW50X3JlZiAoZXZlbnQpOworICNlbHNlCitAQCAtODc3LDcgKzg5 MCw3IEBAIGlidXNfaW1fY29udGV4dF9jbGFzc19pbml0IChJQnVzSU1Db250ZXh0Q2xhc3MgKmNs YXNzKQorICAgICBnX2Fzc2VydCAoX3NpZ25hbF9yZXRyaWV2ZV9zdXJyb3VuZGluZ19pZCAhPSAw KTsKKyAKKyAjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorLSAgICBfdXNlX3N5bmNf bW9kZSA9IF9nZXRfY2hhcl9lbnYgKCJJQlVTX0VOQUJMRV9TWU5DX01PREUiLCAyKTsKKysgICAg X3VzZV9zeW5jX21vZGUgPSBfZ2V0X2NoYXJfZW52ICgiSUJVU19FTkFCTEVfU1lOQ19NT0RFIiwg MSk7CisgI2Vsc2UKKyAgICAgX3VzZV9rZXlfc25vb3BlciA9ICFfZ2V0X2Jvb2xlYW5fZW52ICgi SUJVU19ESVNBQkxFX1NOT09QRVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICEoRU5BQkxFX1NOT09QRVIpKTsKK0BAIC0xMDA0LDggKzEwMTcsNiBAQCBpYnVz X2ltX2NvbnRleHRfaW5pdCAoR09iamVjdCAqb2JqKQorICNlbHNlCisgICAgIGlidXNpbWNvbnRl eHQtPmNhcHMgPSBJQlVTX0NBUF9QUkVFRElUX1RFWFQgfCBJQlVTX0NBUF9GT0NVUzsKKyAjZW5k aWYKKy0gICAgaWYgKF91c2Vfc3luY19tb2RlID09IDEpCistICAgICAgICBpYnVzaW1jb250ZXh0 LT5jYXBzIHw9IElCVVNfQ0FQX1NZTkNfUFJPQ0VTU19LRVlfVjI7CisgCisgICAgIGlidXNpbWNv bnRleHQtPmV2ZW50c19xdWV1ZSA9IGdfcXVldWVfbmV3ICgpOworIAorQEAgLTIyNjUsNiArMjI3 Niw3IEBAIF9jcmVhdGVfaW5wdXRfY29udGV4dF9kb25lIChJQnVzQnVzICAgICAgICpidXMsCisg ICAgIGVsc2UgeworICAgICAgICAgZ2Jvb2xlYW4gcmVxdWVzdGVkX3N1cnJvdW5kaW5nX3RleHQg PSBGQUxTRTsKKyAgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY2xpZW50X2NvbW1pdF9w cmVlZGl0IChjb250ZXh0LCBUUlVFKTsKKysgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRf cG9zdF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwgVFJVRSk7CisgICAgICAgICBpYnVzaW1j b250ZXh0LT5pYnVzY29udGV4dCA9IGNvbnRleHQ7CisgCisgICAgICAgICBnX3NpZ25hbF9jb25u ZWN0IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCwKK0BAIC0yNDg5LDkgKzI1MDEsOCBAQCBf Y3JlYXRlX2Zha2VfaW5wdXRfY29udGV4dF9kb25lIChJQnVzQnVzICAgICAgICpidXMsCisgICAg ICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9pYnVzX2Zha2VfY29udGV4dF9kZXN0cm95 X2NiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgCistICAgIGd1aW50MzIgY2Fw cyA9IElCVVNfQ0FQX1BSRUVESVRfVEVYVCB8IElCVVNfQ0FQX0ZPQ1VTIHwgSUJVU19DQVBfU1VS Uk9VTkRJTkdfVEVYVDsKKy0gICAgaWYgKF91c2Vfc3luY19tb2RlID09IDEpCistICAgICAgICBj YXBzIHw9IElCVVNfQ0FQX1NZTkNfUFJPQ0VTU19LRVlfVjI7CisrICAgIGd1aW50MzIgY2FwcyA9 IElCVVNfQ0FQX1BSRUVESVRfVEVYVCB8IElCVVNfQ0FQX0ZPQ1VTCisrICAgICAgICAgICAgICAg ICAgIHwgSUJVU19DQVBfU1VSUk9VTkRJTkdfVEVYVDsKKyAgICAgaWJ1c19pbnB1dF9jb250ZXh0 X3NldF9jYXBhYmlsaXRpZXMgKF9mYWtlX2NvbnRleHQsIGNhcHMpOworIAorICAgICAvKiBmb2N1 cyBpbi9vdXQgdGhlIGZha2UgY29udGV4dCAqLworZGlmZiAtLWdpdCBhL3NyYy9pYnVzaW5wdXRj b250ZXh0LmMgYi9zcmMvaWJ1c2lucHV0Y29udGV4dC5jCitpbmRleCAyOGFlMDRhZC4uZGVmMjNi MjUgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2lucHV0Y29udGV4dC5jCisrKysgYi9zcmMvaWJ1c2lu cHV0Y29udGV4dC5jCitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwor IC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVu ZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE4 LTIwMjIgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29w eXJpZ2h0IChDKSAyMDE4LTIwMjMgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgorICAqCisg ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorQEAgLTExOTAsMTQgKzExOTAsMTQgQEAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9j b250ZW50X3R5cGUgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgICAgIGdfYXNzZXJ0IChJ QlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKKyAKKyAgICAgY2FjaGVkX2NvbnRlbnRf dHlwZSA9CistICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eSAoKEdEQnVz UHJveHkgKikgY29udGV4dCwKKysgICAgICAgIGdfZGJ1c19wcm94eV9nZXRfY2FjaGVkX3Byb3Bl cnR5ICgoR0RCdXNQcm94eSAqKWNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkNvbnRlbnRUeXBlIik7CisgICAgIGNvbnRlbnRfdHlwZSA9IGdfdmFy aWFudF9uZXcgKCIodXUpIiwgcHVycG9zZSwgaGludHMpOworIAorICAgICBnX3ZhcmlhbnRfcmVm X3NpbmsgKGNvbnRlbnRfdHlwZSk7CistICAgIGlmIChjYWNoZWRfY29udGVudF90eXBlID09IE5V TEwgfHwKKysgICAgaWYgKCFjYWNoZWRfY29udGVudF90eXBlIHx8CisgICAgICAgICAhZ192YXJp YW50X2VxdWFsIChjb250ZW50X3R5cGUsIGNhY2hlZF9jb250ZW50X3R5cGUpKSB7CistICAgICAg ICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkgKikgY29udGV4dCwKKysgICAgICAgIGdf ZGJ1c19wcm94eV9jYWxsICgoR0RCdXNQcm94eSAqKWNvbnRleHQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnRpZXMuU2V0IiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdikiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfSU5URVJGQUNFX0lOUFVUX0NP TlRFWFQsCitAQCAtMTIwOSw5ICsxMjA5LDEzIEBAIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY29u dGVudF90eXBlIChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwsIC8qIGNhbGxiYWNrICovCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCAgLyogdXNlcl9kYXRhICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK KysgICAgICAgIC8qIE5lZWQgdG8gdXBkYXRlIHRoZSBjYWNoZSBieSBtYW51YWwgc2luY2UgdGhl cmUgaXMgYSB0aW1pbmcgaXNzdWUuICovCisrICAgICAgICBnX2RidXNfcHJveHlfc2V0X2NhY2hl ZF9wcm9wZXJ0eSAoKEdEQnVzUHJveHkgKiljb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJDb250ZW50VHlwZSIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlKTsKKyAgICAgfQorIAorLSAgICBp ZiAoY2FjaGVkX2NvbnRlbnRfdHlwZSAhPSBOVUxMKQorKyAgICBpZiAoY2FjaGVkX2NvbnRlbnRf dHlwZSkKKyAgICAgICAgIGdfdmFyaWFudF91bnJlZiAoY2FjaGVkX2NvbnRlbnRfdHlwZSk7Cisg ICAgIGdfdmFyaWFudF91bnJlZiAoY29udGVudF90eXBlKTsKKyB9CitAQCAtMTMyNCwxOSArMTMy OCwyMCBAQCB2b2lkCisgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jbGllbnRfY29tbWl0X3ByZWVk aXQgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgIGNsaWVudF9jb21taXQpCisg eworLSAgICBHVmFyaWFudCAqY2FjaGVkX2NvbnRlbnRfdHlwZTsKKysgICAgR1ZhcmlhbnQgKmNh Y2hlZF92YXJfY2xpZW50X2NvbW1pdDsKKyAgICAgR1ZhcmlhbnQgKnZhcl9jbGllbnRfY29tbWl0 OworIAorICAgICBnX2Fzc2VydCAoSUJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Cisg CistICAgIGNhY2hlZF9jb250ZW50X3R5cGUgPQorLSAgICAgICAgZ19kYnVzX3Byb3h5X2dldF9j YWNoZWRfcHJvcGVydHkgKChHREJ1c1Byb3h5ICopIGNvbnRleHQsCisrICAgIGNhY2hlZF92YXJf Y2xpZW50X2NvbW1pdCA9CisrICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0 eSAoKEdEQnVzUHJveHkgKiljb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJDbGllbnRDb21taXRQcmVlZGl0Iik7CisgICAgIHZhcl9jbGllbnRfY29t bWl0ID0gZ192YXJpYW50X25ldyAoIihiKSIsIGNsaWVudF9jb21taXQpOworIAorICAgICBnX3Zh cmlhbnRfcmVmX3NpbmsgKHZhcl9jbGllbnRfY29tbWl0KTsKKy0gICAgaWYgKGNhY2hlZF9jb250 ZW50X3R5cGUgPT0gTlVMTCkgeworLSAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwgKChHREJ1c1By b3h5ICopIGNvbnRleHQsCisrICAgIGlmICghY2FjaGVkX3Zhcl9jbGllbnRfY29tbWl0IHx8Cisr ICAgICAgICAhZ192YXJpYW50X2VxdWFsICh2YXJfY2xpZW50X2NvbW1pdCwgY2FjaGVkX3Zhcl9j bGllbnRfY29tbWl0KSkgeworKyAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwgKChHREJ1c1Byb3h5 ICopY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9w LkRCdXMuUHJvcGVydGllcy5TZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFy aWFudF9uZXcgKCIoc3N2KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSUJVU19JTlRFUkZBQ0VfSU5QVVRfQ09OVEVYVCwKK0BAIC0xMzQ4LDEzICsxMzUzLDE0 NiBAQCBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2NsaWVudF9jb21taXRfcHJlZWRpdCAoSUJ1c0lu cHV0Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAv KiBjYWxsYmFjayAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgIC8qIHVzZXJf ZGF0YSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisrICAgICAgICAvKiBOZWVk IHRvIHVwZGF0ZSB0aGUgY2FjaGUgYnkgbWFudWFsIHNpbmNlIHRoZXJlIGlzIGEgdGltaW5nIGlz c3VlLiAqLworKyAgICAgICAgZ19kYnVzX3Byb3h5X3NldF9jYWNoZWRfcHJvcGVydHkgKChHREJ1 c1Byb3h5ICopY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiQ2xpZW50Q29tbWl0UHJlZWRpdCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFyX2NsaWVudF9jb21taXQpOworICAgICB9CisgCistICAgIGlmIChj YWNoZWRfY29udGVudF90eXBlICE9IE5VTEwpCistICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKGNh Y2hlZF9jb250ZW50X3R5cGUpOworKyAgICBpZiAoY2FjaGVkX3Zhcl9jbGllbnRfY29tbWl0KQor KyAgICAgICAgZ192YXJpYW50X3VucmVmIChjYWNoZWRfdmFyX2NsaWVudF9jb21taXQpOworICAg ICBnX3ZhcmlhbnRfdW5yZWYgKHZhcl9jbGllbnRfY29tbWl0KTsKKyB9CisgCisrdm9pZAorK2li dXNfaW5wdXRfY29udGV4dF9zZXRfcG9zdF9wcm9jZXNzX2tleV9ldmVudCAoSUJ1c0lucHV0Q29u dGV4dCAqY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdib29sZWFuICAgICAgICAgIGVuYWJsZSkKKyt7CisrICAgIEdWYXJpYW50ICpjYWNo ZWRfdmFyX3Bvc3Q7CisrICAgIEdWYXJpYW50ICp2YXJfcG9zdDsKKysKKysgICAgZ19hc3NlcnQg KElCVVNfSVNfSU5QVVRfQ09OVEVYVCAoY29udGV4dCkpOworKworKyAgICBjYWNoZWRfdmFyX3Bv c3QgPQorKyAgICAgICAgZ19kYnVzX3Byb3h5X2dldF9jYWNoZWRfcHJvcGVydHkgKChHREJ1c1By b3h5ICopY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRWZmZWN0aXZlUG9zdFByb2Nlc3NLZXlFdmVudCIpOworKyAgICB2YXJfcG9zdCA9IGdfdmFy aWFudF9uZXcgKCIoYikiLCBlbmFibGUpOworKyAgICBnX3ZhcmlhbnRfcmVmX3NpbmsgKHZhcl9w b3N0KTsKKysgICAgaWYgKCFjYWNoZWRfdmFyX3Bvc3QgfHwKKysgICAgICAgICFnX3ZhcmlhbnRf ZXF1YWwgKHZhcl9wb3N0LCBjYWNoZWRfdmFyX3Bvc3QpKSB7CisrICAgICAgICBnX2RidXNfcHJv eHlfY2FsbCAoKEdEQnVzUHJveHkgKiljb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0aWVzLlNldCIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihzc3YpIiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX0lOVEVSRkFDRV9JTlBVVF9DT05URVhULAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFZmZlY3RpdmVQb3N0 UHJvY2Vzc0tleUV2ZW50IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YXJfcG9zdCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0NBTExf RkxBR1NfTk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLCAvKiBjYW5jZWxsYWJsZSAqLworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIC8qIGNhbGxiYWNrICovCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCAgLyogdXNlcl9kYXRhICovCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsKKysgICAgICAgIC8qIE5lZWQgdG8gdXBkYXRlIHRoZSBjYWNoZSBieSBtYW51YWwgc2luY2Ug dGhlcmUgaXMgYSB0aW1pbmcgaXNzdWUuICovCisrICAgICAgICBnX2RidXNfcHJveHlfc2V0X2Nh Y2hlZF9wcm9wZXJ0eSAoKEdEQnVzUHJveHkgKiljb250ZXh0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFZmZlY3RpdmVQb3N0UHJvY2Vzc0tleUV2ZW50IiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJfcG9zdCk7Cisr ICAgIH0KKysKKysgICAgaWYgKGNhY2hlZF92YXJfcG9zdCkKKysgICAgICAgIGdfdmFyaWFudF91 bnJlZiAoY2FjaGVkX3Zhcl9wb3N0KTsKKysgICAgZ192YXJpYW50X3VucmVmICh2YXJfcG9zdCk7 CisrfQorKworK3ZvaWQKKytpYnVzX2lucHV0X2NvbnRleHRfcG9zdF9wcm9jZXNzX2tleV9ldmVu dCAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyt7CisrICAgIEdWYXJpYW50ICpjYWNoZWRf dmFyX3Bvc3Q7CisrICAgIGdib29sZWFuIGVuYWJsZSA9IEZBTFNFOworKyAgICBHVmFyaWFudCAq cmVzdWx0OworKyAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKKysgICAgR1ZhcmlhbnQgKnZhcmlh bnQgPSBOVUxMOworKyAgICBHVmFyaWFudEl0ZXIgaXRlcjsKKysgICAgZ3NpemUgc2l6ZTsKKysg ICAgY2hhciB0eXBlID0gMDsKKysgICAgR1ZhcmlhbnQgKnZ0ZXh0ID0gTlVMTDsKKysKKysgICAg Z19hc3NlcnQgKElCVVNfSVNfSU5QVVRfQ09OVEVYVCAoY29udGV4dCkpOworKworKyAgICBjYWNo ZWRfdmFyX3Bvc3QgPQorKyAgICAgICAgZ19kYnVzX3Byb3h5X2dldF9jYWNoZWRfcHJvcGVydHkg KChHREJ1c1Byb3h5ICopY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRWZmZWN0aXZlUG9zdFByb2Nlc3NLZXlFdmVudCIpOworKyAgICBpZiAoY2Fj aGVkX3Zhcl9wb3N0KQorKyAgICAgICAgZ192YXJpYW50X2dldCAoY2FjaGVkX3Zhcl9wb3N0LCAi KGIpIiwgJmVuYWJsZSk7CisrICAgIGlmICghZW5hYmxlKSB7CisrICAgICAgICBnX3dhcm5pbmcg KCIlczogaWJ1c19pbnB1dF9jb250ZXh0X3NldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkgIgor KyAgICAgICAgICAgICAgICAgICAibmVlZHMgdG8gYmUgY2FsbGVkIGJlZm9yZS4iLAorKyAgICAg ICAgICAgICAgICAgICBHX1NUUkZVTkMpOworKyAgICAgICAgaWYgKGNhY2hlZF92YXJfcG9zdCkK KysgICAgICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKGNhY2hlZF92YXJfcG9zdCk7CisrICAgICAg ICByZXR1cm47CisrICAgIH0KKysgICAgZ192YXJpYW50X3VucmVmIChjYWNoZWRfdmFyX3Bvc3Qp OworKyAgICByZXN1bHQgPSBnX2RidXNfcHJveHlfY2FsbF9zeW5jICgKKysgICAgICAgICAgICAo R0RCdXNQcm94eSAqKWNvbnRleHQsCisrICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5EQnVz LlByb3BlcnRpZXMuR2V0IiwKKysgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzKSIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19JTlRFUkZBQ0VfSU5QVVRfQ09OVEVYVCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zdFByb2Nlc3NLZXlFdmVudCIpLAorKyAg ICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCisrICAgICAgICAgICAgLTEsCisrICAg ICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAmZXJyb3IpOworKyAgICBpZiAoZXJyb3IpIHsK KysgICAgICAgIGdfd2FybmluZyAoIiVzOiAlcyIsIEdfU1RSRlVOQywgZXJyb3ItPm1lc3NhZ2Up OworKyAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7CisrICAgICAgICByZXR1cm47CisrICAg IH0KKysKKysgICAgZ192YXJpYW50X2dldCAocmVzdWx0LCAiKHYpIiwgJnZhcmlhbnQpOworKyAg ICBnX2Fzc2VydCAodmFyaWFudCk7CisrICAgIGdfdmFyaWFudF9pdGVyX2luaXQgKCZpdGVyLCB2 YXJpYW50KTsKKysgICAgc2l6ZSA9IGdfdmFyaWFudF9pdGVyX25fY2hpbGRyZW4gKCZpdGVyKTsK KysgICAgd2hpbGUgKHNpemUgPjAgJiYgZ192YXJpYW50X2l0ZXJfbG9vcCAoJml0ZXIsICIoeXYp IiwgJnR5cGUsICZ2dGV4dCkpIHsKKysgICAgICAgIElCdXNUZXh0ICp0ZXh0ID0KKysgICAgICAg ICAgICAgICAgKElCdXNUZXh0ICopaWJ1c19zZXJpYWxpemFibGVfZGVzZXJpYWxpemVfb2JqZWN0 ICh2dGV4dCk7CisrICAgICAgICBpZiAoIUlCVVNfSVNfVEVYVCAodGV4dCkpIHsKKysgICAgICAg ICAgICBnX3dhcm5pbmcgKCIlczogJXMiLCBHX1NUUkZVTkMsICJ0ZXh0IGlzIG5vdCBJQnVzVGV4 dCIpOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgc3dpdGNoICh0 eXBlKSB7CisrICAgICAgICBjYXNlICdjJzoKKysgICAgICAgICAgICBnX3NpZ25hbF9lbWl0IChj b250ZXh0LCBjb250ZXh0X3NpZ25hbHNbQ09NTUlUX1RFWFRdLCAwLCB0ZXh0KTsKKysgICAgICAg ICAgICBicmVhazsKKysgICAgICAgIGNhc2UgJ2YnOiB7CisrICAgICAgICAgICAgZ2NoYXIgKiph cnJheSA9IE5VTEw7CisrICAgICAgICAgICAgZ3VpbnQga2V5dmFsLCBrZXljb2RlLCBzdGF0ZTsK KysgICAgICAgICAgICBhcnJheSA9IGdfc3Ryc3BsaXQgKHRleHQtPnRleHQsICIsIiwgLTEpOwor KyAgICAgICAgICAgIGtleXZhbCA9IGdfYXNjaWlfc3RydG91bGwgKGFycmF5WzBdLCBOVUxMLCAx MCk7CisrICAgICAgICAgICAga2V5Y29kZSA9IGdfYXNjaWlfc3RydG91bGwgKGFycmF5WzFdLCBO VUxMLCAxMCk7CisrICAgICAgICAgICAgc3RhdGUgPSBnX2FzY2lpX3N0cnRvdWxsIChhcnJheVsy XSwgTlVMTCwgMTApOworKyAgICAgICAgICAgIGdfc3RyZnJlZXYgKGFycmF5KTsKKysgICAgICAg ICAgICBnX3NpZ25hbF9lbWl0IChjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRleHRfc2lnbmFsc1tGT1JXQVJEX0tFWV9FVkVOVF0sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWwsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAga2V5Y29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0ZSB8IElCVVNfRk9SV0FSRF9NQVNLKTsKKysgICAgICAgICAgICBicmVhazsKKysgICAg ICAgIH0KKysgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgICAgZ193YXJuaW5nICgiJXM6IFR5 cGUgJyVjJyBpcyBub3Qgc3VwcG9ydGVkLiIsIEdfU1RSRlVOQywgdHlwZSk7CisrICAgICAgICB9 CisrICAgICAgICBpZiAoZ19vYmplY3RfaXNfZmxvYXRpbmcgKHRleHQpKSB7CisrICAgICAgICAg ICAgZ19vYmplY3RfcmVmX3NpbmsgKHRleHQpOworKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVm ICh0ZXh0KTsKKysgICAgICAgIH0KKysgICAgICAgIGdfY2xlYXJfcG9pbnRlciAoJnZ0ZXh0LCBn X3ZhcmlhbnRfdW5yZWYpOworKyAgICB9CisrCisrICAgIGdfdmFyaWFudF91bnJlZiAodmFyaWFu dCk7CisrICAgIGdfdmFyaWFudF91bnJlZiAocmVzdWx0KTsKKyt9CisrCisgI2RlZmluZSBERUZJ TkVfRlVOQyhuYW1lLCBOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgaWJ1c19pbnB1dF9jb250ZXh0XyMjbmFtZSAo SUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkgICAgICAgICAgICAgICBcCitkaWZmIC0tZ2l0IGEv c3JjL2lidXNpbnB1dGNvbnRleHQuaCBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmgKK2luZGV4IDA5 OTkyMTQ4Li4xY2I1MTI2YSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzaW5wdXRjb250ZXh0LmgKKysr KyBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmgKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQg ZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMp IDIwMDgtMjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5 cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ CisrICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjMgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggUmVkIEhhdCwgSW5j LgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorQEAgLTI5OCw3ICsyOTgsNiBAQCBnYm9vbGVhbiAgICAgaWJ1c19p bnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3VpbnQzMiAgICAgICAgICAgICBrZXljb2RlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50MzIgICAgICAgICAg ICAgc3RhdGUpOworIAorLQorIC8qKgorICAqIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY3Vyc29y X2xvY2F0aW9uOgorICAqIEBjb250ZXh0OiBBbiBJQnVzSW5wdXRDb250ZXh0LgorQEAgLTUxOSw5 ICs1MTgsMzIgQEAgdm9pZCAgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY29udGVudF90 eXBlCisgICoKKyAgKiBTZWUgYWxzbyBpYnVzX2VuZ2luZV91cGRhdGVfcHJlZWRpdF90ZXh0X3dp dGhfbW9kZSgpLgorICAqLworLXZvaWQgICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2Ns aWVudF9jb21taXRfcHJlZWRpdCAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSUJ1c0lucHV0Q29udGV4dCAgICpjb250ZXh0LAorK3ZvaWQgICAgICAgICBp YnVzX2lucHV0X2NvbnRleHRfc2V0X2NsaWVudF9jb21taXRfcHJlZWRpdAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNJbnB1dENvbnRleHQgICAqY29u dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v bGVhbiAgICAgICAgICAgIGNsaWVudF9jb21taXQpOworIAorKy8qKgorKyAqIGlidXNfaW5wdXRf Y29udGV4dF9zZXRfcG9zdF9wcm9jZXNzX2tleV9ldmVudDoKKysgKiBAY29udGV4dDogQW4gI0lC dXNJbnB1dENvbnRleHQuCisrICogQGVuYWJsZTogQ2FuIHVzZSBpYnVzX2lucHV0X2NvbnRleHRf cG9zdF9wcm9jZXNzX2tleV9ldmVudCgpIHRvIHJldHJpZXZlCisrICogY29tbWl0LXRleHQgYW5k IGZvcndhci1rZXktZXZlbnQgc2lnbmFscyBkdXJpbmcKKysgKiBjYWxsaW5nIGlidXNfaW5wdXRf Y29udGV4dF9wcm9jZXNzX2tleV9ldmVudCgpIGlmIGl0J3MgJVRSVUUuCisrICovCisrdm9pZCAg ICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfcG9zdF9wcm9jZXNzX2tleV9ldmVudAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNJbnB1dENvbnRl eHQgICAqY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnYm9vbGVhbiAgICAgICAgICAgIGVuYWJsZSk7CisrLyoqCisrICogaWJ1c19pbnB1dF9j b250ZXh0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQ6CisrICogQGNvbnRleHQ6IEFuICNJQnVzSW5w dXRDb250ZXh0LgorKyAqCisrICogQ2FsbCB0aGlzIEFQSSBhZnRlciBpYnVzX2lucHV0X2NvbnRl eHRfcHJvY2Vzc19rZXlfZXZlbnQoKSByZXR1cm5zCisrICogdG8gcmV0cmlldmUgY29tbWl0LXRl eHQgYW5kIGZvcndhci1rZXktZXZlbnQgc2lnbmFscyBkdXJpbmcKKysgKiBjYWxsaW5nIGlidXNf aW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudCgpLgorKyAqCisrICogU2VlIGFsc28gaWJ1 c19pbnB1dF9jb250ZXh0X3NldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkuCisrICovCisrdm9p ZCAgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c0lucHV0Q29udGV4 dCAgICpjb250ZXh0KTsKKysKKyBHX0VORF9ERUNMUworICNlbmRpZgorLS0gCisyLjQxLjAKKwor RnJvbSAxMDkyYmZhNjE5NzQ5YTkzMWQ2NWY4MGVjNDllOTNiN2IzMWY2MGY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgorRGF0ZTogRnJpLCA3IEp1bCAyMDIzIDA4OjUyOjUxICswOTAwCitTdWJqZWN0OiBbUEFUQ0gg Mi8yXSBjbGllbnQveDExOiBGaXggc3luYworIGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tl eV9ldmVudCgpCisKK0ZpeCB0aGUgc3luY2hyb25vdXMgIlByb2Nlc3NLZXlFdmVudCIgRC1CdXMg bWV0aG9kIGluIGlidXMteDExIHRvby4KKworRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYnVz L2lidXMvY29tbWl0LzhhMWJkNWYKKworQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMv aXNzdWVzLzI0ODYKKy0tLQorIGNsaWVudC94MTEvbWFpbi5jIHwgMTA0ICsrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNTQgaW5z ZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jbGllbnQveDExL21h aW4uYyBiL2NsaWVudC94MTEvbWFpbi5jCitpbmRleCA4M2Q5NWNiNy4uMTNlN2ExY2YgMTAwNjQ0 CistLS0gYS9jbGllbnQveDExL21haW4uYworKysrIGIvY2xpZW50L3gxMS9tYWluLmMKK0BAIC0x MjYsNyArMTI2LDcgQEAgc3RhdGljIGdpbnQgICAgIGdfZGVidWdfbGV2ZWwgPSAwOworIAorIHN0 YXRpYyBJQnVzQnVzICpfYnVzID0gTlVMTDsKKyAKKy1zdGF0aWMgY2hhciBfdXNlX3N5bmNfbW9k ZSA9IDI7Cisrc3RhdGljIGNoYXIgX3VzZV9zeW5jX21vZGUgPSAxOworIAorIHN0YXRpYyB2b2lk CisgX3hpbV9wcmVlZGl0X3N0YXJ0IChYSU1TIHhpbXMsIGNvbnN0IFgxMUlDICp4MTFpYykKK0BA IC0zODAsOSArMzgwLDggQEAgeGltX2NyZWF0ZV9pYyAoWElNUyB4aW1zLCBJTUNoYW5nZUlDU3Ry dWN0ICpjYWxsX2RhdGEpCisgCisgICAgIGlmICh4MTFpYy0+aW5wdXRfc3R5bGUgJiBYSU1QcmVl ZGl0Q2FsbGJhY2tzKQorICAgICAgICAgY2FwYWJpbGl0aWVzIHw9IElCVVNfQ0FQX1BSRUVESVRf VEVYVDsKKy0gICAgaWYgKF91c2Vfc3luY19tb2RlID09IDEpCistICAgICAgICBjYXBhYmlsaXRp ZXMgfD0gSUJVU19DQVBfU1lOQ19QUk9DRVNTX0tFWV9WMjsKKyAgICAgaWJ1c19pbnB1dF9jb250 ZXh0X3NldF9jYXBhYmlsaXRpZXMgKHgxMWljLT5jb250ZXh0LCBjYXBhYmlsaXRpZXMpOworKyAg ICBpYnVzX2lucHV0X2NvbnRleHRfc2V0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQgKHgxMWljLT5j b250ZXh0LCBUUlVFKTsKKyAKKyAgICAgZ19oYXNoX3RhYmxlX2luc2VydCAoX3gxMV9pY190YWJs ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0lOVF9UT19QT0lOVEVSICh4MTFpYy0+aWNp ZCksIChncG9pbnRlcil4MTFpYyk7CitAQCAtNDk4LDYgKzQ5NywyNiBAQCB0eXBlZGVmIHN0cnVj dCB7CisgICAgIFhFdmVudCAgICAgICAgICAgICAgICBldmVudDsKKyB9IFByb2Nlc3NLZXlFdmVu dFJlcGx5RGF0YTsKKyAKKytzdGF0aWMgZ2Jvb2xlYW4KKytfcHJvY2Vzc19rZXlfZXZlbnRfc3lu YyAoWDExSUMgICAgICAgICAgICAgICAgKngxMWljLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICBJTUZvcndhcmRFdmVudFN0cnVjdCAqY2FsbF9kYXRhLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICBHZGtFdmVudEtleSAgICAgICAgICAqZXZlbnQpCisreworKyAgICBnYm9vbGVhbiByZXR2 YWwgPSBGQUxTRTsKKysKKysgICAgZ19hc3NlcnQgKHgxMWljKTsKKysgICAgZ19hc3NlcnQgKGNh bGxfZGF0YSk7CisrICAgIGdfYXNzZXJ0IChldmVudCk7CisrICAgIHJldHZhbCA9IGlidXNfaW5w dXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudCAoCisrICAgICAgICAgICAgeDExaWMtPmNvbnRl eHQsCisrICAgICAgICAgICAgZXZlbnQtPmtleXZhbCwKKysgICAgICAgICAgICBldmVudC0+aGFy ZHdhcmVfa2V5Y29kZSAtIDgsCisrICAgICAgICAgICAgZXZlbnQtPnN0YXRlKTsKKysgICAgaWJ1 c19pbnB1dF9jb250ZXh0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQgKHgxMWljLT5jb250ZXh0KTsK KysgICAgX3hpbV9mb3J3YXJkX2tleV9ldmVudF9kb25lICh4MTFpYywgJmNhbGxfZGF0YS0+ZXZl bnQsIHJldHZhbCk7CisrICAgIHJldHVybiBUUlVFOworK30KKysKKyBzdGF0aWMgdm9pZAorIF9w cm9jZXNzX2tleV9ldmVudF9kb25lIChHT2JqZWN0ICAgICAgKm9iamVjdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICpyZXMsCitAQCAtNjA5LDE0ICs2MjgsNyBAQCB4 aW1fZm9yd2FyZF9ldmVudCAoWElNUyB4aW1zLCBJTUZvcndhcmRFdmVudFN0cnVjdCAqY2FsbF9k YXRhKQorIAorICAgICBzd2l0Y2ggKF91c2Vfc3luY19tb2RlKSB7CisgICAgIGNhc2UgMTogewor LSAgICAgICAgcmV0dmFsID0gaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50ICgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxMWljLT5jb250ZXh0LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5dmFsLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuaGFyZHdhcmVfa2V5Y29k ZSAtIDgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdGF0 ZSk7CistICAgICAgICBfeGltX2ZvcndhcmRfa2V5X2V2ZW50X2RvbmUgKHgxMWljLCAmY2FsbF9k YXRhLT5ldmVudCwgcmV0dmFsKTsKKy0gICAgICAgIHJldHZhbCA9IDE7CistICAgICAgICBicmVh azsKKysgICAgICAgIHJldHVybiBfcHJvY2Vzc19rZXlfZXZlbnRfc3luYyAoeDExaWMsIGNhbGxf ZGF0YSwgJmV2ZW50KTsKKyAgICAgfQorICAgICBjYXNlIDI6IHsKKyAgICAgICAgIEdTb3VyY2Ug KnNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3ICgxKTsKK0BAIC02MjYsNDQgKzYzOCwzNyBA QCB4aW1fZm9yd2FyZF9ldmVudCAoWElNUyB4aW1zLCBJTUZvcndhcmRFdmVudFN0cnVjdCAqY2Fs bF9kYXRhKQorICAgICAgICAgICAgIGRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVu dFJlcGx5RGF0YSk7CisgICAgICAgICBpZiAoIWRhdGEpIHsKKyAgICAgICAgICAgICBnX3dhcm5p bmcgKCJDYW5ub3Qgd2FpdCBmb3IgdGhlIHJlcGx5IG9mIHRoZSBwcm9jZXNzIGtleSBldmVudC4i KTsKKy0gICAgICAgICAgICByZXR2YWwgPSBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlf ZXZlbnQgKAorLSAgICAgICAgICAgICAgICAgICAgeDExaWMtPmNvbnRleHQsCistICAgICAgICAg ICAgICAgICAgICBldmVudC5rZXl2YWwsCistICAgICAgICAgICAgICAgICAgICBldmVudC5oYXJk d2FyZV9rZXljb2RlIC0gOCwKKy0gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0YXRlKTsKKysg ICAgICAgICAgICByZXR2YWwgPSBfcHJvY2Vzc19rZXlfZXZlbnRfc3luYyAoeDExaWMsIGNhbGxf ZGF0YSwgJmV2ZW50KTsKKyAgICAgICAgICAgICBpZiAoc291cmNlKQorICAgICAgICAgICAgICAg ICBnX3NvdXJjZV9kZXN0cm95IChzb3VyY2UpOworLSAgICAgICAgfSBlbHNlIHsKKy0gICAgICAg ICAgICBkYXRhLT5jb3VudCA9IDE7CistICAgICAgICAgICAgZ19zb3VyY2VfYXR0YWNoIChzb3Vy Y2UsIE5VTEwpOworLSAgICAgICAgICAgIGdfc291cmNlX3VucmVmIChzb3VyY2UpOworLSAgICAg ICAgICAgIGRhdGEtPmNvdW50X2NiX2lkID0gZ19zb3VyY2VfZ2V0X2lkIChzb3VyY2UpOworLSAg ICAgICAgICAgIGRhdGEtPmNvbm5lY3RfaWQgPSBjYWxsX2RhdGEtPmNvbm5lY3RfaWQ7CistICAg ICAgICAgICAgZGF0YS0+eDExaWMgPSB4MTFpYzsKKy0gICAgICAgICAgICBkYXRhLT5ldmVudCA9 ICooKFhFdmVudCopeGV2ZW50KTsKKy0gICAgICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfcHJv Y2Vzc19rZXlfZXZlbnRfYXN5bmMgKAorLSAgICAgICAgICAgICAgICAgICAgeDExaWMtPmNvbnRl eHQsCistICAgICAgICAgICAgICAgICAgICBldmVudC5rZXl2YWwsCistICAgICAgICAgICAgICAg ICAgICBldmVudC5oYXJkd2FyZV9rZXljb2RlIC0gOCwKKy0gICAgICAgICAgICAgICAgICAgIGV2 ZW50LnN0YXRlLAorLSAgICAgICAgICAgICAgICAgICAgLTEsCistICAgICAgICAgICAgICAgICAg ICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50X3JlcGx5X2Rv bmUsCistICAgICAgICAgICAgICAgICAgICBkYXRhKTsKKy0gICAgICAgICAgICBnX3NvdXJjZV9z ZXRfY2FsbGJhY2sgKHNvdXJjZSwgX3Byb2Nlc3Nfa2V5X2V2ZW50X2NvdW50X2NiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgTlVMTCk7CistICAgICAgICAgICAg d2hpbGUgKGRhdGEtPmNvdW50ID4gMCAmJiBkYXRhLT5jb3VudCA8IE1BWF9XQUlUX0tFWV9USU1F KQorLSAgICAgICAgICAgICAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKE5VTEwsIFRSVUUp OworLSAgICAgICAgICAgIGlmIChzb3VyY2UtPnJlZl9jb3VudCA+IDApIHsKKy0gICAgICAgICAg ICAgICAgLyogZ19zb3VyY2VfZ2V0X2lkKCkgY291bGQgY2F1c2VzIGEgU0VHViAqLworLSAgICAg ICAgICAgICAgICBnX2luZm8gKCJCcm9rZW4gR1NvdXJjZS5yZWZfY291bnQgYW5kIG1heWJlIGEg dGltaW5nICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAiaXNzdWUgaW4gJXAuIiwgc291cmNl KTsKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgcmV0dmFsID0gZGF0YS0+cmV0dmFsOwor LSAgICAgICAgICAgIGlmIChkYXRhLT5jb3VudCA9PSAwKSB7CistICAgICAgICAgICAgICAgIGdf c2xpY2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKKy0gICAgICAgICAg ICAgICAgcmV0dXJuIDE7CistICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGJyZWFrOworKyAg ICAgICAgfQorKyAgICAgICAgZGF0YS0+Y291bnQgPSAxOworKyAgICAgICAgZ19zb3VyY2VfYXR0 YWNoIChzb3VyY2UsIE5VTEwpOworKyAgICAgICAgZ19zb3VyY2VfdW5yZWYgKHNvdXJjZSk7Cisr ICAgICAgICBkYXRhLT5jb3VudF9jYl9pZCA9IGdfc291cmNlX2dldF9pZCAoc291cmNlKTsKKysg ICAgICAgIGRhdGEtPmNvbm5lY3RfaWQgPSBjYWxsX2RhdGEtPmNvbm5lY3RfaWQ7CisrICAgICAg ICBkYXRhLT54MTFpYyA9IHgxMWljOworKyAgICAgICAgZGF0YS0+ZXZlbnQgPSAqKChYRXZlbnQq KXhldmVudCk7CisrICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRf YXN5bmMgKAorKyAgICAgICAgICAgICAgICB4MTFpYy0+Y29udGV4dCwKKysgICAgICAgICAgICAg ICAgZXZlbnQua2V5dmFsLAorKyAgICAgICAgICAgICAgICBldmVudC5oYXJkd2FyZV9rZXljb2Rl IC0gOCwKKysgICAgICAgICAgICAgICAgZXZlbnQuc3RhdGUsCisrICAgICAgICAgICAgICAgIC0x LAorKyAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICBfcHJvY2Vzc19rZXlf ZXZlbnRfcmVwbHlfZG9uZSwKKysgICAgICAgICAgICAgICAgZGF0YSk7CisrICAgICAgICBnX3Nv dXJjZV9zZXRfY2FsbGJhY2sgKHNvdXJjZSwgX3Byb2Nlc3Nfa2V5X2V2ZW50X2NvdW50X2NiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBOVUxMKTsKKysgICAgICAgIHdo aWxlIChkYXRhLT5jb3VudCA+IDAgJiYgZGF0YS0+Y291bnQgPCBNQVhfV0FJVF9LRVlfVElNRSkK KysgICAgICAgICAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKE5VTEwsIFRSVUUpOworKyAg ICAgICAgLyogIzI0OTggQ2hlY2tpbmcgc291cmNlLT5yZWZfY291bnQgbWlnaHQgY2F1c2UgTmF1 dGlsdXMgaGFuZyB1cAorKyAgICAgICAgICovCisrICAgICAgICByZXR2YWwgPSBkYXRhLT5yZXR2 YWw7CisrICAgICAgICBpZiAoZGF0YS0+Y291bnQgPT0gMCkgeworKyAgICAgICAgICAgIGdfc2xp Y2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKKysgICAgICAgICAgICBy ZXR1cm4gMTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGdfc2xpY2VfZnJlZSAoUHJvY2Vzc0tl eUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKK0BAIC02ODEsOCArNjg2LDcgQEAgeGltX2ZvcndhcmRf ZXZlbnQgKFhJTVMgeGltcywgSU1Gb3J3YXJkRXZlbnRTdHJ1Y3QgKmNhbGxfZGF0YSkKKyAKKyAg ICAgICAgIGlmICghKGRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0 YSkpKSB7CisgICAgICAgICAgICAgZ193YXJuaW5nICgiQ2Fubm90IGFsbG9jYXRlIGFzeW5jIGRh dGEiKTsKKy0gICAgICAgICAgICBfeGltX2ZvcndhcmRfa2V5X2V2ZW50X2RvbmUgKHgxMWljLCAm Y2FsbF9kYXRhLT5ldmVudCwgMCk7CistICAgICAgICAgICAgcmV0dXJuIDE7CisrICAgICAgICAg ICAgcmV0dXJuIF9wcm9jZXNzX2tleV9ldmVudF9zeW5jICh4MTFpYywgY2FsbF9kYXRhLCAmZXZl bnQpOworICAgICAgICAgfQorICAgICAgICAgZGF0YS0+Y29ubmVjdF9pZCA9IGNhbGxfZGF0YS0+ Y29ubmVjdF9pZDsKKyAgICAgICAgIGRhdGEtPngxMWljID0geDExaWM7CitAQCAtMTE4Niw3ICsx MTkwLDcgQEAgX2luaXRfaWJ1cyAodm9pZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBHX0NB TExCQUNLIChfYnVzX2Rpc2Nvbm5lY3RlZF9jYiksIE5VTEwpOworIAorICAgICAvKiBodHRwczov L2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8xNzEzICovCistICAgIF91c2Vfc3luY19tb2Rl ID0gX2dldF9jaGFyX2VudiAoIklCVVNfRU5BQkxFX1NZTkNfTU9ERSIsIDIpOworKyAgICBfdXNl X3N5bmNfbW9kZSA9IF9nZXRfY2hhcl9lbnYgKCJJQlVTX0VOQUJMRV9TWU5DX01PREUiLCAxKTsK KyB9CisgCisgc3RhdGljIHZvaWQKKy0tIAorMi40MS4wCisKCmRpZmYgLS1naXQgYS9pYnVzLnNw ZWMgYi9pYnVzLnNwZWMKaW5kZXggZDdhNjA3OC4uYzU5NTI5YSAxMDA2NDQKLS0tIGEvaWJ1cy5z cGVjCisrKyBiL2lidXMuc3BlYwpAQCAtNTAsNyArNTAsNyBAQAogCiBOYW1lOiAgICAgICAgICAg aWJ1cwogVmVyc2lvbjogICAgICAgIDEuNS4yOAotUmVsZWFzZTogICAgICAgIDEwJXs/ZGlzdH0K K1JlbGVhc2U6ICAgICAgICAxMSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgSW50ZWxsaWdlbnQg SW5wdXQgQnVzIGZvciBMaW51eCBPUwogTGljZW5zZTogICAgICAgIExHUEwtMi4wLW9yLWxhdGVy CiBVUkw6ICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2lidXMvJW5hbWUvd2lraQpAQCAt NTU3LDYgKzU1Nyw5IEBAIGRjb25mIHVwZGF0ZSB8fCA6CiAle19kYXRhZGlyfS9pbnN0YWxsZWQt dGVzdHMvaWJ1cwogCiAlY2hhbmdlbG9nCisqIEZyaSBKdWwgMDcgMjAyMyBUYWthbyBGdWppd2Fy YSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMjgtMTEKKy0gRml4IHN5bmMgaWJ1c19pbnB1 dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkKKwogKiBXZWQgSnVsIDA1IDIwMjMgUHl0aG9u IE1haW50IDxweXRob24tbWFpbnRAcmVkaGF0LmNvbT4gLSAxLjUuMjgtMTAKIC0gUmVidWlsdCBm b3IgUHl0aG9uIDMuMTIKIAo=