From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:36032 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751079AbdKNGgb (ORCPT ); Tue, 14 Nov 2017 01:36:31 -0500 Received: from localhost (unknown [61.253.127.162]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 0DF16124FEA4E for ; Mon, 13 Nov 2017 22:36:28 -0800 (PST) Date: Tue, 14 Nov 2017 15:36:24 +0900 (KST) Message-Id: <20171114.153624.1326066325699549399.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Nov_14_15_36_24_2017_061)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_Nov_14_15_36_24_2017_061)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following bug fixes to 4.9.x and 4.13.x -stable, respectively. Thank you! ----Next_Part(Tue_Nov_14_15_36_24_2017_061)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSAyYjgyMzNmZGMyYjllYjcyMWZkZmM3NDcxZmI3ZmRhMGE0OGM4ZWVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xl LmNvbT4KRGF0ZTogRnJpLCA2IE9jdCAyMDE3IDE5OjAyOjM1ICswMzAwClN1YmplY3Q6IFtQQVRD SCAwMS8yNV0gZ3NvOiBmaXggcGF5bG9hZCBsZW5ndGggd2hlbiBnc29fc2l6ZSBpcyB6ZXJvCgpb IFVwc3RyZWFtIGNvbW1pdCAzZDAyNDFkNTdjN2IyNWJiNzVhYzlkN2E2Mjc1MzY0MjI2NGZkYmNl IF0KCldoZW4gZ3NvX3NpemUgcmVzZXQgdG8gemVybyBmb3IgdGhlIHRhaWwgc2VnbWVudCBpbiBz a2Jfc2VnbWVudCgpLCBsYXRlcgppbiBpcHY2X2dzb19zZWdtZW50KCksIF9fc2tiX3VkcF90dW5u ZWxfc2VnbWVudCgpIGFuZCBncmVfZ3NvX3NlZ21lbnQoKQp3ZSB3aWxsIGdldCBpbmNvcnJlY3Qg cmVzdWx0cyAocGF5bG9hZCBsZW5ndGgsIHBjc3VtKSBmb3IgdGhhdCBzZWdtZW50LgppbmV0X2dz b19zZWdtZW50KCkgYWxyZWFkeSBoYXMgYSBjaGVjayBmb3IgZ3NvX3NpemUgYmVmb3JlIGNhbGN1 bGF0aW5nCnBheWxvYWQuCgpUaGUgaXNzdWUgd2FzIGZvdW5kIHdpdGggTFRQIHZ4bGFuICYgZ3Jl IHRlc3RzIG92ZXIgaXhnYmUgTklDLgoKRml4ZXM6IDA3YjI2Yzk0NTRhMiAoImdzbzogU3VwcG9y dCBwYXJ0aWFsIHNwbGl0dGluZyBhdCB0aGUgZnJhZ19saXN0IHBvaW50ZXIiKQpTaWduZWQtb2Zm LWJ5OiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KQWNrZWQtYnk6 IEFsZXhhbmRlciBEdXljayA8YWxleGFuZGVyLmguZHV5Y2tAaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQv Z3JlX29mZmxvYWQuYyB8IDIgKy0KIG5ldC9pcHY0L3VkcF9vZmZsb2FkLmMgfCAyICstCiBuZXQv aXB2Ni9pcDZfb2ZmbG9hZC5jIHwgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZ3JlX29mZmxvYWQuYyBi L25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKaW5kZXggZDVjYWM5OTE3MGIxLi44YzcyMDM0ZGYyOGUg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQvZ3JlX29m ZmxvYWQuYwpAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmdyZV9nc29f c2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlncmVoID0gKHN0cnVjdCBncmVfYmFzZV9o ZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwogCQlwY3N1bSA9IChfX3N1bTE2ICopKGdy ZWggKyAxKTsKIAotCQlpZiAoZ3NvX3BhcnRpYWwpIHsKKwkJaWYgKGdzb19wYXJ0aWFsICYmIHNr Yl9pc19nc28oc2tiKSkgewogCQkJdW5zaWduZWQgaW50IHBhcnRpYWxfYWRqOwogCiAJCQkvKiBB ZGp1c3QgY2hlY2tzdW0gdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdApkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdWRwX29mZmxvYWQuYyBiL25ldC9pcHY0L3VkcF9vZmZsb2FkLmMKaW5kZXggMDkz MmM4NWI0MmFmLi42NDAxNTc0Y2Q2MzggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcF9vZmZsb2Fk LmMKKysrIGIvbmV0L2lwdjQvdWRwX29mZmxvYWQuYwpAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfdWRwX3R1bm5lbF9zZWdtZW50KHN0cnVjdCBza19idWZm ICpza2IsCiAJCSAqIHdpbGwgYmUgdXNpbmcgYSBsZW5ndGggdmFsdWUgZXF1YWwgdG8gb25seSBv bmUgTVNTIHNpemVkCiAJCSAqIHNlZ21lbnQgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGZyYW1lLgog CQkgKi8KLQkJaWYgKGdzb19wYXJ0aWFsKSB7CisJCWlmIChnc29fcGFydGlhbCAmJiBza2JfaXNf Z3NvKHNrYikpIHsKIAkJCXVoLT5sZW4gPSBodG9ucyhza2Jfc2hpbmZvKHNrYiktPmdzb19zaXpl ICsKIAkJCQkJU0tCX0dTT19DQihza2IpLT5kYXRhX29mZnNldCArCiAJCQkJCXNrYi0+aGVhZCAt ICh1bnNpZ25lZCBjaGFyICopdWgpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X29mZmxvYWQu YyBiL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKaW5kZXggNDI0ZmJlMWY4OTc4Li42NDlmNGQ4N2Iz MTggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjYvaXA2 X29mZmxvYWQuYwpAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXB2 Nl9nc29fc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZm9yIChza2IgPSBzZWdzOyBz a2I7IHNrYiA9IHNrYi0+bmV4dCkgewogCQlpcHY2aCA9IChzdHJ1Y3QgaXB2NmhkciAqKShza2Jf bWFjX2hlYWRlcihza2IpICsgbmhvZmYpOwotCQlpZiAoZ3NvX3BhcnRpYWwpCisJCWlmIChnc29f cGFydGlhbCAmJiBza2JfaXNfZ3NvKHNrYikpCiAJCQlwYXlsb2FkX2xlbiA9IHNrYl9zaGluZm8o c2tiKS0+Z3NvX3NpemUgKwogCQkJCSAgICAgIFNLQl9HU09fQ0Ioc2tiKS0+ZGF0YV9vZmZzZXQg KwogCQkJCSAgICAgIHNrYi0+aGVhZCAtICh1bnNpZ25lZCBjaGFyICopKGlwdjZoICsgMSk7Ci0t IAoyLjEzLjYKCgpGcm9tIDdiMWY2YmVjN2I4MmM2NmZmMDlmMzIwYWM0MDUyYTNiOWZiNTFhZDIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENyYWlnIEdhbGxlayA8a3JhaWdAZ29vZ2xl LmNvbT4KRGF0ZTogTW9uLCAzMCBPY3QgMjAxNyAxODo1MDoxMSAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMDIvMjVdIHR1bi90YXA6IHNhbml0aXplIFRVTlNFVFNOREJVRiBpbnB1dAoKWyBVcHN0cmVh bSBjb21taXQgOTMxNjE5MjJjNjU4YzcxNDcxNTY4NmNkMGNmNjliMDkwY2I5YmYxZCBdCgpTeXpr YWxsZXIgZm91bmQgc2V2ZXJhbCB2YXJpYW50cyBvZiB0aGUgbG9ja3VwIGJlbG93IGJ5IHNldHRp bmcgbmVnYXRpdmUKdmFsdWVzIHdpdGggdGhlIFRVTlNFVFNOREJVRiBpb2N0bC4gIFRoaXMgcGF0 Y2ggYWRkcyBhIHNhbml0eSBjaGVjawp0byBib3RoIHRoZSB0dW4gYW5kIHRhcCB2ZXJzaW9ucyBv ZiB0aGlzIGlvY3RsLgoKICB3YXRjaGRvZzogQlVHOiBzb2Z0IGxvY2t1cCAtIENQVSMwIHN0dWNr IGZvciAyMnMhIFtyZXBybzoyMzg5XQogIE1vZHVsZXMgbGlua2VkIGluOgogIGlycSBldmVudCBz dGFtcDogMzI5NjkyMDU2CiAgaGFyZGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMzI5NjkyMDU1KTog WzxmZmZmZmZmZjgyNGI4MzgxPl0gX3Jhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKzB4MzEvMHg3 NQogIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDMyOTY5MjA1Nik6IFs8ZmZmZmZmZmY4MjRi OWU1OD5dIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4OTgvMHhiMAogIHNvZnRpcnFzIGxhc3QgIGVu YWJsZWQgYXQgKDM1NjU5NzQwKTogWzxmZmZmZmZmZjgyNGJjOTU4Pl0gX19kb19zb2Z0aXJxKzB4 MzI4LzB4NDhjCiAgc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMzU2NTk3MzEpOiBbPGZmZmZm ZmZmODExYzc5NmM+XSBpcnFfZXhpdCsweGJjLzB4ZDAKICBDUFU6IDAgUElEOiAyMzg5IENvbW06 IHJlcHJvIE5vdCB0YWludGVkIDQuMTQuMC1yYzcgIzIzCiAgSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQog IHRhc2s6IGZmZmY4ODAwMDk0NTIxNDAgdGFzay5zdGFjazogZmZmZjg4MDAwNmEyMDAwMAogIFJJ UDogMDAxMDpfcmF3X3NwaW5fbG9ja19pcnFzYXZlKzB4MTEvMHg4MAogIFJTUDogMDAxODpmZmZm ODgwMDA2YTI3YzUwIEVGTEFHUzogMDAwMDAyODIgT1JJR19SQVg6IGZmZmZmZmZmZmZmZmZmMTAK ICBSQVg6IGZmZmY4ODAwMDlhYzY4ZDAgUkJYOiBmZmZmODgwMDA2YTI3Y2UwIFJDWDogMDAwMDAw MDAwMDAwMDAwMAogIFJEWDogMDAwMDAwMDAwMDAwMDAwMSBSU0k6IGZmZmY4ODAwMDZhMjdjZTAg UkRJOiBmZmZmODgwMDA5YWM2OTAwCiAgUkJQOiBmZmZmODgwMDA2YTI3YzYwIFIwODogMDAwMDAw MDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKICBSMTA6IDAwMDAwMDAwMDAwMDAwMDEg UjExOiAwMDAwMDAwMDAwNjNmZjAwIFIxMjogZmZmZjg4MDAwOWFjNjkwMAogIFIxMzogZmZmZjg4 MDAwNmEyN2NmOCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDEgUjE1OiBmZmZmODgwMDA2YTI3Y2Y4CiAg RlM6ICAwMDAwN2Y0YmU0ODM4NzAwKDAwMDApIEdTOmZmZmY4ODAwMGNjMDAwMDAoMDAwMCkga25s R1M6MDAwMDAwMDAwMDAwMDAwMAogIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAw MDAwMDAwODAwNTAwMzMKICBDUjI6IDAwMDAwMDAwMjAxMDEwMDAgQ1IzOiAwMDAwMDAwMDA5NjE2 MDAwIENSNDogMDAwMDAwMDAwMDAwMDZmMAogIENhbGwgVHJhY2U6CiAgIHByZXBhcmVfdG9fd2Fp dCsweDI2LzB4YzAKICAgc29ja19hbGxvY19zZW5kX3Bza2IrMHgxNGUvMHgyNzAKICAgPyByZW1v dmVfd2FpdF9xdWV1ZSsweDYwLzB4NjAKICAgdHVuX2dldF91c2VyKzB4MmNjLzB4MTlkMAogICA/ IF9fdHVuX2dldCsweDYwLzB4MWIwCiAgIHR1bl9jaHJfd3JpdGVfaXRlcisweDU3LzB4ODYKICAg X192ZnNfd3JpdGUrMHgxNTYvMHgxZTAKICAgdmZzX3dyaXRlKzB4ZjcvMHgyMzAKICAgU3lTX3dy aXRlKzB4NTcvMHhkMAogICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWYvMHhiZQogIFJJ UDogMDAzMzoweDdmNGJlNDM1NmRmOQogIFJTUDogMDAyYjowMDAwN2ZmYzE4MTAxYzA4IEVGTEFH UzogMDAwMDAyOTMgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMDEKICBSQVg6IGZmZmZmZmZmZmZm ZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDdmNGJlNDM1NmRmOQogIFJEWDog MDAwMDAwMDAwMDAwMDA0NiBSU0k6IDAwMDAwMDAwMjAxMDEwMDAgUkRJOiAwMDAwMDAwMDAwMDAw MDA1CiAgUkJQOiAwMDAwN2ZmYzE4MTAxYzQwIFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IDAw MDAwMDAwMDAwMDAwMDEKICBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiAwMDAwMDAwMDAwMDAw MjkzIFIxMjogMDAwMDU1OWM3NWY2NDc4MAogIFIxMzogMDAwMDdmZmMxODEwMWQzMCBSMTQ6IDAw MDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCgpGaXhlczogMzNkY2NiYjA1MGJi ICgidHVuOiBMaW1pdCBhbW91bnQgb2YgcXVldWVkIHBhY2tldHMgcGVyIGRldmljZSIpCkZpeGVz OiAyMGQyOWQ3YTkxNmEgKCJuZXQ6IG1hY3Z0YXAgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogQ3Jh aWcgR2FsbGVrIDxrcmFpZ0Bnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjdnRhcC5jIHwgMiArKwogZHJpdmVy cy9uZXQvdHVuLmMgICAgIHwgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYyBiL2RyaXZlcnMvbmV0L21hY3Z0 YXAuYwppbmRleCBhZGVhNmY1YTRkNzEuLjBkYTI5MmU5YTI1YyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvbWFjdnRhcC5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwpAQCAtMTA3Nyw2ICsx MDc3LDggQEAgc3RhdGljIGxvbmcgbWFjdnRhcF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5z aWduZWQgaW50IGNtZCwKIAljYXNlIFRVTlNFVFNOREJVRjoKIAkJaWYgKGdldF91c2VyKHMsIHNw KSkKIAkJCXJldHVybiAtRUZBVUxUOworCQlpZiAocyA8PSAwKQorCQkJcmV0dXJuIC1FSU5WQUw7 CiAKIAkJcS0+c2suc2tfc25kYnVmID0gczsKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IGJhN2Y5ZTA1NGM0YS4uMDFh ZWU2ZWZmMjViIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25l dC90dW4uYwpAQCAtMjE4MCw2ICsyMTgwLDEwIEBAIHN0YXRpYyBsb25nIF9fdHVuX2Nocl9pb2N0 bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKIAkJCXJldCA9IC1FRkFVTFQ7 CiAJCQlicmVhazsKIAkJfQorCQlpZiAoc25kYnVmIDw9IDApIHsKKwkJCXJldCA9IC1FSU5WQUw7 CisJCQlicmVhazsKKwkJfQogCiAJCXR1bi0+c25kYnVmID0gc25kYnVmOwogCQl0dW5fc2V0X3Nu ZGJ1Zih0dW4pOwotLSAKMi4xMy42CgoKRnJvbSAwMDJjNzFhNDU2ZmE2MDZiYzIzYmZmNDY4Y2M5 MTkwYzQ4NzgzNWNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMzAgT2N0IDIwMTcgMjI6NDc6MDkgLTA3 MDAKU3ViamVjdDogW1BBVENIIDAzLzI1XSBpcHY2OiBhZGRyY29uZjogaW5jcmVtZW50IGlmcCBy ZWZjb3VudCBiZWZvcmUKIGlwdjZfZGVsX2FkZHIoKQoKWyBVcHN0cmVhbSBjb21taXQgZTY2OWI4 Njk0NTQ3OGIzZDkwZDJkODdlMzc5M2E2ZWVkMDZkMzMyZiBdCgpJbiB0aGUgKHVubGlrZWx5KSBl dmVudCBmaXh1cF9wZXJtYW5lbnRfYWRkcigpIHJldHVybnMgYSBmYWlsdXJlLAphZGRyY29uZl9w ZXJtYW5lbnRfYWRkcigpIGNhbGxzIGlwdjZfZGVsX2FkZHIoKSB3aXRob3V0IHRoZQptYW5kYXRv cnkgY2FsbCB0byBpbjZfaWZhX2hvbGQoKSwgbGVhZGluZyB0byBhIHJlZmNvdW50IGVycm9yLApz cG90dGVkIGJ5IHN5emthbGxlciA6CgpXQVJOSU5HOiBDUFU6IDEgUElEOiAzMTQyIGF0IGxpYi9y ZWZjb3VudC5jOjIyNyByZWZjb3VudF9kZWMrMHg0Yy8weDUwCmxpYi9yZWZjb3VudC5jOjIyNwpL ZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogcGFuaWNfb25fd2FybiBzZXQgLi4uCgpDUFU6IDEg UElEOiAzMTQyIENvbW06IGlwIE5vdCB0YWludGVkIDQuMTQuMC1yYzQtbmV4dC0yMDE3MTAwOSsg IzMzCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENv bXB1dGUgRW5naW5lLCBCSU9TCkdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBf c3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNiBbaW5saW5lXQogZHVtcF9zdGFjaysweDE5NC8weDI1 NyBsaWIvZHVtcF9zdGFjay5jOjUyCiBwYW5pYysweDFlNC8weDQxYyBrZXJuZWwvcGFuaWMuYzox ODEKIF9fd2FybisweDFjNC8weDFlMCBrZXJuZWwvcGFuaWMuYzo1NDQKIHJlcG9ydF9idWcrMHgy MTEvMHgyZDAgbGliL2J1Zy5jOjE4MwogZml4dXBfYnVnKzB4NDAvMHg5MCBhcmNoL3g4Ni9rZXJu ZWwvdHJhcHMuYzoxNzgKIGRvX3RyYXBfbm9fc2lnbmFsIGFyY2gveDg2L2tlcm5lbC90cmFwcy5j OjIxMiBbaW5saW5lXQogZG9fdHJhcCsweDI2MC8weDM5MCBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMu YzoyNjEKIGRvX2Vycm9yX3RyYXArMHgxMjAvMHgzOTAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6 Mjk4CiBkb19pbnZhbGlkX29wKzB4MWIvMHgyMCBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzozMTEK IGludmFsaWRfb3ArMHgxOC8weDIwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6OTA1ClJJUDog MDAxMDpyZWZjb3VudF9kZWMrMHg0Yy8weDUwIGxpYi9yZWZjb3VudC5jOjIyNwpSU1A6IDAwMTg6 ZmZmZjg4MDFjYTQ5ZTY4MCBFRkxBR1M6IDAwMDEwMjg2ClJBWDogMDAwMDAwMDAwMDAwMDAyYyBS Qlg6IGZmZmY4ODAxZDA3Y2ZjZGMgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClJEWDogMDAwMDAwMDAw MDAwMDAyYyBSU0k6IDFmZmZmMTAwMzk0OTNjOTAgUkRJOiBmZmZmZWQwMDM5NDkzY2M0ClJCUDog ZmZmZjg4MDFjYTQ5ZTY4OCBSMDg6IGZmZmY4ODAxY2E0OWRkNzAgUjA5OiAwMDAwMDAwMDAwMDAw MDAwClIxMDogZmZmZjg4MDFjYTQ5ZGY1OCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAxZmZm ZjEwMDM5NDkzY2Q5ClIxMzogZmZmZjg4MDFjYTQ5ZTZlOCBSMTQ6IGZmZmY4ODAxY2E0OWU3ZTgg UjE1OiBmZmZmODgwMWQwN2NmY2RjCiBfX2luNl9pZmFfcHV0IGluY2x1ZGUvbmV0L2FkZHJjb25m Lmg6MzY5IFtpbmxpbmVdCiBpcHY2X2RlbF9hZGRyKzB4NDJiLzB4YjYwIG5ldC9pcHY2L2FkZHJj b25mLmM6MTIwOAogYWRkcmNvbmZfcGVybWFuZW50X2FkZHIgbmV0L2lwdjYvYWRkcmNvbmYuYzoz MzI3IFtpbmxpbmVdCiBhZGRyY29uZl9ub3RpZnkrMHgxYzY2LzB4MjE5MCBuZXQvaXB2Ni9hZGRy Y29uZi5jOjMzOTMKIG5vdGlmaWVyX2NhbGxfY2hhaW4rMHgxMzYvMHgyYzAga2VybmVsL25vdGlm aWVyLmM6OTMKIF9fcmF3X25vdGlmaWVyX2NhbGxfY2hhaW4ga2VybmVsL25vdGlmaWVyLmM6Mzk0 IFtpbmxpbmVdCiByYXdfbm90aWZpZXJfY2FsbF9jaGFpbisweDJkLzB4NDAga2VybmVsL25vdGlm aWVyLmM6NDAxCiBjYWxsX25ldGRldmljZV9ub3RpZmllcnNfaW5mbysweDMyLzB4NjAgbmV0L2Nv cmUvZGV2LmM6MTY5NwogY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzIG5ldC9jb3JlL2Rldi5jOjE3 MTUgW2lubGluZV0KIF9fZGV2X25vdGlmeV9mbGFncysweDE1ZC8weDQzMCBuZXQvY29yZS9kZXYu Yzo2ODQzCiBkZXZfY2hhbmdlX2ZsYWdzKzB4ZjUvMHgxNDAgbmV0L2NvcmUvZGV2LmM6Njg3OQog ZG9fc2V0bGluaysweGExYi8weDM4ZTAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6MjExMwogcnRubF9u ZXdsaW5rKzB4ZjBkLzB4MWE0MCBuZXQvY29yZS9ydG5ldGxpbmsuYzoyNjYxCiBydG5ldGxpbmtf cmN2X21zZysweDczMy8weDEwOTAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6NDMwMQogbmV0bGlua19y Y3Zfc2tiKzB4MjE2LzB4NDQwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoyNDA4CiBydG5ldGxp bmtfcmN2KzB4MWMvMHgyMCBuZXQvY29yZS9ydG5ldGxpbmsuYzo0MzEzCiBuZXRsaW5rX3VuaWNh c3Rfa2VybmVsIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMjczIFtpbmxpbmVdCiBuZXRsaW5r X3VuaWNhc3QrMHg0ZTgvMHg2ZjAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEyOTkKIG5ldGxp bmtfc2VuZG1zZysweGE0YS8weGU3MCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTg2Mgogc29j a19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MzMgW2lubGluZV0KIHNvY2tfc2VuZG1zZysw eGNhLzB4MTEwIG5ldC9zb2NrZXQuYzo2NDMKIF9fX3N5c19zZW5kbXNnKzB4NzViLzB4OGEwIG5l dC9zb2NrZXQuYzoyMDQ5CiBfX3N5c19zZW5kbXNnKzB4ZTUvMHgyMTAgbmV0L3NvY2tldC5jOjIw ODMKIFNZU0Nfc2VuZG1zZyBuZXQvc29ja2V0LmM6MjA5NCBbaW5saW5lXQogU3lTX3NlbmRtc2cr MHgyZC8weDUwIG5ldC9zb2NrZXQuYzoyMDkwCiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4 MWYvMHhiZQpSSVA6IDAwMzM6MHg3ZmE5MTc0ZDMzMjAKUlNQOiAwMDJiOjAwMDA3ZmZlMzAyYWU5 ZTggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyZQpSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmZTMwMmIyYWUwIFJDWDogMDAwMDdmYTkxNzRkMzMyMApS RFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwN2ZmZTMwMmFlYTIwIFJESTogMDAwMDAwMDAw MDAwMDAxNgpSQlA6IDAwMDAwMDAwMDAwMDAwODIgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTog MDAwMDAwMDAwMDAwMDAwZgpSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAw MjQ2IFIxMjogMDAwMDdmZmUzMDJiMzJhMApSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAw N2ZmZTMwMmIyYWI4IFIxNTogMDAwMDdmZmUzMDJiMzJiOAoKRml4ZXM6IGYxNzA1ZWMxOTdlNyAo Im5ldDogaXB2NjogTWFrZSBhZGRyZXNzIGZsdXNoaW5nIG9uIGlmZG93biBvcHRpb25hbCIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IERhdmlk IEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJu QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2 Ni9hZGRyY29uZi5jCmluZGV4IGNjMTAxYjFiZTkwMy4uYTRmYjkwYzQ4MTlmIDEwMDY0NAotLS0g YS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTMyOTks NiArMzI5OSw3IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX3Blcm1hbmVudF9hZGRyKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpCiAJCWlmICgoaWZwLT5mbGFncyAmIElGQV9GX1BFUk1BTkVOVCkgJiYK IAkJICAgIGZpeHVwX3Blcm1hbmVudF9hZGRyKGlkZXYsIGlmcCkgPCAwKSB7CiAJCQl3cml0ZV91 bmxvY2tfYmgoJmlkZXYtPmxvY2spOworCQkJaW42X2lmYV9ob2xkKGlmcCk7CiAJCQlpcHY2X2Rl bF9hZGRyKGlmcCk7CiAJCQl3cml0ZV9sb2NrX2JoKCZpZGV2LT5sb2NrKTsKIAotLSAKMi4xMy42 CgoKRnJvbSAzNTk3MTFlZTg0MmQ1OWU2MTA3ZWU2NGFlMzI3NTU5N2E5NWMzMDdiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSmFzb24gQS4gRG9uZW5mZWxkIiA8SmFzb25AengyYzQu Y29tPgpEYXRlOiBNb24sIDkgT2N0IDIwMTcgMTQ6MTQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENI IDA0LzI1XSBuZXRsaW5rOiBkbyBub3Qgc2V0IGNiX3J1bm5pbmcgaWYgZHVtcCdzIHN0YXJ0KCkg ZXJycwoKWyBVcHN0cmVhbSBjb21taXQgNDFjODc0MjVhMWFjOWI2MzNlMGZjYzc4ZWIxZjE5NjQw YzhmYjVhMCBdCgpJdCB0dXJucyBvdXQgdGhhdCBtdWx0aXBsZSBwbGFjZXMgY2FuIGNhbGwgbmV0 bGlua19kdW1wKCksIHdoaWNoIG1lYW5zCml0J3Mgc3RpbGwgcG9zc2libGUgdG8gZGVyZWZlcmVu Y2UgcGFydGlhbGx5IGluaXRpYWxpemVkIHZhbHVlcyBpbgpkdW1wKCkgdGhhdCB3ZXJlIHRoZSBy ZXN1bHQgb2YgYSBmYXVsdHkgcmV0dXJuZWQgc3RhcnQoKS4KClRoaXMgZml4ZXMgdGhlIGlzc3Vl IGJ5IGNhbGxpbmcgc3RhcnQoKSBfYmVmb3JlXyBzZXR0aW5nIGNiX3J1bm5pbmcgdG8KdHJ1ZSwg c28gdGhhdCB0aGVyZSdzIG5vIGNoYW5jZSBhdCBhbGwgb2YgaGl0dGluZyB0aGUgZHVtcCgpIGZ1 bmN0aW9uCnRocm91Z2ggYW55IGluZGlyZWN0IHBhdGhzLgoKSXQgYWxzbyBtb3ZlcyB0aGUgY2Fs bCB0byBzdGFydCgpIHRvIGJlIHdoZW4gdGhlIG11dGV4IGlzIGhlbGQuIFRoaXMgaGFzCnRoZSBu aWNlIHNpZGUgZWZmZWN0IG9mIHNlcmlhbGl6aW5nIGludm9jYXRpb25zIHRvIHN0YXJ0KCksIHdo aWNoIGlzCmxpa2VseSBkZXNpcmFibGUgYW55d2F5LiBJdCBhbHNvIHByZXZlbnRzIGFueSBwb3Nz aWJsZSBvdGhlciByYWNlcyB0aGF0Cm1pZ2h0IGNvbWUgb3V0IG9mIHRoaXMgbG9naWMuCgpJbiB0 ZXN0aW5nIHRoaXMgd2l0aCBzZXZlcmFsIGRpZmZlcmVudCBwaWVjZXMgb2YgdHJpY2t5IGNvZGUg dG8gdHJpZ2dlcgp0aGVzZSBpc3N1ZXMsIHRoaXMgY29tbWl0IGZpeGVzIGFsbCBhdmVudWVzIHRo YXQgSSdtIGF3YXJlIG9mLgoKU2lnbmVkLW9mZi1ieTogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNv bkB6eDJjNC5jb20+CkNjOiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0 PgpSZXZpZXdlZC1ieTogSm9oYW5uZXMgQmVyZyA8am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyB8IDEzICsrKysrKystLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25l dGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmluZGV4IDJhNTc3 NWY4YTZjYS4uYTFkY2EzYjE2OWExIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5r LmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC0yMjA3LDE2ICsyMjA3LDE3IEBA IGludCBfX25ldGxpbmtfZHVtcF9zdGFydChzdHJ1Y3Qgc29jayAqc3NrLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCWNiLT5taW5fZHVtcF9hbGxvYyA9IGNvbnRyb2wtPm1pbl9kdW1wX2FsbG9jOwog CWNiLT5za2IgPSBza2I7CiAKKwlpZiAoY2ItPnN0YXJ0KSB7CisJCXJldCA9IGNiLT5zdGFydChj Yik7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX3VubG9jazsKKwl9CisKIAlubGstPmNiX3J1 bm5pbmcgPSB0cnVlOwogCiAJbXV0ZXhfdW5sb2NrKG5say0+Y2JfbXV0ZXgpOwogCi0JcmV0ID0g MDsKLQlpZiAoY2ItPnN0YXJ0KQotCQlyZXQgPSBjYi0+c3RhcnQoY2IpOwotCi0JaWYgKCFyZXQp Ci0JCXJldCA9IG5ldGxpbmtfZHVtcChzayk7CisJcmV0ID0gbmV0bGlua19kdW1wKHNrKTsKIAog CXNvY2tfcHV0KHNrKTsKIAotLSAKMi4xMy42CgoKRnJvbSA3NGQxMzc3ZTBmZjI2ZjBmNjk2MjZj MWZlNGI0YzM3NzM2NzdkZWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTAgT2N0IDIwMTcgMTk6MTI6 MzMgLTA3MDAKU3ViamVjdDogW1BBVENIIDA1LzI1XSBuZXQ6IGNhbGwgY2dyb3VwX3NrX2FsbG9j KCkgZWFybGllciBpbiBza19jbG9uZV9sb2NrKCkKClsgVXBzdHJlYW0gY29tbWl0IGMwNTc2ZTM5 NzUwODRkNDY5OWI3YmZlZjU3ODYxM2ZiOGUxMTQ0ZjYgXQoKSWYgZm9yIHNvbWUgcmVhc29uLCB0 aGUgbmV3bHkgYWxsb2NhdGVkIGNoaWxkIG5lZWQgdG8gYmUgZnJlZWQsCndlIHdpbGwgY2FsbCBj Z3JvdXBfcHV0KCkgKHZpYSBza19mcmVlX3VubG9ja19jbG9uZSgpKSB3aGlsZSB0aGUKY29ycmVz cG9uZGluZyBjZ3JvdXBfZ2V0KCkgd2FzIG5vdCB5ZXQgZG9uZSwgYW5kIHdlIHdpbGwgZnJlZSBt ZW1vcnkKdG9vIHNvb24uCgpGaXhlczogZDk3OWEzOWQ3MjQyICgiY2dyb3VwOiBkdXBsaWNhdGUg Y2dyb3VwIHJlZmVyZW5jZSB3aGVuIGNsb25pbmcgc29ja2V0cyIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEpvaGFubmVzIFdlaW5lciA8aGFu bmVzQGNtcHhjaGcub3JnPgpDYzogVGVqdW4gSGVvIDx0akBrZXJuZWwub3JnPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv c29jay5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5k ZXggMjMxYzM4ZDkxODU1Li5lM2I2MDQ2MGRjOWMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2su YworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTE1MjYsNiArMTUyNiw3IEBAIHN0cnVjdCBzb2Nr ICpza19jbG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgY29uc3QgZ2ZwX3QgcHJpb3Jp dHkpCiAJCW5ld3NrLT5za191c2VybG9ja3MJPSBzay0+c2tfdXNlcmxvY2tzICYgflNPQ0tfQklO RFBPUlRfTE9DSzsKIAogCQlzb2NrX3Jlc2V0X2ZsYWcobmV3c2ssIFNPQ0tfRE9ORSk7CisJCWNn cm91cF9za19hbGxvYygmbmV3c2stPnNrX2NncnBfZGF0YSk7CiAJCXNrYl9xdWV1ZV9oZWFkX2lu aXQoJm5ld3NrLT5za19lcnJvcl9xdWV1ZSk7CiAKIAkJZmlsdGVyID0gcmN1X2RlcmVmZXJlbmNl X3Byb3RlY3RlZChuZXdzay0+c2tfZmlsdGVyLCAxKTsKQEAgLTE1NjAsOCArMTU2MSw2IEBAIHN0 cnVjdCBzb2NrICpza19jbG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgY29uc3QgZ2Zw X3QgcHJpb3JpdHkpCiAJCWF0b21pYzY0X3NldCgmbmV3c2stPnNrX2Nvb2tpZSwgMCk7CiAKIAkJ bWVtX2Nncm91cF9za19hbGxvYyhuZXdzayk7Ci0JCWNncm91cF9za19hbGxvYygmbmV3c2stPnNr X2NncnBfZGF0YSk7Ci0KIAkJLyoKIAkJICogQmVmb3JlIHVwZGF0aW5nIHNrX3JlZmNudCwgd2Ug bXVzdCBjb21taXQgcHJpb3IgY2hhbmdlcyB0byBtZW1vcnkKIAkJICogKERvY3VtZW50YXRpb24v UkNVL3JjdWxpc3RfbnVsbHMudHh0IGZvciBkZXRhaWxzKQotLSAKMi4xMy42CgoKRnJvbSA2NTcx NDNiYmE1NGI4ZTU3YTg4MGMwMjJmZjgxMmQ1NDgxNmViMGVhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwg MzAgT2N0IDIwMTcgMjM6MDg6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIIDA2LzI1XSB0Y3A6IGZp eCB0Y3BfbXR1X3Byb2JlKCkgdnMgaGlnaGVzdF9zYWNrCgpbIFVwc3RyZWFtIGNvbW1pdCAyYjdj ZGE5YzM1ZDNiOTQwZWI5Y2U3NGIzMGJiZDVlYjMwZGI0OTNkIF0KCkJhc2VkIG9uIFNOTVAgdmFs dWVzIHByb3ZpZGVkIGJ5IFJvbWFuLCBZdWNodW5nIG1hZGUgdGhlIG9ic2VydmF0aW9uCnRoYXQg c29tZSBjcmFzaGVzIGluIHRjcF9zYWNrdGFnX3dhbGsoKSBtaWdodCBiZSBjYXVzZWQgYnkgTVRV IHByb2JpbmcuCgpMb29raW5nIGF0IHRjcF9tdHVfcHJvYmUoKSwgSSBmb3VuZCB0aGF0IHdoZW4g YSBuZXcgc2tiIHdhcyBwbGFjZWQKaW4gZnJvbnQgb2YgdGhlIHdyaXRlIHF1ZXVlLCB3ZSB3ZXJl IG5vdCB1cGRhdGluZyB0Y3AgaGlnaGVzdCBzYWNrLgoKSWYgb25lIHNrYiBpcyBmcmVlZCBiZWNh dXNlIGFsbCBpdHMgY29udGVudCB3YXMgY29waWVkIHRvIHRoZSBuZXcgc2tiCihmb3IgTVRVIHBy b2JpbmcpLCB0aGVuIHRwLT5oaWdoZXN0X3NhY2sgY291bGQgcG9pbnQgdG8gYSBub3cgZnJlZWQg c2tiLgoKQmFkIHRoaW5ncyB3b3VsZCB0aGVuIGhhcHBlbiwgaW5jbHVkaW5nIGluZmluaXRlIGxv b3BzLgoKVGhpcyBwYXRjaCByZW5hbWVzIHRjcF9oaWdoZXN0X3NhY2tfY29tYmluZSgpIGFuZCB1 c2VzIGl0CmZyb20gdGNwX210dV9wcm9iZSgpIHRvIGZpeCB0aGUgYnVnLgoKTm90ZSB0aGF0IEkg YWxzbyByZW1vdmVkIG9uZSB0ZXN0IGFnYWluc3QgdHAtPnNhY2tlZF9vdXQsCnNpbmNlIHdlIHdh bnQgdG8gcmVwbGFjZSB0cC0+aGlnaGVzdF9zYWNrIHJlZ2FyZGxlc3Mgb2Ygd2hhdGV2ZXIKY29u ZGl0aW9uLCBzaW5jZSBrZWVwaW5nIGEgc3RhbGUgcG9pbnRlciB0byBmcmVlZCBza2IgaXMgYSBy ZWNpcGUKZm9yIGRpc2FzdGVyLgoKRml4ZXM6IGE0N2U1YTk4OGE1NyAoIltUQ1BdOiBDb252ZXJ0 IGhpZ2hlc3Rfc2FjayB0byBza19idWZmIHRvIGFsbG93IGRpcmVjdCBhY2Nlc3MiKQpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBB bGV4ZWkgU3Rhcm92b2l0b3YgPGFsZXhlaS5zdGFyb3ZvaXRvdkBnbWFpbC5jb20+ClJlcG9ydGVk LWJ5OiBSb21hbiBHdXNoY2hpbiA8Z3Vyb0BmYi5jb20+ClJlcG9ydGVkLWJ5OiBPbGVrc2FuZHIg TmF0YWxlbmtvIDxvbGVrc2FuZHJAbmF0YWxlbmtvLm5hbWU+CkFja2VkLWJ5OiBBbGV4ZWkgU3Rh cm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3 ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGluY2x1ZGUvbmV0L3RjcC5oICAgICB8IDYgKysrLS0tCiBuZXQvaXB2NC90Y3Bfb3V0cHV0 LmMgfCAzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaApp bmRleCAxMjM5NzlmZTEyYmYuLmZiYTRmYzQ2ODcxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv dGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTE2ODEsMTIgKzE2ODEsMTIgQEAgc3Rh dGljIGlubGluZSB2b2lkIHRjcF9oaWdoZXN0X3NhY2tfcmVzZXQoc3RydWN0IHNvY2sgKnNrKQog CXRjcF9zayhzayktPmhpZ2hlc3Rfc2FjayA9IHRjcF93cml0ZV9xdWV1ZV9oZWFkKHNrKTsKIH0K IAotLyogQ2FsbGVkIHdoZW4gb2xkIHNrYiBpcyBhYm91dCB0byBiZSBkZWxldGVkICh0byBiZSBj b21iaW5lZCB3aXRoIG5ldyBza2IpICovCi1zdGF0aWMgaW5saW5lIHZvaWQgdGNwX2hpZ2hlc3Rf c2Fja19jb21iaW5lKHN0cnVjdCBzb2NrICpzaywKKy8qIENhbGxlZCB3aGVuIG9sZCBza2IgaXMg YWJvdXQgdG8gYmUgZGVsZXRlZCBhbmQgcmVwbGFjZWQgYnkgbmV3IHNrYiAqLworc3RhdGljIGlu bGluZSB2b2lkIHRjcF9oaWdoZXN0X3NhY2tfcmVwbGFjZShzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJ CSAgICBzdHJ1Y3Qgc2tfYnVmZiAqb2xkLAogCQkJCQkgICAgc3RydWN0IHNrX2J1ZmYgKm5ldykK IHsKLQlpZiAodGNwX3NrKHNrKS0+c2Fja2VkX291dCAmJiAob2xkID09IHRjcF9zayhzayktPmhp Z2hlc3Rfc2FjaykpCisJaWYgKG9sZCA9PSB0Y3BfaGlnaGVzdF9zYWNrKHNrKSkKIAkJdGNwX3Nr KHNrKS0+aGlnaGVzdF9zYWNrID0gbmV3OwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggODU5MjA3MDdjNGQzLi41NjZi NDNhZmUzNzggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2 NC90Y3Bfb3V0cHV0LmMKQEAgLTE5OTYsNiArMTk5Niw3IEBAIHN0YXRpYyBpbnQgdGNwX210dV9w cm9iZShzdHJ1Y3Qgc29jayAqc2spCiAJbnNrYi0+aXBfc3VtbWVkID0gc2tiLT5pcF9zdW1tZWQ7 CiAKIAl0Y3BfaW5zZXJ0X3dyaXRlX3F1ZXVlX2JlZm9yZShuc2tiLCBza2IsIHNrKTsKKwl0Y3Bf aGlnaGVzdF9zYWNrX3JlcGxhY2Uoc2ssIHNrYiwgbnNrYik7CiAKIAlsZW4gPSAwOwogCXRjcF9m b3Jfd3JpdGVfcXVldWVfZnJvbV9zYWZlKHNrYiwgbmV4dCwgc2spIHsKQEAgLTI1MzUsNyArMjUz Niw3IEBAIHN0YXRpYyB2b2lkIHRjcF9jb2xsYXBzZV9yZXRyYW5zKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCUJVR19PTih0Y3Bfc2tiX3Bjb3VudChza2IpICE9IDEg fHwgdGNwX3NrYl9wY291bnQobmV4dF9za2IpICE9IDEpOwogCi0JdGNwX2hpZ2hlc3Rfc2Fja19j b21iaW5lKHNrLCBuZXh0X3NrYiwgc2tiKTsKKwl0Y3BfaGlnaGVzdF9zYWNrX3JlcGxhY2Uoc2ss IG5leHRfc2tiLCBza2IpOwogCiAJdGNwX3VubGlua193cml0ZV9xdWV1ZShuZXh0X3NrYiwgc2sp OwogCi0tIAoyLjEzLjYKCgpGcm9tIDhhMzU4OTQ5OGZlODZmOGJjMDI2ZjQxNmFlMGU4YjdiMjky MTI1ZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5u YXVsdEBhbHBoYWxpbmsuZnI+CkRhdGU6IEZyaSwgMTMgT2N0IDIwMTcgMTk6MjI6MzUgKzAyMDAK U3ViamVjdDogW1BBVENIIDA3LzI1XSBsMnRwOiBjaGVjayBwcy0+c29jayBiZWZvcmUgcnVubmlu ZwogcHBwb2wydHBfc2Vzc2lvbl9pb2N0bCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1OTAzZjU5NDkz NWEzODQxMTM3Yzg2YjlkNWI3NTE0M2E1YjcxMjFjIF0KCldoZW4gcHBwb2wydHBfc2Vzc2lvbl9p b2N0bCgpIGlzIGNhbGxlZCBieSBwcHBvbDJ0cF90dW5uZWxfaW9jdGwoKSwKdGhlIHNlc3Npb24g bWF5IGJlIHVuY29ubmVjdGVkLiBUaGF0IGlzLCBpdCB3YXMgY3JlYXRlZCBieQpwcHBvbDJ0cF9z ZXNzaW9uX2NyZWF0ZSgpIGFuZCBoYXNuJ3QgYmVlbiBjb25uZWN0ZWQgd2l0aApwcHBvbDJ0cF9j b25uZWN0KCkuIEluIHRoaXMgY2FzZSwgcHMtPnNvY2sgaXMgTlVMTCwgc28gd2UgbmVlZCB0byBj aGVjawpmb3IgdGhpcyBjYXNlIGluIG9yZGVyIHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcgYSBOVUxM IHBvaW50ZXIuCgpGaXhlczogMzA5Nzk1ZjRiZWMyICgibDJ0cDogQWRkIG5ldGxpbmsgY29udHJv bCBBUEkgZm9yIEwyVFAiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRA YWxwaGFsaW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAvbDJ0cF9wcHAuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9wcHAuYyBiL25l dC9sMnRwL2wydHBfcHBwLmMKaW5kZXggMTY5NmYxZmQ1ODc3Li4xNjNmMWZhNTM5MTcgMTAwNjQ0 Ci0tLSBhL25ldC9sMnRwL2wydHBfcHBwLmMKKysrIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwpAQCAt OTkzLDYgKzk5Myw5IEBAIHN0YXRpYyBpbnQgcHBwb2wydHBfc2Vzc2lvbl9pb2N0bChzdHJ1Y3Qg bDJ0cF9zZXNzaW9uICpzZXNzaW9uLAogCQkgc2Vzc2lvbi0+bmFtZSwgY21kLCBhcmcpOwogCiAJ c2sgPSBwcy0+c29jazsKKwlpZiAoIXNrKQorCQlyZXR1cm4gLUVCQURSOworCiAJc29ja19ob2xk KHNrKTsKIAogCXN3aXRjaCAoY21kKSB7Ci0tIAoyLjEzLjYKCgpGcm9tIGEwMmM3OTE5OTBhZTdm ODQwYTZjNzYwNzVjZGM4ZWZhMjdjYjQ1NTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBGcmksIDEzIE9jdCAy MDE3IDExOjU4OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC8yNV0gdHVuOiBjYWxsIGRldl9n ZXRfdmFsaWRfbmFtZSgpIGJlZm9yZQogcmVnaXN0ZXJfbmV0ZGV2aWNlKCkKClsgVXBzdHJlYW0g Y29tbWl0IDBhZDY0NmM4MWIyMTgyZjdmYTY3ZWMwYzhjODI1ZTBlZTE2NTY5NmQgXQoKcmVnaXN0 ZXJfbmV0ZGV2aWNlKCkgY291bGQgZmFpbCBlYXJseSB3aGVuIHdlIGhhdmUgYW4gaW52YWxpZApk ZXYgbmFtZSwgaW4gd2hpY2ggY2FzZSAtPm5kb191bmluaXQoKSBpcyBub3QgY2FsbGVkLiBGb3Ig dHVuCmRldmljZSwgdGhpcyBpcyBhIHByb2JsZW0gYmVjYXVzZSBhIHRpbWVyIGV0Yy4gYXJlIGFs cmVhZHkKaW5pdGlhbGl6ZWQgYW5kIGl0IGV4cGVjdHMgLT5uZG9fdW5pbml0KCkgdG8gY2xlYW4g dGhlbSB1cC4KCldlIGNvdWxkIG1vdmUgdGhlc2UgaW5pdGlhbGl6YXRpb25zIGludG8gYSAtPm5k b19pbml0KCkgc28KdGhhdCByZWdpc3Rlcl9uZXRkZXZpY2UoKSBrbm93cyBiZXR0ZXIsIGhvd2V2 ZXIgdGhpcyBpcyBzdGlsbApjb21wbGljYXRlZCBkdWUgdG8gdGhlIGxvZ2ljIGluIHR1bl9kZXRh Y2goKS4KClRoZXJlZm9yZSwgSSBjaG9vc2UgdG8ganVzdCBjYWxsIGRldl9nZXRfdmFsaWRfbmFt ZSgpIGJlZm9yZQpyZWdpc3Rlcl9uZXRkZXZpY2UoKSwgd2hpY2ggaXMgcXVpY2tlciBhbmQgbXVj aCBlYXNpZXIgdG8gYXVkaXQuCkFuZCBmb3IgdGhpcyBzcGVjaWZpYyBjYXNlLCBpdCBpcyBhbHJl YWR5IGVub3VnaC4KCkZpeGVzOiA5NjQ0MmU0MjQyOWUgKCJ0dW50YXA6IGNob29zZSB0aGUgdHhx IGJhc2VkIG9uIHJ4cSIpClJlcG9ydGVkLWJ5OiBEbWl0cnkgQWxleGVldiA8YXZla2NlZWJAZ21h aWwuY29tPgpDYzogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQ2M6ICJNaWNoYWVs IFMuIFRzaXJraW4iIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyAgICAgICAgIHwgMyAr KysKIGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggfCAzICsrKwogbmV0L2NvcmUvZGV2LmMgICAg ICAgICAgICB8IDYgKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0 L3R1bi5jCmluZGV4IDAxYWVlNmVmZjI1Yi4uYTc3NGM4MjdhNDE0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25ldC90dW4uYwpAQCAtMTc4Nyw2ICsxNzg3LDkg QEAgc3RhdGljIGludCB0dW5fc2V0X2lmZihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgaWZyZXEgKmlmcikKIAogCQlpZiAoIWRldikKIAkJCXJldHVybiAtRU5PTUVN OworCQllcnIgPSBkZXZfZ2V0X3ZhbGlkX25hbWUobmV0LCBkZXYsIG5hbWUpOworCQlpZiAoZXJy KQorCQkJZ290byBlcnJfZnJlZV9kZXY7CiAKIAkJZGV2X25ldF9zZXQoZGV2LCBuZXQpOwogCQlk ZXYtPnJ0bmxfbGlua19vcHMgPSAmdHVuX2xpbmtfb3BzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9uZXRkZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggMjNkYjFh ZTM3NDY0Li40N2M3ZjViOGY2NzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNl LmgKKysrIGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaApAQCAtMzc0Miw2ICszNzQyLDkgQEAg c3RydWN0IG5ldF9kZXZpY2UgKmFsbG9jX25ldGRldl9tcXMoaW50IHNpemVvZl9wcml2LCBjb25z dCBjaGFyICpuYW1lLAogCQkJCSAgICB1bnNpZ25lZCBjaGFyIG5hbWVfYXNzaWduX3R5cGUsCiAJ CQkJICAgIHZvaWQgKCpzZXR1cCkoc3RydWN0IG5ldF9kZXZpY2UgKiksCiAJCQkJICAgIHVuc2ln bmVkIGludCB0eHFzLCB1bnNpZ25lZCBpbnQgcnhxcyk7CitpbnQgZGV2X2dldF92YWxpZF9uYW1l KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpOworCiAjZGVmaW5lIGFsbG9jX25ldGRldihzaXplb2ZfcHJpdiwgbmFtZSwg bmFtZV9hc3NpZ25fdHlwZSwgc2V0dXApIFwKIAlhbGxvY19uZXRkZXZfbXFzKHNpemVvZl9wcml2 LCBuYW1lLCBuYW1lX2Fzc2lnbl90eXBlLCBzZXR1cCwgMSwgMSkKIApkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA3ZjJjYWFkNDZhM2QuLmMzNzg5MTgy OGU0ZSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAg LTExMTUsOSArMTExNSw4IEBAIHN0YXRpYyBpbnQgZGV2X2FsbG9jX25hbWVfbnMoc3RydWN0IG5l dCAqbmV0LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZGV2X2dldF92YWxpZF9uYW1l KHN0cnVjdCBuZXQgKm5ldCwKLQkJCSAgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCi0JCQkg ICAgICBjb25zdCBjaGFyICpuYW1lKQoraW50IGRldl9nZXRfdmFsaWRfbmFtZShzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCSAgICAgICBjb25zdCBjaGFyICpuYW1l KQogewogCUJVR19PTighbmV0KTsKIApAQCAtMTEzMyw2ICsxMTMyLDcgQEAgc3RhdGljIGludCBk ZXZfZ2V0X3ZhbGlkX25hbWUoc3RydWN0IG5ldCAqbmV0LAogCiAJcmV0dXJuIDA7CiB9CitFWFBP UlRfU1lNQk9MKGRldl9nZXRfdmFsaWRfbmFtZSk7CiAKIC8qKgogICoJZGV2X2NoYW5nZV9uYW1l IC0gY2hhbmdlIG5hbWUgb2YgYSBkZXZpY2UKLS0gCjIuMTMuNgoKCkZyb20gMDVjOGY3YzY2MDg2 MmI3Mzc0YmQ0NDAzNzEyNWU0MmU1NjNhMjUzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDE4IE9jdCAyMDE3 IDIxOjM3OjQ5ICswODAwClN1YmplY3Q6IFtQQVRDSCAwOS8yNV0gc2N0cDogYWRkIHRoZSBtaXNz aW5nIHNvY2tfb3duZWRfYnlfdXNlciBjaGVjayBpbgogc2N0cF9pY21wX3JlZGlyZWN0CgpbIFVw c3RyZWFtIGNvbW1pdCAxY2MyNzZjZWM5ZWM1NzRkNDFjZjQ3ZGZjMGY1MTQwNmI2ZjI2YWI0IF0K Ck5vdyBzY3RwIHByb2Nlc3NlcyBpY21wIHJlZGlyZWN0IHBhY2tldCBpbiBzY3RwX2ljbXBfcmVk aXJlY3Qgd2hlcmUKaXQgY2FsbHMgc2N0cF90cmFuc3BvcnRfZHN0X2NoZWNrIGluIHdoaWNoIHRw LT5kc3QgY2FuIGJlIHJlbGVhc2VkLgoKVGhlIHByb2JsZW0gaXMgYmVmb3JlIGNhbGxpbmcgc2N0 cF90cmFuc3BvcnRfZHN0X2NoZWNrLCBpdCBkb2Vzbid0CmNoZWNrIHNvY2tfb3duZWRfYnlfdXNl ciwgd2hpY2ggbWVhbnMgdHAtPmRzdCBjb3VsZCBiZSBmcmVlZCB3aGlsZQphIHByb2Nlc3MgaXMg YWNjZXNzaW5nIGl0IHdpdGggb3duaW5nIHRoZSBzb2NrZXQuCgpBbiB1c2UtYWZ0ZXItZnJlZSBp c3N1ZSBjb3VsZCBiZSB0cmlnZ2VyZWQgYnkgdGhpcy4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0 IGJ5IGNoZWNraW5nIHNvY2tfb3duZWRfYnlfdXNlciBiZWZvcmUgY2FsbGluZwpzY3RwX3RyYW5z cG9ydF9kc3RfY2hlY2sgaW4gc2N0cF9pY21wX3JlZGlyZWN0LCBzbyB0aGF0IGl0IHdvdWxkIG5v dApyZWxlYXNlIHRwLT5kc3QgaWYgdXNlcnMgc3RpbGwgaG9sZCBzb2NrIGxvY2suCgpCZXNpZGVz LCB0aGUgc2FtZSBpc3N1ZSBmaXhlZCBpbiBjb21taXQgNDVjYWVhYTVhYzBiICgiZGNjcC90Y3A6 IGZpeApyb3V0aW5nIHJlZGlyZWN0IHJhY2UiKSBvbiBzY3RwIGFsc28gbmVlZHMgdGhpcyBjaGVj ay4KCkZpeGVzOiA1NWJlN2E5YzYwNzQgKCJpcHY0OiBBZGQgcmVkaXJlY3Qgc3VwcG9ydCB0byBh bGwgcHJvdG9jb2wgaWNtcCBlcnJvciBoYW5kbGVycyIpClJlcG9ydGVkLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4u eGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxv LmxlaXRuZXJAZ21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJp dmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9zY3RwL2lucHV0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9pbnB1dC5jIGIv bmV0L3NjdHAvaW5wdXQuYwppbmRleCA2Yzc5OTE1YzdkYmMuLjY4Yjg0ZDNhN2NhYyAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvaW5wdXQuYworKysgYi9uZXQvc2N0cC9pbnB1dC5jCkBAIC00MjEsNyAr NDIxLDcgQEAgdm9pZCBzY3RwX2ljbXBfcmVkaXJlY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2N0cF90cmFuc3BvcnQgKnQsCiB7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCi0JaWYgKCF0 KQorCWlmIChzb2NrX293bmVkX2J5X3VzZXIoc2spIHx8ICF0KQogCQlyZXR1cm47CiAJZHN0ID0g c2N0cF90cmFuc3BvcnRfZHN0X2NoZWNrKHQpOwogCWlmIChkc3QpCi0tIAoyLjEzLjYKCgpGcm9t IGVjNDIyM2U4ZjliYWVlMTg3MzY0NmNiYjRmZGRiOGUxMDE1N2FiNGQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTog RnJpLCAyMCBPY3QgMjAxNyAwOTowNDoxMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjVdIHRj cC9kY2NwOiBmaXggaXJlcS0+b3B0IHJhY2VzCgpbIFVwc3RyZWFtIGNvbW1pdCBjOTJlOGMwMmZl NjY0MTU1YWM0MjM0NTE2ZTMyNTQ0YmVjMGYxMTNkIF0KCnN5emthbGxlciBmb3VuZCBhbm90aGVy IGJ1ZyBpbiBEQ0NQL1RDUCBzdGFja3MgWzFdCgpGb3IgdGhlIHJlYXNvbnMgZXhwbGFpbmVkIGlu IGNvbW1pdCBjZTEwNTAwODljOTYgKCJ0Y3AvZGNjcDogZml4CmlyZXEtPnBrdG9wdHMgcmFjZSIp LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBkbyBub3QgYWNjZXNzCmlyZXEtPm9wdCB1bmxlc3Mg d2Ugb3duIHRoZSByZXF1ZXN0IHNvY2suCgpOb3RlIHRoZSBvcHQgZmllbGQgaXMgcmVuYW1lZCB0 byBpcmVxX29wdCB0byBlYXNlIGdyZXAgZ2FtZXMuCgpbMV0KQlVHOiBLQVNBTjogdXNlLWFmdGVy LWZyZWUgaW4gaXBfcXVldWVfeG1pdCsweDE2ODcvMHgxOGUwIG5ldC9pcHY0L2lwX291dHB1dC5j OjQ3NApSZWFkIG9mIHNpemUgMSBhdCBhZGRyIGZmZmY4ODAxYzk1MTAzOWMgYnkgdGFzayBzeXot ZXhlY3V0b3I1LzMyOTUKCkNQVTogMSBQSUQ6IDMyOTUgQ29tbTogc3l6LWV4ZWN1dG9yNSBOb3Qg dGFpbnRlZCA0LjE0LjAtcmM0KyAjODAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21w dXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEK Q2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjE2IFtpbmxpbmVdCiBk dW1wX3N0YWNrKzB4MTk0LzB4MjU3IGxpYi9kdW1wX3N0YWNrLmM6NTIKIHByaW50X2FkZHJlc3Nf ZGVzY3JpcHRpb24rMHg3My8weDI1MCBtbS9rYXNhbi9yZXBvcnQuYzoyNTIKIGthc2FuX3JlcG9y dF9lcnJvciBtbS9rYXNhbi9yZXBvcnQuYzozNTEgW2lubGluZV0KIGthc2FuX3JlcG9ydCsweDI1 Yi8weDM0MCBtbS9rYXNhbi9yZXBvcnQuYzo0MDkKIF9fYXNhbl9yZXBvcnRfbG9hZDFfbm9hYm9y dCsweDE0LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDI3CiBpcF9xdWV1ZV94bWl0KzB4MTY4Ny8w eDE4ZTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6NDc0CiB0Y3BfdHJhbnNtaXRfc2tiKzB4MWFiNy8w eDM4NDAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjExMzUKIHRjcF9zZW5kX2Fjay5wYXJ0LjM3KzB4 M2JiLzB4NjUwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzozNTg3CiB0Y3Bfc2VuZF9hY2srMHg0OS8w eDYwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzozNTU3CiBfX3RjcF9hY2tfc25kX2NoZWNrKzB4MmM2 LzB4NGIwIG5ldC9pcHY0L3RjcF9pbnB1dC5jOjUwNzIKIHRjcF9hY2tfc25kX2NoZWNrIG5ldC9p cHY0L3RjcF9pbnB1dC5jOjUwODUgW2lubGluZV0KIHRjcF9yY3Zfc3RhdGVfcHJvY2VzcysweDJl ZmYvMHg0ODUwIG5ldC9pcHY0L3RjcF9pbnB1dC5jOjYwNzEKIHRjcF9jaGlsZF9wcm9jZXNzKzB4 MzQyLzB4OTkwIG5ldC9pcHY0L3RjcF9taW5pc29ja3MuYzo4MTYKIHRjcF92NF9yY3YrMHgxODI3 LzB4MmY4MCBuZXQvaXB2NC90Y3BfaXB2NC5jOjE2ODIKIGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNo KzB4MmUyLzB4YmEwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjE2CiBORl9IT09LIGluY2x1ZGUvbGlu dXgvbmV0ZmlsdGVyLmg6MjQ5IFtpbmxpbmVdCiBpcF9sb2NhbF9kZWxpdmVyKzB4MWNlLzB4NmUw IG5ldC9pcHY0L2lwX2lucHV0LmM6MjU3CiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDY0 IFtpbmxpbmVdCiBpcF9yY3ZfZmluaXNoKzB4ODg3LzB4MTlhMCBuZXQvaXB2NC9pcF9pbnB1dC5j OjM5NwogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI0OSBbaW5saW5lXQogaXBf cmN2KzB4YzNmLzB4MTgyMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjQ5MwogX19uZXRpZl9yZWNlaXZl X3NrYl9jb3JlKzB4MWEzZS8weDM0YjAgbmV0L2NvcmUvZGV2LmM6NDQ3NgogX19uZXRpZl9yZWNl aXZlX3NrYisweDJjLzB4MWIwIG5ldC9jb3JlL2Rldi5jOjQ1MTQKIG5ldGlmX3JlY2VpdmVfc2ti X2ludGVybmFsKzB4MTBiLzB4NjcwIG5ldC9jb3JlL2Rldi5jOjQ1ODcKIG5ldGlmX3JlY2VpdmVf c2tiKzB4YWUvMHgzOTAgbmV0L2NvcmUvZGV2LmM6NDYxMQogdHVuX3J4X2JhdGNoZWQuaXNyYS41 MCsweDVlZC8weDg2MCBkcml2ZXJzL25ldC90dW4uYzoxMzcyCiB0dW5fZ2V0X3VzZXIrMHgyNDlj LzB4MzZkMCBkcml2ZXJzL25ldC90dW4uYzoxNzY2CiB0dW5fY2hyX3dyaXRlX2l0ZXIrMHhiZi8w eDE2MCBkcml2ZXJzL25ldC90dW4uYzoxNzkyCiBjYWxsX3dyaXRlX2l0ZXIgaW5jbHVkZS9saW51 eC9mcy5oOjE3NzAgW2lubGluZV0KIG5ld19zeW5jX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo0Njgg W2lubGluZV0KIF9fdmZzX3dyaXRlKzB4NjhhLzB4OTcwIGZzL3JlYWRfd3JpdGUuYzo0ODEKIHZm c193cml0ZSsweDE4Zi8weDUxMCBmcy9yZWFkX3dyaXRlLmM6NTQzCiBTWVNDX3dyaXRlIGZzL3Jl YWRfd3JpdGUuYzo1ODggW2lubGluZV0KIFN5U193cml0ZSsweGVmLzB4MjIwIGZzL3JlYWRfd3Jp dGUuYzo1ODAKIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGJlClJJUDogMDAzMzow eDQwYzM0MQpSU1A6IDAwMmI6MDAwMDdmNDY5NTIzZWMxMCBFRkxBR1M6IDAwMDAwMjkzIE9SSUdf UkFYOiAwMDAwMDAwMDAwMDAwMDAxClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAw MDA3MTgwMDAgUkNYOiAwMDAwMDAwMDAwNDBjMzQxClJEWDogMDAwMDAwMDAwMDAwMDAzNyBSU0k6 IDAwMDAwMDAwMjAwMDQwMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDE1ClJCUDogMDAwMDAwMDAwMDAw MDA4NiBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAw MDAwMDAwMDBmNDI0MCBSMTE6IDAwMDAwMDAwMDAwMDAyOTMgUjEyOiAwMDAwMDAwMDAwNGI3ZmQx ClIxMzogMDAwMDAwMDBmZmZmZmZmZiBSMTQ6IDAwMDAwMDAwMjAwMDAwMDAgUjE1OiAwMDAwMDAw MDAwMDI1MDAwCgpBbGxvY2F0ZWQgYnkgdGFzayAzMjk1Ogogc2F2ZV9zdGFja190cmFjZSsweDE2 LzB4MjAgYXJjaC94ODYva2VybmVsL3N0YWNrdHJhY2UuYzo1OQogc2F2ZV9zdGFjaysweDQzLzB4 ZDAgbW0va2FzYW4va2FzYW4uYzo0NDcKIHNldF90cmFjayBtbS9rYXNhbi9rYXNhbi5jOjQ1OSBb aW5saW5lXQoga2FzYW5fa21hbGxvYysweGFkLzB4ZTAgbW0va2FzYW4va2FzYW4uYzo1NTEKIF9f ZG9fa21hbGxvYyBtbS9zbGFiLmM6MzcyNSBbaW5saW5lXQogX19rbWFsbG9jKzB4MTYyLzB4NzYw IG1tL3NsYWIuYzozNzM0CiBrbWFsbG9jIGluY2x1ZGUvbGludXgvc2xhYi5oOjQ5OCBbaW5saW5l XQogdGNwX3Y0X3NhdmVfb3B0aW9ucyBpbmNsdWRlL25ldC90Y3AuaDoxOTYyIFtpbmxpbmVdCiB0 Y3BfdjRfaW5pdF9yZXErMHgyZDMvMHgzZTAgbmV0L2lwdjQvdGNwX2lwdjQuYzoxMjcxCiB0Y3Bf Y29ubl9yZXF1ZXN0KzB4ZjZkLzB4MzQxMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo2MjgzCiB0Y3Bf djRfY29ubl9yZXF1ZXN0KzB4MTU3LzB4MjEwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTMxMwogdGNw X3Jjdl9zdGF0ZV9wcm9jZXNzKzB4OGVhLzB4NDg1MCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1ODU3 CiB0Y3BfdjRfZG9fcmN2KzB4NTVjLzB4N2QwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTQ4MgogdGNw X3Y0X3JjdisweDJkMTAvMHgyZjgwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTcxMQogaXBfbG9jYWxf ZGVsaXZlcl9maW5pc2grMHgyZTIvMHhiYTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMTYKIE5GX0hP T0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNDkgW2lubGluZV0KIGlwX2xvY2FsX2RlbGl2 ZXIrMHgxY2UvMHg2ZTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTcKIGRzdF9pbnB1dCBpbmNsdWRl L25ldC9kc3QuaDo0NjQgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHg4ODcvMHgxOWEwIG5ldC9p cHY0L2lwX2lucHV0LmM6Mzk3CiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjQ5 IFtpbmxpbmVdCiBpcF9yY3YrMHhjM2YvMHgxODIwIG5ldC9pcHY0L2lwX2lucHV0LmM6NDkzCiBf X25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHgxYTNlLzB4MzRiMCBuZXQvY29yZS9kZXYuYzo0NDc2 CiBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MmMvMHgxYjAgbmV0L2NvcmUvZGV2LmM6NDUxNAogbmV0 aWZfcmVjZWl2ZV9za2JfaW50ZXJuYWwrMHgxMGIvMHg2NzAgbmV0L2NvcmUvZGV2LmM6NDU4Nwog bmV0aWZfcmVjZWl2ZV9za2IrMHhhZS8weDM5MCBuZXQvY29yZS9kZXYuYzo0NjExCiB0dW5fcnhf YmF0Y2hlZC5pc3JhLjUwKzB4NWVkLzB4ODYwIGRyaXZlcnMvbmV0L3R1bi5jOjEzNzIKIHR1bl9n ZXRfdXNlcisweDI0OWMvMHgzNmQwIGRyaXZlcnMvbmV0L3R1bi5jOjE3NjYKIHR1bl9jaHJfd3Jp dGVfaXRlcisweGJmLzB4MTYwIGRyaXZlcnMvbmV0L3R1bi5jOjE3OTIKIGNhbGxfd3JpdGVfaXRl ciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTc3MCBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVh ZF93cml0ZS5jOjQ2OCBbaW5saW5lXQogX192ZnNfd3JpdGUrMHg2OGEvMHg5NzAgZnMvcmVhZF93 cml0ZS5jOjQ4MQogdmZzX3dyaXRlKzB4MThmLzB4NTEwIGZzL3JlYWRfd3JpdGUuYzo1NDMKIFNZ U0Nfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjU4OCBbaW5saW5lXQogU3lTX3dyaXRlKzB4ZWYvMHgy MjAgZnMvcmVhZF93cml0ZS5jOjU4MAogZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFmLzB4 YmUKCkZyZWVkIGJ5IHRhc2sgMzMwNjoKIHNhdmVfc3RhY2tfdHJhY2UrMHgxNi8weDIwIGFyY2gv eDg2L2tlcm5lbC9zdGFja3RyYWNlLmM6NTkKIHNhdmVfc3RhY2srMHg0My8weGQwIG1tL2thc2Fu L2thc2FuLmM6NDQ3CiBzZXRfdHJhY2sgbW0va2FzYW4va2FzYW4uYzo0NTkgW2lubGluZV0KIGth c2FuX3NsYWJfZnJlZSsweDcxLzB4YzAgbW0va2FzYW4va2FzYW4uYzo1MjQKIF9fY2FjaGVfZnJl ZSBtbS9zbGFiLmM6MzUwMyBbaW5saW5lXQoga2ZyZWUrMHhjYS8weDI1MCBtbS9zbGFiLmM6Mzgy MAogaW5ldF9zb2NrX2Rlc3RydWN0KzB4NTlkLzB4OTUwIG5ldC9pcHY0L2FmX2luZXQuYzoxNTcK IF9fc2tfZGVzdHJ1Y3QrMHhmZC8weDkxMCBuZXQvY29yZS9zb2NrLmM6MTU2MAogc2tfZGVzdHJ1 Y3QrMHg0Ny8weDgwIG5ldC9jb3JlL3NvY2suYzoxNTk1CiBfX3NrX2ZyZWUrMHg1Ny8weDIzMCBu ZXQvY29yZS9zb2NrLmM6MTYwMwogc2tfZnJlZSsweDJhLzB4NDAgbmV0L2NvcmUvc29jay5jOjE2 MTQKIHNvY2tfcHV0IGluY2x1ZGUvbmV0L3NvY2suaDoxNjUyIFtpbmxpbmVdCiBpbmV0X2Nza19j b21wbGV0ZV9oYXNoZGFuY2UrMHhkNS8weGYwIG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2Nr LmM6OTU5CiB0Y3BfY2hlY2tfcmVxKzB4ZjRkLzB4MTYyMCBuZXQvaXB2NC90Y3BfbWluaXNvY2tz LmM6NzY1CiB0Y3BfdjRfcmN2KzB4MTdmNi8weDJmODAgbmV0L2lwdjQvdGNwX2lwdjQuYzoxNjc1 CiBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDJlMi8weGJhMCBuZXQvaXB2NC9pcF9pbnB1dC5j OjIxNgogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI0OSBbaW5saW5lXQogaXBf bG9jYWxfZGVsaXZlcisweDFjZS8weDZlMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjI1NwogZHN0X2lu cHV0IGluY2x1ZGUvbmV0L2RzdC5oOjQ2NCBbaW5saW5lXQogaXBfcmN2X2ZpbmlzaCsweDg4Ny8w eDE5YTAgbmV0L2lwdjQvaXBfaW5wdXQuYzozOTcKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRm aWx0ZXIuaDoyNDkgW2lubGluZV0KIGlwX3JjdisweGMzZi8weDE4MjAgbmV0L2lwdjQvaXBfaW5w dXQuYzo0OTMKIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDFhM2UvMHgzNGIwIG5ldC9jb3Jl L2Rldi5jOjQ0NzYKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFiMCBuZXQvY29yZS9kZXYu Yzo0NTE0CiBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDEwYi8weDY3MCBuZXQvY29yZS9k ZXYuYzo0NTg3CiBuZXRpZl9yZWNlaXZlX3NrYisweGFlLzB4MzkwIG5ldC9jb3JlL2Rldi5jOjQ2 MTEKIHR1bl9yeF9iYXRjaGVkLmlzcmEuNTArMHg1ZWQvMHg4NjAgZHJpdmVycy9uZXQvdHVuLmM6 MTM3MgogdHVuX2dldF91c2VyKzB4MjQ5Yy8weDM2ZDAgZHJpdmVycy9uZXQvdHVuLmM6MTc2Ngog dHVuX2Nocl93cml0ZV9pdGVyKzB4YmYvMHgxNjAgZHJpdmVycy9uZXQvdHVuLmM6MTc5MgogY2Fs bF93cml0ZV9pdGVyIGluY2x1ZGUvbGludXgvZnMuaDoxNzcwIFtpbmxpbmVdCiBuZXdfc3luY193 cml0ZSBmcy9yZWFkX3dyaXRlLmM6NDY4IFtpbmxpbmVdCiBfX3Zmc193cml0ZSsweDY4YS8weDk3 MCBmcy9yZWFkX3dyaXRlLmM6NDgxCiB2ZnNfd3JpdGUrMHgxOGYvMHg1MTAgZnMvcmVhZF93cml0 ZS5jOjU0MwogU1lTQ193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NTg4IFtpbmxpbmVdCiBTeVNfd3Jp dGUrMHhlZi8weDIyMCBmcy9yZWFkX3dyaXRlLmM6NTgwCiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3Rw YXRoKzB4MWYvMHhiZQoKRml4ZXM6IGU5OTRiMmYwZmI5MiAoInRjcDogZG8gbm90IGxvY2sgbGlz dGVuZXIgdG8gcHJvY2VzcyBTWU4gcGFja2V0cyIpCkZpeGVzOiAwNzkwOTZmMTAzZmEgKCJ0Y3Av ZGNjcDogaW5zdGFsbCBzeW5fcmVjdiByZXF1ZXN0cyBpbnRvIGVoYXNoIHRhYmxlIikKU2lnbmVk LW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQv aW5ldF9zb2NrLmggICAgICAgICB8ICAyICstCiBuZXQvZGNjcC9pcHY0LmMgICAgICAgICAgICAg ICAgIHwgMTMgKysrKysrKystLS0tLQogbmV0L2lwdjQvY2lwc29faXB2NC5jICAgICAgICAgICB8 IDI0ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3Nv Y2suYyB8ICA4ICsrKy0tLS0tCiBuZXQvaXB2NC9zeW5jb29raWVzLmMgICAgICAgICAgIHwgIDIg Ky0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQvdGNw X2lwdjQuYyAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKy0tLS0tLS0tLQogNyBmaWxlcyBj aGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9p bmNsdWRlL25ldC9pbmV0X3NvY2suaCBiL2luY2x1ZGUvbmV0L2luZXRfc29jay5oCmluZGV4IDIz NmE4MTAzNGZlZi4uNjIxM2E5MGE4Y2VjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0X3Nv Y2suaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X3NvY2suaApAQCAtOTYsNyArOTYsNyBAQCBzdHJ1 Y3QgaW5ldF9yZXF1ZXN0X3NvY2sgewogCWttZW1jaGVja19iaXRmaWVsZF9lbmQoZmxhZ3MpOwog CXUzMiAgICAgICAgICAgICAgICAgICAgIGlyX21hcms7CiAJdW5pb24gewotCQlzdHJ1Y3QgaXBf b3B0aW9uc19yY3UJKm9wdDsKKwkJc3RydWN0IGlwX29wdGlvbnNfcmN1IF9fcmN1CSppcmVxX29w dDsKICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQogCQlzdHJ1Y3QgewogCQkJc3RydWN0IGlw djZfdHhvcHRpb25zCSppcHY2X29wdDsKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjQuYyBiL25l dC9kY2NwL2lwdjQuYwppbmRleCA4ZmMxNjAwOThlMTEuLjc3ZjVlMzUyNGViYyAxMDA2NDQKLS0t IGEvbmV0L2RjY3AvaXB2NC5jCisrKyBiL25ldC9kY2NwL2lwdjQuYwpAQCAtNDE0LDggKzQxNCw3 IEBAIHN0cnVjdCBzb2NrICpkY2NwX3Y0X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBz b2NrICpzaywKIAlza19kYWRkcl9zZXQobmV3c2ssIGlyZXEtPmlyX3JtdF9hZGRyKTsKIAlza19y Y3Zfc2FkZHJfc2V0KG5ld3NrLCBpcmVxLT5pcl9sb2NfYWRkcik7CiAJbmV3aW5ldC0+aW5ldF9z YWRkcgk9IGlyZXEtPmlyX2xvY19hZGRyOwotCW5ld2luZXQtPmluZXRfb3B0CT0gaXJlcS0+b3B0 OwotCWlyZXEtPm9wdAkgICA9IE5VTEw7CisJUkNVX0lOSVRfUE9JTlRFUihuZXdpbmV0LT5pbmV0 X29wdCwgcmN1X2RlcmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KSk7CiAJbmV3aW5ldC0+bWNfaW5k ZXggID0gaW5ldF9paWYoc2tiKTsKIAluZXdpbmV0LT5tY190dGwJICAgPSBpcF9oZHIoc2tiKS0+ dHRsOwogCW5ld2luZXQtPmluZXRfaWQgICA9IGppZmZpZXM7CkBAIC00MzAsNyArNDI5LDEwIEBA IHN0cnVjdCBzb2NrICpkY2NwX3Y0X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2Nr ICpzaywKIAlpZiAoX19pbmV0X2luaGVyaXRfcG9ydChzaywgbmV3c2spIDwgMCkKIAkJZ290byBw dXRfYW5kX2V4aXQ7CiAJKm93bl9yZXEgPSBpbmV0X2VoYXNoX25vbGlzdGVuKG5ld3NrLCByZXFf dG9fc2socmVxX3VuaGFzaCkpOwotCisJaWYgKCpvd25fcmVxKQorCQlpcmVxLT5pcmVxX29wdCA9 IE5VTEw7CisJZWxzZQorCQluZXdpbmV0LT5pbmV0X29wdCA9IE5VTEw7CiAJcmV0dXJuIG5ld3Nr OwogCiBleGl0X292ZXJmbG93OgpAQCAtNDQxLDYgKzQ0Myw3IEBAIHN0cnVjdCBzb2NrICpkY2Nw X3Y0X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAlfX05FVF9JTkNf U1RBVFMoc29ja19uZXQoc2spLCBMSU5VWF9NSUJfTElTVEVORFJPUFMpOwogCXJldHVybiBOVUxM OwogcHV0X2FuZF9leGl0OgorCW5ld2luZXQtPmluZXRfb3B0ID0gTlVMTDsKIAlpbmV0X2Nza19w cmVwYXJlX2ZvcmNlZF9jbG9zZShuZXdzayk7CiAJZGNjcF9kb25lKG5ld3NrKTsKIAlnb3RvIGV4 aXQ7CkBAIC00OTIsNyArNDk1LDcgQEAgc3RhdGljIGludCBkY2NwX3Y0X3NlbmRfcmVzcG9uc2Uo Y29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEKIAkJCQkJCQkg ICAgICBpcmVxLT5pcl9ybXRfYWRkcik7CiAJCWVyciA9IGlwX2J1aWxkX2FuZF9zZW5kX3BrdChz a2IsIHNrLCBpcmVxLT5pcl9sb2NfYWRkciwKIAkJCQkJICAgIGlyZXEtPmlyX3JtdF9hZGRyLAot CQkJCQkgICAgaXJlcS0+b3B0KTsKKwkJCQkJICAgIHJjdV9kZXJlZmVyZW5jZShpcmVxLT5pcmVx X29wdCkpOwogCQllcnIgPSBuZXRfeG1pdF9ldmFsKGVycik7CiAJfQogCkBAIC01NDgsNyArNTUx LDcgQEAgc3RhdGljIHZvaWQgZGNjcF92NF9jdGxfc2VuZF9yZXNldChjb25zdCBzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpyeHNrYikKIHN0YXRpYyB2b2lkIGRjY3BfdjRfcmVxc2tf ZGVzdHJ1Y3RvcihzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCiB7CiAJZGNjcF9mZWF0X2xpc3Rf cHVyZ2UoJmRjY3BfcnNrKHJlcSktPmRyZXFfZmVhdG5lZyk7Ci0Ja2ZyZWUoaW5ldF9yc2socmVx KS0+b3B0KTsKKwlrZnJlZShyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGluZXRfcnNrKHJlcSkt PmlyZXFfb3B0LCAxKSk7CiB9CiAKIHZvaWQgZGNjcF9zeW5fYWNrX3RpbWVvdXQoY29uc3Qgc3Ry dWN0IHJlcXVlc3Rfc29jayAqcmVxKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvY2lwc29faXB2NC5j IGIvbmV0L2lwdjQvY2lwc29faXB2NC5jCmluZGV4IGFlMjA2MTYzYzI3My4uOTcyMzUzY2QxNzc4 IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9jaXBzb19pcHY0LmMKKysrIGIvbmV0L2lwdjQvY2lwc29f aXB2NC5jCkBAIC0xOTQzLDcgKzE5NDMsNyBAQCBpbnQgY2lwc29fdjRfcmVxX3NldGF0dHIoc3Ry dWN0IHJlcXVlc3Rfc29jayAqcmVxLAogCWJ1ZiA9IE5VTEw7CiAKIAlyZXFfaW5ldCA9IGluZXRf cnNrKHJlcSk7Ci0Jb3B0ID0geGNoZygmcmVxX2luZXQtPm9wdCwgb3B0KTsKKwlvcHQgPSB4Y2hn KChfX2ZvcmNlIHN0cnVjdCBpcF9vcHRpb25zX3JjdSAqKikmcmVxX2luZXQtPmlyZXFfb3B0LCBv cHQpOwogCWlmIChvcHQpCiAJCWtmcmVlX3JjdShvcHQsIHJjdSk7CiAKQEAgLTE5NjUsMTEgKzE5 NjUsMTMgQEAgaW50IGNpcHNvX3Y0X3JlcV9zZXRhdHRyKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJl cSwKICAqIHZhbHVlcyBvbiBmYWlsdXJlLgogICoKICAqLwotc3RhdGljIGludCBjaXBzb192NF9k ZWxvcHQoc3RydWN0IGlwX29wdGlvbnNfcmN1ICoqb3B0X3B0cikKK3N0YXRpYyBpbnQgY2lwc29f djRfZGVsb3B0KHN0cnVjdCBpcF9vcHRpb25zX3JjdSBfX3JjdSAqKm9wdF9wdHIpCiB7CisJc3Ry dWN0IGlwX29wdGlvbnNfcmN1ICpvcHQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpvcHRf cHRyLCAxKTsKIAlpbnQgaGRyX2RlbHRhID0gMDsKLQlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9w dCA9ICpvcHRfcHRyOwogCisJaWYgKCFvcHQgfHwgb3B0LT5vcHQuY2lwc28gPT0gMCkKKwkJcmV0 dXJuIDA7CiAJaWYgKG9wdC0+b3B0LnNyciB8fCBvcHQtPm9wdC5yciB8fCBvcHQtPm9wdC50cyB8 fCBvcHQtPm9wdC5yb3V0ZXJfYWxlcnQpIHsKIAkJdTggY2lwc29fbGVuOwogCQl1OCBjaXBzb19v ZmY7CkBAIC0yMDMxLDE0ICsyMDMzLDEwIEBAIHN0YXRpYyBpbnQgY2lwc29fdjRfZGVsb3B0KHN0 cnVjdCBpcF9vcHRpb25zX3JjdSAqKm9wdF9wdHIpCiAgKi8KIHZvaWQgY2lwc29fdjRfc29ja19k ZWxhdHRyKHN0cnVjdCBzb2NrICpzaykKIHsKLQlpbnQgaGRyX2RlbHRhOwotCXN0cnVjdCBpcF9v cHRpb25zX3JjdSAqb3B0OwogCXN0cnVjdCBpbmV0X3NvY2sgKnNrX2luZXQ7CisJaW50IGhkcl9k ZWx0YTsKIAogCXNrX2luZXQgPSBpbmV0X3NrKHNrKTsKLQlvcHQgPSByY3VfZGVyZWZlcmVuY2Vf cHJvdGVjdGVkKHNrX2luZXQtPmluZXRfb3B0LCAxKTsKLQlpZiAoIW9wdCB8fCBvcHQtPm9wdC5j aXBzbyA9PSAwKQotCQlyZXR1cm47CiAKIAloZHJfZGVsdGEgPSBjaXBzb192NF9kZWxvcHQoJnNr X2luZXQtPmluZXRfb3B0KTsKIAlpZiAoc2tfaW5ldC0+aXNfaWNzayAmJiBoZHJfZGVsdGEgPiAw KSB7CkBAIC0yMDU4LDE1ICsyMDU2LDcgQEAgdm9pZCBjaXBzb192NF9zb2NrX2RlbGF0dHIoc3Ry dWN0IHNvY2sgKnNrKQogICovCiB2b2lkIGNpcHNvX3Y0X3JlcV9kZWxhdHRyKHN0cnVjdCByZXF1 ZXN0X3NvY2sgKnJlcSkKIHsKLQlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9wdDsKLQlzdHJ1Y3Qg aW5ldF9yZXF1ZXN0X3NvY2sgKnJlcV9pbmV0OwotCi0JcmVxX2luZXQgPSBpbmV0X3JzayhyZXEp OwotCW9wdCA9IHJlcV9pbmV0LT5vcHQ7Ci0JaWYgKCFvcHQgfHwgb3B0LT5vcHQuY2lwc28gPT0g MCkKLQkJcmV0dXJuOwotCi0JY2lwc29fdjRfZGVsb3B0KCZyZXFfaW5ldC0+b3B0KTsKKwljaXBz b192NF9kZWxvcHQoJmluZXRfcnNrKHJlcSktPmlyZXFfb3B0KTsKIH0KIAogLyoqCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25u ZWN0aW9uX3NvY2suYwppbmRleCBjZjNkNTY3NDg0NmEuLjhkN2NjNGU1MzIwNSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYworKysgYi9uZXQvaXB2NC9pbmV0X2Nv bm5lY3Rpb25fc29jay5jCkBAIC00MDcsOSArNDA3LDEwIEBAIHN0cnVjdCBkc3RfZW50cnkgKmlu ZXRfY3NrX3JvdXRlX3JlcShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiB7CiAJY29uc3Qgc3RydWN0 IGluZXRfcmVxdWVzdF9zb2NrICppcmVxID0gaW5ldF9yc2socmVxKTsKIAlzdHJ1Y3QgbmV0ICpu ZXQgPSByZWFkX3BuZXQoJmlyZXEtPmlyZXFfbmV0KTsKLQlzdHJ1Y3QgaXBfb3B0aW9uc19yY3Ug Km9wdCA9IGlyZXEtPm9wdDsKKwlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9wdDsKIAlzdHJ1Y3Qg cnRhYmxlICpydDsKIAorCW9wdCA9IHJjdV9kZXJlZmVyZW5jZShpcmVxLT5pcmVxX29wdCk7CiAJ Zmxvd2k0X2luaXRfb3V0cHV0KGZsNCwgaXJlcS0+aXJfaWlmLCBpcmVxLT5pcl9tYXJrLAogCQkJ ICAgUlRfQ09OTl9GTEFHUyhzayksIFJUX1NDT1BFX1VOSVZFUlNFLAogCQkJICAgc2stPnNrX3By b3RvY29sLCBpbmV0X3NrX2Zsb3dpX2ZsYWdzKHNrKSwKQEAgLTQ0MywxMCArNDQ0LDkgQEAgc3Ry dWN0IGRzdF9lbnRyeSAqaW5ldF9jc2tfcm91dGVfY2hpbGRfc29jayhjb25zdCBzdHJ1Y3Qgc29j ayAqc2ssCiAJc3RydWN0IGZsb3dpNCAqZmw0OwogCXN0cnVjdCBydGFibGUgKnJ0OwogCisJb3B0 ID0gcmN1X2RlcmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KTsKIAlmbDQgPSAmbmV3aW5ldC0+Y29y ay5mbC51LmlwNDsKIAotCXJjdV9yZWFkX2xvY2soKTsKLQlvcHQgPSByY3VfZGVyZWZlcmVuY2Uo bmV3aW5ldC0+aW5ldF9vcHQpOwogCWZsb3dpNF9pbml0X291dHB1dChmbDQsIGlyZXEtPmlyX2lp ZiwgaXJlcS0+aXJfbWFyaywKIAkJCSAgIFJUX0NPTk5fRkxBR1Moc2spLCBSVF9TQ09QRV9VTklW RVJTRSwKIAkJCSAgIHNrLT5za19wcm90b2NvbCwgaW5ldF9za19mbG93aV9mbGFncyhzayksCkBA IC00NTksMTMgKzQ1OSwxMSBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0X2Nza19yb3V0ZV9jaGls ZF9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJZ290byBub19yb3V0ZTsKIAlpZiAob3B0 ICYmIG9wdC0+b3B0LmlzX3N0cmljdHJvdXRlICYmIHJ0LT5ydF91c2VzX2dhdGV3YXkpCiAJCWdv dG8gcm91dGVfZXJyOwotCXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiAmcnQtPmRzdDsKIAog cm91dGVfZXJyOgogCWlwX3J0X3B1dChydCk7CiBub19yb3V0ZToKLQlyY3VfcmVhZF91bmxvY2so KTsKIAlfX0lQX0lOQ19TVEFUUyhuZXQsIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsKIAlyZXR1 cm4gTlVMTDsKIH0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5bmNvb2tpZXMuYyBiL25ldC9pcHY0 L3N5bmNvb2tpZXMuYwppbmRleCBiNmY3MTBkNTE1ZDAuLjA1OTdhZDczYTFmYSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvc3luY29va2llcy5jCisrKyBiL25ldC9pcHY0L3N5bmNvb2tpZXMuYwpAQCAt MzU0LDcgKzM1NCw3IEBAIHN0cnVjdCBzb2NrICpjb29raWVfdjRfY2hlY2soc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCS8qIFdlIHRocm93ZWQgdGhlIG9wdGlvbnMgb2Yg dGhlIGluaXRpYWwgU1lOIGF3YXksIHNvIHdlIGhvcGUKIAkgKiB0aGUgQUNLIGNhcnJpZXMgdGhl IHNhbWUgb3B0aW9ucyBhZ2FpbiAoc2VlIFJGQzExMjIgNC4yLjMuOCkKIAkgKi8KLQlpcmVxLT5v cHQgPSB0Y3BfdjRfc2F2ZV9vcHRpb25zKHNrYik7CisJUkNVX0lOSVRfUE9JTlRFUihpcmVxLT5p cmVxX29wdCwgdGNwX3Y0X3NhdmVfb3B0aW9ucyhza2IpKTsKIAogCWlmIChzZWN1cml0eV9pbmV0 X2Nvbm5fcmVxdWVzdChzaywgc2tiLCByZXEpKSB7CiAJCXJlcXNrX2ZyZWUocmVxKTsKZGlmZiAt LWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXgg YzAzODUwNzcxYTRlLi44ZmNkMGM2NDI3NDIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1 dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC02MjM3LDcgKzYyMzcsNyBAQCBzdHJ1 Y3QgcmVxdWVzdF9zb2NrICppbmV0X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXN0X3Nv Y2tfb3BzICpvcHMsCiAJCXN0cnVjdCBpbmV0X3JlcXVlc3Rfc29jayAqaXJlcSA9IGluZXRfcnNr KHJlcSk7CiAKIAkJa21lbWNoZWNrX2Fubm90YXRlX2JpdGZpZWxkKGlyZXEsIGZsYWdzKTsKLQkJ aXJlcS0+b3B0ID0gTlVMTDsKKwkJaXJlcS0+aXJlcV9vcHQgPSBOVUxMOwogI2lmIElTX0VOQUJM RUQoQ09ORklHX0lQVjYpCiAJCWlyZXEtPnBrdG9wdHMgPSBOVUxMOwogI2VuZGlmCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCA2OTg4 NTY2ZGM3MmYuLmM5NmI5ZGNjZTMyMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYwor KysgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCkBAIC04NjEsNyArODYxLDcgQEAgc3RhdGljIGludCB0 Y3BfdjRfc2VuZF9zeW5hY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3QsCiAKIAkJZXJyID0gaXBfYnVpbGRfYW5kX3NlbmRfcGt0KHNrYiwgc2ssIGlyZXEtPmly X2xvY19hZGRyLAogCQkJCQkgICAgaXJlcS0+aXJfcm10X2FkZHIsCi0JCQkJCSAgICBpcmVxLT5v cHQpOworCQkJCQkgICAgcmN1X2RlcmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KSk7CiAJCWVyciA9 IG5ldF94bWl0X2V2YWwoZXJyKTsKIAl9CiAKQEAgLTg3Myw3ICs4NzMsNyBAQCBzdGF0aWMgaW50 IHRjcF92NF9zZW5kX3N5bmFjayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBkc3RfZW50 cnkgKmRzdCwKICAqLwogc3RhdGljIHZvaWQgdGNwX3Y0X3JlcXNrX2Rlc3RydWN0b3Ioc3RydWN0 IHJlcXVlc3Rfc29jayAqcmVxKQogewotCWtmcmVlKGluZXRfcnNrKHJlcSktPm9wdCk7CisJa2Zy ZWUocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChpbmV0X3JzayhyZXEpLT5pcmVxX29wdCwgMSkp OwogfQogCiAjaWZkZWYgQ09ORklHX1RDUF9NRDVTSUcKQEAgLTExOTksNyArMTE5OSw3IEBAIHN0 YXRpYyB2b2lkIHRjcF92NF9pbml0X3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCiAKIAlz a19yY3Zfc2FkZHJfc2V0KHJlcV90b19zayhyZXEpLCBpcF9oZHIoc2tiKS0+ZGFkZHIpOwogCXNr X2RhZGRyX3NldChyZXFfdG9fc2socmVxKSwgaXBfaGRyKHNrYiktPnNhZGRyKTsKLQlpcmVxLT5v cHQgPSB0Y3BfdjRfc2F2ZV9vcHRpb25zKHNrYik7CisJUkNVX0lOSVRfUE9JTlRFUihpcmVxLT5p cmVxX29wdCwgdGNwX3Y0X3NhdmVfb3B0aW9ucyhza2IpKTsKIH0KIAogc3RhdGljIHN0cnVjdCBk c3RfZW50cnkgKnRjcF92NF9yb3V0ZV9yZXEoY29uc3Qgc3RydWN0IHNvY2sgKnNrLApAQCAtMTI5 NSwxMCArMTI5NSw5IEBAIHN0cnVjdCBzb2NrICp0Y3BfdjRfc3luX3JlY3Zfc29jayhjb25zdCBz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJc2tfZGFkZHJfc2V0KG5ld3Nr LCBpcmVxLT5pcl9ybXRfYWRkcik7CiAJc2tfcmN2X3NhZGRyX3NldChuZXdzaywgaXJlcS0+aXJf bG9jX2FkZHIpOwogCW5ld3NrLT5za19ib3VuZF9kZXZfaWYgPSBpcmVxLT5pcl9paWY7Ci0JbmV3 aW5ldC0+aW5ldF9zYWRkcgkgICAgICA9IGlyZXEtPmlyX2xvY19hZGRyOwotCWluZXRfb3B0CSAg ICAgID0gaXJlcS0+b3B0OwotCXJjdV9hc3NpZ25fcG9pbnRlcihuZXdpbmV0LT5pbmV0X29wdCwg aW5ldF9vcHQpOwotCWlyZXEtPm9wdAkgICAgICA9IE5VTEw7CisJbmV3aW5ldC0+aW5ldF9zYWRk ciAgID0gaXJlcS0+aXJfbG9jX2FkZHI7CisJaW5ldF9vcHQJICAgICAgPSByY3VfZGVyZWZlcmVu Y2UoaXJlcS0+aXJlcV9vcHQpOworCVJDVV9JTklUX1BPSU5URVIobmV3aW5ldC0+aW5ldF9vcHQs IGluZXRfb3B0KTsKIAluZXdpbmV0LT5tY19pbmRleCAgICAgPSBpbmV0X2lpZihza2IpOwogCW5l d2luZXQtPm1jX3R0bAkgICAgICA9IGlwX2hkcihza2IpLT50dGw7CiAJbmV3aW5ldC0+cmN2X3Rv cyAgICAgID0gaXBfaGRyKHNrYiktPnRvczsKQEAgLTEzNDYsOSArMTM0NSwxMiBAQCBzdHJ1Y3Qg c29jayAqdGNwX3Y0X3N5bl9yZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCWlmIChfX2luZXRfaW5oZXJpdF9wb3J0KHNrLCBuZXdzaykgPCAwKQog CQlnb3RvIHB1dF9hbmRfZXhpdDsKIAkqb3duX3JlcSA9IGluZXRfZWhhc2hfbm9saXN0ZW4obmV3 c2ssIHJlcV90b19zayhyZXFfdW5oYXNoKSk7Ci0JaWYgKCpvd25fcmVxKQorCWlmIChsaWtlbHko Km93bl9yZXEpKSB7CiAJCXRjcF9tb3ZlX3N5bihuZXd0cCwgcmVxKTsKLQorCQlpcmVxLT5pcmVx X29wdCA9IE5VTEw7CisJfSBlbHNlIHsKKwkJbmV3aW5ldC0+aW5ldF9vcHQgPSBOVUxMOworCX0K IAlyZXR1cm4gbmV3c2s7CiAKIGV4aXRfb3ZlcmZsb3c6CkBAIC0xMzU5LDYgKzEzNjEsNyBAQCBz dHJ1Y3Qgc29jayAqdGNwX3Y0X3N5bl9yZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXRjcF9saXN0ZW5kcm9wKHNrKTsKIAlyZXR1cm4gTlVMTDsK IHB1dF9hbmRfZXhpdDoKKwluZXdpbmV0LT5pbmV0X29wdCA9IE5VTEw7CiAJaW5ldF9jc2tfcHJl cGFyZV9mb3JjZWRfY2xvc2UobmV3c2spOwogCXRjcF9kb25lKG5ld3NrKTsKIAlnb3RvIGV4aXQ7 Ci0tIAoyLjEzLjYKCgpGcm9tIDAyZGEzZDE4MjkyODAzNWVhNDdkMDVmZjU3ODdmMTliMjI3ZmNi ODggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxOCBPY3QgMjAxNyAxNjoxNDo1MiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMTEvMjVdIHBhY2tldDogYXZvaWQgcGFuaWMgaW4gcGFja2V0X2dldHNvY2tvcHQo KQoKWyBVcHN0cmVhbSBjb21taXQgNTA5YzdhMWVjYzg2MDFmOTRmZmJhOGEwMDg4OWZlZmIyMzlj MDBjNiBdCgpzeXprYWxsZXIgZ290IGNyYXNoZXMgaW4gcGFja2V0X2dldHNvY2tvcHQoKSBwcm9j ZXNzaW5nClBBQ0tFVF9ST0xMT1ZFUl9TVEFUUyBjb21tYW5kIHdoaWxlIGFub3RoZXIgdGhyZWFk IHdhcyBtYW5hZ2luZwp0byBjaGFuZ2UgcG8tPnJvbGxvdmVyCgpVc2luZyBSQ1Ugd2lsbCBmaXgg dGhpcyBidWcuIFdlIG1pZ2h0IGxhdGVyIGFkZCBwcm9wZXIgUkNVIGFubm90YXRpb25zCmZvciBz cGFyc2Ugc2FrZS4KCkluIHYyOiBJIHJlcGxhY2VkIGtmcmVlKHJvbGxvdmVyKSBpbiBmYW5vdXRf YWRkKCkgdG8ga2ZyZWVfcmN1KCkKdmFyaWFudCwgYXMgc3BvdHRlZCBieSBKb2huLgoKRml4ZXM6 IGE5YjYzOTE4MTRkNSAoInBhY2tldDogcm9sbG92ZXIgc3RhdGlzdGljcyIpClNpZ25lZC1vZmYt Ynk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdpbGxlbSBkZSBCcnVp am4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KQ2M6IEpvaG4gU3BlcmJlY2sgPGpzcGVyYmVja0Bnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDI0ICsrKysrKysrKysrKysrKystLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKaW5kZXggYjE3ZjkwOTdjNmZlLi5lN2Y2NjU3MjY5ZTAgMTAwNjQ0Ci0tLSBhL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMTcyMCw3ICsx NzIwLDcgQEAgc3RhdGljIGludCBmYW5vdXRfYWRkKHN0cnVjdCBzb2NrICpzaywgdTE2IGlkLCB1 MTYgdHlwZV9mbGFncykKIAogb3V0OgogCWlmIChlcnIgJiYgcm9sbG92ZXIpIHsKLQkJa2ZyZWUo cm9sbG92ZXIpOworCQlrZnJlZV9yY3Uocm9sbG92ZXIsIHJjdSk7CiAJCXBvLT5yb2xsb3ZlciA9 IE5VTEw7CiAJfQogCW11dGV4X3VubG9jaygmZmFub3V0X211dGV4KTsKQEAgLTE3NDcsOCArMTc0 NywxMCBAQCBzdGF0aWMgc3RydWN0IHBhY2tldF9mYW5vdXQgKmZhbm91dF9yZWxlYXNlKHN0cnVj dCBzb2NrICpzaykKIAkJZWxzZQogCQkJZiA9IE5VTEw7CiAKLQkJaWYgKHBvLT5yb2xsb3ZlcikK KwkJaWYgKHBvLT5yb2xsb3ZlcikgewogCQkJa2ZyZWVfcmN1KHBvLT5yb2xsb3ZlciwgcmN1KTsK KwkJCXBvLT5yb2xsb3ZlciA9IE5VTEw7CisJCX0KIAl9CiAJbXV0ZXhfdW5sb2NrKCZmYW5vdXRf bXV0ZXgpOwogCkBAIC0zODUxLDYgKzM4NTMsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nr b3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJdm9pZCAq ZGF0YSA9ICZ2YWw7CiAJdW5pb24gdHBhY2tldF9zdGF0c191IHN0OwogCXN0cnVjdCB0cGFja2V0 X3JvbGxvdmVyX3N0YXRzIHJzdGF0czsKKwlzdHJ1Y3QgcGFja2V0X3JvbGxvdmVyICpyb2xsb3Zl cjsKIAogCWlmIChsZXZlbCAhPSBTT0xfUEFDS0VUKQogCQlyZXR1cm4gLUVOT1BST1RPT1BUOwpA QCAtMzkyOSwxMyArMzkzMiwxOCBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0KHN0cnVj dCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCSAgICAgICAwKTsKIAkJ YnJlYWs7CiAJY2FzZSBQQUNLRVRfUk9MTE9WRVJfU1RBVFM6Ci0JCWlmICghcG8tPnJvbGxvdmVy KQorCQlyY3VfcmVhZF9sb2NrKCk7CisJCXJvbGxvdmVyID0gcmN1X2RlcmVmZXJlbmNlKHBvLT5y b2xsb3Zlcik7CisJCWlmIChyb2xsb3ZlcikgeworCQkJcnN0YXRzLnRwX2FsbCA9IGF0b21pY19s b25nX3JlYWQoJnJvbGxvdmVyLT5udW0pOworCQkJcnN0YXRzLnRwX2h1Z2UgPSBhdG9taWNfbG9u Z19yZWFkKCZyb2xsb3Zlci0+bnVtX2h1Z2UpOworCQkJcnN0YXRzLnRwX2ZhaWxlZCA9IGF0b21p Y19sb25nX3JlYWQoJnJvbGxvdmVyLT5udW1fZmFpbGVkKTsKKwkJCWRhdGEgPSAmcnN0YXRzOwor CQkJbHYgPSBzaXplb2YocnN0YXRzKTsKKwkJfQorCQlyY3VfcmVhZF91bmxvY2soKTsKKwkJaWYg KCFyb2xsb3ZlcikKIAkJCXJldHVybiAtRUlOVkFMOwotCQlyc3RhdHMudHBfYWxsID0gYXRvbWlj X2xvbmdfcmVhZCgmcG8tPnJvbGxvdmVyLT5udW0pOwotCQlyc3RhdHMudHBfaHVnZSA9IGF0b21p Y19sb25nX3JlYWQoJnBvLT5yb2xsb3Zlci0+bnVtX2h1Z2UpOwotCQlyc3RhdHMudHBfZmFpbGVk ID0gYXRvbWljX2xvbmdfcmVhZCgmcG8tPnJvbGxvdmVyLT5udW1fZmFpbGVkKTsKLQkJZGF0YSA9 ICZyc3RhdHM7Ci0JCWx2ID0gc2l6ZW9mKHJzdGF0cyk7CiAJCWJyZWFrOwogCWNhc2UgUEFDS0VU X1RYX0hBU19PRkY6CiAJCXZhbCA9IHBvLT50cF90eF9oYXNfb2ZmOwotLSAKMi4xMy42CgoKRnJv bSA4YjljYjE0ZjY1OTYwZjI1MTU5MjMwZmMwOWU4YjRhYWNhYTFkYzU1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDcmFpZyBHYWxsZWsgPGtyYWlnQGdvb2dsZS5jb20+CkRhdGU6IFRo dSwgMTkgT2N0IDIwMTcgMTU6MDA6MjkgLTA0MDAKU3ViamVjdDogW1BBVENIIDEyLzI1XSBzb3Jl dXNlcG9ydDogZml4IGluaXRpYWxpemF0aW9uIHJhY2UKClsgVXBzdHJlYW0gY29tbWl0IDFiNWY5 NjJlNzFiZmFkNjI4NDU3NDY1NWM0MDY1OTc1MzVjM2VhN2EgXQoKU3l6a2FsbGVyIHN0dW1ibGVk IHVwb24gYSB3YXkgdG8gdHJpZ2dlcgpXQVJOSU5HOiBDUFU6IDEgUElEOiAxMzg4MSBhdCBuZXQv Y29yZS9zb2NrX3JldXNlcG9ydC5jOjQxCnJldXNlcG9ydF9hbGxvYysweDMwNi8weDNiMCBuZXQv Y29yZS9zb2NrX3JldXNlcG9ydC5jOjM5CgpUaGVyZSBhcmUgdHdvIGluaXRpYWxpemF0aW9uIHBh dGhzIGZvciB0aGUgc29ja19yZXVzZXBvcnQgc3RydWN0dXJlIGluIGEKc29ja2V0OiBUaHJvdWdo IHRoZSB1ZHAvdGNwIGJpbmQgcGF0aHMgb2YgU09fUkVVU0VQT1JUIHNvY2tldHMgb3IgdGhyb3Vn aApTT19BVFRBQ0hfUkVVU0VQT1JUX1tDRV1CUEYgYmVmb3JlIGJpbmQuICBUaGUgZXhpc3Rpbmcg aW1wbGVtZW50YXRpb24KYXNzdW1lZHRoYXQgdGhlIHNvY2tldCBsb2NrIHByb3RlY3RlZCBib3Ro IG9mIHRoZXNlIHBhdGhzIHdoZW4gaXQgYWN0dWFsbHkKb25seSBwcm90ZWN0cyB0aGUgU09fQVRU QUNIX1JFVVNFUE9SVCBwYXRoLiAgU3l6a2FsbGVyIHRyaWdnZXJlZCB0aGlzCmRvdWJsZSBhbGxv Y2F0aW9uIGJ5IHJ1bm5pbmcgdGhlc2UgcGF0aHMgY29uY3VycmVudGx5LgoKVGhpcyBwYXRjaCBt b3ZlcyB0aGUgY2hlY2sgZm9yIGRvdWJsZSBhbGxvY2F0aW9uIGludG8gdGhlIHJldXNlcG9ydF9h bGxvYwpmdW5jdGlvbiB3aGljaCBpcyBwcm90ZWN0ZWQgYnkgYSBnbG9iYWwgc3BpbiBsb2NrLgoK Rml4ZXM6IGUzMmVhN2U3NDcyNyAoInNvcmV1c2Vwb3J0OiBmYXN0IHJldXNlcG9ydCBVRFAgc29j a2V0IHNlbGVjdGlvbiIpCkZpeGVzOiBjMTI1ZTgwYjg4NjggKCJzb3JldXNlcG9ydDogZmFzdCBy ZXVzZXBvcnQgVENQIHNvY2tldCBzZWxlY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBDcmFpZyBHYWxs ZWsgPGtyYWlnQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jICB8IDEyICsr KysrKysrKy0tLQogbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMgfCAgNSArLS0tLQogbmV0L2lw djQvdWRwLmMgICAgICAgICAgICAgfCAgNSArLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrX3Jl dXNlcG9ydC5jIGIvbmV0L2NvcmUvc29ja19yZXVzZXBvcnQuYwppbmRleCA5YTFhMzUyZmQxZWIu Ljc3ZjM5NmI2NzljZSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29ja19yZXVzZXBvcnQuYworKysg Yi9uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jCkBAIC0zNiw5ICszNiwxNCBAQCBpbnQgcmV1c2Vw b3J0X2FsbG9jKHN0cnVjdCBzb2NrICpzaykKIAkgKiBzb2Z0IGlycSBvZiByZWNlaXZlIHBhdGgg b3Igc2V0c29ja29wdCBmcm9tIHByb2Nlc3MgY29udGV4dAogCSAqLwogCXNwaW5fbG9ja19iaCgm cmV1c2Vwb3J0X2xvY2spOwotCVdBUk5fT05DRShyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHNr LT5za19yZXVzZXBvcnRfY2IsCi0JCQkJCSAgICBsb2NrZGVwX2lzX2hlbGQoJnJldXNlcG9ydF9s b2NrKSksCi0JCSAgIm11bHRpcGxlIGFsbG9jYXRpb25zIGZvciB0aGUgc2FtZSBzb2NrZXQiKTsK KworCS8qIEFsbG9jYXRpb24gYXR0ZW1wdHMgY2FuIG9jY3VyIGNvbmN1cnJlbnRseSB2aWEgdGhl IHNldHNvY2tvcHQgcGF0aAorCSAqIGFuZCB0aGUgYmluZC9oYXNoIHBhdGguICBOb3RoaW5nIHRv IGRvIHdoZW4gd2UgbG9zZSB0aGUgcmFjZS4KKwkgKi8KKwlpZiAocmN1X2RlcmVmZXJlbmNlX3By b3RlY3RlZChzay0+c2tfcmV1c2Vwb3J0X2NiLAorCQkJCSAgICAgIGxvY2tkZXBfaXNfaGVsZCgm cmV1c2Vwb3J0X2xvY2spKSkKKwkJZ290byBvdXQ7CisKIAlyZXVzZSA9IF9fcmV1c2Vwb3J0X2Fs bG9jKElOSVRfU09DS1MpOwogCWlmICghcmV1c2UpIHsKIAkJc3Bpbl91bmxvY2tfYmgoJnJldXNl cG9ydF9sb2NrKTsKQEAgLTQ5LDYgKzU0LDcgQEAgaW50IHJldXNlcG9ydF9hbGxvYyhzdHJ1Y3Qg c29jayAqc2spCiAJcmV1c2UtPm51bV9zb2NrcyA9IDE7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKHNr LT5za19yZXVzZXBvcnRfY2IsIHJldXNlKTsKIAorb3V0OgogCXNwaW5fdW5sb2NrX2JoKCZyZXVz ZXBvcnRfbG9jayk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfaGFz aHRhYmxlcy5jIGIvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMKaW5kZXggY2E5NzgzNWJmZWM0 Li5iOWJjZjNkYjNhZjkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCisr KyBiL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCkBAIC00NTUsMTAgKzQ1NSw3IEBAIHN0YXRp YyBpbnQgaW5ldF9yZXVzZXBvcnRfYWRkX3NvY2soc3RydWN0IHNvY2sgKnNrLAogCQkJcmV0dXJu IHJldXNlcG9ydF9hZGRfc29jayhzaywgc2syKTsKIAl9CiAKLQkvKiBJbml0aWFsIGFsbG9jYXRp b24gbWF5IGhhdmUgYWxyZWFkeSBoYXBwZW5lZCB2aWEgc2V0c29ja29wdCAqLwotCWlmICghcmN1 X2FjY2Vzc19wb2ludGVyKHNrLT5za19yZXVzZXBvcnRfY2IpKQotCQlyZXR1cm4gcmV1c2Vwb3J0 X2FsbG9jKHNrKTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gcmV1c2Vwb3J0X2FsbG9jKHNrKTsKIH0K IAogaW50IF9faW5ldF9oYXNoKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKm9zaywKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggNDM2M2IxZTg5 YmRmLi5iZWY0YTk0Y2UxYTAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9p cHY0L3VkcC5jCkBAIC0yMjIsMTAgKzIyMiw3IEBAIHN0YXRpYyBpbnQgdWRwX3JldXNlcG9ydF9h ZGRfc29jayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB1ZHBfaHNsb3QgKmhzbG90LAogCQl9CiAJ fQogCi0JLyogSW5pdGlhbCBhbGxvY2F0aW9uIG1heSBoYXZlIGFscmVhZHkgaGFwcGVuZWQgdmlh IHNldHNvY2tvcHQgKi8KLQlpZiAoIXJjdV9hY2Nlc3NfcG9pbnRlcihzay0+c2tfcmV1c2Vwb3J0 X2NiKSkKLQkJcmV0dXJuIHJldXNlcG9ydF9hbGxvYyhzayk7Ci0JcmV0dXJuIDA7CisJcmV0dXJu IHJldXNlcG9ydF9hbGxvYyhzayk7CiB9CiAKIC8qKgotLSAKMi4xMy42CgoKRnJvbSA2M2M0NDdm N2YyZDRkNmI3MmEwM2QzNjA0NzQ3NDcxZWE3ODFkMzc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMjEg T2N0IDIwMTcgMTI6MjY6MjMgLTA3MDAKU3ViamVjdDogW1BBVENIIDEzLzI1XSBpcHY2OiBmbG93 bGFiZWw6IGRvIG5vdCBsZWF2ZSBvcHQtPnRvdF9sZW4gd2l0aCBnYXJiYWdlCgpbIFVwc3RyZWFt IGNvbW1pdCA4NjRlMmExZjhhYWMwNWVmZmFjNjA2M2NlMzE2YjQ4MGZhY2I0NmZmIF0KCldoZW4g c3l6a2FsbGVyIHRlYW0gYnJvdWdodCB1cyBhIEMgcmVwcm8gZm9yIHRoZSBjcmFzaCBbMV0gdGhh dApoYWQgYmVlbiByZXBvcnRlZCBtYW55IHRpbWVzIGluIHRoZSBwYXN0LCBJIGZpbmFsbHkgY291 bGQgZmluZAp0aGUgcm9vdCBjYXVzZS4KCklmIEZsb3dMYWJlbCBpbmZvIGlzIG1lcmdlZCBieSBm bDZfbWVyZ2Vfb3B0aW9ucygpLCB3ZSBsZWF2ZQpwYXJ0IG9mIHRoZSBvcHRfc3BhY2Ugc3RvcmFn ZSBwcm92aWRlZCBieSB1ZHAvcmF3L2wydHAgd2l0aCByYW5kb20gdmFsdWUKaW4gb3B0X3NwYWNl LnRvdF9sZW4sIHVubGVzcyBhIGNvbnRyb2wgbWVzc2FnZSB3YXMgcHJvdmlkZWQgYXQgc2VuZG1z ZygpCnRpbWUuCgpUaGVuIGlwNl9zZXR1cF9jb3JrKCkgd291bGQgdXNlIHRoaXMgcmFuZG9tIHZh bHVlIHRvIHBlcmZvcm0gYSBremFsbG9jKCkKY2FsbC4gVW5kZWZpbmVkIGJlaGF2aW9yIGFuZCBj cmFzaGVzLgoKRml4IGlzIHRvIHByb3Blcmx5IHNldCB0b3RfbGVuIGluIGZsNl9tZXJnZV9vcHRp b25zKCkKCkF0IHRoZSBzYW1lIHRpbWUsIHdlIGNhbiBhbHNvIGF2b2lkIGNvbnN1bWluZyBtZW1v cnkgYW5kIGNwdSBjeWNsZXMKdG8gY2xlYXIgaXQsIGlmIGV2ZXJ5IG9wdGlvbiBpcyBjb3BpZWQg dmlhIGEga21lbWR1cCgpLiBUaGlzIGlzIHRoZQpjaGFuZ2UgaW4gaXA2X3NldHVwX2NvcmsoKS4K ClsxXQprYXNhbjogQ09ORklHX0tBU0FOX0lOTElORSBlbmFibGVkCmthc2FuOiBHUEYgY291bGQg YmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2VzcwpnZW5lcmFs IHByb3RlY3Rpb24gZmF1bHQ6IDAwMDAgWyMxXSBTTVAgS0FTQU4KRHVtcGluZyBmdHJhY2UgYnVm ZmVyOgogICAoZnRyYWNlIGJ1ZmZlciBlbXB0eSkKTW9kdWxlcyBsaW5rZWQgaW46CkNQVTogMCBQ SUQ6IDY2MTMgQ29tbTogc3l6LWV4ZWN1dG9yMCBOb3QgdGFpbnRlZCA0LjE0LjAtcmM0KyAjMTI3 CkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1 dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCnRhc2s6IGZmZmY4ODAxY2I2NGExMDAg dGFzay5zdGFjazogZmZmZjg4MDFjYzM1MDAwMApSSVA6IDAwMTA6aXA2X3NldHVwX2NvcmsrMHgy NzQvMHgxNWMwIG5ldC9pcHY2L2lwNl9vdXRwdXQuYzoxMTY4ClJTUDogMDAxODpmZmZmODgwMWNj MzU3NTUwIEVGTEFHUzogMDAwMTAyMDMKUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogZmZmZjg4 MDFjYzM1Nzc0OCBSQ1g6IDAwMDAwMDAwMDAwMDAwMTAKUkRYOiAwMDAwMDAwMDAwMDAwMDAyIFJT STogZmZmZmZmZmY4NDJiZDFkOSBSREk6IDAwMDAwMDAwMDAwMDAwMTQKUkJQOiBmZmZmODgwMWNj MzU3NjIwIFIwODogZmZmZjg4MDFjYjE3ZjM4MCBSMDk6IGZmZmY4ODAxY2MzNTdiMTAKUjEwOiBm ZmZmODgwMWNiNjRhMTAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ODAxY2MzNTdh YjAKUjEzOiBmZmZmODgwMWNjMzU3YjEwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmY4 ODAxYzNiYmYwYzAKRlM6ICAwMDAwN2Y5YzVjNDU5NzAwKDAwMDApIEdTOmZmZmY4ODAxZGIyMDAw MDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAw MDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDAwMDAyMDMyNDAwMCBDUjM6IDAwMDAw MDAxZDFjZjIwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmYwCkRSMDogMDAwMDAwMDAyMDAwMTAxMCBE UjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAw MDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZjBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNjAwCkNhbGwg VHJhY2U6CiBpcDZfbWFrZV9za2IrMHgyODIvMHg1MzAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjE3 MjkKIHVkcHY2X3NlbmRtc2crMHgyNzY5LzB4MzM4MCBuZXQvaXB2Ni91ZHAuYzoxMzQwCiBpbmV0 X3NlbmRtc2crMHgxMWYvMHg1ZTAgbmV0L2lwdjQvYWZfaW5ldC5jOjc2Mgogc29ja19zZW5kbXNn X25vc2VjIG5ldC9zb2NrZXQuYzo2MzMgW2lubGluZV0KIHNvY2tfc2VuZG1zZysweGNhLzB4MTEw IG5ldC9zb2NrZXQuYzo2NDMKIFNZU0Nfc2VuZHRvKzB4MzU4LzB4NWEwIG5ldC9zb2NrZXQuYzox NzUwCiBTeVNfc2VuZHRvKzB4NDAvMHg1MCBuZXQvc29ja2V0LmM6MTcxOAogZW50cnlfU1lTQ0FM TF82NF9mYXN0cGF0aCsweDFmLzB4YmUKUklQOiAwMDMzOjB4NDUyMGE5ClJTUDogMDAyYjowMDAw N2Y5YzVjNDU4YzA4IEVGTEFHUzogMDAwMDAyMTYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmMK UkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDcxODAwMCBSQ1g6IDAwMDAwMDAw MDA0NTIwYTkKUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAyMGZkMTAwMCBSREk6 IDAwMDAwMDAwMDAwMDAwMTYKUkJQOiAwMDAwMDAwMDAwMDAwMDg2IFIwODogMDAwMDAwMDAyMGUw YWZlNCBSMDk6IDAwMDAwMDAwMDAwMDAwMWMKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAw MDAwMDAwMDAwMDIxNiBSMTI6IDAwMDAwMDAwMDA0YmIxZWUKUjEzOiAwMDAwMDAwMGZmZmZmZmZm IFIxNDogMDAwMDAwMDAwMDAwMDAxNiBSMTU6IDAwMDAwMDAwMDAwMDAwMjkKQ29kZTogZTAgMDcg ODMgYzAgMDMgMzggZDAgN2MgMDggODQgZDIgMGYgODUgZWEgMGYgMDAgMDAgNDggOGQgNzkgMDQg NDggYjggMDAgMDAgMDAgMDAgMDAgZmMgZmYgZGYgNDUgOGIgNzQgMjQgMDQgNDggODkgZmEgNDgg YzEgZWEgMDMgPDBmPiBiNiAxNCAwMiA0OCA4OSBmOCA4MyBlMCAwNyA4MyBjMCAwMyAzOCBkMCA3 YyAwOCA4NCBkMiAwZiA4NQpSSVA6IGlwNl9zZXR1cF9jb3JrKzB4Mjc0LzB4MTVjMCBuZXQvaXB2 Ni9pcDZfb3V0cHV0LmM6MTE2OCBSU1A6IGZmZmY4ODAxY2MzNTc1NTAKClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBW eXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9mbG93bGFiZWwuYyB8IDEg KwogbmV0L2lwdjYvaXA2X291dHB1dC5jICAgIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZf Zmxvd2xhYmVsLmMgYi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKaW5kZXggYjkxMmYwZGJhZjcy Li5iODJlNDM5ODA0ZDEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9mbG93bGFiZWwuYworKysg Yi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKQEAgLTMxNSw2ICszMTUsNyBAQCBzdHJ1Y3QgaXB2 Nl90eG9wdGlvbnMgKmZsNl9tZXJnZV9vcHRpb25zKHN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0 X3NwYWNlLAogCX0KIAlvcHRfc3BhY2UtPmRzdDFvcHQgPSBmb3B0LT5kc3Qxb3B0OwogCW9wdF9z cGFjZS0+b3B0X2ZsZW4gPSBmb3B0LT5vcHRfZmxlbjsKKwlvcHRfc3BhY2UtPnRvdF9sZW4gPSBm b3B0LT50b3RfbGVuOwogCXJldHVybiBvcHRfc3BhY2U7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChm bDZfbWVyZ2Vfb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9u ZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5kZXggZTAyMzZlOTAyZWE3Li42ZTAxYzlhOGRmZDMgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0 LmMKQEAgLTEyMTUsMTEgKzEyMTUsMTEgQEAgc3RhdGljIGludCBpcDZfc2V0dXBfY29yayhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2NvcmtfZnVsbCAqY29yaywKIAkJaWYgKFdBUk5fT04o djZfY29yay0+b3B0KSkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCXY2X2NvcmstPm9wdCA9IGt6 YWxsb2Mob3B0LT50b3RfbGVuLCBzay0+c2tfYWxsb2NhdGlvbik7CisJCXY2X2NvcmstPm9wdCA9 IGt6YWxsb2Moc2l6ZW9mKCpvcHQpLCBzay0+c2tfYWxsb2NhdGlvbik7CiAJCWlmICh1bmxpa2Vs eSghdjZfY29yay0+b3B0KSkKIAkJCXJldHVybiAtRU5PQlVGUzsKIAotCQl2Nl9jb3JrLT5vcHQt PnRvdF9sZW4gPSBvcHQtPnRvdF9sZW47CisJCXY2X2NvcmstPm9wdC0+dG90X2xlbiA9IHNpemVv Zigqb3B0KTsKIAkJdjZfY29yay0+b3B0LT5vcHRfZmxlbiA9IG9wdC0+b3B0X2ZsZW47CiAJCXY2 X2NvcmstPm9wdC0+b3B0X25mbGVuID0gb3B0LT5vcHRfbmZsZW47CiAKLS0gCjIuMTMuNgoKCkZy b20gZGRhNTQxNDViZWIxYTlhYTg3ODI3MzQ0MWRhNmFlNGY2OTNiZTgzMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTGFzemxvIFRvdGggPGxhc3psdGhAZ21haWwuY29tPgpEYXRlOiBN b24sIDIzIE9jdCAyMDE3IDE5OjE5OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8yNV0gc2N0 cDogZnVsbCBzdXBwb3J0IGZvciBpcHY2IGlwX25vbmxvY2FsX2JpbmQgJgogSVBfRlJFRUJJTkQK ClsgVXBzdHJlYW0gY29tbWl0IGI3MWQyMWMyNzRlZmYyMGE5ZGI4MTU4ODgyYjU0NWIxNDFiNzNh YjggXQoKQ29tbWl0IDliOTc0MjAyMjg4OCAoInNjdHA6IHN1cHBvcnQgaXB2NiBub25sb2NhbCBi aW5kIikKaW50cm9kdWNlZCBzdXBwb3J0IGZvciB0aGUgYWJvdmUgb3B0aW9ucyBhcyB2NCBzY3Rw IGRpZCwKc28gcGF0Y2hlZCBzY3RwX3Y2X2F2YWlsYWJsZSgpLgoKSW4gdGhlIHY0IGltcGxlbWVu dGF0aW9uIGl0J3MgZW5vdWdoLCBiZWNhdXNlCnNjdHBfaW5ldF9iaW5kX3ZlcmlmeSgpIGp1c3Qg cmV0dXJucyB3aXRoIHNjdHBfdjRfYXZhaWxhYmxlKCkuCkhvd2V2ZXIgc2N0cF9pbmV0Nl9iaW5k X3ZlcmlmeSgpIGhhcyBhbiBleHRyYSBjaGVjayBiZWZvcmUgdGhhdApmb3IgbGluay1sb2NhbCBz Y29wZV9pZCwgd2hpY2ggd29uJ3QgcmVzcGVjdCB0aGUgYWJvdmUgb3B0aW9ucy4KCkFkZGVkIHRo ZSBjaGVja3MgYmVmb3JlIGNhbGxpbmcgaXB2Nl9jaGtfYWRkcigpLCBidXQKbm90IGJlZm9yZSB0 aGUgdmFsaWRhdGlvbiBvZiBzY29wZV9pZC4KCmJlZm9yZSAody8gYm90aCBvcHRpb25zKToKIC4v djZ0ZXN0IGZlODA6OjEwIHNjdHAKIGJpbmQgZmFpbGVkLCBlcnJubzogOTkgKENhbm5vdCBhc3Np Z24gcmVxdWVzdGVkIGFkZHJlc3MpCiAuL3Y2dGVzdCBmZTgwOjoxMCB0Y3AKIGJpbmQgc3VjY2Vz cywgZXJybm86IDAgKFN1Y2Nlc3MpCgphZnRlciAody8gYm90aCBvcHRpb25zKToKIC4vdjZ0ZXN0 IGZlODA6OjEwIHNjdHAKIGJpbmQgc3VjY2VzcywgZXJybm86IDAgKFN1Y2Nlc3MpCgpTaWduZWQt b2ZmLWJ5OiBMYXN6bG8gVG90aCA8bGFzemx0aEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9pcHY2LmMgfCA2ICsrKystLQog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2N0cC9pcHY2LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggY2E0YTYzZTNlYWRk Li5mN2YwMGQwMTI4ODggMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysgYi9uZXQvc2N0 cC9pcHY2LmMKQEAgLTg4MSw4ICs4ODEsMTAgQEAgc3RhdGljIGludCBzY3RwX2luZXQ2X2JpbmRf dmVyaWZ5KHN0cnVjdCBzY3RwX3NvY2sgKm9wdCwgdW5pb24gc2N0cF9hZGRyICphZGRyKQogCQkJ bmV0ID0gc29ja19uZXQoJm9wdC0+aW5ldC5zayk7CiAJCQlyY3VfcmVhZF9sb2NrKCk7CiAJCQlk ZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdShuZXQsIGFkZHItPnY2LnNpbjZfc2NvcGVfaWQpOwot CQkJaWYgKCFkZXYgfHwKLQkJCSAgICAhaXB2Nl9jaGtfYWRkcihuZXQsICZhZGRyLT52Ni5zaW42 X2FkZHIsIGRldiwgMCkpIHsKKwkJCWlmICghZGV2IHx8ICEob3B0LT5pbmV0LmZyZWViaW5kIHx8 CisJCQkJICAgICAgbmV0LT5pcHY2LnN5c2N0bC5pcF9ub25sb2NhbF9iaW5kIHx8CisJCQkJICAg ICAgaXB2Nl9jaGtfYWRkcihuZXQsICZhZGRyLT52Ni5zaW42X2FkZHIsCisJCQkJCQkgICAgZGV2 LCAwKSkpIHsKIAkJCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJCQlyZXR1cm4gMDsKIAkJCX0KLS0g CjIuMTMuNgoKCkZyb20gMmNhYWYzOWVjY2YwNGMyN2YxMmI3MGY3ZGMyOWJiOTU2ZmI2N2ZhZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpEYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDEyOjMzOjU3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxNS8yNV0gdGNwL2RjY3A6IGZpeCBsb2NrZGVwIHNwbGF0IGluIGluZXRfY3NrX3JvdXRl X3JlcSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBhNmNhN2FiZTUzNjMzZDA4ZWVhMWM2NzU2Y2I0OWM5 YjJkNGM5MGJmIF0KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIGZvbGxvd2luZyBsb2NrZGVwIHNwbGF0 IGluIGluZXRfY3NrX3JvdXRlX3JlcSgpCgogIGxvY2tkZXBfcmN1X3N1c3BpY2lvdXMKICBpbmV0 X2Nza19yb3V0ZV9yZXEKICB0Y3BfdjRfc2VuZF9zeW5hY2sKICB0Y3BfcnR4X3N5bmFjawogIGlu ZXRfcnR4X3N5bl9hY2sKICB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWUKICB0Y3BfcmV0cmFuc21p dF90aW1lcgogIHRjcF93cml0ZV90aW1lcl9oYW5kbGVyCiAgdGNwX3dyaXRlX3RpbWVyCiAgY2Fs bF90aW1lcl9mbgoKVGhyZWFkIHJ1bm5pbmcgaW5ldF9jc2tfcm91dGVfcmVxKCkgb3ducyBhIHJl ZmVyZW5jZSBvbiB0aGUgcmVxdWVzdApzb2NrZXQsIHNvIHdlIGhhdmUgdGhlIGd1YXJhbnRlZSBp cmVxLT5pcmVxX29wdCB3b250IGJlIGNoYW5nZWQgb3IKZnJlZWQuCgpsb2NrZGVwIGNhbiBlbmZv cmNlIHRoaXMgaW52YXJpYW50IGZvciB1cy4KCkZpeGVzOiBjOTJlOGMwMmZlNjYgKCJ0Y3AvZGNj cDogZml4IGlyZXEtPm9wdCByYWNlcyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgfCAzICsr LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nv bm5lY3Rpb25fc29jay5jCmluZGV4IDhkN2NjNGU1MzIwNS4uYWYwNjBjY2MzMGU3IDEwMDY0NAot LS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCisrKyBiL25ldC9pcHY0L2luZXRf Y29ubmVjdGlvbl9zb2NrLmMKQEAgLTQxMCw3ICs0MTAsOCBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICpp bmV0X2Nza19yb3V0ZV9yZXEoY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCXN0cnVjdCBpcF9vcHRp b25zX3JjdSAqb3B0OwogCXN0cnVjdCBydGFibGUgKnJ0OwogCi0Jb3B0ID0gcmN1X2RlcmVmZXJl bmNlKGlyZXEtPmlyZXFfb3B0KTsKKwlvcHQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGly ZXEtPmlyZXFfb3B0LAorCQkJCQlhdG9taWNfcmVhZCgmcmVxLT5yc2tfcmVmY250KSA+IDApOwog CWZsb3dpNF9pbml0X291dHB1dChmbDQsIGlyZXEtPmlyX2lpZiwgaXJlcS0+aXJfbWFyaywKIAkJ CSAgIFJUX0NPTk5fRkxBR1Moc2spLCBSVF9TQ09QRV9VTklWRVJTRSwKIAkJCSAgIHNrLT5za19w cm90b2NvbCwgaW5ldF9za19mbG93aV9mbGFncyhzayksCi0tIAoyLjEzLjYKCgpGcm9tIGQzNDhh YmQ3OTI3NGQ2YjEyYWFiYTZjNTAzODAyMTNiOTBmNDJkNzggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAy NCBPY3QgMjAxNyAwODoyMDozMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjVdIHRjcC9kY2Nw OiBmaXggb3RoZXIgbG9ja2RlcCBzcGxhdHMgYWNjZXNzaW5nIGlyZXFfb3B0Ck1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCAwNmY4NzdkNjEzYmUzNjIx NjA0YzI1MjBlYzAzNTFkOWZiZGNhMTVmIF0KCkluIG15IGZpcnN0IGF0dGVtcHQgdG8gZml4IHRo ZSBsb2NrZGVwIHNwbGF0LCBJIGZvcmdvdCB3ZSBjb3VsZAplbnRlciBpbmV0X2Nza19yb3V0ZV9y ZXEoKSB3aXRoIGEgZnJlc2hseSBhbGxvY2F0ZWQgcmVxdWVzdCBzb2NrZXQsCmZvciB3aGljaCBy ZWZjb3VudCBoYXMgbm90IHlldCBiZWVuIGVsZXZhdGVkLCBkdWUgdG8gY29tcGxleApTTEFCX1RZ UEVTQUZFX0JZX1JDVSBydWxlcy4KCldlIGVpdGhlciBhcmUgaW4gcmN1X3JlYWRfbG9jaygpIHNl Y3Rpb24gX29yXyB3ZSBvd24gYSByZWZjb3VudCBvbiB0aGUKcmVxdWVzdC4KCkNvcnJlY3QgUkNV IHZlcmIgdG8gdXNlIGhlcmUgaXMgcmN1X2RlcmVmZXJlbmNlX2NoZWNrKCksIGFsdGhvdWdoIGl0 IGlzCm5vdCBwb3NzaWJsZSB0byBwcm92ZSB3ZSBhY3R1YWxseSBvd24gYSByZWZlcmVuY2Ugb24g YSBzaGFyZWQKcmVmY291bnQgOi8KCkluIHYyLCBJIGFkZGVkIGlyZXFfb3B0X2RlcmVmKCkgaGVs cGVyIGFuZCB1c2UgaW4gdGhyZWUgcGxhY2VzLCB0byBmaXggb3RoZXIKcG9zc2libGUgc3BsYXRz LgoKWyAgIDQ5Ljg0NDU5MF0gIGxvY2tkZXBfcmN1X3N1c3BpY2lvdXMrMHhlYS8weGYzClsgICA0 OS44NDY0ODddICBpbmV0X2Nza19yb3V0ZV9yZXErMHg1My8weDE0ZApbICAgNDkuODQ4MzM0XSAg dGNwX3Y0X3JvdXRlX3JlcSsweGUvMHgxMApbICAgNDkuODUwMTc0XSAgdGNwX2Nvbm5fcmVxdWVz dCsweDMxYy8weDZhMApbICAgNDkuODUxOTkyXSAgPyBfX2xvY2tfYWNxdWlyZSsweDYxNC8weDgy MgpbICAgNDkuODU0MDE1XSAgdGNwX3Y0X2Nvbm5fcmVxdWVzdCsweDVhLzB4NzkKWyAgIDQ5Ljg1 NTk1N10gID8gdGNwX3Y0X2Nvbm5fcmVxdWVzdCsweDVhLzB4NzkKWyAgIDQ5Ljg1ODA1Ml0gIHRj cF9yY3Zfc3RhdGVfcHJvY2VzcysweDk4LzB4ZGNjClsgICA0OS44NTk5OTBdICA/IHNrX2ZpbHRl cl90cmltX2NhcCsweDJmNi8weDMwNwpbICAgNDkuODYyMDg1XSAgdGNwX3Y0X2RvX3JjdisweGZj LzB4MTQ1ClsgICA0OS44NjQwNTVdICA/IHRjcF92NF9kb19yY3YrMHhmYy8weDE0NQpbICAgNDku ODY2MTczXSAgdGNwX3Y0X3JjdisweDVhYi8weGFmOQpbICAgNDkuODY4MDI5XSAgaXBfbG9jYWxf ZGVsaXZlcl9maW5pc2grMHgxYWYvMHgyZTcKWyAgIDQ5Ljg3MDA2NF0gIGlwX2xvY2FsX2RlbGl2 ZXIrMHgxYjIvMHgxYzUKWyAgIDQ5Ljg3MTc3NV0gID8gaW5ldF9kZWxfb2ZmbG9hZCsweDQ1LzB4 NDUKWyAgIDQ5Ljg3MzkxNl0gIGlwX3Jjdl9maW5pc2grMHgzZjcvMHg0NzEKWyAgIDQ5Ljg3NTQ3 Nl0gIGlwX3JjdisweDNmMS8weDQyZgpbICAgNDkuODc2OTkxXSAgPyBpcF9sb2NhbF9kZWxpdmVy X2ZpbmlzaCsweDJlNy8weDJlNwpbICAgNDkuODc4NzkxXSAgX19uZXRpZl9yZWNlaXZlX3NrYl9j b3JlKzB4NmQzLzB4OTUwClsgICA0OS44ODA3MDFdICA/IHByb2Nlc3NfYmFja2xvZysweDdlLzB4 MjE2ClsgICA0OS44ODI1ODldICBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MWQvMHg1ZQpbICAgNDku ODg0MTIyXSAgcHJvY2Vzc19iYWNrbG9nKzB4MTBjLzB4MjE2ClsgICA0OS44ODU4MTJdICBuZXRf cnhfYWN0aW9uKzB4MTQ3LzB4M2RmCgpGaXhlczogYTZjYTdhYmU1MzYzMyAoInRjcC9kY2NwOiBm aXggbG9ja2RlcCBzcGxhdCBpbiBpbmV0X2Nza19yb3V0ZV9yZXEoKSIpCkZpeGVzOiBjOTJlOGMw MmZlNjYgKCJ0Y3AvZGNjcDogZml4IGlyZXEtPm9wdCByYWNlcyIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IGtlcm5lbCB0ZXN0 IHJvYm90IDxmZW5nZ3Vhbmcud3VAaW50ZWwuY29tPgpSZXBvcnRlZC1ieTogTWFjaWVqIMW7ZW5j enlrb3dza2kgPG1hemVAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRfc29jay5oICAgICAg ICAgfCA2ICsrKysrKwogbmV0L2RjY3AvaXB2NC5jICAgICAgICAgICAgICAgICB8IDIgKy0KIG5l dC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgfCA0ICsrLS0KIG5ldC9pcHY0L3RjcF9pcHY0 LmMgICAgICAgICAgICAgfCAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmggYi9p bmNsdWRlL25ldC9pbmV0X3NvY2suaAppbmRleCA2MjEzYTkwYThjZWMuLjA0NjRiMjA3ZDBjZiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmgKKysrIGIvaW5jbHVkZS9uZXQvaW5l dF9zb2NrLmgKQEAgLTEzMiw2ICsxMzIsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgaW5ldF9yZXF1 ZXN0X2JvdW5kX2Rldl9pZihjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJcmV0dXJuIHNrLT5za19i b3VuZF9kZXZfaWY7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGlwX29wdGlvbnNfcmN1ICpp cmVxX29wdF9kZXJlZihjb25zdCBzdHJ1Y3QgaW5ldF9yZXF1ZXN0X3NvY2sgKmlyZXEpCit7CisJ cmV0dXJuIHJjdV9kZXJlZmVyZW5jZV9jaGVjayhpcmVxLT5pcmVxX29wdCwKKwkJCQkgICAgIGF0 b21pY19yZWFkKCZpcmVxLT5yZXEucnNrX3JlZmNudCkgPiAwKTsKK30KKwogc3RydWN0IGluZXRf Y29yayB7CiAJdW5zaWduZWQgaW50CQlmbGFnczsKIAlfX2JlMzIJCQlhZGRyOwpkaWZmIC0tZ2l0 IGEvbmV0L2RjY3AvaXB2NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IDc3ZjVlMzUyNGViYy4u OGM3Nzk5Y2RkM2NmIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0L2RjY3Av aXB2NC5jCkBAIC00OTUsNyArNDk1LDcgQEAgc3RhdGljIGludCBkY2NwX3Y0X3NlbmRfcmVzcG9u c2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEKIAkJCQkJ CQkgICAgICBpcmVxLT5pcl9ybXRfYWRkcik7CiAJCWVyciA9IGlwX2J1aWxkX2FuZF9zZW5kX3Br dChza2IsIHNrLCBpcmVxLT5pcl9sb2NfYWRkciwKIAkJCQkJICAgIGlyZXEtPmlyX3JtdF9hZGRy LAotCQkJCQkgICAgcmN1X2RlcmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KSk7CisJCQkJCSAgICBp cmVxX29wdF9kZXJlZihpcmVxKSk7CiAJCWVyciA9IG5ldF94bWl0X2V2YWwoZXJyKTsKIAl9CiAK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9p bmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IGFmMDYwY2NjMzBlNy4uZDFjYWI0OTM5M2UyIDEw MDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCisrKyBiL25ldC9pcHY0 L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKQEAgLTQxMCw4ICs0MTAsOCBAQCBzdHJ1Y3QgZHN0X2Vu dHJ5ICppbmV0X2Nza19yb3V0ZV9yZXEoY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCXN0cnVjdCBp cF9vcHRpb25zX3JjdSAqb3B0OwogCXN0cnVjdCBydGFibGUgKnJ0OwogCi0Jb3B0ID0gcmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZChpcmVxLT5pcmVxX29wdCwKLQkJCQkJYXRvbWljX3JlYWQoJnJl cS0+cnNrX3JlZmNudCkgPiAwKTsKKwlvcHQgPSBpcmVxX29wdF9kZXJlZihpcmVxKTsKKwogCWZs b3dpNF9pbml0X291dHB1dChmbDQsIGlyZXEtPmlyX2lpZiwgaXJlcS0+aXJfbWFyaywKIAkJCSAg IFJUX0NPTk5fRkxBR1Moc2spLCBSVF9TQ09QRV9VTklWRVJTRSwKIAkJCSAgIHNrLT5za19wcm90 b2NvbCwgaW5ldF9za19mbG93aV9mbGFncyhzayksCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf aXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBjOTZiOWRjY2UzMjMuLmQ1NzdlYzA3 YTBkOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90Y3Bf aXB2NC5jCkBAIC04NjEsNyArODYxLDcgQEAgc3RhdGljIGludCB0Y3BfdjRfc2VuZF9zeW5hY2so Y29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsCiAKIAkJZXJyID0g aXBfYnVpbGRfYW5kX3NlbmRfcGt0KHNrYiwgc2ssIGlyZXEtPmlyX2xvY19hZGRyLAogCQkJCQkg ICAgaXJlcS0+aXJfcm10X2FkZHIsCi0JCQkJCSAgICByY3VfZGVyZWZlcmVuY2UoaXJlcS0+aXJl cV9vcHQpKTsKKwkJCQkJICAgIGlyZXFfb3B0X2RlcmVmKGlyZXEpKTsKIAkJZXJyID0gbmV0X3ht aXRfZXZhbChlcnIpOwogCX0KIAotLSAKMi4xMy42CgoKRnJvbSBmNzEyZGMyOGMxNDJjYzJmMTEw ZDkwMzI4ZTJlZTA2MjgwMmRmNTYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRy ZWkgVmFnaW4gPGF2YWdpbkBvcGVudnoub3JnPgpEYXRlOiBXZWQsIDI1IE9jdCAyMDE3IDEwOjE2 OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNy8yNV0gbmV0L3VuaXg6IGRvbid0IHNob3cgaW5m b3JtYXRpb24gYWJvdXQgc29ja2V0cyBmcm9tCiBvdGhlciBuYW1lc3BhY2VzCgpbIFVwc3RyZWFt IGNvbW1pdCAwZjVkYTY1OWQ4ZjE4MTBmNDRkZTE0YWNmMmM4MGNkNjQ5OTYyM2EwIF0KCnNvY2tl dF9kaWFnIHNob3dzIGluZm9ybWF0aW9uIG9ubHkgYWJvdXQgc29ja2V0cyBmcm9tIGEgbmFtZXNw YWNlIHdoZXJlCmEgZGlhZyBzb2NrZXQgbGl2ZXMuCgpCdXQgaWYgd2UgcmVxdWVzdCBpbmZvcm1h dGlvbiBhYm91dCBvbmUgdW5peCBzb2NrZXQsIHRoZSBrZXJuZWwgZG9uJ3QKY2hlY2sgdGhhdCBp dHMgbmV0bnMgaXMgbWF0Y2hlZCB3aXRoIGEgZGlhZyBzb2NrZXQgbmFtZXNwYWNlLCBzbyBhbnkK dXNlciBjYW4gZ2V0IGluZm9ybWF0aW9uIGFib3V0IGFueSB1bml4IHNvY2tldCBpbiBhIHN5c3Rl bS4gVGhpcyBsb29rcwpsaWtlIGEgYnVnLgoKdjI6IGFkZCBhIEZpeGVzIHRhZwoKRml4ZXM6IDUx ZDdjY2NmMDcyMyAoIm5ldDogbWFrZSBzb2NrIGRpYWcgcGVyLW5hbWVzcGFjZSIpClNpZ25lZC1v ZmYtYnk6IEFuZHJlaSBWYWdpbiA8YXZhZ2luQG9wZW52ei5vcmc+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdW5peC9kaWFnLmMg fCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L3VuaXgvZGlhZy5jIGIvbmV0L3VuaXgvZGlhZy5jCmluZGV4IDRkOTY3OTcwMWE2ZC4uMzg0Yzg0 ZTgzNDYyIDEwMDY0NAotLS0gYS9uZXQvdW5peC9kaWFnLmMKKysrIGIvbmV0L3VuaXgvZGlhZy5j CkBAIC0yNTcsNiArMjU3LDggQEAgc3RhdGljIGludCB1bml4X2RpYWdfZ2V0X2V4YWN0KHN0cnVj dCBza19idWZmICppbl9za2IsCiAJZXJyID0gLUVOT0VOVDsKIAlpZiAoc2sgPT0gTlVMTCkKIAkJ Z290byBvdXRfbm9zazsKKwlpZiAoIW5ldF9lcShzb2NrX25ldChzayksIG5ldCkpCisJCWdvdG8g b3V0OwogCiAJZXJyID0gc29ja19kaWFnX2NoZWNrX2Nvb2tpZShzaywgcmVxLT51ZGlhZ19jb29r aWUpOwogCWlmIChlcnIpCi0tIAoyLjEzLjYKCgpGcm9tIDQyZjM0YThkNWM4NTA1YjI1OWIyNDNh N2UxMzUwOTNiMzQ2YzczOTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdpcmlzaCBN b29kYWxiYWlsIDxnaXJpc2gubW9vZGFsYmFpbEBvcmFjbGUuY29tPgpEYXRlOiBXZWQsIDI1IE9j dCAyMDE3IDAwOjIzOjA0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOC8yNV0gdGFwOiBkb3VibGUt ZnJlZSBpbiBlcnJvciBwYXRoIGluIHRhcF9vcGVuKCkKClsgVXBzdHJlYW0gY29tbWl0IDc4ZTBl YTY3OTFkN2JhYWZiOGEwY2E4MmIxYmQwYzdiMzQ1M2M5MTkgXQoKRG91YmxlIGZyZWUgb2Ygc2ti X2FycmF5IGluIHRhcCBtb2R1bGUgaXMgY2F1c2luZyBrZXJuZWwgcGFuaWMuIFdoZW4KdGFwX3Nl dF9xdWV1ZSgpIGZhaWxzIHdlIGZyZWUgc2tiX2FycmF5IHJpZ2h0IGF3YXkgYnkgY2FsbGluZwpz a2JfYXJyYXlfY2xlYW51cCgpLiBIb3dldmVyLCBsYXRlciBvbiBza2JfYXJyYXlfY2xlYW51cCgp IGlzIGNhbGxlZAphZ2FpbiBieSB0YXBfc29ja19kZXN0cnVjdCB0aHJvdWdoIHNvY2tfcHV0KCku IFRoaXMgcGF0Y2ggZml4ZXMgdGhhdAppc3N1ZS4KCkZpeGVzOiAzNjI4OTliODcyNWIzNWUzICht YWN2dGFwOiBzd2l0Y2ggdG8gdXNlIHNrYiBhcnJheSkKU2lnbmVkLW9mZi1ieTogR2lyaXNoIE1v b2RhbGJhaWwgPGdpcmlzaC5tb29kYWxiYWlsQG9yYWNsZS5jb20+CkFja2VkLWJ5OiBKYXNvbiBX YW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjdnRhcC5jIHwgMTggKysr KysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYyBiL2RyaXZlcnMvbmV0 L21hY3Z0YXAuYwppbmRleCAwZGEyOTJlOWEyNWMuLjlkYTlkYjE3ZmMzNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvbWFjdnRhcC5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwpAQCAtNTU5 LDYgKzU1OSwxMCBAQCBzdGF0aWMgaW50IG1hY3Z0YXBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIAkJCQkJICAgICAmbWFjdnRhcF9wcm90bywgMCk7CiAJaWYg KCFxKQogCQlnb3RvIGVycjsKKwlpZiAoc2tiX2FycmF5X2luaXQoJnEtPnNrYl9hcnJheSwgZGV2 LT50eF9xdWV1ZV9sZW4sIEdGUF9LRVJORUwpKSB7CisJCXNrX2ZyZWUoJnEtPnNrKTsKKwkJZ290 byBlcnI7CisJfQogCiAJUkNVX0lOSVRfUE9JTlRFUihxLT5zb2NrLndxLCAmcS0+d3EpOwogCWlu aXRfd2FpdHF1ZXVlX2hlYWQoJnEtPndxLndhaXQpOwpAQCAtNTgyLDIyICs1ODYsMTggQEAgc3Rh dGljIGludCBtYWN2dGFwX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp bGUpCiAJaWYgKChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9ISUdIRE1BKSAmJiAoZGV2LT5mZWF0 dXJlcyAmIE5FVElGX0ZfU0cpKQogCQlzb2NrX3NldF9mbGFnKCZxLT5zaywgU09DS19aRVJPQ09Q WSk7CiAKLQllcnIgPSAtRU5PTUVNOwotCWlmIChza2JfYXJyYXlfaW5pdCgmcS0+c2tiX2FycmF5 LCBkZXYtPnR4X3F1ZXVlX2xlbiwgR0ZQX0tFUk5FTCkpCi0JCWdvdG8gZXJyX2FycmF5OwotCiAJ ZXJyID0gbWFjdnRhcF9zZXRfcXVldWUoZGV2LCBmaWxlLCBxKTsKLQlpZiAoZXJyKQotCQlnb3Rv IGVycl9xdWV1ZTsKKwlpZiAoZXJyKSB7CisJCS8qIG1hY3Z0YXBfc29ja19kZXN0cnVjdCgpIHdp bGwgdGFrZSBjYXJlIG9mIGZyZWVpbmcgc2tiX2FycmF5ICovCisJCWdvdG8gZXJyX3B1dDsKKwl9 CiAKIAlkZXZfcHV0KGRldik7CiAKIAlydG5sX3VubG9jaygpOwogCXJldHVybiBlcnI7CiAKLWVy cl9xdWV1ZToKLQlza2JfYXJyYXlfY2xlYW51cCgmcS0+c2tiX2FycmF5KTsKLWVycl9hcnJheToK K2Vycl9wdXQ6CiAJc29ja19wdXQoJnEtPnNrKTsKIGVycjoKIAlpZiAoZGV2KQotLSAKMi4xMy42 CgoKRnJvbSBlZGM5Y2UzNzllMWQ0YmVmZDI0ODcyMGViZjVjODQ1OTNhYmI1OTEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRh dGU6IFRodSwgMjYgT2N0IDIwMTcgMTk6MTk6NTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDE5LzI1 XSBpcGlwOiBvbmx5IGluY3JlYXNlIGVycl9jb3VudCBmb3Igc29tZSBjZXJ0YWluIHR5cGUKIGlj bXAgaW4gaXBpcF9lcnIKClsgVXBzdHJlYW0gY29tbWl0IGYzNTk0ZjBhN2VhMzY2NjFkN2ZkOTQy ZmFjZDdmMzFhNjQyNDVmMWEgXQoKdC0+ZXJyX2NvdW50IGlzIHVzZWQgdG8gY291bnQgdGhlIGxp bmsgZmFpbHVyZSBvbiB0dW5uZWwgYW5kIGFuIGVycgp3aWxsIGJlIHJlcG9ydGVkIHRvIHVzZXIg c29ja2V0IGluIHR4IHBhdGggaWYgdC0+ZXJyX2NvdW50IGlzIG5vdCAwLgp1ZHAgc29ja2V0IGNv dWxkIGV2ZW4gcmV0dXJuIEVIT1NUVU5SRUFDSCB0byB1c2Vycy4KClNpbmNlIGNvbW1pdCBmZDU4 MTU2ZTQ1NmQgKCJJUElQOiBVc2UgaXAtdHVubmVsaW5nIGNvZGUuIikgcmVtb3ZlZAp0aGUgJ3N3 aXRjaCBjaGVjaycgZm9yIGljbXAgdHlwZSBpbiBpcGlwX2VycigpLCBlcnJfY291bnQgd291bGQg YmUKaW5jcmVhc2VkIGJ5IHRoZSBpY21wIHBhY2tldCB3aXRoIElDTVBfRVhDX0ZSQUdUSU1FIGNv ZGUuIGFuIGxpbmsKZmFpbHVyZSB3b3VsZCBiZSByZXBvcnRlZCBvdXQgZHVlIHRvIHRoaXMuCgpJ biBKaWFubGluJ3MgY2FzZSwgd2hlbiByZWNlaXZpbmcgSUNNUF9FWENfRlJBR1RJTUUgYSBpY21w IHBhY2tldCwKdWRwIG5ldHBlcmYgZmFpbGVkIHdpdGggdGhlIGVycjoKICBzZW5kX2RhdGE6IGRh dGEgc2VuZCBlcnJvcjogTm8gcm91dGUgdG8gaG9zdCAoZXJybm8gMTEzKQoKV2UgZXhwZWN0IHRo aXMgZXJyb3IgcmVwb3J0ZWQgZnJvbSB0dW5uZWwgdG8gc29ja2V0IHdoZW4gcmVjZWl2aW5nCnNv bWUgY2VydGFpbiB0eXBlIGljbXAsIGJ1dCBub3QgSUNNUF9FWENfRlJBR1RJTUUsIElDTVBfU1Jf RkFJTEVECm9yIElDTVBfUEFSQU1FVEVSUFJPQiBvbmVzLgoKVGhpcyBwYXRjaCBpcyB0byBicmlu ZyAnc3dpdGNoIGNoZWNrJyBmb3IgaWNtcCB0eXBlIGJhY2sgdG8gaXBpcF9lcnIKc28gdGhhdCBp dCBvbmx5IHJlcG9ydHMgbGluayBmYWlsdXJlIGZvciB0aGUgcmlnaHQgdHlwZSBpY21wLCBqdXN0 IGFzCmluIGlwZ3JlX2VycigpIGFuZCBpcGlwNl9lcnIoKS4KCkZpeGVzOiBmZDU4MTU2ZTQ1NmQg KCJJUElQOiBVc2UgaXAtdHVubmVsaW5nIGNvZGUuIikKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hp IDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcGlwLmMgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MiBpbnNl cnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcGlwLmMg Yi9uZXQvaXB2NC9pcGlwLmMKaW5kZXggYzkzOTI1ODljNDE1Li41NmQ3MWEwMDRkY2UgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L2lwaXAuYworKysgYi9uZXQvaXB2NC9pcGlwLmMKQEAgLTEyOCw0MyAr MTI4LDY4IEBAIHN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBpcGlwX2xpbmtfb3BzIF9fcmVh ZF9tb3N0bHk7CiAKIHN0YXRpYyBpbnQgaXBpcF9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMy IGluZm8pCiB7Ci0KLS8qIEFsbCB0aGUgcm91dGVycyAoZXhjZXB0IGZvciBMaW51eCkgcmV0dXJu IG9ubHkKLSAgIDggYnl0ZXMgb2YgcGFja2V0IHBheWxvYWQuIEl0IG1lYW5zLCB0aGF0IHByZWNp c2UgcmVsYXlpbmcgb2YKLSAgIElDTVAgaW4gdGhlIHJlYWwgSW50ZXJuZXQgaXMgYWJzb2x1dGVs eSBpbmZlYXNpYmxlLgotICovCisJLyogQWxsIHRoZSByb3V0ZXJzIChleGNlcHQgZm9yIExpbnV4 KSByZXR1cm4gb25seQorCSAqIDggYnl0ZXMgb2YgcGFja2V0IHBheWxvYWQuIEl0IG1lYW5zLCB0 aGF0IHByZWNpc2UgcmVsYXlpbmcgb2YKKwkgKiBJQ01QIGluIHRoZSByZWFsIEludGVybmV0IGlz IGFic29sdXRlbHkgaW5mZWFzaWJsZS4KKwkgKi8KIAlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0 KHNrYi0+ZGV2KTsKIAlzdHJ1Y3QgaXBfdHVubmVsX25ldCAqaXRuID0gbmV0X2dlbmVyaWMobmV0 LCBpcGlwX25ldF9pZCk7CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGggPSAoY29uc3Qgc3RydWN0 IGlwaGRyICopc2tiLT5kYXRhOwotCXN0cnVjdCBpcF90dW5uZWwgKnQ7Ci0JaW50IGVycjsKIAlj b25zdCBpbnQgdHlwZSA9IGljbXBfaGRyKHNrYiktPnR5cGU7CiAJY29uc3QgaW50IGNvZGUgPSBp Y21wX2hkcihza2IpLT5jb2RlOworCXN0cnVjdCBpcF90dW5uZWwgKnQ7CisJaW50IGVyciA9IDA7 CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIElDTVBfREVTVF9VTlJFQUNIOgorCQlzd2l0Y2gg KGNvZGUpIHsKKwkJY2FzZSBJQ01QX1NSX0ZBSUxFRDoKKwkJCS8qIEltcG9zc2libGUgZXZlbnQu ICovCisJCQlnb3RvIG91dDsKKwkJZGVmYXVsdDoKKwkJCS8qIEFsbCBvdGhlcnMgYXJlIHRyYW5z bGF0ZWQgdG8gSE9TVF9VTlJFQUNILgorCQkJICogcmZjMjAwMyBjb250YWlucyAiZGVlcCB0aG91 Z2h0cyIgYWJvdXQgTkVUX1VOUkVBQ0gsCisJCQkgKiBJIGJlbGlldmUgdGhleSBhcmUganVzdCBl dGhlciBwb2xsdXRpb24uIC0tQU5LCisJCQkgKi8KKwkJCWJyZWFrOworCQl9CisJCWJyZWFrOwor CisJY2FzZSBJQ01QX1RJTUVfRVhDRUVERUQ6CisJCWlmIChjb2RlICE9IElDTVBfRVhDX1RUTCkK KwkJCWdvdG8gb3V0OworCQlicmVhazsKKworCWNhc2UgSUNNUF9SRURJUkVDVDoKKwkJYnJlYWs7 CisKKwlkZWZhdWx0OgorCQlnb3RvIG91dDsKKwl9CiAKLQllcnIgPSAtRU5PRU5UOwogCXQgPSBp cF90dW5uZWxfbG9va3VwKGl0biwgc2tiLT5kZXYtPmlmaW5kZXgsIFRVTk5FTF9OT19LRVksCiAJ CQkgICAgIGlwaC0+ZGFkZHIsIGlwaC0+c2FkZHIsIDApOwotCWlmICghdCkKKwlpZiAoIXQpIHsK KwkJZXJyID0gLUVOT0VOVDsKIAkJZ290byBvdXQ7CisJfQogCiAJaWYgKHR5cGUgPT0gSUNNUF9E RVNUX1VOUkVBQ0ggJiYgY29kZSA9PSBJQ01QX0ZSQUdfTkVFREVEKSB7Ci0JCWlwdjRfdXBkYXRl X3BtdHUoc2tiLCBkZXZfbmV0KHNrYi0+ZGV2KSwgaW5mbywKLQkJCQkgdC0+cGFybXMubGluaywg MCwgaXBoLT5wcm90b2NvbCwgMCk7Ci0JCWVyciA9IDA7CisJCWlwdjRfdXBkYXRlX3BtdHUoc2ti LCBuZXQsIGluZm8sIHQtPnBhcm1zLmxpbmssIDAsCisJCQkJIGlwaC0+cHJvdG9jb2wsIDApOwog CQlnb3RvIG91dDsKIAl9CiAKIAlpZiAodHlwZSA9PSBJQ01QX1JFRElSRUNUKSB7Ci0JCWlwdjRf cmVkaXJlY3Qoc2tiLCBkZXZfbmV0KHNrYi0+ZGV2KSwgdC0+cGFybXMubGluaywgMCwKLQkJCSAg ICAgIGlwaC0+cHJvdG9jb2wsIDApOwotCQllcnIgPSAwOworCQlpcHY0X3JlZGlyZWN0KHNrYiwg bmV0LCB0LT5wYXJtcy5saW5rLCAwLCBpcGgtPnByb3RvY29sLCAwKTsKIAkJZ290byBvdXQ7CiAJ fQogCi0JaWYgKHQtPnBhcm1zLmlwaC5kYWRkciA9PSAwKQorCWlmICh0LT5wYXJtcy5pcGguZGFk ZHIgPT0gMCkgeworCQllcnIgPSAtRU5PRU5UOwogCQlnb3RvIG91dDsKKwl9CiAKLQllcnIgPSAw OwogCWlmICh0LT5wYXJtcy5pcGgudHRsID09IDAgJiYgdHlwZSA9PSBJQ01QX1RJTUVfRVhDRUVE RUQpCiAJCWdvdG8gb3V0OwogCi0tIAoyLjEzLjYKCgpGcm9tIDliNzA2YjA0NzhiNzExYWQ4NTIy OWYwMzZhZWU0YjM2NzRlMDlhMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBM b25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNiBPY3QgMjAxNyAxOToyMzoy NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjVdIGlwNl9ncmU6IG9ubHkgaW5jcmVhc2UgZXJy X2NvdW50IGZvciBzb21lIGNlcnRhaW4gdHlwZQogaWNtcHY2IGluIGlwNmdyZV9lcnIKClsgVXBz dHJlYW0gY29tbWl0IGY4ZDIwYjQ2Y2U1NWNmNDBhZmIzMGRjZWY2ZDkyODhmN2VmNDZkOWIgXQoK VGhlIHNpbWlsYXIgZml4IGluIHBhdGNoICdpcGlwOiBvbmx5IGluY3JlYXNlIGVycl9jb3VudCBm b3Igc29tZQpjZXJ0YWluIHR5cGUgaWNtcCBpbiBpcGlwX2VycicgaXMgbmVlZGVkIGZvciBpcDZn cmVfZXJyLgoKSW4gSmlhbmxpbidzIGNhc2UsIHVkcCBuZXRwZXJmIGJyb2tlIGV2ZW4gd2hlbiBy ZWNlaXZpbmcgYSBUb29CaWcKaWNtcHY2IHBhY2tldC4KCkZpeGVzOiBjMTJiMzk1YTQ2NjQgKCJn cmU6IFN1cHBvcnQgR1JFIG92ZXIgSVB2NiIpClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlz aGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgMTEgKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv aXA2X2dyZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IDQxYzEwNDg2Y2Y3ZS4uZDA4M2Qz YzI1NDc1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2 X2dyZS5jCkBAIC00MDgsMTMgKzQwOCwxNiBAQCBzdGF0aWMgdm9pZCBpcDZncmVfZXJyKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBpbmV0Nl9za2JfcGFybSAqb3B0LAogCWNhc2UgSUNNUFY2 X0RFU1RfVU5SRUFDSDoKIAkJbmV0X2RiZ19yYXRlbGltaXRlZCgiJXM6IFBhdGggdG8gZGVzdGlu YXRpb24gaW52YWxpZCBvciBpbmFjdGl2ZSFcbiIsCiAJCQkJICAgIHQtPnBhcm1zLm5hbWUpOwot CQlicmVhazsKKwkJaWYgKGNvZGUgIT0gSUNNUFY2X1BPUlRfVU5SRUFDSCkKKwkJCWJyZWFrOwor CQlyZXR1cm47CiAJY2FzZSBJQ01QVjZfVElNRV9FWENFRUQ6CiAJCWlmIChjb2RlID09IElDTVBW Nl9FWENfSE9QTElNSVQpIHsKIAkJCW5ldF9kYmdfcmF0ZWxpbWl0ZWQoIiVzOiBUb28gc21hbGwg aG9wIGxpbWl0IG9yIHJvdXRpbmcgbG9vcCBpbiB0dW5uZWwhXG4iLAogCQkJCQkgICAgdC0+cGFy bXMubmFtZSk7CisJCQlicmVhazsKIAkJfQotCQlicmVhazsKKwkJcmV0dXJuOwogCWNhc2UgSUNN UFY2X1BBUkFNUFJPQjoKIAkJdGVsaSA9IDA7CiAJCWlmIChjb2RlID09IElDTVBWNl9IRFJfRklF TEQpCkBAIC00MzAsNyArNDMzLDcgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX2VycihzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0gKm9wdCwKIAkJCW5ldF9kYmdfcmF0ZWxp bWl0ZWQoIiVzOiBSZWNpcGllbnQgdW5hYmxlIHRvIHBhcnNlIHR1bm5lbGVkIHBhY2tldCFcbiIs CiAJCQkJCSAgICB0LT5wYXJtcy5uYW1lKTsKIAkJfQotCQlicmVhazsKKwkJcmV0dXJuOwogCWNh c2UgSUNNUFY2X1BLVF9UT09CSUc6CiAJCW10dSA9IGJlMzJfdG9fY3B1KGluZm8pIC0gb2Zmc2V0 IC0gdC0+dHVuX2hsZW47CiAJCWlmICh0LT5kZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKQpAQCAt NDM4LDcgKzQ0MSw3IEBAIHN0YXRpYyB2b2lkIGlwNmdyZV9lcnIoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IGluZXQ2X3NrYl9wYXJtICpvcHQsCiAJCWlmIChtdHUgPCBJUFY2X01JTl9NVFUp CiAJCQltdHUgPSBJUFY2X01JTl9NVFU7CiAJCXQtPmRldi0+bXR1ID0gbXR1OwotCQlicmVhazsK KwkJcmV0dXJuOwogCX0KIAogCWlmICh0aW1lX2JlZm9yZShqaWZmaWVzLCB0LT5lcnJfdGltZSAr IElQNlRVTk5FTF9FUlJfVElNRU8pKQotLSAKMi4xMy42CgoKRnJvbSA0OTY1OGQ3YmE0ZWJiN2U5 OTI1YzFhMzE0N2YzZTUwZTIzZmU1MjBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBY aW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjYgT2N0IDIwMTcgMTk6 Mjc6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIDIxLzI1XSBpcDZfZ3JlOiB1cGRhdGUgZHN0IHBt dHUgaWYgZGV2IG10dSBoYXMgYmVlbiB1cGRhdGVkIGJ5CiB0b29iaWcgaW4gX19ncmU2X3htaXQK ClsgVXBzdHJlYW0gY29tbWl0IDhhZWM0OTU5ZDgzMmJhZTA4ODlhOGUyZjM0ODk3M2I1ZTRhYmZm ZWYgXQoKV2hlbiByZWNlaXZpbmcgYSBUb29iaWcgaWNtcHY2IHBhY2tldCwgaXA2Z3JlX2VyciB3 b3VsZCBqdXN0IHNldAp0dW5uZWwgZGV2J3MgbXR1LCB0aGF0J3Mgbm90IGVub3VnaC4gRm9yIHNr Yl9kc3Qoc2tiKSdzIHBtdHUgbWF5CnN0aWxsIGJlIHVzaW5nIHRoZSBvbGQgdmFsdWUsIGl0IGhh cyBubyBjaGFuY2UgdG8gYmUgdXBkYXRlZCB3aXRoCnR1bm5lbCBkZXYncyBtdHUuCgpKaWFubGlu IGZvdW5kIHRoaXMgaXNzdWUgYnkgcmVkdWNpbmcgcm91dGUncyBtdHUgd2hpbGUgcnVubmluZwpu ZXRwZXJmLCB0aGUgcGVyZm9ybWFuY2Ugd2VudCB0byAwLgoKaXA2aXA2IGFuZCBpcDRpcDYgdHVu bmVsIGNhbiB3b3JrIHdlbGwgd2l0aCB0aGlzLCBhcyB0aGV5IGxvb2t1cAp0aGUgdXBwZXIgZHN0 IGFuZCB1cGRhdGVfcG10dSBpdCdzIHBtdHUgb3IgaWNtcHY2X3NlbmQgYSBUb29iaWcKdG8gdXBw ZXIgc29ja2V0IGFmdGVyIHNldHRpbmcgdHVubmVsIGRldidzIG10dS4KCldlIGNvdWxkbid0IGRv IHRoYXQgZm9yIGlwNl9ncmUsIGFzIGdyZSdzIGlubmVyIHBhY2tldCBjb3VsZCBiZQphbnkgcHJv dG9jb2wsIGl0J3MgZGlmZmljdWx0IHRvIGhhbmRsZSB0aGVtIChsaWtlIGxvb2t1cCB1cHBlcgpk c3QpIGluIGEgZ29vZCB3YXkuCgpTbyB0aGlzIHBhdGNoIGlzIHRvIGZpeCBpdCBieSB1cGRhdGlu ZyBza2JfZHN0KHNrYikncyBwbXR1IHdoZW4KZGV2LT5tdHUgPCBza2JfZHN0KHNrYikncyBwbXR1 IGluIHR4IHBhdGguIEl0J3Mgc2FmZSB0byBkbyB0aGlzCnVwZGF0ZSB0aGVyZSwgYXMgdXN1YWxs eSBkZXYtPm10dSA8PSBza2JfZHN0KHNrYikncyBwbXR1IGFuZCBubwpwZXJmb3JtYW5jZSByZWdy ZXNzaW9uIGNhbiBiZSBjYXVzZWQgYnkgdGhpcy4KCkZpeGVzOiBjMTJiMzk1YTQ2NjQgKCJncmU6 IFN1cHBvcnQgR1JFIG92ZXIgSVB2NiIpClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlA cmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2dy ZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IGQwODNkM2MyNTQ3NS4uZTliMTRlMzQ5M2Yy IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2X2dyZS5j CkBAIC01MDgsOCArNTA4LDggQEAgc3RhdGljIG5ldGRldl90eF90IF9fZ3JlNl94bWl0KHN0cnVj dCBza19idWZmICpza2IsCiAJCQkgICAgICAgX191MzIgKnBtdHUsIF9fYmUxNiBwcm90bykKIHsK IAlzdHJ1Y3QgaXA2X3RubCAqdHVubmVsID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlfX2JlMTYgcHJv dG9jb2wgPSAoZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikgPwotCQkJICBodG9ucyhFVEhfUF9U RUIpIDogcHJvdG87CisJc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gc2tiX2RzdChza2IpOworCV9f YmUxNiBwcm90b2NvbDsKIAogCWlmIChkZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKQogCQlJUENC KHNrYiktPmZsYWdzID0gMDsKQEAgLTUyMyw5ICs1MjMsMTQgQEAgc3RhdGljIG5ldGRldl90eF90 IF9fZ3JlNl94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJCXR1bm5lbC0+b19zZXFubysrOwog CiAJLyogUHVzaCBHUkUgaGVhZGVyLiAqLworCXByb3RvY29sID0gKGRldi0+dHlwZSA9PSBBUlBI UkRfRVRIRVIpID8gaHRvbnMoRVRIX1BfVEVCKSA6IHByb3RvOwogCWdyZV9idWlsZF9oZWFkZXIo c2tiLCB0dW5uZWwtPnR1bl9obGVuLCB0dW5uZWwtPnBhcm1zLm9fZmxhZ3MsCiAJCQkgcHJvdG9j b2wsIHR1bm5lbC0+cGFybXMub19rZXksIGh0b25sKHR1bm5lbC0+b19zZXFubykpOwogCisJLyog VG9vQmlnIHBhY2tldCBtYXkgaGF2ZSB1cGRhdGVkIGRzdC0+ZGV2J3MgbXR1ICovCisJaWYgKGRz dCAmJiBkc3RfbXR1KGRzdCkgPiBkc3QtPmRldi0+bXR1KQorCQlkc3QtPm9wcy0+dXBkYXRlX3Bt dHUoZHN0LCBOVUxMLCBza2IsIGRzdC0+ZGV2LT5tdHUpOworCiAJcmV0dXJuIGlwNl90bmxfeG1p dChza2IsIGRldiwgZHNmaWVsZCwgZmw2LCBlbmNhcF9saW1pdCwgcG10dSwKIAkJCSAgICBORVhU SERSX0dSRSk7CiB9Ci0tIAoyLjEzLjYKCgpGcm9tIGQyODBhM2MwZmVlZWJkYzI1YTI4NDNiZmEx NjIxNmUxYWFhYTJkZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGllbiBHb21l cyA8anVsaWVuQGFyaXN0YS5jb20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMTcgMTE6NTA6NTAgLTA3 MDAKU3ViamVjdDogW1BBVENIIDIyLzI1XSB0dW46IGFsbG93IHBvc2l0aXZlIHJldHVybiB2YWx1 ZXMgb24KIGRldl9nZXRfdmFsaWRfbmFtZSgpIGNhbGwKClsgVXBzdHJlYW0gY29tbWl0IDVjMjVm NjVmZDFlNDI2ODVmN2NjZDgwZTA2MjE4MjljMTA1Nzg1ZDkgXQoKSWYgdGhlIG5hbWUgYXJndW1l bnQgb2YgZGV2X2dldF92YWxpZF9uYW1lKCkgY29udGFpbnMgIiVkIiwgaXQgd2lsbCB0cnkKdG8g YXNzaWduIGl0IGEgdW5pdCBudW1iZXIgaW4gX19kZXZfX2FsbG9jX25hbWUoKSBhbmQgcmV0dXJu IGVpdGhlciB0aGUKdW5pdCBudW1iZXIgKD49IDApIG9yIGFuIGVycm9yIGNvZGUgKDwgMCkuCkNv bnNpZGVyaW5nIHBvc2l0aXZlIHZhbHVlcyBhcyBlcnJvciB2YWx1ZXMgcHJldmVudCB0dW4gZGV2 aWNlIGNyZWF0aW9ucwpyZWx5aW5nIHRoaXMgbWVjaGFuaXNtLCB0aGVyZWZvciB3ZSBzaG91bGQg b25seSBjb25zaWRlciBuZWdhdGl2ZSB2YWx1ZXMKYXMgZXJyb3JzIGhlcmUuCgpTaWduZWQtb2Zm LWJ5OiBKdWxpZW4gR29tZXMgPGp1bGllbkBhcmlzdGEuY29tPgpBY2tlZC1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggYTc3NGM4MjdhNDE0 Li41MThjYmZiYzhiNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBiL2RyaXZl cnMvbmV0L3R1bi5jCkBAIC0xNzg4LDcgKzE3ODgsNyBAQCBzdGF0aWMgaW50IHR1bl9zZXRfaWZm KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBpZnJlcSAqaWZyKQog CQlpZiAoIWRldikKIAkJCXJldHVybiAtRU5PTUVNOwogCQllcnIgPSBkZXZfZ2V0X3ZhbGlkX25h bWUobmV0LCBkZXYsIG5hbWUpOwotCQlpZiAoZXJyKQorCQlpZiAoZXJyIDwgMCkKIAkJCWdvdG8g ZXJyX2ZyZWVfZGV2OwogCiAJCWRldl9uZXRfc2V0KGRldiwgbmV0KTsKLS0gCjIuMTMuNgoKCkZy b20gNjlmNjJjNmExNTMyMDM1YjIxMGNhYzk5OTdhOWJlYmQ4Y2ExODhkMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBT YXQsIDI4IE9jdCAyMDE3IDAyOjEzOjI5ICswODAwClN1YmplY3Q6IFtQQVRDSCAyMy8yNV0gc2N0 cDogcmVzZXQgb3duZXIgc2sgZm9yIGRhdGEgY2h1bmtzIG9uIG91dCBxdWV1ZXMgd2hlbgogbWln cmF0aW5nIGEgc29jawoKWyBVcHN0cmVhbSBjb21taXQgZDA0YWRmMWIzNTUxODFlNzM3YjZiMWUy M2Q4MDFiMDdmMGI3YzRjMCBdCgpOb3cgd2hlbiBtaWdyYXRpbmcgc29jayB0byBhbm90aGVyIG9u ZSBpbiBzY3RwX3NvY2tfbWlncmF0ZSgpLCBpdCBvbmx5CnJlc2V0cyBvd25lciBzayBmb3IgdGhl IGRhdGEgaW4gcmVjZWl2ZSBxdWV1ZXMsIG5vdCB0aGUgY2h1bmtzIG9uIG91dApxdWV1ZXMuCgpJ dCB3b3VsZCBjYXVzZSB0aGF0IGRhdGEgY2h1bmtzIGxlbmd0aCBvbiB0aGUgc29jayBpcyBub3Qg Y29uc2lzdGVudAp3aXRoIHNrIHNrX3dtZW1fYWxsb2MuIFdoZW4gY2xvc2luZyB0aGUgc29jayBv ciBmcmVlaW5nIHRoZXNlIGNodW5rcywKdGhlIG9sZCBzayB3b3VsZCBuZXZlciBiZSBmcmVlZCwg YW5kIHRoZSBuZXcgc29jayBtYXkgY3Jhc2ggZHVlIHRvCnRoZSBvdmVyZmxvdyBza193bWVtX2Fs bG9jLgoKc3l6Ym90IGZvdW5kIHRoaXMgaXNzdWUgd2l0aCB0aGlzIHNlcmllczoKCiAgcjAgPSBz b2NrZXQkaW5ldF9zY3RwKCkKICBzZW5kdG8kaW5ldChyMCkKICBsaXN0ZW4ocjApCiAgYWNjZXB0 NChyMCkKICBjbG9zZShyMCkKCkFsdGhvdWdoIGxpc3RlbigpIHNob3VsZCBoYXZlIHJldHVybmVk IGVycm9yIHdoZW4gb25lIFRDUC1zdHlsZSBzb2NrZXQKaXMgaW4gY29ubmVjdGluZyAoSSBtYXkg Zml4IHRoaXMgb25lIGluIGFub3RoZXIgcGF0Y2gpLCBpdCBjb3VsZCBhbHNvCmJlIHJlcHJvZHVj ZWQgYnkgcGVlbGluZyBvZmYgYW4gYXNzb2MuCgpUaGlzIGlzc3VlIGlzIHRoZXJlIHNpbmNlIHZl cnkgYmVnaW5uaW5nLgoKVGhpcyBwYXRjaCBpcyB0byByZXNldCBvd25lciBzayBmb3IgdGhlIGNo dW5rcyBvbiBvdXQgcXVldWVzIHNvIHRoYXQKc2sgc2tfd21lbV9hbGxvYyBoYXMgY29ycmVjdCB2 YWx1ZSBhZnRlciBhY2NlcHQgb25lIHNvY2sgb3IgcGVlbG9mZgphbiBhc3NvYyB0byBvbmUgc29j ay4KCk5vdGUgdGhhdCB3aGVuIHJlc2V0dGluZyBvd25lciBzayBmb3IgY2h1bmtzIG9uIG91dHF1 ZXVlLCBpdCBoYXMgdG8Kc2N0cF9jbGVhcl9vd25lcl93L3NrYl9vcnBoYW4gY2h1bmtzIGJlZm9y ZSBjaGFuZ2luZyBhc3NvYy0+YmFzZS5zawpmaXJzdCBhbmQgdGhlbiBzY3RwX3NldF9vd25lcl93 IHRoZW0gYWZ0ZXIgY2hhbmdpbmcgYXNzb2MtPmJhc2Uuc2ssCmR1ZSB0byB0aGF0IHNjdHBfd2Zy ZWUgYW5kIGl0J3MgY2FsbGVlcyBhcmUgdXNpbmcgYXNzb2MtPmJhc2Uuc2suCgpSZXBvcnRlZC1i eTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVp dG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NvY2tldC5jIHwgMzIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2Nr ZXQuYwppbmRleCAzZWY3MjUyMjk0NDkuLmZmY2M4YWE3OGRiNyAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTE2OCw2ICsxNjgsMzYgQEAg c3RhdGljIGlubGluZSB2b2lkIHNjdHBfc2V0X293bmVyX3coc3RydWN0IHNjdHBfY2h1bmsgKmNo dW5rKQogCXNrX21lbV9jaGFyZ2Uoc2ssIGNodW5rLT5za2ItPnRydWVzaXplKTsKIH0KIAorc3Rh dGljIHZvaWQgc2N0cF9jbGVhcl9vd25lcl93KHN0cnVjdCBzY3RwX2NodW5rICpjaHVuaykKK3sK Kwlza2Jfb3JwaGFuKGNodW5rLT5za2IpOworfQorCitzdGF0aWMgdm9pZCBzY3RwX2Zvcl9lYWNo X3R4X2RhdGFjaHVuayhzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKKwkJCQkgICAgICAg dm9pZCAoKmNiKShzdHJ1Y3Qgc2N0cF9jaHVuayAqKSkKKworeworCXN0cnVjdCBzY3RwX291dHEg KnEgPSAmYXNvYy0+b3V0cXVldWU7CisJc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0OworCXN0cnVj dCBzY3RwX2NodW5rICpjaHVuazsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkodCwgJmFzb2MtPnBl ZXIudHJhbnNwb3J0X2FkZHJfbGlzdCwgdHJhbnNwb3J0cykKKwkJbGlzdF9mb3JfZWFjaF9lbnRy eShjaHVuaywgJnQtPnRyYW5zbWl0dGVkLCB0cmFuc21pdHRlZF9saXN0KQorCQkJY2IoY2h1bmsp OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjaHVuaywgJnEtPnJldHJhbnNtaXQsIGxpc3QpCisJ CWNiKGNodW5rKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2h1bmssICZxLT5zYWNrZWQsIGxp c3QpCisJCWNiKGNodW5rKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2h1bmssICZxLT5hYmFu ZG9uZWQsIGxpc3QpCisJCWNiKGNodW5rKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2h1bmss ICZxLT5vdXRfY2h1bmtfbGlzdCwgbGlzdCkKKwkJY2IoY2h1bmspOworfQorCiAvKiBWZXJpZnkg dGhhdCB0aGlzIGlzIGEgdmFsaWQgYWRkcmVzcy4gKi8KIHN0YXRpYyBpbmxpbmUgaW50IHNjdHBf dmVyaWZ5X2FkZHIoc3RydWN0IHNvY2sgKnNrLCB1bmlvbiBzY3RwX2FkZHIgKmFkZHIsCiAJCQkJ ICAgaW50IGxlbikKQEAgLTc4MjYsNyArNzg1Niw5IEBAIHN0YXRpYyB2b2lkIHNjdHBfc29ja19t aWdyYXRlKHN0cnVjdCBzb2NrICpvbGRzaywgc3RydWN0IHNvY2sgKm5ld3NrLAogCSAqIHBhdGhz IHdvbid0IHRyeSB0byBsb2NrIGl0IGFuZCB0aGVuIG9sZHNrLgogCSAqLwogCWxvY2tfc29ja19u ZXN0ZWQobmV3c2ssIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKKwlzY3RwX2Zvcl9lYWNoX3R4X2Rh dGFjaHVuayhhc3NvYywgc2N0cF9jbGVhcl9vd25lcl93KTsKIAlzY3RwX2Fzc29jX21pZ3JhdGUo YXNzb2MsIG5ld3NrKTsKKwlzY3RwX2Zvcl9lYWNoX3R4X2RhdGFjaHVuayhhc3NvYywgc2N0cF9z ZXRfb3duZXJfdyk7CiAKIAkvKiBJZiB0aGUgYXNzb2NpYXRpb24gb24gdGhlIG5ld3NrIGlzIGFs cmVhZHkgY2xvc2VkIGJlZm9yZSBhY2NlcHQoKQogCSAqIGlzIGNhbGxlZCwgc2V0IFJDVl9TSFVU RE9XTiBmbGFnLgotLSAKMi4xMy42CgoKRnJvbSBmNmM0YTNkMzA1ZGVjZDBhYjIwMGUwMDY2Y2Fl MjJmODBmYzk2YTFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhp eW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAyMjowODo1NiAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjVdIG5ldF9zY2hlZDogYXZvaWQgbWF0Y2hpbmcgcWRp c2Mgd2l0aCB6ZXJvIGhhbmRsZQoKWyBVcHN0cmVhbSBjb21taXQgNTAzMTdmY2UyY2M3MGEyYmJi YzRiNDJjMzFiYmFkNTEwMzgyYTUzYyBdCgpEYXZpZGUgZm91bmQgdGhlIGZvbGxvd2luZyBzY3Jp cHQgdHJpZ2dlcnMgYSBOVUxMIHBvaW50ZXIKZGVyZWZlcmVuY2U6CgppcCBsIGEgbmFtZSBldGgw IHR5cGUgZHVtbXkKdGMgcSBhIGRldiBldGgwIHBhcmVudCA6MSBoYW5kbGUgMTogaHRiCgpUaGlz IGlzIGJlY2F1c2UgZm9yIGEgZnJlc2hseSBjcmVhdGVkIG5ldGRldmljZSBub29wX3FkaXNjCmlz IGF0dGFjaGVkIGFuZCB3aGVuIHBhc3NpbmcgJ3BhcmVudCA6MScsIGtlcm5lbCBhY3R1YWxseQp0 cmllcyB0byBtYXRjaCB0aGUgbWFqb3IgaGFuZGxlIHdoaWNoIGlzIDAgYW5kIG5vb3BfcWRpc2MK aGFzIGhhbmRsZSAwIHNvIGlzIG1hdGNoZWQgYnkgbWlzdGFrZS4gQ29tbWl0IDY5MDEyYWU0MjVk Nwp0cmllcyB0byBmaXggYSBzaW1pbGFyIGJ1ZyBidXQgc3RpbGwgbWlzc2VzIHRoaXMgY2FzZS4K CkhhbmRsZSAwIGlzIG5vdCBhIHZhbGlkIG9uZSwgc2hvdWxkIGJlIGp1c3Qgc2tpcHBlZC4gSW4K ZmFjdCwga2VybmVsIHVzZXMgaXQgYXMgVENfSF9VTlNQRUMuCgpGaXhlczogNjkwMTJhZTQyNWQ3 ICgibmV0OiBzY2hlZDogZml4IGhhbmRsaW5nIG9mIHNpbmdsZXRvbiBxZGlzY3Mgd2l0aCBxZGlz Y19oYXNoIikKRml4ZXM6IDU5Y2MxZjYxZjA5YyAoIm5ldDogc2NoZWQ6Y29udmVydCBxZGlzYyBs aW5rZWQgbGlzdCB0byBoYXNodGFibGUiKQpSZXBvcnRlZC1ieTogRGF2aWRlIENhcmF0dGkgPGRj YXJhdHRpQHJlZGhhdC5jb20+CkNjOiBKaXJpIEtvc2luYSA8amtvc2luYUBzdXNlLmN6PgpDYzog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8 amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29u Z0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2FwaS5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfYXBpLmMgYi9uZXQv c2NoZWQvc2NoX2FwaS5jCmluZGV4IDE5NWEzYjJkOWFmYy4uZWExM2RmMWJlMDY3IDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvc2NoX2FwaS5jCisrKyBiL25ldC9zY2hlZC9zY2hfYXBpLmMKQEAgLTI5 Niw2ICsyOTYsOCBAQCBzdHJ1Y3QgUWRpc2MgKnFkaXNjX2xvb2t1cChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCB1MzIgaGFuZGxlKQogewogCXN0cnVjdCBRZGlzYyAqcTsKIAorCWlmICghaGFuZGxl KQorCQlyZXR1cm4gTlVMTDsKIAlxID0gcWRpc2NfbWF0Y2hfZnJvbV9yb290KGRldi0+cWRpc2Ms IGhhbmRsZSk7CiAJaWYgKHEpCiAJCWdvdG8gb3V0OwotLSAKMi4xMy42CgoKRnJvbSA1NzE4YWY2 N2U0YmQwYWIxNTgxN2EyZGFiZmQ2ZjdkNmVhNmU4MjUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBGcmks IDYgT2N0IDIwMTcgMTc6MDU6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDI1LzI1XSBwcHA6IGZp eCByYWNlIGluIHBwcCBkZXZpY2UgZGVzdHJ1Y3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDYxNTFi OGIzN2IxMTllOGUzYTg0MDFiMDgwZDUzMjUyMGM5NWZhZjQgXQoKcHBwX3JlbGVhc2UoKSB0cmll cyB0byBlbnN1cmUgdGhhdCBuZXRkZXZpY2VzIGFyZSB1bnJlZ2lzdGVyZWQgYmVmb3JlCmRlY3Jl bWVudGluZyB0aGUgdW5pdCByZWZjb3VudCBhbmQgcnVubmluZyBwcHBfZGVzdHJveV9pbnRlcmZh Y2UoKS4KClRoaXMgaXMgYWxsIGZpbmUgYXMgbG9uZyBhcyB0aGUgdGhlIGRldmljZSBpcyB1bnJl Z2lzdGVyZWQgYnkKcHBwX3JlbGVhc2UoKTogdGhlIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCkgY2Fs bCwgZm9sbG93ZWQgYnkKcnRubF91bmxvY2soKSwgZ3VhcmFudGVlIHRoYXQgdGhlIHVucmVnaXN0 cmF0aW9uIHByb2Nlc3MgY29tcGxldGVzCmJlZm9yZSBydG5sX3VubG9jaygpIHJldHVybnMuCgpI b3dldmVyLCB0aGUgZGV2aWNlIG1heSBiZSB1bnJlZ2lzdGVyZWQgYnkgb3RoZXIgbWVhbnMgKGxp a2UKcHBwX25sX2RlbGxpbmsoKSkuIElmIHRoaXMgaGFwcGVucyByaWdodCBiZWZvcmUgcHBwX3Jl bGVhc2UoKSBjYWxsaW5nCnJ0bmxfbG9jaygpLCB0aGVuIHBwcF9yZWxlYXNlKCkgaGFzIHRvIHdh aXQgZm9yIHRoZSBjb25jdXJyZW50CnVucmVnaXN0cmF0aW9uIGNvZGUgdG8gcmVsZWFzZSB0aGUg bG9jay4KQnV0IHJ0bmxfdW5sb2NrKCkgcmVsZWFzZXMgdGhlIGxvY2sgYmVmb3JlIGNvbXBsZXRp bmcgdGhlIGRldmljZQp1bnJlZ2lzdHJhdGlvbiBwcm9jZXNzLiBUaGlzIGFsbG93cyBwcHBfcmVs ZWFzZSgpIHRvIHByb2NlZWQgYW5kCmV2ZW50dWFsbHkgY2FsbCBwcHBfZGVzdHJveV9pbnRlcmZh Y2UoKSBiZWZvcmUgdGhlIHVucmVnaXN0cmF0aW9uCnByb2Nlc3MgY29tcGxldGVzLiBDYWxsaW5n IGZyZWVfbmV0ZGV2KCkgb24gdGhpcyBwYXJ0aWFsbHkgdW5yZWdpc3RlcmVkCmRldmljZSB3aWxs IEJVRygpOgoKIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQoga2VybmVsIEJV RyBhdCBuZXQvY29yZS9kZXYuYzo4MTQxIQogaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAK CiBDUFU6IDEgUElEOiAxNTU3IENvbW06IHBwcGQgTm90IHRhaW50ZWQgNC4xNC4wLXJjMisgIzQK IEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBC SU9TIDEuMTAuMi0xLmZjMjYgMDQvMDEvMjAxNAoKIENhbGwgVHJhY2U6CiAgcHBwX2Rlc3Ryb3lf aW50ZXJmYWNlKzB4ZDgvMHhlMCBbcHBwX2dlbmVyaWNdCiAgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5l bCsweGRhLzB4MTEwIFtwcHBfZ2VuZXJpY10KICBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsKzB4NWUv MHgxMTAgW3BwcF9nZW5lcmljXQogIHBwcG94X3VuYmluZF9zb2NrKzB4MjMvMHgzMCBbcHBwb3hd CiAgcHBwb2VfY29ubmVjdCsweDEzMC8weDQ0MCBbcHBwb2VdCiAgU1lTQ19jb25uZWN0KzB4OTgv MHgxMTAKICA/IGRvX2ZjbnRsKzB4MmMwLzB4NWQwCiAgU3lTX2Nvbm5lY3QrMHhlLzB4MTAKICBl bnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWEvMHhhNQoKIFJJUDogZnJlZV9uZXRkZXYrMHgx MDcvMHgxMTAgUlNQOiBmZmZmYzI4YTQwNTczZDg4CiAtLS1bIGVuZCB0cmFjZSBlZDI5NGZmMGNj NDBlZWZmIF0tLS0KCldlIGNvdWxkIHNldCB0aGUgLT5uZWVkc19mcmVlX25ldGRldiBmbGFnIG9u IFBQUCBkZXZpY2VzIGFuZCBtb3ZlIHRoZQpwcHBfZGVzdHJveV9pbnRlcmZhY2UoKSBsb2dpYyBp biB0aGUgLT5wcml2X2Rlc3RydWN0b3IoKSBjYWxsYmFjay4gQnV0CnRoYXQnZCBiZSBxdWl0ZSBp bnRydXNpdmUgYXMgd2UnZCBmaXJzdCBuZWVkIHRvIHVubGluayBmcm9tIHRoZSBvdGhlcgpjaGFu bmVscyBhbmQgdW5pdHMgdGhhdCBkZXBlbmQgb24gdGhlIGRldmljZSAodGhlIG9uZXMgdGhhdCB1 c2VkIHRoZQpQUFBJT0NDT05ORUNUIGFuZCBQUFBJT0NBVFRBQ0ggaW9jdGxzKS4KCkluc3RlYWQs IHdlIGNhbiBqdXN0IGxldCB0aGUgbmV0ZGV2aWNlIGhvbGQgYSByZWZlcmVuY2Ugb24gaXRzCnBw cF9maWxlLiBUaGlzIHJlZmVyZW5jZSBpcyBkcm9wcGVkIGluIC0+cHJpdl9kZXN0cnVjdG9yKCks IGF0IHRoZSB2ZXJ5CmVuZCBvZiB0aGUgdW5yZWdpc3RyYXRpb24gcHJvY2Vzcywgc28gdGhhdCBu ZWl0aGVyIHBwcF9yZWxlYXNlKCkgbm9yCnBwcF9kaXNjb25uZWN0X2NoYW5uZWwoKSBjYW4gY2Fs bCBwcHBfZGVzdHJveV9pbnRlcmZhY2UoKSBpbiB0aGUgaW50ZXJpbS4KClJlcG9ydGVkLWJ5OiBC ZW5pYW1pbm8gR2FsdmFuaSA8YmdhbHZhbmlAcmVkaGF0LmNvbT4KRml4ZXM6IDhjYjc3NWJjMGEz NCAoInBwcDogZml4IGRldmljZSB1bnJlZ2lzdHJhdGlvbiB1cG9uIG5ldG5zIGRlbGV0aW9uIikK U2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv cHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwppbmRleCA5 NmZhMGU2MWQzYWYuLjQ0MGQ1ZjQyODEwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcHBwL3Bw cF9nZW5lcmljLmMKKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKQEAgLTEzMzgs NyArMTMzOCwxNyBAQCBwcHBfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0czY0KQogCiBzdGF0aWMgaW50IHBwcF9kZXZfaW5p dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogeworCXN0cnVjdCBwcHAgKnBwcDsKKwogCW5ldGRl dl9sb2NrZGVwX3NldF9jbGFzc2VzKGRldik7CisKKwlwcHAgPSBuZXRkZXZfcHJpdihkZXYpOwor CS8qIExldCB0aGUgbmV0ZGV2aWNlIHRha2UgYSByZWZlcmVuY2Ugb24gdGhlIHBwcCBmaWxlLiBU aGlzIGVuc3VyZXMKKwkgKiB0aGF0IHBwcF9kZXN0cm95X2ludGVyZmFjZSgpIHdvbid0IHJ1biBi ZWZvcmUgdGhlIGRldmljZSBnZXRzCisJICogdW5yZWdpc3RlcmVkLgorCSAqLworCWF0b21pY19p bmMoJnBwcC0+ZmlsZS5yZWZjbnQpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzNjEsNiArMTM3 MSwxNSBAQCBzdGF0aWMgdm9pZCBwcHBfZGV2X3VuaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmcHBwLT5maWxlLnJ3YWl0KTsKIH0KIAorc3RhdGlj IHZvaWQgcHBwX2Rldl9wcml2X2Rlc3RydWN0b3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sK KwlzdHJ1Y3QgcHBwICpwcHA7CisKKwlwcHAgPSBuZXRkZXZfcHJpdihkZXYpOworCWlmIChhdG9t aWNfZGVjX2FuZF90ZXN0KCZwcHAtPmZpbGUucmVmY250KSkKKwkJcHBwX2Rlc3Ryb3lfaW50ZXJm YWNlKHBwcCk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgcHBwX25l dGRldl9vcHMgPSB7CiAJLm5kb19pbml0CSA9IHBwcF9kZXZfaW5pdCwKIAkubmRvX3VuaW5pdCAg ICAgID0gcHBwX2Rldl91bmluaXQsCkBAIC0xMzg2LDYgKzE0MDUsNyBAQCBzdGF0aWMgdm9pZCBw cHBfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPnR4X3F1ZXVlX2xlbiA9IDM7 CiAJZGV2LT50eXBlID0gQVJQSFJEX1BQUDsKIAlkZXYtPmZsYWdzID0gSUZGX1BPSU5UT1BPSU5U IHwgSUZGX05PQVJQIHwgSUZGX01VTFRJQ0FTVDsKKwlkZXYtPmRlc3RydWN0b3IgPSBwcHBfZGV2 X3ByaXZfZGVzdHJ1Y3RvcjsKIAluZXRpZl9rZWVwX2RzdChkZXYpOwogfQogCi0tIAoyLjEzLjYK Cg== ----Next_Part(Tue_Nov_14_15_36_24_2017_061)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_413.mbox" RnJvbSA4NTZkMjUwZThjNWNmNmY4ZjRmMmExNTE3NTU4MzUzMGMwNTg2OGVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZy PgpEYXRlOiBGcmksIDYgT2N0IDIwMTcgMTc6MDU6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzM3XSBwcHA6IGZpeCByYWNlIGluIHBwcCBkZXZpY2UgZGVzdHJ1Y3Rpb24KClsgVXBzdHJlYW0g Y29tbWl0IDYxNTFiOGIzN2IxMTllOGUzYTg0MDFiMDgwZDUzMjUyMGM5NWZhZjQgXQoKcHBwX3Jl bGVhc2UoKSB0cmllcyB0byBlbnN1cmUgdGhhdCBuZXRkZXZpY2VzIGFyZSB1bnJlZ2lzdGVyZWQg YmVmb3JlCmRlY3JlbWVudGluZyB0aGUgdW5pdCByZWZjb3VudCBhbmQgcnVubmluZyBwcHBfZGVz dHJveV9pbnRlcmZhY2UoKS4KClRoaXMgaXMgYWxsIGZpbmUgYXMgbG9uZyBhcyB0aGUgdGhlIGRl dmljZSBpcyB1bnJlZ2lzdGVyZWQgYnkKcHBwX3JlbGVhc2UoKTogdGhlIHVucmVnaXN0ZXJfbmV0 ZGV2aWNlKCkgY2FsbCwgZm9sbG93ZWQgYnkKcnRubF91bmxvY2soKSwgZ3VhcmFudGVlIHRoYXQg dGhlIHVucmVnaXN0cmF0aW9uIHByb2Nlc3MgY29tcGxldGVzCmJlZm9yZSBydG5sX3VubG9jaygp IHJldHVybnMuCgpIb3dldmVyLCB0aGUgZGV2aWNlIG1heSBiZSB1bnJlZ2lzdGVyZWQgYnkgb3Ro ZXIgbWVhbnMgKGxpa2UKcHBwX25sX2RlbGxpbmsoKSkuIElmIHRoaXMgaGFwcGVucyByaWdodCBi ZWZvcmUgcHBwX3JlbGVhc2UoKSBjYWxsaW5nCnJ0bmxfbG9jaygpLCB0aGVuIHBwcF9yZWxlYXNl KCkgaGFzIHRvIHdhaXQgZm9yIHRoZSBjb25jdXJyZW50CnVucmVnaXN0cmF0aW9uIGNvZGUgdG8g cmVsZWFzZSB0aGUgbG9jay4KQnV0IHJ0bmxfdW5sb2NrKCkgcmVsZWFzZXMgdGhlIGxvY2sgYmVm b3JlIGNvbXBsZXRpbmcgdGhlIGRldmljZQp1bnJlZ2lzdHJhdGlvbiBwcm9jZXNzLiBUaGlzIGFs bG93cyBwcHBfcmVsZWFzZSgpIHRvIHByb2NlZWQgYW5kCmV2ZW50dWFsbHkgY2FsbCBwcHBfZGVz dHJveV9pbnRlcmZhY2UoKSBiZWZvcmUgdGhlIHVucmVnaXN0cmF0aW9uCnByb2Nlc3MgY29tcGxl dGVzLiBDYWxsaW5nIGZyZWVfbmV0ZGV2KCkgb24gdGhpcyBwYXJ0aWFsbHkgdW5yZWdpc3RlcmVk CmRldmljZSB3aWxsIEJVRygpOgoKIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0t LQoga2VybmVsIEJVRyBhdCBuZXQvY29yZS9kZXYuYzo4MTQxIQogaW52YWxpZCBvcGNvZGU6IDAw MDAgWyMxXSBTTVAKCiBDUFU6IDEgUElEOiAxNTU3IENvbW06IHBwcGQgTm90IHRhaW50ZWQgNC4x NC4wLXJjMisgIzQKIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJ SVgsIDE5OTYpLCBCSU9TIDEuMTAuMi0xLmZjMjYgMDQvMDEvMjAxNAoKIENhbGwgVHJhY2U6CiAg cHBwX2Rlc3Ryb3lfaW50ZXJmYWNlKzB4ZDgvMHhlMCBbcHBwX2dlbmVyaWNdCiAgcHBwX2Rpc2Nv bm5lY3RfY2hhbm5lbCsweGRhLzB4MTEwIFtwcHBfZ2VuZXJpY10KICBwcHBfdW5yZWdpc3Rlcl9j aGFubmVsKzB4NWUvMHgxMTAgW3BwcF9nZW5lcmljXQogIHBwcG94X3VuYmluZF9zb2NrKzB4MjMv MHgzMCBbcHBwb3hdCiAgcHBwb2VfY29ubmVjdCsweDEzMC8weDQ0MCBbcHBwb2VdCiAgU1lTQ19j b25uZWN0KzB4OTgvMHgxMTAKICA/IGRvX2ZjbnRsKzB4MmMwLzB4NWQwCiAgU3lTX2Nvbm5lY3Qr MHhlLzB4MTAKICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWEvMHhhNQoKIFJJUDogZnJl ZV9uZXRkZXYrMHgxMDcvMHgxMTAgUlNQOiBmZmZmYzI4YTQwNTczZDg4CiAtLS1bIGVuZCB0cmFj ZSBlZDI5NGZmMGNjNDBlZWZmIF0tLS0KCldlIGNvdWxkIHNldCB0aGUgLT5uZWVkc19mcmVlX25l dGRldiBmbGFnIG9uIFBQUCBkZXZpY2VzIGFuZCBtb3ZlIHRoZQpwcHBfZGVzdHJveV9pbnRlcmZh Y2UoKSBsb2dpYyBpbiB0aGUgLT5wcml2X2Rlc3RydWN0b3IoKSBjYWxsYmFjay4gQnV0CnRoYXQn ZCBiZSBxdWl0ZSBpbnRydXNpdmUgYXMgd2UnZCBmaXJzdCBuZWVkIHRvIHVubGluayBmcm9tIHRo ZSBvdGhlcgpjaGFubmVscyBhbmQgdW5pdHMgdGhhdCBkZXBlbmQgb24gdGhlIGRldmljZSAodGhl IG9uZXMgdGhhdCB1c2VkIHRoZQpQUFBJT0NDT05ORUNUIGFuZCBQUFBJT0NBVFRBQ0ggaW9jdGxz KS4KCkluc3RlYWQsIHdlIGNhbiBqdXN0IGxldCB0aGUgbmV0ZGV2aWNlIGhvbGQgYSByZWZlcmVu Y2Ugb24gaXRzCnBwcF9maWxlLiBUaGlzIHJlZmVyZW5jZSBpcyBkcm9wcGVkIGluIC0+cHJpdl9k ZXN0cnVjdG9yKCksIGF0IHRoZSB2ZXJ5CmVuZCBvZiB0aGUgdW5yZWdpc3RyYXRpb24gcHJvY2Vz cywgc28gdGhhdCBuZWl0aGVyIHBwcF9yZWxlYXNlKCkgbm9yCnBwcF9kaXNjb25uZWN0X2NoYW5u ZWwoKSBjYW4gY2FsbCBwcHBfZGVzdHJveV9pbnRlcmZhY2UoKSBpbiB0aGUgaW50ZXJpbS4KClJl cG9ydGVkLWJ5OiBCZW5pYW1pbm8gR2FsdmFuaSA8YmdhbHZhbmlAcmVkaGF0LmNvbT4KRml4ZXM6 IDhjYjc3NWJjMGEzNCAoInBwcDogZml4IGRldmljZSB1bnJlZ2lzdHJhdGlvbiB1cG9uIG5ldG5z IGRlbGV0aW9uIikKU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhh bGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIHwgMjAgKysrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVy aWMuYwppbmRleCBhNDA0NTUyNTU1ZDQuLjY3MjJiODM1NDYxOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmlj LmMKQEAgLTEzMzksNyArMTMzOSwxNyBAQCBwcHBfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0czY0KQogCiBzdGF0aWMgaW50 IHBwcF9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogeworCXN0cnVjdCBwcHAgKnBw cDsKKwogCW5ldGRldl9sb2NrZGVwX3NldF9jbGFzc2VzKGRldik7CisKKwlwcHAgPSBuZXRkZXZf cHJpdihkZXYpOworCS8qIExldCB0aGUgbmV0ZGV2aWNlIHRha2UgYSByZWZlcmVuY2Ugb24gdGhl IHBwcCBmaWxlLiBUaGlzIGVuc3VyZXMKKwkgKiB0aGF0IHBwcF9kZXN0cm95X2ludGVyZmFjZSgp IHdvbid0IHJ1biBiZWZvcmUgdGhlIGRldmljZSBnZXRzCisJICogdW5yZWdpc3RlcmVkLgorCSAq LworCWF0b21pY19pbmMoJnBwcC0+ZmlsZS5yZWZjbnQpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAg LTEzNjIsNiArMTM3MiwxNSBAQCBzdGF0aWMgdm9pZCBwcHBfZGV2X3VuaW5pdChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmcHBwLT5maWxlLnJ3YWl0KTsK IH0KIAorc3RhdGljIHZvaWQgcHBwX2Rldl9wcml2X2Rlc3RydWN0b3Ioc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKK3sKKwlzdHJ1Y3QgcHBwICpwcHA7CisKKwlwcHAgPSBuZXRkZXZfcHJpdihkZXYp OworCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZwcHAtPmZpbGUucmVmY250KSkKKwkJcHBwX2Rl c3Ryb3lfaW50ZXJmYWNlKHBwcCk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2Rldmlj ZV9vcHMgcHBwX25ldGRldl9vcHMgPSB7CiAJLm5kb19pbml0CSA9IHBwcF9kZXZfaW5pdCwKIAku bmRvX3VuaW5pdCAgICAgID0gcHBwX2Rldl91bmluaXQsCkBAIC0xMzg3LDYgKzE0MDYsNyBAQCBz dGF0aWMgdm9pZCBwcHBfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPnR4X3F1 ZXVlX2xlbiA9IDM7CiAJZGV2LT50eXBlID0gQVJQSFJEX1BQUDsKIAlkZXYtPmZsYWdzID0gSUZG X1BPSU5UT1BPSU5UIHwgSUZGX05PQVJQIHwgSUZGX01VTFRJQ0FTVDsKKwlkZXYtPnByaXZfZGVz dHJ1Y3RvciA9IHBwcF9kZXZfcHJpdl9kZXN0cnVjdG9yOwogCW5ldGlmX2tlZXBfZHN0KGRldik7 CiB9CiAKLS0gCjIuMTMuNgoKCkZyb20gZmQwZWQ5YTdhMzY3ZWRlOGY0ODQ2OTEwNzMyZTcxNzg1 NTAxMmQxNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGV5IEtvZGFuZXYgPGFs ZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+CkRhdGU6IEZyaSwgNiBPY3QgMjAxNyAxOTowMjozNSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMzddIGdzbzogZml4IHBheWxvYWQgbGVuZ3RoIHdoZW4g Z3NvX3NpemUgaXMgemVybwoKWyBVcHN0cmVhbSBjb21taXQgM2QwMjQxZDU3YzdiMjViYjc1YWM5 ZDdhNjI3NTM2NDIyNjRmZGJjZSBdCgpXaGVuIGdzb19zaXplIHJlc2V0IHRvIHplcm8gZm9yIHRo ZSB0YWlsIHNlZ21lbnQgaW4gc2tiX3NlZ21lbnQoKSwgbGF0ZXIKaW4gaXB2Nl9nc29fc2VnbWVu dCgpLCBfX3NrYl91ZHBfdHVubmVsX3NlZ21lbnQoKSBhbmQgZ3JlX2dzb19zZWdtZW50KCkKd2Ug d2lsbCBnZXQgaW5jb3JyZWN0IHJlc3VsdHMgKHBheWxvYWQgbGVuZ3RoLCBwY3N1bSkgZm9yIHRo YXQgc2VnbWVudC4KaW5ldF9nc29fc2VnbWVudCgpIGFscmVhZHkgaGFzIGEgY2hlY2sgZm9yIGdz b19zaXplIGJlZm9yZSBjYWxjdWxhdGluZwpwYXlsb2FkLgoKVGhlIGlzc3VlIHdhcyBmb3VuZCB3 aXRoIExUUCB2eGxhbiAmIGdyZSB0ZXN0cyBvdmVyIGl4Z2JlIE5JQy4KCkZpeGVzOiAwN2IyNmM5 NDU0YTIgKCJnc286IFN1cHBvcnQgcGFydGlhbCBzcGxpdHRpbmcgYXQgdGhlIGZyYWdfbGlzdCBw b2ludGVyIikKU2lnbmVkLW9mZi1ieTogQWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9y YWNsZS5jb20+CkFja2VkLWJ5OiBBbGV4YW5kZXIgRHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L2dyZV9vZmZsb2FkLmMgfCAyICstCiBuZXQvaXB2NC91ZHBfb2Zm bG9hZC5jIHwgMiArLQogbmV0L2lwdjYvaXA2X29mZmxvYWQuYyB8IDIgKy0KIDMgZmlsZXMgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2dyZV9vZmZsb2FkLmMgYi9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jCmluZGV4IGQ1Y2FjOTkx NzBiMS4uOGM3MjAzNGRmMjhlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jCisr KyBiL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKQEAgLTk4LDcgKzk4LDcgQEAgc3RhdGljIHN0cnVj dCBza19idWZmICpncmVfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZ3JlaCA9 IChzdHJ1Y3QgZ3JlX2Jhc2VfaGRyICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKIAkJcGNz dW0gPSAoX19zdW0xNiAqKShncmVoICsgMSk7CiAKLQkJaWYgKGdzb19wYXJ0aWFsKSB7CisJCWlm IChnc29fcGFydGlhbCAmJiBza2JfaXNfZ3NvKHNrYikpIHsKIAkJCXVuc2lnbmVkIGludCBwYXJ0 aWFsX2FkajsKIAogCQkJLyogQWRqdXN0IGNoZWNrc3VtIHRvIGFjY291bnQgZm9yIHRoZSBmYWN0 IHRoYXQKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcF9vZmZsb2FkLmMgYi9uZXQvaXB2NC91ZHBf b2ZmbG9hZC5jCmluZGV4IDA5MzJjODViNDJhZi4uNjQwMTU3NGNkNjM4IDEwMDY0NAotLS0gYS9u ZXQvaXB2NC91ZHBfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY0L3VkcF9vZmZsb2FkLmMKQEAgLTEy Miw3ICsxMjIsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKl9fc2tiX3VkcF90dW5uZWxfc2Vn bWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkgKiB3aWxsIGJlIHVzaW5nIGEgbGVuZ3RoIHZh bHVlIGVxdWFsIHRvIG9ubHkgb25lIE1TUyBzaXplZAogCQkgKiBzZWdtZW50IGluc3RlYWQgb2Yg dGhlIGVudGlyZSBmcmFtZS4KIAkJICovCi0JCWlmIChnc29fcGFydGlhbCkgeworCQlpZiAoZ3Nv X3BhcnRpYWwgJiYgc2tiX2lzX2dzbyhza2IpKSB7CiAJCQl1aC0+bGVuID0gaHRvbnMoc2tiX3No aW5mbyhza2IpLT5nc29fc2l6ZSArCiAJCQkJCVNLQl9HU09fQ0Ioc2tiKS0+ZGF0YV9vZmZzZXQg KwogCQkJCQlza2ItPmhlYWQgLSAodW5zaWduZWQgY2hhciAqKXVoKTsKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl9vZmZsb2FkLmMgYi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCmluZGV4IGNkYjM3 MjhmYWNhNy4uNGE4N2Y5NDI4Y2E1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5j CisrKyBiL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMg c3RydWN0IHNrX2J1ZmYgKmlwdjZfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAog CWZvciAoc2tiID0gc2Vnczsgc2tiOyBza2IgPSBza2ItPm5leHQpIHsKIAkJaXB2NmggPSAoc3Ry dWN0IGlwdjZoZHIgKikoc2tiX21hY19oZWFkZXIoc2tiKSArIG5ob2ZmKTsKLQkJaWYgKGdzb19w YXJ0aWFsKQorCQlpZiAoZ3NvX3BhcnRpYWwgJiYgc2tiX2lzX2dzbyhza2IpKQogCQkJcGF5bG9h ZF9sZW4gPSBza2Jfc2hpbmZvKHNrYiktPmdzb19zaXplICsKIAkJCQkgICAgICBTS0JfR1NPX0NC KHNrYiktPmRhdGFfb2Zmc2V0ICsKIAkJCQkgICAgICBza2ItPmhlYWQgLSAodW5zaWduZWQgY2hh ciAqKShpcHY2aCArIDEpOwotLSAKMi4xMy42CgoKRnJvbSBjMGY1ZTU2YWU5MjY0NDcxYWExYzky ZWQyODdjMDMzMmU5ODk2ZTIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmZmVu IEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpEYXRlOiBNb24sIDkgT2N0 IDIwMTcgMDg6NDM6NTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzM3XSBpcHY0OiBGaXggdHJh ZmZpYyB0cmlnZ2VyZWQgSVBzZWMgY29ubmVjdGlvbnMuCgpbIFVwc3RyZWFtIGNvbW1pdCA2YzBl NzI4NGQ4OTk5NTg3Nzc0MGQ4YTI2YzNlOTlhOTM3MzEyYTNjIF0KCkEgcmVjZW50IHBhdGNoIHJl bW92ZWQgdGhlIGRzdF9mcmVlKCkgb24gdGhlIGFsbG9jYXRlZApkc3RfZW50cnkgaW4gaXB2NF9i bGFja2hvbGVfcm91dGUoKS4gVGhlIGRzdF9mcmVlKCkgbWFya2VkIHRoZQpkc3RfZW50cnkgYXMg ZGVhZCBhbmQgYWRkZWQgaXQgdG8gdGhlIGdjIGxpc3QuIEkuZS4gaXQgd2FzIHNldHVwCmZvciBh IG9uZSB0aW1lIHVzYWdlLiBBcyBhIHJlc3VsdCB3ZSBtYXkgbm93IGhhdmUgYSBibGFja2hvbGUK cm91dGUgY2FjaGVkIGF0IGEgc29ja2V0IG9uIHNvbWUgSVBzZWMgc2NlbmFyaW9zLiBUaGlzIG1h a2VzIHRoZQpjb25uZWN0aW9uIHVudXNhYmxlLgoKRml4IHRoaXMgYnkgbWFya2luZyB0aGUgZHN0 X2VudHJ5IGRpcmVjdGx5IGF0IGFsbG9jYXRpb24gdGltZQphcyAnZGVhZCcsIHNvIGl0IGlzIHVz ZWQgb25seSBvbmNlLgoKRml4ZXM6IGI4MzhkNWUxYzViNiAoImlwdjQ6IG1hcmsgRFNUX05PR0Mg YW5kIHJlbW92ZSB0aGUgb3BlcmF0aW9uIG9mIGRzdF9mcmVlKCkiKQpSZXBvcnRlZC1ieTogVG9i aWFzIEJydW5uZXIgPHRvYmlhc0BzdHJvbmdzd2FuLm9yZz4KU2lnbmVkLW9mZi1ieTogU3RlZmZl biBLbGFzc2VydCA8c3RlZmZlbi5rbGFzc2VydEBzZWN1bmV0LmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3JvdXRl LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCBj NWFhMjViZTcxMDguLjcyYWZhNGNmYjAyMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYwor KysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC0yNTA3LDcgKzI1MDcsNyBAQCBzdHJ1Y3QgZHN0X2Vu dHJ5ICppcHY0X2JsYWNraG9sZV9yb3V0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBkc3RfZW50 cnkgKmRzdF9vcgogCXN0cnVjdCBydGFibGUgKm9ydCA9IChzdHJ1Y3QgcnRhYmxlICopIGRzdF9v cmlnOwogCXN0cnVjdCBydGFibGUgKnJ0OwogCi0JcnQgPSBkc3RfYWxsb2MoJmlwdjRfZHN0X2Js YWNraG9sZV9vcHMsIE5VTEwsIDEsIERTVF9PQlNPTEVURV9OT05FLCAwKTsKKwlydCA9IGRzdF9h bGxvYygmaXB2NF9kc3RfYmxhY2tob2xlX29wcywgTlVMTCwgMSwgRFNUX09CU09MRVRFX0RFQUQs IDApOwogCWlmIChydCkgewogCQlzdHJ1Y3QgZHN0X2VudHJ5ICpuZXcgPSAmcnQtPmRzdDsKIAot LSAKMi4xMy42CgoKRnJvbSBjN2JkZmYwMjhhMTNmZjQzYTY4Yzk2MTZlMTk4M2Q4MzkxZjI5YmFh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVu LmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpEYXRlOiBNb24sIDkgT2N0IDIwMTcgMDg6Mzk6NDMgKzAy MDAKU3ViamVjdDogW1BBVENIIDA0LzM3XSBpcHY2OiBGaXggdHJhZmZpYyB0cmlnZ2VyZWQgSVBz ZWMgY29ubmVjdGlvbnMuCgpbIFVwc3RyZWFtIGNvbW1pdCA2MmNmMjdlNTJiOGM5YTM5MDY2MTcy Y2E2YjYxMzRjYjVlYWE5NDUwIF0KCkEgcmVjZW50IHBhdGNoIHJlbW92ZWQgdGhlIGRzdF9mcmVl KCkgb24gdGhlIGFsbG9jYXRlZApkc3RfZW50cnkgaW4gaXB2Nl9ibGFja2hvbGVfcm91dGUoKS4g VGhlIGRzdF9mcmVlKCkgbWFya2VkCnRoZSBkc3RfZW50cnkgYXMgZGVhZCBhbmQgYWRkZWQgaXQg dG8gdGhlIGdjIGxpc3QuIEkuZS4gaXQKd2FzIHNldHVwIGZvciBhIG9uZSB0aW1lIHVzYWdlLiBB cyBhIHJlc3VsdCB3ZSBtYXkgbm93IGhhdmUKYSBibGFja2hvbGUgcm91dGUgY2FjaGVkIGF0IGEg c29ja2V0IG9uIHNvbWUgSVBzZWMgc2NlbmFyaW9zLgpUaGlzIG1ha2VzIHRoZSBjb25uZWN0aW9u IHVudXNhYmxlLgoKRml4IHRoaXMgYnkgbWFya2luZyB0aGUgZHN0X2VudHJ5IGRpcmVjdGx5IGF0 IGFsbG9jYXRpb24gdGltZQphcyAnZGVhZCcsIHNvIGl0IGlzIHVzZWQgb25seSBvbmNlLgoKRml4 ZXM6IDU4N2ZlYTc0MTEzNCAoImlwdjY6IG1hcmsgRFNUX05PR0MgYW5kIHJlbW92ZSB0aGUgb3Bl cmF0aW9uIG9mIGRzdF9mcmVlKCkiKQpSZXBvcnRlZC1ieTogVG9iaWFzIEJydW5uZXIgPHRvYmlh c0BzdHJvbmdzd2FuLm9yZz4KU2lnbmVkLW9mZi1ieTogU3RlZmZlbiBLbGFzc2VydCA8c3RlZmZl bi5rbGFzc2VydEBzZWN1bmV0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCAyZDBlNzc5OGM3OTMuLjQ0ZWVi ZTczOGMwOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0 ZS5jCkBAIC0xMjUxLDcgKzEyNTEsNyBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppcDZfYmxhY2tob2xl X3JvdXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGRzdF9lbnRyeSAqZHN0X29yaQogCXN0cnVj dCBkc3RfZW50cnkgKm5ldyA9IE5VTEw7CiAKIAlydCA9IGRzdF9hbGxvYygmaXA2X2RzdF9ibGFj a2hvbGVfb3BzLCBsb29wYmFja19kZXYsIDEsCi0JCSAgICAgICBEU1RfT0JTT0xFVEVfTk9ORSwg MCk7CisJCSAgICAgICBEU1RfT0JTT0xFVEVfREVBRCwgMCk7CiAJaWYgKHJ0KSB7CiAJCXJ0Nl9p bmZvX2luaXQocnQpOwogCi0tIAoyLjEzLjYKCgpGcm9tIDFiMzRkZGVmZDAwYmIyMDNlMDE1NWQx NDg2NTI1ZDlmOTFhN2I4MDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJKYXNvbiBB LiBEb25lbmZlbGQiIDxKYXNvbkB6eDJjNC5jb20+CkRhdGU6IE1vbiwgOSBPY3QgMjAxNyAxNDox NDo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzddIG5ldGxpbms6IGRvIG5vdCBzZXQgY2Jf cnVubmluZyBpZiBkdW1wJ3Mgc3RhcnQoKSBlcnJzCgpbIFVwc3RyZWFtIGNvbW1pdCA0MWM4NzQy NWExYWM5YjYzM2UwZmNjNzhlYjFmMTk2NDBjOGZiNWEwIF0KCkl0IHR1cm5zIG91dCB0aGF0IG11 bHRpcGxlIHBsYWNlcyBjYW4gY2FsbCBuZXRsaW5rX2R1bXAoKSwgd2hpY2ggbWVhbnMKaXQncyBz dGlsbCBwb3NzaWJsZSB0byBkZXJlZmVyZW5jZSBwYXJ0aWFsbHkgaW5pdGlhbGl6ZWQgdmFsdWVz IGluCmR1bXAoKSB0aGF0IHdlcmUgdGhlIHJlc3VsdCBvZiBhIGZhdWx0eSByZXR1cm5lZCBzdGFy dCgpLgoKVGhpcyBmaXhlcyB0aGUgaXNzdWUgYnkgY2FsbGluZyBzdGFydCgpIF9iZWZvcmVfIHNl dHRpbmcgY2JfcnVubmluZyB0bwp0cnVlLCBzbyB0aGF0IHRoZXJlJ3Mgbm8gY2hhbmNlIGF0IGFs bCBvZiBoaXR0aW5nIHRoZSBkdW1wKCkgZnVuY3Rpb24KdGhyb3VnaCBhbnkgaW5kaXJlY3QgcGF0 aHMuCgpJdCBhbHNvIG1vdmVzIHRoZSBjYWxsIHRvIHN0YXJ0KCkgdG8gYmUgd2hlbiB0aGUgbXV0 ZXggaXMgaGVsZC4gVGhpcyBoYXMKdGhlIG5pY2Ugc2lkZSBlZmZlY3Qgb2Ygc2VyaWFsaXppbmcg aW52b2NhdGlvbnMgdG8gc3RhcnQoKSwgd2hpY2ggaXMKbGlrZWx5IGRlc2lyYWJsZSBhbnl3YXku IEl0IGFsc28gcHJldmVudHMgYW55IHBvc3NpYmxlIG90aGVyIHJhY2VzIHRoYXQKbWlnaHQgY29t ZSBvdXQgb2YgdGhpcyBsb2dpYy4KCkluIHRlc3RpbmcgdGhpcyB3aXRoIHNldmVyYWwgZGlmZmVy ZW50IHBpZWNlcyBvZiB0cmlja3kgY29kZSB0byB0cmlnZ2VyCnRoZXNlIGlzc3VlcywgdGhpcyBj b21taXQgZml4ZXMgYWxsIGF2ZW51ZXMgdGhhdCBJJ20gYXdhcmUgb2YuCgpTaWduZWQtb2ZmLWJ5 OiBKYXNvbiBBLiBEb25lbmZlbGQgPEphc29uQHp4MmM0LmNvbT4KQ2M6IEpvaGFubmVzIEJlcmcg PGpvaGFubmVzQHNpcHNvbHV0aW9ucy5uZXQ+ClJldmlld2VkLWJ5OiBKb2hhbm5lcyBCZXJnIDxq b2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIHwgMTMg KysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGlu ay9hZl9uZXRsaW5rLmMKaW5kZXggN2U3OTRhZDUwY2IwLi41NjUyN2UzN2ZmZGQgMTAwNjQ0Ci0t LSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5r LmMKQEAgLTIyNTgsMTYgKzIyNTgsMTcgQEAgaW50IF9fbmV0bGlua19kdW1wX3N0YXJ0KHN0cnVj dCBzb2NrICpzc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJY2ItPm1pbl9kdW1wX2FsbG9jID0g Y29udHJvbC0+bWluX2R1bXBfYWxsb2M7CiAJY2ItPnNrYiA9IHNrYjsKIAorCWlmIChjYi0+c3Rh cnQpIHsKKwkJcmV0ID0gY2ItPnN0YXJ0KGNiKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jf dW5sb2NrOworCX0KKwogCW5say0+Y2JfcnVubmluZyA9IHRydWU7CiAKIAltdXRleF91bmxvY2so bmxrLT5jYl9tdXRleCk7CiAKLQlyZXQgPSAwOwotCWlmIChjYi0+c3RhcnQpCi0JCXJldCA9IGNi LT5zdGFydChjYik7Ci0KLQlpZiAoIXJldCkKLQkJcmV0ID0gbmV0bGlua19kdW1wKHNrKTsKKwly ZXQgPSBuZXRsaW5rX2R1bXAoc2spOwogCiAJc29ja19wdXQoc2spOwogCi0tIAoyLjEzLjYKCgpG cm9tIDc3YmIyZmUwYzQyM2NjYWVmM2NiZWE4Y2YxMTNiNGQwZDUzMzkxOTggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogVHVlLCAxMCBPY3QgMjAxNyAxOToxMjozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzdd IG5ldDogY2FsbCBjZ3JvdXBfc2tfYWxsb2MoKSBlYXJsaWVyIGluIHNrX2Nsb25lX2xvY2soKQoK WyBVcHN0cmVhbSBjb21taXQgYzA1NzZlMzk3NTA4NGQ0Njk5YjdiZmVmNTc4NjEzZmI4ZTExNDRm NiBdCgpJZiBmb3Igc29tZSByZWFzb24sIHRoZSBuZXdseSBhbGxvY2F0ZWQgY2hpbGQgbmVlZCB0 byBiZSBmcmVlZCwKd2Ugd2lsbCBjYWxsIGNncm91cF9wdXQoKSAodmlhIHNrX2ZyZWVfdW5sb2Nr X2Nsb25lKCkpIHdoaWxlIHRoZQpjb3JyZXNwb25kaW5nIGNncm91cF9nZXQoKSB3YXMgbm90IHll dCBkb25lLCBhbmQgd2Ugd2lsbCBmcmVlIG1lbW9yeQp0b28gc29vbi4KCkZpeGVzOiBkOTc5YTM5 ZDcyNDIgKCJjZ3JvdXA6IGR1cGxpY2F0ZSBjZ3JvdXAgcmVmZXJlbmNlIHdoZW4gY2xvbmluZyBz b2NrZXRzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpDYzogSm9oYW5uZXMgV2VpbmVyIDxoYW5uZXNAY21weGNoZy5vcmc+CkNjOiBUZWp1biBIZW8g PHRqQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2NrLmMgfCAzICstLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3Nv Y2suYyBiL25ldC9jb3JlL3NvY2suYwppbmRleCAwOTY3ZGE5MjUwMjIuLmU0ODQyNGRkYmM2YiAx MDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBiL25ldC9jb3JlL3NvY2suYwpAQCAtMTY3 NCw2ICsxNjc0LDcgQEAgc3RydWN0IHNvY2sgKnNrX2Nsb25lX2xvY2soY29uc3Qgc3RydWN0IHNv Y2sgKnNrLCBjb25zdCBnZnBfdCBwcmlvcml0eSkKIAkJbmV3c2stPnNrX3VzZXJsb2Nrcwk9IHNr LT5za191c2VybG9ja3MgJiB+U09DS19CSU5EUE9SVF9MT0NLOwogCiAJCXNvY2tfcmVzZXRfZmxh ZyhuZXdzaywgU09DS19ET05FKTsKKwkJY2dyb3VwX3NrX2FsbG9jKCZuZXdzay0+c2tfY2dycF9k YXRhKTsKIAogCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWZpbHRlciA9IHJjdV9kZXJlZmVyZW5jZShz ay0+c2tfZmlsdGVyKTsKQEAgLTE3MDYsOCArMTcwNyw2IEBAIHN0cnVjdCBzb2NrICpza19jbG9u ZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgY29uc3QgZ2ZwX3QgcHJpb3JpdHkpCiAJCWF0 b21pYzY0X3NldCgmbmV3c2stPnNrX2Nvb2tpZSwgMCk7CiAKIAkJbWVtX2Nncm91cF9za19hbGxv YyhuZXdzayk7Ci0JCWNncm91cF9za19hbGxvYygmbmV3c2stPnNrX2NncnBfZGF0YSk7Ci0KIAkJ LyoKIAkJICogQmVmb3JlIHVwZGF0aW5nIHNrX3JlZmNudCwgd2UgbXVzdCBjb21taXQgcHJpb3Ig Y2hhbmdlcyB0byBtZW1vcnkKIAkJICogKERvY3VtZW50YXRpb24vUkNVL3JjdWxpc3RfbnVsbHMu dHh0IGZvciBkZXRhaWxzKQotLSAKMi4xMy42CgoKRnJvbSBhMmQ0YzgwZDdlNzQ4NTA3YjQyYTUy NzAxZWMxZGVlNDEyMTQ4ZTc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5h IER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0ZTogVHVlLCAxMCBPY3QgMjAxNyAxNzow NzoxMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzddIG1hY3NlYzogZml4IG1lbW9yeSBsZWFr cyB3aGVuIHNrYl90b19zZ3ZlYyBmYWlscwoKWyBVcHN0cmVhbSBjb21taXQgNWFiYTJiYTUwMzBi NjZhNmY4YzkzMDQ5YjcxODU1NmY5YWFjZDdjNiBdCgpGaXhlczogY2RhN2VhNjkwMzUwICgibWFj c2VjOiBjaGVjayByZXR1cm4gdmFsdWUgb2Ygc2tiX3RvX3NndmVjIGFsd2F5cyIpClNpZ25lZC1v ZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv bWFjc2VjLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvbWFjc2VjLmMgYi9kcml2ZXJzL25ldC9tYWNzZWMuYwppbmRleCA5 OGU0ZGVhYTNhNmEuLjVhYjFiODg0OWMzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjc2Vj LmMKKysrIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKQEAgLTc0Miw2ICs3NDIsNyBAQCBzdGF0aWMg c3RydWN0IHNrX2J1ZmYgKm1hY3NlY19lbmNyeXB0KHN0cnVjdCBza19idWZmICpza2IsCiAJc2df aW5pdF90YWJsZShzZywgcmV0KTsKIAlyZXQgPSBza2JfdG9fc2d2ZWMoc2tiLCBzZywgMCwgc2ti LT5sZW4pOwogCWlmICh1bmxpa2VseShyZXQgPCAwKSkgeworCQlhZWFkX3JlcXVlc3RfZnJlZShy ZXEpOwogCQltYWNzZWNfdHhzYV9wdXQodHhfc2EpOwogCQlrZnJlZV9za2Ioc2tiKTsKIAkJcmV0 dXJuIEVSUl9QVFIocmV0KTsKQEAgLTk1NCw2ICs5NTUsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1 ZmYgKm1hY3NlY19kZWNyeXB0KHN0cnVjdCBza19idWZmICpza2IsCiAJc2dfaW5pdF90YWJsZShz ZywgcmV0KTsKIAlyZXQgPSBza2JfdG9fc2d2ZWMoc2tiLCBzZywgMCwgc2tiLT5sZW4pOwogCWlm ICh1bmxpa2VseShyZXQgPCAwKSkgeworCQlhZWFkX3JlcXVlc3RfZnJlZShyZXEpOwogCQlrZnJl ZV9za2Ioc2tiKTsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9Ci0tIAoyLjEzLjYKCgpGcm9t IDkyYTFjNWI3Y2U0YmIxOGM4ZTM1M2MxY2U3YjRkMzAxYTk5ZDlhZjQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRh dGU6IEZyaSwgMTMgT2N0IDIwMTcgMTk6MjI6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzM3 XSBsMnRwOiBjaGVjayBwcy0+c29jayBiZWZvcmUgcnVubmluZwogcHBwb2wydHBfc2Vzc2lvbl9p b2N0bCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1OTAzZjU5NDkzNWEzODQxMTM3Yzg2YjlkNWI3NTE0 M2E1YjcxMjFjIF0KCldoZW4gcHBwb2wydHBfc2Vzc2lvbl9pb2N0bCgpIGlzIGNhbGxlZCBieSBw cHBvbDJ0cF90dW5uZWxfaW9jdGwoKSwKdGhlIHNlc3Npb24gbWF5IGJlIHVuY29ubmVjdGVkLiBU aGF0IGlzLCBpdCB3YXMgY3JlYXRlZCBieQpwcHBvbDJ0cF9zZXNzaW9uX2NyZWF0ZSgpIGFuZCBo YXNuJ3QgYmVlbiBjb25uZWN0ZWQgd2l0aApwcHBvbDJ0cF9jb25uZWN0KCkuIEluIHRoaXMgY2Fz ZSwgcHMtPnNvY2sgaXMgTlVMTCwgc28gd2UgbmVlZCB0byBjaGVjawpmb3IgdGhpcyBjYXNlIGlu IG9yZGVyIHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcgYSBOVUxMIHBvaW50ZXIuCgpGaXhlczogMzA5 Nzk1ZjRiZWMyICgibDJ0cDogQWRkIG5ldGxpbmsgY29udHJvbCBBUEkgZm9yIEwyVFAiKQpTaWdu ZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wy dHAvbDJ0cF9wcHAuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBwLmMKaW5k ZXggZjBlZGI3MjA5MDc5Li5lOGVjNGYzZTU0ZmIgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBf cHBwLmMKKysrIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwpAQCAtOTkzLDYgKzk5Myw5IEBAIHN0YXRp YyBpbnQgcHBwb2wydHBfc2Vzc2lvbl9pb2N0bChzdHJ1Y3QgbDJ0cF9zZXNzaW9uICpzZXNzaW9u LAogCQkgc2Vzc2lvbi0+bmFtZSwgY21kLCBhcmcpOwogCiAJc2sgPSBwcy0+c29jazsKKwlpZiAo IXNrKQorCQlyZXR1cm4gLUVCQURSOworCiAJc29ja19ob2xkKHNrKTsKIAogCXN3aXRjaCAoY21k KSB7Ci0tIAoyLjEzLjYKCgpGcm9tIGY1OTliNTRkYzA5ODkyZDUyMGU5NWE1OWFhOWJhYTYxNmE2 ZTc0M2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpEYXRlOiBGcmksIDEzIE9jdCAyMDE3IDExOjU4OjUzIC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAwOS8zN10gdHVuOiBjYWxsIGRldl9nZXRfdmFsaWRfbmFtZSgpIGJlZm9y ZQogcmVnaXN0ZXJfbmV0ZGV2aWNlKCkKClsgVXBzdHJlYW0gY29tbWl0IDBhZDY0NmM4MWIyMTgy ZjdmYTY3ZWMwYzhjODI1ZTBlZTE2NTY5NmQgXQoKcmVnaXN0ZXJfbmV0ZGV2aWNlKCkgY291bGQg ZmFpbCBlYXJseSB3aGVuIHdlIGhhdmUgYW4gaW52YWxpZApkZXYgbmFtZSwgaW4gd2hpY2ggY2Fz ZSAtPm5kb191bmluaXQoKSBpcyBub3QgY2FsbGVkLiBGb3IgdHVuCmRldmljZSwgdGhpcyBpcyBh IHByb2JsZW0gYmVjYXVzZSBhIHRpbWVyIGV0Yy4gYXJlIGFscmVhZHkKaW5pdGlhbGl6ZWQgYW5k IGl0IGV4cGVjdHMgLT5uZG9fdW5pbml0KCkgdG8gY2xlYW4gdGhlbSB1cC4KCldlIGNvdWxkIG1v dmUgdGhlc2UgaW5pdGlhbGl6YXRpb25zIGludG8gYSAtPm5kb19pbml0KCkgc28KdGhhdCByZWdp c3Rlcl9uZXRkZXZpY2UoKSBrbm93cyBiZXR0ZXIsIGhvd2V2ZXIgdGhpcyBpcyBzdGlsbApjb21w bGljYXRlZCBkdWUgdG8gdGhlIGxvZ2ljIGluIHR1bl9kZXRhY2goKS4KClRoZXJlZm9yZSwgSSBj aG9vc2UgdG8ganVzdCBjYWxsIGRldl9nZXRfdmFsaWRfbmFtZSgpIGJlZm9yZQpyZWdpc3Rlcl9u ZXRkZXZpY2UoKSwgd2hpY2ggaXMgcXVpY2tlciBhbmQgbXVjaCBlYXNpZXIgdG8gYXVkaXQuCkFu ZCBmb3IgdGhpcyBzcGVjaWZpYyBjYXNlLCBpdCBpcyBhbHJlYWR5IGVub3VnaC4KCkZpeGVzOiA5 NjQ0MmU0MjQyOWUgKCJ0dW50YXA6IGNob29zZSB0aGUgdHhxIGJhc2VkIG9uIHJ4cSIpClJlcG9y dGVkLWJ5OiBEbWl0cnkgQWxleGVldiA8YXZla2NlZWJAZ21haWwuY29tPgpDYzogSmFzb24gV2Fu ZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQ2M6ICJNaWNoYWVsIFMuIFRzaXJraW4iIDxtc3RAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC90dW4uYyAgICAgICAgIHwgMyArKysKIGluY2x1ZGUvbGludXgvbmV0 ZGV2aWNlLmggfCAzICsrKwogbmV0L2NvcmUvZGV2LmMgICAgICAgICAgICB8IDYgKysrLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IGNiMWY3NzQ3 YWRhZC4uOWU3YjRlN2QzZjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90dW4uYworKysgYi9k cml2ZXJzL25ldC90dW4uYwpAQCAtMTgxMyw2ICsxODEzLDkgQEAgc3RhdGljIGludCB0dW5fc2V0 X2lmZihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgaWZyZXEgKmlm cikKIAogCQlpZiAoIWRldikKIAkJCXJldHVybiAtRU5PTUVNOworCQllcnIgPSBkZXZfZ2V0X3Zh bGlkX25hbWUobmV0LCBkZXYsIG5hbWUpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJfZnJlZV9k ZXY7CiAKIAkJZGV2X25ldF9zZXQoZGV2LCBuZXQpOwogCQlkZXYtPnJ0bmxfbGlua19vcHMgPSAm dHVuX2xpbmtfb3BzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBiL2lu Y2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggYzk5YmE3OTE0YzBhLi5hNmQzYzhiNmNiOTMg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9saW51 eC9uZXRkZXZpY2UuaApAQCAtMzcwMiw2ICszNzAyLDkgQEAgc3RydWN0IG5ldF9kZXZpY2UgKmFs bG9jX25ldGRldl9tcXMoaW50IHNpemVvZl9wcml2LCBjb25zdCBjaGFyICpuYW1lLAogCQkJCSAg ICB1bnNpZ25lZCBjaGFyIG5hbWVfYXNzaWduX3R5cGUsCiAJCQkJICAgIHZvaWQgKCpzZXR1cCko c3RydWN0IG5ldF9kZXZpY2UgKiksCiAJCQkJICAgIHVuc2lnbmVkIGludCB0eHFzLCB1bnNpZ25l ZCBpbnQgcnhxcyk7CitpbnQgZGV2X2dldF92YWxpZF9uYW1lKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCiAjZGVm aW5lIGFsbG9jX25ldGRldihzaXplb2ZfcHJpdiwgbmFtZSwgbmFtZV9hc3NpZ25fdHlwZSwgc2V0 dXApIFwKIAlhbGxvY19uZXRkZXZfbXFzKHNpemVvZl9wcml2LCBuYW1lLCBuYW1lX2Fzc2lnbl90 eXBlLCBzZXR1cCwgMSwgMSkKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29y ZS9kZXYuYwppbmRleCA2ZmEzMGE0YzYwZWYuLjRmOWVjOTIzZDIxYiAxMDA2NDQKLS0tIGEvbmV0 L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTExNDYsOSArMTE0Niw4IEBAIHN0 YXRpYyBpbnQgZGV2X2FsbG9jX25hbWVfbnMoc3RydWN0IG5ldCAqbmV0LAogCXJldHVybiByZXQ7 CiB9CiAKLXN0YXRpYyBpbnQgZGV2X2dldF92YWxpZF9uYW1lKHN0cnVjdCBuZXQgKm5ldCwKLQkJ CSAgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCi0JCQkgICAgICBjb25zdCBjaGFyICpuYW1l KQoraW50IGRldl9nZXRfdmFsaWRfbmFtZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCisJCSAgICAgICBjb25zdCBjaGFyICpuYW1lKQogewogCUJVR19PTighbmV0KTsK IApAQCAtMTE2NCw2ICsxMTYzLDcgQEAgc3RhdGljIGludCBkZXZfZ2V0X3ZhbGlkX25hbWUoc3Ry dWN0IG5ldCAqbmV0LAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKGRldl9nZXRfdmFs aWRfbmFtZSk7CiAKIC8qKgogICoJZGV2X2NoYW5nZV9uYW1lIC0gY2hhbmdlIG5hbWUgb2YgYSBk ZXZpY2UKLS0gCjIuMTMuNgoKCkZyb20gNTM5NWUzNTI1YzJlOWQ4N2VkOTc3MWE5MTk1NWU5YWI5 OWZjYzFhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9oYW5uZXMgQmVyZyA8am9o YW5uZXMuYmVyZ0BpbnRlbC5jb20+CkRhdGU6IE1vbiwgMTYgT2N0IDIwMTcgMTc6MDk6NTMgKzAy MDAKU3ViamVjdDogW1BBVENIIDEwLzM3XSBuZXRsaW5rOiBmaXggbmV0bGlua19hY2soKSBleHRh Y2sgcmFjZQoKWyBVcHN0cmVhbSBjb21taXQgNDgwNDRlYjQ5MGJlNzFjMjAzZTE0ZGQ4OWU4YmFl ODcyMDllYWI1MiBdCgpJdCBzZWVtcyB0aGF0IGl0J3MgcG9zc2libGUgdG8gdG9nZ2xlIE5FVExJ TktfRl9FWFRfQUNLCnRocm91Z2ggc2V0c29ja29wdCgpIHdoaWxlIGFub3RoZXIgdGhyZWFkL0NQ VSBpcyBidWlsZGluZwphIG1lc3NhZ2UgaW5zaWRlIG5ldGxpbmtfYWNrKCksIHdoaWNoIGNvdWxk IHRoZW4gdHJpZ2dlcgp0aGUgV0FSTl9PTigpcyBJIGFkZGVkIHNpbmNlIGlmIGl0IGdvZXMgZnJv bSBiZWluZyB0dXJuZWQKb2ZmIHRvIGJlaW5nIHR1cm5lZCBvbiBiZXR3ZWVuIGFsbG9jYXRpbmcg YW5kIGZpbGxpbmcgdGhlCm1lc3NhZ2UsIHRoZSBza2IgY291bGQgZW5kIHVwIGJlaW5nIHRvbyBz bWFsbC4KCkF2b2lkIHRoaXMgd2hvbGUgc2l0dWF0aW9uIGJ5IHN0b3JpbmcgdGhlIHZhbHVlIG9m IHRoaXMKZmxhZyBpbiBhIHNlcGFyYXRlIHZhcmlhYmxlIGFuZCB1c2luZyB0aGF0IHRocm91Z2hv dXQgdGhlCmZ1bmN0aW9uIGluc3RlYWQuCgpGaXhlczogMmQ0YmM5MzM2OGY1ICgibmV0bGluazog ZXh0ZW5kZWQgQUNLIHJlcG9ydGluZyIpClNpZ25lZC1vZmYtYnk6IEpvaGFubmVzIEJlcmcgPGpv aGFubmVzLmJlcmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIHwgOCArKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRs aW5rLmMKaW5kZXggNTY1MjdlMzdmZmRkLi4wOWM4ZGJiZDJkNzAgMTAwNjQ0Ci0tLSBhL25ldC9u ZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTIy OTksNiArMjI5OSw3IEBAIHZvaWQgbmV0bGlua19hY2soc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwg c3RydWN0IG5sbXNnaGRyICpubGgsIGludCBlcnIsCiAJc2l6ZV90IHRsdmxlbiA9IDA7CiAJc3Ry dWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3NrKE5FVExJTktfQ0IoaW5fc2tiKS5zayk7CiAJ dW5zaWduZWQgaW50IGZsYWdzID0gMDsKKwlib29sIG5sa19oYXNfZXh0YWNrID0gbmxrLT5mbGFn cyAmIE5FVExJTktfRl9FWFRfQUNLOwogCiAJLyogRXJyb3IgbWVzc2FnZXMgZ2V0IHRoZSBvcmln aW5hbCByZXF1ZXN0IGFwcGVuZWQsIHVubGVzcyB0aGUgdXNlcgogCSAqIHJlcXVlc3RzIHRvIGNh cCB0aGUgZXJyb3IgbWVzc2FnZSwgYW5kIGdldCBleHRyYSBlcnJvciBkYXRhIGlmCkBAIC0yMzA5 LDcgKzIzMTAsNyBAQCB2b2lkIG5ldGxpbmtfYWNrKHN0cnVjdCBza19idWZmICppbl9za2IsIHN0 cnVjdCBubG1zZ2hkciAqbmxoLCBpbnQgZXJyLAogCQkJcGF5bG9hZCArPSBubG1zZ19sZW4obmxo KTsKIAkJZWxzZQogCQkJZmxhZ3MgfD0gTkxNX0ZfQ0FQUEVEOwotCQlpZiAobmxrLT5mbGFncyAm IE5FVExJTktfRl9FWFRfQUNLICYmIGV4dGFjaykgeworCQlpZiAobmxrX2hhc19leHRhY2sgJiYg ZXh0YWNrKSB7CiAJCQlpZiAoZXh0YWNrLT5fbXNnKQogCQkJCXRsdmxlbiArPSBubGFfdG90YWxf c2l6ZShzdHJsZW4oZXh0YWNrLT5fbXNnKSArIDEpOwogCQkJaWYgKGV4dGFjay0+YmFkX2F0dHIp CkBAIC0yMzE4LDggKzIzMTksNyBAQCB2b2lkIG5ldGxpbmtfYWNrKHN0cnVjdCBza19idWZmICpp bl9za2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLCBpbnQgZXJyLAogCX0gZWxzZSB7CiAJCWZsYWdz IHw9IE5MTV9GX0NBUFBFRDsKIAotCQlpZiAobmxrLT5mbGFncyAmIE5FVExJTktfRl9FWFRfQUNL ICYmCi0JCSAgICBleHRhY2sgJiYgZXh0YWNrLT5jb29raWVfbGVuKQorCQlpZiAobmxrX2hhc19l eHRhY2sgJiYgZXh0YWNrICYmIGV4dGFjay0+Y29va2llX2xlbikKIAkJCXRsdmxlbiArPSBubGFf dG90YWxfc2l6ZShleHRhY2stPmNvb2tpZV9sZW4pOwogCX0KIApAQCAtMjM0Nyw3ICsyMzQ3LDcg QEAgdm9pZCBuZXRsaW5rX2FjayhzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2tiLCBzdHJ1Y3Qgbmxtc2do ZHIgKm5saCwgaW50IGVyciwKIAllcnJtc2ctPmVycm9yID0gZXJyOwogCW1lbWNweSgmZXJybXNn LT5tc2csIG5saCwgcGF5bG9hZCA+IHNpemVvZigqZXJybXNnKSA/IG5saC0+bmxtc2dfbGVuIDog c2l6ZW9mKCpubGgpKTsKIAotCWlmIChubGstPmZsYWdzICYgTkVUTElOS19GX0VYVF9BQ0sgJiYg ZXh0YWNrKSB7CisJaWYgKG5sa19oYXNfZXh0YWNrICYmIGV4dGFjaykgewogCQlpZiAoZXJyKSB7 CiAJCQlpZiAoZXh0YWNrLT5fbXNnKQogCQkJCVdBUk5fT04obmxhX3B1dF9zdHJpbmcoc2tiLCBO TE1TR0VSUl9BVFRSX01TRywKLS0gCjIuMTMuNgoKCkZyb20gMDdhZTk4MzIyY2RiOTk0MmFiYWE2 ZTY4NGRlMzE1YmI0ZTBiNTNiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExv bmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDE4IE9jdCAyMDE3IDIxOjM3OjQ5 ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMS8zN10gc2N0cDogYWRkIHRoZSBtaXNzaW5nIHNvY2tf b3duZWRfYnlfdXNlciBjaGVjayBpbgogc2N0cF9pY21wX3JlZGlyZWN0CgpbIFVwc3RyZWFtIGNv bW1pdCAxY2MyNzZjZWM5ZWM1NzRkNDFjZjQ3ZGZjMGY1MTQwNmI2ZjI2YWI0IF0KCk5vdyBzY3Rw IHByb2Nlc3NlcyBpY21wIHJlZGlyZWN0IHBhY2tldCBpbiBzY3RwX2ljbXBfcmVkaXJlY3Qgd2hl cmUKaXQgY2FsbHMgc2N0cF90cmFuc3BvcnRfZHN0X2NoZWNrIGluIHdoaWNoIHRwLT5kc3QgY2Fu IGJlIHJlbGVhc2VkLgoKVGhlIHByb2JsZW0gaXMgYmVmb3JlIGNhbGxpbmcgc2N0cF90cmFuc3Bv cnRfZHN0X2NoZWNrLCBpdCBkb2Vzbid0CmNoZWNrIHNvY2tfb3duZWRfYnlfdXNlciwgd2hpY2gg bWVhbnMgdHAtPmRzdCBjb3VsZCBiZSBmcmVlZCB3aGlsZQphIHByb2Nlc3MgaXMgYWNjZXNzaW5n IGl0IHdpdGggb3duaW5nIHRoZSBzb2NrZXQuCgpBbiB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBjb3Vs ZCBiZSB0cmlnZ2VyZWQgYnkgdGhpcy4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IGNoZWNr aW5nIHNvY2tfb3duZWRfYnlfdXNlciBiZWZvcmUgY2FsbGluZwpzY3RwX3RyYW5zcG9ydF9kc3Rf Y2hlY2sgaW4gc2N0cF9pY21wX3JlZGlyZWN0LCBzbyB0aGF0IGl0IHdvdWxkIG5vdApyZWxlYXNl IHRwLT5kc3QgaWYgdXNlcnMgc3RpbGwgaG9sZCBzb2NrIGxvY2suCgpCZXNpZGVzLCB0aGUgc2Ft ZSBpc3N1ZSBmaXhlZCBpbiBjb21taXQgNDVjYWVhYTVhYzBiICgiZGNjcC90Y3A6IGZpeApyb3V0 aW5nIHJlZGlyZWN0IHJhY2UiKSBvbiBzY3RwIGFsc28gbmVlZHMgdGhpcyBjaGVjay4KCkZpeGVz OiA1NWJlN2E5YzYwNzQgKCJpcHY0OiBBZGQgcmVkaXJlY3Qgc3VwcG9ydCB0byBhbGwgcHJvdG9j b2wgaWNtcCBlcnJvciBoYW5kbGVycyIpClJlcG9ydGVkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJA Z21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9zY3RwL2lucHV0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9pbnB1dC5jIGIvbmV0L3NjdHAv aW5wdXQuYwppbmRleCA0MWViMmVjMTA0NjAuLjE2NzhkOWVhNzc0MCAxMDA2NDQKLS0tIGEvbmV0 L3NjdHAvaW5wdXQuYworKysgYi9uZXQvc2N0cC9pbnB1dC5jCkBAIC00MjEsNyArNDIxLDcgQEAg dm9pZCBzY3RwX2ljbXBfcmVkaXJlY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2N0cF90cmFu c3BvcnQgKnQsCiB7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCi0JaWYgKCF0KQorCWlmIChz b2NrX293bmVkX2J5X3VzZXIoc2spIHx8ICF0KQogCQlyZXR1cm47CiAJZHN0ID0gc2N0cF90cmFu c3BvcnRfZHN0X2NoZWNrKHQpOwogCWlmIChkc3QpCi0tIAoyLjEzLjYKCgpGcm9tIDgxNTZiNzlk Y2Q5ZTU4Mjk1NmQzODg5ZGEyMGE5NTU4OTE5Y2I0MDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyMCBP Y3QgMjAxNyAwOTowNDoxMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzddIHRjcC9kY2NwOiBm aXggaXJlcS0+b3B0IHJhY2VzCgpbIFVwc3RyZWFtIGNvbW1pdCBjOTJlOGMwMmZlNjY0MTU1YWM0 MjM0NTE2ZTMyNTQ0YmVjMGYxMTNkIF0KCnN5emthbGxlciBmb3VuZCBhbm90aGVyIGJ1ZyBpbiBE Q0NQL1RDUCBzdGFja3MgWzFdCgpGb3IgdGhlIHJlYXNvbnMgZXhwbGFpbmVkIGluIGNvbW1pdCBj ZTEwNTAwODljOTYgKCJ0Y3AvZGNjcDogZml4CmlyZXEtPnBrdG9wdHMgcmFjZSIpLCB3ZSBuZWVk IHRvIG1ha2Ugc3VyZSB3ZSBkbyBub3QgYWNjZXNzCmlyZXEtPm9wdCB1bmxlc3Mgd2Ugb3duIHRo ZSByZXF1ZXN0IHNvY2suCgpOb3RlIHRoZSBvcHQgZmllbGQgaXMgcmVuYW1lZCB0byBpcmVxX29w dCB0byBlYXNlIGdyZXAgZ2FtZXMuCgpbMV0KQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4g aXBfcXVldWVfeG1pdCsweDE2ODcvMHgxOGUwIG5ldC9pcHY0L2lwX291dHB1dC5jOjQ3NApSZWFk IG9mIHNpemUgMSBhdCBhZGRyIGZmZmY4ODAxYzk1MTAzOWMgYnkgdGFzayBzeXotZXhlY3V0b3I1 LzMyOTUKCkNQVTogMSBQSUQ6IDMyOTUgQ29tbTogc3l6LWV4ZWN1dG9yNSBOb3QgdGFpbnRlZCA0 LjE0LjAtcmM0KyAjODAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2lu ZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFj ZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjE2IFtpbmxpbmVdCiBkdW1wX3N0YWNr KzB4MTk0LzB4MjU3IGxpYi9kdW1wX3N0YWNrLmM6NTIKIHByaW50X2FkZHJlc3NfZGVzY3JpcHRp b24rMHg3My8weDI1MCBtbS9rYXNhbi9yZXBvcnQuYzoyNTIKIGthc2FuX3JlcG9ydF9lcnJvciBt bS9rYXNhbi9yZXBvcnQuYzozNTEgW2lubGluZV0KIGthc2FuX3JlcG9ydCsweDI1Yi8weDM0MCBt bS9rYXNhbi9yZXBvcnQuYzo0MDkKIF9fYXNhbl9yZXBvcnRfbG9hZDFfbm9hYm9ydCsweDE0LzB4 MjAgbW0va2FzYW4vcmVwb3J0LmM6NDI3CiBpcF9xdWV1ZV94bWl0KzB4MTY4Ny8weDE4ZTAgbmV0 L2lwdjQvaXBfb3V0cHV0LmM6NDc0CiB0Y3BfdHJhbnNtaXRfc2tiKzB4MWFiNy8weDM4NDAgbmV0 L2lwdjQvdGNwX291dHB1dC5jOjExMzUKIHRjcF9zZW5kX2Fjay5wYXJ0LjM3KzB4M2JiLzB4NjUw IG5ldC9pcHY0L3RjcF9vdXRwdXQuYzozNTg3CiB0Y3Bfc2VuZF9hY2srMHg0OS8weDYwIG5ldC9p cHY0L3RjcF9vdXRwdXQuYzozNTU3CiBfX3RjcF9hY2tfc25kX2NoZWNrKzB4MmM2LzB4NGIwIG5l dC9pcHY0L3RjcF9pbnB1dC5jOjUwNzIKIHRjcF9hY2tfc25kX2NoZWNrIG5ldC9pcHY0L3RjcF9p bnB1dC5jOjUwODUgW2lubGluZV0KIHRjcF9yY3Zfc3RhdGVfcHJvY2VzcysweDJlZmYvMHg0ODUw IG5ldC9pcHY0L3RjcF9pbnB1dC5jOjYwNzEKIHRjcF9jaGlsZF9wcm9jZXNzKzB4MzQyLzB4OTkw IG5ldC9pcHY0L3RjcF9taW5pc29ja3MuYzo4MTYKIHRjcF92NF9yY3YrMHgxODI3LzB4MmY4MCBu ZXQvaXB2NC90Y3BfaXB2NC5jOjE2ODIKIGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNoKzB4MmUyLzB4 YmEwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjE2CiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0Zmls dGVyLmg6MjQ5IFtpbmxpbmVdCiBpcF9sb2NhbF9kZWxpdmVyKzB4MWNlLzB4NmUwIG5ldC9pcHY0 L2lwX2lucHV0LmM6MjU3CiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDY0IFtpbmxpbmVd CiBpcF9yY3ZfZmluaXNoKzB4ODg3LzB4MTlhMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjM5NwogTkZf SE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI0OSBbaW5saW5lXQogaXBfcmN2KzB4YzNm LzB4MTgyMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjQ5MwogX19uZXRpZl9yZWNlaXZlX3NrYl9jb3Jl KzB4MWEzZS8weDM0YjAgbmV0L2NvcmUvZGV2LmM6NDQ3NgogX19uZXRpZl9yZWNlaXZlX3NrYisw eDJjLzB4MWIwIG5ldC9jb3JlL2Rldi5jOjQ1MTQKIG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFs KzB4MTBiLzB4NjcwIG5ldC9jb3JlL2Rldi5jOjQ1ODcKIG5ldGlmX3JlY2VpdmVfc2tiKzB4YWUv MHgzOTAgbmV0L2NvcmUvZGV2LmM6NDYxMQogdHVuX3J4X2JhdGNoZWQuaXNyYS41MCsweDVlZC8w eDg2MCBkcml2ZXJzL25ldC90dW4uYzoxMzcyCiB0dW5fZ2V0X3VzZXIrMHgyNDljLzB4MzZkMCBk cml2ZXJzL25ldC90dW4uYzoxNzY2CiB0dW5fY2hyX3dyaXRlX2l0ZXIrMHhiZi8weDE2MCBkcml2 ZXJzL25ldC90dW4uYzoxNzkyCiBjYWxsX3dyaXRlX2l0ZXIgaW5jbHVkZS9saW51eC9mcy5oOjE3 NzAgW2lubGluZV0KIG5ld19zeW5jX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo0NjggW2lubGluZV0K IF9fdmZzX3dyaXRlKzB4NjhhLzB4OTcwIGZzL3JlYWRfd3JpdGUuYzo0ODEKIHZmc193cml0ZSsw eDE4Zi8weDUxMCBmcy9yZWFkX3dyaXRlLmM6NTQzCiBTWVNDX3dyaXRlIGZzL3JlYWRfd3JpdGUu Yzo1ODggW2lubGluZV0KIFN5U193cml0ZSsweGVmLzB4MjIwIGZzL3JlYWRfd3JpdGUuYzo1ODAK IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGJlClJJUDogMDAzMzoweDQwYzM0MQpS U1A6IDAwMmI6MDAwMDdmNDY5NTIzZWMxMCBFRkxBR1M6IDAwMDAwMjkzIE9SSUdfUkFYOiAwMDAw MDAwMDAwMDAwMDAxClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDA3MTgwMDAg UkNYOiAwMDAwMDAwMDAwNDBjMzQxClJEWDogMDAwMDAwMDAwMDAwMDAzNyBSU0k6IDAwMDAwMDAw MjAwMDQwMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDE1ClJCUDogMDAwMDAwMDAwMDAwMDA4NiBSMDg6 IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAwMDBm NDI0MCBSMTE6IDAwMDAwMDAwMDAwMDAyOTMgUjEyOiAwMDAwMDAwMDAwNGI3ZmQxClIxMzogMDAw MDAwMDBmZmZmZmZmZiBSMTQ6IDAwMDAwMDAwMjAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDI1MDAw CgpBbGxvY2F0ZWQgYnkgdGFzayAzMjk1Ogogc2F2ZV9zdGFja190cmFjZSsweDE2LzB4MjAgYXJj aC94ODYva2VybmVsL3N0YWNrdHJhY2UuYzo1OQogc2F2ZV9zdGFjaysweDQzLzB4ZDAgbW0va2Fz YW4va2FzYW4uYzo0NDcKIHNldF90cmFjayBtbS9rYXNhbi9rYXNhbi5jOjQ1OSBbaW5saW5lXQog a2FzYW5fa21hbGxvYysweGFkLzB4ZTAgbW0va2FzYW4va2FzYW4uYzo1NTEKIF9fZG9fa21hbGxv YyBtbS9zbGFiLmM6MzcyNSBbaW5saW5lXQogX19rbWFsbG9jKzB4MTYyLzB4NzYwIG1tL3NsYWIu YzozNzM0CiBrbWFsbG9jIGluY2x1ZGUvbGludXgvc2xhYi5oOjQ5OCBbaW5saW5lXQogdGNwX3Y0 X3NhdmVfb3B0aW9ucyBpbmNsdWRlL25ldC90Y3AuaDoxOTYyIFtpbmxpbmVdCiB0Y3BfdjRfaW5p dF9yZXErMHgyZDMvMHgzZTAgbmV0L2lwdjQvdGNwX2lwdjQuYzoxMjcxCiB0Y3BfY29ubl9yZXF1 ZXN0KzB4ZjZkLzB4MzQxMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo2MjgzCiB0Y3BfdjRfY29ubl9y ZXF1ZXN0KzB4MTU3LzB4MjEwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTMxMwogdGNwX3Jjdl9zdGF0 ZV9wcm9jZXNzKzB4OGVhLzB4NDg1MCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1ODU3CiB0Y3BfdjRf ZG9fcmN2KzB4NTVjLzB4N2QwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTQ4MgogdGNwX3Y0X3Jjdisw eDJkMTAvMHgyZjgwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTcxMQogaXBfbG9jYWxfZGVsaXZlcl9m aW5pc2grMHgyZTIvMHhiYTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMTYKIE5GX0hPT0sgaW5jbHVk ZS9saW51eC9uZXRmaWx0ZXIuaDoyNDkgW2lubGluZV0KIGlwX2xvY2FsX2RlbGl2ZXIrMHgxY2Uv MHg2ZTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTcKIGRzdF9pbnB1dCBpbmNsdWRlL25ldC9kc3Qu aDo0NjQgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHg4ODcvMHgxOWEwIG5ldC9pcHY0L2lwX2lu cHV0LmM6Mzk3CiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjQ5IFtpbmxpbmVd CiBpcF9yY3YrMHhjM2YvMHgxODIwIG5ldC9pcHY0L2lwX2lucHV0LmM6NDkzCiBfX25ldGlmX3Jl Y2VpdmVfc2tiX2NvcmUrMHgxYTNlLzB4MzRiMCBuZXQvY29yZS9kZXYuYzo0NDc2CiBfX25ldGlm X3JlY2VpdmVfc2tiKzB4MmMvMHgxYjAgbmV0L2NvcmUvZGV2LmM6NDUxNAogbmV0aWZfcmVjZWl2 ZV9za2JfaW50ZXJuYWwrMHgxMGIvMHg2NzAgbmV0L2NvcmUvZGV2LmM6NDU4NwogbmV0aWZfcmVj ZWl2ZV9za2IrMHhhZS8weDM5MCBuZXQvY29yZS9kZXYuYzo0NjExCiB0dW5fcnhfYmF0Y2hlZC5p c3JhLjUwKzB4NWVkLzB4ODYwIGRyaXZlcnMvbmV0L3R1bi5jOjEzNzIKIHR1bl9nZXRfdXNlcisw eDI0OWMvMHgzNmQwIGRyaXZlcnMvbmV0L3R1bi5jOjE3NjYKIHR1bl9jaHJfd3JpdGVfaXRlcisw eGJmLzB4MTYwIGRyaXZlcnMvbmV0L3R1bi5jOjE3OTIKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRl L2xpbnV4L2ZzLmg6MTc3MCBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5j OjQ2OCBbaW5saW5lXQogX192ZnNfd3JpdGUrMHg2OGEvMHg5NzAgZnMvcmVhZF93cml0ZS5jOjQ4 MQogdmZzX3dyaXRlKzB4MThmLzB4NTEwIGZzL3JlYWRfd3JpdGUuYzo1NDMKIFNZU0Nfd3JpdGUg ZnMvcmVhZF93cml0ZS5jOjU4OCBbaW5saW5lXQogU3lTX3dyaXRlKzB4ZWYvMHgyMjAgZnMvcmVh ZF93cml0ZS5jOjU4MAogZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFmLzB4YmUKCkZyZWVk IGJ5IHRhc2sgMzMwNjoKIHNhdmVfc3RhY2tfdHJhY2UrMHgxNi8weDIwIGFyY2gveDg2L2tlcm5l bC9zdGFja3RyYWNlLmM6NTkKIHNhdmVfc3RhY2srMHg0My8weGQwIG1tL2thc2FuL2thc2FuLmM6 NDQ3CiBzZXRfdHJhY2sgbW0va2FzYW4va2FzYW4uYzo0NTkgW2lubGluZV0KIGthc2FuX3NsYWJf ZnJlZSsweDcxLzB4YzAgbW0va2FzYW4va2FzYW4uYzo1MjQKIF9fY2FjaGVfZnJlZSBtbS9zbGFi LmM6MzUwMyBbaW5saW5lXQoga2ZyZWUrMHhjYS8weDI1MCBtbS9zbGFiLmM6MzgyMAogaW5ldF9z b2NrX2Rlc3RydWN0KzB4NTlkLzB4OTUwIG5ldC9pcHY0L2FmX2luZXQuYzoxNTcKIF9fc2tfZGVz dHJ1Y3QrMHhmZC8weDkxMCBuZXQvY29yZS9zb2NrLmM6MTU2MAogc2tfZGVzdHJ1Y3QrMHg0Ny8w eDgwIG5ldC9jb3JlL3NvY2suYzoxNTk1CiBfX3NrX2ZyZWUrMHg1Ny8weDIzMCBuZXQvY29yZS9z b2NrLmM6MTYwMwogc2tfZnJlZSsweDJhLzB4NDAgbmV0L2NvcmUvc29jay5jOjE2MTQKIHNvY2tf cHV0IGluY2x1ZGUvbmV0L3NvY2suaDoxNjUyIFtpbmxpbmVdCiBpbmV0X2Nza19jb21wbGV0ZV9o YXNoZGFuY2UrMHhkNS8weGYwIG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6OTU5CiB0 Y3BfY2hlY2tfcmVxKzB4ZjRkLzB4MTYyMCBuZXQvaXB2NC90Y3BfbWluaXNvY2tzLmM6NzY1CiB0 Y3BfdjRfcmN2KzB4MTdmNi8weDJmODAgbmV0L2lwdjQvdGNwX2lwdjQuYzoxNjc1CiBpcF9sb2Nh bF9kZWxpdmVyX2ZpbmlzaCsweDJlMi8weGJhMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjIxNgogTkZf SE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI0OSBbaW5saW5lXQogaXBfbG9jYWxfZGVs aXZlcisweDFjZS8weDZlMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjI1NwogZHN0X2lucHV0IGluY2x1 ZGUvbmV0L2RzdC5oOjQ2NCBbaW5saW5lXQogaXBfcmN2X2ZpbmlzaCsweDg4Ny8weDE5YTAgbmV0 L2lwdjQvaXBfaW5wdXQuYzozOTcKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoy NDkgW2lubGluZV0KIGlwX3JjdisweGMzZi8weDE4MjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0OTMK IF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDFhM2UvMHgzNGIwIG5ldC9jb3JlL2Rldi5jOjQ0 NzYKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFiMCBuZXQvY29yZS9kZXYuYzo0NTE0CiBu ZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDEwYi8weDY3MCBuZXQvY29yZS9kZXYuYzo0NTg3 CiBuZXRpZl9yZWNlaXZlX3NrYisweGFlLzB4MzkwIG5ldC9jb3JlL2Rldi5jOjQ2MTEKIHR1bl9y eF9iYXRjaGVkLmlzcmEuNTArMHg1ZWQvMHg4NjAgZHJpdmVycy9uZXQvdHVuLmM6MTM3MgogdHVu X2dldF91c2VyKzB4MjQ5Yy8weDM2ZDAgZHJpdmVycy9uZXQvdHVuLmM6MTc2NgogdHVuX2Nocl93 cml0ZV9pdGVyKzB4YmYvMHgxNjAgZHJpdmVycy9uZXQvdHVuLmM6MTc5MgogY2FsbF93cml0ZV9p dGVyIGluY2x1ZGUvbGludXgvZnMuaDoxNzcwIFtpbmxpbmVdCiBuZXdfc3luY193cml0ZSBmcy9y ZWFkX3dyaXRlLmM6NDY4IFtpbmxpbmVdCiBfX3Zmc193cml0ZSsweDY4YS8weDk3MCBmcy9yZWFk X3dyaXRlLmM6NDgxCiB2ZnNfd3JpdGUrMHgxOGYvMHg1MTAgZnMvcmVhZF93cml0ZS5jOjU0Mwog U1lTQ193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NTg4IFtpbmxpbmVdCiBTeVNfd3JpdGUrMHhlZi8w eDIyMCBmcy9yZWFkX3dyaXRlLmM6NTgwCiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWYv MHhiZQoKRml4ZXM6IGU5OTRiMmYwZmI5MiAoInRjcDogZG8gbm90IGxvY2sgbGlzdGVuZXIgdG8g cHJvY2VzcyBTWU4gcGFja2V0cyIpCkZpeGVzOiAwNzkwOTZmMTAzZmEgKCJ0Y3AvZGNjcDogaW5z dGFsbCBzeW5fcmVjdiByZXF1ZXN0cyBpbnRvIGVoYXNoIHRhYmxlIikKU2lnbmVkLW9mZi1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaW5ldF9zb2Nr LmggICAgICAgICB8ICAyICstCiBuZXQvZGNjcC9pcHY0LmMgICAgICAgICAgICAgICAgIHwgMTMg KysrKysrKystLS0tLQogbmV0L2lwdjQvY2lwc29faXB2NC5jICAgICAgICAgICB8IDI0ICsrKysr KystLS0tLS0tLS0tLS0tLS0tLQogbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyB8ICA4 ICsrKy0tLS0tCiBuZXQvaXB2NC9zeW5jb29raWVzLmMgICAgICAgICAgIHwgIDIgKy0KIG5ldC9p cHY0L3RjcF9pbnB1dC5jICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQvdGNwX2lwdjQuYyAg ICAgICAgICAgICB8IDIxICsrKysrKysrKysrKy0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAz MyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9pbmV0X3NvY2suaCBiL2luY2x1ZGUvbmV0L2luZXRfc29jay5oCmluZGV4IGFhOTUwNTNkZmM3 OC4uNDI1NzUyZjc2OGQyIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0X3NvY2suaAorKysg Yi9pbmNsdWRlL25ldC9pbmV0X3NvY2suaApAQCAtOTYsNyArOTYsNyBAQCBzdHJ1Y3QgaW5ldF9y ZXF1ZXN0X3NvY2sgewogCWttZW1jaGVja19iaXRmaWVsZF9lbmQoZmxhZ3MpOwogCXUzMiAgICAg ICAgICAgICAgICAgICAgIGlyX21hcms7CiAJdW5pb24gewotCQlzdHJ1Y3QgaXBfb3B0aW9uc19y Y3UJKm9wdDsKKwkJc3RydWN0IGlwX29wdGlvbnNfcmN1IF9fcmN1CSppcmVxX29wdDsKICNpZiBJ U19FTkFCTEVEKENPTkZJR19JUFY2KQogCQlzdHJ1Y3QgewogCQkJc3RydWN0IGlwdjZfdHhvcHRp b25zCSppcHY2X29wdDsKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjQuYyBiL25ldC9kY2NwL2lw djQuYwppbmRleCAxYjIwMmYxNjUzMWYuLjU4NzdmNDQwOGZjNiAxMDA2NDQKLS0tIGEvbmV0L2Rj Y3AvaXB2NC5jCisrKyBiL25ldC9kY2NwL2lwdjQuYwpAQCAtNDE0LDggKzQxNCw3IEBAIHN0cnVj dCBzb2NrICpkY2NwX3Y0X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywK IAlza19kYWRkcl9zZXQobmV3c2ssIGlyZXEtPmlyX3JtdF9hZGRyKTsKIAlza19yY3Zfc2FkZHJf c2V0KG5ld3NrLCBpcmVxLT5pcl9sb2NfYWRkcik7CiAJbmV3aW5ldC0+aW5ldF9zYWRkcgk9IGly ZXEtPmlyX2xvY19hZGRyOwotCW5ld2luZXQtPmluZXRfb3B0CT0gaXJlcS0+b3B0OwotCWlyZXEt Pm9wdAkgICA9IE5VTEw7CisJUkNVX0lOSVRfUE9JTlRFUihuZXdpbmV0LT5pbmV0X29wdCwgcmN1 X2RlcmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KSk7CiAJbmV3aW5ldC0+bWNfaW5kZXggID0gaW5l dF9paWYoc2tiKTsKIAluZXdpbmV0LT5tY190dGwJICAgPSBpcF9oZHIoc2tiKS0+dHRsOwogCW5l d2luZXQtPmluZXRfaWQgICA9IGppZmZpZXM7CkBAIC00MzAsNyArNDI5LDEwIEBAIHN0cnVjdCBz b2NrICpkY2NwX3Y0X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAlp ZiAoX19pbmV0X2luaGVyaXRfcG9ydChzaywgbmV3c2spIDwgMCkKIAkJZ290byBwdXRfYW5kX2V4 aXQ7CiAJKm93bl9yZXEgPSBpbmV0X2VoYXNoX25vbGlzdGVuKG5ld3NrLCByZXFfdG9fc2socmVx X3VuaGFzaCkpOwotCisJaWYgKCpvd25fcmVxKQorCQlpcmVxLT5pcmVxX29wdCA9IE5VTEw7CisJ ZWxzZQorCQluZXdpbmV0LT5pbmV0X29wdCA9IE5VTEw7CiAJcmV0dXJuIG5ld3NrOwogCiBleGl0 X292ZXJmbG93OgpAQCAtNDQxLDYgKzQ0Myw3IEBAIHN0cnVjdCBzb2NrICpkY2NwX3Y0X3JlcXVl c3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAlfX05FVF9JTkNfU1RBVFMoc29j a19uZXQoc2spLCBMSU5VWF9NSUJfTElTVEVORFJPUFMpOwogCXJldHVybiBOVUxMOwogcHV0X2Fu ZF9leGl0OgorCW5ld2luZXQtPmluZXRfb3B0ID0gTlVMTDsKIAlpbmV0X2Nza19wcmVwYXJlX2Zv cmNlZF9jbG9zZShuZXdzayk7CiAJZGNjcF9kb25lKG5ld3NrKTsKIAlnb3RvIGV4aXQ7CkBAIC00 OTIsNyArNDk1LDcgQEAgc3RhdGljIGludCBkY2NwX3Y0X3NlbmRfcmVzcG9uc2UoY29uc3Qgc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEKIAkJCQkJCQkgICAgICBpcmVx LT5pcl9ybXRfYWRkcik7CiAJCWVyciA9IGlwX2J1aWxkX2FuZF9zZW5kX3BrdChza2IsIHNrLCBp cmVxLT5pcl9sb2NfYWRkciwKIAkJCQkJICAgIGlyZXEtPmlyX3JtdF9hZGRyLAotCQkJCQkgICAg aXJlcS0+b3B0KTsKKwkJCQkJICAgIHJjdV9kZXJlZmVyZW5jZShpcmVxLT5pcmVxX29wdCkpOwog CQllcnIgPSBuZXRfeG1pdF9ldmFsKGVycik7CiAJfQogCkBAIC01NDgsNyArNTUxLDcgQEAgc3Rh dGljIHZvaWQgZGNjcF92NF9jdGxfc2VuZF9yZXNldChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBza19idWZmICpyeHNrYikKIHN0YXRpYyB2b2lkIGRjY3BfdjRfcmVxc2tfZGVzdHJ1Y3Rv cihzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCiB7CiAJZGNjcF9mZWF0X2xpc3RfcHVyZ2UoJmRj Y3BfcnNrKHJlcSktPmRyZXFfZmVhdG5lZyk7Ci0Ja2ZyZWUoaW5ldF9yc2socmVxKS0+b3B0KTsK KwlrZnJlZShyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGluZXRfcnNrKHJlcSktPmlyZXFfb3B0 LCAxKSk7CiB9CiAKIHZvaWQgZGNjcF9zeW5fYWNrX3RpbWVvdXQoY29uc3Qgc3RydWN0IHJlcXVl c3Rfc29jayAqcmVxKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvY2lwc29faXB2NC5jIGIvbmV0L2lw djQvY2lwc29faXB2NC5jCmluZGV4IDJhZThmNTRjYjMyMS4uODIxNzhjYzY5Yzk2IDEwMDY0NAot LS0gYS9uZXQvaXB2NC9jaXBzb19pcHY0LmMKKysrIGIvbmV0L2lwdjQvY2lwc29faXB2NC5jCkBA IC0xOTUxLDcgKzE5NTEsNyBAQCBpbnQgY2lwc29fdjRfcmVxX3NldGF0dHIoc3RydWN0IHJlcXVl c3Rfc29jayAqcmVxLAogCWJ1ZiA9IE5VTEw7CiAKIAlyZXFfaW5ldCA9IGluZXRfcnNrKHJlcSk7 Ci0Jb3B0ID0geGNoZygmcmVxX2luZXQtPm9wdCwgb3B0KTsKKwlvcHQgPSB4Y2hnKChfX2ZvcmNl IHN0cnVjdCBpcF9vcHRpb25zX3JjdSAqKikmcmVxX2luZXQtPmlyZXFfb3B0LCBvcHQpOwogCWlm IChvcHQpCiAJCWtmcmVlX3JjdShvcHQsIHJjdSk7CiAKQEAgLTE5NzMsMTEgKzE5NzMsMTMgQEAg aW50IGNpcHNvX3Y0X3JlcV9zZXRhdHRyKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKICAqIHZh bHVlcyBvbiBmYWlsdXJlLgogICoKICAqLwotc3RhdGljIGludCBjaXBzb192NF9kZWxvcHQoc3Ry dWN0IGlwX29wdGlvbnNfcmN1ICoqb3B0X3B0cikKK3N0YXRpYyBpbnQgY2lwc29fdjRfZGVsb3B0 KHN0cnVjdCBpcF9vcHRpb25zX3JjdSBfX3JjdSAqKm9wdF9wdHIpCiB7CisJc3RydWN0IGlwX29w dGlvbnNfcmN1ICpvcHQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpvcHRfcHRyLCAxKTsK IAlpbnQgaGRyX2RlbHRhID0gMDsKLQlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9wdCA9ICpvcHRf cHRyOwogCisJaWYgKCFvcHQgfHwgb3B0LT5vcHQuY2lwc28gPT0gMCkKKwkJcmV0dXJuIDA7CiAJ aWYgKG9wdC0+b3B0LnNyciB8fCBvcHQtPm9wdC5yciB8fCBvcHQtPm9wdC50cyB8fCBvcHQtPm9w dC5yb3V0ZXJfYWxlcnQpIHsKIAkJdTggY2lwc29fbGVuOwogCQl1OCBjaXBzb19vZmY7CkBAIC0y MDM5LDE0ICsyMDQxLDEwIEBAIHN0YXRpYyBpbnQgY2lwc29fdjRfZGVsb3B0KHN0cnVjdCBpcF9v cHRpb25zX3JjdSAqKm9wdF9wdHIpCiAgKi8KIHZvaWQgY2lwc29fdjRfc29ja19kZWxhdHRyKHN0 cnVjdCBzb2NrICpzaykKIHsKLQlpbnQgaGRyX2RlbHRhOwotCXN0cnVjdCBpcF9vcHRpb25zX3Jj dSAqb3B0OwogCXN0cnVjdCBpbmV0X3NvY2sgKnNrX2luZXQ7CisJaW50IGhkcl9kZWx0YTsKIAog CXNrX2luZXQgPSBpbmV0X3NrKHNrKTsKLQlvcHQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVk KHNrX2luZXQtPmluZXRfb3B0LCAxKTsKLQlpZiAoIW9wdCB8fCBvcHQtPm9wdC5jaXBzbyA9PSAw KQotCQlyZXR1cm47CiAKIAloZHJfZGVsdGEgPSBjaXBzb192NF9kZWxvcHQoJnNrX2luZXQtPmlu ZXRfb3B0KTsKIAlpZiAoc2tfaW5ldC0+aXNfaWNzayAmJiBoZHJfZGVsdGEgPiAwKSB7CkBAIC0y MDY2LDE1ICsyMDY0LDcgQEAgdm9pZCBjaXBzb192NF9zb2NrX2RlbGF0dHIoc3RydWN0IHNvY2sg KnNrKQogICovCiB2b2lkIGNpcHNvX3Y0X3JlcV9kZWxhdHRyKHN0cnVjdCByZXF1ZXN0X3NvY2sg KnJlcSkKIHsKLQlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9wdDsKLQlzdHJ1Y3QgaW5ldF9yZXF1 ZXN0X3NvY2sgKnJlcV9pbmV0OwotCi0JcmVxX2luZXQgPSBpbmV0X3JzayhyZXEpOwotCW9wdCA9 IHJlcV9pbmV0LT5vcHQ7Ci0JaWYgKCFvcHQgfHwgb3B0LT5vcHQuY2lwc28gPT0gMCkKLQkJcmV0 dXJuOwotCi0JY2lwc29fdjRfZGVsb3B0KCZyZXFfaW5ldC0+b3B0KTsKKwljaXBzb192NF9kZWxv cHQoJmluZXRfcnNrKHJlcSktPmlyZXFfb3B0KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3Nv Y2suYwppbmRleCA0MDg5YzAxM2NiMDMuLmNlNDcwOWIyODE4ZCAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaW5ldF9jb25uZWN0aW9uX3NvY2suYworKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25f c29jay5jCkBAIC01MzcsOSArNTM3LDEwIEBAIHN0cnVjdCBkc3RfZW50cnkgKmluZXRfY3NrX3Jv dXRlX3JlcShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiB7CiAJY29uc3Qgc3RydWN0IGluZXRfcmVx dWVzdF9zb2NrICppcmVxID0gaW5ldF9yc2socmVxKTsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSByZWFk X3BuZXQoJmlyZXEtPmlyZXFfbmV0KTsKLQlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9wdCA9IGly ZXEtPm9wdDsKKwlzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKm9wdDsKIAlzdHJ1Y3QgcnRhYmxlICpy dDsKIAorCW9wdCA9IHJjdV9kZXJlZmVyZW5jZShpcmVxLT5pcmVxX29wdCk7CiAJZmxvd2k0X2lu aXRfb3V0cHV0KGZsNCwgaXJlcS0+aXJfaWlmLCBpcmVxLT5pcl9tYXJrLAogCQkJICAgUlRfQ09O Tl9GTEFHUyhzayksIFJUX1NDT1BFX1VOSVZFUlNFLAogCQkJICAgc2stPnNrX3Byb3RvY29sLCBp bmV0X3NrX2Zsb3dpX2ZsYWdzKHNrKSwKQEAgLTU3MywxMCArNTc0LDkgQEAgc3RydWN0IGRzdF9l bnRyeSAqaW5ldF9jc2tfcm91dGVfY2hpbGRfc29jayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJ c3RydWN0IGZsb3dpNCAqZmw0OwogCXN0cnVjdCBydGFibGUgKnJ0OwogCisJb3B0ID0gcmN1X2Rl cmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KTsKIAlmbDQgPSAmbmV3aW5ldC0+Y29yay5mbC51Lmlw NDsKIAotCXJjdV9yZWFkX2xvY2soKTsKLQlvcHQgPSByY3VfZGVyZWZlcmVuY2UobmV3aW5ldC0+ aW5ldF9vcHQpOwogCWZsb3dpNF9pbml0X291dHB1dChmbDQsIGlyZXEtPmlyX2lpZiwgaXJlcS0+ aXJfbWFyaywKIAkJCSAgIFJUX0NPTk5fRkxBR1Moc2spLCBSVF9TQ09QRV9VTklWRVJTRSwKIAkJ CSAgIHNrLT5za19wcm90b2NvbCwgaW5ldF9za19mbG93aV9mbGFncyhzayksCkBAIC01ODksMTMg KzU4OSwxMSBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0X2Nza19yb3V0ZV9jaGlsZF9zb2NrKGNv bnN0IHN0cnVjdCBzb2NrICpzaywKIAkJZ290byBub19yb3V0ZTsKIAlpZiAob3B0ICYmIG9wdC0+ b3B0LmlzX3N0cmljdHJvdXRlICYmIHJ0LT5ydF91c2VzX2dhdGV3YXkpCiAJCWdvdG8gcm91dGVf ZXJyOwotCXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiAmcnQtPmRzdDsKIAogcm91dGVfZXJy OgogCWlwX3J0X3B1dChydCk7CiBub19yb3V0ZToKLQlyY3VfcmVhZF91bmxvY2soKTsKIAlfX0lQ X0lOQ19TVEFUUyhuZXQsIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsKIAlyZXR1cm4gTlVMTDsK IH0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5bmNvb2tpZXMuYyBiL25ldC9pcHY0L3N5bmNvb2tp ZXMuYwppbmRleCAwM2FkODc3OGMzOTUuLjBmOTE0ZmRhNWJmMyAxMDA2NDQKLS0tIGEvbmV0L2lw djQvc3luY29va2llcy5jCisrKyBiL25ldC9pcHY0L3N5bmNvb2tpZXMuYwpAQCAtMzU1LDcgKzM1 NSw3IEBAIHN0cnVjdCBzb2NrICpjb29raWVfdjRfY2hlY2soc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCS8qIFdlIHRocm93ZWQgdGhlIG9wdGlvbnMgb2YgdGhlIGluaXRp YWwgU1lOIGF3YXksIHNvIHdlIGhvcGUKIAkgKiB0aGUgQUNLIGNhcnJpZXMgdGhlIHNhbWUgb3B0 aW9ucyBhZ2FpbiAoc2VlIFJGQzExMjIgNC4yLjMuOCkKIAkgKi8KLQlpcmVxLT5vcHQgPSB0Y3Bf djRfc2F2ZV9vcHRpb25zKHNrYik7CisJUkNVX0lOSVRfUE9JTlRFUihpcmVxLT5pcmVxX29wdCwg dGNwX3Y0X3NhdmVfb3B0aW9ucyhza2IpKTsKIAogCWlmIChzZWN1cml0eV9pbmV0X2Nvbm5fcmVx dWVzdChzaywgc2tiLCByZXEpKSB7CiAJCXJlcXNrX2ZyZWUocmVxKTsKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggYmFiN2YwNDkz MDk4Li5lOTJlNWRiY2IzZDYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisrKyBi L25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC02MjM1LDcgKzYyMzUsNyBAQCBzdHJ1Y3QgcmVxdWVz dF9zb2NrICppbmV0X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2tfb3BzICpv cHMsCiAJCXN0cnVjdCBpbmV0X3JlcXVlc3Rfc29jayAqaXJlcSA9IGluZXRfcnNrKHJlcSk7CiAK IAkJa21lbWNoZWNrX2Fubm90YXRlX2JpdGZpZWxkKGlyZXEsIGZsYWdzKTsKLQkJaXJlcS0+b3B0 ID0gTlVMTDsKKwkJaXJlcS0+aXJlcV9vcHQgPSBOVUxMOwogI2lmIElTX0VOQUJMRUQoQ09ORklH X0lQVjYpCiAJCWlyZXEtPnBrdG9wdHMgPSBOVUxMOwogI2VuZGlmCmRpZmYgLS1naXQgYS9uZXQv aXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBiMTQ0MWJjODE5MmYu LmQ3ZWQ4ZGJkZTg1ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQv aXB2NC90Y3BfaXB2NC5jCkBAIC04NzgsNyArODc4LDcgQEAgc3RhdGljIGludCB0Y3BfdjRfc2Vu ZF9zeW5hY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsCiAK IAkJZXJyID0gaXBfYnVpbGRfYW5kX3NlbmRfcGt0KHNrYiwgc2ssIGlyZXEtPmlyX2xvY19hZGRy LAogCQkJCQkgICAgaXJlcS0+aXJfcm10X2FkZHIsCi0JCQkJCSAgICBpcmVxLT5vcHQpOworCQkJ CQkgICAgcmN1X2RlcmVmZXJlbmNlKGlyZXEtPmlyZXFfb3B0KSk7CiAJCWVyciA9IG5ldF94bWl0 X2V2YWwoZXJyKTsKIAl9CiAKQEAgLTg5MCw3ICs4OTAsNyBAQCBzdGF0aWMgaW50IHRjcF92NF9z ZW5kX3N5bmFjayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBkc3RfZW50cnkgKmRzdCwK ICAqLwogc3RhdGljIHZvaWQgdGNwX3Y0X3JlcXNrX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rf c29jayAqcmVxKQogewotCWtmcmVlKGluZXRfcnNrKHJlcSktPm9wdCk7CisJa2ZyZWUocmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZChpbmV0X3JzayhyZXEpLT5pcmVxX29wdCwgMSkpOwogfQogCiAj aWZkZWYgQ09ORklHX1RDUF9NRDVTSUcKQEAgLTEyNjksNyArMTI2OSw3IEBAIHN0YXRpYyB2b2lk IHRjcF92NF9pbml0X3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCiAKIAlza19yY3Zfc2Fk ZHJfc2V0KHJlcV90b19zayhyZXEpLCBpcF9oZHIoc2tiKS0+ZGFkZHIpOwogCXNrX2RhZGRyX3Nl dChyZXFfdG9fc2socmVxKSwgaXBfaGRyKHNrYiktPnNhZGRyKTsKLQlpcmVxLT5vcHQgPSB0Y3Bf djRfc2F2ZV9vcHRpb25zKHNrYik7CisJUkNVX0lOSVRfUE9JTlRFUihpcmVxLT5pcmVxX29wdCwg dGNwX3Y0X3NhdmVfb3B0aW9ucyhza2IpKTsKIH0KIAogc3RhdGljIHN0cnVjdCBkc3RfZW50cnkg KnRjcF92NF9yb3V0ZV9yZXEoY29uc3Qgc3RydWN0IHNvY2sgKnNrLApAQCAtMTM1NiwxMCArMTM1 Niw5IEBAIHN0cnVjdCBzb2NrICp0Y3BfdjRfc3luX3JlY3Zfc29jayhjb25zdCBzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJc2tfZGFkZHJfc2V0KG5ld3NrLCBpcmVxLT5p cl9ybXRfYWRkcik7CiAJc2tfcmN2X3NhZGRyX3NldChuZXdzaywgaXJlcS0+aXJfbG9jX2FkZHIp OwogCW5ld3NrLT5za19ib3VuZF9kZXZfaWYgPSBpcmVxLT5pcl9paWY7Ci0JbmV3aW5ldC0+aW5l dF9zYWRkcgkgICAgICA9IGlyZXEtPmlyX2xvY19hZGRyOwotCWluZXRfb3B0CSAgICAgID0gaXJl cS0+b3B0OwotCXJjdV9hc3NpZ25fcG9pbnRlcihuZXdpbmV0LT5pbmV0X29wdCwgaW5ldF9vcHQp OwotCWlyZXEtPm9wdAkgICAgICA9IE5VTEw7CisJbmV3aW5ldC0+aW5ldF9zYWRkciAgID0gaXJl cS0+aXJfbG9jX2FkZHI7CisJaW5ldF9vcHQJICAgICAgPSByY3VfZGVyZWZlcmVuY2UoaXJlcS0+ aXJlcV9vcHQpOworCVJDVV9JTklUX1BPSU5URVIobmV3aW5ldC0+aW5ldF9vcHQsIGluZXRfb3B0 KTsKIAluZXdpbmV0LT5tY19pbmRleCAgICAgPSBpbmV0X2lpZihza2IpOwogCW5ld2luZXQtPm1j X3R0bAkgICAgICA9IGlwX2hkcihza2IpLT50dGw7CiAJbmV3aW5ldC0+cmN2X3RvcyAgICAgID0g aXBfaGRyKHNrYiktPnRvczsKQEAgLTE0MDQsOSArMTQwMywxMiBAQCBzdHJ1Y3Qgc29jayAqdGNw X3Y0X3N5bl9yZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAogCWlmIChfX2luZXRfaW5oZXJpdF9wb3J0KHNrLCBuZXdzaykgPCAwKQogCQlnb3RvIHB1 dF9hbmRfZXhpdDsKIAkqb3duX3JlcSA9IGluZXRfZWhhc2hfbm9saXN0ZW4obmV3c2ssIHJlcV90 b19zayhyZXFfdW5oYXNoKSk7Ci0JaWYgKCpvd25fcmVxKQorCWlmIChsaWtlbHkoKm93bl9yZXEp KSB7CiAJCXRjcF9tb3ZlX3N5bihuZXd0cCwgcmVxKTsKLQorCQlpcmVxLT5pcmVxX29wdCA9IE5V TEw7CisJfSBlbHNlIHsKKwkJbmV3aW5ldC0+aW5ldF9vcHQgPSBOVUxMOworCX0KIAlyZXR1cm4g bmV3c2s7CiAKIGV4aXRfb3ZlcmZsb3c6CkBAIC0xNDE3LDYgKzE0MTksNyBAQCBzdHJ1Y3Qgc29j ayAqdGNwX3Y0X3N5bl9yZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCXRjcF9saXN0ZW5kcm9wKHNrKTsKIAlyZXR1cm4gTlVMTDsKIHB1dF9hbmRf ZXhpdDoKKwluZXdpbmV0LT5pbmV0X29wdCA9IE5VTEw7CiAJaW5ldF9jc2tfcHJlcGFyZV9mb3Jj ZWRfY2xvc2UobmV3c2spOwogCXRjcF9kb25lKG5ld3NrKTsKIAlnb3RvIGV4aXQ7Ci0tIAoyLjEz LjYKCgpGcm9tIDNiMzgyZTNhY2FhNzNkNTY2ZWZjZDFiYTI0YWNmMzk3OTg3MGQ0OWEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogV2VkLCAxOCBPY3QgMjAxNyAxNjoxNDo1MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMzddIHBhY2tldDogYXZvaWQgcGFuaWMgaW4gcGFja2V0X2dldHNvY2tvcHQoKQoKWyBVcHN0 cmVhbSBjb21taXQgNTA5YzdhMWVjYzg2MDFmOTRmZmJhOGEwMDg4OWZlZmIyMzljMDBjNiBdCgpz eXprYWxsZXIgZ290IGNyYXNoZXMgaW4gcGFja2V0X2dldHNvY2tvcHQoKSBwcm9jZXNzaW5nClBB Q0tFVF9ST0xMT1ZFUl9TVEFUUyBjb21tYW5kIHdoaWxlIGFub3RoZXIgdGhyZWFkIHdhcyBtYW5h Z2luZwp0byBjaGFuZ2UgcG8tPnJvbGxvdmVyCgpVc2luZyBSQ1Ugd2lsbCBmaXggdGhpcyBidWcu IFdlIG1pZ2h0IGxhdGVyIGFkZCBwcm9wZXIgUkNVIGFubm90YXRpb25zCmZvciBzcGFyc2Ugc2Fr ZS4KCkluIHYyOiBJIHJlcGxhY2VkIGtmcmVlKHJvbGxvdmVyKSBpbiBmYW5vdXRfYWRkKCkgdG8g a2ZyZWVfcmN1KCkKdmFyaWFudCwgYXMgc3BvdHRlZCBieSBKb2huLgoKRml4ZXM6IGE5YjYzOTE4 MTRkNSAoInBhY2tldDogcm9sbG92ZXIgc3RhdGlzdGljcyIpClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxl bWJAZ29vZ2xlLmNvbT4KQ2M6IEpvaG4gU3BlcmJlY2sgPGpzcGVyYmVja0Bnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDI0ICsrKysrKysrKysrKysrKystLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXgg MjlkN2I3ZTViMTI4Li5iMGM4ZmVlM2Q1M2QgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFj a2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMTc3MSw3ICsxNzcxLDcgQEAg c3RhdGljIGludCBmYW5vdXRfYWRkKHN0cnVjdCBzb2NrICpzaywgdTE2IGlkLCB1MTYgdHlwZV9m bGFncykKIAogb3V0OgogCWlmIChlcnIgJiYgcm9sbG92ZXIpIHsKLQkJa2ZyZWUocm9sbG92ZXIp OworCQlrZnJlZV9yY3Uocm9sbG92ZXIsIHJjdSk7CiAJCXBvLT5yb2xsb3ZlciA9IE5VTEw7CiAJ fQogCW11dGV4X3VubG9jaygmZmFub3V0X211dGV4KTsKQEAgLTE3OTgsOCArMTc5OCwxMCBAQCBz dGF0aWMgc3RydWN0IHBhY2tldF9mYW5vdXQgKmZhbm91dF9yZWxlYXNlKHN0cnVjdCBzb2NrICpz aykKIAkJZWxzZQogCQkJZiA9IE5VTEw7CiAKLQkJaWYgKHBvLT5yb2xsb3ZlcikKKwkJaWYgKHBv LT5yb2xsb3ZlcikgewogCQkJa2ZyZWVfcmN1KHBvLT5yb2xsb3ZlciwgcmN1KTsKKwkJCXBvLT5y b2xsb3ZlciA9IE5VTEw7CisJCX0KIAl9CiAJbXV0ZXhfdW5sb2NrKCZmYW5vdXRfbXV0ZXgpOwog CkBAIC0zODUzLDYgKzM4NTUsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0KHN0cnVj dCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJdm9pZCAqZGF0YSA9ICZ2 YWw7CiAJdW5pb24gdHBhY2tldF9zdGF0c191IHN0OwogCXN0cnVjdCB0cGFja2V0X3JvbGxvdmVy X3N0YXRzIHJzdGF0czsKKwlzdHJ1Y3QgcGFja2V0X3JvbGxvdmVyICpyb2xsb3ZlcjsKIAogCWlm IChsZXZlbCAhPSBTT0xfUEFDS0VUKQogCQlyZXR1cm4gLUVOT1BST1RPT1BUOwpAQCAtMzkzMSwx MyArMzkzNCwxOCBAQCBzdGF0aWMgaW50IHBhY2tldF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQg KnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCSAgICAgICAwKTsKIAkJYnJlYWs7CiAJ Y2FzZSBQQUNLRVRfUk9MTE9WRVJfU1RBVFM6Ci0JCWlmICghcG8tPnJvbGxvdmVyKQorCQlyY3Vf cmVhZF9sb2NrKCk7CisJCXJvbGxvdmVyID0gcmN1X2RlcmVmZXJlbmNlKHBvLT5yb2xsb3Zlcik7 CisJCWlmIChyb2xsb3ZlcikgeworCQkJcnN0YXRzLnRwX2FsbCA9IGF0b21pY19sb25nX3JlYWQo JnJvbGxvdmVyLT5udW0pOworCQkJcnN0YXRzLnRwX2h1Z2UgPSBhdG9taWNfbG9uZ19yZWFkKCZy b2xsb3Zlci0+bnVtX2h1Z2UpOworCQkJcnN0YXRzLnRwX2ZhaWxlZCA9IGF0b21pY19sb25nX3Jl YWQoJnJvbGxvdmVyLT5udW1fZmFpbGVkKTsKKwkJCWRhdGEgPSAmcnN0YXRzOworCQkJbHYgPSBz aXplb2YocnN0YXRzKTsKKwkJfQorCQlyY3VfcmVhZF91bmxvY2soKTsKKwkJaWYgKCFyb2xsb3Zl cikKIAkJCXJldHVybiAtRUlOVkFMOwotCQlyc3RhdHMudHBfYWxsID0gYXRvbWljX2xvbmdfcmVh ZCgmcG8tPnJvbGxvdmVyLT5udW0pOwotCQlyc3RhdHMudHBfaHVnZSA9IGF0b21pY19sb25nX3Jl YWQoJnBvLT5yb2xsb3Zlci0+bnVtX2h1Z2UpOwotCQlyc3RhdHMudHBfZmFpbGVkID0gYXRvbWlj X2xvbmdfcmVhZCgmcG8tPnJvbGxvdmVyLT5udW1fZmFpbGVkKTsKLQkJZGF0YSA9ICZyc3RhdHM7 Ci0JCWx2ID0gc2l6ZW9mKHJzdGF0cyk7CiAJCWJyZWFrOwogCWNhc2UgUEFDS0VUX1RYX0hBU19P RkY6CiAJCXZhbCA9IHBvLT50cF90eF9oYXNfb2ZmOwotLSAKMi4xMy42CgoKRnJvbSA1MjBkMTVi NGZhOTA4MmUxZTBiZDRmZmVlMmNiNTk1MGY1YzRhZTM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDE5 IE9jdCAyMDE3IDEzOjMxOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8zN10gZ2VuZXZlOiBG aXggZnVuY3Rpb24gbWF0Y2hpbmcgVk5JIGFuZCB0dW5uZWwgSUQgb24KIGJpZy1lbmRpYW4KClsg VXBzdHJlYW0gY29tbWl0IDc3MmU5N2I1N2E0YWEwMDE3MGFkNTA1YTQwZmZhZDMxZDk4N2NlMWQg XQoKT24gYmlnLWVuZGlhbiBtYWNoaW5lcywgZnVuY3Rpb25zIGNvbnZlcnRpbmcgYmV0d2VlbiB0 dW5uZWwgSUQKYW5kIFZOSSB1c2UgdGhlIHRocmVlIExTQnMgb2YgdHVubmVsIElEIHN0b3JhZ2Ug dG8gbWFwIFZOSS4KClRoZSBjb21wYXJpc29uIGZ1bmN0aW9uIGVxX3R1bl9pZF9hbmRfdm5pKCks IG9uIHRoZSBvdGhlciBoYW5kLAphdHRlbXB0ZWQgdG8gbWFwIHRoZSBWTkkgZnJvbSB0aGUgdGhy ZWUgTVNCcy4gRml4IGl0IGJ5IHVzaW5nCnRoZSBzYW1lIGNoZWNrIGltcGxlbWVudGVkIG9uIExF LCB3aGljaCBtYXBzIFZOSSBmcm9tIHRoZSB0aHJlZQpMU0JzIG9mIHR1bm5lbCBJRC4KCkZpeGVz OiAyZTBiMjZlMTAzNTIgKCJnZW5ldmU6IE9wdGltaXplIGdlbmV2ZSBkZXZpY2UgbG9va3VwLiIp ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+ClJldmll d2VkLWJ5OiBKYWt1YiBTaXRuaWNraSA8amtic0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZ2Vu ZXZlLmMgfCA2IC0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCAy YmJkYTcxODE4YWQuLmUwYTcxNzZlMWQzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZl LmMKKysrIGIvZHJpdmVycy9uZXQvZ2VuZXZlLmMKQEAgLTExMywxMyArMTEzLDcgQEAgc3RhdGlj IHZvaWQgdHVubmVsX2lkX3RvX3ZuaShfX2JlNjQgdHVuX2lkLCBfX3U4ICp2bmkpCiAKIHN0YXRp YyBib29sIGVxX3R1bl9pZF9hbmRfdm5pKHU4ICp0dW5faWQsIHU4ICp2bmkpCiB7Ci0jaWZkZWYg X19CSUdfRU5ESUFOCi0JcmV0dXJuICh2bmlbMF0gPT0gdHVuX2lkWzJdKSAmJgotCSAgICAgICAo dm5pWzFdID09IHR1bl9pZFsxXSkgJiYKLQkgICAgICAgKHZuaVsyXSA9PSB0dW5faWRbMF0pOwot I2Vsc2UKIAlyZXR1cm4gIW1lbWNtcCh2bmksICZ0dW5faWRbNV0sIDMpOwotI2VuZGlmCiB9CiAK IHN0YXRpYyBzYV9mYW1pbHlfdCBnZW5ldmVfZ2V0X3NrX2ZhbWlseShzdHJ1Y3QgZ2VuZXZlX3Nv Y2sgKmdzKQotLSAKMi4xMy42CgoKRnJvbSA4MTk4Nzc0YTNkZDc1ZDIwMGY2MWQyMmQ2MmM2Y2Mw NjM3Mzc1ZWZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5k cm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFRodSwgMTkgT2N0IDIwMTcg MjA6MTc6MzIgKzAzMDAKU3ViamVjdDogW1BBVENIIDE1LzM3XSBuZXQ6IGJyaWRnZTogZml4IHJl dHVybmluZyBvZiB2bGFuIHJhbmdlIG9wIGVycm9ycwoKWyBVcHN0cmVhbSBjb21taXQgNjZjNTQ1 MTc1NDBjZWRmNWEyMjkxMWM2YjdmNWM3ZDhiNWQxZTFiZSBdCgpXaGVuIHZsYW4gdHVubmVscyB3 ZXJlIGludHJvZHVjZWQsIHZsYW4gcmFuZ2UgZXJyb3JzIGdvdCBzaWxlbnRseQpkcm9wcGVkIGFu ZCBpbnN0ZWFkIDAgd2FzIHJldHVybmVkIGFsd2F5cy4gUmVzdG9yZSB0aGUgcHJldmlvdXMKYmVo YXZpb3VyIGFuZCByZXR1cm4gZXJyb3JzIHRvIHVzZXItc3BhY2UuCgpGaXhlczogZWZhNTM1NmIw ZDk3ICgiYnJpZGdlOiBwZXIgdmxhbiBkc3RfbWV0YWRhdGEgbmV0bGluayBzdXBwb3J0IikKU2ln bmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3Mu Y29tPgpBY2tlZC1ieTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2JyaWRnZS9icl9uZXRsaW5rLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX25ldGxpbmsu YyBiL25ldC9icmlkZ2UvYnJfbmV0bGluay5jCmluZGV4IDNiYzg5MDcxNmM4OS4uZGUyMTUyNzMw ODA5IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYworKysgYi9uZXQvYnJpZGdl L2JyX25ldGxpbmsuYwpAQCAtNTczLDcgKzU3Myw3IEBAIHN0YXRpYyBpbnQgYnJfcHJvY2Vzc192 bGFuX2luZm8oc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCQl9CiAJCSp2aW5mb19sYXN0ID0gTlVM TDsKIAotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIGVycjsKIAl9CiAKIAlyZXR1cm4gYnJfdmxhbl9p bmZvKGJyLCBwLCBjbWQsIHZpbmZvX2N1cnIpOwotLSAKMi4xMy42CgoKRnJvbSA4M2NhNDE3YmFj Mjc5M2Y1ZGY3NzE4MDhkYjc2YWVlYTZiNWI1ZTlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBDcmFpZyBHYWxsZWsgPGtyYWlnQGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMTkgT2N0IDIw MTcgMTU6MDA6MjkgLTA0MDAKU3ViamVjdDogW1BBVENIIDE2LzM3XSBzb3JldXNlcG9ydDogZml4 IGluaXRpYWxpemF0aW9uIHJhY2UKClsgVXBzdHJlYW0gY29tbWl0IDFiNWY5NjJlNzFiZmFkNjI4 NDU3NDY1NWM0MDY1OTc1MzVjM2VhN2EgXQoKU3l6a2FsbGVyIHN0dW1ibGVkIHVwb24gYSB3YXkg dG8gdHJpZ2dlcgpXQVJOSU5HOiBDUFU6IDEgUElEOiAxMzg4MSBhdCBuZXQvY29yZS9zb2NrX3Jl dXNlcG9ydC5jOjQxCnJldXNlcG9ydF9hbGxvYysweDMwNi8weDNiMCBuZXQvY29yZS9zb2NrX3Jl dXNlcG9ydC5jOjM5CgpUaGVyZSBhcmUgdHdvIGluaXRpYWxpemF0aW9uIHBhdGhzIGZvciB0aGUg c29ja19yZXVzZXBvcnQgc3RydWN0dXJlIGluIGEKc29ja2V0OiBUaHJvdWdoIHRoZSB1ZHAvdGNw IGJpbmQgcGF0aHMgb2YgU09fUkVVU0VQT1JUIHNvY2tldHMgb3IgdGhyb3VnaApTT19BVFRBQ0hf UkVVU0VQT1JUX1tDRV1CUEYgYmVmb3JlIGJpbmQuICBUaGUgZXhpc3RpbmcgaW1wbGVtZW50YXRp b24KYXNzdW1lZHRoYXQgdGhlIHNvY2tldCBsb2NrIHByb3RlY3RlZCBib3RoIG9mIHRoZXNlIHBh dGhzIHdoZW4gaXQgYWN0dWFsbHkKb25seSBwcm90ZWN0cyB0aGUgU09fQVRUQUNIX1JFVVNFUE9S VCBwYXRoLiAgU3l6a2FsbGVyIHRyaWdnZXJlZCB0aGlzCmRvdWJsZSBhbGxvY2F0aW9uIGJ5IHJ1 bm5pbmcgdGhlc2UgcGF0aHMgY29uY3VycmVudGx5LgoKVGhpcyBwYXRjaCBtb3ZlcyB0aGUgY2hl Y2sgZm9yIGRvdWJsZSBhbGxvY2F0aW9uIGludG8gdGhlIHJldXNlcG9ydF9hbGxvYwpmdW5jdGlv biB3aGljaCBpcyBwcm90ZWN0ZWQgYnkgYSBnbG9iYWwgc3BpbiBsb2NrLgoKRml4ZXM6IGUzMmVh N2U3NDcyNyAoInNvcmV1c2Vwb3J0OiBmYXN0IHJldXNlcG9ydCBVRFAgc29ja2V0IHNlbGVjdGlv biIpCkZpeGVzOiBjMTI1ZTgwYjg4NjggKCJzb3JldXNlcG9ydDogZmFzdCByZXVzZXBvcnQgVENQ IHNvY2tldCBzZWxlY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBDcmFpZyBHYWxsZWsgPGtyYWlnQGdv b2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jICB8IDEyICsrKysrKysrKy0tLQog bmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMgfCAgNSArLS0tLQogbmV0L2lwdjQvdWRwLmMgICAg ICAgICAgICAgfCAgNSArLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAx MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jIGIv bmV0L2NvcmUvc29ja19yZXVzZXBvcnQuYwppbmRleCBlZWQxZWJmN2YyOWQuLmIxZTBkYmVhMWU4 YyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29ja19yZXVzZXBvcnQuYworKysgYi9uZXQvY29yZS9z b2NrX3JldXNlcG9ydC5jCkBAIC0zNiw5ICszNiwxNCBAQCBpbnQgcmV1c2Vwb3J0X2FsbG9jKHN0 cnVjdCBzb2NrICpzaykKIAkgKiBzb2Z0IGlycSBvZiByZWNlaXZlIHBhdGggb3Igc2V0c29ja29w dCBmcm9tIHByb2Nlc3MgY29udGV4dAogCSAqLwogCXNwaW5fbG9ja19iaCgmcmV1c2Vwb3J0X2xv Y2spOwotCVdBUk5fT05DRShyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHNrLT5za19yZXVzZXBv cnRfY2IsCi0JCQkJCSAgICBsb2NrZGVwX2lzX2hlbGQoJnJldXNlcG9ydF9sb2NrKSksCi0JCSAg Im11bHRpcGxlIGFsbG9jYXRpb25zIGZvciB0aGUgc2FtZSBzb2NrZXQiKTsKKworCS8qIEFsbG9j YXRpb24gYXR0ZW1wdHMgY2FuIG9jY3VyIGNvbmN1cnJlbnRseSB2aWEgdGhlIHNldHNvY2tvcHQg cGF0aAorCSAqIGFuZCB0aGUgYmluZC9oYXNoIHBhdGguICBOb3RoaW5nIHRvIGRvIHdoZW4gd2Ug bG9zZSB0aGUgcmFjZS4KKwkgKi8KKwlpZiAocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzay0+ c2tfcmV1c2Vwb3J0X2NiLAorCQkJCSAgICAgIGxvY2tkZXBfaXNfaGVsZCgmcmV1c2Vwb3J0X2xv Y2spKSkKKwkJZ290byBvdXQ7CisKIAlyZXVzZSA9IF9fcmV1c2Vwb3J0X2FsbG9jKElOSVRfU09D S1MpOwogCWlmICghcmV1c2UpIHsKIAkJc3Bpbl91bmxvY2tfYmgoJnJldXNlcG9ydF9sb2NrKTsK QEAgLTQ5LDYgKzU0LDcgQEAgaW50IHJldXNlcG9ydF9hbGxvYyhzdHJ1Y3Qgc29jayAqc2spCiAJ cmV1c2UtPm51bV9zb2NrcyA9IDE7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKHNrLT5za19yZXVzZXBv cnRfY2IsIHJldXNlKTsKIAorb3V0OgogCXNwaW5fdW5sb2NrX2JoKCZyZXVzZXBvcnRfbG9jayk7 CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jIGIv bmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMKaW5kZXggMmUzMzg5ZDYxNGQxLi4zZWVlY2VlMGIy MWYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCisrKyBiL25ldC9pcHY0 L2luZXRfaGFzaHRhYmxlcy5jCkBAIC00NDksMTAgKzQ0OSw3IEBAIHN0YXRpYyBpbnQgaW5ldF9y ZXVzZXBvcnRfYWRkX3NvY2soc3RydWN0IHNvY2sgKnNrLAogCQkJcmV0dXJuIHJldXNlcG9ydF9h ZGRfc29jayhzaywgc2syKTsKIAl9CiAKLQkvKiBJbml0aWFsIGFsbG9jYXRpb24gbWF5IGhhdmUg YWxyZWFkeSBoYXBwZW5lZCB2aWEgc2V0c29ja29wdCAqLwotCWlmICghcmN1X2FjY2Vzc19wb2lu dGVyKHNrLT5za19yZXVzZXBvcnRfY2IpKQotCQlyZXR1cm4gcmV1c2Vwb3J0X2FsbG9jKHNrKTsK LQlyZXR1cm4gMDsKKwlyZXR1cm4gcmV1c2Vwb3J0X2FsbG9jKHNrKTsKIH0KIAogaW50IF9faW5l dF9oYXNoKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKm9zaykKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggODQ4NjFkNzFmYWNlLi5mOWUxYmNm YjZlMmQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBA IC0yMzEsMTAgKzIzMSw3IEBAIHN0YXRpYyBpbnQgdWRwX3JldXNlcG9ydF9hZGRfc29jayhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCB1ZHBfaHNsb3QgKmhzbG90KQogCQl9CiAJfQogCi0JLyogSW5p dGlhbCBhbGxvY2F0aW9uIG1heSBoYXZlIGFscmVhZHkgaGFwcGVuZWQgdmlhIHNldHNvY2tvcHQg Ki8KLQlpZiAoIXJjdV9hY2Nlc3NfcG9pbnRlcihzay0+c2tfcmV1c2Vwb3J0X2NiKSkKLQkJcmV0 dXJuIHJldXNlcG9ydF9hbGxvYyhzayk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHJldXNlcG9ydF9h bGxvYyhzayk7CiB9CiAKIC8qKgotLSAKMi4xMy42CgoKRnJvbSBkY2Y0NDc4ODQxYjNlODZiMzJj ODI1NzJmY2VjZGUyZTllZDIzZWI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTI6 MjY6MjMgLTA3MDAKU3ViamVjdDogW1BBVENIIDE3LzM3XSBpcHY2OiBmbG93bGFiZWw6IGRvIG5v dCBsZWF2ZSBvcHQtPnRvdF9sZW4gd2l0aCBnYXJiYWdlCgpbIFVwc3RyZWFtIGNvbW1pdCA4NjRl MmExZjhhYWMwNWVmZmFjNjA2M2NlMzE2YjQ4MGZhY2I0NmZmIF0KCldoZW4gc3l6a2FsbGVyIHRl YW0gYnJvdWdodCB1cyBhIEMgcmVwcm8gZm9yIHRoZSBjcmFzaCBbMV0gdGhhdApoYWQgYmVlbiBy ZXBvcnRlZCBtYW55IHRpbWVzIGluIHRoZSBwYXN0LCBJIGZpbmFsbHkgY291bGQgZmluZAp0aGUg cm9vdCBjYXVzZS4KCklmIEZsb3dMYWJlbCBpbmZvIGlzIG1lcmdlZCBieSBmbDZfbWVyZ2Vfb3B0 aW9ucygpLCB3ZSBsZWF2ZQpwYXJ0IG9mIHRoZSBvcHRfc3BhY2Ugc3RvcmFnZSBwcm92aWRlZCBi eSB1ZHAvcmF3L2wydHAgd2l0aCByYW5kb20gdmFsdWUKaW4gb3B0X3NwYWNlLnRvdF9sZW4sIHVu bGVzcyBhIGNvbnRyb2wgbWVzc2FnZSB3YXMgcHJvdmlkZWQgYXQgc2VuZG1zZygpCnRpbWUuCgpU aGVuIGlwNl9zZXR1cF9jb3JrKCkgd291bGQgdXNlIHRoaXMgcmFuZG9tIHZhbHVlIHRvIHBlcmZv cm0gYSBremFsbG9jKCkKY2FsbC4gVW5kZWZpbmVkIGJlaGF2aW9yIGFuZCBjcmFzaGVzLgoKRml4 IGlzIHRvIHByb3Blcmx5IHNldCB0b3RfbGVuIGluIGZsNl9tZXJnZV9vcHRpb25zKCkKCkF0IHRo ZSBzYW1lIHRpbWUsIHdlIGNhbiBhbHNvIGF2b2lkIGNvbnN1bWluZyBtZW1vcnkgYW5kIGNwdSBj eWNsZXMKdG8gY2xlYXIgaXQsIGlmIGV2ZXJ5IG9wdGlvbiBpcyBjb3BpZWQgdmlhIGEga21lbWR1 cCgpLiBUaGlzIGlzIHRoZQpjaGFuZ2UgaW4gaXA2X3NldHVwX2NvcmsoKS4KClsxXQprYXNhbjog Q09ORklHX0tBU0FOX0lOTElORSBlbmFibGVkCmthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5 IE5VTEwtcHRyIGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2VzcwpnZW5lcmFsIHByb3RlY3Rpb24g ZmF1bHQ6IDAwMDAgWyMxXSBTTVAgS0FTQU4KRHVtcGluZyBmdHJhY2UgYnVmZmVyOgogICAoZnRy YWNlIGJ1ZmZlciBlbXB0eSkKTW9kdWxlcyBsaW5rZWQgaW46CkNQVTogMCBQSUQ6IDY2MTMgQ29t bTogc3l6LWV4ZWN1dG9yMCBOb3QgdGFpbnRlZCA0LjE0LjAtcmM0KyAjMTI3CkhhcmR3YXJlIG5h bWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBC SU9TIEdvb2dsZSAwMS8wMS8yMDExCnRhc2s6IGZmZmY4ODAxY2I2NGExMDAgdGFzay5zdGFjazog ZmZmZjg4MDFjYzM1MDAwMApSSVA6IDAwMTA6aXA2X3NldHVwX2NvcmsrMHgyNzQvMHgxNWMwIG5l dC9pcHY2L2lwNl9vdXRwdXQuYzoxMTY4ClJTUDogMDAxODpmZmZmODgwMWNjMzU3NTUwIEVGTEFH UzogMDAwMTAyMDMKUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogZmZmZjg4MDFjYzM1Nzc0OCBS Q1g6IDAwMDAwMDAwMDAwMDAwMTAKUkRYOiAwMDAwMDAwMDAwMDAwMDAyIFJTSTogZmZmZmZmZmY4 NDJiZDFkOSBSREk6IDAwMDAwMDAwMDAwMDAwMTQKUkJQOiBmZmZmODgwMWNjMzU3NjIwIFIwODog ZmZmZjg4MDFjYjE3ZjM4MCBSMDk6IGZmZmY4ODAxY2MzNTdiMTAKUjEwOiBmZmZmODgwMWNiNjRh MTAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ODAxY2MzNTdhYjAKUjEzOiBmZmZm ODgwMWNjMzU3YjEwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmY4ODAxYzNiYmYwYzAK RlM6ICAwMDAwN2Y5YzVjNDU5NzAwKDAwMDApIEdTOmZmZmY4ODAxZGIyMDAwMDAoMDAwMCkga25s R1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAw MDAwMDgwMDUwMDMzCkNSMjogMDAwMDAwMDAyMDMyNDAwMCBDUjM6IDAwMDAwMDAxZDFjZjIwMDAg Q1I0OiAwMDAwMDAwMDAwMTQwNmYwCkRSMDogMDAwMDAwMDAyMDAwMTAxMCBEUjE6IDAwMDAwMDAw MDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6 IDAwMDAwMDAwZmZmZjBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNjAwCkNhbGwgVHJhY2U6CiBpcDZf bWFrZV9za2IrMHgyODIvMHg1MzAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjE3MjkKIHVkcHY2X3Nl bmRtc2crMHgyNzY5LzB4MzM4MCBuZXQvaXB2Ni91ZHAuYzoxMzQwCiBpbmV0X3NlbmRtc2crMHgx MWYvMHg1ZTAgbmV0L2lwdjQvYWZfaW5ldC5jOjc2Mgogc29ja19zZW5kbXNnX25vc2VjIG5ldC9z b2NrZXQuYzo2MzMgW2lubGluZV0KIHNvY2tfc2VuZG1zZysweGNhLzB4MTEwIG5ldC9zb2NrZXQu Yzo2NDMKIFNZU0Nfc2VuZHRvKzB4MzU4LzB4NWEwIG5ldC9zb2NrZXQuYzoxNzUwCiBTeVNfc2Vu ZHRvKzB4NDAvMHg1MCBuZXQvc29ja2V0LmM6MTcxOAogZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0 aCsweDFmLzB4YmUKUklQOiAwMDMzOjB4NDUyMGE5ClJTUDogMDAyYjowMDAwN2Y5YzVjNDU4YzA4 IEVGTEFHUzogMDAwMDAyMTYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmMKUkFYOiBmZmZmZmZm ZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDcxODAwMCBSQ1g6IDAwMDAwMDAwMDA0NTIwYTkKUkRY OiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAyMGZkMTAwMCBSREk6IDAwMDAwMDAwMDAw MDAwMTYKUkJQOiAwMDAwMDAwMDAwMDAwMDg2IFIwODogMDAwMDAwMDAyMGUwYWZlNCBSMDk6IDAw MDAwMDAwMDAwMDAwMWMKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDIx NiBSMTI6IDAwMDAwMDAwMDA0YmIxZWUKUjEzOiAwMDAwMDAwMGZmZmZmZmZmIFIxNDogMDAwMDAw MDAwMDAwMDAxNiBSMTU6IDAwMDAwMDAwMDAwMDAwMjkKQ29kZTogZTAgMDcgODMgYzAgMDMgMzgg ZDAgN2MgMDggODQgZDIgMGYgODUgZWEgMGYgMDAgMDAgNDggOGQgNzkgMDQgNDggYjggMDAgMDAg MDAgMDAgMDAgZmMgZmYgZGYgNDUgOGIgNzQgMjQgMDQgNDggODkgZmEgNDggYzEgZWEgMDMgPDBm PiBiNiAxNCAwMiA0OCA4OSBmOCA4MyBlMCAwNyA4MyBjMCAwMyAzOCBkMCA3YyAwOCA4NCBkMiAw ZiA4NQpSSVA6IGlwNl9zZXR1cF9jb3JrKzB4Mjc0LzB4MTVjMCBuZXQvaXB2Ni9pcDZfb3V0cHV0 LmM6MTE2OCBSU1A6IGZmZmY4ODAxY2MzNTc1NTAKClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVr b3ZAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9mbG93bGFiZWwuYyB8IDEgKwogbmV0L2lwdjYv aXA2X291dHB1dC5jICAgIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMg Yi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKaW5kZXggODA4MWJhZmU0NDFiLi4xNTUzNWVlMzI3 YzUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9mbG93bGFiZWwuYworKysgYi9uZXQvaXB2Ni9p cDZfZmxvd2xhYmVsLmMKQEAgLTMxNSw2ICszMTUsNyBAQCBzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMg KmZsNl9tZXJnZV9vcHRpb25zKHN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0X3NwYWNlLAogCX0K IAlvcHRfc3BhY2UtPmRzdDFvcHQgPSBmb3B0LT5kc3Qxb3B0OwogCW9wdF9zcGFjZS0+b3B0X2Zs ZW4gPSBmb3B0LT5vcHRfZmxlbjsKKwlvcHRfc3BhY2UtPnRvdF9sZW4gPSBmb3B0LT50b3RfbGVu OwogCXJldHVybiBvcHRfc3BhY2U7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChmbDZfbWVyZ2Vfb3B0 aW9ucyk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZf b3V0cHV0LmMKaW5kZXggMmRmZTUwZDhkNjA5Li4zY2U5YWIyOWJkMzcgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKQEAgLTEyMjQs MTEgKzEyMjQsMTEgQEAgc3RhdGljIGludCBpcDZfc2V0dXBfY29yayhzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBpbmV0X2NvcmtfZnVsbCAqY29yaywKIAkJaWYgKFdBUk5fT04odjZfY29yay0+b3B0 KSkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCXY2X2NvcmstPm9wdCA9IGt6YWxsb2Mob3B0LT50 b3RfbGVuLCBzay0+c2tfYWxsb2NhdGlvbik7CisJCXY2X2NvcmstPm9wdCA9IGt6YWxsb2Moc2l6 ZW9mKCpvcHQpLCBzay0+c2tfYWxsb2NhdGlvbik7CiAJCWlmICh1bmxpa2VseSghdjZfY29yay0+ b3B0KSkKIAkJCXJldHVybiAtRU5PQlVGUzsKIAotCQl2Nl9jb3JrLT5vcHQtPnRvdF9sZW4gPSBv cHQtPnRvdF9sZW47CisJCXY2X2NvcmstPm9wdC0+dG90X2xlbiA9IHNpemVvZigqb3B0KTsKIAkJ djZfY29yay0+b3B0LT5vcHRfZmxlbiA9IG9wdC0+b3B0X2ZsZW47CiAJCXY2X2NvcmstPm9wdC0+ b3B0X25mbGVuID0gb3B0LT5vcHRfbmZsZW47CiAKLS0gCjIuMTMuNgoKCkZyb20gMjI5YWUwNjI5 MmQ1ZWI2M2Y1NmJiZjY2Y2M4NGU4ODAyZTkwMTRmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTGFzemxvIFRvdGggPGxhc3psdGhAZ21haWwuY29tPgpEYXRlOiBNb24sIDIzIE9jdCAy MDE3IDE5OjE5OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOC8zN10gc2N0cDogZnVsbCBzdXBw b3J0IGZvciBpcHY2IGlwX25vbmxvY2FsX2JpbmQgJgogSVBfRlJFRUJJTkQKClsgVXBzdHJlYW0g Y29tbWl0IGI3MWQyMWMyNzRlZmYyMGE5ZGI4MTU4ODgyYjU0NWIxNDFiNzNhYjggXQoKQ29tbWl0 IDliOTc0MjAyMjg4OCAoInNjdHA6IHN1cHBvcnQgaXB2NiBub25sb2NhbCBiaW5kIikKaW50cm9k dWNlZCBzdXBwb3J0IGZvciB0aGUgYWJvdmUgb3B0aW9ucyBhcyB2NCBzY3RwIGRpZCwKc28gcGF0 Y2hlZCBzY3RwX3Y2X2F2YWlsYWJsZSgpLgoKSW4gdGhlIHY0IGltcGxlbWVudGF0aW9uIGl0J3Mg ZW5vdWdoLCBiZWNhdXNlCnNjdHBfaW5ldF9iaW5kX3ZlcmlmeSgpIGp1c3QgcmV0dXJucyB3aXRo IHNjdHBfdjRfYXZhaWxhYmxlKCkuCkhvd2V2ZXIgc2N0cF9pbmV0Nl9iaW5kX3ZlcmlmeSgpIGhh cyBhbiBleHRyYSBjaGVjayBiZWZvcmUgdGhhdApmb3IgbGluay1sb2NhbCBzY29wZV9pZCwgd2hp Y2ggd29uJ3QgcmVzcGVjdCB0aGUgYWJvdmUgb3B0aW9ucy4KCkFkZGVkIHRoZSBjaGVja3MgYmVm b3JlIGNhbGxpbmcgaXB2Nl9jaGtfYWRkcigpLCBidXQKbm90IGJlZm9yZSB0aGUgdmFsaWRhdGlv biBvZiBzY29wZV9pZC4KCmJlZm9yZSAody8gYm90aCBvcHRpb25zKToKIC4vdjZ0ZXN0IGZlODA6 OjEwIHNjdHAKIGJpbmQgZmFpbGVkLCBlcnJubzogOTkgKENhbm5vdCBhc3NpZ24gcmVxdWVzdGVk IGFkZHJlc3MpCiAuL3Y2dGVzdCBmZTgwOjoxMCB0Y3AKIGJpbmQgc3VjY2VzcywgZXJybm86IDAg KFN1Y2Nlc3MpCgphZnRlciAody8gYm90aCBvcHRpb25zKToKIC4vdjZ0ZXN0IGZlODA6OjEwIHNj dHAKIGJpbmQgc3VjY2VzcywgZXJybm86IDAgKFN1Y2Nlc3MpCgpTaWduZWQtb2ZmLWJ5OiBMYXN6 bG8gVG90aCA8bGFzemx0aEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBYaW4gTG9uZyA8bHVjaWVu LnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9pcHY2LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0 cC9pcHY2LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggYTRiNmZmYjYxNDk1Li4xMzQ0ZTNhNDEx YWUgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysgYi9uZXQvc2N0cC9pcHY2LmMKQEAg LTg4Miw4ICs4ODIsMTAgQEAgc3RhdGljIGludCBzY3RwX2luZXQ2X2JpbmRfdmVyaWZ5KHN0cnVj dCBzY3RwX3NvY2sgKm9wdCwgdW5pb24gc2N0cF9hZGRyICphZGRyKQogCQkJbmV0ID0gc29ja19u ZXQoJm9wdC0+aW5ldC5zayk7CiAJCQlyY3VfcmVhZF9sb2NrKCk7CiAJCQlkZXYgPSBkZXZfZ2V0 X2J5X2luZGV4X3JjdShuZXQsIGFkZHItPnY2LnNpbjZfc2NvcGVfaWQpOwotCQkJaWYgKCFkZXYg fHwKLQkJCSAgICAhaXB2Nl9jaGtfYWRkcihuZXQsICZhZGRyLT52Ni5zaW42X2FkZHIsIGRldiwg MCkpIHsKKwkJCWlmICghZGV2IHx8ICEob3B0LT5pbmV0LmZyZWViaW5kIHx8CisJCQkJICAgICAg bmV0LT5pcHY2LnN5c2N0bC5pcF9ub25sb2NhbF9iaW5kIHx8CisJCQkJICAgICAgaXB2Nl9jaGtf YWRkcihuZXQsICZhZGRyLT52Ni5zaW42X2FkZHIsCisJCQkJCQkgICAgZGV2LCAwKSkpIHsKIAkJ CQlyY3VfcmVhZF91bmxvY2soKTsKIAkJCQlyZXR1cm4gMDsKIAkJCX0KLS0gCjIuMTMuNgoKCkZy b20gYWVhYWRkZGJmN2Y5Y2NmOGM3ODgwZGIwMWE5ZGIxMDMyN2MyNzczMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRl OiBTdW4sIDIyIE9jdCAyMDE3IDEyOjMzOjU3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOS8zN10g dGNwL2RjY3A6IGZpeCBsb2NrZGVwIHNwbGF0IGluIGluZXRfY3NrX3JvdXRlX3JlcSgpCgpbIFVw c3RyZWFtIGNvbW1pdCBhNmNhN2FiZTUzNjMzZDA4ZWVhMWM2NzU2Y2I0OWM5YjJkNGM5MGJmIF0K ClRoaXMgcGF0Y2ggZml4ZXMgdGhlIGZvbGxvd2luZyBsb2NrZGVwIHNwbGF0IGluIGluZXRfY3Nr X3JvdXRlX3JlcSgpCgogIGxvY2tkZXBfcmN1X3N1c3BpY2lvdXMKICBpbmV0X2Nza19yb3V0ZV9y ZXEKICB0Y3BfdjRfc2VuZF9zeW5hY2sKICB0Y3BfcnR4X3N5bmFjawogIGluZXRfcnR4X3N5bl9h Y2sKICB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWUKICB0Y3BfcmV0cmFuc21pdF90aW1lcgogIHRj cF93cml0ZV90aW1lcl9oYW5kbGVyCiAgdGNwX3dyaXRlX3RpbWVyCiAgY2FsbF90aW1lcl9mbgoK VGhyZWFkIHJ1bm5pbmcgaW5ldF9jc2tfcm91dGVfcmVxKCkgb3ducyBhIHJlZmVyZW5jZSBvbiB0 aGUgcmVxdWVzdApzb2NrZXQsIHNvIHdlIGhhdmUgdGhlIGd1YXJhbnRlZSBpcmVxLT5pcmVxX29w dCB3b250IGJlIGNoYW5nZWQgb3IKZnJlZWQuCgpsb2NrZGVwIGNhbiBlbmZvcmNlIHRoaXMgaW52 YXJpYW50IGZvciB1cy4KCkZpeGVzOiBjOTJlOGMwMmZlNjYgKCJ0Y3AvZGNjcDogZml4IGlyZXEt Pm9wdCByYWNlcyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgfCAzICsrLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29j ay5jCmluZGV4IGNlNDcwOWIyODE4ZC4uNDk4MzIzMjE2ZmQwIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCisrKyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9z b2NrLmMKQEAgLTU0MCw3ICs1NDAsOCBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0X2Nza19yb3V0 ZV9yZXEoY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCXN0cnVjdCBpcF9vcHRpb25zX3JjdSAqb3B0 OwogCXN0cnVjdCBydGFibGUgKnJ0OwogCi0Jb3B0ID0gcmN1X2RlcmVmZXJlbmNlKGlyZXEtPmly ZXFfb3B0KTsKKwlvcHQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGlyZXEtPmlyZXFfb3B0 LAorCQkJCQlyZWZjb3VudF9yZWFkKCZyZXEtPnJza19yZWZjbnQpID4gMCk7CiAJZmxvd2k0X2lu aXRfb3V0cHV0KGZsNCwgaXJlcS0+aXJfaWlmLCBpcmVxLT5pcl9tYXJrLAogCQkJICAgUlRfQ09O Tl9GTEFHUyhzayksIFJUX1NDT1BFX1VOSVZFUlNFLAogCQkJICAgc2stPnNrX3Byb3RvY29sLCBp bmV0X3NrX2Zsb3dpX2ZsYWdzKHNrKSwKLS0gCjIuMTMuNgoKCkZyb20gNTVmMjZjYzQ0NjUxNmRm MjUyNDY0YmQ4NDQ2NmRjNzhlOWE0MGNkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDI0IE9jdCAyMDE3 IDA4OjIwOjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMC8zN10gdGNwL2RjY3A6IGZpeCBvdGhl ciBsb2NrZGVwIHNwbGF0cyBhY2Nlc3NpbmcgaXJlcV9vcHQKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDA2Zjg3N2Q2MTNiZTM2MjE2MDRjMjUyMGVj MDM1MWQ5ZmJkY2ExNWYgXQoKSW4gbXkgZmlyc3QgYXR0ZW1wdCB0byBmaXggdGhlIGxvY2tkZXAg c3BsYXQsIEkgZm9yZ290IHdlIGNvdWxkCmVudGVyIGluZXRfY3NrX3JvdXRlX3JlcSgpIHdpdGgg YSBmcmVzaGx5IGFsbG9jYXRlZCByZXF1ZXN0IHNvY2tldCwKZm9yIHdoaWNoIHJlZmNvdW50IGhh cyBub3QgeWV0IGJlZW4gZWxldmF0ZWQsIGR1ZSB0byBjb21wbGV4ClNMQUJfVFlQRVNBRkVfQllf UkNVIHJ1bGVzLgoKV2UgZWl0aGVyIGFyZSBpbiByY3VfcmVhZF9sb2NrKCkgc2VjdGlvbiBfb3Jf IHdlIG93biBhIHJlZmNvdW50IG9uIHRoZQpyZXF1ZXN0LgoKQ29ycmVjdCBSQ1UgdmVyYiB0byB1 c2UgaGVyZSBpcyByY3VfZGVyZWZlcmVuY2VfY2hlY2soKSwgYWx0aG91Z2ggaXQgaXMKbm90IHBv c3NpYmxlIHRvIHByb3ZlIHdlIGFjdHVhbGx5IG93biBhIHJlZmVyZW5jZSBvbiBhIHNoYXJlZApy ZWZjb3VudCA6LwoKSW4gdjIsIEkgYWRkZWQgaXJlcV9vcHRfZGVyZWYoKSBoZWxwZXIgYW5kIHVz ZSBpbiB0aHJlZSBwbGFjZXMsIHRvIGZpeCBvdGhlcgpwb3NzaWJsZSBzcGxhdHMuCgpbICAgNDku ODQ0NTkwXSAgbG9ja2RlcF9yY3Vfc3VzcGljaW91cysweGVhLzB4ZjMKWyAgIDQ5Ljg0NjQ4N10g IGluZXRfY3NrX3JvdXRlX3JlcSsweDUzLzB4MTRkClsgICA0OS44NDgzMzRdICB0Y3BfdjRfcm91 dGVfcmVxKzB4ZS8weDEwClsgICA0OS44NTAxNzRdICB0Y3BfY29ubl9yZXF1ZXN0KzB4MzFjLzB4 NmEwClsgICA0OS44NTE5OTJdICA/IF9fbG9ja19hY3F1aXJlKzB4NjE0LzB4ODIyClsgICA0OS44 NTQwMTVdICB0Y3BfdjRfY29ubl9yZXF1ZXN0KzB4NWEvMHg3OQpbICAgNDkuODU1OTU3XSAgPyB0 Y3BfdjRfY29ubl9yZXF1ZXN0KzB4NWEvMHg3OQpbICAgNDkuODU4MDUyXSAgdGNwX3Jjdl9zdGF0 ZV9wcm9jZXNzKzB4OTgvMHhkY2MKWyAgIDQ5Ljg1OTk5MF0gID8gc2tfZmlsdGVyX3RyaW1fY2Fw KzB4MmY2LzB4MzA3ClsgICA0OS44NjIwODVdICB0Y3BfdjRfZG9fcmN2KzB4ZmMvMHgxNDUKWyAg IDQ5Ljg2NDA1NV0gID8gdGNwX3Y0X2RvX3JjdisweGZjLzB4MTQ1ClsgICA0OS44NjYxNzNdICB0 Y3BfdjRfcmN2KzB4NWFiLzB4YWY5ClsgICA0OS44NjgwMjldICBpcF9sb2NhbF9kZWxpdmVyX2Zp bmlzaCsweDFhZi8weDJlNwpbICAgNDkuODcwMDY0XSAgaXBfbG9jYWxfZGVsaXZlcisweDFiMi8w eDFjNQpbICAgNDkuODcxNzc1XSAgPyBpbmV0X2RlbF9vZmZsb2FkKzB4NDUvMHg0NQpbICAgNDku ODczOTE2XSAgaXBfcmN2X2ZpbmlzaCsweDNmNy8weDQ3MQpbICAgNDkuODc1NDc2XSAgaXBfcmN2 KzB4M2YxLzB4NDJmClsgICA0OS44NzY5OTFdICA/IGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNoKzB4 MmU3LzB4MmU3ClsgICA0OS44Nzg3OTFdICBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg2ZDMv MHg5NTAKWyAgIDQ5Ljg4MDcwMV0gID8gcHJvY2Vzc19iYWNrbG9nKzB4N2UvMHgyMTYKWyAgIDQ5 Ljg4MjU4OV0gIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgxZC8weDVlClsgICA0OS44ODQxMjJdICBw cm9jZXNzX2JhY2tsb2crMHgxMGMvMHgyMTYKWyAgIDQ5Ljg4NTgxMl0gIG5ldF9yeF9hY3Rpb24r MHgxNDcvMHgzZGYKCkZpeGVzOiBhNmNhN2FiZTUzNjMzICgidGNwL2RjY3A6IGZpeCBsb2NrZGVw IHNwbGF0IGluIGluZXRfY3NrX3JvdXRlX3JlcSgpIikKRml4ZXM6IGM5MmU4YzAyZmU2NiAoInRj cC9kY2NwOiBmaXggaXJlcS0+b3B0IHJhY2VzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPGZl bmdndWFuZy53dUBpbnRlbC5jb20+ClJlcG9ydGVkLWJ5OiBNYWNpZWogxbtlbmN6eWtvd3NraSA8 bWF6ZUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmggICAgICAgICB8IDYgKysr KysrCiBuZXQvZGNjcC9pcHY0LmMgICAgICAgICAgICAgICAgIHwgMiArLQogbmV0L2lwdjQvaW5l dF9jb25uZWN0aW9uX3NvY2suYyB8IDQgKystLQogbmV0L2lwdjQvdGNwX2lwdjQuYyAgICAgICAg ICAgICB8IDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X3NvY2suaCBiL2luY2x1ZGUvbmV0 L2luZXRfc29jay5oCmluZGV4IDQyNTc1MmY3NjhkMi4uZGI4MTYyZGQ4YzBiIDEwMDY0NAotLS0g YS9pbmNsdWRlL25ldC9pbmV0X3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X3NvY2suaApA QCAtMTMyLDYgKzEzMiwxMiBAQCBzdGF0aWMgaW5saW5lIGludCBpbmV0X3JlcXVlc3RfYm91bmRf ZGV2X2lmKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAlyZXR1cm4gc2stPnNrX2JvdW5kX2Rldl9p ZjsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKmlyZXFfb3B0X2Rl cmVmKGNvbnN0IHN0cnVjdCBpbmV0X3JlcXVlc3Rfc29jayAqaXJlcSkKK3sKKwlyZXR1cm4gcmN1 X2RlcmVmZXJlbmNlX2NoZWNrKGlyZXEtPmlyZXFfb3B0LAorCQkJCSAgICAgcmVmY291bnRfcmVh ZCgmaXJlcS0+cmVxLnJza19yZWZjbnQpID4gMCk7Cit9CisKIHN0cnVjdCBpbmV0X2Nvcmsgewog CXVuc2lnbmVkIGludAkJZmxhZ3M7CiAJX19iZTMyCQkJYWRkcjsKZGlmZiAtLWdpdCBhL25ldC9k Y2NwL2lwdjQuYyBiL25ldC9kY2NwL2lwdjQuYwppbmRleCA1ODc3ZjQ0MDhmYzYuLmJjNzBkOTZk NzYyYSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2NC5jCisrKyBiL25ldC9kY2NwL2lwdjQuYwpA QCAtNDk1LDcgKzQ5NSw3IEBAIHN0YXRpYyBpbnQgZGNjcF92NF9zZW5kX3Jlc3BvbnNlKGNvbnN0 IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxCiAJCQkJCQkJICAgICAg aXJlcS0+aXJfcm10X2FkZHIpOwogCQllcnIgPSBpcF9idWlsZF9hbmRfc2VuZF9wa3Qoc2tiLCBz aywgaXJlcS0+aXJfbG9jX2FkZHIsCiAJCQkJCSAgICBpcmVxLT5pcl9ybXRfYWRkciwKLQkJCQkJ ICAgIHJjdV9kZXJlZmVyZW5jZShpcmVxLT5pcmVxX29wdCkpOworCQkJCQkgICAgaXJlcV9vcHRf ZGVyZWYoaXJlcSkpOwogCQllcnIgPSBuZXRfeG1pdF9ldmFsKGVycik7CiAJfQogCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25u ZWN0aW9uX3NvY2suYwppbmRleCA0OTgzMjMyMTZmZDAuLjQ0Mzg5OTBjZjY1ZSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYworKysgYi9uZXQvaXB2NC9pbmV0X2Nv bm5lY3Rpb25fc29jay5jCkBAIC01NDAsOCArNTQwLDggQEAgc3RydWN0IGRzdF9lbnRyeSAqaW5l dF9jc2tfcm91dGVfcmVxKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAlzdHJ1Y3QgaXBfb3B0aW9u c19yY3UgKm9wdDsKIAlzdHJ1Y3QgcnRhYmxlICpydDsKIAotCW9wdCA9IHJjdV9kZXJlZmVyZW5j ZV9wcm90ZWN0ZWQoaXJlcS0+aXJlcV9vcHQsCi0JCQkJCXJlZmNvdW50X3JlYWQoJnJlcS0+cnNr X3JlZmNudCkgPiAwKTsKKwlvcHQgPSBpcmVxX29wdF9kZXJlZihpcmVxKTsKKwogCWZsb3dpNF9p bml0X291dHB1dChmbDQsIGlyZXEtPmlyX2lpZiwgaXJlcS0+aXJfbWFyaywKIAkJCSAgIFJUX0NP Tk5fRkxBR1Moc2spLCBSVF9TQ09QRV9VTklWRVJTRSwKIAkJCSAgIHNrLT5za19wcm90b2NvbCwg aW5ldF9za19mbG93aV9mbGFncyhzayksCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5j IGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBkN2VkOGRiZGU4NWUuLjc4ODM1ZjY4MTUzOCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90Y3BfaXB2NC5j CkBAIC04NzgsNyArODc4LDcgQEAgc3RhdGljIGludCB0Y3BfdjRfc2VuZF9zeW5hY2soY29uc3Qg c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsCiAKIAkJZXJyID0gaXBfYnVp bGRfYW5kX3NlbmRfcGt0KHNrYiwgc2ssIGlyZXEtPmlyX2xvY19hZGRyLAogCQkJCQkgICAgaXJl cS0+aXJfcm10X2FkZHIsCi0JCQkJCSAgICByY3VfZGVyZWZlcmVuY2UoaXJlcS0+aXJlcV9vcHQp KTsKKwkJCQkJICAgIGlyZXFfb3B0X2RlcmVmKGlyZXEpKTsKIAkJZXJyID0gbmV0X3htaXRfZXZh bChlcnIpOwogCX0KIAotLSAKMi4xMy42CgoKRnJvbSBiZGNiNTcwN2Q3YjQzNzM3ZDI3ZGRiZTZj MDYxMDEwYmNjYzA2ZDIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWaXZpZW4gRGlk ZWxvdCA8dml2aWVuLmRpZGVsb3RAc2F2b2lyZmFpcmVsaW51eC5jb20+CkRhdGU6IFR1ZSwgMjQg T2N0IDIwMTcgMTY6Mzc6MTkgLTA0MDAKU3ViamVjdDogW1BBVENIIDIxLzM3XSBuZXQ6IGRzYTog Y2hlY2sgbWFzdGVyIGRldmljZSBiZWZvcmUgcHV0CgpbIFVwc3RyZWFtIGNvbW1pdCAzZWI4ZmVl YjE3MDhjN2RiZmQyZTk3ZGY5MmEyYTQwN2MxMTY2MDZlIF0KCkluIHRoZSBjYXNlIG9mIHBkYXRh LCB0aGUgZHNhX2NwdV9wYXJzZSBmdW5jdGlvbiBjYWxscyBkZXZfcHV0KCkgYmVmb3JlCm1ha2lu ZyBzdXJlIGl0IGlzbid0IE5VTEwuIEZpeCB0aGlzLgoKRml4ZXM6IDcxZTBiYmRlMGQ4OCAoIm5l dDogZHNhOiBBZGQgc3VwcG9ydCBmb3IgcGxhdGZvcm0gZGF0YSIpClNpZ25lZC1vZmYtYnk6IFZp dmllbiBEaWRlbG90IDx2aXZpZW4uZGlkZWxvdEBzYXZvaXJmYWlyZWxpbnV4LmNvbT4KUmV2aWV3 ZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS9k c2EyLmMgfCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9kc2EyLmMgYi9uZXQvZHNhL2RzYTIuYwpp bmRleCAyMGJjOWM1NmZjYTAuLjI3OGI0OGQ3MGJkOSAxMDA2NDQKLS0tIGEvbmV0L2RzYS9kc2Ey LmMKKysrIGIvbmV0L2RzYS9kc2EyLmMKQEAgLTQ5NiwxNCArNDk2LDE1IEBAIHN0YXRpYyBpbnQg ZHNhX2NwdV9wYXJzZShzdHJ1Y3QgZHNhX3BvcnQgKnBvcnQsIHUzMiBpbmRleCwKIAkJaWYgKCFl dGhlcm5ldCkKIAkJCXJldHVybiAtRUlOVkFMOwogCQlldGhlcm5ldF9kZXYgPSBvZl9maW5kX25l dF9kZXZpY2VfYnlfbm9kZShldGhlcm5ldCk7CisJCWlmICghZXRoZXJuZXRfZGV2KQorCQkJcmV0 dXJuIC1FUFJPQkVfREVGRVI7CiAJfSBlbHNlIHsKIAkJZXRoZXJuZXRfZGV2ID0gZHNhX2Rldl90 b19uZXRfZGV2aWNlKGRzLT5jZC0+bmV0ZGV2W2luZGV4XSk7CisJCWlmICghZXRoZXJuZXRfZGV2 KQorCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CiAJCWRldl9wdXQoZXRoZXJuZXRfZGV2KTsKIAl9 CiAKLQlpZiAoIWV0aGVybmV0X2RldikKLQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Ci0KIAlpZiAo IWRzdC0+Y3B1X2RwKSB7CiAJCWRzdC0+Y3B1X2RwID0gcG9ydDsKIAkJZHN0LT5jcHVfZHAtPm5l dGRldiA9IGV0aGVybmV0X2RldjsKLS0gCjIuMTMuNgoKCkZyb20gYjkyMzUyZGQxYjkzMDlkOGFl ZTY1MmVkNjFkMDA5NmE2OGM1YmI0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5k cmVpIFZhZ2luIDxhdmFnaW5Ab3BlbnZ6Lm9yZz4KRGF0ZTogV2VkLCAyNSBPY3QgMjAxNyAxMDox Njo0MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMzddIG5ldC91bml4OiBkb24ndCBzaG93IGlu Zm9ybWF0aW9uIGFib3V0IHNvY2tldHMgZnJvbQogb3RoZXIgbmFtZXNwYWNlcwoKWyBVcHN0cmVh bSBjb21taXQgMGY1ZGE2NTlkOGYxODEwZjQ0ZGUxNGFjZjJjODBjZDY0OTk2MjNhMCBdCgpzb2Nr ZXRfZGlhZyBzaG93cyBpbmZvcm1hdGlvbiBvbmx5IGFib3V0IHNvY2tldHMgZnJvbSBhIG5hbWVz cGFjZSB3aGVyZQphIGRpYWcgc29ja2V0IGxpdmVzLgoKQnV0IGlmIHdlIHJlcXVlc3QgaW5mb3Jt YXRpb24gYWJvdXQgb25lIHVuaXggc29ja2V0LCB0aGUga2VybmVsIGRvbid0CmNoZWNrIHRoYXQg aXRzIG5ldG5zIGlzIG1hdGNoZWQgd2l0aCBhIGRpYWcgc29ja2V0IG5hbWVzcGFjZSwgc28gYW55 CnVzZXIgY2FuIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbnkgdW5peCBzb2NrZXQgaW4gYSBzeXN0 ZW0uIFRoaXMgbG9va3MKbGlrZSBhIGJ1Zy4KCnYyOiBhZGQgYSBGaXhlcyB0YWcKCkZpeGVzOiA1 MWQ3Y2NjZjA3MjMgKCJuZXQ6IG1ha2Ugc29jayBkaWFnIHBlci1uYW1lc3BhY2UiKQpTaWduZWQt b2ZmLWJ5OiBBbmRyZWkgVmFnaW4gPGF2YWdpbkBvcGVudnoub3JnPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3VuaXgvZGlhZy5j IHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC91bml4L2RpYWcuYyBiL25ldC91bml4L2RpYWcuYwppbmRleCA0ZDk2Nzk3MDFhNmQuLjM4NGM4 NGU4MzQ2MiAxMDA2NDQKLS0tIGEvbmV0L3VuaXgvZGlhZy5jCisrKyBiL25ldC91bml4L2RpYWcu YwpAQCAtMjU3LDYgKzI1Nyw4IEBAIHN0YXRpYyBpbnQgdW5peF9kaWFnX2dldF9leGFjdChzdHJ1 Y3Qgc2tfYnVmZiAqaW5fc2tiLAogCWVyciA9IC1FTk9FTlQ7CiAJaWYgKHNrID09IE5VTEwpCiAJ CWdvdG8gb3V0X25vc2s7CisJaWYgKCFuZXRfZXEoc29ja19uZXQoc2spLCBuZXQpKQorCQlnb3Rv IG91dDsKIAogCWVyciA9IHNvY2tfZGlhZ19jaGVja19jb29raWUoc2ssIHJlcS0+dWRpYWdfY29v a2llKTsKIAlpZiAoZXJyKQotLSAKMi4xMy42CgoKRnJvbSBhNzIwOGU5NDYwOGQ5NmZlZjUxYjU2 M2ZiMTI1YzZkYmE2NDFiMTJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHaXJpc2gg TW9vZGFsYmFpbCA8Z2lyaXNoLm1vb2RhbGJhaWxAb3JhY2xlLmNvbT4KRGF0ZTogV2VkLCAyNSBP Y3QgMjAxNyAwMDoyMzowNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMzddIHRhcDogZG91Ymxl LWZyZWUgaW4gZXJyb3IgcGF0aCBpbiB0YXBfb3BlbigpCgpbIFVwc3RyZWFtIGNvbW1pdCA3OGUw ZWE2NzkxZDdiYWFmYjhhMGNhODJiMWJkMGM3YjM0NTNjOTE5IF0KCkRvdWJsZSBmcmVlIG9mIHNr Yl9hcnJheSBpbiB0YXAgbW9kdWxlIGlzIGNhdXNpbmcga2VybmVsIHBhbmljLiBXaGVuCnRhcF9z ZXRfcXVldWUoKSBmYWlscyB3ZSBmcmVlIHNrYl9hcnJheSByaWdodCBhd2F5IGJ5IGNhbGxpbmcK c2tiX2FycmF5X2NsZWFudXAoKS4gSG93ZXZlciwgbGF0ZXIgb24gc2tiX2FycmF5X2NsZWFudXAo KSBpcyBjYWxsZWQKYWdhaW4gYnkgdGFwX3NvY2tfZGVzdHJ1Y3QgdGhyb3VnaCBzb2NrX3B1dCgp LiBUaGlzIHBhdGNoIGZpeGVzIHRoYXQKaXNzdWUuCgpGaXhlczogMzYyODk5Yjg3MjViMzVlMyAo bWFjdnRhcDogc3dpdGNoIHRvIHVzZSBza2IgYXJyYXkpClNpZ25lZC1vZmYtYnk6IEdpcmlzaCBN b29kYWxiYWlsIDxnaXJpc2gubW9vZGFsYmFpbEBvcmFjbGUuY29tPgpBY2tlZC1ieTogSmFzb24g V2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3RhcC5jIHwgMTggKysrKysr KysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RhcC5jIGIvZHJpdmVycy9uZXQvdGFwLmMK aW5kZXggMzU3MGM3NTc2OTkzLi5jZTRkOGQ3Njg4MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3RhcC5jCisrKyBiL2RyaXZlcnMvbmV0L3RhcC5jCkBAIC01MTcsNiArNTE3LDEwIEBAIHN0YXRp YyBpbnQgdGFwX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiAJ CQkJCSAgICAgJnRhcF9wcm90bywgMCk7CiAJaWYgKCFxKQogCQlnb3RvIGVycjsKKwlpZiAoc2ti X2FycmF5X2luaXQoJnEtPnNrYl9hcnJheSwgdGFwLT5kZXYtPnR4X3F1ZXVlX2xlbiwgR0ZQX0tF Uk5FTCkpIHsKKwkJc2tfZnJlZSgmcS0+c2spOworCQlnb3RvIGVycjsKKwl9CiAKIAlSQ1VfSU5J VF9QT0lOVEVSKHEtPnNvY2sud3EsICZxLT53cSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcS0+ d3Eud2FpdCk7CkBAIC01NDAsMjIgKzU0NCwxOCBAQCBzdGF0aWMgaW50IHRhcF9vcGVuKHN0cnVj dCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCWlmICgodGFwLT5kZXYtPmZlYXR1 cmVzICYgTkVUSUZfRl9ISUdIRE1BKSAmJiAodGFwLT5kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9T RykpCiAJCXNvY2tfc2V0X2ZsYWcoJnEtPnNrLCBTT0NLX1pFUk9DT1BZKTsKIAotCWVyciA9IC1F Tk9NRU07Ci0JaWYgKHNrYl9hcnJheV9pbml0KCZxLT5za2JfYXJyYXksIHRhcC0+ZGV2LT50eF9x dWV1ZV9sZW4sIEdGUF9LRVJORUwpKQotCQlnb3RvIGVycl9hcnJheTsKLQogCWVyciA9IHRhcF9z ZXRfcXVldWUodGFwLCBmaWxlLCBxKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9xdWV1ZTsKKwlp ZiAoZXJyKSB7CisJCS8qIHRhcF9zb2NrX2Rlc3RydWN0KCkgd2lsbCB0YWtlIGNhcmUgb2YgZnJl ZWluZyBza2JfYXJyYXkgKi8KKwkJZ290byBlcnJfcHV0OworCX0KIAogCWRldl9wdXQodGFwLT5k ZXYpOwogCiAJcnRubF91bmxvY2soKTsKIAlyZXR1cm4gZXJyOwogCi1lcnJfcXVldWU6Ci0Jc2ti X2FycmF5X2NsZWFudXAoJnEtPnNrYl9hcnJheSk7Ci1lcnJfYXJyYXk6CitlcnJfcHV0OgogCXNv Y2tfcHV0KCZxLT5zayk7CiBlcnI6CiAJaWYgKHRhcCkKLS0gCjIuMTMuNgoKCkZyb20gMWE3YzA0 NTllZTgxZjdjMzUxYzBmNThmYWE2MDI3NTczMjUzYTkyNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTW9zaGUgU2hlbWVzaCA8bW9zaGVAbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDE5 IE9jdCAyMDE3IDE0OjE0OjI5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNC8zN10gbmV0L21seDU6 IEZpeCBoZWFsdGggd29yayBxdWV1ZSBzcGluIGxvY2sgdG8gSVJRIHNhZmUKClsgVXBzdHJlYW0g Y29tbWl0IDYzNzdlZDBiYmFlNmZhMjg4NTNlMTY3OWQwNjhhOTEwNmM4YTg5MDggXQoKc3Bpbl9s b2NrL3VubG9jayBvZiBoZWFsdGgtPndxX2xvY2sgc2hvdWxkIGJlIElSUSBzYWZlLgpJdCB3YXMg Y2hhbmdlZCB0byBzcGluX2xvY2tfaXJxc2F2ZSBzaW5jZSBhZGRpbmcgY29tbWl0IDAxNzk3MjBk NmJlMgooIm5ldC9tbHg1OiBJbnRyb2R1Y2UgdHJpZ2dlcl9oZWFsdGhfd29yayBmdW5jdGlvbiIp IHdoaWNoIHVzZXMKc3Bpbl9sb2NrIGZyb20gYXN5bmNocm9ub3VzIGV2ZW50IChJUlEpIGNvbnRl eHQuClRodXMsIGFsbCBzcGluX2xvY2svdW5sb2NrIG9mIGhlYWx0aC0+d3FfbG9jayBzaG91bGQg aGF2ZSBiZWVuIG1vdmVkCnRvIElSUSBzYWZlIG1vZGUuCkhvd2V2ZXIsIG9uZSBvY2N1cnJlbmNl IG9uIG5ldyBjb2RlIHVzaW5nIHRoaXMgbG9jayBtaXNzZWQgdGhhdApjaGFuZ2UsIHJlc3VsdGlu ZyBpbiBwb3NzaWJsZSBkZWFkbG9jazoKICBrZXJuZWw6IFBvc3NpYmxlIHVuc2FmZSBsb2NraW5n IHNjZW5hcmlvOgogIGtlcm5lbDogICAgICAgQ1BVMAogIGtlcm5lbDogICAgICAgLS0tLQogIGtl cm5lbDogIGxvY2soJigmaGVhbHRoLT53cV9sb2NrKS0+cmxvY2spOwogIGtlcm5lbDogIDxJbnRl cnJ1cHQ+CiAga2VybmVsOiAgICBsb2NrKCYoJmhlYWx0aC0+d3FfbG9jayktPnJsb2NrKTsKICBr ZXJuZWw6ICMwMTIgKioqIERFQURMT0NLICoqKgoKRml4ZXM6IDJhMDE2NWEwMzRhYyAoIm5ldC9t bHg1OiBDYW5jZWwgZGVsYXllZCByZWNvdmVyeSB3b3JrIHdoZW4gdW5sb2FkaW5nIHRoZSBkcml2 ZXIiKQpTaWduZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2hlYWx0aC5jIHwgNSArKystLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaGVhbHRoLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaGVhbHRoLmMKaW5kZXggNGI2YjAz ZDYyOTdmLi44Y2NiNjhhNDljNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9oZWFsdGguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvaGVhbHRoLmMKQEAgLTM1NiwxMCArMzU2LDExIEBAIHZvaWQgbWx4NV9k cmFpbl9oZWFsdGhfd3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIHZvaWQgbWx4NV9kcmFp bl9oZWFsdGhfcmVjb3Zlcnkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIHsKIAlzdHJ1Y3Qg bWx4NV9jb3JlX2hlYWx0aCAqaGVhbHRoID0gJmRldi0+cHJpdi5oZWFsdGg7CisJdW5zaWduZWQg bG9uZyBmbGFnczsKIAotCXNwaW5fbG9jaygmaGVhbHRoLT53cV9sb2NrKTsKKwlzcGluX2xvY2tf aXJxc2F2ZSgmaGVhbHRoLT53cV9sb2NrLCBmbGFncyk7CiAJc2V0X2JpdChNTFg1X0RST1BfTkVX X1JFQ09WRVJZX1dPUkssICZoZWFsdGgtPmZsYWdzKTsKLQlzcGluX3VubG9jaygmaGVhbHRoLT53 cV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoZWFsdGgtPndxX2xvY2ssIGZsYWdz KTsKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldi0+cHJpdi5oZWFsdGgucmVjb3Zlcl93 b3JrKTsKIH0KIAotLSAKMi4xMy42CgoKRnJvbSBjNDEyOGE2ZjkyZDg5NzFiYjc2YWNlZGZmMWQ0 YTRkMzMxNzA3YmI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPciBHZXJsaXR6IDxv Z2VybGl0ekBtZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwgMTcgT2N0IDIwMTcgMTI6MzM6NDMgKzAy MDAKU3ViamVjdDogW1BBVENIIDI1LzM3XSBuZXQvbWx4NWU6IFByb3Blcmx5IGRlYWwgd2l0aCBl bmNhcCBmbG93cyBhZGQvZGVsIHVuZGVyCiBuZWlnaCB1cGRhdGUKClsgVXBzdHJlYW0gY29tbWl0 IDNjMzc3NDVlYzYxNGZmMDQ4ZDVkY2UzOGY5NzY4MDRiMDVkMzA3ZWUgXQoKQ3VycmVudGx5LCB0 aGUgZW5jYXAgYWN0aW9uIG9mZmxvYWQgaXMgaGFuZGxlZCBpbiB0aGUgYWN0aW9ucyBwYXJzZQpm dW5jdGlvbiBhbmQgbm90IGluIG1seDVlX3RjX2FkZF9mZGJfZmxvdygpIHdoZXJlIHdlIGRlYWwg d2l0aCBhbGwKdGhlIG90aGVyIGFzcGVjdHMgb2Ygb2ZmbG9hZGluZyBhY3Rpb25zICh2bGFuLCBt b2RpZnkgaGVhZGVyKSBhbmQKdGhlIHJ1bGUgaXRzZWxmLgoKV2hlbiB0aGUgbmVpZ2ggdXBkYXRl IGNvZGUgKG1seDVlX3RjX2VuY2FwX2Zsb3dzX2FkZCgpKSByZWNyZWF0ZXMgdGhlCmVuY2FwIGVu dHJ5IGFuZCBvZmZsb2FkcyB0aGUgcmVsYXRlZCBmbG93cywgd2Ugd3JvbmdseSBjYWxsIGFnYWlu IGludG8KbWx4NWVfdGNfYWRkX2ZkYl9mbG93KCksIHRoaXMgZm9yIGl0c2VsZiB3b3VsZCBjYXVz ZSB1cyB0byBoYW5kbGUKYWdhaW4gdGhlIG9mZmxvYWRpbmcgb2YgdmxhbnMgYW5kIGhlYWRlciBy ZS13cml0ZSB3aGljaCBwdXRzIHRoaW5ncwppbiBub24gY29uc2lzdGVudCBzdGF0ZSBhbmQgc3Rl cCBvbiBmcmVlZCBtZW1vcnkgKGUuZyB0aGUgbW9kaWZ5CmhlYWRlciBwYXJzZSBidWZmZXIgd2hp Y2ggaXMgYWxyZWFkeSBmcmVlZCkuCgpTaW5jZSBvbiBlcnJvciwgbWx4NWVfdGNfYWRkX2ZkYl9m bG93KCkgZGV0YWNoZXMgYW5kIG1heSByZWxlYXNlIHRoZQplbmNhcCBlbnRyeSwgaXQgY2F1c2Vz IGEgY29ycnVwdGlvbiBhdCB0aGUgbmVpZ2ggdXBkYXRlIGNvZGUgd2hpY2ggZ29lcwpvdmVyIHRo ZSBsaXN0IG9mIGZsb3dzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGVuY2FwIGVudHJ5LCBvciBkb3Vi bGUgZnJlZQp3aGVuIHRoZSB0YyBmbG93IGlzIGxhdGVyIGRlbGV0ZWQgYnkgdXNlci1zcGFjZS4K CldoZW4gbmVpZ2ggdXBkYXRlIChtbHg1ZV90Y19lbmNhcF9mbG93c19kZWwoKSkgdW5vZmZsb2Fk cyB0aGUgZmxvd3MgcmVsYXRlZAp0byBhbiBlbmNhcCBlbnRyeSB3aGljaCBpcyBub3cgaW52YWxp ZCwgd2UgZG8gYSBwYXJ0aWFsIHJlcGVhdCBvZiB0aGUgZXN3aXRjaApmbG93IHJlbW92YWwgY29k ZSB3aGljaCBpcyB3cm9uZyB0b28uCgpUbyBmaXggdGhpbmdzIHVwIHdlIGRvIHRoZSBmb2xsb3dp bmc6CgooMSkgaGFuZGxlIHRoZSBlbmNhcCBhY3Rpb24gb2ZmbG9hZCBpbiB0aGUgZXN3aXRjaCBm bG93IGFkZCBmdW5jdGlvbgogICAgbWx4NWVfdGNfYWRkX2ZkYl9mbG93KCkgYXMgZG9uZSBmb3Ig dGhlIG90aGVyIGFjdGlvbnMgYW5kIHRoZSBydWxlIGl0c2VsZi4KCigyKSBtb2RpZnkgdGhlIG5l aWdoIHVwZGF0ZSBjb2RlIChtbHg1ZV90Y19lbmNhcF9mbG93c19hZGQvZGVsKSB0byBvbmx5CiAg ICBkZWFsIHdpdGggdGhlIGVuY2FwIGVudHJ5IGFuZCBydWxlcyBkZWxldGUvYWRkIGFuZCBub3Qg d2l0aCBhbnkgb2YKICAgIHRoZSBvdGhlciBvZmZsb2FkZWQgYWN0aW9ucy4KCkZpeGVzOiAyMzJj MDAxMzk4YWUgKCduZXQvbWx4NWU6IEFkZCBzdXBwb3J0IHRvIG5laWdoYm91ciB1cGRhdGUgZmxv dycpClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KUmV2 aWV3ZWQtYnk6IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgfCA4OSArKysrKysrKysrKysrKystLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3Rj LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwppbmRl eCA3ZjI4MmU4ZjRlN2YuLmRjN2Y5NTJlMzQxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKQEAgLTc4LDkgKzc4LDExIEBAIHN0cnVjdCBt bHg1ZV90Y19mbG93IHsKIH07CiAKIHN0cnVjdCBtbHg1ZV90Y19mbG93X3BhcnNlX2F0dHIgewor CXN0cnVjdCBpcF90dW5uZWxfaW5mbyB0dW5faW5mbzsKIAlzdHJ1Y3QgbWx4NV9mbG93X3NwZWMg c3BlYzsKIAlpbnQgbnVtX21vZF9oZHJfYWN0aW9uczsKIAl2b2lkICptb2RfaGRyX2FjdGlvbnM7 CisJaW50IG1pcnJlZF9pZmluZGV4OwogfTsKIAogZW51bSB7CkBAIC0zMjIsNiArMzI0LDEyIEBA IHN0YXRpYyB2b2lkIG1seDVlX3RjX2RlbF9uaWNfZmxvdyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diwKIHN0YXRpYyB2b2lkIG1seDVlX2RldGFjaF9lbmNhcChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diwKIAkJCSAgICAgICBzdHJ1Y3QgbWx4NWVfdGNfZmxvdyAqZmxvdyk7CiAKK3N0YXRpYyBpbnQg bWx4NWVfYXR0YWNoX2VuY2FwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAorCQkJICAgICAgc3Ry dWN0IGlwX3R1bm5lbF9pbmZvICp0dW5faW5mbywKKwkJCSAgICAgIHN0cnVjdCBuZXRfZGV2aWNl ICptaXJyZWRfZGV2LAorCQkJICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKiplbmNhcF9kZXYsCisJ CQkgICAgICBzdHJ1Y3QgbWx4NWVfdGNfZmxvdyAqZmxvdyk7CisKIHN0YXRpYyBzdHJ1Y3QgbWx4 NV9mbG93X2hhbmRsZSAqCiBtbHg1ZV90Y19hZGRfZmRiX2Zsb3coc3RydWN0IG1seDVlX3ByaXYg KnByaXYsCiAJCSAgICAgIHN0cnVjdCBtbHg1ZV90Y19mbG93X3BhcnNlX2F0dHIgKnBhcnNlX2F0 dHIsCkBAIC0zMjksOSArMzM3LDI3IEBAIG1seDVlX3RjX2FkZF9mZGJfZmxvdyhzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdiwKIHsKIAlzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cgPSBwcml2LT5tZGV2 LT5wcml2LmVzd2l0Y2g7CiAJc3RydWN0IG1seDVfZXN3X2Zsb3dfYXR0ciAqYXR0ciA9IGZsb3ct PmVzd19hdHRyOwotCXN0cnVjdCBtbHg1X2Zsb3dfaGFuZGxlICpydWxlOworCXN0cnVjdCBuZXRf ZGV2aWNlICpvdXRfZGV2LCAqZW5jYXBfZGV2ID0gTlVMTDsKKwlzdHJ1Y3QgbWx4NV9mbG93X2hh bmRsZSAqcnVsZSA9IE5VTEw7CisJc3RydWN0IG1seDVlX3JlcF9wcml2ICpycHJpdjsKKwlzdHJ1 Y3QgbWx4NWVfcHJpdiAqb3V0X3ByaXY7CiAJaW50IGVycjsKIAorCWlmIChhdHRyLT5hY3Rpb24g JiBNTFg1X0ZMT1dfQ09OVEVYVF9BQ1RJT05fRU5DQVApIHsKKwkJb3V0X2RldiA9IF9fZGV2X2dl dF9ieV9pbmRleChkZXZfbmV0KHByaXYtPm5ldGRldiksCisJCQkJCSAgICAgYXR0ci0+cGFyc2Vf YXR0ci0+bWlycmVkX2lmaW5kZXgpOworCQllcnIgPSBtbHg1ZV9hdHRhY2hfZW5jYXAocHJpdiwg JnBhcnNlX2F0dHItPnR1bl9pbmZvLAorCQkJCQkgb3V0X2RldiwgJmVuY2FwX2RldiwgZmxvdyk7 CisJCWlmIChlcnIpIHsKKwkJCXJ1bGUgPSBFUlJfUFRSKGVycik7CisJCQlpZiAoZXJyICE9IC1F QUdBSU4pCisJCQkJZ290byBlcnJfYXR0YWNoX2VuY2FwOworCQl9CisJCW91dF9wcml2ID0gbmV0 ZGV2X3ByaXYoZW5jYXBfZGV2KTsKKwkJcnByaXYgPSBvdXRfcHJpdi0+cHByaXY7CisJCWF0dHIt Pm91dF9yZXAgPSBycHJpdi0+cmVwOworCX0KKwogCWVyciA9IG1seDVfZXN3aXRjaF9hZGRfdmxh bl9hY3Rpb24oZXN3LCBhdHRyKTsKIAlpZiAoZXJyKSB7CiAJCXJ1bGUgPSBFUlJfUFRSKGVycik7 CkBAIC0zNDcsMTAgKzM3MywxNCBAQCBtbHg1ZV90Y19hZGRfZmRiX2Zsb3coc3RydWN0IG1seDVl X3ByaXYgKnByaXYsCiAJCX0KIAl9CiAKLQlydWxlID0gbWx4NV9lc3dpdGNoX2FkZF9vZmZsb2Fk ZWRfcnVsZShlc3csICZwYXJzZV9hdHRyLT5zcGVjLCBhdHRyKTsKLQlpZiAoSVNfRVJSKHJ1bGUp KQotCQlnb3RvIGVycl9hZGRfcnVsZTsKLQorCS8qIHdlIGdldCBoZXJlIGlmICgxKSB0aGVyZSdz IG5vIGVycm9yIChydWxlIGJlaW5nIG51bGwpIG9yIHdoZW4KKwkgKiAoMikgdGhlcmUncyBhbiBl bmNhcCBhY3Rpb24gYW5kIHdlJ3JlIG9uIC1FQUdBSU4gKG5vIHZhbGlkIG5laWdoKQorCSAqLwor CWlmIChydWxlICE9IEVSUl9QVFIoLUVBR0FJTikpIHsKKwkJcnVsZSA9IG1seDVfZXN3aXRjaF9h ZGRfb2ZmbG9hZGVkX3J1bGUoZXN3LCAmcGFyc2VfYXR0ci0+c3BlYywgYXR0cik7CisJCWlmIChJ U19FUlIocnVsZSkpCisJCQlnb3RvIGVycl9hZGRfcnVsZTsKKwl9CiAJcmV0dXJuIHJ1bGU7CiAK IGVycl9hZGRfcnVsZToKQEAgLTM2MSw2ICszOTEsNyBAQCBtbHg1ZV90Y19hZGRfZmRiX2Zsb3co c3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiBlcnJfYWRkX3ZsYW46CiAJaWYgKGF0dHItPmFjdGlv biAmIE1MWDVfRkxPV19DT05URVhUX0FDVElPTl9FTkNBUCkKIAkJbWx4NWVfZGV0YWNoX2VuY2Fw KHByaXYsIGZsb3cpOworZXJyX2F0dGFjaF9lbmNhcDoKIAlyZXR1cm4gcnVsZTsKIH0KIApAQCAt Mzg5LDYgKzQyMCw4IEBAIHN0YXRpYyB2b2lkIG1seDVlX3RjX2RlbF9mZGJfZmxvdyhzdHJ1Y3Qg bWx4NWVfcHJpdiAqcHJpdiwKIHZvaWQgbWx4NWVfdGNfZW5jYXBfZmxvd3NfYWRkKHN0cnVjdCBt bHg1ZV9wcml2ICpwcml2LAogCQkJICAgICAgc3RydWN0IG1seDVlX2VuY2FwX2VudHJ5ICplKQog eworCXN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyA9IHByaXYtPm1kZXYtPnByaXYuZXN3aXRjaDsK KwlzdHJ1Y3QgbWx4NV9lc3dfZmxvd19hdHRyICplc3dfYXR0cjsKIAlzdHJ1Y3QgbWx4NWVfdGNf ZmxvdyAqZmxvdzsKIAlpbnQgZXJyOwogCkBAIC00MDQsMTAgKzQzNyw5IEBAIHZvaWQgbWx4NWVf dGNfZW5jYXBfZmxvd3NfYWRkKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCW1seDVlX3JlcF9x dWV1ZV9uZWlnaF9zdGF0c193b3JrKHByaXYpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShmbG93 LCAmZS0+Zmxvd3MsIGVuY2FwKSB7Ci0JCWZsb3ctPmVzd19hdHRyLT5lbmNhcF9pZCA9IGUtPmVu Y2FwX2lkOwotCQlmbG93LT5ydWxlID0gbWx4NWVfdGNfYWRkX2ZkYl9mbG93KHByaXYsCi0JCQkJ CQkgICBmbG93LT5lc3dfYXR0ci0+cGFyc2VfYXR0ciwKLQkJCQkJCSAgIGZsb3cpOworCQllc3df YXR0ciA9IGZsb3ctPmVzd19hdHRyOworCQllc3dfYXR0ci0+ZW5jYXBfaWQgPSBlLT5lbmNhcF9p ZDsKKwkJZmxvdy0+cnVsZSA9IG1seDVfZXN3aXRjaF9hZGRfb2ZmbG9hZGVkX3J1bGUoZXN3LCAm ZXN3X2F0dHItPnBhcnNlX2F0dHItPnNwZWMsIGVzd19hdHRyKTsKIAkJaWYgKElTX0VSUihmbG93 LT5ydWxlKSkgewogCQkJZXJyID0gUFRSX0VSUihmbG93LT5ydWxlKTsKIAkJCW1seDVfY29yZV93 YXJuKHByaXYtPm1kZXYsICJGYWlsZWQgdG8gdXBkYXRlIGNhY2hlZCBlbmNhcHN1bGF0aW9uIGZs b3csICVkXG4iLApAQCAtNDIxLDE1ICs0NTMsMTMgQEAgdm9pZCBtbHg1ZV90Y19lbmNhcF9mbG93 c19hZGQoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiB2b2lkIG1seDVlX3RjX2VuY2FwX2Zsb3dz X2RlbChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJCSAgICAgIHN0cnVjdCBtbHg1ZV9lbmNh cF9lbnRyeSAqZSkKIHsKKwlzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cgPSBwcml2LT5tZGV2LT5w cml2LmVzd2l0Y2g7CiAJc3RydWN0IG1seDVlX3RjX2Zsb3cgKmZsb3c7Ci0Jc3RydWN0IG1seDVf ZmMgKmNvdW50ZXI7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZsb3csICZlLT5mbG93cywgZW5j YXApIHsKIAkJaWYgKGZsb3ctPmZsYWdzICYgTUxYNUVfVENfRkxPV19PRkZMT0FERUQpIHsKIAkJ CWZsb3ctPmZsYWdzICY9IH5NTFg1RV9UQ19GTE9XX09GRkxPQURFRDsKLQkJCWNvdW50ZXIgPSBt bHg1X2Zsb3dfcnVsZV9jb3VudGVyKGZsb3ctPnJ1bGUpOwotCQkJbWx4NV9kZWxfZmxvd19ydWxl cyhmbG93LT5ydWxlKTsKLQkJCW1seDVfZmNfZGVzdHJveShwcml2LT5tZGV2LCBjb3VudGVyKTsK KwkJCW1seDVfZXN3aXRjaF9kZWxfb2ZmbG9hZGVkX3J1bGUoZXN3LCBmbG93LT5ydWxlLCBmbG93 LT5lc3dfYXR0cik7CiAJCX0KIAl9CiAKQEAgLTE4NzEsNyArMTkwMSw3IEBAIHN0YXRpYyBpbnQg cGFyc2VfdGNfZmRiX2FjdGlvbnMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVjdCB0Y2Zf ZXh0cyAqZXh0cywKIAogCQlpZiAoaXNfdGNmX21pcnJlZF9lZ3Jlc3NfcmVkaXJlY3QoYSkpIHsK IAkJCWludCBpZmluZGV4ID0gdGNmX21pcnJlZF9pZmluZGV4KGEpOwotCQkJc3RydWN0IG5ldF9k ZXZpY2UgKm91dF9kZXYsICplbmNhcF9kZXYgPSBOVUxMOworCQkJc3RydWN0IG5ldF9kZXZpY2Ug Km91dF9kZXY7CiAJCQlzdHJ1Y3QgbWx4NWVfcHJpdiAqb3V0X3ByaXY7CiAKIAkJCW91dF9kZXYg PSBfX2Rldl9nZXRfYnlfaW5kZXgoZGV2X25ldChwcml2LT5uZXRkZXYpLCBpZmluZGV4KTsKQEAg LTE4ODQsMTcgKzE5MTQsMTMgQEAgc3RhdGljIGludCBwYXJzZV90Y19mZGJfYWN0aW9ucyhzdHJ1 Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IHRjZl9leHRzICpleHRzLAogCQkJCXJwcml2ID0g b3V0X3ByaXYtPnBwcml2OwogCQkJCWF0dHItPm91dF9yZXAgPSBycHJpdi0+cmVwOwogCQkJfSBl bHNlIGlmIChlbmNhcCkgewotCQkJCWVyciA9IG1seDVlX2F0dGFjaF9lbmNhcChwcml2LCBpbmZv LAotCQkJCQkJCSBvdXRfZGV2LCAmZW5jYXBfZGV2LCBmbG93KTsKLQkJCQlpZiAoZXJyICYmIGVy ciAhPSAtRUFHQUlOKQotCQkJCQlyZXR1cm4gZXJyOworCQkJCXBhcnNlX2F0dHItPm1pcnJlZF9p ZmluZGV4ID0gaWZpbmRleDsKKwkJCQlwYXJzZV9hdHRyLT50dW5faW5mbyA9ICppbmZvOworCQkJ CWF0dHItPnBhcnNlX2F0dHIgPSBwYXJzZV9hdHRyOwogCQkJCWF0dHItPmFjdGlvbiB8PSBNTFg1 X0ZMT1dfQ09OVEVYVF9BQ1RJT05fRU5DQVAgfAogCQkJCQlNTFg1X0ZMT1dfQ09OVEVYVF9BQ1RJ T05fRldEX0RFU1QgfAogCQkJCQlNTFg1X0ZMT1dfQ09OVEVYVF9BQ1RJT05fQ09VTlQ7Ci0JCQkJ b3V0X3ByaXYgPSBuZXRkZXZfcHJpdihlbmNhcF9kZXYpOwotCQkJCXJwcml2ID0gb3V0X3ByaXYt PnBwcml2OwotCQkJCWF0dHItPm91dF9yZXAgPSBycHJpdi0+cmVwOwotCQkJCWF0dHItPnBhcnNl X2F0dHIgPSBwYXJzZV9hdHRyOworCQkJCS8qIGF0dHItPm91dF9yZXAgaXMgcmVzb2x2ZWQgd2hl biB3ZSBoYW5kbGUgZW5jYXAgKi8KIAkJCX0gZWxzZSB7CiAJCQkJcHJfZXJyKCJkZXZpY2VzICVz ICVzIG5vdCBvbiBzYW1lIHN3aXRjaCBIVywgY2FuJ3Qgb2ZmbG9hZCBmb3J3YXJkaW5nXG4iLAog CQkJCSAgICAgICBwcml2LT5uZXRkZXYtPm5hbWUsIG91dF9kZXYtPm5hbWUpOwpAQCAtMTk3Miw3 ICsxOTk4LDcgQEAgaW50IG1seDVlX2NvbmZpZ3VyZV9mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYg KnByaXYsIF9fYmUxNiBwcm90b2NvbCwKIAlpZiAoZmxvdy0+ZmxhZ3MgJiBNTFg1RV9UQ19GTE9X X0VTV0lUQ0gpIHsKIAkJZXJyID0gcGFyc2VfdGNfZmRiX2FjdGlvbnMocHJpdiwgZi0+ZXh0cywg cGFyc2VfYXR0ciwgZmxvdyk7CiAJCWlmIChlcnIgPCAwKQotCQkJZ290byBlcnJfaGFuZGxlX2Vu Y2FwX2Zsb3c7CisJCQlnb3RvIGVycl9mcmVlOwogCQlmbG93LT5ydWxlID0gbWx4NWVfdGNfYWRk X2ZkYl9mbG93KHByaXYsIHBhcnNlX2F0dHIsIGZsb3cpOwogCX0gZWxzZSB7CiAJCWVyciA9IHBh cnNlX3RjX25pY19hY3Rpb25zKHByaXYsIGYtPmV4dHMsIHBhcnNlX2F0dHIsIGZsb3cpOwpAQCAt MTk4MywxMCArMjAwOSwxMyBAQCBpbnQgbWx4NWVfY29uZmlndXJlX2Zsb3dlcihzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdiwgX19iZTE2IHByb3RvY29sLAogCiAJaWYgKElTX0VSUihmbG93LT5ydWxl KSkgewogCQllcnIgPSBQVFJfRVJSKGZsb3ctPnJ1bGUpOwotCQlnb3RvIGVycl9mcmVlOworCQlp ZiAoZXJyICE9IC1FQUdBSU4pCisJCQlnb3RvIGVycl9mcmVlOwogCX0KIAotCWZsb3ctPmZsYWdz IHw9IE1MWDVFX1RDX0ZMT1dfT0ZGTE9BREVEOworCWlmIChlcnIgIT0gLUVBR0FJTikKKwkJZmxv dy0+ZmxhZ3MgfD0gTUxYNUVfVENfRkxPV19PRkZMT0FERUQ7CisKIAllcnIgPSByaGFzaHRhYmxl X2luc2VydF9mYXN0KCZ0Yy0+aHQsICZmbG93LT5ub2RlLAogCQkJCSAgICAgdGMtPmh0X3BhcmFt cyk7CiAJaWYgKGVycikKQEAgLTIwMDAsMTYgKzIwMjksNiBAQCBpbnQgbWx4NWVfY29uZmlndXJl X2Zsb3dlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgX19iZTE2IHByb3RvY29sLAogZXJyX2Rl bF9ydWxlOgogCW1seDVlX3RjX2RlbF9mbG93KHByaXYsIGZsb3cpOwogCi1lcnJfaGFuZGxlX2Vu Y2FwX2Zsb3c6Ci0JaWYgKGVyciA9PSAtRUFHQUlOKSB7Ci0JCWVyciA9IHJoYXNodGFibGVfaW5z ZXJ0X2Zhc3QoJnRjLT5odCwgJmZsb3ctPm5vZGUsCi0JCQkJCSAgICAgdGMtPmh0X3BhcmFtcyk7 Ci0JCWlmIChlcnIpCi0JCQltbHg1ZV90Y19kZWxfZmxvdyhwcml2LCBmbG93KTsKLQkJZWxzZQot CQkJcmV0dXJuIDA7Ci0JfQotCiBlcnJfZnJlZToKIAlrdmZyZWUocGFyc2VfYXR0cik7CiAJa2Zy ZWUoZmxvdyk7Ci0tIAoyLjEzLjYKCgpGcm9tIDJhMTkxZjllMGMxMjFhMzNhNWRkNmFhYzdhOTc1 NTNmMTNhNmU5YTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNp ZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNiBPY3QgMjAxNyAxOToxOTo1NiArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMjYvMzddIGlwaXA6IG9ubHkgaW5jcmVhc2UgZXJyX2NvdW50IGZvciBz b21lIGNlcnRhaW4gdHlwZQogaWNtcCBpbiBpcGlwX2VycgoKWyBVcHN0cmVhbSBjb21taXQgZjM1 OTRmMGE3ZWEzNjY2MWQ3ZmQ5NDJmYWNkN2YzMWE2NDI0NWYxYSBdCgp0LT5lcnJfY291bnQgaXMg dXNlZCB0byBjb3VudCB0aGUgbGluayBmYWlsdXJlIG9uIHR1bm5lbCBhbmQgYW4gZXJyCndpbGwg YmUgcmVwb3J0ZWQgdG8gdXNlciBzb2NrZXQgaW4gdHggcGF0aCBpZiB0LT5lcnJfY291bnQgaXMg bm90IDAuCnVkcCBzb2NrZXQgY291bGQgZXZlbiByZXR1cm4gRUhPU1RVTlJFQUNIIHRvIHVzZXJz LgoKU2luY2UgY29tbWl0IGZkNTgxNTZlNDU2ZCAoIklQSVA6IFVzZSBpcC10dW5uZWxpbmcgY29k ZS4iKSByZW1vdmVkCnRoZSAnc3dpdGNoIGNoZWNrJyBmb3IgaWNtcCB0eXBlIGluIGlwaXBfZXJy KCksIGVycl9jb3VudCB3b3VsZCBiZQppbmNyZWFzZWQgYnkgdGhlIGljbXAgcGFja2V0IHdpdGgg SUNNUF9FWENfRlJBR1RJTUUgY29kZS4gYW4gbGluawpmYWlsdXJlIHdvdWxkIGJlIHJlcG9ydGVk IG91dCBkdWUgdG8gdGhpcy4KCkluIEppYW5saW4ncyBjYXNlLCB3aGVuIHJlY2VpdmluZyBJQ01Q X0VYQ19GUkFHVElNRSBhIGljbXAgcGFja2V0LAp1ZHAgbmV0cGVyZiBmYWlsZWQgd2l0aCB0aGUg ZXJyOgogIHNlbmRfZGF0YTogZGF0YSBzZW5kIGVycm9yOiBObyByb3V0ZSB0byBob3N0IChlcnJu byAxMTMpCgpXZSBleHBlY3QgdGhpcyBlcnJvciByZXBvcnRlZCBmcm9tIHR1bm5lbCB0byBzb2Nr ZXQgd2hlbiByZWNlaXZpbmcKc29tZSBjZXJ0YWluIHR5cGUgaWNtcCwgYnV0IG5vdCBJQ01QX0VY Q19GUkFHVElNRSwgSUNNUF9TUl9GQUlMRUQKb3IgSUNNUF9QQVJBTUVURVJQUk9CIG9uZXMuCgpU aGlzIHBhdGNoIGlzIHRvIGJyaW5nICdzd2l0Y2ggY2hlY2snIGZvciBpY21wIHR5cGUgYmFjayB0 byBpcGlwX2VycgpzbyB0aGF0IGl0IG9ubHkgcmVwb3J0cyBsaW5rIGZhaWx1cmUgZm9yIHRoZSBy aWdodCB0eXBlIGljbXAsIGp1c3QgYXMKaW4gaXBncmVfZXJyKCkgYW5kIGlwaXA2X2VycigpLgoK Rml4ZXM6IGZkNTgxNTZlNDU2ZCAoIklQSVA6IFVzZSBpcC10dW5uZWxpbmcgY29kZS4iKQpSZXBv cnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhp biBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwaXAuYyB8IDU5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY0L2lwaXAuYyBiL25ldC9pcHY0L2lwaXAuYwppbmRleCBmYjFhZDIyYjVlMjku LmNkZDYyNzM1NWVkMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBpcC5jCisrKyBiL25ldC9pcHY0 L2lwaXAuYwpAQCAtMTI4LDQzICsxMjgsNjggQEAgc3RhdGljIHN0cnVjdCBydG5sX2xpbmtfb3Bz IGlwaXBfbGlua19vcHMgX19yZWFkX21vc3RseTsKIAogc3RhdGljIGludCBpcGlwX2VycihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgaW5mbykKIHsKLQotLyogQWxsIHRoZSByb3V0ZXJzIChleGNl cHQgZm9yIExpbnV4KSByZXR1cm4gb25seQotICAgOCBieXRlcyBvZiBwYWNrZXQgcGF5bG9hZC4g SXQgbWVhbnMsIHRoYXQgcHJlY2lzZSByZWxheWluZyBvZgotICAgSUNNUCBpbiB0aGUgcmVhbCBJ bnRlcm5ldCBpcyBhYnNvbHV0ZWx5IGluZmVhc2libGUuCi0gKi8KKwkvKiBBbGwgdGhlIHJvdXRl cnMgKGV4Y2VwdCBmb3IgTGludXgpIHJldHVybiBvbmx5CisJICogOCBieXRlcyBvZiBwYWNrZXQg cGF5bG9hZC4gSXQgbWVhbnMsIHRoYXQgcHJlY2lzZSByZWxheWluZyBvZgorCSAqIElDTVAgaW4g dGhlIHJlYWwgSW50ZXJuZXQgaXMgYWJzb2x1dGVseSBpbmZlYXNpYmxlLgorCSAqLwogCXN0cnVj dCBuZXQgKm5ldCA9IGRldl9uZXQoc2tiLT5kZXYpOwogCXN0cnVjdCBpcF90dW5uZWxfbmV0ICpp dG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGlwaXBfbmV0X2lkKTsKIAljb25zdCBzdHJ1Y3QgaXBoZHIg KmlwaCA9IChjb25zdCBzdHJ1Y3QgaXBoZHIgKilza2ItPmRhdGE7Ci0Jc3RydWN0IGlwX3R1bm5l bCAqdDsKLQlpbnQgZXJyOwogCWNvbnN0IGludCB0eXBlID0gaWNtcF9oZHIoc2tiKS0+dHlwZTsK IAljb25zdCBpbnQgY29kZSA9IGljbXBfaGRyKHNrYiktPmNvZGU7CisJc3RydWN0IGlwX3R1bm5l bCAqdDsKKwlpbnQgZXJyID0gMDsKKworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgSUNNUF9ERVNU X1VOUkVBQ0g6CisJCXN3aXRjaCAoY29kZSkgeworCQljYXNlIElDTVBfU1JfRkFJTEVEOgorCQkJ LyogSW1wb3NzaWJsZSBldmVudC4gKi8KKwkJCWdvdG8gb3V0OworCQlkZWZhdWx0OgorCQkJLyog QWxsIG90aGVycyBhcmUgdHJhbnNsYXRlZCB0byBIT1NUX1VOUkVBQ0guCisJCQkgKiByZmMyMDAz IGNvbnRhaW5zICJkZWVwIHRob3VnaHRzIiBhYm91dCBORVRfVU5SRUFDSCwKKwkJCSAqIEkgYmVs aWV2ZSB0aGV5IGFyZSBqdXN0IGV0aGVyIHBvbGx1dGlvbi4gLS1BTksKKwkJCSAqLworCQkJYnJl YWs7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIElDTVBfVElNRV9FWENFRURFRDoKKwkJaWYgKGNv ZGUgIT0gSUNNUF9FWENfVFRMKQorCQkJZ290byBvdXQ7CisJCWJyZWFrOworCisJY2FzZSBJQ01Q X1JFRElSRUNUOgorCQlicmVhazsKKworCWRlZmF1bHQ6CisJCWdvdG8gb3V0OworCX0KIAotCWVy ciA9IC1FTk9FTlQ7CiAJdCA9IGlwX3R1bm5lbF9sb29rdXAoaXRuLCBza2ItPmRldi0+aWZpbmRl eCwgVFVOTkVMX05PX0tFWSwKIAkJCSAgICAgaXBoLT5kYWRkciwgaXBoLT5zYWRkciwgMCk7Ci0J aWYgKCF0KQorCWlmICghdCkgeworCQllcnIgPSAtRU5PRU5UOwogCQlnb3RvIG91dDsKKwl9CiAK IAlpZiAodHlwZSA9PSBJQ01QX0RFU1RfVU5SRUFDSCAmJiBjb2RlID09IElDTVBfRlJBR19ORUVE RUQpIHsKLQkJaXB2NF91cGRhdGVfcG10dShza2IsIGRldl9uZXQoc2tiLT5kZXYpLCBpbmZvLAot CQkJCSB0LT5wYXJtcy5saW5rLCAwLCBpcGgtPnByb3RvY29sLCAwKTsKLQkJZXJyID0gMDsKKwkJ aXB2NF91cGRhdGVfcG10dShza2IsIG5ldCwgaW5mbywgdC0+cGFybXMubGluaywgMCwKKwkJCQkg aXBoLT5wcm90b2NvbCwgMCk7CiAJCWdvdG8gb3V0OwogCX0KIAogCWlmICh0eXBlID09IElDTVBf UkVESVJFQ1QpIHsKLQkJaXB2NF9yZWRpcmVjdChza2IsIGRldl9uZXQoc2tiLT5kZXYpLCB0LT5w YXJtcy5saW5rLCAwLAotCQkJICAgICAgaXBoLT5wcm90b2NvbCwgMCk7Ci0JCWVyciA9IDA7CisJ CWlwdjRfcmVkaXJlY3Qoc2tiLCBuZXQsIHQtPnBhcm1zLmxpbmssIDAsIGlwaC0+cHJvdG9jb2ws IDApOwogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAodC0+cGFybXMuaXBoLmRhZGRyID09IDApCisJ aWYgKHQtPnBhcm1zLmlwaC5kYWRkciA9PSAwKSB7CisJCWVyciA9IC1FTk9FTlQ7CiAJCWdvdG8g b3V0OworCX0KIAotCWVyciA9IDA7CiAJaWYgKHQtPnBhcm1zLmlwaC50dGwgPT0gMCAmJiB0eXBl ID09IElDTVBfVElNRV9FWENFRURFRCkKIAkJZ290byBvdXQ7CiAKLS0gCjIuMTMuNgoKCkZyb20g NDA5YzU0N2Q2NmM0M2UwZjMwOWFlODcwYTAyOWE1ZDVhMTgwODYxYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBUaHUs IDI2IE9jdCAyMDE3IDE5OjIzOjI3ICswODAwClN1YmplY3Q6IFtQQVRDSCAyNy8zN10gaXA2X2dy ZTogb25seSBpbmNyZWFzZSBlcnJfY291bnQgZm9yIHNvbWUgY2VydGFpbiB0eXBlCiBpY21wdjYg aW4gaXA2Z3JlX2VycgoKWyBVcHN0cmVhbSBjb21taXQgZjhkMjBiNDZjZTU1Y2Y0MGFmYjMwZGNl ZjZkOTI4OGY3ZWY0NmQ5YiBdCgpUaGUgc2ltaWxhciBmaXggaW4gcGF0Y2ggJ2lwaXA6IG9ubHkg aW5jcmVhc2UgZXJyX2NvdW50IGZvciBzb21lCmNlcnRhaW4gdHlwZSBpY21wIGluIGlwaXBfZXJy JyBpcyBuZWVkZWQgZm9yIGlwNmdyZV9lcnIuCgpJbiBKaWFubGluJ3MgY2FzZSwgdWRwIG5ldHBl cmYgYnJva2UgZXZlbiB3aGVuIHJlY2VpdmluZyBhIFRvb0JpZwppY21wdjYgcGFja2V0LgoKRml4 ZXM6IGMxMmIzOTVhNDY2NCAoImdyZTogU3VwcG9ydCBHUkUgb3ZlciBJUHY2IikKUmVwb3J0ZWQt Ynk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9u ZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCAxMSArKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXgg MTYwMmI0OTFiMjgxLi5mYjU5NWU4ZGMxNWIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9ncmUu YworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTQwOCwxMyArNDA4LDE2IEBAIHN0YXRpYyB2 b2lkIGlwNmdyZV9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3NrYl9wYXJt ICpvcHQsCiAJY2FzZSBJQ01QVjZfREVTVF9VTlJFQUNIOgogCQluZXRfZGJnX3JhdGVsaW1pdGVk KCIlczogUGF0aCB0byBkZXN0aW5hdGlvbiBpbnZhbGlkIG9yIGluYWN0aXZlIVxuIiwKIAkJCQkg ICAgdC0+cGFybXMubmFtZSk7Ci0JCWJyZWFrOworCQlpZiAoY29kZSAhPSBJQ01QVjZfUE9SVF9V TlJFQUNIKQorCQkJYnJlYWs7CisJCXJldHVybjsKIAljYXNlIElDTVBWNl9USU1FX0VYQ0VFRDoK IAkJaWYgKGNvZGUgPT0gSUNNUFY2X0VYQ19IT1BMSU1JVCkgewogCQkJbmV0X2RiZ19yYXRlbGlt aXRlZCgiJXM6IFRvbyBzbWFsbCBob3AgbGltaXQgb3Igcm91dGluZyBsb29wIGluIHR1bm5lbCFc biIsCiAJCQkJCSAgICB0LT5wYXJtcy5uYW1lKTsKKwkJCWJyZWFrOwogCQl9Ci0JCWJyZWFrOwor CQlyZXR1cm47CiAJY2FzZSBJQ01QVjZfUEFSQU1QUk9COgogCQl0ZWxpID0gMDsKIAkJaWYgKGNv ZGUgPT0gSUNNUFY2X0hEUl9GSUVMRCkKQEAgLTQzMCw3ICs0MzMsNyBAQCBzdGF0aWMgdm9pZCBp cDZncmVfZXJyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpbmV0Nl9za2JfcGFybSAqb3B0 LAogCQkJbmV0X2RiZ19yYXRlbGltaXRlZCgiJXM6IFJlY2lwaWVudCB1bmFibGUgdG8gcGFyc2Ug dHVubmVsZWQgcGFja2V0IVxuIiwKIAkJCQkJICAgIHQtPnBhcm1zLm5hbWUpOwogCQl9Ci0JCWJy ZWFrOworCQlyZXR1cm47CiAJY2FzZSBJQ01QVjZfUEtUX1RPT0JJRzoKIAkJbXR1ID0gYmUzMl90 b19jcHUoaW5mbykgLSBvZmZzZXQgLSB0LT50dW5faGxlbjsKIAkJaWYgKHQtPmRldi0+dHlwZSA9 PSBBUlBIUkRfRVRIRVIpCkBAIC00MzgsNyArNDQxLDcgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX2Vy cihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0gKm9wdCwKIAkJaWYg KG10dSA8IElQVjZfTUlOX01UVSkKIAkJCW10dSA9IElQVjZfTUlOX01UVTsKIAkJdC0+ZGV2LT5t dHUgPSBtdHU7Ci0JCWJyZWFrOworCQlyZXR1cm47CiAJfQogCiAJaWYgKHRpbWVfYmVmb3JlKGpp ZmZpZXMsIHQtPmVycl90aW1lICsgSVA2VFVOTkVMX0VSUl9USU1FTykpCi0tIAoyLjEzLjYKCgpG cm9tIGNkMDc2ZmU0YjQwNmJmYTIyZGZlYzA1NjczYWE0NjczOTRlMjBhZDUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAyNiBPY3QgMjAxNyAxOToyNzoxNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzddIGlw Nl9ncmU6IHVwZGF0ZSBkc3QgcG10dSBpZiBkZXYgbXR1IGhhcyBiZWVuIHVwZGF0ZWQgYnkKIHRv b2JpZyBpbiBfX2dyZTZfeG1pdAoKWyBVcHN0cmVhbSBjb21taXQgOGFlYzQ5NTlkODMyYmFlMDg4 OWE4ZTJmMzQ4OTczYjVlNGFiZmZlZiBdCgpXaGVuIHJlY2VpdmluZyBhIFRvb2JpZyBpY21wdjYg cGFja2V0LCBpcDZncmVfZXJyIHdvdWxkIGp1c3Qgc2V0CnR1bm5lbCBkZXYncyBtdHUsIHRoYXQn cyBub3QgZW5vdWdoLiBGb3Igc2tiX2RzdChza2IpJ3MgcG10dSBtYXkKc3RpbGwgYmUgdXNpbmcg dGhlIG9sZCB2YWx1ZSwgaXQgaGFzIG5vIGNoYW5jZSB0byBiZSB1cGRhdGVkIHdpdGgKdHVubmVs IGRldidzIG10dS4KCkppYW5saW4gZm91bmQgdGhpcyBpc3N1ZSBieSByZWR1Y2luZyByb3V0ZSdz IG10dSB3aGlsZSBydW5uaW5nCm5ldHBlcmYsIHRoZSBwZXJmb3JtYW5jZSB3ZW50IHRvIDAuCgpp cDZpcDYgYW5kIGlwNGlwNiB0dW5uZWwgY2FuIHdvcmsgd2VsbCB3aXRoIHRoaXMsIGFzIHRoZXkg bG9va3VwCnRoZSB1cHBlciBkc3QgYW5kIHVwZGF0ZV9wbXR1IGl0J3MgcG10dSBvciBpY21wdjZf c2VuZCBhIFRvb2JpZwp0byB1cHBlciBzb2NrZXQgYWZ0ZXIgc2V0dGluZyB0dW5uZWwgZGV2J3Mg bXR1LgoKV2UgY291bGRuJ3QgZG8gdGhhdCBmb3IgaXA2X2dyZSwgYXMgZ3JlJ3MgaW5uZXIgcGFj a2V0IGNvdWxkIGJlCmFueSBwcm90b2NvbCwgaXQncyBkaWZmaWN1bHQgdG8gaGFuZGxlIHRoZW0g KGxpa2UgbG9va3VwIHVwcGVyCmRzdCkgaW4gYSBnb29kIHdheS4KClNvIHRoaXMgcGF0Y2ggaXMg dG8gZml4IGl0IGJ5IHVwZGF0aW5nIHNrYl9kc3Qoc2tiKSdzIHBtdHUgd2hlbgpkZXYtPm10dSA8 IHNrYl9kc3Qoc2tiKSdzIHBtdHUgaW4gdHggcGF0aC4gSXQncyBzYWZlIHRvIGRvIHRoaXMKdXBk YXRlIHRoZXJlLCBhcyB1c3VhbGx5IGRldi0+bXR1IDw9IHNrYl9kc3Qoc2tiKSdzIHBtdHUgYW5k IG5vCnBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gY2FuIGJlIGNhdXNlZCBieSB0aGlzLgoKRml4ZXM6 IGMxMmIzOTVhNDY2NCAoImdyZTogU3VwcG9ydCBHUkUgb3ZlciBJUHY2IikKUmVwb3J0ZWQtYnk6 IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8 bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCA5ICsrKysrKystLQog MSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggZmI1OTVl OGRjMTViLi41OWMxMjFiOTMyYWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9ncmUuYworKysg Yi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTUwMyw4ICs1MDMsOCBAQCBzdGF0aWMgbmV0ZGV2X3R4 X3QgX19ncmU2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgICBfX3UzMiAqcG10 dSwgX19iZTE2IHByb3RvKQogewogCXN0cnVjdCBpcDZfdG5sICp0dW5uZWwgPSBuZXRkZXZfcHJp dihkZXYpOwotCV9fYmUxNiBwcm90b2NvbCA9IChkZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKSA/ Ci0JCQkgIGh0b25zKEVUSF9QX1RFQikgOiBwcm90bzsKKwlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Qg PSBza2JfZHN0KHNrYik7CisJX19iZTE2IHByb3RvY29sOwogCiAJaWYgKGRldi0+dHlwZSA9PSBB UlBIUkRfRVRIRVIpCiAJCUlQQ0Ioc2tiKS0+ZmxhZ3MgPSAwOwpAQCAtNTE4LDkgKzUxOCwxNCBA QCBzdGF0aWMgbmV0ZGV2X3R4X3QgX19ncmU2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJ dHVubmVsLT5vX3NlcW5vKys7CiAKIAkvKiBQdXNoIEdSRSBoZWFkZXIuICovCisJcHJvdG9jb2wg PSAoZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikgPyBodG9ucyhFVEhfUF9URUIpIDogcHJvdG87 CiAJZ3JlX2J1aWxkX2hlYWRlcihza2IsIHR1bm5lbC0+dHVuX2hsZW4sIHR1bm5lbC0+cGFybXMu b19mbGFncywKIAkJCSBwcm90b2NvbCwgdHVubmVsLT5wYXJtcy5vX2tleSwgaHRvbmwodHVubmVs LT5vX3NlcW5vKSk7CiAKKwkvKiBUb29CaWcgcGFja2V0IG1heSBoYXZlIHVwZGF0ZWQgZHN0LT5k ZXYncyBtdHUgKi8KKwlpZiAoZHN0ICYmIGRzdF9tdHUoZHN0KSA+IGRzdC0+ZGV2LT5tdHUpCisJ CWRzdC0+b3BzLT51cGRhdGVfcG10dShkc3QsIE5VTEwsIHNrYiwgZHN0LT5kZXYtPm10dSk7CisK IAlyZXR1cm4gaXA2X3RubF94bWl0KHNrYiwgZGV2LCBkc2ZpZWxkLCBmbDYsIGVuY2FwX2xpbWl0 LCBwbXR1LAogCQkJICAgIE5FWFRIRFJfR1JFKTsKIH0KLS0gCjIuMTMuNgoKCkZyb20gOWFlN2Y0 OGI2N2VjMTUzNjhlMzQ2MDcyNmQ2YzJlZjhiMjExNzFjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDI2 IE9jdCAyMDE3IDIxOjIxOjQwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyOS8zN10gdGNwOiByZWZy ZXNoIHRwIHRpbWVzdGFtcCBiZWZvcmUgdGNwX210dV9wcm9iZSgpCgpbIFVwc3RyZWFtIGNvbW1p dCBlZTE4MzZhZWM0ZjVhOTc3YzE2OTlhMzExZGI0ZDkwMjdlZjIxYWM4IF0KCkluIHRoZSB1bmxp a2VseSBldmVudCB0Y3BfbXR1X3Byb2JlKCkgaXMgc2VuZGluZyBhIHBhY2tldCwgd2UKd2FudCB0 cC0+dGNwX21zdGFtcCBiZWluZyBhcyBhY2N1cmF0ZSBhcyBwb3NzaWJsZS4KClRoaXMgbWVhbnMg d2UgbmVlZCB0byBjYWxsIHRjcF9tc3RhbXBfcmVmcmVzaCgpIGEgYml0IGVhcmxpZXIgaW4KdGNw X3dyaXRlX3htaXQoKS4KCkZpeGVzOiAzODVlMjA3MDZmYWMgKCJ0Y3A6IHVzZSB0cC0+dGNwX21z dGFtcCBpbiBvdXRwdXQgcGF0aCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwppbmRleCA0MGY3YzhlZTliYTYu Ljk3OTg0NjBiNjFhYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1dC5jCisrKyBiL25l dC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtMjI3MSw2ICsyMjcxLDcgQEAgc3RhdGljIGJvb2wgdGNw X3dyaXRlX3htaXQoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgbXNzX25vdywgaW50IG5v bmFnbGUsCiAKIAlzZW50X3BrdHMgPSAwOwogCisJdGNwX21zdGFtcF9yZWZyZXNoKHRwKTsKIAlp ZiAoIXB1c2hfb25lKSB7CiAJCS8qIERvIE1UVSBwcm9iaW5nLiAqLwogCQlyZXN1bHQgPSB0Y3Bf bXR1X3Byb2JlKHNrKTsKQEAgLTIyODIsNyArMjI4Myw2IEBAIHN0YXRpYyBib29sIHRjcF93cml0 ZV94bWl0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IG1zc19ub3csIGludCBub25hZ2xl LAogCX0KIAogCW1heF9zZWdzID0gdGNwX3Rzb19zZWdzKHNrLCBtc3Nfbm93KTsKLQl0Y3BfbXN0 YW1wX3JlZnJlc2godHApOwogCXdoaWxlICgoc2tiID0gdGNwX3NlbmRfaGVhZChzaykpKSB7CiAJ CXVuc2lnbmVkIGludCBsaW1pdDsKIAotLSAKMi4xMy42CgoKRnJvbSAxYjA4YTdkMWU4MTk2MjIw YzJkOGQxOWI5MTgxNTkyNTJlOGVkZmVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBH aXJpc2ggTW9vZGFsYmFpbCA8Z2lyaXNoLm1vb2RhbGJhaWxAb3JhY2xlLmNvbT4KRGF0ZTogRnJp LCAyNyBPY3QgMjAxNyAwMDowMDoxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzddIHRhcDog cmVmZXJlbmNlIHRvIEtWQSBvZiBhbiB1bmxvYWRlZCBtb2R1bGUgY2F1c2VzCiBrZXJuZWwgcGFu aWMKClsgVXBzdHJlYW0gY29tbWl0IGRlYTZlMTlmNGVmNzQ2YWExOGI0YzMzZDFhN2ZlZDU0MzU2 Nzk2ZWQgXQoKVGhlIGNvbW1pdCA5YTM5M2I1ZDU5ODggKCJ0YXA6IHRhcCBhcyBhbiBpbmRlcGVu ZGVudCBtb2R1bGUiKSBjcmVhdGVkIGEKc2VwYXJhdGUgdGFwIG1vZHVsZSB0aGF0IGltcGxlbWVu dHMgdGFwIGZ1bmN0aW9uYWxpdHkgYW5kIGV4cG9ydHMKaW50ZXJmYWNlcyB0aGF0IHdpbGwgYmUg dXNlZCBieSBtYWN2dGFwIGFuZCBpcHZ0YXAgbW9kdWxlcyB0byBjcmVhdGUKY3JlYXRlIHJlc3Bl Y3RpdmUgdGFwIGRldmljZXMuCgpIb3dldmVyLCB0aGF0IHBhdGNoIGludHJvZHVjZWQgYSByZWdy ZXNzaW9uIHdoZXJlaW4gdGhlIG1vZHVsZXMgbWFjdnRhcAphbmQgaXB2dGFwIGNhbiBiZSByZW1v dmVkICh0aHJvdWdoIG1vZHByb2JlIC1yKSB3aGlsZSB0aGVyZSBhcmUKYXBwbGljYXRpb25zIHVz aW5nIHRoZSByZXNwZWN0aXZlIC9kZXYvdGFwWCBkZXZpY2VzLiBUaGVzZSBhcHBsaWNhdGlvbnMK Y2F1c2Uga2VybmVsIHRvIGhvbGQgcmVmZXJlbmNlIHRvIC9kZXYvdGFwWCB0aHJvdWdoICdzdHJ1 Y3QgY2RldgptYWN2dGFwX2NkZXYnIGFuZCAnc3RydWN0IGNkZXYgaXB2dGFwX2RldicgZGVmaW5l ZCBpbiBtYWN2dGFwIGFuZCBpcHZ0YXAKbW9kdWxlcyByZXNwZWN0aXZlbHkuIFNvLCAgd2hlbiB0 aGUgYXBwbGljYXRpb24gaXMgbGF0ZXIgY2xvc2VkIHRoZQprZXJuZWwgcGFuaWNzIGJlY2F1c2Ug d2UgYXJlIHJlZmVyZW5jaW5nIEtWQSB0aGF0IGlzIHByZXNlbnQgaW4gdGhlCnVubG9hZGVkIG1v ZHVsZXMuCgotLS0tLS0tLS0tODwtLS0tLS0tIEV4YW1wbGUgLS0tLS0tLS0tLTg8LS0tLS0tLS0t LQokIHN1ZG8gaXAgbGkgYWRkIG5hbWUgbXYwIGxpbmsgZW5wN3MwIHR5cGUgbWFjdnRhcAokIHN1 ZG8gaXAgbGkgc2hvdyBtdjAgfGdyZXAgbXYwfCBhd2sgLWUgJ3twcmludCAkMSAkMn0nCiAgMTQ6 bXYwQGVucDdzMDoKJCBjYXQgL2Rldi90YXAxNCAmCiQgbHNtb2QgfGVncmVwIC1pICd0YXB8dmxh bicKbWFjdnRhcCAgICAgICAgICAgICAgICAxNjM4NCAgMAptYWN2bGFuICAgICAgICAgICAgICAg IDI0NTc2ICAxIG1hY3Z0YXAKdGFwICAgICAgICAgICAgICAgICAgICAyNDU3NiAgMyBtYWN2dGFw CiQgc3VkbyBtb2Rwcm9iZSAtciBtYWN2dGFwCiQgZmcKY2F0IC9kZXYvdGFwMTQKXkMKCjwuLi5z eXN0ZW0gcGFuaWNzLi4uPgpCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIHBhZ2luZyByZXF1 ZXN0IGF0IGZmZmZmZmZmYTAzOGM1MDAKSVA6IGNkZXZfcHV0KzB4Zi8weDMwCi0tLS0tLS0tLS04 PC0tLS0tLS0tLS0tLS0tLS0tODwtLS0tLS0tLS0tCgpUaGUgZml4IGlzIHRvIHNldCBjZGV2Lm93 bmVyIHRvIHRoZSBtb2R1bGUgdGhhdCBjcmVhdGVzIHRoZSB0YXAgZGV2aWNlCihlaXRoZXIgbWFj dnRhcCBvciBpcHZ0YXApLiBXaXRoIHRoaXMgc2V0LCB0aGUgb3BlcmF0aW9ucyAoaW4KZnMvY2hh cl9kZXYuYykgb24gY2hhciBkZXZpY2UgaG9sZHMgYW5kIHJlbGVhc2VzIHRoZSBtb2R1bGUgdGhy b3VnaApjZGV2X2dldCgpIGFuZCBjZGV2X3B1dCgpIGFuZCB3aWxsIG5vdCBhbGxvdyB0aGUgbW9k dWxlIHRvIHVubG9hZApwcmVtYXR1cmVseS4KCkZpeGVzOiA5YTM5M2I1ZDU5ODhlYTRlICh0YXA6 IHRhcCBhcyBhbiBpbmRlcGVuZGVudCBtb2R1bGUpClNpZ25lZC1vZmYtYnk6IEdpcmlzaCBNb29k YWxiYWlsIDxnaXJpc2gubW9vZGFsYmFpbEBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaXB2bGFu L2lwdnRhcC5jIHwgNCArKy0tCiBkcml2ZXJzL25ldC9tYWN2dGFwLmMgICAgICAgfCA0ICsrLS0K IGRyaXZlcnMvbmV0L3RhcC5jICAgICAgICAgICB8IDUgKysrLS0KIGluY2x1ZGUvbGludXgvaWZf dGFwLmggICAgICB8IDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdnRhcC5jIGIv ZHJpdmVycy9uZXQvaXB2bGFuL2lwdnRhcC5jCmluZGV4IDIyZjEzM2VhOGQ3Yi4uMmJkZDcxYzRm Y2QxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2dGFwLmMKKysrIGIvZHJpdmVy cy9uZXQvaXB2bGFuL2lwdnRhcC5jCkBAIC0xOTcsOCArMTk3LDggQEAgc3RhdGljIGludCBpcHZ0 YXBfaW5pdCh2b2lkKQogewogCWludCBlcnI7CiAKLQllcnIgPSB0YXBfY3JlYXRlX2NkZXYoJmlw dnRhcF9jZGV2LCAmaXB2dGFwX21ham9yLCAiaXB2dGFwIik7Ci0KKwllcnIgPSB0YXBfY3JlYXRl X2NkZXYoJmlwdnRhcF9jZGV2LCAmaXB2dGFwX21ham9yLCAiaXB2dGFwIiwKKwkJCSAgICAgIFRI SVNfTU9EVUxFKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDE7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L21hY3Z0YXAuYyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwppbmRleCA5MWU3YjE5YmJm ODYuLmE4NDY5MWJkNzVhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdnRhcC5jCisrKyBi L2RyaXZlcnMvbmV0L21hY3Z0YXAuYwpAQCAtMjA0LDggKzIwNCw4IEBAIHN0YXRpYyBpbnQgbWFj dnRhcF9pbml0KHZvaWQpCiB7CiAJaW50IGVycjsKIAotCWVyciA9IHRhcF9jcmVhdGVfY2Rldigm bWFjdnRhcF9jZGV2LCAmbWFjdnRhcF9tYWpvciwgIm1hY3Z0YXAiKTsKLQorCWVyciA9IHRhcF9j cmVhdGVfY2RldigmbWFjdnRhcF9jZGV2LCAmbWFjdnRhcF9tYWpvciwgIm1hY3Z0YXAiLAorCQkJ ICAgICAgVEhJU19NT0RVTEUpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0MTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdGFwLmMgYi9kcml2ZXJzL25ldC90YXAuYwppbmRleCBjZTRkOGQ3Njg4 MjQuLjBmY2YwYmIyOTBhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGFwLmMKKysrIGIvZHJp dmVycy9uZXQvdGFwLmMKQEAgLTEyNTIsOCArMTI1Miw4IEBAIHN0YXRpYyBpbnQgdGFwX2xpc3Rf YWRkKGRldl90IG1ham9yLCBjb25zdCBjaGFyICpkZXZpY2VfbmFtZSkKIAlyZXR1cm4gMDsKIH0K IAotaW50IHRhcF9jcmVhdGVfY2RldihzdHJ1Y3QgY2RldiAqdGFwX2NkZXYsCi0JCSAgICBkZXZf dCAqdGFwX21ham9yLCBjb25zdCBjaGFyICpkZXZpY2VfbmFtZSkKK2ludCB0YXBfY3JlYXRlX2Nk ZXYoc3RydWN0IGNkZXYgKnRhcF9jZGV2LCBkZXZfdCAqdGFwX21ham9yLAorCQkgICAgY29uc3Qg Y2hhciAqZGV2aWNlX25hbWUsIHN0cnVjdCBtb2R1bGUgKm1vZHVsZSkKIHsKIAlpbnQgZXJyOwog CkBAIC0xMjYyLDYgKzEyNjIsNyBAQCBpbnQgdGFwX2NyZWF0ZV9jZGV2KHN0cnVjdCBjZGV2ICp0 YXBfY2RldiwKIAkJZ290byBvdXQxOwogCiAJY2Rldl9pbml0KHRhcF9jZGV2LCAmdGFwX2ZvcHMp OworCXRhcF9jZGV2LT5vd25lciA9IG1vZHVsZTsKIAllcnIgPSBjZGV2X2FkZCh0YXBfY2Rldiwg KnRhcF9tYWpvciwgVEFQX05VTV9ERVZTKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDI7CmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L2lmX3RhcC5oIGIvaW5jbHVkZS9saW51eC9pZl90YXAuaApp bmRleCA0ODM3MTU3ZGEwZGMuLjlhZTQxY2RkMGQ0YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9pZl90YXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lmX3RhcC5oCkBAIC03Myw4ICs3Myw4IEBA IHZvaWQgdGFwX2RlbF9xdWV1ZXMoc3RydWN0IHRhcF9kZXYgKnRhcCk7CiBpbnQgdGFwX2dldF9t aW5vcihkZXZfdCBtYWpvciwgc3RydWN0IHRhcF9kZXYgKnRhcCk7CiB2b2lkIHRhcF9mcmVlX21p bm9yKGRldl90IG1ham9yLCBzdHJ1Y3QgdGFwX2RldiAqdGFwKTsKIGludCB0YXBfcXVldWVfcmVz aXplKHN0cnVjdCB0YXBfZGV2ICp0YXApOwotaW50IHRhcF9jcmVhdGVfY2RldihzdHJ1Y3QgY2Rl diAqdGFwX2NkZXYsCi0JCSAgICBkZXZfdCAqdGFwX21ham9yLCBjb25zdCBjaGFyICpkZXZpY2Vf bmFtZSk7CitpbnQgdGFwX2NyZWF0ZV9jZGV2KHN0cnVjdCBjZGV2ICp0YXBfY2RldiwgZGV2X3Qg KnRhcF9tYWpvciwKKwkJICAgIGNvbnN0IGNoYXIgKmRldmljZV9uYW1lLCBzdHJ1Y3QgbW9kdWxl ICptb2R1bGUpOwogdm9pZCB0YXBfZGVzdHJveV9jZGV2KGRldl90IG1ham9yLCBzdHJ1Y3QgY2Rl diAqdGFwX2NkZXYpOwogCiAjZW5kaWYgLypfTElOVVhfSUZfVEFQX0hfKi8KLS0gCjIuMTMuNgoK CkZyb20gZWE5MWM1NGU0MDdmODc5NGIxZjM0YjY2NzdhNmI5ZTZlNWVlODc2YSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWVuIEdvbWVzIDxqdWxpZW5AYXJpc3RhLmNvbT4KRGF0 ZTogV2VkLCAyNSBPY3QgMjAxNyAxMTo1MDo1MCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzdd IHR1bjogYWxsb3cgcG9zaXRpdmUgcmV0dXJuIHZhbHVlcyBvbgogZGV2X2dldF92YWxpZF9uYW1l KCkgY2FsbAoKWyBVcHN0cmVhbSBjb21taXQgNWMyNWY2NWZkMWU0MjY4NWY3Y2NkODBlMDYyMTgy OWMxMDU3ODVkOSBdCgpJZiB0aGUgbmFtZSBhcmd1bWVudCBvZiBkZXZfZ2V0X3ZhbGlkX25hbWUo KSBjb250YWlucyAiJWQiLCBpdCB3aWxsIHRyeQp0byBhc3NpZ24gaXQgYSB1bml0IG51bWJlciBp biBfX2Rldl9fYWxsb2NfbmFtZSgpIGFuZCByZXR1cm4gZWl0aGVyIHRoZQp1bml0IG51bWJlciAo Pj0gMCkgb3IgYW4gZXJyb3IgY29kZSAoPCAwKS4KQ29uc2lkZXJpbmcgcG9zaXRpdmUgdmFsdWVz IGFzIGVycm9yIHZhbHVlcyBwcmV2ZW50IHR1biBkZXZpY2UgY3JlYXRpb25zCnJlbHlpbmcgdGhp cyBtZWNoYW5pc20sIHRoZXJlZm9yIHdlIHNob3VsZCBvbmx5IGNvbnNpZGVyIG5lZ2F0aXZlIHZh bHVlcwphcyBlcnJvcnMgaGVyZS4KClNpZ25lZC1vZmYtYnk6IEp1bGllbiBHb21lcyA8anVsaWVu QGFyaXN0YS5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L3R1bi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2 ZXJzL25ldC90dW4uYwppbmRleCA5ZTdiNGU3ZDNmOTcuLjg3ZDE4ZjMxM2ViYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTE4MTQsNyAr MTgxNCw3IEBAIHN0YXRpYyBpbnQgdHVuX3NldF9pZmYoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGlmcmVxICppZnIpCiAJCWlmICghZGV2KQogCQkJcmV0dXJuIC1F Tk9NRU07CiAJCWVyciA9IGRldl9nZXRfdmFsaWRfbmFtZShuZXQsIGRldiwgbmFtZSk7Ci0JCWlm IChlcnIpCisJCWlmIChlcnIgPCAwKQogCQkJZ290byBlcnJfZnJlZV9kZXY7CiAKIAkJZGV2X25l dF9zZXQoZGV2LCBuZXQpOwotLSAKMi4xMy42CgoKRnJvbSA5NmM0MzViMmZkYjgwYTA5OGIxMTg2 NmMzMDExMjIwZGU4NThmNDI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9u ZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMjggT2N0IDIwMTcgMDI6MTM6Mjkg KzA4MDAKU3ViamVjdDogW1BBVENIIDMyLzM3XSBzY3RwOiByZXNldCBvd25lciBzayBmb3IgZGF0 YSBjaHVua3Mgb24gb3V0IHF1ZXVlcyB3aGVuCiBtaWdyYXRpbmcgYSBzb2NrCgpbIFVwc3RyZWFt IGNvbW1pdCBkMDRhZGYxYjM1NTE4MWU3MzdiNmIxZTIzZDgwMWIwN2YwYjdjNGMwIF0KCk5vdyB3 aGVuIG1pZ3JhdGluZyBzb2NrIHRvIGFub3RoZXIgb25lIGluIHNjdHBfc29ja19taWdyYXRlKCks IGl0IG9ubHkKcmVzZXRzIG93bmVyIHNrIGZvciB0aGUgZGF0YSBpbiByZWNlaXZlIHF1ZXVlcywg bm90IHRoZSBjaHVua3Mgb24gb3V0CnF1ZXVlcy4KCkl0IHdvdWxkIGNhdXNlIHRoYXQgZGF0YSBj aHVua3MgbGVuZ3RoIG9uIHRoZSBzb2NrIGlzIG5vdCBjb25zaXN0ZW50CndpdGggc2sgc2tfd21l bV9hbGxvYy4gV2hlbiBjbG9zaW5nIHRoZSBzb2NrIG9yIGZyZWVpbmcgdGhlc2UgY2h1bmtzLAp0 aGUgb2xkIHNrIHdvdWxkIG5ldmVyIGJlIGZyZWVkLCBhbmQgdGhlIG5ldyBzb2NrIG1heSBjcmFz aCBkdWUgdG8KdGhlIG92ZXJmbG93IHNrX3dtZW1fYWxsb2MuCgpzeXpib3QgZm91bmQgdGhpcyBp c3N1ZSB3aXRoIHRoaXMgc2VyaWVzOgoKICByMCA9IHNvY2tldCRpbmV0X3NjdHAoKQogIHNlbmR0 byRpbmV0KHIwKQogIGxpc3RlbihyMCkKICBhY2NlcHQ0KHIwKQogIGNsb3NlKHIwKQoKQWx0aG91 Z2ggbGlzdGVuKCkgc2hvdWxkIGhhdmUgcmV0dXJuZWQgZXJyb3Igd2hlbiBvbmUgVENQLXN0eWxl IHNvY2tldAppcyBpbiBjb25uZWN0aW5nIChJIG1heSBmaXggdGhpcyBvbmUgaW4gYW5vdGhlciBw YXRjaCksIGl0IGNvdWxkIGFsc28KYmUgcmVwcm9kdWNlZCBieSBwZWVsaW5nIG9mZiBhbiBhc3Nv Yy4KClRoaXMgaXNzdWUgaXMgdGhlcmUgc2luY2UgdmVyeSBiZWdpbm5pbmcuCgpUaGlzIHBhdGNo IGlzIHRvIHJlc2V0IG93bmVyIHNrIGZvciB0aGUgY2h1bmtzIG9uIG91dCBxdWV1ZXMgc28gdGhh dApzayBza193bWVtX2FsbG9jIGhhcyBjb3JyZWN0IHZhbHVlIGFmdGVyIGFjY2VwdCBvbmUgc29j ayBvciBwZWVsb2ZmCmFuIGFzc29jIHRvIG9uZSBzb2NrLgoKTm90ZSB0aGF0IHdoZW4gcmVzZXR0 aW5nIG93bmVyIHNrIGZvciBjaHVua3Mgb24gb3V0cXVldWUsIGl0IGhhcyB0bwpzY3RwX2NsZWFy X293bmVyX3cvc2tiX29ycGhhbiBjaHVua3MgYmVmb3JlIGNoYW5naW5nIGFzc29jLT5iYXNlLnNr CmZpcnN0IGFuZCB0aGVuIHNjdHBfc2V0X293bmVyX3cgdGhlbSBhZnRlciBjaGFuZ2luZyBhc3Nv Yy0+YmFzZS5zaywKZHVlIHRvIHRoYXQgc2N0cF93ZnJlZSBhbmQgaXQncyBjYWxsZWVzIGFyZSB1 c2luZyBhc3NvYy0+YmFzZS5zay4KClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3NjdHAvc29ja2V0LmMgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IDhkNzYwODYzYmM0MS4u M2Q3OTA4NWViNGUwIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0 cC9zb2NrZXQuYwpAQCAtMTY5LDYgKzE2OSwzNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2N0cF9z ZXRfb3duZXJfdyhzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmspCiAJc2tfbWVtX2NoYXJnZShzaywg Y2h1bmstPnNrYi0+dHJ1ZXNpemUpOwogfQogCitzdGF0aWMgdm9pZCBzY3RwX2NsZWFyX293bmVy X3coc3RydWN0IHNjdHBfY2h1bmsgKmNodW5rKQoreworCXNrYl9vcnBoYW4oY2h1bmstPnNrYik7 Cit9CisKK3N0YXRpYyB2b2lkIHNjdHBfZm9yX2VhY2hfdHhfZGF0YWNodW5rKHN0cnVjdCBzY3Rw X2Fzc29jaWF0aW9uICphc29jLAorCQkJCSAgICAgICB2b2lkICgqY2IpKHN0cnVjdCBzY3RwX2No dW5rICopKQorCit7CisJc3RydWN0IHNjdHBfb3V0cSAqcSA9ICZhc29jLT5vdXRxdWV1ZTsKKwlz dHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQ7CisJc3RydWN0IHNjdHBfY2h1bmsgKmNodW5rOworCisJ bGlzdF9mb3JfZWFjaF9lbnRyeSh0LCAmYXNvYy0+cGVlci50cmFuc3BvcnRfYWRkcl9saXN0LCB0 cmFuc3BvcnRzKQorCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNodW5rLCAmdC0+dHJhbnNtaXR0ZWQs IHRyYW5zbWl0dGVkX2xpc3QpCisJCQljYihjaHVuayk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGNodW5rLCAmcS0+cmV0cmFuc21pdCwgbGlzdCkKKwkJY2IoY2h1bmspOworCisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShjaHVuaywgJnEtPnNhY2tlZCwgbGlzdCkKKwkJY2IoY2h1bmspOworCisJbGlz dF9mb3JfZWFjaF9lbnRyeShjaHVuaywgJnEtPmFiYW5kb25lZCwgbGlzdCkKKwkJY2IoY2h1bmsp OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjaHVuaywgJnEtPm91dF9jaHVua19saXN0LCBsaXN0 KQorCQljYihjaHVuayk7Cit9CisKIC8qIFZlcmlmeSB0aGF0IHRoaXMgaXMgYSB2YWxpZCBhZGRy ZXNzLiAqLwogc3RhdGljIGlubGluZSBpbnQgc2N0cF92ZXJpZnlfYWRkcihzdHJ1Y3Qgc29jayAq c2ssIHVuaW9uIHNjdHBfYWRkciAqYWRkciwKIAkJCQkgICBpbnQgbGVuKQpAQCAtODE5Niw3ICs4 MjI2LDkgQEAgc3RhdGljIHZvaWQgc2N0cF9zb2NrX21pZ3JhdGUoc3RydWN0IHNvY2sgKm9sZHNr LCBzdHJ1Y3Qgc29jayAqbmV3c2ssCiAJICogcGF0aHMgd29uJ3QgdHJ5IHRvIGxvY2sgaXQgYW5k IHRoZW4gb2xkc2suCiAJICovCiAJbG9ja19zb2NrX25lc3RlZChuZXdzaywgU0lOR0xFX0RFUFRI X05FU1RJTkcpOworCXNjdHBfZm9yX2VhY2hfdHhfZGF0YWNodW5rKGFzc29jLCBzY3RwX2NsZWFy X293bmVyX3cpOwogCXNjdHBfYXNzb2NfbWlncmF0ZShhc3NvYywgbmV3c2spOworCXNjdHBfZm9y X2VhY2hfdHhfZGF0YWNodW5rKGFzc29jLCBzY3RwX3NldF9vd25lcl93KTsKIAogCS8qIElmIHRo ZSBhc3NvY2lhdGlvbiBvbiB0aGUgbmV3c2sgaXMgYWxyZWFkeSBjbG9zZWQgYmVmb3JlIGFjY2Vw dCgpCiAJICogaXMgY2FsbGVkLCBzZXQgUkNWX1NIVVRET1dOIGZsYWcuCi0tIAoyLjEzLjYKCgpG cm9tIDdmMmZhNGFlNzQ2OGYwNjhjNWQ1ZTUxOWQzMWUzZGQxNmQyZDllNWIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpE YXRlOiBGcmksIDI3IE9jdCAyMDE3IDIyOjA4OjU2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMy8z N10gbmV0X3NjaGVkOiBhdm9pZCBtYXRjaGluZyBxZGlzYyB3aXRoIHplcm8gaGFuZGxlCgpbIFVw c3RyZWFtIGNvbW1pdCA1MDMxN2ZjZTJjYzcwYTJiYmJjNGI0MmMzMWJiYWQ1MTAzODJhNTNjIF0K CkRhdmlkZSBmb3VuZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0cmlnZ2VycyBhIE5VTEwgcG9pbnRl cgpkZXJlZmVyZW5jZToKCmlwIGwgYSBuYW1lIGV0aDAgdHlwZSBkdW1teQp0YyBxIGEgZGV2IGV0 aDAgcGFyZW50IDoxIGhhbmRsZSAxOiBodGIKClRoaXMgaXMgYmVjYXVzZSBmb3IgYSBmcmVzaGx5 IGNyZWF0ZWQgbmV0ZGV2aWNlIG5vb3BfcWRpc2MKaXMgYXR0YWNoZWQgYW5kIHdoZW4gcGFzc2lu ZyAncGFyZW50IDoxJywga2VybmVsIGFjdHVhbGx5CnRyaWVzIHRvIG1hdGNoIHRoZSBtYWpvciBo YW5kbGUgd2hpY2ggaXMgMCBhbmQgbm9vcF9xZGlzYwpoYXMgaGFuZGxlIDAgc28gaXMgbWF0Y2hl ZCBieSBtaXN0YWtlLiBDb21taXQgNjkwMTJhZTQyNWQ3CnRyaWVzIHRvIGZpeCBhIHNpbWlsYXIg YnVnIGJ1dCBzdGlsbCBtaXNzZXMgdGhpcyBjYXNlLgoKSGFuZGxlIDAgaXMgbm90IGEgdmFsaWQg b25lLCBzaG91bGQgYmUganVzdCBza2lwcGVkLiBJbgpmYWN0LCBrZXJuZWwgdXNlcyBpdCBhcyBU Q19IX1VOU1BFQy4KCkZpeGVzOiA2OTAxMmFlNDI1ZDcgKCJuZXQ6IHNjaGVkOiBmaXggaGFuZGxp bmcgb2Ygc2luZ2xldG9uIHFkaXNjcyB3aXRoIHFkaXNjX2hhc2giKQpGaXhlczogNTljYzFmNjFm MDljICgibmV0OiBzY2hlZDpjb252ZXJ0IHFkaXNjIGxpbmtlZCBsaXN0IHRvIGhhc2h0YWJsZSIp ClJlcG9ydGVkLWJ5OiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KQ2M6IEpp cmkgS29zaW5hIDxqa29zaW5hQHN1c2UuY3o+CkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9z Y2hfYXBpLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL3NjaF9hcGkuYyBiL25ldC9zY2hlZC9zY2hfYXBpLmMKaW5kZXggNGZi NWEzMjIyZDBkLi43OTM1ZGIwZDc4N2MgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXBpLmMK KysrIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwpAQCAtMzA3LDYgKzMwNyw4IEBAIHN0cnVjdCBRZGlz YyAqcWRpc2NfbG9va3VwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBoYW5kbGUpCiB7CiAJ c3RydWN0IFFkaXNjICpxOwogCisJaWYgKCFoYW5kbGUpCisJCXJldHVybiBOVUxMOwogCXEgPSBx ZGlzY19tYXRjaF9mcm9tX3Jvb3QoZGV2LT5xZGlzYywgaGFuZGxlKTsKIAlpZiAocSkKIAkJZ290 byBvdXQ7Ci0tIAoyLjEzLjYKCgpGcm9tIDFiMjBiOWQyZmRmZDY3ZmIzMDViMGQzNTNmZmZhOWQ1 ODk0N2E1YjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8 Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRhdGU6IE1vbiwgMzAgT2N0IDIwMTcgMTc6NTg6NTggKzAx MDAKU3ViamVjdDogW1BBVENIIDM0LzM3XSBsMnRwOiBob2xkIHR1bm5lbCBpbiBwcHBvbDJ0cF9j b25uZWN0KCkKClsgVXBzdHJlYW0gY29tbWl0IGY5ZTU2YmFmMDNmOWQzNjA0M2E3OGYxNmUzZThi MmNmZDIxMWUwOWUgXQoKVXNlIGwydHBfdHVubmVsX2dldCgpIGluIHBwcG9sMnRwX2Nvbm5lY3Qo KSB0byBlbnN1cmUgdGhlIHR1bm5lbCBpc24ndApnb2luZyB0byBkaXNhcHBlYXIgd2hpbGUgcHJv Y2Vzc2luZyB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb24uCgpGaXhlczogZmQ1NThkMTg2ZGYyICgi bDJ0cDogU3BsaXQgcHBwb2wydHAgcGF0Y2ggaW50byBzZXBhcmF0ZSBsMnRwIGFuZCBwcHAgcGFy dHMiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZy PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2wydHAvbDJ0cF9wcHAuYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfcHBw LmMgYi9uZXQvbDJ0cC9sMnRwX3BwcC5jCmluZGV4IGU4ZWM0ZjNlNTRmYi4uNDEyYzUxM2Q2OWIz IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX3BwcC5jCisrKyBiL25ldC9sMnRwL2wydHBfcHBw LmMKQEAgLTU4NCw2ICs1ODQsNyBAQCBzdGF0aWMgaW50IHBwcG9sMnRwX2Nvbm5lY3Qoc3RydWN0 IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1c2VydmFkZHIsCiAJdTMyIHR1bm5lbF9p ZCwgcGVlcl90dW5uZWxfaWQ7CiAJdTMyIHNlc3Npb25faWQsIHBlZXJfc2Vzc2lvbl9pZDsKIAli b29sIGRyb3BfcmVmY250ID0gZmFsc2U7CisJYm9vbCBkcm9wX3R1bm5lbCA9IGZhbHNlOwogCWlu dCB2ZXIgPSAyOwogCWludCBmZDsKIApAQCAtNjUyLDcgKzY1Myw5IEBAIHN0YXRpYyBpbnQgcHBw b2wydHBfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVzZXJ2 YWRkciwKIAlpZiAodHVubmVsX2lkID09IDApCiAJCWdvdG8gZW5kOwogCi0JdHVubmVsID0gbDJ0 cF90dW5uZWxfZmluZChzb2NrX25ldChzayksIHR1bm5lbF9pZCk7CisJdHVubmVsID0gbDJ0cF90 dW5uZWxfZ2V0KHNvY2tfbmV0KHNrKSwgdHVubmVsX2lkKTsKKwlpZiAodHVubmVsKQorCQlkcm9w X3R1bm5lbCA9IHRydWU7CiAKIAkvKiBTcGVjaWFsIGNhc2U6IGNyZWF0ZSB0dW5uZWwgY29udGV4 dCBpZiBzZXNzaW9uX2lkIGFuZAogCSAqIHBlZXJfc2Vzc2lvbl9pZCBpcyAwLiBPdGhlcndpc2Ug bG9vayB1cCB0dW5uZWwgdXNpbmcgc3VwcGxpZWQKQEAgLTc4MSw2ICs3ODQsOCBAQCBzdGF0aWMg aW50IHBwcG9sMnRwX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRy ICp1c2VydmFkZHIsCiBlbmQ6CiAJaWYgKGRyb3BfcmVmY250KQogCQlsMnRwX3Nlc3Npb25fZGVj X3JlZmNvdW50KHNlc3Npb24pOworCWlmIChkcm9wX3R1bm5lbCkKKwkJbDJ0cF90dW5uZWxfZGVj X3JlZmNvdW50KHR1bm5lbCk7CiAJcmVsZWFzZV9zb2NrKHNrKTsKIAogCXJldHVybiBlcnJvcjsK LS0gCjIuMTMuNgoKCkZyb20gNDIyNmI3YmVmYTFhMjAxZWQyNjM2MDA3ZTYyZDcyNjc3YTU0N2Ey NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ3JhaWcgR2FsbGVrIDxrcmFpZ0Bnb29n bGUuY29tPgpEYXRlOiBNb24sIDMwIE9jdCAyMDE3IDE4OjUwOjExIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAzNS8zN10gdHVuL3RhcDogc2FuaXRpemUgVFVOU0VUU05EQlVGIGlucHV0CgpbIFVwc3Ry ZWFtIGNvbW1pdCA5MzE2MTkyMmM2NThjNzE0NzE1Njg2Y2QwY2Y2OWIwOTBjYjliZjFkIF0KClN5 emthbGxlciBmb3VuZCBzZXZlcmFsIHZhcmlhbnRzIG9mIHRoZSBsb2NrdXAgYmVsb3cgYnkgc2V0 dGluZyBuZWdhdGl2ZQp2YWx1ZXMgd2l0aCB0aGUgVFVOU0VUU05EQlVGIGlvY3RsLiAgVGhpcyBw YXRjaCBhZGRzIGEgc2FuaXR5IGNoZWNrCnRvIGJvdGggdGhlIHR1biBhbmQgdGFwIHZlcnNpb25z IG9mIHRoaXMgaW9jdGwuCgogIHdhdGNoZG9nOiBCVUc6IHNvZnQgbG9ja3VwIC0gQ1BVIzAgc3R1 Y2sgZm9yIDIycyEgW3JlcHJvOjIzODldCiAgTW9kdWxlcyBsaW5rZWQgaW46CiAgaXJxIGV2ZW50 IHN0YW1wOiAzMjk2OTIwNTYKICBoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICgzMjk2OTIwNTUp OiBbPGZmZmZmZmZmODI0YjgzODE+XSBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgzMS8w eDc1CiAgaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMzI5NjkyMDU2KTogWzxmZmZmZmZmZjgy NGI5ZTU4Pl0gYXBpY190aW1lcl9pbnRlcnJ1cHQrMHg5OC8weGIwCiAgc29mdGlycXMgbGFzdCAg ZW5hYmxlZCBhdCAoMzU2NTk3NDApOiBbPGZmZmZmZmZmODI0YmM5NTg+XSBfX2RvX3NvZnRpcnEr MHgzMjgvMHg0OGMKICBzb2Z0aXJxcyBsYXN0IGRpc2FibGVkIGF0ICgzNTY1OTczMSk6IFs8ZmZm ZmZmZmY4MTFjNzk2Yz5dIGlycV9leGl0KzB4YmMvMHhkMAogIENQVTogMCBQSUQ6IDIzODkgQ29t bTogcmVwcm8gTm90IHRhaW50ZWQgNC4xNC4wLXJjNyAjMjMKICBIYXJkd2FyZSBuYW1lOiBRRU1V IFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBCb2NocyAwMS8wMS8yMDEx CiAgdGFzazogZmZmZjg4MDAwOTQ1MjE0MCB0YXNrLnN0YWNrOiBmZmZmODgwMDA2YTIwMDAwCiAg UklQOiAwMDEwOl9yYXdfc3Bpbl9sb2NrX2lycXNhdmUrMHgxMS8weDgwCiAgUlNQOiAwMDE4OmZm ZmY4ODAwMDZhMjdjNTAgRUZMQUdTOiAwMDAwMDI4MiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmYx MAogIFJBWDogZmZmZjg4MDAwOWFjNjhkMCBSQlg6IGZmZmY4ODAwMDZhMjdjZTAgUkNYOiAwMDAw MDAwMDAwMDAwMDAwCiAgUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogZmZmZjg4MDAwNmEyN2Nl MCBSREk6IGZmZmY4ODAwMDlhYzY5MDAKICBSQlA6IGZmZmY4ODAwMDZhMjdjNjAgUjA4OiAwMDAw MDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMAogIFIxMDogMDAwMDAwMDAwMDAwMDAw MSBSMTE6IDAwMDAwMDAwMDA2M2ZmMDAgUjEyOiBmZmZmODgwMDA5YWM2OTAwCiAgUjEzOiBmZmZm ODgwMDA2YTI3Y2Y4IFIxNDogMDAwMDAwMDAwMDAwMDAwMSBSMTU6IGZmZmY4ODAwMDZhMjdjZjgK ICBGUzogIDAwMDA3ZjRiZTQ4Mzg3MDAoMDAwMCkgR1M6ZmZmZjg4MDAwY2MwMDAwMCgwMDAwKSBr bmxHUzowMDAwMDAwMDAwMDAwMDAwCiAgQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDog MDAwMDAwMDA4MDA1MDAzMwogIENSMjogMDAwMDAwMDAyMDEwMTAwMCBDUjM6IDAwMDAwMDAwMDk2 MTYwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmYwCiAgQ2FsbCBUcmFjZToKICAgcHJlcGFyZV90b193 YWl0KzB4MjYvMHhjMAogICBzb2NrX2FsbG9jX3NlbmRfcHNrYisweDE0ZS8weDI3MAogICA/IHJl bW92ZV93YWl0X3F1ZXVlKzB4NjAvMHg2MAogICB0dW5fZ2V0X3VzZXIrMHgyY2MvMHgxOWQwCiAg ID8gX190dW5fZ2V0KzB4NjAvMHgxYjAKICAgdHVuX2Nocl93cml0ZV9pdGVyKzB4NTcvMHg4Ngog ICBfX3Zmc193cml0ZSsweDE1Ni8weDFlMAogICB2ZnNfd3JpdGUrMHhmNy8weDIzMAogICBTeVNf d3JpdGUrMHg1Ny8weGQwCiAgIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGJlCiAg UklQOiAwMDMzOjB4N2Y0YmU0MzU2ZGY5CiAgUlNQOiAwMDJiOjAwMDA3ZmZjMTgxMDFjMDggRUZM QUdTOiAwMDAwMDI5MyBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAwMQogIFJBWDogZmZmZmZmZmZm ZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAwMDAwN2Y0YmU0MzU2ZGY5CiAgUkRY OiAwMDAwMDAwMDAwMDAwMDQ2IFJTSTogMDAwMDAwMDAyMDEwMTAwMCBSREk6IDAwMDAwMDAwMDAw MDAwMDUKICBSQlA6IDAwMDA3ZmZjMTgxMDFjNDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTog MDAwMDAwMDAwMDAwMDAwMQogIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IDAwMDAwMDAwMDAw MDAyOTMgUjEyOiAwMDAwNTU5Yzc1ZjY0NzgwCiAgUjEzOiAwMDAwN2ZmYzE4MTAxZDMwIFIxNDog MDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKCkZpeGVzOiAzM2RjY2JiMDUw YmIgKCJ0dW46IExpbWl0IGFtb3VudCBvZiBxdWV1ZWQgcGFja2V0cyBwZXIgZGV2aWNlIikKRml4 ZXM6IDIwZDI5ZDdhOTE2YSAoIm5ldDogbWFjdnRhcCBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5OiBD cmFpZyBHYWxsZWsgPGtyYWlnQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90YXAuYyB8IDIgKysKIGRyaXZlcnMv bmV0L3R1bi5jIHwgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RhcC5jIGIvZHJpdmVycy9uZXQvdGFwLmMKaW5kZXggMGZj ZjBiYjI5MGFjLi4zOGVkZmNmZDNjM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RhcC5jCisr KyBiL2RyaXZlcnMvbmV0L3RhcC5jCkBAIC0xMDM1LDYgKzEwMzUsOCBAQCBzdGF0aWMgbG9uZyB0 YXBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJY2FzZSBUVU5T RVRTTkRCVUY6CiAJCWlmIChnZXRfdXNlcihzLCBzcCkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKKwkJ aWYgKHMgPD0gMCkKKwkJCXJldHVybiAtRUlOVkFMOwogCiAJCXEtPnNrLnNrX3NuZGJ1ZiA9IHM7 CiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25l dC90dW4uYwppbmRleCA4N2QxOGYzMTNlYmMuLmQxY2IxZmY4MzI1MSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTIyMTksNiArMjIxOSwx MCBAQCBzdGF0aWMgbG9uZyBfX3R1bl9jaHJfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2ln bmVkIGludCBjbWQsCiAJCQlyZXQgPSAtRUZBVUxUOwogCQkJYnJlYWs7CiAJCX0KKwkJaWYgKHNu ZGJ1ZiA8PSAwKSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJYnJlYWs7CisJCX0KIAogCQl0dW4t PnNuZGJ1ZiA9IHNuZGJ1ZjsKIAkJdHVuX3NldF9zbmRidWYodHVuKTsKLS0gCjIuMTMuNgoKCkZy b20gMzYzNDk0ZGQyZTAyMTU2OWEyMTFlYmZjN2E2YTI1OWViZDZmOGM0ZCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRl OiBNb24sIDMwIE9jdCAyMDE3IDIyOjQ3OjA5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzNi8zN10g aXB2NjogYWRkcmNvbmY6IGluY3JlbWVudCBpZnAgcmVmY291bnQgYmVmb3JlCiBpcHY2X2RlbF9h ZGRyKCkKClsgVXBzdHJlYW0gY29tbWl0IGU2NjliODY5NDU0NzhiM2Q5MGQyZDg3ZTM3OTNhNmVl ZDA2ZDMzMmYgXQoKSW4gdGhlICh1bmxpa2VseSkgZXZlbnQgZml4dXBfcGVybWFuZW50X2FkZHIo KSByZXR1cm5zIGEgZmFpbHVyZSwKYWRkcmNvbmZfcGVybWFuZW50X2FkZHIoKSBjYWxscyBpcHY2 X2RlbF9hZGRyKCkgd2l0aG91dCB0aGUKbWFuZGF0b3J5IGNhbGwgdG8gaW42X2lmYV9ob2xkKCks IGxlYWRpbmcgdG8gYSByZWZjb3VudCBlcnJvciwKc3BvdHRlZCBieSBzeXprYWxsZXIgOgoKV0FS TklORzogQ1BVOiAxIFBJRDogMzE0MiBhdCBsaWIvcmVmY291bnQuYzoyMjcgcmVmY291bnRfZGVj KzB4NGMvMHg1MApsaWIvcmVmY291bnQuYzoyMjcKS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6 IHBhbmljX29uX3dhcm4gc2V0IC4uLgoKQ1BVOiAxIFBJRDogMzE0MiBDb21tOiBpcCBOb3QgdGFp bnRlZCA0LjE0LjAtcmM0LW5leHQtMjAxNzEwMDkrICMzMwpIYXJkd2FyZSBuYW1lOiBHb29nbGUg R29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUwpHb29nbGUg MDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTYg W2lubGluZV0KIGR1bXBfc3RhY2srMHgxOTQvMHgyNTcgbGliL2R1bXBfc3RhY2suYzo1MgogcGFu aWMrMHgxZTQvMHg0MWMga2VybmVsL3BhbmljLmM6MTgxCiBfX3dhcm4rMHgxYzQvMHgxZTAga2Vy bmVsL3BhbmljLmM6NTQ0CiByZXBvcnRfYnVnKzB4MjExLzB4MmQwIGxpYi9idWcuYzoxODMKIGZp eHVwX2J1ZysweDQwLzB4OTAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MTc4CiBkb190cmFwX25v X3NpZ25hbCBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzoyMTIgW2lubGluZV0KIGRvX3RyYXArMHgy NjAvMHgzOTAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MjYxCiBkb19lcnJvcl90cmFwKzB4MTIw LzB4MzkwIGFyY2gveDg2L2tlcm5lbC90cmFwcy5jOjI5OAogZG9faW52YWxpZF9vcCsweDFiLzB4 MjAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MzExCiBpbnZhbGlkX29wKzB4MTgvMHgyMCBhcmNo L3g4Ni9lbnRyeS9lbnRyeV82NC5TOjkwNQpSSVA6IDAwMTA6cmVmY291bnRfZGVjKzB4NGMvMHg1 MCBsaWIvcmVmY291bnQuYzoyMjcKUlNQOiAwMDE4OmZmZmY4ODAxY2E0OWU2ODAgRUZMQUdTOiAw MDAxMDI4NgpSQVg6IDAwMDAwMDAwMDAwMDAwMmMgUkJYOiBmZmZmODgwMWQwN2NmY2RjIFJDWDog MDAwMDAwMDAwMDAwMDAwMApSRFg6IDAwMDAwMDAwMDAwMDAwMmMgUlNJOiAxZmZmZjEwMDM5NDkz YzkwIFJESTogZmZmZmVkMDAzOTQ5M2NjNApSQlA6IGZmZmY4ODAxY2E0OWU2ODggUjA4OiBmZmZm ODgwMWNhNDlkZDcwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IGZmZmY4ODAxY2E0OWRmNTgg UjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMWZmZmYxMDAzOTQ5M2NkOQpSMTM6IGZmZmY4ODAx Y2E0OWU2ZTggUjE0OiBmZmZmODgwMWNhNDllN2U4IFIxNTogZmZmZjg4MDFkMDdjZmNkYwogX19p bjZfaWZhX3B1dCBpbmNsdWRlL25ldC9hZGRyY29uZi5oOjM2OSBbaW5saW5lXQogaXB2Nl9kZWxf YWRkcisweDQyYi8weGI2MCBuZXQvaXB2Ni9hZGRyY29uZi5jOjEyMDgKIGFkZHJjb25mX3Blcm1h bmVudF9hZGRyIG5ldC9pcHY2L2FkZHJjb25mLmM6MzMyNyBbaW5saW5lXQogYWRkcmNvbmZfbm90 aWZ5KzB4MWM2Ni8weDIxOTAgbmV0L2lwdjYvYWRkcmNvbmYuYzozMzkzCiBub3RpZmllcl9jYWxs X2NoYWluKzB4MTM2LzB4MmMwIGtlcm5lbC9ub3RpZmllci5jOjkzCiBfX3Jhd19ub3RpZmllcl9j YWxsX2NoYWluIGtlcm5lbC9ub3RpZmllci5jOjM5NCBbaW5saW5lXQogcmF3X25vdGlmaWVyX2Nh bGxfY2hhaW4rMHgyZC8weDQwIGtlcm5lbC9ub3RpZmllci5jOjQwMQogY2FsbF9uZXRkZXZpY2Vf bm90aWZpZXJzX2luZm8rMHgzMi8weDYwIG5ldC9jb3JlL2Rldi5jOjE2OTcKIGNhbGxfbmV0ZGV2 aWNlX25vdGlmaWVycyBuZXQvY29yZS9kZXYuYzoxNzE1IFtpbmxpbmVdCiBfX2Rldl9ub3RpZnlf ZmxhZ3MrMHgxNWQvMHg0MzAgbmV0L2NvcmUvZGV2LmM6Njg0MwogZGV2X2NoYW5nZV9mbGFncysw eGY1LzB4MTQwIG5ldC9jb3JlL2Rldi5jOjY4NzkKIGRvX3NldGxpbmsrMHhhMWIvMHgzOGUwIG5l dC9jb3JlL3J0bmV0bGluay5jOjIxMTMKIHJ0bmxfbmV3bGluaysweGYwZC8weDFhNDAgbmV0L2Nv cmUvcnRuZXRsaW5rLmM6MjY2MQogcnRuZXRsaW5rX3Jjdl9tc2crMHg3MzMvMHgxMDkwIG5ldC9j b3JlL3J0bmV0bGluay5jOjQzMDEKIG5ldGxpbmtfcmN2X3NrYisweDIxNi8weDQ0MCBuZXQvbmV0 bGluay9hZl9uZXRsaW5rLmM6MjQwOAogcnRuZXRsaW5rX3JjdisweDFjLzB4MjAgbmV0L2NvcmUv cnRuZXRsaW5rLmM6NDMxMwogbmV0bGlua191bmljYXN0X2tlcm5lbCBuZXQvbmV0bGluay9hZl9u ZXRsaW5rLmM6MTI3MyBbaW5saW5lXQogbmV0bGlua191bmljYXN0KzB4NGU4LzB4NmYwIG5ldC9u ZXRsaW5rL2FmX25ldGxpbmsuYzoxMjk5CiBuZXRsaW5rX3NlbmRtc2crMHhhNGEvMHhlNzAgbmV0 L25ldGxpbmsvYWZfbmV0bGluay5jOjE4NjIKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0 LmM6NjMzIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2crMHhjYS8weDExMCBuZXQvc29ja2V0LmM6NjQz CiBfX19zeXNfc2VuZG1zZysweDc1Yi8weDhhMCBuZXQvc29ja2V0LmM6MjA0OQogX19zeXNfc2Vu ZG1zZysweGU1LzB4MjEwIG5ldC9zb2NrZXQuYzoyMDgzCiBTWVNDX3NlbmRtc2cgbmV0L3NvY2tl dC5jOjIwOTQgW2lubGluZV0KIFN5U19zZW5kbXNnKzB4MmQvMHg1MCBuZXQvc29ja2V0LmM6MjA5 MAogZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFmLzB4YmUKUklQOiAwMDMzOjB4N2ZhOTE3 NGQzMzIwClJTUDogMDAyYjowMDAwN2ZmZTMwMmFlOWU4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwMmUKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmZmUz MDJiMmFlMCBSQ1g6IDAwMDA3ZmE5MTc0ZDMzMjAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTog MDAwMDdmZmUzMDJhZWEyMCBSREk6IDAwMDAwMDAwMDAwMDAwMTYKUkJQOiAwMDAwMDAwMDAwMDAw MDgyIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMGYKUjEwOiAwMDAw MDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDA3ZmZlMzAyYjMyYTAK UjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDdmZmUzMDJiMmFiOCBSMTU6IDAwMDA3ZmZl MzAyYjMyYjgKCkZpeGVzOiBmMTcwNWVjMTk3ZTcgKCJuZXQ6IGlwdjY6IE1ha2UgYWRkcmVzcyBm bHVzaGluZyBvbiBpZmRvd24gb3B0aW9uYWwiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZGRy Y29uZi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCBiYTc1N2My OGEzMDEuLmJkYzkzZTUxNDI3ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysg Yi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0zMzY3LDYgKzMzNjcsNyBAQCBzdGF0aWMgdm9pZCBh ZGRyY29uZl9wZXJtYW5lbnRfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQlpZiAoKGlm cC0+ZmxhZ3MgJiBJRkFfRl9QRVJNQU5FTlQpICYmCiAJCSAgICBmaXh1cF9wZXJtYW5lbnRfYWRk cihpZGV2LCBpZnApIDwgMCkgewogCQkJd3JpdGVfdW5sb2NrX2JoKCZpZGV2LT5sb2NrKTsKKwkJ CWluNl9pZmFfaG9sZChpZnApOwogCQkJaXB2Nl9kZWxfYWRkcihpZnApOwogCQkJd3JpdGVfbG9j a19iaCgmaWRldi0+bG9jayk7CiAKLS0gCjIuMTMuNgoKCkZyb20gNjM1OTIzMTE2MzU3MDE2ODY0 ZDI2YzY2NjBlYzc4ZmEzM2Q1OTU1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDMwIE9jdCAyMDE3IDIz OjA4OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzNy8zN10gdGNwOiBmaXggdGNwX210dV9wcm9i ZSgpIHZzIGhpZ2hlc3Rfc2FjawoKWyBVcHN0cmVhbSBjb21taXQgMmI3Y2RhOWMzNWQzYjk0MGVi OWNlNzRiMzBiYmQ1ZWIzMGRiNDkzZCBdCgpCYXNlZCBvbiBTTk1QIHZhbHVlcyBwcm92aWRlZCBi eSBSb21hbiwgWXVjaHVuZyBtYWRlIHRoZSBvYnNlcnZhdGlvbgp0aGF0IHNvbWUgY3Jhc2hlcyBp biB0Y3Bfc2Fja3RhZ193YWxrKCkgbWlnaHQgYmUgY2F1c2VkIGJ5IE1UVSBwcm9iaW5nLgoKTG9v a2luZyBhdCB0Y3BfbXR1X3Byb2JlKCksIEkgZm91bmQgdGhhdCB3aGVuIGEgbmV3IHNrYiB3YXMg cGxhY2VkCmluIGZyb250IG9mIHRoZSB3cml0ZSBxdWV1ZSwgd2Ugd2VyZSBub3QgdXBkYXRpbmcg dGNwIGhpZ2hlc3Qgc2Fjay4KCklmIG9uZSBza2IgaXMgZnJlZWQgYmVjYXVzZSBhbGwgaXRzIGNv bnRlbnQgd2FzIGNvcGllZCB0byB0aGUgbmV3IHNrYgooZm9yIE1UVSBwcm9iaW5nKSwgdGhlbiB0 cC0+aGlnaGVzdF9zYWNrIGNvdWxkIHBvaW50IHRvIGEgbm93IGZyZWVkIHNrYi4KCkJhZCB0aGlu Z3Mgd291bGQgdGhlbiBoYXBwZW4sIGluY2x1ZGluZyBpbmZpbml0ZSBsb29wcy4KClRoaXMgcGF0 Y2ggcmVuYW1lcyB0Y3BfaGlnaGVzdF9zYWNrX2NvbWJpbmUoKSBhbmQgdXNlcyBpdApmcm9tIHRj cF9tdHVfcHJvYmUoKSB0byBmaXggdGhlIGJ1Zy4KCk5vdGUgdGhhdCBJIGFsc28gcmVtb3ZlZCBv bmUgdGVzdCBhZ2FpbnN0IHRwLT5zYWNrZWRfb3V0LApzaW5jZSB3ZSB3YW50IHRvIHJlcGxhY2Ug dHAtPmhpZ2hlc3Rfc2FjayByZWdhcmRsZXNzIG9mIHdoYXRldmVyCmNvbmRpdGlvbiwgc2luY2Ug a2VlcGluZyBhIHN0YWxlIHBvaW50ZXIgdG8gZnJlZWQgc2tiIGlzIGEgcmVjaXBlCmZvciBkaXNh c3Rlci4KCkZpeGVzOiBhNDdlNWE5ODhhNTcgKCJbVENQXTogQ29udmVydCBoaWdoZXN0X3NhY2sg dG8gc2tfYnVmZiB0byBhbGxvdyBkaXJlY3QgYWNjZXNzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogQWxleGVpIFN0YXJvdm9p dG92IDxhbGV4ZWkuc3Rhcm92b2l0b3ZAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogUm9tYW4gR3Vz aGNoaW4gPGd1cm9AZmIuY29tPgpSZXBvcnRlZC1ieTogT2xla3NhbmRyIE5hdGFsZW5rbyA8b2xl a3NhbmRyQG5hdGFsZW5rby5uYW1lPgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RA a2VybmVsLm9yZz4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29t PgpBY2tlZC1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25l dC90Y3AuaCAgICAgfCA2ICsrKy0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgMyArKy0KIDIg ZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggNDg5NzgxMjU5 NDdiLi4xNTBjMmM2Njg5N2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2lu Y2x1ZGUvbmV0L3RjcC5oCkBAIC0xNzUwLDEyICsxNzUwLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCB0Y3BfaGlnaGVzdF9zYWNrX3Jlc2V0KHN0cnVjdCBzb2NrICpzaykKIAl0Y3Bfc2soc2spLT5o aWdoZXN0X3NhY2sgPSB0Y3Bfd3JpdGVfcXVldWVfaGVhZChzayk7CiB9CiAKLS8qIENhbGxlZCB3 aGVuIG9sZCBza2IgaXMgYWJvdXQgdG8gYmUgZGVsZXRlZCAodG8gYmUgY29tYmluZWQgd2l0aCBu ZXcgc2tiKSAqLwotc3RhdGljIGlubGluZSB2b2lkIHRjcF9oaWdoZXN0X3NhY2tfY29tYmluZShz dHJ1Y3Qgc29jayAqc2ssCisvKiBDYWxsZWQgd2hlbiBvbGQgc2tiIGlzIGFib3V0IHRvIGJlIGRl bGV0ZWQgYW5kIHJlcGxhY2VkIGJ5IG5ldyBza2IgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB0Y3Bf aGlnaGVzdF9zYWNrX3JlcGxhY2Uoc3RydWN0IHNvY2sgKnNrLAogCQkJCQkgICAgc3RydWN0IHNr X2J1ZmYgKm9sZCwKIAkJCQkJICAgIHN0cnVjdCBza19idWZmICpuZXcpCiB7Ci0JaWYgKHRjcF9z ayhzayktPnNhY2tlZF9vdXQgJiYgKG9sZCA9PSB0Y3Bfc2soc2spLT5oaWdoZXN0X3NhY2spKQor CWlmIChvbGQgPT0gdGNwX2hpZ2hlc3Rfc2FjayhzaykpCiAJCXRjcF9zayhzayktPmhpZ2hlc3Rf c2FjayA9IG5ldzsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0 L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IDk3OTg0NjBiNjFhYi4uNTg1ODdiMGUyYjVkIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5j CkBAIC0yMDk0LDYgKzIwOTQsNyBAQCBzdGF0aWMgaW50IHRjcF9tdHVfcHJvYmUoc3RydWN0IHNv Y2sgKnNrKQogCW5za2ItPmlwX3N1bW1lZCA9IHNrYi0+aXBfc3VtbWVkOwogCiAJdGNwX2luc2Vy dF93cml0ZV9xdWV1ZV9iZWZvcmUobnNrYiwgc2tiLCBzayk7CisJdGNwX2hpZ2hlc3Rfc2Fja19y ZXBsYWNlKHNrLCBza2IsIG5za2IpOwogCiAJbGVuID0gMDsKIAl0Y3BfZm9yX3dyaXRlX3F1ZXVl X2Zyb21fc2FmZShza2IsIG5leHQsIHNrKSB7CkBAIC0yNjk0LDcgKzI2OTUsNyBAQCBzdGF0aWMg Ym9vbCB0Y3BfY29sbGFwc2VfcmV0cmFucyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpza2IpCiAJCWVsc2UgaWYgKCFza2Jfc2hpZnQoc2tiLCBuZXh0X3NrYiwgbmV4dF9za2Jfc2l6 ZSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQotCXRjcF9oaWdoZXN0X3NhY2tfY29tYmluZShzaywg bmV4dF9za2IsIHNrYik7CisJdGNwX2hpZ2hlc3Rfc2Fja19yZXBsYWNlKHNrLCBuZXh0X3NrYiwg c2tiKTsKIAogCXRjcF91bmxpbmtfd3JpdGVfcXVldWUobmV4dF9za2IsIHNrKTsKIAotLSAKMi4x My42Cgo= ----Next_Part(Tue_Nov_14_15_36_24_2017_061)----