Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oqGye-0003UX-LH for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Nov 2022 16:52:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oqGyd-0001my-9x for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Nov 2022 16:52:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oqGyc-0001mp-1a for pgsql-hackers@lists.postgresql.org; Wed, 02 Nov 2022 16:52:30 +0000 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oqGyW-0005Ch-CX for pgsql-hackers@postgresql.org; Wed, 02 Nov 2022 16:52:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1667407945; x=1698943945; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=yyPDQOMSyHoh5tAnSTfHCjMhbnFuFDuULMZV88P/E00=; b=agB1kVQMnXrud/LUqlPeo5J+MfGq7a36wV6uVXPYOR0dzdvaFyjjvsro 7rYFEhDH4rgkHn+JVQJlfwPrkJgsQUf316vDhJKPqzv05TH8eryDH1ITo M2lrWAFUoTdgnjkDzGs4xX10JLRFEaqTsnItueOPwz0KyR410ng0B4r8r o=; X-Amazon-filename: v13-0001--Show-progress-for-index-vacuums.patch, v1-0001-Function-to-return-currently-vacuumed-or-cleaned-ind.patch X-IronPort-AV: E=Sophos;i="5.95,234,1661817600"; d="scan'208,223";a="237987032" Subject: Re: Add index scan progress to pg_stat_progress_vacuum Thread-Topic: Add index scan progress to pg_stat_progress_vacuum Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-iad-1d-m6i4x-d23e07e8.us-east-1.amazon.com) ([10.43.8.6]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 16:52:22 +0000 Received: from EX13MTAUWC002.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38]) by email-inbound-relay-iad-1d-m6i4x-d23e07e8.us-east-1.amazon.com (Postfix) with ESMTPS id AD70F821FE; Wed, 2 Nov 2022 16:52:20 +0000 (UTC) Received: from EX19D003UWC004.ant.amazon.com (10.13.138.150) by EX13MTAUWC002.ant.amazon.com (10.43.162.240) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 2 Nov 2022 16:52:20 +0000 Received: from EX19D013UWA001.ant.amazon.com (10.13.138.253) by EX19D003UWC004.ant.amazon.com (10.13.138.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1118.15; Wed, 2 Nov 2022 16:52:19 +0000 Received: from EX19D013UWA001.ant.amazon.com ([fe80::807f:6670:c11c:d4a2]) by EX19D013UWA001.ant.amazon.com ([fe80::807f:6670:c11c:d4a2%5]) with mapi id 15.02.1118.015; Wed, 2 Nov 2022 16:52:19 +0000 From: "Imseih (AWS), Sami" To: Masahiko Sawada CC: Robert Haas , "Bossart, Nathan" , Andres Freund , Peter Geoghegan , Justin Pryzby , "pgsql-hackers@postgresql.org" Thread-Index: AQHY3XbtUIEdLIq7J0GZ0SEhIeWtFK4I4jOAgAF3pICAA6gFAIAdplSA Date: Wed, 2 Nov 2022 16:52:19 +0000 Message-ID: References: <78C9A1C5-8593-47F8-8717-42C554A724E9@amazon.com> <49A92D21-6EBD-45DB-B533-D7EA3F918524@amazon.com> <75570A36-27E0-4128-BB97-FC3CDAE03025@amazon.com> <3022E190-6FD1-483E-81BC-B03AD396D902@amazon.com> <20220403165002.co5waztdyfkenl56@alap3.anarazel.de> <0601FEDE-5DE8-4F03-9F7C-7A927302475C@amazon.com> <399FC5A4-4DF8-4553-9E62-69322DDB63F5@amazon.com> <422CE0B2-60A7-4E87-B5B1-5393DDF1DA21@amazon.com> <90FA5275-1E29-4089-AA00-7F631E0720C3@amazon.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.106.178.12] Content-Type: multipart/mixed; boundary="_003_D460F8EFD61F46F393FEE6B5EB2F687Aamazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_003_D460F8EFD61F46F393FEE6B5EB2F687Aamazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <1942C3BCDEFF40498BBC39D889C2C2D6@amazon.com> Content-Transfer-Encoding: base64 QXR0YWNoZWQgaXMgdjEzLTAwMDEtLVNob3ctcHJvZ3Jlc3MtZm9yLWluZGV4LXZhY3V1bXMucGF0 Y2ggd2hpY2ggYWRkcmVzc2VzDQp0aGUgbGF0ZXN0IGNvbW1lbnRzLiBUaGUgbWFpbiBjaGFuZ2Vz IGFyZToNCg0KMS8gQ2FsbCB0aGUgcGFyYWxsZWxfdmFjdXVtX3Byb2dyZXNzX3JlcG9ydCBpbnNp ZGUgdGhlIEFNcyByYXRoZXIgdGhhbiB2YWN1dW1fZGVsYXlfcG9pbnQuDQoNCjIvIEEgQm9vbGVh biB3aGVuIHNldCB0byBUcnVlIGluIHZhY3V1bXBhcmFsbGVsLmMgd2lsbCBiZSB1c2VkIHRvIGRl dGVybWluZSBpZiBjYWxsaW5nDQpwYXJhbGxlbF92YWN1dW1fcHJvZ3Jlc3NfcmVwb3J0IGlzIG5l Y2Vzc2FyeS4NCg0KMy8gUmVtb3ZlZCBnbG9iYWwgdmFyaWxhYmxlIGZyb20gdmFjdXVtcGFyYWxs ZWwuYw0KDQo0LyBXZW50IGJhY2sgdG8gY2FsbGluZyBwYXJhbGxlbF92YWN1dW1fcHJvZ3Jlc3Nf cmVwb3J0IGluc2lkZSANCldhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0ZpbmlzaCB0byBjb3ZlciB0 aGUgY2FzZSB3aGVuIGEgDQpsZWFkZXIgaXMgd2FpdGluZyBmb3IgcGFyYWxsZWwgd29ya2VycyB0 byBmaW5pc2guDQoNCjUvIEkgZGlkIG5vdCBzZWUgYSBuZWVkIHRvIG9ubHkgcmVwb3J0IHByb2dy ZXNzIGFmdGVyIDFHQiBhcyBpdCdzIGEgZmFpcmx5IGNoZWFwIGNhbGwgdG8gdXBkYXRlDQpwcm9n cmVzcy4NCg0KNi8gdjEtMDAwMS1GdW5jdGlvbi10by1yZXR1cm4tY3VycmVudGx5LXZhY3V1bWVk LW9yLWNsZWFuZWQtaW5kLnBhdGNoIGlzIGEgc2VwYXJhdGUgcGF0Y2gNCmZvciBleHBvc2luZyB0 aGUgaW5kZXggcmVsaWQgYmVpbmcgdmFjdXVtZWQgYnkgYSBiYWNrZW5kLiANCg0KVGhhbmtzDQoN ClNhbWkgSW1zZWloDQpBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpDQoNCg0KDQoNCg== --_003_D460F8EFD61F46F393FEE6B5EB2F687Aamazoncom_ Content-Type: application/octet-stream; name="v13-0001--Show-progress-for-index-vacuums.patch" Content-Description: v13-0001--Show-progress-for-index-vacuums.patch Content-Disposition: attachment; filename="v13-0001--Show-progress-for-index-vacuums.patch"; size=24868; creation-date="Wed, 02 Nov 2022 16:52:19 GMT"; modification-date="Wed, 02 Nov 2022 16:52:19 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSBlMDgwYzI4ZDA5NTY3Y2IzZGQ5NzRjMDg1NTQ4N2M3MTdkYWQwYTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSW1zZWloIChBV1MpIiA8c2ltc2VpaEA4ODY2NWEyMjc5NWYu YW50LmFtYXpvbi5jb20+CkRhdGU6IFR1ZSwgMSBOb3YgMjAyMiAxMTo1MDoxNCAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggMS8xXSBBZGQgMiBuZXcgY29sdW1ucyB0byBwZ19zdGF0X3Byb2dyZXNzX3Zh Y3V1bS4gVGhlIGNvbHVtbnMKIGFyZSBpbmRleGVzX3RvdGFsIGFzIHRoZSB0b3RhbCBpbmRleGVz IHRvIGJlIHZhY3V1bWVkIG9yIGNsZWFuZWQgYW5kCiBpbmRleGVzX3Byb2Nlc3NlZCBhcyB0aGUg bnVtYmVyIG9mIGluZGV4ZXMgdmFjdXVtZWQgb3IgY2xlYW5lZCB1cCBzbyBmYXIuCgpBdXRob3I6 IFNhbWkgSW1zZWloLCBiYXNlZCBvbiBzdWdnZXN0aW9ucyBieSBOYXRoYW4gQm9zc2FydCwgUGV0 ZXIgR2VvZ2hlZ2FuIGFuZCBNYXNhaGlrbyBTYXdhZGEKUmV2aWV3ZWQgYnk6IE5hdGhhbiBCb3Nz YXJ0LCBNYXNhaGlrbyBTYXdhZGEKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5v cmcvbWVzc2FnZS1pZC9mbGF0LzU0NzhERkNELTIzMzMtNDAxQS1CMkYwLTBEMTg2QUIwOTIyOEBh bWF6b24uY29tCi0tLQogY29udHJpYi9ibG9vbS9ibHZhY3V1bS5jICAgICAgICAgICAgICB8ICA2 ICsrKwogZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCAgICAgICAgICB8IDIxICsrKysrKysr Kwogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICB8ICA5ICsrLS0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFjdXVtLmMgICAgfCAgOSArKysrCiBzcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMgIHwgIDUgKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFz aC9oYXNoLmMgICAgICAgIHwgIDggKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBh Z2UuYyAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgIHwg NDAgKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMg ICAgfCAgMyArKwogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyB8ICAzICsr CiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9wYXJhbGxlbC5jIHwgIDUgKysrCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1w YXJhbGxlbC5jIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvZ2VuYW0uaCAgICAgICAgICAgIHwgIDMgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oYXNo LmggICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmggICAg ICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb2dyZXNzLmggICAgICAgfCAgMiAr CiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgIHwgIDIgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICB8ICA0ICstCiAyMCBmaWxlcyBjaGFuZ2VkLCAx ODQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9i bG9vbS9ibHZhY3V1bS5jIGIvY29udHJpYi9ibG9vbS9ibHZhY3V1bS5jCmluZGV4IDkxZmFlNWIw YzAuLjE5YWU4MTljZmUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYmxvb20vYmx2YWN1dW0uYworKysg Yi9jb250cmliL2Jsb29tL2JsdmFjdXVtLmMKQEAgLTEzNiw2ICsxMzYsOSBAQCBibGJ1bGtkZWxl dGUoSW5kZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzLAog CQkJR2VuZXJpY1hMb2dBYm9ydChneGxvZ1N0YXRlKTsKIAkJfQogCQlVbmxvY2tSZWxlYXNlQnVm ZmVyKGJ1ZmZlcik7CisKKwkJaWYgKGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcykKKwkJ CWluZm8tPnBhcmFsbGVsX3Byb2dyZXNzX2NhbGxiYWNrKGluZm8tPnBhcmFsbGVsX3Byb2dyZXNz X2FyZyk7CiAJfQogCiAJLyoKQEAgLTIwOSw2ICsyMTIsOSBAQCBibHZhY3V1bWNsZWFudXAoSW5k ZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzKQogCQl9CiAK IAkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOworCisJCWlmIChpbmZvLT5yZXBvcnRfcGFy YWxsZWxfcHJvZ3Jlc3MpCisJCQlpbmZvLT5wYXJhbGxlbF9wcm9ncmVzc19jYWxsYmFjayhpbmZv LT5wYXJhbGxlbF9wcm9ncmVzc19hcmcpOwogCX0KIAogCUluZGV4RnJlZVNwYWNlTWFwVmFjdXVt KGluZm8tPmluZGV4KTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IGU1ZDYyMmQ1MTQuLmM2MTQ0M2Yz ZDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL21vbml0b3Jpbmcuc2dtbApAQCAtNjQ1NSw2ICs2NDU1LDI3IEBAIEZST00gcGdfc3Rh dF9nZXRfYmFja2VuZF9pZHNldCgpIEFTIGJhY2tlbmRpZDsKICAgICAgICBOdW1iZXIgb2YgZGVh ZCB0dXBsZXMgY29sbGVjdGVkIHNpbmNlIHRoZSBsYXN0IGluZGV4IHZhY3V1bSBjeWNsZS4KICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW5kZXhlc190b3RhbDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE51 bWJlciBvZiBpbmRleGVzIHRoYXQgd2lsIGJlIHZhY3V1bWVkLiBUaGlzIHZhbHVlIHdpbGwgYmUK KyAgICAgICA8bGl0ZXJhbD4wPC9saXRlcmFsPiBpZiB0aGVyZSBhcmUgbm8gaW5kZXhlcyB0byB2 YWN1dW0gb3IKKyAgICAgICB2YWN1dW0gZmFpbHNhZmUgaXMgdHJpZ2dlcmVkLiBTZWUgPHhyZWYg bGlua2VuZD0iZ3VjLXZhY3V1bS1mYWlsc2FmZS1hZ2UiLz4KKyAgICAgICBmb3IgbW9yZSBvbiB2 YWN1dW0gZmFpbHNhZmUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmluZGV4ZXNfY29t cGxldGVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTnVtYmVyIG9mIGluZGV4ZXMgdmFjdXVtZWQgaW4gdGhlIGN1 cnJlbnQgdmFjdXVtIGN5Y2xlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgog ICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4u YwppbmRleCAyMGI3ZDY1Yjk0Li5iZDk2ZWNmNDFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBA IC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIGJyaW5zdW1tYXJpemUoUmVsYXRpb24gaW5kZXgs IFJlbGF0aW9uIGhlYXBSZWwsIEJsb2NrTnVtYmVyIHBhZ2VSYW5nCiBzdGF0aWMgdm9pZCBmb3Jt X2FuZF9pbnNlcnRfdHVwbGUoQnJpbkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIHVu aW9uX3R1cGxlcyhCcmluRGVzYyAqYmRlc2MsIEJyaW5NZW1UdXBsZSAqYSwKIAkJCQkJCSBCcmlu VHVwbGUgKmIpOwotc3RhdGljIHZvaWQgYnJpbl92YWN1dW1fc2NhbihSZWxhdGlvbiBpZHhyZWws IEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5KTsKK3N0YXRpYyB2b2lkIGJyaW5fdmFjdXVt X3NjYW4oUmVsYXRpb24gaWR4cmVsLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBzdHJhdGVneSwgSW5k ZXhWYWN1dW1JbmZvICppbmZvKTsKIHN0YXRpYyBib29sIGFkZF92YWx1ZXNfdG9fcmFuZ2UoUmVs YXRpb24gaWR4UmVsLCBCcmluRGVzYyAqYmRlc2MsCiAJCQkJCQkJCUJyaW5NZW1UdXBsZSAqZHR1 cCwgRGF0dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMpOwogc3RhdGljIGJvb2wgY2hlY2tfbnVsbF9r ZXlzKEJyaW5WYWx1ZXMgKmJ2YWwsIFNjYW5LZXkgKm51bGxrZXlzLCBpbnQgbm51bGxrZXlzKTsK QEAgLTk1Miw3ICs5NTIsNyBAQCBicmludmFjdXVtY2xlYW51cChJbmRleFZhY3V1bUluZm8gKmlu Zm8sIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMpCiAJaGVhcFJlbCA9IHRhYmxlX29wZW4o SW5kZXhHZXRSZWxhdGlvbihSZWxhdGlvbkdldFJlbGlkKGluZm8tPmluZGV4KSwgZmFsc2UpLAog CQkJCQkJIEFjY2Vzc1NoYXJlTG9jayk7CiAKLQlicmluX3ZhY3V1bV9zY2FuKGluZm8tPmluZGV4 LCBpbmZvLT5zdHJhdGVneSk7CisJYnJpbl92YWN1dW1fc2NhbihpbmZvLT5pbmRleCwgaW5mby0+ c3RyYXRlZ3ksIGluZm8pOwogCiAJYnJpbnN1bW1hcml6ZShpbmZvLT5pbmRleCwgaGVhcFJlbCwg QlJJTl9BTExfQkxPQ0tSQU5HRVMsIGZhbHNlLAogCQkJCSAgJnN0YXRzLT5udW1faW5kZXhfdHVw bGVzLCAmc3RhdHMtPm51bV9pbmRleF90dXBsZXMpOwpAQCAtMTY1OSw3ICsxNjU5LDcgQEAgdW5p b25fdHVwbGVzKEJyaW5EZXNjICpiZGVzYywgQnJpbk1lbVR1cGxlICphLCBCcmluVHVwbGUgKmIp CiAgKiBhbmQgc3VjaC4KICAqLwogc3RhdGljIHZvaWQKLWJyaW5fdmFjdXVtX3NjYW4oUmVsYXRp b24gaWR4cmVsLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBzdHJhdGVneSkKK2JyaW5fdmFjdXVtX3Nj YW4oUmVsYXRpb24gaWR4cmVsLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBzdHJhdGVneSwgSW5kZXhW YWN1dW1JbmZvICppbmZvKQogewogCUJsb2NrTnVtYmVyIG5ibG9ja3M7CiAJQmxvY2tOdW1iZXIg Ymxrbm87CkBAIC0xNjgxLDYgKzE2ODEsOSBAQCBicmluX3ZhY3V1bV9zY2FuKFJlbGF0aW9uIGlk eHJlbCwgQnVmZmVyQWNjZXNzU3RyYXRlZ3kgc3RyYXRlZ3kpCiAJCWJyaW5fcGFnZV9jbGVhbnVw KGlkeHJlbCwgYnVmKTsKIAogCQlSZWxlYXNlQnVmZmVyKGJ1Zik7CisKKwkJaWYgKGluZm8tPnJl cG9ydF9wYXJhbGxlbF9wcm9ncmVzcykKKwkJCWluZm8tPnBhcmFsbGVsX3Byb2dyZXNzX2NhbGxi YWNrKGluZm8tPnBhcmFsbGVsX3Byb2dyZXNzX2FyZyk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv Z2luL2dpbnZhY3V1bS5jCmluZGV4IGI0ZmE1ZjZiZjguLjNkNWU0NjAwZGMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW52YWN1dW0uYwpAQCAtNjMzLDYgKzYzMyw5IEBAIGdpbmJ1bGtkZWxldGUoSW5k ZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzLAogCQlVbmxv Y2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CiAJCWJ1ZmZlciA9IFJlYWRCdWZmZXJFeHRlbmRlZChp bmRleCwgTUFJTl9GT1JLTlVNLCBibGtubywKIAkJCQkJCQkJCVJCTV9OT1JNQUwsIGluZm8tPnN0 cmF0ZWd5KTsKKworCQlpZiAoaW5mby0+cmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzKQorCQkJaW5m by0+cGFyYWxsZWxfcHJvZ3Jlc3NfY2FsbGJhY2soaW5mby0+cGFyYWxsZWxfcHJvZ3Jlc3NfYXJn KTsKIAl9CiAKIAkvKiByaWdodCBub3cgd2UgZm91bmQgbGVmdG1vc3QgcGFnZSBpbiBlbnRyeSdz IEJUcmVlICovCkBAIC02NzcsNiArNjgwLDkgQEAgZ2luYnVsa2RlbGV0ZShJbmRleFZhY3V1bUlu Zm8gKmluZm8sIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAJCWJ1ZmZlciA9IFJlYWRC dWZmZXJFeHRlbmRlZChpbmRleCwgTUFJTl9GT1JLTlVNLCBibGtubywKIAkJCQkJCQkJCVJCTV9O T1JNQUwsIGluZm8tPnN0cmF0ZWd5KTsKIAkJTG9ja0J1ZmZlcihidWZmZXIsIEdJTl9FWENMVVNJ VkUpOworCisJCWlmIChpbmZvLT5yZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3MpCisJCQlpbmZvLT5w YXJhbGxlbF9wcm9ncmVzc19jYWxsYmFjayhpbmZvLT5wYXJhbGxlbF9wcm9ncmVzc19hcmcpOwog CX0KIAogCU1lbW9yeUNvbnRleHREZWxldGUoZ3ZzLnRtcEN4dCk7CkBAIC03NzUsNiArNzgxLDkg QEAgZ2ludmFjdXVtY2xlYW51cChJbmRleFZhY3V1bUluZm8gKmluZm8sIEluZGV4QnVsa0RlbGV0 ZVJlc3VsdCAqc3RhdHMpCiAJCX0KIAogCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CisK KwkJaWYgKGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcykKKwkJCWluZm8tPnBhcmFsbGVs X3Byb2dyZXNzX2NhbGxiYWNrKGluZm8tPnBhcmFsbGVsX3Byb2dyZXNzX2FyZyk7CiAJfQogCiAJ LyogVXBkYXRlIHRoZSBtZXRhcGFnZSB3aXRoIGFjY3VyYXRlIHBhZ2UgYW5kIGVudHJ5IGNvdW50 cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhY3V1bS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhY3V1bS5jCmluZGV4IDBhYTZlNThhNjIuLmRh M2EwNTQwZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWN1dW0u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMKQEAgLTIyMyw3ICsy MjMsMTIgQEAgZ2lzdHZhY3V1bXNjYW4oSW5kZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtE ZWxldGVSZXN1bHQgKnN0YXRzLAogCQkJYnJlYWs7CiAJCS8qIEl0ZXJhdGUgb3ZlciBwYWdlcywg dGhlbiBsb29wIGJhY2sgdG8gcmVjaGVjayBsZW5ndGggKi8KIAkJZm9yICg7IGJsa25vIDwgbnVt X3BhZ2VzOyBibGtubysrKQorCQl7CiAJCQlnaXN0dmFjdXVtcGFnZSgmdnN0YXRlLCBibGtubywg Ymxrbm8pOworCisJCQlpZiAoaW5mby0+cmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzKQorCQkJCWlu Zm8tPnBhcmFsbGVsX3Byb2dyZXNzX2NhbGxiYWNrKGluZm8tPnBhcmFsbGVsX3Byb2dyZXNzX2Fy Zyk7CisJCX0KIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jCmluZGV4IGMzNjE1MDlkNjgu LjE0NzkwYWRmNjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoLmMKQEAgLTU1MCw3ICs1NTAsNyBAQCBs b29wX3RvcDoKIAkJCQkJCSAgY2FjaGVkbWV0YXAtPmhhc2htX2hpZ2htYXNrLAogCQkJCQkJICBj YWNoZWRtZXRhcC0+aGFzaG1fbG93bWFzaywgJnR1cGxlc19yZW1vdmVkLAogCQkJCQkJICAmbnVt X2luZGV4X3R1cGxlcywgc3BsaXRfY2xlYW51cCwKLQkJCQkJCSAgY2FsbGJhY2ssIGNhbGxiYWNr X3N0YXRlKTsKKwkJCQkJCSAgY2FsbGJhY2ssIGNhbGxiYWNrX3N0YXRlLCBpbmZvKTsKIAogCQlf aGFzaF9kcm9wYnVmKHJlbCwgYnVja2V0X2J1Zik7CiAKQEAgLTY4Niw3ICs2ODYsOCBAQCBoYXNo YnVja2V0Y2xlYW51cChSZWxhdGlvbiByZWwsIEJ1Y2tldCBjdXJfYnVja2V0LCBCdWZmZXIgYnVj a2V0X2J1ZiwKIAkJCQkgIHVpbnQzMiBtYXhidWNrZXQsIHVpbnQzMiBoaWdobWFzaywgdWludDMy IGxvd21hc2ssCiAJCQkJICBkb3VibGUgKnR1cGxlc19yZW1vdmVkLCBkb3VibGUgKm51bV9pbmRl eF90dXBsZXMsCiAJCQkJICBib29sIHNwbGl0X2NsZWFudXAsCi0JCQkJICBJbmRleEJ1bGtEZWxl dGVDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2FsbGJhY2tfc3RhdGUpCisJCQkJICBJbmRleEJ1 bGtEZWxldGVDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2FsbGJhY2tfc3RhdGUsCisJCQkJICBJ bmRleFZhY3V1bUluZm8gKmluZm8pCiB7CiAJQmxvY2tOdW1iZXIgYmxrbm87CiAJQnVmZmVyCQli dWY7CkBAIC03NzUsNiArNzc2LDkgQEAgaGFzaGJ1Y2tldGNsZWFudXAoUmVsYXRpb24gcmVsLCBC dWNrZXQgY3VyX2J1Y2tldCwgQnVmZmVyIGJ1Y2tldF9idWYsCiAJCQkJaWYgKG51bV9pbmRleF90 dXBsZXMpCiAJCQkJCSpudW1faW5kZXhfdHVwbGVzICs9IDE7CiAJCQl9CisKKwkJCWlmIChpbmZv ICYmIGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcykKKwkJCQlpbmZvLT5wYXJhbGxlbF9w cm9ncmVzc19jYWxsYmFjayhpbmZvLT5wYXJhbGxlbF9wcm9ncmVzc19hcmcpOwogCQl9CiAKIAkJ LyogcmV0YWluIHRoZSBwaW4gb24gcHJpbWFyeSBidWNrZXQgcGFnZSB0aWxsIGVuZCBvZiBidWNr ZXQgc2NhbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2Uu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hwYWdlLmMKaW5kZXggZDJlZGNkNDYxNy4u ZTljZTFhMTExMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2Uu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNocGFnZS5jCkBAIC03NTksNyArNzU5 LDcgQEAgcmVzdGFydF9leHBhbmQ6CiAKIAkJaGFzaGJ1Y2tldGNsZWFudXAocmVsLCBvbGRfYnVj a2V0LCBidWZfb2Jsa25vLCBzdGFydF9vYmxrbm8sIE5VTEwsCiAJCQkJCQkgIG1heGJ1Y2tldCwg aGlnaG1hc2ssIGxvd21hc2ssIE5VTEwsIE5VTEwsIHRydWUsCi0JCQkJCQkgIE5VTEwsIE5VTEwp OworCQkJCQkJICBOVUxMLCBOVUxMLCBOVUxMKTsKIAogCQlfaGFzaF9kcm9wYnVmKHJlbCwgYnVm X29ibGtubyk7CiAKQEAgLTEzMjcsNyArMTMyNyw3IEBAIF9oYXNoX3NwbGl0YnVja2V0KFJlbGF0 aW9uIHJlbCwKIAkJaGFzaGJ1Y2tldGNsZWFudXAocmVsLCBvYnVja2V0LCBidWNrZXRfb2J1ZiwK IAkJCQkJCSAgQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVja2V0X29idWYpLCBOVUxMLAogCQkJCQkJ ICBtYXhidWNrZXQsIGhpZ2htYXNrLCBsb3dtYXNrLCBOVUxMLCBOVUxMLCB0cnVlLAotCQkJCQkJ ICBOVUxMLCBOVUxMKTsKKwkJCQkJCSAgTlVMTCwgTlVMTCwgTlVMTCk7CiAJfQogCWVsc2UKIAl7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZGZiZTM3NDcyZi4uMTIwYTJi MThkNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDIwLDYgKzQyMCwx MCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywK IAl2YWNyZWwtPnJlbCA9IHJlbDsKIAl2YWNfb3Blbl9pbmRleGVzKHZhY3JlbC0+cmVsLCBSb3dF eGNsdXNpdmVMb2NrLCAmdmFjcmVsLT5uaW5kZXhlcywKIAkJCQkJICZ2YWNyZWwtPmluZHJlbHMp OworCisJLyogcmVwb3J0IG51bWJlciBvZiBpbmRleGVzIHRvIHZhY3V1bSAqLworCXBnc3RhdF9w cm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX0lOREVYX1RPVEFMLCB2YWNyZWwt Pm5pbmRleGVzKTsKKwogCWlmIChpbnN0cnVtZW50ICYmIHZhY3JlbC0+bmluZGV4ZXMgPiAwKQog CXsKIAkJLyogQ29weSBpbmRleCBuYW1lcyB1c2VkIGJ5IGluc3RydW1lbnRhdGlvbiAobm90IGVy cm9yIHJlcG9ydGluZykgKi8KQEAgLTIzNDEsNiArMjM0NSwxMiBAQCBsYXp5X3ZhY3V1bV9hbGxf aW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJCQkJbGF6eV92YWN1dW1fb25lX2luZGV4KGlu ZHJlbCwgaXN0YXQsIHZhY3JlbC0+b2xkX2xpdmVfdHVwbGVzLAogCQkJCQkJCQkJICB2YWNyZWwp OwogCisJCQkvKgorCQkJICogRG9uZSB2YWN1dW1pbmcgYW4gaW5kZXguIEluY3JlbWVudCB0aGUg aW5kZXhlcyBjb21wbGV0ZWQKKwkJCSAqLworCQkJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJh bShQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExFVEVELAorCQkJCQkJCQkJCSBpZHggKyAxKTsK KwogCQkJaWYgKGxhenlfY2hlY2tfd3JhcGFyb3VuZF9mYWlsc2FmZSh2YWNyZWwpKQogCQkJewog CQkJCS8qIFdyYXBhcm91bmQgZW1lcmdlbmN5IC0tIGVuZCBjdXJyZW50IGluZGV4IHNjYW4gKi8K QEAgLTIzODQsNiArMjM5NCwxMyBAQCBsYXp5X3ZhY3V1bV9hbGxfaW5kZXhlcyhMVlJlbFN0YXRl ICp2YWNyZWwpCiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19WQUNVVU1f TlVNX0lOREVYX1ZBQ1VVTVMsCiAJCQkJCQkJCSB2YWNyZWwtPm51bV9pbmRleF9zY2Fucyk7CiAK KwkvKgorCSAqIFJlc2V0IHRoZSBpbmRleGVzIGNvbXBsZXRlZCBhdCB0aGlzIHBvaW50LgorCSAq IElmIHdlIGVuZCB1cCBpbiBhbm90aGVyIGluZGV4IHZhY3V1bSBjeWNsZSwgd2Ugd2lsbAorCSAq IHN0YXJ0IGNvdW50aW5nIGZyb20gdGhlIHN0YXJ0LgorCSAqLworCXBnc3RhdF9wcm9ncmVzc191 cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX0lOREVYX0NPTVBMRVRFRCwgMCk7CisKIAlyZXR1 cm4gYWxsaW5kZXhlczsKIH0KIApAQCAtMjYzMywxMCArMjY1MCwxNyBAQCBsYXp5X2NoZWNrX3dy YXBhcm91bmRfZmFpbHNhZmUoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCXsKIAkJdmFjcmVsLT5mYWls c2FmZV9hY3RpdmUgPSB0cnVlOwogCi0JCS8qIERpc2FibGUgaW5kZXggdmFjdXVtaW5nLCBpbmRl eCBjbGVhbnVwLCBhbmQgaGVhcCByZWwgdHJ1bmNhdGlvbiAqLworCQkvKgorCQkgKiBEaXNhYmxl IGluZGV4IHZhY3V1bWluZywgaW5kZXggY2xlYW51cCwgYW5kIGhlYXAgcmVsIHRydW5jYXRpb24K KwkJICoKKwkJICogQWxzbywgcmVwb3J0IHRvIHByb2dyZXNzLmggdGhhdCB3ZSBhcmUgbm8gbG9u Z2VyIHRyYWNraW5nCisJCSAqIGluZGV4IHZhY3V1bS9jbGVhbnVwLgorCQkgKi8KIAkJdmFjcmVs LT5kb19pbmRleF92YWN1dW1pbmcgPSBmYWxzZTsKIAkJdmFjcmVsLT5kb19pbmRleF9jbGVhbnVw ID0gZmFsc2U7CiAJCXZhY3JlbC0+ZG9fcmVsX3RydW5jYXRlID0gZmFsc2U7CisJCXBnc3RhdF9w cm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX0lOREVYX1RPVEFMLCAwKTsKKwkJ cGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExF VEVELCAwKTsKIAogCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycm1zZygiYnlwYXNzaW5nIG5v bmVzc2VudGlhbCBtYWludGVuYW5jZSBvZiB0YWJsZSBcIiVzLiVzLiVzXCIgYXMgYSBmYWlsc2Fm ZSBhZnRlciAlZCBpbmRleCBzY2FucyIsCkBAIC0yNjg0LDYgKzI3MDgsMTIgQEAgbGF6eV9jbGVh bnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJCXZhY3JlbC0+aW5kc3RhdHNb aWR4XSA9CiAJCQkJbGF6eV9jbGVhbnVwX29uZV9pbmRleChpbmRyZWwsIGlzdGF0LCByZWx0dXBs ZXMsCiAJCQkJCQkJCQkgICBlc3RpbWF0ZWRfY291bnQsIHZhY3JlbCk7CisKKwkJCS8qCisJCQkg KiBEb25lIGNsZWFuaW5nIGFuIGluZGV4LiBJbmNyZW1lbnQgdGhlIGluZGV4ZXMgY29tcGxldGVk CisJCQkgKi8KKwkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVN X0lOREVYX0NPTVBMRVRFRCwKKwkJCQkJCQkJCQkgaWR4ICsgMSk7CiAJCX0KIAl9CiAJZWxzZQpA QCAtMjY5Myw2ICsyNzIzLDEyIEBAIGxhenlfY2xlYW51cF9hbGxfaW5kZXhlcyhMVlJlbFN0YXRl ICp2YWNyZWwpCiAJCQkJCQkJCQkJCXZhY3JlbC0+bnVtX2luZGV4X3NjYW5zLAogCQkJCQkJCQkJ CQllc3RpbWF0ZWRfY291bnQpOwogCX0KKworCS8qCisJICogUmVzZXQgdGhlIGluZGV4ZXMgY29t cGxldGVkIGF0IHRoaXMgcG9pbnQuCisJICovCisJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJh bShQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExFVEVELCAwKTsKKwogfQogCiAvKgpAQCAtMjcx OCw2ICsyNzU0LDcgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5k ZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAlpdmluZm8uaW5kZXggPSBpbmRyZWw7CiAJaXZp bmZvLmFuYWx5emVfb25seSA9IGZhbHNlOwogCWl2aW5mby5yZXBvcnRfcHJvZ3Jlc3MgPSBmYWxz ZTsKKwlpdmluZm8ucmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzID0gZmFsc2U7CiAJaXZpbmZvLmVz dGltYXRlZF9jb3VudCA9IHRydWU7CiAJaXZpbmZvLm1lc3NhZ2VfbGV2ZWwgPSBERUJVRzI7CiAJ aXZpbmZvLm51bV9oZWFwX3R1cGxlcyA9IHJlbHR1cGxlczsKQEAgLTI3NjYsNiArMjgwMyw3IEBA IGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVS ZXN1bHQgKmlzdGF0LAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlpdmluZm8uYW5hbHl6ZV9v bmx5ID0gZmFsc2U7CiAJaXZpbmZvLnJlcG9ydF9wcm9ncmVzcyA9IGZhbHNlOworCWl2aW5mby5y ZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3MgPSBmYWxzZTsKIAlpdmluZm8uZXN0aW1hdGVkX2NvdW50 ID0gZXN0aW1hdGVkX2NvdW50OwogCWl2aW5mby5tZXNzYWdlX2xldmVsID0gREVCVUcyOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwppbmRleCBiNTJlY2E4ZjM4Li45OTA0YTllYjBjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMKQEAgLTk5OCw2ICs5OTgsOSBAQCBidHZhY3V1 bXNjYW4oSW5kZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRz LAogCQkJaWYgKGluZm8tPnJlcG9ydF9wcm9ncmVzcykKIAkJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBk YXRlX3BhcmFtKFBST0dSRVNTX1NDQU5fQkxPQ0tTX0RPTkUsCiAJCQkJCQkJCQkJCSBzY2FuYmxr bm8pOworCisJCQlpZiAoaW5mby0+cmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzKQorCQkJCWluZm8t PnBhcmFsbGVsX3Byb2dyZXNzX2NhbGxiYWNrKGluZm8tPnBhcmFsbGVsX3Byb2dyZXNzX2FyZyk7 CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFj dXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCmluZGV4IDAwNDk2 MzA1MzIuLmIxYWI0OTE5ODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qv c3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpA QCAtODQzLDYgKzg0Myw5IEBAIHNwZ3ZhY3V1bXNjYW4oc3BnQnVsa0RlbGV0ZVN0YXRlICpiZHMp CiAJCQkvKiBlbXB0eSB0aGUgcGVuZGluZy1saXN0IGFmdGVyIGVhY2ggcGFnZSAqLwogCQkJaWYg KGJkcy0+cGVuZGluZ0xpc3QgIT0gTlVMTCkKIAkJCQlzcGdwcm9jZXNzcGVuZGluZyhiZHMpOwor CisJCQlpZiAoYmRzLT5pbmZvLT5yZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3MpCisJCQkJYmRzLT5p bmZvLT5wYXJhbGxlbF9wcm9ncmVzc19jYWxsYmFjayhiZHMtPmluZm8tPnBhcmFsbGVsX3Byb2dy ZXNzX2FyZyk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3BhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9wYXJhbGxlbC5jCmlu ZGV4IGVlMDk4NWM3ZWQuLjBiNGJkZTgyOTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3BhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vcGFy YWxsZWwuYwpAQCAtMTg1LDYgKzE4NSw4IEBAIENyZWF0ZVBhcmFsbGVsQ29udGV4dChjb25zdCBj aGFyICpsaWJyYXJ5X25hbWUsIGNvbnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsCiAJcGN4dC0+bGli cmFyeV9uYW1lID0gcHN0cmR1cChsaWJyYXJ5X25hbWUpOwogCXBjeHQtPmZ1bmN0aW9uX25hbWUg PSBwc3RyZHVwKGZ1bmN0aW9uX25hbWUpOwogCXBjeHQtPmVycm9yX2NvbnRleHRfc3RhY2sgPSBl cnJvcl9jb250ZXh0X3N0YWNrOworCXBjeHQtPnBhcmFsbGVsX3Byb2dyZXNzX2NhbGxiYWNrID0g TlVMTDsKKwlwY3h0LT5wYXJhbGxlbF9wcm9ncmVzc19hcmcgPSBOVUxMOwogCXNobV90b2NfaW5p dGlhbGl6ZV9lc3RpbWF0b3IoJnBjeHQtPmVzdGltYXRvcik7CiAJZGxpc3RfcHVzaF9oZWFkKCZw Y3h0X2xpc3QsICZwY3h0LT5ub2RlKTsKIApAQCAtNzg1LDYgKzc4Nyw5IEBAIFdhaXRGb3JQYXJh bGxlbFdvcmtlcnNUb0ZpbmlzaChQYXJhbGxlbENvbnRleHQgKnBjeHQpCiAJCSAqLwogCQlDSEVD S19GT1JfSU5URVJSVVBUUygpOwogCisJCWlmIChwY3h0LT5wYXJhbGxlbF9wcm9ncmVzc19jYWxs YmFjaykKKwkJCXBjeHQtPnBhcmFsbGVsX3Byb2dyZXNzX2NhbGxiYWNrKHBjeHQtPnBhcmFsbGVs X3Byb2dyZXNzX2FyZyk7CisKIAkJZm9yIChpID0gMDsgaSA8IHBjeHQtPm53b3JrZXJzX2xhdW5j aGVkOyArK2kpCiAJCXsKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggNjFmMWQzOTI2YS4uMTFi MzIxMjlhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtMzM0OCw2ICszMzQ4LDcgQEAgdmFsaWRhdGVf aW5kZXgoT2lkIGhlYXBJZCwgT2lkIGluZGV4SWQsIFNuYXBzaG90IHNuYXBzaG90KQogCWl2aW5m by5pbmRleCA9IGluZGV4UmVsYXRpb247CiAJaXZpbmZvLmFuYWx5emVfb25seSA9IGZhbHNlOwog CWl2aW5mby5yZXBvcnRfcHJvZ3Jlc3MgPSB0cnVlOworCWl2aW5mby5yZXBvcnRfcGFyYWxsZWxf cHJvZ3Jlc3MgPSBmYWxzZTsKIAlpdmluZm8uZXN0aW1hdGVkX2NvdW50ID0gdHJ1ZTsKIAlpdmlu Zm8ubWVzc2FnZV9sZXZlbCA9IERFQlVHMjsKIAlpdmluZm8ubnVtX2hlYXBfdHVwbGVzID0gaGVh cFJlbGF0aW9uLT5yZF9yZWwtPnJlbHR1cGxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbAppbmRleCAyZDgxMDRiMDkwLi5jMzdiMjBiOTFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCkBAIC0xMTY1LDcgKzExNjUsOCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X3By b2dyZXNzX3ZhY3V1bSBBUwogICAgICAgICAgICAgICAgICAgICAgIEVORCBBUyBwaGFzZSwKICAg ICAgICAgUy5wYXJhbTIgQVMgaGVhcF9ibGtzX3RvdGFsLCBTLnBhcmFtMyBBUyBoZWFwX2Jsa3Nf c2Nhbm5lZCwKICAgICAgICAgUy5wYXJhbTQgQVMgaGVhcF9ibGtzX3ZhY3V1bWVkLCBTLnBhcmFt NSBBUyBpbmRleF92YWN1dW1fY291bnQsCi0gICAgICAgIFMucGFyYW02IEFTIG1heF9kZWFkX3R1 cGxlcywgUy5wYXJhbTcgQVMgbnVtX2RlYWRfdHVwbGVzCisgICAgICAgIFMucGFyYW02IEFTIG1h eF9kZWFkX3R1cGxlcywgUy5wYXJhbTcgQVMgbnVtX2RlYWRfdHVwbGVzLAorICAgICAgICBTLnBh cmFtOCBBUyBpbmRleGVzX3RvdGFsLCBTLnBhcmFtOSBBUyBpbmRleGVzX2NvbXBsZXRlZAogICAg IEZST00gcGdfc3RhdF9nZXRfcHJvZ3Jlc3NfaW5mbygnVkFDVVVNJykgQVMgUwogICAgICAgICBM RUZUIEpPSU4gcGdfZGF0YWJhc2UgRCBPTiBTLmRhdGlkID0gRC5vaWQ7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IGYyNmQ3OTZlNTIuLjg1ZTJkZTVkNTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1 ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9pbmRleC5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Byb2dyZXNzLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3BhdGhzLmgiCiAjaW5j bHVkZSAicGdzdGF0LmgiCkBAIC0xMDMsNiArMTA0LDE3IEBAIHR5cGVkZWYgc3RydWN0IFBWU2hh cmVkCiAKIAkvKiBDb3VudGVyIGZvciB2YWN1dW1pbmcgYW5kIGNsZWFudXAgKi8KIAlwZ19hdG9t aWNfdWludDMyIGlkeDsKKworCS8qCisJICogQ291bnRlciBmb3IgdmFjdXVtaW5nIGFuZCBjbGVh bnVwIHByb2dyZXNzIHJlcG9ydGluZy4KKwkgKiBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gcmVwb3J0 IGluZGV4IHZhY3V1bS9jbGVhbnVwIHByb2dyZXNzCisJICogaW4gcGFyYWxsZWxfdmFjdXVtX3By b2dyZXNzX3JlcG9ydC4gV2Uga2VlcCB0aGlzCisJICogY291bnRlciB0byBhdm9pZCBoYXZpbmcg dG8gbG9vcCB0aHJvdWdoCisJICogUGFyYWxsZWxWYWN1dW1TdGF0ZS0+aW5kc3RhdHMgdG8gZGV0 ZXJtaW5lIHRoZSBudW1iZXIKKwkgKiBvZiBpbmRleGVzIGNvbXBsZXRlZC4KKwkgKi8KKwlwZ19h dG9taWNfdWludDMyIGlkeF9jb21wbGV0ZWRfcHJvZ3Jlc3M7CisKIH0gUFZTaGFyZWQ7CiAKIC8q IFN0YXR1cyB1c2VkIGR1cmluZyBwYXJhbGxlbCBpbmRleCB2YWN1dW0gb3IgY2xlYW51cCAqLwpA QCAtMjczLDYgKzI4NSw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0KFJlbGF0aW9uIHJlbCwgUmVs YXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlBc3NlcnQocGN4dC0+bndvcmtlcnMgPiAw KTsKIAlwdnMtPnBjeHQgPSBwY3h0OwogCisJcHZzLT5wY3h0LT5wYXJhbGxlbF9wcm9ncmVzc19j YWxsYmFjayA9IHBhcmFsbGVsX3ZhY3V1bV9wcm9ncmVzc19yZXBvcnQ7CisJcHZzLT5wY3h0LT5w YXJhbGxlbF9wcm9ncmVzc19hcmcgPSBwdnM7CisKIAkvKiBFc3RpbWF0ZSBzaXplIGZvciBpbmRl eCB2YWN1dW0gc3RhdHMgLS0gUEFSQUxMRUxfVkFDVVVNX0tFWV9JTkRFWF9TVEFUUyAqLwogCWVz dF9pbmRzdGF0c19sZW4gPSBtdWxfc2l6ZShzaXplb2YoUFZJbmRTdGF0cyksIG5pbmRleGVzKTsK IAlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIGVzdF9pbmRzdGF0c19s ZW4pOwpAQCAtMzY0LDYgKzM3OSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0KFJlbGF0aW9uIHJl bCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlwZ19hdG9taWNfaW5pdF91MzIo JihzaGFyZWQtPmNvc3RfYmFsYW5jZSksIDApOwogCXBnX2F0b21pY19pbml0X3UzMigmKHNoYXJl ZC0+YWN0aXZlX253b3JrZXJzKSwgMCk7CiAJcGdfYXRvbWljX2luaXRfdTMyKCYoc2hhcmVkLT5p ZHgpLCAwKTsKKwlwZ19hdG9taWNfaW5pdF91MzIoJihzaGFyZWQtPmlkeF9jb21wbGV0ZWRfcHJv Z3Jlc3MpLCAwKTsKIAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFDVVVN X0tFWV9TSEFSRUQsIHNoYXJlZCk7CiAJcHZzLT5zaGFyZWQgPSBzaGFyZWQ7CkBAIC02MTgsOCAr NjM0LDkgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJCQkJCQkJCQkJCQl2YWN1dW0pKTsK IAl9CiAKLQkvKiBSZXNldCB0aGUgcGFyYWxsZWwgaW5kZXggcHJvY2Vzc2luZyBjb3VudGVyICov CisJLyogUmVzZXQgdGhlIHBhcmFsbGVsIGluZGV4IHByb2Nlc3NpbmcgY291bnRlciAoIGluZGV4 IHByb2dyZXNzIGNvdW50ZXIgYWxzbyApICovCiAJcGdfYXRvbWljX3dyaXRlX3UzMigmKHB2cy0+ c2hhcmVkLT5pZHgpLCAwKTsKKwlwZ19hdG9taWNfd3JpdGVfdTMyKCYocHZzLT5zaGFyZWQtPmlk eF9jb21wbGV0ZWRfcHJvZ3Jlc3MpLCAwKTsKIAogCS8qIFNldHVwIHRoZSBzaGFyZWQgY29zdC1i YXNlZCB2YWN1dW0gZGVsYXkgYW5kIGxhdW5jaCB3b3JrZXJzICovCiAJaWYgKG53b3JrZXJzID4g MCkKQEAgLTgzNCwxMCArODUxLDEzIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRl eChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIFJlbGF0aW9uIGluZHJlbCwKIAlpdmluZm8uaW5k ZXggPSBpbmRyZWw7CiAJaXZpbmZvLmFuYWx5emVfb25seSA9IGZhbHNlOwogCWl2aW5mby5yZXBv cnRfcHJvZ3Jlc3MgPSBmYWxzZTsKKwlpdmluZm8ucmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzID0g dHJ1ZTsKIAlpdmluZm8ubWVzc2FnZV9sZXZlbCA9IERFQlVHMjsKIAlpdmluZm8uZXN0aW1hdGVk X2NvdW50ID0gcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudDsKIAlpdmluZm8ubnVtX2hlYXBf dHVwbGVzID0gcHZzLT5zaGFyZWQtPnJlbHR1cGxlczsKIAlpdmluZm8uc3RyYXRlZ3kgPSBwdnMt PmJzdHJhdGVneTsKKwlpdmluZm8ucGFyYWxsZWxfcHJvZ3Jlc3NfY2FsbGJhY2sgPSBwYXJhbGxl bF92YWN1dW1fcHJvZ3Jlc3NfcmVwb3J0OworCWl2aW5mby5wYXJhbGxlbF9wcm9ncmVzc19hcmcg PSBwdnM7CiAKIAkvKiBVcGRhdGUgZXJyb3IgdHJhY2ViYWNrIGluZm9ybWF0aW9uICovCiAJcHZz LT5pbmRuYW1lID0gcHN0cmR1cChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKQEAg LTg0Niw5ICs4NjYsMTEgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFs bGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLAogCXN3aXRjaCAoaW5kc3RhdHMt PnN0YXR1cykKIAl7CiAJCWNhc2UgUEFSQUxMRUxfSU5EVkFDX1NUQVRVU19ORUVEX0JVTEtERUxF VEU6CisJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX1ZBQ1VVTV9QSEFT RSwgUFJPR1JFU1NfVkFDVVVNX1BIQVNFX1ZBQ1VVTV9JTkRFWCk7CiAJCQlpc3RhdF9yZXMgPSB2 YWNfYnVsa2RlbF9vbmVfaW5kZXgoJml2aW5mbywgaXN0YXQsIHB2cy0+ZGVhZF9pdGVtcyk7CiAJ CQlicmVhazsKIAkJY2FzZSBQQVJBTExFTF9JTkRWQUNfU1RBVFVTX05FRURfQ0xFQU5VUDoKKwkJ CXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX1BIQVNFLCBQUk9H UkVTU19WQUNVVU1fUEhBU0VfSU5ERVhfQ0xFQU5VUCk7CiAJCQlpc3RhdF9yZXMgPSB2YWNfY2xl YW51cF9vbmVfaW5kZXgoJml2aW5mbywgaXN0YXQpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBA IC04ODgsNiArOTEwLDExIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJh bGxlbFZhY3V1bVN0YXRlICpwdnMsIFJlbGF0aW9uIGluZHJlbCwKIAlwdnMtPnN0YXR1cyA9IFBB UkFMTEVMX0lORFZBQ19TVEFUVVNfQ09NUExFVEVEOwogCXBmcmVlKHB2cy0+aW5kbmFtZSk7CiAJ cHZzLT5pbmRuYW1lID0gTlVMTDsKKworCS8qCisJICogVXBkYXRlIHRoZSBudW1iZXIgb2YgaW5k ZXhlcyBjb21wbGV0ZWQuCisJICovCisJcGdfYXRvbWljX2FkZF9mZXRjaF91MzIoJihwdnMtPnNo YXJlZC0+aWR4X2NvbXBsZXRlZF9wcm9ncmVzcyksIDEpOwogfQogCiAvKgpAQCAtMTA3MiwzICsx MDk5LDM3IEBAIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQly ZXR1cm47CiAJfQogfQorCisvKgorICogUmVhZCB0aGUgbnVtYmVyIG9mIGluZGV4ZXMgdmFjdXVt ZWQgZnJvbSB0aGUgc2hhcmVkIGNvdW50ZXIKKyAqIGFuZCByZXBvcnQgaXQgdG8gcHJvZ3Jlc3Mu aAorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgYnkgdGhlIGxlYWRlciBwcm9j ZXNzIG9mCisgKiBhIHBhcmFsbGVsIHZhY3V1bS4KKyAqCisgKiBJZiByZXBvcnRfcGFyYWxsZWxf cHJvZ3Jlc3MgaXMgc2V0IHRvIHRydWUsCisgKiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9t IG1ham9yIGxvb3BzIGluc2lkZSB0aGUKKyAqIGFtYnVsa2RlbGV0ZSBhbmQgYW12YWN1dW1jbGVh bnVwLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgaW5zaWRlIFdhaXRGb3JQ YXJhbGxlbFdvcmtlcnNUb0ZpbmlzaAorICogd2hlbiByZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3Mg aXMgc2V0IHRvIHRydWUuCisgKgorICogVGhlIHJlYXNvbiBmb3IgY2FsbGluZyB0aGlzIGZ1bmN0 aW9uIGluIGJvdGggdmFjdXVtIEFNJ3MKKyAqIGFuZCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9G aW5pc2ggaXMgdG8gZW5zdXJlIHRoYXQKKyAqIHBhcmFsbGVsIHZhY3V1bSBwcm9ncmVzcyBpcyBj b25zdGFudGx5IGJlaW5nIHJlcG9ydGVkCisgKiBpZiB0aGUgbGVhZGVyIHByb2Nlc3MgaXMgZWl0 aGVyIHdhaXRpbmcgZm9yIHBhcmFsbGVsCisgKiBwcm9jZXNlcyB0byBmaW5pc2ggKFdhaXRGb3JQ YXJhbGxlbFdvcmtlcnNUb0ZpbmlzaCkgb3IKKyAqIHRoZSBsZWFkZXIgcHJvY2VzcyBpcyB0aGUg bGFzdCB0byBmaW5pc2ggYW5kIHN0aWxsCisgKiBpbnNpZGUgdGhlIHZhY3V1bSBBTSdzLgorICov Cit2b2lkCitwYXJhbGxlbF92YWN1dW1fcHJvZ3Jlc3NfcmVwb3J0KHZvaWQgKmFyZykKK3sKKwlQ YXJhbGxlbFZhY3V1bVN0YXRlICpwdnMgPSAoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqKSBhcmc7CisK KwlpZiAoSXNQYXJhbGxlbFdvcmtlcigpKQorCQlyZXR1cm47CisKKwlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX1ZBQ1VVTV9JTkRFWF9DT01QTEVURUQsCisJCQkJCQkJCSBw Z19hdG9taWNfcmVhZF91MzIoJihwdnMtPnNoYXJlZC0+aWR4X2NvbXBsZXRlZF9wcm9ncmVzcykp KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL2dlbmFtLmgKaW5kZXggZTFjNGZkYmQwMy4uNmQ1ZmMxODlmNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dl bmFtLmgKQEAgLTQ2LDEwICs0NiwxMyBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFZhY3V1bUluZm8K IAlSZWxhdGlvbglpbmRleDsJCQkvKiB0aGUgaW5kZXggYmVpbmcgdmFjdXVtZWQgKi8KIAlib29s CQlhbmFseXplX29ubHk7CS8qIEFOQUxZWkUgKHdpdGhvdXQgYW55IGFjdHVhbCB2YWN1dW0pICov CiAJYm9vbAkJcmVwb3J0X3Byb2dyZXNzOwkvKiBlbWl0IHByb2dyZXNzLmggc3RhdHVzIHJlcG9y dHMgKi8KKwlib29sCQlyZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3M7CS8qIGVtaXQgcHJvZ3Jlc3Mu aCBzdGF0dXMgcmVwb3J0cyBmb3IgcGFyYWxsZWwgdmFjdXVtICovCiAJYm9vbAkJZXN0aW1hdGVk X2NvdW50OwkvKiBudW1faGVhcF90dXBsZXMgaXMgYW4gZXN0aW1hdGUgKi8KIAlpbnQJCQltZXNz YWdlX2xldmVsOwkvKiBlcmVwb3J0IGxldmVsIGZvciBwcm9ncmVzcyBtZXNzYWdlcyAqLwogCWRv dWJsZQkJbnVtX2hlYXBfdHVwbGVzOwkvKiB0dXBsZXMgcmVtYWluaW5nIGluIGhlYXAgKi8KIAlC dWZmZXJBY2Nlc3NTdHJhdGVneSBzdHJhdGVneTsJLyogYWNjZXNzIHN0cmF0ZWd5IGZvciByZWFk cyAqLworCXZvaWQgICAgICAgKCpwYXJhbGxlbF9wcm9ncmVzc19jYWxsYmFjaykodm9pZCAqYXJn KTsKKwl2b2lkICAgICAgICpwYXJhbGxlbF9wcm9ncmVzc19hcmc7CiB9IEluZGV4VmFjdXVtSW5m bzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvaGFzaC5oCmluZGV4IGRhMzcyODQxYzQuLjE0ZmI3NWE0YWQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hh c2guaApAQCAtNDgwLDYgKzQ4MCw3IEBAIGV4dGVybiB2b2lkIGhhc2hidWNrZXRjbGVhbnVwKFJl bGF0aW9uIHJlbCwgQnVja2V0IGN1cl9idWNrZXQsCiAJCQkJCQkJICB1aW50MzIgbWF4YnVja2V0 LCB1aW50MzIgaGlnaG1hc2ssIHVpbnQzMiBsb3dtYXNrLAogCQkJCQkJCSAgZG91YmxlICp0dXBs ZXNfcmVtb3ZlZCwgZG91YmxlICpudW1faW5kZXhfdHVwbGVzLAogCQkJCQkJCSAgYm9vbCBzcGxp dF9jbGVhbnVwLAotCQkJCQkJCSAgSW5kZXhCdWxrRGVsZXRlQ2FsbGJhY2sgY2FsbGJhY2ssIHZv aWQgKmNhbGxiYWNrX3N0YXRlKTsKKwkJCQkJCQkgIEluZGV4QnVsa0RlbGV0ZUNhbGxiYWNrIGNh bGxiYWNrLCB2b2lkICpjYWxsYmFja19zdGF0ZSwKKwkJCQkJCQkgIEluZGV4VmFjdXVtSW5mbyAq aW5mbyk7CiAKICNlbmRpZgkJCQkJCQkvKiBIQVNIX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9wYXJhbGxlbC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKaW5k ZXggMWVjOGUzM2FmNC4uNzdlOWMwYTUxNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L3BhcmFsbGVsLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKQEAgLTQ2LDYg KzQ2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxDb250ZXh0CiAJUGFyYWxsZWxXb3JrZXJJ bmZvICp3b3JrZXI7CiAJaW50CQkJbmtub3duX2F0dGFjaGVkX3dvcmtlcnM7CiAJYm9vbAkgICAq a25vd25fYXR0YWNoZWRfd29ya2VyczsKKwl2b2lkICAgICAgICgqcGFyYWxsZWxfcHJvZ3Jlc3Nf Y2FsbGJhY2spKHZvaWQgKmFyZyk7CisJdm9pZCAgICAgICAqcGFyYWxsZWxfcHJvZ3Jlc3NfYXJn OwogfSBQYXJhbGxlbENvbnRleHQ7CiAKIHR5cGVkZWYgc3RydWN0IFBhcmFsbGVsV29ya2VyQ29u dGV4dApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHJvZ3Jlc3MuaCBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3Byb2dyZXNzLmgKaW5kZXggYTI4OTM4Y2FmNC4uMGU5N2M2ZDRlZiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHJvZ3Jlc3MuaAorKysgYi9zcmMvaW5j bHVkZS9jb21tYW5kcy9wcm9ncmVzcy5oCkBAIC0yNSw2ICsyNSw4IEBACiAjZGVmaW5lIFBST0dS RVNTX1ZBQ1VVTV9OVU1fSU5ERVhfVkFDVVVNUwkJNAogI2RlZmluZSBQUk9HUkVTU19WQUNVVU1f TUFYX0RFQURfVFVQTEVTCQkJNQogI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fTlVNX0RFQURfVFVQ TEVTCQkJNgorI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fSU5ERVhfVE9UQUwgICAgICAgICAgICAg NworI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExFVEVEICAgICAgICAgOAogCiAv KiBQaGFzZXMgb2YgdmFjdXVtIChhcyBhZHZlcnRpc2VkIHZpYSBQUk9HUkVTU19WQUNVVU1fUEhB U0UpICovCiAjZGVmaW5lIFBST0dSRVNTX1ZBQ1VVTV9QSEFTRV9TQ0FOX0hFQVAJCQkxCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oCmluZGV4IDVkODE2YmE3ZjQuLjk1MTBkMDI4ZDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Zh Y3V1bS5oCkBAIC0zMzgsNCArMzM4LDYgQEAgZXh0ZXJuIGRvdWJsZSBhbmxfcmFuZG9tX2ZyYWN0 KHZvaWQpOwogZXh0ZXJuIGRvdWJsZSBhbmxfaW5pdF9zZWxlY3Rpb25fc3RhdGUoaW50IG4pOwog ZXh0ZXJuIGRvdWJsZSBhbmxfZ2V0X25leHRfUyhkb3VibGUgdCwgaW50IG4sIGRvdWJsZSAqc3Rh dGVwdHIpOwogCitleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvZ3Jlc3NfcmVwb3J0KHZv aWQgKmFyZyk7CisKICNlbmRpZgkJCQkJCQkvKiBWQUNVVU1fSCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dAppbmRleCA2MjRkMGU1YWFlLi5lMGJmODEyNDdmIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjAxOCw3ICsyMDE4LDkgQEAgcGdfc3RhdF9wcm9ncmVz c192YWN1dW18IFNFTEVDVCBzLnBpZCwKICAgICBzLnBhcmFtNCBBUyBoZWFwX2Jsa3NfdmFjdXVt ZWQsCiAgICAgcy5wYXJhbTUgQVMgaW5kZXhfdmFjdXVtX2NvdW50LAogICAgIHMucGFyYW02IEFT IG1heF9kZWFkX3R1cGxlcywKLSAgICBzLnBhcmFtNyBBUyBudW1fZGVhZF90dXBsZXMKKyAgICBz LnBhcmFtNyBBUyBudW1fZGVhZF90dXBsZXMsCisgICAgcy5wYXJhbTggQVMgaW5kZXhlc190b3Rh bCwKKyAgICBzLnBhcmFtOSBBUyBpbmRleGVzX2NvbXBsZXRlZAogICAgRlJPTSAocGdfc3RhdF9n ZXRfcHJvZ3Jlc3NfaW5mbygnVkFDVVVNJzo6dGV4dCkgcyhwaWQsIGRhdGlkLCByZWxpZCwgcGFy YW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUsIHBhcmFtNiwgcGFyYW03LCBwYXJh bTgsIHBhcmFtOSwgcGFyYW0xMCwgcGFyYW0xMSwgcGFyYW0xMiwgcGFyYW0xMywgcGFyYW0xNCwg cGFyYW0xNSwgcGFyYW0xNiwgcGFyYW0xNywgcGFyYW0xOCwgcGFyYW0xOSwgcGFyYW0yMCkKICAg ICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04gKChzLmRhdGlkID0gZC5vaWQpKSk7CiBwZ19z dGF0X3JlY292ZXJ5X3ByZWZldGNofCBTRUxFQ1Qgcy5zdGF0c19yZXNldCwKLS0gCjIuMzIuMSAo QXBwbGUgR2l0LTEzMykKCg== --_003_D460F8EFD61F46F393FEE6B5EB2F687Aamazoncom_ Content-Type: application/octet-stream; name="v1-0001-Function-to-return-currently-vacuumed-or-cleaned-ind.patch" Content-Description: v1-0001-Function-to-return-currently-vacuumed-or-cleaned-ind.patch Content-Disposition: attachment; filename="v1-0001-Function-to-return-currently-vacuumed-or-cleaned-ind.patch"; size=10394; creation-date="Wed, 02 Nov 2022 16:52:19 GMT"; modification-date="Wed, 02 Nov 2022 16:52:19 GMT" Content-ID: <89C81558C56BA843B5E8E9E2310EDB42@amazon.com> Content-Transfer-Encoding: base64 RnJvbSAwM2Y3MTZiYjliMWE3OTg4NDY1NWQ4N2E2YjM5ODZhNjIyYWE0Mjg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSW1zZWloIChBV1MpIiA8c2ltc2VpaEA4ODY2NWEyMjc5NWYu YW50LmFtYXpvbi5jb20+CkRhdGU6IFdlZCwgMiBOb3YgMjAyMiAxMDozNjoxMCAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggMS8xXSBGdW5jdGlvbiB0byByZXR1cm4gY3VycmVudGx5IHZhY3V1bWVkICgg b3IgY2xlYW5lZCApCiBpbmRleAoKcGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4IHRha2VzIGEgUElE IGFzIGFuIGFyZ3VtZW50IGFuZApyZXR1cm5zIHRoZSBpbmRleCByZWxpZCBvZiB0aGUgY3VycmVu dGx5IHZhY3V1bWVkIGluZGV4LgpOVUxMIGlzIHJldHVybmVkIGlmIHRoZSBiYWNrZW5kIGlzIG5v dCBpbnZvbHZlZCBpbiBhbiBpbmRleCB2YWN1dW0uCi0tLQogZG9jL3NyYy9zZ21sL2Z1bmMuc2dt bCAgICAgICAgICAgICAgICB8IDEzICsrKysrKysKIGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNn bWwgICAgICAgICAgfCAgOCArKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jICB8ICA5ICsrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIHwg MjMgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgIHwg NTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0ICAgICAgIHwgIDQgKysrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wcm9ncmVzcy5oICAg ICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9wcm9ncmVzcy5oICB8ICA3ICsr Ky0KIDggZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwKaW5kZXggNmUwNDI1Y2IzZC4uMzk4NDEzNTRkZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yMjY3MCw2ICsyMjY3 MCwxOSBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xzX2RpcignLicpIFdJVEggT1JESU5BTElUWSBBUyB0 KGxzLG4pOwogICAgICAgICBwYXJzaW5nIHRoZSB0ZXh0IHZlcnNpb24uCiAgICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9s ZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAg ICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4 PC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX3N0 YXRfZ2V0X3ZhY3V1bV9pbmRleDwvZnVuY3Rpb24+ICggPHR5cGU+aW50ZWdlcjwvdHlwZT4gKQor ICAgICAgICA8cmV0dXJudmFsdWU+b2lkPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIFJldHVybnMgdGhlIHJlbGlkIG9mIGFuIGluZGV4IGN1cnJl bnQgYmVpbmcgdmFjdXVtZWQgb3IgY2xlYW5lZCBieSB0aGUgYmFja2VuZC4KKyAgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgog ICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9k b2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IGM2MTQ0M2YzZDUuLjhkOTQ3ZDhjM2Eg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL21vbml0b3Jpbmcuc2dtbApAQCAtNjUxNyw3ICs2NTE3LDkgQEAgRlJPTSBwZ19zdGF0X2dl dF9iYWNrZW5kX2lkc2V0KCkgQVMgYmFja2VuZGlkOwogICAgICAgIGhhcyBiZWVuIGNvbXBsZXRl bHkgc2Nhbm5lZC4gIEl0IG1heSBoYXBwZW4gbXVsdGlwbGUgdGltZXMgcGVyIHZhY3V1bQogICAg ICAgIGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYWludGVuYW5jZS13b3JrLW1lbSIvPiAob3IsIGlu IHRoZSBjYXNlIG9mIGF1dG92YWN1dW0sCiAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWF1dG92 YWN1dW0td29yay1tZW0iLz4gaWYgc2V0KSBpcyBpbnN1ZmZpY2llbnQgdG8gc3RvcmUKLSAgICAg ICB0aGUgbnVtYmVyIG9mIGRlYWQgdHVwbGVzIGZvdW5kLgorICAgICAgIHRoZSBudW1iZXIgb2Yg ZGVhZCB0dXBsZXMgZm91bmQuIFdoaWxlIGluIHRoaXMgcGhhc2UsIHRoZSBmdW5jdGlvbgorICAg ICAgIDxmdW5jdGlvbj5wZ19zdGF0X2dldF92YWN1dW1faW5kZXgoKTwvZnVuY3Rpb24+IHdpbGwg cmV0dXJuIHRoZSByZWxpZAorICAgICAgIG9mIHRoZSBpbmRleCBiZWluZyB2YWN1dW1lZC4KICAg ICAgPC9lbnRyeT4KICAgICA8L3Jvdz4KICAgICA8cm93PgpAQCAtNjUzNiw3ICs2NTM4LDkgQEAg RlJPTSBwZ19zdGF0X2dldF9iYWNrZW5kX2lkc2V0KCkgQVMgYmFja2VuZGlkOwogICAgICA8ZW50 cnk+CiAgICAgICAgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBpcyBjdXJyZW50bHkgY2xlYW5p bmcgdXAgaW5kZXhlcy4gIFRoaXMgb2NjdXJzIGFmdGVyCiAgICAgICAgdGhlIGhlYXAgaGFzIGJl ZW4gY29tcGxldGVseSBzY2FubmVkIGFuZCBhbGwgdmFjdXVtaW5nIG9mIHRoZSBpbmRleGVzCi0g ICAgICAgYW5kIHRoZSBoZWFwIGhhcyBiZWVuIGNvbXBsZXRlZC4KKyAgICAgICBhbmQgdGhlIGhl YXAgaGFzIGJlZW4gY29tcGxldGVkLiBXaGlsZSBpbiB0aGlzIHBoYXNlLCB0aGUgZnVuY3Rpb24K KyAgICAgICA8ZnVuY3Rpb24+cGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4KCk8L2Z1bmN0aW9uPiB3 aWxsIHJldHVybiB0aGUgcmVsaWQKKyAgICAgICBvZiB0aGUgaW5kZXggYmVpbmcgY2xlYW5lZC4K ICAgICAgPC9lbnRyeT4KICAgICA8L3Jvdz4KICAgICA8cm93PgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCmluZGV4IDEyMGEyYjE4ZDcuLjhjZDhlMzRmODggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTM1MCw2ICszNTAsNyBAQCBoZWFwX3ZhY3V1bV9yZWwo UmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkJfQogCX0KIAorCS8qIHN0YXJ0 IHRoZSB2YWN1dW0gcHJvZ3Jlc3MgY29tbWFuZCBhbmQgcmVwb3J0IHRvIHByb2dyZXNzLmggKi8K IAlwZ3N0YXRfcHJvZ3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01NQU5EX1ZBQ1VVTSwK IAkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGlkKHJlbCkpOwogCkBAIC0yMzQxLDYgKzIzNDIsOSBA QCBsYXp5X3ZhY3V1bV9hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJCQlSZWxhdGlv bglpbmRyZWwgPSB2YWNyZWwtPmluZHJlbHNbaWR4XTsKIAkJCUluZGV4QnVsa0RlbGV0ZVJlc3Vs dCAqaXN0YXQgPSB2YWNyZWwtPmluZHN0YXRzW2lkeF07CiAKKwkJCS8qIHJlcG9ydCB0aGUgaW5k ZXggcmVsaWQgYmVpbmcgdmFjdXVtZWQgKi8KKwkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFy YW0oUFJPR1JFU1NfVkFDVVVNX0lORFJFTElELCBSZWxhdGlvbkdldFJlbGlkKGluZHJlbCkpOwor CiAJCQl2YWNyZWwtPmluZHN0YXRzW2lkeF0gPQogCQkJCWxhenlfdmFjdXVtX29uZV9pbmRleChp bmRyZWwsIGlzdGF0LCB2YWNyZWwtPm9sZF9saXZlX3R1cGxlcywKIAkJCQkJCQkJCSAgdmFjcmVs KTsKQEAgLTIzNTAsNiArMjM1NCw3IEBAIGxhenlfdmFjdXVtX2FsbF9pbmRleGVzKExWUmVsU3Rh dGUgKnZhY3JlbCkKIAkJCSAqLwogCQkJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9H UkVTU19WQUNVVU1fSU5ERVhfQ09NUExFVEVELAogCQkJCQkJCQkJCSBpZHggKyAxKTsKKwkJCXBn c3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX0lORFJFTElELCAwKTsK IAogCQkJaWYgKGxhenlfY2hlY2tfd3JhcGFyb3VuZF9mYWlsc2FmZSh2YWNyZWwpKQogCQkJewpA QCAtMjcwNSw2ICsyNzEwLDkgQEAgbGF6eV9jbGVhbnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUg KnZhY3JlbCkKIAkJCVJlbGF0aW9uCWluZHJlbCA9IHZhY3JlbC0+aW5kcmVsc1tpZHhdOwogCQkJ SW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCA9IHZhY3JlbC0+aW5kc3RhdHNbaWR4XTsKIAor CQkJLyogcmVwb3J0IHRoZSBpbmRleCByZWxpZCBiZWluZyBjbGVhbmVkICovCisJCQlwZ3N0YXRf cHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX1ZBQ1VVTV9JTkRSRUxJRCwgUmVsYXRpb25H ZXRSZWxpZChpbmRyZWwpKTsKKwogCQkJdmFjcmVsLT5pbmRzdGF0c1tpZHhdID0KIAkJCQlsYXp5 X2NsZWFudXBfb25lX2luZGV4KGluZHJlbCwgaXN0YXQsIHJlbHR1cGxlcywKIAkJCQkJCQkJCSAg IGVzdGltYXRlZF9jb3VudCwgdmFjcmVsKTsKQEAgLTI3MTQsNiArMjcyMiw3IEBAIGxhenlfY2xl YW51cF9hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJCQkgKi8KIAkJCXBnc3RhdF9w cm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX0lOREVYX0NPTVBMRVRFRCwKIAkJ CQkJCQkJCQkgaWR4ICsgMSk7CisJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dS RVNTX1ZBQ1VVTV9JTkRSRUxJRCwgMCk7CiAJCX0KIAl9CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggODVlMmRlNWQ1NC4uZjJmNTFlODZlYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC04NDAsNiArODQwLDIwIEBAIHBhcmFsbGVs X3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIFJlbGF0 aW9uIGluZHJlbCwKIAlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0ID0gTlVMTDsKIAlJbmRl eEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0X3JlczsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwor CU9pZCBpbmRyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKTsKKworCS8qCisJICogSWYg d2UgYXJlIGEgcGFyYWxsZWwgd29ya2VyLCBzdGFydCBhIFBST0dSRVNTX0NPTU1BTkRfVkFDVVVN X1BBUkFMTEVMCisJICogY29tbWFuZCBmb3IgcHJvZ3Jlc3MgcmVwb3J0aW5nIGFuZCByZXBvcnQg dGhlIGluZGV4IGJlaW5nIHZhY3V1bWVkLgorCSAqLworCWlmIChJc1BhcmFsbGVsV29ya2VyKCkp CisJeworCQlwZ3N0YXRfcHJvZ3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01NQU5EX1ZB Q1VVTV9QQVJBTExFTCwKKwkJCQkJCQkJCSAgcHZzLT5zaGFyZWQtPnJlbGlkKTsKKwl9CisKKwkv KiByZXBvcnQgdGhlIGluZGV4IGJlaW5nIHZhY3V1bWVkIG9yIGNsZWFuZWQgdXAgKi8KKwlwZ3N0 YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX1ZBQ1VVTV9JTkRSRUxJRCwgaW5kcmVs aWQpOwogCiAJLyoKIAkgKiBVcGRhdGUgdGhlIHBvaW50ZXIgdG8gdGhlIGNvcnJlc3BvbmRpbmcg YnVsay1kZWxldGlvbiByZXN1bHQgaWYgc29tZW9uZQpAQCAtOTExLDEwICs5MjUsMTkgQEAgcGFy YWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywg UmVsYXRpb24gaW5kcmVsLAogCXBmcmVlKHB2cy0+aW5kbmFtZSk7CiAJcHZzLT5pbmRuYW1lID0g TlVMTDsKIAorCS8qCisJICogUmVzZXQgdGhlIGluZGV4IHJlbGlkIGJlZ2luIHZhY3V1bWVkL2Ns ZWFuZWQKKwkgKi8KKwlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX1ZBQ1VV TV9JTkRSRUxJRCwgMCk7CisKIAkvKgogCSAqIFVwZGF0ZSB0aGUgbnVtYmVyIG9mIGluZGV4ZXMg Y29tcGxldGVkLgogCSAqLwogCXBnX2F0b21pY19hZGRfZmV0Y2hfdTMyKCYocHZzLT5zaGFyZWQt PmlkeF9jb21wbGV0ZWRfcHJvZ3Jlc3MpLCAxKTsKKworCS8qIGlmIHdlIGFyZSBhIHBhcmFsbGVs IHdvcmtlciwgZW5kIHRoZSBjb21tYW5kICovCisJaWYgKElzUGFyYWxsZWxXb3JrZXIoKSkKKwkJ cGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jCmluZGV4IDk2YmZmYzBmMmEuLmIwOGMxNWU3YWEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hs b2dwcmVmZXRjaGVyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9wcm9ncmVzcy5oIgogI2lu Y2x1ZGUgImNvbW1vbi9pcC5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKQEAgLTIzODMsMyArMjM4NCw1NCBAQCBwZ19zdGF0X2hhdmVfc3RhdHMoUEdfRlVO Q1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKHBnc3RhdF9oYXZlX2VudHJ5KGtpbmQsIGRi b2lkLCBvYmpvaWQpKTsKIH0KKworLyoKKyAqIEZvciBhIGdpdmVuIFBJRCwgcmV0dXJuIHRoZSBy ZWxpZCBvZiB0aGUgaW5kZXgKKyAqIGN1cnJlbnRseSBiZWluZyB2YWN1dW1lZC4KKyAqLworRGF0 dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleChQR19GVU5DVElPTl9BUkdTKQoreworCWludAkJ CXBpZCA9IFBHX0dFVEFSR19JTlQzMigwKTsKKwlpbnQJCQludW1fYmFja2VuZHMgPSBwZ3N0YXRf ZmV0Y2hfc3RhdF9udW1iYWNrZW5kcygpOworCWludAkJCWN1cnJfYmFja2VuZDsKKwlPaWQgCQlp bmRyZWxpZCA9IDA7CisJUHJvZ3Jlc3NDb21tYW5kVHlwZSBjbWR0eXBlX3ZhY3V1bSA9IFBST0dS RVNTX0NPTU1BTkRfVkFDVVVNOworCVByb2dyZXNzQ29tbWFuZFR5cGUgY21kdHlwZV92YWN1dW1f cGFyYWxsZWwgPSBQUk9HUkVTU19DT01NQU5EX1ZBQ1VVTV9QQVJBTExFTDsKKworCS8qIDEtYmFz ZWQgaW5kZXggKi8KKwlmb3IgKGN1cnJfYmFja2VuZCA9IDE7IGN1cnJfYmFja2VuZCA8PSBudW1f YmFja2VuZHM7IGN1cnJfYmFja2VuZCsrKQorCXsKKwkJTG9jYWxQZ0JhY2tlbmRTdGF0dXMgKmxv Y2FsX2JlZW50cnk7CisJCVBnQmFja2VuZFN0YXR1cyAqYmVlbnRyeTsKKworCQlsb2NhbF9iZWVu dHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfbG9jYWxfYmVlbnRyeShjdXJyX2JhY2tlbmQpOworCQli ZWVudHJ5ID0gJmxvY2FsX2JlZW50cnktPmJhY2tlbmRTdGF0dXM7CisKKwkJLyoKKwkJICogSWYg YSBiYWNrZW5kIGhhcyBhIFZBQ1VVTSBvciBWQUNVVU1fUEFSQUxMRUwgcHJvZ3Jlc3MgY29tbWFu ZCB0eXBlCisJCSAqIGFuZCB0aGUgcHJvY3BpZCBtYXRjaGVzIHRoZSBnaXZlbiBQSUQsIHJldHVy biB0aGUgaW5kZXggcmVsaWQgaWQKKwkJICogdGhhdCBpcyBjdXJyZW50IGJlaW5nIHZhY3V1bWVk LiBJbiBzb21lIGNhc2VzLCB0aGUgaW5kZXggcmVsaWQgY291bGQKKwkJICogYmUgYSAnMCcgaWYg d2UgZ290IGhlcmUgYXQgdGhoZSBlbmQgb2YgYSB2YWN1dW0gb3Igd2hlbiBubyBpbmRleGVzCisJ CSAqIGFyZSBiZWluZyB2YWN1dW1lZC4gSW4gdGhpcyBjYXNlIHJldHVybiBOVUxMLgorCQkgKi8K KwkJaWYJKAorCQkJCShiZWVudHJ5LT5zdF9wcm9ncmVzc19jb21tYW5kID09IGNtZHR5cGVfdmFj dXVtCisJCQkJCXx8IGJlZW50cnktPnN0X3Byb2dyZXNzX2NvbW1hbmQgPT0gY21kdHlwZV92YWN1 dW1fcGFyYWxsZWwpICYmCisJCQkJIGJlZW50cnktPnN0X3Byb2NwaWQgPT0gcGlkCisJCQkpCisJ CQl7CisJCQkJaW5kcmVsaWQgPSBJbnQ2NEdldERhdHVtKGJlZW50cnktPnN0X3Byb2dyZXNzX3Bh cmFtW1BST0dSRVNTX1ZBQ1VVTV9JTkRSRUxJRF0pOworCisJCQkJaWYgKGluZHJlbGlkID4gMCkK KwkJCQkJUEdfUkVUVVJOX09JRChpbmRyZWxpZCk7CisJCQkJZWxzZQorCQkJCQlQR19SRVRVUk5f TlVMTCgpOworCQkJfQorCX0KKworCS8qCisJICogTm8gbWF0Y2hpbmcgUElEIHBlcmZvcm1pbmcg YSBWQUNVVU0gb3BlcmF0aW9uLCByZXR1cm4gTlVMTC4KKwkgKi8KKwlQR19SRVRVUk5fTlVMTCgp OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IDIwZjVhYTU2ZWEuLmRkNWEzMjE3MmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt MTE4MjcsNSArMTE4MjcsOSBAQAogICBwcm9uYW1lID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1t YXJ5X3NlbmQnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2J5dGVhJywg cHJvYXJndHlwZXMgPT4gJ3BnX2JyaW5fbWlubWF4X211bHRpX3N1bW1hcnknLAogICBwcm9zcmMg PT4gJ2JyaW5fbWlubWF4X211bHRpX3N1bW1hcnlfc2VuZCcgfSwKK3sgb2lkID0+ICc0NjQyJywK KyAgZGVzY3IgPT4gJ2dldCB0aGUgcmVsaWQgb2YgdGhlIGluZGV4IGJlaW5nIHZhY3V1bWVkIGJ5 IGEgYmFja2VuZCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleCcsIHBy b3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0dHlwZSA9PiAnaW50OCcsCisgIHByb2FyZ3R5cGVzID0+ ICdpbnQ0JywgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXgnIH0sCiAKIF0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb2dyZXNzLmggYi9zcmMvaW5jbHVkZS9j b21tYW5kcy9wcm9ncmVzcy5oCmluZGV4IDBlOTdjNmQ0ZWYuLmJjMmI3ZDFlOTUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb2dyZXNzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvcHJvZ3Jlc3MuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQUk9HUkVTU19WQUNV VU1fTlVNX0RFQURfVFVQTEVTCQkJNgogI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fSU5ERVhfVE9U QUwgICAgICAgICAgICAgNwogI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExFVEVE ICAgICAgICAgOAorI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fSU5EUkVMSUQgICAgICAgICAgICAg ICAgOQogCiAvKiBQaGFzZXMgb2YgdmFjdXVtIChhcyBhZHZlcnRpc2VkIHZpYSBQUk9HUkVTU19W QUNVVU1fUEhBU0UpICovCiAjZGVmaW5lIFBST0dSRVNTX1ZBQ1VVTV9QSEFTRV9TQ0FOX0hFQVAJ CQkxCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3Byb2dyZXNzLmggYi9z cmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3Byb2dyZXNzLmgKaW5kZXggNDdiZjgwMjliMC4uNzRk OWRmYjRjNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9wcm9ncmVzcy5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfcHJvZ3Jlc3MuaApAQCAtMTcsNiArMTcs MTAgQEAKIAogLyogLS0tLS0tLS0tLQogICogQ29tbWFuZCB0eXBlIGZvciBwcm9ncmVzcyByZXBv cnRpbmcgcHVycG9zZXMKKyAqCisgKiBOb3RlOiBQUk9HUkVTU19DT01NQU5EX1ZBQ1VVTV9QQVJB TExFTCBpcyBub3QKKyAqIGEgY29tbWFuZCBwZXIgc2UsIGJ1dCB0aGlzIHR5cGUgaXMgdXNlZCB0 byB0cmFjaworICogcGFyYWxsZWwgdmFjdXVtIHdvcmtlcnMgcHJvZ3Jlc3MuCiAgKiAtLS0tLS0t LS0tCiAgKi8KIHR5cGVkZWYgZW51bSBQcm9ncmVzc0NvbW1hbmRUeXBlCkBAIC0yNyw3ICszMSw4 IEBAIHR5cGVkZWYgZW51bSBQcm9ncmVzc0NvbW1hbmRUeXBlCiAJUFJPR1JFU1NfQ09NTUFORF9D TFVTVEVSLAogCVBST0dSRVNTX0NPTU1BTkRfQ1JFQVRFX0lOREVYLAogCVBST0dSRVNTX0NPTU1B TkRfQkFTRUJBQ0tVUCwKLQlQUk9HUkVTU19DT01NQU5EX0NPUFkKKwlQUk9HUkVTU19DT01NQU5E X0NPUFksCisJUFJPR1JFU1NfQ09NTUFORF9WQUNVVU1fUEFSQUxMRUwKIH0gUHJvZ3Jlc3NDb21t YW5kVHlwZTsKIAogI2RlZmluZSBQR1NUQVRfTlVNX1BST0dSRVNTX1BBUkFNCTIwCi0tIAoyLjMy LjEgKEFwcGxlIEdpdC0xMzMpCgo= --_003_D460F8EFD61F46F393FEE6B5EB2F687Aamazoncom_--