From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F793CA9ED3 for ; Tue, 5 Nov 2019 01:52:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E276520848 for ; Tue, 5 Nov 2019 01:52:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729765AbfKEBwJ (ORCPT ); Mon, 4 Nov 2019 20:52:09 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:54902 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729597AbfKEBwJ (ORCPT ); Mon, 4 Nov 2019 20:52:09 -0500 Received: from localhost (unknown [IPv6:2601:601:9f00:1e2::d71]) (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 69F0415253B11 for ; Mon, 4 Nov 2019 17:52:00 -0800 (PST) Date: Mon, 04 Nov 2019 17:51:59 -0800 (PST) Message-Id: <20191104.175159.1731030684200028707.davem@davemloft.net> To: stable@vger.kernel.org Subject: [GIT] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Nov__4_17_51_59_2019_455)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Mon, 04 Nov 2019 17:52:02 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Mon_Nov__4_17_51_59_2019_455)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.3 -stable, respectively. Thanks! ----Next_Part(Mon_Nov__4_17_51_59_2019_455)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSAwZTFhYTlkMGIzNmFiNzIwMDA4MTI0OWY0NDY0MDIzMzI5ZWVjN2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaXNoYWwgS3Vsa2FybmkgPHZpc2hhbEBjaGVsc2lvLmNvbT4K RGF0ZTogV2VkLCAzMCBPY3QgMjAxOSAyMDoxNzo1NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMDEv MzZdIGN4Z2I0OiBmaXggcGFuaWMgd2hlbiBhdHRhY2hpbmcgdG8gVUxEIGZhaWwKClsgVXBzdHJl YW0gY29tbWl0IGZjODljYzM1OGZiNjRlMjQyOWFlYWUwZjM3OTA2MTI2NjM2NTA3ZWMgXQoKUmVs ZWFzZSByZXNvdXJjZXMgd2hlbiBhdHRhY2hpbmcgdG8gVUxEIGZhaWwuIE90aGVyd2lzZSwgZGF0 YQptaXNtYXRjaCBpcyBzZWVuIGJldHdlZW4gTExEIGFuZCBVTEQgbGF0ZXIgb24sIHdoaWNoIGxl YWQgdG8Ka2VybmVsIHBhbmljIHdoZW4gYWNjZXNzaW5nIHJlc291cmNlcyB0aGF0IHNob3VsZCBu b3QgZXZlbgpleGlzdCBpbiB0aGUgZmlyc3QgcGxhY2UuCgpGaXhlczogOTRjZGI4YmI5OTNhICgi Y3hnYjQ6IEFkZCBzdXBwb3J0IGZvciBkeW5hbWljIGFsbG9jYXRpb24gb2YgcmVzb3VyY2VzIGZv ciBVTEQiKQpTaWduZWQtb2ZmLWJ5OiBTaGFoamFkYSBBYnVsIEh1c2FpbiA8c2hhaGphZGFAY2hl bHNpby5jb20+ClNpZ25lZC1vZmYtYnk6IFZpc2hhbCBLdWxrYXJuaSA8dmlzaGFsQGNoZWxzaW8u Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3VsZC5jICAgIHwgMjkg KysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v Y3hnYjQvY3hnYjRfdWxkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4 Z2I0X3VsZC5jCmluZGV4IGRiYThhMGMxZWRhMy4uM2Q4MzRkNDBlODFlIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3VsZC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdWxkLmMKQEAgLTY3MywxMCArNjcz LDEwIEBAIHN0YXRpYyB2b2lkIHVsZF9pbml0KHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qg Y3hnYjRfbGxkX2luZm8gKmxsZCkKIAlsbGQtPndyaXRlX2NtcGxfc3VwcG9ydCA9IGFkYXAtPnBh cmFtcy53cml0ZV9jbXBsX3N1cHBvcnQ7CiB9CiAKLXN0YXRpYyB2b2lkIHVsZF9hdHRhY2goc3Ry dWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB1bGQpCitzdGF0aWMgaW50IHVsZF9hdHRh Y2goc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB1bGQpCiB7Ci0Jdm9pZCAqaGFu ZGxlOwogCXN0cnVjdCBjeGdiNF9sbGRfaW5mbyBsbGk7CisJdm9pZCAqaGFuZGxlOwogCiAJdWxk X2luaXQoYWRhcCwgJmxsaSk7CiAJdWxkX3F1ZXVlX2luaXQoYWRhcCwgdWxkLCAmbGxpKTsKQEAg LTY4Niw3ICs2ODYsNyBAQCBzdGF0aWMgdm9pZCB1bGRfYXR0YWNoKHN0cnVjdCBhZGFwdGVyICph ZGFwLCB1bnNpZ25lZCBpbnQgdWxkKQogCQlkZXZfd2FybihhZGFwLT5wZGV2X2RldiwKIAkJCSAi Y291bGQgbm90IGF0dGFjaCB0byB0aGUgJXMgZHJpdmVyLCBlcnJvciAlbGRcbiIsCiAJCQkgYWRh cC0+dWxkW3VsZF0ubmFtZSwgUFRSX0VSUihoYW5kbGUpKTsKLQkJcmV0dXJuOworCQlyZXR1cm4g UFRSX0VSUihoYW5kbGUpOwogCX0KIAogCWFkYXAtPnVsZFt1bGRdLmhhbmRsZSA9IGhhbmRsZTsK QEAgLTY5NCwyMyArNjk0LDI0IEBAIHN0YXRpYyB2b2lkIHVsZF9hdHRhY2goc3RydWN0IGFkYXB0 ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB1bGQpCiAKIAlpZiAoYWRhcC0+ZmxhZ3MgJiBGVUxMX0lO SVRfRE9ORSkKIAkJYWRhcC0+dWxkW3VsZF0uc3RhdGVfY2hhbmdlKGhhbmRsZSwgQ1hHQjRfU1RB VEVfVVApOworCisJcmV0dXJuIDA7CiB9CiAKLS8qKgotICoJY3hnYjRfcmVnaXN0ZXJfdWxkIC0g cmVnaXN0ZXIgYW4gdXBwZXItbGF5ZXIgZHJpdmVyCi0gKglAdHlwZTogdGhlIFVMRCB0eXBlCi0g KglAcDogdGhlIFVMRCBtZXRob2RzCisvKiBjeGdiNF9yZWdpc3Rlcl91bGQgLSByZWdpc3RlciBh biB1cHBlci1sYXllciBkcml2ZXIKKyAqIEB0eXBlOiB0aGUgVUxEIHR5cGUKKyAqIEBwOiB0aGUg VUxEIG1ldGhvZHMKICAqCi0gKglSZWdpc3RlcnMgYW4gdXBwZXItbGF5ZXIgZHJpdmVyIHdpdGgg dGhpcyBkcml2ZXIgYW5kIG5vdGlmaWVzIHRoZSBVTEQKLSAqCWFib3V0IGFueSBwcmVzZW50bHkg YXZhaWxhYmxlIGRldmljZXMgdGhhdCBzdXBwb3J0IGl0cyB0eXBlLiAgUmV0dXJucwotICoJJS1F QlVTWSBpZiBhIFVMRCBvZiB0aGUgc2FtZSB0eXBlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4KKyAq IFJlZ2lzdGVycyBhbiB1cHBlci1sYXllciBkcml2ZXIgd2l0aCB0aGlzIGRyaXZlciBhbmQgbm90 aWZpZXMgdGhlIFVMRAorICogYWJvdXQgYW55IHByZXNlbnRseSBhdmFpbGFibGUgZGV2aWNlcyB0 aGF0IHN1cHBvcnQgaXRzIHR5cGUuICBSZXR1cm5zCisgKiAlLUVCVVNZIGlmIGEgVUxEIG9mIHRo ZSBzYW1lIHR5cGUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLgogICovCiBpbnQgY3hnYjRfcmVnaXN0 ZXJfdWxkKGVudW0gY3hnYjRfdWxkIHR5cGUsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRf dWxkX2luZm8gKnApCiB7Ci0JaW50IHJldCA9IDA7CiAJdW5zaWduZWQgaW50IGFkYXBfaWR4ID0g MDsKIAlzdHJ1Y3QgYWRhcHRlciAqYWRhcDsKKwlpbnQgcmV0ID0gMDsKIAogCWlmICh0eXBlID49 IENYR0I0X1VMRF9NQVgpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzQ0LDEyICs3NDUsMTYgQEAg aW50IGN4Z2I0X3JlZ2lzdGVyX3VsZChlbnVtIGN4Z2I0X3VsZCB0eXBlLAogCQlpZiAocmV0KQog CQkJZ290byBmcmVlX2lycTsKIAkJYWRhcC0+dWxkW3R5cGVdID0gKnA7Ci0JCXVsZF9hdHRhY2go YWRhcCwgdHlwZSk7CisJCXJldCA9IHVsZF9hdHRhY2goYWRhcCwgdHlwZSk7CisJCWlmIChyZXQp CisJCQlnb3RvIGZyZWVfdHhxOwogCQlhZGFwX2lkeCsrOwogCX0KIAltdXRleF91bmxvY2soJnVs ZF9tdXRleCk7CiAJcmV0dXJuIDA7CiAKK2ZyZWVfdHhxOgorCXJlbGVhc2Vfc2dlX3R4cV91bGQo YWRhcCwgdHlwZSk7CiBmcmVlX2lycToKIAlpZiAoYWRhcC0+ZmxhZ3MgJiBGVUxMX0lOSVRfRE9O RSkKIAkJcXVpZXNjZV9yeF91bGQoYWRhcCwgdHlwZSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDZmN2Ix YzM3OGFiYmFlNzM1MjRkMjMxZTI3ODllZTAyZTViYzZkOTYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCA0 IE5vdiAyMDE5IDA3OjU3OjU1IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwMi8zNl0gZGNjcDogZG8g bm90IGxlYWsgamlmZmllcyBvbiB0aGUgd2lyZQoKWyBVcHN0cmVhbSBjb21taXQgM2QxZTUwMzlm NWY4N2E4NzMxMjAyY2VjYTA4NzY0ZWU3Y2IwMTBkMyBdCgpGb3Igc29tZSByZWFzb24gSSBtaXNz ZWQgdGhlIGNhc2Ugb2YgRENDUCBwYXNzaXZlCmZsb3dzIGluIG15IHByZXZpb3VzIHBhdGNoLgoK Rml4ZXM6IGE5MDRhMDY5M2MxOCAoImluZXQ6IHN0b3AgbGVha2luZyBqaWZmaWVzIG9uIHRoZSB3 aXJlIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpS ZXBvcnRlZC1ieTogVGhpZW1vIE5hZ2VsIDx0bmFnZWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL2lw djQuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjQuYyBiL25ldC9kY2NwL2lwdjQuYwppbmRleCA4 ZTA4Y2VhNmYxNzguLjE3YWZhMDNjYWIzYSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2NC5jCisr KyBiL25ldC9kY2NwL2lwdjQuYwpAQCAtNDE3LDcgKzQxNyw3IEBAIHN0cnVjdCBzb2NrICpkY2Nw X3Y0X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAlSQ1VfSU5JVF9Q T0lOVEVSKG5ld2luZXQtPmluZXRfb3B0LCByY3VfZGVyZWZlcmVuY2UoaXJlcS0+aXJlcV9vcHQp KTsKIAluZXdpbmV0LT5tY19pbmRleCAgPSBpbmV0X2lpZihza2IpOwogCW5ld2luZXQtPm1jX3R0 bAkgICA9IGlwX2hkcihza2IpLT50dGw7Ci0JbmV3aW5ldC0+aW5ldF9pZCAgID0gamlmZmllczsK KwluZXdpbmV0LT5pbmV0X2lkICAgPSBwcmFuZG9tX3UzMigpOwogCiAJaWYgKGRzdCA9PSBOVUxM ICYmIChkc3QgPSBpbmV0X2Nza19yb3V0ZV9jaGlsZF9zb2NrKHNrLCBuZXdzaywgcmVxKSkgPT0g TlVMTCkKIAkJZ290byBwdXRfYW5kX2V4aXQ7Ci0tIAoyLjIwLjEKCgpGcm9tIDYxZGMxNzgzYzk4 Y2Y2NDk2Njg4ZWJlMDA2ZWQ4ZmJjOGJhODliZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAx OSAyMzoxOTozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMzZdIGVyc3BhbjogZml4IHRoZSB0 dW5faW5mbyBvcHRpb25zX2xlbiBjaGVjayBmb3IgZXJzcGFuCgpbIFVwc3RyZWFtIGNvbW1pdCAy ZWI4ZDZkMjkxMGNmZTNkYzY3ZGMwNTZmMjZmM2RkOWM2M2Q0N2NkIF0KClRoZSBjaGVjayBmb3Ig IW1kIGRvZW5zJ3QgcmVhbGx5IHdvcmsgZm9yIGlwX3R1bm5lbF9pbmZvX29wdHMoaW5mbykgd2hp Y2gKb25seSBkb2VzIGluZm8gKyAxLiBBbHNvIHRvIGF2b2lkIG91dC1vZi1ib3VuZHMgYWNjZXNz IG9uIGluZm8sIGl0IHNob3VsZAplbnN1cmUgb3B0aW9uc19sZW4gaXMgbm90IGxlc3MgdGhhbiBl cnNwYW5fbWV0YWRhdGEgaW4gYm90aCBlcnNwYW5feG1pdCgpCmFuZCBpcDZlcnNwYW5fdHVubmVs X3htaXQoKS4KCkZpeGVzOiAxYTY2YTgzNmRhICgiZ3JlOiBhZGQgY29sbGVjdF9tZCBtb2RlIHRv IEVSU1BBTiB0dW5uZWwiKQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9pcF9ncmUuYyAgfCA0ICsrLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8 IDQgKystLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZ3JlLmMgYi9uZXQvaXB2NC9pcF9ncmUuYwppbmRl eCAwYjg3NTU4ZjI2NWUuLjc1OGEwZjg2ZDQ5OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZ3Jl LmMKKysrIGIvbmV0L2lwdjQvaXBfZ3JlLmMKQEAgLTU4OSw5ICs1ODksOSBAQCBzdGF0aWMgdm9p ZCBlcnNwYW5fZmJfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCWtleSA9ICZ0dW5faW5mby0+a2V5OwogCWlmICghKHR1bl9pbmZvLT5rZXkudHVuX2Zs YWdzICYgVFVOTkVMX0VSU1BBTl9PUFQpKQogCQlnb3RvIGVycl9mcmVlX3J0OworCWlmICh0dW5f aW5mby0+b3B0aW9uc19sZW4gPCBzaXplb2YoKm1kKSkKKyAJCWdvdG8gZXJyX2ZyZWVfcnQ7CiAJ bWQgPSBpcF90dW5uZWxfaW5mb19vcHRzKHR1bl9pbmZvKTsKLQlpZiAoIW1kKQotCQlnb3RvIGVy cl9mcmVlX3J0OwogCiAJLyogRVJTUEFOIGhhcyBmaXhlZCA4IGJ5dGUgR1JFIGhlYWRlciAqLwog CXZlcnNpb24gPSBtZC0+dmVyc2lvbjsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBi L25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCBhMjM1MTZlMjIwNTYuLmRlZTQxMTNmMjFhOSAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAt MTAwMCw5ICsxMDAwLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlwNmVyc3Bhbl90dW5uZWxfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlkc2ZpZWxkID0ga2V5LT50b3M7CiAJCWlmICghKHR1 bl9pbmZvLT5rZXkudHVuX2ZsYWdzICYgVFVOTkVMX0VSU1BBTl9PUFQpKQogCQkJZ290byB0eF9l cnI7Ci0JCW1kID0gaXBfdHVubmVsX2luZm9fb3B0cyh0dW5faW5mbyk7Ci0JCWlmICghbWQpCisJ CWlmICh0dW5faW5mby0+b3B0aW9uc19sZW4gPCBzaXplb2YoKm1kKSkKIAkJCWdvdG8gdHhfZXJy OworCQltZCA9IGlwX3R1bm5lbF9pbmZvX29wdHModHVuX2luZm8pOwogCiAJCXR1bl9pZCA9IHR1 bm5lbF9pZF90b19rZXkzMihrZXktPnR1bl9pZCk7CiAJCWlmIChtZC0+dmVyc2lvbiA9PSAxKSB7 Ci0tIAoyLjIwLjEKCgpGcm9tIGU4NzdhYmIxOGEyYTJiNTAyMWZkZWQzODYyMmIyNDg1ODFlMGRj MDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxIE5vdiAyMDE5IDEwOjMyOjE5IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAwNC8zNl0gaW5ldDogc3RvcCBsZWFraW5nIGppZmZpZXMgb24gdGhlIHdpcmUKClsg VXBzdHJlYW0gY29tbWl0IGE5MDRhMDY5M2MxODk2OTFlZWVlNjRmNmM2YjE4OGJkN2RjMjQ0ZTkg XQoKSGlzdG9yaWNhbGx5IGxpbnV4IHRyaWVkIHRvIHN0aWNrIHRvIFJGQyA3OTEsIDExMjIsIDIw MDMKZm9yIElQdjQgSUQgZmllbGQgZ2VuZXJhdGlvbi4KClJGQyA2ODY0IG1hZGUgY2xlYXIgdGhh dCBubyBtYXR0ZXIgaG93IGhhcmQgd2UgdHJ5LAp3ZSBjYW4gbm90IGVuc3VyZSB1bmljaXR5IG9m IElQIElEIHdpdGhpbiBtYXhpbXVtCmxpZmV0aW1lIGZvciBhbGwgZGF0YWdyYW1zIHdpdGggYSBn aXZlbiBzb3VyY2UKYWRkcmVzcy9kZXN0aW5hdGlvbiBhZGRyZXNzL3Byb3RvY29sIHR1cGxlLgoK TGludXggdXNlcyBhIHBlciBzb2NrZXQgaW5ldCBnZW5lcmF0b3IgKGluZXRfaWQpLCBpbml0aWFs aXplZAphdCBjb25uZWN0aW9uIHN0YXJ0dXAgd2l0aCBhIFhPUiBvZiAnamlmZmllcycgYW5kIG90 aGVyCmZpZWxkcyB0aGF0IGFwcGVhciBjbGVhciBvbiB0aGUgd2lyZS4KClRoaWVtbyBOYWdlbCBw b2ludGVkIHRoYXQgdGhpcyBzdHJhdGVneSBpcyBhIHByaXZhY3kKY29uY2VybiBhcyB0aGlzIHBy b3ZpZGVzIDE2IGJpdHMgb2YgZW50cm9weSB0byBmaW5nZXJwcmludApkZXZpY2VzLgoKTGV0J3Mg c3dpdGNoIHRvIGEgcmFuZG9tIHN0YXJ0aW5nIHBvaW50LCB0aGlzIGlzIGp1c3QgYXMKZ29vZCBh cyBmYXIgYXMgUkZDIDY4NjQgaXMgY29uY2VybmVkIGFuZCBkb2VzIG5vdCBsZWFrCmFueXRoaW5n IGNyaXRpY2FsLgoKRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBUaGllbW8gTmFnZWwgPHRuYWdlbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9jcnlwdG8vY2hlbHNp by9jaHRscy9jaHRsc19jbS5jIHwgMiArLQogbmV0L2RjY3AvaXB2NC5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMiArLQogbmV0L2lwdjQvZGF0YWdyYW0uYyAgICAgICAgICAgICAgICAgICAg IHwgMiArLQogbmV0L2lwdjQvdGNwX2lwdjQuYyAgICAgICAgICAgICAgICAgICAgIHwgNCArKy0t CiBuZXQvc2N0cC9zb2NrZXQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiA1IGZpbGVz IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2NyeXB0by9jaGVsc2lvL2NodGxzL2NodGxzX2NtLmMgYi9kcml2ZXJzL2NyeXB0by9j aGVsc2lvL2NodGxzL2NodGxzX2NtLmMKaW5kZXggMDk5N2UxNjZlYTU3Li44Yjc0OWM3MjFjODcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfY20uYworKysg Yi9kcml2ZXJzL2NyeXB0by9jaGVsc2lvL2NodGxzL2NodGxzX2NtLmMKQEAgLTEyNzYsNyArMTI3 Niw3IEBAIHN0YXRpYyB2b2lkIG1ha2VfZXN0YWJsaXNoZWQoc3RydWN0IHNvY2sgKnNrLCB1MzIg c25kX2lzbiwgdW5zaWduZWQgaW50IG9wdCkKIAl0cC0+d3JpdGVfc2VxID0gc25kX2lzbjsKIAl0 cC0+c25kX254dCA9IHNuZF9pc247CiAJdHAtPnNuZF91bmEgPSBzbmRfaXNuOwotCWluZXRfc2so c2spLT5pbmV0X2lkID0gdHAtPndyaXRlX3NlcSBeIGppZmZpZXM7CisJaW5ldF9zayhzayktPmlu ZXRfaWQgPSBwcmFuZG9tX3UzMigpOwogCWFzc2lnbl9yeG9wdChzaywgb3B0KTsKIAogCWlmICh0 cC0+cmN2X3duZCA+IChSQ1ZfQlVGU0laX00gPDwgMTApKQpkaWZmIC0tZ2l0IGEvbmV0L2RjY3Av aXB2NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IDE3YWZhMDNjYWIzYS4uMTc2YmRkYWNjMTZl IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0L2RjY3AvaXB2NC5jCkBAIC0x MjEsNyArMTIxLDcgQEAgaW50IGRjY3BfdjRfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIAkJCQkJCSAgICBpbmV0LT5pbmV0X2Rh ZGRyLAogCQkJCQkJICAgIGluZXQtPmluZXRfc3BvcnQsCiAJCQkJCQkgICAgaW5ldC0+aW5ldF9k cG9ydCk7Ci0JaW5ldC0+aW5ldF9pZCA9IGRwLT5kY2Nwc19pc3MgXiBqaWZmaWVzOworCWluZXQt PmluZXRfaWQgPSBwcmFuZG9tX3UzMigpOwogCiAJZXJyID0gZGNjcF9jb25uZWN0KHNrKTsKIAly dCA9IE5VTEw7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9kYXRhZ3JhbS5jIGIvbmV0L2lwdjQvZGF0 YWdyYW0uYwppbmRleCA4MDEwN2E2YTJjNGEuLmRjODUxN2MyY2RjNyAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2NC9kYXRhZ3JhbS5jCkBAIC03Nyw3ICs3Nyw3 IEBAIGludCBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNv Y2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuCiAJcmV1c2Vwb3J0X2hhc19jb25ucyhzaywgdHJ1 ZSk7CiAJc2stPnNrX3N0YXRlID0gVENQX0VTVEFCTElTSEVEOwogCXNrX3NldF90eGhhc2goc2sp OwotCWluZXQtPmluZXRfaWQgPSBqaWZmaWVzOworCWluZXQtPmluZXRfaWQgPSBwcmFuZG9tX3Uz MigpOwogCiAJc2tfZHN0X3NldChzaywgJnJ0LT5kc3QpOwogCWVyciA9IDA7CmRpZmYgLS1naXQg YS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBiNzZjZjk2 ZDVjZmUuLmJmZWM0ODg0OTczNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysg Yi9uZXQvaXB2NC90Y3BfaXB2NC5jCkBAIC0zMDUsNyArMzA1LDcgQEAgaW50IHRjcF92NF9jb25u ZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVu KQogCQkJCQkJIGluZXQtPmluZXRfZGFkZHIpOwogCX0KIAotCWluZXQtPmluZXRfaWQgPSB0cC0+ d3JpdGVfc2VxIF4gamlmZmllczsKKwlpbmV0LT5pbmV0X2lkID0gcHJhbmRvbV91MzIoKTsKIAog CWlmICh0Y3BfZmFzdG9wZW5fZGVmZXJfY29ubmVjdChzaywgJmVycikpCiAJCXJldHVybiBlcnI7 CkBAIC0xNDM2LDcgKzE0MzYsNyBAQCBzdHJ1Y3Qgc29jayAqdGNwX3Y0X3N5bl9yZWN2X3NvY2so Y29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWluZXRfY3NrKG5l d3NrKS0+aWNza19leHRfaGRyX2xlbiA9IDA7CiAJaWYgKGluZXRfb3B0KQogCQlpbmV0X2Nzayhu ZXdzayktPmljc2tfZXh0X2hkcl9sZW4gPSBpbmV0X29wdC0+b3B0Lm9wdGxlbjsKLQluZXdpbmV0 LT5pbmV0X2lkID0gbmV3dHAtPndyaXRlX3NlcSBeIGppZmZpZXM7CisJbmV3aW5ldC0+aW5ldF9p ZCA9IHByYW5kb21fdTMyKCk7CiAKIAlpZiAoIWRzdCkgewogCQlkc3QgPSBpbmV0X2Nza19yb3V0 ZV9jaGlsZF9zb2NrKHNrLCBuZXdzaywgcmVxKTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tl dC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggMjI3YjA1MGNmZTQ1Li4wYWIzMzlhNDJmOTkg MTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBA IC04Nzc3LDcgKzg3NzcsNyBAQCB2b2lkIHNjdHBfY29weV9zb2NrKHN0cnVjdCBzb2NrICpuZXdz aywgc3RydWN0IHNvY2sgKnNrLAogCW5ld2luZXQtPmluZXRfcmN2X3NhZGRyID0gaW5ldC0+aW5l dF9yY3Zfc2FkZHI7CiAJbmV3aW5ldC0+aW5ldF9kcG9ydCA9IGh0b25zKGFzb2MtPnBlZXIucG9y dCk7CiAJbmV3aW5ldC0+cG10dWRpc2MgPSBpbmV0LT5wbXR1ZGlzYzsKLQluZXdpbmV0LT5pbmV0 X2lkID0gYXNvYy0+bmV4dF90c24gXiBqaWZmaWVzOworCW5ld2luZXQtPmluZXRfaWQgPSBwcmFu ZG9tX3UzMigpOwogCiAJbmV3aW5ldC0+dWNfdHRsID0gaW5ldC0+dWNfdHRsOwogCW5ld2luZXQt Pm1jX2xvb3AgPSAxOwotLSAKMi4yMC4xCgoKRnJvbSAyMWQ0MmFmNmYwYWJkNWNhMGU2ZjVlOTE0 OGQ4YjRjYjllYzVhYTUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMzAgT2N0IDIwMTkgMTM6MDA6MDQg LTA3MDAKU3ViamVjdDogW1BBVENIIDA1LzM2XSBuZXQ6IGFubm90YXRlIGFjY2Vzc2VzIHRvIHNr LT5za19pbmNvbWluZ19jcHUKClsgVXBzdHJlYW0gY29tbWl0IDcxNzBhOTc3NzQzYjcyY2YzZWI0 NmVmNmVmODk4ODVkYzdhZDM2MjEgXQoKVGhpcyBzb2NrZXQgZmllbGQgY2FuIGJlIHJlYWQgYW5k IHdyaXR0ZW4gYnkgY29uY3VycmVudCBjcHVzLgoKVXNlIFJFQURfT05DRSgpIGFuZCBXUklURV9P TkNFKCkgYW5ub3RhdGlvbnMgdG8gZG9jdW1lbnQgdGhpcywKYW5kIGF2b2lkIHNvbWUgY29tcGls ZXIgJ29wdGltaXphdGlvbnMnLgoKS0NTQU4gcmVwb3J0ZWQgOgoKQlVHOiBLQ1NBTjogZGF0YS1y YWNlIGluIHRjcF92NF9yY3YgLyB0Y3BfdjRfcmN2Cgp3cml0ZSB0byAweGZmZmY4ODgxMjIyMDc2 M2Mgb2YgNCBieXRlcyBieSBpbnRlcnJ1cHQgb24gY3B1IDA6CiBza19pbmNvbWluZ19jcHVfdXBk YXRlIGluY2x1ZGUvbmV0L3NvY2suaDo5NTMgW2lubGluZV0KIHRjcF92NF9yY3YrMHgxYjNjLzB4 MWJiMCBuZXQvaXB2NC90Y3BfaXB2NC5jOjE5MzQKIGlwX3Byb3RvY29sX2RlbGl2ZXJfcmN1KzB4 NGQvMHg0MjAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMDQKIGlwX2xvY2FsX2RlbGl2ZXJfZmluaXNo KzB4MTEwLzB4MTQwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjMxCiBORl9IT09LIGluY2x1ZGUvbGlu dXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0Zmls dGVyLmg6Mjk5IFtpbmxpbmVdCiBpcF9sb2NhbF9kZWxpdmVyKzB4MTMzLzB4MjEwIG5ldC9pcHY0 L2lwX2lucHV0LmM6MjUyCiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDQyIFtpbmxpbmVd CiBpcF9yY3ZfZmluaXNoKzB4MTIxLzB4MTYwIG5ldC9pcHY0L2lwX2lucHV0LmM6NDEzCiBORl9I T09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09LIGluY2x1 ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjk5IFtpbmxpbmVdCiBpcF9yY3YrMHgxOGYvMHgxYTAgbmV0 L2lwdjQvaXBfaW5wdXQuYzo1MjMKIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHhhNy8w eGUwIG5ldC9jb3JlL2Rldi5jOjUwMTAKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgzNy8weGYwIG5l dC9jb3JlL2Rldi5jOjUxMjQKIHByb2Nlc3NfYmFja2xvZysweDFkMy8weDQyMCBuZXQvY29yZS9k ZXYuYzo1OTU1CiBuYXBpX3BvbGwgbmV0L2NvcmUvZGV2LmM6NjM5MiBbaW5saW5lXQogbmV0X3J4 X2FjdGlvbisweDNhZS8weGE5MCBuZXQvY29yZS9kZXYuYzo2NDYwCiBfX2RvX3NvZnRpcnErMHgx MTUvMHgzM2Yga2VybmVsL3NvZnRpcnEuYzoyOTIKIGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4MmEv MHg0MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjEwODIKIGRvX3NvZnRpcnEucGFydC4wKzB4 NmIvMHg4MCBrZXJuZWwvc29mdGlycS5jOjMzNwogZG9fc29mdGlycSBrZXJuZWwvc29mdGlycS5j OjMyOSBbaW5saW5lXQogX19sb2NhbF9iaF9lbmFibGVfaXArMHg3Ni8weDgwIGtlcm5lbC9zb2Z0 aXJxLmM6MTg5CgpyZWFkIHRvIDB4ZmZmZjg4ODEyMjIwNzYzYyBvZiA0IGJ5dGVzIGJ5IGludGVy cnVwdCBvbiBjcHUgMToKIHNrX2luY29taW5nX2NwdV91cGRhdGUgaW5jbHVkZS9uZXQvc29jay5o Ojk1MiBbaW5saW5lXQogdGNwX3Y0X3JjdisweDE4MWEvMHgxYmIwIG5ldC9pcHY0L3RjcF9pcHY0 LmM6MTkzNAogaXBfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg0ZC8weDQyMCBuZXQvaXB2NC9pcF9p bnB1dC5jOjIwNAogaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHgxMTAvMHgxNDAgbmV0L2lwdjQv aXBfaW5wdXQuYzoyMzEKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUgW2lu bGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0KIGlw X2xvY2FsX2RlbGl2ZXIrMHgxMzMvMHgyMTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTIKIGRzdF9p bnB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHgxMjEv MHgxNjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0MTMKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRm aWx0ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoy OTkgW2lubGluZV0KIGlwX3JjdisweDE4Zi8weDFhMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjUyMwog X19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsweGE3LzB4ZTAgbmV0L2NvcmUvZGV2LmM6NTAx MAogX19uZXRpZl9yZWNlaXZlX3NrYisweDM3LzB4ZjAgbmV0L2NvcmUvZGV2LmM6NTEyNAogcHJv Y2Vzc19iYWNrbG9nKzB4MWQzLzB4NDIwIG5ldC9jb3JlL2Rldi5jOjU5NTUKIG5hcGlfcG9sbCBu ZXQvY29yZS9kZXYuYzo2MzkyIFtpbmxpbmVdCiBuZXRfcnhfYWN0aW9uKzB4M2FlLzB4YTkwIG5l dC9jb3JlL2Rldi5jOjY0NjAKIF9fZG9fc29mdGlycSsweDExNS8weDMzZiBrZXJuZWwvc29mdGly cS5jOjI5MgogcnVuX2tzb2Z0aXJxZCsweDQ2LzB4NjAga2VybmVsL3NvZnRpcnEuYzo2MDMKIHNt cGJvb3RfdGhyZWFkX2ZuKzB4MzdkLzB4NGEwIGtlcm5lbC9zbXBib290LmM6MTY1CgpSZXBvcnRl ZCBieSBLZXJuZWwgQ29uY3VycmVuY3kgU2FuaXRpemVyIG9uOgpDUFU6IDEgUElEOiAxNiBDb21t OiBrc29mdGlycWQvMSBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogaW5jbHVkZS9uZXQvc29jay5oICAgICAgICAgIHwgNCArKy0tCiBuZXQvY29yZS9zb2NrLmMg ICAgICAgICAgICAgfCA0ICsrLS0KIG5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jICB8IDIgKy0K IG5ldC9pcHY0L3VkcC5jICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY2L2luZXQ2X2hhc2h0 YWJsZXMuYyB8IDIgKy0KIG5ldC9pcHY2L3VkcC5jICAgICAgICAgICAgICB8IDIgKy0KIDYgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCAxZWNlNzczNmM0 OWMuLjUxYTc5NDQzMzg4YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oCisrKyBiL2lu Y2x1ZGUvbmV0L3NvY2suaApAQCAtOTQ1LDggKzk0NSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz a19pbmNvbWluZ19jcHVfdXBkYXRlKHN0cnVjdCBzb2NrICpzaykKIHsKIAlpbnQgY3B1ID0gcmF3 X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAotCWlmICh1bmxpa2VseShzay0+c2tfaW5jb21pbmdfY3B1 ICE9IGNwdSkpCi0JCXNrLT5za19pbmNvbWluZ19jcHUgPSBjcHU7CisJaWYgKHVubGlrZWx5KFJF QURfT05DRShzay0+c2tfaW5jb21pbmdfY3B1KSAhPSBjcHUpKQorCQlXUklURV9PTkNFKHNrLT5z a19pbmNvbWluZ19jcHUsIGNwdSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzb2NrX3Jwc19y ZWNvcmRfZmxvd19oYXNoKF9fdTMyIGhhc2gpCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMg Yi9uZXQvY29yZS9zb2NrLmMKaW5kZXggZjg4MWVlYTFjNGE0Li41ZjY1MmRiZTY2YTIgMTAwNjQ0 Ci0tLSBhL25ldC9jb3JlL3NvY2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTEwMDUsNyAr MTAwNSw3IEBAIGludCBzb2NrX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxl dmVsLCBpbnQgb3B0bmFtZSwKIAkJYnJlYWs7CiAKIAljYXNlIFNPX0lOQ09NSU5HX0NQVToKLQkJ c2stPnNrX2luY29taW5nX2NwdSA9IHZhbDsKKwkJV1JJVEVfT05DRShzay0+c2tfaW5jb21pbmdf Y3B1LCB2YWwpOwogCQlicmVhazsKIAogCWNhc2UgU09fQ05YX0FEVklDRToKQEAgLTEzNDEsNyAr MTM0MSw3IEBAIGludCBzb2NrX2dldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxl dmVsLCBpbnQgb3B0bmFtZSwKIAkJYnJlYWs7CiAKIAljYXNlIFNPX0lOQ09NSU5HX0NQVToKLQkJ di52YWwgPSBzay0+c2tfaW5jb21pbmdfY3B1OworCQl2LnZhbCA9IFJFQURfT05DRShzay0+c2tf aW5jb21pbmdfY3B1KTsKIAkJYnJlYWs7CiAKIAljYXNlIFNPX01FTUlORk86CmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYyBiL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5j CmluZGV4IGY1YzllZjI1ODZkZS4uN2JlOTY2YTYwODAxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9p bmV0X2hhc2h0YWJsZXMuYworKysgYi9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYwpAQCAtMjQ4 LDcgKzI0OCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNvbXB1dGVfc2NvcmUoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgbmV0ICpuZXQsCiAJCQlpZiAoc2stPnNrX2JvdW5kX2Rldl9pZikKIAkJCQlz Y29yZSArPSA0OwogCQl9Ci0JCWlmIChzay0+c2tfaW5jb21pbmdfY3B1ID09IHJhd19zbXBfcHJv Y2Vzc29yX2lkKCkpCisJCWlmIChSRUFEX09OQ0Uoc2stPnNrX2luY29taW5nX2NwdSkgPT0gcmF3 X3NtcF9wcm9jZXNzb3JfaWQoKSkKIAkJCXNjb3JlKys7CiAJfQogCXJldHVybiBzY29yZTsKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggYWE1OWFjYzhl ZTBlLi5lYzJhYjgyZDBkNGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9p cHY0L3VkcC5jCkBAIC00MDgsNyArNDA4LDcgQEAgc3RhdGljIGludCBjb21wdXRlX3Njb3JlKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IG5ldCAqbmV0LAogCQkJc2NvcmUgKz0gNDsKIAl9CiAKLQlp ZiAoc2stPnNrX2luY29taW5nX2NwdSA9PSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKQorCWlmIChS RUFEX09OQ0Uoc2stPnNrX2luY29taW5nX2NwdSkgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkK IAkJc2NvcmUrKzsKIAlyZXR1cm4gc2NvcmU7CiB9CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pbmV0 Nl9oYXNodGFibGVzLmMgYi9uZXQvaXB2Ni9pbmV0Nl9oYXNodGFibGVzLmMKaW5kZXggM2Q3Yzc0 NjBhMGM1Li45MWQ2ZWE5MzdmZmIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2luZXQ2X2hhc2h0YWJs ZXMuYworKysgYi9uZXQvaXB2Ni9pbmV0Nl9oYXNodGFibGVzLmMKQEAgLTExOCw3ICsxMTgsNyBA QCBzdGF0aWMgaW5saW5lIGludCBjb21wdXRlX3Njb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IG5ldCAqbmV0LAogCQkJaWYgKHNrLT5za19ib3VuZF9kZXZfaWYpCiAJCQkJc2NvcmUrKzsKIAkJ fQotCQlpZiAoc2stPnNrX2luY29taW5nX2NwdSA9PSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKQor CQlpZiAoUkVBRF9PTkNFKHNrLT5za19pbmNvbWluZ19jcHUpID09IHJhd19zbXBfcHJvY2Vzc29y X2lkKCkpCiAJCQlzY29yZSsrOwogCX0KIAlyZXR1cm4gc2NvcmU7CmRpZmYgLS1naXQgYS9uZXQv aXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5jCmluZGV4IGQxYzU5Y2I2ZGNlYi4uMTk3OTkyMmJj ZjY3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2Ni91ZHAuYwpAQCAt MTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBpbnQgY29tcHV0ZV9zY29yZShzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBuZXQgKm5ldCwKIAkJCXNjb3JlKys7CiAJfQogCi0JaWYgKHNrLT5za19pbmNvbWlu Z19jcHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKKwlpZiAoUkVBRF9PTkNFKHNrLT5za19p bmNvbWluZ19jcHUpID09IHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpCiAJCXNjb3JlKys7CiAKIAly ZXR1cm4gc2NvcmU7Ci0tIAoyLjIwLjEKCgpGcm9tIDc1OTAyOTIxMGE0OGYxOTAxZWE2NzBhOGM1 YzAwZjQwODk5Njk5YzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAyOSBPY3QgMjAxOSAxMDo1NDo0NCAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzZdIG5ldDogYW5ub3RhdGUgbG9ja2xlc3MgYWNjZXNz ZXMgdG8gc2stPnNrX25hcGlfaWQKClsgVXBzdHJlYW0gY29tbWl0IGVlOGQxNTNkNDZhM2I5OGMw NjRlZTE1YzBjMGEzYmJmMTQ1MGU1YTEgXQoKV2UgYWxyZWFkeSBhbm5vdGF0ZWQgbW9zdCBhY2Nl c3NlcyB0byBzay0+c2tfbmFwaV9pZAoKV2UgbWlzc2VkIHNrX21hcmtfbmFwaV9pZCgpIGFuZCBz a19tYXJrX25hcGlfaWRfb25jZSgpCndoaWNoIG1pZ2h0IGJlIGNhbGxlZCB3aXRob3V0IHNvY2tl dCBsb2NrIGhlbGQgaW4gVURQIHN0YWNrLgoKS0NTQU4gcmVwb3J0ZWQgOgpCVUc6IEtDU0FOOiBk YXRhLXJhY2UgaW4gdWRwdjZfcXVldWVfcmN2X29uZV9za2IgLyB1ZHB2Nl9xdWV1ZV9yY3Zfb25l X3NrYgoKd3JpdGUgdG8gMHhmZmZmODg4MTIxYzZkMTA4IG9mIDQgYnl0ZXMgYnkgaW50ZXJydXB0 IG9uIGNwdSAwOgogc2tfbWFya19uYXBpX2lkIGluY2x1ZGUvbmV0L2J1c3lfcG9sbC5oOjEyNSBb aW5saW5lXQogX191ZHB2Nl9xdWV1ZV9yY3Zfc2tiIG5ldC9pcHY2L3VkcC5jOjU3MSBbaW5saW5l XQogdWRwdjZfcXVldWVfcmN2X29uZV9za2IrMHg3MGMvMHhiNDAgbmV0L2lwdjYvdWRwLmM6Njcy CiB1ZHB2Nl9xdWV1ZV9yY3Zfc2tiKzB4YjUvMHg0MDAgbmV0L2lwdjYvdWRwLmM6Njg5CiB1ZHA2 X3VuaWNhc3RfcmN2X3NrYi5pc3JhLjArMHhkNy8weDE4MCBuZXQvaXB2Ni91ZHAuYzo4MzIKIF9f dWRwNl9saWJfcmN2KzB4NjljLzB4MTc3MCBuZXQvaXB2Ni91ZHAuYzo5MTMKIHVkcHY2X3Jjdisw eDJiLzB4NDAgbmV0L2lwdjYvdWRwLmM6MTAxNQogaXA2X3Byb3RvY29sX2RlbGl2ZXJfcmN1KzB4 MjJhLzB4YmUwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjQwOQogaXA2X2lucHV0X2ZpbmlzaCsweDMw LzB4NTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NDUwCiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0 ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6 Mjk5IFtpbmxpbmVdCiBpcDZfaW5wdXQrMHgxNzcvMHgxOTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6 NDU5CiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDQyIFtpbmxpbmVdCiBpcDZfcmN2X2Zp bmlzaCsweDExMC8weDE0MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo3NgogTkZfSE9PSyBpbmNsdWRl L2xpbnV4L25ldGZpbHRlci5oOjMwNSBbaW5saW5lXQogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25l dGZpbHRlci5oOjI5OSBbaW5saW5lXQogaXB2Nl9yY3YrMHgxYTEvMHgxYjAgbmV0L2lwdjYvaXA2 X2lucHV0LmM6Mjg0CiBfX25ldGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4YTcvMHhlMCBuZXQv Y29yZS9kZXYuYzo1MDEwCiBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MzcvMHhmMCBuZXQvY29yZS9k ZXYuYzo1MTI0CiBwcm9jZXNzX2JhY2tsb2crMHgxZDMvMHg0MjAgbmV0L2NvcmUvZGV2LmM6NTk1 NQogbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjYzOTIgW2lubGluZV0KIG5ldF9yeF9hY3Rpb24r MHgzYWUvMHhhOTAgbmV0L2NvcmUvZGV2LmM6NjQ2MAoKd3JpdGUgdG8gMHhmZmZmODg4MTIxYzZk MTA4IG9mIDQgYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAxOgogc2tfbWFya19uYXBpX2lkIGlu Y2x1ZGUvbmV0L2J1c3lfcG9sbC5oOjEyNSBbaW5saW5lXQogX191ZHB2Nl9xdWV1ZV9yY3Zfc2ti IG5ldC9pcHY2L3VkcC5jOjU3MSBbaW5saW5lXQogdWRwdjZfcXVldWVfcmN2X29uZV9za2IrMHg3 MGMvMHhiNDAgbmV0L2lwdjYvdWRwLmM6NjcyCiB1ZHB2Nl9xdWV1ZV9yY3Zfc2tiKzB4YjUvMHg0 MDAgbmV0L2lwdjYvdWRwLmM6Njg5CiB1ZHA2X3VuaWNhc3RfcmN2X3NrYi5pc3JhLjArMHhkNy8w eDE4MCBuZXQvaXB2Ni91ZHAuYzo4MzIKIF9fdWRwNl9saWJfcmN2KzB4NjljLzB4MTc3MCBuZXQv aXB2Ni91ZHAuYzo5MTMKIHVkcHY2X3JjdisweDJiLzB4NDAgbmV0L2lwdjYvdWRwLmM6MTAxNQog aXA2X3Byb3RvY29sX2RlbGl2ZXJfcmN1KzB4MjJhLzB4YmUwIG5ldC9pcHY2L2lwNl9pbnB1dC5j OjQwOQogaXA2X2lucHV0X2ZpbmlzaCsweDMwLzB4NTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NDUw CiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09L IGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjk5IFtpbmxpbmVdCiBpcDZfaW5wdXQrMHgxNzcv MHgxOTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NDU5CiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0 Lmg6NDQyIFtpbmxpbmVdCiBpcDZfcmN2X2ZpbmlzaCsweDExMC8weDE0MCBuZXQvaXB2Ni9pcDZf aW5wdXQuYzo3NgogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjMwNSBbaW5saW5l XQogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI5OSBbaW5saW5lXQogaXB2Nl9y Y3YrMHgxYTEvMHgxYjAgbmV0L2lwdjYvaXA2X2lucHV0LmM6Mjg0CiBfX25ldGlmX3JlY2VpdmVf c2tiX29uZV9jb3JlKzB4YTcvMHhlMCBuZXQvY29yZS9kZXYuYzo1MDEwCiBfX25ldGlmX3JlY2Vp dmVfc2tiKzB4MzcvMHhmMCBuZXQvY29yZS9kZXYuYzo1MTI0CiBwcm9jZXNzX2JhY2tsb2crMHgx ZDMvMHg0MjAgbmV0L2NvcmUvZGV2LmM6NTk1NQoKUmVwb3J0ZWQgYnkgS2VybmVsIENvbmN1cnJl bmN5IFNhbml0aXplciBvbjoKQ1BVOiAxIFBJRDogMTA4OTAgQ29tbTogc3l6LWV4ZWN1dG9yLjAg Tm90IHRhaW50ZWQgNS40LjAtcmMzKyAjMApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENv bXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAx MQoKRml4ZXM6IGU2OGI2ZTUwZmEzNSAoInVkcDogZW5hYmxlIGJ1c3kgcG9sbGluZyBmb3IgYWxs IHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9uZXQvYnVzeV9wb2xsLmggfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9idXN5X3Bv bGwuaCBiL2luY2x1ZGUvbmV0L2J1c3lfcG9sbC5oCmluZGV4IGJhNjFjZGQwOWVhYS4uY2Y4Zjc5 Mjc0M2VjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9idXN5X3BvbGwuaAorKysgYi9pbmNsdWRl L25ldC9idXN5X3BvbGwuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz a2JfbWFya19uYXBpX2lkKHN0cnVjdCBza19idWZmICpza2IsCiBzdGF0aWMgaW5saW5lIHZvaWQg c2tfbWFya19uYXBpX2lkKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNr YikKIHsKICNpZmRlZiBDT05GSUdfTkVUX1JYX0JVU1lfUE9MTAotCXNrLT5za19uYXBpX2lkID0g c2tiLT5uYXBpX2lkOworCVdSSVRFX09OQ0Uoc2stPnNrX25hcGlfaWQsIHNrYi0+bmFwaV9pZCk7 CiAjZW5kaWYKIAlza19yeF9xdWV1ZV9zZXQoc2ssIHNrYik7CiB9CkBAIC0xNDQsOCArMTQ0LDgg QEAgc3RhdGljIGlubGluZSB2b2lkIHNrX21hcmtfbmFwaV9pZF9vbmNlKHN0cnVjdCBzb2NrICpz aywKIAkJCQkJY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKICNpZmRlZiBDT05GSUdfTkVU X1JYX0JVU1lfUE9MTAotCWlmICghc2stPnNrX25hcGlfaWQpCi0JCXNrLT5za19uYXBpX2lkID0g c2tiLT5uYXBpX2lkOworCWlmICghUkVBRF9PTkNFKHNrLT5za19uYXBpX2lkKSkKKwkJV1JJVEVf T05DRShzay0+c2tfbmFwaV9pZCwgc2tiLT5uYXBpX2lkKTsKICNlbmRpZgogfQogCi0tIAoyLjIw LjEKCgpGcm9tIGU4Njc4YjA1MWQ4MTM4ZmRkODdjYTYwNjMxMzJhN2IwOTNkMDkxMTIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIE9jdCAyMDE5IDE1OjU0OjA1IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAwNy8zNl0gbmV0OiBkc2E6IGJjbV9zZjI6IEZpeCBJTVAgc2V0dXAgZm9yIHBvcnQgZGlm ZmVyZW50CiB0aGFuIDgKClsgVXBzdHJlYW0gY29tbWl0IDVmYzBmMjEyNDZlNTBhZmRmMzE4YjVh M2E5NDFmN2Y0ZjU3Yjg5NDcgXQoKU2luY2UgaXQgYmVjYW1lIHBvc3NpYmxlIGZvciB0aGUgRFNB IGNvcmUgdG8gdXNlIGEgQ1BVIHBvcnQgZGlmZmVyZW50CnRoYW4gOCwgb3VyIGJjbV9zZjJfaW1w X3NldHVwKCkgZnVuY3Rpb24gd2FzIGJyb2tlbiBiZWNhdXNlIGl0IGFzc3VtZXMKdGhhdCByZWdp c3RlcnMgYXJlIGFwcGxpY2FibGUgdG8gcG9ydCA4LiBJbiBwYXJ0aWN1bGFyLCB0aGUgcG9ydCdz IE1BQwppcyBnb2luZyB0byBzdGF5IGRpc2FibGVkLCBzbyBtYWtlIHN1cmUgd2UgY2xlYXIgdGhl IFJYX0RJUyBhbmQgVFhfRElTCmJpdHMgaWYgd2UgYXJlIG5vdCBjb25maWd1cmVkIGZvciBwb3J0 IDguCgpGaXhlczogOWY5MTQ4NGY2ZmNjICgibmV0OiBkc2E6IG1ha2UgImxhYmVsIiBwcm9wZXJ0 eSBvcHRpb25hbCBmb3IgZHNhMiIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYyB8IDM2ICsrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2Vy dGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9i Y21fc2YyLmMgYi9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCmluZGV4IDJmYTJjYWY3YTc0Ni4u Y2EzNjU1ZDI4ZTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCisrKyBi L2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMKQEAgLTQxLDIyICs0MSwxMSBAQCBzdGF0aWMgdm9p ZCBiY21fc2YyX2ltcF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KQogCXVu c2lnbmVkIGludCBpOwogCXUzMiByZWcsIG9mZnNldDsKIAotCWlmIChwcml2LT50eXBlID09IEJD TTc0NDVfREVWSUNFX0lEKQotCQlvZmZzZXQgPSBDT1JFX1NUU19PVkVSUklERV9JTVA7Ci0JZWxz ZQotCQlvZmZzZXQgPSBDT1JFX1NUU19PVkVSUklERV9JTVAyOwotCiAJLyogRW5hYmxlIHRoZSBw b3J0IG1lbW9yaWVzICovCiAJcmVnID0gY29yZV9yZWFkbChwcml2LCBDT1JFX01FTV9QU01fVkRE X0NUUkwpOwogCXJlZyAmPSB+UF9UWFFfUFNNX1ZERChwb3J0KTsKIAljb3JlX3dyaXRlbChwcml2 LCByZWcsIENPUkVfTUVNX1BTTV9WRERfQ1RSTCk7CiAKLQkvKiBFbmFibGUgQnJvYWRjYXN0LCBN dWx0aWNhc3QsIFVuaWNhc3QgZm9yd2FyZGluZyB0byBJTVAgcG9ydCAqLwotCXJlZyA9IGNvcmVf cmVhZGwocHJpdiwgQ09SRV9JTVBfQ1RMKTsKLQlyZWcgfD0gKFJYX0JDU1RfRU4gfCBSWF9NQ1NU X0VOIHwgUlhfVUNTVF9FTik7Ci0JcmVnICY9IH4oUlhfRElTIHwgVFhfRElTKTsKLQljb3JlX3dy aXRlbChwcml2LCByZWcsIENPUkVfSU1QX0NUTCk7Ci0KIAkvKiBFbmFibGUgZm9yd2FyZGluZyAq LwogCWNvcmVfd3JpdGVsKHByaXYsIFNXX0ZXREdfRU4sIENPUkVfU1dNT0RFKTsKIApAQCAtNzUs MTAgKzY0LDI3IEBAIHN0YXRpYyB2b2lkIGJjbV9zZjJfaW1wX3NldHVwKHN0cnVjdCBkc2Ffc3dp dGNoICpkcywgaW50IHBvcnQpCiAKIAliNTNfYnJjbV9oZHJfc2V0dXAoZHMsIHBvcnQpOwogCi0J LyogRm9yY2UgbGluayBzdGF0dXMgZm9yIElNUCBwb3J0ICovCi0JcmVnID0gY29yZV9yZWFkbChw cml2LCBvZmZzZXQpOwotCXJlZyB8PSAoTUlJX1NXX09SIHwgTElOS19TVFMpOwotCWNvcmVfd3Jp dGVsKHByaXYsIHJlZywgb2Zmc2V0KTsKKwlpZiAocG9ydCA9PSA4KSB7CisJCWlmIChwcml2LT50 eXBlID09IEJDTTc0NDVfREVWSUNFX0lEKQorCQkJb2Zmc2V0ID0gQ09SRV9TVFNfT1ZFUlJJREVf SU1QOworCQllbHNlCisJCQlvZmZzZXQgPSBDT1JFX1NUU19PVkVSUklERV9JTVAyOworCisJCS8q IEZvcmNlIGxpbmsgc3RhdHVzIGZvciBJTVAgcG9ydCAqLworCQlyZWcgPSBjb3JlX3JlYWRsKHBy aXYsIG9mZnNldCk7CisJCXJlZyB8PSAoTUlJX1NXX09SIHwgTElOS19TVFMpOworCQljb3JlX3dy aXRlbChwcml2LCByZWcsIG9mZnNldCk7CisKKwkJLyogRW5hYmxlIEJyb2FkY2FzdCwgTXVsdGlj YXN0LCBVbmljYXN0IGZvcndhcmRpbmcgdG8gSU1QIHBvcnQgKi8KKwkJcmVnID0gY29yZV9yZWFk bChwcml2LCBDT1JFX0lNUF9DVEwpOworCQlyZWcgfD0gKFJYX0JDU1RfRU4gfCBSWF9NQ1NUX0VO IHwgUlhfVUNTVF9FTik7CisJCXJlZyAmPSB+KFJYX0RJUyB8IFRYX0RJUyk7CisJCWNvcmVfd3Jp dGVsKHByaXYsIHJlZywgQ09SRV9JTVBfQ1RMKTsKKwl9IGVsc2UgeworCQlyZWcgPSBjb3JlX3Jl YWRsKHByaXYsIENPUkVfR19QQ1RMX1BPUlQocG9ydCkpOworCQlyZWcgJj0gfihSWF9ESVMgfCBU WF9ESVMpOworCQljb3JlX3dyaXRlbChwcml2LCByZWcsIENPUkVfR19QQ1RMX1BPUlQocG9ydCkp OworCX0KIH0KIAogc3RhdGljIHZvaWQgYmNtX3NmMl9ncGh5X2VuYWJsZV9zZXQoc3RydWN0IGRz YV9zd2l0Y2ggKmRzLCBib29sIGVuYWJsZSkKLS0gCjIuMjAuMQoKCkZyb20gNjZkMTEyYTI4YjU5 MDU2ZTAyNzM2ZGU2MzA0ODQ2NjY0MTk2YjYyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQmVuamFtaW4gSGVycmVuc2NobWlkdCA8YmVuaEBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRl OiBGcmksIDI1IE9jdCAyMDE5IDEzOjQ3OjI0ICsxMTAwClN1YmplY3Q6IFtQQVRDSCAwOC8zNl0g bmV0OiBldGhlcm5ldDogZnRnbWFjMTAwOiBGaXggRE1BIGNvaGVyZW5jeSBpc3N1ZSB3aXRoCiBT VyBjaGVja3N1bQoKWyBVcHN0cmVhbSBjb21taXQgODg4MjRlM2JmMjlhMmZjYWNmZDllYmJmZTAz MDYzNjQ5ZjBmMzI1NCBdCgpXZSBhcmUgY2FsbGluZyB0aGUgY2hlY2tzdW0gaGVscGVyIGFmdGVy IHRoZSBkbWFfbWFwX3NpbmdsZSgpCmNhbGwgdG8gbWFwIHRoZSBwYWNrZXQuIFRoaXMgaXMgaW5j b3JyZWN0IGFzIHRoZSBjaGVja3N1bW1pbmcKY29kZSB3aWxsIHRvdWNoIHRoZSBwYWNrZXQgZnJv bSB0aGUgQ1BVLiBUaGlzIG1lYW5zIHRoZSBjYWNoZQp3b24ndCBiZSBwcm9wZXJseSBmbHVzaGVz IChvciB0aGUgYm91bmNlIGJ1ZmZlcmluZyB3aWxsIGxlYXZlCnVzIHdpdGggdGhlIHVubW9kaWZp ZWQgcGFja2V0IHRvIERNQSkuCgpUaGlzIG1vdmVzIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgY2hl Y2tzdW0gJiB2bGFuIHRhZ3MgdG8KYmVmb3JlIHRoZSBETUEgbWFwcGluZy4KClRoaXMgYWxzbyBo YXMgdGhlIHNpZGUgZWZmZWN0IG9mIGZpeGluZyBhbm90aGVyIGJ1ZzogSWYgdGhlCmNoZWNrc3Vt IGhlbHBlciBmYWlscywgd2UgZ290byAiZHJvcCIgdG8gZHJvcCB0aGUgcGFja2V0LCB3aGljaAp3 aWxsIG5vdCB1bm1hcCB0aGUgRE1BIG1hcHBpbmcuCgpTaWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBI ZXJyZW5zY2htaWR0IDxiZW5oQGtlcm5lbC5jcmFzaGluZy5vcmc+CkZpeGVzOiAwNTY5MGQ2MzNm MzAgKCJmdGdtYWMxMDA6IFVwZ3JhZGUgdG8gTkVUSUZfRl9IV19DU1VNIikKUmV2aWV3ZWQtYnk6 IFZpamF5IEtoZW1rYSA8dmlqYXlraGVta2FAZmIuY29tPgpUZXN0ZWQtYnk6IFZpamF5IEtoZW1r YSA8dmlqYXlraGVta2FAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdt YWMxMDAuYyB8IDI1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEy IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2ZhcmFkYXkvZnRnbWFjMTAwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJh ZGF5L2Z0Z21hYzEwMC5jCmluZGV4IGVkNmM3NmQyMGI0NS4uZjZlZDg4OWJjMzZhIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZhcmFkYXkvZnRnbWFjMTAwLmMKQEAgLTczOSw2ICs3MzksMTggQEAg c3RhdGljIGludCBmdGdtYWMxMDBfaGFyZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2Is CiAJICovCiAJbmZyYWdzID0gc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFnczsKIAorCS8qIFNldHVw IEhXIGNoZWNrc3VtbWluZyAqLworCWNzdW1fdmxhbiA9IDA7CisJaWYgKHNrYi0+aXBfc3VtbWVk ID09IENIRUNLU1VNX1BBUlRJQUwgJiYKKwkgICAgIWZ0Z21hYzEwMF9wcmVwX3R4X2NzdW0oc2ti LCAmY3N1bV92bGFuKSkKKwkJZ290byBkcm9wOworCisJLyogQWRkIFZMQU4gdGFnICovCisJaWYg KHNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikpIHsKKwkJY3N1bV92bGFuIHw9IEZUR01BQzEwMF9U WERFUzFfSU5TX1ZMQU5UQUc7CisJCWNzdW1fdmxhbiB8PSBza2Jfdmxhbl90YWdfZ2V0KHNrYikg JiAweGZmZmY7CisJfQorCiAJLyogR2V0IGhlYWRlciBsZW4gKi8KIAlsZW4gPSBza2JfaGVhZGxl bihza2IpOwogCkBAIC03NjUsMTkgKzc3Nyw2IEBAIHN0YXRpYyBpbnQgZnRnbWFjMTAwX2hhcmRf c3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChuZnJhZ3MgPT0gMCkKIAkJZl9j dGxfc3RhdCB8PSBGVEdNQUMxMDBfVFhERVMwX0xUUzsKIAl0eGRlcy0+dHhkZXMzID0gY3B1X3Rv X2xlMzIobWFwKTsKLQotCS8qIFNldHVwIEhXIGNoZWNrc3VtbWluZyAqLwotCWNzdW1fdmxhbiA9 IDA7Ci0JaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BBUlRJQUwgJiYKLQkgICAgIWZ0 Z21hYzEwMF9wcmVwX3R4X2NzdW0oc2tiLCAmY3N1bV92bGFuKSkKLQkJZ290byBkcm9wOwotCi0J LyogQWRkIFZMQU4gdGFnICovCi0JaWYgKHNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikpIHsKLQkJ Y3N1bV92bGFuIHw9IEZUR01BQzEwMF9UWERFUzFfSU5TX1ZMQU5UQUc7Ci0JCWNzdW1fdmxhbiB8 PSBza2Jfdmxhbl90YWdfZ2V0KHNrYikgJiAweGZmZmY7Ci0JfQotCiAJdHhkZXMtPnR4ZGVzMSA9 IGNwdV90b19sZTMyKGNzdW1fdmxhbik7CiAKIAkvKiBOZXh0IGRlc2NyaXB0b3IgKi8KLS0gCjIu MjAuMQoKCkZyb20gZTVhZWVhYjkwNTVkMTE3YzBjOWY3NzY2MDc2MTkxYWY4NDYxNjliNiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGVqdW4gSGVvIDx0akBrZXJuZWwub3JnPgpEYXRl OiBUaHUsIDI0IE9jdCAyMDE5IDEzOjUwOjI3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOS8zNl0g bmV0OiBmaXggc2tfcGFnZV9mcmFnKCkgcmVjdXJzaW9uIGZyb20gbWVtb3J5IHJlY2xhaW0KClsg VXBzdHJlYW0gY29tbWl0IDIwZWI0ZjI5YjYwMjg2ZTBkNmRjMDFkOWMyNjBiNGJkMzgzYzU4ZmIg XQoKc2tfcGFnZV9mcmFnKCkgb3B0aW1pemVzIHNrYl9mcmFnIGFsbG9jYXRpb25zIGJ5IHVzaW5n IHBlci10YXNrCnNrYl9mcmFnIGNhY2hlIHdoZW4gaXQga25vd3MgaXQncyB0aGUgb25seSB1c2Vy LiAgVGhlIGNvbmRpdGlvbiBpcwpkZXRlcm1pbmVkIGJ5IHNlZWluZyB3aGV0aGVyIHRoZSBzb2Nr ZXQgYWxsb2NhdGlvbiBtYXNrIGFsbG93cwpibG9ja2luZyAtIGlmIHRoZSBhbGxvY2F0aW9uIG1h eSBibG9jaywgaXQgb2J2aW91c2x5IG93bnMgdGhlIHRhc2sncwpjb250ZXh0IGFuZCBlcmdvIGV4 Y2x1c2l2ZWx5IG93bnMgY3VycmVudC0+dGFza19mcmFnLgoKVW5mb3J0dW5hdGVseSwgdGhpcyBt aXNzZXMgcmVjdXJzaW9uIHRocm91Z2ggbWVtb3J5IHJlY2xhaW0gcGF0aC4KUGxlYXNlIHRha2Ug YSBsb29rIGF0IHRoZSBmb2xsb3dpbmcgYmFja3RyYWNlLgoKIFsyXSBSSVA6IDAwMTA6dGNwX3Nl bmRtc2dfbG9ja2VkKzB4Y2NmLzB4ZTEwCiAgICAgLi4uCiAgICAgdGNwX3NlbmRtc2crMHgyNy8w eDQwCiAgICAgc29ja19zZW5kbXNnKzB4MzAvMHg0MAogICAgIHNvY2tfeG1pdC5pc3JhLjI0KzB4 YTEvMHgxNzAgW25iZF0KICAgICBuYmRfc2VuZF9jbWQrMHgxZDIvMHg2OTAgW25iZF0KICAgICBu YmRfcXVldWVfcnErMHgxYjUvMHgzYjAgW25iZF0KICAgICBfX2Jsa19tcV90cnlfaXNzdWVfZGly ZWN0bHkrMHgxMDgvMHgxYjAKICAgICBibGtfbXFfcmVxdWVzdF9pc3N1ZV9kaXJlY3RseSsweGJk LzB4ZTAKICAgICBibGtfbXFfdHJ5X2lzc3VlX2xpc3RfZGlyZWN0bHkrMHg0MS8weGIwCiAgICAg YmxrX21xX3NjaGVkX2luc2VydF9yZXF1ZXN0cysweGEyLzB4ZTAKICAgICBibGtfbXFfZmx1c2hf cGx1Z19saXN0KzB4MjA1LzB4MmEwCiAgICAgYmxrX2ZsdXNoX3BsdWdfbGlzdCsweGMzLzB4ZjAK IFsxXSBibGtfZmluaXNoX3BsdWcrMHgyMS8weDJlCiAgICAgX3hmc19idWZfaW9hcHBseSsweDMx My8weDQ2MAogICAgIF9feGZzX2J1Zl9zdWJtaXQrMHg2Ny8weDIyMAogICAgIHhmc19idWZfcmVh ZF9tYXArMHgxMTMvMHgxYTAKICAgICB4ZnNfdHJhbnNfcmVhZF9idWZfbWFwKzB4YmYvMHgzMzAK ICAgICB4ZnNfYnRyZWVfcmVhZF9idWZfYmxvY2suY29uc3Rwcm9wLjQyKzB4OTUvMHhkMAogICAg IHhmc19idHJlZV9sb29rdXBfZ2V0X2Jsb2NrKzB4OTUvMHgxNzAKICAgICB4ZnNfYnRyZWVfbG9v a3VwKzB4Y2MvMHg0NzAKICAgICB4ZnNfYm1hcF9kZWxfZXh0ZW50X3JlYWwrMHgyNTQvMHg5YTAK ICAgICBfX3hmc19idW5tYXBpKzB4NDVjLzB4YWIwCiAgICAgeGZzX2J1bm1hcGkrMHgxNS8weDMw CiAgICAgeGZzX2l0cnVuY2F0ZV9leHRlbnRzX2ZsYWdzKzB4Y2EvMHgyNTAKICAgICB4ZnNfZnJl ZV9lb2ZibG9ja3MrMHgxODEvMHgxZTAKICAgICB4ZnNfZnNfZGVzdHJveV9pbm9kZSsweGE4LzB4 MWIwCiAgICAgZGVzdHJveV9pbm9kZSsweDM4LzB4NzAKICAgICBkaXNwb3NlX2xpc3QrMHgzNS8w eDUwCiAgICAgcHJ1bmVfaWNhY2hlX3NiKzB4NTIvMHg3MAogICAgIHN1cGVyX2NhY2hlX3NjYW4r MHgxMjAvMHgxYTAKICAgICBkb19zaHJpbmtfc2xhYisweDEyMC8weDI5MAogICAgIHNocmlua19z bGFiKzB4MjE2LzB4MmIwCiAgICAgc2hyaW5rX25vZGUrMHgxYjYvMHg0YTAKICAgICBkb190cnlf dG9fZnJlZV9wYWdlcysweGM2LzB4MzcwCiAgICAgdHJ5X3RvX2ZyZWVfbWVtX2Nncm91cF9wYWdl cysweGUzLzB4MWUwCiAgICAgdHJ5X2NoYXJnZSsweDI5ZS8weDc5MAogICAgIG1lbV9jZ3JvdXBf Y2hhcmdlX3NrbWVtKzB4NmEvMHgxMDAKICAgICBfX3NrX21lbV9yYWlzZV9hbGxvY2F0ZWQrMHgx OGUvMHgzOTAKICAgICBfX3NrX21lbV9zY2hlZHVsZSsweDJhLzB4NDAKIFswXSB0Y3Bfc2VuZG1z Z19sb2NrZWQrMHg4ZWIvMHhlMTAKICAgICB0Y3Bfc2VuZG1zZysweDI3LzB4NDAKICAgICBzb2Nr X3NlbmRtc2crMHgzMC8weDQwCiAgICAgX19fc3lzX3NlbmRtc2crMHgyNmQvMHgyYjAKICAgICBf X3N5c19zZW5kbXNnKzB4NTcvMHhhMAogICAgIGRvX3N5c2NhbGxfNjQrMHg0Mi8weDEwMAogICAg IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKCkluIFswXSwgdGNwX3Nl bmRfbXNnX2xvY2tlZCgpIHdhcyB1c2luZyBjdXJyZW50LT5wYWdlX2ZyYWcgd2hlbiBpdApjYWxs ZWQgc2tfd21lbV9zY2hlZHVsZSgpLiAgSXQgYWxyZWFkeSBjYWxjdWxhdGVkIGhvdyBtYW55IGJ5 dGVzIGNhbgpiZSBmaXQgaW50byBjdXJyZW50LT5wYWdlX2ZyYWcuICBEdWUgdG8gbWVtb3J5IHBy ZXNzdXJlLApza193bWVtX3NjaGVkdWxlKCkgY2FsbGVkIGludG8gbWVtb3J5IHJlY2xhaW0gcGF0 aCB3aGljaCBjYWxsZWQgaW50bwp4ZnMgYW5kIHRoZW4gSU8gaXNzdWUgcGF0aC4gIEJlY2F1c2Ug dGhlIGZpbGVzeXN0ZW0gaW4gcXVlc3Rpb24gaXMKYmFja2VkIGJ5IG5iZCwgdGhlIGNvbnRyb2wg Z29lcyBiYWNrIGludG8gdGhlIHRjcCBsYXllciAtIGJhY2sgaW50bwp0Y3Bfc2VuZG1zZ19sb2Nr ZWQoKS4KCm5iZCBzZXRzIHNrX2FsbG9jYXRpb24gdG8gKEdGUF9OT0lPIHwgX19HRlBfTUVNQUxM T0MpIHdoaWNoIG1ha2VzCnNlbnNlIC0gaXQncyBpbiB0aGUgcHJvY2VzcyBvZiBmcmVlaW5nIG1l bW9yeSBhbmQgd2FudHMgdG8gYmUgYWJsZSB0bywKZS5nLiwgZHJvcCBjbGVhbiBwYWdlcyB0byBt YWtlIGZvcndhcmQgcHJvZ3Jlc3MuICBIb3dldmVyLCB0aGlzCmNvbmZ1c2VkIHNrX3BhZ2VfZnJh ZygpIGNhbGxlZCBmcm9tIFsyXS4gIEJlY2F1c2UgaXQgb25seSB0ZXN0cwp3aGV0aGVyIHRoZSBh bGxvY2F0aW9uIGFsbG93cyBibG9ja2luZyB3aGljaCBpdCBkb2VzLCBpdCBub3cgdGhpbmtzCmN1 cnJlbnQtPnBhZ2VfZnJhZyBjYW4gYmUgdXNlZCBhZ2FpbiBhbHRob3VnaCBpdCBhbHJlYWR5IHdh cyBiZWluZwp1c2VkIGluIFswXS4KCkFmdGVyIFsyXSB1c2VkIGN1cnJlbnQtPnBhZ2VfZnJhZywg dGhlIG9mZnNldCB3b3VsZCBiZSBpbmNyZWFzZWQgYnkKdGhlIHVzZWQgYW1vdW50LiAgV2hlbiB0 aGUgY29udHJvbCByZXR1cm5zIHRvIFswXSwKY3VycmVudC0+cGFnZV9mcmFnJ3Mgb2Zmc2V0IGlz IGluY3JlYXNlZCBhbmQgdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlZApudW1iZXIgb2YgYnl0ZXMg bm93IG1heSBvdmVycnVuIHRoZSBlbmQgb2YgYWxsb2NhdGVkIG1lbW9yeSBsZWFkaW5nIHRvCnNp bGVudCBtZW1vcnkgY29ycnVwdGlvbnMuCgpGaXggaXQgYnkgYWRkaW5nIGdmcGZsYWdzX25vcm1h bF9jb250ZXh0KCkgd2hpY2ggdGVzdHMgc2xlZXBhYmxlICYmCiFyZWNsYWltIGFuZCB1c2UgaXQg dG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gdXNlIGN1cnJlbnQtPnRhc2tfZnJhZy4KCnYyOiBFcmlj IGRpZG4ndCBsaWtlIGdmcCBmbGFncyBiZWluZyB0ZXN0ZWQgdHdpY2UuICBJbnRyb2R1Y2UgYSBu ZXcKICAgIGhlbHBlciBnZnBmbGFnc19ub3JtYWxfY29udGV4dCgpIGFuZCBjb21iaW5lIHRoZSB0 d28gdGVzdHMuCgpTaWduZWQtb2ZmLWJ5OiBUZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+CkNjOiBK b3NlZiBCYWNpayA8am9zZWZAdG94aWNwYW5kYS5jb20+CkNjOiBFcmljIER1bWF6ZXQgPGVyaWMu ZHVtYXpldEBnbWFpbC5jb20+CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xp bnV4L2dmcC5oIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbmV0L3NvY2su aCAgfCAxMSArKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZ2ZwLmggYi9pbmNsdWRl L2xpbnV4L2dmcC5oCmluZGV4IDI0YmNjNWVlYzZiNC4uZjc4ZDFlODk1OTNmIDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L2dmcC5oCisrKyBiL2luY2x1ZGUvbGludXgvZ2ZwLmgKQEAgLTMyNSw2 ICszMjUsMjkgQEAgc3RhdGljIGlubGluZSBib29sIGdmcGZsYWdzX2FsbG93X2Jsb2NraW5nKGNv bnN0IGdmcF90IGdmcF9mbGFncykKIAlyZXR1cm4gISEoZ2ZwX2ZsYWdzICYgX19HRlBfRElSRUNU X1JFQ0xBSU0pOwogfQogCisvKioKKyAqIGdmcGZsYWdzX25vcm1hbF9jb250ZXh0IC0gaXMgZ2Zw X2ZsYWdzIGEgbm9ybWFsIHNsZWVwYWJsZSBjb250ZXh0PworICogQGdmcF9mbGFnczogZ2ZwX2Zs YWdzIHRvIHRlc3QKKyAqCisgKiBUZXN0IHdoZXRoZXIgQGdmcF9mbGFncyBpbmRpY2F0ZXMgdGhh dCB0aGUgYWxsb2NhdGlvbiBpcyBmcm9tIHRoZQorICogJWN1cnJlbnQgY29udGV4dCBhbmQgYWxs b3dlZCB0byBzbGVlcC4KKyAqCisgKiBBbiBhbGxvY2F0aW9uIGJlaW5nIGFsbG93ZWQgdG8gYmxv Y2sgZG9lc24ndCBtZWFuIGl0IG93bnMgdGhlICVjdXJyZW50CisgKiBjb250ZXh0LiAgV2hlbiBk aXJlY3QgcmVjbGFpbSBwYXRoIHRyaWVzIHRvIGFsbG9jYXRlIG1lbW9yeSwgdGhlCisgKiBhbGxv Y2F0aW9uIGNvbnRleHQgaXMgbmVzdGVkIGluc2lkZSB3aGF0ZXZlciAlY3VycmVudCB3YXMgZG9p bmcgYXQgdGhlCisgKiB0aW1lIG9mIHRoZSBvcmlnaW5hbCBhbGxvY2F0aW9uLiAgVGhlIG5lc3Rl ZCBhbGxvY2F0aW9uIG1heSBiZSBhbGxvd2VkCisgKiB0byBibG9jayBidXQgbW9kaWZ5aW5nIGFu eXRoaW5nICVjdXJyZW50IG93bnMgY2FuIGNvcnJ1cHQgdGhlIG91dGVyCisgKiBjb250ZXh0J3Mg ZXhwZWN0YXRpb25zLgorICoKKyAqICV0cnVlIHJlc3VsdCBmcm9tIHRoaXMgZnVuY3Rpb24gaW5k aWNhdGVzIHRoYXQgdGhlIGFsbG9jYXRpb24gY29udGV4dAorICogY2FuIHNsZWVwIGFuZCB1c2Ug YW55dGhpbmcgdGhhdCdzIGFzc29jaWF0ZWQgd2l0aCAlY3VycmVudC4KKyAqLworc3RhdGljIGlu bGluZSBib29sIGdmcGZsYWdzX25vcm1hbF9jb250ZXh0KGNvbnN0IGdmcF90IGdmcF9mbGFncykK K3sKKwlyZXR1cm4gKGdmcF9mbGFncyAmIChfX0dGUF9ESVJFQ1RfUkVDTEFJTSB8IF9fR0ZQX01F TUFMTE9DKSkgPT0KKwkJX19HRlBfRElSRUNUX1JFQ0xBSU07Cit9CisKICNpZmRlZiBDT05GSUdf SElHSE1FTQogI2RlZmluZSBPUFRfWk9ORV9ISUdITUVNIFpPTkVfSElHSE1FTQogI2Vsc2UKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCA1 MWE3OTQ0MzM4OGIuLjA1ZThmYWE4NDcxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5o CisrKyBiL2luY2x1ZGUvbmV0L3NvY2suaApAQCAtMjIxNiwxMiArMjIxNiwxNyBAQCBzdHJ1Y3Qg c2tfYnVmZiAqc2tfc3RyZWFtX2FsbG9jX3NrYihzdHJ1Y3Qgc29jayAqc2ssIGludCBzaXplLCBn ZnBfdCBnZnAsCiAgKiBza19wYWdlX2ZyYWcgLSByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcGFnZV9m cmFnCiAgKiBAc2s6IHNvY2tldAogICoKLSAqIElmIHNvY2tldCBhbGxvY2F0aW9uIG1vZGUgYWxs b3dzIGN1cnJlbnQgdGhyZWFkIHRvIHNsZWVwLCBpdCBtZWFucyBpdHMKLSAqIHNhZmUgdG8gdXNl IHRoZSBwZXIgdGFzayBwYWdlX2ZyYWcgaW5zdGVhZCBvZiB0aGUgcGVyIHNvY2tldCBvbmUuCisg KiBVc2UgdGhlIHBlciB0YXNrIHBhZ2VfZnJhZyBpbnN0ZWFkIG9mIHRoZSBwZXIgc29ja2V0IG9u ZSBmb3IKKyAqIG9wdGltaXphdGlvbiB3aGVuIHdlIGtub3cgdGhhdCB3ZSdyZSBpbiB0aGUgbm9y bWFsIGNvbnRleHQgYW5kIG93bnMKKyAqIGV2ZXJ5dGhpbmcgdGhhdCdzIGFzc29jaWF0ZWQgd2l0 aCAlY3VycmVudC4KKyAqCisgKiBnZnBmbGFnc19hbGxvd19ibG9ja2luZygpIGlzbid0IGVub3Vn aCBoZXJlIGFzIGRpcmVjdCByZWNsYWltIG1heSBuZXN0CisgKiBpbnNpZGUgb3RoZXIgc29ja2V0 IG9wZXJhdGlvbnMgYW5kIGVuZCB1cCByZWN1cnNpbmcgaW50byBza19wYWdlX2ZyYWcoKQorICog d2hpbGUgaXQncyBhbHJlYWR5IGluIHVzZS4KICAqLwogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFn ZV9mcmFnICpza19wYWdlX2ZyYWcoc3RydWN0IHNvY2sgKnNrKQogewotCWlmIChnZnBmbGFnc19h bGxvd19ibG9ja2luZyhzay0+c2tfYWxsb2NhdGlvbikpCisJaWYgKGdmcGZsYWdzX25vcm1hbF9j b250ZXh0KHNrLT5za19hbGxvY2F0aW9uKSkKIAkJcmV0dXJuICZjdXJyZW50LT50YXNrX2ZyYWc7 CiAKIAlyZXR1cm4gJnNrLT5za19mcmFnOwotLSAKMi4yMC4xCgoKRnJvbSAxMzFlN2NhNWFiM2Q2 MmE2YTk0YmZiMjA4YjM4NTg0NTBlMzdkOTE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKaWFuZ2ZlbmcgWGlhbyA8eGlhb2ppYW5nZmVuZ0BodWF3ZWkuY29tPgpEYXRlOiBNb24sIDI4 IE9jdCAyMDE5IDEzOjA5OjQ2ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMC8zNl0gbmV0OiBoaXNp bGljb246IEZpeCBwaW5nIGxhdGVuY3kgd2hlbiBkZWFsIHdpdGggaGlnaAogdGhyb3VnaHB1dAoK WyBVcHN0cmVhbSBjb21taXQgZTU2YmQ2NDFjYTYxYmViOTJiMTM1Mjk4ZDUwNDY5MDVmOTIwYjcz NCBdCgpUaGlzIGlzIGR1ZSB0byBlcnJvciBpbiBvdmVyIGJ1ZGdldCBwcm9jZXNzaW5nLgpXaGVu IGRlYWxpbmcgd2l0aCBoaWdoIHRocm91Z2hwdXQsIHRoZSB1c2VkIGJ1ZmZlcnMKdGhhdCBleGNl ZWRzIHRoZSBidWRnZXQgaXMgbm90IGNsZWFuZWQgdXAuIEluIGFkZGl0aW9uLAppdCB0YWtlcyBh IGxvdCBvZiBjeWNsZXMgdG8gY2xlYW4gdXAgdGhlIHVzZWQgYnVmZmVyLAphbmQgdGhlbiB0aGUg YnVmZmVyIHdoZXJlIHRoZSB2YWxpZCBkYXRhIGlzIGxvY2F0ZWQgY2FuIHRha2UgZWZmZWN0LgoK U2lnbmVkLW9mZi1ieTogSmlhbmdmZW5nIFhpYW8gPHhpYW9qaWFuZ2ZlbmdAaHVhd2VpLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaXAwNF9ldGguYyB8IDE1ICsrKysrKysr Ky0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlwMDRfZXRoLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlwMDRfZXRoLmMKaW5kZXggYTkxZDQ5 ZGQ5MmVhLi4yZjhmMDNlMGRiODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hp c2lsaWNvbi9oaXAwNF9ldGguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24v aGlwMDRfZXRoLmMKQEAgLTE3NCw2ICsxNzQsNyBAQCBzdHJ1Y3QgaGlwMDRfcHJpdiB7CiAJZG1h X2FkZHJfdCByeF9waHlzW1JYX0RFU0NfTlVNXTsKIAl1bnNpZ25lZCBpbnQgcnhfaGVhZDsKIAl1 bnNpZ25lZCBpbnQgcnhfYnVmX3NpemU7CisJdW5zaWduZWQgaW50IHJ4X2NudF9yZW1haW5pbmc7 CiAKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBoeV9ub2RlOwogCXN0cnVjdCBwaHlfZGV2aWNlICpw aHk7CkBAIC00ODcsNyArNDg4LDYgQEAgc3RhdGljIGludCBoaXAwNF9yeF9wb2xsKHN0cnVjdCBu YXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAlzdHJ1Y3QgaGlwMDRfcHJpdiAqcHJpdiA9 IGNvbnRhaW5lcl9vZihuYXBpLCBzdHJ1Y3QgaGlwMDRfcHJpdiwgbmFwaSk7CiAJc3RydWN0IG5l dF9kZXZpY2UgKm5kZXYgPSBwcml2LT5uZGV2OwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpz dGF0cyA9ICZuZGV2LT5zdGF0czsKLQl1bnNpZ25lZCBpbnQgY250ID0gaGlwMDRfcmVjdl9jbnQo cHJpdik7CiAJc3RydWN0IHJ4X2Rlc2MgKmRlc2M7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAl1 bnNpZ25lZCBjaGFyICpidWY7CkBAIC01MDAsOCArNTAwLDggQEAgc3RhdGljIGludCBoaXAwNF9y eF9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAogCS8qIGNsZWFu IHVwIHR4IGRlc2NyaXB0b3JzICovCiAJdHhfcmVtYWluaW5nID0gaGlwMDRfdHhfcmVjbGFpbShu ZGV2LCBmYWxzZSk7Ci0KLQl3aGlsZSAoY250ICYmICFsYXN0KSB7CisJcHJpdi0+cnhfY250X3Jl bWFpbmluZyArPSBoaXAwNF9yZWN2X2NudChwcml2KTsKKwl3aGlsZSAocHJpdi0+cnhfY250X3Jl bWFpbmluZyAmJiAhbGFzdCkgewogCQlidWYgPSBwcml2LT5yeF9idWZbcHJpdi0+cnhfaGVhZF07 CiAJCXNrYiA9IGJ1aWxkX3NrYihidWYsIHByaXYtPnJ4X2J1Zl9zaXplKTsKIAkJaWYgKHVubGlr ZWx5KCFza2IpKSB7CkBAIC01NDcsMTEgKzU0NywxMyBAQCBzdGF0aWMgaW50IGhpcDA0X3J4X3Bv bGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCQloaXAwNF9zZXRfcmVj dl9kZXNjKHByaXYsIHBoeXMpOwogCiAJCXByaXYtPnJ4X2hlYWQgPSBSWF9ORVhUKHByaXYtPnJ4 X2hlYWQpOwotCQlpZiAocnggPj0gYnVkZ2V0KQorCQlpZiAocnggPj0gYnVkZ2V0KSB7CisJCQkt LXByaXYtPnJ4X2NudF9yZW1haW5pbmc7CiAJCQlnb3RvIGRvbmU7CisJCX0KIAotCQlpZiAoLS1j bnQgPT0gMCkKLQkJCWNudCA9IGhpcDA0X3JlY3ZfY250KHByaXYpOworCQlpZiAoLS1wcml2LT5y eF9jbnRfcmVtYWluaW5nID09IDApCisJCQlwcml2LT5yeF9jbnRfcmVtYWluaW5nICs9IGhpcDA0 X3JlY3ZfY250KHByaXYpOwogCX0KIAogCWlmICghKHByaXYtPnJlZ19pbnRlbiAmIFJDVl9JTlQp KSB7CkBAIC02MzYsNiArNjM4LDcgQEAgc3RhdGljIGludCBoaXAwNF9tYWNfb3BlbihzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldikKIAlpbnQgaTsKIAogCXByaXYtPnJ4X2hlYWQgPSAwOworCXByaXYt PnJ4X2NudF9yZW1haW5pbmcgPSAwOwogCXByaXYtPnR4X2hlYWQgPSAwOwogCXByaXYtPnR4X3Rh aWwgPSAwOwogCWhpcDA0X3Jlc2V0X3BwZShwcml2KTsKLS0gCjIuMjAuMQoKCkZyb20gZTU3NTkx MjZmMTMyNmQ1NTBjZDc3YWNkY2IxZWM0ZTFiN2U4Njg3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpEYXRlOiBTdW4s IDI3IE9jdCAyMDE5IDE2OjM5OjE1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS8zNl0gbmV0L21s eDRfY29yZTogRHluYW1pY2FsbHkgc2V0IGd1YXJhbnRlZWQgYW1vdW50IG9mCiBjb3VudGVycyBw ZXIgVkYKClsgVXBzdHJlYW0gY29tbWl0IGUxOTg2OGVmZWEwYzEwM2YyM2I0YjdlOTg2ZmQwYTcw MzgyMjExMWYgXQoKUHJpb3IgdG8gdGhpcyBwYXRjaCwgdGhlIGFtb3VudCBvZiBjb3VudGVycyBn dWFyYW50ZWVkIHBlciBWRiBpbiB0aGUKcmVzb3VyY2UgdHJhY2tlciB3YXMgTUxYNF9WRl9DT1VO VEVSU19QRVJfUE9SVCAqIE1MWDRfTUFYX1BPUlRTLiBJdCB3YXMKc2V0IHJlZ2FyZGxlc3MgaWYg dGhlIFZGIHdhcyBzaW5nbGUgb3IgZHVhbCBwb3J0LgpUaGlzIGNhdXNlZCBzZXZlcmFsIFZGcyB0 byBoYXZlIG5vIGd1YXJhbnRlZWQgY291bnRlcnMgYWx0aG91Z2ggdGhlCnN5c3RlbSBjb3VsZCBz YXRpc2Z5IHRoZWlyIHJlcXVlc3QuCgpUaGUgZml4IGlzIHRvIGR5bmFtaWNhbGx5IGd1YXJhbnRl ZSBjb3VudGVycywgYmFzZWQgb24gZWFjaCBWRgpzcGVjaWZpY2F0aW9uLgoKRml4ZXM6IDlkZTky YzYwYmVhYSAoIm5ldC9tbHg0X2NvcmU6IEFkanVzdCBjb3VudGVyIGdyYW50IHBvbGljeSBpbiB0 aGUgcmVzb3VyY2UgdHJhY2tlciIpClNpZ25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJh bmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFjayBNb3JnZW5zdGVpbiA8amFja21A ZGV2Lm1lbGxhbm94LmNvLmlsPgpTaWduZWQtb2ZmLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiAuLi4vZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFja2Vy LmMgfCA0MiArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9u cygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFja2VyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L3Jlc291cmNlX3RyYWNrZXIuYwppbmRleCA2NzY0MjhhNTc2NjIuLmE0YzFl ZDY1ZjYyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9y ZXNvdXJjZV90cmFja2VyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NC9yZXNvdXJjZV90cmFja2VyLmMKQEAgLTQ3MSwxMiArNDcxLDMxIEBAIHZvaWQgbWx4NF9pbml0 X3F1b3RhcyhzdHJ1Y3QgbWx4NF9kZXYgKmRldikKIAkJcHJpdi0+bWZ1bmMubWFzdGVyLnJlc190 cmFja2VyLnJlc19hbGxvY1tSRVNfTVBUXS5xdW90YVtwZl07CiB9CiAKLXN0YXRpYyBpbnQgZ2V0 X21heF9nYXVyYW50ZWVkX3Zmc19jb3VudGVyKHN0cnVjdCBtbHg0X2RldiAqZGV2KQorc3RhdGlj IGludAorbWx4NF9jYWxjX3Jlc19jb3VudGVyX2d1YXJhbnRlZWQoc3RydWN0IG1seDRfZGV2ICpk ZXYsCisJCQkJIHN0cnVjdCByZXNvdXJjZV9hbGxvY2F0b3IgKnJlc19hbGxvYywKKwkJCQkgaW50 IHZmKQogewotCS8qIHJlZHVjZSB0aGUgc2luayBjb3VudGVyICovCi0JcmV0dXJuIChkZXYtPmNh cHMubWF4X2NvdW50ZXJzIC0gMSAtCi0JCShNTFg0X1BGX0NPVU5URVJTX1BFUl9QT1JUICogTUxY NF9NQVhfUE9SVFMpKQotCQkvIE1MWDRfTUFYX1BPUlRTOworCXN0cnVjdCBtbHg0X2FjdGl2ZV9w b3J0cyBhY3R2X3BvcnRzOworCWludCBwb3J0cywgY291bnRlcnNfZ3VhcmFudGVlZDsKKworCS8q IEZvciBtYXN0ZXIsIG9ubHkgYWxsb2NhdGUgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgcGh5 cyBwb3J0cyAqLworCWlmICh2ZiA9PSBtbHg0X21hc3Rlcl9mdW5jX251bShkZXYpKQorCQlyZXR1 cm4gTUxYNF9QRl9DT1VOVEVSU19QRVJfUE9SVCAqIGRldi0+Y2Fwcy5udW1fcG9ydHM7CisKKwkv KiBjYWxjdWxhdGUgcmVhbCBudW1iZXIgb2YgcG9ydHMgZm9yIHRoZSBWRiAqLworCWFjdHZfcG9y dHMgPSBtbHg0X2dldF9hY3RpdmVfcG9ydHMoZGV2LCB2Zik7CisJcG9ydHMgPSBiaXRtYXBfd2Vp Z2h0KGFjdHZfcG9ydHMucG9ydHMsIGRldi0+Y2Fwcy5udW1fcG9ydHMpOworCWNvdW50ZXJzX2d1 YXJhbnRlZWQgPSBwb3J0cyAqIE1MWDRfVkZfQ09VTlRFUlNfUEVSX1BPUlQ7CisKKwkvKiBJZiB3 ZSBkbyBub3QgaGF2ZSBlbm91Z2ggY291bnRlcnMgZm9yIHRoaXMgVkYsIGRvIG5vdAorCSAqIGFs bG9jYXRlIGFueSBmb3IgaXQuICctMScgdG8gcmVkdWNlIHRoZSBzaW5rIGNvdW50ZXIuCisJICov CisJaWYgKChyZXNfYWxsb2MtPnJlc19yZXNlcnZlZCArIGNvdW50ZXJzX2d1YXJhbnRlZWQpID4K KwkgICAgKGRldi0+Y2Fwcy5tYXhfY291bnRlcnMgLSAxKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1 cm4gY291bnRlcnNfZ3VhcmFudGVlZDsKIH0KIAogaW50IG1seDRfaW5pdF9yZXNvdXJjZV90cmFj a2VyKHN0cnVjdCBtbHg0X2RldiAqZGV2KQpAQCAtNDg0LDcgKzUwMyw2IEBAIGludCBtbHg0X2lu aXRfcmVzb3VyY2VfdHJhY2tlcihzdHJ1Y3QgbWx4NF9kZXYgKmRldikKIAlzdHJ1Y3QgbWx4NF9w cml2ICpwcml2ID0gbWx4NF9wcml2KGRldik7CiAJaW50IGksIGo7CiAJaW50IHQ7Ci0JaW50IG1h eF92ZnNfZ3VhcmFudGVlX2NvdW50ZXIgPSBnZXRfbWF4X2dhdXJhbnRlZWRfdmZzX2NvdW50ZXIo ZGV2KTsKIAogCXByaXYtPm1mdW5jLm1hc3Rlci5yZXNfdHJhY2tlci5zbGF2ZV9saXN0ID0KIAkJ a2NhbGxvYyhkZXYtPm51bV9zbGF2ZXMsIHNpemVvZihzdHJ1Y3Qgc2xhdmVfbGlzdCksCkBAIC02 MDMsMTYgKzYyMSw4IEBAIGludCBtbHg0X2luaXRfcmVzb3VyY2VfdHJhY2tlcihzdHJ1Y3QgbWx4 NF9kZXYgKmRldikKIAkJCQlicmVhazsKIAkJCWNhc2UgUkVTX0NPVU5URVI6CiAJCQkJcmVzX2Fs bG9jLT5xdW90YVt0XSA9IGRldi0+Y2Fwcy5tYXhfY291bnRlcnM7Ci0JCQkJaWYgKHQgPT0gbWx4 NF9tYXN0ZXJfZnVuY19udW0oZGV2KSkKLQkJCQkJcmVzX2FsbG9jLT5ndWFyYW50ZWVkW3RdID0K LQkJCQkJCU1MWDRfUEZfQ09VTlRFUlNfUEVSX1BPUlQgKgotCQkJCQkJTUxYNF9NQVhfUE9SVFM7 Ci0JCQkJZWxzZSBpZiAodCA8PSBtYXhfdmZzX2d1YXJhbnRlZV9jb3VudGVyKQotCQkJCQlyZXNf YWxsb2MtPmd1YXJhbnRlZWRbdF0gPQotCQkJCQkJTUxYNF9WRl9DT1VOVEVSU19QRVJfUE9SVCAq Ci0JCQkJCQlNTFg0X01BWF9QT1JUUzsKLQkJCQllbHNlCi0JCQkJCXJlc19hbGxvYy0+Z3VhcmFu dGVlZFt0XSA9IDA7CisJCQkJcmVzX2FsbG9jLT5ndWFyYW50ZWVkW3RdID0KKwkJCQkJbWx4NF9j YWxjX3Jlc19jb3VudGVyX2d1YXJhbnRlZWQoZGV2LCByZXNfYWxsb2MsIHQpOwogCQkJCWJyZWFr OwogCQkJZGVmYXVsdDoKIAkJCQlicmVhazsKLS0gCjIuMjAuMQoKCkZyb20gOGRiOGQ0MmViNGJj NGY2MjI4OTA1YTRjNTFmODY5NzkzYWMwMTgxNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KRGF0ZTogV2VkLCAyMyBPY3Qg MjAxOSAxODozOTowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzZdIG5ldG5zOiBmaXggR0ZQ IGZsYWdzIGluIHJ0bmxfbmV0X25vdGlmeWlkKCkKClsgVXBzdHJlYW0gY29tbWl0IGQ0ZTRmZGY5 ZTRhMjdjODdlZGI3OWIxNDc4OTU1MDc1YmUxNDFmNjcgXQoKSW4gcnRubF9uZXRfbm90aWZ5aWQo KSwgd2UgY2VydGFpbmx5IGNhbid0IHBhc3MgYSBudWxsIEdGUCBmbGFnIHRvCnJ0bmxfbm90aWZ5 KCkuIEEgR0ZQX0tFUk5FTCBmbGFnIHdvdWxkIGJlIGZpbmUgaW4gbW9zdCBjaXJjdW1zdGFuY2Vz LApidXQgdGhlcmUgYXJlIGEgZmV3IHBhdGhzIGNhbGxpbmcgcnRubF9uZXRfbm90aWZ5aWQoKSBm cm9tIGF0b21pYwpjb250ZXh0IG9yIGZyb20gUkNVIGNyaXRpY2FsIHNlY3Rpb25zLiBUaGUgbGF0 ZXIgYWxzbyBwcmVjbHVkZXMgdGhlIHVzZQpvZiBnZnBfYW55KCkgYXMgaXQgd291bGRuJ3QgZGV0 ZWN0IHRoZSBSQ1UgY2FzZS4gQWxzbywgdGhlIG5sbXNnX25ldygpCmNhbGwgaXMgd3JvbmcgdG9v LCBhcyBpdCB1c2VzIEdGUF9LRVJORUwgdW5jb25kaXRpb25hbGx5LgoKVGhlcmVmb3JlLCB3ZSBu ZWVkIHRvIHBhc3MgdGhlIEdGUCBmbGFncyBhcyBwYXJhbWV0ZXIgYW5kIHByb3BhZ2F0ZSBpdAp0 aHJvdWdoIGZ1bmN0aW9uIGNhbGxzIHVudGlsIHRoZSBwcm9wZXIgZmxhZ3MgY2FuIGJlIGRldGVy bWluZWQuCgpJbiBtb3N0IGNhc2VzLCBHRlBfS0VSTkVMIGlzIGZpbmUuIFRoZSBleGNlcHRpb25z IGFyZToKICAqIG9wZW52c3dpdGNoOiBvdnNfdnBvcnRfY21kX2dldCgpIGFuZCBvdnNfdnBvcnRf Y21kX2R1bXAoKQogICAgaW5kaXJlY3RseSBjYWxsIHJ0bmxfbmV0X25vdGlmeWlkKCkgZnJvbSBS Q1UgY3JpdGljYWwgc2VjdGlvbiwKCiAgKiBydG5ldGxpbms6IHJ0bXNnX2lmaW5mb19idWlsZF9z a2IoKSBhbHJlYWR5IHJlY2VpdmVzIEdGUCBmbGFncyBhcwogICAgcGFyYW1ldGVyLgoKQWxzbywg aW4gb3ZzX3Zwb3J0X2NtZF9idWlsZF9pbmZvKCksIGxldCdzIGNoYW5nZSB0aGUgR0ZQIGZsYWdz IHVzZWQKYnkgbmxtc2dfbmV3KCkuIFRoZSBmdW5jdGlvbiBpcyBhbGxvd2VkIHRvIHNsZWVwLCBz byBiZXR0ZXIgbWFrZSB0aGUKZmxhZ3MgY29uc2lzdGVudCB3aXRoIHRoZSBvbmVzIHVzZWQgaW4g dGhlIGZvbGxvd2luZwpvdnNfdnBvcnRfY21kX2ZpbGxfaW5mbygpIGNhbGwuCgpGb3VuZCBieSBj b2RlIGluc3BlY3Rpb24uCgpGaXhlczogOWE5NjM0NTQ1YzcwICgibmV0bnM6IG5vdGlmeSBuZXRu cyBpZCBldmVudHMiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRo YXQuY29tPgpBY2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQu Y29tPgpBY2tlZC1ieTogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG92bi5vcmc+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L25ldC9uZXRfbmFtZXNwYWNlLmggfCAgMiArLQogbmV0L2NvcmUvZGV2LmMgICAgICAgICAgICAg IHwgIDIgKy0KIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYyAgICB8IDE3ICsrKysrKysrKy0tLS0t LS0tCiBuZXQvY29yZS9ydG5ldGxpbmsuYyAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQogbmV0 L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgIHwgMjAgKysrKysrKysrKystLS0tLS0tLS0KIDUgZmls ZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oIGIvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFj ZS5oCmluZGV4IDNmN2IxNjYyNjJkNy4uNTAwN2VhYmEyMDdkIDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9uZXRfbmFtZXNwYWNlLmgKKysrIGIvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oCkBA IC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0ICpyZWFkX3BuZXQoY29u c3QgcG9zc2libGVfbmV0X3QgKnBuZXQpCiAjZGVmaW5lIF9fbmV0X2luaXRjb25zdAlfX2luaXRj b25zdAogI2VuZGlmCiAKLWludCBwZWVybmV0MmlkX2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IG5ldCAqcGVlcik7CitpbnQgcGVlcm5ldDJpZF9hbGxvYyhzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCBuZXQgKnBlZXIsIGdmcF90IGdmcCk7CiBpbnQgcGVlcm5ldDJpZChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBuZXQgKnBlZXIpOwogYm9vbCBwZWVybmV0X2hhc19pZChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBuZXQgKnBlZXIpOwogc3RydWN0IG5ldCAqZ2V0X25ldF9uc19ieV9pZChzdHJ1 Y3QgbmV0ICpuZXQsIGludCBpZCk7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9j b3JlL2Rldi5jCmluZGV4IGRkZDhhYWIyMGFkZi4uNGEyZWUxY2U2YzAyIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtOTIxMSw3ICs5MjExLDcgQEAg aW50IGRldl9jaGFuZ2VfbmV0X25hbWVzcGFjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIKIAljYWxsX25ldGRldmljZV9ub3RpZmllcnMoTkVUREVW X1VOUkVHSVNURVIsIGRldik7CiAJcmN1X2JhcnJpZXIoKTsKIAotCW5ld19uc2lkID0gcGVlcm5l dDJpZF9hbGxvYyhkZXZfbmV0KGRldiksIG5ldCk7CisJbmV3X25zaWQgPSBwZWVybmV0MmlkX2Fs bG9jKGRldl9uZXQoZGV2KSwgbmV0LCBHRlBfS0VSTkVMKTsKIAkvKiBJZiB0aGVyZSBpcyBhbiBp ZmluZGV4IGNvbmZsaWN0IGFzc2lnbiBhIG5ldyBvbmUgKi8KIAlpZiAoX19kZXZfZ2V0X2J5X2lu ZGV4KG5ldCwgZGV2LT5pZmluZGV4KSkKIAkJbmV3X2lmaW5kZXggPSBkZXZfbmV3X2luZGV4KG5l dCk7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMgYi9uZXQvY29yZS9uZXRf bmFtZXNwYWNlLmMKaW5kZXggNzMyMGYwODQ0YTUwLi42ZGFiMTg2ZDRiOGYgMTAwNjQ0Ci0tLSBh L25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYworKysgYi9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMK QEAgLTIyNiwxMSArMjI2LDExIEBAIHN0YXRpYyBpbnQgX19wZWVybmV0MmlkKHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IG5ldCAqcGVlcikKIAlyZXR1cm4gX19wZWVybmV0MmlkX2FsbG9jKG5ldCwg cGVlciwgJm5vKTsKIH0KIAotc3RhdGljIHZvaWQgcnRubF9uZXRfbm90aWZ5aWQoc3RydWN0IG5l dCAqbmV0LCBpbnQgY21kLCBpbnQgaWQpOworc3RhdGljIHZvaWQgcnRubF9uZXRfbm90aWZ5aWQo c3RydWN0IG5ldCAqbmV0LCBpbnQgY21kLCBpbnQgaWQsIGdmcF90IGdmcCk7CiAvKiBUaGlzIGZ1 bmN0aW9uIHJldHVybnMgdGhlIGlkIG9mIGEgcGVlciBuZXRucy4gSWYgbm8gaWQgaXMgYXNzaWdu ZWQsIG9uZSB3aWxsCiAgKiBiZSBhbGxvY2F0ZWQgYW5kIHJldHVybmVkLgogICovCi1pbnQgcGVl cm5ldDJpZF9hbGxvYyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXQgKnBlZXIpCitpbnQgcGVl cm5ldDJpZF9hbGxvYyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXQgKnBlZXIsIGdmcF90IGdm cCkKIHsKIAlib29sIGFsbG9jID0gZmFsc2UsIGFsaXZlID0gZmFsc2U7CiAJaW50IGlkOwpAQCAt MjQ5LDcgKzI0OSw3IEBAIGludCBwZWVybmV0MmlkX2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IG5ldCAqcGVlcikKIAlpZCA9IF9fcGVlcm5ldDJpZF9hbGxvYyhuZXQsIHBlZXIsICZhbGxv Yyk7CiAJc3Bpbl91bmxvY2tfYmgoJm5ldC0+bnNpZF9sb2NrKTsKIAlpZiAoYWxsb2MgJiYgaWQg Pj0gMCkKLQkJcnRubF9uZXRfbm90aWZ5aWQobmV0LCBSVE1fTkVXTlNJRCwgaWQpOworCQlydG5s X25ldF9ub3RpZnlpZChuZXQsIFJUTV9ORVdOU0lELCBpZCwgZ2ZwKTsKIAlpZiAoYWxpdmUpCiAJ CXB1dF9uZXQocGVlcik7CiAJcmV0dXJuIGlkOwpAQCAtNDk1LDcgKzQ5NSw4IEBAIHN0YXRpYyB2 b2lkIHVuaGFzaF9uc2lkKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldCAqbGFzdCkKIAkJCWlk cl9yZW1vdmUoJnRtcC0+bmV0bnNfaWRzLCBpZCk7CiAJCXNwaW5fdW5sb2NrX2JoKCZ0bXAtPm5z aWRfbG9jayk7CiAJCWlmIChpZCA+PSAwKQotCQkJcnRubF9uZXRfbm90aWZ5aWQodG1wLCBSVE1f REVMTlNJRCwgaWQpOworCQkJcnRubF9uZXRfbm90aWZ5aWQodG1wLCBSVE1fREVMTlNJRCwgaWQs CisJCQkJCSAgR0ZQX0tFUk5FTCk7CiAJCWlmICh0bXAgPT0gbGFzdCkKIAkJCWJyZWFrOwogCX0K QEAgLTcyMCw3ICs3MjEsNyBAQCBzdGF0aWMgaW50IHJ0bmxfbmV0X25ld2lkKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCWVyciA9IGFsbG9jX25ldGlkKG5ldCwg cGVlciwgbnNpZCk7CiAJc3Bpbl91bmxvY2tfYmgoJm5ldC0+bnNpZF9sb2NrKTsKIAlpZiAoZXJy ID49IDApIHsKLQkJcnRubF9uZXRfbm90aWZ5aWQobmV0LCBSVE1fTkVXTlNJRCwgZXJyKTsKKwkJ cnRubF9uZXRfbm90aWZ5aWQobmV0LCBSVE1fTkVXTlNJRCwgZXJyLCBHRlBfS0VSTkVMKTsKIAkJ ZXJyID0gMDsKIAl9IGVsc2UgaWYgKGVyciA9PSAtRU5PU1BDICYmIG5zaWQgPj0gMCkgewogCQll cnIgPSAtRUVYSVNUOwpAQCAtODYyLDEyICs4NjMsMTIgQEAgc3RhdGljIGludCBydG5sX25ldF9k dW1waWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQog CXJldHVybiBza2ItPmxlbjsKIH0KIAotc3RhdGljIHZvaWQgcnRubF9uZXRfbm90aWZ5aWQoc3Ry dWN0IG5ldCAqbmV0LCBpbnQgY21kLCBpbnQgaWQpCitzdGF0aWMgdm9pZCBydG5sX25ldF9ub3Rp ZnlpZChzdHJ1Y3QgbmV0ICpuZXQsIGludCBjbWQsIGludCBpZCwgZ2ZwX3QgZ2ZwKQogewogCXN0 cnVjdCBza19idWZmICptc2c7CiAJaW50IGVyciA9IC1FTk9NRU07CiAKLQltc2cgPSBubG1zZ19u ZXcocnRubF9uZXRfZ2V0X3NpemUoKSwgR0ZQX0tFUk5FTCk7CisJbXNnID0gbmxtc2dfbmV3KHJ0 bmxfbmV0X2dldF9zaXplKCksIGdmcCk7CiAJaWYgKCFtc2cpCiAJCWdvdG8gb3V0OwogCkBAIC04 NzUsNyArODc2LDcgQEAgc3RhdGljIHZvaWQgcnRubF9uZXRfbm90aWZ5aWQoc3RydWN0IG5ldCAq bmV0LCBpbnQgY21kLCBpbnQgaWQpCiAJaWYgKGVyciA8IDApCiAJCWdvdG8gZXJyX291dDsKIAot CXJ0bmxfbm90aWZ5KG1zZywgbmV0LCAwLCBSVE5MR1JQX05TSUQsIE5VTEwsIDApOworCXJ0bmxf bm90aWZ5KG1zZywgbmV0LCAwLCBSVE5MR1JQX05TSUQsIE5VTEwsIGdmcCk7CiAJcmV0dXJuOwog CiBlcnJfb3V0OgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9y dG5ldGxpbmsuYwppbmRleCAzOTMyZWVkMzc5YTQuLjk1NzY4YTlmY2EwNiAxMDA2NDQKLS0tIGEv bmV0L2NvcmUvcnRuZXRsaW5rLmMKKysrIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKQEAgLTE1MTks NyArMTUxOSw3IEBAIHN0YXRpYyBub2lubGluZV9mb3Jfc3RhY2sgaW50IG5sYV9wdXRfaWZhbGlh cyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiBzdGF0aWMgaW50IHJ0bmxfZmlsbF9saW5rX25ldG5z aWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCi0JCQkJICBzdHJ1Y3QgbmV0ICpzcmNfbmV0KQorCQkJCSAgc3RydWN0IG5ldCAqc3JjX25l dCwgZ2ZwX3QgZ2ZwKQogewogCWJvb2wgcHV0X2lmbGluayA9IGZhbHNlOwogCkBAIC0xNTI3LDcg KzE1MjcsNyBAQCBzdGF0aWMgaW50IHJ0bmxfZmlsbF9saW5rX25ldG5zaWQoc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIAkJc3RydWN0IG5ldCAqbGlua19uZXQgPSBkZXYtPnJ0bmxfbGlua19vcHMtPmdl dF9saW5rX25ldChkZXYpOwogCiAJCWlmICghbmV0X2VxKGRldl9uZXQoZGV2KSwgbGlua19uZXQp KSB7Ci0JCQlpbnQgaWQgPSBwZWVybmV0MmlkX2FsbG9jKHNyY19uZXQsIGxpbmtfbmV0KTsKKwkJ CWludCBpZCA9IHBlZXJuZXQyaWRfYWxsb2Moc3JjX25ldCwgbGlua19uZXQsIGdmcCk7CiAKIAkJ CWlmIChubGFfcHV0X3MzMihza2IsIElGTEFfTElOS19ORVROU0lELCBpZCkpCiAJCQkJcmV0dXJu IC1FTVNHU0laRTsKQEAgLTE1ODUsNyArMTU4NSw3IEBAIHN0YXRpYyBpbnQgcnRubF9maWxsX2lm aW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAgIGludCB0eXBlLCB1MzIgcGlkLCB1MzIg c2VxLCB1MzIgY2hhbmdlLAogCQkJICAgIHVuc2lnbmVkIGludCBmbGFncywgdTMyIGV4dF9maWx0 ZXJfbWFzaywKIAkJCSAgICB1MzIgZXZlbnQsIGludCAqbmV3X25zaWQsIGludCBuZXdfaWZpbmRl eCwKLQkJCSAgICBpbnQgdGd0X25ldG5zaWQpCisJCQkgICAgaW50IHRndF9uZXRuc2lkLCBnZnBf dCBnZnApCiB7CiAJc3RydWN0IGlmaW5mb21zZyAqaWZtOwogCXN0cnVjdCBubG1zZ2hkciAqbmxo OwpAQCAtMTY3Nyw3ICsxNjc3LDcgQEAgc3RhdGljIGludCBydG5sX2ZpbGxfaWZpbmZvKHN0cnVj dCBza19idWZmICpza2IsCiAJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAl9CiAKLQlpZiAocnRu bF9maWxsX2xpbmtfbmV0bnNpZChza2IsIGRldiwgc3JjX25ldCkpCisJaWYgKHJ0bmxfZmlsbF9s aW5rX25ldG5zaWQoc2tiLCBkZXYsIHNyY19uZXQsIGdmcCkpCiAJCWdvdG8gbmxhX3B1dF9mYWls dXJlOwogCiAJaWYgKG5ld19uc2lkICYmCkBAIC0xOTMzLDcgKzE5MzMsNyBAQCBzdGF0aWMgaW50 IHJ0bmxfZHVtcF9pZmluZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2Fs bGJhY2sgKmNiKQogCQkJCQkgICAgICAgY2ItPm5saC0+bmxtc2dfc2VxLCAwLAogCQkJCQkgICAg ICAgZmxhZ3MsCiAJCQkJCSAgICAgICBleHRfZmlsdGVyX21hc2ssIDAsIE5VTEwsIDAsCi0JCQkJ CSAgICAgICBuZXRuc2lkKTsKKwkJCQkJICAgICAgIG5ldG5zaWQsIEdGUF9LRVJORUwpOwogCiAJ CQlpZiAoZXJyIDwgMCkgewogCQkJCWlmIChsaWtlbHkoc2tiLT5sZW4pKQpAQCAtMzIxNSw3ICsz MjE1LDcgQEAgc3RhdGljIGludCBydG5sX2dldGxpbmsoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IG5sbXNnaGRyICpubGgsCiAJZXJyID0gcnRubF9maWxsX2lmaW5mbyhuc2tiLCBkZXYsIG5l dCwKIAkJCSAgICAgICBSVE1fTkVXTElOSywgTkVUTElOS19DQihza2IpLnBvcnRpZCwKIAkJCSAg ICAgICBubGgtPm5sbXNnX3NlcSwgMCwgMCwgZXh0X2ZpbHRlcl9tYXNrLAotCQkJICAgICAgIDAs IE5VTEwsIDAsIG5ldG5zaWQpOworCQkJICAgICAgIDAsIE5VTEwsIDAsIG5ldG5zaWQsIEdGUF9L RVJORUwpOwogCWlmIChlcnIgPCAwKSB7CiAJCS8qIC1FTVNHU0laRSBpbXBsaWVzIEJVRyBpbiBp Zl9ubG1zZ19zaXplICovCiAJCVdBUk5fT04oZXJyID09IC1FTVNHU0laRSk7CkBAIC0zMzI1LDcg KzMzMjUsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqcnRtc2dfaWZpbmZvX2J1aWxkX3NrYihpbnQgdHlw ZSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAogCWVyciA9IHJ0bmxfZmlsbF9pZmluZm8oc2ti LCBkZXYsIGRldl9uZXQoZGV2KSwKIAkJCSAgICAgICB0eXBlLCAwLCAwLCBjaGFuZ2UsIDAsIDAs IGV2ZW50LAotCQkJICAgICAgIG5ld19uc2lkLCBuZXdfaWZpbmRleCwgLTEpOworCQkJICAgICAg IG5ld19uc2lkLCBuZXdfaWZpbmRleCwgLTEsIGZsYWdzKTsKIAlpZiAoZXJyIDwgMCkgewogCQkv KiAtRU1TR1NJWkUgaW1wbGllcyBCVUcgaW4gaWZfbmxtc2dfc2l6ZSgpICovCiAJCVdBUk5fT04o ZXJyID09IC1FTVNHU0laRSk7CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGgu YyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmluZGV4IDhlMzk2YzdjODM4OS4uYzI5N2Zl OGFmZGZlIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYworKysgYi9uZXQv b3BlbnZzd2l0Y2gvZGF0YXBhdGguYwpAQCAtMTg0Myw3ICsxODQzLDcgQEAgc3RhdGljIHN0cnVj dCBnZW5sX2ZhbWlseSBkcF9kYXRhcGF0aF9nZW5sX2ZhbWlseSBfX3JvX2FmdGVyX2luaXQgPSB7 CiAvKiBDYWxsZWQgd2l0aCBvdnNfbXV0ZXggb3IgUkNVIHJlYWQgbG9jay4gKi8KIHN0YXRpYyBp bnQgb3ZzX3Zwb3J0X2NtZF9maWxsX2luZm8oc3RydWN0IHZwb3J0ICp2cG9ydCwgc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAkJCQkgICBzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBwb3J0aWQsIHUzMiBzZXEs Ci0JCQkJICAgdTMyIGZsYWdzLCB1OCBjbWQpCisJCQkJICAgdTMyIGZsYWdzLCB1OCBjbWQsIGdm cF90IGdmcCkKIHsKIAlzdHJ1Y3Qgb3ZzX2hlYWRlciAqb3ZzX2hlYWRlcjsKIAlzdHJ1Y3Qgb3Zz X3Zwb3J0X3N0YXRzIHZwb3J0X3N0YXRzOwpAQCAtMTg2NCw3ICsxODY0LDcgQEAgc3RhdGljIGlu dCBvdnNfdnBvcnRfY21kX2ZpbGxfaW5mbyhzdHJ1Y3QgdnBvcnQgKnZwb3J0LCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCWlmICghbmV0X2VxKG5ldCwg ZGV2X25ldCh2cG9ydC0+ZGV2KSkpIHsKLQkJaW50IGlkID0gcGVlcm5ldDJpZF9hbGxvYyhuZXQs IGRldl9uZXQodnBvcnQtPmRldikpOworCQlpbnQgaWQgPSBwZWVybmV0MmlkX2FsbG9jKG5ldCwg ZGV2X25ldCh2cG9ydC0+ZGV2KSwgZ2ZwKTsKIAogCQlpZiAobmxhX3B1dF9zMzIoc2tiLCBPVlNf VlBPUlRfQVRUUl9ORVROU0lELCBpZCkpCiAJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKQEAgLTE5 MDUsMTEgKzE5MDUsMTIgQEAgc3RydWN0IHNrX2J1ZmYgKm92c192cG9ydF9jbWRfYnVpbGRfaW5m byhzdHJ1Y3QgdnBvcnQgKnZwb3J0LCBzdHJ1Y3QgbmV0ICpuZXQsCiAJc3RydWN0IHNrX2J1ZmYg KnNrYjsKIAlpbnQgcmV0dmFsOwogCi0Jc2tiID0gbmxtc2dfbmV3KE5MTVNHX0RFRkFVTFRfU0la RSwgR0ZQX0FUT01JQyk7CisJc2tiID0gbmxtc2dfbmV3KE5MTVNHX0RFRkFVTFRfU0laRSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKCFza2IpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JcmV0 dmFsID0gb3ZzX3Zwb3J0X2NtZF9maWxsX2luZm8odnBvcnQsIHNrYiwgbmV0LCBwb3J0aWQsIHNl cSwgMCwgY21kKTsKKwlyZXR2YWwgPSBvdnNfdnBvcnRfY21kX2ZpbGxfaW5mbyh2cG9ydCwgc2ti LCBuZXQsIHBvcnRpZCwgc2VxLCAwLCBjbWQsCisJCQkJCSBHRlBfS0VSTkVMKTsKIAlCVUdfT04o cmV0dmFsIDwgMCk7CiAKIAlyZXR1cm4gc2tiOwpAQCAtMjA0Miw3ICsyMDQzLDcgQEAgc3RhdGlj IGludCBvdnNfdnBvcnRfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9p bmZvICppbmZvKQogCiAJZXJyID0gb3ZzX3Zwb3J0X2NtZF9maWxsX2luZm8odnBvcnQsIHJlcGx5 LCBnZW5sX2luZm9fbmV0KGluZm8pLAogCQkJCSAgICAgIGluZm8tPnNuZF9wb3J0aWQsIGluZm8t PnNuZF9zZXEsIDAsCi0JCQkJICAgICAgT1ZTX1ZQT1JUX0NNRF9ORVcpOworCQkJCSAgICAgIE9W U19WUE9SVF9DTURfTkVXLCBHRlBfS0VSTkVMKTsKIAogCWlmIChuZXRkZXZfZ2V0X2Z3ZF9oZWFk cm9vbSh2cG9ydC0+ZGV2KSA+IGRwLT5tYXhfaGVhZHJvb20pCiAJCXVwZGF0ZV9oZWFkcm9vbShk cCk7CkBAIC0yMTAxLDcgKzIxMDIsNyBAQCBzdGF0aWMgaW50IG92c192cG9ydF9jbWRfc2V0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAKIAllcnIgPSBvdnNf dnBvcnRfY21kX2ZpbGxfaW5mbyh2cG9ydCwgcmVwbHksIGdlbmxfaW5mb19uZXQoaW5mbyksCiAJ CQkJICAgICAgaW5mby0+c25kX3BvcnRpZCwgaW5mby0+c25kX3NlcSwgMCwKLQkJCQkgICAgICBP VlNfVlBPUlRfQ01EX05FVyk7CisJCQkJICAgICAgT1ZTX1ZQT1JUX0NNRF9ORVcsIEdGUF9BVE9N SUMpOwogCUJVR19PTihlcnIgPCAwKTsKIAogCW92c191bmxvY2soKTsKQEAgLTIxNDAsNyArMjE0 MSw3IEBAIHN0YXRpYyBpbnQgb3ZzX3Zwb3J0X2NtZF9kZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAogCWVyciA9IG92c192cG9ydF9jbWRfZmlsbF9pbmZv KHZwb3J0LCByZXBseSwgZ2VubF9pbmZvX25ldChpbmZvKSwKIAkJCQkgICAgICBpbmZvLT5zbmRf cG9ydGlkLCBpbmZvLT5zbmRfc2VxLCAwLAotCQkJCSAgICAgIE9WU19WUE9SVF9DTURfREVMKTsK KwkJCQkgICAgICBPVlNfVlBPUlRfQ01EX0RFTCwgR0ZQX0tFUk5FTCk7CiAJQlVHX09OKGVyciA8 IDApOwogCiAJLyogdGhlIHZwb3J0IGRlbGV0aW9uIG1heSB0cmlnZ2VyIGRwIGhlYWRyb29tIHVw ZGF0ZSAqLwpAQCAtMjE4Miw3ICsyMTgzLDcgQEAgc3RhdGljIGludCBvdnNfdnBvcnRfY21kX2dl dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQlnb3RvIGV4 aXRfdW5sb2NrX2ZyZWU7CiAJZXJyID0gb3ZzX3Zwb3J0X2NtZF9maWxsX2luZm8odnBvcnQsIHJl cGx5LCBnZW5sX2luZm9fbmV0KGluZm8pLAogCQkJCSAgICAgIGluZm8tPnNuZF9wb3J0aWQsIGlu Zm8tPnNuZF9zZXEsIDAsCi0JCQkJICAgICAgT1ZTX1ZQT1JUX0NNRF9ORVcpOworCQkJCSAgICAg IE9WU19WUE9SVF9DTURfTkVXLCBHRlBfQVRPTUlDKTsKIAlCVUdfT04oZXJyIDwgMCk7CiAJcmN1 X3JlYWRfdW5sb2NrKCk7CiAKQEAgLTIyMTgsNyArMjIxOSw4IEBAIHN0YXRpYyBpbnQgb3ZzX3Zw b3J0X2NtZF9kdW1wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNr ICpjYikKIAkJCQkJCSAgICBORVRMSU5LX0NCKGNiLT5za2IpLnBvcnRpZCwKIAkJCQkJCSAgICBj Yi0+bmxoLT5ubG1zZ19zZXEsCiAJCQkJCQkgICAgTkxNX0ZfTVVMVEksCi0JCQkJCQkgICAgT1ZT X1ZQT1JUX0NNRF9ORVcpIDwgMCkKKwkJCQkJCSAgICBPVlNfVlBPUlRfQ01EX05FVywKKwkJCQkJ CSAgICBHRlBfQVRPTUlDKSA8IDApCiAJCQkJZ290byBvdXQ7CiAKIAkJCWorKzsKLS0gCjIuMjAu MQoKCkZyb20gYjgxNjFhYWY2MjU4NDk1MjlhZDM4NjYzYzI5NTI3ZjI3ODMyMjVmYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIFdhZ25lciA8ZHdhZ25lckBzdXNlLmRlPgpE YXRlOiBGcmksIDI1IE9jdCAyMDE5IDEwOjA0OjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8z Nl0gbmV0OiB1c2I6IGxhbjc4eHg6IERpc2FibGUgaW50ZXJydXB0cyBiZWZvcmUgY2FsbGluZwog Z2VuZXJpY19oYW5kbGVfaXJxKCkKClsgVXBzdHJlYW0gY29tbWl0IDBhMjlhYzViZDNhOTg4ZGMx NTFjOGQyNjkxMGRlYzI1NTc0MjFmNjQgXQoKbGFuNzh4eF9zdGF0dXMoKSB3aWxsIHJ1biB3aXRo IGludGVycnVwdHMgZW5hYmxlZCBkdWUgdG8gdGhlIGNoYW5nZSBpbgplZDE5NGQxMzY3NjkgKCJ1 c2I6IGNvcmU6IHJlbW92ZSBsb2NhbF9pcnFfc2F2ZSgpIGFyb3VuZCAtPmNvbXBsZXRlKCkKaGFu ZGxlciIpLiBnZW5lcmljX2hhbmRsZV9pcnEoKSBleHBlY3RzIHRvIGJlIHJ1biB3aXRoIElSUXMg ZGlzYWJsZWQuCgpbICAgIDQuODg2MjAzXSAwMDA6IGlycSA3OSBoYW5kbGVyIGlycV9kZWZhdWx0 X3ByaW1hcnlfaGFuZGxlcisweDAvMHg4IGVuYWJsZWQgaW50ZXJydXB0cwpbICAgIDQuODg2MjQz XSAwMDA6IFdBUk5JTkc6IENQVTogMCBQSUQ6IDAgYXQga2VybmVsL2lycS9oYW5kbGUuYzoxNTIg X19oYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDE1NC8weDE2OApbICAgIDQuODk2Mjk0XSAwMDA6 IE1vZHVsZXMgbGlua2VkIGluOgpbICAgIDQuODk2MzAxXSAwMDA6IENQVTogMCBQSUQ6IDAgQ29t bTogc3dhcHBlci8wIE5vdCB0YWludGVkIDUuMy42ICMzOQpbICAgIDQuODk2MzEwXSAwMDA6IEhh cmR3YXJlIG5hbWU6IFJhc3BiZXJyeSBQaSAzIE1vZGVsIEIrIChEVCkKWyAgICA0Ljg5NjMxNV0g MDAwOiBwc3RhdGU6IDYwMDAwMDA1IChuWkN2IGRhaWYgLVBBTiAtVUFPKQpbICAgIDQuODk2MzIx XSAwMDA6IHBjIDogX19oYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDE1NC8weDE2OApbICAgIDQu ODk2MzMxXSAwMDA6IGxyIDogX19oYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDE1NC8weDE2OApb ICAgIDQuODk2MzM5XSAwMDA6IHNwIDogZmZmZjAwMDAxMDAwM2NjMApbICAgIDQuODk2MzQ2XSAw MDA6IHgyOTogZmZmZjAwMDAxMDAwM2NjMCB4Mjg6IDAwMDAwMDAwMDAwMDAwNjAKWyAgICA0Ljg5 NjM1NV0gMDAwOiB4Mjc6IGZmZmYwMDAwMTEwMjE5ODAgeDI2OiBmZmZmMDAwMDExODljNzJiClsg ICAgNC44OTYzNjRdIDAwMDogeDI1OiBmZmZmMDAwMDExNzAyYmMwIHgyNDogZmZmZjgwMDAzNmQ2 ZTQwMApbICAgIDQuODk2MzczXSAwMDA6IHgyMzogMDAwMDAwMDAwMDAwMDA0ZiB4MjI6IGZmZmYw MDAwMTAwMDNkNjQKWyAgICA0Ljg5NjM4MV0gMDAwOiB4MjE6IDAwMDAwMDAwMDAwMDAwMDAgeDIw OiAwMDAwMDAwMDAwMDAwMDAyClsgICAgNC44OTYzOTBdIDAwMDogeDE5OiBmZmZmODAwMDM3MWM4 NDgwIHgxODogMDAwMDAwMDAwMDAwMDA2MApbICAgIDQuODk2Mzk4XSAwMDA6IHgxNzogMDAwMDAw MDAwMDAwMDAwMCB4MTY6IDAwMDAwMDAwMDAwMDAwZWIKWyAgICA0Ljg5NjQwNl0gMDAwOiB4MTU6 IGZmZmYwMDAwMTE3MTJkMTggeDE0OiA3MjY1NzQ2ZTY5MjA2NDY1ClsgICAgNC44OTY0MTRdIDAw MDogeDEzOiBmZmZmMDAwMDEwMDAzYmEwIHgxMjogZmZmZjAwMDAxMTcxMmRmMApbICAgIDQuODk2 NDIyXSAwMDA6IHgxMTogMDAwMDAwMDAwMDAwMDAwMSB4MTA6IGZmZmYwMDAwMTE3MTJlMDgKWyAg ICA0Ljg5NjQzMF0gMDAwOiB4OSA6IDAwMDAwMDAwMDAwMDAwMDEgeDggOiAwMDAwMDAwMDAwMDNj OTIwClsgICAgNC44OTY0MzddIDAwMDogeDcgOiBmZmZmMDAwMDExOGNjNDEwIHg2IDogZmZmZjAw MDAxMThjN2YwMApbICAgIDQuODk2NDQ1XSAwMDA6IHg1IDogMDAwMDAwMDAwMDAzYzkyMCB4NCA6 IDAwMDAwMDAwMDAwMDQ1MTAKWyAgICA0Ljg5NjQ1M10gMDAwOiB4MyA6IGZmZmYwMDAwMTE3MTJk YzggeDIgOiAwMDAwMDAwMDAwMDAwMDAwClsgICAgNC44OTY0NjFdIDAwMDogeDEgOiA3M2EzZjY3 ZGY5NGMxNTAwIHgwIDogMDAwMDAwMDAwMDAwMDAwMApbICAgIDQuODk2NDY2XSAwMDA6IENhbGwg dHJhY2U6ClsgICAgNC44OTY0NzFdIDAwMDogIF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHgx NTQvMHgxNjgKWyAgICA0Ljg5NjQ4MV0gMDAwOiAgaGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHg1 MC8weGIwClsgICAgNC44OTY0ODldIDAwMDogIGhhbmRsZV9pcnFfZXZlbnQrMHg0MC8weDk4Clsg ICAgNC44OTY0OTddIDAwMDogIGhhbmRsZV9zaW1wbGVfaXJxKzB4YTQvMHhmMApbICAgIDQuODk2 NTA1XSAwMDA6ICBnZW5lcmljX2hhbmRsZV9pcnErMHgyNC8weDM4ClsgICAgNC44OTY1MTNdIDAw MDogIGludHJfY29tcGxldGUrMHhiMC8weGUwClsgICAgNC44OTY1MjVdIDAwMDogIF9fdXNiX2hj ZF9naXZlYmFja191cmIrMHg1OC8weGQ4ClsgICAgNC44OTY1MzNdIDAwMDogIHVzYl9naXZlYmFj a191cmJfYmgrMHhkMC8weDE3MApbICAgIDQuODk2NTM5XSAwMDA6ICB0YXNrbGV0X2FjdGlvbl9j b21tb24uaXNyYS4wKzB4OWMvMHgxMjgKWyAgICA0Ljg5NjU0OV0gMDAwOiAgdGFza2xldF9oaV9h Y3Rpb24rMHgyNC8weDMwClsgICAgNC44OTY1NTZdIDAwMDogIF9fZG9fc29mdGlycSsweDEyMC8w eDIzYwpbICAgIDQuODk2NTY0XSAwMDA6ICBpcnFfZXhpdCsweGI4LzB4ZDgKWyAgICA0Ljg5NjU3 MV0gMDAwOiAgX19oYW5kbGVfZG9tYWluX2lycSsweDY0LzB4YjgKWyAgICA0Ljg5NjU3OV0gMDAw OiAgYmNtMjgzNl9hcm1faXJxY2hpcF9oYW5kbGVfaXJxKzB4NjAvMHhjMApbICAgIDQuODk2NTg2 XSAwMDA6ICBlbDFfaXJxKzB4YjgvMHgxNDAKWyAgICA0Ljg5NjU5Ml0gMDAwOiAgYXJjaF9jcHVf aWRsZSsweDEwLzB4MTgKWyAgICA0Ljg5NjYwMV0gMDAwOiAgZG9faWRsZSsweDIwMC8weDI4MApb ICAgIDQuODk2NjA4XSAwMDA6ICBjcHVfc3RhcnR1cF9lbnRyeSsweDIwLzB4MjgKWyAgICA0Ljg5 NjYxNV0gMDAwOiAgcmVzdF9pbml0KzB4YjQvMHhjMApbICAgIDQuODk2NjIzXSAwMDA6ICBhcmNo X2NhbGxfcmVzdF9pbml0KzB4Yy8weDE0ClsgICAgNC44OTY2MzJdIDAwMDogIHN0YXJ0X2tlcm5l bCsweDQ1NC8weDQ4MAoKRml4ZXM6IGVkMTk0ZDEzNjc2OSAoInVzYjogY29yZTogcmVtb3ZlIGxv Y2FsX2lycV9zYXZlKCkgYXJvdW5kIC0+Y29tcGxldGUoKSBoYW5kbGVyIikKQ2M6IFdvb2p1bmcg SHVoIDx3b29qdW5nLmh1aEBtaWNyb2NoaXAuY29tPgpDYzogTWFyYyBaeW5naWVyIDxtYXpAa2Vy bmVsLm9yZz4KQ2M6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KQ2M6IFN0ZWZhbiBXYWhy ZW4gPHdhaHJlbnN0QGdteC5uZXQ+CkNjOiBKaXNoZW5nIFpoYW5nIDxKaXNoZW5nLlpoYW5nQHN5 bmFwdGljcy5jb20+CkNjOiBTZWJhc3RpYW4gQW5kcnplaiBTaWV3aW9yIDxiaWdlYXN5QGxpbnV0 cm9uaXguZGU+CkNjOiBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4KQ2M6IERh dmlkIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFdh Z25lciA8ZHdhZ25lckBzdXNlLmRlPgpUZXN0ZWQtYnk6IFN0ZWZhbiBXYWhyZW4gPHdhaHJlbnN0 QGdteC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jIHwgNSArKysrLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3VzYi9sYW43OHh4LmMgYi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCmluZGV4IGUy MDI2NmJkMjA5ZS4uNjRiNmE3NjllNzgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvbGFu Nzh4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMKQEAgLTEyNzgsOCArMTI3OCwx MSBAQCBzdGF0aWMgdm9pZCBsYW43OHh4X3N0YXR1cyhzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldiwg c3RydWN0IHVyYiAqdXJiKQogCQluZXRpZl9kYmcoZGV2LCBsaW5rLCBkZXYtPm5ldCwgIlBIWSBJ TlRSOiAweCUwOHhcbiIsIGludGRhdGEpOwogCQlsYW43OHh4X2RlZmVyX2tldmVudChkZXYsIEVW RU5UX0xJTktfUkVTRVQpOwogCi0JCWlmIChkZXYtPmRvbWFpbl9kYXRhLnBoeWlycSA+IDApCisJ CWlmIChkZXYtPmRvbWFpbl9kYXRhLnBoeWlycSA+IDApIHsKKwkJCWxvY2FsX2lycV9kaXNhYmxl KCk7CiAJCQlnZW5lcmljX2hhbmRsZV9pcnEoZGV2LT5kb21haW5fZGF0YS5waHlpcnEpOworCQkJ bG9jYWxfaXJxX2VuYWJsZSgpOworCQl9CiAJfSBlbHNlCiAJCW5ldGRldl93YXJuKGRldi0+bmV0 LAogCQkJICAgICJ1bmV4cGVjdGVkIGludGVycnVwdDogMHglMDh4XG4iLCBpbnRkYXRhKTsKLS0g CjIuMjAuMQoKCkZyb20gNTBjN2JiMGNkOTllZGE5MDk0NmU0ZjJhMzBhYjU3OTk4YWUxY2JiNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogemhhbmdsaW4gPHpoYW5nLmxpbjE2QHp0ZS5j b20uY24+CkRhdGU6IFNhdCwgMjYgT2N0IDIwMTkgMTU6NTQ6MTYgKzA4MDAKU3ViamVjdDogW1BB VENIIDE0LzM2XSBuZXQ6IFplcm9pbmcgdGhlIHN0cnVjdHVyZSBldGh0b29sX3dvbGluZm8gaW4K IGV0aHRvb2xfZ2V0X3dvbCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZmYyMjNlODZmNWFkZGJmYWUy NjQxOWNiYjVkNjFkOThmNmZiZjdkIF0KCm1lbXNldCgpIHRoZSBzdHJ1Y3R1cmUgZXRodG9vbF93 b2xpbmZvIHRoYXQgaGFzIHBhZGRlZCBieXRlcwpidXQgdGhlIHBhZGRlZCBieXRlcyBoYXZlIG5v dCBiZWVuIHplcm9lZCBvdXQuCgpTaWduZWQtb2ZmLWJ5OiB6aGFuZ2xpbiA8emhhbmcubGluMTZA enRlLmNvbS5jbj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9jb3JlL2V0aHRvb2wuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2V0 aHRvb2wuYyBiL25ldC9jb3JlL2V0aHRvb2wuYwppbmRleCA5OTY4MTNmMzQ1ZDUuLjA5ZDgyOGE2 YTE3MyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZXRodG9vbC5jCisrKyBiL25ldC9jb3JlL2V0aHRv b2wuYwpAQCAtMTQ4MiwxMSArMTQ4MiwxMyBAQCBzdGF0aWMgaW50IGV0aHRvb2xfcmVzZXQoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgY2hhciBfX3VzZXIgKnVzZXJhZGRyKQogCiBzdGF0aWMgaW50 IGV0aHRvb2xfZ2V0X3dvbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjaGFyIF9fdXNlciAqdXNl cmFkZHIpCiB7Ci0Jc3RydWN0IGV0aHRvb2xfd29saW5mbyB3b2wgPSB7IC5jbWQgPSBFVEhUT09M X0dXT0wgfTsKKwlzdHJ1Y3QgZXRodG9vbF93b2xpbmZvIHdvbDsKIAogCWlmICghZGV2LT5ldGh0 b29sX29wcy0+Z2V0X3dvbCkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCisJbWVtc2V0KCZ3b2ws IDAsIHNpemVvZihzdHJ1Y3QgZXRodG9vbF93b2xpbmZvKSk7CisJd29sLmNtZCA9IEVUSFRPT0xf R1dPTDsKIAlkZXYtPmV0aHRvb2xfb3BzLT5nZXRfd29sKGRldiwgJndvbCk7CiAKIAlpZiAoY29w eV90b191c2VyKHVzZXJhZGRyLCAmd29sLCBzaXplb2Yod29sKSkpCi0tIAoyLjIwLjEKCgpGcm9t IDYxMTEwOTFjM2EwNmMxMGM2OWJmMDdlNTQ4OTA5OWI4ZTg4MTU0NGYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAz MSBPY3QgMjAxOSAxNjoyNDozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzZdIHNlbGZ0ZXN0 czogbmV0OiByZXVzZXBvcnRfZHVhbHN0YWNrOiBmaXggdW5pbml0YWxpemVkCiBwYXJhbWV0ZXIK TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGQ2NDQ3 OWEzZTNmOTkyNDA3NGNhN2I1MGJkNzJmYTUyMTFkY2E5YzEgXQoKVGhpcyB0ZXN0IHJlcG9ydHMg RUlOVkFMIGZvciBnZXRzb2Nrb3B0KFNPTF9TT0NLRVQsIFNPX0RPTUFJTikKb2NjYXNpb25hbGx5 IGR1ZSB0byB0aGUgdW5pbml0aWFsaXplZCBsZW5ndGggcGFyYW1ldGVyLgpJbml0aWFsaXplIGl0 IHRvIGZpeCB0aGlzLCBhbmQgYWxzbyB1c2UgaW50IGZvciAidGVzdF9mYW1pbHkiIHRvIGNvbXBs eQp3aXRoIHRoZSBBUEkgc3RhbmRhcmQuCgpGaXhlczogZDZhNjFmODBiODcxICgic29yZXVzZXBv cnQ6IHRlc3QgbWl4ZWQgdjQvdjYgc29ja2V0cyIpClJlcG9ydGVkLWJ5OiBNYWNpZWogxbtlbmN6 eWtvd3NraSA8bWF6ZUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xl LmNvbT4KQ2M6IENyYWlnIEdhbGxlayA8Y2dhbGxla0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvbmV0L3JldXNlcG9ydF9kdWFsc3RhY2suYyB8IDMgKystCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvbmV0L3JldXNlcG9ydF9kdWFsc3RhY2suYyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL25ldC9yZXVzZXBvcnRfZHVhbHN0YWNrLmMKaW5kZXggZmUzMjMwYzU1OTg2 Li5mYjdhNTllZDc1OWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9y ZXVzZXBvcnRfZHVhbHN0YWNrLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Jl dXNlcG9ydF9kdWFsc3RhY2suYwpAQCAtMTI5LDcgKzEyOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3Qo aW50ICpyY3ZfZmRzLCBpbnQgY291bnQsIGludCBwcm90bykKIHsKIAlzdHJ1Y3QgZXBvbGxfZXZl bnQgZXY7CiAJaW50IGVwZmQsIGksIHRlc3RfZmQ7Ci0JdWludDE2X3QgdGVzdF9mYW1pbHk7CisJ aW50IHRlc3RfZmFtaWx5OwogCXNvY2tsZW5fdCBsZW47CiAKIAllcGZkID0gZXBvbGxfY3JlYXRl KDEpOwpAQCAtMTQ2LDYgKzE0Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3QoaW50ICpyY3ZfZmRzLCBp bnQgY291bnQsIGludCBwcm90bykKIAlzZW5kX2Zyb21fdjQocHJvdG8pOwogCiAJdGVzdF9mZCA9 IHJlY2VpdmVfb25jZShlcGZkLCBwcm90byk7CisJbGVuID0gc2l6ZW9mKHRlc3RfZmFtaWx5KTsK IAlpZiAoZ2V0c29ja29wdCh0ZXN0X2ZkLCBTT0xfU09DS0VULCBTT19ET01BSU4sICZ0ZXN0X2Zh bWlseSwgJmxlbikpCiAJCWVycm9yKDEsIGVycm5vLCAiZmFpbGVkIHRvIHJlYWQgc29ja2V0IGRv bWFpbiIpOwogCWlmICh0ZXN0X2ZhbWlseSAhPSBBRl9JTkVUKQotLSAKMi4yMC4xCgoKRnJvbSBm ZmNjZjEyNDQxNmI2NGIyZmVjOGE5OWFiNDNmMmZjZTEwMjhhOWRhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRo dSwgMjQgT2N0IDIwMTkgMTE6NDM6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIIDE2LzM2XSB1ZHA6 IGZpeCBkYXRhLXJhY2UgaW4gdWRwX3NldF9kZXZfc2NyYXRjaCgpCgpbIFVwc3RyZWFtIGNvbW1p dCBhNzkzMTgzY2FhOWFmYWU5MDdhMGQ3ZGRkMmZmZDU3MzI5MzY5YmY1IF0KCktDU0FOIHJlcG9y dGVkIGEgZGF0YS1yYWNlIGluIHVkcF9zZXRfZGV2X3NjcmF0Y2goKSBbMV0KClRoZSBpc3N1ZSBo ZXJlIGlzIHRoYXQgd2UgbXVzdCBub3Qgd3JpdGUgb3ZlciBza2IgZmllbGRzCmlmIHNrYiBpcyBz aGFyZWQuIEEgc2ltaWxhciBpc3N1ZSBoYXMgYmVlbiBmaXhlZCBpbiBjb21taXQKODljMjJkOGMz YjI3ICgibmV0OiBGaXggc2tiIGNzdW0gcmFjZXMgd2hlbiBwZWVraW5nIikKCldoaWxlIHdlIGFy ZSBhdCBpdCwgdXNlIGEgaGVscGVyIG9ubHkgZGVhbGluZyB3aXRoCnVkcF9za2Jfc2NyYXRjaChz a2IpLT5jc3VtX3VubmVjZXNzYXJ5LCBhcyB0aGlzIGFsbG93cwp1ZHBfc2V0X2Rldl9zY3JhdGNo KCkgdG8gYmUgY2FsbGVkIG9uY2UgYW5kIHRodXMgaW5saW5lZC4KClsxXQpCVUc6IEtDU0FOOiBk YXRhLXJhY2UgaW4gdWRwX3NldF9kZXZfc2NyYXRjaCAvIHVkcHY2X3JlY3Ztc2cKCndyaXRlIHRv IDB4ZmZmZjg4ODEyMDI3ODMxNyBvZiAxIGJ5dGVzIGJ5IHRhc2sgMTA0MTEgb24gY3B1IDE6CiB1 ZHBfc2V0X2Rldl9zY3JhdGNoKzB4ZWEvMHgyMDAgbmV0L2lwdjQvdWRwLmM6MTMwOAogX19maXJz dF9wYWNrZXRfbGVuZ3RoKzB4MTQ3LzB4NDIwIG5ldC9pcHY0L3VkcC5jOjE1NTYKIGZpcnN0X3Bh Y2tldF9sZW5ndGgrMHg2OC8weDJhMCBuZXQvaXB2NC91ZHAuYzoxNTc5CiB1ZHBfcG9sbCsweGVh LzB4MTEwIG5ldC9pcHY0L3VkcC5jOjI3MjAKIHNvY2tfcG9sbCsweGVkLzB4MjUwIG5ldC9zb2Nr ZXQuYzoxMjU2CiB2ZnNfcG9sbCBpbmNsdWRlL2xpbnV4L3BvbGwuaDo5MCBbaW5saW5lXQogZG9f c2VsZWN0KzB4N2QwLzB4MTAyMCBmcy9zZWxlY3QuYzo1MzQKIGNvcmVfc3lzX3NlbGVjdCsweDM4 MS8weDU1MCBmcy9zZWxlY3QuYzo2NzcKIGRvX3BzZWxlY3QuY29uc3Rwcm9wLjArMHgxMWQvMHgx NjAgZnMvc2VsZWN0LmM6NzU5CiBfX2RvX3N5c19wc2VsZWN0NiBmcy9zZWxlY3QuYzo3ODQgW2lu bGluZV0KIF9fc2Vfc3lzX3BzZWxlY3Q2IGZzL3NlbGVjdC5jOjc2OSBbaW5saW5lXQogX194NjRf c3lzX3BzZWxlY3Q2KzB4MTJlLzB4MTcwIGZzL3NlbGVjdC5jOjc2OQogZG9fc3lzY2FsbF82NCsw eGNjLzB4MzcwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MAogZW50cnlfU1lTQ0FMTF82NF9h ZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKcmVhZCB0byAweGZmZmY4ODgxMjAyNzgzMTcgb2YgMSBi eXRlcyBieSB0YXNrIDEwNDEzIG9uIGNwdSAwOgogdWRwX3NrYl9jc3VtX3VubmVjZXNzYXJ5IGlu Y2x1ZGUvbmV0L3VkcC5oOjM1OCBbaW5saW5lXQogdWRwdjZfcmVjdm1zZysweDQzZS8weGU5MCBu ZXQvaXB2Ni91ZHAuYzozMTAKIGluZXQ2X3JlY3Ztc2crMHhiYi8weDI0MCBuZXQvaXB2Ni9hZl9p bmV0Ni5jOjU5Mgogc29ja19yZWN2bXNnX25vc2VjKzB4NWMvMHg3MCBuZXQvc29ja2V0LmM6ODcx CiBfX19zeXNfcmVjdm1zZysweDFhMC8weDNlMCBuZXQvc29ja2V0LmM6MjQ4MAogZG9fcmVjdm1t c2crMHgxOWEvMHg1YzAgbmV0L3NvY2tldC5jOjI2MDEKIF9fc3lzX3JlY3ZtbXNnKzB4MWVmLzB4 MjAwIG5ldC9zb2NrZXQuYzoyNjgwCiBfX2RvX3N5c19yZWN2bW1zZyBuZXQvc29ja2V0LmM6Mjcw MyBbaW5saW5lXQogX19zZV9zeXNfcmVjdm1tc2cgbmV0L3NvY2tldC5jOjI2OTYgW2lubGluZV0K IF9feDY0X3N5c19yZWN2bW1zZysweDg5LzB4YjAgbmV0L3NvY2tldC5jOjI2OTYKIGRvX3N5c2Nh bGxfNjQrMHhjYy8weDM3MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTAKIGVudHJ5X1NZU0NB TExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKClJlcG9ydGVkIGJ5IEtlcm5lbCBDb25jdXJy ZW5jeSBTYW5pdGl6ZXIgb246CkNQVTogMCBQSUQ6IDEwNDEzIENvbW06IHN5ei1leGVjdXRvci4w IE5vdCB0YWludGVkIDUuNC4wLXJjMysgIzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBD b21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIw MTEKCkZpeGVzOiAyMjc2ZjU4YWM1ODkgKCJ1ZHA6IHVzZSBhIHNlcGFyYXRlIHJ4IHF1ZXVlIGZv ciBwYWNrZXQgcmVjZXB0aW9uIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBz LmNvbT4KQ2M6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFBh b2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5jIHwgMTkgKysrKysr KysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRl eCBlYzJhYjgyZDBkNGIuLjQyZjYwMjdlMzBiNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMK KysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTEyNzAsNiArMTI3MCwyMCBAQCBzdGF0aWMgdm9pZCB1 ZHBfc2V0X2Rldl9zY3JhdGNoKHN0cnVjdCBza19idWZmICpza2IpCiAJCXNjcmF0Y2gtPl90c2l6 ZV9zdGF0ZSB8PSBVRFBfU0tCX0lTX1NUQVRFTEVTUzsKIH0KIAorc3RhdGljIHZvaWQgdWRwX3Nr Yl9jc3VtX3VubmVjZXNzYXJ5X3NldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCS8qIFdlIGNv bWUgaGVyZSBhZnRlciB1ZHBfbGliX2NoZWNrc3VtX2NvbXBsZXRlKCkgcmV0dXJuZWQgMC4KKwkg KiBUaGlzIG1lYW5zIHRoYXQgX19za2JfY2hlY2tzdW1fY29tcGxldGUoKSBtaWdodCBoYXZlCisJ ICogc2V0IHNrYi0+Y3N1bV92YWxpZCB0byAxLgorCSAqIE9uIDY0Yml0IHBsYXRmb3Jtcywgd2Ug Y2FuIHNldCBjc3VtX3VubmVjZXNzYXJ5CisJICogdG8gdHJ1ZSwgYnV0IG9ubHkgaWYgdGhlIHNr YiBpcyBub3Qgc2hhcmVkLgorCSAqLworI2lmIEJJVFNfUEVSX0xPTkcgPT0gNjQKKwlpZiAoIXNr Yl9zaGFyZWQoc2tiKSkKKwkJdWRwX3NrYl9zY3JhdGNoKHNrYiktPmNzdW1fdW5uZWNlc3Nhcnkg PSB0cnVlOworI2VuZGlmCit9CisKIHN0YXRpYyBpbnQgdWRwX3NrYl90cnVlc2l6ZShzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogewogCXJldHVybiB1ZHBfc2tiX3NjcmF0Y2goc2tiKS0+X3RzaXplX3N0 YXRlICYgflVEUF9TS0JfSVNfU1RBVEVMRVNTOwpAQCAtMTUwNCwxMCArMTUxOCw3IEBAIHN0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqX19maXJzdF9wYWNrZXRfbGVuZ3RoKHN0cnVjdCBzb2NrICpzaywK IAkJCSp0b3RhbCArPSBza2ItPnRydWVzaXplOwogCQkJa2ZyZWVfc2tiKHNrYik7CiAJCX0gZWxz ZSB7Ci0JCQkvKiB0aGUgY3N1bSByZWxhdGVkIGJpdHMgY291bGQgYmUgY2hhbmdlZCwgcmVmcmVz aAotCQkJICogdGhlIHNjcmF0Y2ggYXJlYQotCQkJICovCi0JCQl1ZHBfc2V0X2Rldl9zY3JhdGNo KHNrYik7CisJCQl1ZHBfc2tiX2NzdW1fdW5uZWNlc3Nhcnlfc2V0KHNrYik7CiAJCQlicmVhazsK IAkJfQogCX0KLS0gCjIuMjAuMQoKCkZyb20gN2RhMjZkYzFkYzBlZWU3YjMwODEwYjY0MGU0OTY3 NGZkYWQzNWE5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2ll bi54aW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDI5IE9jdCAyMDE5IDAxOjI0OjMyICswODAwClN1 YmplY3Q6IFtQQVRDSCAxNy8zNl0gdnhsYW46IGNoZWNrIHR1bl9pbmZvIG9wdGlvbnNfbGVuIHBy b3Blcmx5CgpbIFVwc3RyZWFtIGNvbW1pdCBlYWRmNTJjZjE4NTIxOTZhMTM2MzA0NGRjZGEyMmZh NWQ3ZjI5NmY3IF0KClRoaXMgcGF0Y2ggaXMgdG8gaW1wcm92ZSB0aGUgdHVuX2luZm8gb3B0aW9u c19sZW4gYnkgZHJvcHBpbmcKdGhlIHNrYiB3aGVuIFRVTk5FTF9WWExBTl9PUFQgaXMgc2V0IGJ1 dCBvcHRpb25zX2xlbiBpcyBsZXNzCnRoYW4gdnhsYW5fbWV0YWRhdGEuIFRoaXMgY2FuIHZvaWQg YSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcwphY2Nlc3Mgb24gaXBfdHVuX2luZm8uCgpGaXhlczog ZWUxMjJjNzlkNDIyICgidnhsYW46IEZsb3cgYmFzZWQgdHVubmVsaW5nIikKU2lnbmVkLW9mZi1i eTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8 IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5j CmluZGV4IDBiMWVjNDRhY2JmOS4uMmE1MzZmODRkNWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTIxNzQsOSArMjE3NCwxMSBA QCBzdGF0aWMgdm9pZCB2eGxhbl94bWl0X29uZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAogCQl2bmkgPSB0dW5uZWxfaWRfdG9fa2V5MzIoaW5mby0+a2V5LnR1 bl9pZCk7CiAJCWlmaW5kZXggPSAwOwogCQlkc3RfY2FjaGUgPSAmaW5mby0+ZHN0X2NhY2hlOwot CQlpZiAoaW5mby0+b3B0aW9uc19sZW4gJiYKLQkJICAgIGluZm8tPmtleS50dW5fZmxhZ3MgJiBU VU5ORUxfVlhMQU5fT1BUKQorCQlpZiAoaW5mby0+a2V5LnR1bl9mbGFncyAmIFRVTk5FTF9WWExB Tl9PUFQpIHsKKwkJCWlmIChpbmZvLT5vcHRpb25zX2xlbiA8IHNpemVvZigqbWQpKQorCQkJCWdv dG8gZHJvcDsKIAkJCW1kID0gaXBfdHVubmVsX2luZm9fb3B0cyhpbmZvKTsKKwkJfQogCQl0dGwg PSBpbmZvLT5rZXkudHRsOwogCQl0b3MgPSBpbmZvLT5rZXkudG9zOwogCQlsYWJlbCA9IGluZm8t PmtleS5sYWJlbDsKLS0gCjIuMjAuMQoKCkZyb20gMGMxMWMxZjVhZjBlYzVmNThiZWEwNTdlMzdk NzZjN2Y1YzVlMTdhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIzIE9jdCAyMDE5IDIyOjQ0OjQ4IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAxOC8zNl0gbmV0OiBhZGQgc2tiX3F1ZXVlX2VtcHR5X2xvY2ts ZXNzKCkKClsgVXBzdHJlYW0gY29tbWl0IGQ3ZDE2YTg5MzUwYWIyNjM0ODRjMGFhMmI1MjNkZDNh MjM0ZTRhODAgXQoKU29tZSBwYXRocyBjYWxsIHNrYl9xdWV1ZV9lbXB0eSgpIHdpdGhvdXQgaG9s ZGluZwp0aGUgcXVldWUgbG9jay4gV2UgbXVzdCB1c2UgYSBiYXJyaWVyIGluIG9yZGVyCnRvIG5v dCBsZXQgdGhlIGNvbXBpbGVyIGRvIHN0cmFuZ2UgdGhpbmdzLCBhbmQgYXZvaWQKS0NTQU4gc3Bs YXRzLgoKQWRkaW5nIGEgYmFycmllciBpbiBza2JfcXVldWVfZW1wdHkoKSBtaWdodCBiZSBvdmVy a2lsbCwKSSBwcmVmZXIgYWRkaW5nIGEgbmV3IGhlbHBlciB0byBjbGVhcmx5IGlkZW50aWZ5CnBv aW50cyB3aGVyZSB0aGUgY2FsbGVycyBtaWdodCBiZSBsb2NrbGVzcy4gVGhpcyBtaWdodApoZWxw IHVzIGZpbmRpbmcgcmVhbCBidWdzLgoKVGhlIGNvcnJlc3BvbmRpbmcgV1JJVEVfT05DRSgpIHNo b3VsZCBhZGQgemVybyBjb3N0CmZvciBjdXJyZW50IGNvbXBpbGVycy4KClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvc2tidWZm LmggfCAzMyArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyNCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvc2tidWZmLmggYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IDI4YmFjY2IxZWZk NS4uN2E2ODNlYTQwOWZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCisrKyBi L2luY2x1ZGUvbGludXgvc2tidWZmLmgKQEAgLTEzNzksNiArMTM3OSwxOSBAQCBzdGF0aWMgaW5s aW5lIGludCBza2JfcXVldWVfZW1wdHkoY29uc3Qgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCkK IAlyZXR1cm4gbGlzdC0+bmV4dCA9PSAoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKikgbGlzdDsKIH0K IAorLyoqCisgKglza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MgLSBjaGVjayBpZiBhIHF1ZXVlIGlz IGVtcHR5CisgKglAbGlzdDogcXVldWUgaGVhZAorICoKKyAqCVJldHVybnMgdHJ1ZSBpZiB0aGUg cXVldWUgaXMgZW1wdHksIGZhbHNlIG90aGVyd2lzZS4KKyAqCVRoaXMgdmFyaWFudCBjYW4gYmUg dXNlZCBpbiBsb2NrbGVzcyBjb250ZXh0cy4KKyAqLworc3RhdGljIGlubGluZSBib29sIHNrYl9x dWV1ZV9lbXB0eV9sb2NrbGVzcyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0KQorewor CXJldHVybiBSRUFEX09OQ0UobGlzdC0+bmV4dCkgPT0gKGNvbnN0IHN0cnVjdCBza19idWZmICop IGxpc3Q7Cit9CisKKwogLyoqCiAgKglza2JfcXVldWVfaXNfbGFzdCAtIGNoZWNrIGlmIHNrYiBp cyB0aGUgbGFzdCBlbnRyeSBpbiB0aGUgcXVldWUKICAqCUBsaXN0OiBxdWV1ZSBoZWFkCkBAIC0x NzIzLDkgKzE3MzYsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fc2tiX2luc2VydChzdHJ1Y3Qg c2tfYnVmZiAqbmV3c2ssCiAJCQkJc3RydWN0IHNrX2J1ZmYgKnByZXYsIHN0cnVjdCBza19idWZm ICpuZXh0LAogCQkJCXN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QpCiB7Ci0JbmV3c2stPm5leHQg PSBuZXh0OwotCW5ld3NrLT5wcmV2ID0gcHJldjsKLQluZXh0LT5wcmV2ICA9IHByZXYtPm5leHQg PSBuZXdzazsKKwkvKiBzZWUgc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCkgZm9yIHRoZSBvcHBv c2l0ZSBSRUFEX09OQ0UoKSAqLworCVdSSVRFX09OQ0UobmV3c2stPm5leHQsIG5leHQpOworCVdS SVRFX09OQ0UobmV3c2stPnByZXYsIHByZXYpOworCVdSSVRFX09OQ0UobmV4dC0+cHJldiwgbmV3 c2spOworCVdSSVRFX09OQ0UocHJldi0+bmV4dCwgbmV3c2spOwogCWxpc3QtPnFsZW4rKzsKIH0K IApAQCAtMTczNiwxMSArMTc1MSwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19za2JfcXVldWVf c3BsaWNlKGNvbnN0IHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAJc3RydWN0IHNrX2J1ZmYg KmZpcnN0ID0gbGlzdC0+bmV4dDsKIAlzdHJ1Y3Qgc2tfYnVmZiAqbGFzdCA9IGxpc3QtPnByZXY7 CiAKLQlmaXJzdC0+cHJldiA9IHByZXY7Ci0JcHJldi0+bmV4dCA9IGZpcnN0OworCVdSSVRFX09O Q0UoZmlyc3QtPnByZXYsIHByZXYpOworCVdSSVRFX09OQ0UocHJldi0+bmV4dCwgZmlyc3QpOwog Ci0JbGFzdC0+bmV4dCA9IG5leHQ7Ci0JbmV4dC0+cHJldiA9IGxhc3Q7CisJV1JJVEVfT05DRShs YXN0LT5uZXh0LCBuZXh0KTsKKwlXUklURV9PTkNFKG5leHQtPnByZXYsIGxhc3QpOwogfQogCiAv KioKQEAgLTE4ODEsOCArMTg5Niw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3NrYl91bmxpbmso c3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCkKIAluZXh0CSAg ID0gc2tiLT5uZXh0OwogCXByZXYJICAgPSBza2ItPnByZXY7CiAJc2tiLT5uZXh0ICA9IHNrYi0+ cHJldiA9IE5VTEw7Ci0JbmV4dC0+cHJldiA9IHByZXY7Ci0JcHJldi0+bmV4dCA9IG5leHQ7CisJ V1JJVEVfT05DRShuZXh0LT5wcmV2LCBwcmV2KTsKKwlXUklURV9PTkNFKHByZXYtPm5leHQsIG5l eHQpOwogfQogCiAvKioKLS0gCjIuMjAuMQoKCkZyb20gNGFlYTI3ODE3NWE2NGFlNWQ0M2QyZWFl NjQ5NWU4NjMxZTJlYjRmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIzIE9jdCAyMDE5IDIyOjQ0OjQ5 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOS8zNl0gdWRwOiB1c2Ugc2tiX3F1ZXVlX2VtcHR5X2xv Y2tsZXNzKCkKClsgVXBzdHJlYW0gY29tbWl0IDEzN2EwZGJlMzQyNmZkN2JjZmUzZjgxMTdiMzZh ODdiMzU5MGU0ZWIgXQoKc3l6Ym90IHJlcG9ydGVkIGEgZGF0YS1yYWNlIFsxXS4KCldlIHNob3Vs ZCB1c2Ugc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCkgdG8gZG9jdW1lbnQgdGhhdCB3ZSBhcmUK bm90IGVuc3VyaW5nIGEgbXV0dWFsIGV4Y2x1c2lvbiBhbmQgc2lsZW5jZSBLQ1NBTi4KClsxXQpC VUc6IEtDU0FOOiBkYXRhLXJhY2UgaW4gX19za2JfcmVjdl91ZHAgLyBfX3VkcF9lbnF1ZXVlX3Nj aGVkdWxlX3NrYgoKd3JpdGUgdG8gMHhmZmZmODg4MTIyNDc0YjUwIG9mIDggYnl0ZXMgYnkgaW50 ZXJydXB0IG9uIGNwdSAwOgogX19za2JfaW5zZXJ0IGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTg1 MiBbaW5saW5lXQogX19za2JfcXVldWVfYmVmb3JlIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTk1 OCBbaW5saW5lXQogX19za2JfcXVldWVfdGFpbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjE5OTEg W2lubGluZV0KIF9fdWRwX2VucXVldWVfc2NoZWR1bGVfc2tiKzB4MmMxLzB4NDEwIG5ldC9pcHY0 L3VkcC5jOjE0NzAKIF9fdWRwX3F1ZXVlX3Jjdl9za2IgbmV0L2lwdjQvdWRwLmM6MTk0MCBbaW5s aW5lXQogdWRwX3F1ZXVlX3Jjdl9vbmVfc2tiKzB4N2JkLzB4YzcwIG5ldC9pcHY0L3VkcC5jOjIw NTcKIHVkcF9xdWV1ZV9yY3Zfc2tiKzB4YjUvMHg0MDAgbmV0L2lwdjQvdWRwLmM6MjA3NAogdWRw X3VuaWNhc3RfcmN2X3NrYi5pc3JhLjArMHg3ZS8weDFjMCBuZXQvaXB2NC91ZHAuYzoyMjMzCiBf X3VkcDRfbGliX3JjdisweGE0NC8weDE3YzAgbmV0L2lwdjQvdWRwLmM6MjMwMAogdWRwX3Jjdisw eDJiLzB4NDAgbmV0L2lwdjQvdWRwLmM6MjQ3MAogaXBfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg0 ZC8weDQyMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjIwNAogaXBfbG9jYWxfZGVsaXZlcl9maW5pc2gr MHgxMTAvMHgxNDAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMzEKIE5GX0hPT0sgaW5jbHVkZS9saW51 eC9uZXRmaWx0ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXIuaDoyOTkgW2lubGluZV0KIGlwX2xvY2FsX2RlbGl2ZXIrMHgxMzMvMHgyMTAgbmV0L2lwdjQv aXBfaW5wdXQuYzoyNTIKIGRzdF9pbnB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0K IGlwX3Jjdl9maW5pc2grMHgxMjEvMHgxNjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0MTMKIE5GX0hP T0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVk ZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0KIGlwX3JjdisweDE4Zi8weDFhMCBuZXQv aXB2NC9pcF9pbnB1dC5jOjUyMwogX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsweGE3LzB4 ZTAgbmV0L2NvcmUvZGV2LmM6NTAxMAogX19uZXRpZl9yZWNlaXZlX3NrYisweDM3LzB4ZjAgbmV0 L2NvcmUvZGV2LmM6NTEyNAogcHJvY2Vzc19iYWNrbG9nKzB4MWQzLzB4NDIwIG5ldC9jb3JlL2Rl di5jOjU5NTUKCnJlYWQgdG8gMHhmZmZmODg4MTIyNDc0YjUwIG9mIDggYnl0ZXMgYnkgdGFzayA4 OTIxIG9uIGNwdSAxOgogc2tiX3F1ZXVlX2VtcHR5IGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTQ5 NCBbaW5saW5lXQogX19za2JfcmVjdl91ZHArMHgxOGQvMHg1MDAgbmV0L2lwdjQvdWRwLmM6MTY1 MwogdWRwX3JlY3Ztc2crMHhlMS8weGIxMCBuZXQvaXB2NC91ZHAuYzoxNzEyCiBpbmV0X3JlY3Zt c2crMHhiYi8weDI1MCBuZXQvaXB2NC9hZl9pbmV0LmM6ODM4CiBzb2NrX3JlY3Ztc2dfbm9zZWMr MHg1Yy8weDcwIG5ldC9zb2NrZXQuYzo4NzEKIF9fX3N5c19yZWN2bXNnKzB4MWEwLzB4M2UwIG5l dC9zb2NrZXQuYzoyNDgwCiBkb19yZWN2bW1zZysweDE5YS8weDVjMCBuZXQvc29ja2V0LmM6MjYw MQogX19zeXNfcmVjdm1tc2crMHgxZWYvMHgyMDAgbmV0L3NvY2tldC5jOjI2ODAKIF9fZG9fc3lz X3JlY3ZtbXNnIG5ldC9zb2NrZXQuYzoyNzAzIFtpbmxpbmVdCiBfX3NlX3N5c19yZWN2bW1zZyBu ZXQvc29ja2V0LmM6MjY5NiBbaW5saW5lXQogX194NjRfc3lzX3JlY3ZtbXNnKzB4ODkvMHhiMCBu ZXQvc29ja2V0LmM6MjY5NgogZG9fc3lzY2FsbF82NCsweGNjLzB4MzcwIGFyY2gveDg2L2VudHJ5 L2NvbW1vbi5jOjI5MAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoK UmVwb3J0ZWQgYnkgS2VybmVsIENvbmN1cnJlbmN5IFNhbml0aXplciBvbjoKQ1BVOiAxIFBJRDog ODkyMSBDb21tOiBzeXotZXhlY3V0b3IuNCBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3 YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5n aW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29n bGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRwLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91 ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IDQyZjYwMjdlMzBiNC4uYzExZWI2YzliNGZmIDEw MDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtMTU0Miw3 ICsxNTQyLDcgQEAgc3RhdGljIGludCBmaXJzdF9wYWNrZXRfbGVuZ3RoKHN0cnVjdCBzb2NrICpz aykKIAogCXNwaW5fbG9ja19iaCgmcmN2cS0+bG9jayk7CiAJc2tiID0gX19maXJzdF9wYWNrZXRf bGVuZ3RoKHNrLCByY3ZxLCAmdG90YWwpOwotCWlmICghc2tiICYmICFza2JfcXVldWVfZW1wdHko c2tfcXVldWUpKSB7CisJaWYgKCFza2IgJiYgIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcyhza19x dWV1ZSkpIHsKIAkJc3Bpbl9sb2NrKCZza19xdWV1ZS0+bG9jayk7CiAJCXNrYl9xdWV1ZV9zcGxp Y2VfdGFpbF9pbml0KHNrX3F1ZXVlLCByY3ZxKTsKIAkJc3Bpbl91bmxvY2soJnNrX3F1ZXVlLT5s b2NrKTsKQEAgLTE2MTcsNyArMTYxNyw3IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl9yZWN2X3Vk cChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCQlyZXR1cm4gc2tiOwog CQkJfQogCi0JCQlpZiAoc2tiX3F1ZXVlX2VtcHR5KHNrX3F1ZXVlKSkgeworCQkJaWYgKHNrYl9x dWV1ZV9lbXB0eV9sb2NrbGVzcyhza19xdWV1ZSkpIHsKIAkJCQlzcGluX3VubG9ja19iaCgmcXVl dWUtPmxvY2spOwogCQkJCWdvdG8gYnVzeV9jaGVjazsKIAkJCX0KQEAgLTE2NDQsNyArMTY0NCw3 IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl9yZWN2X3VkcChzdHJ1Y3Qgc29jayAqc2ssIHVuc2ln bmVkIGludCBmbGFncywKIAkJCQlicmVhazsKIAogCQkJc2tfYnVzeV9sb29wKHNrLCBmbGFncyAm IE1TR19ET05UV0FJVCk7Ci0JCX0gd2hpbGUgKCFza2JfcXVldWVfZW1wdHkoc2tfcXVldWUpKTsK KwkJfSB3aGlsZSAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcyhza19xdWV1ZSkpOwogCiAJCS8q IHNrX3F1ZXVlIGlzIGVtcHR5LCByZWFkZXJfcXVldWUgbWF5IGNvbnRhaW4gcGVla2VkIHBhY2tl dHMgKi8KIAl9IHdoaWxlICh0aW1lbyAmJgotLSAKMi4yMC4xCgoKRnJvbSA5YTEwZmVmMDAyZmYw MjM4ZmE1ZGY0ZDA4NWRiMDk1NTkwYzEyY2EyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMjMgT2N0IDIw MTkgMjI6NDQ6NTAgLTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzM2XSBuZXQ6IHVzZSBza2JfcXVl dWVfZW1wdHlfbG9ja2xlc3MoKSBpbiBwb2xsKCkgaGFuZGxlcnMKClsgVXBzdHJlYW0gY29tbWl0 IDNlZjdjZjU3YzcyZjMyZjYxZTk3ZjhmYTQwMWJjMzllYTFmMWE1ZDQgXQoKTWFueSBwb2xsKCkg aGFuZGxlcnMgYXJlIGxvY2tsZXNzLiBVc2luZyBza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoKQpp bnN0ZWFkIG9mIHNrYl9xdWV1ZV9lbXB0eSgpIGlzIG1vcmUgYXBwcm9wcmlhdGUuCgpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL2lzZG4v Y2FwaS9jYXBpLmMgICAgIHwgMiArLQogbmV0L2F0bS9jb21tb24uYyAgICAgICAgICAgICB8IDIg Ky0KIG5ldC9ibHVldG9vdGgvYWZfYmx1ZXRvb3RoLmMgfCA0ICsrLS0KIG5ldC9jYWlmL2NhaWZf c29ja2V0LmMgICAgICAgfCAyICstCiBuZXQvY29yZS9kYXRhZ3JhbS5jICAgICAgICAgIHwgNCAr Ky0tCiBuZXQvZGVjbmV0L2FmX2RlY25ldC5jICAgICAgIHwgMiArLQogbmV0L2lwdjQvdGNwLmMg ICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY0L3VkcC5jICAgICAgICAgICAgICAgfCAyICst CiBuZXQvbmZjL2xsY3Bfc29jay5jICAgICAgICAgIHwgNCArKy0tCiBuZXQvcGhvbmV0L3NvY2tl dC5jICAgICAgICAgIHwgNCArKy0tCiBuZXQvc2N0cC9zb2NrZXQuYyAgICAgICAgICAgIHwgNCAr Ky0tCiBuZXQvdGlwYy9zb2NrZXQuYyAgICAgICAgICAgIHwgNCArKy0tCiBuZXQvdW5peC9hZl91 bml4LmMgICAgICAgICAgIHwgNiArKystLS0KIG5ldC92bXdfdnNvY2svYWZfdnNvY2suYyAgICAg fCAyICstCiAxNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMgYi9kcml2ZXJzL2lzZG4v Y2FwaS9jYXBpLmMKaW5kZXggMjE3ODZhNDQyMzY4Li5jNjdmZDJmYjMzM2MgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvaXNkbi9jYXBpL2NhcGkuYworKysgYi9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMK QEAgLTc0NCw3ICs3NDQsNyBAQCBjYXBpX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFi bGUgKndhaXQpCiAKIAlwb2xsX3dhaXQoZmlsZSwgJihjZGV2LT5yZWN2d2FpdCksIHdhaXQpOwog CW1hc2sgPSBFUE9MTE9VVCB8IEVQT0xMV1JOT1JNOwotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZj ZGV2LT5yZWN2cXVldWUpKQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZjZGV2LT5y ZWN2cXVldWUpKQogCQltYXNrIHw9IEVQT0xMSU4gfCBFUE9MTFJETk9STTsKIAlyZXR1cm4gbWFz azsKIH0KZGlmZiAtLWdpdCBhL25ldC9hdG0vY29tbW9uLmMgYi9uZXQvYXRtL2NvbW1vbi5jCmlu ZGV4IGEzOGMxNzRmYzc2Ni4uNjc3MmVkZGY2ZWMwIDEwMDY0NAotLS0gYS9uZXQvYXRtL2NvbW1v bi5jCisrKyBiL25ldC9hdG0vY29tbW9uLmMKQEAgLTY2Nyw3ICs2NjcsNyBAQCBfX3BvbGxfdCB2 Y2NfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywgcG9sbF90YWJs ZSAqd2FpdCkKIAkJbWFzayB8PSBFUE9MTEhVUDsKIAogCS8qIHJlYWRhYmxlPyAqLwotCWlmICgh c2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCisJaWYgKCFza2JfcXVldWVf ZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKIAkJbWFzayB8PSBFUE9MTElO IHwgRVBPTExSRE5PUk07CiAKIAkvKiB3cml0YWJsZT8gKi8KZGlmZiAtLWdpdCBhL25ldC9ibHVl dG9vdGgvYWZfYmx1ZXRvb3RoLmMgYi9uZXQvYmx1ZXRvb3RoL2FmX2JsdWV0b290aC5jCmluZGV4 IDhkMTIxOThlYWE5NC4uZWU2MGMzMGYzYmUyIDEwMDY0NAotLS0gYS9uZXQvYmx1ZXRvb3RoL2Fm X2JsdWV0b290aC5jCisrKyBiL25ldC9ibHVldG9vdGgvYWZfYmx1ZXRvb3RoLmMKQEAgLTQ2MCw3 ICs0NjAsNyBAQCBfX3BvbGxfdCBidF9zb2NrX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBzb2NrZXQgKnNvY2ssCiAJaWYgKHNrLT5za19zdGF0ZSA9PSBCVF9MSVNURU4pCiAJCXJldHVy biBidF9hY2NlcHRfcG9sbChzayk7CiAKLQlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2Vt cHR5KCZzay0+c2tfZXJyb3JfcXVldWUpKQorCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVf ZW1wdHlfbG9ja2xlc3MoJnNrLT5za19lcnJvcl9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExFUlIg fAogCQkJKHNvY2tfZmxhZyhzaywgU09DS19TRUxFQ1RfRVJSX1FVRVVFKSA/IEVQT0xMUFJJIDog MCk7CiAKQEAgLTQ3MCw3ICs0NzAsNyBAQCBfX3BvbGxfdCBidF9zb2NrX3BvbGwoc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJaWYgKHNrLT5za19zaHV0ZG93biA9PSBT SFVURE9XTl9NQVNLKQogCQltYXNrIHw9IEVQT0xMSFVQOwogCi0JaWYgKCFza2JfcXVldWVfZW1w dHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVz cygmc2stPnNrX3JlY2VpdmVfcXVldWUpKQogCQltYXNrIHw9IEVQT0xMSU4gfCBFUE9MTFJETk9S TTsKIAogCWlmIChzay0+c2tfc3RhdGUgPT0gQlRfQ0xPU0VEKQpkaWZmIC0tZ2l0IGEvbmV0L2Nh aWYvY2FpZl9zb2NrZXQuYyBiL25ldC9jYWlmL2NhaWZfc29ja2V0LmMKaW5kZXggNDE2NzE3YzU3 Y2QxLi40YjMxZjBhYWE5NmQgMTAwNjQ0Ci0tLSBhL25ldC9jYWlmL2NhaWZfc29ja2V0LmMKKysr IGIvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYwpAQCAtOTUzLDcgKzk1Myw3IEBAIHN0YXRpYyBfX3Bv bGxfdCBjYWlmX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsCiAJCW1hc2sgfD0gRVBPTExSREhVUDsK IAogCS8qIHJlYWRhYmxlPyAqLwotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2 ZV9xdWV1ZSkgfHwKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2Vp dmVfcXVldWUpIHx8CiAJCShzay0+c2tfc2h1dGRvd24gJiBSQ1ZfU0hVVERPV04pKQogCQltYXNr IHw9IEVQT0xMSU4gfCBFUE9MTFJETk9STTsKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdy YW0uYyBiL25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggYTQ4N2RmNTNhNDUzLi5iNjllMGUyOGI4 MjYgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdy YW0uYwpAQCAtODQyLDcgKzg0Miw3IEBAIF9fcG9sbF90IGRhdGFncmFtX3BvbGwoc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJbWFzayA9IDA7CiAKIAkvKiBleGNlcHRp b25hbCBldmVudHM/ICovCi0JaWYgKHNrLT5za19lcnIgfHwgIXNrYl9xdWV1ZV9lbXB0eSgmc2st PnNrX2Vycm9yX3F1ZXVlKSkKKwlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2VtcHR5X2xv Y2tsZXNzKCZzay0+c2tfZXJyb3JfcXVldWUpKQogCQltYXNrIHw9IEVQT0xMRVJSIHwKIAkJCShz b2NrX2ZsYWcoc2ssIFNPQ0tfU0VMRUNUX0VSUl9RVUVVRSkgPyBFUE9MTFBSSSA6IDApOwogCkBA IC04NTIsNyArODUyLDcgQEAgX19wb2xsX3QgZGF0YWdyYW1fcG9sbChzdHJ1Y3QgZmlsZSAqZmls ZSwgc3RydWN0IHNvY2tldCAqc29jaywKIAkJbWFzayB8PSBFUE9MTEhVUDsKIAogCS8qIHJlYWRh YmxlPyAqLwotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCisJ aWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKIAkJ bWFzayB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAKIAkvKiBDb25uZWN0aW9uLWJhc2VkIG5l ZWQgdG8gY2hlY2sgZm9yIHRlcm1pbmF0aW9uIGFuZCBzdGFydHVwICovCmRpZmYgLS1naXQgYS9u ZXQvZGVjbmV0L2FmX2RlY25ldC5jIGIvbmV0L2RlY25ldC9hZl9kZWNuZXQuYwppbmRleCA3ZDZm Zjk4M2JhMmMuLjBlNmYzMmRlZmQ2NyAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9hZl9kZWNuZXQu YworKysgYi9uZXQvZGVjbmV0L2FmX2RlY25ldC5jCkBAIC0xMjEzLDcgKzEyMTMsNyBAQCBzdGF0 aWMgX19wb2xsX3QgZG5fcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29j aywgcG9sbF90YWJsZSAgKndhaQogCXN0cnVjdCBkbl9zY3AgKnNjcCA9IEROX1NLKHNrKTsKIAlf X3BvbGxfdCBtYXNrID0gZGF0YWdyYW1fcG9sbChmaWxlLCBzb2NrLCB3YWl0KTsKIAotCWlmICgh c2tiX3F1ZXVlX2VtcHR5KCZzY3AtPm90aGVyX3JlY2VpdmVfcXVldWUpKQorCWlmICghc2tiX3F1 ZXVlX2VtcHR5X2xvY2tsZXNzKCZzY3AtPm90aGVyX3JlY2VpdmVfcXVldWUpKQogCQltYXNrIHw9 IEVQT0xMUkRCQU5EOwogCiAJcmV0dXJuIG1hc2s7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Au YyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IDYxMWJhMTc0MjY1Yy4uMGU3YmNjMGIzNjQwIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtNTk1LDcgKzU5 NSw3IEBAIF9fcG9sbF90IHRjcF9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0 ICpzb2NrLCBwb2xsX3RhYmxlICp3YWl0KQogCX0KIAkvKiBUaGlzIGJhcnJpZXIgaXMgY291cGxl ZCB3aXRoIHNtcF93bWIoKSBpbiB0Y3BfcmVzZXQoKSAqLwogCXNtcF9ybWIoKTsKLQlpZiAoc2st PnNrX2VyciB8fCAhc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfZXJyb3JfcXVldWUpKQorCWlmIChz ay0+c2tfZXJyIHx8ICFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19lcnJvcl9xdWV1 ZSkpCiAJCW1hc2sgfD0gRVBPTExFUlI7CiAKIAlyZXR1cm4gbWFzazsKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggYzExZWI2YzliNGZmLi44ODc3YmQx NDBhMGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBA IC0yNjUxLDcgKzI2NTEsNyBAQCBfX3BvbGxfdCB1ZHBfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IHNvY2tldCAqc29jaywgcG9sbF90YWJsZSAqd2FpdCkKIAlfX3BvbGxfdCBtYXNrID0g ZGF0YWdyYW1fcG9sbChmaWxlLCBzb2NrLCB3YWl0KTsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBzb2Nr LT5zazsKIAotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZ1ZHBfc2soc2spLT5yZWFkZXJfcXVldWUp KQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZ1ZHBfc2soc2spLT5yZWFkZXJfcXVl dWUpKQogCQltYXNrIHw9IEVQT0xMSU4gfCBFUE9MTFJETk9STTsKIAogCS8qIENoZWNrIGZvciBm YWxzZSBwb3NpdGl2ZXMgZHVlIHRvIGNoZWNrc3VtIGVycm9ycyAqLwpkaWZmIC0tZ2l0IGEvbmV0 L25mYy9sbGNwX3NvY2suYyBiL25ldC9uZmMvbGxjcF9zb2NrLmMKaW5kZXggZTBhMmNiOGEwMjlm Li43ZDc2NjM1MGMwOGUgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvbGxjcF9zb2NrLmMKKysrIGIvbmV0 L25mYy9sbGNwX3NvY2suYwpAQCAtNTY2LDExICs1NjYsMTEgQEAgc3RhdGljIF9fcG9sbF90IGxs Y3Bfc29ja19wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWlm IChzay0+c2tfc3RhdGUgPT0gTExDUF9MSVNURU4pCiAJCXJldHVybiBsbGNwX2FjY2VwdF9wb2xs KHNrKTsKIAotCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVfZW1wdHkoJnNrLT5za19lcnJv cl9xdWV1ZSkpCisJaWYgKHNrLT5za19lcnIgfHwgIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygm c2stPnNrX2Vycm9yX3F1ZXVlKSkKIAkJbWFzayB8PSBFUE9MTEVSUiB8CiAJCQkoc29ja19mbGFn KHNrLCBTT0NLX1NFTEVDVF9FUlJfUVVFVUUpID8gRVBPTExQUkkgOiAwKTsKIAotCWlmICghc2ti X3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCisJaWYgKCFza2JfcXVldWVfZW1w dHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKIAkJbWFzayB8PSBFUE9MTElOIHwg RVBPTExSRE5PUk07CiAKIAlpZiAoc2stPnNrX3N0YXRlID09IExMQ1BfQ0xPU0VEKQpkaWZmIC0t Z2l0IGEvbmV0L3Bob25ldC9zb2NrZXQuYyBiL25ldC9waG9uZXQvc29ja2V0LmMKaW5kZXggMzAx ODc5OTAyNTdmLi4xYWU2Mjk1NDQ0NDQgMTAwNjQ0Ci0tLSBhL25ldC9waG9uZXQvc29ja2V0LmMK KysrIGIvbmV0L3Bob25ldC9zb2NrZXQuYwpAQCAtMzUxLDkgKzM1MSw5IEBAIHN0YXRpYyBfX3Bv bGxfdCBwbl9zb2NrZXRfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29j aywKIAogCWlmIChzay0+c2tfc3RhdGUgPT0gVENQX0NMT1NFKQogCQlyZXR1cm4gRVBPTExFUlI7 Ci0JaWYgKCFza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKKwlpZiAoIXNr Yl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpKQogCQltYXNrIHw9 IEVQT0xMSU4gfCBFUE9MTFJETk9STTsKLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmcG4tPmN0cmxy ZXFfcXVldWUpKQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZwbi0+Y3RybHJlcV9x dWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExQUkk7CiAJaWYgKCFtYXNrICYmIHNrLT5za19zdGF0ZSA9 PSBUQ1BfQ0xPU0VfV0FJVCkKIAkJcmV0dXJuIEVQT0xMSFVQOwpkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCAwYWIzMzlhNDJmOTkuLmQ5MjJj NzhiNmMyOSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29j a2V0LmMKQEAgLTc5MzksNyArNzkzOSw3IEBAIF9fcG9sbF90IHNjdHBfcG9sbChzdHJ1Y3QgZmls ZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywgcG9sbF90YWJsZSAqd2FpdCkKIAltYXNrID0g MDsKIAogCS8qIElzIHRoZXJlIGFueSBleGNlcHRpb25hbCBldmVudHM/ICAqLwotCWlmIChzay0+ c2tfZXJyIHx8ICFza2JfcXVldWVfZW1wdHkoJnNrLT5za19lcnJvcl9xdWV1ZSkpCisJaWYgKHNr LT5za19lcnIgfHwgIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX2Vycm9yX3F1ZXVl KSkKIAkJbWFzayB8PSBFUE9MTEVSUiB8CiAJCQkoc29ja19mbGFnKHNrLCBTT0NLX1NFTEVDVF9F UlJfUVVFVUUpID8gRVBPTExQUkkgOiAwKTsKIAlpZiAoc2stPnNrX3NodXRkb3duICYgUkNWX1NI VVRET1dOKQpAQCAtNzk0OCw3ICs3OTQ4LDcgQEAgX19wb2xsX3Qgc2N0cF9wb2xsKHN0cnVjdCBm aWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBwb2xsX3RhYmxlICp3YWl0KQogCQltYXNr IHw9IEVQT0xMSFVQOwogCiAJLyogSXMgaXQgcmVhZGFibGU/ICBSZWNvbnNpZGVyIHRoaXMgY29k ZSB3aXRoIFRDUC1zdHlsZSBzdXBwb3J0LiAgKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2st PnNrX3JlY2VpdmVfcXVldWUpKQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+ c2tfcmVjZWl2ZV9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJ LyogVGhlIGFzc29jaWF0aW9uIGlzIGVpdGhlciBnb25lIG9yIG5vdCByZWFkeS4gICovCmRpZmYg LS1naXQgYS9uZXQvdGlwYy9zb2NrZXQuYyBiL25ldC90aXBjL3NvY2tldC5jCmluZGV4IDZjOTFm MTIxN2RjZi4uNTg0MWQ2MmZmNTgwIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysg Yi9uZXQvdGlwYy9zb2NrZXQuYwpAQCAtNzMxLDcgKzczMSw3IEBAIHN0YXRpYyBfX3BvbGxfdCB0 aXBjX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCS8qIGZh bGwgdGhydScgKi8KIAljYXNlIFRJUENfTElTVEVOOgogCWNhc2UgVElQQ19DT05ORUNUSU5HOgot CQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQorCQlpZiAoIXNr Yl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpKQogCQkJcmV2ZW50 cyB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAJCWJyZWFrOwogCWNhc2UgVElQQ19PUEVOOgpA QCAtNzM5LDcgKzczOSw3IEBAIHN0YXRpYyBfX3BvbGxfdCB0aXBjX3BvbGwoc3RydWN0IGZpbGUg KmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCQlyZXZlbnRzIHw9IEVQT0xMT1VUOwogCQlp ZiAoIXRpcGNfc2tfdHlwZV9jb25uZWN0aW9ubGVzcyhzaykpCiAJCQlicmVhazsKLQkJaWYgKHNr Yl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQorCQlpZiAoc2tiX3F1ZXVlX2Vt cHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCiAJCQlicmVhazsKIAkJcmV2ZW50 cyB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvbmV0L3Vu aXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZfdW5peC5jCmluZGV4IGY2MDE5MzNhZDcyOC4uMjMx YjZjMDMyZDJjIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMKKysrIGIvbmV0L3VuaXgv YWZfdW5peC5jCkBAIC0yNjYxLDcgKzI2NjEsNyBAQCBzdGF0aWMgX19wb2xsX3QgdW5peF9wb2xs KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBwb2xsX3RhYmxlICp3YQog CQltYXNrIHw9IEVQT0xMUkRIVVAgfCBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAKIAkvKiByZWFk YWJsZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQor CWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCiAJ CW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJLyogQ29ubmVjdGlvbi1iYXNlZCBu ZWVkIHRvIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBhbmQgc3RhcnR1cCAqLwpAQCAtMjY5MCw3ICsy NjkwLDcgQEAgc3RhdGljIF9fcG9sbF90IHVuaXhfZGdyYW1fcG9sbChzdHJ1Y3QgZmlsZSAqZmls ZSwgc3RydWN0IHNvY2tldCAqc29jaywKIAltYXNrID0gMDsKIAogCS8qIGV4Y2VwdGlvbmFsIGV2 ZW50cz8gKi8KLQlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfZXJy b3JfcXVldWUpKQorCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3Mo JnNrLT5za19lcnJvcl9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExFUlIgfAogCQkJKHNvY2tfZmxh ZyhzaywgU09DS19TRUxFQ1RfRVJSX1FVRVVFKSA/IEVQT0xMUFJJIDogMCk7CiAKQEAgLTI3MDAs NyArMjcwMCw3IEBAIHN0YXRpYyBfX3BvbGxfdCB1bml4X2RncmFtX3BvbGwoc3RydWN0IGZpbGUg KmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCW1hc2sgfD0gRVBPTExIVVA7CiAKIAkvKiBy ZWFkYWJsZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUp KQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkp CiAJCW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJLyogQ29ubmVjdGlvbi1iYXNl ZCBuZWVkIHRvIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBhbmQgc3RhcnR1cCAqLwpkaWZmIC0tZ2l0 IGEvbmV0L3Ztd192c29jay9hZl92c29jay5jIGIvbmV0L3Ztd192c29jay9hZl92c29jay5jCmlu ZGV4IDJhNDYxM2IyMzllMC4uYjI3MjRmYjA2YmJiIDEwMDY0NAotLS0gYS9uZXQvdm13X3Zzb2Nr L2FmX3Zzb2NrLmMKKysrIGIvbmV0L3Ztd192c29jay9hZl92c29jay5jCkBAIC04NzMsNyArODcz LDcgQEAgc3RhdGljIF9fcG9sbF90IHZzb2NrX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBzb2NrZXQgKnNvY2ssCiAJCSAqIHRoZSBxdWV1ZSBhbmQgd3JpdGUgYXMgbG9uZyBhcyB0aGUg c29ja2V0IGlzbid0IHNodXRkb3duIGZvcgogCQkgKiBzZW5kaW5nLgogCQkgKi8KLQkJaWYgKCFz a2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSB8fAorCQlpZiAoIXNrYl9xdWV1 ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpIHx8CiAJCSAgICAoc2stPnNr X3NodXRkb3duICYgUkNWX1NIVVRET1dOKSkgewogCQkJbWFzayB8PSBFUE9MTElOIHwgRVBPTExS RE5PUk07CiAJCX0KLS0gCjIuMjAuMQoKCkZyb20gZjc0NTI1MmE4ZWEzM2RiZTJlY2I0NDk1ZTcy OWZkNTE0NWQ5ODA1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIzIE9jdCAyMDE5IDIyOjQ0OjUxIC0w NzAwClN1YmplY3Q6IFtQQVRDSCAyMS8zNl0gbmV0OiB1c2Ugc2tiX3F1ZXVlX2VtcHR5X2xvY2ts ZXNzKCkgaW4gYnVzeSBwb2xsCiBjb250ZXh0cwoKWyBVcHN0cmVhbSBjb21taXQgM2Y5MjZhZjNm NGQ2ODhlMmUxMWU3ZjhlZDA0ZTI3N2ExNGQ0ZDRhNCBdCgpCdXN5IHBvbGxpbmcgdXN1YWxseSBy dW5zIHdpdGhvdXQgbG9ja3MuCkxldCdzIHVzZSBza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoKSBp bnN0ZWFkIG9mIHNrYl9xdWV1ZV9lbXB0eSgpCgpBbHNvIHVzZXMgUkVBRF9PTkNFKCkgaW4gX19z a2JfdHJ5X3JlY3ZfZGF0YWdyYW0oKSB0byBhZGRyZXNzCmEgc2ltaWxhciBwb3RlbnRpYWwgcHJv YmxlbS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfaW8uYyB8IDIgKy0KIG5ldC9jb3Jl L2RhdGFncmFtLmMgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9jb3JlL3NvY2suYyAg ICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY0L3RjcC5jICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9zY3RwL3NvY2tldC5jICAgICAgICAgICAgICAgICAg ICAgICB8IDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfaW8u YyBiL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfaW8uYwppbmRleCBhZmViYmQ4 N2M0YWEuLjE1ODdmNGFjNjgyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vY2hlbHNpby9j aHRscy9jaHRsc19pby5jCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNf aW8uYwpAQCAtMTcxNiw3ICsxNzE2LDcgQEAgaW50IGNodGxzX3JlY3Ztc2coc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4sCiAJCXJldHVybiBwZWVrbXNnKHNr LCBtc2csIGxlbiwgbm9uYmxvY2ssIGZsYWdzKTsKIAogCWlmIChza19jYW5fYnVzeV9sb29wKHNr KSAmJgotCSAgICBza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSAmJgorCSAg ICBza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSAmJgogCSAg ICBzay0+c2tfc3RhdGUgPT0gVENQX0VTVEFCTElTSEVEKQogCQlza19idXN5X2xvb3Aoc2ssIG5v bmJsb2NrKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBiL25ldC9jb3JlL2Rh dGFncmFtLmMKaW5kZXggYjY5ZTBlMjhiODI2Li5kM2I5OTYxNmE2YzUgMTAwNjQ0Ci0tLSBhL25l dC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMjc5LDcgKzI3 OSw3IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl90cnlfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29j ayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCWJyZWFrOwogCiAJCXNrX2J1c3lfbG9vcChz aywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOwotCX0gd2hpbGUgKHNrLT5za19yZWNlaXZlX3F1ZXVl LnByZXYgIT0gKmxhc3QpOworCX0gd2hpbGUgKFJFQURfT05DRShzay0+c2tfcmVjZWl2ZV9xdWV1 ZS5wcmV2KSAhPSAqbGFzdCk7CiAKIAllcnJvciA9IC1FQUdBSU47CiAKZGlmZiAtLWdpdCBhL25l dC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3NvY2suYwppbmRleCA1ZjY1MmRiZTY2YTIuLjZjMTEw NzgyMTc3NiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBiL25ldC9jb3JlL3NvY2su YwpAQCAtMzQ4Myw3ICszNDgzLDcgQEAgYm9vbCBza19idXN5X2xvb3BfZW5kKHZvaWQgKnAsIHVu c2lnbmVkIGxvbmcgc3RhcnRfdGltZSkKIHsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBwOwogCi0JcmV0 dXJuICFza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSB8fAorCXJldHVybiAh c2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkgfHwKIAkgICAg ICAgc2tfYnVzeV9sb29wX3RpbWVvdXQoc2ssIHN0YXJ0X3RpbWUpOwogfQogRVhQT1JUX1NZTUJP TChza19idXN5X2xvb3BfZW5kKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lw djQvdGNwLmMKaW5kZXggMGU3YmNjMGIzNjQwLi42NDdiYTQ0N2JmMWEgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0xOTQ4LDcgKzE5NDgsNyBAQCBp bnQgdGNwX3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVf dCBsZW4sIGludCBub25ibG9jaywKIAlpZiAodW5saWtlbHkoZmxhZ3MgJiBNU0dfRVJSUVVFVUUp KQogCQlyZXR1cm4gaW5ldF9yZWN2X2Vycm9yKHNrLCBtc2csIGxlbiwgYWRkcl9sZW4pOwogCi0J aWYgKHNrX2Nhbl9idXN5X2xvb3Aoc2spICYmIHNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2Vp dmVfcXVldWUpICYmCisJaWYgKHNrX2Nhbl9idXN5X2xvb3Aoc2spICYmIHNrYl9xdWV1ZV9lbXB0 eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpICYmCiAJICAgIChzay0+c2tfc3RhdGUg PT0gVENQX0VTVEFCTElTSEVEKSkKIAkJc2tfYnVzeV9sb29wKHNrLCBub25ibG9jayk7CiAKZGlm ZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggZDky MmM3OGI2YzI5Li5jNzY2MzE1NTI3MjIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisr KyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC04MzM0LDcgKzgzMzQsNyBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqc2N0cF9za2JfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncywKIAkJ aWYgKHNrX2Nhbl9idXN5X2xvb3Aoc2spKSB7CiAJCQlza19idXN5X2xvb3Aoc2ssIG5vYmxvY2sp OwogCi0JCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQorCQkJ aWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKIAkJ CQljb250aW51ZTsKIAkJfQogCi0tIAoyLjIwLjEKCgpGcm9tIGM0ODJjOTliYmFjZDhjOGUyY2Mw ZDliMGUyNTFjN2VkY2RkMDE0MWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMyBPY3QgMjAxOSAyMjo0 NDo1MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMzZdIG5ldDogYWRkIFJFQURfT05DRSgpIGFu bm90YXRpb24gaW4KIF9fc2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cygpCgpbIFVwc3RyZWFtIGNv bW1pdCA3YzQyMmQwY2U5NzU1MmRkZTRhOTdlNjI5MGRlNzBlYzZlZmIwZmM2IF0KCl9fc2tiX3dh aXRfZm9yX21vcmVfcGFja2V0cygpIGNhbiBiZSBjYWxsZWQgd2hpbGUgb3RoZXIgY3B1cwpjYW4g ZmVlZCBwYWNrZXRzIHRvIHRoZSBzb2NrZXQgcmVjZWl2ZSBxdWV1ZS4KCktDU0FOIHJlcG9ydGVk IDoKCkJVRzogS0NTQU46IGRhdGEtcmFjZSBpbiBfX3NrYl93YWl0X2Zvcl9tb3JlX3BhY2tldHMg LyBfX3VkcF9lbnF1ZXVlX3NjaGVkdWxlX3NrYgoKd3JpdGUgdG8gMHhmZmZmODg4MTAyZTQwYjU4 IG9mIDggYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAwOgogX19za2JfaW5zZXJ0IGluY2x1ZGUv bGludXgvc2tidWZmLmg6MTg1MiBbaW5saW5lXQogX19za2JfcXVldWVfYmVmb3JlIGluY2x1ZGUv bGludXgvc2tidWZmLmg6MTk1OCBbaW5saW5lXQogX19za2JfcXVldWVfdGFpbCBpbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjE5OTEgW2lubGluZV0KIF9fdWRwX2VucXVldWVfc2NoZWR1bGVfc2tiKzB4 MmQ3LzB4NDEwIG5ldC9pcHY0L3VkcC5jOjE0NzAKIF9fdWRwX3F1ZXVlX3Jjdl9za2IgbmV0L2lw djQvdWRwLmM6MTk0MCBbaW5saW5lXQogdWRwX3F1ZXVlX3Jjdl9vbmVfc2tiKzB4N2JkLzB4Yzcw IG5ldC9pcHY0L3VkcC5jOjIwNTcKIHVkcF9xdWV1ZV9yY3Zfc2tiKzB4YjUvMHg0MDAgbmV0L2lw djQvdWRwLmM6MjA3NAogdWRwX3VuaWNhc3RfcmN2X3NrYi5pc3JhLjArMHg3ZS8weDFjMCBuZXQv aXB2NC91ZHAuYzoyMjMzCiBfX3VkcDRfbGliX3JjdisweGE0NC8weDE3YzAgbmV0L2lwdjQvdWRw LmM6MjMwMAogdWRwX3JjdisweDJiLzB4NDAgbmV0L2lwdjQvdWRwLmM6MjQ3MAogaXBfcHJvdG9j b2xfZGVsaXZlcl9yY3UrMHg0ZC8weDQyMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjIwNAogaXBfbG9j YWxfZGVsaXZlcl9maW5pc2grMHgxMTAvMHgxNDAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMzEKIE5G X0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5j bHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0KIGlwX2xvY2FsX2RlbGl2ZXIrMHgx MzMvMHgyMTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTIKIGRzdF9pbnB1dCBpbmNsdWRlL25ldC9k c3QuaDo0NDIgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHgxMjEvMHgxNjAgbmV0L2lwdjQvaXBf aW5wdXQuYzo0MTMKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUgW2lubGlu ZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0KIGlwX3Jj disweDE4Zi8weDFhMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjUyMwogX19uZXRpZl9yZWNlaXZlX3Nr Yl9vbmVfY29yZSsweGE3LzB4ZTAgbmV0L2NvcmUvZGV2LmM6NTAxMAogX19uZXRpZl9yZWNlaXZl X3NrYisweDM3LzB4ZjAgbmV0L2NvcmUvZGV2LmM6NTEyNAogcHJvY2Vzc19iYWNrbG9nKzB4MWQz LzB4NDIwIG5ldC9jb3JlL2Rldi5jOjU5NTUKCnJlYWQgdG8gMHhmZmZmODg4MTAyZTQwYjU4IG9m IDggYnl0ZXMgYnkgdGFzayAxMzAzNSBvbiBjcHUgMToKIF9fc2tiX3dhaXRfZm9yX21vcmVfcGFj a2V0cysweGZhLzB4MzIwIG5ldC9jb3JlL2RhdGFncmFtLmM6MTAwCiBfX3NrYl9yZWN2X3VkcCsw eDM3NC8weDUwMCBuZXQvaXB2NC91ZHAuYzoxNjgzCiB1ZHBfcmVjdm1zZysweGUxLzB4YjEwIG5l dC9pcHY0L3VkcC5jOjE3MTIKIGluZXRfcmVjdm1zZysweGJiLzB4MjUwIG5ldC9pcHY0L2FmX2lu ZXQuYzo4MzgKIHNvY2tfcmVjdm1zZ19ub3NlYysweDVjLzB4NzAgbmV0L3NvY2tldC5jOjg3MQog X19fc3lzX3JlY3Ztc2crMHgxYTAvMHgzZTAgbmV0L3NvY2tldC5jOjI0ODAKIGRvX3JlY3ZtbXNn KzB4MTlhLzB4NWMwIG5ldC9zb2NrZXQuYzoyNjAxCiBfX3N5c19yZWN2bW1zZysweDFlZi8weDIw MCBuZXQvc29ja2V0LmM6MjY4MAogX19kb19zeXNfcmVjdm1tc2cgbmV0L3NvY2tldC5jOjI3MDMg W2lubGluZV0KIF9fc2Vfc3lzX3JlY3ZtbXNnIG5ldC9zb2NrZXQuYzoyNjk2IFtpbmxpbmVdCiBf X3g2NF9zeXNfcmVjdm1tc2crMHg4OS8weGIwIG5ldC9zb2NrZXQuYzoyNjk2CiBkb19zeXNjYWxs XzY0KzB4Y2MvMHgzNzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkwCiBlbnRyeV9TWVNDQUxM XzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpSZXBvcnRlZCBieSBLZXJuZWwgQ29uY3VycmVu Y3kgU2FuaXRpemVyIG9uOgpDUFU6IDEgUElEOiAxMzAzNSBDb21tOiBzeXotZXhlY3V0b3IuMyBO b3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29t cHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDEx CgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGF0 YWdyYW0uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMgYi9uZXQvY29yZS9kYXRhZ3Jh bS5jCmluZGV4IGQzYjk5NjE2YTZjNS4uODY1YThjYjdiMGJkIDEwMDY0NAotLS0gYS9uZXQvY29y ZS9kYXRhZ3JhbS5jCisrKyBiL25ldC9jb3JlL2RhdGFncmFtLmMKQEAgLTk1LDcgKzk1LDcgQEAg aW50IF9fc2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cyhzdHJ1Y3Qgc29jayAqc2ssIGludCAqZXJy LCBsb25nICp0aW1lb19wLAogCWlmIChlcnJvcikKIAkJZ290byBvdXRfZXJyOwogCi0JaWYgKHNr LT5za19yZWNlaXZlX3F1ZXVlLnByZXYgIT0gc2tiKQorCWlmIChSRUFEX09OQ0Uoc2stPnNrX3Jl Y2VpdmVfcXVldWUucHJldikgIT0gc2tiKQogCQlnb3RvIG91dDsKIAogCS8qIFNvY2tldCBzaHV0 IGRvd24/ICovCi0tIAoyLjIwLjEKCgpGcm9tIDFjMDQ1ZjIyYTY0MmNiYzE1MWJiZmNjZjU3OWQ1 NTE4OGU3NmQ5MDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxw YWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogU2F0LCAyNiBPY3QgMjAxOSAxMTo1MzozOSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMjMvMzZdIGlwdjQ6IGZpeCByb3V0ZSB1cGRhdGUgb24gbWV0cmljIGNo YW5nZS4KClsgVXBzdHJlYW0gY29tbWl0IDBiODM0YmEwMGFiNTMzN2U5MzhjNzI3ZTIxNmUxZjUy NDk3OTQ3MTcgXQoKU2luY2UgY29tbWl0IGFmNGQ3NjhhZDI4YyAoIm5ldC9pcHY0OiBBZGQgc3Vw cG9ydCBmb3Igc3BlY2lmeWluZyBtZXRyaWMKb2YgY29ubmVjdGVkIHJvdXRlcyIpLCB3aGVuIHVw ZGF0aW5nIGFuIElQIGFkZHJlc3Mgd2l0aCBhIGRpZmZlcmVudCBtZXRyaWMsCnRoZSBhc3NvY2lh dGVkIGNvbm5lY3RlZCByb3V0ZSBpcyB1cGRhdGVkLCB0b28uCgpTdGlsbCwgdGhlIG1lbnRpb25l ZCBjb21taXQgZG9lc24ndCBoYW5kbGUgcHJvcGVybHkgc29tZSBjb3JuZXIgY2FzZXM6CgokIGlw IGFkZHIgYWRkIGRldiBldGgwIDE5Mi4xNjguMS4wLzI0CiQgaXAgYWRkciBhZGQgZGV2IGV0aDAg MTkyLjE2OC4yLjEvMzIgcGVlciAxOTIuMTY4LjIuMgokIGlwIGFkZHIgYWRkIGRldiBldGgwIDE5 Mi4xNjguMy4xLzI0CiQgaXAgYWRkciBjaGFuZ2UgZGV2IGV0aDAgMTkyLjE2OC4xLjAvMjQgbWV0 cmljIDEwCiQgaXAgYWRkciBjaGFuZ2UgZGV2IGV0aDAgMTkyLjE2OC4yLjEvMzIgcGVlciAxOTIu MTY4LjIuMiBtZXRyaWMgMTAKJCBpcCBhZGRyIGNoYW5nZSBkZXYgZXRoMCAxOTIuMTY4LjMuMS8y NCBtZXRyaWMgMTAKJCBpcCAtNCByb3V0ZQoxOTIuMTY4LjEuMC8yNCBkZXYgZXRoMCBwcm90byBr ZXJuZWwgc2NvcGUgbGluayBzcmMgMTkyLjE2OC4xLjAKMTkyLjE2OC4yLjIgZGV2IGV0aDAgcHJv dG8ga2VybmVsIHNjb3BlIGxpbmsgc3JjIDE5Mi4xNjguMi4xCjE5Mi4xNjguMy4wLzI0IGRldiBl dGgwIHByb3RvIGtlcm5lbCBzY29wZSBsaW5rIHNyYyAxOTIuMTY4LjIuMSBtZXRyaWMgMTAKCk9u bHkgdGhlIGxhc3Qgcm91dGUgaXMgY29ycmVjdGx5IHVwZGF0ZWQuCgpUaGUgcHJvYmxlbSBpcyB0 aGUgY3VycmVudCB0ZXN0IGluIGZpYl9tb2RpZnlfcHJlZml4X21ldHJpYygpOgoKCWlmICghKGRl di0+ZmxhZ3MgJiBJRkZfVVApIHx8CgkgICAgaWZhLT5pZmFfZmxhZ3MgJiAoSUZBX0ZfU0VDT05E QVJZIHwgSUZBX0ZfTk9QUkVGSVhST1VURSkgfHwKCSAgICBpcHY0X2lzX3plcm9uZXQocHJlZml4 KSB8fAoJICAgIHByZWZpeCA9PSBpZmEtPmlmYV9sb2NhbCB8fCBpZmEtPmlmYV9wcmVmaXhsZW4g PT0gMzIpCgpXaGljaCBzaG91bGQgYmUgdGhlIGxvZ2ljYWwgJ25vdCcgb2YgdGhlIHByZS1leGlz dGluZyB0ZXN0IGluCmZpYl9hZGRfaWZhZGRyKCk6CgoJaWYgKCFpcHY0X2lzX3plcm9uZXQocHJl Zml4KSAmJiAhKGlmYS0+aWZhX2ZsYWdzICYgSUZBX0ZfU0VDT05EQVJZKSAmJgoJICAgIChwcmVm aXggIT0gYWRkciB8fCBpZmEtPmlmYV9wcmVmaXhsZW4gPCAzMikpCgpUbyBwcm9wZXJseSBuZWdh dGUgdGhlIG9yaWdpbmFsIGV4cHJlc3Npb24sIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBsYXN0Cmxv Z2ljYWwgJ29yJyB0byBhIGxvZ2ljYWwgJ2FuZCcuCgpGaXhlczogYWY0ZDc2OGFkMjhjICgibmV0 L2lwdjQ6IEFkZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIG1ldHJpYyBvZiBjb25uZWN0ZWQgcm91 dGVzIikKUmVwb3J0ZWQtYW5kLXN1Z2dlc3RlZC1ieTogQmVuaWFtaW5vIEdhbHZhbmkgPGJnYWx2 YW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0 LmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2ZpYl9mcm9udGVuZC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgYi9u ZXQvaXB2NC9maWJfZnJvbnRlbmQuYwppbmRleCBkYWU3NDNiNjQ5YzEuLjdmNGVjMzZlNWY3MCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0L2lwdjQvZmliX2Zy b250ZW5kLmMKQEAgLTk0Niw3ICs5NDYsNyBAQCB2b2lkIGZpYl9tb2RpZnlfcHJlZml4X21ldHJp YyhzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHUzMiBuZXdfbWV0cmljKQogCWlmICghKGRldi0+Zmxh Z3MgJiBJRkZfVVApIHx8CiAJICAgIGlmYS0+aWZhX2ZsYWdzICYgKElGQV9GX1NFQ09OREFSWSB8 IElGQV9GX05PUFJFRklYUk9VVEUpIHx8CiAJICAgIGlwdjRfaXNfemVyb25ldChwcmVmaXgpIHx8 Ci0JICAgIHByZWZpeCA9PSBpZmEtPmlmYV9sb2NhbCB8fCBpZmEtPmlmYV9wcmVmaXhsZW4gPT0g MzIpCisJICAgIChwcmVmaXggPT0gaWZhLT5pZmFfbG9jYWwgJiYgaWZhLT5pZmFfcHJlZml4bGVu ID09IDMyKSkKIAkJcmV0dXJuOwogCiAJLyogYWRkIHRoZSBuZXcgKi8KLS0gCjIuMjAuMQoKCkZy b20gNjg5Mzk1YmVkY2RjZDExZDBjZThjYTBmM2RkOTQ0ZTRjMDAyZmFlZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBT YXQsIDI2IE9jdCAyMDE5IDExOjUzOjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNC8zNl0gc2Vs ZnRlc3RzOiBmaWJfdGVzdHM6IGFkZCBtb3JlIHRlc3RzIGZvciBtZXRyaWMgdXBkYXRlCgpbIFVw c3RyZWFtIGNvbW1pdCAzN2RlM2IzNTQxNTA0NTBiYTEyMjc1Mzk3MTU1ZTY4MTEzZTk5OTAxIF0K ClRoaXMgcGF0Y2ggYWRkcyB0d28gbW9yZSB0ZXN0cyB0byBpcHY0X2FkZHJfbWV0cmljX3Rlc3Qo KSB0bwpleHBsaWNpdGx5IGNvdmVyIHRoZSBzY2VuYXJpb3MgZml4ZWQgYnkgdGhlIHByZXZpb3Vz IHBhdGNoLgoKU3VnZ2VzdGVkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6 IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L25ldC9maWJfdGVzdHMuc2ggfCAyMSArKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFu Z2VkLCAyMSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvbmV0L2ZpYl90ZXN0cy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfdGVz dHMuc2gKaW5kZXggMmYxOTBhYThmYzVmLi5jMDg4NWZiNjU3NjcgMTAwNzU1Ci0tLSBhL3Rvb2xz L3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfdGVzdHMuc2gKKysrIGIvdG9vbHMvdGVzdGluZy9z ZWxmdGVzdHMvbmV0L2ZpYl90ZXN0cy5zaApAQCAtMTMwMSw2ICsxMzAxLDI3IEBAIGlwdjRfYWRk cl9tZXRyaWNfdGVzdCgpCiAJZmkKIAlsb2dfdGVzdCAkcmMgMCAiUHJlZml4IHJvdXRlIHdpdGgg bWV0cmljIG9uIGxpbmsgdXAiCiAKKwkjIGV4cGxpY2l0bHkgY2hlY2sgZm9yIG1ldHJpYyBjaGFu Z2VzIG9uIGVkZ2Ugc2NlbmFyaW9zCisJcnVuX2NtZCAiJElQIGFkZHIgZmx1c2ggZGV2IGR1bW15 MiIKKwlydW5fY21kICIkSVAgYWRkciBhZGQgZGV2IGR1bW15MiAxNzIuMTYuMTA0LjAvMjQgbWV0 cmljIDI1OSIKKwlydW5fY21kICIkSVAgYWRkciBjaGFuZ2UgZGV2IGR1bW15MiAxNzIuMTYuMTA0 LjAvMjQgbWV0cmljIDI2MCIKKwlyYz0kPworCWlmIFsgJHJjIC1lcSAwIF07IHRoZW4KKwkJY2hl Y2tfcm91dGUgIjE3Mi4xNi4xMDQuMC8yNCBkZXYgZHVtbXkyIHByb3RvIGtlcm5lbCBzY29wZSBs aW5rIHNyYyAxNzIuMTYuMTA0LjAgbWV0cmljIDI2MCIKKwkJcmM9JD8KKwlmaQorCWxvZ190ZXN0 ICRyYyAwICJNb2RpZnkgbWV0cmljIG9mIC4wLzI0IGFkZHJlc3MiCisKKwlydW5fY21kICIkSVAg YWRkciBmbHVzaCBkZXYgZHVtbXkyIgorCXJ1bl9jbWQgIiRJUCBhZGRyIGFkZCBkZXYgZHVtbXky IDE3Mi4xNi4xMDQuMS8zMiBwZWVyIDE3Mi4xNi4xMDQuMiBtZXRyaWMgMjYwIgorCXJ1bl9jbWQg IiRJUCBhZGRyIGNoYW5nZSBkZXYgZHVtbXkyIDE3Mi4xNi4xMDQuMS8zMiBwZWVyIDE3Mi4xNi4x MDQuMiBtZXRyaWMgMjYxIgorCXJjPSQ/CisJaWYgWyAkcmMgLWVxIDAgXTsgdGhlbgorCQljaGVj a19yb3V0ZSAiMTcyLjE2LjEwNC4yIGRldiBkdW1teTIgcHJvdG8ga2VybmVsIHNjb3BlIGxpbmsg c3JjIDE3Mi4xNi4xMDQuMSBtZXRyaWMgMjYxIgorCQlyYz0kPworCWZpCisJbG9nX3Rlc3QgJHJj IDAgIk1vZGlmeSBtZXRyaWMgb2YgYWRkcmVzcyB3aXRoIHBlZXIgcm91dGUiCisKIAkkSVAgbGkg ZGVsIGR1bW15MQogCSRJUCBsaSBkZWwgZHVtbXkyCiAJY2xlYW51cAotLSAKMi4yMC4xCgoKRnJv bSA2MDg0YmMxN2Q0ZmM4ZDI4YTFjYzI3OTI4NmY3OGQwMDY0ZjE0YzkxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBNaWtpdHlhbnNraXkgPG1heGltbWlAbWVsbGFub3guY29t PgpEYXRlOiBNb24sIDE2IFNlcCAyMDE5IDE0OjU0OjIwICswMzAwClN1YmplY3Q6IFtQQVRDSCAy NS8zNl0gbmV0L21seDVlOiBGaXggaGFuZGxpbmcgb2YgY29tcHJlc3NlZCBDUUVzIGluIGNhc2Ug b2YKIGxvdyBOQVBJIGJ1ZGdldAoKWyBVcHN0cmVhbSBjb21taXQgOWRmODZiZGI2NzQ2ZDdmY2Zj MmZkYTcxNWY3YTdjM2QwZGRiMjY1NCBdCgpXaGVuIENRRSBjb21wcmVzc2lvbiBpcyBlbmFibGVk LCBjb21wcmVzc2VkIENRRXMgdXNlIHRoZSBmb2xsb3dpbmcKc3RydWN0dXJlOiBhIHRpdGxlIGlz IGZvbGxvd2VkIGJ5IG9uZSBvciBtYW55IGJsb2NrcywgZWFjaCBjb250YWluaW5nIDgKbWluaSBD UUVzIChleGNlcHQgdGhlIGxhc3QsIHdoaWNoIG1heSBjb250YWluIGZld2VyIG1pbmkgQ1FFcyku CgpEdWUgdG8gTkFQSSBidWRnZXQgcmVzdHJpY3Rpb24sIGEgY29tcGxldGUgc3RydWN0dXJlIGlz IG5vdCBhbHdheXMKcGFyc2VkIGluIG9uZSBOQVBJIHJ1biwgYW5kIHNvbWUgYmxvY2tzIHdpdGgg bWluaSBDUUVzIG1heSBiZSBkZWZlcnJlZAp0byB0aGUgbmV4dCBOQVBJIHBvbGwgY2FsbCAtIHdl IGhhdmUgdGhlIG1seDVlX2RlY29tcHJlc3NfY3Flc19jb250IGNhbGwKaW4gdGhlIGJlZ2lubmlu ZyBvZiBtbHg1ZV9wb2xsX3J4X2NxLiBIb3dldmVyLCBpZiB0aGUgYnVkZ2V0IGlzCmV4dHJlbWVs eSBsb3csIHNvbWUgYmxvY2tzIG1heSBiZSBsZWZ0IGV2ZW4gYWZ0ZXIgdGhhdCwgYnV0IHRoZSBj b2RlCnRoYXQgZm9sbG93cyB0aGUgbWx4NWVfZGVjb21wcmVzc19jcWVzX2NvbnQgY2FsbCBkb2Vz bid0IGNoZWNrIGl0IGFuZAphc3N1bWVzIHRoYXQgYSBuZXcgQ1FFIGJlZ2lucywgd2hpY2ggbWF5 IG5vdCBiZSB0aGUgY2FzZS4gSW4gc3VjaCBjYXNlcywKcmFuZG9tIG1lbW9yeSBjb3JydXB0aW9u cyBvY2N1ci4KCkFuIGV4dHJlbWVseSBsb3cgTkFQSSBidWRnZXQgb2YgOCBpcyB1c2VkIHdoZW4g YnVzeV9wb2xsIG9yIGJ1c3lfcmVhZCBpcwphY3RpdmUuCgpUaGlzIGNvbW1pdCBhZGRzIGEgY2hl Y2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHByZXZpb3VzIGNvbXByZXNzZWQgQ1FFCmhhcyBiZWVu IGNvbXBsZXRlbHkgcGFyc2VkIGFmdGVyIG1seDVlX2RlY29tcHJlc3NfY3Flc19jb250LCBvdGhl cndpc2UKaXQgcHJldmVudHMgYSBuZXcgQ1FFIGZyb20gYmVpbmcgZmV0Y2hlZCBpbiB0aGUgbWlk ZGxlIG9mIGEgY29tcHJlc3NlZApDUUUuCgpUaGlzIGNvbW1pdCBmaXhlcyByYW5kb20gY3Jhc2hl cyBpbiBfX2J1aWxkX3NrYiwgX19wYWdlX3Bvb2xfcHV0X3BhZ2UKYW5kIG90aGVyIG5vdC1yZWxh dGVkLWRpcmVjdGx5IHBsYWNlcywgdGhhdCB1c2VkIHRvIGhhcHBlbiB3aGVuIGJvdGggQ1FFCmNv bXByZXNzaW9uIGFuZCBidXN5X3BvbGwvYnVzeV9yZWFkIHdlcmUgZW5hYmxlZC4KCkZpeGVzOiA3 MjE5YWIzNGYxODQgKCJuZXQvbWx4NWU6IENRRSBjb21wcmVzc2lvbiIpClNpZ25lZC1vZmYtYnk6 IE1heGltIE1pa2l0eWFuc2tpeSA8bWF4aW1taUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKaW5kZXggZGY0OWRjMTQzYzQ3Li45Y2Jj NDE3Mzk3M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9yeC5jCkBAIC0xMjY3LDggKzEyNjcsMTEgQEAgaW50IG1seDVlX3BvbGxfcnhfY3Eoc3Ry dWN0IG1seDVlX2NxICpjcSwgaW50IGJ1ZGdldCkKIAlpZiAodW5saWtlbHkoIXRlc3RfYml0KE1M WDVFX1JRX1NUQVRFX0VOQUJMRUQsICZycS0+c3RhdGUpKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAo Y3EtPmRlY21wcnNfbGVmdCkKKwlpZiAoY3EtPmRlY21wcnNfbGVmdCkgewogCQl3b3JrX2RvbmUg Kz0gbWx4NWVfZGVjb21wcmVzc19jcWVzX2NvbnQocnEsIGNxLCAwLCBidWRnZXQpOworCQlpZiAo Y3EtPmRlY21wcnNfbGVmdCB8fCB3b3JrX2RvbmUgPj0gYnVkZ2V0KQorCQkJZ290byBvdXQ7CisJ fQogCiAJY3FlID0gbWx4NV9jcXdxX2dldF9jcWUoJmNxLT53cSk7CiAJaWYgKCFjcWUpIHsKLS0g CjIuMjAuMQoKCkZyb20gMmQzNWJkYzFhMjE4MzRhNjI1OGMzNWI0MTYwNTA1NDAwZjQzNmJhZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQx QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxIE5vdiAyMDE5IDAwOjEwOjIxICswMTAwClN1YmplY3Q6 IFtQQVRDSCAyNi8zNl0gcjgxNjk6IGZpeCB3cm9uZyBQSFkgSUQgaXNzdWUgd2l0aCBSVEw4MTY4 ZHAKClsgVXBzdHJlYW0gY29tbWl0IDYyYmRjOGZkMWMyMWQ0MjYzZWJkMThiZWM1N2Y4MjUzMmQw OTI0OWYgXQoKQXMgcmVwb3J0ZWQgaW4gWzBdIGF0IGxlYXN0IG9uZSBSVEw4MTY4ZHAgdmVyc2lv biBoYXMgcHJvYmxlbXMKZXN0YWJsaXNoaW5nIGEgbGluay4gVGhpcyBjaGlwIHZlcnNpb24gaGFz IGFuIGludGVncmF0ZWQgUlRMODIxMWIgUEhZLApob3dldmVyIHRoZSBjaGlwIHNlZW1zIHRvIHJl cG9ydCBhIHdyb25nIFBIWSBJRCwgcmVzdWx0aW5nIGluIGEgd3JvbmcKUEhZIGRyaXZlciAoZm9y IEdlbmVyaWMgUmVhbHRlayBQSFkpIGJlaW5nIGxvYWRlZC4KV29yayBhcm91bmQgdGhpcyBpc3N1 ZSBieSBhZGRpbmcgYSBob29rIHRvIHI4MTY4ZHBfMl9tZGlvX3JlYWQoKQpmb3IgcmV0dXJuaW5n IHRoZSBjb3JyZWN0IFBIWSBJRC4KClswXSBodHRwczovL2Jicy5hcmNobGludXgub3JnL3ZpZXd0 b3BpYy5waHA/aWQ9MjQ2NTA4CgpGaXhlczogMjQyY2Q5YjU4NjZhICgicjgxNjk6IHVzZSBwaHlf cmVzdW1lL3BoeV9zdXNwZW5kIikKU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2Fs bHdlaXQxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyB8 IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3JlYWx0ZWsvcjgxNjkuYwppbmRleCAwYzhiNzE0NjYzN2UuLjRhYjg3ZmU4NDU0MiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtMTAxMCw2ICsxMDEwLDEwIEBAIHN0YXRp YyBpbnQgcjgxNjhkcF8yX21kaW9fcmVhZChzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCwgaW50 IHJlZykKIHsKIAlpbnQgdmFsdWU7CiAKKwkvKiBXb3JrIGFyb3VuZCBpc3N1ZSB3aXRoIGNoaXAg cmVwb3J0aW5nIHdyb25nIFBIWSBJRCAqLworCWlmIChyZWcgPT0gTUlJX1BIWVNJRDIpCisJCXJl dHVybiAweGM5MTI7CisKIAlyODE2OGRwXzJfbWRpb19zdGFydCh0cCk7CiAKIAl2YWx1ZSA9IHI4 MTY5X21kaW9fcmVhZCh0cCwgcmVnKTsKLS0gCjIuMjAuMQoKCkZyb20gZGMwMjJmODBjMTc0ODVm ZjY2NzQ1YWEzMGJlMzY4MDYwYzk4ZTc5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAyIE9jdCAyMDE5IDE2OjUz OjIxICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNy8zNl0gbmV0L21seDVlOiBGaXggZXRodG9vbCBz ZWxmIHRlc3Q6IGxpbmsgc3BlZWQKClsgVXBzdHJlYW0gY29tbWl0IDUzNGU3MzY2ZjQxYjBjNjg5 YjAxYWY0Mzc1YWVmY2QxNDYyYWRlZGYgXQoKRXRodG9vbCBzZWxmIHRlc3QgY29udGFpbnMgYSB0 ZXN0IGZvciBsaW5rIHNwZWVkLiBUaGlzIHRlc3QgcmVhZHMgdGhlClBUWVMgcmVnaXN0ZXIgYW5k IGRldGVybWluZXMgd2hldGhlciB0aGUgY3VycmVudCBzcGVlZCBpcyB2YWxpZCBvciBub3QuCkNo YW5nZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSB0aGUgZnVuY3Rpb24gbWx4NWVfcG9y dF9saW5rc3BlZWQoKQp0aGF0IGRvZXMgdGhlIHNhbWUgY2hlY2sgYW5kIGZhaWxzIHdoZW4gc3Bl ZWQgaXMgaW52YWxpZC4gVGhpcyBjb2RlCnJlZHVuZGFuY3kgbGVhZCB0byBhIGJ1ZyB3aGVuIG1s eDVlX3BvcnRfbGlua3NwZWVkKCkgd2FzIHVwZGF0ZWQgd2l0aApleHBlbmRlZCBzcGVlZHMgYW5k IHRoZSBzZWxmIHRlc3Qgd2FzIG5vdC4KCkZpeGVzOiAyYzgxYmZkNWFlNTYgKCJuZXQvbWx4NWU6 IE1vdmUgcG9ydCBzcGVlZCBjb2RlIGZyb20gZW5fZXRodG9vbC5jIHRvIGVuL3BvcnQuYyIpClNp Z25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBN b3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3NlbGZ0ZXN0LmMgfCAxNSArKystLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3NlbGZ0ZXN0LmMKaW5kZXgg NDM4MmVmODU0ODhjLi41ZmIwODhiNTRlNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zZWxmdGVzdC5jCkBAIC0zNSw2ICszNSw3IEBA CiAjaW5jbHVkZSA8bGludXgvdWRwLmg+CiAjaW5jbHVkZSA8bmV0L3VkcC5oPgogI2luY2x1ZGUg ImVuLmgiCisjaW5jbHVkZSAiZW4vcG9ydC5oIgogCiBlbnVtIHsKIAlNTFg1RV9TVF9MSU5LX1NU QVRFLApAQCAtODAsMjIgKzgxLDEyIEBAIHN0YXRpYyBpbnQgbWx4NWVfdGVzdF9saW5rX3N0YXRl KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IG1seDVlX3Rlc3RfbGlua19z cGVlZChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIHsKLQl1MzIgb3V0W01MWDVfU1RfU1pfRFco cHR5c19yZWcpXTsKLQl1MzIgZXRoX3Byb3RvX29wZXI7Ci0JaW50IGk7CisJdTMyIHNwZWVkOwog CiAJaWYgKCFuZXRpZl9jYXJyaWVyX29rKHByaXYtPm5ldGRldikpCiAJCXJldHVybiAxOwogCi0J aWYgKG1seDVfcXVlcnlfcG9ydF9wdHlzKHByaXYtPm1kZXYsIG91dCwgc2l6ZW9mKG91dCksIE1M WDVfUFRZU19FTiwgMSkpCi0JCXJldHVybiAxOwotCi0JZXRoX3Byb3RvX29wZXIgPSBNTFg1X0dF VChwdHlzX3JlZywgb3V0LCBldGhfcHJvdG9fb3Blcik7Ci0JZm9yIChpID0gMDsgaSA8IE1MWDVF X0xJTktfTU9ERVNfTlVNQkVSOyBpKyspIHsKLQkJaWYgKGV0aF9wcm90b19vcGVyICYgTUxYNUVf UFJPVF9NQVNLKGkpKQotCQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAxOworCXJldHVybiBtbHg1 ZV9wb3J0X2xpbmtzcGVlZChwcml2LT5tZGV2LCAmc3BlZWQpOwogfQogCiBzdHJ1Y3QgbWx4NWVo ZHIgewotLSAKMi4yMC4xCgoKRnJvbSA1ODhjMmU0NjA2ZWVmNGExYjg3ODA5NTRiYTYzMzgxNmNj OWIyODFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxm LmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA1IE9jdCAyMDE5IDE1OjA1OjE4IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAyOC8zNl0gbmV0OiBkc2E6IGI1MzogRG8gbm90IGNsZWFyIGV4aXN0 aW5nIG1pcnJvcmVkIHBvcnQgbWFzawoKWyBVcHN0cmVhbSBjb21taXQgYzc2M2FjNDM2YjY2OGQ3 NDE3ZjA5Nzk0MzBlYzAzMTJlZGU0MDkzZCBdCgpDbGVhcmluZyB0aGUgZXhpc3RpbmcgYml0bWFz ayBvZiBtaXJyb3JlZCBwb3J0cyBlc3NlbnRpYWxseSBwcmV2ZW50cyB1cwpmcm9tIGNhcHR1cmlu ZyBtb3JlIHRoYW4gb25lIHBvcnQgYXQgYW55IGdpdmVuIHRpbWUuIFRoaXMgaXMgY2xlYXJseQp3 cm9uZywgZG8gbm90IGNsZWFyIHRoZSBiaXRtYXNrIHByaW9yIHRvIHNldHRpbmcgdXAgdGhlIG5l dyBwb3J0LgoKUmVwb3J0ZWQtYnk6IEh1YmVydCBGZXVyc3RlaW4gPGguZmV1cnN0ZWluQGdtYWls LmNvbT4KRml4ZXM6IGVkM2FmNWZkMDhlYiAoIm5ldDogZHNhOiBiNTM6IEFkZCBzdXBwb3J0IGZv ciBwb3J0IG1pcnJvcmluZyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVml2aWVuIERpZGVsb3QgPHZpdmllbi5kaWRl bG90QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9iNTMvYjUzX2NvbW1vbi5jIHwgMSAtCiAx IGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Rz YS9iNTMvYjUzX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfY29tbW9uLmMKaW5k ZXggYWQ1MzRiOTBlZjIxLi4yZDNhMmNiMDI2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2Rz YS9iNTMvYjUzX2NvbW1vbi5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9iNTMvYjUzX2NvbW1vbi5j CkBAIC0xNTg0LDcgKzE1ODQsNiBAQCBpbnQgYjUzX21pcnJvcl9hZGQoc3RydWN0IGRzYV9zd2l0 Y2ggKmRzLCBpbnQgcG9ydCwKIAkJbG9jID0gQjUzX0VHX01JUl9DVEw7CiAKIAliNTNfcmVhZDE2 KGRldiwgQjUzX01HTVRfUEFHRSwgbG9jLCAmcmVnKTsKLQlyZWcgJj0gfk1JUlJPUl9NQVNLOwog CXJlZyB8PSBCSVQocG9ydCk7CiAJYjUzX3dyaXRlMTYoZGV2LCBCNTNfTUdNVF9QQUdFLCBsb2Ms IHJlZyk7CiAKLS0gCjIuMjAuMQoKCkZyb20gODY3NDY2NDExNmJjZDI1ODI1NDUwZDAyZTE4MWRj MjRlODE4ZGUyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRG91ZyBCZXJnZXIgPG9w ZW5kbWJAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE2IE9jdCAyMDE5IDE2OjA2OjI5IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAyOS8zNl0gbmV0OiBiY21nZW5ldDogZG9uJ3Qgc2V0IHBoeWRldi0+bGlu ayBmcm9tIE1BQwoKWyBVcHN0cmVhbSBjb21taXQgN2RlNDg0MDJmYWEzMjI5OGMzNTUxZWEzMmM3 NmNjYjRmOWQzMDI1ZCBdCgpXaGVuIGNvbW1pdCAyOGIyZTBkMmNkMTMgKCJuZXQ6IHBoeTogcmVt b3ZlIHBhcmFtZXRlciBuZXdfbGluayBmcm9tCnBoeV9tYWNfaW50ZXJydXB0KCkiKSByZW1vdmVk IHRoZSBuZXdfbGluayBwYXJhbWV0ZXIgaXQgc2V0IHRoZQpwaHlkZXYtPmxpbmsgc3RhdGUgZnJv bSB0aGUgTUFDIGJlZm9yZSBpbnZva2luZyBwaHlfbWFjX2ludGVycnVwdCgpLgoKSG93ZXZlciwg b25jZSBjb21taXQgODhkNjI3MmFjYWFhICgibmV0OiBwaHk6IGF2b2lkIHVubmVlZGVkIE1ESU8K cmVhZHMgaW4gZ2VucGh5X3JlYWRfc3RhdHVzIikgd2FzIGFkZGVkIHRoaXMgaW5pdGlhbGl6YXRp b24gcHJldmVudHMKdGhlIHByb3BlciBkZXRlcm1pbmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uIHBh cmFtZXRlcnMgYnkgdGhlIGZ1bmN0aW9uCmdlbnBoeV9yZWFkX3N0YXR1cygpLgoKVGhpcyBjb21t aXQgcmVtb3ZlcyB0aGF0IGluaXRpYWxpemF0aW9uIHRvIHJlc3RvcmUgdGhlIHByb3BlcgpmdW5j dGlvbmFsaXR5LgoKRml4ZXM6IDg4ZDYyNzJhY2FhYSAoIm5ldDogcGh5OiBhdm9pZCB1bm5lZWRl ZCBNRElPIHJlYWRzIGluIGdlbnBoeV9yZWFkX3N0YXR1cyIpClNpZ25lZC1vZmYtYnk6IERvdWcg QmVyZ2VyIDxvcGVuZG1iQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQv YmNtZ2VuZXQuYyB8IDQgKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dl bmV0L2JjbWdlbmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21n ZW5ldC5jCmluZGV4IGZkNTg3YmVkMzJlYi4uMGIzOTExODc0OWI3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMKQEAgLTI2MTksMTAgKzI2MTks OCBAQCBzdGF0aWMgdm9pZCBiY21nZW5ldF9pcnFfdGFzayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCiAJc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsKIAogCS8qIExpbmsgVVAvRE9XTiBl dmVudCAqLwotCWlmIChzdGF0dXMgJiBVTUFDX0lSUV9MSU5LX0VWRU5UKSB7Ci0JCXByaXYtPmRl di0+cGh5ZGV2LT5saW5rID0gISEoc3RhdHVzICYgVU1BQ19JUlFfTElOS19VUCk7CisJaWYgKHN0 YXR1cyAmIFVNQUNfSVJRX0xJTktfRVZFTlQpCiAJCXBoeV9tYWNfaW50ZXJydXB0KHByaXYtPmRl di0+cGh5ZGV2KTsKLQl9CiB9CiAKIC8qIGJjbWdlbmV0X2lzcjE6IGhhbmRsZSBSeCBhbmQgVHgg cHJpb3JpdHkgcXVldWVzICovCi0tIAoyLjIwLjEKCgpGcm9tIDc3NjhlNmI0MjE1ZGM3ZGYzYzc0 NTYwY2E1MzQ2NzgxMjkwYzA1MjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERvdWcg QmVyZ2VyIDxvcGVuZG1iQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxNiBPY3QgMjAxOSAxNjowNjoz MCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzZdIG5ldDogcGh5OiBiY203eHh4OiBkZWZpbmUg c29mdF9yZXNldCBmb3IgNDBubSBFUEhZCgpbIFVwc3RyZWFtIGNvbW1pdCBmZTU4NmI4MjMzNzJh OWY0M2Y5MGUyYzZhYTA1NzM5OTJjZTdjY2I3IF0KClRoZSBpbnRlcm5hbCA0MG5tIEVQSFlzIHVz ZSBhICJXb3JrYXJvdW5kIGZvciBwdXR0aW5nIHRoZSBQSFkgaW4KSUREUSBtb2RlLiIgVGhlc2Ug UEhZcyByZXF1aXJlIGEgc29mdCByZXNldCB0byByZXN0b3JlIGZ1bmN0aW9uYWxpdHkKYWZ0ZXIg dGhleSBhcmUgcG93ZXJlZCBiYWNrIHVwLgoKVGhpcyBjb21taXQgZGVmaW5lcyB0aGUgc29mdF9y ZXNldCBmdW5jdGlvbiB0byB1c2UgZ2VucGh5X3NvZnRfcmVzZXQKZHVyaW5nIHBoeV9pbml0X2h3 IHRvIGFjY29tbW9kYXRlIHRoaXMuCgpGaXhlczogNmUyZDg1ZWMwNTU5ICgibmV0OiBwaHk6IFN0 b3Agd2l0aCBleGNlc3NpdmUgc29mdCByZXNldCIpClNpZ25lZC1vZmYtYnk6IERvdWcgQmVyZ2Vy IDxvcGVuZG1iQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVs bGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2JjbTd4eHguYyB8IDEgKwogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2JjbTd4 eHguYyBiL2RyaXZlcnMvbmV0L3BoeS9iY203eHh4LmMKaW5kZXggYjJiNjMwN2Q2NGE0Li5hY2Fm MDcyYmI0YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9iY203eHh4LmMKKysrIGIvZHJp dmVycy9uZXQvcGh5L2JjbTd4eHguYwpAQCAtNjQzLDYgKzY0Myw3IEBAIHN0YXRpYyBpbnQgYmNt N3h4eF8yOG5tX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJLm5hbWUgICAgICAg ICAgID0gX25hbWUsCQkJCQlcCiAJLmZlYXR1cmVzICAgICAgID0gUEhZX0JBU0lDX0ZFQVRVUkVT LAkJCQlcCiAJLmZsYWdzICAgICAgICAgID0gUEhZX0lTX0lOVEVSTkFMLAkJCQlcCisJLnNvZnRf cmVzZXQJPSBnZW5waHlfc29mdF9yZXNldCwJCQkJXAogCS5jb25maWdfaW5pdCAgICA9IGJjbTd4 eHhfY29uZmlnX2luaXQsCQkJCVwKIAkuc3VzcGVuZCAgICAgICAgPSBiY203eHh4X3N1c3BlbmQs CQkJCVwKIAkucmVzdW1lICAgICAgICAgPSBiY203eHh4X2NvbmZpZ19pbml0LAkJCQlcCi0tIAoy LjIwLjEKCgpGcm9tIDFmMzI3YmE3ZmU4YWQ1ZDFlZDNlN2I2Zjg5ZjA3NmQwYWQzZTdlMjAgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERvdWcgQmVyZ2VyIDxvcGVuZG1iQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAxNiBPY3QgMjAxOSAxNjowNjozMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MzEvMzZdIG5ldDogYmNtZ2VuZXQ6IHNvZnQgcmVzZXQgNDBubSBFUEhZcyBiZWZvcmUgTUFDIGlu aXQKClsgVXBzdHJlYW0gY29tbWl0IDFmNTE1NDg2Mjc1YTA4YTE3YTJjODA2Yjg0NGNjYTE4Zjdk ZTViMzQgXQoKSXQgdHVybnMgb3V0IHRoYXQgdGhlICJXb3JrYXJvdW5kIGZvciBwdXR0aW5nIHRo ZSBQSFkgaW4gSUREUSBtb2RlIgp1c2VkIGJ5IHRoZSBpbnRlcm5hbCBFUEhZcyBvbiA0MG5tIFNl dC1Ub3AgQm94IGNoaXBzIHdoZW4gcG93ZXJpbmcKZG93biBwdXRzIHRoZSBpbnRlcmZhY2UgdG8g dGhlIEdFTkVUIE1BQyBpbiBhIHN0YXRlIHRoYXQgY2FuIGNhdXNlCnN1YnNlcXVlbnQgTUFDIHJl c2V0cyB0byBiZSBpbmNvbXBsZXRlLgoKUmF0aGVyIHRoYW4gcmVzdG9yZSB0aGUgZm9yY2VkIHNv ZnQgcmVzZXQgd2hlbiBwb3dlcmluZyB1cCBpbnRlcm5hbApQSFlzLCB0aGlzIGNvbW1pdCBtb3Zl cyB0aGUgaW52b2NhdGlvbiBvZiBwaHlfaW5pdF9odyBlYXJsaWVyIGluCnRoZSBNQUMgaW5pdGlh bGl6YXRpb24gc2VxdWVuY2UgdG8ganVzdCBiZWZvcmUgdGhlIE1BQyByZXNldCBpbiB0aGUKb3Bl biBhbmQgcmVzdW1lIGZ1bmN0aW9ucy4gVGhpcyBhbGxvd3MgdGhlIGludGVyZmFjZSB0byBiZSBz dGFibGUKYW5kIGFsbG93cyB0aGUgTUFDIHJlc2V0cyB0byBiZSBzdWNjZXNzZnVsLgoKVGhlIGJj bWdlbmV0X21paV9wcm9iZSgpIGZ1bmN0aW9uIGlzIHNwbGl0IGluIHR3byB0byBhY2NvbW1vZGF0 ZQp0aGlzLiBUaGUgbmV3IGZ1bmN0aW9uIGJjbWdlbmV0X21paV9jb25uZWN0KCkgaGFuZGxlcyB0 aGUgZmlyc3QKaGFsZiBvZiB0aGUgZnVuY3Rpb25hbGl0eSBiZWZvcmUgdGhlIE1BQyBpbml0aWFs aXphdGlvbiwgYW5kIHRoZQpiY21nZW5ldF9taWlfY29uZmlnKCkgZnVuY3Rpb24gaXMgZXh0ZW5k ZWQgdG8gcHJvdmlkZSB0aGUgcmVtYWluaW5nClBIWSBjb25maWd1cmF0aW9uIGZvbGxvd2luZyB0 aGUgTUFDIGluaXRpYWxpemF0aW9uLgoKRml4ZXM6IDQ4NGJmYTE1MDdiZiAoIlJldmVydCAibmV0 OiBiY21nZW5ldDogU29mdHdhcmUgcmVzZXQgRVBIWSBhZnRlciBwb3dlciBvbiIiKQpTaWduZWQt b2ZmLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+CkFja2VkLWJ5OiBGbG9yaWFu IEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRj b20vZ2VuZXQvYmNtZ2VuZXQuYyAgICB8ICAyOCArKystLQogLi4uL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9nZW5ldC9iY21nZW5ldC5oICAgIHwgICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9nZW5ldC9iY21taWkuYyAgfCAxMTIgKysrKysrKystLS0tLS0tLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCmluZGV4IDBiMzkxMTg3NDli Ny4uMTNhZTc2NzZkN2Y3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9nZW5ldC9iY21nZW5ldC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dl bmV0L2JjbWdlbmV0LmMKQEAgLTI4NzksNiArMjg3OSwxMiBAQCBzdGF0aWMgaW50IGJjbWdlbmV0 X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlpZiAocHJpdi0+aW50ZXJuYWxfcGh5KQog CQliY21nZW5ldF9wb3dlcl91cChwcml2LCBHRU5FVF9QT1dFUl9QQVNTSVZFKTsKIAorCXJldCA9 IGJjbWdlbmV0X21paV9jb25uZWN0KGRldik7CisJaWYgKHJldCkgeworCQluZXRkZXZfZXJyKGRl diwgImZhaWxlZCB0byBjb25uZWN0IHRvIFBIWVxuIik7CisJCWdvdG8gZXJyX2Nsa19kaXNhYmxl OworCX0KKwogCS8qIHRha2UgTUFDIG91dCBvZiByZXNldCAqLwogCWJjbWdlbmV0X3VtYWNfcmVz ZXQocHJpdik7CiAKQEAgLTI4ODgsNiArMjg5NCwxMiBAQCBzdGF0aWMgaW50IGJjbWdlbmV0X29w ZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlyZWcgPSBiY21nZW5ldF91bWFjX3JlYWRsKHBy aXYsIFVNQUNfQ01EKTsKIAlwcml2LT5jcmNfZndkX2VuID0gISEocmVnICYgQ01EX0NSQ19GV0Qp OwogCisJcmV0ID0gYmNtZ2VuZXRfbWlpX2NvbmZpZyhkZXYsIHRydWUpOworCWlmIChyZXQpIHsK KwkJbmV0ZGV2X2VycihkZXYsICJ1bnN1cHBvcnRlZCBQSFlcbiIpOworCQlnb3RvIGVycl9kaXNj b25uZWN0X3BoeTsKKwl9CisKIAliY21nZW5ldF9zZXRfaHdfYWRkcihwcml2LCBkZXYtPmRldl9h ZGRyKTsKIAogCWlmIChwcml2LT5pbnRlcm5hbF9waHkpIHsKQEAgLTI5MDMsNyArMjkxNSw3IEBA IHN0YXRpYyBpbnQgYmNtZ2VuZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXJldCA9 IGJjbWdlbmV0X2luaXRfZG1hKHByaXYpOwogCWlmIChyZXQpIHsKIAkJbmV0ZGV2X2VycihkZXYs ICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBETUFcbiIpOwotCQlnb3RvIGVycl9jbGtfZGlzYWJsZTsK KwkJZ290byBlcnJfZGlzY29ubmVjdF9waHk7CiAJfQogCiAJLyogQWx3YXlzIGVuYWJsZSByaW5n IDE2IC0gZGVzY3JpcHRvciByaW5nICovCkBAIC0yOTI2LDI1ICsyOTM4LDE5IEBAIHN0YXRpYyBp bnQgYmNtZ2VuZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQlnb3RvIGVycl9pcnEw OwogCX0KIAotCXJldCA9IGJjbWdlbmV0X21paV9wcm9iZShkZXYpOwotCWlmIChyZXQpIHsKLQkJ bmV0ZGV2X2VycihkZXYsICJmYWlsZWQgdG8gY29ubmVjdCB0byBQSFlcbiIpOwotCQlnb3RvIGVy cl9pcnExOwotCX0KLQogCWJjbWdlbmV0X25ldGlmX3N0YXJ0KGRldik7CiAKIAluZXRpZl90eF9z dGFydF9hbGxfcXVldWVzKGRldik7CiAKIAlyZXR1cm4gMDsKIAotZXJyX2lycTE6Ci0JZnJlZV9p cnEocHJpdi0+aXJxMSwgcHJpdik7CiBlcnJfaXJxMDoKIAlmcmVlX2lycShwcml2LT5pcnEwLCBw cml2KTsKIGVycl9maW5pX2RtYToKIAliY21nZW5ldF9kbWFfdGVhcmRvd24ocHJpdik7CiAJYmNt Z2VuZXRfZmluaV9kbWEocHJpdik7CitlcnJfZGlzY29ubmVjdF9waHk6CisJcGh5X2Rpc2Nvbm5l Y3QoZGV2LT5waHlkZXYpOwogZXJyX2Nsa19kaXNhYmxlOgogCWlmIChwcml2LT5pbnRlcm5hbF9w aHkpCiAJCWJjbWdlbmV0X3Bvd2VyX2Rvd24ocHJpdiwgR0VORVRfUE9XRVJfUEFTU0lWRSk7CkBA IC0zNjU3LDYgKzM2NjMsOCBAQCBzdGF0aWMgaW50IGJjbWdlbmV0X3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpkKQogCWlmIChwcml2LT5pbnRlcm5hbF9waHkpCiAJCWJjbWdlbmV0X3Bvd2VyX3VwKHBy aXYsIEdFTkVUX1BPV0VSX1BBU1NJVkUpOwogCisJcGh5X2luaXRfaHcoZGV2LT5waHlkZXYpOwor CiAJYmNtZ2VuZXRfdW1hY19yZXNldChwcml2KTsKIAogCWluaXRfdW1hYyhwcml2KTsKQEAgLTM2 NjUsOCArMzY3Myw2IEBAIHN0YXRpYyBpbnQgYmNtZ2VuZXRfcmVzdW1lKHN0cnVjdCBkZXZpY2Ug KmQpCiAJaWYgKHByaXYtPndvbG9wdHMpCiAJCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5j bGtfd29sKTsKIAotCXBoeV9pbml0X2h3KGRldi0+cGh5ZGV2KTsKLQogCS8qIFNwZWVkIHNldHRp bmdzIG11c3QgYmUgcmVzdG9yZWQgKi8KIAliY21nZW5ldF9taWlfY29uZmlnKHByaXYtPmRldiwg ZmFsc2UpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5l dC9iY21nZW5ldC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2Vu ZXQuaAppbmRleCA0ZGFiZjM3MzE5YzguLjY1NDU0NDYxODU1MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuaAorKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5oCkBAIC03MjMsOCArNzIzLDggQEAg R0VORVRfSU9fTUFDUk8ocmJ1ZiwgR0VORVRfUkJVRl9PRkYpOwogCiAvKiBNRElPIHJvdXRpbmVz ICovCiBpbnQgYmNtZ2VuZXRfbWlpX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CitpbnQg YmNtZ2VuZXRfbWlpX2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiBpbnQgYmNtZ2Vu ZXRfbWlpX2NvbmZpZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBib29sIGluaXQpOwotaW50IGJj bWdlbmV0X21paV9wcm9iZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIHZvaWQgYmNtZ2VuZXRf bWlpX2V4aXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiB2b2lkIGJjbWdlbmV0X3BoeV9wb3dl cl9zZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpOwogdm9pZCBiY21nZW5l dF9taWlfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jCmluZGV4IDBkNTI3ZmE1ZGU2MS4uZWM0MzM0NjM5 ZDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21t aWkuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYwpA QCAtMTc2LDYgKzE3Niw0NiBAQCBzdGF0aWMgdm9pZCBiY21nZW5ldF9tb2NhX3BoeV9zZXR1cChz dHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdikKIAkJCQkJICBiY21nZW5ldF9maXhlZF9waHlfbGlu a191cGRhdGUpOwogfQogCitpbnQgYmNtZ2VuZXRfbWlpX2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKK3sKKwlzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRl dik7CisJc3RydWN0IGRldmljZV9ub2RlICpkbiA9IHByaXYtPnBkZXYtPmRldi5vZl9ub2RlOwor CXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7CisJdTMyIHBoeV9mbGFncyA9IDA7CisJaW50IHJl dDsKKworCS8qIENvbW11bmljYXRlIHRoZSBpbnRlZ3JhdGVkIFBIWSByZXZpc2lvbiAqLworCWlm IChwcml2LT5pbnRlcm5hbF9waHkpCisJCXBoeV9mbGFncyA9IHByaXYtPmdwaHlfcmV2OworCisJ LyogSW5pdGlhbGl6ZSBsaW5rIHN0YXRlIHZhcmlhYmxlcyB0aGF0IGJjbWdlbmV0X21paV9zZXR1 cCgpIHVzZXMgKi8KKwlwcml2LT5vbGRfbGluayA9IC0xOworCXByaXYtPm9sZF9zcGVlZCA9IC0x OworCXByaXYtPm9sZF9kdXBsZXggPSAtMTsKKwlwcml2LT5vbGRfcGF1c2UgPSAtMTsKKworCWlm IChkbikgeworCQlwaHlkZXYgPSBvZl9waHlfY29ubmVjdChkZXYsIHByaXYtPnBoeV9kbiwgYmNt Z2VuZXRfbWlpX3NldHVwLAorCQkJCQlwaHlfZmxhZ3MsIHByaXYtPnBoeV9pbnRlcmZhY2UpOwor CQlpZiAoIXBoeWRldikgeworCQkJcHJfZXJyKCJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7 CisJCQlyZXR1cm4gLUVOT0RFVjsKKwkJfQorCX0gZWxzZSB7CisJCXBoeWRldiA9IGRldi0+cGh5 ZGV2OworCQlwaHlkZXYtPmRldl9mbGFncyA9IHBoeV9mbGFnczsKKworCQlyZXQgPSBwaHlfY29u bmVjdF9kaXJlY3QoZGV2LCBwaHlkZXYsIGJjbWdlbmV0X21paV9zZXR1cCwKKwkJCQkJIHByaXYt PnBoeV9pbnRlcmZhY2UpOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoImNvdWxkIG5vdCBhdHRh Y2ggdG8gUEhZXG4iKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisJfQorCisJcmV0dXJuIDA7 Cit9CisKIGludCBiY21nZW5ldF9taWlfY29uZmlnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJv b2wgaW5pdCkKIHsKIAlzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRl dik7CkBAIC0yNjksNzEgKzMwOSwyMSBAQCBpbnQgYmNtZ2VuZXRfbWlpX2NvbmZpZyhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBib29sIGluaXQpCiAJCWJjbWdlbmV0X2V4dF93cml0ZWwocHJpdiwg cmVnLCBFWFRfUkdNSUlfT09CX0NUUkwpOwogCX0KIAotCWlmIChpbml0KQotCQlkZXZfaW5mbyhr ZGV2LCAiY29uZmlndXJpbmcgaW5zdGFuY2UgZm9yICVzXG4iLCBwaHlfbmFtZSk7Ci0KLQlyZXR1 cm4gMDsKLX0KKwlpZiAoaW5pdCkgeworCQlwaHlkZXYtPmFkdmVydGlzaW5nID0gcGh5ZGV2LT5z dXBwb3J0ZWQ7CiAKLWludCBiY21nZW5ldF9taWlfcHJvYmUoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKLXsKLQlzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7Ci0J c3RydWN0IGRldmljZV9ub2RlICpkbiA9IHByaXYtPnBkZXYtPmRldi5vZl9ub2RlOwotCXN0cnVj dCBwaHlfZGV2aWNlICpwaHlkZXY7Ci0JdTMyIHBoeV9mbGFncyA9IDA7Ci0JaW50IHJldDsKLQot CS8qIENvbW11bmljYXRlIHRoZSBpbnRlZ3JhdGVkIFBIWSByZXZpc2lvbiAqLwotCWlmIChwcml2 LT5pbnRlcm5hbF9waHkpCi0JCXBoeV9mbGFncyA9IHByaXYtPmdwaHlfcmV2OwotCi0JLyogSW5p dGlhbGl6ZSBsaW5rIHN0YXRlIHZhcmlhYmxlcyB0aGF0IGJjbWdlbmV0X21paV9zZXR1cCgpIHVz ZXMgKi8KLQlwcml2LT5vbGRfbGluayA9IC0xOwotCXByaXYtPm9sZF9zcGVlZCA9IC0xOwotCXBy aXYtPm9sZF9kdXBsZXggPSAtMTsKLQlwcml2LT5vbGRfcGF1c2UgPSAtMTsKLQotCWlmIChkbikg ewotCQlwaHlkZXYgPSBvZl9waHlfY29ubmVjdChkZXYsIHByaXYtPnBoeV9kbiwgYmNtZ2VuZXRf bWlpX3NldHVwLAotCQkJCQlwaHlfZmxhZ3MsIHByaXYtPnBoeV9pbnRlcmZhY2UpOwotCQlpZiAo IXBoeWRldikgewotCQkJcHJfZXJyKCJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7Ci0JCQly ZXR1cm4gLUVOT0RFVjsKLQkJfQotCX0gZWxzZSB7Ci0JCXBoeWRldiA9IGRldi0+cGh5ZGV2Owot CQlwaHlkZXYtPmRldl9mbGFncyA9IHBoeV9mbGFnczsKLQotCQlyZXQgPSBwaHlfY29ubmVjdF9k aXJlY3QoZGV2LCBwaHlkZXYsIGJjbWdlbmV0X21paV9zZXR1cCwKLQkJCQkJIHByaXYtPnBoeV9p bnRlcmZhY2UpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl9lcnIoImNvdWxkIG5vdCBhdHRhY2ggdG8g UEhZXG4iKTsKLQkJCXJldHVybiAtRU5PREVWOwotCQl9Ci0JfQorCQkvKiBUaGUgaW50ZXJuYWwg UEhZIGhhcyBpdHMgbGluayBpbnRlcnJ1cHRzIHJvdXRlZCB0byB0aGUKKwkJICogRXRoZXJuZXQg TUFDIElTUnMuIE9uIEdFTkVUdjUgdGhlcmUgaXMgYSBoYXJkd2FyZSBpc3N1ZQorCQkgKiB0aGF0 IHByZXZlbnRzIHRoZSBzaWduYWxpbmcgb2YgbGluayBVUCBpbnRlcnJ1cHRzIHdoZW4KKwkJICog dGhlIGxpbmsgb3BlcmF0ZXMgYXQgMTBNYnBzLCBzbyBmYWxsYmFjayB0byBwb2xsaW5nIGZvcgor CQkgKiB0aG9zZSB2ZXJzaW9ucyBvZiBHRU5FVC4KKwkJICovCisJCWlmIChwcml2LT5pbnRlcm5h bF9waHkgJiYgIUdFTkVUX0lTX1Y1KHByaXYpKQorCQkJcGh5ZGV2LT5pcnEgPSBQSFlfSUdOT1JF X0lOVEVSUlVQVDsKIAotCS8qIENvbmZpZ3VyZSBwb3J0IG11bHRpcGxleGVyIGJhc2VkIG9uIHdo YXQgdGhlIHByb2JlZCBQSFkgZGV2aWNlIHNpbmNlCi0JICogcmVhZGluZyB0aGUgJ21heC1zcGVl ZCcgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBzdXBwb3J0ZWQKLQkgKiBQSFkgc3Bl ZWQgd2hpY2ggaXMgbmVlZGVkIGZvciBiY21nZW5ldF9taWlfY29uZmlnKCkgdG8gY29uZmlndXJl Ci0JICogdGhpbmdzIGFwcHJvcHJpYXRlbHkuCi0JICovCi0JcmV0ID0gYmNtZ2VuZXRfbWlpX2Nv bmZpZyhkZXYsIHRydWUpOwotCWlmIChyZXQpIHsKLQkJcGh5X2Rpc2Nvbm5lY3QoZGV2LT5waHlk ZXYpOwotCQlyZXR1cm4gcmV0OworCQlkZXZfaW5mbyhrZGV2LCAiY29uZmlndXJpbmcgaW5zdGFu Y2UgZm9yICVzXG4iLCBwaHlfbmFtZSk7CiAJfQogCi0JcGh5ZGV2LT5hZHZlcnRpc2luZyA9IHBo eWRldi0+c3VwcG9ydGVkOwotCi0JLyogVGhlIGludGVybmFsIFBIWSBoYXMgaXRzIGxpbmsgaW50 ZXJydXB0cyByb3V0ZWQgdG8gdGhlCi0JICogRXRoZXJuZXQgTUFDIElTUnMuIE9uIEdFTkVUdjUg dGhlcmUgaXMgYSBoYXJkd2FyZSBpc3N1ZQotCSAqIHRoYXQgcHJldmVudHMgdGhlIHNpZ25hbGlu ZyBvZiBsaW5rIFVQIGludGVycnVwdHMgd2hlbgotCSAqIHRoZSBsaW5rIG9wZXJhdGVzIGF0IDEw TWJwcywgc28gZmFsbGJhY2sgdG8gcG9sbGluZyBmb3IKLQkgKiB0aG9zZSB2ZXJzaW9ucyBvZiBH RU5FVC4KLQkgKi8KLQlpZiAocHJpdi0+aW50ZXJuYWxfcGh5ICYmICFHRU5FVF9JU19WNShwcml2 KSkKLQkJZGV2LT5waHlkZXYtPmlycSA9IFBIWV9JR05PUkVfSU5URVJSVVBUOwotCiAJcmV0dXJu IDA7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gOWY3ZjdkOGNhOTYzYmY1ZGIyMjkwMzA2YzdmZGZk YzZkZDM5MDg0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRG91ZyBCZXJnZXIgPG9w ZW5kbWJAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE2IE9jdCAyMDE5IDE2OjA2OjMyIC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAzMi8zNl0gbmV0OiBiY21nZW5ldDogcmVzZXQgNDBubSBFUEhZIG9uIGVu ZXJneSBkZXRlY3QKClsgVXBzdHJlYW0gY29tbWl0IDI1MzgyYjk5MWQyNTJhZWQ5NjFjZDQzNDE3 NjI0MGY5ZGU2YmIxNWYgXQoKVGhlIEVQSFkgaW50ZWdyYXRlZCBpbnRvIHRoZSA0MG5tIFNldC1U b3AgQm94IGRldmljZXMgY2FuIGZhbHNlbHkKZGV0ZWN0IGVuZXJneSB3aGVuIGNvbm5lY3RlZCB0 byBhIGRpc2FibGVkIHBlZXIgaW50ZXJmYWNlLiBXaGVuIHRoZQpwZWVyIGludGVyZmFjZSBpcyBl bmFibGVkIHRoZSBFUEhZIHdpbGwgZGV0ZWN0IGFuZCByZXBvcnQgdGhlIGxpbmsKYXMgYWN0aXZl LCBidXQgb24gb2NjYXNpb24gbWF5IGdldCBpbnRvIGEgc3RhdGUgd2hlcmUgaXQgaXMgbm90CmFi bGUgdG8gZXhjaGFuZ2UgZGF0YSB3aXRoIHRoZSBjb25uZWN0ZWQgR0VORVQgTUFDLiBUaGlzIGlz c3VlIGhhcwpub3QgYmVlbiBvYnNlcnZlZCB3aGVuIHRoZSBsaW5rIHBhcmFtZXRlcnMgYXJlIGF1 dG8tbmVnb3RpYXRlZDsKaG93ZXZlciwgaXQgaGFzIGJlZW4gb2JzZXJ2ZWQgd2l0aCBhIG1hbnVh bGx5IGNvbmZpZ3VyZWQgbGluay4KCkl0IGhhcyBiZWVuIGVtcGlyaWNhbGx5IGRldGVybWluZWQg dGhhdCBpc3N1aW5nIGEgc29mdCByZXNldCB0byB0aGUKRVBIWSB3aGVuIGVuZXJneSBpcyBkZXRl Y3RlZCBwcmV2ZW50cyBpdCBmcm9tIGdldHRpbmcgaW50byB0aGlzIGJhZApzdGF0ZS4KCkZpeGVz OiAxYzEwMDhjNzkzZmEgKCJuZXQ6IGJjbWdlbmV0OiBhZGQgbWFpbiBkcml2ZXIgZmlsZSIpClNp Z25lZC1vZmYtYnk6IERvdWcgQmVyZ2VyIDxvcGVuZG1iQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEZs b3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyB8IDkgKysrKysrKystCiAxIGZpbGUgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMKaW5kZXggMTNhZTc2NzZkN2Y3Li5iMDMwODcx MTIxYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2Jj bWdlbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2Vu ZXQuYwpAQCAtMjAyMCw2ICsyMDIwLDggQEAgc3RhdGljIHZvaWQgYmNtZ2VuZXRfbGlua19pbnRy X2VuYWJsZShzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdikKIAkgKi8KIAlpZiAocHJpdi0+aW50 ZXJuYWxfcGh5KSB7CiAJCWludDBfZW5hYmxlIHw9IFVNQUNfSVJRX0xJTktfRVZFTlQ7CisJCWlm IChHRU5FVF9JU19WMShwcml2KSB8fCBHRU5FVF9JU19WMihwcml2KSB8fCBHRU5FVF9JU19WMyhw cml2KSkKKwkJCWludDBfZW5hYmxlIHw9IFVNQUNfSVJRX1BIWV9ERVRfUjsKIAl9IGVsc2UgaWYg KHByaXYtPmV4dF9waHkpIHsKIAkJaW50MF9lbmFibGUgfD0gVU1BQ19JUlFfTElOS19FVkVOVDsK IAl9IGVsc2UgaWYgKHByaXYtPnBoeV9pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX01P Q0EpIHsKQEAgLTI2MTgsOSArMjYyMCwxNCBAQCBzdGF0aWMgdm9pZCBiY21nZW5ldF9pcnFfdGFz ayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJcHJpdi0+aXJxMF9zdGF0ID0gMDsKIAlzcGlu X3VubG9ja19pcnEoJnByaXYtPmxvY2spOwogCisJaWYgKHN0YXR1cyAmIFVNQUNfSVJRX1BIWV9E RVRfUiAmJgorCSAgICBwcml2LT5kZXYtPnBoeWRldi0+YXV0b25lZyAhPSBBVVRPTkVHX0VOQUJM RSkKKwkJcGh5X2luaXRfaHcocHJpdi0+ZGV2LT5waHlkZXYpOworCiAJLyogTGluayBVUC9ET1dO IGV2ZW50ICovCiAJaWYgKHN0YXR1cyAmIFVNQUNfSVJRX0xJTktfRVZFTlQpCiAJCXBoeV9tYWNf aW50ZXJydXB0KHByaXYtPmRldi0+cGh5ZGV2KTsKKwogfQogCiAvKiBiY21nZW5ldF9pc3IxOiBo YW5kbGUgUnggYW5kIFR4IHByaW9yaXR5IHF1ZXVlcyAqLwpAQCAtMjcxNSw3ICsyNzIyLDcgQEAg c3RhdGljIGlycXJldHVybl90IGJjbWdlbmV0X2lzcjAoaW50IGlycSwgdm9pZCAqZGV2X2lkKQog CX0KIAogCS8qIGFsbCBvdGhlciBpbnRlcmVzdGVkIGludGVycnVwdHMgaGFuZGxlZCBpbiBib3R0 b20gaGFsZiAqLwotCXN0YXR1cyAmPSBVTUFDX0lSUV9MSU5LX0VWRU5UOworCXN0YXR1cyAmPSAo VU1BQ19JUlFfTElOS19FVkVOVCB8IFVNQUNfSVJRX1BIWV9ERVRfUik7CiAJaWYgKHN0YXR1cykg ewogCQkvKiBTYXZlIGlycSBzdGF0dXMgZm9yIGJvdHRvbS1oYWxmIHByb2Nlc3NpbmcuICovCiAJ CXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7Ci0tIAoyLjIwLjEKCgpGcm9t IDYzM2YzNDE2YTA5OTc1ODgxMDFhMmY5NjhkMjZhNGIxOGMyOWZmZjQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KRGF0ZTogVGh1LCAx NyBPY3QgMjAxOSAyMToyOToyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzZdIG5ldDogdXNi OiBsYW43OHh4OiBDb25uZWN0IFBIWSBiZWZvcmUgcmVnaXN0ZXJpbmcgTUFDCgpbIFVwc3RyZWFt IGNvbW1pdCAzOGI0ZmUzMjAxMTk4NTljMTFiMWRjMDZmNmI0OTg3YTE2MzQ0ZmExIF0KCkFzIHNv b24gYXMgdGhlIG5ldGRldiBpcyByZWdpc3RlcnMsIHRoZSBrZXJuZWwgY2FuIHN0YXJ0IHVzaW5n IHRoZQppbnRlcmZhY2UuIElmIHRoZSBkcml2ZXIgY29ubmVjdHMgdGhlIE1BQyB0byB0aGUgUEhZ IGFmdGVyIHRoZSBuZXRkZXYKaXMgcmVnaXN0ZXJlZCwgdGhlcmUgaXMgYSByYWNlIGNvbmRpdGlv biB3aGVyZSB0aGUgaW50ZXJmYWNlIGNhbiBiZQpvcGVuZWQgd2l0aG91dCBoYXZpbmcgdGhlIFBI WSBjb25uZWN0ZWQuCgpDaGFuZ2UgdGhlIG9yZGVyIHRvIGNsb3NlIHRoaXMgcmFjZSBjb25kaXRp b24uCgpGaXhlczogOTI1NzFhMWFhZTQwICgibGFuNzh4eDogQ29ubmVjdCBwaHkgZWFybHkiKQpS ZXBvcnRlZC1ieTogRGFuaWVsIFdhZ25lciA8ZHdhZ25lckBzdXNlLmRlPgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClRlc3RlZC1ieTogRGFuaWVsIFdhZ25lciA8 ZHdhZ25lckBzdXNlLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYyB8IDEyICsrKysrKy0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jIGIvZHJpdmVycy9uZXQvdXNiL2xh bjc4eHguYwppbmRleCA2NGI2YTc2OWU3ODEuLjNhMTcyZmNiMDZmZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdXNiL2xhbjc4eHguYworKysgYi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCkBA IC0zNzk5LDEwICszNzk5LDE0IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9wcm9iZShzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZiwKIAkvKiBkcml2ZXIgcmVxdWlyZXMgcmVtb3RlLXdha2V1cCBjYXBh YmlsaXR5IGR1cmluZyBhdXRvc3VzcGVuZC4gKi8KIAlpbnRmLT5uZWVkc19yZW1vdGVfd2FrZXVw ID0gMTsKIAorCXJldCA9IGxhbjc4eHhfcGh5X2luaXQoZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJ Z290byBvdXQ0OworCiAJcmV0ID0gcmVnaXN0ZXJfbmV0ZGV2KG5ldGRldik7CiAJaWYgKHJldCAh PSAwKSB7CiAJCW5ldGlmX2VycihkZXYsIHByb2JlLCBuZXRkZXYsICJjb3VsZG4ndCByZWdpc3Rl ciB0aGUgZGV2aWNlXG4iKTsKLQkJZ290byBvdXQ0OworCQlnb3RvIG91dDU7CiAJfQogCiAJdXNi X3NldF9pbnRmZGF0YShpbnRmLCBkZXYpOwpAQCAtMzgxNSwxNCArMzgxOSwxMCBAQCBzdGF0aWMg aW50IGxhbjc4eHhfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiAJcG1fcnVudGlt ZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkoJnVkZXYtPmRldiwKIAkJCQkJIERFRkFVTFRfQVVUT1NV U1BFTkRfREVMQVkpOwogCi0JcmV0ID0gbGFuNzh4eF9waHlfaW5pdChkZXYpOwotCWlmIChyZXQg PCAwKQotCQlnb3RvIG91dDU7Ci0KIAlyZXR1cm4gMDsKIAogb3V0NToKLQl1bnJlZ2lzdGVyX25l dGRldihuZXRkZXYpOworCXBoeV9kaXNjb25uZWN0KG5ldGRldi0+cGh5ZGV2KTsKIG91dDQ6CiAJ dXNiX2ZyZWVfdXJiKGRldi0+dXJiX2ludHIpOwogb3V0MzoKLS0gCjIuMjAuMQoKCkZyb20gMTA5 MzRjMzExZGI4MTc2ZjM3MWI2NDEzM2RmOGY4MGJiY2I4OTlmYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVml2aWVuIERpZGVsb3QgPHZpdmllbi5kaWRlbG90QGdtYWlsLmNvbT4KRGF0 ZTogRnJpLCAxOCBPY3QgMjAxOSAxNzowMjo0NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMzQvMzZd IG5ldDogZHNhOiBmaXggc3dpdGNoIHRyZWUgbGlzdAoKWyBVcHN0cmVhbSBjb21taXQgNTBjN2Qy YmE5ZGUyMGY2MGEyZDUyN2FkNjkyODIwOWVmNjdlNGNkZCBdCgpJZiB0aGVyZSBhcmUgbXVsdGlw bGUgc3dpdGNoIHRyZWVzIG9uIHRoZSBkZXZpY2UsIG9ubHkgdGhlIGxhc3Qgb25lCndpbGwgYmUg bGlzdGVkLCBiZWNhdXNlIHRoZSBhcmd1bWVudHMgb2YgbGlzdF9hZGRfdGFpbCBhcmUgc3dhcHBl ZC4KCkZpeGVzOiA4M2MwYWZhZWM3YjcgKCJuZXQ6IGRzYTogQWRkIG5ldyBiaW5kaW5nIGltcGxl bWVudGF0aW9uIikKU2lnbmVkLW9mZi1ieTogVml2aWVuIERpZGVsb3QgPHZpdmllbi5kaWRlbG90 QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2RzYS9kc2EyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNhL2RzYTIuYyBiL25ldC9k c2EvZHNhMi5jCmluZGV4IGExOTE3MDI1ZTE1NS4uNDZhZTRkZWU1MjJhIDEwMDY0NAotLS0gYS9u ZXQvZHNhL2RzYTIuYworKysgYi9uZXQvZHNhL2RzYTIuYwpAQCAtNDksNyArNDksNyBAQCBzdGF0 aWMgc3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHNhX3RyZWVfYWxsb2MoaW50IGluZGV4KQogCWRz dC0+aW5kZXggPSBpbmRleDsKIAogCUlOSVRfTElTVF9IRUFEKCZkc3QtPmxpc3QpOwotCWxpc3Rf YWRkX3RhaWwoJmRzYV90cmVlX2xpc3QsICZkc3QtPmxpc3QpOworCWxpc3RfYWRkX3RhaWwoJmRz dC0+bGlzdCwgJmRzYV90cmVlX2xpc3QpOwogCiAJa3JlZl9pbml0KCZkc3QtPnJlZmNvdW50KTsK IAotLSAKMi4yMC4xCgoKRnJvbSBmOGUwZTBiYmQzNzFiZmZiODI2YmZmOGM1M2U1ZGYzYTU4Mzg2 OGRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYXp1dG9zaGkgTm9ndWNoaSA8bm9n dWNoaS5rYXp1dG9zaUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjEgT2N0IDIwMTkgMDA6MDM6MDcg KzA5MDAKU3ViamVjdDogW1BBVENIIDM1LzM2XSByODE1MjogYWRkIGRldmljZSBpZCBmb3IgTGVu b3ZvIFRoaW5rUGFkIFVTQi1DIERvY2sgR2VuCiAyCgpbIFVwc3RyZWFtIGNvbW1pdCBiMzA2MDUz MTk3OTQyMmQ1YmIxOGQ4MDIyNmY5Nzg5MTAyODRkYzcwIF0KClRoaXMgZGV2aWNlIGlzIHNvbGQg YXMgJ1RoaW5rUGFkIFVTQi1DIERvY2sgR2VuIDIgKDQwQVMpJy4KQ2hpcHNldCBpcyBSVEw4MTUz IGFuZCB3b3JrcyB3aXRoIHI4MTUyLgpXaXRob3V0IHRoaXMsIHRoZSBnZW5lcmljIGNkY19ldGhl ciBncmFicyB0aGUgZGV2aWNlLCBhbmQgdGhlIGRldmljZSBqYW0KY29ubmVjdGVkIG5ldHdvcmtz IHVwIHdoZW4gdGhlIG1hY2hpbmUgc3VzcGVuZHMuCgpTaWduZWQtb2ZmLWJ5OiBLYXp1dG9zaGkg Tm9ndWNoaSA8bm9ndWNoaS5rYXp1dG9zaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvY2Rj X2V0aGVyLmMgfCA3ICsrKysrKysKIGRyaXZlcnMvbmV0L3VzYi9yODE1Mi5jICAgICB8IDEgKwog MiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC91c2IvY2RjX2V0aGVyLmMgYi9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMKaW5kZXggODVm YmE2NGMzZmNmLi5jM2NmOWFlNmQxZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9jZGNf ZXRoZXIuYworKysgYi9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMKQEAgLTgwMCw2ICs4MDAs MTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkCXByb2R1Y3RzW10gPSB7CiAJ LmRyaXZlcl9pbmZvID0gMCwKIH0sCiAKKy8qIFRoaW5rUGFkIFVTQi1DIERvY2sgR2VuIDIgKGJh c2VkIG9uIFJlYWx0ZWsgUlRMODE1MykgKi8KK3sKKwlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0Vf SU5GTyhMRU5PVk9fVkVORE9SX0lELCAweGEzODcsIFVTQl9DTEFTU19DT01NLAorCQkJVVNCX0NE Q19TVUJDTEFTU19FVEhFUk5FVCwgVVNCX0NEQ19QUk9UT19OT05FKSwKKwkuZHJpdmVyX2luZm8g PSAwLAorfSwKKwogLyogTlZJRElBIFRlZ3JhIFVTQiAzLjAgRXRoZXJuZXQgQWRhcHRlcnMgKGJh c2VkIG9uIFJlYWx0ZWsgUlRMODE1MykgKi8KIHsKIAlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0Vf SU5GTyhOVklESUFfVkVORE9SX0lELCAweDA5ZmYsIFVTQl9DTEFTU19DT01NLApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMgYi9kcml2ZXJzL25ldC91c2IvcjgxNTIuYwppbmRl eCBhMjkxZTVmMmRhZWYuLjkxZDQ3YTcxNGFmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNi L3I4MTUyLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMKQEAgLTUzMzksNiArNTMzOSw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydGw4MTUyX3RhYmxlW10gPSB7 CiAJe1JFQUxURUtfVVNCX0RFVklDRShWRU5ET1JfSURfTEVOT1ZPLCAgMHg3MjA1KX0sCiAJe1JF QUxURUtfVVNCX0RFVklDRShWRU5ET1JfSURfTEVOT1ZPLCAgMHg3MjBjKX0sCiAJe1JFQUxURUtf VVNCX0RFVklDRShWRU5ET1JfSURfTEVOT1ZPLCAgMHg3MjE0KX0sCisJe1JFQUxURUtfVVNCX0RF VklDRShWRU5ET1JfSURfTEVOT1ZPLCAgMHhhMzg3KX0sCiAJe1JFQUxURUtfVVNCX0RFVklDRShW RU5ET1JfSURfTElOS1NZUywgMHgwMDQxKX0sCiAJe1JFQUxURUtfVVNCX0RFVklDRShWRU5ET1Jf SURfTlZJRElBLCAgMHgwOWZmKX0sCiAJe1JFQUxURUtfVVNCX0RFVklDRShWRU5ET1JfSURfVFBM SU5LLCAgMHgwNjAxKX0sCi0tIAoyLjIwLjEKCgpGcm9tIGVlNzI1YmQ3N2JhYWZlMWM1MDI5ZDkx NTE5NGVkMDFmMGRkYmNlNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAyMiBPY3QgMjAxOSAwNzo1Nzo0 NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzYvMzZdIG5ldC9mbG93X2Rpc3NlY3Rvcjogc3dpdGNo IHRvIHNpcGhhc2gKClsgVXBzdHJlYW0gY29tbWl0IDU1NjY3NDQxYzg0ZmE1ZTA5MTFhMGFhYzQ0 ZmIwNTljMTViYTZkYTIgXQoKVURQIElQdjYgcGFja2V0cyBhdXRvIGZsb3dsYWJlbHMgYXJlIHVz aW5nIGEgMzJiaXQgc2VjcmV0CihzdGF0aWMgdTMyIGhhc2hybmQgaW4gbmV0L2NvcmUvZmxvd19k aXNzZWN0b3IuYykgYW5kCmFwcGx5IGpoYXNoKCkgb3ZlciBmaWVsZHMga25vd24gYnkgdGhlIHJl Y2VpdmVycy4KCkF0dGFja2VycyBjYW4gZWFzaWx5IGluZmVyIHRoZSAzMmJpdCBzZWNyZXQgYW5k IHVzZSB0aGlzIGluZm9ybWF0aW9uCnRvIGlkZW50aWZ5IGEgZGV2aWNlIGFuZC9vciB1c2VyLCBz aW5jZSB0aGlzIDMyYml0IHNlY3JldCBpcyBvbmx5CnNldCBhdCBib290IHRpbWUuCgpSZWFsbHks IHVzaW5nIGpoYXNoKCkgdG8gZ2VuZXJhdGUgY29va2llcyBzZW50IG9uIHRoZSB3aXJlCmlzIGEg c2VyaW91cyBzZWN1cml0eSBjb25jZXJuLgoKVHJ5aW5nIHRvIGNoYW5nZSB0aGUgcm9sMzIoaGFz aCwgMTYpIGluIGlwNl9tYWtlX2Zsb3dsYWJlbCgpIHdvdWxkIGJlCmEgZGVhZCBlbmQuIFRyeWlu ZyB0byBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBzZWNyZXQgKGxpa2UgaW4gc2NoX3NmcS5jKQpj b3VsZCBjaGFuZ2UgcGF0aHMgdGFrZW4gaW4gdGhlIG5ldHdvcmsgZm9yIGxvbmcgbGl2ZWQgZmxv d3MuCgpMZXQncyBzd2l0Y2ggdG8gc2lwaGFzaCwgYXMgd2UgZGlkIGluIGNvbW1pdCBkZjQ1Mzcw MGU4ZDgKKCJpbmV0OiBzd2l0Y2ggSVAgSUQgZ2VuZXJhdG9yIHRvIHNpcGhhc2giKQoKVXNpbmcg YSBjcnlwdG9ncmFwaGljYWxseSBzdHJvbmcgcHNldWRvIHJhbmRvbSBmdW5jdGlvbiB3aWxsIHNv bHZlIHRoaXMKcHJpdmFjeSBpc3N1ZSBhbmQgbW9yZSBnZW5lcmFsbHkgcmVtb3ZlIG90aGVyIHdl YWsgcG9pbnRzIGluIHRoZSBzdGFjay4KClBhY2tldCBzY2hlZHVsZXJzIHVzaW5nIHNrYl9nZXRf aGFzaF9wZXJ0dXJiKCkgYmVuZWZpdCBmcm9tIHRoaXMgY2hhbmdlLgoKRml4ZXM6IGI1Njc3NDE2 M2Y5OSAoImlwdjY6IEVuYWJsZSBhdXRvIGZsb3cgbGFiZWxzIGJ5IGRlZmF1bHQiKQpGaXhlczog NDIyNDA5MDFmN2M0ICgiaXB2NjogSW1wbGVtZW50IGRpZmZlcmVudCBhZG1pbiBtb2RlcyBmb3Ig YXV0b21hdGljIGZsb3cgbGFiZWxzIikKRml4ZXM6IDY3ODAwZjliMWY0ZSAoImlwdjY6IENhbGwg c2tiX2dldF9oYXNoX2Zsb3dpNiB0byBnZXQgc2tiLT5oYXNoIGluIGlwNl9tYWtlX2Zsb3dsYWJl bCIpCkZpeGVzOiBjYjFjZTJlZjM4N2IgKCJpcHY2OiBJbXBsZW1lbnQgYXV0b21hdGljIGZsb3cg bGFiZWwgZ2VuZXJhdGlvbiBvbiB0cmFuc21pdCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEpvbmF0aGFuIEJlcmdlciA8am9u YXRoYW5uMUB3YWxsYS5jb20+ClJlcG9ydGVkLWJ5OiBBbWl0IEtsZWluIDxha3NlY3VyaXR5QGdt YWlsLmNvbT4KUmVwb3J0ZWQtYnk6IEJlbm55IFBpbmthcyA8YmVubnlAcGlua2FzLm5ldD4KQ2M6 IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9za2J1ZmYu aCAgICAgICB8ICAzICsrLQogaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaCB8ICAzICsrLQog aW5jbHVkZS9uZXQvZnEuaCAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL25ldC9mcV9pbXBs LmggICAgICAgIHwgIDQgKystLQogbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYyAgICB8IDM4ICsr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbmV0L3NjaGVkL3NjaF9oaGYuYyAg ICAgICAgICB8ICA4ICsrKystLS0tCiBuZXQvc2NoZWQvc2NoX3NmYi5jICAgICAgICAgIHwgMTMg KysrKysrLS0tLS0tCiBuZXQvc2NoZWQvc2NoX3NmcS5jICAgICAgICAgIHwgMTQgKysrKysrKy0t LS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oIGIvaW5jbHVkZS9saW51eC9za2J1 ZmYuaAppbmRleCA3YTY4M2VhNDA5ZmUuLjgwYzNkYTFhYThiMSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCkBAIC0xMjUxLDcg KzEyNTEsOCBAQCBzdGF0aWMgaW5saW5lIF9fdTMyIHNrYl9nZXRfaGFzaF9mbG93aTYoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IGZsb3dpNgogCXJldHVybiBza2ItPmhhc2g7CiB9 CiAKLV9fdTMyIHNrYl9nZXRfaGFzaF9wZXJ0dXJiKGNvbnN0IHN0cnVjdCBza19idWZmICpza2Is IHUzMiBwZXJ0dXJiKTsKK19fdTMyIHNrYl9nZXRfaGFzaF9wZXJ0dXJiKGNvbnN0IHN0cnVjdCBz a19idWZmICpza2IsCisJCQkgICBjb25zdCBzaXBoYXNoX2tleV90ICpwZXJ0dXJiKTsKIAogc3Rh dGljIGlubGluZSBfX3UzMiBza2JfZ2V0X2hhc2hfcmF3KGNvbnN0IHN0cnVjdCBza19idWZmICpz a2IpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oIGIvaW5jbHVk ZS9uZXQvZmxvd19kaXNzZWN0b3IuaAppbmRleCA2YTQ1ODZkY2RlZGUuLjQ2MThjYmJlMzYzMiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaAorKysgYi9pbmNsdWRlL25l dC9mbG93X2Rpc3NlY3Rvci5oCkBAIC00LDYgKzQsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4KICNpbmNsdWRlIDxsaW51eC9pbjYuaD4KKyNpbmNsdWRlIDxsaW51eC9zaXBoYXNoLmg+ CiAjaW5jbHVkZSA8dWFwaS9saW51eC9pZl9ldGhlci5oPgogCiAvKioKQEAgLTI1Miw3ICsyNTMs NyBAQCBzdHJ1Y3QgZmxvd19rZXlzX2Jhc2ljIHsKIHN0cnVjdCBmbG93X2tleXMgewogCXN0cnVj dCBmbG93X2Rpc3NlY3Rvcl9rZXlfY29udHJvbCBjb250cm9sOwogI2RlZmluZSBGTE9XX0tFWVNf SEFTSF9TVEFSVF9GSUVMRCBiYXNpYwotCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfYmFzaWMg YmFzaWM7CisJc3RydWN0IGZsb3dfZGlzc2VjdG9yX2tleV9iYXNpYyBiYXNpYyBfX2FsaWduZWQo U0lQSEFTSF9BTElHTk1FTlQpOwogCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfdGFncyB0YWdz OwogCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfdmxhbiB2bGFuOwogCXN0cnVjdCBmbG93X2Rp c3NlY3Rvcl9rZXlfdmxhbiBjdmxhbjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2ZxLmggYi9p bmNsdWRlL25ldC9mcS5oCmluZGV4IGFjOTQ0YTY4Njg0MC4uYzUxYmU1MGUxMzQ5IDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC9mcS5oCisrKyBiL2luY2x1ZGUvbmV0L2ZxLmgKQEAgLTcwLDcgKzcw LDcgQEAgc3RydWN0IGZxIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGJhY2tsb2dzOwogCXNwaW5sb2Nr X3QgbG9jazsKIAl1MzIgZmxvd3NfY250OwotCXUzMiBwZXJ0dXJiYXRpb247CisJc2lwaGFzaF9r ZXlfdAlwZXJ0dXJiYXRpb247CiAJdTMyIGxpbWl0OwogCXUzMiBtZW1vcnlfbGltaXQ7CiAJdTMy IG1lbW9yeV91c2FnZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2ZxX2ltcGwuaCBiL2luY2x1 ZGUvbmV0L2ZxX2ltcGwuaAppbmRleCBiZTdjMGZhYjM0NzguLjg5YTAxMjkwNWVmMCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9uZXQvZnFfaW1wbC5oCisrKyBiL2luY2x1ZGUvbmV0L2ZxX2ltcGwuaApA QCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZnFfZmxvdyAqZnFfZmxvd19jbGFzc2lm eShzdHJ1Y3QgZnEgKmZxLAogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZnEtPmxvY2spOwogCi0J aGFzaCA9IHNrYl9nZXRfaGFzaF9wZXJ0dXJiKHNrYiwgZnEtPnBlcnR1cmJhdGlvbik7CisJaGFz aCA9IHNrYl9nZXRfaGFzaF9wZXJ0dXJiKHNrYiwgJmZxLT5wZXJ0dXJiYXRpb24pOwogCWlkeCA9 IHJlY2lwcm9jYWxfc2NhbGUoaGFzaCwgZnEtPmZsb3dzX2NudCk7CiAJZmxvdyA9ICZmcS0+Zmxv d3NbaWR4XTsKIApAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBpbnQgZnFfaW5pdChzdHJ1Y3Qg ZnEgKmZxLCBpbnQgZmxvd3NfY250KQogCUlOSVRfTElTVF9IRUFEKCZmcS0+YmFja2xvZ3MpOwog CXNwaW5fbG9ja19pbml0KCZmcS0+bG9jayk7CiAJZnEtPmZsb3dzX2NudCA9IG1heF90KHUzMiwg Zmxvd3NfY250LCAxKTsKLQlmcS0+cGVydHVyYmF0aW9uID0gcHJhbmRvbV91MzIoKTsKKwlnZXRf cmFuZG9tX2J5dGVzKCZmcS0+cGVydHVyYmF0aW9uLCBzaXplb2YoZnEtPnBlcnR1cmJhdGlvbikp OwogCWZxLT5xdWFudHVtID0gMzAwOwogCWZxLT5saW1pdCA9IDgxOTI7CiAJZnEtPm1lbW9yeV9s aW1pdCA9IDE2IDw8IDIwOyAvKiAxNiBNQnl0ZXMgKi8KZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Zs b3dfZGlzc2VjdG9yLmMgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCmluZGV4IDQxNWI5NWY3 NmI2Ni4uNDM2MmZmZTliNWVmIDEwMDY0NAotLS0gYS9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5j CisrKyBiL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKQEAgLTEwNzcsMzAgKzEwNzcsMjEgQEAg Ym9vbCBfX3NrYl9mbG93X2Rpc3NlY3QoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIH0KIEVY UE9SVF9TWU1CT0woX19za2JfZmxvd19kaXNzZWN0KTsKIAotc3RhdGljIHUzMiBoYXNocm5kIF9f cmVhZF9tb3N0bHk7CitzdGF0aWMgc2lwaGFzaF9rZXlfdCBoYXNocm5kIF9fcmVhZF9tb3N0bHk7 CiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgX19mbG93X2hhc2hfc2VjcmV0X2luaXQodm9p ZCkKIHsKIAluZXRfZ2V0X3JhbmRvbV9vbmNlKCZoYXNocm5kLCBzaXplb2YoaGFzaHJuZCkpOwog fQogCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHUzMiBfX2Zsb3dfaGFzaF93b3Jkcyhjb25zdCB1 MzIgKndvcmRzLCB1MzIgbGVuZ3RoLAotCQkJCQkgICAgIHUzMiBrZXl2YWwpCitzdGF0aWMgY29u c3Qgdm9pZCAqZmxvd19rZXlzX2hhc2hfc3RhcnQoY29uc3Qgc3RydWN0IGZsb3dfa2V5cyAqZmxv dykKIHsKLQlyZXR1cm4gamhhc2gyKHdvcmRzLCBsZW5ndGgsIGtleXZhbCk7Ci19Ci0KLXN0YXRp YyBpbmxpbmUgY29uc3QgdTMyICpmbG93X2tleXNfaGFzaF9zdGFydChjb25zdCBzdHJ1Y3QgZmxv d19rZXlzICpmbG93KQotewotCWNvbnN0IHZvaWQgKnAgPSBmbG93OwotCi0JQlVJTERfQlVHX09O KEZMT1dfS0VZU19IQVNIX09GRlNFVCAlIHNpemVvZih1MzIpKTsKLQlyZXR1cm4gKGNvbnN0IHUz MiAqKShwICsgRkxPV19LRVlTX0hBU0hfT0ZGU0VUKTsKKwlCVUlMRF9CVUdfT04oRkxPV19LRVlT X0hBU0hfT0ZGU0VUICUgU0lQSEFTSF9BTElHTk1FTlQpOworCXJldHVybiAmZmxvdy0+RkxPV19L RVlTX0hBU0hfU1RBUlRfRklFTEQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGZsb3dfa2V5 c19oYXNoX2xlbmd0aChjb25zdCBzdHJ1Y3QgZmxvd19rZXlzICpmbG93KQogewogCXNpemVfdCBk aWZmID0gRkxPV19LRVlTX0hBU0hfT0ZGU0VUICsgc2l6ZW9mKGZsb3ctPmFkZHJzKTsKLQlCVUlM RF9CVUdfT04oKHNpemVvZigqZmxvdykgLSBGTE9XX0tFWVNfSEFTSF9PRkZTRVQpICUgc2l6ZW9m KHUzMikpOwogCUJVSUxEX0JVR19PTihvZmZzZXRvZih0eXBlb2YoKmZsb3cpLCBhZGRycykgIT0K IAkJICAgICBzaXplb2YoKmZsb3cpIC0gc2l6ZW9mKGZsb3ctPmFkZHJzKSk7CiAKQEAgLTExMTUs NyArMTEwNiw3IEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGZsb3dfa2V5c19oYXNoX2xlbmd0aChj b25zdCBzdHJ1Y3QgZmxvd19rZXlzICpmbG93KQogCQlkaWZmIC09IHNpemVvZihmbG93LT5hZGRy cy50aXBja2V5KTsKIAkJYnJlYWs7CiAJfQotCXJldHVybiAoc2l6ZW9mKCpmbG93KSAtIGRpZmYp IC8gc2l6ZW9mKHUzMik7CisJcmV0dXJuIHNpemVvZigqZmxvdykgLSBkaWZmOwogfQogCiBfX2Jl MzIgZmxvd19nZXRfdTMyX3NyYyhjb25zdCBzdHJ1Y3QgZmxvd19rZXlzICpmbG93KQpAQCAtMTE4 MSwxNCArMTE3MiwxNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19mbG93X2hhc2hfY29uc2lzdGVu dGlmeShzdHJ1Y3QgZmxvd19rZXlzICprZXlzKQogCX0KIH0KIAotc3RhdGljIGlubGluZSB1MzIg X19mbG93X2hhc2hfZnJvbV9rZXlzKHN0cnVjdCBmbG93X2tleXMgKmtleXMsIHUzMiBrZXl2YWwp CitzdGF0aWMgaW5saW5lIHUzMiBfX2Zsb3dfaGFzaF9mcm9tX2tleXMoc3RydWN0IGZsb3dfa2V5 cyAqa2V5cywKKwkJCQkJY29uc3Qgc2lwaGFzaF9rZXlfdCAqa2V5dmFsKQogewogCXUzMiBoYXNo OwogCiAJX19mbG93X2hhc2hfY29uc2lzdGVudGlmeShrZXlzKTsKIAotCWhhc2ggPSBfX2Zsb3df aGFzaF93b3JkcyhmbG93X2tleXNfaGFzaF9zdGFydChrZXlzKSwKLQkJCQkgZmxvd19rZXlzX2hh c2hfbGVuZ3RoKGtleXMpLCBrZXl2YWwpOworCWhhc2ggPSBzaXBoYXNoKGZsb3dfa2V5c19oYXNo X3N0YXJ0KGtleXMpLAorCQkgICAgICAgZmxvd19rZXlzX2hhc2hfbGVuZ3RoKGtleXMpLCBrZXl2 YWwpOwogCWlmICghaGFzaCkKIAkJaGFzaCA9IDE7CiAKQEAgLTExOTgsMTIgKzExOTAsMTMgQEAg c3RhdGljIGlubGluZSB1MzIgX19mbG93X2hhc2hfZnJvbV9rZXlzKHN0cnVjdCBmbG93X2tleXMg KmtleXMsIHUzMiBrZXl2YWwpCiB1MzIgZmxvd19oYXNoX2Zyb21fa2V5cyhzdHJ1Y3QgZmxvd19r ZXlzICprZXlzKQogewogCV9fZmxvd19oYXNoX3NlY3JldF9pbml0KCk7Ci0JcmV0dXJuIF9fZmxv d19oYXNoX2Zyb21fa2V5cyhrZXlzLCBoYXNocm5kKTsKKwlyZXR1cm4gX19mbG93X2hhc2hfZnJv bV9rZXlzKGtleXMsICZoYXNocm5kKTsKIH0KIEVYUE9SVF9TWU1CT0woZmxvd19oYXNoX2Zyb21f a2V5cyk7CiAKIHN0YXRpYyBpbmxpbmUgdTMyIF9fX3NrYl9nZXRfaGFzaChjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAotCQkJCSAgc3RydWN0IGZsb3dfa2V5cyAqa2V5cywgdTMyIGtleXZhbCkK KwkJCQkgIHN0cnVjdCBmbG93X2tleXMgKmtleXMsCisJCQkJICBjb25zdCBzaXBoYXNoX2tleV90 ICprZXl2YWwpCiB7CiAJc2tiX2Zsb3dfZGlzc2VjdF9mbG93X2tleXMoc2tiLCBrZXlzLAogCQkJ CSAgIEZMT1dfRElTU0VDVE9SX0ZfU1RPUF9BVF9GTE9XX0xBQkVMKTsKQEAgLTEyNTEsNyArMTI0 NCw3IEBAIHUzMiBfX3NrYl9nZXRfaGFzaF9zeW1tZXRyaWMoY29uc3Qgc3RydWN0IHNrX2J1ZmYg KnNrYikKIAkJCSAgIE5VTEwsIDAsIDAsIDAsCiAJCQkgICBGTE9XX0RJU1NFQ1RPUl9GX1NUT1Bf QVRfRkxPV19MQUJFTCk7CiAKLQlyZXR1cm4gX19mbG93X2hhc2hfZnJvbV9rZXlzKCZrZXlzLCBo YXNocm5kKTsKKwlyZXR1cm4gX19mbG93X2hhc2hfZnJvbV9rZXlzKCZrZXlzLCAmaGFzaHJuZCk7 CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChfX3NrYl9nZXRfaGFzaF9zeW1tZXRyaWMpOwogCkBAIC0x MjcxLDEzICsxMjY0LDE0IEBAIHZvaWQgX19za2JfZ2V0X2hhc2goc3RydWN0IHNrX2J1ZmYgKnNr YikKIAogCV9fZmxvd19oYXNoX3NlY3JldF9pbml0KCk7CiAKLQloYXNoID0gX19fc2tiX2dldF9o YXNoKHNrYiwgJmtleXMsIGhhc2hybmQpOworCWhhc2ggPSBfX19za2JfZ2V0X2hhc2goc2tiLCAm a2V5cywgJmhhc2hybmQpOwogCiAJX19za2Jfc2V0X3N3X2hhc2goc2tiLCBoYXNoLCBmbG93X2tl eXNfaGF2ZV9sNCgma2V5cykpOwogfQogRVhQT1JUX1NZTUJPTChfX3NrYl9nZXRfaGFzaCk7CiAK LV9fdTMyIHNrYl9nZXRfaGFzaF9wZXJ0dXJiKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHUz MiBwZXJ0dXJiKQorX191MzIgc2tiX2dldF9oYXNoX3BlcnR1cmIoY29uc3Qgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKKwkJCSAgIGNvbnN0IHNpcGhhc2hfa2V5X3QgKnBlcnR1cmIpCiB7CiAJc3RydWN0 IGZsb3dfa2V5cyBrZXlzOwogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2hoZi5jIGIvbmV0 L3NjaGVkL3NjaF9oaGYuYwppbmRleCBhODBmZThhYTg1MjcuLmM1M2I3MjA2NzRjNiAxMDA2NDQK LS0tIGEvbmV0L3NjaGVkL3NjaF9oaGYuYworKysgYi9uZXQvc2NoZWQvc2NoX2hoZi5jCkBAIC00 LDExICs0LDExIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTmFuZGl0YSBEdWtraXBhdGkgPG5h bmRpdGFkQGdvb2dsZS5jb20+CiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2poYXNoLmg+CiAjaW5j bHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1 ZGUgPGxpbnV4L3NrYnVmZi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRl IDxsaW51eC9zaXBoYXNoLmg+CiAjaW5jbHVkZSA8bmV0L3BrdF9zY2hlZC5oPgogI2luY2x1ZGUg PG5ldC9zb2NrLmg+CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdHJ1Y3Qgd2Rycl9idWNrZXQgewog CiBzdHJ1Y3QgaGhmX3NjaGVkX2RhdGEgewogCXN0cnVjdCB3ZHJyX2J1Y2tldCBidWNrZXRzW1dE UlJfQlVDS0VUX0NOVF07Ci0JdTMyCQkgICBwZXJ0dXJiYXRpb247ICAgLyogaGFzaCBwZXJ0dXJi YXRpb24gKi8KKwlzaXBoYXNoX2tleV90CSAgIHBlcnR1cmJhdGlvbjsgICAvKiBoYXNoIHBlcnR1 cmJhdGlvbiAqLwogCXUzMgkJICAgcXVhbnR1bTsgICAgICAgIC8qIHBzY2hlZF9tdHUocWRpc2Nf ZGV2KHNjaCkpOyAqLwogCXUzMgkJICAgZHJvcF9vdmVybGltaXQ7IC8qIG51bWJlciBvZiB0aW1l cyBtYXggcWRpc2MgcGFja2V0CiAJCQkJCSAgICAqIGxpbWl0IHdhcyBoaXQKQEAgLTI2Myw3ICsy NjMsNyBAQCBzdGF0aWMgZW51bSB3ZHJyX2J1Y2tldF9pZHggaGhmX2NsYXNzaWZ5KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoKQogCX0KIAogCS8qIEdldCBoYXNoZWQgZmxv dy1pZCBvZiB0aGUgc2tiLiAqLwotCWhhc2ggPSBza2JfZ2V0X2hhc2hfcGVydHVyYihza2IsIHEt PnBlcnR1cmJhdGlvbik7CisJaGFzaCA9IHNrYl9nZXRfaGFzaF9wZXJ0dXJiKHNrYiwgJnEtPnBl cnR1cmJhdGlvbik7CiAKIAkvKiBDaGVjayBpZiB0aGlzIHBhY2tldCBiZWxvbmdzIHRvIGFuIGFs cmVhZHkgZXN0YWJsaXNoZWQgSEggZmxvdy4gKi8KIAlmbG93X3BvcyA9IGhhc2ggJiBISEZfQklU X01BU0s7CkBAIC01ODAsNyArNTgwLDcgQEAgc3RhdGljIGludCBoaGZfaW5pdChzdHJ1Y3QgUWRp c2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LAogCiAJc2NoLT5saW1pdCA9IDEwMDA7CiAJcS0+ cXVhbnR1bSA9IHBzY2hlZF9tdHUocWRpc2NfZGV2KHNjaCkpOwotCXEtPnBlcnR1cmJhdGlvbiA9 IHByYW5kb21fdTMyKCk7CisJZ2V0X3JhbmRvbV9ieXRlcygmcS0+cGVydHVyYmF0aW9uLCBzaXpl b2YocS0+cGVydHVyYmF0aW9uKSk7CiAJSU5JVF9MSVNUX0hFQUQoJnEtPm5ld19idWNrZXRzKTsK IAlJTklUX0xJU1RfSEVBRCgmcS0+b2xkX2J1Y2tldHMpOwogCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvc2NoX3NmYi5jIGIvbmV0L3NjaGVkL3NjaF9zZmIuYwppbmRleCA3Y2JkYWQ4NDE5YjcuLjFh YTk1ZTc2MTY3MSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9zZmIuYworKysgYi9uZXQvc2No ZWQvc2NoX3NmYi5jCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4K ICNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KLSNp bmNsdWRlIDxsaW51eC9qaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3NpcGhhc2guaD4KICNpbmNs dWRlIDxuZXQvaXAuaD4KICNpbmNsdWRlIDxuZXQvcGt0X3NjaGVkLmg+CiAjaW5jbHVkZSA8bmV0 L3BrdF9jbHMuaD4KQEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IHNmYl9idWNrZXQgewogICogKFNl Y3Rpb24gNC40IG9mIFNGQiByZWZlcmVuY2UgOiBtb3ZpbmcgaGFzaCBmdW5jdGlvbnMpCiAgKi8K IHN0cnVjdCBzZmJfYmlucyB7Ci0JdTMyCQkgIHBlcnR1cmJhdGlvbjsgLyogamhhc2ggcGVydHVy YmF0aW9uICovCisJc2lwaGFzaF9rZXlfdAkgIHBlcnR1cmJhdGlvbjsgLyogc2lwaGFzaCBrZXkg Ki8KIAlzdHJ1Y3Qgc2ZiX2J1Y2tldCBiaW5zW1NGQl9MRVZFTFNdW1NGQl9OVU1CVUNLRVRTXTsK IH07CiAKQEAgLTIyMSw3ICsyMjEsOCBAQCBzdGF0aWMgdTMyIHNmYl9jb21wdXRlX3FsZW4odTMy ICpwcm9iX3IsIHUzMiAqYXZncG1fciwgY29uc3Qgc3RydWN0IHNmYl9zY2hlZF9kYQogCiBzdGF0 aWMgdm9pZCBzZmJfaW5pdF9wZXJ0dXJiYXRpb24odTMyIHNsb3QsIHN0cnVjdCBzZmJfc2NoZWRf ZGF0YSAqcSkKIHsKLQlxLT5iaW5zW3Nsb3RdLnBlcnR1cmJhdGlvbiA9IHByYW5kb21fdTMyKCk7 CisJZ2V0X3JhbmRvbV9ieXRlcygmcS0+Ymluc1tzbG90XS5wZXJ0dXJiYXRpb24sCisJCQkgc2l6 ZW9mKHEtPmJpbnNbc2xvdF0ucGVydHVyYmF0aW9uKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNmYl9z d2FwX3Nsb3Qoc3RydWN0IHNmYl9zY2hlZF9kYXRhICpxKQpAQCAtMzE4LDkgKzMxOSw5IEBAIHN0 YXRpYyBpbnQgc2ZiX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpz Y2gsCiAJCS8qIElmIHVzaW5nIGV4dGVybmFsIGNsYXNzaWZpZXJzLCBnZXQgcmVzdWx0IGFuZCBy ZWNvcmQgaXQuICovCiAJCWlmICghc2ZiX2NsYXNzaWZ5KHNrYiwgZmwsICZyZXQsICZzYWx0KSkK IAkJCWdvdG8gb3RoZXJfZHJvcDsKLQkJc2ZiaGFzaCA9IGpoYXNoXzF3b3JkKHNhbHQsIHEtPmJp bnNbc2xvdF0ucGVydHVyYmF0aW9uKTsKKwkJc2ZiaGFzaCA9IHNpcGhhc2hfMXUzMihzYWx0LCAm cS0+Ymluc1tzbG90XS5wZXJ0dXJiYXRpb24pOwogCX0gZWxzZSB7Ci0JCXNmYmhhc2ggPSBza2Jf Z2V0X2hhc2hfcGVydHVyYihza2IsIHEtPmJpbnNbc2xvdF0ucGVydHVyYmF0aW9uKTsKKwkJc2Zi aGFzaCA9IHNrYl9nZXRfaGFzaF9wZXJ0dXJiKHNrYiwgJnEtPmJpbnNbc2xvdF0ucGVydHVyYmF0 aW9uKTsKIAl9CiAKIApAQCAtMzU2LDcgKzM1Nyw3IEBAIHN0YXRpYyBpbnQgc2ZiX2VucXVldWUo c3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsCiAJCS8qIEluZWxhc3RpYyBm bG93ICovCiAJCWlmIChxLT5kb3VibGVfYnVmZmVyaW5nKSB7CiAJCQlzZmJoYXNoID0gc2tiX2dl dF9oYXNoX3BlcnR1cmIoc2tiLAotCQkJICAgIHEtPmJpbnNbc2xvdF0ucGVydHVyYmF0aW9uKTsK KwkJCSAgICAmcS0+Ymluc1tzbG90XS5wZXJ0dXJiYXRpb24pOwogCQkJaWYgKCFzZmJoYXNoKQog CQkJCXNmYmhhc2ggPSAxOwogCQkJc2ZiX3NrYl9jYihza2IpLT5oYXNoZXNbc2xvdF0gPSBzZmJo YXNoOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9zZnEuYyBiL25ldC9zY2hlZC9zY2hfc2Zx LmMKaW5kZXggNjUwZjIxNDYzODUzLi5kNDgzZDZiYTU5YjcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9zY2hfc2ZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwpAQCAtMTgsNyArMTgsNyBAQAog I2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1 ZGUgPGxpbnV4L3NrYnVmZi5oPgotI2luY2x1ZGUgPGxpbnV4L2poYXNoLmg+CisjaW5jbHVkZSA8 bGludXgvc2lwaGFzaC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51 eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bmV0L25ldGxpbmsuaD4KQEAgLTEyMSw3ICsxMjEsNyBA QCBzdHJ1Y3Qgc2ZxX3NjaGVkX2RhdGEgewogCXU4CQloZWFkZHJvcDsKIAl1OAkJbWF4ZGVwdGg7 CS8qIGxpbWl0IG9mIHBhY2tldHMgcGVyIGZsb3cgKi8KIAotCXUzMgkJcGVydHVyYmF0aW9uOwor CXNpcGhhc2hfa2V5X3QgCXBlcnR1cmJhdGlvbjsKIAl1OAkJY3VyX2RlcHRoOwkvKiBkZXB0aCBv ZiBsb25nZXN0IHNsb3QgKi8KIAl1OAkJZmxhZ3M7CiAJdW5zaWduZWQgc2hvcnQgIHNjYWxlZF9x dWFudHVtOyAvKiBTRlFfQUxMT1RfU0laRShxdWFudHVtKSAqLwpAQCAtMTYxLDcgKzE2MSw3IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IHNmcV9oZWFkICpzZnFfZGVwX2hlYWQoc3RydWN0IHNmcV9z Y2hlZF9kYXRhICpxLCBzZnFfaW5kZXgKIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2ZxX2hhc2goY29u c3Qgc3RydWN0IHNmcV9zY2hlZF9kYXRhICpxLAogCQkJICAgICBjb25zdCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogewotCXJldHVybiBza2JfZ2V0X2hhc2hfcGVydHVyYihza2IsIHEtPnBlcnR1cmJh dGlvbikgJiAocS0+ZGl2aXNvciAtIDEpOworCXJldHVybiBza2JfZ2V0X2hhc2hfcGVydHVyYihz a2IsICZxLT5wZXJ0dXJiYXRpb24pICYgKHEtPmRpdmlzb3IgLSAxKTsKIH0KIAogc3RhdGljIHVu c2lnbmVkIGludCBzZnFfY2xhc3NpZnkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNj ICpzY2gsCkBAIC02MTEsOSArNjExLDExIEBAIHN0YXRpYyB2b2lkIHNmcV9wZXJ0dXJiYXRpb24o c3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJc3RydWN0IHNmcV9zY2hlZF9kYXRhICpxID0gZnJvbV90 aW1lcihxLCB0LCBwZXJ0dXJiX3RpbWVyKTsKIAlzdHJ1Y3QgUWRpc2MgKnNjaCA9IHEtPnNjaDsK IAlzcGlubG9ja190ICpyb290X2xvY2sgPSBxZGlzY19sb2NrKHFkaXNjX3Jvb3Rfc2xlZXBpbmco c2NoKSk7CisJc2lwaGFzaF9rZXlfdCBua2V5OwogCisJZ2V0X3JhbmRvbV9ieXRlcygmbmtleSwg c2l6ZW9mKG5rZXkpKTsKIAlzcGluX2xvY2socm9vdF9sb2NrKTsKLQlxLT5wZXJ0dXJiYXRpb24g PSBwcmFuZG9tX3UzMigpOworCXEtPnBlcnR1cmJhdGlvbiA9IG5rZXk7CiAJaWYgKCFxLT5maWx0 ZXJfbGlzdCAmJiBxLT50YWlsKQogCQlzZnFfcmVoYXNoKHNjaCk7CiAJc3Bpbl91bmxvY2socm9v dF9sb2NrKTsKQEAgLTY5Miw3ICs2OTQsNyBAQCBzdGF0aWMgaW50IHNmcV9jaGFuZ2Uoc3RydWN0 IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkKIAlkZWxfdGltZXIoJnEtPnBlcnR1cmJf dGltZXIpOwogCWlmIChxLT5wZXJ0dXJiX3BlcmlvZCkgewogCQltb2RfdGltZXIoJnEtPnBlcnR1 cmJfdGltZXIsIGppZmZpZXMgKyBxLT5wZXJ0dXJiX3BlcmlvZCk7Ci0JCXEtPnBlcnR1cmJhdGlv biA9IHByYW5kb21fdTMyKCk7CisJCWdldF9yYW5kb21fYnl0ZXMoJnEtPnBlcnR1cmJhdGlvbiwg c2l6ZW9mKHEtPnBlcnR1cmJhdGlvbikpOwogCX0KIAlzY2hfdHJlZV91bmxvY2soc2NoKTsKIAlr ZnJlZShwKTsKQEAgLTc0OSw3ICs3NTEsNyBAQCBzdGF0aWMgaW50IHNmcV9pbml0KHN0cnVjdCBR ZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsCiAJcS0+cXVhbnR1bSA9IHBzY2hlZF9tdHUo cWRpc2NfZGV2KHNjaCkpOwogCXEtPnNjYWxlZF9xdWFudHVtID0gU0ZRX0FMTE9UX1NJWkUocS0+ cXVhbnR1bSk7CiAJcS0+cGVydHVyYl9wZXJpb2QgPSAwOwotCXEtPnBlcnR1cmJhdGlvbiA9IHBy YW5kb21fdTMyKCk7CisJZ2V0X3JhbmRvbV9ieXRlcygmcS0+cGVydHVyYmF0aW9uLCBzaXplb2Yo cS0+cGVydHVyYmF0aW9uKSk7CiAKIAlpZiAob3B0KSB7CiAJCWludCBlcnIgPSBzZnFfY2hhbmdl KHNjaCwgb3B0KTsKLS0gCjIuMjAuMQoK ----Next_Part(Mon_Nov__4_17_51_59_2019_455)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_53.mbox" RnJvbSAwNDBmYTI3N2Y5MzJmYzI2OTJiMDYyZWY5NTY2MjMwOGJjYTExY2Y0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaXNoYWwgS3Vsa2FybmkgPHZpc2hhbEBjaGVsc2lvLmNvbT4K RGF0ZTogV2VkLCAzMCBPY3QgMjAxOSAyMDoxNzo1NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMDEv NTVdIGN4Z2I0OiBmaXggcGFuaWMgd2hlbiBhdHRhY2hpbmcgdG8gVUxEIGZhaWwKClsgVXBzdHJl YW0gY29tbWl0IGZjODljYzM1OGZiNjRlMjQyOWFlYWUwZjM3OTA2MTI2NjM2NTA3ZWMgXQoKUmVs ZWFzZSByZXNvdXJjZXMgd2hlbiBhdHRhY2hpbmcgdG8gVUxEIGZhaWwuIE90aGVyd2lzZSwgZGF0 YQptaXNtYXRjaCBpcyBzZWVuIGJldHdlZW4gTExEIGFuZCBVTEQgbGF0ZXIgb24sIHdoaWNoIGxl YWQgdG8Ka2VybmVsIHBhbmljIHdoZW4gYWNjZXNzaW5nIHJlc291cmNlcyB0aGF0IHNob3VsZCBu b3QgZXZlbgpleGlzdCBpbiB0aGUgZmlyc3QgcGxhY2UuCgpGaXhlczogOTRjZGI4YmI5OTNhICgi Y3hnYjQ6IEFkZCBzdXBwb3J0IGZvciBkeW5hbWljIGFsbG9jYXRpb24gb2YgcmVzb3VyY2VzIGZv ciBVTEQiKQpTaWduZWQtb2ZmLWJ5OiBTaGFoamFkYSBBYnVsIEh1c2FpbiA8c2hhaGphZGFAY2hl bHNpby5jb20+ClNpZ25lZC1vZmYtYnk6IFZpc2hhbCBLdWxrYXJuaSA8dmlzaGFsQGNoZWxzaW8u Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3VsZC5jICAgIHwgMjgg KysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v Y3hnYjQvY3hnYjRfdWxkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4 Z2I0X3VsZC5jCmluZGV4IGE0ZGVhZDRhYjBlZC4uODZiNTI4ZDgzNjRjIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3VsZC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdWxkLmMKQEAgLTY5NSwxMCArNjk1 LDEwIEBAIHN0YXRpYyB2b2lkIHVsZF9pbml0KHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qg Y3hnYjRfbGxkX2luZm8gKmxsZCkKIAlsbGQtPndyaXRlX2NtcGxfc3VwcG9ydCA9IGFkYXAtPnBh cmFtcy53cml0ZV9jbXBsX3N1cHBvcnQ7CiB9CiAKLXN0YXRpYyB2b2lkIHVsZF9hdHRhY2goc3Ry dWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB1bGQpCitzdGF0aWMgaW50IHVsZF9hdHRh Y2goc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB1bGQpCiB7Ci0Jdm9pZCAqaGFu ZGxlOwogCXN0cnVjdCBjeGdiNF9sbGRfaW5mbyBsbGk7CisJdm9pZCAqaGFuZGxlOwogCiAJdWxk X2luaXQoYWRhcCwgJmxsaSk7CiAJdWxkX3F1ZXVlX2luaXQoYWRhcCwgdWxkLCAmbGxpKTsKQEAg LTcwOCw3ICs3MDgsNyBAQCBzdGF0aWMgdm9pZCB1bGRfYXR0YWNoKHN0cnVjdCBhZGFwdGVyICph ZGFwLCB1bnNpZ25lZCBpbnQgdWxkKQogCQlkZXZfd2FybihhZGFwLT5wZGV2X2RldiwKIAkJCSAi Y291bGQgbm90IGF0dGFjaCB0byB0aGUgJXMgZHJpdmVyLCBlcnJvciAlbGRcbiIsCiAJCQkgYWRh cC0+dWxkW3VsZF0ubmFtZSwgUFRSX0VSUihoYW5kbGUpKTsKLQkJcmV0dXJuOworCQlyZXR1cm4g UFRSX0VSUihoYW5kbGUpOwogCX0KIAogCWFkYXAtPnVsZFt1bGRdLmhhbmRsZSA9IGhhbmRsZTsK QEAgLTcxNiwyMiArNzE2LDIyIEBAIHN0YXRpYyB2b2lkIHVsZF9hdHRhY2goc3RydWN0IGFkYXB0 ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB1bGQpCiAKIAlpZiAoYWRhcC0+ZmxhZ3MgJiBDWEdCNF9G VUxMX0lOSVRfRE9ORSkKIAkJYWRhcC0+dWxkW3VsZF0uc3RhdGVfY2hhbmdlKGhhbmRsZSwgQ1hH QjRfU1RBVEVfVVApOworCisJcmV0dXJuIDA7CiB9CiAKLS8qKgotICoJY3hnYjRfcmVnaXN0ZXJf dWxkIC0gcmVnaXN0ZXIgYW4gdXBwZXItbGF5ZXIgZHJpdmVyCi0gKglAdHlwZTogdGhlIFVMRCB0 eXBlCi0gKglAcDogdGhlIFVMRCBtZXRob2RzCisvKiBjeGdiNF9yZWdpc3Rlcl91bGQgLSByZWdp c3RlciBhbiB1cHBlci1sYXllciBkcml2ZXIKKyAqIEB0eXBlOiB0aGUgVUxEIHR5cGUKKyAqIEBw OiB0aGUgVUxEIG1ldGhvZHMKICAqCi0gKglSZWdpc3RlcnMgYW4gdXBwZXItbGF5ZXIgZHJpdmVy IHdpdGggdGhpcyBkcml2ZXIgYW5kIG5vdGlmaWVzIHRoZSBVTEQKLSAqCWFib3V0IGFueSBwcmVz ZW50bHkgYXZhaWxhYmxlIGRldmljZXMgdGhhdCBzdXBwb3J0IGl0cyB0eXBlLiAgUmV0dXJucwot ICoJJS1FQlVTWSBpZiBhIFVMRCBvZiB0aGUgc2FtZSB0eXBlIGlzIGFscmVhZHkgcmVnaXN0ZXJl ZC4KKyAqIFJlZ2lzdGVycyBhbiB1cHBlci1sYXllciBkcml2ZXIgd2l0aCB0aGlzIGRyaXZlciBh bmQgbm90aWZpZXMgdGhlIFVMRAorICogYWJvdXQgYW55IHByZXNlbnRseSBhdmFpbGFibGUgZGV2 aWNlcyB0aGF0IHN1cHBvcnQgaXRzIHR5cGUuCiAgKi8KIHZvaWQgY3hnYjRfcmVnaXN0ZXJfdWxk KGVudW0gY3hnYjRfdWxkIHR5cGUsCiAJCQljb25zdCBzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnAp CiB7Ci0JaW50IHJldCA9IDA7CiAJc3RydWN0IGFkYXB0ZXIgKmFkYXA7CisJaW50IHJldCA9IDA7 CiAKIAlpZiAodHlwZSA+PSBDWEdCNF9VTERfTUFYKQogCQlyZXR1cm47CkBAIC03NjMsOCArNzYz LDEyIEBAIHZvaWQgY3hnYjRfcmVnaXN0ZXJfdWxkKGVudW0gY3hnYjRfdWxkIHR5cGUsCiAJCWlm IChyZXQpCiAJCQlnb3RvIGZyZWVfaXJxOwogCQlhZGFwLT51bGRbdHlwZV0gPSAqcDsKLQkJdWxk X2F0dGFjaChhZGFwLCB0eXBlKTsKKwkJcmV0ID0gdWxkX2F0dGFjaChhZGFwLCB0eXBlKTsKKwkJ aWYgKHJldCkKKwkJCWdvdG8gZnJlZV90eHE7CiAJCWNvbnRpbnVlOworZnJlZV90eHE6CisJCXJl bGVhc2Vfc2dlX3R4cV91bGQoYWRhcCwgdHlwZSk7CiBmcmVlX2lycToKIAkJaWYgKGFkYXAtPmZs YWdzICYgQ1hHQjRfRlVMTF9JTklUX0RPTkUpCiAJCQlxdWllc2NlX3J4X3VsZChhZGFwLCB0eXBl KTsKLS0gCjIuMjAuMQoKCkZyb20gOWFjODFjYTcxM2ZjYWJlOGI5YzM0MzhlYTk5Y2U5ZDhjY2Y4 NjY4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUmFqdSBSYW5nb2p1IDxyYWp1ckBj aGVsc2lvLmNvbT4KRGF0ZTogV2VkLCAyMyBPY3QgMjAxOSAyMzowMzo1NSArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggMDIvNTVdIGN4Z2I0OiByZXF1ZXN0IHRoZSBUWCBDSURYIHVwZGF0ZXMgdG8gc3Rh dHVzIHBhZ2UKClsgVXBzdHJlYW0gY29tbWl0IDdjM2JlYmMzZDg2ODhiODQ3OTVjMTE4NDhjMzE0 YTJmYmZlMDQ1ZTAgXQoKRm9yIGFkYXB0ZXJzIHdoaWNoIHN1cHBvcnQgdGhlIFNHRSBEb29yYmVs bCBRdWV1ZSBUaW1lciBmYWNpbGl0eSwKd2UgY29uZmlndXJlZCB0aGUgRXRoZXJuZXQgVFggUXVl dWVzIHRvIHNlbmQgQ0lEWCBVcGRhdGVzIHRvIHRoZQpBc3NvY2lhdGVkIEV0aGVybmV0IFJYIFJl c3BvbnNlIFF1ZXVlIHdpdGggQ1BMX1NHRV9FR1JfVVBEQVRFCm1lc3NhZ2VzIHRvIGFsbG93IHVz IHRvIHJlc3BvbmQgbW9yZSBxdWlja2x5IHRvIHRoZSBDSURYIFVwZGF0ZXMuCkJ1dCwgdGhpcyB3 YXMgYWRkaW5nIGxvYWQgdG8gUENJZSBMaW5rIFJYIGJhbmR3aWR0aCBhbmQsCnBvdGVudGlhbGx5 LCByZXN1bHRpbmcgaW4gaGlnaGVyIENQVSBJbnRlcnJ1cHQgbG9hZC4KClRoaXMgcGF0Y2ggcmVx dWVzdHMgdGhlIEhXIHRvIGRlbGl2ZXIgdGhlIENJRFggdXBkYXRlcyB0byB0aGUgVFgKcXVldWUg c3RhdHVzIHBhZ2UgcmF0aGVyIHRoYW4gZ2VuZXJhdGluZyBhbiBpbmdyZXNzIHF1ZXVlIG1lc3Nh Z2UKKGFzIGFuIGludGVycnVwdCkuIFdpdGggdGhpcyBwYXRjaCwgdGhlIGxvYWQgb24gUlggYmFu ZHdpZHRoIGlzCnJlZHVjZWQgYW5kIGEgc3Vic3RhbnRpYWwgaW1wcm92ZW1lbnQgaW4gQlcgaXMg bm90aWNlZCBhdCBsb3dlcgpJTyBzaXplcy4KCkZpeGVzOiBkNDI5MDA1ZmRmMmMgKCJjeGdiNC9j eGdiNHZmOiBBZGQgc3VwcG9ydCBmb3IgU0dFIGRvb3JiZWxsIHF1ZXVlIHRpbWVyIikKU2lnbmVk LW9mZi1ieTogUmFqdSBSYW5nb2p1IDxyYWp1ckBjaGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2NoZWxzaW8vY3hnYjQvc2dlLmMgfCA4ICsrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvc2dlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVs c2lvL2N4Z2I0L3NnZS5jCmluZGV4IGIzZGE4MWU5MDEzMi4uOTI4YmZlYTU0NTdiIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3NnZS5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvc2dlLmMKQEAgLTM3OTEsMTUgKzM3OTEsMTEg QEAgaW50IHQ0X3NnZV9hbGxvY19ldGhfdHhxKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qg c2dlX2V0aF90eHEgKnR4cSwKIAkgKiB3cml0ZSB0aGUgQ0lEWCBVcGRhdGVzIGludG8gdGhlIFN0 YXR1cyBQYWdlIGF0IHRoZSBlbmQgb2YgdGhlCiAJICogVFggUXVldWUuCiAJICovCi0JYy5hdXRv ZXF1aXFlX3RvX3ZpaWQgPSBodG9ubCgoZGJxdAotCQkJCSAgICAgID8gRldfRVFfRVRIX0NNRF9B VVRPRVFVSVFFX0YKLQkJCQkgICAgICA6IEZXX0VRX0VUSF9DTURfQVVUT0VRVUVRRV9GKSB8CisJ Yy5hdXRvZXF1aXFlX3RvX3ZpaWQgPSBodG9ubChGV19FUV9FVEhfQ01EX0FVVE9FUVVFUUVfRiB8 CiAJCQkJICAgICBGV19FUV9FVEhfQ01EX1ZJSURfVihwaS0+dmlpZCkpOwogCiAJYy5mZXRjaHN6 bV90b19pcWlkID0KLQkJaHRvbmwoRldfRVFfRVRIX0NNRF9IT1NURkNNT0RFX1YoZGJxdAotCQkJ CQkJID8gSE9TVEZDTU9ERV9JTkdSRVNTX1FVRVVFX1gKLQkJCQkJCSA6IEhPU1RGQ01PREVfU1RB VFVTX1BBR0VfWCkgfAorCQlodG9ubChGV19FUV9FVEhfQ01EX0hPU1RGQ01PREVfVihIT1NURkNN T0RFX1NUQVRVU19QQUdFX1gpIHwKIAkJICAgICAgRldfRVFfRVRIX0NNRF9QQ0lFQ0hOX1YocGkt PnR4X2NoYW4pIHwKIAkJICAgICAgRldfRVFfRVRIX0NNRF9GRVRDSFJPX0YgfCBGV19FUV9FVEhf Q01EX0lRSURfVihpcWlkKSk7CiAKLS0gCjIuMjAuMQoKCkZyb20gN2RmMzQ0ZDU4ZjNjMmMzNWJl OGFiNmZhYmMzNjNhZTAyOTQ0N2RhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDQgTm92IDIwMTkgMDc6 NTc6NTUgLTA4MDAKU3ViamVjdDogW1BBVENIIDAzLzU1XSBkY2NwOiBkbyBub3QgbGVhayBqaWZm aWVzIG9uIHRoZSB3aXJlCgpbIFVwc3RyZWFtIGNvbW1pdCAzZDFlNTAzOWY1Zjg3YTg3MzEyMDJj ZWNhMDg3NjRlZTdjYjAxMGQzIF0KCkZvciBzb21lIHJlYXNvbiBJIG1pc3NlZCB0aGUgY2FzZSBv ZiBEQ0NQIHBhc3NpdmUKZmxvd3MgaW4gbXkgcHJldmlvdXMgcGF0Y2guCgpGaXhlczogYTkwNGEw NjkzYzE4ICgiaW5ldDogc3RvcCBsZWFraW5nIGppZmZpZXMgb24gdGhlIHdpcmUiKQpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBU aGllbW8gTmFnZWwgPHRuYWdlbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvaXB2NC5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2RjY3AvaXB2NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IGI2ODViYzgyZjhkMC4u Njc5MWViOWQ0ZjE2IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0L2RjY3Av aXB2NC5jCkBAIC00MTYsNyArNDE2LDcgQEAgc3RydWN0IHNvY2sgKmRjY3BfdjRfcmVxdWVzdF9y ZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCVJDVV9JTklUX1BPSU5URVIobmV3aW5l dC0+aW5ldF9vcHQsIHJjdV9kZXJlZmVyZW5jZShpcmVxLT5pcmVxX29wdCkpOwogCW5ld2luZXQt Pm1jX2luZGV4ICA9IGluZXRfaWlmKHNrYik7CiAJbmV3aW5ldC0+bWNfdHRsCSAgID0gaXBfaGRy KHNrYiktPnR0bDsKLQluZXdpbmV0LT5pbmV0X2lkICAgPSBqaWZmaWVzOworCW5ld2luZXQtPmlu ZXRfaWQgICA9IHByYW5kb21fdTMyKCk7CiAKIAlpZiAoZHN0ID09IE5VTEwgJiYgKGRzdCA9IGlu ZXRfY3NrX3JvdXRlX2NoaWxkX3NvY2soc2ssIG5ld3NrLCByZXEpKSA9PSBOVUxMKQogCQlnb3Rv IHB1dF9hbmRfZXhpdDsKLS0gCjIuMjAuMQoKCkZyb20gNzU4MWM0ODJhOTE2NjEzY2UwNzQxMTdi ZmJjYzI2MTQ2ZWMxNmZmOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBNb24sIDI4IE9jdCAyMDE5IDIzOjE5OjM1ICsw ODAwClN1YmplY3Q6IFtQQVRDSCAwNC81NV0gZXJzcGFuOiBmaXggdGhlIHR1bl9pbmZvIG9wdGlv bnNfbGVuIGNoZWNrIGZvciBlcnNwYW4KClsgVXBzdHJlYW0gY29tbWl0IDJlYjhkNmQyOTEwY2Zl M2RjNjdkYzA1NmYyNmYzZGQ5YzYzZDQ3Y2QgXQoKVGhlIGNoZWNrIGZvciAhbWQgZG9lbnMndCBy ZWFsbHkgd29yayBmb3IgaXBfdHVubmVsX2luZm9fb3B0cyhpbmZvKSB3aGljaApvbmx5IGRvZXMg aW5mbyArIDEuIEFsc28gdG8gYXZvaWQgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb24gaW5mbywgaXQg c2hvdWxkCmVuc3VyZSBvcHRpb25zX2xlbiBpcyBub3QgbGVzcyB0aGFuIGVyc3Bhbl9tZXRhZGF0 YSBpbiBib3RoIGVyc3Bhbl94bWl0KCkKYW5kIGlwNmVyc3Bhbl90dW5uZWxfeG1pdCgpLgoKRml4 ZXM6IDFhNjZhODM2ZGEgKCJncmU6IGFkZCBjb2xsZWN0X21kIG1vZGUgdG8gRVJTUEFOIHR1bm5l bCIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2lwX2dyZS5jICB8IDQgKystLQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgNCArKy0tCiAyIGZp bGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pcF9ncmUuYyBiL25ldC9pcHY0L2lwX2dyZS5jCmluZGV4IDUyNjkwYmIzZTQw Zi4uMTA2MzZmYjYwOTNlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9ncmUuYworKysgYi9uZXQv aXB2NC9pcF9ncmUuYwpAQCAtNTA5LDkgKzUwOSw5IEBAIHN0YXRpYyB2b2lkIGVyc3Bhbl9mYl94 bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJa2V5ID0g JnR1bl9pbmZvLT5rZXk7CiAJaWYgKCEodHVuX2luZm8tPmtleS50dW5fZmxhZ3MgJiBUVU5ORUxf RVJTUEFOX09QVCkpCiAJCWdvdG8gZXJyX2ZyZWVfc2tiOwotCW1kID0gaXBfdHVubmVsX2luZm9f b3B0cyh0dW5faW5mbyk7Ci0JaWYgKCFtZCkKKwlpZiAodHVuX2luZm8tPm9wdGlvbnNfbGVuIDwg c2l6ZW9mKCptZCkpCiAJCWdvdG8gZXJyX2ZyZWVfc2tiOworCW1kID0gaXBfdHVubmVsX2luZm9f b3B0cyh0dW5faW5mbyk7CiAKIAkvKiBFUlNQQU4gaGFzIGZpeGVkIDggYnl0ZSBHUkUgaGVhZGVy ICovCiAJdmVyc2lvbiA9IG1kLT52ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2dy ZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IGQ1Nzc5ZDZhNjA2NS4uNGVmYzI3MmM2MDI3 IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2X2dyZS5j CkBAIC05ODAsOSArOTgwLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlwNmVyc3Bhbl90dW5uZWxf eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlkc2ZpZWxkID0ga2V5LT50b3M7CiAJCWlmICgh KHR1bl9pbmZvLT5rZXkudHVuX2ZsYWdzICYgVFVOTkVMX0VSU1BBTl9PUFQpKQogCQkJZ290byB0 eF9lcnI7Ci0JCW1kID0gaXBfdHVubmVsX2luZm9fb3B0cyh0dW5faW5mbyk7Ci0JCWlmICghbWQp CisJCWlmICh0dW5faW5mby0+b3B0aW9uc19sZW4gPCBzaXplb2YoKm1kKSkKIAkJCWdvdG8gdHhf ZXJyOworCQltZCA9IGlwX3R1bm5lbF9pbmZvX29wdHModHVuX2luZm8pOwogCiAJCXR1bl9pZCA9 IHR1bm5lbF9pZF90b19rZXkzMihrZXktPnR1bl9pZCk7CiAJCWlmIChtZC0+dmVyc2lvbiA9PSAx KSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGM4Zjc0OTFiMmRmZDI5ODFkMTI1MDk5MjNjMTlmNDU5MzVj NjMyYzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxIE5vdiAyMDE5IDEwOjMyOjE5IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAwNS81NV0gaW5ldDogc3RvcCBsZWFraW5nIGppZmZpZXMgb24gdGhlIHdpcmUK ClsgVXBzdHJlYW0gY29tbWl0IGE5MDRhMDY5M2MxODk2OTFlZWVlNjRmNmM2YjE4OGJkN2RjMjQ0 ZTkgXQoKSGlzdG9yaWNhbGx5IGxpbnV4IHRyaWVkIHRvIHN0aWNrIHRvIFJGQyA3OTEsIDExMjIs IDIwMDMKZm9yIElQdjQgSUQgZmllbGQgZ2VuZXJhdGlvbi4KClJGQyA2ODY0IG1hZGUgY2xlYXIg dGhhdCBubyBtYXR0ZXIgaG93IGhhcmQgd2UgdHJ5LAp3ZSBjYW4gbm90IGVuc3VyZSB1bmljaXR5 IG9mIElQIElEIHdpdGhpbiBtYXhpbXVtCmxpZmV0aW1lIGZvciBhbGwgZGF0YWdyYW1zIHdpdGgg YSBnaXZlbiBzb3VyY2UKYWRkcmVzcy9kZXN0aW5hdGlvbiBhZGRyZXNzL3Byb3RvY29sIHR1cGxl LgoKTGludXggdXNlcyBhIHBlciBzb2NrZXQgaW5ldCBnZW5lcmF0b3IgKGluZXRfaWQpLCBpbml0 aWFsaXplZAphdCBjb25uZWN0aW9uIHN0YXJ0dXAgd2l0aCBhIFhPUiBvZiAnamlmZmllcycgYW5k IG90aGVyCmZpZWxkcyB0aGF0IGFwcGVhciBjbGVhciBvbiB0aGUgd2lyZS4KClRoaWVtbyBOYWdl bCBwb2ludGVkIHRoYXQgdGhpcyBzdHJhdGVneSBpcyBhIHByaXZhY3kKY29uY2VybiBhcyB0aGlz IHByb3ZpZGVzIDE2IGJpdHMgb2YgZW50cm9weSB0byBmaW5nZXJwcmludApkZXZpY2VzLgoKTGV0 J3Mgc3dpdGNoIHRvIGEgcmFuZG9tIHN0YXJ0aW5nIHBvaW50LCB0aGlzIGlzIGp1c3QgYXMKZ29v ZCBhcyBmYXIgYXMgUkZDIDY4NjQgaXMgY29uY2VybmVkIGFuZCBkb2VzIG5vdCBsZWFrCmFueXRo aW5nIGNyaXRpY2FsLgoKRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVk LWJ5OiBUaGllbW8gTmFnZWwgPHRuYWdlbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9jcnlwdG8vY2hl bHNpby9jaHRscy9jaHRsc19jbS5jIHwgMiArLQogbmV0L2RjY3AvaXB2NC5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMiArLQogbmV0L2lwdjQvZGF0YWdyYW0uYyAgICAgICAgICAgICAgICAg ICAgIHwgMiArLQogbmV0L2lwdjQvdGNwX2lwdjQuYyAgICAgICAgICAgICAgICAgICAgIHwgNCAr Ky0tCiBuZXQvc2N0cC9zb2NrZXQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiA1IGZp bGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2NyeXB0by9jaGVsc2lvL2NodGxzL2NodGxzX2NtLmMgYi9kcml2ZXJzL2NyeXB0 by9jaGVsc2lvL2NodGxzL2NodGxzX2NtLmMKaW5kZXggNzc0ZDk5MWQ3Y2NhLi5hY2E3NTIzN2Ji Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfY20uYwor KysgYi9kcml2ZXJzL2NyeXB0by9jaGVsc2lvL2NodGxzL2NodGxzX2NtLmMKQEAgLTEyOTcsNyAr MTI5Nyw3IEBAIHN0YXRpYyB2b2lkIG1ha2VfZXN0YWJsaXNoZWQoc3RydWN0IHNvY2sgKnNrLCB1 MzIgc25kX2lzbiwgdW5zaWduZWQgaW50IG9wdCkKIAl0cC0+d3JpdGVfc2VxID0gc25kX2lzbjsK IAl0cC0+c25kX254dCA9IHNuZF9pc247CiAJdHAtPnNuZF91bmEgPSBzbmRfaXNuOwotCWluZXRf c2soc2spLT5pbmV0X2lkID0gdHAtPndyaXRlX3NlcSBeIGppZmZpZXM7CisJaW5ldF9zayhzaykt PmluZXRfaWQgPSBwcmFuZG9tX3UzMigpOwogCWFzc2lnbl9yeG9wdChzaywgb3B0KTsKIAogCWlm ICh0cC0+cmN2X3duZCA+IChSQ1ZfQlVGU0laX00gPDwgMTApKQpkaWZmIC0tZ2l0IGEvbmV0L2Rj Y3AvaXB2NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IDY3OTFlYjlkNGYxNi4uNmI4YTYwMjg0 OWRkIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0L2RjY3AvaXB2NC5jCkBA IC0xMTcsNyArMTE3LDcgQEAgaW50IGRjY3BfdjRfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIAkJCQkJCSAgICBpbmV0LT5pbmV0 X2RhZGRyLAogCQkJCQkJICAgIGluZXQtPmluZXRfc3BvcnQsCiAJCQkJCQkgICAgaW5ldC0+aW5l dF9kcG9ydCk7Ci0JaW5ldC0+aW5ldF9pZCA9IGRwLT5kY2Nwc19pc3MgXiBqaWZmaWVzOworCWlu ZXQtPmluZXRfaWQgPSBwcmFuZG9tX3UzMigpOwogCiAJZXJyID0gZGNjcF9jb25uZWN0KHNrKTsK IAlydCA9IE5VTEw7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9kYXRhZ3JhbS5jIGIvbmV0L2lwdjQv ZGF0YWdyYW0uYwppbmRleCA5YTBmZTBjMmZhMDIuLjRhODU1MGM0OTIwMiAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2NC9kYXRhZ3JhbS5jCkBAIC03Myw3ICs3 Myw3IEBAIGludCBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuCiAJcmV1c2Vwb3J0X2hhc19jb25ucyhzaywg dHJ1ZSk7CiAJc2stPnNrX3N0YXRlID0gVENQX0VTVEFCTElTSEVEOwogCXNrX3NldF90eGhhc2go c2spOwotCWluZXQtPmluZXRfaWQgPSBqaWZmaWVzOworCWluZXQtPmluZXRfaWQgPSBwcmFuZG9t X3UzMigpOwogCiAJc2tfZHN0X3NldChzaywgJnJ0LT5kc3QpOwogCWVyciA9IDA7CmRpZmYgLS1n aXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBkNTc2 NDFjYjM0NzcuLjU0MzIwZWYzNTQwNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYwor KysgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCkBAIC0zMDAsNyArMzAwLDcgQEAgaW50IHRjcF92NF9j b25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJf bGVuKQogCQkJCQkJIGluZXQtPmluZXRfZGFkZHIpOwogCX0KIAotCWluZXQtPmluZXRfaWQgPSB0 cC0+d3JpdGVfc2VxIF4gamlmZmllczsKKwlpbmV0LT5pbmV0X2lkID0gcHJhbmRvbV91MzIoKTsK IAogCWlmICh0Y3BfZmFzdG9wZW5fZGVmZXJfY29ubmVjdChzaywgJmVycikpCiAJCXJldHVybiBl cnI7CkBAIC0xNDQzLDcgKzE0NDMsNyBAQCBzdHJ1Y3Qgc29jayAqdGNwX3Y0X3N5bl9yZWN2X3Nv Y2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWluZXRfY3Nr KG5ld3NrKS0+aWNza19leHRfaGRyX2xlbiA9IDA7CiAJaWYgKGluZXRfb3B0KQogCQlpbmV0X2Nz ayhuZXdzayktPmljc2tfZXh0X2hkcl9sZW4gPSBpbmV0X29wdC0+b3B0Lm9wdGxlbjsKLQluZXdp bmV0LT5pbmV0X2lkID0gbmV3dHAtPndyaXRlX3NlcSBeIGppZmZpZXM7CisJbmV3aW5ldC0+aW5l dF9pZCA9IHByYW5kb21fdTMyKCk7CiAKIAlpZiAoIWRzdCkgewogCQlkc3QgPSBpbmV0X2Nza19y b3V0ZV9jaGlsZF9zb2NrKHNrLCBuZXdzaywgcmVxKTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Nv Y2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggOGZkN2IwZTZjZTlmLi5iOGY5YmFmYjE4 MGMgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5j CkBAIC05MTU5LDcgKzkxNTksNyBAQCB2b2lkIHNjdHBfY29weV9zb2NrKHN0cnVjdCBzb2NrICpu ZXdzaywgc3RydWN0IHNvY2sgKnNrLAogCW5ld2luZXQtPmluZXRfcmN2X3NhZGRyID0gaW5ldC0+ aW5ldF9yY3Zfc2FkZHI7CiAJbmV3aW5ldC0+aW5ldF9kcG9ydCA9IGh0b25zKGFzb2MtPnBlZXIu cG9ydCk7CiAJbmV3aW5ldC0+cG10dWRpc2MgPSBpbmV0LT5wbXR1ZGlzYzsKLQluZXdpbmV0LT5p bmV0X2lkID0gYXNvYy0+bmV4dF90c24gXiBqaWZmaWVzOworCW5ld2luZXQtPmluZXRfaWQgPSBw cmFuZG9tX3UzMigpOwogCiAJbmV3aW5ldC0+dWNfdHRsID0gaW5ldC0+dWNfdHRsOwogCW5ld2lu ZXQtPm1jX2xvb3AgPSAxOwotLSAKMi4yMC4xCgoKRnJvbSA2ZTYwNjY3NzVkNTk0Njg5OGUyMjA4 ZjhjYzlkODRjNzUxYzA1NzNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMzAgT2N0IDIwMTkgMTM6MDA6 MDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDA2LzU1XSBuZXQ6IGFubm90YXRlIGFjY2Vzc2VzIHRv IHNrLT5za19pbmNvbWluZ19jcHUKClsgVXBzdHJlYW0gY29tbWl0IDcxNzBhOTc3NzQzYjcyY2Yz ZWI0NmVmNmVmODk4ODVkYzdhZDM2MjEgXQoKVGhpcyBzb2NrZXQgZmllbGQgY2FuIGJlIHJlYWQg YW5kIHdyaXR0ZW4gYnkgY29uY3VycmVudCBjcHVzLgoKVXNlIFJFQURfT05DRSgpIGFuZCBXUklU RV9PTkNFKCkgYW5ub3RhdGlvbnMgdG8gZG9jdW1lbnQgdGhpcywKYW5kIGF2b2lkIHNvbWUgY29t cGlsZXIgJ29wdGltaXphdGlvbnMnLgoKS0NTQU4gcmVwb3J0ZWQgOgoKQlVHOiBLQ1NBTjogZGF0 YS1yYWNlIGluIHRjcF92NF9yY3YgLyB0Y3BfdjRfcmN2Cgp3cml0ZSB0byAweGZmZmY4ODgxMjIy MDc2M2Mgb2YgNCBieXRlcyBieSBpbnRlcnJ1cHQgb24gY3B1IDA6CiBza19pbmNvbWluZ19jcHVf dXBkYXRlIGluY2x1ZGUvbmV0L3NvY2suaDo5NTMgW2lubGluZV0KIHRjcF92NF9yY3YrMHgxYjNj LzB4MWJiMCBuZXQvaXB2NC90Y3BfaXB2NC5jOjE5MzQKIGlwX3Byb3RvY29sX2RlbGl2ZXJfcmN1 KzB4NGQvMHg0MjAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMDQKIGlwX2xvY2FsX2RlbGl2ZXJfZmlu aXNoKzB4MTEwLzB4MTQwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjMxCiBORl9IT09LIGluY2x1ZGUv bGludXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0 ZmlsdGVyLmg6Mjk5IFtpbmxpbmVdCiBpcF9sb2NhbF9kZWxpdmVyKzB4MTMzLzB4MjEwIG5ldC9p cHY0L2lwX2lucHV0LmM6MjUyCiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDQyIFtpbmxp bmVdCiBpcF9yY3ZfZmluaXNoKzB4MTIxLzB4MTYwIG5ldC9pcHY0L2lwX2lucHV0LmM6NDEzCiBO Rl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09LIGlu Y2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjk5IFtpbmxpbmVdCiBpcF9yY3YrMHgxOGYvMHgxYTAg bmV0L2lwdjQvaXBfaW5wdXQuYzo1MjMKIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHhh Ny8weGUwIG5ldC9jb3JlL2Rldi5jOjUwMTAKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgzNy8weGYw IG5ldC9jb3JlL2Rldi5jOjUxMjQKIHByb2Nlc3NfYmFja2xvZysweDFkMy8weDQyMCBuZXQvY29y ZS9kZXYuYzo1OTU1CiBuYXBpX3BvbGwgbmV0L2NvcmUvZGV2LmM6NjM5MiBbaW5saW5lXQogbmV0 X3J4X2FjdGlvbisweDNhZS8weGE5MCBuZXQvY29yZS9kZXYuYzo2NDYwCiBfX2RvX3NvZnRpcnEr MHgxMTUvMHgzM2Yga2VybmVsL3NvZnRpcnEuYzoyOTIKIGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4 MmEvMHg0MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjEwODIKIGRvX3NvZnRpcnEucGFydC4w KzB4NmIvMHg4MCBrZXJuZWwvc29mdGlycS5jOjMzNwogZG9fc29mdGlycSBrZXJuZWwvc29mdGly cS5jOjMyOSBbaW5saW5lXQogX19sb2NhbF9iaF9lbmFibGVfaXArMHg3Ni8weDgwIGtlcm5lbC9z b2Z0aXJxLmM6MTg5CgpyZWFkIHRvIDB4ZmZmZjg4ODEyMjIwNzYzYyBvZiA0IGJ5dGVzIGJ5IGlu dGVycnVwdCBvbiBjcHUgMToKIHNrX2luY29taW5nX2NwdV91cGRhdGUgaW5jbHVkZS9uZXQvc29j ay5oOjk1MiBbaW5saW5lXQogdGNwX3Y0X3JjdisweDE4MWEvMHgxYmIwIG5ldC9pcHY0L3RjcF9p cHY0LmM6MTkzNAogaXBfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg0ZC8weDQyMCBuZXQvaXB2NC9p cF9pbnB1dC5jOjIwNAogaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHgxMTAvMHgxNDAgbmV0L2lw djQvaXBfaW5wdXQuYzoyMzEKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUg W2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0K IGlwX2xvY2FsX2RlbGl2ZXIrMHgxMzMvMHgyMTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTIKIGRz dF9pbnB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHgx MjEvMHgxNjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0MTMKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9u ZXRmaWx0ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIu aDoyOTkgW2lubGluZV0KIGlwX3JjdisweDE4Zi8weDFhMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjUy MwogX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsweGE3LzB4ZTAgbmV0L2NvcmUvZGV2LmM6 NTAxMAogX19uZXRpZl9yZWNlaXZlX3NrYisweDM3LzB4ZjAgbmV0L2NvcmUvZGV2LmM6NTEyNAog cHJvY2Vzc19iYWNrbG9nKzB4MWQzLzB4NDIwIG5ldC9jb3JlL2Rldi5jOjU5NTUKIG5hcGlfcG9s bCBuZXQvY29yZS9kZXYuYzo2MzkyIFtpbmxpbmVdCiBuZXRfcnhfYWN0aW9uKzB4M2FlLzB4YTkw IG5ldC9jb3JlL2Rldi5jOjY0NjAKIF9fZG9fc29mdGlycSsweDExNS8weDMzZiBrZXJuZWwvc29m dGlycS5jOjI5MgogcnVuX2tzb2Z0aXJxZCsweDQ2LzB4NjAga2VybmVsL3NvZnRpcnEuYzo2MDMK IHNtcGJvb3RfdGhyZWFkX2ZuKzB4MzdkLzB4NGEwIGtlcm5lbC9zbXBib290LmM6MTY1CgpSZXBv cnRlZCBieSBLZXJuZWwgQ29uY3VycmVuY3kgU2FuaXRpemVyIG9uOgpDUFU6IDEgUElEOiAxNiBD b21tOiBrc29mdGlycWQvMSBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6 IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9T IEdvb2dsZSAwMS8wMS8yMDExCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9uZXQvc29jay5oICAgICAgICAgIHwgNCArKy0tCiBuZXQvY29yZS9zb2Nr LmMgICAgICAgICAgICAgfCA0ICsrLS0KIG5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jICB8IDIg Ky0KIG5ldC9pcHY0L3VkcC5jICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY2L2luZXQ2X2hh c2h0YWJsZXMuYyB8IDIgKy0KIG5ldC9pcHY2L3VkcC5jICAgICAgICAgICAgICB8IDIgKy0KIDYg ZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCAyYzUzZjFh MWQ5MDUuLjBhMmZkMzdkMmE5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oCisrKyBi L2luY2x1ZGUvbmV0L3NvY2suaApAQCAtOTQ5LDggKzk0OSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBza19pbmNvbWluZ19jcHVfdXBkYXRlKHN0cnVjdCBzb2NrICpzaykKIHsKIAlpbnQgY3B1ID0g cmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAotCWlmICh1bmxpa2VseShzay0+c2tfaW5jb21pbmdf Y3B1ICE9IGNwdSkpCi0JCXNrLT5za19pbmNvbWluZ19jcHUgPSBjcHU7CisJaWYgKHVubGlrZWx5 KFJFQURfT05DRShzay0+c2tfaW5jb21pbmdfY3B1KSAhPSBjcHUpKQorCQlXUklURV9PTkNFKHNr LT5za19pbmNvbWluZ19jcHUsIGNwdSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzb2NrX3Jw c19yZWNvcmRfZmxvd19oYXNoKF9fdTMyIGhhc2gpCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2Nr LmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggM2FhOTNhZjUxZDQ4Li43MWQwNDc5NjIzOTAgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTExMjUs NyArMTEyNSw3IEBAIGludCBzb2NrX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50 IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJYnJlYWs7CiAJCX0KIAljYXNlIFNPX0lOQ09NSU5HX0NQ VToKLQkJc2stPnNrX2luY29taW5nX2NwdSA9IHZhbDsKKwkJV1JJVEVfT05DRShzay0+c2tfaW5j b21pbmdfY3B1LCB2YWwpOwogCQlicmVhazsKIAogCWNhc2UgU09fQ05YX0FEVklDRToKQEAgLTE0 NzQsNyArMTQ3NCw3IEBAIGludCBzb2NrX2dldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywg aW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJYnJlYWs7CiAKIAljYXNlIFNPX0lOQ09NSU5HX0NQ VToKLQkJdi52YWwgPSBzay0+c2tfaW5jb21pbmdfY3B1OworCQl2LnZhbCA9IFJFQURfT05DRShz ay0+c2tfaW5jb21pbmdfY3B1KTsKIAkJYnJlYWs7CiAKIAljYXNlIFNPX01FTUlORk86CmRpZmYg LS1naXQgYS9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYyBiL25ldC9pcHY0L2luZXRfaGFzaHRh Ymxlcy5jCmluZGV4IDk3ODI0ODY0ZTQwZC4uODNmYjAwMTUzMDE4IDEwMDY0NAotLS0gYS9uZXQv aXB2NC9pbmV0X2hhc2h0YWJsZXMuYworKysgYi9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYwpA QCAtMjQwLDcgKzI0MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNvbXB1dGVfc2NvcmUoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3QgbmV0ICpuZXQsCiAJCQlyZXR1cm4gLTE7CiAKIAkJc2NvcmUgPSBz ay0+c2tfZmFtaWx5ID09IFBGX0lORVQgPyAyIDogMTsKLQkJaWYgKHNrLT5za19pbmNvbWluZ19j cHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKKwkJaWYgKFJFQURfT05DRShzay0+c2tfaW5j b21pbmdfY3B1KSA9PSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKQogCQkJc2NvcmUrKzsKIAl9CiAJ cmV0dXJuIHNjb3JlOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAu YwppbmRleCA1ZTVkMDU3NWE0M2MuLjA1ZWNmN2YyZTY0NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv dWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTM4OCw3ICszODgsNyBAQCBzdGF0aWMgaW50 IGNvbXB1dGVfc2NvcmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmV0ICpuZXQsCiAJCXJldHVy biAtMTsKIAlzY29yZSArPSA0OwogCi0JaWYgKHNrLT5za19pbmNvbWluZ19jcHUgPT0gcmF3X3Nt cF9wcm9jZXNzb3JfaWQoKSkKKwlpZiAoUkVBRF9PTkNFKHNrLT5za19pbmNvbWluZ19jcHUpID09 IHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpCiAJCXNjb3JlKys7CiAJcmV0dXJuIHNjb3JlOwogfQpk aWZmIC0tZ2l0IGEvbmV0L2lwdjYvaW5ldDZfaGFzaHRhYmxlcy5jIGIvbmV0L2lwdjYvaW5ldDZf aGFzaHRhYmxlcy5jCmluZGV4IGNmNjBmYWU5NTMzYi4uZmJlOWQ0Mjk1ZWFjIDEwMDY0NAotLS0g YS9uZXQvaXB2Ni9pbmV0Nl9oYXNodGFibGVzLmMKKysrIGIvbmV0L2lwdjYvaW5ldDZfaGFzaHRh Ymxlcy5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGlubGluZSBpbnQgY29tcHV0ZV9zY29y ZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBuZXQgKm5ldCwKIAkJCXJldHVybiAtMTsKIAogCQlz Y29yZSA9IDE7Ci0JCWlmIChzay0+c2tfaW5jb21pbmdfY3B1ID09IHJhd19zbXBfcHJvY2Vzc29y X2lkKCkpCisJCWlmIChSRUFEX09OQ0Uoc2stPnNrX2luY29taW5nX2NwdSkgPT0gcmF3X3NtcF9w cm9jZXNzb3JfaWQoKSkKIAkJCXNjb3JlKys7CiAJfQogCXJldHVybiBzY29yZTsKZGlmZiAtLWdp dCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggMDQ1NGE4YTNiMzljLi5i ZWEzYmRhZDAzNjkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25ldC9pcHY2L3Vk cC5jCkBAIC0xMzUsNyArMTM1LDcgQEAgc3RhdGljIGludCBjb21wdXRlX3Njb3JlKHN0cnVjdCBz b2NrICpzaywgc3RydWN0IG5ldCAqbmV0LAogCQlyZXR1cm4gLTE7CiAJc2NvcmUrKzsKIAotCWlm IChzay0+c2tfaW5jb21pbmdfY3B1ID09IHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpCisJaWYgKFJF QURfT05DRShzay0+c2tfaW5jb21pbmdfY3B1KSA9PSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKQog CQlzY29yZSsrOwogCiAJcmV0dXJuIHNjb3JlOwotLSAKMi4yMC4xCgoKRnJvbSA3MGViMDI1ZDUy M2FlOGQ2NDJlYWEyODNhMTFiOTQ2NTA3Zjk5YmU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMjkgT2N0 IDIwMTkgMTA6NTQ6NDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzU1XSBuZXQ6IGFubm90YXRl IGxvY2tsZXNzIGFjY2Vzc2VzIHRvIHNrLT5za19uYXBpX2lkCgpbIFVwc3RyZWFtIGNvbW1pdCBl ZThkMTUzZDQ2YTNiOThjMDY0ZWUxNWMwYzBhM2JiZjE0NTBlNWExIF0KCldlIGFscmVhZHkgYW5u b3RhdGVkIG1vc3QgYWNjZXNzZXMgdG8gc2stPnNrX25hcGlfaWQKCldlIG1pc3NlZCBza19tYXJr X25hcGlfaWQoKSBhbmQgc2tfbWFya19uYXBpX2lkX29uY2UoKQp3aGljaCBtaWdodCBiZSBjYWxs ZWQgd2l0aG91dCBzb2NrZXQgbG9jayBoZWxkIGluIFVEUCBzdGFjay4KCktDU0FOIHJlcG9ydGVk IDoKQlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIHVkcHY2X3F1ZXVlX3Jjdl9vbmVfc2tiIC8gdWRw djZfcXVldWVfcmN2X29uZV9za2IKCndyaXRlIHRvIDB4ZmZmZjg4ODEyMWM2ZDEwOCBvZiA0IGJ5 dGVzIGJ5IGludGVycnVwdCBvbiBjcHUgMDoKIHNrX21hcmtfbmFwaV9pZCBpbmNsdWRlL25ldC9i dXN5X3BvbGwuaDoxMjUgW2lubGluZV0KIF9fdWRwdjZfcXVldWVfcmN2X3NrYiBuZXQvaXB2Ni91 ZHAuYzo1NzEgW2lubGluZV0KIHVkcHY2X3F1ZXVlX3Jjdl9vbmVfc2tiKzB4NzBjLzB4YjQwIG5l dC9pcHY2L3VkcC5jOjY3MgogdWRwdjZfcXVldWVfcmN2X3NrYisweGI1LzB4NDAwIG5ldC9pcHY2 L3VkcC5jOjY4OQogdWRwNl91bmljYXN0X3Jjdl9za2IuaXNyYS4wKzB4ZDcvMHgxODAgbmV0L2lw djYvdWRwLmM6ODMyCiBfX3VkcDZfbGliX3JjdisweDY5Yy8weDE3NzAgbmV0L2lwdjYvdWRwLmM6 OTEzCiB1ZHB2Nl9yY3YrMHgyYi8weDQwIG5ldC9pcHY2L3VkcC5jOjEwMTUKIGlwNl9wcm90b2Nv bF9kZWxpdmVyX3JjdSsweDIyYS8weGJlMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo0MDkKIGlwNl9p bnB1dF9maW5pc2grMHgzMC8weDUwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjQ1MAogTkZfSE9PSyBp bmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjMwNSBbaW5saW5lXQogTkZfSE9PSyBpbmNsdWRlL2xp bnV4L25ldGZpbHRlci5oOjI5OSBbaW5saW5lXQogaXA2X2lucHV0KzB4MTc3LzB4MTkwIG5ldC9p cHY2L2lwNl9pbnB1dC5jOjQ1OQogZHN0X2lucHV0IGluY2x1ZGUvbmV0L2RzdC5oOjQ0MiBbaW5s aW5lXQogaXA2X3Jjdl9maW5pc2grMHgxMTAvMHgxNDAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NzYK IE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sg aW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0KIGlwdjZfcmN2KzB4MWExLzB4 MWIwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjI4NAogX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29y ZSsweGE3LzB4ZTAgbmV0L2NvcmUvZGV2LmM6NTAxMAogX19uZXRpZl9yZWNlaXZlX3NrYisweDM3 LzB4ZjAgbmV0L2NvcmUvZGV2LmM6NTEyNAogcHJvY2Vzc19iYWNrbG9nKzB4MWQzLzB4NDIwIG5l dC9jb3JlL2Rldi5jOjU5NTUKIG5hcGlfcG9sbCBuZXQvY29yZS9kZXYuYzo2MzkyIFtpbmxpbmVd CiBuZXRfcnhfYWN0aW9uKzB4M2FlLzB4YTkwIG5ldC9jb3JlL2Rldi5jOjY0NjAKCndyaXRlIHRv IDB4ZmZmZjg4ODEyMWM2ZDEwOCBvZiA0IGJ5dGVzIGJ5IGludGVycnVwdCBvbiBjcHUgMToKIHNr X21hcmtfbmFwaV9pZCBpbmNsdWRlL25ldC9idXN5X3BvbGwuaDoxMjUgW2lubGluZV0KIF9fdWRw djZfcXVldWVfcmN2X3NrYiBuZXQvaXB2Ni91ZHAuYzo1NzEgW2lubGluZV0KIHVkcHY2X3F1ZXVl X3Jjdl9vbmVfc2tiKzB4NzBjLzB4YjQwIG5ldC9pcHY2L3VkcC5jOjY3MgogdWRwdjZfcXVldWVf cmN2X3NrYisweGI1LzB4NDAwIG5ldC9pcHY2L3VkcC5jOjY4OQogdWRwNl91bmljYXN0X3Jjdl9z a2IuaXNyYS4wKzB4ZDcvMHgxODAgbmV0L2lwdjYvdWRwLmM6ODMyCiBfX3VkcDZfbGliX3Jjdisw eDY5Yy8weDE3NzAgbmV0L2lwdjYvdWRwLmM6OTEzCiB1ZHB2Nl9yY3YrMHgyYi8weDQwIG5ldC9p cHY2L3VkcC5jOjEwMTUKIGlwNl9wcm90b2NvbF9kZWxpdmVyX3JjdSsweDIyYS8weGJlMCBuZXQv aXB2Ni9pcDZfaW5wdXQuYzo0MDkKIGlwNl9pbnB1dF9maW5pc2grMHgzMC8weDUwIG5ldC9pcHY2 L2lwNl9pbnB1dC5jOjQ1MAogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjMwNSBb aW5saW5lXQogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI5OSBbaW5saW5lXQog aXA2X2lucHV0KzB4MTc3LzB4MTkwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjQ1OQogZHN0X2lucHV0 IGluY2x1ZGUvbmV0L2RzdC5oOjQ0MiBbaW5saW5lXQogaXA2X3Jjdl9maW5pc2grMHgxMTAvMHgx NDAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NzYKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkg W2lubGluZV0KIGlwdjZfcmN2KzB4MWExLzB4MWIwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjI4NAog X19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsweGE3LzB4ZTAgbmV0L2NvcmUvZGV2LmM6NTAx MAogX19uZXRpZl9yZWNlaXZlX3NrYisweDM3LzB4ZjAgbmV0L2NvcmUvZGV2LmM6NTEyNAogcHJv Y2Vzc19iYWNrbG9nKzB4MWQzLzB4NDIwIG5ldC9jb3JlL2Rldi5jOjU5NTUKClJlcG9ydGVkIGJ5 IEtlcm5lbCBDb25jdXJyZW5jeSBTYW5pdGl6ZXIgb246CkNQVTogMSBQSUQ6IDEwODkwIENvbW06 IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuNC4wLXJjMysgIzAKSGFyZHdhcmUgbmFtZTog R29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1Mg R29vZ2xlIDAxLzAxLzIwMTEKCkZpeGVzOiBlNjhiNmU1MGZhMzUgKCJ1ZHA6IGVuYWJsZSBidXN5 IHBvbGxpbmcgZm9yIGFsbCBzb2NrZXRzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xl Z3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2J1c3lfcG9sbC5oIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9uZXQvYnVzeV9wb2xsLmggYi9pbmNsdWRlL25ldC9idXN5X3BvbGwuaAppbmRleCAxMjdh NWM0ZTM2OTkuLjg2ZTAyODM4OGJhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvYnVzeV9wb2xs LmgKKysrIGIvaW5jbHVkZS9uZXQvYnVzeV9wb2xsLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgc2tiX21hcmtfbmFwaV9pZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogc3Rh dGljIGlubGluZSB2b2lkIHNrX21hcmtfbmFwaV9pZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHN0 cnVjdCBza19idWZmICpza2IpCiB7CiAjaWZkZWYgQ09ORklHX05FVF9SWF9CVVNZX1BPTEwKLQlz ay0+c2tfbmFwaV9pZCA9IHNrYi0+bmFwaV9pZDsKKwlXUklURV9PTkNFKHNrLT5za19uYXBpX2lk LCBza2ItPm5hcGlfaWQpOwogI2VuZGlmCiAJc2tfcnhfcXVldWVfc2V0KHNrLCBza2IpOwogfQpA QCAtMTMyLDggKzEzMiw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBza19tYXJrX25hcGlfaWRfb25j ZShzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJCWNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCiB7CiAj aWZkZWYgQ09ORklHX05FVF9SWF9CVVNZX1BPTEwKLQlpZiAoIXNrLT5za19uYXBpX2lkKQotCQlz ay0+c2tfbmFwaV9pZCA9IHNrYi0+bmFwaV9pZDsKKwlpZiAoIVJFQURfT05DRShzay0+c2tfbmFw aV9pZCkpCisJCVdSSVRFX09OQ0Uoc2stPnNrX25hcGlfaWQsIHNrYi0+bmFwaV9pZCk7CiAjZW5k aWYKIH0KIAotLSAKMi4yMC4xCgoKRnJvbSA1YTE2MzczNDg2NWQ2MWU0NTE1OGExY2ZmZmYzYmEx ZjRhMmQzNzczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxp IDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAzMSBPY3QgMjAxOSAxNTo1NDowNSAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvNTVdIG5ldDogZHNhOiBiY21fc2YyOiBGaXggSU1QIHNl dHVwIGZvciBwb3J0IGRpZmZlcmVudAogdGhhbiA4CgpbIFVwc3RyZWFtIGNvbW1pdCA1ZmMwZjIx MjQ2ZTUwYWZkZjMxOGI1YTNhOTQxZjdmNGY1N2I4OTQ3IF0KClNpbmNlIGl0IGJlY2FtZSBwb3Nz aWJsZSBmb3IgdGhlIERTQSBjb3JlIHRvIHVzZSBhIENQVSBwb3J0IGRpZmZlcmVudAp0aGFuIDgs IG91ciBiY21fc2YyX2ltcF9zZXR1cCgpIGZ1bmN0aW9uIHdhcyBicm9rZW4gYmVjYXVzZSBpdCBh c3N1bWVzCnRoYXQgcmVnaXN0ZXJzIGFyZSBhcHBsaWNhYmxlIHRvIHBvcnQgOC4gSW4gcGFydGlj dWxhciwgdGhlIHBvcnQncyBNQUMKaXMgZ29pbmcgdG8gc3RheSBkaXNhYmxlZCwgc28gbWFrZSBz dXJlIHdlIGNsZWFyIHRoZSBSWF9ESVMgYW5kIFRYX0RJUwpiaXRzIGlmIHdlIGFyZSBub3QgY29u ZmlndXJlZCBmb3IgcG9ydCA4LgoKRml4ZXM6IDlmOTE0ODRmNmZjYyAoIm5ldDogZHNhOiBtYWtl ICJsYWJlbCIgcHJvcGVydHkgb3B0aW9uYWwgZm9yIGRzYTIiKQpTaWduZWQtb2ZmLWJ5OiBGbG9y aWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9iY21f c2YyLmMgfCAzNiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jIGIvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYwppbmRl eCAyOGM5NjNhMjFkYWMuLjlmMDViZjcxNGJhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNh L2JjbV9zZjIuYworKysgYi9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCkBAIC0zNywyMiArMzcs MTEgQEAgc3RhdGljIHZvaWQgYmNtX3NmMl9pbXBfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRz LCBpbnQgcG9ydCkKIAl1bnNpZ25lZCBpbnQgaTsKIAl1MzIgcmVnLCBvZmZzZXQ7CiAKLQlpZiAo cHJpdi0+dHlwZSA9PSBCQ003NDQ1X0RFVklDRV9JRCkKLQkJb2Zmc2V0ID0gQ09SRV9TVFNfT1ZF UlJJREVfSU1QOwotCWVsc2UKLQkJb2Zmc2V0ID0gQ09SRV9TVFNfT1ZFUlJJREVfSU1QMjsKLQog CS8qIEVuYWJsZSB0aGUgcG9ydCBtZW1vcmllcyAqLwogCXJlZyA9IGNvcmVfcmVhZGwocHJpdiwg Q09SRV9NRU1fUFNNX1ZERF9DVFJMKTsKIAlyZWcgJj0gflBfVFhRX1BTTV9WREQocG9ydCk7CiAJ Y29yZV93cml0ZWwocHJpdiwgcmVnLCBDT1JFX01FTV9QU01fVkREX0NUUkwpOwogCi0JLyogRW5h YmxlIEJyb2FkY2FzdCwgTXVsdGljYXN0LCBVbmljYXN0IGZvcndhcmRpbmcgdG8gSU1QIHBvcnQg Ki8KLQlyZWcgPSBjb3JlX3JlYWRsKHByaXYsIENPUkVfSU1QX0NUTCk7Ci0JcmVnIHw9IChSWF9C Q1NUX0VOIHwgUlhfTUNTVF9FTiB8IFJYX1VDU1RfRU4pOwotCXJlZyAmPSB+KFJYX0RJUyB8IFRY X0RJUyk7Ci0JY29yZV93cml0ZWwocHJpdiwgcmVnLCBDT1JFX0lNUF9DVEwpOwotCiAJLyogRW5h YmxlIGZvcndhcmRpbmcgKi8KIAljb3JlX3dyaXRlbChwcml2LCBTV19GV0RHX0VOLCBDT1JFX1NX TU9ERSk7CiAKQEAgLTcxLDEwICs2MCwyNyBAQCBzdGF0aWMgdm9pZCBiY21fc2YyX2ltcF9zZXR1 cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KQogCiAJYjUzX2JyY21faGRyX3NldHVw KGRzLCBwb3J0KTsKIAotCS8qIEZvcmNlIGxpbmsgc3RhdHVzIGZvciBJTVAgcG9ydCAqLwotCXJl ZyA9IGNvcmVfcmVhZGwocHJpdiwgb2Zmc2V0KTsKLQlyZWcgfD0gKE1JSV9TV19PUiB8IExJTktf U1RTKTsKLQljb3JlX3dyaXRlbChwcml2LCByZWcsIG9mZnNldCk7CisJaWYgKHBvcnQgPT0gOCkg eworCQlpZiAocHJpdi0+dHlwZSA9PSBCQ003NDQ1X0RFVklDRV9JRCkKKwkJCW9mZnNldCA9IENP UkVfU1RTX09WRVJSSURFX0lNUDsKKwkJZWxzZQorCQkJb2Zmc2V0ID0gQ09SRV9TVFNfT1ZFUlJJ REVfSU1QMjsKKworCQkvKiBGb3JjZSBsaW5rIHN0YXR1cyBmb3IgSU1QIHBvcnQgKi8KKwkJcmVn ID0gY29yZV9yZWFkbChwcml2LCBvZmZzZXQpOworCQlyZWcgfD0gKE1JSV9TV19PUiB8IExJTktf U1RTKTsKKwkJY29yZV93cml0ZWwocHJpdiwgcmVnLCBvZmZzZXQpOworCisJCS8qIEVuYWJsZSBC cm9hZGNhc3QsIE11bHRpY2FzdCwgVW5pY2FzdCBmb3J3YXJkaW5nIHRvIElNUCBwb3J0ICovCisJ CXJlZyA9IGNvcmVfcmVhZGwocHJpdiwgQ09SRV9JTVBfQ1RMKTsKKwkJcmVnIHw9IChSWF9CQ1NU X0VOIHwgUlhfTUNTVF9FTiB8IFJYX1VDU1RfRU4pOworCQlyZWcgJj0gfihSWF9ESVMgfCBUWF9E SVMpOworCQljb3JlX3dyaXRlbChwcml2LCByZWcsIENPUkVfSU1QX0NUTCk7CisJfSBlbHNlIHsK KwkJcmVnID0gY29yZV9yZWFkbChwcml2LCBDT1JFX0dfUENUTF9QT1JUKHBvcnQpKTsKKwkJcmVn ICY9IH4oUlhfRElTIHwgVFhfRElTKTsKKwkJY29yZV93cml0ZWwocHJpdiwgcmVnLCBDT1JFX0df UENUTF9QT1JUKHBvcnQpKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGJjbV9zZjJfZ3BoeV9lbmFi bGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgYm9vbCBlbmFibGUpCi0tIAoyLjIwLjEKCgpG cm9tIGExM2M2YTJiMTI3YmM3ZDkyZjQ5ZmU0NDNmYjdjYWFiNWI4MGM2MDEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEJlbmphbWluIEhlcnJlbnNjaG1pZHQgPGJlbmhAa2VybmVsLmNy YXNoaW5nLm9yZz4KRGF0ZTogRnJpLCAyNSBPY3QgMjAxOSAxMzo0NzoyNCArMTEwMApTdWJqZWN0 OiBbUEFUQ0ggMDkvNTVdIG5ldDogZXRoZXJuZXQ6IGZ0Z21hYzEwMDogRml4IERNQSBjb2hlcmVu Y3kgaXNzdWUgd2l0aAogU1cgY2hlY2tzdW0KClsgVXBzdHJlYW0gY29tbWl0IDg4ODI0ZTNiZjI5 YTJmY2FjZmQ5ZWJiZmUwMzA2MzY0OWYwZjMyNTQgXQoKV2UgYXJlIGNhbGxpbmcgdGhlIGNoZWNr c3VtIGhlbHBlciBhZnRlciB0aGUgZG1hX21hcF9zaW5nbGUoKQpjYWxsIHRvIG1hcCB0aGUgcGFj a2V0LiBUaGlzIGlzIGluY29ycmVjdCBhcyB0aGUgY2hlY2tzdW1taW5nCmNvZGUgd2lsbCB0b3Vj aCB0aGUgcGFja2V0IGZyb20gdGhlIENQVS4gVGhpcyBtZWFucyB0aGUgY2FjaGUKd29uJ3QgYmUg cHJvcGVybHkgZmx1c2hlcyAob3IgdGhlIGJvdW5jZSBidWZmZXJpbmcgd2lsbCBsZWF2ZQp1cyB3 aXRoIHRoZSB1bm1vZGlmaWVkIHBhY2tldCB0byBETUEpLgoKVGhpcyBtb3ZlcyB0aGUgY2FsY3Vs YXRpb24gb2YgdGhlIGNoZWNrc3VtICYgdmxhbiB0YWdzIHRvCmJlZm9yZSB0aGUgRE1BIG1hcHBp bmcuCgpUaGlzIGFsc28gaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBmaXhpbmcgYW5vdGhlciBidWc6 IElmIHRoZQpjaGVja3N1bSBoZWxwZXIgZmFpbHMsIHdlIGdvdG8gImRyb3AiIHRvIGRyb3AgdGhl IHBhY2tldCwgd2hpY2gKd2lsbCBub3QgdW5tYXAgdGhlIERNQSBtYXBwaW5nLgoKU2lnbmVkLW9m Zi1ieTogQmVuamFtaW4gSGVycmVuc2NobWlkdCA8YmVuaEBrZXJuZWwuY3Jhc2hpbmcub3JnPgpG aXhlczogMDU2OTBkNjMzZjMwICgiZnRnbWFjMTAwOiBVcGdyYWRlIHRvIE5FVElGX0ZfSFdfQ1NV TSIpClJldmlld2VkLWJ5OiBWaWpheSBLaGVta2EgPHZpamF5a2hlbWthQGZiLmNvbT4KVGVzdGVk LWJ5OiBWaWpheSBLaGVta2EgPHZpamF5a2hlbWthQGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2ZhcmFkYXkvZnRnbWFjMTAwLmMgfCAyNSArKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdtYWMxMDAuYwppbmRleCAwMzBmZWQ2NTM5M2UuLjcxM2Rj MzBmOWRiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdtYWMx MDAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jCkBAIC03 MjYsNiArNzI2LDE4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBmdGdtYWMxMDBfaGFyZF9zdGFydF94 bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJICovCiAJbmZyYWdzID0gc2tiX3NoaW5mbyhza2Ip LT5ucl9mcmFnczsKIAorCS8qIFNldHVwIEhXIGNoZWNrc3VtbWluZyAqLworCWNzdW1fdmxhbiA9 IDA7CisJaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BBUlRJQUwgJiYKKwkgICAgIWZ0 Z21hYzEwMF9wcmVwX3R4X2NzdW0oc2tiLCAmY3N1bV92bGFuKSkKKwkJZ290byBkcm9wOworCisJ LyogQWRkIFZMQU4gdGFnICovCisJaWYgKHNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikpIHsKKwkJ Y3N1bV92bGFuIHw9IEZUR01BQzEwMF9UWERFUzFfSU5TX1ZMQU5UQUc7CisJCWNzdW1fdmxhbiB8 PSBza2Jfdmxhbl90YWdfZ2V0KHNrYikgJiAweGZmZmY7CisJfQorCiAJLyogR2V0IGhlYWRlciBs ZW4gKi8KIAlsZW4gPSBza2JfaGVhZGxlbihza2IpOwogCkBAIC03NTIsMTkgKzc2NCw2IEBAIHN0 YXRpYyBuZXRkZXZfdHhfdCBmdGdtYWMxMDBfaGFyZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZm ICpza2IsCiAJaWYgKG5mcmFncyA9PSAwKQogCQlmX2N0bF9zdGF0IHw9IEZUR01BQzEwMF9UWERF UzBfTFRTOwogCXR4ZGVzLT50eGRlczMgPSBjcHVfdG9fbGUzMihtYXApOwotCi0JLyogU2V0dXAg SFcgY2hlY2tzdW1taW5nICovCi0JY3N1bV92bGFuID0gMDsKLQlpZiAoc2tiLT5pcF9zdW1tZWQg PT0gQ0hFQ0tTVU1fUEFSVElBTCAmJgotCSAgICAhZnRnbWFjMTAwX3ByZXBfdHhfY3N1bShza2Is ICZjc3VtX3ZsYW4pKQotCQlnb3RvIGRyb3A7Ci0KLQkvKiBBZGQgVkxBTiB0YWcgKi8KLQlpZiAo c2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSkgewotCQljc3VtX3ZsYW4gfD0gRlRHTUFDMTAwX1RY REVTMV9JTlNfVkxBTlRBRzsKLQkJY3N1bV92bGFuIHw9IHNrYl92bGFuX3RhZ19nZXQoc2tiKSAm IDB4ZmZmZjsKLQl9Ci0KIAl0eGRlcy0+dHhkZXMxID0gY3B1X3RvX2xlMzIoY3N1bV92bGFuKTsK IAogCS8qIE5leHQgZGVzY3JpcHRvciAqLwotLSAKMi4yMC4xCgoKRnJvbSA3MGNhNzljMzNjN2Vi ZTUyODViNmJhNTNmNzBhZGQ0ZjMxMGI4MDgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBUZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+CkRhdGU6IFRodSwgMjQgT2N0IDIwMTkgMTM6NTA6 MjcgLTA3MDAKU3ViamVjdDogW1BBVENIIDEwLzU1XSBuZXQ6IGZpeCBza19wYWdlX2ZyYWcoKSBy ZWN1cnNpb24gZnJvbSBtZW1vcnkgcmVjbGFpbQoKWyBVcHN0cmVhbSBjb21taXQgMjBlYjRmMjli NjAyODZlMGQ2ZGMwMWQ5YzI2MGI0YmQzODNjNThmYiBdCgpza19wYWdlX2ZyYWcoKSBvcHRpbWl6 ZXMgc2tiX2ZyYWcgYWxsb2NhdGlvbnMgYnkgdXNpbmcgcGVyLXRhc2sKc2tiX2ZyYWcgY2FjaGUg d2hlbiBpdCBrbm93cyBpdCdzIHRoZSBvbmx5IHVzZXIuICBUaGUgY29uZGl0aW9uIGlzCmRldGVy bWluZWQgYnkgc2VlaW5nIHdoZXRoZXIgdGhlIHNvY2tldCBhbGxvY2F0aW9uIG1hc2sgYWxsb3dz CmJsb2NraW5nIC0gaWYgdGhlIGFsbG9jYXRpb24gbWF5IGJsb2NrLCBpdCBvYnZpb3VzbHkgb3du cyB0aGUgdGFzaydzCmNvbnRleHQgYW5kIGVyZ28gZXhjbHVzaXZlbHkgb3ducyBjdXJyZW50LT50 YXNrX2ZyYWcuCgpVbmZvcnR1bmF0ZWx5LCB0aGlzIG1pc3NlcyByZWN1cnNpb24gdGhyb3VnaCBt ZW1vcnkgcmVjbGFpbSBwYXRoLgpQbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIGZvbGxvd2luZyBi YWNrdHJhY2UuCgogWzJdIFJJUDogMDAxMDp0Y3Bfc2VuZG1zZ19sb2NrZWQrMHhjY2YvMHhlMTAK ICAgICAuLi4KICAgICB0Y3Bfc2VuZG1zZysweDI3LzB4NDAKICAgICBzb2NrX3NlbmRtc2crMHgz MC8weDQwCiAgICAgc29ja194bWl0LmlzcmEuMjQrMHhhMS8weDE3MCBbbmJkXQogICAgIG5iZF9z ZW5kX2NtZCsweDFkMi8weDY5MCBbbmJkXQogICAgIG5iZF9xdWV1ZV9ycSsweDFiNS8weDNiMCBb bmJkXQogICAgIF9fYmxrX21xX3RyeV9pc3N1ZV9kaXJlY3RseSsweDEwOC8weDFiMAogICAgIGJs a19tcV9yZXF1ZXN0X2lzc3VlX2RpcmVjdGx5KzB4YmQvMHhlMAogICAgIGJsa19tcV90cnlfaXNz dWVfbGlzdF9kaXJlY3RseSsweDQxLzB4YjAKICAgICBibGtfbXFfc2NoZWRfaW5zZXJ0X3JlcXVl c3RzKzB4YTIvMHhlMAogICAgIGJsa19tcV9mbHVzaF9wbHVnX2xpc3QrMHgyMDUvMHgyYTAKICAg ICBibGtfZmx1c2hfcGx1Z19saXN0KzB4YzMvMHhmMAogWzFdIGJsa19maW5pc2hfcGx1ZysweDIx LzB4MmUKICAgICBfeGZzX2J1Zl9pb2FwcGx5KzB4MzEzLzB4NDYwCiAgICAgX194ZnNfYnVmX3N1 Ym1pdCsweDY3LzB4MjIwCiAgICAgeGZzX2J1Zl9yZWFkX21hcCsweDExMy8weDFhMAogICAgIHhm c190cmFuc19yZWFkX2J1Zl9tYXArMHhiZi8weDMzMAogICAgIHhmc19idHJlZV9yZWFkX2J1Zl9i bG9jay5jb25zdHByb3AuNDIrMHg5NS8weGQwCiAgICAgeGZzX2J0cmVlX2xvb2t1cF9nZXRfYmxv Y2srMHg5NS8weDE3MAogICAgIHhmc19idHJlZV9sb29rdXArMHhjYy8weDQ3MAogICAgIHhmc19i bWFwX2RlbF9leHRlbnRfcmVhbCsweDI1NC8weDlhMAogICAgIF9feGZzX2J1bm1hcGkrMHg0NWMv MHhhYjAKICAgICB4ZnNfYnVubWFwaSsweDE1LzB4MzAKICAgICB4ZnNfaXRydW5jYXRlX2V4dGVu dHNfZmxhZ3MrMHhjYS8weDI1MAogICAgIHhmc19mcmVlX2VvZmJsb2NrcysweDE4MS8weDFlMAog ICAgIHhmc19mc19kZXN0cm95X2lub2RlKzB4YTgvMHgxYjAKICAgICBkZXN0cm95X2lub2RlKzB4 MzgvMHg3MAogICAgIGRpc3Bvc2VfbGlzdCsweDM1LzB4NTAKICAgICBwcnVuZV9pY2FjaGVfc2Ir MHg1Mi8weDcwCiAgICAgc3VwZXJfY2FjaGVfc2NhbisweDEyMC8weDFhMAogICAgIGRvX3Nocmlu a19zbGFiKzB4MTIwLzB4MjkwCiAgICAgc2hyaW5rX3NsYWIrMHgyMTYvMHgyYjAKICAgICBzaHJp bmtfbm9kZSsweDFiNi8weDRhMAogICAgIGRvX3RyeV90b19mcmVlX3BhZ2VzKzB4YzYvMHgzNzAK ICAgICB0cnlfdG9fZnJlZV9tZW1fY2dyb3VwX3BhZ2VzKzB4ZTMvMHgxZTAKICAgICB0cnlfY2hh cmdlKzB4MjllLzB4NzkwCiAgICAgbWVtX2Nncm91cF9jaGFyZ2Vfc2ttZW0rMHg2YS8weDEwMAog ICAgIF9fc2tfbWVtX3JhaXNlX2FsbG9jYXRlZCsweDE4ZS8weDM5MAogICAgIF9fc2tfbWVtX3Nj aGVkdWxlKzB4MmEvMHg0MAogWzBdIHRjcF9zZW5kbXNnX2xvY2tlZCsweDhlYi8weGUxMAogICAg IHRjcF9zZW5kbXNnKzB4MjcvMHg0MAogICAgIHNvY2tfc2VuZG1zZysweDMwLzB4NDAKICAgICBf X19zeXNfc2VuZG1zZysweDI2ZC8weDJiMAogICAgIF9fc3lzX3NlbmRtc2crMHg1Ny8weGEwCiAg ICAgZG9fc3lzY2FsbF82NCsweDQyLzB4MTAwCiAgICAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4NDQvMHhhOQoKSW4gWzBdLCB0Y3Bfc2VuZF9tc2dfbG9ja2VkKCkgd2FzIHVzaW5n IGN1cnJlbnQtPnBhZ2VfZnJhZyB3aGVuIGl0CmNhbGxlZCBza193bWVtX3NjaGVkdWxlKCkuICBJ dCBhbHJlYWR5IGNhbGN1bGF0ZWQgaG93IG1hbnkgYnl0ZXMgY2FuCmJlIGZpdCBpbnRvIGN1cnJl bnQtPnBhZ2VfZnJhZy4gIER1ZSB0byBtZW1vcnkgcHJlc3N1cmUsCnNrX3dtZW1fc2NoZWR1bGUo KSBjYWxsZWQgaW50byBtZW1vcnkgcmVjbGFpbSBwYXRoIHdoaWNoIGNhbGxlZCBpbnRvCnhmcyBh bmQgdGhlbiBJTyBpc3N1ZSBwYXRoLiAgQmVjYXVzZSB0aGUgZmlsZXN5c3RlbSBpbiBxdWVzdGlv biBpcwpiYWNrZWQgYnkgbmJkLCB0aGUgY29udHJvbCBnb2VzIGJhY2sgaW50byB0aGUgdGNwIGxh eWVyIC0gYmFjayBpbnRvCnRjcF9zZW5kbXNnX2xvY2tlZCgpLgoKbmJkIHNldHMgc2tfYWxsb2Nh dGlvbiB0byAoR0ZQX05PSU8gfCBfX0dGUF9NRU1BTExPQykgd2hpY2ggbWFrZXMKc2Vuc2UgLSBp dCdzIGluIHRoZSBwcm9jZXNzIG9mIGZyZWVpbmcgbWVtb3J5IGFuZCB3YW50cyB0byBiZSBhYmxl IHRvLAplLmcuLCBkcm9wIGNsZWFuIHBhZ2VzIHRvIG1ha2UgZm9yd2FyZCBwcm9ncmVzcy4gIEhv d2V2ZXIsIHRoaXMKY29uZnVzZWQgc2tfcGFnZV9mcmFnKCkgY2FsbGVkIGZyb20gWzJdLiAgQmVj YXVzZSBpdCBvbmx5IHRlc3RzCndoZXRoZXIgdGhlIGFsbG9jYXRpb24gYWxsb3dzIGJsb2NraW5n IHdoaWNoIGl0IGRvZXMsIGl0IG5vdyB0aGlua3MKY3VycmVudC0+cGFnZV9mcmFnIGNhbiBiZSB1 c2VkIGFnYWluIGFsdGhvdWdoIGl0IGFscmVhZHkgd2FzIGJlaW5nCnVzZWQgaW4gWzBdLgoKQWZ0 ZXIgWzJdIHVzZWQgY3VycmVudC0+cGFnZV9mcmFnLCB0aGUgb2Zmc2V0IHdvdWxkIGJlIGluY3Jl YXNlZCBieQp0aGUgdXNlZCBhbW91bnQuICBXaGVuIHRoZSBjb250cm9sIHJldHVybnMgdG8gWzBd LApjdXJyZW50LT5wYWdlX2ZyYWcncyBvZmZzZXQgaXMgaW5jcmVhc2VkIGFuZCB0aGUgcHJldmlv dXNseSBjYWxjdWxhdGVkCm51bWJlciBvZiBieXRlcyBub3cgbWF5IG92ZXJydW4gdGhlIGVuZCBv ZiBhbGxvY2F0ZWQgbWVtb3J5IGxlYWRpbmcgdG8Kc2lsZW50IG1lbW9yeSBjb3JydXB0aW9ucy4K CkZpeCBpdCBieSBhZGRpbmcgZ2ZwZmxhZ3Nfbm9ybWFsX2NvbnRleHQoKSB3aGljaCB0ZXN0cyBz bGVlcGFibGUgJiYKIXJlY2xhaW0gYW5kIHVzZSBpdCB0byBkZXRlcm1pbmUgd2hldGhlciB0byB1 c2UgY3VycmVudC0+dGFza19mcmFnLgoKdjI6IEVyaWMgZGlkbid0IGxpa2UgZ2ZwIGZsYWdzIGJl aW5nIHRlc3RlZCB0d2ljZS4gIEludHJvZHVjZSBhIG5ldwogICAgaGVscGVyIGdmcGZsYWdzX25v cm1hbF9jb250ZXh0KCkgYW5kIGNvbWJpbmUgdGhlIHR3byB0ZXN0cy4KClNpZ25lZC1vZmYtYnk6 IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IEpvc2VmIEJhY2lrIDxqb3NlZkB0b3hpY3Bh bmRhLmNvbT4KQ2M6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KQ2M6IHN0 YWJsZUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvZ2ZwLmggfCAyMyArKysrKysrKysr KysrKysrKysrKysrKwogaW5jbHVkZS9uZXQvc29jay5oICB8IDExICsrKysrKysrLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9nZnAuaCBiL2luY2x1ZGUvbGludXgvZ2ZwLmgKaW5kZXggZjMzODgx Njg4ZjQyLi5mZjFjOTZiOGFlOTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZ2ZwLmgKKysr IGIvaW5jbHVkZS9saW51eC9nZnAuaApAQCAtMzI1LDYgKzMyNSwyOSBAQCBzdGF0aWMgaW5saW5l IGJvb2wgZ2ZwZmxhZ3NfYWxsb3dfYmxvY2tpbmcoY29uc3QgZ2ZwX3QgZ2ZwX2ZsYWdzKQogCXJl dHVybiAhIShnZnBfZmxhZ3MgJiBfX0dGUF9ESVJFQ1RfUkVDTEFJTSk7CiB9CiAKKy8qKgorICog Z2ZwZmxhZ3Nfbm9ybWFsX2NvbnRleHQgLSBpcyBnZnBfZmxhZ3MgYSBub3JtYWwgc2xlZXBhYmxl IGNvbnRleHQ/CisgKiBAZ2ZwX2ZsYWdzOiBnZnBfZmxhZ3MgdG8gdGVzdAorICoKKyAqIFRlc3Qg d2hldGhlciBAZ2ZwX2ZsYWdzIGluZGljYXRlcyB0aGF0IHRoZSBhbGxvY2F0aW9uIGlzIGZyb20g dGhlCisgKiAlY3VycmVudCBjb250ZXh0IGFuZCBhbGxvd2VkIHRvIHNsZWVwLgorICoKKyAqIEFu IGFsbG9jYXRpb24gYmVpbmcgYWxsb3dlZCB0byBibG9jayBkb2Vzbid0IG1lYW4gaXQgb3ducyB0 aGUgJWN1cnJlbnQKKyAqIGNvbnRleHQuICBXaGVuIGRpcmVjdCByZWNsYWltIHBhdGggdHJpZXMg dG8gYWxsb2NhdGUgbWVtb3J5LCB0aGUKKyAqIGFsbG9jYXRpb24gY29udGV4dCBpcyBuZXN0ZWQg aW5zaWRlIHdoYXRldmVyICVjdXJyZW50IHdhcyBkb2luZyBhdCB0aGUKKyAqIHRpbWUgb2YgdGhl IG9yaWdpbmFsIGFsbG9jYXRpb24uICBUaGUgbmVzdGVkIGFsbG9jYXRpb24gbWF5IGJlIGFsbG93 ZWQKKyAqIHRvIGJsb2NrIGJ1dCBtb2RpZnlpbmcgYW55dGhpbmcgJWN1cnJlbnQgb3ducyBjYW4g Y29ycnVwdCB0aGUgb3V0ZXIKKyAqIGNvbnRleHQncyBleHBlY3RhdGlvbnMuCisgKgorICogJXRy dWUgcmVzdWx0IGZyb20gdGhpcyBmdW5jdGlvbiBpbmRpY2F0ZXMgdGhhdCB0aGUgYWxsb2NhdGlv biBjb250ZXh0CisgKiBjYW4gc2xlZXAgYW5kIHVzZSBhbnl0aGluZyB0aGF0J3MgYXNzb2NpYXRl ZCB3aXRoICVjdXJyZW50LgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgZ2ZwZmxhZ3Nfbm9ybWFs X2NvbnRleHQoY29uc3QgZ2ZwX3QgZ2ZwX2ZsYWdzKQoreworCXJldHVybiAoZ2ZwX2ZsYWdzICYg KF9fR0ZQX0RJUkVDVF9SRUNMQUlNIHwgX19HRlBfTUVNQUxMT0MpKSA9PQorCQlfX0dGUF9ESVJF Q1RfUkVDTEFJTTsKK30KKwogI2lmZGVmIENPTkZJR19ISUdITUVNCiAjZGVmaW5lIE9QVF9aT05F X0hJR0hNRU0gWk9ORV9ISUdITUVNCiAjZWxzZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc29j ay5oIGIvaW5jbHVkZS9uZXQvc29jay5oCmluZGV4IDBhMmZkMzdkMmE5Mi4uYjAzZjk2MzcwZjhl IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zb2NrLmgKKysrIGIvaW5jbHVkZS9uZXQvc29jay5o CkBAIC0yMjMzLDEyICsyMjMzLDE3IEBAIHN0cnVjdCBza19idWZmICpza19zdHJlYW1fYWxsb2Nf c2tiKHN0cnVjdCBzb2NrICpzaywgaW50IHNpemUsIGdmcF90IGdmcCwKICAqIHNrX3BhZ2VfZnJh ZyAtIHJldHVybiBhbiBhcHByb3ByaWF0ZSBwYWdlX2ZyYWcKICAqIEBzazogc29ja2V0CiAgKgot ICogSWYgc29ja2V0IGFsbG9jYXRpb24gbW9kZSBhbGxvd3MgY3VycmVudCB0aHJlYWQgdG8gc2xl ZXAsIGl0IG1lYW5zIGl0cwotICogc2FmZSB0byB1c2UgdGhlIHBlciB0YXNrIHBhZ2VfZnJhZyBp bnN0ZWFkIG9mIHRoZSBwZXIgc29ja2V0IG9uZS4KKyAqIFVzZSB0aGUgcGVyIHRhc2sgcGFnZV9m cmFnIGluc3RlYWQgb2YgdGhlIHBlciBzb2NrZXQgb25lIGZvcgorICogb3B0aW1pemF0aW9uIHdo ZW4gd2Uga25vdyB0aGF0IHdlJ3JlIGluIHRoZSBub3JtYWwgY29udGV4dCBhbmQgb3ducworICog ZXZlcnl0aGluZyB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoICVjdXJyZW50LgorICoKKyAqIGdmcGZs YWdzX2FsbG93X2Jsb2NraW5nKCkgaXNuJ3QgZW5vdWdoIGhlcmUgYXMgZGlyZWN0IHJlY2xhaW0g bWF5IG5lc3QKKyAqIGluc2lkZSBvdGhlciBzb2NrZXQgb3BlcmF0aW9ucyBhbmQgZW5kIHVwIHJl Y3Vyc2luZyBpbnRvIHNrX3BhZ2VfZnJhZygpCisgKiB3aGlsZSBpdCdzIGFscmVhZHkgaW4gdXNl LgogICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2ZyYWcgKnNrX3BhZ2VfZnJhZyhzdHJ1 Y3Qgc29jayAqc2spCiB7Ci0JaWYgKGdmcGZsYWdzX2FsbG93X2Jsb2NraW5nKHNrLT5za19hbGxv Y2F0aW9uKSkKKwlpZiAoZ2ZwZmxhZ3Nfbm9ybWFsX2NvbnRleHQoc2stPnNrX2FsbG9jYXRpb24p KQogCQlyZXR1cm4gJmN1cnJlbnQtPnRhc2tfZnJhZzsKIAogCXJldHVybiAmc2stPnNrX2ZyYWc7 Ci0tIAoyLjIwLjEKCgpGcm9tIDIxM2MyNTc5YTVhN2UwZDU0OTczNDlhZWRiYmZkMThiMWFmMzM4 N2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppYW5nZmVuZyBYaWFvIDx4aWFvamlh bmdmZW5nQGh1YXdlaS5jb20+CkRhdGU6IE1vbiwgMjggT2N0IDIwMTkgMTM6MDk6NDYgKzA4MDAK U3ViamVjdDogW1BBVENIIDExLzU1XSBuZXQ6IGhpc2lsaWNvbjogRml4IHBpbmcgbGF0ZW5jeSB3 aGVuIGRlYWwgd2l0aCBoaWdoCiB0aHJvdWdocHV0CgpbIFVwc3RyZWFtIGNvbW1pdCBlNTZiZDY0 MWNhNjFiZWI5MmIxMzUyOThkNTA0NjkwNWY5MjBiNzM0IF0KClRoaXMgaXMgZHVlIHRvIGVycm9y IGluIG92ZXIgYnVkZ2V0IHByb2Nlc3NpbmcuCldoZW4gZGVhbGluZyB3aXRoIGhpZ2ggdGhyb3Vn aHB1dCwgdGhlIHVzZWQgYnVmZmVycwp0aGF0IGV4Y2VlZHMgdGhlIGJ1ZGdldCBpcyBub3QgY2xl YW5lZCB1cC4gSW4gYWRkaXRpb24sCml0IHRha2VzIGEgbG90IG9mIGN5Y2xlcyB0byBjbGVhbiB1 cCB0aGUgdXNlZCBidWZmZXIsCmFuZCB0aGVuIHRoZSBidWZmZXIgd2hlcmUgdGhlIHZhbGlkIGRh dGEgaXMgbG9jYXRlZCBjYW4gdGFrZSBlZmZlY3QuCgpTaWduZWQtb2ZmLWJ5OiBKaWFuZ2Zlbmcg WGlhbyA8eGlhb2ppYW5nZmVuZ0BodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlz aWxpY29uL2hpcDA0X2V0aC5jIHwgMTUgKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2hpc2lsaWNvbi9oaXAwNF9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hp c2lsaWNvbi9oaXAwNF9ldGguYwppbmRleCBjODQxNjc0NDdhYmUuLmY1MWJjMDI1NTU1NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpcDA0X2V0aC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaXAwNF9ldGguYwpAQCAtMjM3LDYgKzIz Nyw3IEBAIHN0cnVjdCBoaXAwNF9wcml2IHsKIAlkbWFfYWRkcl90IHJ4X3BoeXNbUlhfREVTQ19O VU1dOwogCXVuc2lnbmVkIGludCByeF9oZWFkOwogCXVuc2lnbmVkIGludCByeF9idWZfc2l6ZTsK Kwl1bnNpZ25lZCBpbnQgcnhfY250X3JlbWFpbmluZzsKIAogCXN0cnVjdCBkZXZpY2Vfbm9kZSAq cGh5X25vZGU7CiAJc3RydWN0IHBoeV9kZXZpY2UgKnBoeTsKQEAgLTU3NSw3ICs1NzYsNiBAQCBz dGF0aWMgaW50IGhpcDA0X3J4X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVk Z2V0KQogCXN0cnVjdCBoaXAwNF9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKG5hcGksIHN0cnVj dCBoaXAwNF9wcml2LCBuYXBpKTsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IHByaXYtPm5k ZXY7CiAJc3RydWN0IG5ldF9kZXZpY2Vfc3RhdHMgKnN0YXRzID0gJm5kZXYtPnN0YXRzOwotCXVu c2lnbmVkIGludCBjbnQgPSBoaXAwNF9yZWN2X2NudChwcml2KTsKIAlzdHJ1Y3QgcnhfZGVzYyAq ZGVzYzsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKQEAgLTU4 OCw4ICs1ODgsOCBAQCBzdGF0aWMgaW50IGhpcDA0X3J4X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0 ICpuYXBpLCBpbnQgYnVkZ2V0KQogCiAJLyogY2xlYW4gdXAgdHggZGVzY3JpcHRvcnMgKi8KIAl0 eF9yZW1haW5pbmcgPSBoaXAwNF90eF9yZWNsYWltKG5kZXYsIGZhbHNlKTsKLQotCXdoaWxlIChj bnQgJiYgIWxhc3QpIHsKKwlwcml2LT5yeF9jbnRfcmVtYWluaW5nICs9IGhpcDA0X3JlY3ZfY250 KHByaXYpOworCXdoaWxlIChwcml2LT5yeF9jbnRfcmVtYWluaW5nICYmICFsYXN0KSB7CiAJCWJ1 ZiA9IHByaXYtPnJ4X2J1Zltwcml2LT5yeF9oZWFkXTsKIAkJc2tiID0gYnVpbGRfc2tiKGJ1Ziwg cHJpdi0+cnhfYnVmX3NpemUpOwogCQlpZiAodW5saWtlbHkoIXNrYikpIHsKQEAgLTYzNSwxMSAr NjM1LDEzIEBAIHN0YXRpYyBpbnQgaGlwMDRfcnhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5h cGksIGludCBidWRnZXQpCiAJCWhpcDA0X3NldF9yZWN2X2Rlc2MocHJpdiwgcGh5cyk7CiAKIAkJ cHJpdi0+cnhfaGVhZCA9IFJYX05FWFQocHJpdi0+cnhfaGVhZCk7Ci0JCWlmIChyeCA+PSBidWRn ZXQpCisJCWlmIChyeCA+PSBidWRnZXQpIHsKKwkJCS0tcHJpdi0+cnhfY250X3JlbWFpbmluZzsK IAkJCWdvdG8gZG9uZTsKKwkJfQogCi0JCWlmICgtLWNudCA9PSAwKQotCQkJY250ID0gaGlwMDRf cmVjdl9jbnQocHJpdik7CisJCWlmICgtLXByaXYtPnJ4X2NudF9yZW1haW5pbmcgPT0gMCkKKwkJ CXByaXYtPnJ4X2NudF9yZW1haW5pbmcgKz0gaGlwMDRfcmVjdl9jbnQocHJpdik7CiAJfQogCiAJ aWYgKCEocHJpdi0+cmVnX2ludGVuICYgUkNWX0lOVCkpIHsKQEAgLTcyNCw2ICs3MjYsNyBAQCBz dGF0aWMgaW50IGhpcDA0X21hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQogCWludCBp OwogCiAJcHJpdi0+cnhfaGVhZCA9IDA7CisJcHJpdi0+cnhfY250X3JlbWFpbmluZyA9IDA7CiAJ cHJpdi0+dHhfaGVhZCA9IDA7CiAJcHJpdi0+dHhfdGFpbCA9IDA7CiAJaGlwMDRfcmVzZXRfcHBl KHByaXYpOwotLSAKMi4yMC4xCgoKRnJvbSA4ZjU2YjljNjkyMmI1NzU1YzY0MTY1MmIwYWY4MGE3 NjNmYjE4OWVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmFuIEJlbiBFbGlzaGEg PGVyYW5iZUBtZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMjcgT2N0IDIwMTkgMTY6Mzk6MTUgKzAy MDAKU3ViamVjdDogW1BBVENIIDEyLzU1XSBuZXQvbWx4NF9jb3JlOiBEeW5hbWljYWxseSBzZXQg Z3VhcmFudGVlZCBhbW91bnQgb2YKIGNvdW50ZXJzIHBlciBWRgoKWyBVcHN0cmVhbSBjb21taXQg ZTE5ODY4ZWZlYTBjMTAzZjIzYjRiN2U5ODZmZDBhNzAzODIyMTExZiBdCgpQcmlvciB0byB0aGlz IHBhdGNoLCB0aGUgYW1vdW50IG9mIGNvdW50ZXJzIGd1YXJhbnRlZWQgcGVyIFZGIGluIHRoZQpy ZXNvdXJjZSB0cmFja2VyIHdhcyBNTFg0X1ZGX0NPVU5URVJTX1BFUl9QT1JUICogTUxYNF9NQVhf UE9SVFMuIEl0IHdhcwpzZXQgcmVnYXJkbGVzcyBpZiB0aGUgVkYgd2FzIHNpbmdsZSBvciBkdWFs IHBvcnQuClRoaXMgY2F1c2VkIHNldmVyYWwgVkZzIHRvIGhhdmUgbm8gZ3VhcmFudGVlZCBjb3Vu dGVycyBhbHRob3VnaCB0aGUKc3lzdGVtIGNvdWxkIHNhdGlzZnkgdGhlaXIgcmVxdWVzdC4KClRo ZSBmaXggaXMgdG8gZHluYW1pY2FsbHkgZ3VhcmFudGVlIGNvdW50ZXJzLCBiYXNlZCBvbiBlYWNo IFZGCnNwZWNpZmljYXRpb24uCgpGaXhlczogOWRlOTJjNjBiZWFhICgibmV0L21seDRfY29yZTog QWRqdXN0IGNvdW50ZXIgZ3JhbnQgcG9saWN5IGluIHRoZSByZXNvdXJjZSB0cmFja2VyIikKU2ln bmVkLW9mZi1ieTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBKYWNrIE1vcmdlbnN0ZWluIDxqYWNrbUBkZXYubWVsbGFub3guY28uaWw+ClNpZ25l ZC1vZmYtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L3Jlc291cmNlX3RyYWNrZXIuYyB8IDQyICsrKysrKysrKysrKy0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3Jlc291cmNlX3Ry YWNrZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvcmVzb3VyY2VfdHJh Y2tlci5jCmluZGV4IDQzNTZmM2E1ODAwMi4uMTE4N2VmMTM3NWUyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3Jlc291cmNlX3RyYWNrZXIuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3Jlc291cmNlX3RyYWNrZXIuYwpAQCAt NDcxLDEyICs0NzEsMzEgQEAgdm9pZCBtbHg0X2luaXRfcXVvdGFzKHN0cnVjdCBtbHg0X2RldiAq ZGV2KQogCQlwcml2LT5tZnVuYy5tYXN0ZXIucmVzX3RyYWNrZXIucmVzX2FsbG9jW1JFU19NUFRd LnF1b3RhW3BmXTsKIH0KIAotc3RhdGljIGludCBnZXRfbWF4X2dhdXJhbnRlZWRfdmZzX2NvdW50 ZXIoc3RydWN0IG1seDRfZGV2ICpkZXYpCitzdGF0aWMgaW50CittbHg0X2NhbGNfcmVzX2NvdW50 ZXJfZ3VhcmFudGVlZChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwKKwkJCQkgc3RydWN0IHJlc291cmNl X2FsbG9jYXRvciAqcmVzX2FsbG9jLAorCQkJCSBpbnQgdmYpCiB7Ci0JLyogcmVkdWNlIHRoZSBz aW5rIGNvdW50ZXIgKi8KLQlyZXR1cm4gKGRldi0+Y2Fwcy5tYXhfY291bnRlcnMgLSAxIC0KLQkJ KE1MWDRfUEZfQ09VTlRFUlNfUEVSX1BPUlQgKiBNTFg0X01BWF9QT1JUUykpCi0JCS8gTUxYNF9N QVhfUE9SVFM7CisJc3RydWN0IG1seDRfYWN0aXZlX3BvcnRzIGFjdHZfcG9ydHM7CisJaW50IHBv cnRzLCBjb3VudGVyc19ndWFyYW50ZWVkOworCisJLyogRm9yIG1hc3Rlciwgb25seSBhbGxvY2F0 ZSBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBwaHlzIHBvcnRzICovCisJaWYgKHZmID09IG1s eDRfbWFzdGVyX2Z1bmNfbnVtKGRldikpCisJCXJldHVybiBNTFg0X1BGX0NPVU5URVJTX1BFUl9Q T1JUICogZGV2LT5jYXBzLm51bV9wb3J0czsKKworCS8qIGNhbGN1bGF0ZSByZWFsIG51bWJlciBv ZiBwb3J0cyBmb3IgdGhlIFZGICovCisJYWN0dl9wb3J0cyA9IG1seDRfZ2V0X2FjdGl2ZV9wb3J0 cyhkZXYsIHZmKTsKKwlwb3J0cyA9IGJpdG1hcF93ZWlnaHQoYWN0dl9wb3J0cy5wb3J0cywgZGV2 LT5jYXBzLm51bV9wb3J0cyk7CisJY291bnRlcnNfZ3VhcmFudGVlZCA9IHBvcnRzICogTUxYNF9W Rl9DT1VOVEVSU19QRVJfUE9SVDsKKworCS8qIElmIHdlIGRvIG5vdCBoYXZlIGVub3VnaCBjb3Vu dGVycyBmb3IgdGhpcyBWRiwgZG8gbm90CisJICogYWxsb2NhdGUgYW55IGZvciBpdC4gJy0xJyB0 byByZWR1Y2UgdGhlIHNpbmsgY291bnRlci4KKwkgKi8KKwlpZiAoKHJlc19hbGxvYy0+cmVzX3Jl c2VydmVkICsgY291bnRlcnNfZ3VhcmFudGVlZCkgPgorCSAgICAoZGV2LT5jYXBzLm1heF9jb3Vu dGVycyAtIDEpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBjb3VudGVyc19ndWFyYW50ZWVkOwog fQogCiBpbnQgbWx4NF9pbml0X3Jlc291cmNlX3RyYWNrZXIoc3RydWN0IG1seDRfZGV2ICpkZXYp CkBAIC00ODQsNyArNTAzLDYgQEAgaW50IG1seDRfaW5pdF9yZXNvdXJjZV90cmFja2VyKHN0cnVj dCBtbHg0X2RldiAqZGV2KQogCXN0cnVjdCBtbHg0X3ByaXYgKnByaXYgPSBtbHg0X3ByaXYoZGV2 KTsKIAlpbnQgaSwgajsKIAlpbnQgdDsKLQlpbnQgbWF4X3Zmc19ndWFyYW50ZWVfY291bnRlciA9 IGdldF9tYXhfZ2F1cmFudGVlZF92ZnNfY291bnRlcihkZXYpOwogCiAJcHJpdi0+bWZ1bmMubWFz dGVyLnJlc190cmFja2VyLnNsYXZlX2xpc3QgPQogCQlrY2FsbG9jKGRldi0+bnVtX3NsYXZlcywg c2l6ZW9mKHN0cnVjdCBzbGF2ZV9saXN0KSwKQEAgLTYwMywxNiArNjIxLDggQEAgaW50IG1seDRf aW5pdF9yZXNvdXJjZV90cmFja2VyKHN0cnVjdCBtbHg0X2RldiAqZGV2KQogCQkJCWJyZWFrOwog CQkJY2FzZSBSRVNfQ09VTlRFUjoKIAkJCQlyZXNfYWxsb2MtPnF1b3RhW3RdID0gZGV2LT5jYXBz Lm1heF9jb3VudGVyczsKLQkJCQlpZiAodCA9PSBtbHg0X21hc3Rlcl9mdW5jX251bShkZXYpKQot CQkJCQlyZXNfYWxsb2MtPmd1YXJhbnRlZWRbdF0gPQotCQkJCQkJTUxYNF9QRl9DT1VOVEVSU19Q RVJfUE9SVCAqCi0JCQkJCQlNTFg0X01BWF9QT1JUUzsKLQkJCQllbHNlIGlmICh0IDw9IG1heF92 ZnNfZ3VhcmFudGVlX2NvdW50ZXIpCi0JCQkJCXJlc19hbGxvYy0+Z3VhcmFudGVlZFt0XSA9Ci0J CQkJCQlNTFg0X1ZGX0NPVU5URVJTX1BFUl9QT1JUICoKLQkJCQkJCU1MWDRfTUFYX1BPUlRTOwot CQkJCWVsc2UKLQkJCQkJcmVzX2FsbG9jLT5ndWFyYW50ZWVkW3RdID0gMDsKKwkJCQlyZXNfYWxs b2MtPmd1YXJhbnRlZWRbdF0gPQorCQkJCQltbHg0X2NhbGNfcmVzX2NvdW50ZXJfZ3VhcmFudGVl ZChkZXYsIHJlc19hbGxvYywgdCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWJyZWFr OwotLSAKMi4yMC4xCgoKRnJvbSA2MTdhMmRhZGU2MmE2ZDg1YTI5OTM1ZGE5YmQxM2E3Y2QyNDg1 OWNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGduYXVs dEByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDIzIE9jdCAyMDE5IDE4OjM5OjA0ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAxMy81NV0gbmV0bnM6IGZpeCBHRlAgZmxhZ3MgaW4gcnRubF9uZXRfbm90aWZ5 aWQoKQoKWyBVcHN0cmVhbSBjb21taXQgZDRlNGZkZjllNGEyN2M4N2VkYjc5YjE0Nzg5NTUwNzVi ZTE0MWY2NyBdCgpJbiBydG5sX25ldF9ub3RpZnlpZCgpLCB3ZSBjZXJ0YWlubHkgY2FuJ3QgcGFz cyBhIG51bGwgR0ZQIGZsYWcgdG8KcnRubF9ub3RpZnkoKS4gQSBHRlBfS0VSTkVMIGZsYWcgd291 bGQgYmUgZmluZSBpbiBtb3N0IGNpcmN1bXN0YW5jZXMsCmJ1dCB0aGVyZSBhcmUgYSBmZXcgcGF0 aHMgY2FsbGluZyBydG5sX25ldF9ub3RpZnlpZCgpIGZyb20gYXRvbWljCmNvbnRleHQgb3IgZnJv bSBSQ1UgY3JpdGljYWwgc2VjdGlvbnMuIFRoZSBsYXRlciBhbHNvIHByZWNsdWRlcyB0aGUgdXNl Cm9mIGdmcF9hbnkoKSBhcyBpdCB3b3VsZG4ndCBkZXRlY3QgdGhlIFJDVSBjYXNlLiBBbHNvLCB0 aGUgbmxtc2dfbmV3KCkKY2FsbCBpcyB3cm9uZyB0b28sIGFzIGl0IHVzZXMgR0ZQX0tFUk5FTCB1 bmNvbmRpdGlvbmFsbHkuCgpUaGVyZWZvcmUsIHdlIG5lZWQgdG8gcGFzcyB0aGUgR0ZQIGZsYWdz IGFzIHBhcmFtZXRlciBhbmQgcHJvcGFnYXRlIGl0CnRocm91Z2ggZnVuY3Rpb24gY2FsbHMgdW50 aWwgdGhlIHByb3BlciBmbGFncyBjYW4gYmUgZGV0ZXJtaW5lZC4KCkluIG1vc3QgY2FzZXMsIEdG UF9LRVJORUwgaXMgZmluZS4gVGhlIGV4Y2VwdGlvbnMgYXJlOgogICogb3BlbnZzd2l0Y2g6IG92 c192cG9ydF9jbWRfZ2V0KCkgYW5kIG92c192cG9ydF9jbWRfZHVtcCgpCiAgICBpbmRpcmVjdGx5 IGNhbGwgcnRubF9uZXRfbm90aWZ5aWQoKSBmcm9tIFJDVSBjcml0aWNhbCBzZWN0aW9uLAoKICAq IHJ0bmV0bGluazogcnRtc2dfaWZpbmZvX2J1aWxkX3NrYigpIGFscmVhZHkgcmVjZWl2ZXMgR0ZQ IGZsYWdzIGFzCiAgICBwYXJhbWV0ZXIuCgpBbHNvLCBpbiBvdnNfdnBvcnRfY21kX2J1aWxkX2lu Zm8oKSwgbGV0J3MgY2hhbmdlIHRoZSBHRlAgZmxhZ3MgdXNlZApieSBubG1zZ19uZXcoKS4gVGhl IGZ1bmN0aW9uIGlzIGFsbG93ZWQgdG8gc2xlZXAsIHNvIGJldHRlciBtYWtlIHRoZQpmbGFncyBj b25zaXN0ZW50IHdpdGggdGhlIG9uZXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nCm92c192cG9ydF9j bWRfZmlsbF9pbmZvKCkgY2FsbC4KCkZvdW5kIGJ5IGNvZGUgaW5zcGVjdGlvbi4KCkZpeGVzOiA5 YTk2MzQ1NDVjNzAgKCJuZXRuczogbm90aWZ5IG5ldG5zIGlkIGV2ZW50cyIpClNpZ25lZC1vZmYt Ynk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBOaWNvbGFz IERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkFja2VkLWJ5OiBQcmF2aW4gQiBT aGVsYXIgPHBzaGVsYXJAb3ZuLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaCB8ICAy ICstCiBuZXQvY29yZS9kZXYuYyAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2NvcmUvbmV0X25h bWVzcGFjZS5jICAgIHwgMTcgKysrKysrKysrLS0tLS0tLS0KIG5ldC9jb3JlL3J0bmV0bGluay5j ICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyAg fCAyMCArKysrKysrKysrKy0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25z KCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9uZXRfbmFtZXNw YWNlLmggYi9pbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmgKaW5kZXggYWI0MGQ3YWZkYzU0Li5m MWYzNDM4ZWQxM2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaAorKysg Yi9pbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmgKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBuZXQgKnJlYWRfcG5ldChjb25zdCBwb3NzaWJsZV9uZXRfdCAqcG5ldCkK ICNkZWZpbmUgX19uZXRfaW5pdGNvbnN0CV9faW5pdGNvbnN0CiAjZW5kaWYKIAotaW50IHBlZXJu ZXQyaWRfYWxsb2Moc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmV0ICpwZWVyKTsKK2ludCBwZWVy bmV0MmlkX2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldCAqcGVlciwgZ2ZwX3QgZ2Zw KTsKIGludCBwZWVybmV0MmlkKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldCAqcGVlcik7CiBi b29sIHBlZXJuZXRfaGFzX2lkKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldCAqcGVlcik7CiBz dHJ1Y3QgbmV0ICpnZXRfbmV0X25zX2J5X2lkKHN0cnVjdCBuZXQgKm5ldCwgaW50IGlkKTsKZGlm ZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggNGVkOWRmNzRl YjhhLi4zM2IyNzhiODI2YjUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9j b3JlL2Rldi5jCkBAIC05NDExLDcgKzk0MTEsNyBAQCBpbnQgZGV2X2NoYW5nZV9uZXRfbmFtZXNw YWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhcgog CWNhbGxfbmV0ZGV2aWNlX25vdGlmaWVycyhORVRERVZfVU5SRUdJU1RFUiwgZGV2KTsKIAlyY3Vf YmFycmllcigpOwogCi0JbmV3X25zaWQgPSBwZWVybmV0MmlkX2FsbG9jKGRldl9uZXQoZGV2KSwg bmV0KTsKKwluZXdfbnNpZCA9IHBlZXJuZXQyaWRfYWxsb2MoZGV2X25ldChkZXYpLCBuZXQsIEdG UF9LRVJORUwpOwogCS8qIElmIHRoZXJlIGlzIGFuIGlmaW5kZXggY29uZmxpY3QgYXNzaWduIGEg bmV3IG9uZSAqLwogCWlmIChfX2Rldl9nZXRfYnlfaW5kZXgobmV0LCBkZXYtPmlmaW5kZXgpKQog CQluZXdfaWZpbmRleCA9IGRldl9uZXdfaW5kZXgobmV0KTsKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L25ldF9uYW1lc3BhY2UuYyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwppbmRleCBhMGUwZDI5 OGM5OTEuLjUzYWM2NDdiODkzYiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5j CisrKyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwpAQCAtMjQ1LDExICsyNDUsMTEgQEAgc3Rh dGljIGludCBfX3BlZXJuZXQyaWQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmV0ICpwZWVyKQog CXJldHVybiBfX3BlZXJuZXQyaWRfYWxsb2MobmV0LCBwZWVyLCAmbm8pOwogfQogCi1zdGF0aWMg dm9pZCBydG5sX25ldF9ub3RpZnlpZChzdHJ1Y3QgbmV0ICpuZXQsIGludCBjbWQsIGludCBpZCk7 CitzdGF0aWMgdm9pZCBydG5sX25ldF9ub3RpZnlpZChzdHJ1Y3QgbmV0ICpuZXQsIGludCBjbWQs IGludCBpZCwgZ2ZwX3QgZ2ZwKTsKIC8qIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgaWQgb2Yg YSBwZWVyIG5ldG5zLiBJZiBubyBpZCBpcyBhc3NpZ25lZCwgb25lIHdpbGwKICAqIGJlIGFsbG9j YXRlZCBhbmQgcmV0dXJuZWQuCiAgKi8KLWludCBwZWVybmV0MmlkX2FsbG9jKHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IG5ldCAqcGVlcikKK2ludCBwZWVybmV0MmlkX2FsbG9jKHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IG5ldCAqcGVlciwgZ2ZwX3QgZ2ZwKQogewogCWJvb2wgYWxsb2MgPSBmYWxz ZSwgYWxpdmUgPSBmYWxzZTsKIAlpbnQgaWQ7CkBAIC0yNjgsNyArMjY4LDcgQEAgaW50IHBlZXJu ZXQyaWRfYWxsb2Moc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmV0ICpwZWVyKQogCWlkID0gX19w ZWVybmV0MmlkX2FsbG9jKG5ldCwgcGVlciwgJmFsbG9jKTsKIAlzcGluX3VubG9ja19iaCgmbmV0 LT5uc2lkX2xvY2spOwogCWlmIChhbGxvYyAmJiBpZCA+PSAwKQotCQlydG5sX25ldF9ub3RpZnlp ZChuZXQsIFJUTV9ORVdOU0lELCBpZCk7CisJCXJ0bmxfbmV0X25vdGlmeWlkKG5ldCwgUlRNX05F V05TSUQsIGlkLCBnZnApOwogCWlmIChhbGl2ZSkKIAkJcHV0X25ldChwZWVyKTsKIAlyZXR1cm4g aWQ7CkBAIC01MzIsNyArNTMyLDggQEAgc3RhdGljIHZvaWQgdW5oYXNoX25zaWQoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgbmV0ICpsYXN0KQogCQkJaWRyX3JlbW92ZSgmdG1wLT5uZXRuc19pZHMs IGlkKTsKIAkJc3Bpbl91bmxvY2tfYmgoJnRtcC0+bnNpZF9sb2NrKTsKIAkJaWYgKGlkID49IDAp Ci0JCQlydG5sX25ldF9ub3RpZnlpZCh0bXAsIFJUTV9ERUxOU0lELCBpZCk7CisJCQlydG5sX25l dF9ub3RpZnlpZCh0bXAsIFJUTV9ERUxOU0lELCBpZCwKKwkJCQkJICBHRlBfS0VSTkVMKTsKIAkJ aWYgKHRtcCA9PSBsYXN0KQogCQkJYnJlYWs7CiAJfQpAQCAtNzY0LDcgKzc2NSw3IEBAIHN0YXRp YyBpbnQgcnRubF9uZXRfbmV3aWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRy ICpubGgsCiAJZXJyID0gYWxsb2NfbmV0aWQobmV0LCBwZWVyLCBuc2lkKTsKIAlzcGluX3VubG9j a19iaCgmbmV0LT5uc2lkX2xvY2spOwogCWlmIChlcnIgPj0gMCkgewotCQlydG5sX25ldF9ub3Rp ZnlpZChuZXQsIFJUTV9ORVdOU0lELCBlcnIpOworCQlydG5sX25ldF9ub3RpZnlpZChuZXQsIFJU TV9ORVdOU0lELCBlcnIsIEdGUF9LRVJORUwpOwogCQllcnIgPSAwOwogCX0gZWxzZSBpZiAoZXJy ID09IC1FTk9TUEMgJiYgbnNpZCA+PSAwKSB7CiAJCWVyciA9IC1FRVhJU1Q7CkBAIC0xMDUxLDcg KzEwNTIsNyBAQCBzdGF0aWMgaW50IHJ0bmxfbmV0X2R1bXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJcmV0dXJuIGVyciA8IDAgPyBlcnIgOiBz a2ItPmxlbjsKIH0KIAotc3RhdGljIHZvaWQgcnRubF9uZXRfbm90aWZ5aWQoc3RydWN0IG5ldCAq bmV0LCBpbnQgY21kLCBpbnQgaWQpCitzdGF0aWMgdm9pZCBydG5sX25ldF9ub3RpZnlpZChzdHJ1 Y3QgbmV0ICpuZXQsIGludCBjbWQsIGludCBpZCwgZ2ZwX3QgZ2ZwKQogewogCXN0cnVjdCBuZXRf ZmlsbF9hcmdzIGZpbGxhcmdzID0gewogCQkuY21kID0gY21kLApAQCAtMTA2MCw3ICsxMDYxLDcg QEAgc3RhdGljIHZvaWQgcnRubF9uZXRfbm90aWZ5aWQoc3RydWN0IG5ldCAqbmV0LCBpbnQgY21k LCBpbnQgaWQpCiAJc3RydWN0IHNrX2J1ZmYgKm1zZzsKIAlpbnQgZXJyID0gLUVOT01FTTsKIAot CW1zZyA9IG5sbXNnX25ldyhydG5sX25ldF9nZXRfc2l6ZSgpLCBHRlBfS0VSTkVMKTsKKwltc2cg PSBubG1zZ19uZXcocnRubF9uZXRfZ2V0X3NpemUoKSwgZ2ZwKTsKIAlpZiAoIW1zZykKIAkJZ290 byBvdXQ7CiAKQEAgLTEwNjgsNyArMTA2OSw3IEBAIHN0YXRpYyB2b2lkIHJ0bmxfbmV0X25vdGlm eWlkKHN0cnVjdCBuZXQgKm5ldCwgaW50IGNtZCwgaW50IGlkKQogCWlmIChlcnIgPCAwKQogCQln b3RvIGVycl9vdXQ7CiAKLQlydG5sX25vdGlmeShtc2csIG5ldCwgMCwgUlROTEdSUF9OU0lELCBO VUxMLCAwKTsKKwlydG5sX25vdGlmeShtc2csIG5ldCwgMCwgUlROTEdSUF9OU0lELCBOVUxMLCBn ZnApOwogCXJldHVybjsKIAogZXJyX291dDoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3J0bmV0bGlu ay5jIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKaW5kZXggMWVlNjQ2MGY4Mjc1Li42Yjg2NmFmZjdi MjEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0 bGluay5jCkBAIC0xNTIzLDcgKzE1MjMsNyBAQCBzdGF0aWMgbm9pbmxpbmVfZm9yX3N0YWNrIGlu dCBubGFfcHV0X2lmYWxpYXMoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogc3RhdGljIGludCBydG5s X2ZpbGxfbGlua19uZXRuc2lkKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICBjb25zdCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LAotCQkJCSAgc3RydWN0IG5ldCAqc3JjX25ldCkKKwkJCQkgIHN0 cnVjdCBuZXQgKnNyY19uZXQsIGdmcF90IGdmcCkKIHsKIAlib29sIHB1dF9pZmxpbmsgPSBmYWxz ZTsKIApAQCAtMTUzMSw3ICsxNTMxLDcgQEAgc3RhdGljIGludCBydG5sX2ZpbGxfbGlua19uZXRu c2lkKHN0cnVjdCBza19idWZmICpza2IsCiAJCXN0cnVjdCBuZXQgKmxpbmtfbmV0ID0gZGV2LT5y dG5sX2xpbmtfb3BzLT5nZXRfbGlua19uZXQoZGV2KTsKIAogCQlpZiAoIW5ldF9lcShkZXZfbmV0 KGRldiksIGxpbmtfbmV0KSkgewotCQkJaW50IGlkID0gcGVlcm5ldDJpZF9hbGxvYyhzcmNfbmV0 LCBsaW5rX25ldCk7CisJCQlpbnQgaWQgPSBwZWVybmV0MmlkX2FsbG9jKHNyY19uZXQsIGxpbmtf bmV0LCBnZnApOwogCiAJCQlpZiAobmxhX3B1dF9zMzIoc2tiLCBJRkxBX0xJTktfTkVUTlNJRCwg aWQpKQogCQkJCXJldHVybiAtRU1TR1NJWkU7CkBAIC0xNTg5LDcgKzE1ODksNyBAQCBzdGF0aWMg aW50IHJ0bmxfZmlsbF9pZmluZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICBpbnQgdHlw ZSwgdTMyIHBpZCwgdTMyIHNlcSwgdTMyIGNoYW5nZSwKIAkJCSAgICB1bnNpZ25lZCBpbnQgZmxh Z3MsIHUzMiBleHRfZmlsdGVyX21hc2ssCiAJCQkgICAgdTMyIGV2ZW50LCBpbnQgKm5ld19uc2lk LCBpbnQgbmV3X2lmaW5kZXgsCi0JCQkgICAgaW50IHRndF9uZXRuc2lkKQorCQkJICAgIGludCB0 Z3RfbmV0bnNpZCwgZ2ZwX3QgZ2ZwKQogewogCXN0cnVjdCBpZmluZm9tc2cgKmlmbTsKIAlzdHJ1 Y3Qgbmxtc2doZHIgKm5saDsKQEAgLTE2ODEsNyArMTY4MSw3IEBAIHN0YXRpYyBpbnQgcnRubF9m aWxsX2lmaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7 CiAJfQogCi0JaWYgKHJ0bmxfZmlsbF9saW5rX25ldG5zaWQoc2tiLCBkZXYsIHNyY19uZXQpKQor CWlmIChydG5sX2ZpbGxfbGlua19uZXRuc2lkKHNrYiwgZGV2LCBzcmNfbmV0LCBnZnApKQogCQln b3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCWlmIChuZXdfbnNpZCAmJgpAQCAtMjAwMSw3ICsyMDAx LDcgQEAgc3RhdGljIGludCBydG5sX2R1bXBfaWZpbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJCQkJICAgICAgIE5FVExJTktfQ0IoY2ItPnNr YikucG9ydGlkLAogCQkJCQkgICAgICAgbmxoLT5ubG1zZ19zZXEsIDAsIGZsYWdzLAogCQkJCQkg ICAgICAgZXh0X2ZpbHRlcl9tYXNrLCAwLCBOVUxMLCAwLAotCQkJCQkgICAgICAgbmV0bnNpZCk7 CisJCQkJCSAgICAgICBuZXRuc2lkLCBHRlBfS0VSTkVMKTsKIAogCQkJaWYgKGVyciA8IDApIHsK IAkJCQlpZiAobGlrZWx5KHNrYi0+bGVuKSkKQEAgLTMzNTksNyArMzM1OSw3IEBAIHN0YXRpYyBp bnQgcnRubF9nZXRsaW5rKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxo LAogCWVyciA9IHJ0bmxfZmlsbF9pZmluZm8obnNrYiwgZGV2LCBuZXQsCiAJCQkgICAgICAgUlRN X05FV0xJTkssIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQsCiAJCQkgICAgICAgbmxoLT5ubG1zZ19z ZXEsIDAsIDAsIGV4dF9maWx0ZXJfbWFzaywKLQkJCSAgICAgICAwLCBOVUxMLCAwLCBuZXRuc2lk KTsKKwkJCSAgICAgICAwLCBOVUxMLCAwLCBuZXRuc2lkLCBHRlBfS0VSTkVMKTsKIAlpZiAoZXJy IDwgMCkgewogCQkvKiAtRU1TR1NJWkUgaW1wbGllcyBCVUcgaW4gaWZfbmxtc2dfc2l6ZSAqLwog CQlXQVJOX09OKGVyciA9PSAtRU1TR1NJWkUpOwpAQCAtMzQ3MSw3ICszNDcxLDcgQEAgc3RydWN0 IHNrX2J1ZmYgKnJ0bXNnX2lmaW5mb19idWlsZF9za2IoaW50IHR5cGUsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCiAKIAllcnIgPSBydG5sX2ZpbGxfaWZpbmZvKHNrYiwgZGV2LCBkZXZfbmV0KGRl diksCiAJCQkgICAgICAgdHlwZSwgMCwgMCwgY2hhbmdlLCAwLCAwLCBldmVudCwKLQkJCSAgICAg ICBuZXdfbnNpZCwgbmV3X2lmaW5kZXgsIC0xKTsKKwkJCSAgICAgICBuZXdfbnNpZCwgbmV3X2lm aW5kZXgsIC0xLCBmbGFncyk7CiAJaWYgKGVyciA8IDApIHsKIAkJLyogLUVNU0dTSVpFIGltcGxp ZXMgQlVHIGluIGlmX25sbXNnX3NpemUoKSAqLwogCQlXQVJOX09OKGVyciA9PSAtRU1TR1NJWkUp OwpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9uZXQvb3BlbnZzd2l0 Y2gvZGF0YXBhdGguYwppbmRleCBmMWU3MDQxYTVhNjAuLjQzYWVjYTEyMjA4YyAxMDA2NDQKLS0t IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2RhdGFw YXRoLmMKQEAgLTE4NTAsNyArMTg1MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgZHBf ZGF0YXBhdGhfZ2VubF9mYW1pbHkgX19yb19hZnRlcl9pbml0ID0gewogLyogQ2FsbGVkIHdpdGgg b3ZzX211dGV4IG9yIFJDVSByZWFkIGxvY2suICovCiBzdGF0aWMgaW50IG92c192cG9ydF9jbWRf ZmlsbF9pbmZvKHN0cnVjdCB2cG9ydCAqdnBvcnQsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJ ICAgc3RydWN0IG5ldCAqbmV0LCB1MzIgcG9ydGlkLCB1MzIgc2VxLAotCQkJCSAgIHUzMiBmbGFn cywgdTggY21kKQorCQkJCSAgIHUzMiBmbGFncywgdTggY21kLCBnZnBfdCBnZnApCiB7CiAJc3Ry dWN0IG92c19oZWFkZXIgKm92c19oZWFkZXI7CiAJc3RydWN0IG92c192cG9ydF9zdGF0cyB2cG9y dF9zdGF0czsKQEAgLTE4NzEsNyArMTg3MSw3IEBAIHN0YXRpYyBpbnQgb3ZzX3Zwb3J0X2NtZF9m aWxsX2luZm8oc3RydWN0IHZwb3J0ICp2cG9ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZ290 byBubGFfcHV0X2ZhaWx1cmU7CiAKIAlpZiAoIW5ldF9lcShuZXQsIGRldl9uZXQodnBvcnQtPmRl dikpKSB7Ci0JCWludCBpZCA9IHBlZXJuZXQyaWRfYWxsb2MobmV0LCBkZXZfbmV0KHZwb3J0LT5k ZXYpKTsKKwkJaW50IGlkID0gcGVlcm5ldDJpZF9hbGxvYyhuZXQsIGRldl9uZXQodnBvcnQtPmRl diksIGdmcCk7CiAKIAkJaWYgKG5sYV9wdXRfczMyKHNrYiwgT1ZTX1ZQT1JUX0FUVFJfTkVUTlNJ RCwgaWQpKQogCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7CkBAIC0xOTEyLDExICsxOTEyLDEyIEBA IHN0cnVjdCBza19idWZmICpvdnNfdnBvcnRfY21kX2J1aWxkX2luZm8oc3RydWN0IHZwb3J0ICp2 cG9ydCwgc3RydWN0IG5ldCAqbmV0LAogCXN0cnVjdCBza19idWZmICpza2I7CiAJaW50IHJldHZh bDsKIAotCXNrYiA9IG5sbXNnX25ldyhOTE1TR19ERUZBVUxUX1NJWkUsIEdGUF9BVE9NSUMpOwor CXNrYiA9IG5sbXNnX25ldyhOTE1TR19ERUZBVUxUX1NJWkUsIEdGUF9LRVJORUwpOwogCWlmICgh c2tiKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCXJldHZhbCA9IG92c192cG9ydF9j bWRfZmlsbF9pbmZvKHZwb3J0LCBza2IsIG5ldCwgcG9ydGlkLCBzZXEsIDAsIGNtZCk7CisJcmV0 dmFsID0gb3ZzX3Zwb3J0X2NtZF9maWxsX2luZm8odnBvcnQsIHNrYiwgbmV0LCBwb3J0aWQsIHNl cSwgMCwgY21kLAorCQkJCQkgR0ZQX0tFUk5FTCk7CiAJQlVHX09OKHJldHZhbCA8IDApOwogCiAJ cmV0dXJuIHNrYjsKQEAgLTIwNTgsNyArMjA1OSw3IEBAIHN0YXRpYyBpbnQgb3ZzX3Zwb3J0X2Nt ZF9uZXcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAogCWVy ciA9IG92c192cG9ydF9jbWRfZmlsbF9pbmZvKHZwb3J0LCByZXBseSwgZ2VubF9pbmZvX25ldChp bmZvKSwKIAkJCQkgICAgICBpbmZvLT5zbmRfcG9ydGlkLCBpbmZvLT5zbmRfc2VxLCAwLAotCQkJ CSAgICAgIE9WU19WUE9SVF9DTURfTkVXKTsKKwkJCQkgICAgICBPVlNfVlBPUlRfQ01EX05FVywg R0ZQX0tFUk5FTCk7CiAKIAluZXdfaGVhZHJvb20gPSBuZXRkZXZfZ2V0X2Z3ZF9oZWFkcm9vbSh2 cG9ydC0+ZGV2KTsKIApAQCAtMjExOSw3ICsyMTIwLDcgQEAgc3RhdGljIGludCBvdnNfdnBvcnRf Y21kX3NldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCiAJ ZXJyID0gb3ZzX3Zwb3J0X2NtZF9maWxsX2luZm8odnBvcnQsIHJlcGx5LCBnZW5sX2luZm9fbmV0 KGluZm8pLAogCQkJCSAgICAgIGluZm8tPnNuZF9wb3J0aWQsIGluZm8tPnNuZF9zZXEsIDAsCi0J CQkJICAgICAgT1ZTX1ZQT1JUX0NNRF9TRVQpOworCQkJCSAgICAgIE9WU19WUE9SVF9DTURfU0VU LCBHRlBfS0VSTkVMKTsKIAlCVUdfT04oZXJyIDwgMCk7CiAKIAlvdnNfdW5sb2NrKCk7CkBAIC0y MTU5LDcgKzIxNjAsNyBAQCBzdGF0aWMgaW50IG92c192cG9ydF9jbWRfZGVsKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAKIAllcnIgPSBvdnNfdnBvcnRfY21k X2ZpbGxfaW5mbyh2cG9ydCwgcmVwbHksIGdlbmxfaW5mb19uZXQoaW5mbyksCiAJCQkJICAgICAg aW5mby0+c25kX3BvcnRpZCwgaW5mby0+c25kX3NlcSwgMCwKLQkJCQkgICAgICBPVlNfVlBPUlRf Q01EX0RFTCk7CisJCQkJICAgICAgT1ZTX1ZQT1JUX0NNRF9ERUwsIEdGUF9LRVJORUwpOwogCUJV R19PTihlcnIgPCAwKTsKIAogCS8qIHRoZSB2cG9ydCBkZWxldGlvbiBtYXkgdHJpZ2dlciBkcCBo ZWFkcm9vbSB1cGRhdGUgKi8KQEAgLTIyMDYsNyArMjIwNyw3IEBAIHN0YXRpYyBpbnQgb3ZzX3Zw b3J0X2NtZF9nZXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykK IAkJZ290byBleGl0X3VubG9ja19mcmVlOwogCWVyciA9IG92c192cG9ydF9jbWRfZmlsbF9pbmZv KHZwb3J0LCByZXBseSwgZ2VubF9pbmZvX25ldChpbmZvKSwKIAkJCQkgICAgICBpbmZvLT5zbmRf cG9ydGlkLCBpbmZvLT5zbmRfc2VxLCAwLAotCQkJCSAgICAgIE9WU19WUE9SVF9DTURfR0VUKTsK KwkJCQkgICAgICBPVlNfVlBPUlRfQ01EX0dFVCwgR0ZQX0FUT01JQyk7CiAJQlVHX09OKGVyciA8 IDApOwogCXJjdV9yZWFkX3VubG9jaygpOwogCkBAIC0yMjQyLDcgKzIyNDMsOCBAQCBzdGF0aWMg aW50IG92c192cG9ydF9jbWRfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlu a19jYWxsYmFjayAqY2IpCiAJCQkJCQkgICAgTkVUTElOS19DQihjYi0+c2tiKS5wb3J0aWQsCiAJ CQkJCQkgICAgY2ItPm5saC0+bmxtc2dfc2VxLAogCQkJCQkJICAgIE5MTV9GX01VTFRJLAotCQkJ CQkJICAgIE9WU19WUE9SVF9DTURfR0VUKSA8IDApCisJCQkJCQkgICAgT1ZTX1ZQT1JUX0NNRF9H RVQsCisJCQkJCQkgICAgR0ZQX0FUT01JQykgPCAwKQogCQkJCWdvdG8gb3V0OwogCiAJCQlqKys7 Ci0tIAoyLjIwLjEKCgpGcm9tIGE4MmQ5ODExNzQzZjYyYTE4OWVmYmZlZjJjNTU1OGQ3NjEwNjlj NzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5p a29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVHVlLCAyOSBPY3QgMjAxOSAxMzo1OToz MiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvNTVdIG5ldDogcnRuZXRsaW5rOiBmaXggYSB0eXBv IGZiZCAtPiBmZGIKClsgVXBzdHJlYW0gY29tbWl0IDhiNzMwMThmZTQ0NTIxYzFjZjU5ZDdiYWM1 MzYyNGM4N2QzZjEwZTIgXQoKQSBzaW1wbGUgdHlwbyBmaXggaW4gdGhlIG5sIGVycm9yIG1lc3Nh Z2UgKGZiZCAtPiBmZGIpLgoKQ0M6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRml4 ZXM6IDhjNmUxMzdmYmM3ZiAoInJ0bmV0bGluazogVXBkYXRlIHJ0bmxfZmRiX2R1bXAgZm9yIHN0 cmljdCBkYXRhIGNoZWNraW5nIikKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8 bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRz YWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29y ZS9ydG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IDZiODY2YWZmN2IyMS4u ODY4YTc2OGY3MzAwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQv Y29yZS9ydG5ldGxpbmsuYwpAQCAtMzkxNiw3ICszOTE2LDcgQEAgc3RhdGljIGludCB2YWxpZF9m ZGJfZHVtcF9zdHJpY3QoY29uc3Qgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJbmRtID0gbmxtc2df ZGF0YShubGgpOwogCWlmIChuZG0tPm5kbV9wYWQxICB8fCBuZG0tPm5kbV9wYWQyICB8fCBuZG0t Pm5kbV9zdGF0ZSB8fAogCSAgICBuZG0tPm5kbV9mbGFncyB8fCBuZG0tPm5kbV90eXBlKSB7Ci0J CU5MX1NFVF9FUlJfTVNHKGV4dGFjaywgIkludmFsaWQgdmFsdWVzIGluIGhlYWRlciBmb3IgZmJk IGR1bXAgcmVxdWVzdCIpOworCQlOTF9TRVRfRVJSX01TRyhleHRhY2ssICJJbnZhbGlkIHZhbHVl cyBpbiBoZWFkZXIgZm9yIGZkYiBkdW1wIHJlcXVlc3QiKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJ fQogCi0tIAoyLjIwLjEKCgpGcm9tIGNmNjkzOTg3M2Y2NTIwOGY4ZjA2NGI4ODlkNWY2MjkwYTYx ZjcwNTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBXYWduZXIgPGR3YWdu ZXJAc3VzZS5kZT4KRGF0ZTogRnJpLCAyNSBPY3QgMjAxOSAxMDowNDoxMyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMTUvNTVdIG5ldDogdXNiOiBsYW43OHh4OiBEaXNhYmxlIGludGVycnVwdHMgYmVm b3JlIGNhbGxpbmcKIGdlbmVyaWNfaGFuZGxlX2lycSgpCgpbIFVwc3RyZWFtIGNvbW1pdCAwYTI5 YWM1YmQzYTk4OGRjMTUxYzhkMjY5MTBkZWMyNTU3NDIxZjY0IF0KCmxhbjc4eHhfc3RhdHVzKCkg d2lsbCBydW4gd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQgZHVlIHRvIHRoZSBjaGFuZ2UgaW4KZWQx OTRkMTM2NzY5ICgidXNiOiBjb3JlOiByZW1vdmUgbG9jYWxfaXJxX3NhdmUoKSBhcm91bmQgLT5j b21wbGV0ZSgpCmhhbmRsZXIiKS4gZ2VuZXJpY19oYW5kbGVfaXJxKCkgZXhwZWN0cyB0byBiZSBy dW4gd2l0aCBJUlFzIGRpc2FibGVkLgoKWyAgICA0Ljg4NjIwM10gMDAwOiBpcnEgNzkgaGFuZGxl ciBpcnFfZGVmYXVsdF9wcmltYXJ5X2hhbmRsZXIrMHgwLzB4OCBlbmFibGVkIGludGVycnVwdHMK WyAgICA0Ljg4NjI0M10gMDAwOiBXQVJOSU5HOiBDUFU6IDAgUElEOiAwIGF0IGtlcm5lbC9pcnEv aGFuZGxlLmM6MTUyIF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHgxNTQvMHgxNjgKWyAgICA0 Ljg5NjI5NF0gMDAwOiBNb2R1bGVzIGxpbmtlZCBpbjoKWyAgICA0Ljg5NjMwMV0gMDAwOiBDUFU6 IDAgUElEOiAwIENvbW06IHN3YXBwZXIvMCBOb3QgdGFpbnRlZCA1LjMuNiAjMzkKWyAgICA0Ljg5 NjMxMF0gMDAwOiBIYXJkd2FyZSBuYW1lOiBSYXNwYmVycnkgUGkgMyBNb2RlbCBCKyAoRFQpClsg ICAgNC44OTYzMTVdIDAwMDogcHN0YXRlOiA2MDAwMDAwNSAoblpDdiBkYWlmIC1QQU4gLVVBTykK WyAgICA0Ljg5NjMyMV0gMDAwOiBwYyA6IF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHgxNTQv MHgxNjgKWyAgICA0Ljg5NjMzMV0gMDAwOiBsciA6IF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUr MHgxNTQvMHgxNjgKWyAgICA0Ljg5NjMzOV0gMDAwOiBzcCA6IGZmZmYwMDAwMTAwMDNjYzAKWyAg ICA0Ljg5NjM0Nl0gMDAwOiB4Mjk6IGZmZmYwMDAwMTAwMDNjYzAgeDI4OiAwMDAwMDAwMDAwMDAw MDYwClsgICAgNC44OTYzNTVdIDAwMDogeDI3OiBmZmZmMDAwMDExMDIxOTgwIHgyNjogZmZmZjAw MDAxMTg5YzcyYgpbICAgIDQuODk2MzY0XSAwMDA6IHgyNTogZmZmZjAwMDAxMTcwMmJjMCB4MjQ6 IGZmZmY4MDAwMzZkNmU0MDAKWyAgICA0Ljg5NjM3M10gMDAwOiB4MjM6IDAwMDAwMDAwMDAwMDAw NGYgeDIyOiBmZmZmMDAwMDEwMDAzZDY0ClsgICAgNC44OTYzODFdIDAwMDogeDIxOiAwMDAwMDAw MDAwMDAwMDAwIHgyMDogMDAwMDAwMDAwMDAwMDAwMgpbICAgIDQuODk2MzkwXSAwMDA6IHgxOTog ZmZmZjgwMDAzNzFjODQ4MCB4MTg6IDAwMDAwMDAwMDAwMDAwNjAKWyAgICA0Ljg5NjM5OF0gMDAw OiB4MTc6IDAwMDAwMDAwMDAwMDAwMDAgeDE2OiAwMDAwMDAwMDAwMDAwMGViClsgICAgNC44OTY0 MDZdIDAwMDogeDE1OiBmZmZmMDAwMDExNzEyZDE4IHgxNDogNzI2NTc0NmU2OTIwNjQ2NQpbICAg IDQuODk2NDE0XSAwMDA6IHgxMzogZmZmZjAwMDAxMDAwM2JhMCB4MTI6IGZmZmYwMDAwMTE3MTJk ZjAKWyAgICA0Ljg5NjQyMl0gMDAwOiB4MTE6IDAwMDAwMDAwMDAwMDAwMDEgeDEwOiBmZmZmMDAw MDExNzEyZTA4ClsgICAgNC44OTY0MzBdIDAwMDogeDkgOiAwMDAwMDAwMDAwMDAwMDAxIHg4IDog MDAwMDAwMDAwMDAzYzkyMApbICAgIDQuODk2NDM3XSAwMDA6IHg3IDogZmZmZjAwMDAxMThjYzQx MCB4NiA6IGZmZmYwMDAwMTE4YzdmMDAKWyAgICA0Ljg5NjQ0NV0gMDAwOiB4NSA6IDAwMDAwMDAw MDAwM2M5MjAgeDQgOiAwMDAwMDAwMDAwMDA0NTEwClsgICAgNC44OTY0NTNdIDAwMDogeDMgOiBm ZmZmMDAwMDExNzEyZGM4IHgyIDogMDAwMDAwMDAwMDAwMDAwMApbICAgIDQuODk2NDYxXSAwMDA6 IHgxIDogNzNhM2Y2N2RmOTRjMTUwMCB4MCA6IDAwMDAwMDAwMDAwMDAwMDAKWyAgICA0Ljg5NjQ2 Nl0gMDAwOiBDYWxsIHRyYWNlOgpbICAgIDQuODk2NDcxXSAwMDA6ICBfX2hhbmRsZV9pcnFfZXZl bnRfcGVyY3B1KzB4MTU0LzB4MTY4ClsgICAgNC44OTY0ODFdIDAwMDogIGhhbmRsZV9pcnFfZXZl bnRfcGVyY3B1KzB4NTAvMHhiMApbICAgIDQuODk2NDg5XSAwMDA6ICBoYW5kbGVfaXJxX2V2ZW50 KzB4NDAvMHg5OApbICAgIDQuODk2NDk3XSAwMDA6ICBoYW5kbGVfc2ltcGxlX2lycSsweGE0LzB4 ZjAKWyAgICA0Ljg5NjUwNV0gMDAwOiAgZ2VuZXJpY19oYW5kbGVfaXJxKzB4MjQvMHgzOApbICAg IDQuODk2NTEzXSAwMDA6ICBpbnRyX2NvbXBsZXRlKzB4YjAvMHhlMApbICAgIDQuODk2NTI1XSAw MDA6ICBfX3VzYl9oY2RfZ2l2ZWJhY2tfdXJiKzB4NTgvMHhkOApbICAgIDQuODk2NTMzXSAwMDA6 ICB1c2JfZ2l2ZWJhY2tfdXJiX2JoKzB4ZDAvMHgxNzAKWyAgICA0Ljg5NjUzOV0gMDAwOiAgdGFz a2xldF9hY3Rpb25fY29tbW9uLmlzcmEuMCsweDljLzB4MTI4ClsgICAgNC44OTY1NDldIDAwMDog IHRhc2tsZXRfaGlfYWN0aW9uKzB4MjQvMHgzMApbICAgIDQuODk2NTU2XSAwMDA6ICBfX2RvX3Nv ZnRpcnErMHgxMjAvMHgyM2MKWyAgICA0Ljg5NjU2NF0gMDAwOiAgaXJxX2V4aXQrMHhiOC8weGQ4 ClsgICAgNC44OTY1NzFdIDAwMDogIF9faGFuZGxlX2RvbWFpbl9pcnErMHg2NC8weGI4ClsgICAg NC44OTY1NzldIDAwMDogIGJjbTI4MzZfYXJtX2lycWNoaXBfaGFuZGxlX2lycSsweDYwLzB4YzAK WyAgICA0Ljg5NjU4Nl0gMDAwOiAgZWwxX2lycSsweGI4LzB4MTQwClsgICAgNC44OTY1OTJdIDAw MDogIGFyY2hfY3B1X2lkbGUrMHgxMC8weDE4ClsgICAgNC44OTY2MDFdIDAwMDogIGRvX2lkbGUr MHgyMDAvMHgyODAKWyAgICA0Ljg5NjYwOF0gMDAwOiAgY3B1X3N0YXJ0dXBfZW50cnkrMHgyMC8w eDI4ClsgICAgNC44OTY2MTVdIDAwMDogIHJlc3RfaW5pdCsweGI0LzB4YzAKWyAgICA0Ljg5NjYy M10gMDAwOiAgYXJjaF9jYWxsX3Jlc3RfaW5pdCsweGMvMHgxNApbICAgIDQuODk2NjMyXSAwMDA6 ICBzdGFydF9rZXJuZWwrMHg0NTQvMHg0ODAKCkZpeGVzOiBlZDE5NGQxMzY3NjkgKCJ1c2I6IGNv cmU6IHJlbW92ZSBsb2NhbF9pcnFfc2F2ZSgpIGFyb3VuZCAtPmNvbXBsZXRlKCkgaGFuZGxlciIp CkNjOiBXb29qdW5nIEh1aCA8d29vanVuZy5odWhAbWljcm9jaGlwLmNvbT4KQ2M6IE1hcmMgWnlu Z2llciA8bWF6QGtlcm5lbC5vcmc+CkNjOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkNj OiBTdGVmYW4gV2FocmVuIDx3YWhyZW5zdEBnbXgubmV0PgpDYzogSmlzaGVuZyBaaGFuZyA8Smlz aGVuZy5aaGFuZ0BzeW5hcHRpY3MuY29tPgpDYzogU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8 YmlnZWFzeUBsaW51dHJvbml4LmRlPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9u aXguZGU+CkNjOiBEYXZpZCBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ClNpZ25lZC1vZmYt Ynk6IERhbmllbCBXYWduZXIgPGR3YWduZXJAc3VzZS5kZT4KVGVzdGVkLWJ5OiBTdGVmYW4gV2Fo cmVuIDx3YWhyZW5zdEBnbXgubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYyB8IDUgKysr Ky0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jIGIvZHJpdmVycy9uZXQvdXNiL2xhbjc4 eHguYwppbmRleCBmMDMzZmVlMjI1YTEuLmRkOWIzZjRjNDU2MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvdXNiL2xhbjc4eHguYworKysgYi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCkBAIC0x MjY1LDggKzEyNjUsMTEgQEAgc3RhdGljIHZvaWQgbGFuNzh4eF9zdGF0dXMoc3RydWN0IGxhbjc4 eHhfbmV0ICpkZXYsIHN0cnVjdCB1cmIgKnVyYikKIAkJbmV0aWZfZGJnKGRldiwgbGluaywgZGV2 LT5uZXQsICJQSFkgSU5UUjogMHglMDh4XG4iLCBpbnRkYXRhKTsKIAkJbGFuNzh4eF9kZWZlcl9r ZXZlbnQoZGV2LCBFVkVOVF9MSU5LX1JFU0VUKTsKIAotCQlpZiAoZGV2LT5kb21haW5fZGF0YS5w aHlpcnEgPiAwKQorCQlpZiAoZGV2LT5kb21haW5fZGF0YS5waHlpcnEgPiAwKSB7CisJCQlsb2Nh bF9pcnFfZGlzYWJsZSgpOwogCQkJZ2VuZXJpY19oYW5kbGVfaXJxKGRldi0+ZG9tYWluX2RhdGEu cGh5aXJxKTsKKwkJCWxvY2FsX2lycV9lbmFibGUoKTsKKwkJfQogCX0gZWxzZQogCQluZXRkZXZf d2FybihkZXYtPm5ldCwKIAkJCSAgICAidW5leHBlY3RlZCBpbnRlcnJ1cHQ6IDB4JTA4eFxuIiwg aW50ZGF0YSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDU1ZTA2Mjk4NzlhYmY0MTA2MmQwZjU1YmU2ZmNh N2Y4ZTYzOWZmM2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHpoYW5nbGluIDx6aGFu Zy5saW4xNkB6dGUuY29tLmNuPgpEYXRlOiBTYXQsIDI2IE9jdCAyMDE5IDE1OjU0OjE2ICswODAw ClN1YmplY3Q6IFtQQVRDSCAxNi81NV0gbmV0OiBaZXJvaW5nIHRoZSBzdHJ1Y3R1cmUgZXRodG9v bF93b2xpbmZvIGluCiBldGh0b29sX2dldF93b2woKQoKWyBVcHN0cmVhbSBjb21taXQgNWZmMjIz ZTg2ZjVhZGRiZmFlMjY0MTljYmI1ZDYxZDk4ZjZmYmY3ZCBdCgptZW1zZXQoKSB0aGUgc3RydWN0 dXJlIGV0aHRvb2xfd29saW5mbyB0aGF0IGhhcyBwYWRkZWQgYnl0ZXMKYnV0IHRoZSBwYWRkZWQg Ynl0ZXMgaGF2ZSBub3QgYmVlbiB6ZXJvZWQgb3V0LgoKU2lnbmVkLW9mZi1ieTogemhhbmdsaW4g PHpoYW5nLmxpbjE2QHp0ZS5jb20uY24+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ldGh0b29sLmMgfCA0ICsrKy0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvY29yZS9ldGh0b29sLmMgYi9uZXQvY29yZS9ldGh0b29sLmMKaW5kZXggNjI4OGU2OWU5 NGZjLi41NjNhNDhjM2RmMzYgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2V0aHRvb2wuYworKysgYi9u ZXQvY29yZS9ldGh0b29sLmMKQEAgLTEzOTUsMTEgKzEzOTUsMTMgQEAgc3RhdGljIGludCBldGh0 b29sX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNoYXIgX191c2VyICp1c2VyYWRkcikK IAogc3RhdGljIGludCBldGh0b29sX2dldF93b2woc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY2hh ciBfX3VzZXIgKnVzZXJhZGRyKQogewotCXN0cnVjdCBldGh0b29sX3dvbGluZm8gd29sID0geyAu Y21kID0gRVRIVE9PTF9HV09MIH07CisJc3RydWN0IGV0aHRvb2xfd29saW5mbyB3b2w7CiAKIAlp ZiAoIWRldi0+ZXRodG9vbF9vcHMtPmdldF93b2wpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAor CW1lbXNldCgmd29sLCAwLCBzaXplb2Yoc3RydWN0IGV0aHRvb2xfd29saW5mbykpOworCXdvbC5j bWQgPSBFVEhUT09MX0dXT0w7CiAJZGV2LT5ldGh0b29sX29wcy0+Z2V0X3dvbChkZXYsICZ3b2wp OwogCiAJaWYgKGNvcHlfdG9fdXNlcih1c2VyYWRkciwgJndvbCwgc2l6ZW9mKHdvbCkpKQotLSAK Mi4yMC4xCgoKRnJvbSAxZjk4ZDhjMTk4NDM3N2Y1YTY2OGUxY2M1MDcyMWU5MWNlOWM2MzMzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+ CkRhdGU6IFRodSwgMzEgT2N0IDIwMTkgMTY6MjQ6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIIDE3 LzU1XSBzZWxmdGVzdHM6IG5ldDogcmV1c2Vwb3J0X2R1YWxzdGFjazogZml4IHVuaW5pdGFsaXpl ZAogcGFyYW1ldGVyCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFt IGNvbW1pdCBkNjQ0NzlhM2UzZjk5MjQwNzRjYTdiNTBiZDcyZmE1MjExZGNhOWMxIF0KClRoaXMg dGVzdCByZXBvcnRzIEVJTlZBTCBmb3IgZ2V0c29ja29wdChTT0xfU09DS0VULCBTT19ET01BSU4p Cm9jY2FzaW9uYWxseSBkdWUgdG8gdGhlIHVuaW5pdGlhbGl6ZWQgbGVuZ3RoIHBhcmFtZXRlci4K SW5pdGlhbGl6ZSBpdCB0byBmaXggdGhpcywgYW5kIGFsc28gdXNlIGludCBmb3IgInRlc3RfZmFt aWx5IiB0byBjb21wbHkKd2l0aCB0aGUgQVBJIHN0YW5kYXJkLgoKRml4ZXM6IGQ2YTYxZjgwYjg3 MSAoInNvcmV1c2Vwb3J0OiB0ZXN0IG1peGVkIHY0L3Y2IHNvY2tldHMiKQpSZXBvcnRlZC1ieTog TWFjaWVqIMW7ZW5jenlrb3dza2kgPG1hemVAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBXZWkgV2FuZyA8 d2Vpd2FuQGdvb2dsZS5jb20+CkNjOiBDcmFpZyBHYWxsZWsgPGNnYWxsZWtAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9yZXVzZXBvcnRfZHVhbHN0YWNrLmMgfCAzICsr LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9yZXVzZXBvcnRfZHVhbHN0YWNrLmMg Yi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcmV1c2Vwb3J0X2R1YWxzdGFjay5jCmluZGV4 IGZlMzIzMGM1NTk4Ni4uZmI3YTU5ZWQ3NTllIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9uZXQvcmV1c2Vwb3J0X2R1YWxzdGFjay5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL25ldC9yZXVzZXBvcnRfZHVhbHN0YWNrLmMKQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0 aWMgdm9pZCB0ZXN0KGludCAqcmN2X2ZkcywgaW50IGNvdW50LCBpbnQgcHJvdG8pCiB7CiAJc3Ry dWN0IGVwb2xsX2V2ZW50IGV2OwogCWludCBlcGZkLCBpLCB0ZXN0X2ZkOwotCXVpbnQxNl90IHRl c3RfZmFtaWx5OworCWludCB0ZXN0X2ZhbWlseTsKIAlzb2NrbGVuX3QgbGVuOwogCiAJZXBmZCA9 IGVwb2xsX2NyZWF0ZSgxKTsKQEAgLTE0Niw2ICsxNDYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0KGlu dCAqcmN2X2ZkcywgaW50IGNvdW50LCBpbnQgcHJvdG8pCiAJc2VuZF9mcm9tX3Y0KHByb3RvKTsK IAogCXRlc3RfZmQgPSByZWNlaXZlX29uY2UoZXBmZCwgcHJvdG8pOworCWxlbiA9IHNpemVvZih0 ZXN0X2ZhbWlseSk7CiAJaWYgKGdldHNvY2tvcHQodGVzdF9mZCwgU09MX1NPQ0tFVCwgU09fRE9N QUlOLCAmdGVzdF9mYW1pbHksICZsZW4pKQogCQllcnJvcigxLCBlcnJubywgImZhaWxlZCB0byBy ZWFkIHNvY2tldCBkb21haW4iKTsKIAlpZiAodGVzdF9mYW1pbHkgIT0gQUZfSU5FVCkKLS0gCjIu MjAuMQoKCkZyb20gNjE4Zjg4YmE4NWRiODUxOGMzNDgzN2ZmNzlhYjI0NjE5ZmRmYzhhYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBUaHUsIDI0IE9jdCAyMDE5IDExOjQzOjMxIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxOC81NV0gdWRwOiBmaXggZGF0YS1yYWNlIGluIHVkcF9zZXRfZGV2X3NjcmF0Y2goKQoKWyBV cHN0cmVhbSBjb21taXQgYTc5MzE4M2NhYTlhZmFlOTA3YTBkN2RkZDJmZmQ1NzMyOTM2OWJmNSBd CgpLQ1NBTiByZXBvcnRlZCBhIGRhdGEtcmFjZSBpbiB1ZHBfc2V0X2Rldl9zY3JhdGNoKCkgWzFd CgpUaGUgaXNzdWUgaGVyZSBpcyB0aGF0IHdlIG11c3Qgbm90IHdyaXRlIG92ZXIgc2tiIGZpZWxk cwppZiBza2IgaXMgc2hhcmVkLiBBIHNpbWlsYXIgaXNzdWUgaGFzIGJlZW4gZml4ZWQgaW4gY29t bWl0Cjg5YzIyZDhjM2IyNyAoIm5ldDogRml4IHNrYiBjc3VtIHJhY2VzIHdoZW4gcGVla2luZyIp CgpXaGlsZSB3ZSBhcmUgYXQgaXQsIHVzZSBhIGhlbHBlciBvbmx5IGRlYWxpbmcgd2l0aAp1ZHBf c2tiX3NjcmF0Y2goc2tiKS0+Y3N1bV91bm5lY2Vzc2FyeSwgYXMgdGhpcyBhbGxvd3MKdWRwX3Nl dF9kZXZfc2NyYXRjaCgpIHRvIGJlIGNhbGxlZCBvbmNlIGFuZCB0aHVzIGlubGluZWQuCgpbMV0K QlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIHVkcF9zZXRfZGV2X3NjcmF0Y2ggLyB1ZHB2Nl9yZWN2 bXNnCgp3cml0ZSB0byAweGZmZmY4ODgxMjAyNzgzMTcgb2YgMSBieXRlcyBieSB0YXNrIDEwNDEx IG9uIGNwdSAxOgogdWRwX3NldF9kZXZfc2NyYXRjaCsweGVhLzB4MjAwIG5ldC9pcHY0L3VkcC5j OjEzMDgKIF9fZmlyc3RfcGFja2V0X2xlbmd0aCsweDE0Ny8weDQyMCBuZXQvaXB2NC91ZHAuYzox NTU2CiBmaXJzdF9wYWNrZXRfbGVuZ3RoKzB4NjgvMHgyYTAgbmV0L2lwdjQvdWRwLmM6MTU3OQog dWRwX3BvbGwrMHhlYS8weDExMCBuZXQvaXB2NC91ZHAuYzoyNzIwCiBzb2NrX3BvbGwrMHhlZC8w eDI1MCBuZXQvc29ja2V0LmM6MTI1NgogdmZzX3BvbGwgaW5jbHVkZS9saW51eC9wb2xsLmg6OTAg W2lubGluZV0KIGRvX3NlbGVjdCsweDdkMC8weDEwMjAgZnMvc2VsZWN0LmM6NTM0CiBjb3JlX3N5 c19zZWxlY3QrMHgzODEvMHg1NTAgZnMvc2VsZWN0LmM6Njc3CiBkb19wc2VsZWN0LmNvbnN0cHJv cC4wKzB4MTFkLzB4MTYwIGZzL3NlbGVjdC5jOjc1OQogX19kb19zeXNfcHNlbGVjdDYgZnMvc2Vs ZWN0LmM6Nzg0IFtpbmxpbmVdCiBfX3NlX3N5c19wc2VsZWN0NiBmcy9zZWxlY3QuYzo3NjkgW2lu bGluZV0KIF9feDY0X3N5c19wc2VsZWN0NisweDEyZS8weDE3MCBmcy9zZWxlY3QuYzo3NjkKIGRv X3N5c2NhbGxfNjQrMHhjYy8weDM3MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTAKIGVudHJ5 X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKCnJlYWQgdG8gMHhmZmZmODg4MTIw Mjc4MzE3IG9mIDEgYnl0ZXMgYnkgdGFzayAxMDQxMyBvbiBjcHUgMDoKIHVkcF9za2JfY3N1bV91 bm5lY2Vzc2FyeSBpbmNsdWRlL25ldC91ZHAuaDozNTggW2lubGluZV0KIHVkcHY2X3JlY3Ztc2cr MHg0M2UvMHhlOTAgbmV0L2lwdjYvdWRwLmM6MzEwCiBpbmV0Nl9yZWN2bXNnKzB4YmIvMHgyNDAg bmV0L2lwdjYvYWZfaW5ldDYuYzo1OTIKIHNvY2tfcmVjdm1zZ19ub3NlYysweDVjLzB4NzAgbmV0 L3NvY2tldC5jOjg3MQogX19fc3lzX3JlY3Ztc2crMHgxYTAvMHgzZTAgbmV0L3NvY2tldC5jOjI0 ODAKIGRvX3JlY3ZtbXNnKzB4MTlhLzB4NWMwIG5ldC9zb2NrZXQuYzoyNjAxCiBfX3N5c19yZWN2 bW1zZysweDFlZi8weDIwMCBuZXQvc29ja2V0LmM6MjY4MAogX19kb19zeXNfcmVjdm1tc2cgbmV0 L3NvY2tldC5jOjI3MDMgW2lubGluZV0KIF9fc2Vfc3lzX3JlY3ZtbXNnIG5ldC9zb2NrZXQuYzoy Njk2IFtpbmxpbmVdCiBfX3g2NF9zeXNfcmVjdm1tc2crMHg4OS8weGIwIG5ldC9zb2NrZXQuYzoy Njk2CiBkb19zeXNjYWxsXzY0KzB4Y2MvMHgzNzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjkw CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpSZXBvcnRlZCBieSBL ZXJuZWwgQ29uY3VycmVuY3kgU2FuaXRpemVyIG9uOgpDUFU6IDAgUElEOiAxMDQxMyBDb21tOiBz eXotZXhlY3V0b3IuMCBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExCgpGaXhlczogMjI3NmY1OGFjNTg5ICgidWRwOiB1c2UgYSBzZXBhcmF0 ZSByeCBxdWV1ZSBmb3IgcGFja2V0IHJlY2VwdGlvbiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVy QGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClJl dmlld2VkLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAu YyB8IDE5ICsrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lw djQvdWRwLmMKaW5kZXggMDVlY2Y3ZjJlNjQ3Li5jZTA3MjhjNGI0YWEgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC0xMzE2LDYgKzEzMTYsMjAgQEAg c3RhdGljIHZvaWQgdWRwX3NldF9kZXZfc2NyYXRjaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlz Y3JhdGNoLT5fdHNpemVfc3RhdGUgfD0gVURQX1NLQl9JU19TVEFURUxFU1M7CiB9CiAKK3N0YXRp YyB2b2lkIHVkcF9za2JfY3N1bV91bm5lY2Vzc2FyeV9zZXQoc3RydWN0IHNrX2J1ZmYgKnNrYikK K3sKKwkvKiBXZSBjb21lIGhlcmUgYWZ0ZXIgdWRwX2xpYl9jaGVja3N1bV9jb21wbGV0ZSgpIHJl dHVybmVkIDAuCisJICogVGhpcyBtZWFucyB0aGF0IF9fc2tiX2NoZWNrc3VtX2NvbXBsZXRlKCkg bWlnaHQgaGF2ZQorCSAqIHNldCBza2ItPmNzdW1fdmFsaWQgdG8gMS4KKwkgKiBPbiA2NGJpdCBw bGF0Zm9ybXMsIHdlIGNhbiBzZXQgY3N1bV91bm5lY2Vzc2FyeQorCSAqIHRvIHRydWUsIGJ1dCBv bmx5IGlmIHRoZSBza2IgaXMgbm90IHNoYXJlZC4KKwkgKi8KKyNpZiBCSVRTX1BFUl9MT05HID09 IDY0CisJaWYgKCFza2Jfc2hhcmVkKHNrYikpCisJCXVkcF9za2Jfc2NyYXRjaChza2IpLT5jc3Vt X3VubmVjZXNzYXJ5ID0gdHJ1ZTsKKyNlbmRpZgorfQorCiBzdGF0aWMgaW50IHVkcF9za2JfdHJ1 ZXNpemUoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlyZXR1cm4gdWRwX3NrYl9zY3JhdGNoKHNr YiktPl90c2l6ZV9zdGF0ZSAmIH5VRFBfU0tCX0lTX1NUQVRFTEVTUzsKQEAgLTE1NTAsMTAgKzE1 NjQsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKl9fZmlyc3RfcGFja2V0X2xlbmd0aChzdHJ1 Y3Qgc29jayAqc2ssCiAJCQkqdG90YWwgKz0gc2tiLT50cnVlc2l6ZTsKIAkJCWtmcmVlX3NrYihz a2IpOwogCQl9IGVsc2UgewotCQkJLyogdGhlIGNzdW0gcmVsYXRlZCBiaXRzIGNvdWxkIGJlIGNo YW5nZWQsIHJlZnJlc2gKLQkJCSAqIHRoZSBzY3JhdGNoIGFyZWEKLQkJCSAqLwotCQkJdWRwX3Nl dF9kZXZfc2NyYXRjaChza2IpOworCQkJdWRwX3NrYl9jc3VtX3VubmVjZXNzYXJ5X3NldChza2Ip OwogCQkJYnJlYWs7CiAJCX0KIAl9Ci0tIAoyLjIwLjEKCgpGcm9tIDI4YmU5Nzk1ZGQ3ZTg3NWNh NGJiOWYyZmI0NTk2YTkzNTczZTNlOTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhp biBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBPY3QgMjAxOSAwMToy NDozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvNTVdIHZ4bGFuOiBjaGVjayB0dW5faW5mbyBv cHRpb25zX2xlbiBwcm9wZXJseQoKWyBVcHN0cmVhbSBjb21taXQgZWFkZjUyY2YxODUyMTk2YTEz NjMwNDRkY2RhMjJmYTVkN2YyOTZmNyBdCgpUaGlzIHBhdGNoIGlzIHRvIGltcHJvdmUgdGhlIHR1 bl9pbmZvIG9wdGlvbnNfbGVuIGJ5IGRyb3BwaW5nCnRoZSBza2Igd2hlbiBUVU5ORUxfVlhMQU5f T1BUIGlzIHNldCBidXQgb3B0aW9uc19sZW4gaXMgbGVzcwp0aGFuIHZ4bGFuX21ldGFkYXRhLiBU aGlzIGNhbiB2b2lkIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMKYWNjZXNzIG9uIGlwX3R1bl9p bmZvLgoKRml4ZXM6IGVlMTIyYzc5ZDQyMiAoInZ4bGFuOiBGbG93IGJhc2VkIHR1bm5lbGluZyIp ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3Z4bGFuLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5jIGIvZHJpdmVy cy9uZXQvdnhsYW4uYwppbmRleCAzZDliY2M5NTdmN2QuLmUwNzg3Mjg2OTI2NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysgYi9kcml2ZXJzL25ldC92eGxhbi5jCkBAIC0yNDg3 LDkgKzI0ODcsMTEgQEAgc3RhdGljIHZvaWQgdnhsYW5feG1pdF9vbmUoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJdm5pID0gdHVubmVsX2lkX3RvX2tleTMy KGluZm8tPmtleS50dW5faWQpOwogCQlpZmluZGV4ID0gMDsKIAkJZHN0X2NhY2hlID0gJmluZm8t PmRzdF9jYWNoZTsKLQkJaWYgKGluZm8tPm9wdGlvbnNfbGVuICYmCi0JCSAgICBpbmZvLT5rZXku dHVuX2ZsYWdzICYgVFVOTkVMX1ZYTEFOX09QVCkKKwkJaWYgKGluZm8tPmtleS50dW5fZmxhZ3Mg JiBUVU5ORUxfVlhMQU5fT1BUKSB7CisJCQlpZiAoaW5mby0+b3B0aW9uc19sZW4gPCBzaXplb2Yo Km1kKSkKKwkJCQlnb3RvIGRyb3A7CiAJCQltZCA9IGlwX3R1bm5lbF9pbmZvX29wdHMoaW5mbyk7 CisJCX0KIAkJdHRsID0gaW5mby0+a2V5LnR0bDsKIAkJdG9zID0gaW5mby0+a2V5LnRvczsKIAkJ bGFiZWwgPSBpbmZvLT5rZXkubGFiZWw7Ci0tIAoyLjIwLjEKCgpGcm9tIDY5YzhjMjEyMzY0MDNh ZTJlMTFjZTg0ZjMwODlmYWQ5N2IyMmYzOWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMyBPY3QgMjAx OSAyMjo0NDo0OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvNTVdIG5ldDogYWRkIHNrYl9xdWV1 ZV9lbXB0eV9sb2NrbGVzcygpCgpbIFVwc3RyZWFtIGNvbW1pdCBkN2QxNmE4OTM1MGFiMjYzNDg0 YzBhYTJiNTIzZGQzYTIzNGU0YTgwIF0KClNvbWUgcGF0aHMgY2FsbCBza2JfcXVldWVfZW1wdHko KSB3aXRob3V0IGhvbGRpbmcKdGhlIHF1ZXVlIGxvY2suIFdlIG11c3QgdXNlIGEgYmFycmllciBp biBvcmRlcgp0byBub3QgbGV0IHRoZSBjb21waWxlciBkbyBzdHJhbmdlIHRoaW5ncywgYW5kIGF2 b2lkCktDU0FOIHNwbGF0cy4KCkFkZGluZyBhIGJhcnJpZXIgaW4gc2tiX3F1ZXVlX2VtcHR5KCkg bWlnaHQgYmUgb3ZlcmtpbGwsCkkgcHJlZmVyIGFkZGluZyBhIG5ldyBoZWxwZXIgdG8gY2xlYXJs eSBpZGVudGlmeQpwb2ludHMgd2hlcmUgdGhlIGNhbGxlcnMgbWlnaHQgYmUgbG9ja2xlc3MuIFRo aXMgbWlnaHQKaGVscCB1cyBmaW5kaW5nIHJlYWwgYnVncy4KClRoZSBjb3JyZXNwb25kaW5nIFdS SVRFX09OQ0UoKSBzaG91bGQgYWRkIHplcm8gY29zdApmb3IgY3VycmVudCBjb21waWxlcnMuCgpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRl eCA5YjE4ZDMzNjgxYzIuLjM5YTdjZWNhYTg4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9z a2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCkBAIC0xNTAwLDYgKzE1MDAsMTkg QEAgc3RhdGljIGlubGluZSBpbnQgc2tiX3F1ZXVlX2VtcHR5KGNvbnN0IHN0cnVjdCBza19idWZm X2hlYWQgKmxpc3QpCiAJcmV0dXJuIGxpc3QtPm5leHQgPT0gKGNvbnN0IHN0cnVjdCBza19idWZm ICopIGxpc3Q7CiB9CiAKKy8qKgorICoJc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzIC0gY2hlY2sg aWYgYSBxdWV1ZSBpcyBlbXB0eQorICoJQGxpc3Q6IHF1ZXVlIGhlYWQKKyAqCisgKglSZXR1cm5z IHRydWUgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5LCBmYWxzZSBvdGhlcndpc2UuCisgKglUaGlzIHZh cmlhbnQgY2FuIGJlIHVzZWQgaW4gbG9ja2xlc3MgY29udGV4dHMuCisgKi8KK3N0YXRpYyBpbmxp bmUgYm9vbCBza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoY29uc3Qgc3RydWN0IHNrX2J1ZmZfaGVh ZCAqbGlzdCkKK3sKKwlyZXR1cm4gUkVBRF9PTkNFKGxpc3QtPm5leHQpID09IChjb25zdCBzdHJ1 Y3Qgc2tfYnVmZiAqKSBsaXN0OworfQorCisKIC8qKgogICoJc2tiX3F1ZXVlX2lzX2xhc3QgLSBj aGVjayBpZiBza2IgaXMgdGhlIGxhc3QgZW50cnkgaW4gdGhlIHF1ZXVlCiAgKglAbGlzdDogcXVl dWUgaGVhZApAQCAtMTg1Myw5ICsxODY2LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3NrYl9p bnNlcnQoc3RydWN0IHNrX2J1ZmYgKm5ld3NrLAogCQkJCXN0cnVjdCBza19idWZmICpwcmV2LCBz dHJ1Y3Qgc2tfYnVmZiAqbmV4dCwKIAkJCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0KQogewot CW5ld3NrLT5uZXh0ID0gbmV4dDsKLQluZXdzay0+cHJldiA9IHByZXY7Ci0JbmV4dC0+cHJldiAg PSBwcmV2LT5uZXh0ID0gbmV3c2s7CisJLyogc2VlIHNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygp IGZvciB0aGUgb3Bwb3NpdGUgUkVBRF9PTkNFKCkgKi8KKwlXUklURV9PTkNFKG5ld3NrLT5uZXh0 LCBuZXh0KTsKKwlXUklURV9PTkNFKG5ld3NrLT5wcmV2LCBwcmV2KTsKKwlXUklURV9PTkNFKG5l eHQtPnByZXYsIG5ld3NrKTsKKwlXUklURV9PTkNFKHByZXYtPm5leHQsIG5ld3NrKTsKIAlsaXN0 LT5xbGVuKys7CiB9CiAKQEAgLTE4NjYsMTEgKzE4ODEsMTEgQEAgc3RhdGljIGlubGluZSB2b2lk IF9fc2tiX3F1ZXVlX3NwbGljZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogCXN0 cnVjdCBza19idWZmICpmaXJzdCA9IGxpc3QtPm5leHQ7CiAJc3RydWN0IHNrX2J1ZmYgKmxhc3Qg PSBsaXN0LT5wcmV2OwogCi0JZmlyc3QtPnByZXYgPSBwcmV2OwotCXByZXYtPm5leHQgPSBmaXJz dDsKKwlXUklURV9PTkNFKGZpcnN0LT5wcmV2LCBwcmV2KTsKKwlXUklURV9PTkNFKHByZXYtPm5l eHQsIGZpcnN0KTsKIAotCWxhc3QtPm5leHQgPSBuZXh0OwotCW5leHQtPnByZXYgPSBsYXN0Owor CVdSSVRFX09OQ0UobGFzdC0+bmV4dCwgbmV4dCk7CisJV1JJVEVfT05DRShuZXh0LT5wcmV2LCBs YXN0KTsKIH0KIAogLyoqCkBAIC0yMDExLDggKzIwMjYsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg X19za2JfdW5saW5rKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBza19idWZmX2hlYWQgKmxp c3QpCiAJbmV4dAkgICA9IHNrYi0+bmV4dDsKIAlwcmV2CSAgID0gc2tiLT5wcmV2OwogCXNrYi0+ bmV4dCAgPSBza2ItPnByZXYgPSBOVUxMOwotCW5leHQtPnByZXYgPSBwcmV2OwotCXByZXYtPm5l eHQgPSBuZXh0OworCVdSSVRFX09OQ0UobmV4dC0+cHJldiwgcHJldik7CisJV1JJVEVfT05DRShw cmV2LT5uZXh0LCBuZXh0KTsKIH0KIAogLyoqCi0tIAoyLjIwLjEKCgpGcm9tIDE3MjFlNjVjZjU2 NjA4NjMwZjZiZWVmNzI1NTE2MmM2YWY0YjA1NGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMyBPY3Qg MjAxOSAyMjo0NDo0OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjEvNTVdIHVkcDogdXNlIHNrYl9x dWV1ZV9lbXB0eV9sb2NrbGVzcygpCgpbIFVwc3RyZWFtIGNvbW1pdCAxMzdhMGRiZTM0MjZmZDdi Y2ZlM2Y4MTE3YjM2YTg3YjM1OTBlNGViIF0KCnN5emJvdCByZXBvcnRlZCBhIGRhdGEtcmFjZSBb MV0uCgpXZSBzaG91bGQgdXNlIHNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygpIHRvIGRvY3VtZW50 IHRoYXQgd2UgYXJlCm5vdCBlbnN1cmluZyBhIG11dHVhbCBleGNsdXNpb24gYW5kIHNpbGVuY2Ug S0NTQU4uCgpbMV0KQlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIF9fc2tiX3JlY3ZfdWRwIC8gX191 ZHBfZW5xdWV1ZV9zY2hlZHVsZV9za2IKCndyaXRlIHRvIDB4ZmZmZjg4ODEyMjQ3NGI1MCBvZiA4 IGJ5dGVzIGJ5IGludGVycnVwdCBvbiBjcHUgMDoKIF9fc2tiX2luc2VydCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjE4NTIgW2lubGluZV0KIF9fc2tiX3F1ZXVlX2JlZm9yZSBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjE5NTggW2lubGluZV0KIF9fc2tiX3F1ZXVlX3RhaWwgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDoxOTkxIFtpbmxpbmVdCiBfX3VkcF9lbnF1ZXVlX3NjaGVkdWxlX3NrYisweDJjMS8w eDQxMCBuZXQvaXB2NC91ZHAuYzoxNDcwCiBfX3VkcF9xdWV1ZV9yY3Zfc2tiIG5ldC9pcHY0L3Vk cC5jOjE5NDAgW2lubGluZV0KIHVkcF9xdWV1ZV9yY3Zfb25lX3NrYisweDdiZC8weGM3MCBuZXQv aXB2NC91ZHAuYzoyMDU3CiB1ZHBfcXVldWVfcmN2X3NrYisweGI1LzB4NDAwIG5ldC9pcHY0L3Vk cC5jOjIwNzQKIHVkcF91bmljYXN0X3Jjdl9za2IuaXNyYS4wKzB4N2UvMHgxYzAgbmV0L2lwdjQv dWRwLmM6MjIzMwogX191ZHA0X2xpYl9yY3YrMHhhNDQvMHgxN2MwIG5ldC9pcHY0L3VkcC5jOjIz MDAKIHVkcF9yY3YrMHgyYi8weDQwIG5ldC9pcHY0L3VkcC5jOjI0NzAKIGlwX3Byb3RvY29sX2Rl bGl2ZXJfcmN1KzB4NGQvMHg0MjAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMDQKIGlwX2xvY2FsX2Rl bGl2ZXJfZmluaXNoKzB4MTEwLzB4MTQwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjMxCiBORl9IT09L IGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBORl9IT09LIGluY2x1ZGUv bGludXgvbmV0ZmlsdGVyLmg6Mjk5IFtpbmxpbmVdCiBpcF9sb2NhbF9kZWxpdmVyKzB4MTMzLzB4 MjEwIG5ldC9pcHY0L2lwX2lucHV0LmM6MjUyCiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6 NDQyIFtpbmxpbmVdCiBpcF9yY3ZfZmluaXNoKzB4MTIxLzB4MTYwIG5ldC9pcHY0L2lwX2lucHV0 LmM6NDEzCiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MzA1IFtpbmxpbmVdCiBO Rl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjk5IFtpbmxpbmVdCiBpcF9yY3YrMHgx OGYvMHgxYTAgbmV0L2lwdjQvaXBfaW5wdXQuYzo1MjMKIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25l X2NvcmUrMHhhNy8weGUwIG5ldC9jb3JlL2Rldi5jOjUwMTAKIF9fbmV0aWZfcmVjZWl2ZV9za2Ir MHgzNy8weGYwIG5ldC9jb3JlL2Rldi5jOjUxMjQKIHByb2Nlc3NfYmFja2xvZysweDFkMy8weDQy MCBuZXQvY29yZS9kZXYuYzo1OTU1CgpyZWFkIHRvIDB4ZmZmZjg4ODEyMjQ3NGI1MCBvZiA4IGJ5 dGVzIGJ5IHRhc2sgODkyMSBvbiBjcHUgMToKIHNrYl9xdWV1ZV9lbXB0eSBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjE0OTQgW2lubGluZV0KIF9fc2tiX3JlY3ZfdWRwKzB4MThkLzB4NTAwIG5ldC9p cHY0L3VkcC5jOjE2NTMKIHVkcF9yZWN2bXNnKzB4ZTEvMHhiMTAgbmV0L2lwdjQvdWRwLmM6MTcx MgogaW5ldF9yZWN2bXNnKzB4YmIvMHgyNTAgbmV0L2lwdjQvYWZfaW5ldC5jOjgzOAogc29ja19y ZWN2bXNnX25vc2VjKzB4NWMvMHg3MCBuZXQvc29ja2V0LmM6ODcxCiBfX19zeXNfcmVjdm1zZysw eDFhMC8weDNlMCBuZXQvc29ja2V0LmM6MjQ4MAogZG9fcmVjdm1tc2crMHgxOWEvMHg1YzAgbmV0 L3NvY2tldC5jOjI2MDEKIF9fc3lzX3JlY3ZtbXNnKzB4MWVmLzB4MjAwIG5ldC9zb2NrZXQuYzoy NjgwCiBfX2RvX3N5c19yZWN2bW1zZyBuZXQvc29ja2V0LmM6MjcwMyBbaW5saW5lXQogX19zZV9z eXNfcmVjdm1tc2cgbmV0L3NvY2tldC5jOjI2OTYgW2lubGluZV0KIF9feDY0X3N5c19yZWN2bW1z ZysweDg5LzB4YjAgbmV0L3NvY2tldC5jOjI2OTYKIGRvX3N5c2NhbGxfNjQrMHhjYy8weDM3MCBh cmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTAKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFt ZSsweDQ0LzB4YTkKClJlcG9ydGVkIGJ5IEtlcm5lbCBDb25jdXJyZW5jeSBTYW5pdGl6ZXIgb246 CkNQVTogMSBQSUQ6IDg5MjEgQ29tbTogc3l6LWV4ZWN1dG9yLjQgTm90IHRhaW50ZWQgNS40LjAt cmMzKyAjMApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2ds ZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQoKU2lnbmVkLW9mZi1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxz eXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5jIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCBjZTA3MjhjNGI0YWEuLjk3 MzEwZjdhMjVhOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRw LmMKQEAgLTE1ODgsNyArMTU4OCw3IEBAIHN0YXRpYyBpbnQgZmlyc3RfcGFja2V0X2xlbmd0aChz dHJ1Y3Qgc29jayAqc2spCiAKIAlzcGluX2xvY2tfYmgoJnJjdnEtPmxvY2spOwogCXNrYiA9IF9f Zmlyc3RfcGFja2V0X2xlbmd0aChzaywgcmN2cSwgJnRvdGFsKTsKLQlpZiAoIXNrYiAmJiAhc2ti X3F1ZXVlX2VtcHR5KHNrX3F1ZXVlKSkgeworCWlmICghc2tiICYmICFza2JfcXVldWVfZW1wdHlf bG9ja2xlc3Moc2tfcXVldWUpKSB7CiAJCXNwaW5fbG9jaygmc2tfcXVldWUtPmxvY2spOwogCQlz a2JfcXVldWVfc3BsaWNlX3RhaWxfaW5pdChza19xdWV1ZSwgcmN2cSk7CiAJCXNwaW5fdW5sb2Nr KCZza19xdWV1ZS0+bG9jayk7CkBAIC0xNjYxLDcgKzE2NjEsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAq X19za2JfcmVjdl91ZHAoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAJCQkJ cmV0dXJuIHNrYjsKIAkJCX0KIAotCQkJaWYgKHNrYl9xdWV1ZV9lbXB0eShza19xdWV1ZSkpIHsK KwkJCWlmIChza2JfcXVldWVfZW1wdHlfbG9ja2xlc3Moc2tfcXVldWUpKSB7CiAJCQkJc3Bpbl91 bmxvY2tfYmgoJnF1ZXVlLT5sb2NrKTsKIAkJCQlnb3RvIGJ1c3lfY2hlY2s7CiAJCQl9CkBAIC0x Njg3LDcgKzE2ODcsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVjdl91ZHAoc3RydWN0IHNv Y2sgKnNrLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAJCQkJYnJlYWs7CiAKIAkJCXNrX2J1c3lfbG9v cChzaywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOwotCQl9IHdoaWxlICghc2tiX3F1ZXVlX2VtcHR5 KHNrX3F1ZXVlKSk7CisJCX0gd2hpbGUgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3Moc2tfcXVl dWUpKTsKIAogCQkvKiBza19xdWV1ZSBpcyBlbXB0eSwgcmVhZGVyX3F1ZXVlIG1heSBjb250YWlu IHBlZWtlZCBwYWNrZXRzICovCiAJfSB3aGlsZSAodGltZW8gJiYKLS0gCjIuMjAuMQoKCkZyb20g YjJkZmU3MzIyZDY5OGI5ODJhNzdlZGM5ZTg5YjJhOTZmNGM1Y2U4NSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBX ZWQsIDIzIE9jdCAyMDE5IDIyOjQ0OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMi81NV0gbmV0 OiB1c2Ugc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCkgaW4gcG9sbCgpIGhhbmRsZXJzCgpbIFVw c3RyZWFtIGNvbW1pdCAzZWY3Y2Y1N2M3MmYzMmY2MWU5N2Y4ZmE0MDFiYzM5ZWExZjFhNWQ0IF0K Ck1hbnkgcG9sbCgpIGhhbmRsZXJzIGFyZSBsb2NrbGVzcy4gVXNpbmcgc2tiX3F1ZXVlX2VtcHR5 X2xvY2tsZXNzKCkKaW5zdGVhZCBvZiBza2JfcXVldWVfZW1wdHkoKSBpcyBtb3JlIGFwcHJvcHJp YXRlLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jICAgICB8IDIgKy0KIG5ldC9hdG0vY29tbW9uLmMgICAg ICAgICAgICAgfCAyICstCiBuZXQvYmx1ZXRvb3RoL2FmX2JsdWV0b290aC5jIHwgNCArKy0tCiBu ZXQvY2FpZi9jYWlmX3NvY2tldC5jICAgICAgIHwgMiArLQogbmV0L2NvcmUvZGF0YWdyYW0uYyAg ICAgICAgICB8IDQgKystLQogbmV0L2RlY25ldC9hZl9kZWNuZXQuYyAgICAgICB8IDIgKy0KIG5l dC9pcHY0L3RjcC5jICAgICAgICAgICAgICAgfCAyICstCiBuZXQvaXB2NC91ZHAuYyAgICAgICAg ICAgICAgIHwgMiArLQogbmV0L25mYy9sbGNwX3NvY2suYyAgICAgICAgICB8IDQgKystLQogbmV0 L3Bob25ldC9zb2NrZXQuYyAgICAgICAgICB8IDQgKystLQogbmV0L3NjdHAvc29ja2V0LmMgICAg ICAgICAgICB8IDQgKystLQogbmV0L3RpcGMvc29ja2V0LmMgICAgICAgICAgICB8IDQgKystLQog bmV0L3VuaXgvYWZfdW5peC5jICAgICAgICAgICB8IDYgKysrLS0tCiBuZXQvdm13X3Zzb2NrL2Fm X3Zzb2NrLmMgICAgIHwgMiArLQogMTQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwg MjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jIGIv ZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jCmluZGV4IGM5MmI0MDViNzY0Ni4uYmE4NjE5NTI0MjMx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMKKysrIGIvZHJpdmVycy9pc2Ru L2NhcGkvY2FwaS5jCkBAIC03NDQsNyArNzQ0LDcgQEAgY2FwaV9wb2xsKHN0cnVjdCBmaWxlICpm aWxlLCBwb2xsX3RhYmxlICp3YWl0KQogCiAJcG9sbF93YWl0KGZpbGUsICYoY2Rldi0+cmVjdndh aXQpLCB3YWl0KTsKIAltYXNrID0gRVBPTExPVVQgfCBFUE9MTFdSTk9STTsKLQlpZiAoIXNrYl9x dWV1ZV9lbXB0eSgmY2Rldi0+cmVjdnF1ZXVlKSkKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2Nr bGVzcygmY2Rldi0+cmVjdnF1ZXVlKSkKIAkJbWFzayB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07 CiAJcmV0dXJuIG1hc2s7CiB9CmRpZmYgLS1naXQgYS9uZXQvYXRtL2NvbW1vbi5jIGIvbmV0L2F0 bS9jb21tb24uYwppbmRleCBiNzUyOGU3Nzk5N2MuLjBjZTUzMGFmNTM0ZCAxMDA2NDQKLS0tIGEv bmV0L2F0bS9jb21tb24uYworKysgYi9uZXQvYXRtL2NvbW1vbi5jCkBAIC02NjgsNyArNjY4LDcg QEAgX19wb2xsX3QgdmNjX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHBvbGxfdGFibGUgKndhaXQpCiAJCW1hc2sgfD0gRVBPTExIVVA7CiAKIAkvKiByZWFkYWJs ZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQorCWlm ICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCiAJCW1h c2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJLyogd3JpdGFibGU/ICovCmRpZmYgLS1n aXQgYS9uZXQvYmx1ZXRvb3RoL2FmX2JsdWV0b290aC5jIGIvbmV0L2JsdWV0b290aC9hZl9ibHVl dG9vdGguYwppbmRleCA5NGRkZjE5OTk4YzcuLjVmNTA4YzUwNjQ5ZCAxMDA2NDQKLS0tIGEvbmV0 L2JsdWV0b290aC9hZl9ibHVldG9vdGguYworKysgYi9uZXQvYmx1ZXRvb3RoL2FmX2JsdWV0b290 aC5jCkBAIC00NjAsNyArNDYwLDcgQEAgX19wb2xsX3QgYnRfc29ja19wb2xsKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWlmIChzay0+c2tfc3RhdGUgPT0gQlRfTElT VEVOKQogCQlyZXR1cm4gYnRfYWNjZXB0X3BvbGwoc2spOwogCi0JaWYgKHNrLT5za19lcnIgfHwg IXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX2Vycm9yX3F1ZXVlKSkKKwlpZiAoc2stPnNrX2VyciB8 fCAhc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfZXJyb3JfcXVldWUpKQogCQltYXNr IHw9IEVQT0xMRVJSIHwKIAkJCShzb2NrX2ZsYWcoc2ssIFNPQ0tfU0VMRUNUX0VSUl9RVUVVRSkg PyBFUE9MTFBSSSA6IDApOwogCkBAIC00NzAsNyArNDcwLDcgQEAgX19wb2xsX3QgYnRfc29ja19w b2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWlmIChzay0+c2tf c2h1dGRvd24gPT0gU0hVVERPV05fTUFTSykKIAkJbWFzayB8PSBFUE9MTEhVUDsKIAotCWlmICgh c2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCisJaWYgKCFza2JfcXVldWVf ZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKIAkJbWFzayB8PSBFUE9MTElO IHwgRVBPTExSRE5PUk07CiAKIAlpZiAoc2stPnNrX3N0YXRlID09IEJUX0NMT1NFRCkKZGlmZiAt LWdpdCBhL25ldC9jYWlmL2NhaWZfc29ja2V0LmMgYi9uZXQvY2FpZi9jYWlmX3NvY2tldC5jCmlu ZGV4IDEzZWE5MjA2MDBhZS4uZWYxNGRhNTBhOTgxIDEwMDY0NAotLS0gYS9uZXQvY2FpZi9jYWlm X3NvY2tldC5jCisrKyBiL25ldC9jYWlmL2NhaWZfc29ja2V0LmMKQEAgLTk1Myw3ICs5NTMsNyBA QCBzdGF0aWMgX19wb2xsX3QgY2FpZl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLAogCQltYXNrIHw9 IEVQT0xMUkRIVVA7CiAKIAkvKiByZWFkYWJsZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgm c2stPnNrX3JlY2VpdmVfcXVldWUpIHx8CisJaWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3Mo JnNrLT5za19yZWNlaXZlX3F1ZXVlKSB8fAogCQkoc2stPnNrX3NodXRkb3duICYgUkNWX1NIVVRE T1dOKSkKIAkJbWFzayB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAKZGlmZiAtLWdpdCBhL25l dC9jb3JlL2RhdGFncmFtLmMgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCmluZGV4IDQ1YTE2MmVmNWUw Mi4uNzM2MDcxNGM5ZTY5IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kYXRhZ3JhbS5jCisrKyBiL25l dC9jb3JlL2RhdGFncmFtLmMKQEAgLTc2Nyw3ICs3NjcsNyBAQCBfX3BvbGxfdCBkYXRhZ3JhbV9w b2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCW1hc2sgPSAwOwog CiAJLyogZXhjZXB0aW9uYWwgZXZlbnRzPyAqLwotCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVl dWVfZW1wdHkoJnNrLT5za19lcnJvcl9xdWV1ZSkpCisJaWYgKHNrLT5za19lcnIgfHwgIXNrYl9x dWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX2Vycm9yX3F1ZXVlKSkKIAkJbWFzayB8PSBFUE9M TEVSUiB8CiAJCQkoc29ja19mbGFnKHNrLCBTT0NLX1NFTEVDVF9FUlJfUVVFVUUpID8gRVBPTExQ UkkgOiAwKTsKIApAQCAtNzc3LDcgKzc3Nyw3IEBAIF9fcG9sbF90IGRhdGFncmFtX3BvbGwoc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCW1hc2sgfD0gRVBPTExIVVA7 CiAKIAkvKiByZWFkYWJsZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2Vp dmVfcXVldWUpKQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2 ZV9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJLyogQ29ubmVj dGlvbi1iYXNlZCBuZWVkIHRvIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBhbmQgc3RhcnR1cCAqLwpk aWZmIC0tZ2l0IGEvbmV0L2RlY25ldC9hZl9kZWNuZXQuYyBiL25ldC9kZWNuZXQvYWZfZGVjbmV0 LmMKaW5kZXggMGVhNzUyODZhYmY0Li4zMzQ5ZWE4MWY5MDEgMTAwNjQ0Ci0tLSBhL25ldC9kZWNu ZXQvYWZfZGVjbmV0LmMKKysrIGIvbmV0L2RlY25ldC9hZl9kZWNuZXQuYwpAQCAtMTIwNSw3ICsx MjA1LDcgQEAgc3RhdGljIF9fcG9sbF90IGRuX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBzb2NrZXQgKnNvY2ssIHBvbGxfdGFibGUgICp3YWkKIAlzdHJ1Y3QgZG5fc2NwICpzY3AgPSBE Tl9TSyhzayk7CiAJX19wb2xsX3QgbWFzayA9IGRhdGFncmFtX3BvbGwoZmlsZSwgc29jaywgd2Fp dCk7CiAKLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2NwLT5vdGhlcl9yZWNlaXZlX3F1ZXVlKSkK KwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2NwLT5vdGhlcl9yZWNlaXZlX3F1ZXVl KSkKIAkJbWFzayB8PSBFUE9MTFJEQkFORDsKIAogCXJldHVybiBtYXNrOwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCA2MTA4MjA2NWIyNmEuLjBiYTI4 YjJlYTg0YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMK QEAgLTU4NCw3ICs1ODQsNyBAQCBfX3BvbGxfdCB0Y3BfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IHNvY2tldCAqc29jaywgcG9sbF90YWJsZSAqd2FpdCkKIAl9CiAJLyogVGhpcyBiYXJy aWVyIGlzIGNvdXBsZWQgd2l0aCBzbXBfd21iKCkgaW4gdGNwX3Jlc2V0KCkgKi8KIAlzbXBfcm1i KCk7Ci0JaWYgKHNrLT5za19lcnIgfHwgIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX2Vycm9yX3F1 ZXVlKSkKKwlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+ c2tfZXJyb3JfcXVldWUpKQogCQltYXNrIHw9IEVQT0xMRVJSOwogCiAJcmV0dXJuIG1hc2s7CmRp ZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IDk3MzEwZjdh MjVhOC4uNTQ4N2I0M2I4YTU2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQv aXB2NC91ZHAuYwpAQCAtMjcyMyw3ICsyNzIzLDcgQEAgX19wb2xsX3QgdWRwX3BvbGwoc3RydWN0 IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHBvbGxfdGFibGUgKndhaXQpCiAJX19w b2xsX3QgbWFzayA9IGRhdGFncmFtX3BvbGwoZmlsZSwgc29jaywgd2FpdCk7CiAJc3RydWN0IHNv Y2sgKnNrID0gc29jay0+c2s7CiAKLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmdWRwX3NrKHNrKS0+ cmVhZGVyX3F1ZXVlKSkKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmdWRwX3NrKHNr KS0+cmVhZGVyX3F1ZXVlKSkKIAkJbWFzayB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAKIAkv KiBDaGVjayBmb3IgZmFsc2UgcG9zaXRpdmVzIGR1ZSB0byBjaGVja3N1bSBlcnJvcnMgKi8KZGlm ZiAtLWdpdCBhL25ldC9uZmMvbGxjcF9zb2NrLmMgYi9uZXQvbmZjL2xsY3Bfc29jay5jCmluZGV4 IGNjZGQ3OTBlMTYzYS4uMjg2MDQ0MTRkZWMxIDEwMDY0NAotLS0gYS9uZXQvbmZjL2xsY3Bfc29j ay5jCisrKyBiL25ldC9uZmMvbGxjcF9zb2NrLmMKQEAgLTU1NCwxMSArNTU0LDExIEBAIHN0YXRp YyBfX3BvbGxfdCBsbGNwX3NvY2tfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tl dCAqc29jaywKIAlpZiAoc2stPnNrX3N0YXRlID09IExMQ1BfTElTVEVOKQogCQlyZXR1cm4gbGxj cF9hY2NlcHRfcG9sbChzayk7CiAKLQlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2VtcHR5 KCZzay0+c2tfZXJyb3JfcXVldWUpKQorCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVfZW1w dHlfbG9ja2xlc3MoJnNrLT5za19lcnJvcl9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExFUlIgfAog CQkJKHNvY2tfZmxhZyhzaywgU09DS19TRUxFQ1RfRVJSX1FVRVVFKSA/IEVQT0xMUFJJIDogMCk7 CiAKLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQorCWlmICgh c2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCiAJCW1hc2sg fD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJaWYgKHNrLT5za19zdGF0ZSA9PSBMTENQX0NM T1NFRCkKZGlmZiAtLWdpdCBhL25ldC9waG9uZXQvc29ja2V0LmMgYi9uZXQvcGhvbmV0L3NvY2tl dC5jCmluZGV4IDk2ZWE5ZjI1NGFlOS4uNzZkNDk5ZjZhZjlhIDEwMDY0NAotLS0gYS9uZXQvcGhv bmV0L3NvY2tldC5jCisrKyBiL25ldC9waG9uZXQvc29ja2V0LmMKQEAgLTMzOCw5ICszMzgsOSBA QCBzdGF0aWMgX19wb2xsX3QgcG5fc29ja2V0X3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBzb2NrZXQgKnNvY2ssCiAKIAlpZiAoc2stPnNrX3N0YXRlID09IFRDUF9DTE9TRSkKIAkJcmV0 dXJuIEVQT0xMRVJSOwotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2ZV9xdWV1 ZSkpCisJaWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZlX3F1ZXVl KSkKIAkJbWFzayB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07Ci0JaWYgKCFza2JfcXVldWVfZW1w dHkoJnBuLT5jdHJscmVxX3F1ZXVlKSkKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygm cG4tPmN0cmxyZXFfcXVldWUpKQogCQltYXNrIHw9IEVQT0xMUFJJOwogCWlmICghbWFzayAmJiBz ay0+c2tfc3RhdGUgPT0gVENQX0NMT1NFX1dBSVQpCiAJCXJldHVybiBFUE9MTEhVUDsKZGlmZiAt LWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggYjhmOWJh ZmIxODBjLi4xZmYzNTc5YzY1NDkgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBi L25ldC9zY3RwL3NvY2tldC5jCkBAIC04MzI5LDcgKzgzMjksNyBAQCBfX3BvbGxfdCBzY3RwX3Bv bGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHBvbGxfdGFibGUgKndh aXQpCiAJbWFzayA9IDA7CiAKIAkvKiBJcyB0aGVyZSBhbnkgZXhjZXB0aW9uYWwgZXZlbnRzPyAg Ki8KLQlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfZXJyb3JfcXVl dWUpKQorCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5z a19lcnJvcl9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExFUlIgfAogCQkJKHNvY2tfZmxhZyhzaywg U09DS19TRUxFQ1RfRVJSX1FVRVVFKSA/IEVQT0xMUFJJIDogMCk7CiAJaWYgKHNrLT5za19zaHV0 ZG93biAmIFJDVl9TSFVURE9XTikKQEAgLTgzMzgsNyArODMzOCw3IEBAIF9fcG9sbF90IHNjdHBf cG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywgcG9sbF90YWJsZSAq d2FpdCkKIAkJbWFzayB8PSBFUE9MTEhVUDsKIAogCS8qIElzIGl0IHJlYWRhYmxlPyAgUmVjb25z aWRlciB0aGlzIGNvZGUgd2l0aCBUQ1Atc3R5bGUgc3VwcG9ydC4gICovCi0JaWYgKCFza2JfcXVl dWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9s b2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpKQogCQltYXNrIHw9IEVQT0xMSU4gfCBFUE9M TFJETk9STTsKIAogCS8qIFRoZSBhc3NvY2lhdGlvbiBpcyBlaXRoZXIgZ29uZSBvciBub3QgcmVh ZHkuICAqLwpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQu YwppbmRleCA4M2FlNDFkN2U1NTQuLjkwZWNjYTk4OGQxMiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMv c29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTc0MCw3ICs3NDAsNyBAQCBzdGF0 aWMgX19wb2xsX3QgdGlwY19wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpz b2NrLAogCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIFRJUENfTElTVEVOOgogCWNhc2UgVElQ Q19DT05ORUNUSU5HOgotCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVl dWUpKQorCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVl dWUpKQogCQkJcmV2ZW50cyB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAJCWJyZWFrOwogCWNh c2UgVElQQ19PUEVOOgpAQCAtNzQ4LDcgKzc0OCw3IEBAIHN0YXRpYyBfX3BvbGxfdCB0aXBjX3Bv bGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCQlyZXZlbnRzIHw9 IEVQT0xMT1VUOwogCQlpZiAoIXRpcGNfc2tfdHlwZV9jb25uZWN0aW9ubGVzcyhzaykpCiAJCQli cmVhazsKLQkJaWYgKHNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKQorCQlp ZiAoc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCiAJCQli cmVhazsKIAkJcmV2ZW50cyB8PSBFUE9MTElOIHwgRVBPTExSRE5PUk07CiAJCWJyZWFrOwpkaWZm IC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZfdW5peC5jCmluZGV4IDY3 ZTg3ZGI1ODc3Zi4uMGQ4ZGE4MDliZWEyIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMK KysrIGIvbmV0L3VuaXgvYWZfdW5peC5jCkBAIC0yNTk5LDcgKzI1OTksNyBAQCBzdGF0aWMgX19w b2xsX3QgdW5peF9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBw b2xsX3RhYmxlICp3YQogCQltYXNrIHw9IEVQT0xMUkRIVVAgfCBFUE9MTElOIHwgRVBPTExSRE5P Uk07CiAKIAkvKiByZWFkYWJsZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3Jl Y2VpdmVfcXVldWUpKQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVj ZWl2ZV9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJLyogQ29u bmVjdGlvbi1iYXNlZCBuZWVkIHRvIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBhbmQgc3RhcnR1cCAq LwpAQCAtMjYyOCw3ICsyNjI4LDcgQEAgc3RhdGljIF9fcG9sbF90IHVuaXhfZGdyYW1fcG9sbChz dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywKIAltYXNrID0gMDsKIAogCS8q IGV4Y2VwdGlvbmFsIGV2ZW50cz8gKi8KLQlpZiAoc2stPnNrX2VyciB8fCAhc2tiX3F1ZXVlX2Vt cHR5KCZzay0+c2tfZXJyb3JfcXVldWUpKQorCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVf ZW1wdHlfbG9ja2xlc3MoJnNrLT5za19lcnJvcl9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExFUlIg fAogCQkJKHNvY2tfZmxhZyhzaywgU09DS19TRUxFQ1RfRVJSX1FVRVVFKSA/IEVQT0xMUFJJIDog MCk7CiAKQEAgLTI2MzgsNyArMjYzOCw3IEBAIHN0YXRpYyBfX3BvbGxfdCB1bml4X2RncmFtX3Bv bGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCW1hc2sgfD0gRVBP TExIVVA7CiAKIAkvKiByZWFkYWJsZT8gKi8KLQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNr X3JlY2VpdmVfcXVldWUpKQorCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tf cmVjZWl2ZV9xdWV1ZSkpCiAJCW1hc2sgfD0gRVBPTExJTiB8IEVQT0xMUkROT1JNOwogCiAJLyog Q29ubmVjdGlvbi1iYXNlZCBuZWVkIHRvIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBhbmQgc3RhcnR1 cCAqLwpkaWZmIC0tZ2l0IGEvbmV0L3Ztd192c29jay9hZl92c29jay5jIGIvbmV0L3Ztd192c29j ay9hZl92c29jay5jCmluZGV4IDJhYjQzYjJiYmEzMS4uNTgyYTNlNGRmY2UyIDEwMDY0NAotLS0g YS9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKKysrIGIvbmV0L3Ztd192c29jay9hZl92c29jay5j CkBAIC04NzAsNyArODcwLDcgQEAgc3RhdGljIF9fcG9sbF90IHZzb2NrX3BvbGwoc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCSAqIHRoZSBxdWV1ZSBhbmQgd3JpdGUg YXMgbG9uZyBhcyB0aGUgc29ja2V0IGlzbid0IHNodXRkb3duIGZvcgogCQkgKiBzZW5kaW5nLgog CQkgKi8KLQkJaWYgKCFza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSB8fAor CQlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpIHx8 CiAJCSAgICAoc2stPnNrX3NodXRkb3duICYgUkNWX1NIVVRET1dOKSkgewogCQkJbWFzayB8PSBF UE9MTElOIHwgRVBPTExSRE5PUk07CiAJCX0KLS0gCjIuMjAuMQoKCkZyb20gMmM4M2RjYjgwZDNh NmUxNDA1YzdiMzc4MTc3MmQ4NTU3MmI1ZjhmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIzIE9jdCAy MDE5IDIyOjQ0OjUxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMy81NV0gbmV0OiB1c2Ugc2tiX3F1 ZXVlX2VtcHR5X2xvY2tsZXNzKCkgaW4gYnVzeSBwb2xsCiBjb250ZXh0cwoKWyBVcHN0cmVhbSBj b21taXQgM2Y5MjZhZjNmNGQ2ODhlMmUxMWU3ZjhlZDA0ZTI3N2ExNGQ0ZDRhNCBdCgpCdXN5IHBv bGxpbmcgdXN1YWxseSBydW5zIHdpdGhvdXQgbG9ja3MuCkxldCdzIHVzZSBza2JfcXVldWVfZW1w dHlfbG9ja2xlc3MoKSBpbnN0ZWFkIG9mIHNrYl9xdWV1ZV9lbXB0eSgpCgpBbHNvIHVzZXMgUkVB RF9PTkNFKCkgaW4gX19za2JfdHJ5X3JlY3ZfZGF0YWdyYW0oKSB0byBhZGRyZXNzCmEgc2ltaWxh ciBwb3RlbnRpYWwgcHJvYmxlbS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfaW8uYyB8 IDIgKy0KIG5ldC9jb3JlL2RhdGFncmFtLmMgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5l dC9jb3JlL3NvY2suYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY0L3Rj cC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9zY3RwL3NvY2tldC5jICAg ICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8v Y2h0bHMvY2h0bHNfaW8uYyBiL2RyaXZlcnMvY3J5cHRvL2NoZWxzaW8vY2h0bHMvY2h0bHNfaW8u YwppbmRleCA1NTFiY2E2ZmVmMjQuLmYzODJjMmIyM2Q3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9j cnlwdG8vY2hlbHNpby9jaHRscy9jaHRsc19pby5jCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NoZWxz aW8vY2h0bHMvY2h0bHNfaW8uYwpAQCAtMTcwMSw3ICsxNzAxLDcgQEAgaW50IGNodGxzX3JlY3Zt c2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4sCiAJCXJl dHVybiBwZWVrbXNnKHNrLCBtc2csIGxlbiwgbm9uYmxvY2ssIGZsYWdzKTsKIAogCWlmIChza19j YW5fYnVzeV9sb29wKHNrKSAmJgotCSAgICBza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZl X3F1ZXVlKSAmJgorCSAgICBza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNlaXZl X3F1ZXVlKSAmJgogCSAgICBzay0+c2tfc3RhdGUgPT0gVENQX0VTVEFCTElTSEVEKQogCQlza19i dXN5X2xvb3Aoc2ssIG5vbmJsb2NrKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0u YyBiL25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggNzM2MDcxNGM5ZTY5Li5iODI0YjgxMTcxMzcg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0u YwpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl90cnlfcmVjdl9kYXRh Z3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCWJyZWFrOwogCiAJ CXNrX2J1c3lfbG9vcChzaywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOwotCX0gd2hpbGUgKHNrLT5z a19yZWNlaXZlX3F1ZXVlLnByZXYgIT0gKmxhc3QpOworCX0gd2hpbGUgKFJFQURfT05DRShzay0+ c2tfcmVjZWl2ZV9xdWV1ZS5wcmV2KSAhPSAqbGFzdCk7CiAKIAllcnJvciA9IC1FQUdBSU47CiAK ZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3NvY2suYwppbmRleCA3MWQw NDc5NjIzOTAuLmI0MjQ3NjM1YzRhMiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBi L25ldC9jb3JlL3NvY2suYwpAQCAtMzU5Myw3ICszNTkzLDcgQEAgYm9vbCBza19idXN5X2xvb3Bf ZW5kKHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgc3RhcnRfdGltZSkKIHsKIAlzdHJ1Y3Qgc29jayAq c2sgPSBwOwogCi0JcmV0dXJuICFza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVl KSB8fAorCXJldHVybiAhc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZzay0+c2tfcmVjZWl2ZV9x dWV1ZSkgfHwKIAkgICAgICAgc2tfYnVzeV9sb29wX3RpbWVvdXQoc2ssIHN0YXJ0X3RpbWUpOwog fQogRVhQT1JUX1NZTUJPTChza19idXN5X2xvb3BfZW5kKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggMGJhMjhiMmVhODRhLi5jZjc5YWI5NmMyZGYg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0xOTYx LDcgKzE5NjEsNyBAQCBpbnQgdGNwX3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNn aGRyICptc2csIHNpemVfdCBsZW4sIGludCBub25ibG9jaywKIAlpZiAodW5saWtlbHkoZmxhZ3Mg JiBNU0dfRVJSUVVFVUUpKQogCQlyZXR1cm4gaW5ldF9yZWN2X2Vycm9yKHNrLCBtc2csIGxlbiwg YWRkcl9sZW4pOwogCi0JaWYgKHNrX2Nhbl9idXN5X2xvb3Aoc2spICYmIHNrYl9xdWV1ZV9lbXB0 eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpICYmCisJaWYgKHNrX2Nhbl9idXN5X2xvb3Aoc2spICYm IHNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmc2stPnNrX3JlY2VpdmVfcXVldWUpICYmCiAJICAg IChzay0+c2tfc3RhdGUgPT0gVENQX0VTVEFCTElTSEVEKSkKIAkJc2tfYnVzeV9sb29wKHNrLCBu b25ibG9jayk7CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29j a2V0LmMKaW5kZXggMWZmMzU3OWM2NTQ5Li5iODFkNzY3MzYzNGMgMTAwNjQ0Ci0tLSBhL25ldC9z Y3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC04NzI0LDcgKzg3MjQsNyBA QCBzdHJ1Y3Qgc2tfYnVmZiAqc2N0cF9za2JfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ss IGludCBmbGFncywKIAkJaWYgKHNrX2Nhbl9idXN5X2xvb3Aoc2spKSB7CiAJCQlza19idXN5X2xv b3Aoc2ssIG5vYmxvY2spOwogCi0JCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2Vp dmVfcXVldWUpKQorCQkJaWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJnNrLT5za19yZWNl aXZlX3F1ZXVlKSkKIAkJCQljb250aW51ZTsKIAkJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDQwMDU5 YWNhMjQ4ZThmZDg5M2MxMWNiODVmZGNkMzQ0NzQzZGUwZjYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAy MyBPY3QgMjAxOSAyMjo0NDo1MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNTVdIG5ldDogYWRk IFJFQURfT05DRSgpIGFubm90YXRpb24gaW4KIF9fc2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cygp CgpbIFVwc3RyZWFtIGNvbW1pdCA3YzQyMmQwY2U5NzU1MmRkZTRhOTdlNjI5MGRlNzBlYzZlZmIw ZmM2IF0KCl9fc2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cygpIGNhbiBiZSBjYWxsZWQgd2hpbGUg b3RoZXIgY3B1cwpjYW4gZmVlZCBwYWNrZXRzIHRvIHRoZSBzb2NrZXQgcmVjZWl2ZSBxdWV1ZS4K CktDU0FOIHJlcG9ydGVkIDoKCkJVRzogS0NTQU46IGRhdGEtcmFjZSBpbiBfX3NrYl93YWl0X2Zv cl9tb3JlX3BhY2tldHMgLyBfX3VkcF9lbnF1ZXVlX3NjaGVkdWxlX3NrYgoKd3JpdGUgdG8gMHhm ZmZmODg4MTAyZTQwYjU4IG9mIDggYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAwOgogX19za2Jf aW5zZXJ0IGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTg1MiBbaW5saW5lXQogX19za2JfcXVldWVf YmVmb3JlIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTk1OCBbaW5saW5lXQogX19za2JfcXVldWVf dGFpbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjE5OTEgW2lubGluZV0KIF9fdWRwX2VucXVldWVf c2NoZWR1bGVfc2tiKzB4MmQ3LzB4NDEwIG5ldC9pcHY0L3VkcC5jOjE0NzAKIF9fdWRwX3F1ZXVl X3Jjdl9za2IgbmV0L2lwdjQvdWRwLmM6MTk0MCBbaW5saW5lXQogdWRwX3F1ZXVlX3Jjdl9vbmVf c2tiKzB4N2JkLzB4YzcwIG5ldC9pcHY0L3VkcC5jOjIwNTcKIHVkcF9xdWV1ZV9yY3Zfc2tiKzB4 YjUvMHg0MDAgbmV0L2lwdjQvdWRwLmM6MjA3NAogdWRwX3VuaWNhc3RfcmN2X3NrYi5pc3JhLjAr MHg3ZS8weDFjMCBuZXQvaXB2NC91ZHAuYzoyMjMzCiBfX3VkcDRfbGliX3JjdisweGE0NC8weDE3 YzAgbmV0L2lwdjQvdWRwLmM6MjMwMAogdWRwX3JjdisweDJiLzB4NDAgbmV0L2lwdjQvdWRwLmM6 MjQ3MAogaXBfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg0ZC8weDQyMCBuZXQvaXB2NC9pcF9pbnB1 dC5jOjIwNAogaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHgxMTAvMHgxNDAgbmV0L2lwdjQvaXBf aW5wdXQuYzoyMzEKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDUgW2lubGlu ZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkgW2lubGluZV0KIGlwX2xv Y2FsX2RlbGl2ZXIrMHgxMzMvMHgyMTAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTIKIGRzdF9pbnB1 dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHgxMjEvMHgx NjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0MTMKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXIuaDozMDUgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyOTkg W2lubGluZV0KIGlwX3JjdisweDE4Zi8weDFhMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjUyMwogX19u ZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsweGE3LzB4ZTAgbmV0L2NvcmUvZGV2LmM6NTAxMAog X19uZXRpZl9yZWNlaXZlX3NrYisweDM3LzB4ZjAgbmV0L2NvcmUvZGV2LmM6NTEyNAogcHJvY2Vz c19iYWNrbG9nKzB4MWQzLzB4NDIwIG5ldC9jb3JlL2Rldi5jOjU5NTUKCnJlYWQgdG8gMHhmZmZm ODg4MTAyZTQwYjU4IG9mIDggYnl0ZXMgYnkgdGFzayAxMzAzNSBvbiBjcHUgMToKIF9fc2tiX3dh aXRfZm9yX21vcmVfcGFja2V0cysweGZhLzB4MzIwIG5ldC9jb3JlL2RhdGFncmFtLmM6MTAwCiBf X3NrYl9yZWN2X3VkcCsweDM3NC8weDUwMCBuZXQvaXB2NC91ZHAuYzoxNjgzCiB1ZHBfcmVjdm1z ZysweGUxLzB4YjEwIG5ldC9pcHY0L3VkcC5jOjE3MTIKIGluZXRfcmVjdm1zZysweGJiLzB4MjUw IG5ldC9pcHY0L2FmX2luZXQuYzo4MzgKIHNvY2tfcmVjdm1zZ19ub3NlYysweDVjLzB4NzAgbmV0 L3NvY2tldC5jOjg3MQogX19fc3lzX3JlY3Ztc2crMHgxYTAvMHgzZTAgbmV0L3NvY2tldC5jOjI0 ODAKIGRvX3JlY3ZtbXNnKzB4MTlhLzB4NWMwIG5ldC9zb2NrZXQuYzoyNjAxCiBfX3N5c19yZWN2 bW1zZysweDFlZi8weDIwMCBuZXQvc29ja2V0LmM6MjY4MAogX19kb19zeXNfcmVjdm1tc2cgbmV0 L3NvY2tldC5jOjI3MDMgW2lubGluZV0KIF9fc2Vfc3lzX3JlY3ZtbXNnIG5ldC9zb2NrZXQuYzoy Njk2IFtpbmxpbmVdCiBfX3g2NF9zeXNfcmVjdm1tc2crMHg4OS8weGIwIG5ldC9zb2NrZXQuYzoy Njk2CiBkb19zeXNjYWxsXzY0KzB4Y2MvMHgzNzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjkw CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpSZXBvcnRlZCBieSBL ZXJuZWwgQ29uY3VycmVuY3kgU2FuaXRpemVyIG9uOgpDUFU6IDEgUElEOiAxMzAzNSBDb21tOiBz eXotZXhlY3V0b3IuMyBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvZGF0YWdyYW0uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMgYi9u ZXQvY29yZS9kYXRhZ3JhbS5jCmluZGV4IGI4MjRiODExNzEzNy4uNWRjMTEyZWM3Mjg2IDEwMDY0 NAotLS0gYS9uZXQvY29yZS9kYXRhZ3JhbS5jCisrKyBiL25ldC9jb3JlL2RhdGFncmFtLmMKQEAg LTk3LDcgKzk3LDcgQEAgaW50IF9fc2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cyhzdHJ1Y3Qgc29j ayAqc2ssIGludCAqZXJyLCBsb25nICp0aW1lb19wLAogCWlmIChlcnJvcikKIAkJZ290byBvdXRf ZXJyOwogCi0JaWYgKHNrLT5za19yZWNlaXZlX3F1ZXVlLnByZXYgIT0gc2tiKQorCWlmIChSRUFE X09OQ0Uoc2stPnNrX3JlY2VpdmVfcXVldWUucHJldikgIT0gc2tiKQogCQlnb3RvIG91dDsKIAog CS8qIFNvY2tldCBzaHV0IGRvd24/ICovCi0tIAoyLjIwLjEKCgpGcm9tIDkwZjE0NTYyZGYzY2E5 MzUzNjY4YjhiYmIwYTgyMTcwMzBlZWQzMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogU2F0LCAyNiBPY3QgMjAxOSAx MTo1MzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNTVdIGlwdjQ6IGZpeCByb3V0ZSB1cGRh dGUgb24gbWV0cmljIGNoYW5nZS4KClsgVXBzdHJlYW0gY29tbWl0IDBiODM0YmEwMGFiNTMzN2U5 MzhjNzI3ZTIxNmUxZjUyNDk3OTQ3MTcgXQoKU2luY2UgY29tbWl0IGFmNGQ3NjhhZDI4YyAoIm5l dC9pcHY0OiBBZGQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBtZXRyaWMKb2YgY29ubmVjdGVkIHJv dXRlcyIpLCB3aGVuIHVwZGF0aW5nIGFuIElQIGFkZHJlc3Mgd2l0aCBhIGRpZmZlcmVudCBtZXRy aWMsCnRoZSBhc3NvY2lhdGVkIGNvbm5lY3RlZCByb3V0ZSBpcyB1cGRhdGVkLCB0b28uCgpTdGls bCwgdGhlIG1lbnRpb25lZCBjb21taXQgZG9lc24ndCBoYW5kbGUgcHJvcGVybHkgc29tZSBjb3Ju ZXIgY2FzZXM6CgokIGlwIGFkZHIgYWRkIGRldiBldGgwIDE5Mi4xNjguMS4wLzI0CiQgaXAgYWRk ciBhZGQgZGV2IGV0aDAgMTkyLjE2OC4yLjEvMzIgcGVlciAxOTIuMTY4LjIuMgokIGlwIGFkZHIg YWRkIGRldiBldGgwIDE5Mi4xNjguMy4xLzI0CiQgaXAgYWRkciBjaGFuZ2UgZGV2IGV0aDAgMTky LjE2OC4xLjAvMjQgbWV0cmljIDEwCiQgaXAgYWRkciBjaGFuZ2UgZGV2IGV0aDAgMTkyLjE2OC4y LjEvMzIgcGVlciAxOTIuMTY4LjIuMiBtZXRyaWMgMTAKJCBpcCBhZGRyIGNoYW5nZSBkZXYgZXRo MCAxOTIuMTY4LjMuMS8yNCBtZXRyaWMgMTAKJCBpcCAtNCByb3V0ZQoxOTIuMTY4LjEuMC8yNCBk ZXYgZXRoMCBwcm90byBrZXJuZWwgc2NvcGUgbGluayBzcmMgMTkyLjE2OC4xLjAKMTkyLjE2OC4y LjIgZGV2IGV0aDAgcHJvdG8ga2VybmVsIHNjb3BlIGxpbmsgc3JjIDE5Mi4xNjguMi4xCjE5Mi4x NjguMy4wLzI0IGRldiBldGgwIHByb3RvIGtlcm5lbCBzY29wZSBsaW5rIHNyYyAxOTIuMTY4LjIu MSBtZXRyaWMgMTAKCk9ubHkgdGhlIGxhc3Qgcm91dGUgaXMgY29ycmVjdGx5IHVwZGF0ZWQuCgpU aGUgcHJvYmxlbSBpcyB0aGUgY3VycmVudCB0ZXN0IGluIGZpYl9tb2RpZnlfcHJlZml4X21ldHJp YygpOgoKCWlmICghKGRldi0+ZmxhZ3MgJiBJRkZfVVApIHx8CgkgICAgaWZhLT5pZmFfZmxhZ3Mg JiAoSUZBX0ZfU0VDT05EQVJZIHwgSUZBX0ZfTk9QUkVGSVhST1VURSkgfHwKCSAgICBpcHY0X2lz X3plcm9uZXQocHJlZml4KSB8fAoJICAgIHByZWZpeCA9PSBpZmEtPmlmYV9sb2NhbCB8fCBpZmEt PmlmYV9wcmVmaXhsZW4gPT0gMzIpCgpXaGljaCBzaG91bGQgYmUgdGhlIGxvZ2ljYWwgJ25vdCcg b2YgdGhlIHByZS1leGlzdGluZyB0ZXN0IGluCmZpYl9hZGRfaWZhZGRyKCk6CgoJaWYgKCFpcHY0 X2lzX3plcm9uZXQocHJlZml4KSAmJiAhKGlmYS0+aWZhX2ZsYWdzICYgSUZBX0ZfU0VDT05EQVJZ KSAmJgoJICAgIChwcmVmaXggIT0gYWRkciB8fCBpZmEtPmlmYV9wcmVmaXhsZW4gPCAzMikpCgpU byBwcm9wZXJseSBuZWdhdGUgdGhlIG9yaWdpbmFsIGV4cHJlc3Npb24sIHdlIG5lZWQgdG8gY2hh bmdlIHRoZSBsYXN0CmxvZ2ljYWwgJ29yJyB0byBhIGxvZ2ljYWwgJ2FuZCcuCgpGaXhlczogYWY0 ZDc2OGFkMjhjICgibmV0L2lwdjQ6IEFkZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIG1ldHJpYyBv ZiBjb25uZWN0ZWQgcm91dGVzIikKUmVwb3J0ZWQtYW5kLXN1Z2dlc3RlZC1ieTogQmVuaWFtaW5v IEdhbHZhbmkgPGJnYWx2YW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5p IDxwYWJlbmlAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmli X2Zyb250ZW5kLmMgYi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwppbmRleCBlOGJjOTM5YjU2ZGQu LmZiNDE2Mjk0M2ZhZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIv bmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTExNDcsNyArMTE0Nyw3IEBAIHZvaWQgZmliX21v ZGlmeV9wcmVmaXhfbWV0cmljKHN0cnVjdCBpbl9pZmFkZHIgKmlmYSwgdTMyIG5ld19tZXRyaWMp CiAJaWYgKCEoZGV2LT5mbGFncyAmIElGRl9VUCkgfHwKIAkgICAgaWZhLT5pZmFfZmxhZ3MgJiAo SUZBX0ZfU0VDT05EQVJZIHwgSUZBX0ZfTk9QUkVGSVhST1VURSkgfHwKIAkgICAgaXB2NF9pc196 ZXJvbmV0KHByZWZpeCkgfHwKLQkgICAgcHJlZml4ID09IGlmYS0+aWZhX2xvY2FsIHx8IGlmYS0+ aWZhX3ByZWZpeGxlbiA9PSAzMikKKwkgICAgKHByZWZpeCA9PSBpZmEtPmlmYV9sb2NhbCAmJiBp ZmEtPmlmYV9wcmVmaXhsZW4gPT0gMzIpKQogCQlyZXR1cm47CiAKIAkvKiBhZGQgdGhlIG5ldyAq LwotLSAKMi4yMC4xCgoKRnJvbSBjMTRlNTA4ZjNkMGQ4OGNmN2RmZjg4NmIxMjE5NTRlYzVlYjRj YzhjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJl ZGhhdC5jb20+CkRhdGU6IFNhdCwgMjYgT2N0IDIwMTkgMTE6NTM6NDAgKzAyMDAKU3ViamVjdDog W1BBVENIIDI2LzU1XSBzZWxmdGVzdHM6IGZpYl90ZXN0czogYWRkIG1vcmUgdGVzdHMgZm9yIG1l dHJpYyB1cGRhdGUKClsgVXBzdHJlYW0gY29tbWl0IDM3ZGUzYjM1NDE1MDQ1MGJhMTIyNzUzOTcx NTVlNjgxMTNlOTk5MDEgXQoKVGhpcyBwYXRjaCBhZGRzIHR3byBtb3JlIHRlc3RzIHRvIGlwdjRf YWRkcl9tZXRyaWNfdGVzdCgpIHRvCmV4cGxpY2l0bHkgY292ZXIgdGhlIHNjZW5hcmlvcyBmaXhl ZCBieSB0aGUgcHJldmlvdXMgcGF0Y2guCgpTdWdnZXN0ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2Fo ZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQu Y29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl90ZXN0cy5zaCB8IDIxICsrKysrKysrKysrKysrKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX3Rlc3RzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvbmV0L2ZpYl90ZXN0cy5zaAppbmRleCBjNGJhMGZmNGE1M2YuLjc2YzE4OTdlNjM1MiAx MDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl90ZXN0cy5zaAorKysg Yi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX3Rlc3RzLnNoCkBAIC0xNDM4LDYgKzE0 MzgsMjcgQEAgaXB2NF9hZGRyX21ldHJpY190ZXN0KCkKIAlmaQogCWxvZ190ZXN0ICRyYyAwICJQ cmVmaXggcm91dGUgd2l0aCBtZXRyaWMgb24gbGluayB1cCIKIAorCSMgZXhwbGljaXRseSBjaGVj ayBmb3IgbWV0cmljIGNoYW5nZXMgb24gZWRnZSBzY2VuYXJpb3MKKwlydW5fY21kICIkSVAgYWRk ciBmbHVzaCBkZXYgZHVtbXkyIgorCXJ1bl9jbWQgIiRJUCBhZGRyIGFkZCBkZXYgZHVtbXkyIDE3 Mi4xNi4xMDQuMC8yNCBtZXRyaWMgMjU5IgorCXJ1bl9jbWQgIiRJUCBhZGRyIGNoYW5nZSBkZXYg ZHVtbXkyIDE3Mi4xNi4xMDQuMC8yNCBtZXRyaWMgMjYwIgorCXJjPSQ/CisJaWYgWyAkcmMgLWVx IDAgXTsgdGhlbgorCQljaGVja19yb3V0ZSAiMTcyLjE2LjEwNC4wLzI0IGRldiBkdW1teTIgcHJv dG8ga2VybmVsIHNjb3BlIGxpbmsgc3JjIDE3Mi4xNi4xMDQuMCBtZXRyaWMgMjYwIgorCQlyYz0k PworCWZpCisJbG9nX3Rlc3QgJHJjIDAgIk1vZGlmeSBtZXRyaWMgb2YgLjAvMjQgYWRkcmVzcyIK KworCXJ1bl9jbWQgIiRJUCBhZGRyIGZsdXNoIGRldiBkdW1teTIiCisJcnVuX2NtZCAiJElQIGFk ZHIgYWRkIGRldiBkdW1teTIgMTcyLjE2LjEwNC4xLzMyIHBlZXIgMTcyLjE2LjEwNC4yIG1ldHJp YyAyNjAiCisJcnVuX2NtZCAiJElQIGFkZHIgY2hhbmdlIGRldiBkdW1teTIgMTcyLjE2LjEwNC4x LzMyIHBlZXIgMTcyLjE2LjEwNC4yIG1ldHJpYyAyNjEiCisJcmM9JD8KKwlpZiBbICRyYyAtZXEg MCBdOyB0aGVuCisJCWNoZWNrX3JvdXRlICIxNzIuMTYuMTA0LjIgZGV2IGR1bW15MiBwcm90byBr ZXJuZWwgc2NvcGUgbGluayBzcmMgMTcyLjE2LjEwNC4xIG1ldHJpYyAyNjEiCisJCXJjPSQ/CisJ ZmkKKwlsb2dfdGVzdCAkcmMgMCAiTW9kaWZ5IG1ldHJpYyBvZiBhZGRyZXNzIHdpdGggcGVlciBy b3V0ZSIKKwogCSRJUCBsaSBkZWwgZHVtbXkxCiAJJElQIGxpIGRlbCBkdW1teTIKIAljbGVhbnVw Ci0tIAoyLjIwLjEKCgpGcm9tIDBkNDlmYWViYTFiMzIzN2JjNDAyMmJjZTFlYzlmNGUzOGVmOTY0 MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxp bnV4LmlibS5jb20+CkRhdGU6IFdlZCwgMjMgT2N0IDIwMTkgMTU6NDQ6MDUgKzAyMDAKU3ViamVj dDogW1BBVENIIDI3LzU1XSBuZXQvc21jOiBmaXggY2xvc2luZyBvZiBmYWxsYmFjayBTTUMgc29j a2V0cwoKWyBVcHN0cmVhbSBjb21taXQgZjUzNmRmZmMwYjc5NzM4YzMxMDRhZjk5OTMxODI3OWRj Y2JhYTI2MSBdCgpGb3IgU01DIHNvY2tldHMgZm9yY2VkIHRvIGZhbGxiYWNrIHRvIFRDUCwgdGhl IGZpbGUgaXMgcHJvcGFnYXRlZApmcm9tIHRoZSBvdXRlciBTTUMgdG8gdGhlIGludGVybmFsIFRD UCBzb2NrZXQuIFdoZW4gY2xvc2luZyB0aGUgU01DCnNvY2tldCwgdGhlIGludGVybmFsIFRDUCBz b2NrZXQgZmlsZSBwb2ludGVyIG11c3QgYmUgcmVzdG9yZWQgdG8gdGhlCm9yaWdpbmFsIE5VTEwg dmFsdWUsIG90aGVyd2lzZSBtZW1vcnkgbGVha3MgbWF5IHNob3cgdXAgKGZvdW5kIHdpdGgKQ09O RklHX0RFQlVHX0tNRU1MRUFLKS4KClRoZSBpbnRlcm5hbCBUQ1Agc29ja2V0IGlzIHJlbGVhc2Vk IGluIHNtY19jbGNzb2NrX3JlbGVhc2UoKSwgd2hpY2gKY2FsbHMgX19zb2NrX3JlbGVhc2UoKSBm dW5jdGlvbiBpbiBuZXQvc29ja2V0LmMuIFRoaXMgY2FsbHMgdGhlCm5lZWRlZCBpcHV0KFNPQ0tf SU5PREUoc29jaykpIG9ubHksIGlmIHRoZSBmaWxlIHBvaW50ZXIgaGFzIGJlZW4gcmVzZXQKdG8g dGhlIG9yaWdpbmFsIE5VTEwtdmFsdWUuCgpGaXhlczogMDc2MDNiMjMwODk1ICgibmV0L3NtYzog cHJvcGFnYXRlIGZpbGUgZnJvbSBTTUMgdG8gVENQIHNvY2tldCIpClNpZ25lZC1vZmYtYnk6IFVy c3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IEthcnN0ZW4g R3JhdWwgPGtncmF1bEBsaW51eC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NtYy9hZl9zbWMuYyB8IDcgKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMv YWZfc21jLmMgYi9uZXQvc21jL2FmX3NtYy5jCmluZGV4IDViOTMyNTgzZTQwNy4uZDk1NjZlODRm MmY5IDEwMDY0NAotLS0gYS9uZXQvc21jL2FmX3NtYy5jCisrKyBiL25ldC9zbWMvYWZfc21jLmMK QEAgLTEyMyw2ICsxMjMsMTIgQEAgc3RydWN0IHByb3RvIHNtY19wcm90bzYgPSB7CiB9OwogRVhQ T1JUX1NZTUJPTF9HUEwoc21jX3Byb3RvNik7CiAKK3N0YXRpYyB2b2lkIHNtY19yZXN0b3JlX2Zh bGxiYWNrX2NoYW5nZXMoc3RydWN0IHNtY19zb2NrICpzbWMpCit7CisJc21jLT5jbGNzb2NrLT5m aWxlLT5wcml2YXRlX2RhdGEgPSBzbWMtPnNrLnNrX3NvY2tldDsKKwlzbWMtPmNsY3NvY2stPmZp bGUgPSBOVUxMOworfQorCiBzdGF0aWMgaW50IF9fc21jX3JlbGVhc2Uoc3RydWN0IHNtY19zb2Nr ICpzbWMpCiB7CiAJc3RydWN0IHNvY2sgKnNrID0gJnNtYy0+c2s7CkBAIC0xNDEsNiArMTQ3LDcg QEAgc3RhdGljIGludCBfX3NtY19yZWxlYXNlKHN0cnVjdCBzbWNfc29jayAqc21jKQogCQl9CiAJ CXNrLT5za19zdGF0ZSA9IFNNQ19DTE9TRUQ7CiAJCXNrLT5za19zdGF0ZV9jaGFuZ2Uoc2spOwor CQlzbWNfcmVzdG9yZV9mYWxsYmFja19jaGFuZ2VzKHNtYyk7CiAJfQogCiAJc2stPnNrX3Byb3Qt PnVuaGFzaChzayk7Ci0tIAoyLjIwLjEKCgpGcm9tIDhiNzFlOGU5M2QyMzQ0OTllNWJhZTcxNmVj YzNhMjc5ZTBjNjVmMWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1 biA8dWJyYXVuQGxpbnV4LmlibS5jb20+CkRhdGU6IFdlZCwgMjMgT2N0IDIwMTkgMTU6NDQ6MDYg KzAyMDAKU3ViamVjdDogW1BBVENIIDI4LzU1XSBuZXQvc21jOiBrZWVwIHZsYW5faWQgZm9yIFNN Qy1SIGluIHNtY19saXN0ZW5fd29yaygpCgpbIFVwc3RyZWFtIGNvbW1pdCBjYTVmOGQyZGQ1MjI5 Y2NhY2RkNWNmZGUxY2U0ZDMyYjA4MTBlNDU0IF0KCkNyZWF0aW5nIG9mIGFuIFNNQy1SIGNvbm5l Y3Rpb24gd2l0aCB2bGFuLWlkIGZhaWxzLCBiZWNhdXNlCnNtY19saXN0ZW5fd29yaygpIGRldGVy bWluZXMgdGhlIHZsYW5faWQgb2YgdGhlIGNvbm5lY3Rpb24sCnNhdmVzIGl0IGluIHN0cnVjdCBz bWNfaW5pdF9pbmZvIGluaSwgYnV0IGNsZWFycyB0aGUgaW5pIGFyZWEKYWdhaW4gaWYgU01DLUQg aXMgbm90IGFwcGxpY2FibGUuClRoaXMgcGF0Y2gganVzdCByZXNldHMgdGhlIElTTSBkZXZpY2Ug YmVmb3JlIGludmVzdGlnYXRpbmcKU01DLVIgYXZhaWxhYmlsaXR5LgoKRml4ZXM6IGJjMzZkMmZj OTNlYiAoIm5ldC9zbWM6IGNvbnNvbGlkYXRlIGZ1bmN0aW9uIHBhcmFtZXRlcnMiKQpTaWduZWQt b2ZmLWJ5OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5 OiBLYXJzdGVuIEdyYXVsIDxrZ3JhdWxAbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zbWMvYWZfc21jLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvc21jL2FmX3NtYy5jIGIvbmV0L3NtYy9hZl9zbWMuYwppbmRleCBkOTU2 NmU4NGYyZjkuLmNlYTNjMzZlYTBkYSAxMDA2NDQKLS0tIGEvbmV0L3NtYy9hZl9zbWMuYworKysg Yi9uZXQvc21jL2FmX3NtYy5jCkBAIC0xMjk4LDggKzEyOTgsOCBAQCBzdGF0aWMgdm9pZCBzbWNf bGlzdGVuX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCS8qIGNoZWNrIGlmIFJETUEg aXMgYXZhaWxhYmxlICovCiAJaWYgKCFpc21fc3VwcG9ydGVkKSB7IC8qIFNNQ19UWVBFX1Igb3Ig U01DX1RZUEVfQiAqLwogCQkvKiBwcmVwYXJlIFJETUEgY2hlY2sgKi8KLQkJbWVtc2V0KCZpbmks IDAsIHNpemVvZihpbmkpKTsKIAkJaW5pLmlzX3NtY2QgPSBmYWxzZTsKKwkJaW5pLmlzbV9kZXYg PSBOVUxMOwogCQlpbmkuaWJfbGNsID0gJnBjbGMtPmxjbDsKIAkJcmMgPSBzbWNfZmluZF9yZG1h X2RldmljZShuZXdfc21jLCAmaW5pKTsKIAkJaWYgKHJjKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGE5 ZTQ1ZWY3ZjQ1OGIxNjBjNzIyM2RjNWRkYjUzYjcxMDFiMzU4MjYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRha2VzaGkgTWlzYXdhIDxqZWxpYW50c3VydXhAZ21haWwuY29tPgpEYXRl OiBTYXQsIDE5IE9jdCAyMDE5IDE1OjM0OjQzICswOTAwClN1YmplY3Q6IFtQQVRDSCAyOS81NV0g a2V5czogRml4IG1lbW9yeSBsZWFrIGluIGNvcHlfbmV0X25zCgpbIFVwc3RyZWFtIGNvbW1pdCA4 MmVjZmY2NTVlNzk2ODE1MWIwMDQ3ZjFiNWRlMDNiMjQ5ZTVjMWM0IF0KCklmIGNvcHlfbmV0X25z KCkgZmFpbGVkIGFmdGVyIG5ldF9hbGxvYygpLCBuZXQtPmtleV9kb21haW4gaXMgbGVha2VkLgpG aXggdGhpcywgYnkgZnJlZWluZyBrZXlfZG9tYWluIGluIGVycm9yIHBhdGguCgpzeXpib3QgcmVw b3J0OgpCVUc6IG1lbW9yeSBsZWFrCnVucmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmODg4MTE3NTAw N2UwIChzaXplIDMyKToKICBjb21tICJzeXotZXhlY3V0b3I5MDIiLCBwaWQgNzA2OSwgamlmZmll cyA0Mjk0OTQ0MzUwIChhZ2UgMjguNDAwcykKICBoZXggZHVtcCAoZmlyc3QgMzIgYnl0ZXMpOgog ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4u Li4uLi4uLi4uLi4KICAgIDAxIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCiAgYmFja3RyYWNlOgogICAgWzwwMDAwMDAwMGE4M2Vk NzQxPl0ga21lbWxlYWtfYWxsb2NfcmVjdXJzaXZlIGluY2x1ZGUvbGludXgva21lbWxlYWsuaDo0 MyBbaW5saW5lXQogICAgWzwwMDAwMDAwMGE4M2VkNzQxPl0gc2xhYl9wb3N0X2FsbG9jX2hvb2sg bW0vc2xhYi5oOjQzOSBbaW5saW5lXQogICAgWzwwMDAwMDAwMGE4M2VkNzQxPl0gc2xhYl9hbGxv YyBtbS9zbGFiLmM6MzMyNiBbaW5saW5lXQogICAgWzwwMDAwMDAwMGE4M2VkNzQxPl0ga21lbV9j YWNoZV9hbGxvY190cmFjZSsweDEzZC8weDI4MCBtbS9zbGFiLmM6MzU1MwogICAgWzwwMDAwMDAw MDU5ZmM5MmI5Pl0ga21hbGxvYyBpbmNsdWRlL2xpbnV4L3NsYWIuaDo1NDcgW2lubGluZV0KICAg IFs8MDAwMDAwMDA1OWZjOTJiOT5dIGt6YWxsb2MgaW5jbHVkZS9saW51eC9zbGFiLmg6NzQyIFtp bmxpbmVdCiAgICBbPDAwMDAwMDAwNTlmYzkyYjk+XSBuZXRfYWxsb2MgbmV0L2NvcmUvbmV0X25h bWVzcGFjZS5jOjM5OCBbaW5saW5lXQogICAgWzwwMDAwMDAwMDU5ZmM5MmI5Pl0gY29weV9uZXRf bnMrMHhiMi8weDIyMCBuZXQvY29yZS9uZXRfbmFtZXNwYWNlLmM6NDQ1CiAgICBbPDAwMDAwMDAw YTlkNzRiYmM+XSBjcmVhdGVfbmV3X25hbWVzcGFjZXMrMHgxNDEvMHgyYTAga2VybmVsL25zcHJv eHkuYzoxMDMKICAgIFs8MDAwMDAwMDA4MDQ3ZDY0NT5dIHVuc2hhcmVfbnNwcm94eV9uYW1lc3Bh Y2VzKzB4N2YvMHgxMDAga2VybmVsL25zcHJveHkuYzoyMDIKICAgIFs8MDAwMDAwMDA1OTkzZWE2 ZT5dIGtzeXNfdW5zaGFyZSsweDIzNi8weDQ5MCBrZXJuZWwvZm9yay5jOjI2NzQKICAgIFs8MDAw MDAwMDAxOTQxN2U3NT5dIF9fZG9fc3lzX3Vuc2hhcmUga2VybmVsL2ZvcmsuYzoyNzQyIFtpbmxp bmVdCiAgICBbPDAwMDAwMDAwMTk0MTdlNzU+XSBfX3NlX3N5c191bnNoYXJlIGtlcm5lbC9mb3Jr LmM6Mjc0MCBbaW5saW5lXQogICAgWzwwMDAwMDAwMDE5NDE3ZTc1Pl0gX194NjRfc3lzX3Vuc2hh cmUrMHgxNi8weDIwIGtlcm5lbC9mb3JrLmM6Mjc0MAogICAgWzwwMDAwMDAwMGY0YzVmMmM4Pl0g ZG9fc3lzY2FsbF82NCsweDc2LzB4MWEwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5NgogICAg WzwwMDAwMDAwMDM4NTUwMTg0Pl0gZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQv MHhhOQoKc3l6Ym90IGFsc28gcmVwb3J0ZWQgb3RoZXIgbGVhayBpbiBjb3B5X25ldF9ucyAtPiBz ZXR1cF9uZXQuClRoaXMgcHJvYmxlbSBpcyBhbHJlYWR5IGZpeGVkIGJ5IGNmNDdhMGI4ODJhNGU1 ZjZiMzRjNzk0OWQ3YjI5M2U5Mjg3ZjE5NzIuCgpGaXhlczogOWIyNDI2MTA1MTRmICgia2V5czog TmV0d29yayBuYW1lc3BhY2UgZG9tYWluIHRhZyIpClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5 emJvdCszYjMyOTZkMDMyMzUzYzMzMTg0YkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25l ZC1vZmYtYnk6IFRha2VzaGkgTWlzYXdhIDxqZWxpYW50c3VydXhAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2Nv cmUvbmV0X25hbWVzcGFjZS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMgYi9uZXQvY29yZS9uZXRfbmFt ZXNwYWNlLmMKaW5kZXggNTNhYzY0N2I4OTNiLi44N2MzMmFiNjMzMDQgMTAwNjQ0Ci0tLSBhL25l dC9jb3JlL25ldF9uYW1lc3BhY2UuYworKysgYi9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMKQEAg LTQ3OCw2ICs0NzgsNyBAQCBzdHJ1Y3QgbmV0ICpjb3B5X25ldF9ucyh1bnNpZ25lZCBsb25nIGZs YWdzLAogCiAJaWYgKHJ2IDwgMCkgewogcHV0X3VzZXJuczoKKwkJa2V5X3JlbW92ZV9kb21haW4o bmV0LT5rZXlfZG9tYWluKTsKIAkJcHV0X3VzZXJfbnModXNlcl9ucyk7CiAJCW5ldF9kcm9wX25z KG5ldCk7CiBkZWNfdWNvdW50czoKLS0gCjIuMjAuMQoKCkZyb20gMjFlOTk5MmU2MGQ4Mjk2M2Y4 NzhkMTBhMWFhMjI0MjhlYWMxNWM3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxv cmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMzEgT2N0IDIw MTkgMTU6NDI6MjYgLTA3MDAKU3ViamVjdDogW1BBVENIIDMwLzU1XSBuZXQ6IHBoeWxpbms6IEZp eCBwaHlsaW5rX2RiZygpIG1hY3JvCgpbIFVwc3RyZWFtIGNvbW1pdCA5ZDY4ZGI1MDkyYzVmYWM5 OWZjY2ZkZWFiM2YwNGRmMGIyN2QxNzYyIF0KClRoZSBwaHlsaW5rX2RiZygpIG1hY3JvIGRvZXMg bm90IGZvbGxvdyBkeW5hbWljIGRlYnVnIG9yIGRlZmluZWQoREVCVUcpCmFuZCBhcyBhIHJlc3Vs dCwgaXQgc3BhbXMgdGhlIGtlcm5lbCBsb2cgc2luY2UgYSBQUl9ERUJVRyBsZXZlbCBpcwpjdXJy ZW50bHkgdXNlZC4gRml4IGl0IHRvIGJlIGRlZmluZWQgYXBwcm9wcmlhdGVseSB3aGV0aGVyCkNP TkZJR19EWU5BTUlDX0RFQlVHIG9yIGRlZmluZWQoREVCVUcpIGFyZSBzZXQuCgpGaXhlczogMTcw OTExODBiMTUyICgibmV0OiBwaHlsaW5rOiBBZGQgcGh5bGlua197cHJpbnRrLCBlcnIsIHdhcm4s IGluZm8sIGRiZ30gbWFjcm9zIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5m YWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5bGluay5jIHwgMTYgKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwpp bmRleCBhNWE1N2NhOTRjMWEuLjI2YTEzZmQzYzQ2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cGh5L3BoeWxpbmsuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCkBAIC04Nyw4ICs4 NywyNCBAQCBzdHJ1Y3QgcGh5bGluayB7CiAJcGh5bGlua19wcmludGsoS0VSTl9XQVJOSU5HLCBw bCwgZm10LCAjI19fVkFfQVJHU19fKQogI2RlZmluZSBwaHlsaW5rX2luZm8ocGwsIGZtdCwgLi4u KSBcCiAJcGh5bGlua19wcmludGsoS0VSTl9JTkZPLCBwbCwgZm10LCAjI19fVkFfQVJHU19fKQor I2lmIGRlZmluZWQoQ09ORklHX0RZTkFNSUNfREVCVUcpCiAjZGVmaW5lIHBoeWxpbmtfZGJnKHBs LCBmbXQsIC4uLikgXAorZG8gewkJCQkJCQkJCVwKKwlpZiAoKHBsKS0+Y29uZmlnLT50eXBlID09 IFBIWUxJTktfTkVUREVWKQkJCVwKKwkJbmV0ZGV2X2RiZygocGwpLT5uZXRkZXYsIGZtdCwgIyNf X1ZBX0FSR1NfXyk7CQlcCisJZWxzZSBpZiAoKHBsKS0+Y29uZmlnLT50eXBlID09IFBIWUxJTktf REVWKQkJCVwKKwkJZGV2X2RiZygocGwpLT5kZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7CQkJXAor fSB3aGlsZSAoMCkKKyNlbGlmIGRlZmluZWQoREVCVUcpCisjZGVmaW5lIHBoeWxpbmtfZGJnKHBs LCBmbXQsIC4uLikJCQkJCVwKIAlwaHlsaW5rX3ByaW50ayhLRVJOX0RFQlVHLCBwbCwgZm10LCAj I19fVkFfQVJHU19fKQorI2Vsc2UKKyNkZWZpbmUgcGh5bGlua19kYmcocGwsIGZtdCwgLi4uKQkJ CQkJXAorKHsJCQkJCQkJCQlcCisJaWYgKDApCQkJCQkJCQlcCisJCXBoeWxpbmtfcHJpbnRrKEtF Uk5fREVCVUcsIHBsLCBmbXQsICMjX19WQV9BUkdTX18pOwlcCit9KQorI2VuZGlmCiAKIC8qKgog ICogcGh5bGlua19zZXRfcG9ydF9tb2RlcygpIC0gc2V0IHRoZSBwb3J0IHR5cGUgbW9kZXMgaW4g dGhlIGV0aHRvb2wgbWFzawotLSAKMi4yMC4xCgoKRnJvbSAyYTdiNmY4YTFhNzVkOThmMDA5ZWRl NzVmNDIxOTRjYTNhY2YwNDI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBI b3dlbGxzIDxkaG93ZWxsc0ByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDMxIE9jdCAyMDE5IDEyOjEz OjQ2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAzMS81NV0gcnhycGM6IEZpeCBoYW5kbGluZyBvZiBs YXN0IHN1YnBhY2tldCBvZiBqdW1ibyBwYWNrZXQKClsgVXBzdHJlYW0gY29tbWl0IGY5YzMyNDM1 YWI3MjIxZDFkNmNiMzU3MzhmYTg1YTJkYTAxMmIyM2UgXQoKV2hlbiByeHJwY19yZWN2bXNnX2Rh dGEoKSBzZXRzIHRoZSByZXR1cm4gdmFsdWUgdG8gMSBiZWNhdXNlIGl0J3MgZHJhaW5lZAphbGwg dGhlIGRhdGEgZm9yIHRoZSBsYXN0IHBhY2tldCwgaXQgY2hlY2tzIHRoZSBsYXN0LXBhY2tldCBm bGFnIG9uIHRoZQp3aG9sZSBwYWNrZXQgLSBidXQgdGhpcyBpcyB3cm9uZywgc2luY2UgdGhlIGxh c3QtcGFja2V0IGZsYWcgaXMgb25seSBzZXQgb24KdGhlIGZpbmFsIHN1YnBhY2tldCBvZiB0aGUg bGFzdCBqdW1ibyBwYWNrZXQuICBUaGlzIG1lYW5zIHRoYXQgYSBjYWxsIHRoYXQKcmVjZWl2ZXMg aXRzIGxhc3QgcGFja2V0IGluIGEganVtYm8gcGFja2V0IHdvbid0IGNvbXBsZXRlIHByb3Blcmx5 LgoKRml4IHRoaXMgYnkgaGF2aW5nIHJ4cnBjX2xvY2F0ZV9kYXRhKCkgZGV0ZXJtaW5lIHRoZSBs YXN0LXBhY2tldCBzdGF0ZSBvZgp0aGUgc3VicGFja2V0IGl0J3MgbG9va2luZyBhdCBhbmQgcGFz c2luZyB0aGF0IGJhY2sgdG8gdGhlIGNhbGxlciByYXRoZXIKdGhhbiBoYXZpbmcgdGhlIGNhbGxl ciBsb29rIGluIHRoZSBwYWNrZXQgaGVhZGVyLiAgVGhlIGNhbGxlciB0aGVuIG5lZWRzIHRvCmNh Y2hlIHRoaXMgaW4gdGhlIHJ4cnBjX2NhbGwgc3RydWN0IGFzIHJ4cnBjX2xvY2F0ZV9kYXRhKCkg aXNuJ3QgdGhlbgpjYWxsZWQgYWdhaW4gZm9yIHRoaXMgcGFja2V0LgoKRml4ZXM6IDI0OGYyMTlj YjhiYyAoInJ4cnBjOiBSZXdyaXRlIHRoZSBkYXRhIGFuZCBhY2sgaGFuZGxpbmcgY29kZSIpCkZp eGVzOiBlMmRlNmM0MDQ4OTggKCJyeHJwYzogVXNlIGluZm8gaW4gc2tidWZmIGluc3RlYWQgb2Yg cmVwYXJzaW5nIGEganVtYm8gcGFja2V0IikKU2lnbmVkLW9mZi1ieTogRGF2aWQgSG93ZWxscyA8 ZGhvd2VsbHNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9yeHJwYy9hci1pbnRlcm5hbC5oIHwgIDEgKwogbmV0 L3J4cnBjL3JlY3Ztc2cuYyAgICAgfCAxOCArKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv cnhycGMvYXItaW50ZXJuYWwuaCBiL25ldC9yeHJwYy9hci1pbnRlcm5hbC5oCmluZGV4IDgwNTFk ZmRjZjI2ZC4uYjIzYTEzYzY5MDE5IDEwMDY0NAotLS0gYS9uZXQvcnhycGMvYXItaW50ZXJuYWwu aAorKysgYi9uZXQvcnhycGMvYXItaW50ZXJuYWwuaApAQCAtNTk2LDYgKzU5Niw3IEBAIHN0cnVj dCByeHJwY19jYWxsIHsKIAlpbnQJCQlkZWJ1Z19pZDsJLyogZGVidWcgSUQgZm9yIHByaW50a3Mg Ki8KIAl1bnNpZ25lZCBzaG9ydAkJcnhfcGt0X29mZnNldDsJLyogQ3VycmVudCByZWN2bXNnIHBh Y2tldCBvZmZzZXQgKi8KIAl1bnNpZ25lZCBzaG9ydAkJcnhfcGt0X2xlbjsJLyogQ3VycmVudCBy ZWN2bXNnIHBhY2tldCBsZW4gKi8KKwlib29sCQkJcnhfcGt0X2xhc3Q7CS8qIEN1cnJlbnQgcmVj dm1zZyBwYWNrZXQgaXMgbGFzdCAqLwogCiAJLyogUngvVHggY2lyY3VsYXIgYnVmZmVyLCBkZXBl bmRpbmcgb24gcGhhc2UuCiAJICoKZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9yZWN2bXNnLmMgYi9u ZXQvcnhycGMvcmVjdm1zZy5jCmluZGV4IDNiMGJlY2IxMjA0MS4uMDhkNGI0YjkyODNhIDEwMDY0 NAotLS0gYS9uZXQvcnhycGMvcmVjdm1zZy5jCisrKyBiL25ldC9yeHJwYy9yZWN2bXNnLmMKQEAg LTI2NywxMSArMjY3LDEzIEBAIHN0YXRpYyBpbnQgcnhycGNfdmVyaWZ5X3BhY2tldChzdHJ1Y3Qg cnhycGNfY2FsbCAqY2FsbCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKICAqLwogc3RhdGljIGludCBy eHJwY19sb2NhdGVfZGF0YShzdHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwgc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJCSAgICAgdTggKl9hbm5vdGF0aW9uLAotCQkJICAgICB1bnNpZ25lZCBpbnQgKl9v ZmZzZXQsIHVuc2lnbmVkIGludCAqX2xlbikKKwkJCSAgICAgdW5zaWduZWQgaW50ICpfb2Zmc2V0 LCB1bnNpZ25lZCBpbnQgKl9sZW4sCisJCQkgICAgIGJvb2wgKl9sYXN0KQogewogCXN0cnVjdCBy eHJwY19za2JfcHJpdiAqc3AgPSByeHJwY19za2Ioc2tiKTsKIAl1bnNpZ25lZCBpbnQgb2Zmc2V0 ID0gc2l6ZW9mKHN0cnVjdCByeHJwY193aXJlX2hlYWRlcik7CiAJdW5zaWduZWQgaW50IGxlbjsK Kwlib29sIGxhc3QgPSBmYWxzZTsKIAlpbnQgcmV0OwogCXU4IGFubm90YXRpb24gPSAqX2Fubm90 YXRpb247CiAJdTggc3VicGFja2V0ID0gYW5ub3RhdGlvbiAmIFJYUlBDX1JYX0FOTk9fU1VCUEFD S0VUOwpAQCAtMjgxLDYgKzI4Myw4IEBAIHN0YXRpYyBpbnQgcnhycGNfbG9jYXRlX2RhdGEoc3Ry dWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVjdCBza19idWZmICpza2IsCiAJbGVuID0gc2tiLT5s ZW4gLSBvZmZzZXQ7CiAJaWYgKHN1YnBhY2tldCA8IHNwLT5ucl9zdWJwYWNrZXRzIC0gMSkKIAkJ bGVuID0gUlhSUENfSlVNQk9fREFUQUxFTjsKKwllbHNlIGlmIChzcC0+cnhfZmxhZ3MgJiBSWFJQ Q19TS0JfSU5DTF9MQVNUKQorCQlsYXN0ID0gdHJ1ZTsKIAogCWlmICghKGFubm90YXRpb24gJiBS WFJQQ19SWF9BTk5PX1ZFUklGSUVEKSkgewogCQlyZXQgPSByeHJwY192ZXJpZnlfcGFja2V0KGNh bGwsIHNrYiwgYW5ub3RhdGlvbiwgb2Zmc2V0LCBsZW4pOwpAQCAtMjkxLDYgKzI5NSw3IEBAIHN0 YXRpYyBpbnQgcnhycGNfbG9jYXRlX2RhdGEoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVj dCBza19idWZmICpza2IsCiAKIAkqX29mZnNldCA9IG9mZnNldDsKIAkqX2xlbiA9IGxlbjsKKwkq X2xhc3QgPSBsYXN0OwogCWNhbGwtPmNvbm4tPnNlY3VyaXR5LT5sb2NhdGVfZGF0YShjYWxsLCBz a2IsIF9vZmZzZXQsIF9sZW4pOwogCXJldHVybiAwOwogfQpAQCAtMzA5LDcgKzMxNCw3IEBAIHN0 YXRpYyBpbnQgcnhycGNfcmVjdm1zZ19kYXRhKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBy eHJwY19jYWxsICpjYWxsLAogCXJ4cnBjX3NlcmlhbF90IHNlcmlhbDsKIAlyeHJwY19zZXFfdCBo YXJkX2FjaywgdG9wLCBzZXE7CiAJc2l6ZV90IHJlbWFpbjsKLQlib29sIGxhc3Q7CisJYm9vbCBy eF9wa3RfbGFzdDsKIAl1bnNpZ25lZCBpbnQgcnhfcGt0X29mZnNldCwgcnhfcGt0X2xlbjsKIAlp bnQgaXgsIGNvcHksIHJldCA9IC1FQUdBSU4sIHJldDI7CiAKQEAgLTMxOSw2ICszMjQsNyBAQCBz dGF0aWMgaW50IHJ4cnBjX3JlY3Ztc2dfZGF0YShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg cnhycGNfY2FsbCAqY2FsbCwKIAogCXJ4X3BrdF9vZmZzZXQgPSBjYWxsLT5yeF9wa3Rfb2Zmc2V0 OwogCXJ4X3BrdF9sZW4gPSBjYWxsLT5yeF9wa3RfbGVuOworCXJ4X3BrdF9sYXN0ID0gY2FsbC0+ cnhfcGt0X2xhc3Q7CiAKIAlpZiAoY2FsbC0+c3RhdGUgPj0gUlhSUENfQ0FMTF9TRVJWRVJfQUNL X1JFUVVFU1QpIHsKIAkJc2VxID0gY2FsbC0+cnhfaGFyZF9hY2s7CkBAIC0zMjksNiArMzM1LDcg QEAgc3RhdGljIGludCByeHJwY19yZWN2bXNnX2RhdGEoc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHJ4cnBjX2NhbGwgKmNhbGwsCiAJLyogQmFycmllcnMgYWdhaW5zdCByeHJwY19pbnB1dF9k YXRhKCkuICovCiAJaGFyZF9hY2sgPSBjYWxsLT5yeF9oYXJkX2FjazsKIAlzZXEgPSBoYXJkX2Fj ayArIDE7CisKIAl3aGlsZSAodG9wID0gc21wX2xvYWRfYWNxdWlyZSgmY2FsbC0+cnhfdG9wKSwK IAkgICAgICAgYmVmb3JlX2VxKHNlcSwgdG9wKQogCSAgICAgICApIHsKQEAgLTM1Niw3ICszNjMs OCBAQCBzdGF0aWMgaW50IHJ4cnBjX3JlY3Ztc2dfZGF0YShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBz dHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwKIAkJaWYgKHJ4X3BrdF9vZmZzZXQgPT0gMCkgewogCQkJ cmV0MiA9IHJ4cnBjX2xvY2F0ZV9kYXRhKGNhbGwsIHNrYiwKIAkJCQkJCSAmY2FsbC0+cnh0eF9h bm5vdGF0aW9uc1tpeF0sCi0JCQkJCQkgJnJ4X3BrdF9vZmZzZXQsICZyeF9wa3RfbGVuKTsKKwkJ CQkJCSAmcnhfcGt0X29mZnNldCwgJnJ4X3BrdF9sZW4sCisJCQkJCQkgJnJ4X3BrdF9sYXN0KTsK IAkJCXRyYWNlX3J4cnBjX3JlY3Ztc2coY2FsbCwgcnhycGNfcmVjdm1zZ19uZXh0LCBzZXEsCiAJ CQkJCSAgICByeF9wa3Rfb2Zmc2V0LCByeF9wa3RfbGVuLCByZXQyKTsKIAkJCWlmIChyZXQyIDwg MCkgewpAQCAtMzk2LDEzICs0MDQsMTIgQEAgc3RhdGljIGludCByeHJwY19yZWN2bXNnX2RhdGEo c3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsCiAJCX0KIAogCQkv KiBUaGUgd2hvbGUgcGFja2V0IGhhcyBiZWVuIHRyYW5zZmVycmVkLiAqLwotCQlsYXN0ID0gc3At Pmhkci5mbGFncyAmIFJYUlBDX0xBU1RfUEFDS0VUOwogCQlpZiAoIShmbGFncyAmIE1TR19QRUVL KSkKIAkJCXJ4cnBjX3JvdGF0ZV9yeF93aW5kb3coY2FsbCk7CiAJCXJ4X3BrdF9vZmZzZXQgPSAw OwogCQlyeF9wa3RfbGVuID0gMDsKIAotCQlpZiAobGFzdCkgeworCQlpZiAocnhfcGt0X2xhc3Qp IHsKIAkJCUFTU0VSVENNUChzZXEsID09LCBSRUFEX09OQ0UoY2FsbC0+cnhfdG9wKSk7CiAJCQly ZXQgPSAxOwogCQkJZ290byBvdXQ7CkBAIC00MTUsNiArNDIyLDcgQEAgc3RhdGljIGludCByeHJw Y19yZWN2bXNnX2RhdGEoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHJ4cnBjX2NhbGwgKmNh bGwsCiAJaWYgKCEoZmxhZ3MgJiBNU0dfUEVFSykpIHsKIAkJY2FsbC0+cnhfcGt0X29mZnNldCA9 IHJ4X3BrdF9vZmZzZXQ7CiAJCWNhbGwtPnJ4X3BrdF9sZW4gPSByeF9wa3RfbGVuOworCQljYWxs LT5yeF9wa3RfbGFzdCA9IHJ4X3BrdF9sYXN0OwogCX0KIGRvbmU6CiAJdHJhY2VfcnhycGNfcmVj dm1zZyhjYWxsLCByeHJwY19yZWN2bXNnX2RhdGFfcmV0dXJuLCBzZXEsCi0tIAoyLjIwLjEKCgpG cm9tIDU5NTlmM2Q1NzlmYzFhMTQ2Nzk4N2JhYzBlNWExYThlODMyMmVmM2UgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERteXRybyBMaW5raW4gPGRtaXRyb2xpbkBtZWxsYW5veC5jb20+ CkRhdGU6IFdlZCwgNCBTZXAgMjAxOSAxMjozMjo0OSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzIv NTVdIG5ldC9tbHg1ZTogRGV0ZXJtaW5lIHNvdXJjZSBwb3J0IHByb3Blcmx5IGZvciB2bGFuIHB1 c2gKIGFjdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgZDVkYmNjNGU4N2JjODQ0NGJkMmYxY2E0Yjhm Nzg3ZTFlNTY3N2VjMiBdCgpUZXJtaW5hdGlvbiB0YWJsZXMgYXJlIHVzZWQgZm9yIHZsYW4gcHVz aCBhY3Rpb25zIG9uIHVwbGluayBwb3J0cy4KVG8gc3VwcG9ydCBSb0NFIGR1YWwgcG9ydCB0aGUg c291cmNlIHBvcnQgdmFsdWUgd2FzIHBsYWNlZCBpbiBhIHJlZ2lzdGVyLgpGaXggdGhlIGNvZGUg dG8gdXNlIGFuIEFQSSBtZXRob2QgcmV0dXJuaW5nIHRoZSBzb3VyY2UgcG9ydCBhY2NvcmRpbmcg dG8KdGhlIEZXIGNhcGFiaWxpdGllcy4KCkZpeGVzOiAxMGNhYWJkYWFkNWEgKCJuZXQvbWx4NWU6 IFVzZSB0ZXJtaW5hdGlvbiB0YWJsZSBmb3IgVkxBTiBwdXNoIGFjdGlvbnMiKQpTaWduZWQtb2Zm LWJ5OiBEbXl0cm8gTGlua2luIDxkbWl0cm9saW5AbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTog SmlhbmJvIExpdSA8amlhbmJvbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPeiBTaGxvbW8g PG96c2hAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ Ci0tLQogLi4uL21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzX3Rlcm10YmwuYyAgICAgIHwgMjIg KysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5jCmluZGV4IDFk NTVhMzI0YTE3ZS4uNzg3OWUxNzQ2Mjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkc190ZXJtdGJsLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHNfdGVy bXRibC5jCkBAIC0xNzcsMjIgKzE3NywzMiBAQCBtbHg1X2Vzd2l0Y2hfdGVybXRibF9hY3Rpb25z X21vdmUoc3RydWN0IG1seDVfZmxvd19hY3QgKnNyYywKIAltZW1zZXQoJnNyYy0+dmxhblsxXSwg MCwgc2l6ZW9mKHNyYy0+dmxhblsxXSkpOwogfQogCitzdGF0aWMgYm9vbCBtbHg1X2Vzd2l0Y2hf b2ZmbG9hZF9pc191cGxpbmtfcG9ydChjb25zdCBzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csCisJ CQkJCQljb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpCit7CisJdTMyIHBvcnRfbWFz aywgcG9ydF92YWx1ZTsKKworCWlmIChNTFg1X0NBUF9FU1dfRkxPV1RBQkxFKGVzdy0+ZGV2LCBm bG93X3NvdXJjZSkpCisJCXJldHVybiBzcGVjLT5mbG93X2NvbnRleHQuZmxvd19zb3VyY2UgPT0g TUxYNV9WUE9SVF9VUExJTks7CisKKwlwb3J0X21hc2sgPSBNTFg1X0dFVChmdGVfbWF0Y2hfcGFy YW0sIHNwZWMtPm1hdGNoX2NyaXRlcmlhLAorCQkJICAgICBtaXNjX3BhcmFtZXRlcnMuc291cmNl X3BvcnQpOworCXBvcnRfdmFsdWUgPSBNTFg1X0dFVChmdGVfbWF0Y2hfcGFyYW0sIHNwZWMtPm1h dGNoX3ZhbHVlLAorCQkJICAgICAgbWlzY19wYXJhbWV0ZXJzLnNvdXJjZV9wb3J0KTsKKwlyZXR1 cm4gKHBvcnRfbWFzayAmIHBvcnRfdmFsdWUgJiAweGZmZmYpID09IE1MWDVfVlBPUlRfVVBMSU5L OworfQorCiBib29sCiBtbHg1X2Vzd2l0Y2hfdGVybXRibF9yZXF1aXJlZChzdHJ1Y3QgbWx4NV9l c3dpdGNoICplc3csCiAJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X2FjdCAqZmxvd19hY3QsCiAJ CQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpCiB7Ci0JdTMyIHBvcnRfbWFzayA9 IE1MWDVfR0VUKGZ0ZV9tYXRjaF9wYXJhbSwgc3BlYy0+bWF0Y2hfY3JpdGVyaWEsCi0JCQkJIG1p c2NfcGFyYW1ldGVycy5zb3VyY2VfcG9ydCk7Ci0JdTMyIHBvcnRfdmFsdWUgPSBNTFg1X0dFVChm dGVfbWF0Y2hfcGFyYW0sIHNwZWMtPm1hdGNoX3ZhbHVlLAotCQkJCSAgbWlzY19wYXJhbWV0ZXJz LnNvdXJjZV9wb3J0KTsKLQogCWlmICghTUxYNV9DQVBfRVNXX0ZMT1dUQUJMRV9GREIoZXN3LT5k ZXYsIHRlcm1pbmF0aW9uX3RhYmxlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogcHVzaCB2bGFu IG9uIFJYICovCiAJcmV0dXJuIChmbG93X2FjdC0+YWN0aW9uICYgTUxYNV9GTE9XX0NPTlRFWFRf QUNUSU9OX1ZMQU5fUFVTSCkgJiYKLQkJKChwb3J0X21hc2sgJiBwb3J0X3ZhbHVlKSA9PSBNTFg1 X1ZQT1JUX1VQTElOSyk7CisJCW1seDVfZXN3aXRjaF9vZmZsb2FkX2lzX3VwbGlua19wb3J0KGVz dywgc3BlYyk7CiB9CiAKIHN0cnVjdCBtbHg1X2Zsb3dfaGFuZGxlICoKLS0gCjIuMjAuMQoKCkZy b20gZDcxNmU2OTZmODE0MDg5MzIzZTAxMTZiYzNjNDE1OGFjNjE5ZTg1YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRG15dHJvIExpbmtpbiA8ZG1pdHJvbGluQG1lbGxhbm94LmNvbT4K RGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNToyNDoyNyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzMv NTVdIG5ldC9tbHg1ZTogUmVtb3ZlIGluY29ycmVjdCBtYXRjaCBjcml0ZXJpYSBhc3NpZ25tZW50 CiBsaW5lCgpbIFVwc3RyZWFtIGNvbW1pdCA3NTJkM2RjMDZkNjkzNmQ1YTM1N2ExOGI2YjUxZDkx YzdlMTM0ZTg4IF0KCkRyaXZlciBoYXZlIGZ1bmN0aW9uLCB3aGljaCBlbmFibGUgbWF0Y2ggY3Jp dGVyaWEgZm9yIG1pc2MgcGFyYW1ldGVycwppbiBkZXBlbmRlbmNlIG9mIGVzd2l0Y2ggY2FwYWJp bGl0aWVzLgoKRml4ZXM6IDRmNWQxYmVhZGMxMCAoIk1lcmdlIGJyYW5jaCAnbWx4NS1uZXh0JyBv ZiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbWVsbGFub3gv bGludXgiKQpTaWduZWQtb2ZmLWJ5OiBEbXl0cm8gTGlua2luIDxkbWl0cm9saW5AbWVsbGFub3gu Y29tPgpSZXZpZXdlZC1ieTogSmlhbmJvIExpdSA8amlhbmJvbEBtZWxsYW5veC5jb20+ClJldmll d2VkLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogU2FlZWQg TWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKaW5kZXggMDMyM2ZkMDc4MjcxLi4zNTk0 NWNkZDBhNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lc3dpdGNoX29mZmxvYWRzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYwpAQCAtMjg1LDcgKzI4NSw2IEBAIG1seDVf ZXN3aXRjaF9hZGRfZndkX3J1bGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LAogCiAJbWx4NV9l c3dpdGNoX3NldF9ydWxlX3NvdXJjZV9wb3J0KGVzdywgc3BlYywgYXR0cik7CiAKLQlzcGVjLT5t YXRjaF9jcml0ZXJpYV9lbmFibGUgfD0gTUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlM7CiAJaWYg KGF0dHItPm91dGVyX21hdGNoX2xldmVsICE9IE1MWDVfTUFUQ0hfTk9ORSkKIAkJc3BlYy0+bWF0 Y2hfY3JpdGVyaWFfZW5hYmxlIHw9IE1MWDVfTUFUQ0hfT1VURVJfSEVBREVSUzsKIAotLSAKMi4y MC4xCgoKRnJvbSBjZTc3OTM5NDNjZWFlZmFjZDgxMzQxYTEwMDI4MTZmMGIzM2I5ZmI0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpE YXRlOiBXZWQsIDIzIE9jdCAyMDE5IDEyOjU3OjU0ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzNC81 NV0gbmV0L21seDVlOiBJbml0aWFsaXplIG9uIHN0YWNrIGxpbmsgbW9kZXMgYml0bWFwCgpbIFVw c3RyZWFtIGNvbW1pdCA5MjZiMzdmNzZmYjBhMjJmZTkzYzg4NzNjODE5ZmQxNjcxODBlODVjIF0K CkluaXRpYWxpemUgbGluayBtb2RlcyBiaXRtYXAgb24gc3RhY2sgYmVmb3JlIHVzaW5nIGl0LCBv dGhlcndpc2UgdGhlCm91dGNvbWUgb2YgZXRodG9vbCBzZXQgbGluayBrc2V0dGluZ3MgbWlnaHQg aGF2ZSB1bmV4cGVjdGVkIHZhbHVlcy4KCkZpeGVzOiA0Yjk1ODQwYTZjZWQgKCJuZXQvbWx4NWU6 IEZpeCBtYXRjaGluZyBvZiBzcGVlZCB0byBQUk0gbGluayBtb2RlcyIpClNpZ25lZC1vZmYtYnk6 IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwppbmRleCAyMGU2MjhjOTA3ZTUuLmE5YmI4 ZTJiMzRhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fZXRodG9vbC5jCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCBzdGF0aWMgYm9vbCBleHRf bGlua19tb2RlX3JlcXVlc3RlZChjb25zdCB1bnNpZ25lZCBsb25nICphZHZlcikKIHsKICNkZWZp bmUgTUxYNUVfTUlOX1BUWVNfRVhUX0xJTktfTU9ERV9CSVQgRVRIVE9PTF9MSU5LX01PREVfNTAw MDBiYXNlS1JfRnVsbF9CSVQKIAlpbnQgc2l6ZSA9IF9fRVRIVE9PTF9MSU5LX01PREVfTUFTS19O QklUUyAtIE1MWDVFX01JTl9QVFlTX0VYVF9MSU5LX01PREVfQklUOwotCV9fRVRIVE9PTF9ERUNM QVJFX0xJTktfTU9ERV9NQVNLKG1vZGVzKTsKKwlfX0VUSFRPT0xfREVDTEFSRV9MSU5LX01PREVf TUFTSyhtb2RlcykgPSB7MCx9OwogCiAJYml0bWFwX3NldChtb2RlcywgTUxYNUVfTUlOX1BUWVNf RVhUX0xJTktfTU9ERV9CSVQsIHNpemUpOwogCXJldHVybiBiaXRtYXBfaW50ZXJzZWN0cyhtb2Rl cywgYWR2ZXIsIF9fRVRIVE9PTF9MSU5LX01PREVfTUFTS19OQklUUyk7Ci0tIAoyLjIwLjEKCgpG cm9tIDBkNGZjYTRiYWZlNDBlYTY4N2JmNDQ3MGFkOGJjODhhNjY0ZDE0MDYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+CkRhdGU6IFdl ZCwgMTEgU2VwIDIwMTkgMTQ6NDQ6NTAgKzAzMDAKU3ViamVjdDogW1BBVENIIDM1LzU1XSBuZXQv bWx4NTogRml4IGZsb3cgY291bnRlciBsaXN0IGF1dG8gYml0cyBzdHJ1Y3QKClsgVXBzdHJlYW0g Y29tbWl0IDZkZmVmMzk2ZWExMzg3M2FlOTA2NmVlMmUwYWQ2ZWUzNjQwMzFmZTIgXQoKVGhlIHVu aW9uIHNob3VsZCBjb250YWluIHRoZSBleHRlbmRlZCBkZXN0IGFuZCBjb3VudGVyIGxpc3QuClJl bW92ZSB0aGUgcmVzZXZlcmVkIDB4NDAgYml0cyB3aGljaCBpcyByZWR1bmRhbnQuClRoaXMgY2hh bmdlIGRvZXNuJ3QgYnJlYWsgYW55IGZ1bmN0aW9uYWxseS4KRXZlcnl0aGluZyB3b3JrcyB0b2Rh eSBiZWNhdXNlIHRoZSBjb2RlIGluIGZzX2NtZC5jIGlzIHVzaW5nCnRoZSBjb3JyZWN0IHN0cnVj dHMgaWYgZXh0ZW5kZWQgZGVzdCBvciB0aGUgYmFzaWMgZGVzdC4KCkZpeGVzOiAxYjExNTQ5ODU5 OGYgKCJuZXQvbWx4NTogSW50cm9kdWNlIGV4dGVuZGVkIGRlc3RpbmF0aW9uIGZpZWxkcyIpClNp Z25lZC1vZmYtYnk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBN YXJrIEJsb2NoIDxtYXJrYkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lm Yy5oIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUv bGludXgvbWx4NS9tbHg1X2lmYy5oCmluZGV4IGI4YjU3MGMzMGI1ZS4uZTRiMzIzZTRkYjhmIDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaAorKysgYi9pbmNsdWRlL2xp bnV4L21seDUvbWx4NV9pZmMuaApAQCAtMTQzNyw5ICsxNDM3LDggQEAgc3RydWN0IG1seDVfaWZj X2V4dGVuZGVkX2Rlc3RfZm9ybWF0X2JpdHMgewogfTsKIAogdW5pb24gbWx4NV9pZmNfZGVzdF9m b3JtYXRfc3RydWN0X2Zsb3dfY291bnRlcl9saXN0X2F1dG9fYml0cyB7Ci0Jc3RydWN0IG1seDVf aWZjX2Rlc3RfZm9ybWF0X3N0cnVjdF9iaXRzIGRlc3RfZm9ybWF0X3N0cnVjdDsKKwlzdHJ1Y3Qg bWx4NV9pZmNfZXh0ZW5kZWRfZGVzdF9mb3JtYXRfYml0cyBleHRlbmRlZF9kZXN0X2Zvcm1hdDsK IAlzdHJ1Y3QgbWx4NV9pZmNfZmxvd19jb3VudGVyX2xpc3RfYml0cyBmbG93X2NvdW50ZXJfbGlz dDsKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHg0MF07CiB9OwogCiBzdHJ1Y3QgbWx4NV9p ZmNfZnRlX21hdGNoX3BhcmFtX2JpdHMgewotLSAKMi4yMC4xCgoKRnJvbSA1ZTQwMWY3MWFmNDQw Y2Q2NWY2YmJiZWQ1YTA5MjExZDU3MWUyNjlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC5pYm0uY29tPgpEYXRlOiBUdWUsIDI5IE9jdCAy MDE5IDEyOjQxOjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAzNi81NV0gbmV0L3NtYzogZml4IHJl ZmNvdW50aW5nIGZvciBub24tYmxvY2tpbmcgY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAz MDE0MjhlYTM3MDgxODhkYzRhMjQzZTZlNmI0NmMwM2I0NmEwZmJjIF0KCklmIGEgbm9uYmxvY2tp bmcgc29ja2V0IGlzIGltbWVkaWF0ZWx5IGNsb3NlZCBhZnRlciBjb25uZWN0KCksCnRoZSBjb25u ZWN0IHdvcmtlciBtYXkgbm90IGhhdmUgc3RhcnRlZC4gVGhpcyByZXN1bHRzIGluIGEgcmVmY291 bnQKcHJvYmxlbSwgc2luY2Ugc29ja19ob2xkKCkgaXMgY2FsbGVkIGZyb20gdGhlIGNvbm5lY3Qg d29ya2VyLgpUaGlzIHBhdGNoIG1vdmVzIHRoZSBzb2NrX2hvbGQgaW4gZnJvbnQgb2YgdGhlIGNv bm5lY3Qgd29ya2VyCnNjaGVkdWxpbmcuCgpSZXBvcnRlZC1ieTogc3l6Ym90KzRjMDYzZTZkZWEz OWU0Yjc5ZjI5QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IDUwNzE3YTM3ZGIwMyAo Im5ldC9zbWM6IG5vbmJsb2NraW5nIGNvbm5lY3QgcmV3b3JrIikKUmV2aWV3ZWQtYnk6IEthcnN0 ZW4gR3JhdWwgPGtncmF1bEBsaW51eC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBVcnN1bGEgQnJh dW4gPHVicmF1bkBsaW51eC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NtYy9hZl9zbWMuYyB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvc21jL2FmX3NtYy5jIGIvbmV0L3NtYy9hZl9zbWMuYwppbmRleCBjZWEzYzM2ZWEwZGEu LjQ3OTQ2ZjQ4OWZkNCAxMDA2NDQKLS0tIGEvbmV0L3NtYy9hZl9zbWMuYworKysgYi9uZXQvc21j L2FmX3NtYy5jCkBAIC03MDcsOCArNzA3LDYgQEAgc3RhdGljIGludCBfX3NtY19jb25uZWN0KHN0 cnVjdCBzbWNfc29jayAqc21jKQogCWludCBzbWNfdHlwZTsKIAlpbnQgcmMgPSAwOwogCi0Jc29j a19ob2xkKCZzbWMtPnNrKTsgLyogc29jayBwdXQgaW4gcGFzc2l2ZSBjbG9zaW5nICovCi0KIAlp ZiAoc21jLT51c2VfZmFsbGJhY2spCiAJCXJldHVybiBzbWNfY29ubmVjdF9mYWxsYmFjayhzbWMs IHNtYy0+ZmFsbGJhY2tfcnNuKTsKIApAQCAtODUzLDYgKzg1MSw4IEBAIHN0YXRpYyBpbnQgc21j X2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAogCXJj ID0ga2VybmVsX2Nvbm5lY3Qoc21jLT5jbGNzb2NrLCBhZGRyLCBhbGVuLCBmbGFncyk7CiAJaWYg KHJjICYmIHJjICE9IC1FSU5QUk9HUkVTUykKIAkJZ290byBvdXQ7CisKKwlzb2NrX2hvbGQoJnNt Yy0+c2spOyAvKiBzb2NrIHB1dCBpbiBwYXNzaXZlIGNsb3NpbmcgKi8KIAlpZiAoZmxhZ3MgJiBP X05PTkJMT0NLKSB7CiAJCWlmIChzY2hlZHVsZV93b3JrKCZzbWMtPmNvbm5lY3Rfd29yaykpCiAJ CQlzbWMtPmNvbm5lY3Rfbm9uYmxvY2sgPSAxOwotLSAKMi4yMC4xCgoKRnJvbSA1ZTAxNWM4Yzk2 NWYwNjIyNDU3N2YxNDNlY2IwODg0ZDEyZDMzMDdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBQYXJhdiBQYW5kaXQgPHBhcmF2QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAxOSBTZXAg MjAxOSAxNTo1ODoxNCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNTVdIG5ldC9tbHg1OiBGaXgg cnRhYmxlIHJlZmVyZW5jZSBsZWFrCgpbIFVwc3RyZWFtIGNvbW1pdCAyMzQ3Y2VlODNiMmJkODY4 YmRlMmQyODNkYjBmYWM4OWYyMmJlNGUwIF0KCklmIHRoZSBydCBlbnRyeSBnYXRld2F5IGZhbWls eSBpcyBub3QgQUZfSU5FVCBmb3IgbXVsdGlwYXRoIGRldmljZSwKcnRhYmxlIHJlZmVyZW5jZSBp cyBsZWFrZWQuCkhlbmNlLCBmaXggaXQgYnkgcmVsZWFzaW5nIHRoZSByZWZlcmVuY2UuCgpGaXhl czogNWZiMDkxZTgxMzBiICgibmV0L21seDVlOiBVc2UgaGludCB0byByZXNvbHZlIHJvdXRlIHdo ZW4gaW4gSFcgbXVsdGlwYXRoIG1vZGUiKQpGaXhlczogZTMyZWU2Yzc4ZWZhICgibmV0L21seDVl OiBTdXBwb3J0IHR1bm5lbCBlbmNhcCBvdmVyIHRhZ2dlZCBFdGhlcm5ldCIpClNpZ25lZC1vZmYt Ynk6IFBhcmF2IFBhbmRpdCA8cGFyYXZAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmMgfCAxMiArKysrKysrKystLS0KIDEgZmls ZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jCmluZGV4IGE2 YTUyODA2YmU0NS4uMzEwZjY1ZWY1NDQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jCkBAIC05MCwxNSArOTAsMTkgQEAgc3Rh dGljIGludCBtbHg1ZV9yb3V0ZV9sb29rdXBfaXB2NChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKG1seDVfbGFnX2lzX211bHRpcGF0aCht ZGV2KSAmJiBydC0+cnRfZ3dfZmFtaWx5ICE9IEFGX0lORVQpCisJaWYgKG1seDVfbGFnX2lzX211 bHRpcGF0aChtZGV2KSAmJiBydC0+cnRfZ3dfZmFtaWx5ICE9IEFGX0lORVQpIHsKKwkJaXBfcnRf cHV0KHJ0KTsKIAkJcmV0dXJuIC1FTkVUVU5SRUFDSDsKKwl9CiAjZWxzZQogCXJldHVybiAtRU9Q Tk9UU1VQUDsKICNlbmRpZgogCiAJcmV0ID0gZ2V0X3JvdXRlX2FuZF9vdXRfZGV2cyhwcml2LCBy dC0+ZHN0LmRldiwgcm91dGVfZGV2LCBvdXRfZGV2KTsKLQlpZiAocmV0IDwgMCkKKwlpZiAocmV0 IDwgMCkgeworCQlpcF9ydF9wdXQocnQpOwogCQlyZXR1cm4gcmV0OworCX0KIAogCWlmICghKCpv dXRfdHRsKSkKIAkJKm91dF90dGwgPSBpcDRfZHN0X2hvcGxpbWl0KCZydC0+ZHN0KTsKQEAgLTE0 Miw4ICsxNDYsMTAgQEAgc3RhdGljIGludCBtbHg1ZV9yb3V0ZV9sb29rdXBfaXB2NihzdHJ1Y3Qg bWx4NWVfcHJpdiAqcHJpdiwKIAkJKm91dF90dGwgPSBpcDZfZHN0X2hvcGxpbWl0KGRzdCk7CiAK IAlyZXQgPSBnZXRfcm91dGVfYW5kX291dF9kZXZzKHByaXYsIGRzdC0+ZGV2LCByb3V0ZV9kZXYs IG91dF9kZXYpOwotCWlmIChyZXQgPCAwKQorCWlmIChyZXQgPCAwKSB7CisJCWRzdF9yZWxlYXNl KGRzdCk7CiAJCXJldHVybiByZXQ7CisJfQogI2Vsc2UKIAlyZXR1cm4gLUVPUE5PVFNVUFA7CiAj ZW5kaWYKLS0gCjIuMjAuMQoKCkZyb20gNTBkMmI5MzMxMTJkMDg1MmQ3ODU5ZmMwM2JjZDVkNzU4 OWVmNTZjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmlyaSBQaXJrbyA8amlyaUBt ZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMzAgT2N0IDIwMTkgMTE6MDQ6MjIgKzAyMDAKU3ViamVj dDogW1BBVENIIDM4LzU1XSBtbHhzdzogY29yZTogVW5wdWJsaXNoIGRldmxpbmsgcGFyYW1ldGVy cyBkdXJpbmcgcmVsb2FkCgpbIFVwc3RyZWFtIGNvbW1pdCBiNzI2NWEwZGY4MmMxNzE2YmY3ODgw OTYyMTcwODNlZDY1YThiYjE0IF0KClRoZSBkZXZsaW5rIHBhcmFtZXRlciAiYWNsX3JlZ2lvbl9y ZWhhc2hfaW50ZXJ2YWwiIGlzIGEgcnVudGltZQpwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgc3Rv cmVkIGluIGEgZHluYW1pY2FsbHkgYWxsb2NhdGVkIG1lbW9yeS4gV2hpbGUKcmVsb2FkaW5nIHRo ZSBkcml2ZXIsIHRoaXMgbWVtb3J5IGlzIGZyZWVkIGFuZCB0aGVuIGFsbG9jYXRlZCBhZ2Fpbi4g QQp1c2UtYWZ0ZXItZnJlZSBtaWdodCBoYXBwZW4gaWYgZHVyaW5nIHRoaXMgdGltZSBmcmFtZSBz b21lb25lIHRyaWVzIHRvCnJldHJpZXZlIGl0cyB2YWx1ZS4KClNpbmNlIGNvbW1pdCAwNzBjNjNm MjBmNmMgKCJuZXQ6IGRldmxpbms6IGFsbG93IHRvIGNoYW5nZSBuYW1lc3BhY2VzCmR1cmluZyBy ZWxvYWQiKSB0aGUgdXNlLWFmdGVyLWZyZWUgY2FuIGJlIHJlbGlhYmx5IHRyaWdnZXJlZCB3aGVu CnJlbG9hZGluZyB0aGUgZHJpdmVyIGludG8gYSBuYW1lc3BhY2UsIGFzIGFmdGVyIGZyZWVpbmcg dGhlIG1lbW9yeSAodmlhCnJlbG9hZF9kb3duKCkgY2FsbGJhY2spIGFsbCB0aGUgcGFyYW1ldGVy cyBhcmUgbm90aWZpZWQuCgpGaXggdGhpcyBieSB1bnB1Ymxpc2hpbmcgYW5kIHRoZW4gcmUtcHVi bGlzaGluZyB0aGUgcGFyYW1ldGVycyBkdXJpbmcKcmVsb2FkLgoKRml4ZXM6IDk4YmJmNzBjMWM0 MSAoIm1seHN3OiBzcGVjdHJ1bTogYWRkICJhY2xfcmVnaW9uX3JlaGFzaF9pbnRlcnZhbCIgZGV2 bGluayBwYXJhbSIpCkZpeGVzOiA3YzYyY2ZiOGM1NzQgKCJkZXZsaW5rOiBwdWJsaXNoIHBhcmFt cyBvbmx5IGFmdGVyIGRyaXZlciBpbml0IGlzIGRvbmUiKQpTaWduZWQtb2ZmLWJ5OiBKaXJpIFBp cmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9z Y2hAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29y ZS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2Nv cmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYwppbmRleCAx N2NlYWM3NTA1ZTUuLmI5NGNkYmQ3YmIxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L2NvcmUuYwpAQCAtMTEyOCw3ICsxMTI4LDcgQEAgX19tbHhzd19jb3JlX2J1c19k ZXZpY2VfcmVnaXN0ZXIoY29uc3Qgc3RydWN0IG1seHN3X2J1c19pbmZvICptbHhzd19idXNfaW5m bywKIAlpZiAoZXJyKQogCQlnb3RvIGVycl90aGVybWFsX2luaXQ7CiAKLQlpZiAobWx4c3dfZHJp dmVyLT5wYXJhbXNfcmVnaXN0ZXIgJiYgIXJlbG9hZCkKKwlpZiAobWx4c3dfZHJpdmVyLT5wYXJh bXNfcmVnaXN0ZXIpCiAJCWRldmxpbmtfcGFyYW1zX3B1Ymxpc2goZGV2bGluayk7CiAKIAlyZXR1 cm4gMDsKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgbWx4c3dfY29yZV9idXNfZGV2aWNlX3Vu cmVnaXN0ZXIoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsCiAJCQlyZXR1cm47CiAJfQog Ci0JaWYgKG1seHN3X2NvcmUtPmRyaXZlci0+cGFyYW1zX3VucmVnaXN0ZXIgJiYgIXJlbG9hZCkK KwlpZiAobWx4c3dfY29yZS0+ZHJpdmVyLT5wYXJhbXNfdW5yZWdpc3RlcikKIAkJZGV2bGlua19w YXJhbXNfdW5wdWJsaXNoKGRldmxpbmspOwogCW1seHN3X3RoZXJtYWxfZmluaShtbHhzd19jb3Jl LT50aGVybWFsKTsKIAltbHhzd19od21vbl9maW5pKG1seHN3X2NvcmUtPmh3bW9uKTsKLS0gCjIu MjAuMQoKCkZyb20gMjliMGZlZDJkYTA3NGZmNjI2MzQ2MjkyZWI1ZGMzNGRlZThmNGNjOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdt YWlsLmNvbT4KRGF0ZTogRnJpLCAxIE5vdiAyMDE5IDAwOjEwOjIxICswMTAwClN1YmplY3Q6IFtQ QVRDSCAzOS81NV0gcjgxNjk6IGZpeCB3cm9uZyBQSFkgSUQgaXNzdWUgd2l0aCBSVEw4MTY4ZHAK ClsgVXBzdHJlYW0gY29tbWl0IDYyYmRjOGZkMWMyMWQ0MjYzZWJkMThiZWM1N2Y4MjUzMmQwOTI0 OWYgXQoKQXMgcmVwb3J0ZWQgaW4gWzBdIGF0IGxlYXN0IG9uZSBSVEw4MTY4ZHAgdmVyc2lvbiBo YXMgcHJvYmxlbXMKZXN0YWJsaXNoaW5nIGEgbGluay4gVGhpcyBjaGlwIHZlcnNpb24gaGFzIGFu IGludGVncmF0ZWQgUlRMODIxMWIgUEhZLApob3dldmVyIHRoZSBjaGlwIHNlZW1zIHRvIHJlcG9y dCBhIHdyb25nIFBIWSBJRCwgcmVzdWx0aW5nIGluIGEgd3JvbmcKUEhZIGRyaXZlciAoZm9yIEdl bmVyaWMgUmVhbHRlayBQSFkpIGJlaW5nIGxvYWRlZC4KV29yayBhcm91bmQgdGhpcyBpc3N1ZSBi eSBhZGRpbmcgYSBob29rIHRvIHI4MTY4ZHBfMl9tZGlvX3JlYWQoKQpmb3IgcmV0dXJuaW5nIHRo ZSBjb3JyZWN0IFBIWSBJRC4KClswXSBodHRwczovL2Jicy5hcmNobGludXgub3JnL3ZpZXd0b3Bp Yy5waHA/aWQ9MjQ2NTA4CgpGaXhlczogMjQyY2Q5YjU4NjZhICgicjgxNjk6IHVzZSBwaHlfcmVz dW1lL3BoeV9zdXNwZW5kIikKU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdl aXQxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5j IHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYwppbmRleCBiYWUwMDc0YWI5YWEuLjAwYzg2Yzdk ZDQyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWlu LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKQEAgLTk3 Niw2ICs5NzYsMTAgQEAgc3RhdGljIGludCByODE2OGRwXzJfbWRpb19yZWFkKHN0cnVjdCBydGw4 MTY5X3ByaXZhdGUgKnRwLCBpbnQgcmVnKQogewogCWludCB2YWx1ZTsKIAorCS8qIFdvcmsgYXJv dW5kIGlzc3VlIHdpdGggY2hpcCByZXBvcnRpbmcgd3JvbmcgUEhZIElEICovCisJaWYgKHJlZyA9 PSBNSUlfUEhZU0lEMikKKwkJcmV0dXJuIDB4YzkxMjsKKwogCXI4MTY4ZHBfMl9tZGlvX3N0YXJ0 KHRwKTsKIAogCXZhbHVlID0gcjgxNjlfbWRpb19yZWFkKHRwLCByZWcpOwotLSAKMi4yMC4xCgoK RnJvbSAwYjM2MWNmMDQyNjZkNzI5ZDg0OTZkNzcwYjhkNzlmYTAyMmVhYmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpEYXRlOiBX ZWQsIDIgT2N0IDIwMTkgMTY6NTM6MjEgKzAzMDAKU3ViamVjdDogW1BBVENIIDQwLzU1XSBuZXQv bWx4NWU6IEZpeCBldGh0b29sIHNlbGYgdGVzdDogbGluayBzcGVlZAoKWyBVcHN0cmVhbSBjb21t aXQgNTM0ZTczNjZmNDFiMGM2ODliMDFhZjQzNzVhZWZjZDE0NjJhZGVkZiBdCgpFdGh0b29sIHNl bGYgdGVzdCBjb250YWlucyBhIHRlc3QgZm9yIGxpbmsgc3BlZWQuIFRoaXMgdGVzdCByZWFkcyB0 aGUKUFRZUyByZWdpc3RlciBhbmQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IHNwZWVk IGlzIHZhbGlkIG9yIG5vdC4KQ2hhbmdlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlIHRo ZSBmdW5jdGlvbiBtbHg1ZV9wb3J0X2xpbmtzcGVlZCgpCnRoYXQgZG9lcyB0aGUgc2FtZSBjaGVj ayBhbmQgZmFpbHMgd2hlbiBzcGVlZCBpcyBpbnZhbGlkLiBUaGlzIGNvZGUKcmVkdW5kYW5jeSBs ZWFkIHRvIGEgYnVnIHdoZW4gbWx4NWVfcG9ydF9saW5rc3BlZWQoKSB3YXMgdXBkYXRlZCB3aXRo CmV4cGVuZGVkIHNwZWVkcyBhbmQgdGhlIHNlbGYgdGVzdCB3YXMgbm90LgoKRml4ZXM6IDJjODFi ZmQ1YWU1NiAoIm5ldC9tbHg1ZTogTW92ZSBwb3J0IHNwZWVkIGNvZGUgZnJvbSBlbl9ldGh0b29s LmMgdG8gZW4vcG9ydC5jIikKU2lnbmVkLW9mZi1ieTogQXlhIExldmluIDxheWFsQG1lbGxhbm94 LmNvbT4KUmV2aWV3ZWQtYnk6IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KU2ln bmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4u L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc2VsZnRlc3QuYyB8IDE1ICsrKy0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3NlbGZ0ZXN0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fc2VsZnRlc3QuYwppbmRleCA4NDBlYzk0NWNjYmEuLmJiZmY4ZDhkZWQ3NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3NlbGZ0ZXN0LmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3NlbGZ0ZXN0 LmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxsaW51eC91ZHAuaD4KICNpbmNsdWRlIDxu ZXQvdWRwLmg+CiAjaW5jbHVkZSAiZW4uaCIKKyNpbmNsdWRlICJlbi9wb3J0LmgiCiAKIGVudW0g ewogCU1MWDVFX1NUX0xJTktfU1RBVEUsCkBAIC04MCwyMiArODEsMTIgQEAgc3RhdGljIGludCBt bHg1ZV90ZXN0X2xpbmtfc3RhdGUoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIHN0YXRpYyBp bnQgbWx4NWVfdGVzdF9saW5rX3NwZWVkKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewotCXUz MiBvdXRbTUxYNV9TVF9TWl9EVyhwdHlzX3JlZyldOwotCXUzMiBldGhfcHJvdG9fb3BlcjsKLQlp bnQgaTsKKwl1MzIgc3BlZWQ7CiAKIAlpZiAoIW5ldGlmX2NhcnJpZXJfb2socHJpdi0+bmV0ZGV2 KSkKIAkJcmV0dXJuIDE7CiAKLQlpZiAobWx4NV9xdWVyeV9wb3J0X3B0eXMocHJpdi0+bWRldiwg b3V0LCBzaXplb2Yob3V0KSwgTUxYNV9QVFlTX0VOLCAxKSkKLQkJcmV0dXJuIDE7Ci0KLQlldGhf cHJvdG9fb3BlciA9IE1MWDVfR0VUKHB0eXNfcmVnLCBvdXQsIGV0aF9wcm90b19vcGVyKTsKLQlm b3IgKGkgPSAwOyBpIDwgTUxYNUVfTElOS19NT0RFU19OVU1CRVI7IGkrKykgewotCQlpZiAoZXRo X3Byb3RvX29wZXIgJiBNTFg1RV9QUk9UX01BU0soaSkpCi0JCQlyZXR1cm4gMDsKLQl9Ci0JcmV0 dXJuIDE7CisJcmV0dXJuIG1seDVlX3BvcnRfbGlua3NwZWVkKHByaXYtPm1kZXYsICZzcGVlZCk7 CiB9CiAKIHN0cnVjdCBtbHg1ZWhkciB7Ci0tIAoyLjIwLjEKCgpGcm9tIGMxMGIxZGY1NmY2NTlj ZWEwOTFkYTYyMGMxYTg0YTJmMmZjMGM4NzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE1heGltIE1pa2l0eWFuc2tpeSA8bWF4aW1taUBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTYg U2VwIDIwMTkgMTQ6NTQ6MjAgKzAzMDAKU3ViamVjdDogW1BBVENIIDQxLzU1XSBuZXQvbWx4NWU6 IEZpeCBoYW5kbGluZyBvZiBjb21wcmVzc2VkIENRRXMgaW4gY2FzZSBvZgogbG93IE5BUEkgYnVk Z2V0CgpbIFVwc3RyZWFtIGNvbW1pdCA5ZGY4NmJkYjY3NDZkN2ZjZmMyZmRhNzE1ZjdhN2MzZDBk ZGIyNjU0IF0KCldoZW4gQ1FFIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIGNvbXByZXNzZWQgQ1FF cyB1c2UgdGhlIGZvbGxvd2luZwpzdHJ1Y3R1cmU6IGEgdGl0bGUgaXMgZm9sbG93ZWQgYnkgb25l IG9yIG1hbnkgYmxvY2tzLCBlYWNoIGNvbnRhaW5pbmcgOAptaW5pIENRRXMgKGV4Y2VwdCB0aGUg bGFzdCwgd2hpY2ggbWF5IGNvbnRhaW4gZmV3ZXIgbWluaSBDUUVzKS4KCkR1ZSB0byBOQVBJIGJ1 ZGdldCByZXN0cmljdGlvbiwgYSBjb21wbGV0ZSBzdHJ1Y3R1cmUgaXMgbm90IGFsd2F5cwpwYXJz ZWQgaW4gb25lIE5BUEkgcnVuLCBhbmQgc29tZSBibG9ja3Mgd2l0aCBtaW5pIENRRXMgbWF5IGJl IGRlZmVycmVkCnRvIHRoZSBuZXh0IE5BUEkgcG9sbCBjYWxsIC0gd2UgaGF2ZSB0aGUgbWx4NWVf ZGVjb21wcmVzc19jcWVzX2NvbnQgY2FsbAppbiB0aGUgYmVnaW5uaW5nIG9mIG1seDVlX3BvbGxf cnhfY3EuIEhvd2V2ZXIsIGlmIHRoZSBidWRnZXQgaXMKZXh0cmVtZWx5IGxvdywgc29tZSBibG9j a3MgbWF5IGJlIGxlZnQgZXZlbiBhZnRlciB0aGF0LCBidXQgdGhlIGNvZGUKdGhhdCBmb2xsb3dz IHRoZSBtbHg1ZV9kZWNvbXByZXNzX2NxZXNfY29udCBjYWxsIGRvZXNuJ3QgY2hlY2sgaXQgYW5k CmFzc3VtZXMgdGhhdCBhIG5ldyBDUUUgYmVnaW5zLCB3aGljaCBtYXkgbm90IGJlIHRoZSBjYXNl LiBJbiBzdWNoIGNhc2VzLApyYW5kb20gbWVtb3J5IGNvcnJ1cHRpb25zIG9jY3VyLgoKQW4gZXh0 cmVtZWx5IGxvdyBOQVBJIGJ1ZGdldCBvZiA4IGlzIHVzZWQgd2hlbiBidXN5X3BvbGwgb3IgYnVz eV9yZWFkIGlzCmFjdGl2ZS4KClRoaXMgY29tbWl0IGFkZHMgYSBjaGVjayB0byBtYWtlIHN1cmUg dGhhdCB0aGUgcHJldmlvdXMgY29tcHJlc3NlZCBDUUUKaGFzIGJlZW4gY29tcGxldGVseSBwYXJz ZWQgYWZ0ZXIgbWx4NWVfZGVjb21wcmVzc19jcWVzX2NvbnQsIG90aGVyd2lzZQppdCBwcmV2ZW50 cyBhIG5ldyBDUUUgZnJvbSBiZWluZyBmZXRjaGVkIGluIHRoZSBtaWRkbGUgb2YgYSBjb21wcmVz c2VkCkNRRS4KClRoaXMgY29tbWl0IGZpeGVzIHJhbmRvbSBjcmFzaGVzIGluIF9fYnVpbGRfc2ti LCBfX3BhZ2VfcG9vbF9wdXRfcGFnZQphbmQgb3RoZXIgbm90LXJlbGF0ZWQtZGlyZWN0bHkgcGxh Y2VzLCB0aGF0IHVzZWQgdG8gaGFwcGVuIHdoZW4gYm90aCBDUUUKY29tcHJlc3Npb24gYW5kIGJ1 c3lfcG9sbC9idXN5X3JlYWQgd2VyZSBlbmFibGVkLgoKRml4ZXM6IDcyMTlhYjM0ZjE4NCAoIm5l dC9tbHg1ZTogQ1FFIGNvbXByZXNzaW9uIikKU2lnbmVkLW9mZi1ieTogTWF4aW0gTWlraXR5YW5z a2l5IDxtYXhpbW1pQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQg PHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX3J4LmMgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fcnguYwppbmRleCBhYzZlNTg2ZDQwM2QuLmZiMTM5ZjhiOWFjZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKQEAgLTEz NjcsOCArMTM2NywxMSBAQCBpbnQgbWx4NWVfcG9sbF9yeF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNx LCBpbnQgYnVkZ2V0KQogCWlmICh1bmxpa2VseSghdGVzdF9iaXQoTUxYNUVfUlFfU1RBVEVfRU5B QkxFRCwgJnJxLT5zdGF0ZSkpKQogCQlyZXR1cm4gMDsKIAotCWlmIChycS0+Y3FkLmxlZnQpCisJ aWYgKHJxLT5jcWQubGVmdCkgewogCQl3b3JrX2RvbmUgKz0gbWx4NWVfZGVjb21wcmVzc19jcWVz X2NvbnQocnEsIGNxd3EsIDAsIGJ1ZGdldCk7CisJCWlmIChycS0+Y3FkLmxlZnQgfHwgd29ya19k b25lID49IGJ1ZGdldCkKKwkJCWdvdG8gb3V0OworCX0KIAogCWNxZSA9IG1seDVfY3F3cV9nZXRf Y3FlKGNxd3EpOwogCWlmICghY3FlKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGYzNDk2NWUyZDU2OGNk ZTg0YTJmZTJkODBiNWViYjI5Y2EzMmQ2ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAxOSBPY3QgMjAx OSAwOToyNjozNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDIvNTVdIGlwdjQ6IGZpeCBJUFNLQl9G UkFHX1BNVFUgaGFuZGxpbmcgd2l0aCBmcmFnbWVudGF0aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBlN2E0MDljM2Y0NmNiMGRiYzdiZmQ0ZjZm OTQyMWQ1M2U5MjYxNGE1IF0KClRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgaXBoIGZpZWxkIGZyb20g dGhlIHN0YXRlIHN0cnVjdHVyZSwgd2hpY2ggaXMgbm90CnByb3Blcmx5IGluaXRpYWxpemVkLiBJ bnN0ZWFkLCBhZGQgYSBuZXcgZmllbGQgdG8gbWFrZSB0aGUgImRvIHdlIHdhbnQKdG8gc2V0IERG IiBiZSB0aGUgc3RhdGUgYml0IGFuZCBtb3ZlIHRoZSBjb2RlIHRvIHNldCB0aGUgREYgZmxhZyBm cm9tCmlwX2ZyYWdfbmV4dCgpLgoKSm9pbnQgd29yayB3aXRoIFBhYmxvIGFuZCBMaW51cy4KCkZp eGVzOiAxOWMzNDAxYTkxN2IgKCJuZXQ6IGlwdjQ6IHBsYWNlIGNvbnRyb2wgYnVmZmVyIGhhbmRs aW5nIGF3YXkgZnJvbSBmcmFnbWVudGF0aW9uIGl0ZXJhdG9ycyIpClJlcG9ydGVkLWJ5OiBQYXRy aWNrIFNjaMO2bnRoYWxlciA8cGF0cmlja0Bub3R2YWRzLm92aD4KU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYWJsbyBOZWly YSBBeXVzbyA8cGFibG9AbmV0ZmlsdGVyLm9yZz4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFs ZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXAuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogbmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZf Y29ubnRyYWNrX2JyaWRnZS5jIHwgIDIgKy0KIG5ldC9pcHY0L2lwX291dHB1dC5jICAgICAgICAg ICAgICAgICAgICAgICB8IDExICsrKysrKy0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0 aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcC5oIGIv aW5jbHVkZS9uZXQvaXAuaAppbmRleCAyOWQ4OWRlMzk4MjIuLmU2NjA5YWI2OTE2MSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9uZXQvaXAuaAorKysgYi9pbmNsdWRlL25ldC9pcC5oCkBAIC0xODQsNyAr MTg0LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqaXBfZnJhZ2xpc3RfbmV4dChz dHJ1Y3QgaXBfZnJhZ2xpc3RfaXRlciAqaXRlcikKIH0KIAogc3RydWN0IGlwX2ZyYWdfc3RhdGUg ewotCXN0cnVjdCBpcGhkcgkqaXBoOworCWJvb2wJCURGOwogCXVuc2lnbmVkIGludAlobGVuOwog CXVuc2lnbmVkIGludAlsbF9yczsKIAl1bnNpZ25lZCBpbnQJbXR1OwpAQCAtMTk1LDcgKzE5NSw3 IEBAIHN0cnVjdCBpcF9mcmFnX3N0YXRlIHsKIH07CiAKIHZvaWQgaXBfZnJhZ19pbml0KHN0cnVj dCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCBobGVuLCB1bnNpZ25lZCBpbnQgbGxfcnMsCi0J CSAgdW5zaWduZWQgaW50IG10dSwgc3RydWN0IGlwX2ZyYWdfc3RhdGUgKnN0YXRlKTsKKwkJICB1 bnNpZ25lZCBpbnQgbXR1LCBib29sIERGLCBzdHJ1Y3QgaXBfZnJhZ19zdGF0ZSAqc3RhdGUpOwog c3RydWN0IHNrX2J1ZmYgKmlwX2ZyYWdfbmV4dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAg ICBzdHJ1Y3QgaXBfZnJhZ19zdGF0ZSAqc3RhdGUpOwogCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdl L25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9u Zl9jb25udHJhY2tfYnJpZGdlLmMKaW5kZXggNGY1NDQ0ZDJhNTI2Li5iMzg2NjUzNmEwZGEgMTAw NjQ0Ci0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19icmlkZ2UuYworKysg Yi9uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmMKQEAgLTk0LDcgKzk0 LDcgQEAgc3RhdGljIGludCBuZl9icl9pcF9mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBzb2NrICpzaywKIAkgKiBUaGlzIG1heSBhbHNvIGJlIGEgY2xvbmUgc2tidWZmLCB3ZSBjb3Vs ZCBwcmVzZXJ2ZSB0aGUgZ2VvbWV0cnkgZm9yCiAJICogdGhlIGNvcGllcyBidXQgcHJvYmFibHkg bm90IHdvcnRoIHRoZSBlZmZvcnQuCiAJICovCi0JaXBfZnJhZ19pbml0KHNrYiwgaGxlbiwgbGxf cnMsIGZyYWdfbWF4X3NpemUsICZzdGF0ZSk7CisJaXBfZnJhZ19pbml0KHNrYiwgaGxlbiwgbGxf cnMsIGZyYWdfbWF4X3NpemUsIGZhbHNlLCAmc3RhdGUpOwogCiAJd2hpbGUgKHN0YXRlLmxlZnQg PiAwKSB7CiAJCXN0cnVjdCBza19idWZmICpza2IyOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBf b3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwppbmRleCBkYTUyMTc5MGNkNjMuLmJlNjRj NGEyMTBmYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQv aXBfb3V0cHV0LmMKQEAgLTY0NSwxMSArNjQ1LDEyIEBAIHZvaWQgaXBfZnJhZ2xpc3RfcHJlcGFy ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXBfZnJhZ2xpc3RfaXRlciAqaXRlcikKIEVY UE9SVF9TWU1CT0woaXBfZnJhZ2xpc3RfcHJlcGFyZSk7CiAKIHZvaWQgaXBfZnJhZ19pbml0KHN0 cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCBobGVuLAotCQkgIHVuc2lnbmVkIGludCBs bF9ycywgdW5zaWduZWQgaW50IG10dSwKKwkJICB1bnNpZ25lZCBpbnQgbGxfcnMsIHVuc2lnbmVk IGludCBtdHUsIGJvb2wgREYsCiAJCSAgc3RydWN0IGlwX2ZyYWdfc3RhdGUgKnN0YXRlKQogewog CXN0cnVjdCBpcGhkciAqaXBoID0gaXBfaGRyKHNrYik7CiAKKwlzdGF0ZS0+REYgPSBERjsKIAlz dGF0ZS0+aGxlbiA9IGhsZW47CiAJc3RhdGUtPmxsX3JzID0gbGxfcnM7CiAJc3RhdGUtPm10dSA9 IG10dTsKQEAgLTY2OCw5ICs2NjksNiBAQCBzdGF0aWMgdm9pZCBpcF9mcmFnX2lwY2Ioc3RydWN0 IHNrX2J1ZmYgKmZyb20sIHN0cnVjdCBza19idWZmICp0bywKIAkvKiBDb3B5IHRoZSBmbGFncyB0 byBlYWNoIGZyYWdtZW50LiAqLwogCUlQQ0IodG8pLT5mbGFncyA9IElQQ0IoZnJvbSktPmZsYWdz OwogCi0JaWYgKElQQ0IoZnJvbSktPmZsYWdzICYgSVBTS0JfRlJBR19QTVRVKQotCQlzdGF0ZS0+ aXBoLT5mcmFnX29mZiB8PSBodG9ucyhJUF9ERik7Ci0KIAkvKiBBTks6IGRpcnR5LCBidXQgZWZm ZWN0aXZlIHRyaWNrLiBVcGdyYWRlIG9wdGlvbnMgb25seSBpZgogCSAqIHRoZSBzZWdtZW50IHRv IGJlIGZyYWdtZW50ZWQgd2FzIFRIRSBGSVJTVCAob3RoZXJ3aXNlLAogCSAqIG9wdGlvbnMgYXJl IGFscmVhZHkgZml4ZWQpIGFuZCBtYWtlIGl0IE9OQ0UKQEAgLTczOCw2ICs3MzYsOCBAQCBzdHJ1 Y3Qgc2tfYnVmZiAqaXBfZnJhZ19uZXh0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcF9m cmFnX3N0YXRlICpzdGF0ZSkKIAkgKi8KIAlpcGggPSBpcF9oZHIoc2tiMik7CiAJaXBoLT5mcmFn X29mZiA9IGh0b25zKChzdGF0ZS0+b2Zmc2V0ID4+IDMpKTsKKwlpZiAoc3RhdGUtPkRGKQorCQlp cGgtPmZyYWdfb2ZmIHw9IGh0b25zKElQX0RGKTsKIAogCS8qCiAJICoJQWRkZWQgQUMgOiBJZiB3 ZSBhcmUgZnJhZ21lbnRpbmcgYSBmcmFnbWVudCB0aGF0J3Mgbm90IHRoZQpAQCAtODgxLDcgKzg4 MSw4IEBAIGludCBpcF9kb19mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkgKglGcmFnbWVudCB0aGUgZGF0YWdyYW0uCiAJICov CiAKLQlpcF9mcmFnX2luaXQoc2tiLCBobGVuLCBsbF9ycywgbXR1LCAmc3RhdGUpOworCWlwX2Zy YWdfaW5pdChza2IsIGhsZW4sIGxsX3JzLCBtdHUsIElQQ0Ioc2tiKS0+ZmxhZ3MgJiBJUFNLQl9G UkFHX1BNVFUsCisJCSAgICAgJnN0YXRlKTsKIAogCS8qCiAJICoJS2VlcCBjb3B5aW5nIGRhdGEg dW50aWwgd2UgcnVuIG91dC4KLS0gCjIuMjAuMQoKCkZyb20gNWYxOGY4ZjIwZWI3NjlmYmU2NTc4 ODU2ZWI3YjA1NDk4MTQ1M2Q3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRG91ZyBC ZXJnZXIgPG9wZW5kbWJAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE2IE9jdCAyMDE5IDE2OjA2OjI5 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0My81NV0gbmV0OiBiY21nZW5ldDogZG9uJ3Qgc2V0IHBo eWRldi0+bGluayBmcm9tIE1BQwoKWyBVcHN0cmVhbSBjb21taXQgN2RlNDg0MDJmYWEzMjI5OGMz NTUxZWEzMmM3NmNjYjRmOWQzMDI1ZCBdCgpXaGVuIGNvbW1pdCAyOGIyZTBkMmNkMTMgKCJuZXQ6 IHBoeTogcmVtb3ZlIHBhcmFtZXRlciBuZXdfbGluayBmcm9tCnBoeV9tYWNfaW50ZXJydXB0KCki KSByZW1vdmVkIHRoZSBuZXdfbGluayBwYXJhbWV0ZXIgaXQgc2V0IHRoZQpwaHlkZXYtPmxpbmsg c3RhdGUgZnJvbSB0aGUgTUFDIGJlZm9yZSBpbnZva2luZyBwaHlfbWFjX2ludGVycnVwdCgpLgoK SG93ZXZlciwgb25jZSBjb21taXQgODhkNjI3MmFjYWFhICgibmV0OiBwaHk6IGF2b2lkIHVubmVl ZGVkIE1ESU8KcmVhZHMgaW4gZ2VucGh5X3JlYWRfc3RhdHVzIikgd2FzIGFkZGVkIHRoaXMgaW5p dGlhbGl6YXRpb24gcHJldmVudHMKdGhlIHByb3BlciBkZXRlcm1pbmF0aW9uIG9mIHRoZSBjb25u ZWN0aW9uIHBhcmFtZXRlcnMgYnkgdGhlIGZ1bmN0aW9uCmdlbnBoeV9yZWFkX3N0YXR1cygpLgoK VGhpcyBjb21taXQgcmVtb3ZlcyB0aGF0IGluaXRpYWxpemF0aW9uIHRvIHJlc3RvcmUgdGhlIHBy b3BlcgpmdW5jdGlvbmFsaXR5LgoKRml4ZXM6IDg4ZDYyNzJhY2FhYSAoIm5ldDogcGh5OiBhdm9p ZCB1bm5lZWRlZCBNRElPIHJlYWRzIGluIGdlbnBoeV9yZWFkX3N0YXR1cyIpClNpZ25lZC1vZmYt Ynk6IERvdWcgQmVyZ2VyIDxvcGVuZG1iQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEZsb3JpYW4gRmFp bmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vZ2VuZXQvYmNtZ2VuZXQuYyB8IDQgKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9n ZW5ldC9iY21nZW5ldC5jCmluZGV4IGIyMjE5Njg4MGQ2ZC4uZjczNTlkMjI3MWRmIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMKQEAgLTI2MTcs MTAgKzI2MTcsOCBAQCBzdGF0aWMgdm9pZCBiY21nZW5ldF9pcnFfdGFzayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCiAJc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsKIAogCS8qIExpbmsg VVAvRE9XTiBldmVudCAqLwotCWlmIChzdGF0dXMgJiBVTUFDX0lSUV9MSU5LX0VWRU5UKSB7Ci0J CXByaXYtPmRldi0+cGh5ZGV2LT5saW5rID0gISEoc3RhdHVzICYgVU1BQ19JUlFfTElOS19VUCk7 CisJaWYgKHN0YXR1cyAmIFVNQUNfSVJRX0xJTktfRVZFTlQpCiAJCXBoeV9tYWNfaW50ZXJydXB0 KHByaXYtPmRldi0+cGh5ZGV2KTsKLQl9CiB9CiAKIC8qIGJjbWdlbmV0X2lzcjE6IGhhbmRsZSBS eCBhbmQgVHggcHJpb3JpdHkgcXVldWVzICovCi0tIAoyLjIwLjEKCgpGcm9tIDRmODU2OTYwMTY1 MzcwYTdmNjliODg1Y2ZkYWUxNjlhMTVhNTA0MmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUg T2N0IDIwMTkgMTU6MDU6MTggLTA3MDAKU3ViamVjdDogW1BBVENIIDQ0LzU1XSBuZXQ6IGRzYTog YjUzOiBEbyBub3QgY2xlYXIgZXhpc3RpbmcgbWlycm9yZWQgcG9ydCBtYXNrCgpbIFVwc3RyZWFt IGNvbW1pdCBjNzYzYWM0MzZiNjY4ZDc0MTdmMDk3OTQzMGVjMDMxMmVkZTQwOTNkIF0KCkNsZWFy aW5nIHRoZSBleGlzdGluZyBiaXRtYXNrIG9mIG1pcnJvcmVkIHBvcnRzIGVzc2VudGlhbGx5IHBy ZXZlbnRzIHVzCmZyb20gY2FwdHVyaW5nIG1vcmUgdGhhbiBvbmUgcG9ydCBhdCBhbnkgZ2l2ZW4g dGltZS4gVGhpcyBpcyBjbGVhcmx5Cndyb25nLCBkbyBub3QgY2xlYXIgdGhlIGJpdG1hc2sgcHJp b3IgdG8gc2V0dGluZyB1cCB0aGUgbmV3IHBvcnQuCgpSZXBvcnRlZC1ieTogSHViZXJ0IEZldXJz dGVpbiA8aC5mZXVyc3RlaW5AZ21haWwuY29tPgpGaXhlczogZWQzYWY1ZmQwOGViICgibmV0OiBk c2E6IGI1MzogQWRkIHN1cHBvcnQgZm9yIHBvcnQgbWlycm9yaW5nIikKU2lnbmVkLW9mZi1ieTog RmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBWaXZp ZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVsb3RAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL2I1 My9iNTNfY29tbW9uLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfY29tbW9uLmMgYi9kcml2ZXJzL25ldC9k c2EvYjUzL2I1M19jb21tb24uYwppbmRleCA5MDdhZjYyODQ2YmEuLjA3MjFjMjJlMmJjOCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfY29tbW9uLmMKKysrIGIvZHJpdmVycy9u ZXQvZHNhL2I1My9iNTNfY29tbW9uLmMKQEAgLTE4MDgsNyArMTgwOCw2IEBAIGludCBiNTNfbWly cm9yX2FkZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQlsb2MgPSBCNTNfRUdf TUlSX0NUTDsKIAogCWI1M19yZWFkMTYoZGV2LCBCNTNfTUdNVF9QQUdFLCBsb2MsICZyZWcpOwot CXJlZyAmPSB+TUlSUk9SX01BU0s7CiAJcmVnIHw9IEJJVChwb3J0KTsKIAliNTNfd3JpdGUxNihk ZXYsIEI1M19NR01UX1BBR0UsIGxvYywgcmVnKTsKIAotLSAKMi4yMC4xCgoKRnJvbSAzYWJlY2Mx M2IxZDY5YjU0MjkxZTljZTBmNWY0NjQ1N2U2NjJmODUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBWaXZpZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVsb3RAZ21haWwuY29tPgpEYXRlOiBG cmksIDE4IE9jdCAyMDE5IDE3OjAyOjQ2IC0wNDAwClN1YmplY3Q6IFtQQVRDSCA0NS81NV0gbmV0 OiBkc2E6IGZpeCBzd2l0Y2ggdHJlZSBsaXN0CgpbIFVwc3RyZWFtIGNvbW1pdCA1MGM3ZDJiYTlk ZTIwZjYwYTJkNTI3YWQ2OTI4MjA5ZWY2N2U0Y2RkIF0KCklmIHRoZXJlIGFyZSBtdWx0aXBsZSBz d2l0Y2ggdHJlZXMgb24gdGhlIGRldmljZSwgb25seSB0aGUgbGFzdCBvbmUKd2lsbCBiZSBsaXN0 ZWQsIGJlY2F1c2UgdGhlIGFyZ3VtZW50cyBvZiBsaXN0X2FkZF90YWlsIGFyZSBzd2FwcGVkLgoK Rml4ZXM6IDgzYzBhZmFlYzdiNyAoIm5ldDogZHNhOiBBZGQgbmV3IGJpbmRpbmcgaW1wbGVtZW50 YXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBWaXZpZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVsb3RAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvZHNhL2RzYTIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9kc2EvZHNhMi5jIGIvbmV0L2RzYS9k c2EyLmMKaW5kZXggOTZmNzg3Y2Y5YjZlLi4xMzBmMWEzNDNhYmIgMTAwNjQ0Ci0tLSBhL25ldC9k c2EvZHNhMi5jCisrKyBiL25ldC9kc2EvZHNhMi5jCkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBz dHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc2FfdHJlZV9hbGxvYyhpbnQgaW5kZXgpCiAJZHN0LT5p bmRleCA9IGluZGV4OwogCiAJSU5JVF9MSVNUX0hFQUQoJmRzdC0+bGlzdCk7Ci0JbGlzdF9hZGRf dGFpbCgmZHNhX3RyZWVfbGlzdCwgJmRzdC0+bGlzdCk7CisJbGlzdF9hZGRfdGFpbCgmZHN0LT5s aXN0LCAmZHNhX3RyZWVfbGlzdCk7CiAKIAlrcmVmX2luaXQoJmRzdC0+cmVmY291bnQpOwogCi0t IAoyLjIwLjEKCgpGcm9tIGMxODU5YTg1NzRmM2NiZjM3ZWQ1NDZmNjQ2NDhkZDMwNmEyMmFmMmMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogV2VkLCAxNiBPY3QgMjAxOSAxODowMDo1NiAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggNDYvNTVdIG5ldDogZW5zdXJlIGNvcnJlY3Qgc2tiLT50c3RhbXAgaW4gdmFyaW91cyBm cmFnbWVudGVycwoKWyBVcHN0cmVhbSBjb21taXQgOTY2OWZmZmMxNDE1YmIwYzMwZTVkMmVjOThh OGUxYzNhNDE4Y2I5YyBdCgpUaG9tYXMgZm91bmQgdGhhdCBzb21lIGZvcndhcmRlZCBwYWNrZXRz IHdvdWxkIGJlIHN0dWNrCmluIEZRIHBhY2tldCBzY2hlZHVsZXIgYmVjYXVzZSB0aGVpciBza2It PnRzdGFtcCBjb250YWluZWQKdGltZXN0YW1wcyBmYXIgaW4gdGhlIGZ1dHVyZS4KCldlIHRob3Vn aHQgd2UgYWRkcmVzc2VkIHRoaXMgcG9pbnQgaW4gY29tbWl0IDgyMDNlMmQ4NDRkMwooIm5ldDog Y2xlYXIgc2tiLT50c3RhbXAgaW4gZm9yd2FyZGluZyBwYXRocyIpIGJ1dCB0aGVyZQppcyBzdGls bCBhbiBpc3N1ZSB3aGVuL2lmIGEgcGFja2V0IG5lZWRzIHRvIGJlIGZyYWdtZW50ZWQuCgpJbiBv cmRlciB0byBtZWV0IEVEVCByZXF1aXJlbWVudHMsIHdlIGhhdmUgdG8gbWFrZSBzdXJlIGFsbApm cmFnbWVudHMgZ2V0IHRoZSBvcmlnaW5hbCBza2ItPnRzdGFtcC4KCk5vdGUgdGhhdCB0aGlzIG9y aWdpbmFsIHNrYi0+dHN0YW1wIHNob3VsZCBiZSB6ZXJvIGluCmZvcndhcmRpbmcgcGF0aCwgYnV0 IG1pZ2h0IGhhdmUgYSBub24gemVybyB2YWx1ZSBpbgpvdXRwdXQgcGF0aCBpZiB1c2VyIGRlY2lk ZWQgc28uCgpGaXhlczogZmI0MjBkNWQ5MWMxICgidGNwL2ZxOiBtb3ZlIGJhY2sgdG8gQ0xPQ0tf TU9OT1RPTklDIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpSZXBvcnRlZC1ieTogVGhvbWFzIEJhcnRzY2hpZXMgPFRob21hcy5CYXJ0c2NoaWVzQGN2 ay5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9icmlkZ2UvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19icmlkZ2UuYyB8IDMgKysr CiBuZXQvaXB2NC9pcF9vdXRwdXQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAzICsrKwogbmV0 L2lwdjYvaXA2X291dHB1dC5jICAgICAgICAgICAgICAgICAgICAgIHwgMyArKysKIG5ldC9pcHY2 L25ldGZpbHRlci5jICAgICAgICAgICAgICAgICAgICAgICB8IDMgKysrCiA0IGZpbGVzIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9u Zl9jb25udHJhY2tfYnJpZGdlLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tf YnJpZGdlLmMKaW5kZXggYjM4NjY1MzZhMGRhLi5hNDhjYjFiYWVhYzYgMTAwNjQ0Ci0tLSBhL25l dC9icmlkZ2UvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19icmlkZ2UuYworKysgYi9uZXQvYnJpZGdl L25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmMKQEAgLTM0LDYgKzM0LDcgQEAgc3RhdGlj IGludCBuZl9icl9pcF9mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywK IHsKIAlpbnQgZnJhZ19tYXhfc2l6ZSA9IEJSX0lOUFVUX1NLQl9DQihza2IpLT5mcmFnX21heF9z aXplOwogCXVuc2lnbmVkIGludCBobGVuLCBsbF9ycywgbXR1OworCWt0aW1lX3QgdHN0YW1wID0g c2tiLT50c3RhbXA7CiAJc3RydWN0IGlwX2ZyYWdfc3RhdGUgc3RhdGU7CiAJc3RydWN0IGlwaGRy ICppcGg7CiAJaW50IGVycjsKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIGludCBuZl9icl9pcF9m cmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIAkJCWlmIChpdGVyLmZy YWcpCiAJCQkJaXBfZnJhZ2xpc3RfcHJlcGFyZShza2IsICZpdGVyKTsKIAorCQkJc2tiLT50c3Rh bXAgPSB0c3RhbXA7CiAJCQllcnIgPSBvdXRwdXQobmV0LCBzaywgZGF0YSwgc2tiKTsKIAkJCWlm IChlcnIgfHwgIWl0ZXIuZnJhZykKIAkJCQlicmVhazsKQEAgLTEwNSw2ICsxMDcsNyBAQCBzdGF0 aWMgaW50IG5mX2JyX2lwX2ZyYWdtZW50KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNr LAogCQkJZ290byBibGFja2hvbGU7CiAJCX0KIAorCQlza2IyLT50c3RhbXAgPSB0c3RhbXA7CiAJ CWVyciA9IG91dHB1dChuZXQsIHNrLCBkYXRhLCBza2IyKTsKIAkJaWYgKGVycikKIAkJCWdvdG8g YmxhY2tob2xlOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMgYi9uZXQvaXB2NC9p cF9vdXRwdXQuYwppbmRleCBiZTY0YzRhMjEwZmEuLmU3ODBjZWFiMTZlMSAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvaXBfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKQEAgLTc3MSw2 ICs3NzEsNyBAQCBpbnQgaXBfZG9fZnJhZ21lbnQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IHJ0YWJsZSAqcnQgPSBza2JfcnRh YmxlKHNrYik7CiAJdW5zaWduZWQgaW50IG10dSwgaGxlbiwgbGxfcnM7CiAJc3RydWN0IGlwX2Zy YWdsaXN0X2l0ZXIgaXRlcjsKKwlrdGltZV90IHRzdGFtcCA9IHNrYi0+dHN0YW1wOwogCXN0cnVj dCBpcF9mcmFnX3N0YXRlIHN0YXRlOwogCWludCBlcnIgPSAwOwogCkBAIC04NDYsNiArODQ3LDcg QEAgaW50IGlwX2RvX2ZyYWdtZW50KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCWlwX2ZyYWdsaXN0X3ByZXBhcmUoc2tiLCAmaXRlcik7 CiAJCQl9CiAKKwkJCXNrYi0+dHN0YW1wID0gdHN0YW1wOwogCQkJZXJyID0gb3V0cHV0KG5ldCwg c2ssIHNrYik7CiAKIAkJCWlmICghZXJyKQpAQCAtOTAxLDYgKzkwMyw3IEBAIGludCBpcF9kb19m cmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJLyoKIAkJICoJUHV0IHRoaXMgZnJhZ21lbnQgaW50byB0aGUgc2VuZGluZyBxdWV1 ZS4KIAkJICovCisJCXNrYjItPnRzdGFtcCA9IHRzdGFtcDsKIAkJZXJyID0gb3V0cHV0KG5ldCwg c2ssIHNrYjIpOwogCQlpZiAoZXJyKQogCQkJZ290byBmYWlsOwpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvaXA2X291dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDhlNDlmZDYyZWVh OS4uZTcxNTY4ZjczMGY5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIv bmV0L2lwdjYvaXA2X291dHB1dC5jCkBAIC03NjgsNiArNzY4LDcgQEAgaW50IGlwNl9mcmFnbWVu dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwK IAkJCQlpbmV0Nl9zayhza2ItPnNrKSA6IE5VTEw7CiAJc3RydWN0IGlwNl9mcmFnX3N0YXRlIHN0 YXRlOwogCXVuc2lnbmVkIGludCBtdHUsIGhsZW4sIG5leHRoZHJfb2Zmc2V0OworCWt0aW1lX3Qg dHN0YW1wID0gc2tiLT50c3RhbXA7CiAJaW50IGhyb29tLCBlcnIgPSAwOwogCV9fYmUzMiBmcmFn X2lkOwogCXU4ICpwcmV2aGRyLCBuZXh0aGRyID0gMDsKQEAgLTg1NSw2ICs4NTYsNyBAQCBpbnQg aXA2X2ZyYWdtZW50KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCQkJaWYgKGl0ZXIuZnJhZykKIAkJCQlpcDZfZnJhZ2xpc3RfcHJlcGFyZShz a2IsICZpdGVyKTsKIAorCQkJc2tiLT50c3RhbXAgPSB0c3RhbXA7CiAJCQllcnIgPSBvdXRwdXQo bmV0LCBzaywgc2tiKTsKIAkJCWlmICghZXJyKQogCQkJCUlQNl9JTkNfU1RBVFMobmV0LCBpcDZf ZHN0X2lkZXYoJnJ0LT5kc3QpLApAQCAtOTEzLDYgKzkxNSw3IEBAIGludCBpcDZfZnJhZ21lbnQo c3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJ CS8qCiAJCSAqCVB1dCB0aGlzIGZyYWdtZW50IGludG8gdGhlIHNlbmRpbmcgcXVldWUuCiAJCSAq LworCQlmcmFnLT50c3RhbXAgPSB0c3RhbXA7CiAJCWVyciA9IG91dHB1dChuZXQsIHNrLCBmcmFn KTsKIAkJaWYgKGVycikKIAkJCWdvdG8gZmFpbDsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZp bHRlci5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyLmMKaW5kZXggNjE4MTllZDg1OGIxLi43ZTc1ZDAx NDY0ZmIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci5jCisrKyBiL25ldC9pcHY2L25l dGZpbHRlci5jCkBAIC0xMTksNiArMTE5LDcgQEAgaW50IGJyX2lwNl9mcmFnbWVudChzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgIHN0 cnVjdCBza19idWZmICopKQogewogCWludCBmcmFnX21heF9zaXplID0gQlJfSU5QVVRfU0tCX0NC KHNrYiktPmZyYWdfbWF4X3NpemU7CisJa3RpbWVfdCB0c3RhbXAgPSBza2ItPnRzdGFtcDsKIAlz dHJ1Y3QgaXA2X2ZyYWdfc3RhdGUgc3RhdGU7CiAJdTggKnByZXZoZHIsIG5leHRoZHIgPSAwOwog CXVuc2lnbmVkIGludCBtdHUsIGhsZW47CkBAIC0xODMsNiArMTg0LDcgQEAgaW50IGJyX2lwNl9m cmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJCWlmIChpdGVyLmZyYWcpCiAJCQkJaXA2X2ZyYWdsaXN0X3ByZXBhcmUoc2tiLCAm aXRlcik7CiAKKwkJCXNrYi0+dHN0YW1wID0gdHN0YW1wOwogCQkJZXJyID0gb3V0cHV0KG5ldCwg c2ssIGRhdGEsIHNrYik7CiAJCQlpZiAoZXJyIHx8ICFpdGVyLmZyYWcpCiAJCQkJYnJlYWs7CkBA IC0yMTUsNiArMjE3LDcgQEAgaW50IGJyX2lwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCWdvdG8gYmxhY2tob2xlOwog CQl9CiAKKwkJc2tiMi0+dHN0YW1wID0gdHN0YW1wOwogCQllcnIgPSBvdXRwdXQobmV0LCBzaywg ZGF0YSwgc2tiMik7CiAJCWlmIChlcnIpCiAJCQlnb3RvIGJsYWNraG9sZTsKLS0gCjIuMjAuMQoK CkZyb20gMGU0NmIxNGNhZTkyMDFlNmQ4MTYxYzlhNWIyZDU1MzQ3YTU3NDkzNyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogWW9uZ2xvbmcgTGl1IDxsaXV5b25nbG9uZ0BodWF3ZWkuY29t PgpEYXRlOiBGcmksIDE4IE9jdCAyMDE5IDExOjQyOjU5ICswODAwClN1YmplY3Q6IFtQQVRDSCA0 Ny81NV0gbmV0OiBobnMzOiBmaXggbWlzLWNvdW50aW5nIElSUSB2ZWN0b3IgbnVtYmVycyBpc3N1 ZQoKWyBVcHN0cmVhbSBjb21taXQgNTgwYTA1ZjlkNGFkYTNiZmI2ODkxNDBkMGVmZWMxZWZkYjhh NDhkYSBdCgpDdXJyZW50bHksIHRoZSBudW1fbXNpX2xlZnQgbWVhbnMgdGhlIHZlY3RvciBudW1i ZXJzIG9mIE5JQywKYnV0IGlmIHRoZSBQRiBzdXBwb3J0ZWQgUm9DRSwgaXQgY29udGFpbnMgdGhl IHZlY3RvciBudW1iZXJzCm9mIE5JQyBhbmQgUm9DRShOb3QgZXhwZWN0ZWQpLgoKVGhpcyBtYXkg Y2F1c2UgaW50ZXJydXB0cyBsb3N0IGluIHNvbWUgY2FzZSwgYmVjYXVzZSBvZiB0aGUKTklDIG1v ZHVsZSB1c2VkIHRoZSB2ZWN0b3IgcmVzb3VyY2VzIHdoaWNoIGJlbG9uZ3MgdG8gUm9DRS4KClRo aXMgcGF0Y2ggYWRkcyBhIG5ldyB2YXJpYWJsZSBudW1fbmljX21zaSB0byBzdG9yZSB0aGUgdmVj dG9yCm51bWJlcnMgb2YgTklDLCBhbmQgYWRqdXN0IHRoZSBkZWZhdWx0IFRRUCBudW1iZXJzIGFu ZCByc3Nfc2l6ZQphY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mIG51bV9uaWNfbXNpLgoKRml4ZXM6 IDQ2YTNkZjlmOTcxOCAoIm5ldDogaG5zMzogQWRkIEhOUzMgQWNjZWxlcmF0aW9uIEVuZ2luZSAm IENvbXBhdGliaWxpdHkgTGF5ZXIgU3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IFlvbmdsb25nIExp dSA8bGl1eW9uZ2xvbmdAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSHVhemhvbmcgVGFuIDx0 YW5odWF6aG9uZ0BodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hu czMvaG5hZTMuaCAgIHwgIDIgKysKIC4uLi9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFp bi5jICAgICAgICB8IDIxICsrKysrKysrKysrKystCiAuLi4vaGlzaWxpY29uL2huczMvaG5zM3Bm L2hjbGdlX21haW4uaCAgICAgICAgfCAgMSArCiAuLi4vZXRoZXJuZXQvaGlzaWxpY29uL2huczMv aG5zM3BmL2hjbGdlX3RtLmMgfCAxMSArKysrKystLQogLi4uL2hpc2lsaWNvbi9obnMzL2huczN2 Zi9oY2xnZXZmX21haW4uYyAgICAgIHwgMjggKysrKysrKysrKysrKysrKystLQogLi4uL2hpc2ls aWNvbi9obnMzL2huczN2Zi9oY2xnZXZmX21haW4uaCAgICAgIHwgIDEgKwogNiBmaWxlcyBjaGFu Z2VkLCA1OCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmggYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oCmluZGV4IDQ4YzdiNzBmYzJjNC4uNThhN2Q2MmIz OGRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFl My5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgKQEAg LTMyLDYgKzMyLDggQEAKIAogI2RlZmluZSBITkFFM19NT0RfVkVSU0lPTiAiMS4wIgogCisjZGVm aW5lIEhOQUUzX01JTl9WRUNUT1JfTlVNCTIgLyogZmlyc3Qgb25lIGZvciBtaXNjLCBhbm90aGVy IGZvciBJTyAqLworCiAvKiBEZXZpY2UgSURzICovCiAjZGVmaW5lIEhOQUUzX0RFVl9JRF9HRQkJ CQkweEEyMjAKICNkZWZpbmUgSE5BRTNfREVWX0lEXzI1R0UJCQkweEEyMjEKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tYWluLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5j CmluZGV4IDNmZGU1NDcxZTFjMC4uNjViNTNlYzFkOWNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tYWluLmMKQEAgLTgw MCw2ICs4MDAsOSBAQCBzdGF0aWMgaW50IGhjbGdlX3F1ZXJ5X3BmX3Jlc291cmNlKHN0cnVjdCBo Y2xnZV9kZXYgKmhkZXYpCiAJCWhuYWUzX2dldF9maWVsZChfX2xlMTZfdG9fY3B1KHJlcS0+cGZf aW50cl92ZWN0b3JfbnVtYmVyKSwKIAkJCQlIQ0xHRV9QRl9WRUNfTlVNX00sIEhDTEdFX1BGX1ZF Q19OVU1fUyk7CiAKKwkJLyogbmljJ3MgbXNpeCBudW1iZXJzIGlzIGFsd2F5cyBlcXVhbHMgdG8g dGhlIHJvY2Uncy4gKi8KKwkJaGRldi0+bnVtX25pY19tc2kgPSBoZGV2LT5udW1fcm9jZV9tc2k7 CisKIAkJLyogUEYgc2hvdWxkIGhhdmUgTklDIHZlY3RvcnMgYW5kIFJvY2UgdmVjdG9ycywKIAkJ ICogTklDIHZlY3RvcnMgYXJlIHF1ZXVlZCBiZWZvcmUgUm9jZSB2ZWN0b3JzLgogCQkgKi8KQEAg LTgwOSw2ICs4MTIsMTUgQEAgc3RhdGljIGludCBoY2xnZV9xdWVyeV9wZl9yZXNvdXJjZShzdHJ1 Y3QgaGNsZ2VfZGV2ICpoZGV2KQogCQloZGV2LT5udW1fbXNpID0KIAkJaG5hZTNfZ2V0X2ZpZWxk KF9fbGUxNl90b19jcHUocmVxLT5wZl9pbnRyX3ZlY3Rvcl9udW1iZXIpLAogCQkJCUhDTEdFX1BG X1ZFQ19OVU1fTSwgSENMR0VfUEZfVkVDX05VTV9TKTsKKworCQloZGV2LT5udW1fbmljX21zaSA9 IGhkZXYtPm51bV9tc2k7CisJfQorCisJaWYgKGhkZXYtPm51bV9uaWNfbXNpIDwgSE5BRTNfTUlO X1ZFQ1RPUl9OVU0pIHsKKwkJZGV2X2VycigmaGRldi0+cGRldi0+ZGV2LAorCQkJIkp1c3QgJXUg bXNpIHJlc291cmNlcywgbm90IGVub3VnaCBmb3IgcGYobWluOjIpLlxuIiwKKwkJCWhkZXYtPm51 bV9uaWNfbXNpKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0xMzk0 LDYgKzE0MDYsMTAgQEAgc3RhdGljIGludCAgaGNsZ2VfYXNzaWduX3RxcChzdHJ1Y3QgaGNsZ2Vf dnBvcnQgKnZwb3J0LCB1MTYgbnVtX3RxcHMpCiAJa2luZm8tPnJzc19zaXplID0gbWluX3QodTE2 LCBoZGV2LT5yc3Nfc2l6ZV9tYXgsCiAJCQkJdnBvcnQtPmFsbG9jX3RxcHMgLyBoZGV2LT50bV9p bmZvLm51bV90Yyk7CiAKKwkvKiBlbnN1cmUgb25lIHRvIG9uZSBtYXBwaW5nIGJldHdlZW4gaXJx IGFuZCBxdWV1ZSBhdCBkZWZhdWx0ICovCisJa2luZm8tPnJzc19zaXplID0gbWluX3QodTE2LCBr aW5mby0+cnNzX3NpemUsCisJCQkJKGhkZXYtPm51bV9uaWNfbXNpIC0gMSkgLyBoZGV2LT50bV9p bmZvLm51bV90Yyk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjE3Miw3ICsyMTg4LDggQEAgc3Rh dGljIGludCBoY2xnZV9pbml0X21zaShzdHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2KQogCWludCB2ZWN0 b3JzOwogCWludCBpOwogCi0JdmVjdG9ycyA9IHBjaV9hbGxvY19pcnFfdmVjdG9ycyhwZGV2LCAx LCBoZGV2LT5udW1fbXNpLAorCXZlY3RvcnMgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocGRldiwg SE5BRTNfTUlOX1ZFQ1RPUl9OVU0sCisJCQkJCWhkZXYtPm51bV9tc2ksCiAJCQkJCVBDSV9JUlFf TVNJIHwgUENJX0lSUV9NU0lYKTsKIAlpZiAodmVjdG9ycyA8IDApIHsKIAkJZGV2X2VycigmcGRl di0+ZGV2LApAQCAtMjE4Nyw2ICsyMjA0LDcgQEAgc3RhdGljIGludCBoY2xnZV9pbml0X21zaShz dHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2KQogCiAJaGRldi0+bnVtX21zaSA9IHZlY3RvcnM7CiAJaGRl di0+bnVtX21zaV9sZWZ0ID0gdmVjdG9yczsKKwogCWhkZXYtPmJhc2VfbXNpX3ZlY3RvciA9IHBk ZXYtPmlycTsKIAloZGV2LT5yb2NlX2Jhc2VfdmVjdG9yID0gaGRldi0+YmFzZV9tc2lfdmVjdG9y ICsKIAkJCQloZGV2LT5yb2NlX2Jhc2VfbXNpeF9vZmZzZXQ7CkBAIC0zNjQ0LDYgKzM2NjIsNyBA QCBzdGF0aWMgaW50IGhjbGdlX2dldF92ZWN0b3Ioc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxl LCB1MTYgdmVjdG9yX251bSwKIAlpbnQgYWxsb2MgPSAwOwogCWludCBpLCBqOwogCisJdmVjdG9y X251bSA9IG1pbl90KHUxNiwgaGRldi0+bnVtX25pY19tc2kgLSAxLCB2ZWN0b3JfbnVtKTsKIAl2 ZWN0b3JfbnVtID0gbWluKGhkZXYtPm51bV9tc2lfbGVmdCwgdmVjdG9yX251bSk7CiAKIAlmb3Ig KGogPSAwOyBqIDwgdmVjdG9yX251bTsgaisrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5oIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21haW4uaAppbmRleCA2YTEyMjg1 ZjRjNzYuLjZkYzY2ZDNmODQwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlz aWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21haW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5oCkBAIC03OTUsNiArNzk1LDcgQEAg c3RydWN0IGhjbGdlX2RldiB7CiAJdTMyIGJhc2VfbXNpX3ZlY3RvcjsKIAl1MTYgKnZlY3Rvcl9z dGF0dXM7CiAJaW50ICp2ZWN0b3JfaXJxOworCXUxNiBudW1fbmljX21zaTsJLyogTnVtIG9mIG5p YyB2ZWN0b3JzIGZvciB0aGlzIFBGICovCiAJdTE2IG51bV9yb2NlX21zaTsJLyogTnVtIG9mIHJv Y2UgdmVjdG9ycyBmb3IgdGhpcyBQRiAqLwogCWludCByb2NlX2Jhc2VfdmVjdG9yOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2Vf dG0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV90 bS5jCmluZGV4IDNmNDFmYTJiYzQxNC4uODU2MzM3NzA1OTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfdG0uYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfdG0uYwpAQCAtNTQw LDkgKzU0MCwxNiBAQCBzdGF0aWMgdm9pZCBoY2xnZV90bV92cG9ydF90Y19pbmZvX3VwZGF0ZShz dHJ1Y3QgaGNsZ2VfdnBvcnQgKnZwb3J0KQogCQlraW5mby0+cnNzX3NpemUgPSBraW5mby0+cmVx X3Jzc19zaXplOwogCX0gZWxzZSBpZiAoa2luZm8tPnJzc19zaXplID4gbWF4X3Jzc19zaXplIHx8 CiAJCSAgICgha2luZm8tPnJlcV9yc3Nfc2l6ZSAmJiBraW5mby0+cnNzX3NpemUgPCBtYXhfcnNz X3NpemUpKSB7CisJCS8qIGlmIHVzZXIgbm90IHNldCByc3MsIHRoZSByc3Nfc2l6ZSBzaG91bGQg Y29tcGFyZSB3aXRoIHRoZQorCQkgKiB2YWxpZCBtc2kgbnVtYmVycyB0byBlbnN1cmUgb25lIHRv IG9uZSBtYXAgYmV0d2VlbiB0cXAgYW5kCisJCSAqIGlycSBhcyBkZWZhdWx0LgorCQkgKi8KKwkJ aWYgKCFraW5mby0+cmVxX3Jzc19zaXplKQorCQkJbWF4X3Jzc19zaXplID0gbWluX3QodTE2LCBt YXhfcnNzX3NpemUsCisJCQkJCSAgICAgKGhkZXYtPm51bV9uaWNfbXNpIC0gMSkgLworCQkJCQkg ICAgIGtpbmZvLT5udW1fdGMpOworCiAJCS8qIFNldCB0byB0aGUgbWF4aW11bSBzcGVjaWZpY2F0 aW9uIHZhbHVlIChtYXhfcnNzX3NpemUpLiAqLwotCQlkZXZfaW5mbygmaGRldi0+cGRldi0+ZGV2 LCAicnNzIGNoYW5nZXMgZnJvbSAlZCB0byAlZFxuIiwKLQkJCSBraW5mby0+cnNzX3NpemUsIG1h eF9yc3Nfc2l6ZSk7CiAJCWtpbmZvLT5yc3Nfc2l6ZSA9IG1heF9yc3Nfc2l6ZTsKIAl9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczN2Zi9oY2xn ZXZmX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczN2Zi9o Y2xnZXZmX21haW4uYwppbmRleCBhMTNhMGUxMDFjM2IuLmIwOTRkNGU5YmEyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3ZmL2hjbGdldmZfbWFp bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczN2Zi9oY2xn ZXZmX21haW4uYwpAQCAtNDExLDYgKzQxMSwxMyBAQCBzdGF0aWMgaW50IGhjbGdldmZfa25pY19z ZXR1cChzdHJ1Y3QgaGNsZ2V2Zl9kZXYgKmhkZXYpCiAJCWtpbmZvLT50cXBbaV0gPSAmaGRldi0+ aHRxcFtpXS5xOwogCX0KIAorCS8qIGFmdGVyIGluaXQgdGhlIG1heCByc3Nfc2l6ZSBhbmQgdHFw cywgYWRqdXN0IHRoZSBkZWZhdWx0IHRxcCBudW1iZXJzCisJICogYW5kIHJzcyBzaXplIHdpdGgg dGhlIGFjdHVhbCB2ZWN0b3IgbnVtYmVycworCSAqLworCWtpbmZvLT5udW1fdHFwcyA9IG1pbl90 KHUxNiwgaGRldi0+bnVtX25pY19tc2l4IC0gMSwga2luZm8tPm51bV90cXBzKTsKKwlraW5mby0+ cnNzX3NpemUgPSBtaW5fdCh1MTYsIGtpbmZvLT5udW1fdHFwcyAvIGtpbmZvLT5udW1fdGMsCisJ CQkJa2luZm8tPnJzc19zaXplKTsKKwogCXJldHVybiAwOwogfQogCkBAIC01MDIsNiArNTA5LDcg QEAgc3RhdGljIGludCBoY2xnZXZmX2dldF92ZWN0b3Ioc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFu ZGxlLCB1MTYgdmVjdG9yX251bSwKIAlpbnQgYWxsb2MgPSAwOwogCWludCBpLCBqOwogCisJdmVj dG9yX251bSA9IG1pbl90KHUxNiwgaGRldi0+bnVtX25pY19tc2l4IC0gMSwgdmVjdG9yX251bSk7 CiAJdmVjdG9yX251bSA9IG1pbihoZGV2LT5udW1fbXNpX2xlZnQsIHZlY3Rvcl9udW0pOwogCiAJ Zm9yIChqID0gMDsgaiA8IHZlY3Rvcl9udW07IGorKykgewpAQCAtMjIwOCwxMyArMjIxNiwxNCBA QCBzdGF0aWMgaW50IGhjbGdldmZfaW5pdF9tc2koc3RydWN0IGhjbGdldmZfZGV2ICpoZGV2KQog CWludCB2ZWN0b3JzOwogCWludCBpOwogCi0JaWYgKGhuYWUzX2dldF9iaXQoaGRldi0+YWVfZGV2 LT5mbGFnLCBITkFFM19ERVZfU1VQUE9SVF9ST0NFX0IpKQorCWlmIChobmFlM19kZXZfcm9jZV9z dXBwb3J0ZWQoaGRldikpCiAJCXZlY3RvcnMgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocGRldiwK IAkJCQkJCWhkZXYtPnJvY2VfYmFzZV9tc2l4X29mZnNldCArIDEsCiAJCQkJCQloZGV2LT5udW1f bXNpLAogCQkJCQkJUENJX0lSUV9NU0lYKTsKIAllbHNlCi0JCXZlY3RvcnMgPSBwY2lfYWxsb2Nf aXJxX3ZlY3RvcnMocGRldiwgMSwgaGRldi0+bnVtX21zaSwKKwkJdmVjdG9ycyA9IHBjaV9hbGxv Y19pcnFfdmVjdG9ycyhwZGV2LCBITkFFM19NSU5fVkVDVE9SX05VTSwKKwkJCQkJCWhkZXYtPm51 bV9tc2ksCiAJCQkJCQlQQ0lfSVJRX01TSSB8IFBDSV9JUlFfTVNJWCk7CiAKIAlpZiAodmVjdG9y cyA8IDApIHsKQEAgLTIyMzAsNiArMjIzOSw3IEBAIHN0YXRpYyBpbnQgaGNsZ2V2Zl9pbml0X21z aShzdHJ1Y3QgaGNsZ2V2Zl9kZXYgKmhkZXYpCiAKIAloZGV2LT5udW1fbXNpID0gdmVjdG9yczsK IAloZGV2LT5udW1fbXNpX2xlZnQgPSB2ZWN0b3JzOworCiAJaGRldi0+YmFzZV9tc2lfdmVjdG9y ID0gcGRldi0+aXJxOwogCWhkZXYtPnJvY2VfYmFzZV92ZWN0b3IgPSBwZGV2LT5pcnEgKyBoZGV2 LT5yb2NlX2Jhc2VfbXNpeF9vZmZzZXQ7CiAKQEAgLTI0OTUsNyArMjUwNSw3IEBAIHN0YXRpYyBp bnQgaGNsZ2V2Zl9xdWVyeV92Zl9yZXNvdXJjZShzdHJ1Y3QgaGNsZ2V2Zl9kZXYgKmhkZXYpCiAK IAlyZXEgPSAoc3RydWN0IGhjbGdldmZfcXVlcnlfcmVzX2NtZCAqKWRlc2MuZGF0YTsKIAotCWlm IChobmFlM19nZXRfYml0KGhkZXYtPmFlX2Rldi0+ZmxhZywgSE5BRTNfREVWX1NVUFBPUlRfUk9D RV9CKSkgeworCWlmIChobmFlM19kZXZfcm9jZV9zdXBwb3J0ZWQoaGRldikpIHsKIAkJaGRldi0+ cm9jZV9iYXNlX21zaXhfb2Zmc2V0ID0KIAkJaG5hZTNfZ2V0X2ZpZWxkKF9fbGUxNl90b19jcHUo cmVxLT5tc2l4Y2FwX2xvY2FsaWRfYmFfcm9jZWUpLAogCQkJCUhDTEdFVkZfTVNJWF9PRlRfUk9D RUVfTSwKQEAgLTI1MDQsNiArMjUxNCw5IEBAIHN0YXRpYyBpbnQgaGNsZ2V2Zl9xdWVyeV92Zl9y ZXNvdXJjZShzdHJ1Y3QgaGNsZ2V2Zl9kZXYgKmhkZXYpCiAJCWhuYWUzX2dldF9maWVsZChfX2xl MTZfdG9fY3B1KHJlcS0+dmZfaW50cl92ZWN0b3JfbnVtYmVyKSwKIAkJCQlIQ0xHRVZGX1ZFQ19O VU1fTSwgSENMR0VWRl9WRUNfTlVNX1MpOwogCisJCS8qIG5pYydzIG1zaXggbnVtYmVycyBpcyBh bHdheXMgZXF1YWxzIHRvIHRoZSByb2NlJ3MuICovCisJCWhkZXYtPm51bV9uaWNfbXNpeCA9IGhk ZXYtPm51bV9yb2NlX21zaXg7CisKIAkJLyogVkYgc2hvdWxkIGhhdmUgTklDIHZlY3RvcnMgYW5k IFJvY2UgdmVjdG9ycywgTklDIHZlY3RvcnMKIAkJICogYXJlIHF1ZXVlZCBiZWZvcmUgUm9jZSB2 ZWN0b3JzLiBUaGUgb2Zmc2V0IGlzIGZpeGVkIHRvIDY0LgogCQkgKi8KQEAgLTI1MTMsNiArMjUy NiwxNSBAQCBzdGF0aWMgaW50IGhjbGdldmZfcXVlcnlfdmZfcmVzb3VyY2Uoc3RydWN0IGhjbGdl dmZfZGV2ICpoZGV2KQogCQloZGV2LT5udW1fbXNpID0KIAkJaG5hZTNfZ2V0X2ZpZWxkKF9fbGUx Nl90b19jcHUocmVxLT52Zl9pbnRyX3ZlY3Rvcl9udW1iZXIpLAogCQkJCUhDTEdFVkZfVkVDX05V TV9NLCBIQ0xHRVZGX1ZFQ19OVU1fUyk7CisKKwkJaGRldi0+bnVtX25pY19tc2l4ID0gaGRldi0+ bnVtX21zaTsKKwl9CisKKwlpZiAoaGRldi0+bnVtX25pY19tc2l4IDwgSE5BRTNfTUlOX1ZFQ1RP Ul9OVU0pIHsKKwkJZGV2X2VycigmaGRldi0+cGRldi0+ZGV2LAorCQkJIkp1c3QgJXUgbXNpIHJl c291cmNlcywgbm90IGVub3VnaCBmb3IgdmYobWluOjIpLlxuIiwKKwkJCWhkZXYtPm51bV9uaWNf bXNpeCk7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3ZmL2hjbGdldmZfbWFpbi5o IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3ZmL2hjbGdldmZfbWFp bi5oCmluZGV4IDVhOWUzMDk5OGE4Zi4uM2M5MGNmZjBlNDNhIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzdmYvaGNsZ2V2Zl9tYWluLmgKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3ZmL2hjbGdldmZfbWFpbi5o CkBAIC0yNjUsNiArMjY1LDcgQEAgc3RydWN0IGhjbGdldmZfZGV2IHsKIAl1MTYgbnVtX21zaTsK IAl1MTYgbnVtX21zaV9sZWZ0OwogCXUxNiBudW1fbXNpX3VzZWQ7CisJdTE2IG51bV9uaWNfbXNp eDsJLyogTnVtIG9mIG5pYyB2ZWN0b3JzIGZvciB0aGlzIFZGICovCiAJdTE2IG51bV9yb2NlX21z aXg7CS8qIE51bSBvZiByb2NlIHZlY3RvcnMgZm9yIHRoaXMgVkYgKi8KIAl1MTYgcm9jZV9iYXNl X21zaXhfb2Zmc2V0OwogCWludCByb2NlX2Jhc2VfdmVjdG9yOwotLSAKMi4yMC4xCgoKRnJvbSBm OWE2NTBhY2YyMjIwYTgyNzQ4YWQyZWZiMjRmNTMyNTE3NzA2NTFlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNv bT4KRGF0ZTogRnJpLCAxOCBPY3QgMjAxOSAwOToxNjo1NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg NDgvNTVdIG5ldDogbmV0ZW06IGZpeCBlcnJvciBwYXRoIGZvciBjb3JydXB0ZWQgR1NPIGZyYW1l cwoKWyBVcHN0cmVhbSBjb21taXQgYTdmYTEyZDE1ODU1OTA0YWZmMTcxNmUxZmM3MjNjMDNiYTM4 YzVjYyBdCgpUbyBjb3JydXB0IGEgR1NPIGZyYW1lIHdlIGZpcnN0IHBlcmZvcm0gc2VnbWVudGF0 aW9uLiAgV2UgdGhlbgpwcm9jZWVkIHVzaW5nIHRoZSBmaXJzdCBzZWdtZW50IGluc3RlYWQgb2Yg dGhlIGZ1bGwgR1NPIHNrYiBhbmQKcmVxdWV1ZSB0aGUgcmVzdCBvZiB0aGUgc2VnbWVudHMgYXMg c2VwYXJhdGUgcGFja2V0cy4KCklmIHRoZXJlIGFyZSBhbnkgaXNzdWVzIHdpdGggcHJvY2Vzc2lu ZyB0aGUgZmlyc3Qgc2VnbWVudCB3ZQpzdGlsbCB3YW50IHRvIHByb2Nlc3MgdGhlIHJlc3QsIHRo ZXJlZm9yZSB3ZSBqdW1wIHRvIHRoZQpmaW5pc2hfc2VncyBsYWJlbC4KCkNvbW1pdCAxNzdiODAw NzQ2M2MgKCJuZXQ6IG5ldGVtOiBmaXggYmFja2xvZyBhY2NvdW50aW5nIGZvcgpjb3JydXB0ZWQg R1NPIGZyYW1lcyIpIHN0YXJ0ZWQgdXNpbmcgdGhlIHBvaW50ZXIgdG8gdGhlIGZpcnN0CnNlZ21l bnQgaW4gdGhlICJyZXN0IG9mIHNlZ21lbnRzIHByb2Nlc3NpbmciLCBidXQgYXMgbWVudGlvbmVk CmFib3ZlIHRoZSBmaXJzdCBzZWdtZW50IG1heSBoYWQgYWxyZWFkeSBiZWVuIGZyZWVkIGF0IHRo aXMgcG9pbnQuCgpCYWNrbG9nIGNvcnJlY3Rpb25zIGZvciBwYXJlbnQgcWRpc2NzIGhhdmUgdG8g YmUgYWRqdXN0ZWQuCgpGaXhlczogMTc3YjgwMDc0NjNjICgibmV0OiBuZXRlbTogZml4IGJhY2ts b2cgYWNjb3VudGluZyBmb3IgY29ycnVwdGVkIEdTTyBmcmFtZXMiKQpSZXBvcnRlZC1ieToga2J1 aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClJlcG9ydGVkLWJ5OiBEYW4gQ2FycGVudGVy IDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClJlcG9ydGVkLWJ5OiBCZW4gSHV0Y2hpbmdzIDxi ZW5AZGVjYWRlbnQub3JnLnVrPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIu a2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24u aG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX25ldGVtLmMgfCA5ICsrKysrKy0t LQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMgYi9uZXQvc2NoZWQvc2NoX25ldGVtLmMKaW5k ZXggZjVjYjM1ZTU1MGY4Li5kYWQxMjMwNTRjZTEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf bmV0ZW0uYworKysgYi9uZXQvc2NoZWQvc2NoX25ldGVtLmMKQEAgLTUwOSw2ICs1MDksNyBAQCBz dGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNj ICpzY2gsCiAJCWlmIChza2ItPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9QQVJUSUFMICYmCiAJCSAg ICBza2JfY2hlY2tzdW1faGVscChza2IpKSB7CiAJCQlxZGlzY19kcm9wKHNrYiwgc2NoLCB0b19m cmVlKTsKKwkJCXNrYiA9IE5VTEw7CiAJCQlnb3RvIGZpbmlzaF9zZWdzOwogCQl9CiAKQEAgLTU5 Myw5ICs1OTQsMTAgQEAgc3RhdGljIGludCBuZXRlbV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBRZGlzYyAqc2NoLAogZmluaXNoX3NlZ3M6CiAJaWYgKHNlZ3MpIHsKIAkJdW5z aWduZWQgaW50IGxlbiwgbGFzdF9sZW47Ci0JCWludCBuYiA9IDA7CisJCWludCBuYjsKIAotCQls ZW4gPSBza2ItPmxlbjsKKwkJbGVuID0gc2tiID8gc2tiLT5sZW4gOiAwOworCQluYiA9IHNrYiA/ IDEgOiAwOwogCiAJCXdoaWxlIChzZWdzKSB7CiAJCQlza2IyID0gc2Vncy0+bmV4dDsKQEAgLTYx Miw3ICs2MTQsOCBAQCBzdGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IFFkaXNjICpzY2gsCiAJCQl9CiAJCQlzZWdzID0gc2tiMjsKIAkJfQotCQlxZGlz Y190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgLW5iLCBwcmV2X2xlbiAtIGxlbik7CisJCS8qIFBh cmVudCBxZGlzY3MgYWNjb3VudGVkIGZvciAxIHNrYiBvZiBzaXplIEBwcmV2X2xlbiAqLworCQlx ZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgLShuYiAtIDEpLCAtKGxlbiAtIHByZXZfbGVu KSk7CiAJfQogCXJldHVybiBORVRfWE1JVF9TVUNDRVNTOwogfQotLSAKMi4yMC4xCgoKRnJvbSAz NTE5NTFkMDNmYThmZTdhNDc0M2IzNDc4YWNiMWIxNWYzN2IzODZjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZy aSwgMTggT2N0IDIwMTkgMTU6MjA6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIIDQ5LzU1XSBuZXQ6 IHJlb3JkZXIgJ3N0cnVjdCBuZXQnIGZpZWxkcyB0byBhdm9pZCBmYWxzZSBzaGFyaW5nCgpbIFVw c3RyZWFtIGNvbW1pdCAyYTA2Yjg5ODJmOGYyZjQwZDAzYTNkYWY2MzQ2NzYzODZiZDg0ZGJjIF0K CkludGVsIHRlc3Qgcm9ib3QgcmVwb3J0ZWQgYSB+NyUgcmVncmVzc2lvbiBvbiBUQ1BfQ1JSIHRl c3RzCnRoYXQgdGhleSBiaXNlY3RlZCB0byB0aGUgY2l0ZWQgY29tbWl0LgoKSW5kZWVkLCBldmVy eSB0aW1lIGEgbmV3IFRDUCBzb2NrZXQgaXMgY3JlYXRlZCBvciBkZWxldGVkLAp0aGUgYXRvbWlj IGNvdW50ZXIgbmV0LT5jb3VudCBpcyB0b3VjaGVkICh2aWEgZ2V0X25ldChuZXQpCmFuZCBwdXRf bmV0KG5ldCkgY2FsbHMpCgpTbyBjcHVzIG1pZ2h0IGhhdmUgdG8gcmVsb2FkIGEgY29udGVuZGVk IGNhY2hlIGxpbmUgaW4KbmV0X2hhc2hfbWl4KG5ldCkgY2FsbHMuCgpXZSBuZWVkIHRvIHJlb3Jk ZXIgJ3N0cnVjdCBuZXQnIGZpZWxkcyB0byBtb3ZlIEBoYXNoX21peAppbiBhIHJlYWQgbW9zdGx5 IGNhY2hlIGxpbmUuCgpXZSBtb3ZlIGluIHRoZSBmaXJzdCBjYWNoZSBsaW5lIGZpZWxkcyB0aGF0 IGNhbiBiZQpkaXJ0aWVkIG9mdGVuLgoKV2UgcHJvYmFibHkgd2lsbCBoYXZlIHRvIGFkZHJlc3Mg aW4gYSBmb2xsb3d1cCBwYXRjaAp0aGUgX19yYW5kb21pemVfbGF5b3V0IHRoYXQgd2FzIGFkZGVk IGluIGxpbnV4LTQuMTMsCnNpbmNlIHRoaXMgbWlnaHQgYnJlYWsgb3VyIHBsYWNlbWVudCBjaG9p Y2VzLgoKRml4ZXM6IDM1NWI5ODU1Mzc4OSAoIm5ldG5zOiBwcm92aWRlIHB1cmUgZW50cm9weSBm b3IgbmV0X2hhc2hfbWl4KCkiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8b2xpdmVyLnNhbmdA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oIHwgMjUgKysrKysrKysrKysr KysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oIGIvaW5jbHVk ZS9uZXQvbmV0X25hbWVzcGFjZS5oCmluZGV4IGYxZjM0MzhlZDEzYS4uOGY4YjM3MTk4ZjliIDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmgKKysrIGIvaW5jbHVkZS9uZXQv bmV0X25hbWVzcGFjZS5oCkBAIC01Miw2ICs1Miw5IEBAIHN0cnVjdCBicGZfcHJvZzsKICNkZWZp bmUgTkVUREVWX0hBU0hFTlRSSUVTICgxIDw8IE5FVERFVl9IQVNIQklUUykKIAogc3RydWN0IG5l dCB7CisJLyogRmlyc3QgY2FjaGUgbGluZSBjYW4gYmUgb2Z0ZW4gZGlydGllZC4KKwkgKiBEbyBu b3QgcGxhY2UgaGVyZSByZWFkLW1vc3RseSBmaWVsZHMuCisJICovCiAJcmVmY291bnRfdAkJcGFz c2l2ZTsJLyogVG8gZGVjaWRlIHdoZW4gdGhlIG5ldHdvcmsKIAkJCQkJCSAqIG5hbWVzcGFjZSBz aG91bGQgYmUgZnJlZWQuCiAJCQkJCQkgKi8KQEAgLTYwLDcgKzYzLDEzIEBAIHN0cnVjdCBuZXQg ewogCQkJCQkJICovCiAJc3BpbmxvY2tfdAkJcnVsZXNfbW9kX2xvY2s7CiAKLQl1MzIJCQloYXNo X21peDsKKwl1bnNpZ25lZCBpbnQJCWRldl91bnJlZ19jb3VudDsKKworCXVuc2lnbmVkIGludAkJ ZGV2X2Jhc2Vfc2VxOwkvKiBwcm90ZWN0ZWQgYnkgcnRubF9tdXRleCAqLworCWludAkJCWlmaW5k ZXg7CisKKwlzcGlubG9ja190CQluc2lkX2xvY2s7CisJYXRvbWljX3QJCWZuaGVfZ2VuaWQ7CiAK IAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CQkvKiBsaXN0IG9mIG5ldHdvcmsgbmFtZXNwYWNlcyAq LwogCXN0cnVjdCBsaXN0X2hlYWQJZXhpdF9saXN0OwkvKiBUbyBsaW5rZWQgdG8gY2FsbCBwZXJu ZXQgZXhpdApAQCAtNzYsMTEgKzg1LDExIEBAIHN0cnVjdCBuZXQgewogI2VuZGlmCiAJc3RydWN0 IHVzZXJfbmFtZXNwYWNlICAgKnVzZXJfbnM7CS8qIE93bmluZyB1c2VyIG5hbWVzcGFjZSAqLwog CXN0cnVjdCB1Y291bnRzCQkqdWNvdW50czsKLQlzcGlubG9ja190CQluc2lkX2xvY2s7CiAJc3Ry dWN0IGlkcgkJbmV0bnNfaWRzOwogCiAJc3RydWN0IG5zX2NvbW1vbgluczsKIAorCXN0cnVjdCBs aXN0X2hlYWQgCWRldl9iYXNlX2hlYWQ7CiAJc3RydWN0IHByb2NfZGlyX2VudHJ5IAkqcHJvY19u ZXQ7CiAJc3RydWN0IHByb2NfZGlyX2VudHJ5IAkqcHJvY19uZXRfc3RhdDsKIApAQCAtOTMsMTIg KzEwMiwxNCBAQCBzdHJ1Y3QgbmV0IHsKIAogCXN0cnVjdCB1ZXZlbnRfc29jawkqdWV2ZW50X3Nv Y2s7CQkvKiB1ZXZlbnQgc29ja2V0ICovCiAKLQlzdHJ1Y3QgbGlzdF9oZWFkIAlkZXZfYmFzZV9o ZWFkOwogCXN0cnVjdCBobGlzdF9oZWFkIAkqZGV2X25hbWVfaGVhZDsKIAlzdHJ1Y3QgaGxpc3Rf aGVhZAkqZGV2X2luZGV4X2hlYWQ7Ci0JdW5zaWduZWQgaW50CQlkZXZfYmFzZV9zZXE7CS8qIHBy b3RlY3RlZCBieSBydG5sX211dGV4ICovCi0JaW50CQkJaWZpbmRleDsKLQl1bnNpZ25lZCBpbnQJ CWRldl91bnJlZ19jb3VudDsKKwkvKiBOb3RlIHRoYXQgQGhhc2hfbWl4IGNhbiBiZSByZWFkIG1p bGxpb25zIHRpbWVzIHBlciBzZWNvbmQsCisJICogaXQgaXMgY3JpdGljYWwgdGhhdCBpdCBpcyBv biBhIHJlYWRfbW9zdGx5IGNhY2hlIGxpbmUuCisJICovCisJdTMyCQkJaGFzaF9taXg7CisKKwlz dHJ1Y3QgbmV0X2RldmljZSAgICAgICAqbG9vcGJhY2tfZGV2OyAgICAgICAgICAvKiBUaGUgbG9v cGJhY2sgKi8KIAogCS8qIGNvcmUgZmliX3J1bGVzICovCiAJc3RydWN0IGxpc3RfaGVhZAlydWxl c19vcHM7CkBAIC0xMDYsNyArMTE3LDYgQEAgc3RydWN0IG5ldCB7CiAJc3RydWN0IGxpc3RfaGVh ZAlmaWJfbm90aWZpZXJfb3BzOyAgLyogUG9wdWxhdGVkIGJ5CiAJCQkJCQkgICAgKiByZWdpc3Rl cl9wZXJuZXRfc3Vic3lzKCkKIAkJCQkJCSAgICAqLwotCXN0cnVjdCBuZXRfZGV2aWNlICAgICAg ICpsb29wYmFja19kZXY7ICAgICAgICAgIC8qIFRoZSBsb29wYmFjayAqLwogCXN0cnVjdCBuZXRu c19jb3JlCWNvcmU7CiAJc3RydWN0IG5ldG5zX21pYgltaWI7CiAJc3RydWN0IG5ldG5zX3BhY2tl dAlwYWNrZXQ7CkBAIC0xNzEsNyArMTgxLDYgQEAgc3RydWN0IG5ldCB7CiAJc3RydWN0IG5ldG5z X3hkcAl4ZHA7CiAjZW5kaWYKIAlzdHJ1Y3Qgc29jawkJKmRpYWdfbmxzazsKLQlhdG9taWNfdAkJ Zm5oZV9nZW5pZDsKIH0gX19yYW5kb21pemVfbGF5b3V0OwogCiAjaW5jbHVkZSA8bGludXgvc2Vx X2ZpbGVfbmV0Lmg+Ci0tIAoyLjIwLjEKCgpGcm9tIDUxMmI2ZjE0YzI1MTlhODExNmIwYWY2Zjg1 MGMzNGM3MzhhMDg2Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5u IDxhbmRyZXdAbHVubi5jaD4KRGF0ZTogVGh1LCAxNyBPY3QgMjAxOSAyMToyOToyNiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNTAvNTVdIG5ldDogdXNiOiBsYW43OHh4OiBDb25uZWN0IFBIWSBiZWZv cmUgcmVnaXN0ZXJpbmcgTUFDCgpbIFVwc3RyZWFtIGNvbW1pdCAzOGI0ZmUzMjAxMTk4NTljMTFi MWRjMDZmNmI0OTg3YTE2MzQ0ZmExIF0KCkFzIHNvb24gYXMgdGhlIG5ldGRldiBpcyByZWdpc3Rl cnMsIHRoZSBrZXJuZWwgY2FuIHN0YXJ0IHVzaW5nIHRoZQppbnRlcmZhY2UuIElmIHRoZSBkcml2 ZXIgY29ubmVjdHMgdGhlIE1BQyB0byB0aGUgUEhZIGFmdGVyIHRoZSBuZXRkZXYKaXMgcmVnaXN0 ZXJlZCwgdGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgaW50ZXJmYWNlIGNhbiBi ZQpvcGVuZWQgd2l0aG91dCBoYXZpbmcgdGhlIFBIWSBjb25uZWN0ZWQuCgpDaGFuZ2UgdGhlIG9y ZGVyIHRvIGNsb3NlIHRoaXMgcmFjZSBjb25kaXRpb24uCgpGaXhlczogOTI1NzFhMWFhZTQwICgi bGFuNzh4eDogQ29ubmVjdCBwaHkgZWFybHkiKQpSZXBvcnRlZC1ieTogRGFuaWVsIFdhZ25lciA8 ZHdhZ25lckBzdXNlLmRlPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4u Y2g+ClRlc3RlZC1ieTogRGFuaWVsIFdhZ25lciA8ZHdhZ25lckBzdXNlLmRlPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvdXNiL2xhbjc4eHguYyB8IDEyICsrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2Iv bGFuNzh4eC5jIGIvZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYwppbmRleCBkZDliM2Y0YzQ1NjEu LjdkZDYyODliMWZmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYworKysg Yi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCkBAIC0zNzkyLDEwICszNzkyLDE0IEBAIHN0YXRp YyBpbnQgbGFuNzh4eF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKIAkvKiBkcml2 ZXIgcmVxdWlyZXMgcmVtb3RlLXdha2V1cCBjYXBhYmlsaXR5IGR1cmluZyBhdXRvc3VzcGVuZC4g Ki8KIAlpbnRmLT5uZWVkc19yZW1vdGVfd2FrZXVwID0gMTsKIAorCXJldCA9IGxhbjc4eHhfcGh5 X2luaXQoZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ0OworCiAJcmV0ID0gcmVnaXN0 ZXJfbmV0ZGV2KG5ldGRldik7CiAJaWYgKHJldCAhPSAwKSB7CiAJCW5ldGlmX2VycihkZXYsIHBy b2JlLCBuZXRkZXYsICJjb3VsZG4ndCByZWdpc3RlciB0aGUgZGV2aWNlXG4iKTsKLQkJZ290byBv dXQ0OworCQlnb3RvIG91dDU7CiAJfQogCiAJdXNiX3NldF9pbnRmZGF0YShpbnRmLCBkZXYpOwpA QCAtMzgwOCwxNCArMzgxMiwxMCBAQCBzdGF0aWMgaW50IGxhbjc4eHhfcHJvYmUoc3RydWN0IHVz Yl9pbnRlcmZhY2UgKmludGYsCiAJcG1fcnVudGltZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkoJnVk ZXYtPmRldiwKIAkJCQkJIERFRkFVTFRfQVVUT1NVU1BFTkRfREVMQVkpOwogCi0JcmV0ID0gbGFu Nzh4eF9waHlfaW5pdChkZXYpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIG91dDU7Ci0KIAlyZXR1 cm4gMDsKIAogb3V0NToKLQl1bnJlZ2lzdGVyX25ldGRldihuZXRkZXYpOworCXBoeV9kaXNjb25u ZWN0KG5ldGRldi0+cGh5ZGV2KTsKIG91dDQ6CiAJdXNiX2ZyZWVfdXJiKGRldi0+dXJiX2ludHIp Owogb3V0MzoKLS0gCjIuMjAuMQoKCkZyb20gODliMGFhYzI5YmYzZTY2MTY2MGE3OGY5ZWUzZjZl NTA2Zjk3NmIwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2F6dXRvc2hpIE5vZ3Vj aGkgPG5vZ3VjaGkua2F6dXRvc2lAZ21haWwuY29tPgpEYXRlOiBNb24sIDIxIE9jdCAyMDE5IDAw OjAzOjA3ICswOTAwClN1YmplY3Q6IFtQQVRDSCA1MS81NV0gcjgxNTI6IGFkZCBkZXZpY2UgaWQg Zm9yIExlbm92byBUaGlua1BhZCBVU0ItQyBEb2NrIEdlbgogMgoKWyBVcHN0cmVhbSBjb21taXQg YjMwNjA1MzE5Nzk0MjJkNWJiMThkODAyMjZmOTc4OTEwMjg0ZGM3MCBdCgpUaGlzIGRldmljZSBp cyBzb2xkIGFzICdUaGlua1BhZCBVU0ItQyBEb2NrIEdlbiAyICg0MEFTKScuCkNoaXBzZXQgaXMg UlRMODE1MyBhbmQgd29ya3Mgd2l0aCByODE1Mi4KV2l0aG91dCB0aGlzLCB0aGUgZ2VuZXJpYyBj ZGNfZXRoZXIgZ3JhYnMgdGhlIGRldmljZSwgYW5kIHRoZSBkZXZpY2UgamFtCmNvbm5lY3RlZCBu ZXR3b3JrcyB1cCB3aGVuIHRoZSBtYWNoaW5lIHN1c3BlbmRzLgoKU2lnbmVkLW9mZi1ieTogS2F6 dXRvc2hpIE5vZ3VjaGkgPG5vZ3VjaGkua2F6dXRvc2lAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv dXNiL2NkY19ldGhlci5jIHwgNyArKysrKysrCiBkcml2ZXJzL25ldC91c2IvcjgxNTIuYyAgICAg fCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdXNiL2NkY19ldGhlci5jIGIvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jCmlu ZGV4IDMyZjUzZGU1YjFmZS4uZmU2MzA0MzhmNjdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91 c2IvY2RjX2V0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jCkBAIC03ODcs NiArNzg3LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZAlwcm9kdWN0c1td ID0gewogCS5kcml2ZXJfaW5mbyA9IDAsCiB9LAogCisvKiBUaGlua1BhZCBVU0ItQyBEb2NrIEdl biAyIChiYXNlZCBvbiBSZWFsdGVrIFJUTDgxNTMpICovCit7CisJVVNCX0RFVklDRV9BTkRfSU5U RVJGQUNFX0lORk8oTEVOT1ZPX1ZFTkRPUl9JRCwgMHhhMzg3LCBVU0JfQ0xBU1NfQ09NTSwKKwkJ CVVTQl9DRENfU1VCQ0xBU1NfRVRIRVJORVQsIFVTQl9DRENfUFJPVE9fTk9ORSksCisJLmRyaXZl cl9pbmZvID0gMCwKK30sCisKIC8qIE5WSURJQSBUZWdyYSBVU0IgMy4wIEV0aGVybmV0IEFkYXB0 ZXJzIChiYXNlZCBvbiBSZWFsdGVrIFJUTDgxNTMpICovCiB7CiAJVVNCX0RFVklDRV9BTkRfSU5U RVJGQUNFX0lORk8oTlZJRElBX1ZFTkRPUl9JRCwgMHgwOWZmLCBVU0JfQ0xBU1NfQ09NTSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jIGIvZHJpdmVycy9uZXQvdXNiL3I4MTUy LmMKaW5kZXggOWVlZGMwNzE0NDIyLi43NjYxZDc0NzVjMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3VzYi9yODE1Mi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCkBAIC01NDAyLDYg KzU0MDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnRsODE1Ml90YWJs ZVtdID0gewogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9SX0lEX0xFTk9WTywgIDB4NzIwNSl9 LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9SX0lEX0xFTk9WTywgIDB4NzIwYyl9LAogCXtS RUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9SX0lEX0xFTk9WTywgIDB4NzIxNCl9LAorCXtSRUFMVEVL X1VTQl9ERVZJQ0UoVkVORE9SX0lEX0xFTk9WTywgIDB4YTM4Nyl9LAogCXtSRUFMVEVLX1VTQl9E RVZJQ0UoVkVORE9SX0lEX0xJTktTWVMsIDB4MDA0MSl9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0Uo VkVORE9SX0lEX05WSURJQSwgIDB4MDlmZil9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9S X0lEX1RQTElOSywgIDB4MDYwMSl9LAotLSAKMi4yMC4xCgoKRnJvbSAxNGI5MjA5YmRlYTYxOWUz ZDNjZWQ1ZGM4ZDdkYjRhYTU1YzU3MjE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK YWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogRnJpLCAx OCBPY3QgMjAxOSAwOToxNjo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNTIvNTVdIG5ldDogbmV0 ZW06IGNvcnJlY3QgdGhlIHBhcmVudCdzIGJhY2tsb2cgd2hlbiBjb3JydXB0ZWQKIHBhY2tldCB3 YXMgZHJvcHBlZAoKWyBVcHN0cmVhbSBjb21taXQgZTBhZDAzMmUxNDQ3MzFhNTkyOGYyZDc1ZTkx YzIwNjRiYTFhNzY0YyBdCgpJZiBwYWNrZXQgY29ycnVwdGlvbiBmYWlsZWQgd2UganVtcCB0byBm aW5pc2hfc2VncyBhbmQgcmV0dXJuCk5FVF9YTUlUX1NVQ0NFU1MuIFNlZWluZyBzdWNjZXNzIHdp bGwgbWFrZSB0aGUgcGFyZW50IHFkaXNjCmluY3JlbWVudCBpdHMgYmFja2xvZywgdGhhdCdzIGlu Y29ycmVjdCAtIHdlIG5lZWQgdG8gcmV0dXJuCk5FVF9YTUlUX0RST1AuCgpGaXhlczogNjA3MWJk MWFhMTNlICgibmV0ZW06IFNlZ21lbnQgR1NPIHBhY2tldHMgb24gZW5xdWV1ZSIpClNpZ25lZC1v ZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9z Y2hlZC9zY2hfbmV0ZW0uYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMgYi9uZXQvc2NoZWQvc2NoX25ldGVt LmMKaW5kZXggZGFkMTIzMDU0Y2UxLi5lNmU2ZTVhZTZkMmIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9zY2hfbmV0ZW0uYworKysgYi9uZXQvc2NoZWQvc2NoX25ldGVtLmMKQEAgLTYxNiw2ICs2MTYs OCBAQCBzdGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IFFkaXNjICpzY2gsCiAJCX0KIAkJLyogUGFyZW50IHFkaXNjcyBhY2NvdW50ZWQgZm9yIDEgc2ti IG9mIHNpemUgQHByZXZfbGVuICovCiAJCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAt KG5iIC0gMSksIC0obGVuIC0gcHJldl9sZW4pKTsKKwl9IGVsc2UgaWYgKCFza2IpIHsKKwkJcmV0 dXJuIE5FVF9YTUlUX0RST1A7CiAJfQogCXJldHVybiBORVRfWE1JVF9TVUNDRVNTOwogfQotLSAK Mi4yMC4xCgoKRnJvbSAzNWExYWZjZmJiYmVjNDkwODIxYmQ0MjRkYTgzMTg0MGJmZGM1Y2RjIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTYgT2N0IDIwMTkgMTY6MDY6MzAgLTA3MDAKU3ViamVjdDogW1BBVENI IDUzLzU1XSBuZXQ6IHBoeTogYmNtN3h4eDogZGVmaW5lIHNvZnRfcmVzZXQgZm9yIDQwbm0gRVBI WQoKWyBVcHN0cmVhbSBjb21taXQgZmU1ODZiODIzMzcyYTlmNDNmOTBlMmM2YWEwNTczOTkyY2U3 Y2NiNyBdCgpUaGUgaW50ZXJuYWwgNDBubSBFUEhZcyB1c2UgYSAiV29ya2Fyb3VuZCBmb3IgcHV0 dGluZyB0aGUgUEhZIGluCklERFEgbW9kZS4iIFRoZXNlIFBIWXMgcmVxdWlyZSBhIHNvZnQgcmVz ZXQgdG8gcmVzdG9yZSBmdW5jdGlvbmFsaXR5CmFmdGVyIHRoZXkgYXJlIHBvd2VyZWQgYmFjayB1 cC4KClRoaXMgY29tbWl0IGRlZmluZXMgdGhlIHNvZnRfcmVzZXQgZnVuY3Rpb24gdG8gdXNlIGdl bnBoeV9zb2Z0X3Jlc2V0CmR1cmluZyBwaHlfaW5pdF9odyB0byBhY2NvbW1vZGF0ZSB0aGlzLgoK Rml4ZXM6IDZlMmQ4NWVjMDU1OSAoIm5ldDogcGh5OiBTdG9wIHdpdGggZXhjZXNzaXZlIHNvZnQg cmVzZXQiKQpTaWduZWQtb2ZmLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+CkFj a2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3BoeS9iY203eHh4LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9iY203eHh4LmMgYi9kcml2ZXJzL25ldC9waHkv YmNtN3h4eC5jCmluZGV4IDhmYzMzODY3ZTUyNC4uYWY4ZWFiZTdhNmQ0IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9waHkvYmNtN3h4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9iY203eHh4LmMK QEAgLTU3Miw2ICs1NzIsNyBAQCBzdGF0aWMgaW50IGJjbTd4eHhfMjhubV9wcm9iZShzdHJ1Y3Qg cGh5X2RldmljZSAqcGh5ZGV2KQogCS5uYW1lICAgICAgICAgICA9IF9uYW1lLAkJCQkJXAogCS8q IFBIWV9CQVNJQ19GRUFUVVJFUyAqLwkJCQkJXAogCS5mbGFncyAgICAgICAgICA9IFBIWV9JU19J TlRFUk5BTCwJCQkJXAorCS5zb2Z0X3Jlc2V0CT0gZ2VucGh5X3NvZnRfcmVzZXQsCQkJCVwKIAku Y29uZmlnX2luaXQgICAgPSBiY203eHh4X2NvbmZpZ19pbml0LAkJCQlcCiAJLnN1c3BlbmQgICAg ICAgID0gYmNtN3h4eF9zdXNwZW5kLAkJCQlcCiAJLnJlc3VtZSAgICAgICAgID0gYmNtN3h4eF9j b25maWdfaW5pdCwJCQkJXAotLSAKMi4yMC4xCgoKRnJvbSA5ZmVmYTBlMTgwOTVmNTA4NWUxZmYy YTgzNjM5N2FiODYwMTFjMGZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIEJl cmdlciA8b3BlbmRtYkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTYgT2N0IDIwMTkgMTY6MDY6MzEg LTA3MDAKU3ViamVjdDogW1BBVENIIDU0LzU1XSBuZXQ6IGJjbWdlbmV0OiBzb2Z0IHJlc2V0IDQw bm0gRVBIWXMgYmVmb3JlIE1BQyBpbml0CgpbIFVwc3RyZWFtIGNvbW1pdCAxZjUxNTQ4NjI3NWEw OGExN2EyYzgwNmI4NDRjY2ExOGY3ZGU1YjM0IF0KCkl0IHR1cm5zIG91dCB0aGF0IHRoZSAiV29y a2Fyb3VuZCBmb3IgcHV0dGluZyB0aGUgUEhZIGluIElERFEgbW9kZSIKdXNlZCBieSB0aGUgaW50 ZXJuYWwgRVBIWXMgb24gNDBubSBTZXQtVG9wIEJveCBjaGlwcyB3aGVuIHBvd2VyaW5nCmRvd24g cHV0cyB0aGUgaW50ZXJmYWNlIHRvIHRoZSBHRU5FVCBNQUMgaW4gYSBzdGF0ZSB0aGF0IGNhbiBj YXVzZQpzdWJzZXF1ZW50IE1BQyByZXNldHMgdG8gYmUgaW5jb21wbGV0ZS4KClJhdGhlciB0aGFu IHJlc3RvcmUgdGhlIGZvcmNlZCBzb2Z0IHJlc2V0IHdoZW4gcG93ZXJpbmcgdXAgaW50ZXJuYWwK UEhZcywgdGhpcyBjb21taXQgbW92ZXMgdGhlIGludm9jYXRpb24gb2YgcGh5X2luaXRfaHcgZWFy bGllciBpbgp0aGUgTUFDIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIHRvIGp1c3QgYmVmb3JlIHRo ZSBNQUMgcmVzZXQgaW4gdGhlCm9wZW4gYW5kIHJlc3VtZSBmdW5jdGlvbnMuIFRoaXMgYWxsb3dz IHRoZSBpbnRlcmZhY2UgdG8gYmUgc3RhYmxlCmFuZCBhbGxvd3MgdGhlIE1BQyByZXNldHMgdG8g YmUgc3VjY2Vzc2Z1bC4KClRoZSBiY21nZW5ldF9taWlfcHJvYmUoKSBmdW5jdGlvbiBpcyBzcGxp dCBpbiB0d28gdG8gYWNjb21tb2RhdGUKdGhpcy4gVGhlIG5ldyBmdW5jdGlvbiBiY21nZW5ldF9t aWlfY29ubmVjdCgpIGhhbmRsZXMgdGhlIGZpcnN0CmhhbGYgb2YgdGhlIGZ1bmN0aW9uYWxpdHkg YmVmb3JlIHRoZSBNQUMgaW5pdGlhbGl6YXRpb24sIGFuZCB0aGUKYmNtZ2VuZXRfbWlpX2NvbmZp ZygpIGZ1bmN0aW9uIGlzIGV4dGVuZGVkIHRvIHByb3ZpZGUgdGhlIHJlbWFpbmluZwpQSFkgY29u ZmlndXJhdGlvbiBmb2xsb3dpbmcgdGhlIE1BQyBpbml0aWFsaXphdGlvbi4KCkZpeGVzOiA0ODRi ZmExNTA3YmYgKCJSZXZlcnQgIm5ldDogYmNtZ2VuZXQ6IFNvZnR3YXJlIHJlc2V0IEVQSFkgYWZ0 ZXIgcG93ZXIgb24iIikKU2lnbmVkLW9mZi1ieTogRG91ZyBCZXJnZXIgPG9wZW5kbWJAZ21haWwu Y29tPgpBY2tlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiAu Li4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgICAgfCAgMjggKysrLS0K IC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuaCAgICB8ICAgMiArLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgIHwgMTEyICsrKysr KysrLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA3MyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5l dC9iY21nZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2Vu ZXQuYwppbmRleCBmNzM1OWQyMjcxZGYuLjZmOWFlNDM2YTZmNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCkBAIC0yODc3LDYgKzI4NzcsMTIg QEAgc3RhdGljIGludCBiY21nZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJaWYg KHByaXYtPmludGVybmFsX3BoeSkKIAkJYmNtZ2VuZXRfcG93ZXJfdXAocHJpdiwgR0VORVRfUE9X RVJfUEFTU0lWRSk7CiAKKwlyZXQgPSBiY21nZW5ldF9taWlfY29ubmVjdChkZXYpOworCWlmIChy ZXQpIHsKKwkJbmV0ZGV2X2VycihkZXYsICJmYWlsZWQgdG8gY29ubmVjdCB0byBQSFlcbiIpOwor CQlnb3RvIGVycl9jbGtfZGlzYWJsZTsKKwl9CisKIAkvKiB0YWtlIE1BQyBvdXQgb2YgcmVzZXQg Ki8KIAliY21nZW5ldF91bWFjX3Jlc2V0KHByaXYpOwogCkBAIC0yODg2LDYgKzI4OTIsMTIgQEAg c3RhdGljIGludCBiY21nZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJcmVnID0g YmNtZ2VuZXRfdW1hY19yZWFkbChwcml2LCBVTUFDX0NNRCk7CiAJcHJpdi0+Y3JjX2Z3ZF9lbiA9 ICEhKHJlZyAmIENNRF9DUkNfRldEKTsKIAorCXJldCA9IGJjbWdlbmV0X21paV9jb25maWcoZGV2 LCB0cnVlKTsKKwlpZiAocmV0KSB7CisJCW5ldGRldl9lcnIoZGV2LCAidW5zdXBwb3J0ZWQgUEhZ XG4iKTsKKwkJZ290byBlcnJfZGlzY29ubmVjdF9waHk7CisJfQorCiAJYmNtZ2VuZXRfc2V0X2h3 X2FkZHIocHJpdiwgZGV2LT5kZXZfYWRkcik7CiAKIAlpZiAocHJpdi0+aW50ZXJuYWxfcGh5KSB7 CkBAIC0yOTAxLDcgKzI5MTMsNyBAQCBzdGF0aWMgaW50IGJjbWdlbmV0X29wZW4oc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAlyZXQgPSBiY21nZW5ldF9pbml0X2RtYShwcml2KTsKIAlpZiAocmV0 KSB7CiAJCW5ldGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRE1BXG4iKTsKLQkJ Z290byBlcnJfY2xrX2Rpc2FibGU7CisJCWdvdG8gZXJyX2Rpc2Nvbm5lY3RfcGh5OwogCX0KIAog CS8qIEFsd2F5cyBlbmFibGUgcmluZyAxNiAtIGRlc2NyaXB0b3IgcmluZyAqLwpAQCAtMjkyNCwy NSArMjkzNiwxOSBAQCBzdGF0aWMgaW50IGJjbWdlbmV0X29wZW4oc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIAkJZ290byBlcnJfaXJxMDsKIAl9CiAKLQlyZXQgPSBiY21nZW5ldF9taWlfcHJvYmUo ZGV2KTsKLQlpZiAocmV0KSB7Ci0JCW5ldGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGNvbm5lY3Qg dG8gUEhZXG4iKTsKLQkJZ290byBlcnJfaXJxMTsKLQl9Ci0KIAliY21nZW5ldF9uZXRpZl9zdGFy dChkZXYpOwogCiAJbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyhkZXYpOwogCiAJcmV0dXJuIDA7 CiAKLWVycl9pcnExOgotCWZyZWVfaXJxKHByaXYtPmlycTEsIHByaXYpOwogZXJyX2lycTA6CiAJ ZnJlZV9pcnEocHJpdi0+aXJxMCwgcHJpdik7CiBlcnJfZmluaV9kbWE6CiAJYmNtZ2VuZXRfZG1h X3RlYXJkb3duKHByaXYpOwogCWJjbWdlbmV0X2ZpbmlfZG1hKHByaXYpOworZXJyX2Rpc2Nvbm5l Y3RfcGh5OgorCXBoeV9kaXNjb25uZWN0KGRldi0+cGh5ZGV2KTsKIGVycl9jbGtfZGlzYWJsZToK IAlpZiAocHJpdi0+aW50ZXJuYWxfcGh5KQogCQliY21nZW5ldF9wb3dlcl9kb3duKHByaXYsIEdF TkVUX1BPV0VSX1BBU1NJVkUpOwpAQCAtMzYyNSw2ICszNjMxLDggQEAgc3RhdGljIGludCBiY21n ZW5ldF9yZXN1bWUoc3RydWN0IGRldmljZSAqZCkKIAlpZiAocHJpdi0+aW50ZXJuYWxfcGh5KQog CQliY21nZW5ldF9wb3dlcl91cChwcml2LCBHRU5FVF9QT1dFUl9QQVNTSVZFKTsKIAorCXBoeV9p bml0X2h3KGRldi0+cGh5ZGV2KTsKKwogCWJjbWdlbmV0X3VtYWNfcmVzZXQocHJpdik7CiAKIAlp bml0X3VtYWMocHJpdik7CkBAIC0zNjMzLDggKzM2NDEsNiBAQCBzdGF0aWMgaW50IGJjbWdlbmV0 X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkKQogCWlmIChwcml2LT53b2xvcHRzKQogCQljbGtfZGlz YWJsZV91bnByZXBhcmUocHJpdi0+Y2xrX3dvbCk7CiAKLQlwaHlfaW5pdF9odyhkZXYtPnBoeWRl dik7Ci0KIAkvKiBTcGVlZCBzZXR0aW5ncyBtdXN0IGJlIHJlc3RvcmVkICovCiAJYmNtZ2VuZXRf bWlpX2NvbmZpZyhwcml2LT5kZXYsIGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmgKaW5kZXggZGJjNjlkOGZhMDVmLi43ZmJmNTczZDhk NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdl bmV0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQu aApAQCAtNzIwLDggKzcyMCw4IEBAIEdFTkVUX0lPX01BQ1JPKHJidWYsIEdFTkVUX1JCVUZfT0ZG KTsKIAogLyogTURJTyByb3V0aW5lcyAqLwogaW50IGJjbWdlbmV0X21paV9pbml0KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpOworaW50IGJjbWdlbmV0X21paV9jb25uZWN0KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpOwogaW50IGJjbWdlbmV0X21paV9jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgYm9vbCBpbml0KTsKLWludCBiY21nZW5ldF9taWlfcHJvYmUoc3RydWN0IG5ldF9kZXZpY2Ug KmRldik7CiB2b2lkIGJjbWdlbmV0X21paV9leGl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwog dm9pZCBiY21nZW5ldF9waHlfcG93ZXJfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJvb2wg ZW5hYmxlKTsKIHZvaWQgYmNtZ2VuZXRfbWlpX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlp LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYwppbmRleCBl N2MyOTFiZjRlZDEuLjE3YmI4ZDYwYTE1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vZ2VuZXQvYmNtbWlpLmMKQEAgLTE3Myw2ICsxNzMsNDYgQEAgc3RhdGljIHZvaWQgYmNt Z2VuZXRfbW9jYV9waHlfc2V0dXAoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpCiAJCQkJCSAg YmNtZ2VuZXRfZml4ZWRfcGh5X2xpbmtfdXBkYXRlKTsKIH0KIAoraW50IGJjbWdlbmV0X21paV9j b25uZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWdlbmV0X3ByaXYg KnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4gPSBwcml2 LT5wZGV2LT5kZXYub2Zfbm9kZTsKKwlzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2OworCXUzMiBw aHlfZmxhZ3MgPSAwOworCWludCByZXQ7CisKKwkvKiBDb21tdW5pY2F0ZSB0aGUgaW50ZWdyYXRl ZCBQSFkgcmV2aXNpb24gKi8KKwlpZiAocHJpdi0+aW50ZXJuYWxfcGh5KQorCQlwaHlfZmxhZ3Mg PSBwcml2LT5ncGh5X3JldjsKKworCS8qIEluaXRpYWxpemUgbGluayBzdGF0ZSB2YXJpYWJsZXMg dGhhdCBiY21nZW5ldF9taWlfc2V0dXAoKSB1c2VzICovCisJcHJpdi0+b2xkX2xpbmsgPSAtMTsK Kwlwcml2LT5vbGRfc3BlZWQgPSAtMTsKKwlwcml2LT5vbGRfZHVwbGV4ID0gLTE7CisJcHJpdi0+ b2xkX3BhdXNlID0gLTE7CisKKwlpZiAoZG4pIHsKKwkJcGh5ZGV2ID0gb2ZfcGh5X2Nvbm5lY3Qo ZGV2LCBwcml2LT5waHlfZG4sIGJjbWdlbmV0X21paV9zZXR1cCwKKwkJCQkJcGh5X2ZsYWdzLCBw cml2LT5waHlfaW50ZXJmYWNlKTsKKwkJaWYgKCFwaHlkZXYpIHsKKwkJCXByX2VycigiY291bGQg bm90IGF0dGFjaCB0byBQSFlcbiIpOworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0KKwl9IGVsc2Ug eworCQlwaHlkZXYgPSBkZXYtPnBoeWRldjsKKwkJcGh5ZGV2LT5kZXZfZmxhZ3MgPSBwaHlfZmxh Z3M7CisKKwkJcmV0ID0gcGh5X2Nvbm5lY3RfZGlyZWN0KGRldiwgcGh5ZGV2LCBiY21nZW5ldF9t aWlfc2V0dXAsCisJCQkJCSBwcml2LT5waHlfaW50ZXJmYWNlKTsKKwkJaWYgKHJldCkgeworCQkJ cHJfZXJyKCJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7CisJCQlyZXR1cm4gLUVOT0RFVjsK KwkJfQorCX0KKworCXJldHVybiAwOworfQorCiBpbnQgYmNtZ2VuZXRfbWlpX2NvbmZpZyhzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBib29sIGluaXQpCiB7CiAJc3RydWN0IGJjbWdlbmV0X3ByaXYg KnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtMjY2LDcxICszMDYsMjEgQEAgaW50IGJjbWdl bmV0X21paV9jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgYm9vbCBpbml0KQogCQliY21n ZW5ldF9leHRfd3JpdGVsKHByaXYsIHJlZywgRVhUX1JHTUlJX09PQl9DVFJMKTsKIAl9CiAKLQlp ZiAoaW5pdCkKLQkJZGV2X2luZm8oa2RldiwgImNvbmZpZ3VyaW5nIGluc3RhbmNlIGZvciAlc1xu IiwgcGh5X25hbWUpOwotCi0JcmV0dXJuIDA7Ci19CisJaWYgKGluaXQpIHsKKwkJbGlua21vZGVf Y29weShwaHlkZXYtPmFkdmVydGlzaW5nLCBwaHlkZXYtPnN1cHBvcnRlZCk7CiAKLWludCBiY21n ZW5ldF9taWlfcHJvYmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgYmNtZ2Vu ZXRfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7Ci0Jc3RydWN0IGRldmljZV9ub2RlICpk biA9IHByaXYtPnBkZXYtPmRldi5vZl9ub2RlOwotCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7 Ci0JdTMyIHBoeV9mbGFncyA9IDA7Ci0JaW50IHJldDsKLQotCS8qIENvbW11bmljYXRlIHRoZSBp bnRlZ3JhdGVkIFBIWSByZXZpc2lvbiAqLwotCWlmIChwcml2LT5pbnRlcm5hbF9waHkpCi0JCXBo eV9mbGFncyA9IHByaXYtPmdwaHlfcmV2OwotCi0JLyogSW5pdGlhbGl6ZSBsaW5rIHN0YXRlIHZh cmlhYmxlcyB0aGF0IGJjbWdlbmV0X21paV9zZXR1cCgpIHVzZXMgKi8KLQlwcml2LT5vbGRfbGlu ayA9IC0xOwotCXByaXYtPm9sZF9zcGVlZCA9IC0xOwotCXByaXYtPm9sZF9kdXBsZXggPSAtMTsK LQlwcml2LT5vbGRfcGF1c2UgPSAtMTsKLQotCWlmIChkbikgewotCQlwaHlkZXYgPSBvZl9waHlf Y29ubmVjdChkZXYsIHByaXYtPnBoeV9kbiwgYmNtZ2VuZXRfbWlpX3NldHVwLAotCQkJCQlwaHlf ZmxhZ3MsIHByaXYtPnBoeV9pbnRlcmZhY2UpOwotCQlpZiAoIXBoeWRldikgewotCQkJcHJfZXJy KCJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7Ci0JCQlyZXR1cm4gLUVOT0RFVjsKLQkJfQot CX0gZWxzZSB7Ci0JCXBoeWRldiA9IGRldi0+cGh5ZGV2OwotCQlwaHlkZXYtPmRldl9mbGFncyA9 IHBoeV9mbGFnczsKLQotCQlyZXQgPSBwaHlfY29ubmVjdF9kaXJlY3QoZGV2LCBwaHlkZXYsIGJj bWdlbmV0X21paV9zZXR1cCwKLQkJCQkJIHByaXYtPnBoeV9pbnRlcmZhY2UpOwotCQlpZiAocmV0 KSB7Ci0JCQlwcl9lcnIoImNvdWxkIG5vdCBhdHRhY2ggdG8gUEhZXG4iKTsKLQkJCXJldHVybiAt RU5PREVWOwotCQl9Ci0JfQorCQkvKiBUaGUgaW50ZXJuYWwgUEhZIGhhcyBpdHMgbGluayBpbnRl cnJ1cHRzIHJvdXRlZCB0byB0aGUKKwkJICogRXRoZXJuZXQgTUFDIElTUnMuIE9uIEdFTkVUdjUg dGhlcmUgaXMgYSBoYXJkd2FyZSBpc3N1ZQorCQkgKiB0aGF0IHByZXZlbnRzIHRoZSBzaWduYWxp bmcgb2YgbGluayBVUCBpbnRlcnJ1cHRzIHdoZW4KKwkJICogdGhlIGxpbmsgb3BlcmF0ZXMgYXQg MTBNYnBzLCBzbyBmYWxsYmFjayB0byBwb2xsaW5nIGZvcgorCQkgKiB0aG9zZSB2ZXJzaW9ucyBv ZiBHRU5FVC4KKwkJICovCisJCWlmIChwcml2LT5pbnRlcm5hbF9waHkgJiYgIUdFTkVUX0lTX1Y1 KHByaXYpKQorCQkJcGh5ZGV2LT5pcnEgPSBQSFlfSUdOT1JFX0lOVEVSUlVQVDsKIAotCS8qIENv bmZpZ3VyZSBwb3J0IG11bHRpcGxleGVyIGJhc2VkIG9uIHdoYXQgdGhlIHByb2JlZCBQSFkgZGV2 aWNlIHNpbmNlCi0JICogcmVhZGluZyB0aGUgJ21heC1zcGVlZCcgcHJvcGVydHkgZGV0ZXJtaW5l cyB0aGUgbWF4aW11bSBzdXBwb3J0ZWQKLQkgKiBQSFkgc3BlZWQgd2hpY2ggaXMgbmVlZGVkIGZv ciBiY21nZW5ldF9taWlfY29uZmlnKCkgdG8gY29uZmlndXJlCi0JICogdGhpbmdzIGFwcHJvcHJp YXRlbHkuCi0JICovCi0JcmV0ID0gYmNtZ2VuZXRfbWlpX2NvbmZpZyhkZXYsIHRydWUpOwotCWlm IChyZXQpIHsKLQkJcGh5X2Rpc2Nvbm5lY3QoZGV2LT5waHlkZXYpOwotCQlyZXR1cm4gcmV0Owor CQlkZXZfaW5mbyhrZGV2LCAiY29uZmlndXJpbmcgaW5zdGFuY2UgZm9yICVzXG4iLCBwaHlfbmFt ZSk7CiAJfQogCi0JbGlua21vZGVfY29weShwaHlkZXYtPmFkdmVydGlzaW5nLCBwaHlkZXYtPnN1 cHBvcnRlZCk7Ci0KLQkvKiBUaGUgaW50ZXJuYWwgUEhZIGhhcyBpdHMgbGluayBpbnRlcnJ1cHRz IHJvdXRlZCB0byB0aGUKLQkgKiBFdGhlcm5ldCBNQUMgSVNScy4gT24gR0VORVR2NSB0aGVyZSBp cyBhIGhhcmR3YXJlIGlzc3VlCi0JICogdGhhdCBwcmV2ZW50cyB0aGUgc2lnbmFsaW5nIG9mIGxp bmsgVVAgaW50ZXJydXB0cyB3aGVuCi0JICogdGhlIGxpbmsgb3BlcmF0ZXMgYXQgMTBNYnBzLCBz byBmYWxsYmFjayB0byBwb2xsaW5nIGZvcgotCSAqIHRob3NlIHZlcnNpb25zIG9mIEdFTkVULgot CSAqLwotCWlmIChwcml2LT5pbnRlcm5hbF9waHkgJiYgIUdFTkVUX0lTX1Y1KHByaXYpKQotCQlk ZXYtPnBoeWRldi0+aXJxID0gUEhZX0lHTk9SRV9JTlRFUlJVUFQ7Ci0KIAlyZXR1cm4gMDsKIH0K IAotLSAKMi4yMC4xCgoKRnJvbSBjNmE2MDc0MDBlNWRkNWU5YzMxMDY5OTZkMTQ4NzU1YTg2N2Nj YjQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIEJlcmdlciA8b3BlbmRtYkBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMTYgT2N0IDIwMTkgMTY6MDY6MzIgLTA3MDAKU3ViamVjdDog W1BBVENIIDU1LzU1XSBuZXQ6IGJjbWdlbmV0OiByZXNldCA0MG5tIEVQSFkgb24gZW5lcmd5IGRl dGVjdAoKWyBVcHN0cmVhbSBjb21taXQgMjUzODJiOTkxZDI1MmFlZDk2MWNkNDM0MTc2MjQwZjlk ZTZiYjE1ZiBdCgpUaGUgRVBIWSBpbnRlZ3JhdGVkIGludG8gdGhlIDQwbm0gU2V0LVRvcCBCb3gg ZGV2aWNlcyBjYW4gZmFsc2VseQpkZXRlY3QgZW5lcmd5IHdoZW4gY29ubmVjdGVkIHRvIGEgZGlz YWJsZWQgcGVlciBpbnRlcmZhY2UuIFdoZW4gdGhlCnBlZXIgaW50ZXJmYWNlIGlzIGVuYWJsZWQg dGhlIEVQSFkgd2lsbCBkZXRlY3QgYW5kIHJlcG9ydCB0aGUgbGluawphcyBhY3RpdmUsIGJ1dCBv biBvY2Nhc2lvbiBtYXkgZ2V0IGludG8gYSBzdGF0ZSB3aGVyZSBpdCBpcyBub3QKYWJsZSB0byBl eGNoYW5nZSBkYXRhIHdpdGggdGhlIGNvbm5lY3RlZCBHRU5FVCBNQUMuIFRoaXMgaXNzdWUgaGFz Cm5vdCBiZWVuIG9ic2VydmVkIHdoZW4gdGhlIGxpbmsgcGFyYW1ldGVycyBhcmUgYXV0by1uZWdv dGlhdGVkOwpob3dldmVyLCBpdCBoYXMgYmVlbiBvYnNlcnZlZCB3aXRoIGEgbWFudWFsbHkgY29u ZmlndXJlZCBsaW5rLgoKSXQgaGFzIGJlZW4gZW1waXJpY2FsbHkgZGV0ZXJtaW5lZCB0aGF0IGlz c3VpbmcgYSBzb2Z0IHJlc2V0IHRvIHRoZQpFUEhZIHdoZW4gZW5lcmd5IGlzIGRldGVjdGVkIHBy ZXZlbnRzIGl0IGZyb20gZ2V0dGluZyBpbnRvIHRoaXMgYmFkCnN0YXRlLgoKRml4ZXM6IDFjMTAw OGM3OTNmYSAoIm5ldDogYmNtZ2VuZXQ6IGFkZCBtYWluIGRyaXZlciBmaWxlIikKU2lnbmVkLW9m Zi1ieTogRG91ZyBCZXJnZXIgPG9wZW5kbWJAZ21haWwuY29tPgpBY2tlZC1ieTogRmxvcmlhbiBG YWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9nZW5ldC9iY21nZW5ldC5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vZ2VuZXQvYmNtZ2VuZXQuYwppbmRleCA2ZjlhZTQzNmE2ZjQuLjdhYmY1Y2YyOWE4NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCkBA IC0yMDE4LDYgKzIwMTgsOCBAQCBzdGF0aWMgdm9pZCBiY21nZW5ldF9saW5rX2ludHJfZW5hYmxl KHN0cnVjdCBiY21nZW5ldF9wcml2ICpwcml2KQogCSAqLwogCWlmIChwcml2LT5pbnRlcm5hbF9w aHkpIHsKIAkJaW50MF9lbmFibGUgfD0gVU1BQ19JUlFfTElOS19FVkVOVDsKKwkJaWYgKEdFTkVU X0lTX1YxKHByaXYpIHx8IEdFTkVUX0lTX1YyKHByaXYpIHx8IEdFTkVUX0lTX1YzKHByaXYpKQor CQkJaW50MF9lbmFibGUgfD0gVU1BQ19JUlFfUEhZX0RFVF9SOwogCX0gZWxzZSBpZiAocHJpdi0+ ZXh0X3BoeSkgewogCQlpbnQwX2VuYWJsZSB8PSBVTUFDX0lSUV9MSU5LX0VWRU5UOwogCX0gZWxz ZSBpZiAocHJpdi0+cGh5X2ludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfTU9DQSkgewpA QCAtMjYxNiw5ICsyNjE4LDE0IEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X2lycV90YXNrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKIAlwcml2LT5pcnEwX3N0YXQgPSAwOwogCXNwaW5fdW5sb2Nr X2lycSgmcHJpdi0+bG9jayk7CiAKKwlpZiAoc3RhdHVzICYgVU1BQ19JUlFfUEhZX0RFVF9SICYm CisJICAgIHByaXYtPmRldi0+cGh5ZGV2LT5hdXRvbmVnICE9IEFVVE9ORUdfRU5BQkxFKQorCQlw aHlfaW5pdF9odyhwcml2LT5kZXYtPnBoeWRldik7CisKIAkvKiBMaW5rIFVQL0RPV04gZXZlbnQg Ki8KIAlpZiAoc3RhdHVzICYgVU1BQ19JUlFfTElOS19FVkVOVCkKIAkJcGh5X21hY19pbnRlcnJ1 cHQocHJpdi0+ZGV2LT5waHlkZXYpOworCiB9CiAKIC8qIGJjbWdlbmV0X2lzcjE6IGhhbmRsZSBS eCBhbmQgVHggcHJpb3JpdHkgcXVldWVzICovCkBAIC0yNzEzLDcgKzI3MjAsNyBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgYmNtZ2VuZXRfaXNyMChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJfQogCiAJ LyogYWxsIG90aGVyIGludGVyZXN0ZWQgaW50ZXJydXB0cyBoYW5kbGVkIGluIGJvdHRvbSBoYWxm ICovCi0Jc3RhdHVzICY9IFVNQUNfSVJRX0xJTktfRVZFTlQ7CisJc3RhdHVzICY9IChVTUFDX0lS UV9MSU5LX0VWRU5UIHwgVU1BQ19JUlFfUEhZX0RFVF9SKTsKIAlpZiAoc3RhdHVzKSB7CiAJCS8q IFNhdmUgaXJxIHN0YXR1cyBmb3IgYm90dG9tLWhhbGYgcHJvY2Vzc2luZy4gKi8KIAkJc3Bpbl9s b2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKLS0gCjIuMjAuMQoK ----Next_Part(Mon_Nov__4_17_51_59_2019_455)----