Re: [kitten] Checking the transited list of a kerberos ticket in a transitive cross-realm trust situation...
Stefan Metzmacher <[email protected]> Tue, 24 Sep 2019 02:05:05 +0200
| Newsgroups | gmane.comp.encryption.kerberos.devel,gmane.ietf.kitten,gmane.network.samba.internals,gmane.comp.encryption.kerberos.heimdal.general |
|---|---|
| Message-ID | <[email protected]> |
--===============2708968489704256375== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="hOf5XOdOvbTtHREDvOScwgCIBHF66RBan" --hOf5XOdOvbTtHREDvOScwgCIBHF66RBan Content-Type: multipart/mixed; boundary="qMDF4UvpMrMjwzVC15MYHMNv4Q0g44VeB"; protected-headers="v1" From: Stefan Metzmacher <[email protected]> To: [email protected], Viktor Dukhovni <[email protected]>, Samba Technical <[email protected]>, "[email protected] Dev List" <[email protected]>, "[email protected]" <[email protected]> Message-ID: <[email protected]> Subject: Re: [kitten] Checking the transited list of a kerberos ticket in a transitive cross-realm trust situation... References: <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> In-Reply-To: <[email protected]> --qMDF4UvpMrMjwzVC15MYHMNv4Q0g44VeB Content-Type: multipart/mixed; boundary="------------DD547EFD1C077ADE310AA0E0" Content-Language: en-US This is a multi-part message in MIME format. --------------DD547EFD1C077ADE310AA0E0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, resuming this old thread... https://lists.samba.org/archive/samba-technical/2017-August/122422.html >> Does the Kerberos library know whether whether the application is goin= g >> to look at PACs and SIDs or just use the client principal name? I am >> guessing it does not. Thus in Samba, one might need a dedicated >> krb5.conf configuration file that disables the transit check. Other >> applications should still apply transit check even if a PAC happens >> to be present, as AFAIK it may well remain unused. >=20 > My idea was that Samba would use > gss_set_cred_option(GSS_KRB5_CRED_NO_TRANSIT_CHECK_X) to indicate > the the transited list should not be checked. I implemented GSS_KRB5_CRED_NO_TRANSIT_CHECK_X for MIT, Heimdal (both upstream and Samba) and make use of it in Samba. Note that I took a OID from Heimdal: GSS_KRB5_CRED_NO_TRANSIT_CHECK_X - 1.2.752.43.13.31 So we need to push it Heimdal first in order to avoid conflicts later. The code for Heimdal can be found here: https://github.com/metze-samba/krb5/tree/master-no-transit-check (also attached as heimdal-no_transit_check-01.patches.txt and heimdal-no_transit_check-wip-tests-01.patches.txt) Sadly I wasn't able to create a test that was able to trigger the desired code path and verify it works as expected and avoid regressions. Maybe someone can help me with that or give some useful hints. Currently it's only tested via Samba. The code for MIT can be found here: https://github.com/metze-samba/krb5/tree/master-no-transit-check (also attached as mit-krb5-no_transit_check-01.patches.txt) It also have tests to verify it works as expected. The work in progress for Samba can be found here: https://gitlab.com/samba-team/samba/merge_requests/809 (also attached as samba-no_transit_check-wip-01.txt) The key is that Samba will require a verified PAC in the Kerberos service ticket and be sure the authorization token is generated by a DC of the primary domain, which is all we care about as we just trust the domain. In such a situation we'll use GSS_KRB5_CRED_NO_TRANSIT_CHECK_X to disable the for us useless transit check. Is it required to get regression tests for heimdal added in order process on this, or could be go on without them? metze --------------DD547EFD1C077ADE310AA0E0 Content-Type: text/plain; charset=UTF-8; name="heimdal-no_transit_check-01.patches.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="heimdal-no_transit_check-01.patches.txt" RnJvbSA3NWFiNmJiNTE4OTQ1ODY1ZDY0OTM1NmMyNzE5MjNkYmY2ZjdhNjM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu b3JnPgpEYXRlOiBGcmksIDE4IEF1ZyAyMDE3IDE1OjMzOjE3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxLzZdIGxpYi9rcmI1OiBhZGQga3JiNV9yZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9y ZXFfZmxhZ3MoKQoKSW4gdGhlIG5leHQgY29tbWl0cyB3ZSB3YW50IHRvIGJlIGFibGUgdG8g cGFzcyBkb3duCnRoaW5ncyBsaWtlIEtSQjVfVkVSSUZZX0FQX1JFUV9OT19UUkFOU0lURURf Q0hFQ0suCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9p ZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJh Lm9yZz4KLS0tCiBsaWIva3JiNS9yZF9yZXEuYyAgICAgICAgICAgfCAxOCArKysrKysrKysr KysrKysrLS0KIGxpYi9rcmI1L3ZlcnNpb24tc2NyaXB0Lm1hcCB8ICAxICsKIDIgZmlsZXMg Y2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saWIva3JiNS9yZF9yZXEuYyBiL2xpYi9rcmI1L3JkX3JlcS5jCmluZGV4IGZiY2VkMTQ0 ZTcyLi45OGRkMmRiZjI1NiAxMDA2NDQKLS0tIGEvbGliL2tyYjUvcmRfcmVxLmMKKysrIGIv bGliL2tyYjUvcmRfcmVxLmMKQEAgLTQ4MSw2ICs0ODEsNyBAQCBzdHJ1Y3Qga3JiNV9yZF9y ZXFfaW5fY3R4X2RhdGEgewogICAgIGtyYjVfa2V5dGFiIGtleXRhYjsKICAgICBrcmI1X2tl eWJsb2NrICprZXlibG9jazsKICAgICBrcmI1X2Jvb2xlYW4gY2hlY2tfcGFjOworICAgIGty YjVfZmxhZ3MgdmVyaWZ5X2FwX3JlcV9mbGFnczsKIH07CiAKIHN0cnVjdCBrcmI1X3JkX3Jl cV9vdXRfY3R4X2RhdGEgewpAQCAtNTM2LDYgKzUzNywxNSBAQCBrcmI1X3JkX3JlcV9pbl9z ZXRfa2V5dGFiKGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIHJldHVybiAwOwogfQogCitL UkI1X0xJQl9GVU5DVElPTiBrcmI1X2Vycm9yX2NvZGUgS1JCNV9MSUJfQ0FMTAora3JiNV9y ZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9yZXFfZmxhZ3Moa3JiNV9jb250ZXh0IGNvbnRleHQs CisJCQkgICAgIGtyYjVfcmRfcmVxX2luX2N0eCBpbiwKKwkJCSAgICAga3JiNV9mbGFncyBm bGFncykKK3sKKyAgICBpbi0+dmVyaWZ5X2FwX3JlcV9mbGFncyA9IGZsYWdzOworICAgIHJl dHVybiAwOworfQorCiAvKioKICAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRv IGNoZWNrIHRoZSBXaW5kb3dzIFBBQyBvciBub3QKICAqCkBAIC04MjEsNiArODMxLDcgQEAg a3JiNV9yZF9yZXFfY3R4KGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIGtyYjVfcmRfcmVx X291dF9jdHggbyA9IE5VTEw7CiAgICAga3JiNV9rZXl0YWIgaWQgPSBOVUxMLCBrZXl0YWIg PSBOVUxMOwogICAgIGtyYjVfcHJpbmNpcGFsIHNlcnZpY2UgPSBOVUxMOworICAgIGtyYjVf ZmxhZ3MgdmVyaWZ5X2FwX3JlcV9mbGFncyA9IDA7CiAKICAgICAqb3V0Y3R4ID0gTlVMTDsK IApAQCAtODU4LDYgKzg2OSw5IEBAIGtyYjVfcmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29u dGV4dCwKICAgICBpZiAoaW5jdHggJiYgaW5jdHgtPmtleXRhYikKIAlpZCA9IGluY3R4LT5r ZXl0YWI7CiAKKyAgICBpZiAoaW5jdHgpCisgICAgICAgIHZlcmlmeV9hcF9yZXFfZmxhZ3Mg PSBpbmN0eC0+dmVyaWZ5X2FwX3JlcV9mbGFnczsKKwogICAgIGlmKCgqYXV0aF9jb250ZXh0 KS0+a2V5YmxvY2spewogCXJldCA9IGtyYjVfY29weV9rZXlibG9jayhjb250ZXh0LAogCQkJ CSAoKmF1dGhfY29udGV4dCktPmtleWJsb2NrLApAQCAtOTE1LDcgKzkyOSw3IEBAIGtyYjVf cmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKIAkJCQkgICZhcF9yZXEsCiAJCQkJ ICBzZXJ2ZXIsCiAJCQkJICBvLT5rZXlibG9jaywKLQkJCQkgIDAsCisJCQkJICB2ZXJpZnlf YXBfcmVxX2ZsYWdzLAogCQkJCSAgJm8tPmFwX3JlcV9vcHRpb25zLAogCQkJCSAgJm8tPnRp Y2tldCwKIAkJCQkgIEtSQjVfS1VfQVBfUkVRX0FVVEgpOwpAQCAtOTYzLDcgKzk3Nyw3IEBA IGtyYjVfcmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKIAkJCQkgICAgICAmYXBf cmVxLAogCQkJCSAgICAgIHNlcnZlciwKIAkJCQkgICAgICAmZW50cnkua2V5YmxvY2ssCi0J CQkJICAgICAgMCwKKwkJCQkgICAgICB2ZXJpZnlfYXBfcmVxX2ZsYWdzLAogCQkJCSAgICAg ICZvLT5hcF9yZXFfb3B0aW9ucywKIAkJCQkgICAgICAmby0+dGlja2V0LAogCQkJCSAgICAg IEtSQjVfS1VfQVBfUkVRX0FVVEgpOwpkaWZmIC0tZ2l0IGEvbGliL2tyYjUvdmVyc2lvbi1z Y3JpcHQubWFwIGIvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFwCmluZGV4IDAyM2Y5YmQ2 ODIwLi45YjIwMmMzNmVkZCAxMDA2NDQKLS0tIGEvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQu bWFwCisrKyBiL2xpYi9rcmI1L3ZlcnNpb24tc2NyaXB0Lm1hcApAQCAtNTI5LDYgKzUyOSw3 IEBAIEhFSU1EQUxfS1JCNV8yLjAgewogCQlrcmI1X3JkX3JlcV9pbl9zZXRfa2V5YmxvY2s7 CiAJCWtyYjVfcmRfcmVxX2luX3NldF9rZXl0YWI7CiAJCWtyYjVfcmRfcmVxX2luX3NldF9w YWNfY2hlY2s7CisJCWtyYjVfcmRfcmVxX2luX3NldF92ZXJpZnlfYXBfcmVxX2ZsYWdzOwog CQlrcmI1X3JkX3JlcV9vdXRfY3R4X2ZyZWU7CiAJCWtyYjVfcmRfcmVxX291dF9nZXRfYXBf cmVxX29wdGlvbnM7CiAJCWtyYjVfcmRfcmVxX291dF9nZXRfa2V5YmxvY2s7Ci0tIAoyLjE3 LjEKCgpGcm9tIGRkYmViOGE1M2ZjOWE4OTg5YmE5Njk0YzJmOGYxYjJjY2NlNjMyYTUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBz YW1iYS5vcmc+CkRhdGU6IEZyaSwgMTggQXVnIDIwMTcgMTU6MzM6MTcgKzAyMDAKU3ViamVj dDogW1BBVENIIDIvNl0gbGliL2tyYjU6IGFkZCBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJB TlNJVEVEX0NIRUNLCgpJbiBhY3RpdmUgZGlyZWN0b3J5IGEgZG9tYWluIG1lbWJlciByZXBs aWVzIG9uICh0cnVzdHMpIHRoZSBbS11EQ3MKb2YgdGhlIGRvbWFpbi4gSXQncyB0aGUgam9i IG9mIHRoZSBbS11EQ3MgdG8gb25seSBnZW5lcmF0ZSB1c2VmdWwKdGlja2V0cyBhcyB0aGV5 IGtub3cgYWJvdXQgdGhlIHRydXN0IHRvcG9sb2d5LgoKQlVHOiBodHRwczovL2J1Z3ppbGxh LnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZh biBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogbGliL2tyYjUva3JiNS5oICAg fCAxICsKIGxpYi9rcmI1L3JkX3JlcS5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2tyYjUva3Ji NS5oIGIvbGliL2tyYjUva3JiNS5oCmluZGV4IGVhMzIwNTJmMGE3Li40M2ZkZjk0NzMyMiAx MDA2NDQKLS0tIGEvbGliL2tyYjUva3JiNS5oCisrKyBiL2xpYi9rcmI1L2tyYjUuaApAQCAt NDQyLDYgKzQ0Miw3IEBAIHR5cGVkZWYgdW5pb24gewogLyogZmxhZ3MgZm9yIGtyYjVfdmVy aWZ5X2FwX3JlcSAqLwogCiAjZGVmaW5lIEtSQjVfVkVSSUZZX0FQX1JFUV9JR05PUkVfSU5W QUxJRAkoMSA8PCAwKQorI2RlZmluZSBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVE X0NIRUNLCSgxIDw8IDEpCiAKICNkZWZpbmUgS1JCNV9HQ19DQUNIRUQJCQkoMVUgPDwgMCkK ICNkZWZpbmUgS1JCNV9HQ19VU0VSX1VTRVIJCSgxVSA8PCAxKQpkaWZmIC0tZ2l0IGEvbGli L2tyYjUvcmRfcmVxLmMgYi9saWIva3JiNS9yZF9yZXEuYwppbmRleCA5OGRkMmRiZjI1Ni4u YTM5OTM4MjYxNDUgMTAwNjQ0Ci0tLSBhL2xpYi9rcmI1L3JkX3JlcS5jCisrKyBiL2xpYi9r cmI1L3JkX3JlcS5jCkBAIC0yMjAsNyArMjIwLDggQEAga3JiNV9kZWNyeXB0X3RpY2tldChr cmI1X2NvbnRleHQgY29udGV4dCwKIAkgICAgcmV0dXJuIEtSQjVLUkJfQVBfRVJSX1RLVF9F WFBJUkVEOwogCX0KIAotCWlmKCF0LmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZCkg eworCWlmKCF0LmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZAorCSAgICYmICEoZmxh Z3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkgewogCSAgICBy ZXQgPSBjaGVja190cmFuc2l0ZWQoY29udGV4dCwgdGlja2V0LCAmdCk7CiAJICAgIGlmKHJl dCkgewogCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQpOwotLSAKMi4xNy4xCgoKRnJvbSA4YWJj OGJlMzY2MjJjMTcyYWI4MmFiZWRkY2Q1MTcwNWYxZDFmNGQ0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRl OiBGcmksIDE4IEF1ZyAyMDE3IDE1OjMzOjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzLzZd IGxpYi9nc3NhcGkva3JiNTogYWRkIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19Y CgpUaGlzIGFsbG93cyBLUkI1X0dDX05PX1RSQU5TSVRfQ0hFQ0sgKG9uIHRoZSBpbml0aWF0 b3IpIGFuZApLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLIChvbiB0aGUg YWNjZXB0b3IpIHRvCmJlIGNvbnRyb2xsZWQgdmlhIHRoZSBnc3NhcGkgbGF5ZXIuCgpCVUc6 IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2ln bmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBs aWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggICAgICAgfCAgMyArKysKIGxpYi9nc3Nh cGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYyB8IDExICsrKysrKysrKystCiBsaWIvZ3Nz YXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmggICAgICAgfCAgMSArCiBsaWIvZ3NzYXBpL2tyYjUv aW5pdF9zZWNfY29udGV4dC5jICAgfCAxMiArKysrKysrKystLS0KIGxpYi9nc3NhcGkva3Ji NS9zZXRfY3JlZF9vcHRpb24uYyAgICB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwog bGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyAgICAgICAgICAgIHwgIDMgKysrCiBsaWIvZ3Nz YXBpL3ZlcnNpb24tc2NyaXB0Lm1hcCAgICAgICAgfCAgMSArCiA3IGZpbGVzIGNoYW5nZWQs IDUxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2dz c2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oIGIvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29p ZC5oCmluZGV4IDMwZmZiZTRhZGIzLi4xYTYxOWNmZDE2NyAxMDA2NDQKLS0tIGEvbGliL2dz c2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCisrKyBiL2xpYi9nc3NhcGkvZ3NzYXBpL2dzc2Fw aV9vaWQuaApAQCAtOTYsNiArOTYsOSBAQCBleHRlcm4gR1NTQVBJX0xJQl9WQVJJQUJMRSBn c3NfT0lEX2Rlc2MgX19nc3NfY19udGxtX2ZvcmNlX3YxX29pZF9kZXNjOwogZXh0ZXJuIEdT U0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9ub19jaV9m bGFnc194X29pZF9kZXNjOwogI2RlZmluZSBHU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gg KCZfX2dzc19rcmI1X2NyZWRfbm9fY2lfZmxhZ3NfeF9vaWRfZGVzYykKIAorZXh0ZXJuIEdT U0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9ub190cmFu c2l0X2NoZWNrX3hfb2lkX2Rlc2M7CisjZGVmaW5lIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJ VF9DSEVDS19YICgmX19nc3Nfa3JiNV9jcmVkX25vX3RyYW5zaXRfY2hlY2tfeF9vaWRfZGVz YykKKwogZXh0ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2ty YjVfaW1wb3J0X2NyZWRfeF9vaWRfZGVzYzsKICNkZWZpbmUgR1NTX0tSQjVfSU1QT1JUX0NS RURfWCAoJl9fZ3NzX2tyYjVfaW1wb3J0X2NyZWRfeF9vaWRfZGVzYykKIApkaWZmIC0tZ2l0 IGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9r cmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCmluZGV4IGQ0NjgwZTllOGZiLi40MjQ4MmM1MWYx ZiAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCisr KyBiL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtNDEyLDEzICs0 MTIsMjIgQEAgZ3Nza3JiNV9hY2NlcHRvcl9zdGFydChPTV91aW50MzIgKiBtaW5vcl9zdGF0 dXMsCiAJa3JiNV9yZF9yZXFfaW5fY3R4IGluID0gTlVMTDsKIAlrcmI1X3JkX3JlcV9vdXRf Y3R4IG91dCA9IE5VTEw7CiAJa3JiNV9wcmluY2lwYWwgc2VydmVyID0gTlVMTDsKKwlrcmI1 X2ZsYWdzIHZlcmlmeV9hcF9yZXFfZmxhZ3MgPSAwOwogCi0JaWYgKGFjY2VwdG9yX2NyZWQp CisJaWYgKGFjY2VwdG9yX2NyZWQpIHsKIAkgICAgc2VydmVyID0gYWNjZXB0b3JfY3JlZC0+ cHJpbmNpcGFsOwogCisJICAgIGlmIChhY2NlcHRvcl9jcmVkLT5jcmVkX2ZsYWdzICYgR1NT X0NGX05PX1RSQU5TSVRfQ0hFQ0spIHsKKwkJdmVyaWZ5X2FwX3JlcV9mbGFncyB8PSBLUkI1 X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLOworCSAgICB9CisJfQorCiAJa3Jl dCA9IGtyYjVfcmRfcmVxX2luX2N0eF9hbGxvYyhjb250ZXh0LCAmaW4pOwogCWlmIChrcmV0 ID09IDApCiAJICAgIGtyZXQgPSBrcmI1X3JkX3JlcV9pbl9zZXRfa2V5dGFiKGNvbnRleHQs IGluLCBrZXl0YWIpOworCWlmIChrcmV0ID09IDApCisJICAgIGtyZXQgPSBrcmI1X3JkX3Jl cV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFncyhjb250ZXh0LCBpbiwKKwkJCQkJCQkgIHZl cmlmeV9hcF9yZXFfZmxhZ3MpOwogCWlmIChrcmV0KSB7CiAJICAgIGlmIChpbikKIAkJa3Ji NV9yZF9yZXFfaW5fY3R4X2ZyZWUoY29udGV4dCwgaW4pOwpkaWZmIC0tZ2l0IGEvbGliL2dz c2FwaS9rcmI1L2dzc2tyYjVfbG9jbC5oIGIvbGliL2dzc2FwaS9rcmI1L2dzc2tyYjVfbG9j bC5oCmluZGV4IDU1NWQwOTVkZTg4Li4wNzIyNjBiY2YxMyAxMDA2NDQKLS0tIGEvbGliL2dz c2FwaS9rcmI1L2dzc2tyYjVfbG9jbC5oCisrKyBiL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1 X2xvY2wuaApAQCAtOTQsNiArOTQsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgIGludCBjcmVk X2ZsYWdzOwogI2RlZmluZSBHU1NfQ0ZfREVTVFJPWV9DUkVEX09OX1JFTEVBU0UJMQogI2Rl ZmluZSBHU1NfQ0ZfTk9fQ0lfRkxBR1MJCTIKKyNkZWZpbmUgR1NTX0NGX05PX1RSQU5TSVRf Q0hFQ0sJCTQKICAgc3RydWN0IGtyYjVfa2V5dGFiX2RhdGEgKmtleXRhYjsKICAgdGltZV90 IGVuZHRpbWU7CiAgIGdzc19jcmVkX3VzYWdlX3QgdXNhZ2U7CmRpZmYgLS1naXQgYS9saWIv Z3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9rcmI1L2luaXRf c2VjX2NvbnRleHQuYwppbmRleCA0ZWY1YzljNzEyMy4uMDA1M2I3NjM4MWEgMTAwNjQ0Ci0t LSBhL2xpYi9nc3NhcGkva3JiNS9pbml0X3NlY19jb250ZXh0LmMKKysrIGIvbGliL2dzc2Fw aS9rcmI1L2luaXRfc2VjX2NvbnRleHQuYwpAQCAtMjA1LDYgKzIwNSw3IEBAIGdzc2tyYjVf Z2V0X2NyZWRzKAogICAgICAgICBPTV91aW50MzIgKiBtaW5vcl9zdGF0dXMsCiAJa3JiNV9j b250ZXh0IGNvbnRleHQsCiAJa3JiNV9jY2FjaGUgY2NhY2hlLAorCWtyYjVfZmxhZ3Mgb3B0 aW9ucywKIAlnc3NrcmI1X2N0eCBjdHgsCiAJZ3NzX2NvbnN0X25hbWVfdCB0YXJnZXRfbmFt ZSwKIAlPTV91aW50MzIgdGltZV9yZXEsCkBAIC0yNDUsNyArMjQ2LDcgQEAgZ3Nza3JiNV9n ZXRfY3JlZHMoCiAgICAgdGhpc19jcmVkLnNlc3Npb24ua2V5dHlwZSA9IEtFWVRZUEVfTlVM TDsKIAogICAgIGtyZXQgPSBrcmI1X2dldF9jcmVkZW50aWFscyhjb250ZXh0LAotCQkJCTAs CisJCQkJb3B0aW9ucywKIAkJCQljY2FjaGUsCiAJCQkJJnRoaXNfY3JlZCwKIAkJCQkmY3R4 LT5rY3JlZCk7CkBAIC0zOTMsNiArMzk0LDcgQEAgaW5pdF9hdXRoCiAgICAga3JiNV9lcnJv cl9jb2RlIGtyZXQ7CiAgICAga3JiNV9kYXRhIGZ3ZF9kYXRhOwogICAgIE9NX3VpbnQzMiBs aWZldGltZV9yZWM7CisgICAga3JiNV9mbGFncyBvcHRpb25zID0gMDsKIAogICAgIGtyYjVf ZGF0YV96ZXJvKCZmd2RfZGF0YSk7CiAKQEAgLTQwOSw4ICs0MTEsMTIgQEAgaW5pdF9hdXRo CiAJICAgIGdvdG8gZmFpbHVyZTsKIAl9CiAJY3R4LT5tb3JlX2ZsYWdzIHw9IENMT1NFX0ND QUNIRTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgewogCWN0eC0+Y2NhY2hlID0gY3JlZC0+ Y2NhY2hlOworCWlmIChjcmVkLT5jcmVkX2ZsYWdzICYgR1NTX0NGX05PX1RSQU5TSVRfQ0hF Q0spIHsKKwkgICAgb3B0aW9ucyB8PSBLUkI1X0dDX05PX1RSQU5TSVRfQ0hFQ0s7CisJfQor ICAgIH0KIAogICAgIGtyZXQgPSBrcmI1X2NjX2dldF9wcmluY2lwYWwgKGNvbnRleHQsIGN0 eC0+Y2NhY2hlLCAmY3R4LT5zb3VyY2UpOwogICAgIGlmIChrcmV0KSB7CkBAIC00MjgsNyAr NDM0LDcgQEAgaW5pdF9hdXRoCiAJa3JiNV9zZXRfZGVmYXVsdF9pbl90a3RfZXR5cGVzKGNv bnRleHQsIGNyZWQtPmVuY3R5cGVzKTsKIAogICAgIHJldCA9IGdzc2tyYjVfZ2V0X2NyZWRz KG1pbm9yX3N0YXR1cywgY29udGV4dCwgY3R4LT5jY2FjaGUsCi0JCQkgICAgY3R4LCBuYW1l LCB0aW1lX3JlcSwgdGltZV9yZWMpOworCQkJICAgIG9wdGlvbnMsIGN0eCwgbmFtZSwgdGlt ZV9yZXEsIHRpbWVfcmVjKTsKICAgICBpZiAocmV0KQogCWdvdG8gZmFpbHVyZTsKIApkaWZm IC0tZ2l0IGEvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlvbi5jIGIvbGliL2dzc2Fw aS9rcmI1L3NldF9jcmVkX29wdGlvbi5jCmluZGV4IDE0MTFmODY2NTYzLi5lNTk1NjhjOWJk MCAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlvbi5jCisrKyBi L2xpYi9nc3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYwpAQCAtMjE3LDYgKzIxNywyNiBA QCBub19jaV9mbGFncyhPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKIH0KIAogCitzdGF0aWMg T01fdWludDMyCitub190cmFuc2l0X2NoZWNrKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAor CQkga3JiNV9jb250ZXh0IGNvbnRleHQsCisJCSBnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRs ZSwKKwkJIGNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQg Y3JlZDsKKworICAgIGlmIChjcmVkX2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9 PSBHU1NfQ19OT19DUkVERU5USUFMKSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJu IEdTU19TX0ZBSUxVUkU7CisgICAgfQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNy ZWRfaGFuZGxlOworICAgIGNyZWQtPmNyZWRfZmxhZ3MgfD0gR1NTX0NGX05PX1RSQU5TSVRf Q0hFQ0s7CisKKyAgICAqbWlub3Jfc3RhdHVzID0gMDsKKyAgICByZXR1cm4gR1NTX1NfQ09N UExFVEU7Cit9CisKIE9NX3VpbnQzMiBHU1NBUElfQ0FMTENPTlYKIF9nc3NrcmI1X3NldF9j cmVkX29wdGlvbgogICAgICAgICAgICAoT01fdWludDMyICptaW5vcl9zdGF0dXMsCkBAIC0y NDQsNiArMjY0LDEwIEBAIF9nc3NrcmI1X3NldF9jcmVkX29wdGlvbgogICAgIH0KIAogCisg ICAgaWYgKGdzc19vaWRfZXF1YWwoZGVzaXJlZF9vYmplY3QsIEdTU19LUkI1X0NSRURfTk9f VFJBTlNJVF9DSEVDS19YKSkgeworCXJldHVybiBub190cmFuc2l0X2NoZWNrKG1pbm9yX3N0 YXR1cywgY29udGV4dCwgY3JlZF9oYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKICAgICAqbWlu b3Jfc3RhdHVzID0gRUlOVkFMOwogICAgIHJldHVybiBHU1NfU19GQUlMVVJFOwogfQpkaWZm IC0tZ2l0IGEvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyBiL2xpYi9nc3NhcGkvbWVjaC9n c3Nfb2lkLmMKaW5kZXggNWI5YmQzNjIzNjAuLmU4OTczZDZmZGQzIDEwMDY0NAotLS0gYS9s aWIvZ3NzYXBpL21lY2gvZ3NzX29pZC5jCisrKyBiL2xpYi9nc3NhcGkvbWVjaC9nc3Nfb2lk LmMKQEAgLTk0LDYgKzk0LDkgQEAgZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUg X19nc3Nfa3JiNV9jcmVkX25vX2NpX2ZsYWdzX3hfb2lkX2Rlc2MgPSB7IDYsIHIKIC8qIEdT U19LUkI1X0lNUE9SVF9DUkVEX1ggLSAxLjIuNzUyLjQzLjEzLjMwICovCiBnc3NfT0lEX2Rl c2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rl c2MgPSB7IDYsIHJrX1VOQ09OU1QoIlx4MmFceDg1XHg3MFx4MmJceDBkXHgxZSIpIH07CiAK Ky8qIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YIC0gMS4yLjc1Mi40My4xMy4z MSAqLworZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3Nfa3JiNV9jcmVk X25vX3RyYW5zaXRfY2hlY2tfeF9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4 ODVceDcwXHgyYlx4MGRceDFmIikgfTsKKwogLyogR1NTX0NfTUFfU0FTTF9NRUNIX05BTUUg LSAxLjIuNzUyLjQzLjEzLjEwMCAqLwogZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFC TEUgX19nc3NfY19tYV9zYXNsX21lY2hfbmFtZV9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05T VCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDY0IikgfTsKIApkaWZmIC0tZ2l0IGEvbGliL2dz c2FwaS92ZXJzaW9uLXNjcmlwdC5tYXAgYi9saWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0Lm1h cAppbmRleCAzMjY1OTcwMzQ0Zi4uY2U4NWI0MDJkYzggMTAwNjQ0Ci0tLSBhL2xpYi9nc3Nh cGkvdmVyc2lvbi1zY3JpcHQubWFwCisrKyBiL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQu bWFwCkBAIC0xNjEsNiArMTYxLDcgQEAgSEVJTURBTF9HU1NfMi4wIHsKIAkJX19nc3NfY19u dGxtX3Nlc3Npb25fa2V5X29pZF9kZXNjOwogCQlfX2dzc19jX250bG1fZm9yY2VfdjFfb2lk X2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFnc194X29pZF9kZXNjOworCQlf X2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOwogCQlfX2dzc19r cmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbWFfc2FzbF9tZWNoX25h bWVfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbWFfbWVjaF9uYW1lX29pZF9kZXNjOwotLSAKMi4x Ny4xCgoKRnJvbSA4M2ZkMTBhOGU5ODBhN2ZmYTkyOTlhYzg4MGJhOTkyNTg5ZjQ1MDQxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVA c2FtYmEub3JnPgpEYXRlOiBTYXQsIDIwIEp1bCAyMDE5IDEwOjE1OjA0ICswMDAwClN1Ympl Y3Q6IFtQQVRDSCA0LzZdIGxpYi9rcmI1OiBsZXQga3JiNV9yZF9yZXFfY3R4KCkgZmFsbGJh Y2sgb25seSBvbgogS1JCNUtSQl9BUF9FUlJfQkFEX0lOVEVHUklUWQoKVGhpcyBhdm9pZHMg aGlkZGluZyBhIHJlYWwgZXJyb3IgbGlrZSBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtULgoK V2Ugb25seSB3YW50IHRvIHJldHJ5IHdpdGggdGhlIG5leHQga2V5IGlmIHRoZSBkZWNyeXB0 aW9uCmZhaWxlZC4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcu Y2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVA c2FtYmEub3JnPgotLS0KIGxpYi9rcmI1L3JkX3JlcS5jIHwgNyArKysrKystCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bGliL2tyYjUvcmRfcmVxLmMgYi9saWIva3JiNS9yZF9yZXEuYwppbmRleCBhMzk5MzgyNjE0 NS4uZGQwMzUyNzkxY2IgMTAwNjQ0Ci0tLSBhL2xpYi9rcmI1L3JkX3JlcS5jCisrKyBiL2xp Yi9rcmI1L3JkX3JlcS5jCkBAIC05ODIsMTAgKzk4MiwxNSBAQCBrcmI1X3JkX3JlcV9jdHgo a3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCQkJICAgICAgJm8tPmFwX3JlcV9vcHRpb25zLAog CQkJCSAgICAgICZvLT50aWNrZXQsCiAJCQkJICAgICAgS1JCNV9LVV9BUF9SRVFfQVVUSCk7 Ci0JICAgIGlmIChyZXQpIHsKKwkgICAgaWYgKHJldCA9PSBLUkI1S1JCX0FQX0VSUl9CQURf SU5URUdSSVRZKSB7CisJCS8qIGZhaWxlZCB0byBkZWNyeXB0LCB0cnkgdGhlIG5leHQga2V5 ICovCiAJCWtyYjVfa3RfZnJlZV9lbnRyeSAoY29udGV4dCwgJmVudHJ5KTsKIAkJY29udGlu dWU7CiAJICAgIH0KKwkgICAgaWYgKHJldCkgeworCQlrcmI1X2t0X2ZyZWVfZW50cnkgKGNv bnRleHQsICZlbnRyeSk7CisJCWJyZWFrOworCSAgICB9CiAKIAkgICAgLyoKIAkgICAgICog Rm91bmQgYSBtYXRjaCwgc2F2ZSB0aGUga2V5YmxvY2sgZm9yIFBBQyBwcm9jZXNzaW5nLAot LSAKMi4xNy4xCgoKRnJvbSA0YTdhZDI4MTQ4YjUzNzkxZWIzNjYwODc5MTY2ZDRhMzAyNDgx YjBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8 bWV0emVAc2FtYmEub3JnPgpEYXRlOiBTYXQsIDIwIEp1bCAyMDE5IDEwOjE1OjA0ICswMDAw ClN1YmplY3Q6IFtQQVRDSCA1LzZdIGxpYi9rcmI1OiBhZGQga3JiNV9yZF9yZXFfaW5fc2V0 X2l0ZXJhdGVfa2V5dGFiKCkKCkEgY2FsbGVyIG1pZ2h0IG5vdCBrbm93IHRoZSBrdm5vIG1h aW50YWluZWQgYnkgdGhlIEtEQy4KQW5kIG1vc3Qgb2Z0ZW4gdGhlcmUncyBuZWVkIHRvIGtu b3cgaXQuCgpTbyB0aGlzIGZ1bmN0aW9uIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZvcmNlIHRo ZSBrZXl0YWIKaXRlcmF0aW9uIGluIG9yZGVyIHRvIGdldCBhIGNvbnNpc3RlbnQgYmVoYXZp b3IuCk90aGVyd2lzZSBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIGRpZmZlcmVudCBiZWhhdmlv cgppZiB0aGUgZ3Vlc3NlZCBrdm5vIGluIHRoZSBrZXl0YWIgYWNjaWRlbnRhbGx5IG1hdGNo ZXMKdGhlIGt2bm8gb2YgdGhlIHRpY2tldCBhbmQgd2UnbGwgZ2l2ZSB1cCBpZiB0aGUKa2V5 IGlzIG5vdCBhYmxlIHRvIGRlY3J5cHQgdGhlIHRpY2tldC4KCkJVRzogaHR0cHM6Ly9idWd6 aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBT dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGxpYi9rcmI1L3JkX3Jl cS5jICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2ty YjUvdmVyc2lvbi1zY3JpcHQubWFwIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliL2tyYjUvcmRfcmVxLmMgYi9saWIva3JiNS9y ZF9yZXEuYwppbmRleCBkZDAzNTI3OTFjYi4uNTQyNmRkNzAwNDAgMTAwNjQ0Ci0tLSBhL2xp Yi9rcmI1L3JkX3JlcS5jCisrKyBiL2xpYi9rcmI1L3JkX3JlcS5jCkBAIC00ODAsNiArNDgw LDcgQEAga3JiNV92ZXJpZnlfYXBfcmVxMihrcmI1X2NvbnRleHQgY29udGV4dCwKIAogc3Ry dWN0IGtyYjVfcmRfcmVxX2luX2N0eF9kYXRhIHsKICAgICBrcmI1X2tleXRhYiBrZXl0YWI7 CisgICAga3JiNV9ib29sZWFuIGl0ZXJhdGVfa2V5dGFiOwogICAgIGtyYjVfa2V5YmxvY2sg KmtleWJsb2NrOwogICAgIGtyYjVfYm9vbGVhbiBjaGVja19wYWM7CiAgICAga3JiNV9mbGFn cyB2ZXJpZnlfYXBfcmVxX2ZsYWdzOwpAQCAtNTQ3LDYgKzU0OCwyNyBAQCBrcmI1X3JkX3Jl cV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFncyhrcmI1X2NvbnRleHQgY29udGV4dCwKICAg ICByZXR1cm4gMDsKIH0KIAorLyoqCisgKiBTZXQgaWYga3JiNV9ycV9yZWQoKSBpcyBnb2lu ZyB0byBpdGVyYXRlIHRoZSBrZXl0YWIgdG8gZmluZCBhIGtleQorICoKKyAqIEBwYXJhbSBj b250ZXh0IEtlYmVyb3MgNSBjb250ZXh0LgorICogQHBhcmFtIGluIGtyYjVfcmRfcmVxX2lu X2N0eCB0byBjaGVjayB0aGUgb3B0aW9uIG9uLgorICogQHBhcmFtIGZsYWcgZmxhZyB0byBz ZWxlY3QgaWYgdGhlIGtleXRhYiBzaG91bGQgYmUgaXRlcmF0ZWQgKFRSVUUpIG9yIG5vdCAo RkFMU0UpLgorICoKKyAqIEByZXR1cm4gS2VyYmVyb3MgNSBlcnJvciBjb2RlLCBzZWUga3Ji NV9nZXRfZXJyb3JfbWVzc2FnZSgpLgorICoKKyAqIEBpbmdyb3VwIGtyYjVfYXV0aAorICov CisKK0tSQjVfTElCX0ZVTkNUSU9OIGtyYjVfZXJyb3JfY29kZSBLUkI1X0xJQl9DQUxMCitr cmI1X3JkX3JlcV9pbl9zZXRfaXRlcmF0ZV9rZXl0YWIoa3JiNV9jb250ZXh0IGNvbnRleHQs CisJCQkJICBrcmI1X3JkX3JlcV9pbl9jdHggaW4sCisJCQkJICBrcmI1X2Jvb2xlYW4gZmxh ZykKK3sKKyAgICBpbi0+aXRlcmF0ZV9rZXl0YWIgPSBmbGFnOworICAgIHJldHVybiAwOwor fQorCiAvKioKICAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRvIGNoZWNrIHRo ZSBXaW5kb3dzIFBBQyBvciBub3QKICAqCkBAIC04ODUsNiArOTA3LDExIEBAIGtyYjVfcmRf cmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKIAkJCQkgJm8tPmtleWJsb2NrKTsKIAlp ZiAocmV0KQogCSAgICBnb3RvIG91dDsKKyAgICB9IGVsc2UgaWYgKGlkICYmIGluY3R4ICYm IGluY3R4LT5pdGVyYXRlX2tleXRhYikgeworCSAgICAvKgorCSAgICAgKiBGb3JjZSBpdGVy YXRpbmcgb3ZlciB0aGUga2V5dGFiLgorCSAgICAgKi8KKwkgICAgby0+a2V5YmxvY2sgPSBO VUxMOwogICAgIH0gZWxzZSB7CiAKIAlpZihpZCA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9s aWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAgYi9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5t YXAKaW5kZXggOWIyMDJjMzZlZGQuLjVkMmRiMGMzNTg5IDEwMDY0NAotLS0gYS9saWIva3Ji NS92ZXJzaW9uLXNjcmlwdC5tYXAKKysrIGIvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFw CkBAIC01MjYsNiArNTI2LDcgQEAgSEVJTURBTF9LUkI1XzIuMCB7CiAJCWtyYjVfcmRfcmVx X2N0eDsKIAkJa3JiNV9yZF9yZXFfaW5fY3R4X2FsbG9jOwogCQlrcmI1X3JkX3JlcV9pbl9j dHhfZnJlZTsKKwkJa3JiNV9yZF9yZXFfaW5fc2V0X2l0ZXJhdGVfa2V5dGFiOwogCQlrcmI1 X3JkX3JlcV9pbl9zZXRfa2V5YmxvY2s7CiAJCWtyYjVfcmRfcmVxX2luX3NldF9rZXl0YWI7 CiAJCWtyYjVfcmRfcmVxX2luX3NldF9wYWNfY2hlY2s7Ci0tIAoyLjE3LjEKCgpGcm9tIGVh NWFiODYzYWI1MTIxZmE0NjI4YjcxYzg0MjJjOGI4NjAwZWI3OTggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRh dGU6IFRodSwgMjIgQXVnIDIwMTkgMTA6MzA6MDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDYv Nl0gbGliL2dzc2FwaS9rcmI1OiBhZGQKIEdTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRP Ul9LRVlUQUJfWAoKVGhpcyBhbGxvd3Mga3JiNV9yZF9yZXFfaW5fc2V0X2l0ZXJhdGVfa2V5 dGFiKCkgdG8gYmUgdXNlZCB2aWEgdGhlCmdzc2FwaSBsYXllci4KCkJVRzogaHR0cHM6Ly9i dWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGxpYi9nc3NhcGkv Z3NzYXBpL2dzc2FwaV9vaWQuaCAgICAgICB8ICAzICsrKwogbGliL2dzc2FwaS9rcmI1L2Fj Y2VwdF9zZWNfY29udGV4dC5jIHwgIDcgKysrKysrKwogbGliL2dzc2FwaS9rcmI1L2dzc2ty YjVfbG9jbC5oICAgICAgIHwgIDEgKwogbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlv bi5jICAgIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwogbGliL2dzc2FwaS9tZWNoL2dz c19vaWQuYyAgICAgICAgICAgIHwgIDMgKysrCiBsaWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0 Lm1hcCAgICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggYi9saWIvZ3Nz YXBpL2dzc2FwaS9nc3NhcGlfb2lkLmgKaW5kZXggMWE2MTljZmQxNjcuLmVjZmNkOGU1NTIw IDEwMDY0NAotLS0gYS9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmgKKysrIGIvbGli L2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCkBAIC05OSw2ICs5OSw5IEBAIGV4dGVybiBH U1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVzYyBfX2dzc19rcmI1X2NyZWRfbm9fY2lf ZmxhZ3NfeF9vaWRfZGVzYzsKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURf ZGVzYyBfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOwogI2Rl ZmluZSBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCAoJl9fZ3NzX2tyYjVfY3Jl ZF9ub190cmFuc2l0X2NoZWNrX3hfb2lkX2Rlc2MpCiAKK2V4dGVybiBHU1NBUElfTElCX1ZB UklBQkxFIGdzc19PSURfZGVzYyBfX2dzc19rcmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRvcl9r ZXl0YWJfeF9vaWRfZGVzYzsKKyNkZWZpbmUgR1NTX0tSQjVfQ1JFRF9JVEVSQVRFX0FDQ0VQ VE9SX0tFWVRBQl9YICgmX19nc3Nfa3JiNV9jcmVkX2l0ZXJhdGVfYWNjZXB0b3Jfa2V5dGFi X3hfb2lkX2Rlc2MpCisKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVz YyBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAjZGVmaW5lIEdTU19LUkI1 X0lNUE9SVF9DUkVEX1ggKCZfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2MpCiAK ZGlmZiAtLWdpdCBhL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYyBiL2xp Yi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwppbmRleCA0MjQ4MmM1MWYxZi4u Mzc3ODY5MzQ4NTAgMTAwNjQ0Ci0tLSBhL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2Nv bnRleHQuYworKysgYi9saWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMKQEAg LTQxMiwxMSArNDEyLDE2IEBAIGdzc2tyYjVfYWNjZXB0b3Jfc3RhcnQoT01fdWludDMyICog bWlub3Jfc3RhdHVzLAogCWtyYjVfcmRfcmVxX2luX2N0eCBpbiA9IE5VTEw7CiAJa3JiNV9y ZF9yZXFfb3V0X2N0eCBvdXQgPSBOVUxMOwogCWtyYjVfcHJpbmNpcGFsIHNlcnZlciA9IE5V TEw7CisJa3JiNV9ib29sZWFuIGl0ZXJhdGVfa2V5dGFiID0gRkFMU0U7CiAJa3JiNV9mbGFn cyB2ZXJpZnlfYXBfcmVxX2ZsYWdzID0gMDsKIAogCWlmIChhY2NlcHRvcl9jcmVkKSB7CiAJ ICAgIHNlcnZlciA9IGFjY2VwdG9yX2NyZWQtPnByaW5jaXBhbDsKIAorCSAgICBpZiAoYWNj ZXB0b3JfY3JlZC0+Y3JlZF9mbGFncyAmIEdTU19DRl9JVEVSQVRFX0FDQ0VQVE9SX0tFWVRB QikgeworCQlpdGVyYXRlX2tleXRhYiA9IFRSVUU7CisJICAgIH0KKwogCSAgICBpZiAoYWNj ZXB0b3JfY3JlZC0+Y3JlZF9mbGFncyAmIEdTU19DRl9OT19UUkFOU0lUX0NIRUNLKSB7CiAJ CXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllfQVBfUkVRX05PX1RSQU5TSVRF RF9DSEVDSzsKIAkgICAgfQpAQCAtNDI1LDYgKzQzMCw4IEBAIGdzc2tyYjVfYWNjZXB0b3Jf c3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVzLAogCWtyZXQgPSBrcmI1X3JkX3JlcV9p bl9jdHhfYWxsb2MoY29udGV4dCwgJmluKTsKIAlpZiAoa3JldCA9PSAwKQogCSAgICBrcmV0 ID0ga3JiNV9yZF9yZXFfaW5fc2V0X2tleXRhYihjb250ZXh0LCBpbiwga2V5dGFiKTsKKwlp ZiAoa3JldCA9PSAwICYmIGl0ZXJhdGVfa2V5dGFiKQorCSAgICBrcmV0ID0ga3JiNV9yZF9y ZXFfaW5fc2V0X2l0ZXJhdGVfa2V5dGFiKGNvbnRleHQsIGluLCBUUlVFKTsKIAlpZiAoa3Jl dCA9PSAwKQogCSAgICBrcmV0ID0ga3JiNV9yZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9yZXFf ZmxhZ3MoY29udGV4dCwgaW4sCiAJCQkJCQkJICB2ZXJpZnlfYXBfcmVxX2ZsYWdzKTsKZGlm ZiAtLWdpdCBhL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaCBiL2xpYi9nc3NhcGkv a3JiNS9nc3NrcmI1X2xvY2wuaAppbmRleCAwNzIyNjBiY2YxMy4uOTI1MDFmYzQ5MDAgMTAw NjQ0Ci0tLSBhL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaAorKysgYi9saWIvZ3Nz YXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKQEAgLTk1LDYgKzk1LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgewogI2RlZmluZSBHU1NfQ0ZfREVTVFJPWV9DUkVEX09OX1JFTEVBU0UJMQogI2RlZmlu ZSBHU1NfQ0ZfTk9fQ0lfRkxBR1MJCTIKICNkZWZpbmUgR1NTX0NGX05PX1RSQU5TSVRfQ0hF Q0sJCTQKKyNkZWZpbmUgR1NTX0NGX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCCTgKICAgc3Ry dWN0IGtyYjVfa2V5dGFiX2RhdGEgKmtleXRhYjsKICAgdGltZV90IGVuZHRpbWU7CiAgIGdz c19jcmVkX3VzYWdlX3QgdXNhZ2U7CmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL2tyYjUvc2V0 X2NyZWRfb3B0aW9uLmMgYi9saWIvZ3NzYXBpL2tyYjUvc2V0X2NyZWRfb3B0aW9uLmMKaW5k ZXggZTU5NTY4YzliZDAuLjlhZWMwMjAzNjcxIDEwMDY0NAotLS0gYS9saWIvZ3NzYXBpL2ty YjUvc2V0X2NyZWRfb3B0aW9uLmMKKysrIGIvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29w dGlvbi5jCkBAIC0yMTYsNiArMjE2LDI1IEBAIG5vX2NpX2ZsYWdzKE9NX3VpbnQzMiAqbWlu b3Jfc3RhdHVzLAogCiB9CiAKK3N0YXRpYyBPTV91aW50MzIKK2l0ZXJhdGVfYWNjZXB0b3Jf a2V5dGFiKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAorCQkJa3JiNV9jb250ZXh0IGNvbnRl eHQsCisJCQlnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRsZSwKKwkJCWNvbnN0IGdzc19idWZm ZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQgY3JlZDsKKworICAgIGlmIChjcmVk X2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9PSBHU1NfQ19OT19DUkVERU5USUFM KSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJuIEdTU19TX0ZBSUxVUkU7CisgICAg fQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNyZWRfaGFuZGxlOworICAgIGNyZWQt PmNyZWRfZmxhZ3MgfD0gR1NTX0NGX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCOworCisgICAg Km1pbm9yX3N0YXR1cyA9IDA7CisgICAgcmV0dXJuIEdTU19TX0NPTVBMRVRFOworfQogCiBz dGF0aWMgT01fdWludDMyCiBub190cmFuc2l0X2NoZWNrKE9NX3VpbnQzMiAqbWlub3Jfc3Rh dHVzLApAQCAtMjYzLDYgKzI4Miw5IEBAIF9nc3NrcmI1X3NldF9jcmVkX29wdGlvbgogCXJl dHVybiBub19jaV9mbGFncyhtaW5vcl9zdGF0dXMsIGNvbnRleHQsIGNyZWRfaGFuZGxlLCB2 YWx1ZSk7CiAgICAgfQogCisgICAgaWYgKGdzc19vaWRfZXF1YWwoZGVzaXJlZF9vYmplY3Qs IEdTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUJfWCkpIHsKKwlyZXR1cm4g aXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWIobWlub3Jfc3RhdHVzLCBjb250ZXh0LCBjcmVkX2hh bmRsZSwgdmFsdWUpOworICAgIH0KIAogICAgIGlmIChnc3Nfb2lkX2VxdWFsKGRlc2lyZWRf b2JqZWN0LCBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCkpIHsKIAlyZXR1cm4g bm9fdHJhbnNpdF9jaGVjayhtaW5vcl9zdGF0dXMsIGNvbnRleHQsIGNyZWRfaGFuZGxlLCB2 YWx1ZSk7CmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL21lY2gvZ3NzX29pZC5jIGIvbGliL2dz c2FwaS9tZWNoL2dzc19vaWQuYwppbmRleCBlODk3M2Q2ZmRkMy4uNGJkNTliNmQ5NzQgMTAw NjQ0Ci0tLSBhL2xpYi9nc3NhcGkvbWVjaC9nc3Nfb2lkLmMKKysrIGIvbGliL2dzc2FwaS9t ZWNoL2dzc19vaWQuYwpAQCAtOTcsNiArOTcsOSBAQCBnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJ Ql9WQVJJQUJMRSBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2MgPSB7IDYsIHJr X1VOQwogLyogR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1ggLSAxLjIuNzUyLjQz LjEzLjMxICovCiBnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1 X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjID0geyA2LCBya19VTkNPTlNUKCJc eDJhXHg4NVx4NzBceDJiXHgwZFx4MWYiKSB9OwogCisvKiBHU1NfS1JCNV9DUkVEX0lURVJB VEVfQUNDRVBUT1JfS0VZVEFCX1ggLSAxLjIuNzUyLjQzLjEzLjMyICovCitnc3NfT0lEX2Rl c2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRv cl9rZXl0YWJfeF9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4ODVceDcwXHgy Ylx4MGRceDIwIikgfTsKKwogLyogR1NTX0NfTUFfU0FTTF9NRUNIX05BTUUgLSAxLjIuNzUy LjQzLjEzLjEwMCAqLwogZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3Nf Y19tYV9zYXNsX21lY2hfbmFtZV9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4 ODVceDcwXHgyYlx4MGRceDY0IikgfTsKIApkaWZmIC0tZ2l0IGEvbGliL2dzc2FwaS92ZXJz aW9uLXNjcmlwdC5tYXAgYi9saWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0Lm1hcAppbmRleCBj ZTg1YjQwMmRjOC4uYzdjZGE1YWRjYjEgMTAwNjQ0Ci0tLSBhL2xpYi9nc3NhcGkvdmVyc2lv bi1zY3JpcHQubWFwCisrKyBiL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwCkBAIC0x NjAsNiArMTYwLDcgQEAgSEVJTURBTF9HU1NfMi4wIHsKIAkJX19nc3NfY19udGxtX3YyX29p ZF9kZXNjOwogCQlfX2dzc19jX250bG1fc2Vzc2lvbl9rZXlfb2lkX2Rlc2M7CiAJCV9fZ3Nz X2NfbnRsbV9mb3JjZV92MV9vaWRfZGVzYzsKKwkJX19nc3Nfa3JiNV9jcmVkX2l0ZXJhdGVf YWNjZXB0b3Jfa2V5dGFiX3hfb2lkX2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9m bGFnc194X29pZF9kZXNjOwogCQlfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194 X29pZF9kZXNjOwogCQlfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7Ci0tIAoy LjE3LjEKCg== --------------DD547EFD1C077ADE310AA0E0 Content-Type: text/plain; charset=UTF-8; name="heimdal-no_transit_check-wip-tests-01.patches.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="heimdal-no_transit_check-wip-tests-01.patches.txt" RnJvbSBjZWRlN2NjYjMyMmQ5OTc1MDEwY2Y2NWFhMDFiZDU0YmMwODAwNGVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu b3JnPgpEYXRlOiBUaHUsIDI5IEF1ZyAyMDE5IDE1OjM4OjExICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxLzddIFRPRE86IGxpYi9nc3NhcGk6IG1haW50YWluIGEgZ2xvYmFsIGFjY2VwdG9y X2NyZWQgaW4KIHRlc3RfY29udGV4dC5jCgotLS0KIGxpYi9nc3NhcGkvdGVzdF9jb250ZXh0 LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jIGIvbGliL2dz c2FwaS90ZXN0X2NvbnRleHQuYwppbmRleCA3Y2JlNzNiOGI0Mi4uZmNlYmI3ZTdjNTcgMTAw NjQ0Ci0tLSBhL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0LmMKKysrIGIvbGliL2dzc2FwaS90 ZXN0X2NvbnRleHQuYwpAQCAtMTQyLDYgKzE0Miw4IEBAIG9pZF90b19zdHJpbmcoY29uc3Qg Z3NzX09JRCBvaWQpCiAgICAgcmV0dXJuICJ1bmtub3duIG9pZCI7CiB9CiAKK3N0YXRpYyBn c3NfY3JlZF9pZF90IGFjY2VwdG9yX2NyZWQgPSBHU1NfQ19OT19DUkVERU5USUFMOworCiBz dGF0aWMgdm9pZAogbG9vcChnc3NfT0lEIG1lY2hvaWQsCiAgICAgIGdzc19PSUQgbmFtZW9p ZCwgY29uc3QgY2hhciAqdGFyZ2V0LApAQCAtMjI0LDcgKzIyNiw3IEBAIGxvb3AoZ3NzX09J RCBtZWNob2lkLAogCiAJbWFqX3N0YXQgPSBnc3NfYWNjZXB0X3NlY19jb250ZXh0KCZtaW5f c3RhdCwKIAkJCQkJICBzY3R4LAotCQkJCQkgIEdTU19DX05PX0NSRURFTlRJQUwsCisJCQkJ CSAgYWNjZXB0b3JfY3JlZCwKIAkJCQkJICAmb3V0cHV0X3Rva2VuLAogCQkJCQkgIEdTU19D X05PX0NIQU5ORUxfQklORElOR1MsCiAJCQkJCSAgTlVMTCwKLS0gCjIuMTcuMQoKCkZyb20g MWVhYjg4N2NkZjJlNjQ0MDU4NjFjMzdiMTZlMWZiMjJiMzRmYTc2MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4K RGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNTozODoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg Mi83XSBUT0RPOiBsaWIvZ3NzYXBpOiBtYWtlIHVzZSBvZiBnc3NfYWNxdWlyZV9jcmVkX2Zy b20oKSBpbgogdGVzdF9jb250ZXh0LmMKCi0tLQogbGliL2dzc2FwaS90ZXN0X2NvbnRleHQu YyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy MyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9nc3Nh cGkvdGVzdF9jb250ZXh0LmMgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCmluZGV4IGZj ZWJiN2U3YzU3Li5hYjY3OTcyZmMyNSAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS90ZXN0X2Nv bnRleHQuYworKysgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCkBAIC02MTksNiArNjE5 LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZ3NzX09JRF9zZXQgbWVj aG9pZHMgPSBHU1NfQ19OT19PSURfU0VUOwogICAgIGdzc19rZXlfdmFsdWVfZWxlbWVudF9k ZXNjIGNsaWVudF9jcmVkX2VsZW1lbnRzWzJdOwogICAgIGdzc19rZXlfdmFsdWVfc2V0X2Rl c2MgY2xpZW50X2NyZWRfc3RvcmU7CisgICAgZ3NzX2tleV92YWx1ZV9lbGVtZW50X2Rlc2Mg YWNjZXB0b3JfY3JlZF9lbGVtZW50c1sxXTsKKyAgICBnc3Nfa2V5X3ZhbHVlX3NldF9kZXNj IGFjY2VwdG9yX2NyZWRfc3RvcmU7CiAKICAgICBzZXRwcm9nbmFtZShhcmd2WzBdKTsKIApA QCAtNjk0LDE0ICs2OTYsMzAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAg ICAgICAgICAgICAgICAgICAgIG9pZHMsIHNpemVvZihvaWRzKS9zaXplb2Yob2lkc1swXSks IG1lY2hzX3N0cmluZyk7CiAgICAgfQogCisgICAgYWNjZXB0b3JfY3JlZF9zdG9yZS5jb3Vu dCA9IDA7CisgICAgYWNjZXB0b3JfY3JlZF9zdG9yZS5lbGVtZW50cyA9IGFjY2VwdG9yX2Ny ZWRfZWxlbWVudHM7CisKICAgICBpZiAoZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eSkgewot CS8qIFhYWCByZXBsYWNlIHRoaXMgd2l0aCBjcmVkIHN0b3JlLCBidXQgdGVzdCBzdWl0ZXMg d2lsbCBuZWVkIHdvcmsgKi8KLQltYWpfc3RhdCA9IGdzc2tyYjVfcmVnaXN0ZXJfYWNjZXB0 b3JfaWRlbnRpdHkoZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eSk7Ci0JaWYgKG1hal9zdGF0 KQotCSAgICBlcnJ4KDEsICJnc3NrcmI1X2FjY2VwdG9yX2lkZW50aXR5OiAlcyIsCi0JCSBn c3NhcGlfZXJyKG1hal9zdGF0LCAwLCBHU1NfQ19OT19PSUQpKTsKKwlhY2NlcHRvcl9jcmVk X3N0b3JlLmVsZW1lbnRzW2FjY2VwdG9yX2NyZWRfc3RvcmUuY291bnRdLmtleSA9ICJrZXl0 YWIiOworCWFjY2VwdG9yX2NyZWRfc3RvcmUuZWxlbWVudHNbYWNjZXB0b3JfY3JlZF9zdG9y ZS5jb3VudF0udmFsdWUgPSBnc3NrcmI1X2FjY2VwdG9yX2lkZW50aXR5OworCisJYWNjZXB0 b3JfY3JlZF9zdG9yZS5jb3VudCsrOwogICAgIH0KIAorICAgIG1hal9zdGF0ID0gZ3NzX2Fj cXVpcmVfY3JlZF9mcm9tKCZtaW5fc3RhdCwKKwkJCQkgICAgIE5VTEwsCisJCQkJICAgICBH U1NfQ19JTkRFRklOSVRFLAorCQkJCSAgICAgbWVjaG9pZHMsCisJCQkJICAgICBHU1NfQ19J TklUSUFURSwKKwkJCQkgICAgIGFjY2VwdG9yX2NyZWRfc3RvcmUuY291bnQgPyAmYWNjZXB0 b3JfY3JlZF9zdG9yZQorCQkJCQkJCSA6IEdTU19DX05PX0NSRURfU1RPUkUsCisJCQkJICAg ICAmYWNjZXB0b3JfY3JlZCwKKwkJCQkgICAgIE5VTEwsCisJCQkJICAgICBOVUxMKTsKKyAg ICBpZiAoR1NTX0VSUk9SKG1hal9zdGF0KSkKKwllcnJ4KDEsICJnc3NfYWNxdWlyZV9jcmVk KGFjY2VwdG9yKTogJXMiLAorCSAgICAgZ3NzYXBpX2VycihtYWpfc3RhdCwgbWluX3N0YXQs IEdTU19DX05PX09JRCkpOworCiAgICAgaWYgKGNsaWVudF9wYXNzd29yZCAmJiAoY2xpZW50 X2NjYWNoZSB8fCBjbGllbnRfa2V5dGFiKSkgewogCWVycngoMSwgInBhc3N3b3JkIG9wdGlv biBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBjY2FjaGUgb3Iga2V5dGFiIG9wdGlvbiIpOwog ICAgIH0KLS0gCjIuMTcuMQoKCkZyb20gNGVhMzNlNzIzNjA0NDY3MjI5NWFjMjc1ZmI5ODVk NWE4MWYwOTQ1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHpt YWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNTozODox MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy83XSBUT0RPOiBsaWIvZ3NzYXBpOiBhZGQgLS1h Y2NlcHRvci1uby10cmFuc2l0LWNoZWNrIG9wdGlvbgogdG8gdGVzdF9jb250ZXh0LmMKCi0t LQogbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYyB8IDE1ICsrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWIvZ3NzYXBp L3Rlc3RfY29udGV4dC5jIGIvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYwppbmRleCBhYjY3 OTcyZmMyNS4uODkzNWUyNzM3OTggMTAwNjQ0Ci0tLSBhL2xpYi9nc3NhcGkvdGVzdF9jb250 ZXh0LmMKKysrIGIvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYwpAQCAtNjAsNiArNjAsNyBA QCBzdGF0aWMgaW50IGVpX2ZsYWcgPSAwOwogc3RhdGljIGNoYXIgKmNsaWVudF9jY2FjaGUg PSBOVUxMOwogc3RhdGljIGNoYXIgKmNsaWVudF9rZXl0YWIgPSBOVUxMOwogc3RhdGljIGNo YXIgKmdzc2tyYjVfYWNjZXB0b3JfaWRlbnRpdHkgPSBOVUxMOworc3RhdGljIGludCBhY2Nl cHRvcl9ub190cmFuc2l0X2NoZWNrID0gMDsKIHN0YXRpYyBjaGFyICpzZXNzaW9uX2VuY3R5 cGVfc3RyaW5nID0gTlVMTDsKIHN0YXRpYyBpbnQgY2xpZW50X3RpbWVfb2Zmc2V0ID0gMDsK IHN0YXRpYyBpbnQgc2VydmVyX3RpbWVfb2Zmc2V0ID0gMDsKQEAgLTU4Niw2ICs1ODcsOCBA QCBzdGF0aWMgc3RydWN0IGdldGFyZ3MgYXJnc1tdID0gewogICAgICAic2VydmVyIHNob3Vs ZCBnZXQgYSBjcmVkZW50aWFsIiwgTlVMTCB9LAogICAgIHsiZXhwb3J0LWltcG9ydC1jcmVk IiwwLAlhcmdfZmxhZywJJmVpX2ZsYWcsICJ0ZXN0IGV4cG9ydC9pbXBvcnQgY3JlZCIsIE5V TEwgfSwKICAgICB7Imdzc2tyYjUtYWNjZXB0b3ItaWRlbnRpdHkiLCAwLCBhcmdfc3RyaW5n LCAmZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eSwgImtleXRhYiIsIE5VTEwgfSwKKyAgICB7 ImFjY2VwdG9yLW5vLXRyYW5zaXQtY2hlY2siLCAwLCBhcmdfZmxhZywgJmFjY2VwdG9yX25v X3RyYW5zaXRfY2hlY2ssCisgICAgICJza2lwIHRyYW5zaXRlZCBjaGVja3MiLCBOVUxMIH0s CiAgICAgeyJzZXNzaW9uLWVuY3R5cGUiLAkwLCBhcmdfc3RyaW5nLAkmc2Vzc2lvbl9lbmN0 eXBlX3N0cmluZywgImVuY3R5cGUiLCBOVUxMIH0sCiAgICAgeyJjbGllbnQtdGltZS1vZmZz ZXQiLAkwLCBhcmdfaW50ZWdlciwJJmNsaWVudF90aW1lX29mZnNldCwgInRpbWUiLCBOVUxM IH0sCiAgICAgeyJzZXJ2ZXItdGltZS1vZmZzZXQiLAkwLCBhcmdfaW50ZWdlciwJJnNlcnZl cl90aW1lX29mZnNldCwgInRpbWUiLCBOVUxMIH0sCkBAIC03MjAsNiArNzIzLDE4IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWVycngoMSwgImdzc19hY3F1aXJlX2NyZWQo YWNjZXB0b3IpOiAlcyIsCiAJICAgICBnc3NhcGlfZXJyKG1hal9zdGF0LCBtaW5fc3RhdCwg R1NTX0NfTk9fT0lEKSk7CiAKKyAgICBpZiAoYWNjZXB0b3Jfbm9fdHJhbnNpdF9jaGVjaykg eworCWdzc19idWZmZXJfZGVzYyBlbXB0eV9idWZmZXIgPSBHU1NfQ19FTVBUWV9CVUZGRVI7 CisKKwltYWpfc3RhdCA9IGdzc19zZXRfY3JlZF9vcHRpb24oJm1pbl9zdGF0LAorCQkJCSAg ICAgICAmYWNjZXB0b3JfY3JlZCwKKwkJCQkgICAgICAgKGdzc19PSUQpR1NTX0tSQjVfQ1JF RF9OT19UUkFOU0lUX0NIRUNLX1gsCisJCQkJICAgICAgICZlbXB0eV9idWZmZXIpOworCWlm IChHU1NfRVJST1IobWFqX3N0YXQpKQorCSAgICBlcnJ4KDEsICJnc3Nfc2V0X2NyZWRfb3B0 aW9uKEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YKTogJXMiLAorCQkgZ3NzYXBp X2VycihtYWpfc3RhdCwgbWluX3N0YXQsIEdTU19DX05PX09JRCkpOworICAgIH0KKwogICAg IGlmIChjbGllbnRfcGFzc3dvcmQgJiYgKGNsaWVudF9jY2FjaGUgfHwgY2xpZW50X2tleXRh YikpIHsKIAllcnJ4KDEsICJwYXNzd29yZCBvcHRpb24gbXV0dWFsbHkgZXhjbHVzaXZlIHdp dGggY2NhY2hlIG9yIGtleXRhYiBvcHRpb24iKTsKICAgICB9Ci0tIAoyLjE3LjEKCgpGcm9t IGU4NWY2MThiODc5ZGFkNWM0YTRiZDBjOTVlOTM3OThlZGU3N2NkNjEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+ CkRhdGU6IFR1ZSwgMjQgU2VwIDIwMTkgMDE6MzM6MDUgKzAyMDAKU3ViamVjdDogW1BBVENI IDQvN10gUmV2ZXJ0ICJUT0RPOiBsaWIvZ3NzYXBpOiBhZGQgLS1hY2NlcHRvci1uby10cmFu c2l0LWNoZWNrCiBvcHRpb24gdG8gdGVzdF9jb250ZXh0LmMiCgpUaGlzIHJldmVydHMgY29t bWl0IDRlYTMzZTcyMzYwNDQ2NzIyOTVhYzI3NWZiOTg1ZDVhODFmMDk0NWIuCi0tLQogbGli L2dzc2FwaS90ZXN0X2NvbnRleHQuYyB8IDE1IC0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9nc3NhcGkvdGVzdF9j b250ZXh0LmMgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCmluZGV4IDg5MzVlMjczNzk4 Li5hYjY3OTcyZmMyNSAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYwor KysgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCkBAIC02MCw3ICs2MCw2IEBAIHN0YXRp YyBpbnQgZWlfZmxhZyA9IDA7CiBzdGF0aWMgY2hhciAqY2xpZW50X2NjYWNoZSA9IE5VTEw7 CiBzdGF0aWMgY2hhciAqY2xpZW50X2tleXRhYiA9IE5VTEw7CiBzdGF0aWMgY2hhciAqZ3Nz a3JiNV9hY2NlcHRvcl9pZGVudGl0eSA9IE5VTEw7Ci1zdGF0aWMgaW50IGFjY2VwdG9yX25v X3RyYW5zaXRfY2hlY2sgPSAwOwogc3RhdGljIGNoYXIgKnNlc3Npb25fZW5jdHlwZV9zdHJp bmcgPSBOVUxMOwogc3RhdGljIGludCBjbGllbnRfdGltZV9vZmZzZXQgPSAwOwogc3RhdGlj IGludCBzZXJ2ZXJfdGltZV9vZmZzZXQgPSAwOwpAQCAtNTg3LDggKzU4Niw2IEBAIHN0YXRp YyBzdHJ1Y3QgZ2V0YXJncyBhcmdzW10gPSB7CiAgICAgICJzZXJ2ZXIgc2hvdWxkIGdldCBh IGNyZWRlbnRpYWwiLCBOVUxMIH0sCiAgICAgeyJleHBvcnQtaW1wb3J0LWNyZWQiLDAsCWFy Z19mbGFnLAkmZWlfZmxhZywgInRlc3QgZXhwb3J0L2ltcG9ydCBjcmVkIiwgTlVMTCB9LAog ICAgIHsiZ3Nza3JiNS1hY2NlcHRvci1pZGVudGl0eSIsIDAsIGFyZ19zdHJpbmcsICZnc3Nr cmI1X2FjY2VwdG9yX2lkZW50aXR5LCAia2V5dGFiIiwgTlVMTCB9LAotICAgIHsiYWNjZXB0 b3Itbm8tdHJhbnNpdC1jaGVjayIsIDAsIGFyZ19mbGFnLCAmYWNjZXB0b3Jfbm9fdHJhbnNp dF9jaGVjaywKLSAgICAgInNraXAgdHJhbnNpdGVkIGNoZWNrcyIsIE5VTEwgfSwKICAgICB7 InNlc3Npb24tZW5jdHlwZSIsCTAsIGFyZ19zdHJpbmcsCSZzZXNzaW9uX2VuY3R5cGVfc3Ry aW5nLCAiZW5jdHlwZSIsIE5VTEwgfSwKICAgICB7ImNsaWVudC10aW1lLW9mZnNldCIsCTAs IGFyZ19pbnRlZ2VyLAkmY2xpZW50X3RpbWVfb2Zmc2V0LCAidGltZSIsIE5VTEwgfSwKICAg ICB7InNlcnZlci10aW1lLW9mZnNldCIsCTAsIGFyZ19pbnRlZ2VyLAkmc2VydmVyX3RpbWVf b2Zmc2V0LCAidGltZSIsIE5VTEwgfSwKQEAgLTcyMywxOCArNzIwLDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJZXJyeCgxLCAiZ3NzX2FjcXVpcmVfY3JlZChhY2NlcHRv cik6ICVzIiwKIAkgICAgIGdzc2FwaV9lcnIobWFqX3N0YXQsIG1pbl9zdGF0LCBHU1NfQ19O T19PSUQpKTsKIAotICAgIGlmIChhY2NlcHRvcl9ub190cmFuc2l0X2NoZWNrKSB7Ci0JZ3Nz X2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZlciA9IEdTU19DX0VNUFRZX0JVRkZFUjsKLQotCW1h al9zdGF0ID0gZ3NzX3NldF9jcmVkX29wdGlvbigmbWluX3N0YXQsCi0JCQkJICAgICAgICZh Y2NlcHRvcl9jcmVkLAotCQkJCSAgICAgICAoZ3NzX09JRClHU1NfS1JCNV9DUkVEX05PX1RS QU5TSVRfQ0hFQ0tfWCwKLQkJCQkgICAgICAgJmVtcHR5X2J1ZmZlcik7Ci0JaWYgKEdTU19F UlJPUihtYWpfc3RhdCkpCi0JICAgIGVycngoMSwgImdzc19zZXRfY3JlZF9vcHRpb24oR1NT X0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gpOiAlcyIsCi0JCSBnc3NhcGlfZXJyKG1h al9zdGF0LCBtaW5fc3RhdCwgR1NTX0NfTk9fT0lEKSk7Ci0gICAgfQotCiAgICAgaWYgKGNs aWVudF9wYXNzd29yZCAmJiAoY2xpZW50X2NjYWNoZSB8fCBjbGllbnRfa2V5dGFiKSkgewog CWVycngoMSwgInBhc3N3b3JkIG9wdGlvbiBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBjY2Fj aGUgb3Iga2V5dGFiIG9wdGlvbiIpOwogICAgIH0KLS0gCjIuMTcuMQoKCkZyb20gODM1MTU5 ZDQwNWJjNjIwODVmZWY5ODYxNGFmNWRlOGM0YmM1YzFmNSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTog VHVlLCAyNCBTZXAgMjAxOSAwMTozMzowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS83XSBS ZXZlcnQgIlRPRE86IGxpYi9nc3NhcGk6IG1ha2UgdXNlIG9mCiBnc3NfYWNxdWlyZV9jcmVk X2Zyb20oKSBpbiB0ZXN0X2NvbnRleHQuYyIKClRoaXMgcmV2ZXJ0cyBjb21taXQgMWVhYjg4 N2NkZjJlNjQ0MDU4NjFjMzdiMTZlMWZiMjJiMzRmYTc2My4KLS0tCiBsaWIvZ3NzYXBpL3Rl c3RfY29udGV4dC5jIHwgMjggKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYyBiL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0 LmMKaW5kZXggYWI2Nzk3MmZjMjUuLmZjZWJiN2U3YzU3IDEwMDY0NAotLS0gYS9saWIvZ3Nz YXBpL3Rlc3RfY29udGV4dC5jCisrKyBiL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0LmMKQEAg LTYxOSw4ICs2MTksNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBnc3Nf T0lEX3NldCBtZWNob2lkcyA9IEdTU19DX05PX09JRF9TRVQ7CiAgICAgZ3NzX2tleV92YWx1 ZV9lbGVtZW50X2Rlc2MgY2xpZW50X2NyZWRfZWxlbWVudHNbMl07CiAgICAgZ3NzX2tleV92 YWx1ZV9zZXRfZGVzYyBjbGllbnRfY3JlZF9zdG9yZTsKLSAgICBnc3Nfa2V5X3ZhbHVlX2Vs ZW1lbnRfZGVzYyBhY2NlcHRvcl9jcmVkX2VsZW1lbnRzWzFdOwotICAgIGdzc19rZXlfdmFs dWVfc2V0X2Rlc2MgYWNjZXB0b3JfY3JlZF9zdG9yZTsKIAogICAgIHNldHByb2duYW1lKGFy Z3ZbMF0pOwogCkBAIC02OTYsMzAgKzY5NCwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKICAgICAgICAgICAgICAgICAgICAgICAgb2lkcywgc2l6ZW9mKG9pZHMpL3NpemVv ZihvaWRzWzBdKSwgbWVjaHNfc3RyaW5nKTsKICAgICB9CiAKLSAgICBhY2NlcHRvcl9jcmVk X3N0b3JlLmNvdW50ID0gMDsKLSAgICBhY2NlcHRvcl9jcmVkX3N0b3JlLmVsZW1lbnRzID0g YWNjZXB0b3JfY3JlZF9lbGVtZW50czsKLQogICAgIGlmIChnc3NrcmI1X2FjY2VwdG9yX2lk ZW50aXR5KSB7Ci0JYWNjZXB0b3JfY3JlZF9zdG9yZS5lbGVtZW50c1thY2NlcHRvcl9jcmVk X3N0b3JlLmNvdW50XS5rZXkgPSAia2V5dGFiIjsKLQlhY2NlcHRvcl9jcmVkX3N0b3JlLmVs ZW1lbnRzW2FjY2VwdG9yX2NyZWRfc3RvcmUuY291bnRdLnZhbHVlID0gZ3Nza3JiNV9hY2Nl cHRvcl9pZGVudGl0eTsKLQotCWFjY2VwdG9yX2NyZWRfc3RvcmUuY291bnQrKzsKKwkvKiBY WFggcmVwbGFjZSB0aGlzIHdpdGggY3JlZCBzdG9yZSwgYnV0IHRlc3Qgc3VpdGVzIHdpbGwg bmVlZCB3b3JrICovCisJbWFqX3N0YXQgPSBnc3NrcmI1X3JlZ2lzdGVyX2FjY2VwdG9yX2lk ZW50aXR5KGdzc2tyYjVfYWNjZXB0b3JfaWRlbnRpdHkpOworCWlmIChtYWpfc3RhdCkKKwkg ICAgZXJyeCgxLCAiZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eTogJXMiLAorCQkgZ3NzYXBp X2VycihtYWpfc3RhdCwgMCwgR1NTX0NfTk9fT0lEKSk7CiAgICAgfQogCi0gICAgbWFqX3N0 YXQgPSBnc3NfYWNxdWlyZV9jcmVkX2Zyb20oJm1pbl9zdGF0LAotCQkJCSAgICAgTlVMTCwK LQkJCQkgICAgIEdTU19DX0lOREVGSU5JVEUsCi0JCQkJICAgICBtZWNob2lkcywKLQkJCQkg ICAgIEdTU19DX0lOSVRJQVRFLAotCQkJCSAgICAgYWNjZXB0b3JfY3JlZF9zdG9yZS5jb3Vu dCA/ICZhY2NlcHRvcl9jcmVkX3N0b3JlCi0JCQkJCQkJIDogR1NTX0NfTk9fQ1JFRF9TVE9S RSwKLQkJCQkgICAgICZhY2NlcHRvcl9jcmVkLAotCQkJCSAgICAgTlVMTCwKLQkJCQkgICAg IE5VTEwpOwotICAgIGlmIChHU1NfRVJST1IobWFqX3N0YXQpKQotCWVycngoMSwgImdzc19h Y3F1aXJlX2NyZWQoYWNjZXB0b3IpOiAlcyIsCi0JICAgICBnc3NhcGlfZXJyKG1hal9zdGF0 LCBtaW5fc3RhdCwgR1NTX0NfTk9fT0lEKSk7Ci0KICAgICBpZiAoY2xpZW50X3Bhc3N3b3Jk ICYmIChjbGllbnRfY2NhY2hlIHx8IGNsaWVudF9rZXl0YWIpKSB7CiAJZXJyeCgxLCAicGFz c3dvcmQgb3B0aW9uIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGNjYWNoZSBvciBrZXl0YWIg b3B0aW9uIik7CiAgICAgfQotLSAKMi4xNy4xCgoKRnJvbSA2NzMzMWUzNjhlNWI3YTJkZGRl NzA5YTJlYTdiNWFkOThlNzBkMmM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBGcmksIDMwIEF1ZyAy MDE5IDE5OjA3OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2LzddIERPRVMgTk9UIFdPUksK Ci0tLQoga2RjL2tyYjV0Z3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBs aWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMgfCAgIDEgKwogbGliL2tyYjUv cmRfcmVxLmMgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysr KysrKysrLQogdGVzdHMva2RjL2NoZWNrLWtkYy5pbiAgICAgICAgICAgICAgIHwgICA5ICsr KwogNCBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9rZGMva3JiNXRncy5jIGIva2RjL2tyYjV0Z3MuYwppbmRleCAyMzBm NmEyYzlkYi4uZDU3MDg5ZDc3OTQgMTAwNjQ0Ci0tLSBhL2tkYy9rcmI1dGdzLmMKKysrIGIv a2RjL2tyYjV0Z3MuYwpAQCAtNzQyLDcgKzc0Miw3IEBAIGZpeF90cmFuc2l0ZWRfZW5jb2Rp bmcoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCSAgICAgIGNsaWVudF9yZWFsbSwgc2VydmVy X3JlYWxtKTsKIAkgICAgZ290byBmcmVlX3JlYWxtczsKIAl9Ci0JZXQtPmZsYWdzLnRyYW5z aXRlZF9wb2xpY3lfY2hlY2tlZCA9IDE7CisJZXQtPmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lf Y2hlY2tlZCA9IDA7CiAgICAgfQogICAgIGV0LT50cmFuc2l0ZWQudHJfdHlwZSA9IERPTUFJ Tl9YNTAwX0NPTVBSRVNTOwogICAgIHJldCA9IGtyYjVfZG9tYWluX3g1MDBfZW5jb2RlKHJl YWxtcywgbnVtX3JlYWxtcywgJmV0LT50cmFuc2l0ZWQuY29udGVudHMpOwpkaWZmIC0tZ2l0 IGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9r cmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCmluZGV4IDM3Nzg2OTM0ODUwLi45ZDNjOTc4Y2E2 ZSAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCisr KyBiL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtNDI3LDYgKzQy Nyw3IEBAIGdzc2tyYjVfYWNjZXB0b3Jfc3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVz LAogCSAgICB9CiAJfQogCisJCXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllf QVBfUkVRX05PX1RSQU5TSVRFRF9DSEVDSzsKIAlrcmV0ID0ga3JiNV9yZF9yZXFfaW5fY3R4 X2FsbG9jKGNvbnRleHQsICZpbik7CiAJaWYgKGtyZXQgPT0gMCkKIAkgICAga3JldCA9IGty YjVfcmRfcmVxX2luX3NldF9rZXl0YWIoY29udGV4dCwgaW4sIGtleXRhYik7CmRpZmYgLS1n aXQgYS9saWIva3JiNS9yZF9yZXEuYyBiL2xpYi9rcmI1L3JkX3JlcS5jCmluZGV4IDU0MjZk ZDcwMDQwLi5kYzQyMjk2YjM5NCAxMDA2NDQKLS0tIGEvbGliL2tyYjUvcmRfcmVxLmMKKysr IGIvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTE2Nyw2ICsxNjcsOTAgQEAgY2hlY2tfdHJhbnNp dGVkKGtyYjVfY29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0UGFy dCAqZW5jKQogICAgIHJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBrcmI1X2Vycm9yX2NvZGUK K2tyYjVfY2hlY2tfdHJhbnNpdGVkMihrcmI1X2NvbnRleHQgY29udGV4dCwKKwkJICAgICBr cmI1X2NvbnN0X3JlYWxtIGNsaWVudF9yZWFsbSwKKwkJICAgICBrcmI1X2NvbnN0X3JlYWxt IHNlcnZlcl9yZWFsbSwKKwkJICAgICBrcmI1X3JlYWxtICpyZWFsbXMsCisJCSAgICAgdW5z aWduZWQgaW50IG51bV9yZWFsbXMsCisJCSAgICAgaW50ICpiYWRfcmVhbG0pCit7CisgICAg a3JiNV9lcnJvcl9jb2RlIHJldCA9IDA7CisgICAgY2hhciAqKmNhcGF0aCA9IE5VTEw7Cisg ICAgc2l6ZV90IG51bV9jYXBhdGggPSAwOworICAgIHNpemVfdCBpID0gMDsKKyAgICBzaXpl X3QgaiA9IDA7CisKKwkgICAgLy9hYm9ydCgpOworCSAgICBzeXN0ZW0oIi91c3IvYmluL3h0 ZXJtICYiKTsKKwkgICAgc3lzdGVtKCIvYmluL3NsZWVwIDEyMzQ1Njc4OSIpOworCSAgICBr cmI1X3NldF9lcnJvcl9tZXNzYWdlIChjb250ZXh0LCBLUkI1S1JCX0FQX0VSUl9JTExfQ1Jf VEtULAorCQkJCSAgICBOXygibm8gdHJhbnNpdCBhbGxvd2VkIE1FVFpFIiwgIiIpKTsKKwkg ICAgaWYgKGJhZF9yZWFsbSkKKwkJKmJhZF9yZWFsbSA9IDA7CisJICAgIHJldHVybiBLUkI1 S1JCX0FQX0VSUl9JTExfQ1JfVEtUOworICAgIC8qIEluIHRyYW5zaXQgY2hlY2tzIGhpZXJh cmNoaWNhbCBjYXBhdGhzIGFyZSBvcHRpb25hbCAqLworICAgIHJldCA9IF9rcmI1X2ZpbmRf Y2FwYXRoKGNvbnRleHQsIGNsaWVudF9yZWFsbSwgY2xpZW50X3JlYWxtLCBzZXJ2ZXJfcmVh bG0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsICZjYXBhdGgsICZudW1f Y2FwYXRoKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgZm9y IChpID0gMDsgaSA8IG51bV9yZWFsbXM7IGkrKykgeworCWZvciAoaiA9IDA7IGogPCBudW1f Y2FwYXRoOyArK2opIHsKKwkgICAgaWYgKHN0cmNtcChyZWFsbXNbaV0sIGNhcGF0aFtqXSkg PT0gMCkKKwkJYnJlYWs7CisJfQorCWlmIChqID09IG51bV9jYXBhdGgpIHsKKyAgICAgICAg ICAgIF9rcmI1X2ZyZWVfY2FwYXRoKGNvbnRleHQsIGNhcGF0aCk7CisJICAgIGtyYjVfc2V0 X2Vycm9yX21lc3NhZ2UgKGNvbnRleHQsIEtSQjVLUkJfQVBfRVJSX0lMTF9DUl9US1QsCisJ CQkJICAgIE5fKCJubyB0cmFuc2l0IGFsbG93ZWQgIgorCQkJCSAgICAgICAidGhyb3VnaCBy ZWFsbSAlcyBmcm9tICVzIHRvICVzIiwgIiIpLAorCQkJCSAgICAgICByZWFsbXNbaV0sIGNs aWVudF9yZWFsbSwgc2VydmVyX3JlYWxtKTsKKwkgICAgaWYgKGJhZF9yZWFsbSkKKwkJKmJh ZF9yZWFsbSA9IGk7CisJICAgIHJldHVybiBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtUOwor CX0KKyAgICB9CisKKyAgICBfa3JiNV9mcmVlX2NhcGF0aChjb250ZXh0LCBjYXBhdGgpOwor ICAgIHJldHVybiAwOworfQorCitzdGF0aWMga3JiNV9lcnJvcl9jb2RlCitjaGVja190cmFu c2l0ZWQyKGtyYjVfY29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0 UGFydCAqZW5jKQoreworICAgIGNoYXIgKipyZWFsbXM7CisgICAgdW5zaWduZWQgaW50IG51 bV9yZWFsbXMsIG47CisgICAga3JiNV9lcnJvcl9jb2RlIHJldDsKKworICAgIC8qCisgICAg ICogV2luZG93cyAyMDAwIGFuZCAyMDAzIHVzZXMgdGhpcyBpbnNpZGUgdGhlaXIgVEdUIHNv IGl0J3Mgbm9ybWFseQorICAgICAqIG5vdCBzZWVuIGJ5IG90aGVycywgaG93ZXZlciwgc2Ft YmE0IGpvaW5lZCB3aXRoIGEgV2luZG93cyBBRCBhcworICAgICAqIGEgRG9tYWluIENvbnRy b2xsZXIgZ2V0cyBleHBvc2VkIHRvIHRoaXMuCisgICAgICovCisgICAgaWYoZW5jLT50cmFu c2l0ZWQudHJfdHlwZSA9PSAwICYmIGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9 PSAwKQorCXJldHVybiAwOworCisgICAgaWYoZW5jLT50cmFuc2l0ZWQudHJfdHlwZSAhPSBE T01BSU5fWDUwMF9DT01QUkVTUykKKwlyZXR1cm4gS1JCNUtEQ19FUlJfVFJUWVBFX05PU1VQ UDsKKworICAgIGlmKGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9PSAwKQorCXJl dHVybiAwOworCisgICAgcmV0ID0ga3JiNV9kb21haW5feDUwMF9kZWNvZGUoY29udGV4dCwg ZW5jLT50cmFuc2l0ZWQuY29udGVudHMsCisJCQkJICAmcmVhbG1zLCAmbnVtX3JlYWxtcywK KwkJCQkgIGVuYy0+Y3JlYWxtLAorCQkJCSAgdGlja2V0LT5yZWFsbSk7CisgICAgaWYocmV0 KQorCXJldHVybiByZXQ7CisgICAgcmV0ID0ga3JiNV9jaGVja190cmFuc2l0ZWQyKGNvbnRl eHQsIGVuYy0+Y3JlYWxtLAorCQkJICAgICAgIHRpY2tldC0+cmVhbG0sCisJCQkgICAgICAg cmVhbG1zLCBudW1fcmVhbG1zLCBOVUxMKTsKKyAgICBmb3IgKG4gPSAwOyBuIDwgbnVtX3Jl YWxtczsgbisrKQorCWZyZWUocmVhbG1zW25dKTsKKyAgICBmcmVlKHJlYWxtcyk7CisgICAg cmV0dXJuIHJldDsKK30KIHN0YXRpYyBrcmI1X2Vycm9yX2NvZGUKIGZpbmRfZXR5cGVsaXN0 KGtyYjVfY29udGV4dCBjb250ZXh0LAogCSAgICAgICBrcmI1X2F1dGhfY29udGV4dCBhdXRo X2NvbnRleHQsCkBAIC0yMjAsMTMgKzMwNCwyNSBAQCBrcmI1X2RlY3J5cHRfdGlja2V0KGty YjVfY29udGV4dCBjb250ZXh0LAogCSAgICByZXR1cm4gS1JCNUtSQl9BUF9FUlJfVEtUX0VY UElSRUQ7CiAJfQogCi0JaWYoIXQuZmxhZ3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkCi0J ICAgJiYgIShmbGFncyAmIEtSQjVfVkVSSUZZX0FQX1JFUV9OT19UUkFOU0lURURfQ0hFQ0sp KSB7CisJaWYoIXQuZmxhZ3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkKSB7CisKKwkgICAg aWYgKCEoZmxhZ3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkg ewogCSAgICByZXQgPSBjaGVja190cmFuc2l0ZWQoY29udGV4dCwgdGlja2V0LCAmdCk7CiAJ ICAgIGlmKHJldCkgewogCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQpOwogCQlyZXR1cm4gcmV0 OwogCSAgICB9CisJICAgIH0gZWxzZSB7CisJICAgIHJldCA9IGNoZWNrX3RyYW5zaXRlZDIo Y29udGV4dCwgdGlja2V0LCAmdCk7CisJICAgIGlmKHJldCkgeworCQlmcmVlX0VuY1RpY2tl dFBhcnQoJnQpOworCQlyZXR1cm4gcmV0OworCSAgICB9CisJICAgIC8vYWJvcnQoKTsKKwkg ICAgfQorCisJfSBlbHNlIHsKKwkJLy9hYm9ydCgpOwogCX0KICAgICB9CiAKZGlmZiAtLWdp dCBhL3Rlc3RzL2tkYy9jaGVjay1rZGMuaW4gYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCmlu ZGV4IGJlZjkzN2Q3NDg0Li5lMThiNzU1NzYwNSAxMDA2NDQKLS0tIGEvdGVzdHMva2RjL2No ZWNrLWtkYy5pbgorKysgYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCkBAIC05OSw2ICs5OSw4 IEBAIGtkZXN0cm95PSIke2tkZXN0cm95fSAtYyAkY2FjaGUgJHthZnNfbm9fdW5sb2d9Igog a2ltcGVyc29uYXRlPSIke2tpbXBlcnNvbmF0ZX0gLWsgJHtrZXl0YWJ9IC0tY2NhY2hlPSR7 b2NhY2hlfSIKIHRlc3Rfc2V0X2t2bm8wPSIke3Rlc3Rfc2V0X2t2bm8wfSAtYyAkY2FjaGUi CiAKK2NvbnRleHQ9IiR7VEVTVFNfRU5WSVJPTk1FTlR9IC4uLy4uL2xpYi9nc3NhcGkvdGVz dF9jb250ZXh0IgorCiBybSAtZiAke2tleXRhYmZpbGV9CiBybSAtZiBjdXJyZW50LWRiKgog cm0gLWYgb3V0LSoKQEAgLTQwMiw4ICs0MDQsMTUgQEAgZWNobyAiR2V0dGluZyB4LXJlYWxt IHRpY2tldHMgd2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCiAke2tnZXRjcmVkfSBmb29A JHtSN30gfHwgeyBlYz0xIDsgZXZhbCAiJHt0ZXN0ZmFpbGVkfSI7IH0KIGVjaG8gIlNob3Vs ZCBub3QgZ2V0IHgtcmVhbG0gdGlja2V0cyB3aXRoIGNhcGF0aHMgZm9yICRSIC0+ICRSOCIK ICR7a2dldGNyZWR9IGZvb0Ake1I4fSAmJiB7IGVjPTEgOyBldmFsICIke3Rlc3RmYWlsZWR9 IjsgfQorCiske2tsaXN0fSAmJiB7IGV2YWwgIiR0ZXN0ZmFpbGVkIjsgfQorZWNobyAiVGVz dGluZyB4LXJlYWxtIGNvbnRleHQgd2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCiske2Nv bnRleHR9IC0tbWVjaC10eXBlPWtyYjUgZm9vQCR7UjJ9IHx8IHsgZXZhbCAiJHRlc3RmYWls ZWQiOyB9CisKICR7a2Rlc3Ryb3l9CiAKKyMgZ3NzX2FjcXVpcmVfY3JlZF93aXRoX3Bhc3N3 b3JkKCkgbXVzdCBub3QgaGF2ZSBzaWRlLWVmZmVjdHMKKyR7a2xpc3R9ICYmIHsgZXZhbCAi JHRlc3RmYWlsZWQiOyB9CiBlY2hvICJUZXN0aW5nIGNhcGF0aHMgbG9naWMgKHJldmVyc2Ug b3JkZXIpIgogJHtraW5pdH0gLS1wYXNzd29yZC1maWxlPSR7b2JqZGlyfS9mb29wYXNzd29y ZCBcCiAgICAgLWUgJHthZXNlbmN0eXBlfSAtZSAke2Flc2VuY3R5cGV9IFwKLS0gCjIuMTcu MQoKCkZyb20gMzBkMzU3Y2RmZmQwMDNjNjM2ZDU1OGNiYWRmMTVlNDBjODQwODFiOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNh bWJhLm9yZz4KRGF0ZTogVHVlLCAyNCBTZXAgMjAxOSAwMTozMzoxNSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNy83XSBSZXZlcnQgIkRPRVMgTk9UIFdPUksiCgpUaGlzIHJldmVydHMgY29t bWl0IDY3MzMxZTM2OGU1YjdhMmRkZGU3MDlhMmVhN2I1YWQ5OGU3MGQyYzUuCi0tLQoga2Rj L2tyYjV0Z3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBsaWIvZ3NzYXBp L2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMgfCAgIDEgLQogbGliL2tyYjUvcmRfcmVxLmMg ICAgICAgICAgICAgICAgICAgIHwgMTAwICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog dGVzdHMva2RjL2NoZWNrLWtkYy5pbiAgICAgICAgICAgICAgIHwgICA5IC0tLQogNCBmaWxl cyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9rZGMva3JiNXRncy5jIGIva2RjL2tyYjV0Z3MuYwppbmRleCBkNTcwODlkNzc5NC4u MjMwZjZhMmM5ZGIgMTAwNjQ0Ci0tLSBhL2tkYy9rcmI1dGdzLmMKKysrIGIva2RjL2tyYjV0 Z3MuYwpAQCAtNzQyLDcgKzc0Miw3IEBAIGZpeF90cmFuc2l0ZWRfZW5jb2Rpbmcoa3JiNV9j b250ZXh0IGNvbnRleHQsCiAJCSAgICAgIGNsaWVudF9yZWFsbSwgc2VydmVyX3JlYWxtKTsK IAkgICAgZ290byBmcmVlX3JlYWxtczsKIAl9Ci0JZXQtPmZsYWdzLnRyYW5zaXRlZF9wb2xp Y3lfY2hlY2tlZCA9IDA7CisJZXQtPmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZCA9 IDE7CiAgICAgfQogICAgIGV0LT50cmFuc2l0ZWQudHJfdHlwZSA9IERPTUFJTl9YNTAwX0NP TVBSRVNTOwogICAgIHJldCA9IGtyYjVfZG9tYWluX3g1MDBfZW5jb2RlKHJlYWxtcywgbnVt X3JlYWxtcywgJmV0LT50cmFuc2l0ZWQuY29udGVudHMpOwpkaWZmIC0tZ2l0IGEvbGliL2dz c2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9rcmI1L2FjY2Vw dF9zZWNfY29udGV4dC5jCmluZGV4IDlkM2M5NzhjYTZlLi4zNzc4NjkzNDg1MCAxMDA2NDQK LS0tIGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCisrKyBiL2xpYi9n c3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtNDI3LDcgKzQyNyw2IEBAIGdz c2tyYjVfYWNjZXB0b3Jfc3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVzLAogCSAgICB9 CiAJfQogCi0JCXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllfQVBfUkVRX05P X1RSQU5TSVRFRF9DSEVDSzsKIAlrcmV0ID0ga3JiNV9yZF9yZXFfaW5fY3R4X2FsbG9jKGNv bnRleHQsICZpbik7CiAJaWYgKGtyZXQgPT0gMCkKIAkgICAga3JldCA9IGtyYjVfcmRfcmVx X2luX3NldF9rZXl0YWIoY29udGV4dCwgaW4sIGtleXRhYik7CmRpZmYgLS1naXQgYS9saWIv a3JiNS9yZF9yZXEuYyBiL2xpYi9rcmI1L3JkX3JlcS5jCmluZGV4IGRjNDIyOTZiMzk0Li41 NDI2ZGQ3MDA0MCAxMDA2NDQKLS0tIGEvbGliL2tyYjUvcmRfcmVxLmMKKysrIGIvbGliL2ty YjUvcmRfcmVxLmMKQEAgLTE2Nyw5MCArMTY3LDYgQEAgY2hlY2tfdHJhbnNpdGVkKGtyYjVf Y29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0UGFydCAqZW5jKQog ICAgIHJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBrcmI1X2Vycm9yX2NvZGUKLWtyYjVfY2hl Y2tfdHJhbnNpdGVkMihrcmI1X2NvbnRleHQgY29udGV4dCwKLQkJICAgICBrcmI1X2NvbnN0 X3JlYWxtIGNsaWVudF9yZWFsbSwKLQkJICAgICBrcmI1X2NvbnN0X3JlYWxtIHNlcnZlcl9y ZWFsbSwKLQkJICAgICBrcmI1X3JlYWxtICpyZWFsbXMsCi0JCSAgICAgdW5zaWduZWQgaW50 IG51bV9yZWFsbXMsCi0JCSAgICAgaW50ICpiYWRfcmVhbG0pCi17Ci0gICAga3JiNV9lcnJv cl9jb2RlIHJldCA9IDA7Ci0gICAgY2hhciAqKmNhcGF0aCA9IE5VTEw7Ci0gICAgc2l6ZV90 IG51bV9jYXBhdGggPSAwOwotICAgIHNpemVfdCBpID0gMDsKLSAgICBzaXplX3QgaiA9IDA7 Ci0KLQkgICAgLy9hYm9ydCgpOwotCSAgICBzeXN0ZW0oIi91c3IvYmluL3h0ZXJtICYiKTsK LQkgICAgc3lzdGVtKCIvYmluL3NsZWVwIDEyMzQ1Njc4OSIpOwotCSAgICBrcmI1X3NldF9l cnJvcl9tZXNzYWdlIChjb250ZXh0LCBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtULAotCQkJ CSAgICBOXygibm8gdHJhbnNpdCBhbGxvd2VkIE1FVFpFIiwgIiIpKTsKLQkgICAgaWYgKGJh ZF9yZWFsbSkKLQkJKmJhZF9yZWFsbSA9IDA7Ci0JICAgIHJldHVybiBLUkI1S1JCX0FQX0VS Ul9JTExfQ1JfVEtUOwotICAgIC8qIEluIHRyYW5zaXQgY2hlY2tzIGhpZXJhcmNoaWNhbCBj YXBhdGhzIGFyZSBvcHRpb25hbCAqLwotICAgIHJldCA9IF9rcmI1X2ZpbmRfY2FwYXRoKGNv bnRleHQsIGNsaWVudF9yZWFsbSwgY2xpZW50X3JlYWxtLCBzZXJ2ZXJfcmVhbG0sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsICZjYXBhdGgsICZudW1fY2FwYXRoKTsK LSAgICBpZiAocmV0KQotICAgICAgICByZXR1cm4gcmV0OwotCi0gICAgZm9yIChpID0gMDsg aSA8IG51bV9yZWFsbXM7IGkrKykgewotCWZvciAoaiA9IDA7IGogPCBudW1fY2FwYXRoOyAr K2opIHsKLQkgICAgaWYgKHN0cmNtcChyZWFsbXNbaV0sIGNhcGF0aFtqXSkgPT0gMCkKLQkJ YnJlYWs7Ci0JfQotCWlmIChqID09IG51bV9jYXBhdGgpIHsKLSAgICAgICAgICAgIF9rcmI1 X2ZyZWVfY2FwYXRoKGNvbnRleHQsIGNhcGF0aCk7Ci0JICAgIGtyYjVfc2V0X2Vycm9yX21l c3NhZ2UgKGNvbnRleHQsIEtSQjVLUkJfQVBfRVJSX0lMTF9DUl9US1QsCi0JCQkJICAgIE5f KCJubyB0cmFuc2l0IGFsbG93ZWQgIgotCQkJCSAgICAgICAidGhyb3VnaCByZWFsbSAlcyBm cm9tICVzIHRvICVzIiwgIiIpLAotCQkJCSAgICAgICByZWFsbXNbaV0sIGNsaWVudF9yZWFs bSwgc2VydmVyX3JlYWxtKTsKLQkgICAgaWYgKGJhZF9yZWFsbSkKLQkJKmJhZF9yZWFsbSA9 IGk7Ci0JICAgIHJldHVybiBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtUOwotCX0KLSAgICB9 Ci0KLSAgICBfa3JiNV9mcmVlX2NhcGF0aChjb250ZXh0LCBjYXBhdGgpOwotICAgIHJldHVy biAwOwotfQotCi1zdGF0aWMga3JiNV9lcnJvcl9jb2RlCi1jaGVja190cmFuc2l0ZWQyKGty YjVfY29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0UGFydCAqZW5j KQotewotICAgIGNoYXIgKipyZWFsbXM7Ci0gICAgdW5zaWduZWQgaW50IG51bV9yZWFsbXMs IG47Ci0gICAga3JiNV9lcnJvcl9jb2RlIHJldDsKLQotICAgIC8qCi0gICAgICogV2luZG93 cyAyMDAwIGFuZCAyMDAzIHVzZXMgdGhpcyBpbnNpZGUgdGhlaXIgVEdUIHNvIGl0J3Mgbm9y bWFseQotICAgICAqIG5vdCBzZWVuIGJ5IG90aGVycywgaG93ZXZlciwgc2FtYmE0IGpvaW5l ZCB3aXRoIGEgV2luZG93cyBBRCBhcwotICAgICAqIGEgRG9tYWluIENvbnRyb2xsZXIgZ2V0 cyBleHBvc2VkIHRvIHRoaXMuCi0gICAgICovCi0gICAgaWYoZW5jLT50cmFuc2l0ZWQudHJf dHlwZSA9PSAwICYmIGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9PSAwKQotCXJl dHVybiAwOwotCi0gICAgaWYoZW5jLT50cmFuc2l0ZWQudHJfdHlwZSAhPSBET01BSU5fWDUw MF9DT01QUkVTUykKLQlyZXR1cm4gS1JCNUtEQ19FUlJfVFJUWVBFX05PU1VQUDsKLQotICAg IGlmKGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9PSAwKQotCXJldHVybiAwOwot Ci0gICAgcmV0ID0ga3JiNV9kb21haW5feDUwMF9kZWNvZGUoY29udGV4dCwgZW5jLT50cmFu c2l0ZWQuY29udGVudHMsCi0JCQkJICAmcmVhbG1zLCAmbnVtX3JlYWxtcywKLQkJCQkgIGVu Yy0+Y3JlYWxtLAotCQkJCSAgdGlja2V0LT5yZWFsbSk7Ci0gICAgaWYocmV0KQotCXJldHVy biByZXQ7Ci0gICAgcmV0ID0ga3JiNV9jaGVja190cmFuc2l0ZWQyKGNvbnRleHQsIGVuYy0+ Y3JlYWxtLAotCQkJICAgICAgIHRpY2tldC0+cmVhbG0sCi0JCQkgICAgICAgcmVhbG1zLCBu dW1fcmVhbG1zLCBOVUxMKTsKLSAgICBmb3IgKG4gPSAwOyBuIDwgbnVtX3JlYWxtczsgbisr KQotCWZyZWUocmVhbG1zW25dKTsKLSAgICBmcmVlKHJlYWxtcyk7Ci0gICAgcmV0dXJuIHJl dDsKLX0KIHN0YXRpYyBrcmI1X2Vycm9yX2NvZGUKIGZpbmRfZXR5cGVsaXN0KGtyYjVfY29u dGV4dCBjb250ZXh0LAogCSAgICAgICBrcmI1X2F1dGhfY29udGV4dCBhdXRoX2NvbnRleHQs CkBAIC0zMDQsMjUgKzIyMCwxMyBAQCBrcmI1X2RlY3J5cHRfdGlja2V0KGtyYjVfY29udGV4 dCBjb250ZXh0LAogCSAgICByZXR1cm4gS1JCNUtSQl9BUF9FUlJfVEtUX0VYUElSRUQ7CiAJ fQogCi0JaWYoIXQuZmxhZ3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkKSB7Ci0KLQkgICAg aWYgKCEoZmxhZ3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkg eworCWlmKCF0LmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZAorCSAgICYmICEoZmxh Z3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkgewogCSAgICBy ZXQgPSBjaGVja190cmFuc2l0ZWQoY29udGV4dCwgdGlja2V0LCAmdCk7CiAJICAgIGlmKHJl dCkgewogCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQpOwogCQlyZXR1cm4gcmV0OwogCSAgICB9 Ci0JICAgIH0gZWxzZSB7Ci0JICAgIHJldCA9IGNoZWNrX3RyYW5zaXRlZDIoY29udGV4dCwg dGlja2V0LCAmdCk7Ci0JICAgIGlmKHJldCkgewotCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQp OwotCQlyZXR1cm4gcmV0OwotCSAgICB9Ci0JICAgIC8vYWJvcnQoKTsKLQkgICAgfQotCi0J fSBlbHNlIHsKLQkJLy9hYm9ydCgpOwogCX0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3Rlc3Rz L2tkYy9jaGVjay1rZGMuaW4gYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCmluZGV4IGUxOGI3 NTU3NjA1Li5iZWY5MzdkNzQ4NCAxMDA2NDQKLS0tIGEvdGVzdHMva2RjL2NoZWNrLWtkYy5p bgorKysgYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCkBAIC05OSw4ICs5OSw2IEBAIGtkZXN0 cm95PSIke2tkZXN0cm95fSAtYyAkY2FjaGUgJHthZnNfbm9fdW5sb2d9Igoga2ltcGVyc29u YXRlPSIke2tpbXBlcnNvbmF0ZX0gLWsgJHtrZXl0YWJ9IC0tY2NhY2hlPSR7b2NhY2hlfSIK IHRlc3Rfc2V0X2t2bm8wPSIke3Rlc3Rfc2V0X2t2bm8wfSAtYyAkY2FjaGUiCiAKLWNvbnRl eHQ9IiR7VEVTVFNfRU5WSVJPTk1FTlR9IC4uLy4uL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0 IgotCiBybSAtZiAke2tleXRhYmZpbGV9CiBybSAtZiBjdXJyZW50LWRiKgogcm0gLWYgb3V0 LSoKQEAgLTQwNCwxNSArNDAyLDggQEAgZWNobyAiR2V0dGluZyB4LXJlYWxtIHRpY2tldHMg d2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCiAke2tnZXRjcmVkfSBmb29AJHtSN30gfHwg eyBlYz0xIDsgZXZhbCAiJHt0ZXN0ZmFpbGVkfSI7IH0KIGVjaG8gIlNob3VsZCBub3QgZ2V0 IHgtcmVhbG0gdGlja2V0cyB3aXRoIGNhcGF0aHMgZm9yICRSIC0+ICRSOCIKICR7a2dldGNy ZWR9IGZvb0Ake1I4fSAmJiB7IGVjPTEgOyBldmFsICIke3Rlc3RmYWlsZWR9IjsgfQotCi0k e2tsaXN0fSAmJiB7IGV2YWwgIiR0ZXN0ZmFpbGVkIjsgfQotZWNobyAiVGVzdGluZyB4LXJl YWxtIGNvbnRleHQgd2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCi0ke2NvbnRleHR9IC0t bWVjaC10eXBlPWtyYjUgZm9vQCR7UjJ9IHx8IHsgZXZhbCAiJHRlc3RmYWlsZWQiOyB9Ci0K ICR7a2Rlc3Ryb3l9CiAKLSMgZ3NzX2FjcXVpcmVfY3JlZF93aXRoX3Bhc3N3b3JkKCkgbXVz dCBub3QgaGF2ZSBzaWRlLWVmZmVjdHMKLSR7a2xpc3R9ICYmIHsgZXZhbCAiJHRlc3RmYWls ZWQiOyB9CiBlY2hvICJUZXN0aW5nIGNhcGF0aHMgbG9naWMgKHJldmVyc2Ugb3JkZXIpIgog JHtraW5pdH0gLS1wYXNzd29yZC1maWxlPSR7b2JqZGlyfS9mb29wYXNzd29yZCBcCiAgICAg LWUgJHthZXNlbmN0eXBlfSAtZSAke2Flc2VuY3R5cGV9IFwKLS0gCjIuMTcuMQoK --------------DD547EFD1C077ADE310AA0E0 Content-Type: text/plain; charset=UTF-8; name="mit-krb5-no_transit_check-01.patches.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mit-krb5-no_transit_check-01.patches.txt" RnJvbSBiYmEzYjAyYjMwNTAzY2FhNzBjOWUwMzg5MGE2ZTMwZDUxYzZlNjYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu b3JnPgpEYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE3OjA0OjA2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxLzZdIGxpYi9rcmI1OiByZXdvcmsgW2tyYjVfXXJkX3JlcV9kZWNvZGVkX29wdCgp IHRvIGJlIG1vcmUKIGZsZXhpYmxlCgpUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb250cm9s IHRoZSBiZWhhdmlvciB3aXRob3V0IGFkZGluZwphIG5ldyB3cmFwcGVyIGZ1bmN0aW9uIGVh Y2ggdGltZS4KCkknbGwgYWRkIGEgS1JCNV9SRF9SRVFfTk9fVFJBTlNJVF9DSEVDSyBmbGFn IGFuZCBsZXQgZ3NzX2FjY2VwdF9zZWNfY29udGV4dCgpCnVzZSBrcmI1X3JkX3JlcV9kZWNv ZGVkX29wdCgpIGluIHRoZSBmb2xsb3dpbmcgY29tbWl0cy4KCkJVRzogaHR0cHM6Ly9idWd6 aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5OiBT dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNyYy9pbmNsdWRlL2s1 LWludC5oICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysKIHNyYy9saWIva3JiNS9rcmIv cmRfcmVxX2RlYy5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0K IHNyYy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMgIHwgIDEgKwogc3JjL2xpYi9rcmI1XzMy LmRlZiAgICAgICAgICAgfCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMo KyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2s1LWludC5o IGIvc3JjL2luY2x1ZGUvazUtaW50LmgKaW5kZXggNzdkN2FiY2UxLi5kOWIyY2RiYWYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2s1LWludC5oCisrKyBiL3NyYy9pbmNsdWRlL2s1LWlu dC5oCkBAIC0yMTIxLDYgKzIxMjEsMjEgQEAga3JiNV9lcnJvcl9jb2RlIEtSQjVfQ0FMTENP TlYga3JiNV9nZXRfZGVmYXVsdF9jb25maWdfZmlsZXMoY2hhciAqKipmaWxlbmFtZXMpOwog CiB2b2lkIEtSQjVfQ0FMTENPTlYga3JiNV9mcmVlX2NvbmZpZ19maWxlcyhjaGFyICoqZmls ZW5hbWVzKTsKIAorI2RlZmluZSBLUkI1X1JEX1JFUV9DSEVDS19WQUxJRF9GTEFHICgxIDw8 IDApCisKKyNkZWZpbmUgX0tSQjVfUkRfUkVRX1ZBTElEX0ZMQUdTICggXAorCUtSQjVfUkRf UkVRX0NIRUNLX1ZBTElEX0ZMQUcgfCBcCisJMCkKKwora3JiNV9lcnJvcl9jb2RlIGtyYjVf cmRfcmVxX2RlY29kZWRfb3B0KGtyYjVfY29udGV4dCBjb250ZXh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfYXV0aF9jb250ZXh0ICphdXRoX2Nv bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg a3JiNV9hcF9yZXEgKnJlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAga3JiNV9rZXl0YWIga2V5dGFiLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfZmxhZ3MgKmFwX3JlcV9vcHRpb25z LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfdGlja2V0 ICoqdGlja2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBvcHRfZmxhZ3MpOworCiBrcmI1X2Vycm9yX2NvZGUga3JiNV9yZF9yZXFf ZGVjb2RlZChrcmI1X2NvbnRleHQsIGtyYjVfYXV0aF9jb250ZXh0ICosCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2FwX3JlcSAqLCBrcmI1X2Nv bnN0X3ByaW5jaXBhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGty YjVfa2V5dGFiLCBrcmI1X2ZsYWdzICosIGtyYjVfdGlja2V0ICoqKTsKZGlmZiAtLWdpdCBh L3NyYy9saWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jIGIvc3JjL2xpYi9rcmI1L2tyYi9yZF9y ZXFfZGVjLmMKaW5kZXggNzJiYzhmZTk3Li5iYTRkNzQ1NzIgMTAwNjQ0Ci0tLSBhL3NyYy9s aWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jCisrKyBiL3NyYy9saWIva3JiNS9rcmIvcmRfcmVx X2RlYy5jCkBAIC00NDEsMTEgKzQ0MSwxNSBAQCBkZWNyeXB0X3RpY2tldChrcmI1X2NvbnRl eHQgY29udGV4dCwgY29uc3Qga3JiNV9hcF9yZXEgKnJlcSwKICNlbmRpZiAvKiBMRUFOX0NM SUVOVCAqLwogfQogCi1zdGF0aWMga3JiNV9lcnJvcl9jb2RlCi1yZF9yZXFfZGVjb2RlZF9v cHQoa3JiNV9jb250ZXh0IGNvbnRleHQsIGtyYjVfYXV0aF9jb250ZXh0ICphdXRoX2NvbnRl eHQsCi0gICAgICAgICAgICAgICAgICAgY29uc3Qga3JiNV9hcF9yZXEgKnJlcSwga3JiNV9j b25zdF9wcmluY2lwYWwgc2VydmVyLAotICAgICAgICAgICAgICAgICAgIGtyYjVfa2V5dGFi IGtleXRhYiwga3JiNV9mbGFncyAqYXBfcmVxX29wdGlvbnMsCi0gICAgICAgICAgICAgICAg ICAga3JiNV90aWNrZXQgKip0aWNrZXQsIGludCBjaGVja192YWxpZF9mbGFnKQora3JiNV9l cnJvcl9jb2RlCitrcmI1X3JkX3JlcV9kZWNvZGVkX29wdChrcmI1X2NvbnRleHQgY29udGV4 dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfYXV0aF9jb250ZXh0ICphdXRoX2Nv bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2FwX3JlcSAqcmVx LAorICAgICAgICAgICAgICAgICAgICAgICAga3JiNV9jb25zdF9wcmluY2lwYWwgc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAga3JiNV9rZXl0YWIga2V5dGFiLAorICAgICAg ICAgICAgICAgICAgICAgICAga3JiNV9mbGFncyAqYXBfcmVxX29wdGlvbnMsCisgICAgICAg ICAgICAgICAgICAgICAgICBrcmI1X3RpY2tldCAqKnRpY2tldCwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBvcHRfZmxhZ3MpCiB7CiAgICAga3JiNV9lcnJvcl9j b2RlICAgICAgIHJldHZhbCA9IDA7CiAgICAga3JiNV9lbmN0eXBlICAgICAgICAgKmRlc2ly ZWRfZXR5cGVzID0gTlVMTDsKQEAgLTQ1NCw2ICs0NTgsMTUgQEAgcmRfcmVxX2RlY29kZWRf b3B0KGtyYjVfY29udGV4dCBjb250ZXh0LCBrcmI1X2F1dGhfY29udGV4dCAqYXV0aF9jb250 ZXh0LAogICAgIGtyYjVfZW5jdHlwZSAgICAgICAgICpwZXJtaXR0ZWRfZXR5cGVzID0gTlVM TDsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgcGVybWl0dGVkX2V0eXBlc19sZW4gPSAw OwogICAgIGtyYjVfa2V5YmxvY2sgICAgICAgICBkZWNyeXB0X2tleTsKKyAgICBpbnQgICAg ICAgICAgICAgICAgICAgY2hlY2tfdmFsaWRfZmxhZyA9IDA7CisKKyAgICBpZiAob3B0X2Zs YWdzICYgfl9LUkI1X1JEX1JFUV9WQUxJRF9GTEFHUykgeworICAgICAgICByZXR1cm4gRUlO VkFMOworICAgIH0KKworICAgIGlmIChvcHRfZmxhZ3MgJiBLUkI1X1JEX1JFUV9DSEVDS19W QUxJRF9GTEFHKSB7CisgICAgICAgIGNoZWNrX3ZhbGlkX2ZsYWcgPSAxOworICAgIH0KIAog ICAgIGRlY3J5cHRfa2V5LmVuY3R5cGUgPSBFTkNUWVBFX05VTEw7CiAgICAgZGVjcnlwdF9r ZXkuY29udGVudHMgPSBOVUxMOwpAQCAtNzYyLDEwICs3NzUsMTAgQEAga3JiNV9yZF9yZXFf ZGVjb2RlZChrcmI1X2NvbnRleHQgY29udGV4dCwga3JiNV9hdXRoX2NvbnRleHQgKmF1dGhf Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAga3JiNV90aWNrZXQgKip0aWNrZXQpCiB7 CiAgICAga3JiNV9lcnJvcl9jb2RlIHJldHZhbDsKLSAgICByZXR2YWwgPSByZF9yZXFfZGVj b2RlZF9vcHQoY29udGV4dCwgYXV0aF9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXEsIHNlcnZlciwga2V5dGFiLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcF9yZXFfb3B0aW9ucywgdGlja2V0LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxKTsgLyogY2hlY2tfdmFsaWRfZmxhZyAqLworICAgIHJldHZhbCA9 IGtyYjVfcmRfcmVxX2RlY29kZWRfb3B0KGNvbnRleHQsIGF1dGhfY29udGV4dCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEsIHNlcnZlciwga2V5dGFiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX3JlcV9vcHRpb25zLCB0 aWNrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1JCNV9SRF9S RVFfQ0hFQ0tfVkFMSURfRkxBRyk7CiAgICAgcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtNzc3 LDEwICs3OTAsMTAgQEAga3JiNV9yZF9yZXFfZGVjb2RlZF9hbnlmbGFnKGtyYjVfY29udGV4 dCBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfZmxhZ3MgKmFw X3JlcV9vcHRpb25zLCBrcmI1X3RpY2tldCAqKnRpY2tldCkKIHsKICAgICBrcmI1X2Vycm9y X2NvZGUgcmV0dmFsOwotICAgIHJldHZhbCA9IHJkX3JlcV9kZWNvZGVkX29wdChjb250ZXh0 LCBhdXRoX2NvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcSwg c2VydmVyLCBrZXl0YWIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX3Jl cV9vcHRpb25zLCB0aWNrZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAp OyAvKiBkb24ndCBjaGVja192YWxpZF9mbGFnICovCisgICAgcmV0dmFsID0ga3JiNV9yZF9y ZXFfZGVjb2RlZF9vcHQoY29udGV4dCwgYXV0aF9jb250ZXh0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlcSwgc2VydmVyLCBrZXl0YWIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBfcmVxX29wdGlvbnMsIHRpY2tldCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsgLyogZG9uJ3QgY2hlY2tf dmFsaWRfZmxhZyAqLwogICAgIHJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMgYi9zcmMvbGliL2tyYjUvbGlia3JiNS5leHBv cnRzCmluZGV4IDU1ZTI2MzU0NS4uOTJiZDRhYzZlIDEwMDY0NAotLS0gYS9zcmMvbGliL2ty YjUvbGlia3JiNS5leHBvcnRzCisrKyBiL3NyYy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMK QEAgLTUxNiw2ICs1MTYsNyBAQCBrcmI1X3JkX3JlcF9kY2UKIGtyYjVfcmRfcmVxCiBrcmI1 X3JkX3JlcV9kZWNvZGVkCiBrcmI1X3JkX3JlcV9kZWNvZGVkX2FueWZsYWcKK2tyYjVfcmRf cmVxX2RlY29kZWRfb3B0CiBrcmI1X3JkX3NhZmUKIGtyYjVfcmVhZF9tZXNzYWdlCiBrcmI1 X3JlYWRfcGFzc3dvcmQKZGlmZiAtLWdpdCBhL3NyYy9saWIva3JiNV8zMi5kZWYgYi9zcmMv bGliL2tyYjVfMzIuZGVmCmluZGV4IGMzMjdjZWIxNS4uMmNlN2RkMGY5IDEwMDY0NAotLS0g YS9zcmMvbGliL2tyYjVfMzIuZGVmCisrKyBiL3NyYy9saWIva3JiNV8zMi5kZWYKQEAgLTQ4 OSwzICs0ODksNCBAQCBFWFBPUlRTCiA7IG5ldyBpbiAxLjE4CiAJa3JiNWludF9jX2RlcHJl Y2F0ZWRfZW5jdHlwZQkJCUA0NTAgOyBQUklWQVRFCiAJa3JiNV9wYWNfZ2V0X2NsaWVudF9p bmZvCQkJQDQ1MQorCWtyYjVfcmRfcmVxX2RlY29kZWRfb3B0CQkJCUA0NTIgOyBQUklWQVRF IEdTU0FQSQotLSAKMi4xNy4xCgoKRnJvbSBiNTNhZDAyMjBmZTUwNTIyYTNiMDZmMDVlYjll ZDU0YWU4OTM1YzVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0 em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE3OjEw OjIzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIGxpYi9rcmI1OiBhZGQgS1JCNV9SRF9S RVFfTk9fVFJBTlNJVF9DSEVDSyB0bwoga3JiNV9dcmRfcmVxX2RlY29kZWRfb3B0KCkKClRo aXMgd2lsbCBhbGxvdyBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCB0byBiZSBp bXBsZW1lbnRlZCBpbgp0aGUgbmV4dCBjb21taXRzLgoKQlVHOiBodHRwczovL2J1Z3ppbGxh LnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZh biBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc3JjL2luY2x1ZGUvazUtaW50 LmggICAgICAgICAgfCAyICsrCiBzcmMvbGliL2tyYjUva3JiL3JkX3JlcV9kZWMuYyB8IDIg Ky0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvazUtaW50LmggYi9zcmMvaW5jbHVkZS9rNS1pbnQu aAppbmRleCBkOWIyY2RiYWYuLmU5NjQ4OTkxNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv azUtaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvazUtaW50LmgKQEAgLTIxMjIsOSArMjEyMiwx MSBAQCBrcmI1X2Vycm9yX2NvZGUgS1JCNV9DQUxMQ09OViBrcmI1X2dldF9kZWZhdWx0X2Nv bmZpZ19maWxlcyhjaGFyICoqKmZpbGVuYW1lcyk7CiB2b2lkIEtSQjVfQ0FMTENPTlYga3Ji NV9mcmVlX2NvbmZpZ19maWxlcyhjaGFyICoqZmlsZW5hbWVzKTsKIAogI2RlZmluZSBLUkI1 X1JEX1JFUV9DSEVDS19WQUxJRF9GTEFHICgxIDw8IDApCisjZGVmaW5lIEtSQjVfUkRfUkVR X05PX1RSQU5TSVRfQ0hFQ0sgKDEgPDwgMSkKIAogI2RlZmluZSBfS1JCNV9SRF9SRVFfVkFM SURfRkxBR1MgKCBcCiAJS1JCNV9SRF9SRVFfQ0hFQ0tfVkFMSURfRkxBRyB8IFwKKwlLUkI1 X1JEX1JFUV9OT19UUkFOU0lUX0NIRUNLIHwgXAogCTApCiAKIGtyYjVfZXJyb3JfY29kZSBr cmI1X3JkX3JlcV9kZWNvZGVkX29wdChrcmI1X2NvbnRleHQgY29udGV4dCwKZGlmZiAtLWdp dCBhL3NyYy9saWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jIGIvc3JjL2xpYi9rcmI1L2tyYi9y ZF9yZXFfZGVjLmMKaW5kZXggYmE0ZDc0NTcyLi45ZjhhYjEwN2YgMTAwNjQ0Ci0tLSBhL3Ny Yy9saWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jCisrKyBiL3NyYy9saWIva3JiNS9rcmIvcmRf cmVxX2RlYy5jCkBAIC01NzQsNyArNTc0LDcgQEAga3JiNV9yZF9yZXFfZGVjb2RlZF9vcHQo a3JiNV9jb250ZXh0IGNvbnRleHQsCiAKICAgICAvKiBIaWVyYXJjaGljYWwgQ3Jvc3MtUmVh bG0gKi8KIAotICAgIHsKKyAgICBpZiAoIShvcHRfZmxhZ3MgJiBLUkI1X1JEX1JFUV9OT19U UkFOU0lUX0NIRUNLKSkgewogICAgICAgICBrcmI1X2RhdGEgICAgICAqIHJlYWxtOwogICAg ICAgICBrcmI1X3RyYW5zaXRlZCAqIHRyYW5zOwogCi0tIAoyLjE3LjEKCgpGcm9tIDQzMDVj N2RkNTJiOTI2NjdlYzUxYzg2ODY3NjU5YTE2ZjI4ZDc5YzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6 IE1vbiwgMjYgQXVnIDIwMTkgMTc6MTE6MzAgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvNl0g bGliL2dzc2FwaS9rcmI1OiBsZXQga2dfYWNjZXB0X2tyYjUoKSB1c2UKIGtyYjVfcmRfcmVx X2RlY29kZWRfb3B0KCkgZGlyZWN0bHkKClRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGltcGxl bWVudCBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCBpbgp0aGUgbmV4dCBjb21t aXQuCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0x MjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9y Zz4KLS0tCiBzcmMvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIHwgNSAr KystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5j IGIvc3JjL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwppbmRleCBjODIx Y2M4MzAuLmYxY2IxOThmYyAxMDA2NDQKLS0tIGEvc3JjL2xpYi9nc3NhcGkva3JiNS9hY2Nl cHRfc2VjX2NvbnRleHQuYworKysgYi9zcmMvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNf Y29udGV4dC5jCkBAIC00NjksNiArNDY5LDcgQEAga2dfYWNjZXB0X2tyYjUobWlub3Jfc3Rh dHVzLCBjb250ZXh0X2hhbmRsZSwKICAgICBrcmI1X2F1dGhkYXRhX2NvbnRleHQgYWRfY29u dGV4dCA9IE5VTEw7CiAgICAga3JiNV9wcmluY2lwYWwgYWNjcHJpbmMgPSBOVUxMOwogICAg IGtyYjVfYXBfcmVxICpyZXF1ZXN0ID0gTlVMTDsKKyAgICB1bnNpZ25lZCBpbnQgb3B0X2Zs YWdzID0gS1JCNV9SRF9SRVFfQ0hFQ0tfVkFMSURfRkxBRzsKIAogICAgIGNvZGUgPSBrcmI1 aW50X2FjY2Vzc29yICgma2FjY2VzcywgS1JCNUlOVF9BQ0NFU1NfVkVSU0lPTik7CiAgICAg aWYgKGNvZGUpIHsKQEAgLTY0MSw4ICs2NDIsOCBAQCBrZ19hY2NlcHRfa3JiNShtaW5vcl9z dGF0dXMsIGNvbnRleHRfaGFuZGxlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgY29kZSA9 IGtyYjVfcmRfcmVxX2RlY29kZWQoY29udGV4dCwgJmF1dGhfY29udGV4dCwgcmVxdWVzdCwg YWNjcHJpbmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlZC0+a2V5dGFi LCAmYXBfcmVxX29wdGlvbnMsIE5VTEwpOworICAgIGNvZGUgPSBrcmI1X3JkX3JlcV9kZWNv ZGVkX29wdChjb250ZXh0LCAmYXV0aF9jb250ZXh0LCByZXF1ZXN0LCBhY2NwcmluYywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlZC0+a2V5dGFiLCAmYXBfcmVx X29wdGlvbnMsIE5VTEwsIG9wdF9mbGFncyk7CiAKICAgICBrcmI1X2ZyZWVfcHJpbmNpcGFs KGNvbnRleHQsIGFjY3ByaW5jKTsKICAgICBpZiAoY29kZSkgewotLSAKMi4xNy4xCgoKRnJv bSAwNjFmYTI5ZDFhZDU5YjdmNTU2ZTQ1ODZiY2I2MGM0ZGE3N2NjM2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3Jn PgpEYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE3OjEyOjU2ICswMjAwClN1YmplY3Q6IFtQQVRD SCA0LzZdIFRPRE86IGhlaW1hbCBtYXN0ZXIgZmlyc3QgbGliL2dzc2FwaS9rcmI1OiBpbXBs ZW1lbnQKIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YCgpUaGUgdHJ1c3QgdG9w b2xvZ3kgb2YgYWN0aXZlIGRpcmVjdG9yeSBkb21haW5zIGlzIG9ubHkga25vd24KdG8gdGhl IFtLXURDcy4gRG9tYWluIG1lbWJlcnMganVzdCByZWx5IG9uIHRoZWlyIHRydXN0IHRvCnRo ZWlyIHByaW1hcnkgZG9tYWluLiBBcyBsb25nIGFzIHRoZSBLREMgZ2VuZXJhdGVkIGEgdmFs aWQKc2VydmljZSB0aWNrZXQgaXQgc2hvdWxkIGJlIGFjY2VwdGVkLiBGdXJ0aGVyIHZlcmlm aWNhdGlvbgppcyBkb25lIGJ5IGNoZWNraW5nIHRoZSBzaWduZWQgUEFDIGFuZCB1c2UgaXRz IGNvbnRlbnQKdG8gY29uc3RydWN0IGFuIGF1dGhvcml6YXRpb24gdG9rZW4uCgpTYW1iYSB3 aWxsIHVzZSBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCBhbmQgcmVxdWlyZQph IHZlcmlmaWVkIFBBQy4gVGhpcyBhdm9pZHMgaGF2aW5nIGEgY29ycmVjdGx5IGNvbmZpZ3Vy ZWQKW2NhcGF0aHNdIHNlY3Rpb24gaW4gdGhlIGtyYjUuY29uZi4KCkJVRzogaHR0cHM6Ly9i dWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNyYy9saWIvZ3Nz YXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMgfCAgNCArKysrCiBzcmMvbGliL2dzc2Fw aS9rcmI1L2FjcXVpcmVfY3JlZC5jICAgICAgIHwgIDEgKwogc3JjL2xpYi9nc3NhcGkva3Ji NS9nc3NhcGlQX2tyYjUuaCAgICAgICB8ICAxICsKIHNyYy9saWIvZ3NzYXBpL2tyYjUvZ3Nz YXBpX2tyYjUuYyAgICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9s aWIvZ3NzYXBpL2tyYjUvZ3NzYXBpX2tyYjUuaCAgICAgICAgfCAxMiArKysrKysrKysrCiBz cmMvbGliL2dzc2FwaS9saWJnc3NhcGlfa3JiNS5leHBvcnRzICAgIHwgIDEgKwogc3JjL2xp Yi9nc3NhcGkzMi5kZWYgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiA3IGZpbGVzIGNo YW5nZWQsIDQ5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9r cmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvc3JjL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRf c2VjX2NvbnRleHQuYwppbmRleCBmMWNiMTk4ZmMuLjM2MjQ4ODRlYyAxMDA2NDQKLS0tIGEv c3JjL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYworKysgYi9zcmMvbGli L2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCkBAIC02NDIsNiArNjQyLDEwIEBA IGtnX2FjY2VwdF9rcmI1KG1pbm9yX3N0YXR1cywgY29udGV4dF9oYW5kbGUsCiAgICAgICAg IH0KICAgICB9CiAKKyAgICBpZiAoY3JlZC0+bm9fdHJhbnNpdF9jaGVjaykgeworICAgICAg ICBvcHRfZmxhZ3MgfD0gS1JCNV9SRF9SRVFfTk9fVFJBTlNJVF9DSEVDSzsKKyAgICB9CisK ICAgICBjb2RlID0ga3JiNV9yZF9yZXFfZGVjb2RlZF9vcHQoY29udGV4dCwgJmF1dGhfY29u dGV4dCwgcmVxdWVzdCwgYWNjcHJpbmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNyZWQtPmtleXRhYiwgJmFwX3JlcV9vcHRpb25zLCBOVUxMLCBvcHRfZmxhZ3Mp OwogCmRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9rcmI1L2FjcXVpcmVfY3JlZC5jIGIv c3JjL2xpYi9nc3NhcGkva3JiNS9hY3F1aXJlX2NyZWQuYwppbmRleCBhY2MxODY4ZjguLjEz NmQwZDQ5YyAxMDA2NDQKLS0tIGEvc3JjL2xpYi9nc3NhcGkva3JiNS9hY3F1aXJlX2NyZWQu YworKysgYi9zcmMvbGliL2dzc2FwaS9rcmI1L2FjcXVpcmVfY3JlZC5jCkBAIC03NzksNiAr Nzc5LDcgQEAgYWNxdWlyZV9jcmVkX2NvbnRleHQoa3JiNV9jb250ZXh0IGNvbnRleHQsIE9N X3VpbnQzMiAqbWlub3Jfc3RhdHVzLAogI2VuZGlmIC8qIExFQU5fQ0xJRU5UICovCiAgICAg Y3JlZC0+ZGVzdHJveV9jY2FjaGUgPSAwOwogICAgIGNyZWQtPnN1cHByZXNzX2NpX2ZsYWdz ID0gMDsKKyAgICBjcmVkLT5ub190cmFuc2l0X2NoZWNrID0gMDsKICAgICBjcmVkLT5jY2Fj aGUgPSBOVUxMOwogCiAgICAgY29kZSA9IGs1X211dGV4X2luaXQoJmNyZWQtPmxvY2spOwpk aWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkva3JiNS9nc3NhcGlQX2tyYjUuaCBiL3NyYy9s aWIvZ3NzYXBpL2tyYjUvZ3NzYXBpUF9rcmI1LmgKaW5kZXggMjY0NzQzNGJhLi4xMDgwN2Nl N2QgMTAwNjQ0Ci0tLSBhL3NyYy9saWIvZ3NzYXBpL2tyYjUvZ3NzYXBpUF9rcmI1LmgKKysr IGIvc3JjL2xpYi9nc3NhcGkva3JiNS9nc3NhcGlQX2tyYjUuaApAQCAtMTc5LDYgKzE3OSw3 IEBAIHR5cGVkZWYgc3RydWN0IF9rcmI1X2dzc19jcmVkX2lkX3JlYyB7CiAgICAgdW5zaWdu ZWQgaW50IGlha2VyYl9tZWNoIDogMTsKICAgICB1bnNpZ25lZCBpbnQgZGVzdHJveV9jY2Fj aGUgOiAxOwogICAgIHVuc2lnbmVkIGludCBzdXBwcmVzc19jaV9mbGFncyA6IDE7CisgICAg dW5zaWduZWQgaW50IG5vX3RyYW5zaXRfY2hlY2sgOiAxOwogCiAgICAgLyoga2V5dGFiIChh Y2NlcHQpIGRhdGEgKi8KICAgICBrcmI1X2tleXRhYiBrZXl0YWI7CmRpZmYgLS1naXQgYS9z cmMvbGliL2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmMgYi9zcmMvbGliL2dzc2FwaS9rcmI1 L2dzc2FwaV9rcmI1LmMKaW5kZXggZjA5Y2RhMDA3Li5lOTEwNzI2MGMgMTAwNjQ0Ci0tLSBh L3NyYy9saWIvZ3NzYXBpL2tyYjUvZ3NzYXBpX2tyYjUuYworKysgYi9zcmMvbGliL2dzc2Fw aS9rcmI1L2dzc2FwaV9rcmI1LmMKQEAgLTEyNCw4ICsxMjQsMTQgQEAKICAqIGV4Y2VwdCB0 aGUgbGFzdCBpbiBlYWNoIHZhbHVlJ3MgZW5jb2RpbmcuCiAgKi8KIAorLyogMS4yLjc1Mi40 My4xMy4yOSAqLwogI2RlZmluZSBOT19DSV9GTEFHU19YX09JRF9MRU5HVEggNgogI2RlZmlu ZSBOT19DSV9GTEFHU19YX09JRCAiXHgyYVx4ODVceDcwXHgyYlx4MGRceDFkIgorCisvKiAx LjIuNzUyLjQzLjEzLjMxICovCisjZGVmaW5lIE5PX1RSQU5TSVRfQ0hFQ0tfWF9PSURfTEVO R1RIIDYKKyNkZWZpbmUgTk9fVFJBTlNJVF9DSEVDS19YX09JRCAiXHgyYVx4ODVceDcwXHgy Ylx4MGRceDFmIgorCiAjZGVmaW5lIEdFVF9DUkVEX0lNUEVSU09OQVRPUl9PSURfTEVOR1RI IDExCiAjZGVmaW5lIEdFVF9DUkVEX0lNUEVSU09OQVRPUl9PSUQgIlx4MmFceDg2XHg0OFx4 ODZceGY3XHgxMlx4MDFceDAyXHgwMlx4MDVceDBlIgogCkBAIC0xNTQsNiArMTYwLDcgQEAg Y29uc3QgZ3NzX09JRF9kZXNjIGtyYjVfZ3NzX29pZF9hcnJheVtdID0gewogICAgIHtHRVRf Q1JFRF9JTVBFUlNPTkFUT1JfT0lEX0xFTkdUSCwgR0VUX0NSRURfSU1QRVJTT05BVE9SX09J RH0sCiAgICAgLyogR1NTX0tSQjVfTlRfRU5URVJQUklTRV9OQU1FICovCiAgICAgezEwLCAi XDA1MlwyMDZcMTEwXDIwNlwzNjdcMDIyXDAwMVwwMDJcMDAyXDAwNiJ9LAorICAgIHtOT19U UkFOU0lUX0NIRUNLX1hfT0lEX0xFTkdUSCwgTk9fVFJBTlNJVF9DSEVDS19YX09JRH0sCiAg ICAgeyAwLCAwIH0KIH07CiAKQEAgLTE3Miw2ICsxNzksNyBAQCBjb25zdCBnc3NfT0lEIEdT U19LUkI1X05UX1BSSU5DSVBBTF9OQU1FICAgICAgICA9ICZrZ19vaWRzWzVdOwogY29uc3Qg Z3NzX09JRCBHU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1ggICAgICAgPSAma2dfb2lkc1s3 XTsKIGNvbnN0IGdzc19PSUQgR1NTX0tSQjVfR0VUX0NSRURfSU1QRVJTT05BVE9SICAgID0g JmtnX29pZHNbOF07CiBjb25zdCBnc3NfT0lEIEdTU19LUkI1X05UX0VOVEVSUFJJU0VfTkFN RSAgICAgICA9ICZrZ19vaWRzWzldOworY29uc3QgZ3NzX09JRCBHU1NfS1JCNV9DUkVEX05P X1RSQU5TSVRfQ0hFQ0tfWCAgPSAma2dfb2lkc1sxMF07CiAKIHN0YXRpYyBjb25zdCBnc3Nf T0lEX3NldF9kZXNjIG9pZHNldHNbXSA9IHsKICAgICB7MSwgJmtnX29pZHNbMF19LCAvKiBS RkMgT0lEICovCkBAIC01MDQsNiArNTEyLDIyIEBAIG5vX2NpX2ZsYWdzKE9NX3VpbnQzMiAq bWlub3Jfc3RhdHVzLAogICAgICptaW5vcl9zdGF0dXMgPSAwOwogICAgIHJldHVybiBHU1Nf U19DT01QTEVURTsKIH0KKworc3RhdGljIE9NX3VpbnQzMgorbm9fdHJhbnNpdF9jaGVjayhP TV91aW50MzIgKm1pbm9yX3N0YXR1cywKKyAgICAgICAgICAgICAgICAgZ3NzX2NyZWRfaWRf dCAqY3JlZF9oYW5kbGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IGdzc19PSUQgZGVzaXJl ZF9vaWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sK KyAgICBrcmI1X2dzc19jcmVkX2lkX3QgY3JlZDsKKworICAgIGNyZWQgPSAoa3JiNV9nc3Nf Y3JlZF9pZF90KSAqY3JlZF9oYW5kbGU7CisgICAgY3JlZC0+bm9fdHJhbnNpdF9jaGVjayA9 IDE7CisKKyAgICAqbWlub3Jfc3RhdHVzID0gMDsKKyAgICByZXR1cm4gR1NTX1NfQ09NUExF VEU7Cit9CisKIC8qCiAgKiBnc3NzcGlfc2V0X2NyZWRfb3B0aW9uKCkgbWV0aG9kcwogICov CkBAIC01MzEsNiArNTU1LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgewogICAgICAgICB7Tk9fQ0lf RkxBR1NfWF9PSURfTEVOR1RILCBOT19DSV9GTEFHU19YX09JRH0sCiAgICAgICAgIG5vX2Np X2ZsYWdzCiAgICAgfSwKKyAgICB7CisgICAgICAgIHtOT19UUkFOU0lUX0NIRUNLX1hfT0lE X0xFTkdUSCwgTk9fVFJBTlNJVF9DSEVDS19YX09JRH0sCisgICAgICAgIG5vX3RyYW5zaXRf Y2hlY2sKKyAgICB9LAogfTsKIAogc3RhdGljIE9NX3VpbnQzMiBLUkI1X0NBTExDT05WCmRp ZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmggYi9zcmMvbGli L2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmgKaW5kZXggODRiNDE1OTIwLi41Y2YxZTU1OTgg MTAwNjQ0Ci0tLSBhL3NyYy9saWIvZ3NzYXBpL2tyYjUvZ3NzYXBpX2tyYjUuaAorKysgYi9z cmMvbGliL2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmgKQEAgLTEwMSw2ICsxMDEsMTggQEAg R1NTX0RMTElNUCBleHRlcm4gY29uc3QgZ3NzX09JRF9kZXNjIGtyYjVfZ3NzX29pZF9hcnJh eVtdOwogICovCiBHU1NfRExMSU1QIGV4dGVybiBjb25zdCBnc3NfT0lEIEdTU19LUkI1X0NS RURfTk9fQ0lfRkxBR1NfWDsKIAorLyoKKyAqCisgKiBUaGlzIE9JRCBjYW4gYmUgdXNlZCB3 aXRoIGdzc19zZXRfY3JlZF9vcHRpb24oKSB0byBzdXBwcmVzcyB0aGUKKyAqIGNoZWNraW5n IG9mIHRoZSB0cmFuc2l0ZWQgcmVhbG0gYXJyYXkuIFR5cGljYWxseSB0aGUgY2FsbGVyCisg KiByZXF1aXJlcyBhIHZlcmlmaWVkIFBBQyBhbmQgZGVsZWdhdGUgdGhlIGNyb3NzLXJlYWxt IHZlcmlmaWNhdGlvbgorICogdG8gdGhlIFtLXURDIG9mIGFuIGFjdGl2ZSBkaXJlY3Rvcnkg ZG9tYWluLgorICoKKyAqIGlzbygxKSBtZW1iZXItYm9keSgyKSBTd2VkZW4oNzUyKSBTdG9j a2hvbG0gVW5pdmVyc2l0eSg0MykgSGVpbWRhbCBHU1MtQVBJCisgKiBFeHRlbnNpb25zKDEz KSBub190cmFuc2l0X2NoZWNrKDMxKQorICovCitHU1NfRExMSU1QIGV4dGVybiBjb25zdCBn c3NfT0lEIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YOworCiAvKgogICogVGhp cyBPSUQgY2FuIGJlIHVzZWQgd2l0aCBnc3NfaW5xdWlyZV9jcmVkX2J5X29pZCgwIHRvIHJl dHJpZXZlIHRoZQogICogaW1wZXJzb25hdG9yIG5hbWUgKGlmIGFueSkuCmRpZmYgLS1naXQg YS9zcmMvbGliL2dzc2FwaS9saWJnc3NhcGlfa3JiNS5leHBvcnRzIGIvc3JjL2xpYi9nc3Nh cGkvbGliZ3NzYXBpX2tyYjUuZXhwb3J0cwppbmRleCBjMjkyY2IxYWYuLmFmMTBiZWNlMSAx MDA2NDQKLS0tIGEvc3JjL2xpYi9nc3NhcGkvbGliZ3NzYXBpX2tyYjUuZXhwb3J0cworKysg Yi9zcmMvbGliL2dzc2FwaS9saWJnc3NhcGlfa3JiNS5leHBvcnRzCkBAIC0xMSw2ICsxMSw3 IEBAIEdTU19DX05UX1VTRVJfTkFNRQogR1NTX0tSQjVfTlRfUFJJTkNJUEFMX05BTUUKIEdT U19LUkI1X05UX0VOVEVSUFJJU0VfTkFNRQogR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19Y CitHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWAogR1NTX0tSQjVfR0VUX0NSRURf SU1QRVJTT05BVE9SCiBHU1NfQ19NQV9NRUNIX0NPTkNSRVRFCiBHU1NfQ19NQV9NRUNIX1BT RVVETwpkaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkzMi5kZWYgYi9zcmMvbGliL2dzc2Fw aTMyLmRlZgppbmRleCBlNmIxNDc5YmIuLjY1ZWIzMmVjNiAxMDA2NDQKLS0tIGEvc3JjL2xp Yi9nc3NhcGkzMi5kZWYKKysrIGIvc3JjL2xpYi9nc3NhcGkzMi5kZWYKQEAgLTE4NywzICsx ODcsNSBAQCBFWFBPUlRTCiAJR1NTX0NfU0VDX0NPTlRFWFRfU0FTTF9TU0YJCQlAMTQ5CURB VEEKIDsgQWRkZWQgaW4gMS4xNwogCUdTU19LUkI1X05UX0VOVEVSUFJJU0VfTkFNRQkJCUAx NTAgCURBVEEKKzsgQWRkZWQgaW4gMS4xOAorCUdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9D SEVDS19YCQlAMTUxCURBVEEKLS0gCjIuMTcuMQoKCkZyb20gZDVlOGU4YTcyNmU5NmM5ODM5 MmRjZGVmZThiZDFmN2NkOTI1YjMwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog U3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogV2VkLCAyOCBBdWcg MjAxOSAxNjowMTo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS82XSBzcmMvdGVzdHMvZ3Nz YXBpOiBhZGQgb3B0aW9uYWwgJ25vX3RyYW5zaXRfY2hlY2snCiBhcmd1bWVudCB0byB0X2Fj Y25hbWUuYwoKVGhpcyB3aWxsIGJlIHVzZWQgdG8gdGVzdCB0aGUgR1NTX0tSQjVfQ1JFRF9O T19UUkFOU0lUX0NIRUNLX1ggY29kZQpwYXRoLgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNh bWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBN ZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc3JjL3Rlc3RzL2dzc2FwaS90X2Fj Y25hbWUuYyB8IDIzICsrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg MjAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVz dHMvZ3NzYXBpL3RfYWNjbmFtZS5jIGIvc3JjL3Rlc3RzL2dzc2FwaS90X2FjY25hbWUuYwpp bmRleCAzMGI1ZGI1NGYuLjFkZDFiNDAzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RzL2dzc2Fw aS90X2FjY25hbWUuYworKysgYi9zcmMvdGVzdHMvZ3NzYXBpL3RfYWNjbmFtZS5jCkBAIC0y NSw2ICsyNSw3IEBACiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5o PgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVkZSAiY29tbW9uLmgiCiAKQEAgLTM3 LDcgKzM4LDcgQEAKICAqIGNhbGwgaXMgdW5zdWNjZXNzZnVsLCBkaXNwbGF5cyBhbiBlcnJv ciBtZXNzYWdlLiAgRXhpdHMgd2l0aCBzdGF0dXMgMCBpZiBhbGwKICAqIG9wZXJhdGlvbnMg YXJlIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgbm90LgogICoKLSAqIFVzYWdlOiAuL3RfYWNjbmFt ZSB0YXJnZXRuYW1lIFthY2NlcHRvcm5hbWVdCisgKiBVc2FnZTogLi90X2FjY25hbWUgdGFy Z2V0bmFtZSBbYWNjZXB0b3JuYW1lXSBbbm9fdHJhbnNpdF9jaGVja10KICAqLwogCiBpbnQK QEAgLTQ4LDkgKzQ5LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBn c3NfbmFtZV90IHRhcmdldF9uYW1lLCBhY2NlcHRvcl9uYW1lID0gR1NTX0NfTk9fTkFNRSwg cmVhbF9hY2NlcHRvcl9uYW1lOwogICAgIGdzc19idWZmZXJfZGVzYyBuYW1lYnVmOwogICAg IGdzc19jdHhfaWRfdCBpbml0aWF0b3JfY29udGV4dCwgYWNjZXB0b3JfY29udGV4dDsKKyAg ICBrcmI1X2Jvb2xlYW4gbm9fdHJhbnNpdF9jaGVjayA9IEZBTFNFOwogCi0gICAgaWYgKGFy Z2MgPCAyIHx8IGFyZ2MgPiAzKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6 ICVzIHRhcmdldG5hbWUgW2FjY2VwdG9ybmFtZV1cbiIsIGFyZ3ZbMF0pOworICAgIGlmIChh cmdjIDwgMiB8fCBhcmdjID4gNCkgewordXNhZ2U6CisgICAgICAgIGZwcmludGYoc3RkZXJy LCAiVXNhZ2U6ICVzIHRhcmdldG5hbWUgW2FjY2VwdG9ybmFtZV0gW25vX3RyYW5zaXRfY2hl Y2tdXG4iLCBhcmd2WzBdKTsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCkBAIC01OCwx MiArNjEsMjYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIHRhcmdldF9u YW1lID0gaW1wb3J0X25hbWUoYXJndlsxXSk7CiAgICAgaWYgKGFyZ2MgPj0gMykKICAgICAg ICAgYWNjZXB0b3JfbmFtZSA9IGltcG9ydF9uYW1lKGFyZ3ZbMl0pOworICAgIGlmIChhcmdj ID49IDQpIHsKKyAgICAgICAgaWYgKHN0cmNtcChhcmd2WzNdLCAibm9fdHJhbnNpdF9jaGVj ayIpICE9IDApIHsKKyAgICAgICAgICAgICBnb3RvIHVzYWdlOworICAgICAgICB9CisgICAg ICAgIG5vX3RyYW5zaXRfY2hlY2sgPSBUUlVFOworICAgIH0KIAogICAgIC8qIEdldCBhY2Nl cHRvciBjcmVkLiAqLwogICAgIG1ham9yID0gZ3NzX2FjcXVpcmVfY3JlZCgmbWlub3IsIGFj Y2VwdG9yX25hbWUsIEdTU19DX0lOREVGSU5JVEUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdTU19DX05PX09JRF9TRVQsIEdTU19DX0FDQ0VQVCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmFjY2VwdG9yX2NyZWQsIE5VTEwsIE5VTEwpOwogICAgIGNoZWNr X2dzc2VycigiZ3NzX2FjcXVpcmVfY3JlZCIsIG1ham9yLCBtaW5vcik7CisgICAgaWYgKG5v X3RyYW5zaXRfY2hlY2spIHsKKyAgICAgICAgZ3NzX2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZl ciA9IEdTU19DX0VNUFRZX0JVRkZFUjsKKworICAgICAgICBtYWpvciA9IGdzc19zZXRfY3Jl ZF9vcHRpb24oJm1pbm9yLCAmYWNjZXB0b3JfY3JlZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChnc3NfT0lEKUdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVD S19YLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVtcHR5X2J1ZmZl cik7CisgICAgICAgIGNoZWNrX2dzc2VycigiZ3NzX3NldF9jcmVkX29wdGlvbihOT19UUkFO U0lUX0NIRUNLX1gpIiwgbWFqb3IsIG1pbm9yKTsKKyAgICB9CiAKICAgICBmbGFncyA9IEdT U19DX1JFUExBWV9GTEFHIHwgR1NTX0NfU0VRVUVOQ0VfRkxBRzsKICAgICBlc3RhYmxpc2hf Y29udGV4dHMoJm1lY2hfa3JiNSwgR1NTX0NfTk9fQ1JFREVOVElBTCwgYWNjZXB0b3JfY3Jl ZCwKLS0gCjIuMTcuMQoKCkZyb20gMmI1ZmJlNWMzMmE3YTIxY2QwYjVkMDMwMTE1NzNlMDg0 M2I5N2I4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNo ZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogV2VkLCAyOCBBdWcgMjAxOSAxNjoxMzowNCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggNi82XSBzcmMvdGVzdHMvZ3NzYXBpOiBhZGQgR1NTX0tS QjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKIHRlc3QgdG8gdF9nc3NhcGkucHkKCkJVRzog aHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWdu ZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNy Yy90ZXN0cy9nc3NhcGkvdF9nc3NhcGkucHkgfCA2OSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3RzL2dzc2FwaS90X2dzc2FwaS5weSBiL3NyYy90ZXN0cy9nc3Nh cGkvdF9nc3NhcGkucHkKaW5kZXggNTRkNWNmNTQ5Li5hODEwYmYwNTkgMTAwNzU1Ci0tLSBh L3NyYy90ZXN0cy9nc3NhcGkvdF9nc3NhcGkucHkKKysrIGIvc3JjL3Rlc3RzL2dzc2FwaS90 X2dzc2FwaS5weQpAQCAtMTE4LDYgKzExOCw3NSBAQCByMS5zdG9wKCkKIHIyLnN0b3AoKQog cjMuc3RvcCgpCiAKKyMKKyMgVGVzdCB0aGUgYmVoYXZpb3Igb2YgR1NTX0tSQjVfQ1JFRF9O T19UUkFOU0lUX0NIRUNLX1gKKyMgRmlyc3Qgd2UgZGVmaW5lIGFsbCBwb3NzaWJsZSBjYXBh dGhzIGV4cGxpY2l0bHkKKyMgYXMgY2FwYXRoc19hbGwuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5 IGRlZmF1bHQuCisjCisjIFRoZW4gd2UgZGVmaW5lIGNhcGF0aHNfYXhfZmlyc3RfaG9wLCB3 aGljaAorIyBoYXMganVzdCB0aGUgZmlyc3QgaG9wcyBmcm9tIEEuWCB0byB0aGUgb3RoZXJz LAorIyB0aGlzIHdpbGwgYWxsb3cgdGhlIGNsaWVudCBjb2RlIHRvIGdldCBhIHNlcnZpY2UK KyMgdGlja2V0IGZvciBhIHNlcnZpY2UgaW4gRC5YLCBidXQgZG9lc24ndCBhbGxvdworIyB0 aGUgYWNjZXB0b3IgcGFydCB0byBwYXNzIHRoZSB0cmFuc2l0ZWQgY2hlY2suCisjCitjYXBh dGhzX2FsbCA9IHsKKyAgJ2NhcGF0aHMnOiB7CisgICAgJ0EuWCc6IHsKKyAgICAgICdELlgn OiBbJ0IuWCcsICdDLlgnXSwKKyAgICAgICdDLlgnOiBbJ0IuWCddLAorICAgICAgJ0IuWCc6 IFsnLiddLAorICAgIH0sCisgICAgJ0IuWCc6IHsKKyAgICAgICdBLlgnOiBbJy4nXSwKKyAg ICAgICdDLlgnOiBbJy4nXSwKKyAgICAgICdELlgnOiBbJ0MuWCddLAorICAgIH0sCisgICAg J0MuWCc6IHsKKyAgICAgICdELlgnOiBbJy4nXSwKKyAgICAgICdCLlgnOiBbJy4nXSwKKyAg ICAgICdBLlgnOiBbJ0IuWCddLAorICAgIH0sCisgICAgJ0QuWCc6IHsKKyAgICAgICdBLlgn OiBbJ0MuWCcsICdCLlgnXSwKKyAgICAgICdCLlgnOiBbJ0MuWCddLAorICAgICAgJ0MuWCc6 IFsnLiddLAorICAgIH0KKyAgfQorfQorY2FwYXRoc19heF9maXJzdF9ob3AgPSB7CisgICdj YXBhdGhzJzogeworICAgICdBLlgnOiB7CisgICAgICAnRC5YJzogWydCLlgnXSwKKyAgICAg ICdDLlgnOiBbJ0IuWCddLAorICAgICAgJ0IuWCc6IFsnLiddLAorICAgIH0sCisgIH0KK30K K3IxYXJncyA9IHsgJ3JlYWxtJzogJ0EuWCcsICdrcmI1X2NvbmYnOiBjYXBhdGhzX2FsbCwg J2NyZWF0ZV91c2VyJzogVHJ1ZSB9CityMmFyZ3MgPSB7ICdyZWFsbSc6ICdCLlgnLCAna3Ji NV9jb25mJzogY2FwYXRoc19hbGwgfQorcjNhcmdzID0geyAncmVhbG0nOiAnQy5YJywgJ2ty YjVfY29uZic6IGNhcGF0aHNfYWxsIH0KK3I0YXJncyA9IHsgJ3JlYWxtJzogJ0QuWCcsICdr cmI1X2NvbmYnOiBjYXBhdGhzX2FsbCwgJ2NyZWF0ZV9ob3N0JzogVHJ1ZSB9CisKK3IxLCBy MiwgcjMsIHI0ID0gY3Jvc3NfcmVhbG1zKDQsIHh0Z3RzPSgoMCwxKSwgKDEsMiksICgyLDMp KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2VyPUZhbHNlLCBj cmVhdGVfaG9zdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9 W3IxYXJncywgcjJhcmdzLCByM2FyZ3MsIHI0YXJnc10pCitvcy5yZW5hbWUocjQua2V5dGFi LCByMS5rZXl0YWIpCisjIFdlIGNyZWF0ZSBhIHNwZWNpYWwgZW52aXJvbm1lbnQgZm9yIHRo ZSBjbGllbnQgb24gQS5YCityMWNsaWVudCA9IHIxLnNwZWNpYWxfZW52KCdjbGllbnQnLCBG YWxzZSwga3JiNV9jb25mPWNhcGF0aHNfYXhfZmlyc3RfaG9wKQorIyBJdCB3aWxsIGdldCBh IHNlcnZpY2UgdGlja2V0LCBidXQgdGhlIGFjY2VwdG9yIGZhaWwgdG8gdmVyaWZ5IHRoZQor IyB0cmFuc2l0ZWQgcGF0aC4KK3IxLnJ1bihbJy4vdF9hY2NuYW1lJywgJ3A6JyArIHI0Lmhv c3RfcHJpbmMsICdoOmhvc3QnXSwKKyAgIGVudj1yMWNsaWVudCwKKyAgIGV4cGVjdGVkX2Nv ZGU9MSwKKyAgIGV4cGVjdGVkX21zZz0nSWxsZWdhbCBjcm9zcy1yZWFsbSB0aWNrZXQnKQor IyBXaXRoIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YIGl0IGJ5cGFzc2VzIHRo ZSBjaGVjaworcjEucnVuKFsnLi90X2FjY25hbWUnLCAncDonICsgcjQuaG9zdF9wcmluYywg J2g6aG9zdCcsICdub190cmFuc2l0X2NoZWNrJ10sCisgICBlbnY9cjFjbGllbnQpCityMS5z dG9wKCkKK3IyLnN0b3AoKQorcjMuc3RvcCgpCityNC5zdG9wKCkKKwogIyMjIFRlc3QgZ3Nz X2lucXVpcmVfY3JlZCBiZWhhdmlvci4KIAogcmVhbG0gPSBLNVJlYWxtKCkKLS0gCjIuMTcu MQoK --------------DD547EFD1C077ADE310AA0E0 Content-Type: text/plain; charset=UTF-8; name="samba-no_transit_check-wip-01.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="samba-no_transit_check-wip-01.txt" RnJvbSA4OGNjNTY3ZjUzMDNkMTY4Zjc3YWJhOTRmZmZkYzg2NjhmYTgzNjNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu b3JnPgpEYXRlOiBUaHUsIDI5IEF1ZyAyMDE5IDE0OjUxOjE0ICswMDAwClN1YmplY3Q6IFtQ QVRDSCAwMS8yNV0gczQ6YXV0aDogcmVxdWlyZSBhIFBBQyBmb3Iga2VyYmVyb3MgYXV0aGVu dGljYXRpb24KCkFzIEFELURDIHRoZXJlJ3MgcmVhbGx5IG5vIHJlYXNvbiB3aHkgd2Ugd2Fu dCB0byBhY2NlcHQgYSBrZXJiZXJvcwp0aWNrZXQgd2l0aG91dCBhIFBBQy4gV2UgZG9uJ3Qg c3VwcG9ydCBNSVQgdHJ1c3RzLgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVy IDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNlNC9hdXRoL250bG0vYXV0aC5jIHwgNDcg KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291 cmNlNC9hdXRoL250bG0vYXV0aC5jIGIvc291cmNlNC9hdXRoL250bG0vYXV0aC5jCmluZGV4 IGVhZDUzMjY3MDVlNi4uNzU5YjVkNjI0ZDMzIDEwMDY0NAotLS0gYS9zb3VyY2U0L2F1dGgv bnRsbS9hdXRoLmMKKysrIGIvc291cmNlNC9hdXRoL250bG0vYXV0aC5jCkBAIC04Niw0OCAr ODYsNiBAQCBfUFVCTElDXyBOVFNUQVRVUyBhdXRoX2dldF9jaGFsbGVuZ2Uoc3RydWN0IGF1 dGg0X2NvbnRleHQgKmF1dGhfY3R4LCB1aW50OF90IGNoYQogCXJldHVybiBOVF9TVEFUVVNf T0s7CiB9CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1Vc2VkIGluIHRoZSBnZW5zZWNf Z3NzYXBpIGFuZCBnZW5zZWNfa3JiNSBzZXJ2ZXItc2lkZSBjb2RlLCB3aGVyZSB0aGUKLVBB QyBpc24ndCBhdmFpbGFibGUsIGFuZCBmb3IgdG9rZW5Hcm91cHMgaW4gdGhlIERTREIgc3Rh Y2suCi0KLSBTdXBwbHkgZWl0aGVyIGEgcHJpbmNpcGFsIG9yIGEgRE4KLSoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCi1zdGF0aWMgTlRTVEFUVVMgYXV0aF9nZW5lcmF0ZV9zZXNzaW9uX2lu Zm9fcHJpbmNpcGFsKHN0cnVjdCBhdXRoNF9jb250ZXh0ICphdXRoX2N0eCwKLQkJCQkJCSAg VEFMTE9DX0NUWCAqbWVtX2N0eCwKLQkJCQkJCSAgY29uc3QgY2hhciAqcHJpbmNpcGFsLAot CQkJCQkJICBzdHJ1Y3QgbGRiX2RuICp1c2VyX2RuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzZXNzaW9uX2luZm9fZmxh Z3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBhdXRoX3Nlc3Npb25faW5mbyAqKnNlc3Npb25faW5mbykKLXsKLQlOVFNUQVRV UyBudF9zdGF0dXM7Ci0Jc3RydWN0IGF1dGhfbWV0aG9kX2NvbnRleHQgKm1ldGhvZDsKLQlz dHJ1Y3QgYXV0aF91c2VyX2luZm9fZGMgKnVzZXJfaW5mb19kYzsKLQotCWZvciAobWV0aG9k ID0gYXV0aF9jdHgtPm1ldGhvZHM7IG1ldGhvZDsgbWV0aG9kID0gbWV0aG9kLT5uZXh0KSB7 Ci0JCWlmICghbWV0aG9kLT5vcHMtPmdldF91c2VyX2luZm9fZGNfcHJpbmNpcGFsKSB7Ci0J CQljb250aW51ZTsKLQkJfQotCi0JCW50X3N0YXR1cyA9IG1ldGhvZC0+b3BzLT5nZXRfdXNl cl9pbmZvX2RjX3ByaW5jaXBhbChtZW1fY3R4LCBhdXRoX2N0eCwgcHJpbmNpcGFsLCB1c2Vy X2RuLCAmdXNlcl9pbmZvX2RjKTsKLQkJaWYgKE5UX1NUQVRVU19FUVVBTChudF9zdGF0dXMs IE5UX1NUQVRVU19OT1RfSU1QTEVNRU5URUQpKSB7Ci0JCQljb250aW51ZTsKLQkJfQotCQlp ZiAoIU5UX1NUQVRVU19JU19PSyhudF9zdGF0dXMpKSB7Ci0JCQlyZXR1cm4gbnRfc3RhdHVz OwotCQl9Ci0KLQkJbnRfc3RhdHVzID0gYXV0aF9nZW5lcmF0ZV9zZXNzaW9uX2luZm9fd3Jh cHBlcihhdXRoX2N0eCwgbWVtX2N0eCwgCi0JCQkJCQkJICAgICAgIHVzZXJfaW5mb19kYywK LQkJCQkJCQkgICAgICAgdXNlcl9pbmZvX2RjLT5pbmZvLT5hY2NvdW50X25hbWUsCi0JCQkJ CQkJICAgICAgIHNlc3Npb25faW5mb19mbGFncywgc2Vzc2lvbl9pbmZvKTsKLQkJdGFsbG9j X2ZyZWUodXNlcl9pbmZvX2RjKTsKLQotCQlyZXR1cm4gbnRfc3RhdHVzOwotCX0KLQotCXJl dHVybiBOVF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEOwotfQotCiAvKioKICAqIENoZWNrIGEg dXNlcidzIFBsYWludGV4dCwgTE0gb3IgTlRMTSBwYXNzd29yZC4KICAqIChzeW5jIHZlcnNp b24pCkBAIC02NTcsOCArNjE1LDkgQEAgc3RhdGljIE5UU1RBVFVTIGF1dGhfZ2VuZXJhdGVf c2Vzc2lvbl9pbmZvX3BhYyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0aF9jdHgsCiAJVEFM TE9DX0NUWCAqdG1wX2N0eDsKIAogCWlmICghcGFjX2Jsb2IpIHsKLQkJcmV0dXJuIGF1dGhf Z2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3ByaW5jaXBhbChhdXRoX2N0eCwgbWVtX2N0eCwgcHJp bmNpcGFsX25hbWUsCi0JCQkJCQkgICAgICAgTlVMTCwgc2Vzc2lvbl9pbmZvX2ZsYWdzLCBz ZXNzaW9uX2luZm8pOworCQlEQkdfV0FSTklORygiTm8gUEFDIGF2YWlsYWJsZSBmb3IgcHJp bmNpcGFsX25hbWVbJXNdXG4iLAorCQkJICAgIHByaW5jaXBhbF9uYW1lKTsKKwkJcmV0dXJu IE5UX1NUQVRVU19OT19JTVBFUlNPTkFUSU9OX1RPS0VOOwogCX0KIAogCXRtcF9jdHggPSB0 YWxsb2NfbmFtZWQobWVtX2N0eCwgMCwgImdlbnNlY19nc3NhcGlfc2Vzc2lvbl9pbmZvIGNv bnRleHQiKTsKLS0gCjIuMTcuMQoKCkZyb20gNDAwMjFiZDA3ZDI4ZGI5YTZjYjBjMTkzNTFh Y2YzNTdmZTEyMTMwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1l dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNDo1 MjoxMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMjVdIHM0OmF1dGg6IHJlbW92ZSB1bnVz ZWQgZ2V0X3VzZXJfaW5mb19kY19wcmluY2lwYWwoKQogYmFja2VuZCBob29rCgpCVUc6IGh0 dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2lnbmVk LW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBzb3Vy Y2U0L2F1dGgvYXV0aC5oICAgICAgICAgIHwgIDYgLS0tLS0tCiBzb3VyY2U0L2F1dGgvbnRs bS9hdXRoX3NhbS5jIHwgMTIgLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTQvYXV0aC9hdXRoLmggYi9zb3VyY2U0 L2F1dGgvYXV0aC5oCmluZGV4IDUxODk1YzkyNTlmMy4uMjk3N2I3NTI0MjZlIDEwMDY0NAot LS0gYS9zb3VyY2U0L2F1dGgvYXV0aC5oCisrKyBiL3NvdXJjZTQvYXV0aC9hdXRoLmgKQEAg LTc0LDEyICs3NCw2IEBAIHN0cnVjdCBhdXRoX29wZXJhdGlvbnMgewogCQkJCXN0cnVjdCBh dXRoX3VzZXJfaW5mb19kYyAqKmludGVyaW1faW5mbywKIAkJCQlib29sICphdXRob3JpdGF0 aXZlKTsKIAotCS8qIExvb2t1cCBhICdzZXNzaW9uIGluZm8gaW50ZXJpbScgcmV0dXJuIGJh c2VkIG9ubHkgb24gdGhlIHByaW5jaXBhbCBvciBETiAqLwotCU5UU1RBVFVTICgqZ2V0X3Vz ZXJfaW5mb19kY19wcmluY2lwYWwpKFRBTExPQ19DVFggKm1lbV9jdHgsCi0JCQkJCQkgICAg ICAgc3RydWN0IGF1dGg0X2NvbnRleHQgKmF1dGhfY29udGV4dCwKLQkJCQkJCSAgICAgICBj b25zdCBjaGFyICpwcmluY2lwYWwsCi0JCQkJCQkgICAgICAgc3RydWN0IGxkYl9kbiAqdXNl cl9kbiwKLQkJCQkJCSAgICAgICBzdHJ1Y3QgYXV0aF91c2VyX2luZm9fZGMgKippbnRlcmlt X2luZm8pOwogCXVpbnQzMl90IGZsYWdzOwogfTsKIApkaWZmIC0tZ2l0IGEvc291cmNlNC9h dXRoL250bG0vYXV0aF9zYW0uYyBiL3NvdXJjZTQvYXV0aC9udGxtL2F1dGhfc2FtLmMKaW5k ZXggZmI4OGNiODdmNjY4Li5hOGM3ZDhiNGI4NTcgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvYXV0 aC9udGxtL2F1dGhfc2FtLmMKKysrIGIvc291cmNlNC9hdXRoL250bG0vYXV0aF9zYW0uYwpA QCAtODU0LDI4ICs4NTQsMTYgQEAgc3RhdGljIE5UU1RBVFVTIGF1dGhzYW1fd2FudF9jaGVj ayhzdHJ1Y3QgYXV0aF9tZXRob2RfY29udGV4dCAqY3R4LAogCXJldHVybiBOVF9TVEFUVVNf T0s7CiB9CiAKLS8qIFdyYXBwZXIgZm9yIHRoZSBhdXRoIHN1YnN5c3RlbSBwb2ludGVyICov Ci1zdGF0aWMgTlRTVEFUVVMgYXV0aHNhbV9nZXRfdXNlcl9pbmZvX2RjX3ByaW5jaXBhbF93 cmFwcGVyKFRBTExPQ19DVFggKm1lbV9jdHgsCi0JCQkJCQkJICBzdHJ1Y3QgYXV0aDRfY29u dGV4dCAqYXV0aF9jb250ZXh0LAotCQkJCQkJCSAgY29uc3QgY2hhciAqcHJpbmNpcGFsLAot CQkJCQkJCSAgc3RydWN0IGxkYl9kbiAqdXNlcl9kbiwKLQkJCQkJCQkgIHN0cnVjdCBhdXRo X3VzZXJfaW5mb19kYyAqKnVzZXJfaW5mb19kYykKLXsKLQlyZXR1cm4gYXV0aHNhbV9nZXRf dXNlcl9pbmZvX2RjX3ByaW5jaXBhbChtZW1fY3R4LCBhdXRoX2NvbnRleHQtPmxwX2N0eCwg YXV0aF9jb250ZXh0LT5zYW1fY3R4LAotCQkJCQkJIHByaW5jaXBhbCwgdXNlcl9kbiwgdXNl cl9pbmZvX2RjKTsKLX0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXV0aF9vcGVyYXRpb25zIHNh bV9pZ25vcmVkb21haW5fb3BzID0gewogCS5uYW1lCQkgICAgICAgICAgID0gInNhbV9pZ25v cmVkb21haW4iLAogCS53YW50X2NoZWNrCSAgICAgICAgICAgPSBhdXRoc2FtX2lnbm9yZWRv bWFpbl93YW50X2NoZWNrLAogCS5jaGVja19wYXNzd29yZAkgICAgICAgICAgID0gYXV0aHNh bV9jaGVja19wYXNzd29yZF9pbnRlcm5hbHMsCi0JLmdldF91c2VyX2luZm9fZGNfcHJpbmNp cGFsID0gYXV0aHNhbV9nZXRfdXNlcl9pbmZvX2RjX3ByaW5jaXBhbF93cmFwcGVyLAogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBhdXRoX29wZXJhdGlvbnMgc2FtX29wcyA9IHsKIAku bmFtZQkJICAgICAgICAgICA9ICJzYW0iLAogCS53YW50X2NoZWNrCSAgICAgICAgICAgPSBh dXRoc2FtX3dhbnRfY2hlY2ssCiAJLmNoZWNrX3Bhc3N3b3JkCSAgICAgICAgICAgPSBhdXRo c2FtX2NoZWNrX3Bhc3N3b3JkX2ludGVybmFscywKLQkuZ2V0X3VzZXJfaW5mb19kY19wcmlu Y2lwYWwgPSBhdXRoc2FtX2dldF91c2VyX2luZm9fZGNfcHJpbmNpcGFsX3dyYXBwZXIsCiB9 OwogCiBfUFVCTElDXyBOVFNUQVRVUyBhdXRoNF9zYW1faW5pdChUQUxMT0NfQ1RYICopOwot LSAKMi4xNy4xCgoKRnJvbSAyNGU2MzcyZWUyZWFhZDM2ZGQ2N2JhZTg5ZGFlZGVlMjZiZjU1 YzY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8 bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDI5IEF1ZyAyMDE5IDE0OjUyOjU0ICswMDAw ClN1YmplY3Q6IFtQQVRDSCAwMy8yNV0gczQ6YXV0aDogcmVtb3ZlIHVudXNlZCBwcm90b3R5 cGUgb2YKIGF1dGhfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3dyYXBwZXIoKQoKQlVHOiBodHRw czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNl NC9hdXRoL250bG0vYXV0aC5jIHwgNyAtLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0L2F1dGgvbnRsbS9hdXRoLmMgYi9zb3Vy Y2U0L2F1dGgvbnRsbS9hdXRoLmMKaW5kZXggNzU5YjVkNjI0ZDMzLi4xMjJhNDBlNGVkZWYg MTAwNjQ0Ci0tLSBhL3NvdXJjZTQvYXV0aC9udGxtL2F1dGguYworKysgYi9zb3VyY2U0L2F1 dGgvbnRsbS9hdXRoLmMKQEAgLTM3LDEzICszNyw2IEBACiAjdW5kZWYgREJHQ19DTEFTUwog I2RlZmluZSBEQkdDX0NMQVNTIERCR0NfQVVUSAogCi1zdGF0aWMgTlRTVEFUVVMgYXV0aF9n ZW5lcmF0ZV9zZXNzaW9uX2luZm9fd3JhcHBlcihzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0 aF9jb250ZXh0LAotCQkJCQkJICAgVEFMTE9DX0NUWCAqbWVtX2N0eCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqc2VydmVyX3Jl dHVybmVkX2luZm8sCi0JCQkJCQkgICBjb25zdCBjaGFyICpvcmlnaW5hbF91c2VyX25hbWUs Ci0JCQkJCQkgICB1aW50MzJfdCBzZXNzaW9uX2luZm9fZmxhZ3MsCi0JCQkJCQkgICBzdHJ1 Y3QgYXV0aF9zZXNzaW9uX2luZm8gKipzZXNzaW9uX2luZm8pOwotCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAgU2V0IGEgZml4ZWQgY2hhbGxlbmdlCiAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCi0tIAoyLjE3LjEKCgpGcm9tIDgzMDU1YjQyNmFiZWQxZWYxZDZmMzJiYWQ2MTM4NjM3 YjJjMzYxODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFj aGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IFdlZCwgMTEgU2VwIDIwMTkgMTY6MTM6MDEg KzAyMDAKU3ViamVjdDogW1BBVENIIDA0LzI1XSBkb2NzLXhtbDogYWRkICJrZXJiZXJvcyBh Y2NlcHRvciByZXF1aXJlIHBhYyIgb3B0aW9uCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2Ft YmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1l dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiAuLi4vc2VjdXJpdHkva2VyYmVyb3Nh Y2NlcHRvcnJlcXVpcmVwYWMueG1sICAgfCAyNyArKysrKysrKysrKysrKysrKysrCiBsaWIv cGFyYW0vbG9hZHBhcm0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzb3Vy Y2UzL3BhcmFtL2xvYWRwYXJtLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAzIGZp bGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Nz LXhtbC9zbWJkb3Rjb25mL3NlY3VyaXR5L2tlcmJlcm9zYWNjZXB0b3JyZXF1aXJlcGFjLnht bAoKZGlmZiAtLWdpdCBhL2RvY3MteG1sL3NtYmRvdGNvbmYvc2VjdXJpdHkva2VyYmVyb3Nh Y2NlcHRvcnJlcXVpcmVwYWMueG1sIGIvZG9jcy14bWwvc21iZG90Y29uZi9zZWN1cml0eS9r ZXJiZXJvc2FjY2VwdG9ycmVxdWlyZXBhYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi42YjIyMWY1ZmRjZmQKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Nz LXhtbC9zbWJkb3Rjb25mL3NlY3VyaXR5L2tlcmJlcm9zYWNjZXB0b3JyZXF1aXJlcGFjLnht bApAQCAtMCwwICsxLDI3IEBACis8c2FtYmE6cGFyYW1ldGVyIG5hbWU9ImtlcmJlcm9zIGFj Y2VwdG9yIHJlcXVpcmUgcGFjIgorICAgICAgICAgICAgICAgICB0eXBlPSJlbnVtIgorICAg ICAgICAgICAgICAgICBlbnVtbGlzdD0iZW51bV9ib29sX2F1dG8iCisgICAgICAgICAgICAg ICAgIGNvbnRleHQ9IkciCisgICAgICAgICAgICAgICAgIGZ1bmN0aW9uPSJfcmVxdWlyZV9w YWMiCisgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQ9IjEiCisgICAgICAgICAgICAgICAg IHhtbG5zOnNhbWJhPSJodHRwOi8vd3d3LnNhbWJhLm9yZy9zYW1iYS9EVEQvc2FtYmEtZG9j Ij4KKzxkZXNjcmlwdGlvbj4KKwk8cGFyYT5UaGUgdHlwaWNhbGwgdXNlIGNhc2UgZm9yIGtl cmJlcm9zIGlzIGJlaW5nIHBhcnQgb2YKKwlhbiBhY3RpdmUgZGlyZWN0b3J5IGRvbWFpbi4g V2hpY2ggbWVhbnMgd2UnbGwgYWx3YXlzCisJZ2V0IGFuIFBBQyAoUHJpdmlsZWdlIEF0dHJp YnV0ZSBDZXJ0aWZpY2F0ZSBEYXRhIFN0cnVjdHVyZSkKKwlhcyBwYXJ0IG9mIHRoZSBzZXJ2 aWNlIHRpY2tldCB3ZSBhY2NlcHQuCisJPC9wYXJhPgorCisJPHBhcmE+SWYgdGhlIHNlcnZl ciBpcyBjb25maWd1cmVkIGFzIGRvbWFpbiBtZW1iZXIgaXQKKwl3aWxsIHJlcXVpcmUgYSB2 YWxpZCBQQUMgdG8gYmUgcHJlc2VudCBieSBkZWZhdWx0LgorCTwvcGFyYT4KKworCTxwYXJh PkZvciBhbGwgY29uZmlndXJhdGlvbnMgZXhjZXB0IG9uIGFuIGFjdGl2ZSBkaXJlY3RvcnkK Kwlkb21haW4gY29udHJvbGxlciBpdCBpcyBwb3NzaWJsZSB0byBkZWFjdGl2YXRlIHRoaXMg cmVxdWlyZW1lbnQKKwlhbmQgZmFsbGJhY2sgdG8gcmVseSBvbiBhIGxvY2FsIHVuaXggdXNl ciB0byBiZSBwcmVzZW50LgorCTwvcGFyYT4KKzwvZGVzY3JpcHRpb24+Cis8dmFsdWUgdHlw ZT0iZGVmYXVsdCI+YXV0bzwvdmFsdWU+Cis8dmFsdWUgdHlwZT0iZXhhbXBsZSI+bm88L3Zh bHVlPgorPHZhbHVlIHR5cGU9ImV4YW1wbGUiPnllczwvdmFsdWU+Cis8L3NhbWJhOnBhcmFt ZXRlcj4KZGlmZiAtLWdpdCBhL2xpYi9wYXJhbS9sb2FkcGFybS5jIGIvbGliL3BhcmFtL2xv YWRwYXJtLmMKaW5kZXggOWE1NzdhYTE4OGM1Li4zNmMzZGI5Njc2MjAgMTAwNjQ0Ci0tLSBh L2xpYi9wYXJhbS9sb2FkcGFybS5jCisrKyBiL2xpYi9wYXJhbS9sb2FkcGFybS5jCkBAIC0z MDIxLDYgKzMwMjEsNyBAQCBzdHJ1Y3QgbG9hZHBhcm1fY29udGV4dCAqbG9hZHBhcm1faW5p dChUQUxMT0NfQ1RYICptZW1fY3R4KQogCWxwY2ZnX2RvX2dsb2JhbF9wYXJhbWV0ZXIobHBf Y3R4LCAic21iMiBsZWFzZXMiLCAieWVzIik7CiAKIAlscGNmZ19kb19nbG9iYWxfcGFyYW1l dGVyKGxwX2N0eCwgImtlcmJlcm9zIGVuY3J5cHRpb24gdHlwZXMiLCAiYWxsIik7CisJbHBj ZmdfZG9fZ2xvYmFsX3BhcmFtZXRlcihscF9jdHgsICJrZXJiZXJvcyBhY2NlcHRvciByZXF1 aXJlIHBhYyIsICJhdXRvIik7CiAKIAlscGNmZ19kb19nbG9iYWxfcGFyYW1ldGVyKGxwX2N0 eCwKIAkJCQkgICJycGMgc2VydmVyIGR5bmFtaWMgcG9ydCByYW5nZSIsCmRpZmYgLS1naXQg YS9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMgYi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMK aW5kZXggYjFhNTIwNTVhZGU3Li42Y2QwOTIzNmJiYjIgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMv cGFyYW0vbG9hZHBhcm0uYworKysgYi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMKQEAgLTY3 Nyw2ICs2NzcsNyBAQCBzdGF0aWMgdm9pZCBpbml0X2dsb2JhbHMoc3RydWN0IGxvYWRwYXJt X2NvbnRleHQgKmxwX2N0eCwgYm9vbCByZWluaXRfZ2xvYmFscykKIAlHbG9iYWxzLm1heF93 aW5zX3R0bCA9IDYwICogNjAgKiAyNCAqIDY7CS8qIDYgZGF5cyBkZWZhdWx0LiAqLwogCUds b2JhbHMubWluX3dpbnNfdHRsID0gNjAgKiA2MCAqIDY7CS8qIDYgaG91cnMgZGVmYXVsdC4g Ki8KIAlHbG9iYWxzLm1hY2hpbmVfcGFzc3dvcmRfdGltZW91dCA9IDYwICogNjAgKiAyNCAq IDc7CS8qIDcgZGF5cyBkZWZhdWx0LiAqLworCUdsb2JhbHMuX3JlcXVpcmVfcGFjID0gQXV0 bzsKIAlHbG9iYWxzLmxtX2Fubm91bmNlID0gQXV0bzsJLyogPSBBdXRvOiBzZW5kIG9ubHkg aWYgTE0gY2xpZW50cyBmb3VuZCAqLwogCUdsb2JhbHMubG1faW50ZXJ2YWwgPSA2MDsKICNp ZiAoZGVmaW5lZChIQVZFX05FVEdST1VQKSAmJiBkZWZpbmVkKFdJVEhfQVVUT01PVU5UKSkK LS0gCjIuMTcuMQoKCkZyb20gNjY1NGI5NWIxM2IyNTE2YzY4NmZiNzIzMDJkZDgxYmY1YTJm YTNiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIg PG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNjo1Mjo0MiArMDAw MApTdWJqZWN0OiBbUEFUQ0ggMDUvMjVdIHMzOnBhcmFtOiBhZGQgbHBfcmVxdWlyZV9wYWMo KQoKVGhpcyBoYW5kbGVzIHRoZSBhdXRvZGV0ZWN0aW9uIGZvcgp0aGUgImtlcmJlcm9zIGFj Y2VwdG9yIHJlcXVpcmUgcGFjIiBvcHRpb24uCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2Ft YmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1l dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBzb3VyY2UzL2luY2x1ZGUvcHJvdG8u aCAgfCAgMSArCiBzb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMgfCAyOCArKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9zb3VyY2UzL2luY2x1ZGUvcHJvdG8uaCBiL3NvdXJjZTMvaW5jbHVkZS9w cm90by5oCmluZGV4IDBkMDJmMzhmYzhiZS4uN2UxMGY1MGZjYThkIDEwMDY0NAotLS0gYS9z b3VyY2UzL2luY2x1ZGUvcHJvdG8uaAorKysgYi9zb3VyY2UzL2luY2x1ZGUvcHJvdG8uaApA QCAtNzQ1LDYgKzc0NSw3IEBAIGJvb2wgbHBfaWRtYXBfZGVmYXVsdF9yYW5nZSh1aW50MzJf dCAqbG93LCB1aW50MzJfdCAqaGlnaCk7CiBjb25zdCBjaGFyICpscF9pZG1hcF9iYWNrZW5k KGNvbnN0IGNoYXIgKmRvbWFpbl9uYW1lKTsKIGNvbnN0IGNoYXIgKmxwX2lkbWFwX2RlZmF1 bHRfYmFja2VuZCAodm9pZCk7CiBpbnQgbHBfc2VjdXJpdHkodm9pZCk7Citib29sIGxwX3Jl cXVpcmVfcGFjKHZvaWQpOwogaW50IGxwX2NsaWVudF9tYXhfcHJvdG9jb2wodm9pZCk7CiBp bnQgbHBfY2xpZW50X2lwY19taW5fcHJvdG9jb2wodm9pZCk7CiBpbnQgbHBfY2xpZW50X2lw Y19tYXhfcHJvdG9jb2wodm9pZCk7CmRpZmYgLS1naXQgYS9zb3VyY2UzL3BhcmFtL2xvYWRw YXJtLmMgYi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMKaW5kZXggNmNkMDkyMzZiYmIyLi4x MTA5ZWNhMzg0YTYgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMvcGFyYW0vbG9hZHBhcm0uYworKysg Yi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMKQEAgLTQ1OTMsNiArNDU5MywzNCBAQCBpbnQg bHBfc2VjdXJpdHkodm9pZCkKIAkJCQlscF9fc2VjdXJpdHkoKSk7CiB9CiAKK2Jvb2wgbHBf cmVxdWlyZV9wYWModm9pZCkKK3sKKwllbnVtIHNlcnZlcl9yb2xlIHJvbGUgPSBscF9zZXJ2 ZXJfcm9sZSgpOworCWludCB2YWwgPSBscF9fcmVxdWlyZV9wYWMoKTsKKworCWlmIChyb2xl ID09IFJPTEVfQUNUSVZFX0RJUkVDVE9SWV9EQykgeworCQlyZXR1cm4gdHJ1ZTsKKwl9CisK KwlpZiAodmFsICE9IEF1dG8pIHsKKwkJcmV0dXJuIHZhbCAhPSAwOworCX0KKworCXN3aXRj aCAocm9sZSkgeworCWNhc2UgUk9MRV9ET01BSU5fTUVNQkVSOgorCQkvKgorCQkgKiBpZiB3 ZSdyZSBwYXJ0IG9mIGEgZG9tYWluIHdlCisJCSAqIHdhbnQgdG8gcmVseSBvbiBhIHZhbGlk IFBBQworCQkgKiBpbiBrZXJiZXJvcyB0aWNrZXRzCisJCSAqLworCQlyZXR1cm4gdHJ1ZTsK KwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIGludCBs cF9jbGllbnRfbWF4X3Byb3RvY29sKHZvaWQpCiB7CiAJaW50IGNsaWVudF9tYXhfcHJvdG9j b2wgPSBscF9fY2xpZW50X21heF9wcm90b2NvbCgpOwotLSAKMi4xNy4xCgoKRnJvbSBkZDUy YTkzMWM0OTA5M2Q1ZWI2NDU2ZjUyYmIyZWQ0MzliNjQyNjE5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRl OiBUaHUsIDI5IEF1ZyAyMDE5IDE1OjM2OjMyICswMDAwClN1YmplY3Q6IFtQQVRDSCAwNi8y NV0gczM6YXV0aDogcmVxdWlyZSBQQUMgb24gYWQgZG9tYWluIG1lbWJlcnMvc2VydmVycwoK QXMgcGFydCBvZiBhbiBhY3RpdmUgZGlyZWN0b3J5IGRvbWFpbiB3ZSdsbCBnZXQKYSBzZXJ2 aWNlIHRpY2tldCBpbmNsdWRpbmcgYSBQQUMuIFdlIHNob3VsZCBlbmZvcmNlCnRoYXQgYW5k IGRvbid0IGRvIGFueSBzdHJhbmdlIGZhbGxiYWNrcyBieSBkZWZhdWx0LgoKQlVHOiBodHRw czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNl My9hdXRoL2F1dGhfZ2VuZXJpYy5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiBzb3Vy Y2UzL2F1dGgvdXNlcl9rcmI1LmMgICAgfCAxNSArKysrKysrKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTMvYXV0aC9h dXRoX2dlbmVyaWMuYyBiL3NvdXJjZTMvYXV0aC9hdXRoX2dlbmVyaWMuYwppbmRleCAxNjdk NGUwMDM2N2YuLjg4YzYyNDhlOGI5ZCAxMDA2NDQKLS0tIGEvc291cmNlMy9hdXRoL2F1dGhf Z2VuZXJpYy5jCisrKyBiL3NvdXJjZTMvYXV0aC9hdXRoX2dlbmVyaWMuYwpAQCAtNTgsNiAr NTgsNyBAQCBzdGF0aWMgTlRTVEFUVVMgYXV0aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3Bh YyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0aF9jdHgsCiAJc3RydWN0IHBhc3N3ZCAqcHc7 CiAJTlRTVEFUVVMgc3RhdHVzOwogCWludCByYzsKKwlib29sIHJlcXVpcmVfcGFjID0gbHBf cmVxdWlyZV9wYWMoKTsKIAogCXRtcF9jdHggPSB0YWxsb2NfbmV3KG1lbV9jdHgpOwogCWlm ICghdG1wX2N0eCkgewpAQCAtMTAwLDYgKzEwMSwxNSBAQCBzdGF0aWMgTlRTVEFUVVMgYXV0 aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3BhYyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0 aF9jdHgsCiAKIAkJc3dpdGNoICh3YmNfZXJyKSB7CiAJCQljYXNlIFdCQ19FUlJfV0lOQklO RF9OT1RfQVZBSUxBQkxFOgorCQkJCWlmIChyZXF1aXJlX3BhYykgeworCQkJCQlzdGF0dXMg PSBOVF9TVEFUVVNfTk9fTE9HT05fU0VSVkVSUzsKKwkJCQkJREJHX0VSUigid2luYmluZGQg bm90IHJ1bm5pbmcgLSAiCisJCQkJCQkiYnV0IHJlcXVpcmVkIGFzIGRvbWFpbiBtZW1iZXI6 ICIKKwkJCQkJCSJwcmluY19uYW1lWyVzXSAlc1xuIiwKKwkJCQkJCXByaW5jX25hbWUsIG50 X2VycnN0cihzdGF0dXMpKTsKKwkJCQkJZ290byBkb25lOworCQkJCX0KKwkJCQkvL0ZBTExf VEhST1VHSDsKIAkJCWNhc2UgV0JDX0VSUl9TVUNDRVNTOgogCQkJCWJyZWFrOwogCQkJY2Fz ZSBXQkNfRVJSX0FVVEhfRVJST1I6CkBAIC0xMTksNiArMTI5LDExIEBAIHN0YXRpYyBOVFNU QVRVUyBhdXRoM19nZW5lcmF0ZV9zZXNzaW9uX2luZm9fcGFjKHN0cnVjdCBhdXRoNF9jb250 ZXh0ICphdXRoX2N0eCwKIAkJaWYgKCFOVF9TVEFUVVNfSVNfT0soc3RhdHVzKSkgewogCQkJ Z290byBkb25lOwogCQl9CisJfSBlbHNlIGlmIChyZXF1aXJlX3BhYykgeworCQlzdGF0dXMg PSBOVF9TVEFUVVNfTk9fSU1QRVJTT05BVElPTl9UT0tFTjsKKwkJREJHX1dBUk5JTkcoIk5v IFBBQyBhdmFpbGFibGUgZm9yIHByaW5jX25hbWVbJXNdICVzXG4iLAorCQkJICAgIHByaW5j X25hbWUsIG50X2VycnN0cihzdGF0dXMpKTsKKwkJZ290byBkb25lOwogCX0KIAogCXJjID0g Z2V0X3JlbW90ZV9ob3N0bmFtZShyZW1vdGVfYWRkcmVzcywKQEAgLTE1Nyw2ICsxNzIsMTIg QEAgc3RhdGljIE5UU1RBVFVTIGF1dGgzX2dlbmVyYXRlX3Nlc3Npb25faW5mb19wYWMoc3Ry dWN0IGF1dGg0X2NvbnRleHQgKmF1dGhfY3R4LAogCQlpZiAoIU5UX1NUQVRVU19JU19PSyhz dGF0dXMpKSB7CiAJCQlnb3RvIGRvbmU7CiAJCX0KKwl9IGVsc2UgaWYgKHJlcXVpcmVfcGFj KSB7CisJCXN0YXR1cyA9IE5UX1NUQVRVU19OT19JTVBFUlNPTkFUSU9OX1RPS0VOOworCQlE QkdfV0FSTklORygiTm8gUEFDIExPR09OX0lORk8gYXZhaWxhYmxlIGZvciAiCisJCQkgICAg InByaW5jX25hbWVbJXNdICVzXG4iLAorCQkJICAgIHByaW5jX25hbWUsIG50X2VycnN0cihz dGF0dXMpKTsKKwkJZ290byBkb25lOwogCX0KIAogCS8qIHNldHVwIHRoZSBzdHJpbmcgdXNl ZCBieSAlVSAqLwpkaWZmIC0tZ2l0IGEvc291cmNlMy9hdXRoL3VzZXJfa3JiNS5jIGIvc291 cmNlMy9hdXRoL3VzZXJfa3JiNS5jCmluZGV4IDg5OThmOWM4ZjhhZS4uY2EzZDM3MTRlNjI0 IDEwMDY0NAotLS0gYS9zb3VyY2UzL2F1dGgvdXNlcl9rcmI1LmMKKysrIGIvc291cmNlMy9h dXRoL3VzZXJfa3JiNS5jCkBAIC0xOTMsOCArMTkzLDE3IEBAIE5UU1RBVFVTIG1ha2Vfc2Vz c2lvbl9pbmZvX2tyYjUoVEFMTE9DX0NUWCAqbWVtX2N0eCwKIHsKIAlOVFNUQVRVUyBzdGF0 dXM7CiAJc3RydWN0IGF1dGhfc2VydmVyc3VwcGxpZWRfaW5mbyAqc2VydmVyX2luZm87CisJ Ym9vbCByZXF1aXJlX3BhYyA9IGxwX3JlcXVpcmVfcGFjKCk7CiAKIAlpZiAobWFwcGVkX3Rv X2d1ZXN0KSB7CisJCWlmIChyZXF1aXJlX3BhYykgeworCQkJc3RhdHVzID0gTlRfU1RBVFVT X0JBRF9UT0tFTl9UWVBFOworCQkJREJHX1dBUk5JTkcoIk1hcHBlZCB0byBndWVzdCBmb3Ig UEFDIHJlcXVpcmVkICIKKwkJCQkgICAgIlslc1xcJXNdICVzXG4iLAorCQkJCSAgICBudGRv bWFpbiwgbnR1c2VyLCBudF9lcnJzdHIoc3RhdHVzKSk7CisJCQlyZXR1cm4gc3RhdHVzOwor CQl9CisKIAkJc3RhdHVzID0gbWFrZV9zZXJ2ZXJfaW5mb19ndWVzdChtZW1fY3R4LCAmc2Vy dmVyX2luZm8pOwogCQlpZiAoIU5UX1NUQVRVU19JU19PSyhzdGF0dXMpKSB7CiAJCQlERUJV RygxLCAoIm1ha2Vfc2VydmVyX2luZm9fZ3Vlc3QgZmFpbGVkOiAlcyFcbiIsCkBAIC0yMTYs NiArMjI1LDEyIEBAIE5UU1RBVFVTIG1ha2Vfc2Vzc2lvbl9pbmZvX2tyYjUoVEFMTE9DX0NU WCAqbWVtX2N0eCwKIAkJCXJldHVybiBzdGF0dXM7CiAJCX0KIAorCX0gZWxzZSBpZiAocmVx dWlyZV9wYWMpIHsKKwkJc3RhdHVzID0gTlRfU1RBVFVTX05PX0lNUEVSU09OQVRJT05fVE9L RU47CisJCURCR19XQVJOSU5HKCJObyBJTkZPMyBhdmFpbGFibGUgZm9yICIKKwkJCSAgICAi WyVzXFwlc10gJXNcbiIsCisJCQkgICAgbnRkb21haW4sIG50dXNlciwgbnRfZXJyc3RyKHN0 YXR1cykpOworCQlyZXR1cm4gc3RhdHVzOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIFdlIGRp ZG4ndCBnZXQgYSBQQUMsIHdlIGhhdmUgdG8gbWFrZSB1cCB0aGUgdXNlcgotLSAKMi4xNy4x CgoKRnJvbSAzYTQ5NTNlZTFlN2JlNDhlZGI1OTg4MmIzYjk1YTVmMDc5YWRhNmExIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2Ft YmEub3JnPgpEYXRlOiBNb24sIDE2IFNlcCAyMDE5IDA2OjU4OjE2ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNy8yNV0gYXV0aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3BhYwogV0JDX0VS Ul9XSU5CSU5EX05PVF9BVkFJTEFCTEU6CgotLS0KIHNvdXJjZTMvYXV0aC9hdXRoX2dlbmVy aWMuYyB8IDE2ICsrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291cmNlMy9hdXRoL2F1dGhf Z2VuZXJpYy5jIGIvc291cmNlMy9hdXRoL2F1dGhfZ2VuZXJpYy5jCmluZGV4IDg4YzYyNDhl OGI5ZC4uNmZkZGFkNTRjZGNiIDEwMDY0NAotLS0gYS9zb3VyY2UzL2F1dGgvYXV0aF9nZW5l cmljLmMKKysrIGIvc291cmNlMy9hdXRoL2F1dGhfZ2VuZXJpYy5jCkBAIC0xMDEsMTQgKzEw MSwxNCBAQCBzdGF0aWMgTlRTVEFUVVMgYXV0aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3Bh YyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0aF9jdHgsCiAKIAkJc3dpdGNoICh3YmNfZXJy KSB7CiAJCQljYXNlIFdCQ19FUlJfV0lOQklORF9OT1RfQVZBSUxBQkxFOgotCQkJCWlmIChy ZXF1aXJlX3BhYykgewotCQkJCQlzdGF0dXMgPSBOVF9TVEFUVVNfTk9fTE9HT05fU0VSVkVS UzsKLQkJCQkJREJHX0VSUigid2luYmluZGQgbm90IHJ1bm5pbmcgLSAiCi0JCQkJCQkiYnV0 IHJlcXVpcmVkIGFzIGRvbWFpbiBtZW1iZXI6ICIKLQkJCQkJCSJwcmluY19uYW1lWyVzXSAl c1xuIiwKLQkJCQkJCXByaW5jX25hbWUsIG50X2VycnN0cihzdGF0dXMpKTsKLQkJCQkJZ290 byBkb25lOwotCQkJCX0KKwkJCQkvL2lmIChyZXF1aXJlX3BhYykgeworCQkJCS8vCXN0YXR1 cyA9IE5UX1NUQVRVU19OT19MT0dPTl9TRVJWRVJTOworCQkJCS8vCURCR19FUlIoIndpbmJp bmRkIG5vdCBydW5uaW5nIC0gIgorCQkJCS8vCQkiYnV0IHJlcXVpcmVkIGFzIGRvbWFpbiBt ZW1iZXI6ICIKKwkJCQkvLwkJInByaW5jX25hbWVbJXNdICVzXG4iLAorCQkJCS8vCQlwcmlu Y19uYW1lLCBudF9lcnJzdHIoc3RhdHVzKSk7CisJCQkJLy8JZ290byBkb25lOworCQkJCS8v fQogCQkJCS8vRkFMTF9USFJPVUdIOwogCQkJY2FzZSBXQkNfRVJSX1NVQ0NFU1M6CiAJCQkJ YnJlYWs7Ci0tIAoyLjE3LjEKCgpGcm9tIGIwZGQ5MWIxMTgwYTY1YjQ4NzY1YzdiNzAzNzE2 MjhiYzk3MzE1NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6 bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IEZyaSwgMTggQXVnIDIwMTcgMTU6MzM6 MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzI1XSBVUFNUUkVBTS1GSVJTVCEhISBIRUlN REFMOmxpYi9rcmI1OiBhZGQKIGtyYjVfcmRfcmVxX2luX3NldF92ZXJpZnlfYXBfcmVxX2Zs YWdzKCkKCkluIHRoZSBuZXh0IGNvbW1pdHMgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHBhc3Mg ZG93bgp0aGluZ3MgbGlrZSBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNL LgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5 MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+ Ci0tLQogc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L3JkX3JlcS5jICAgICAgICAgICB8IDE4 ICsrKysrKysrKysrKysrKystLQogc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L3ZlcnNpb24t c2NyaXB0Lm1hcCB8ICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUv cmRfcmVxLmMgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKaW5kZXggMjFk YWViNTk2YjU1Li43NmQ1Y2FhZGIzMTggMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9s aWIva3JiNS9yZF9yZXEuYworKysgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVx LmMKQEAgLTUxOSw2ICs1MTksNyBAQCBzdHJ1Y3Qga3JiNV9yZF9yZXFfaW5fY3R4X2RhdGEg ewogICAgIGtyYjVfa2V5dGFiIGtleXRhYjsKICAgICBrcmI1X2tleWJsb2NrICprZXlibG9j azsKICAgICBrcmI1X2Jvb2xlYW4gY2hlY2tfcGFjOworICAgIGtyYjVfZmxhZ3MgdmVyaWZ5 X2FwX3JlcV9mbGFnczsKIH07CiAKIHN0cnVjdCBrcmI1X3JkX3JlcV9vdXRfY3R4X2RhdGEg ewpAQCAtNTc3LDYgKzU3OCwxNSBAQCBrcmI1X3JkX3JlcV9pbl9zZXRfa2V5dGFiKGtyYjVf Y29udGV4dCBjb250ZXh0LAogICAgIHJldHVybiAwOwogfQogCitLUkI1X0xJQl9GVU5DVElP TiBrcmI1X2Vycm9yX2NvZGUgS1JCNV9MSUJfQ0FMTAora3JiNV9yZF9yZXFfaW5fc2V0X3Zl cmlmeV9hcF9yZXFfZmxhZ3Moa3JiNV9jb250ZXh0IGNvbnRleHQsCisJCQkgICAgIGtyYjVf cmRfcmVxX2luX2N0eCBpbiwKKwkJCSAgICAga3JiNV9mbGFncyBmbGFncykKK3sKKyAgICBp bi0+dmVyaWZ5X2FwX3JlcV9mbGFncyA9IGZsYWdzOworICAgIHJldHVybiAwOworfQorCiAv KioKICAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRvIGNoZWNrIHRoZSBXaW5k b3dzIFBBQyBvciBub3QKICAqCkBAIC04NTAsNiArODYwLDcgQEAga3JiNV9yZF9yZXFfY3R4 KGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIGtyYjVfcmRfcmVxX291dF9jdHggbyA9IE5V TEw7CiAgICAga3JiNV9rZXl0YWIgaWQgPSBOVUxMLCBrZXl0YWIgPSBOVUxMOwogICAgIGty YjVfcHJpbmNpcGFsIHNlcnZpY2UgPSBOVUxMOworICAgIGtyYjVfZmxhZ3MgdmVyaWZ5X2Fw X3JlcV9mbGFncyA9IDA7CiAKICAgICAqb3V0Y3R4ID0gTlVMTDsKIApAQCAtODkwLDYgKzkw MSw5IEBAIGtyYjVfcmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKICAgICBpZiAo aW5jdHggJiYgaW5jdHgtPmtleXRhYikKIAlpZCA9IGluY3R4LT5rZXl0YWI7CiAKKyAgICBp ZiAoaW5jdHgpCisgICAgICAgIHZlcmlmeV9hcF9yZXFfZmxhZ3MgPSBpbmN0eC0+dmVyaWZ5 X2FwX3JlcV9mbGFnczsKKwogICAgIGlmKCgqYXV0aF9jb250ZXh0KS0+a2V5YmxvY2spewog CXJldCA9IGtyYjVfY29weV9rZXlibG9jayhjb250ZXh0LAogCQkJCSAoKmF1dGhfY29udGV4 dCktPmtleWJsb2NrLApAQCAtOTQ3LDcgKzk2MSw3IEBAIGtyYjVfcmRfcmVxX2N0eChrcmI1 X2NvbnRleHQgY29udGV4dCwKIAkJCQkgICZhcF9yZXEsCiAJCQkJICBzZXJ2ZXIsCiAJCQkJ ICBvLT5rZXlibG9jaywKLQkJCQkgIDAsCisJCQkJICB2ZXJpZnlfYXBfcmVxX2ZsYWdzLAog CQkJCSAgJm8tPmFwX3JlcV9vcHRpb25zLAogCQkJCSAgJm8tPnRpY2tldCwKIAkJCQkgIEtS QjVfS1VfQVBfUkVRX0FVVEgpOwpAQCAtOTk1LDcgKzEwMDksNyBAQCBrcmI1X3JkX3JlcV9j dHgoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCQkJICAgICAgJmFwX3JlcSwKIAkJCQkgICAg ICBzZXJ2ZXIsCiAJCQkJICAgICAgJmVudHJ5LmtleWJsb2NrLAotCQkJCSAgICAgIDAsCisJ CQkJICAgICAgdmVyaWZ5X2FwX3JlcV9mbGFncywKIAkJCQkgICAgICAmby0+YXBfcmVxX29w dGlvbnMsCiAJCQkJICAgICAgJm8tPnRpY2tldCwKIAkJCQkgICAgICBLUkI1X0tVX0FQX1JF UV9BVVRIKTsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS92ZXJzaW9u LXNjcmlwdC5tYXAgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQu bWFwCmluZGV4IGRkYWUyYTA2NzY0NS4uN2I0OWMxNWRmYzBlIDEwMDY0NAotLS0gYS9zb3Vy Y2U0L2hlaW1kYWwvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFwCisrKyBiL3NvdXJjZTQv aGVpbWRhbC9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAKQEAgLTUyOSw2ICs1MjksNyBA QCBIRUlNREFMX0tSQjVfMi4wIHsKIAkJa3JiNV9yZF9yZXFfaW5fc2V0X2tleWJsb2NrOwog CQlrcmI1X3JkX3JlcV9pbl9zZXRfa2V5dGFiOwogCQlrcmI1X3JkX3JlcV9pbl9zZXRfcGFj X2NoZWNrOworCQlrcmI1X3JkX3JlcV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFnczsKIAkJ a3JiNV9yZF9yZXFfb3V0X2N0eF9mcmVlOwogCQlrcmI1X3JkX3JlcV9vdXRfZ2V0X2FwX3Jl cV9vcHRpb25zOwogCQlrcmI1X3JkX3JlcV9vdXRfZ2V0X2tleWJsb2NrOwotLSAKMi4xNy4x CgoKRnJvbSA4NTNmMzczNzgwMGY1YTg0YzFhNjE3MDc1NTIyZmJkNjE3NTljNmQ1IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2Ft YmEub3JnPgpEYXRlOiBGcmksIDE4IEF1ZyAyMDE3IDE1OjMzOjE3ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwOS8yNV0gVVBTVFJFQU0tRklSU1QhISEgSEVJTURBTDpsaWIva3JiNTogYWRk CiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLCgpJbiBhY3RpdmUgZGly ZWN0b3J5IGEgZG9tYWluIG1lbWJlciByZXBsaWVzIG9uICh0cnVzdHMpIHRoZSBbS11EQ3MK b2YgdGhlIGRvbWFpbi4gSXQncyB0aGUgam9iIG9mIHRoZSBbS11EQ3MgdG8gb25seSBnZW5l cmF0ZSB1c2VmdWwKdGlja2V0cyBhcyB0aGV5IGtub3cgYWJvdXQgdGhlIHRydXN0IHRvcG9s b2d5LgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5v cmc+Ci0tLQogc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L2tyYjUuaCAgIHwgMSArCiBzb3Vy Y2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgfCAzICsrLQogMiBmaWxlcyBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0 L2hlaW1kYWwvbGliL2tyYjUva3JiNS5oIGIvc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L2ty YjUuaAppbmRleCA5YzBmNTY2OTQ2NmMuLjAzMTE5ZmE3ODMyMSAxMDA2NDQKLS0tIGEvc291 cmNlNC9oZWltZGFsL2xpYi9rcmI1L2tyYjUuaAorKysgYi9zb3VyY2U0L2hlaW1kYWwvbGli L2tyYjUva3JiNS5oCkBAIC00MjIsNiArNDIyLDcgQEAgdHlwZWRlZiB1bmlvbiB7CiAvKiBm bGFncyBmb3Iga3JiNV92ZXJpZnlfYXBfcmVxICovCiAKICNkZWZpbmUgS1JCNV9WRVJJRllf QVBfUkVRX0lHTk9SRV9JTlZBTElECSgxIDw8IDApCisjZGVmaW5lIEtSQjVfVkVSSUZZX0FQ X1JFUV9OT19UUkFOU0lURURfQ0hFQ0sJKDEgPDwgMSkKIAogI2RlZmluZSBLUkI1X0dDX0NB Q0hFRAkJCSgxVSA8PCAwKQogI2RlZmluZSBLUkI1X0dDX1VTRVJfVVNFUgkJKDFVIDw8IDEp CmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgYi9zb3Vy Y2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKaW5kZXggNzZkNWNhYWRiMzE4Li4xYTFj MzFkOGQ4YmEgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS9yZF9yZXEu YworKysgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTI1Myw3ICsy NTMsOCBAQCBrcmI1X2RlY3J5cHRfdGlja2V0KGtyYjVfY29udGV4dCBjb250ZXh0LAogCSAg ICByZXR1cm4gS1JCNUtSQl9BUF9FUlJfVEtUX0VYUElSRUQ7CiAJfQogCi0JaWYoIXQuZmxh Z3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkKSB7CisJaWYoIXQuZmxhZ3MudHJhbnNpdGVk X3BvbGljeV9jaGVja2VkCisJICAgJiYgIShmbGFncyAmIEtSQjVfVkVSSUZZX0FQX1JFUV9O T19UUkFOU0lURURfQ0hFQ0spKSB7CiAJICAgIHJldCA9IGNoZWNrX3RyYW5zaXRlZChjb250 ZXh0LCB0aWNrZXQsICZ0KTsKIAkgICAgaWYocmV0KSB7CiAJCWZyZWVfRW5jVGlja2V0UGFy dCgmdCk7Ci0tIAoyLjE3LjEKCgpGcm9tIDc1ZjAzMzUxZTZmMjg5YTgxZDU3MGMzYzY5ODkx NjYwNzNhZjIxOGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6 bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IEZyaSwgMTggQXVnIDIwMTcgMTU6MzM6 MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzI1XSBVUFNUUkVBTS1GSVJTVCEhISBIRUlN REFMOmxpYi9nc3NhcGkva3JiNTogYWRkCiBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hF Q0tfWAoKVGhpcyBhbGxvd3MgS1JCNV9HQ19OT19UUkFOU0lUX0NIRUNLIChvbiB0aGUgaW5p dGlhdG9yKSBhbmQKS1JCNV9WRVJJRllfQVBfUkVRX05PX1RSQU5TSVRFRF9DSEVDSyAob24g dGhlIGFjY2VwdG9yKSB0bwpiZSBjb250cm9sbGVkIHZpYSB0aGUgZ3NzYXBpIGxheWVyLgoK QlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcK ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0t LQogLi4uL2hlaW1kYWwvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oICAgIHwgIDMg KysrCiAuLi4vbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jICAgICAgfCAx MSArKysrKysrKy0KIC4uLi9oZWltZGFsL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wu aCAgICB8ICAxICsKIC4uLi9saWIvZ3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jICAg ICAgICB8IDE2ICsrKysrKysrLS0tLS0KIC4uLi9oZWltZGFsL2xpYi9nc3NhcGkva3JiNS9z ZXRfY3JlZF9vcHRpb24uYyB8IDI0ICsrKysrKysrKysrKysrKysrKysKIHNvdXJjZTQvaGVp bWRhbC9saWIvZ3NzYXBpL21lY2gvZ3NzX29pZC5jICAgICB8ICAzICsrKwogc291cmNlNC9o ZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwIHwgIDEgKwogNyBmaWxlcyBj aGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggYi9zb3Vy Y2U0L2hlaW1kYWwvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCmluZGV4IDNkMDBj MDYwZDEwZC4uMGVlZDYzOWQ1M2UxIDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGli L2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIv Z3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmgKQEAgLTk2LDYgKzk2LDkgQEAgZXh0ZXJuIEdT U0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2NfbnRsbV9mb3JjZV92MV9v aWRfZGVzYzsKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVzYyBfX2dz c19rcmI1X2NyZWRfbm9fY2lfZmxhZ3NfeF9vaWRfZGVzYzsKICNkZWZpbmUgR1NTX0tSQjVf Q1JFRF9OT19DSV9GTEFHU19YICgmX19nc3Nfa3JiNV9jcmVkX25vX2NpX2ZsYWdzX3hfb2lk X2Rlc2MpCiAKK2V4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVzYyBfX2dz c19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOworI2RlZmluZSBHU1Nf S1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCAoJl9fZ3NzX2tyYjVfY3JlZF9ub190cmFu c2l0X2NoZWNrX3hfb2lkX2Rlc2MpCisKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdz c19PSURfZGVzYyBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAjZGVmaW5l IEdTU19LUkI1X0lNUE9SVF9DUkVEX1ggKCZfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lk X2Rlc2MpCiAKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUv YWNjZXB0X3NlY19jb250ZXh0LmMgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1 L2FjY2VwdF9zZWNfY29udGV4dC5jCmluZGV4IGNmZTI3YWNlODc1ZS4uMmU0ZWQ1M2JhMDhl IDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9z ZWNfY29udGV4dC5jCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvYWNj ZXB0X3NlY19jb250ZXh0LmMKQEAgLTM5OCwxMyArMzk4LDIyIEBAIGdzc2tyYjVfYWNjZXB0 b3Jfc3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVzLAogCWtyYjVfcmRfcmVxX2luX2N0 eCBpbiA9IE5VTEw7CiAJa3JiNV9yZF9yZXFfb3V0X2N0eCBvdXQgPSBOVUxMOwogCWtyYjVf cHJpbmNpcGFsIHNlcnZlciA9IE5VTEw7CisJa3JiNV9mbGFncyB2ZXJpZnlfYXBfcmVxX2Zs YWdzID0gMDsKIAotCWlmIChhY2NlcHRvcl9jcmVkKQorCWlmIChhY2NlcHRvcl9jcmVkKSB7 CiAJICAgIHNlcnZlciA9IGFjY2VwdG9yX2NyZWQtPnByaW5jaXBhbDsKIAorCSAgICBpZiAo YWNjZXB0b3JfY3JlZC0+Y3JlZF9mbGFncyAmIEdTU19DRl9OT19UUkFOU0lUX0NIRUNLKSB7 CisJCXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllfQVBfUkVRX05PX1RSQU5T SVRFRF9DSEVDSzsKKwkgICAgfQorCX0KKwogCWtyZXQgPSBrcmI1X3JkX3JlcV9pbl9jdHhf YWxsb2MoY29udGV4dCwgJmluKTsKIAlpZiAoa3JldCA9PSAwKQogCSAgICBrcmV0ID0ga3Ji NV9yZF9yZXFfaW5fc2V0X2tleXRhYihjb250ZXh0LCBpbiwga2V5dGFiKTsKKwlpZiAoa3Jl dCA9PSAwKQorCSAgICBrcmV0ID0ga3JiNV9yZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9yZXFf ZmxhZ3MoY29udGV4dCwgaW4sCisJCQkJCQkJICB2ZXJpZnlfYXBfcmVxX2ZsYWdzKTsKIAlp ZiAoa3JldCkgewogCSAgICBpZiAoaW4pCiAJCWtyYjVfcmRfcmVxX2luX2N0eF9mcmVlKGNv bnRleHQsIGluKTsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2ty YjUvZ3Nza3JiNV9sb2NsLmggYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1L2dz c2tyYjVfbG9jbC5oCmluZGV4IDZiOWIwM2YzNDkwOC4uNmExZTk3NzQ1MmNmIDEwMDY0NAot LS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1L2dzc2tyYjVfbG9jbC5oCisr KyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKQEAg LTk0LDYgKzk0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICBpbnQgY3JlZF9mbGFnczsKICNk ZWZpbmUgR1NTX0NGX0RFU1RST1lfQ1JFRF9PTl9SRUxFQVNFCTEKICNkZWZpbmUgR1NTX0NG X05PX0NJX0ZMQUdTCQkyCisjZGVmaW5lIEdTU19DRl9OT19UUkFOU0lUX0NIRUNLCQk0CiAg IHN0cnVjdCBrcmI1X2tleXRhYl9kYXRhICprZXl0YWI7CiAgIE9NX3VpbnQzMiBsaWZldGlt ZTsKICAgZ3NzX2NyZWRfdXNhZ2VfdCB1c2FnZTsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVp bWRhbC9saWIvZ3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jIGIvc291cmNlNC9oZWlt ZGFsL2xpYi9nc3NhcGkva3JiNS9pbml0X3NlY19jb250ZXh0LmMKaW5kZXggMGE4OWFlMWYz NmNmLi4yZjU1ZjI3MDAwYzIgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3Nz YXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIv Z3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jCkBAIC0yMDUsNiArMjA1LDcgQEAgZ3Nz a3JiNV9nZXRfY3JlZHMoCiAgICAgICAgIE9NX3VpbnQzMiAqIG1pbm9yX3N0YXR1cywKIAlr cmI1X2NvbnRleHQgY29udGV4dCwKIAlrcmI1X2NjYWNoZSBjY2FjaGUsCisJa3JiNV9mbGFn cyBvcHRpb25zLAogCWdzc2tyYjVfY3R4IGN0eCwKIAljb25zdCBnc3NfbmFtZV90IHRhcmdl dF9uYW1lLAogCWludCB1c2VfZG5zLApAQCAtMjQ2LDcgKzI0Nyw3IEBAIGdzc2tyYjVfZ2V0 X2NyZWRzKAogICAgIHRoaXNfY3JlZC5zZXNzaW9uLmtleXR5cGUgPSBLRVlUWVBFX05VTEw7 CiAKICAgICBrcmV0ID0ga3JiNV9nZXRfY3JlZGVudGlhbHMoY29udGV4dCwKLQkJCQkwLAor CQkJCW9wdGlvbnMsCiAJCQkJY2NhY2hlLAogCQkJCSZ0aGlzX2NyZWQsCiAJCQkJJmN0eC0+ a2NyZWQpOwpAQCAtMzk3LDYgKzM5OCw3IEBAIGluaXRfYXV0aAogICAgIGtyYjVfZGF0YSBm d2RfZGF0YTsKICAgICBPTV91aW50MzIgbGlmZXRpbWVfcmVjOwogICAgIGludCBhbGxvd19k bnMgPSAxOworICAgIGtyYjVfZmxhZ3Mgb3B0aW9ucyA9IDA7CiAKICAgICBrcmI1X2RhdGFf emVybygmb3V0YnVmKTsKICAgICBrcmI1X2RhdGFfemVybygmZndkX2RhdGEpOwpAQCAtNDE0 LDggKzQxNiwxMiBAQCBpbml0X2F1dGgKIAkgICAgZ290byBmYWlsdXJlOwogCX0KIAljdHgt Pm1vcmVfZmxhZ3MgfD0gQ0xPU0VfQ0NBQ0hFOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7 CiAJY3R4LT5jY2FjaGUgPSBjcmVkLT5jY2FjaGU7CisJaWYgKGNyZWQtPmNyZWRfZmxhZ3Mg JiBHU1NfQ0ZfTk9fVFJBTlNJVF9DSEVDSykgeworCSAgICBvcHRpb25zIHw9IEtSQjVfR0Nf Tk9fVFJBTlNJVF9DSEVDSzsKKwl9CisgICAgfQogCiAgICAga3JldCA9IGtyYjVfY2NfZ2V0 X3ByaW5jaXBhbCAoY29udGV4dCwgY3R4LT5jY2FjaGUsICZjdHgtPnNvdXJjZSk7CiAgICAg aWYgKGtyZXQpIHsKQEAgLTQ1NSwxMiArNDYxLDEwIEBAIGluaXRfYXV0aAogICAgICAqIERO UyBjYW5vbmljYWxpemlvbi4KICAgICAgKi8KICAgICByZXQgPSBnc3NrcmI1X2dldF9jcmVk cyhtaW5vcl9zdGF0dXMsIGNvbnRleHQsIGN0eC0+Y2NhY2hlLAotCQkJICAgIGN0eCwgbmFt ZSwgMCwgdGltZV9yZXEsCi0JCQkgICAgdGltZV9yZWMpOworCQkJICAgIG9wdGlvbnMsIGN0 eCwgbmFtZSwgMCwgdGltZV9yZXEsIHRpbWVfcmVjKTsKICAgICBpZiAocmV0ICYmIGFsbG93 X2RucykKIAlyZXQgPSBnc3NrcmI1X2dldF9jcmVkcyhtaW5vcl9zdGF0dXMsIGNvbnRleHQs IGN0eC0+Y2NhY2hlLAotCQkJCWN0eCwgbmFtZSwgMSwgdGltZV9yZXEsCi0JCQkJdGltZV9y ZWMpOworCQkJCW9wdGlvbnMsIGN0eCwgbmFtZSwgMSwgdGltZV9yZXEsIHRpbWVfcmVjKTsK ICAgICBpZiAocmV0KQogCWdvdG8gZmFpbHVyZTsKIApkaWZmIC0tZ2l0IGEvc291cmNlNC9o ZWltZGFsL2xpYi9nc3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYyBiL3NvdXJjZTQvaGVp bWRhbC9saWIvZ3NzYXBpL2tyYjUvc2V0X2NyZWRfb3B0aW9uLmMKaW5kZXggYmQzODcxNjc1 MTA5Li44ZDlmNDk4ODQ4ODQgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3Nz YXBpL2tyYjUvc2V0X2NyZWRfb3B0aW9uLmMKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9n c3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYwpAQCAtMjE2LDYgKzIxNiwyNiBAQCBub19j aV9mbGFncyhPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKIH0KIAogCitzdGF0aWMgT01fdWlu dDMyCitub190cmFuc2l0X2NoZWNrKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAorCQkga3Ji NV9jb250ZXh0IGNvbnRleHQsCisJCSBnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRsZSwKKwkJ IGNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQgY3JlZDsK KworICAgIGlmIChjcmVkX2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9PSBHU1Nf Q19OT19DUkVERU5USUFMKSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJuIEdTU19T X0ZBSUxVUkU7CisgICAgfQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNyZWRfaGFu ZGxlOworICAgIGNyZWQtPmNyZWRfZmxhZ3MgfD0gR1NTX0NGX05PX1RSQU5TSVRfQ0hFQ0s7 CisKKyAgICAqbWlub3Jfc3RhdHVzID0gMDsKKyAgICByZXR1cm4gR1NTX1NfQ09NUExFVEU7 Cit9CisKIE9NX3VpbnQzMiBHU1NBUElfQ0FMTENPTlYKIF9nc3NrcmI1X3NldF9jcmVkX29w dGlvbgogICAgICAgICAgICAoT01fdWludDMyICptaW5vcl9zdGF0dXMsCkBAIC0yNDMsNiAr MjYzLDEwIEBAIF9nc3NrcmI1X3NldF9jcmVkX29wdGlvbgogICAgIH0KIAogCisgICAgaWYg KGdzc19vaWRfZXF1YWwoZGVzaXJlZF9vYmplY3QsIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJ VF9DSEVDS19YKSkgeworCXJldHVybiBub190cmFuc2l0X2NoZWNrKG1pbm9yX3N0YXR1cywg Y29udGV4dCwgY3JlZF9oYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKICAgICAqbWlub3Jfc3Rh dHVzID0gRUlOVkFMOwogICAgIHJldHVybiBHU1NfU19GQUlMVVJFOwogfQpkaWZmIC0tZ2l0 IGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvbWVjaC9nc3Nfb2lkLmMgYi9zb3VyY2U0 L2hlaW1kYWwvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYwppbmRleCA5MTZkMWU0ZGRhNWUu LjZmODZlZWM2NWMzOSAxMDA2NDQKLS0tIGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkv bWVjaC9nc3Nfb2lkLmMKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvbWVjaC9n c3Nfb2lkLmMKQEAgLTk0LDYgKzk0LDkgQEAgZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFS SUFCTEUgX19nc3Nfa3JiNV9jcmVkX25vX2NpX2ZsYWdzX3hfb2lkX2Rlc2MgPSB7IDYsIHIK IC8qIEdTU19LUkI1X0lNUE9SVF9DUkVEX1ggLSAxLjIuNzUyLjQzLjEzLjMwICovCiBnc3Nf T0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hf b2lkX2Rlc2MgPSB7IDYsIHJrX1VOQ09OU1QoIlx4MmFceDg1XHg3MFx4MmJceDBkXHgxZSIp IH07CiAKKy8qIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YIC0gMS4yLjc1Mi40 My4xMy4zMSAqLworZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3Nfa3Ji NV9jcmVkX25vX3RyYW5zaXRfY2hlY2tfeF9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgi XHgyYVx4ODVceDcwXHgyYlx4MGRceDFmIikgfTsKKwogLyogR1NTX0NfTUFfU0FTTF9NRUNI X05BTUUgLSAxLjIuNzUyLjQzLjEzLjEwMCAqLwogZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJf VkFSSUFCTEUgX19nc3NfY19tYV9zYXNsX21lY2hfbmFtZV9vaWRfZGVzYyA9IHsgNiwgcmtf VU5DT05TVCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDY0IikgfTsKIApkaWZmIC0tZ2l0IGEv c291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwIGIvc291cmNl NC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwCmluZGV4IGJjYjc5YmY4 Zjc2ZS4uNzc2ZmUxOWRiZjNjIDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dz c2FwaS92ZXJzaW9uLXNjcmlwdC5tYXAKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9nc3Nh cGkvdmVyc2lvbi1zY3JpcHQubWFwCkBAIC0xNTQsNiArMTU0LDcgQEAgSEVJTURBTF9HU1Nf Mi4wIHsKIAkJX19nc3NfY19udGxtX3Nlc3Npb25fa2V5X29pZF9kZXNjOwogCQlfX2dzc19j X250bG1fZm9yY2VfdjFfb2lkX2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFn c194X29pZF9kZXNjOworCQlfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29p ZF9kZXNjOwogCQlfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAJCV9fZ3Nz X2NfbWFfc2FzbF9tZWNoX25hbWVfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbWFfbWVjaF9uYW1l X29pZF9kZXNjOwotLSAKMi4xNy4xCgoKRnJvbSBmMjI3NWM1MjhlZjVmNGE1NDgyMzU2ZjU1 MjQ0Y2M4NGU1YWQyNGIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4g TWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBTYXQsIDIwIEp1bCAyMDE5IDEw OjE1OjA0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMS8yNV0gVVBTVFJFQU0tRklSU1QhISEg SEVJTURBTDpsaWIva3JiNTogbGV0CiBrcmI1X3JkX3JlcV9jdHgoKSBmYWxsYmFjayBvbmx5 IG9uIEtSQjVLUkJfQVBfRVJSX0JBRF9JTlRFR1JJVFkKClRoaXMgYXZvaWRzIGhpZGRpbmcg YSByZWFsIGVycm9yIGxpa2UgS1JCNUtSQl9BUF9FUlJfSUxMX0NSX1RLVC4KCldlIG9ubHkg d2FudCB0byByZXRyeSB3aXRoIHRoZSBuZXh0IGtleSBpZiB0aGUgZGVjcnlwdGlvbgpmYWls ZWQuCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0x NDEyNQoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9y Zz4KLS0tCiBzb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgfCA3ICsrKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgYi9zb3VyY2U0L2hl aW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKaW5kZXggMWExYzMxZDhkOGJhLi5hZWY0MmQ4YjRm ZmMgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS9yZF9yZXEuYworKysg Yi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTEwMTQsMTAgKzEwMTQs MTUgQEAga3JiNV9yZF9yZXFfY3R4KGtyYjVfY29udGV4dCBjb250ZXh0LAogCQkJCSAgICAg ICZvLT5hcF9yZXFfb3B0aW9ucywKIAkJCQkgICAgICAmby0+dGlja2V0LAogCQkJCSAgICAg IEtSQjVfS1VfQVBfUkVRX0FVVEgpOwotCSAgICBpZiAocmV0KSB7CisJICAgIGlmIChyZXQg PT0gS1JCNUtSQl9BUF9FUlJfQkFEX0lOVEVHUklUWSkgeworCQkvKiBmYWlsZWQgdG8gZGVj cnlwdCwgdHJ5IHRoZSBuZXh0IGtleSAqLwogCQlrcmI1X2t0X2ZyZWVfZW50cnkgKGNvbnRl eHQsICZlbnRyeSk7CiAJCWNvbnRpbnVlOwogCSAgICB9CisJICAgIGlmIChyZXQpIHsKKwkJ a3JiNV9rdF9mcmVlX2VudHJ5IChjb250ZXh0LCAmZW50cnkpOworCQlnb3RvIG91dDsKKwkg ICAgfQogCiAJICAgIC8qCiAJICAgICAqIEZvdW5kIGEgbWF0Y2gsIHNhdmUgdGhlIGtleWJs b2NrIGZvciBQQUMgcHJvY2Vzc2luZywKLS0gCjIuMTcuMQoKCkZyb20gMmU4YTYyYjI5NzVm ZGQ2ZmM2ZDNhZWU1YWQ5ZjBhMDM3OWQwZWZiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogU2F0LCAy MCBKdWwgMjAxOSAxMDoxNTowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjVdIFVQU1RS RUFNLUZJUlNUISEhIEhFSU1EQUw6bGliL2tyYjU6IGFkZAoga3JiNV9yZF9yZXFfaW5fc2V0 X2l0ZXJhdGVfa2V5dGFiKCkKCkEgY2FsbGVyIG1pZ2h0IG5vdCBrbm93IHRoZSBrdm5vIG1h aW50YWluZWQgYnkgdGhlIEtEQy4KQW5kIG1vc3Qgb2Z0ZW4gdGhlcmUncyBuZWVkIHRvIGtu b3cgaXQuCgpTbyB0aGlzIGZ1bmN0aW9uIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZvcmNlIHRo ZSBrZXl0YWIKaXRlcmF0aW9uIGluIG9yZGVyIHRvIGdldCBhIGNvbnNpc3RlbnQgYmVoYXZp b3IuCk90aGVyd2lzZSBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIGRpZmZlcmVudCBiZWhhdmlv cgppZiB0aGUgZ3Vlc3NlZCBrdm5vIGluIHRoZSBrZXl0YWIgYWNjaWRlbnRhbGx5IG1hdGNo ZXMKdGhlIGt2bm8gb2YgdGhlIHRpY2tldCBhbmQgd2UnbGwgZ2l2ZSB1cCBpZiB0aGUKa2V5 IGlzIG5vdCBhYmxlIHRvIGRlY3J5cHQgdGhlIHRpY2tldC4KCkJVRzogaHR0cHM6Ly9idWd6 aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBT dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNvdXJjZTQvaGVpbWRh bC9saWIva3JiNS9yZF9yZXEuYyAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysr KysKIHNvdXJjZTQvaGVpbWRhbC9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAgfCAgMSAr CiAyIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zb3Vy Y2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2ty YjUvcmRfcmVxLmMKaW5kZXggYWVmNDJkOGI0ZmZjLi40ZWEzY2VlOTU5ZGMgMTAwNjQ0Ci0t LSBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS9yZF9yZXEuYworKysgYi9zb3VyY2U0L2hl aW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTUxOCw2ICs1MTgsNyBAQCBrcmI1X3Zlcmlm eV9hcF9yZXEyKGtyYjVfY29udGV4dCBjb250ZXh0LAogCiBzdHJ1Y3Qga3JiNV9yZF9yZXFf aW5fY3R4X2RhdGEgewogICAgIGtyYjVfa2V5dGFiIGtleXRhYjsKKyAgICBrcmI1X2Jvb2xl YW4gaXRlcmF0ZV9rZXl0YWI7CiAgICAga3JiNV9rZXlibG9jayAqa2V5YmxvY2s7CiAgICAg a3JiNV9ib29sZWFuIGNoZWNrX3BhYzsKICAgICBrcmI1X2ZsYWdzIHZlcmlmeV9hcF9yZXFf ZmxhZ3M7CkBAIC01ODgsNiArNTg5LDI3IEBAIGtyYjVfcmRfcmVxX2luX3NldF92ZXJpZnlf YXBfcmVxX2ZsYWdzKGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIHJldHVybiAwOwogfQog CisvKioKKyAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRvIGl0ZXJhdGUgdGhl IGtleXRhYiB0byBmaW5kIGEga2V5CisgKgorICogQHBhcmFtIGNvbnRleHQgS2ViZXJvcyA1 IGNvbnRleHQuCisgKiBAcGFyYW0gaW4ga3JiNV9yZF9yZXFfaW5fY3R4IHRvIGNoZWNrIHRo ZSBvcHRpb24gb24uCisgKiBAcGFyYW0gZmxhZyBmbGFnIHRvIHNlbGVjdCBpZiB0aGUga2V5 dGFiIHNob3VsZCBiZSBpdGVyYXRlZCAoVFJVRSkgb3Igbm90IChGQUxTRSkuCisgKgorICog QHJldHVybiBLZXJiZXJvcyA1IGVycm9yIGNvZGUsIHNlZSBrcmI1X2dldF9lcnJvcl9tZXNz YWdlKCkuCisgKgorICogQGluZ3JvdXAga3JiNV9hdXRoCisgKi8KKworS1JCNV9MSUJfRlVO Q1RJT04ga3JiNV9lcnJvcl9jb2RlIEtSQjVfTElCX0NBTEwKK2tyYjVfcmRfcmVxX2luX3Nl dF9pdGVyYXRlX2tleXRhYihrcmI1X2NvbnRleHQgY29udGV4dCwKKwkJCQkgIGtyYjVfcmRf cmVxX2luX2N0eCBpbiwKKwkJCQkgIGtyYjVfYm9vbGVhbiBmbGFnKQoreworICAgIGluLT5p dGVyYXRlX2tleXRhYiA9IGZsYWc7CisgICAgcmV0dXJuIDA7Cit9CisKIC8qKgogICogU2V0 IGlmIGtyYjVfcnFfcmVkKCkgaXMgZ29pbmcgdG8gY2hlY2sgdGhlIFdpbmRvd3MgUEFDIG9y IG5vdAogICoKQEAgLTkxNyw2ICs5MzksMTEgQEAga3JiNV9yZF9yZXFfY3R4KGtyYjVfY29u dGV4dCBjb250ZXh0LAogCQkJCSAmby0+a2V5YmxvY2spOwogCWlmIChyZXQpCiAJICAgIGdv dG8gb3V0OworICAgIH0gZWxzZSBpZiAoaWQgJiYgaW5jdHggJiYgaW5jdHgtPml0ZXJhdGVf a2V5dGFiKSB7CisJICAgIC8qCisJICAgICAqIEZvcmNlIGl0ZXJhdGluZyBvdmVyIHRoZSBr ZXl0YWIuCisJICAgICAqLworCSAgICBvLT5rZXlibG9jayA9IE5VTEw7CiAgICAgfSBlbHNl IHsKIAogCWlmKGlkID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9s aWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUv dmVyc2lvbi1zY3JpcHQubWFwCmluZGV4IDdiNDljMTVkZmMwZS4uYjE4YTFjNWQ3Mzc1IDEw MDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFw CisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAKQEAg LTUyNiw2ICs1MjYsNyBAQCBIRUlNREFMX0tSQjVfMi4wIHsKIAkJa3JiNV9yZF9yZXFfY3R4 OwogCQlrcmI1X3JkX3JlcV9pbl9jdHhfYWxsb2M7CiAJCWtyYjVfcmRfcmVxX2luX2N0eF9m cmVlOworCQlrcmI1X3JkX3JlcV9pbl9zZXRfaXRlcmF0ZV9rZXl0YWI7CiAJCWtyYjVfcmRf cmVxX2luX3NldF9rZXlibG9jazsKIAkJa3JiNV9yZF9yZXFfaW5fc2V0X2tleXRhYjsKIAkJ a3JiNV9yZF9yZXFfaW5fc2V0X3BhY19jaGVjazsKLS0gCjIuMTcuMQoKCkZyb20gZDZhOWE0 N2M3MmNiZWU3OGMzYjk3YzM2ZDdkYjk5Nzc2NTVlNGJjZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTog VGh1LCAyMiBBdWcgMjAxOSAxMDozMDowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjVd IFVQU1RSRUFNLUZJUlNUISEhIEhFSU1EQUw6bGliL2dzc2FwaS9rcmI1OiBhZGQKIEdTU19L UkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUJfWAoKVGhpcyBhbGxvd3Mga3JiNV9y ZF9yZXFfaW5fc2V0X2l0ZXJhdGVfa2V5dGFiKCkgdG8gYmUgdXNlZCB2aWEgdGhlCmdzc2Fw aSBsYXllci4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dp P2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2Ft YmEub3JnPgotLS0KIC4uLi9oZWltZGFsL2xpYi9nc3NhcGkvZ3NzYXBpL2dzc2FwaV9vaWQu aCAgICB8ICAzICsrKwogLi4uL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQu YyAgICAgIHwgIDcgKysrKysrCiAuLi4vaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvZ3Nza3Ji NV9sb2NsLmggICAgfCAgMSArCiAuLi4vaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvc2V0X2Ny ZWRfb3B0aW9uLmMgfCAyMiArKysrKysrKysrKysrKysrKysrCiBzb3VyY2U0L2hlaW1kYWwv bGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyAgICAgfCAgMyArKysKIHNvdXJjZTQvaGVpbWRh bC9saWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0Lm1hcCB8ICAxICsKIDYgZmlsZXMgY2hhbmdl ZCwgMzcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIv Z3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2Fw aS9nc3NhcGkvZ3NzYXBpX29pZC5oCmluZGV4IDBlZWQ2MzlkNTNlMS4uNDhmZjQwMzVkODU0 IDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBp X29pZC5oCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlf b2lkLmgKQEAgLTk5LDYgKzk5LDkgQEAgZXh0ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3Nz X09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFnc194X29pZF9kZXNjOwogZXh0 ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9u b190cmFuc2l0X2NoZWNrX3hfb2lkX2Rlc2M7CiAjZGVmaW5lIEdTU19LUkI1X0NSRURfTk9f VFJBTlNJVF9DSEVDS19YICgmX19nc3Nfa3JiNV9jcmVkX25vX3RyYW5zaXRfY2hlY2tfeF9v aWRfZGVzYykKIAorZXh0ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9f Z3NzX2tyYjVfY3JlZF9pdGVyYXRlX2FjY2VwdG9yX2tleXRhYl94X29pZF9kZXNjOworI2Rl ZmluZSBHU1NfS1JCNV9DUkVEX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCX1ggKCZfX2dzc19r cmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWJfeF9vaWRfZGVzYykKKwogZXh0ZXJu IEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfaW1wb3J0X2Ny ZWRfeF9vaWRfZGVzYzsKICNkZWZpbmUgR1NTX0tSQjVfSU1QT1JUX0NSRURfWCAoJl9fZ3Nz X2tyYjVfaW1wb3J0X2NyZWRfeF9vaWRfZGVzYykKIApkaWZmIC0tZ2l0IGEvc291cmNlNC9o ZWltZGFsL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYyBiL3NvdXJjZTQv aGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMKaW5kZXggMmU0 ZWQ1M2JhMDhlLi5kNTg2NWU1YmRkNzEgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9s aWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMKKysrIGIvc291cmNlNC9oZWlt ZGFsL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtMzk4LDExICsz OTgsMTYgQEAgZ3Nza3JiNV9hY2NlcHRvcl9zdGFydChPTV91aW50MzIgKiBtaW5vcl9zdGF0 dXMsCiAJa3JiNV9yZF9yZXFfaW5fY3R4IGluID0gTlVMTDsKIAlrcmI1X3JkX3JlcV9vdXRf Y3R4IG91dCA9IE5VTEw7CiAJa3JiNV9wcmluY2lwYWwgc2VydmVyID0gTlVMTDsKKwlrcmI1 X2Jvb2xlYW4gaXRlcmF0ZV9rZXl0YWIgPSBGQUxTRTsKIAlrcmI1X2ZsYWdzIHZlcmlmeV9h cF9yZXFfZmxhZ3MgPSAwOwogCiAJaWYgKGFjY2VwdG9yX2NyZWQpIHsKIAkgICAgc2VydmVy ID0gYWNjZXB0b3JfY3JlZC0+cHJpbmNpcGFsOwogCisJICAgIGlmIChhY2NlcHRvcl9jcmVk LT5jcmVkX2ZsYWdzICYgR1NTX0NGX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCKSB7CisJCWl0 ZXJhdGVfa2V5dGFiID0gVFJVRTsKKwkgICAgfQorCiAJICAgIGlmIChhY2NlcHRvcl9jcmVk LT5jcmVkX2ZsYWdzICYgR1NTX0NGX05PX1RSQU5TSVRfQ0hFQ0spIHsKIAkJdmVyaWZ5X2Fw X3JlcV9mbGFncyB8PSBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLOwog CSAgICB9CkBAIC00MTEsNiArNDE2LDggQEAgZ3Nza3JiNV9hY2NlcHRvcl9zdGFydChPTV91 aW50MzIgKiBtaW5vcl9zdGF0dXMsCiAJa3JldCA9IGtyYjVfcmRfcmVxX2luX2N0eF9hbGxv Yyhjb250ZXh0LCAmaW4pOwogCWlmIChrcmV0ID09IDApCiAJICAgIGtyZXQgPSBrcmI1X3Jk X3JlcV9pbl9zZXRfa2V5dGFiKGNvbnRleHQsIGluLCBrZXl0YWIpOworCWlmIChrcmV0ID09 IDAgJiYgaXRlcmF0ZV9rZXl0YWIpCisJICAgIGtyZXQgPSBrcmI1X3JkX3JlcV9pbl9zZXRf aXRlcmF0ZV9rZXl0YWIoY29udGV4dCwgaW4sIFRSVUUpOwogCWlmIChrcmV0ID09IDApCiAJ ICAgIGtyZXQgPSBrcmI1X3JkX3JlcV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFncyhjb250 ZXh0LCBpbiwKIAkJCQkJCQkgIHZlcmlmeV9hcF9yZXFfZmxhZ3MpOwpkaWZmIC0tZ2l0IGEv c291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaCBiL3NvdXJj ZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKaW5kZXggNmExZTk3 NzQ1MmNmLi4wMGI2ZjM0MDVlMjkgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIv Z3NzYXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9n c3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaApAQCAtOTUsNiArOTUsNyBAQCB0eXBlZGVmIHN0 cnVjdCB7CiAjZGVmaW5lIEdTU19DRl9ERVNUUk9ZX0NSRURfT05fUkVMRUFTRQkxCiAjZGVm aW5lIEdTU19DRl9OT19DSV9GTEFHUwkJMgogI2RlZmluZSBHU1NfQ0ZfTk9fVFJBTlNJVF9D SEVDSwkJNAorI2RlZmluZSBHU1NfQ0ZfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUIJOAogICBz dHJ1Y3Qga3JiNV9rZXl0YWJfZGF0YSAqa2V5dGFiOwogICBPTV91aW50MzIgbGlmZXRpbWU7 CiAgIGdzc19jcmVkX3VzYWdlX3QgdXNhZ2U7CmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1k YWwvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlvbi5jIGIvc291cmNlNC9oZWltZGFs L2xpYi9nc3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYwppbmRleCA4ZDlmNDk4ODQ4ODQu LjlhZDE3YmZjMzIyYyAxMDA2NDQKLS0tIGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkv a3JiNS9zZXRfY3JlZF9vcHRpb24uYworKysgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2Fw aS9rcmI1L3NldF9jcmVkX29wdGlvbi5jCkBAIC0yMTUsNiArMjE1LDI1IEBAIG5vX2NpX2Zs YWdzKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAogCiB9CiAKK3N0YXRpYyBPTV91aW50MzIK K2l0ZXJhdGVfYWNjZXB0b3Jfa2V5dGFiKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAorCQkJ a3JiNV9jb250ZXh0IGNvbnRleHQsCisJCQlnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRsZSwK KwkJCWNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQgY3Jl ZDsKKworICAgIGlmIChjcmVkX2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9PSBH U1NfQ19OT19DUkVERU5USUFMKSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJuIEdT U19TX0ZBSUxVUkU7CisgICAgfQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNyZWRf aGFuZGxlOworICAgIGNyZWQtPmNyZWRfZmxhZ3MgfD0gR1NTX0NGX0lURVJBVEVfQUNDRVBU T1JfS0VZVEFCOworCisgICAgKm1pbm9yX3N0YXR1cyA9IDA7CisgICAgcmV0dXJuIEdTU19T X0NPTVBMRVRFOworfQogCiBzdGF0aWMgT01fdWludDMyCiBub190cmFuc2l0X2NoZWNrKE9N X3VpbnQzMiAqbWlub3Jfc3RhdHVzLApAQCAtMjYyLDYgKzI4MSw5IEBAIF9nc3NrcmI1X3Nl dF9jcmVkX29wdGlvbgogCXJldHVybiBub19jaV9mbGFncyhtaW5vcl9zdGF0dXMsIGNvbnRl eHQsIGNyZWRfaGFuZGxlLCB2YWx1ZSk7CiAgICAgfQogCisgICAgaWYgKGdzc19vaWRfZXF1 YWwoZGVzaXJlZF9vYmplY3QsIEdTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlU QUJfWCkpIHsKKwlyZXR1cm4gaXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWIobWlub3Jfc3RhdHVz LCBjb250ZXh0LCBjcmVkX2hhbmRsZSwgdmFsdWUpOworICAgIH0KIAogICAgIGlmIChnc3Nf b2lkX2VxdWFsKGRlc2lyZWRfb2JqZWN0LCBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hF Q0tfWCkpIHsKIAlyZXR1cm4gbm9fdHJhbnNpdF9jaGVjayhtaW5vcl9zdGF0dXMsIGNvbnRl eHQsIGNyZWRfaGFuZGxlLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1kYWwv bGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBp L21lY2gvZ3NzX29pZC5jCmluZGV4IDZmODZlZWM2NWMzOS4uZGU0ZWQyZTU3MWYzIDEwMDY0 NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYworKysg Yi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYwpAQCAtOTcsNiAr OTcsOSBAQCBnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2lt cG9ydF9jcmVkX3hfb2lkX2Rlc2MgPSB7IDYsIHJrX1VOQwogLyogR1NTX0tSQjVfQ1JFRF9O T19UUkFOU0lUX0NIRUNLX1ggLSAxLjIuNzUyLjQzLjEzLjMxICovCiBnc3NfT0lEX2Rlc2Mg R1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194 X29pZF9kZXNjID0geyA2LCBya19VTkNPTlNUKCJceDJhXHg4NVx4NzBceDJiXHgwZFx4MWYi KSB9OwogCisvKiBHU1NfS1JCNV9DUkVEX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCX1ggLSAx LjIuNzUyLjQzLjEzLjMxICovCitnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBf X2dzc19rcmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWJfeF9vaWRfZGVzYyA9IHsg NiwgcmtfVU5DT05TVCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDIwIikgfTsKKwogLyogR1NT X0NfTUFfU0FTTF9NRUNIX05BTUUgLSAxLjIuNzUyLjQzLjEzLjEwMCAqLwogZ3NzX09JRF9k ZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3NfY19tYV9zYXNsX21lY2hfbmFtZV9vaWRf ZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDY0IikgfTsK IApkaWZmIC0tZ2l0IGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3Jp cHQubWFwIGIvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFw CmluZGV4IDc3NmZlMTlkYmYzYy4uNmZjZmNlM2VjNWVhIDEwMDY0NAotLS0gYS9zb3VyY2U0 L2hlaW1kYWwvbGliL2dzc2FwaS92ZXJzaW9uLXNjcmlwdC5tYXAKKysrIGIvc291cmNlNC9o ZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwCkBAIC0xNTMsNiArMTUzLDcg QEAgSEVJTURBTF9HU1NfMi4wIHsKIAkJX19nc3NfY19udGxtX3YyX29pZF9kZXNjOwogCQlf X2dzc19jX250bG1fc2Vzc2lvbl9rZXlfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbnRsbV9mb3Jj ZV92MV9vaWRfZGVzYzsKKwkJX19nc3Nfa3JiNV9jcmVkX2l0ZXJhdGVfYWNjZXB0b3Jfa2V5 dGFiX3hfb2lkX2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFnc194X29pZF9k ZXNjOwogCQlfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOwog CQlfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7Ci0tIAoyLjE3LjEKCgpGcm9t IDE5ZjkyYzZmY2YyODdlOTkxZTQzOTY5NjgxYzczMDgwNWM2ZTY5YjEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+ CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTY6MDk6NDcgKzAwMDAKU3ViamVjdDogW1BBVENI IDE0LzI1XSBzNDpoZWltZGFsX2J1aWxkOiBkZWZpbmUKIEhBVkVfR1NTX0tSQjVfQ1JFRF97 Tk9fVFJBTlNJVF9DSEVDSyxJVEVSQVRFX0FDQ0VQVE9SX0tFWVRBQn1fWAoKQlVHOiBodHRw czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKQlVHOiBodHRw czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMjUKClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNl NC9oZWltZGFsX2J1aWxkL3dzY3JpcHRfY29uZmlndXJlIHwgMiArKwogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbF9idWls ZC93c2NyaXB0X2NvbmZpZ3VyZSBiL3NvdXJjZTQvaGVpbWRhbF9idWlsZC93c2NyaXB0X2Nv bmZpZ3VyZQppbmRleCA5MDNmYjUxMzlkYjguLjU3NjU4YjU3N2ExYSAxMDA2NDQKLS0tIGEv c291cmNlNC9oZWltZGFsX2J1aWxkL3dzY3JpcHRfY29uZmlndXJlCisrKyBiL3NvdXJjZTQv aGVpbWRhbF9idWlsZC93c2NyaXB0X2NvbmZpZ3VyZQpAQCAtODcsNiArODcsOCBAQCBjb25m LmRlZmluZSgnSEFWRV9HU1NfS1JCNV9FWFBPUlRfTFVDSURfU0VDX0NPTlRFWFQnLCAxKQog Y29uZi5kZWZpbmUoJ0hBVkVfR1NTX0lNUE9SVF9DUkVEJywgMSkKIGNvbmYuZGVmaW5lKCdI QVZFX0dTU19FWFBPUlRfQ1JFRCcsIDEpCiBjb25mLmRlZmluZSgnSEFWRV9HU1NfS1JCNV9D UkVEX05PX0NJX0ZMQUdTX1gnLCAxKQorY29uZi5kZWZpbmUoJ0hBVkVfR1NTX0tSQjVfQ1JF RF9OT19UUkFOU0lUX0NIRUNLX1gnLCAxKQorY29uZi5kZWZpbmUoJ0hBVkVfR1NTX0tSQjVf Q1JFRF9JVEVSQVRFX0FDQ0VQVE9SX0tFWVRBQl9YJywgMSkKIGNvbmYuZGVmaW5lKCdIQVZF X0dTU0FQSScsIDEpCiBjb25mLmRlZmluZSgnSEFWRV9BRERSX1RZUEVfSU5fS1JCNV9BRERS RVNTJywgMSkKIGNvbmYuZGVmaW5lKCdIQVZFX0NIRUNLU1VNX0lOX0tSQjVfQ0hFQ0tTVU0n LCAxKQotLSAKMi4xNy4xCgoKRnJvbSBjNTg5NTBlY2MyNDI2NTZjNzdiNjZlYzg4NjVkMGYz ZTRkYzRmMjkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1h Y2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDIyIEF1ZyAyMDE5IDE2OjA5OjQ3 ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNV0gY29uZmlndXJlX21pdGtyYjU6IGNoZWNr IGZvcgogR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKCkJVRzogaHR0cHM6Ly9i dWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHdzY3JpcHRfY29u ZmlndXJlX3N5c3RlbV9taXRrcmI1IHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS93c2NyaXB0X2NvbmZpZ3VyZV9zeXN0ZW1fbWl0a3JiNSBi L3dzY3JpcHRfY29uZmlndXJlX3N5c3RlbV9taXRrcmI1CmluZGV4IGIwNWFjM2YzZTUwYy4u YmFkNmNlOWE5NWQ2IDEwMDY0NAotLS0gYS93c2NyaXB0X2NvbmZpZ3VyZV9zeXN0ZW1fbWl0 a3JiNQorKysgYi93c2NyaXB0X2NvbmZpZ3VyZV9zeXN0ZW1fbWl0a3JiNQpAQCAtMTE1LDYg KzExNSw3IEBAIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJycnCiAgICAgICAgZ3NzX2FjcXVpcmVf Y3JlZF9mcm9tCiAgICAgICAgJycnLCAnZ3NzYXBpIGdzc2FwaV9rcmI1JykKIGNvbmYuQ0hF Q0tfVkFSSUFCTEUoJ0dTU19LUkI1X0NSRURfTk9fQ0lfRkxBR1NfWCcsIGhlYWRlcnM9cG9z c2libGVfZ3NzYXBpX2hlYWRlcnMpCitjb25mLkNIRUNLX1ZBUklBQkxFKCdHU1NfS1JCNV9D UkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCcsIGhlYWRlcnM9cG9zc2libGVfZ3NzYXBpX2hlYWRl cnMpCiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdrcmI1X21rX3JlcV9leHRlbmRlZCBrcmI1X2t0 X2NvbXBhcmUnLCAna3JiNScpCiBjb25mLkNIRUNLX0ZVTkNTKCcnJwogICAgICAgIGtyYjVf YXV0aF9jb25fZ2V0cmVjdnN1YmtleQotLSAKMi4xNy4xCgoKRnJvbSBhNWQwY2RiOGE2MTg3 MDA1ZWNmODViNTA0NTJiNjFmZWI3ZTEzMGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDIy IEF1ZyAyMDE5IDE2OjUxOjQ5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNi8yNV0gczM6Z3Nl OiBhZGQgaGVscGVyIGRlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIKClRoaXMgd2ls bCBzaW1wbGlmeSB0aGUgZm9sbG93aW5nIGNvbW1pdHMuCgpCVUc6IGh0dHBzOi8vYnVnemls bGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwpCVUc6IGh0dHBzOi8vYnVnemls bGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEyNQoKU2lnbmVkLW9mZi1ieTogU3Rl ZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBzb3VyY2UzL2xpYnJwYy9j cnlwdG8vZ3NlLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291cmNlMy9saWJycGMvY3J5cHRv L2dzZS5jIGIvc291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jCmluZGV4IDlhOWY0MjYxMjIy Zi4uMzQzZTBmNTgxNzM1IDEwMDY0NAotLS0gYS9zb3VyY2UzL2xpYnJwYy9jcnlwdG8vZ3Nl LmMKKysrIGIvc291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jCkBAIC0yNTYsOSArMjU2LDEy IEBAIHN0YXRpYyBOVFNUQVRVUyBnc2VfaW5pdF9jbGllbnQoVEFMTE9DX0NUWCAqbWVtX2N0 eCwKIAlzdHJ1Y3QgZ3NlX2NvbnRleHQgKmdzZV9jdHg7CiAJT01fdWludDMyIGdzc19tYWos IGdzc19taW47CiAjaWZkZWYgSEFWRV9HU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gKLQln c3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0gR1NTX0NfRU1QVFlfQlVGRkVSOwogCWdz c19PSUQgb2lkID0gZGlzY2FyZF9jb25zdChHU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gp OwotI2VuZGlmCisjZGVmaW5lIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUiAxCisjZW5kaWYg LyogSEFWRV9HU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1ggKi8KKyNpZmRlZiBfX1RNUF9O RUVEX0VNUFRZX0JVRkZGRVIKKwlnc3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0gR1NT X0NfRU1QVFlfQlVGRkVSOworI2VuZGlmIC8qIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUiAq LwogCU5UU1RBVFVTIHN0YXR1czsKIAogCWlmICghc2VydmVyIHx8ICFzZXJ2aWNlKSB7Ci0t IAoyLjE3LjEKCgpGcm9tIGZhZDI5N2EyNjk2ZjU0YjRhZDU4MWZiZWI0YTczYmRlOWI4NDEw MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxt ZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTY6NTE6NDkgKzAwMDAK U3ViamVjdDogW1BBVENIIDE3LzI1XSBzMzpnc2U6IHJlbmFtZSBvaWQgdG8gbm9fY2lfZmxh Z3Nfb2lkCgpUaGlzIHdpbGwgc2ltcGxpZnkgdGhlIGZvbGxvd2luZyBjb21taXRzLgoKQlVH OiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKQlVH OiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMjUKClNp Z25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQog c291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTMv bGlicnBjL2NyeXB0by9nc2UuYyBiL3NvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYwppbmRl eCAzNDNlMGY1ODE3MzUuLjI1YWFjN2UwNDQ4ZiAxMDA2NDQKLS0tIGEvc291cmNlMy9saWJy cGMvY3J5cHRvL2dzZS5jCisrKyBiL3NvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYwpAQCAt MjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBOVFNUQVRVUyBnc2VfaW5pdF9jbGllbnQoVEFMTE9D X0NUWCAqbWVtX2N0eCwKIAlzdHJ1Y3QgZ3NlX2NvbnRleHQgKmdzZV9jdHg7CiAJT01fdWlu dDMyIGdzc19tYWosIGdzc19taW47CiAjaWZkZWYgSEFWRV9HU1NfS1JCNV9DUkVEX05PX0NJ X0ZMQUdTX1gKLQlnc3NfT0lEIG9pZCA9IGRpc2NhcmRfY29uc3QoR1NTX0tSQjVfQ1JFRF9O T19DSV9GTEFHU19YKTsKKwlnc3NfT0lEIG5vX2NpX2ZsYWdzX29pZCA9IGRpc2NhcmRfY29u c3QoR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YKTsKICNkZWZpbmUgX19UTVBfTkVFRF9F TVBUWV9CVUZGRkVSIDEKICNlbmRpZiAvKiBIQVZFX0dTU19LUkI1X0NSRURfTk9fQ0lfRkxB R1NfWCAqLwogI2lmZGVmIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUgpAQCAtMzE0LDcgKzMx NCw3IEBAIHN0YXRpYyBOVFNUQVRVUyBnc2VfaW5pdF9jbGllbnQoVEFMTE9DX0NUWCAqbWVt X2N0eCwKIAkgKiBodHRwOi8va3JiZGV2Lm1pdC5lZHUvcnQvVGlja2V0L0Rpc3BsYXkuaHRt bD9pZD02OTM4CiAJICovCiAJZ3NzX21haiA9IGdzc19zZXRfY3JlZF9vcHRpb24oJmdzc19t aW4sICZnc2VfY3R4LT5jcmVkcywKLQkJCQkgICAgICBvaWQsCisJCQkJICAgICAgbm9fY2lf ZmxhZ3Nfb2lkLAogCQkJCSAgICAgICZlbXB0eV9idWZmZXIpOwogCWlmIChnc3NfbWFqKSB7 CiAJCURFQlVHKDAsICgiZ3NzX3NldF9jcmVkX29wdGlvbihHU1NfS1JCNV9DUkVEX05PX0NJ X0ZMQUdTX1gpLCAiCi0tIAoyLjE3LjEKCgpGcm9tIDU0OGY1MjdmM2ZhMGRjYzcxODI4OGRl Y2M2YTgxZjFkNjA5ZDAxNjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZh biBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkg MTY6NTE6NDkgKzAwMDAKU3ViamVjdDogW1BBVENIIDE4LzI1XSBzMzpnc2U6IGxldCBnc2Vf aW5pdF9jbGllbnQoKSB1c2UKIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YCgpU aGVyZSBubyBuZWVkIHRvIGRvIGFueSBwb3NzaWJsZSB0cmFuc2l0IGNoZWNraW5nIG9uCnRo ZSBjbGllbnQgc2lkZS4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19i dWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0 emVAc2FtYmEub3JnPgotLS0KIHNvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYyB8IDE5ICsr KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jIGIvc291cmNlMy9saWJy cGMvY3J5cHRvL2dzZS5jCmluZGV4IDI1YWFjN2UwNDQ4Zi4uZGMwNzRkMWFlMWFlIDEwMDY0 NAotLS0gYS9zb3VyY2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMKKysrIGIvc291cmNlMy9saWJy cGMvY3J5cHRvL2dzZS5jCkBAIC0yNTksNiArMjU5LDEyIEBAIHN0YXRpYyBOVFNUQVRVUyBn c2VfaW5pdF9jbGllbnQoVEFMTE9DX0NUWCAqbWVtX2N0eCwKIAlnc3NfT0lEIG5vX2NpX2Zs YWdzX29pZCA9IGRpc2NhcmRfY29uc3QoR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YKTsK ICNkZWZpbmUgX19UTVBfTkVFRF9FTVBUWV9CVUZGRkVSIDEKICNlbmRpZiAvKiBIQVZFX0dT U19LUkI1X0NSRURfTk9fQ0lfRkxBR1NfWCAqLworI2lmZGVmIEhBVkVfR1NTX0tSQjVfQ1JF RF9OT19UUkFOU0lUX0NIRUNLX1gKKwlnc3NfT0lEIG5vX3RyYW5zaXRfb2lkID0gZGlzY2Fy ZF9jb25zdChHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCk7CisjaWZuZGVmIF9f VE1QX05FRURfRU1QVFlfQlVGRkZFUgorI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZG RVIgMQorI2VuZGlmIC8qIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUiAqLworI2VuZGlmIC8q IEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1ggKi8KICNpZmRlZiBfX1RN UF9ORUVEX0VNUFRZX0JVRkZGRVIKIAlnc3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0g R1NTX0NfRU1QVFlfQlVGRkVSOwogI2VuZGlmIC8qIF9fVE1QX05FRURfRU1QVFlfQlVGRkZF UiAqLwpAQCAtMzI1LDYgKzMzMSwxOSBAQCBzdGF0aWMgTlRTVEFUVVMgZ3NlX2luaXRfY2xp ZW50KFRBTExPQ19DVFggKm1lbV9jdHgsCiAJfQogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX0dT U19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YCisJZ3NzX21haiA9IGdzc19zZXRfY3Jl ZF9vcHRpb24oJmdzc19taW4sICZnc2VfY3R4LT5jcmVkcywKKwkJCQkgICAgICBub190cmFu c2l0X29pZCwKKwkJCQkgICAgICAmZW1wdHlfYnVmZmVyKTsKKwlpZiAoZ3NzX21haikgewor CQlERUJVRygwLCAoImdzc19zZXRfY3JlZF9vcHRpb24oR1NTX0tSQjVfQ1JFRF9OT19UUkFO U0lUX0NIRUNLX1gpLCAiCisJCQkgICJmYWlsZWQgd2l0aCBbJXNdXG4iLAorCQkJICBnc2Vf ZXJyc3RyKGdzZV9jdHgsIGdzc19tYWosIGdzc19taW4pKSk7CisJCXN0YXR1cyA9IE5UX1NU QVRVU19JTlRFUk5BTF9FUlJPUjsKKwkJZ290byBlcnJfb3V0OworCX0KKyNlbmRpZgorCiAJ Kl9nc2VfY3R4ID0gZ3NlX2N0eDsKIAlyZXR1cm4gTlRfU1RBVFVTX09LOwogCi0tIAoyLjE3 LjEKCgpGcm9tIGRjN2FlMWEzNjVkMGExNzZhMTNiMTQ3ZWQ2YzExN2E5ZGQxNDJhNjMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBz YW1iYS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTY6NTI6MTUgKzAwMDAKU3ViamVj dDogW1BBVENIIDE5LzI1XSBrcmI1X3dyYXA6IGFkZCBzbWJfZ3NzX2tyYjVfcHJlcGFyZV9h Y2NlcHRvcl9jcmVkKCkKCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19i dWcuY2dpP2lkPTEyOTA3CkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19i dWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0 emVAc2FtYmEub3JnPgotLS0KIGxpYi9rcmI1X3dyYXAvZ3NzX3NhbWJhLmMgfCA0NSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9rcmI1X3dyYXAvZ3Nz X3NhbWJhLmggfCAgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9saWIva3JiNV93cmFwL2dzc19zYW1iYS5jIGIvbGliL2tyYjVfd3Jh cC9nc3Nfc2FtYmEuYwppbmRleCAyYTk5NjYxZGRlZTIuLjJkMzAxNjA4OGVkOCAxMDA2NDQK LS0tIGEvbGliL2tyYjVfd3JhcC9nc3Nfc2FtYmEuYworKysgYi9saWIva3JiNV93cmFwL2dz c19zYW1iYS5jCkBAIC0yMTAsNSArMjEwLDUwIEBAIHVpbnQzMl90IHNtYl9nc3Nfa3JiNV9p bXBvcnRfY3JlZCh1aW50MzJfdCAqbWlub3Jfc3RhdHVzLCBrcmI1X2NvbnRleHQgY3R4LAog CXJldHVybiBtYWpvcl9zdGF0dXM7CiB9CiAKK3VpbnQzMl90IHNtYl9nc3Nfa3JiNV9wcmVw YXJlX2FjY2VwdG9yX2NyZWQodWludDMyX3QgKm1pbm9yX3N0YXR1cywKKwkJCQkJICAgIGJv b2wgcmVxdWlyZV9wYWMsCisJCQkJCSAgICBnc3NfY3JlZF9pZF90ICpjcmVkKQoreworI2lm ZGVmIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKKwlPTV91aW50MzIg Z3NzX21haiwgZ3NzX21pbjsKKwlnc3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0gR1NT X0NfRU1QVFlfQlVGRkVSOworCWdzc19PSUQgbm9fdHJhbnNpdF9vaWQgPSBkaXNjYXJkX2Nv bnN0KEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YKTsKKyNpZmRlZiBIQVZFX0dT U19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUJfWCAvKiBvbmx5IGhlaW1kYWwg Ki8KKwlnc3NfT0lEIGl0ZXJhdGVfa2V5dGFiX29pZCA9CisJCWRpc2NhcmRfY29uc3QoR1NT X0tSQjVfQ1JFRF9JVEVSQVRFX0FDQ0VQVE9SX0tFWVRBQl9YKTsKKworCWdzc19tYWogPSBn c3Nfc2V0X2NyZWRfb3B0aW9uKCZnc3NfbWluLCBjcmVkLAorCQkJCSAgICAgIGl0ZXJhdGVf a2V5dGFiX29pZCwKKwkJCQkgICAgICAmZW1wdHlfYnVmZmVyKTsKKwlpZiAoZ3NzX21haikg eworCQlEQkdfRVJSKCJnc3Nfc2V0X2NyZWRfb3B0aW9uKElURVJBVEVfQUNDRVBUT1JfS0VZ VEFCX1gpXG4iKTsKKwkJKm1pbm9yX3N0YXR1cyA9IGdzc19taW47CisJCXJldHVybiBnc3Nf bWFqOworCX0KKyNlbmRpZiAvKiBIQVZFX0dTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRP Ul9LRVlUQUJfWCAqLworCisJaWYgKCFyZXF1aXJlX3BhYykgeworCQlnb3RvIGRvbmU7CisJ fQorCisJLyoKKwkgKiBJZiB3ZSByZXF1aXJlIGEgdmFsaWQgUEFDIHdlIGNhbgorCSAqIHNr aXAgdGhlIHRyYW5zaXQgY2hlY2tzIGluIHRoZSBrcmI1CisJICogY29kZS4KKwkgKi8KKwln c3NfbWFqID0gZ3NzX3NldF9jcmVkX29wdGlvbigmZ3NzX21pbiwgY3JlZCwKKwkJCQkgICAg ICBub190cmFuc2l0X29pZCwKKwkJCQkgICAgICAmZW1wdHlfYnVmZmVyKTsKKwlpZiAoZ3Nz X21haikgeworCQlEQkdfRVJSKCJnc3Nfc2V0X2NyZWRfb3B0aW9uKE5PX1RSQU5TSVRfQ0hF Q0tfWClcbiIpOworCQkqbWlub3Jfc3RhdHVzID0gZ3NzX21pbjsKKwkJcmV0dXJuIGdzc19t YWo7CisJfQorCitkb25lOgorI2VuZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19UUkFO U0lUX0NIRUNLX1ggKi8KKwkqbWlub3Jfc3RhdHVzID0gMDsKKwlyZXR1cm4gMDsKK30KIAog I2VuZGlmIC8qIEhBVkVfR1NTQVBJICovCmRpZmYgLS1naXQgYS9saWIva3JiNV93cmFwL2dz c19zYW1iYS5oIGIvbGliL2tyYjVfd3JhcC9nc3Nfc2FtYmEuaAppbmRleCA4OWFlZTM0Nzlj NTUuLjc3Yzg3NThlZDNkOCAxMDA2NDQKLS0tIGEvbGliL2tyYjVfd3JhcC9nc3Nfc2FtYmEu aAorKysgYi9saWIva3JiNV93cmFwL2dzc19zYW1iYS5oCkBAIC00NSw1ICs0NSw5IEBAIHVp bnQzMl90IHNtYl9nc3Nfa3JiNV9pbXBvcnRfY3JlZChPTV91aW50MzIgKm1pbm9yX3N0YXR1 cywga3JiNV9jb250ZXh0IGN0eCwKIAkJCQkgIGtyYjVfY2NhY2hlIGlkLCBrcmI1X3ByaW5j aXBhbCBrZXl0YWJfcHJpbmNpcGFsLAogCQkJCSAga3JiNV9rZXl0YWIga2V5dGFiLCBnc3Nf Y3JlZF9pZF90ICpjcmVkKTsKIAordWludDMyX3Qgc21iX2dzc19rcmI1X3ByZXBhcmVfYWNj ZXB0b3JfY3JlZCh1aW50MzJfdCAqbWlub3Jfc3RhdHVzLAorCQkJCQkgICAgYm9vbCByZXF1 aXJlX3BhYywKKwkJCQkJICAgIGdzc19jcmVkX2lkX3QgKmNyZWQpOworCiAjZW5kaWYgLyog SEFWRV9HU1NBUEkgKi8KICNlbmRpZiAvKiBfR1NTX1NBTUJBX0ggKi8KLS0gCjIuMTcuMQoK CkZyb20gNTdjYTBhY2Y2ZGZjNDAzNDFkM2IwNjA3MzhkZDA2OGFiNjAzNTliNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJh Lm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNzoxMzo0MSArMDAwMApTdWJqZWN0OiBb UEFUQ0ggMjAvMjVdIHMzOmdzZTogbGV0IGdzZV9pbml0X3NlcnZlcigpIHVzZQogc21iX2dz c19rcmI1X3ByZXBhcmVfYWNjZXB0b3JfY3JlZCgpCgpXZSBzaG91bGQgY2hlY2sgYWxsIGtl eXMgaW4gb3VyIGluIG1lbW9yeSBrZXl0YWIKYW5kIGRvbid0IG5lZWQgYW55IHRyYW5zaXRl ZCBjaGVja3MgaWYgd2UgcmVxdWlyZSBhIFBBQy4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5z YW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CkJVRzogaHR0cHM6Ly9idWd6aWxsYS5z YW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4g TWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNvdXJjZTMvbGlicnBjL2NyeXB0 by9nc2UuYyB8IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9zb3VyY2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMgYi9zb3Vy Y2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMKaW5kZXggZGMwNzRkMWFlMWFlLi5jZDIyNWI2Mzcz ZDEgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYworKysgYi9zb3Vy Y2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMKQEAgLTU5OCw2ICs1OTgsNyBAQCBzdGF0aWMgTlRT VEFUVVMgZ3NlX2luaXRfc2VydmVyKFRBTExPQ19DVFggKm1lbV9jdHgsCiAJT01fdWludDMy IGdzc19tYWosIGdzc19taW47CiAJa3JiNV9lcnJvcl9jb2RlIHJldDsKIAlOVFNUQVRVUyBz dGF0dXM7CisJYm9vbCByZXF1aXJlX3BhYyA9IGxwX3JlcXVpcmVfcGFjKCk7CiAKIAlzdGF0 dXMgPSBnc2VfY29udGV4dF9pbml0KG1lbV9jdHgsIGRvX3NpZ24sIGRvX3NlYWwsCiAJCQkJ ICBOVUxMLCBhZGRfZ3NzX2NfZmxhZ3MsICZnc2VfY3R4KTsKQEAgLTYyNCw2ICs2MjUsMTcg QEAgc3RhdGljIE5UU1RBVFVTIGdzZV9pbml0X3NlcnZlcihUQUxMT0NfQ1RYICptZW1fY3R4 LAogCQlnb3RvIGRvbmU7CiAJfQogCisJZ3NzX21haiA9IHNtYl9nc3Nfa3JiNV9wcmVwYXJl X2FjY2VwdG9yX2NyZWQoJmdzc19taW4sCisJCQkJCQkgICAgIHJlcXVpcmVfcGFjLAorCQkJ CQkJICAgICAmZ3NlX2N0eC0+Y3JlZHMpOworCisJaWYgKGdzc19tYWogIT0gMCkgeworCQlE RUJVRygwLCAoInNtYl9nc3Nfa3JiNV9wcmVwYXJlX2FjY2VwdG9yX2NyZWQgZmFpbGVkIHdp dGggWyVzXVxuIiwKKwkJCSAgZ3NlX2VycnN0cihnc2VfY3R4LCBnc3NfbWFqLCBnc3NfbWlu KSkpOworCQlzdGF0dXMgPSBOVF9TVEFUVVNfSU5URVJOQUxfRVJST1I7CisJCWdvdG8gZG9u ZTsKKwl9CisKIAlzdGF0dXMgPSBOVF9TVEFUVVNfT0s7CiAKIGRvbmU6Ci0tIAoyLjE3LjEK CgpGcm9tIDJlNzcyZjMwMWI1MGNjNGFiNGE2Y2FiZTA4NTgyMTNmYWVhZDhkNDcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1i YS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTc6MjQ6MjQgKzAwMDAKU3ViamVjdDog W1BBVENIIDIxLzI1XSBhdXRoL2NyZWRlbnRpYWxzX2tyYjU6IGFkZCBoZWxwZXIgZGVmaW5l CiBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIKClRoaXMgc2ltcGxpZmllcyB0aGUgZm9sbG93 aW5nIGNvbW1pdHMuCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVn LmNnaT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHpl QHNhbWJhLm9yZz4KLS0tCiBhdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUuYyB8 IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUu YyBiL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNfa3JiNS5jCmluZGV4IDIwZTY3N2U1 MjFhOC4uYzcyNDdjZmU5NzkwIDEwMDY0NAotLS0gYS9hdXRoL2NyZWRlbnRpYWxzL2NyZWRl bnRpYWxzX2tyYjUuYworKysgYi9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUu YwpAQCAtODM1LDkgKzgzNSwxMiBAQCBfUFVCTElDXyBpbnQgY2xpX2NyZWRlbnRpYWxzX2dl dF9jbGllbnRfZ3NzX2NyZWRzKHN0cnVjdCBjbGlfY3JlZGVudGlhbHMgKmNyZWQsCiAJc3Ry dWN0IGdzc2FwaV9jcmVkc19jb250YWluZXIgKmdjYzsKIAlzdHJ1Y3QgY2NhY2hlX2NvbnRh aW5lciAqY2NhY2hlOwogI2lmZGVmIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19Y Ci0JZ3NzX2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZlciA9IEdTU19DX0VNUFRZX0JVRkZFUjsK IAlnc3NfT0lEIG9pZCA9IGRpc2NhcmRfY29uc3QoR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFH U19YKTsKLSNlbmRpZgorI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIgMQorI2Vu ZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YICovCisjaWZkZWYgX19U TVBfTkVFRF9FTVBUWV9CVUZGRkVSCisJZ3NzX2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZlciA9 IEdTU19DX0VNUFRZX0JVRkZFUjsKKyNlbmRpZiAvKiBfX1RNUF9ORUVEX0VNUFRZX0JVRkZG RVIgKi8KIAlrcmI1X2VuY3R5cGUgKmV0eXBlcyA9IE5VTEw7CiAKIAlpZiAoY3JlZC0+Y2xp ZW50X2dzc19jcmVkc19vYnRhaW5lZCA+PSBjcmVkLT5jbGllbnRfZ3NzX2NyZWRzX3RocmVz aG9sZCAmJiAKLS0gCjIuMTcuMQoKCkZyb20gOWIwYTcwYjNlODc5ZDVjMWZlMjM1OWViNmYy NTYzZjdhYjRhNGEzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1l dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNzoy NDoyNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjVdIGF1dGgvY3JlZGVudGlhbHNfa3Ji NTogcmVuYW1lIG9pZCB0byBub19jaV9mbGFnc19vaWQKClRoaXMgd2lsbCBzaW1wbGlmeSB0 aGUgZm9sbG93aW5nIGNvbW1pdC4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcv c2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hl ciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGF1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf a3JiNS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf a3JiNS5jIGIvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1LmMKaW5kZXggYzcy NDdjZmU5NzkwLi4wM2MxZThhOWExMTUgMTAwNjQ0Ci0tLSBhL2F1dGgvY3JlZGVudGlhbHMv Y3JlZGVudGlhbHNfa3JiNS5jCisrKyBiL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf a3JiNS5jCkBAIC04MzUsNyArODM1LDcgQEAgX1BVQkxJQ18gaW50IGNsaV9jcmVkZW50aWFs c19nZXRfY2xpZW50X2dzc19jcmVkcyhzdHJ1Y3QgY2xpX2NyZWRlbnRpYWxzICpjcmVkLAog CXN0cnVjdCBnc3NhcGlfY3JlZHNfY29udGFpbmVyICpnY2M7CiAJc3RydWN0IGNjYWNoZV9j b250YWluZXIgKmNjYWNoZTsKICNpZmRlZiBIQVZFX0dTU19LUkI1X0NSRURfTk9fQ0lfRkxB R1NfWAotCWdzc19PSUQgb2lkID0gZGlzY2FyZF9jb25zdChHU1NfS1JCNV9DUkVEX05PX0NJ X0ZMQUdTX1gpOworCWdzc19PSUQgbm9fY2lfZmxhZ3Nfb2lkID0gZGlzY2FyZF9jb25zdChH U1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gpOwogI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZ X0JVRkZGRVIgMQogI2VuZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19Y ICovCiAjaWZkZWYgX19UTVBfTkVFRF9FTVBUWV9CVUZGRkVSCkBAIC05NzEsNyArOTcxLDcg QEAgX1BVQkxJQ18gaW50IGNsaV9jcmVkZW50aWFsc19nZXRfY2xpZW50X2dzc19jcmVkcyhz dHJ1Y3QgY2xpX2NyZWRlbnRpYWxzICpjcmVkLAogCSAqIGh0dHA6Ly9rcmJkZXYubWl0LmVk dS9ydC9UaWNrZXQvRGlzcGxheS5odG1sP2lkPTY5MzgKIAkgKi8KIAltYWpfc3RhdCA9IGdz c19zZXRfY3JlZF9vcHRpb24oJm1pbl9zdGF0LCAmZ2NjLT5jcmVkcywKLQkJCQkgICAgICAg b2lkLAorCQkJCSAgICAgICBub19jaV9mbGFnc19vaWQsCiAJCQkJICAgICAgICZlbXB0eV9i dWZmZXIpOwogCWlmIChtYWpfc3RhdCkgewogCQl0YWxsb2NfZnJlZShnY2MpOwotLSAKMi4x Ny4xCgoKRnJvbSA0NGQ5NzhmYTg2YzE1YWI0YTVkMzFiZDBlNDFhNjBiYTc5ZjY2NjFkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVA c2FtYmEub3JnPgpEYXRlOiBUaHUsIDIyIEF1ZyAyMDE5IDE3OjI0OjI0ICswMDAwClN1Ympl Y3Q6IFtQQVRDSCAyMy8yNV0gYXV0aC9jcmVkZW50aWFsc19rcmI1OiBsZXQKIGNsaV9jcmVk ZW50aWFsc19nZXRfY2xpZW50X2dzc19jcmVkcygpIHVzZSBOT19UUkFOU0lUX0NIRUNLX1gK ClRoZXJlIG5vIG5lZWQgdG8gZG8gYW55IHBvc3NpYmxlIHRyYW5zaXQgY2hlY2tpbmcgb24K dGhlIGNsaWVudCBzaWRlLgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxt ZXR6ZUBzYW1iYS5vcmc+Ci0tLQogYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1 LmMgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19r cmI1LmMgYi9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUuYwppbmRleCAwM2Mx ZThhOWExMTUuLmI0Y2I0MzhmMDlkMyAxMDA2NDQKLS0tIGEvYXV0aC9jcmVkZW50aWFscy9j cmVkZW50aWFsc19rcmI1LmMKKysrIGIvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19r cmI1LmMKQEAgLTgzOCw2ICs4MzgsMTIgQEAgX1BVQkxJQ18gaW50IGNsaV9jcmVkZW50aWFs c19nZXRfY2xpZW50X2dzc19jcmVkcyhzdHJ1Y3QgY2xpX2NyZWRlbnRpYWxzICpjcmVkLAog CWdzc19PSUQgbm9fY2lfZmxhZ3Nfb2lkID0gZGlzY2FyZF9jb25zdChHU1NfS1JCNV9DUkVE X05PX0NJX0ZMQUdTX1gpOwogI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIgMQog I2VuZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YICovCisjaWZkZWYg SEFWRV9HU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWAorCWdzc19PSUQgbm9fdHJh bnNpdF9vaWQgPSBkaXNjYXJkX2NvbnN0KEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVD S19YKTsKKyNpZm5kZWYgX19UTVBfTkVFRF9FTVBUWV9CVUZGRkVSCisjZGVmaW5lIF9fVE1Q X05FRURfRU1QVFlfQlVGRkZFUiAxCisjZW5kaWYgLyogX19UTVBfTkVFRF9FTVBUWV9CVUZG RkVSICovCisjZW5kaWYgLyogSEFWRV9HU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tf WCAqLwogI2lmZGVmIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUgogCWdzc19idWZmZXJfZGVz YyBlbXB0eV9idWZmZXIgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiAjZW5kaWYgLyogX19UTVBf TkVFRF9FTVBUWV9CVUZGRkVSICovCkBAIC05ODMsNiArOTg5LDIxIEBAIF9QVUJMSUNfIGlu dCBjbGlfY3JlZGVudGlhbHNfZ2V0X2NsaWVudF9nc3NfY3JlZHMoc3RydWN0IGNsaV9jcmVk ZW50aWFscyAqY3JlZCwKIAkJKCplcnJvcl9zdHJpbmcpID0gdGFsbG9jX2FzcHJpbnRmKGNy ZWQsICJnc3Nfc2V0X2NyZWRfb3B0aW9uIGZhaWxlZDogJXMiLCBlcnJvcl9tZXNzYWdlKHJl dCkpOwogCQlyZXR1cm4gcmV0OwogCX0KKyNlbmRpZgorI2lmZGVmIEhBVkVfR1NTX0tSQjVf Q1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKKwltYWpfc3RhdCA9IGdzc19zZXRfY3JlZF9vcHRp b24oJm1pbl9zdGF0LCAmZ2NjLT5jcmVkcywKKwkJCQkgICAgICAgbm9fdHJhbnNpdF9vaWQs CisJCQkJICAgICAgICZlbXB0eV9idWZmZXIpOworCWlmIChtYWpfc3RhdCkgeworCQl0YWxs b2NfZnJlZShnY2MpOworCQlpZiAobWluX3N0YXQpIHsKKwkJCXJldCA9IG1pbl9zdGF0Owor CQl9IGVsc2UgeworCQkJcmV0ID0gRUlOVkFMOworCQl9CisJCSgqZXJyb3Jfc3RyaW5nKSA9 IHRhbGxvY19hc3ByaW50ZihjcmVkLCAiZ3NzX3NldF9jcmVkX29wdGlvbiBmYWlsZWQ6ICVz IiwgZXJyb3JfbWVzc2FnZShyZXQpKTsKKwkJcmV0dXJuIHJldDsKKwl9CiAjZW5kaWYKIAlj cmVkLT5jbGllbnRfZ3NzX2NyZWRzX29idGFpbmVkID0gY3JlZC0+Y2NhY2hlX29idGFpbmVk OwogCXRhbGxvY19zZXRfZGVzdHJ1Y3RvcihnY2MsIGZyZWVfZ3NzYXBpX2NyZWRzKTsKLS0g CjIuMTcuMQoKCkZyb20gYzBjZWZkMGEwYzcxN2Y0MGEzYTY5YjJmMDljZDg4M2YzNzQwYzFj YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1l dHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNzoyNTowOSArMDAwMApT dWJqZWN0OiBbUEFUQ0ggMjQvMjVdIGF1dGgvY3JlZGVudGlhbHNfa3JiNTogbGV0CiBjbGlf Y3JlZGVudGlhbHNfZ2V0X3NlcnZlcl9nc3NfY3JlZHMoKSB1c2UgYW4gZWFybHkgcmV0dXJu CgpUaGlzIHdpbGwgc2ltcGxpZnkgdGhlIG5leHQgY29tbWl0cy4KCkNoZWNrIHdpdGg6IGdp dCBzaG93IC13CgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNn aT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNh bWJhLm9yZz4KLS0tCiBhdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUuYyB8IDE0 ICsrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf a3JiNS5jIGIvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1LmMKaW5kZXggYjRj YjQzOGYwOWQzLi44ZGUxOGM0NDBhMTYgMTAwNjQ0Ci0tLSBhL2F1dGgvY3JlZGVudGlhbHMv Y3JlZGVudGlhbHNfa3JiNS5jCisrKyBiL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf a3JiNS5jCkBAIC0xMzgzLDE0ICsxMzgzLDE2IEBAIF9QVUJMSUNfIGludCBjbGlfY3JlZGVu dGlhbHNfZ2V0X3NlcnZlcl9nc3NfY3JlZHMoc3RydWN0IGNsaV9jcmVkZW50aWFscyAqY3Jl ZCwKIAkJCXJldCA9IEVJTlZBTDsKIAkJfQogCX0KLQlpZiAocmV0ID09IDApIHsKLQkJY3Jl ZC0+c2VydmVyX2dzc19jcmVkc19vYnRhaW5lZCA9IGNyZWQtPmtleXRhYl9vYnRhaW5lZDsK LQkJdGFsbG9jX3NldF9kZXN0cnVjdG9yKGdjYywgZnJlZV9nc3NhcGlfY3JlZHMpOwotCQlj cmVkLT5zZXJ2ZXJfZ3NzX2NyZWRzID0gZ2NjOwotCQkqX2djYyA9IGdjYzsKKwlpZiAocmV0 ICE9IDApIHsKKwkJdGFsbG9jX2ZyZWUobWVtX2N0eCk7CisJCXJldHVybiByZXQ7CiAJfQor CWNyZWQtPnNlcnZlcl9nc3NfY3JlZHNfb2J0YWluZWQgPSBjcmVkLT5rZXl0YWJfb2J0YWlu ZWQ7CisJdGFsbG9jX3NldF9kZXN0cnVjdG9yKGdjYywgZnJlZV9nc3NhcGlfY3JlZHMpOwor CWNyZWQtPnNlcnZlcl9nc3NfY3JlZHMgPSBnY2M7CisJKl9nY2MgPSBnY2M7CiAJdGFsbG9j X2ZyZWUobWVtX2N0eCk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogLyoqIAot LSAKMi4xNy4xCgoKRnJvbSBmNjU2ZjgxNjY3YTQ1NGQwNmFmNzJhYzhjZTZjMTIyMjdhMjZm MTMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8 bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDIyIEF1ZyAyMDE5IDE3OjI1OjMwICswMDAw ClN1YmplY3Q6IFtQQVRDSCAyNS8yNV0gYXV0aC9jcmVkZW50aWFsc19rcmI1OiBtYWtlIHVz ZSBvZgogc21iX2dzc19rcmI1X3ByZXBhcmVfYWNjZXB0b3JfY3JlZCgpCgpXZSBzaG91bGQg Y2hlY2sgYWxsIGtleXMgaW4gb3VyIGluIG1lbW9yeSBrZXl0YWIKYW5kIGRvbid0IG5lZWQg YW55IHRyYW5zaXRlZCBjaGVja3MgaWYgd2UgcmVxdWlyZSBhIFBBQy4KCkJVRzogaHR0cHM6 Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CkJVRzogaHR0cHM6 Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2Zm LWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGF1dGgvY3Jl ZGVudGlhbHMvY3JlZGVudGlhbHNfa3JiNS5jIHwgMTQgKysrKysrKysrKysrKysKIDEgZmls ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXV0aC9jcmVkZW50 aWFscy9jcmVkZW50aWFsc19rcmI1LmMgYi9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxz X2tyYjUuYwppbmRleCA4ZGUxOGM0NDBhMTYuLjMxZDI5ZDNmZDkwZSAxMDA2NDQKLS0tIGEv YXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1LmMKKysrIGIvYXV0aC9jcmVkZW50 aWFscy9jcmVkZW50aWFsc19rcmI1LmMKQEAgLTEzODcsNiArMTM4NywyMCBAQCBfUFVCTElD XyBpbnQgY2xpX2NyZWRlbnRpYWxzX2dldF9zZXJ2ZXJfZ3NzX2NyZWRzKHN0cnVjdCBjbGlf Y3JlZGVudGlhbHMgKmNyZWQsCiAJCXRhbGxvY19mcmVlKG1lbV9jdHgpOwogCQlyZXR1cm4g cmV0OwogCX0KKwltYWpfc3RhdCA9IHNtYl9nc3Nfa3JiNV9wcmVwYXJlX2FjY2VwdG9yX2Ny ZWQoJm1pbl9zdGF0LAorCQkJCQkJICAgICAgdHJ1ZSwgLyogcmVxdWlyZV9wYWMgKi8KKwkJ CQkJCSAgICAgICZnY2MtPmNyZWRzKTsKKwlpZiAobWFqX3N0YXQpIHsKKwkJaWYgKG1pbl9z dGF0KSB7CisJCQlyZXQgPSBtaW5fc3RhdDsKKwkJfSBlbHNlIHsKKwkJCXJldCA9IEVJTlZB TDsKKwkJfQorCX0KKwlpZiAocmV0ICE9IDApIHsKKwkJdGFsbG9jX2ZyZWUobWVtX2N0eCk7 CisJCXJldHVybiByZXQ7CisJfQogCWNyZWQtPnNlcnZlcl9nc3NfY3JlZHNfb2J0YWluZWQg PSBjcmVkLT5rZXl0YWJfb2J0YWluZWQ7CiAJdGFsbG9jX3NldF9kZXN0cnVjdG9yKGdjYywg ZnJlZV9nc3NhcGlfY3JlZHMpOwogCWNyZWQtPnNlcnZlcl9nc3NfY3JlZHMgPSBnY2M7Ci0t IAoyLjE3LjEKCg== --------------DD547EFD1C077ADE310AA0E0-- --qMDF4UvpMrMjwzVC15MYHMNv4Q0g44VeB-- --hOf5XOdOvbTtHREDvOScwgCIBHF66RBan Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEfFbGo3YXpfgryIw9DbX1YShpvVYFAl2JXbIACgkQDbX1YShp vVYThxAAmtx3cg5n4QloeWp9npiTic0jmVrpV95+wOvq5yfCIGGVgQMQZCqkQg59 27rDyPTcMWv6f02rja262XjjBLsqnzeqeRQHwH7JaD7h8smqp1yzppbkRU6On48S OjZZ8OoBxHNopOaRH4aCiKvMP5IApfmrVOvNz9x9IvdtLRwxnbIdKZ5Vs6lDAiD5 Qzc8o0sp1Q7hmX8ZHRForwTGfVscVWbdqJGtSOPnAspdQyPF3Ff+vNDRrXWz9rIF te5I2tZWMnWsnMnNfMC2dLvgKwTgyVeJV+VN+EE9XD9Ol4epQ9pB8S4c4eXT84mH h+HrAVpqYkdAWMRGFgnZhJMvq2MfVixVNn5oxSfTh54yt2Nnyqjqpe3XBBPWKqPL /cnnTY2kEXiSyw9QdPIVZ/cjrxl4cC3awOtW+oVpElGa2Zr/M1/X+4eYBUuPRBsE tDzLJOcMxgPYDyhVt2ABHAiS1Id+QIIQ/6GbwIR5rI6pSdiTUFBBGFakbnPvBQw+ 9mHX1ZBYFdtzTSCKYwuoY1TrwZ2X+NrTkbuFV9EErIUDzgngJ5w28QnJSNbC5iJK kI/yeQvlL2QCO5QlOBLlv1UD6CPgohaJRRJJqgOamRooXnHJNEPqBqUu0sHang+y FXOdJ1blfS5THWTyqOFY/h2y0rT+WGVNoqJECGcXAOjXy1SFxps= =7ZHD -----END PGP SIGNATURE----- --hOf5XOdOvbTtHREDvOScwgCIBHF66RBan-- --===============2708968489704256375== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ krbdev mailing list [email protected] https://mailman.mit.edu/mailman/listinfo/krbdev --===============2708968489704256375==--