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 1mGY4b-0000H7-Rc for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Aug 2021 02:46:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mGY4Z-00046h-Ef for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Aug 2021 02:46:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mGY4Z-000460-1V for pgsql-hackers@lists.postgresql.org; Thu, 19 Aug 2021 02:46:27 +0000 Received: from smtp-fw-80006.amazon.com ([99.78.197.217]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mGY4W-0004bJ-CX for pgsql-hackers@postgresql.org; Thu, 19 Aug 2021 02:46:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1629341185; x=1660877185; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=d+ZAVUm60idzuQxcAqFOZ8IMRQ0NBcqZxM+P129s6ns=; b=POKWkS5PhJBmOuvTLlMvZqhfOdq31fKlbw9t53F/mflUYiiwgrHErkGA L+WnCli03jQgroyo0uOyhj84r9wbRLtamcdGnYuuph2LSTL9+pxH4BAG/ pIvQfM07em2+mTIns9RK04KmY3LMycuDA0jRqe3zmlbfpAA9gpjYqFFvt 8=; X-Amazon-filename: v11-0001-Avoid-creating-archive-status-.ready-files-too-e.patch X-IronPort-AV: E=Sophos;i="5.84,333,1620691200"; d="scan'208,223";a="20223003" Subject: Re: archive status ".ready" files may be created too early Thread-Topic: archive status ".ready" files may be created too early Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-2c-456ef9c9.us-west-2.amazon.com) ([10.25.36.214]) by smtp-border-fw-80006.pdx80.corp.amazon.com with ESMTP; 19 Aug 2021 02:46:21 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-2c-456ef9c9.us-west-2.amazon.com (Postfix) with ESMTPS id AF0BAB4715; Thu, 19 Aug 2021 02:46:20 +0000 (UTC) Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13MTAUWB001.ant.amazon.com (10.43.161.207) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Thu, 19 Aug 2021 02:46:20 +0000 Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13D03UWC004.ant.amazon.com (10.43.162.49) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Thu, 19 Aug 2021 02:46:20 +0000 Received: from EX13D03UWC004.ant.amazon.com ([10.43.162.49]) by EX13D03UWC004.ant.amazon.com ([10.43.162.49]) with mapi id 15.00.1497.023; Thu, 19 Aug 2021 02:46:20 +0000 From: "Bossart, Nathan" To: "alvherre@alvh.no-ip.org" CC: Kyotaro Horiguchi , "x4mmm@yandex-team.ru" , "a.lubennikova@postgrespro.ru" , "hlinnaka@iki.fi" , "matsumura.ryo@fujitsu.com" , "masao.fujii@gmail.com" , "pgsql-hackers@postgresql.org" Thread-Index: AQHXBlOcCCTzqq5m7Uma04zSuWx/6atYjIMA//+aBICABK+JgP//qfYAgACvAID//9F4gAAoArgA//+nPACAA9nigP//qHQAgACqMwCAAMe5AIACUeaAgAAjTwD//55qgIAAm8IAgACkkoCAAPBOAIAAPr4AgBHfpID//5e8AAAOvBUAAA2CaYAACrPgAAARbsCAAA30QQAADLOUgAAZN3mAAECA24AAcWAngADwHqgAAcfP5AADmAVGgA== Date: Thu, 19 Aug 2021 02:46:19 +0000 Message-ID: References: <05AD5FE2-9A53-4D11-A3F8-3A83EBB0EB93@amazon.com> <202108182346.zkaxdlu27ry4@alvherre.pgsql> In-Reply-To: <202108182346.zkaxdlu27ry4@alvherre.pgsql> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.160.137] Content-Type: multipart/mixed; boundary="_002_E65B47AAC50B4AD7A90B25D106582EB8amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_E65B47AAC50B4AD7A90B25D106582EB8amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <654D6C8D5E70A54790270C016003CAC7@amazon.com> Content-Transfer-Encoding: base64 T24gOC8xOC8yMSwgNDo0NyBQTSwgImFsdmhlcnJlQGFsdmgubm8taXAub3JnIiA8YWx2aGVycmVA YWx2aC5uby1pcC5vcmc+IHdyb3RlOg0KPiBPbiAyMDIxLUF1Zy0xOCwgQm9zc2FydCwgTmF0aGFu IHdyb3RlOg0KPj4gSW4gdGhlIGF0dGFjaGVkIHBhdGNoLCBJIG1vZGlmaWVkIFhMb2dJbnNlcnRS ZWNvcmQoKSB0byBzaW1wbHkgc2V0IHRoZQ0KPj4gbGF0Y2ggaWYgd2UgZGV0ZWN0IHRoYXQgZmx1 c2hSZWNQdHIgaGFzIGFkdmFuY2VkLg0KPg0KPiBSaWdodCwgdGhhdCdzIHdoYXQgSSB3YXMgdGhp bmtpbmcuICBJIG1vZGlmaWVkIHRoYXQgc2xpZ2h0bHkgdG8gdXNlDQo+IExvZ3dydFJlc3VsdC5G bHVzaCAod2hpY2ggc2hvdWxkIGJlIGZyZXNoIGVub3VnaCkgaW5zdGVhZCBvZiBjYWxsaW5nDQo+ IEdldEZsdXNoUmVjUHRyIGFnYWluLCB3aGljaCBzYXZlcyBhIGJpdC4gIEkgYWxzbyBjaGFuZ2Vk IGl0IHRvID4gaW5zdGVhZA0KPiBvZiA+PSwgYmVjYXVzZSBpZiBJIHVuZGVyc3RhbmQgeW91IGNv cnJlY3RseSB3ZSBvbmx5IGNhcmUgdG8gbm90aWZ5IGlmDQo+IHRoZSBmbHVzaCBwb2ludGVyIGFk dmFuY2VkLCBub3QgaW4gdGhlIGNhc2UgaXQgc3RheWVkIHRoZSBzYW1lLg0KDQpNeSB0aGlua2lu ZyB3YXMgdGhhdCB3ZSBuZWVkZWQgdG8gcmVhZCBmbHVzaFJlY1B0ciBhZnRlciByZWdpc3Rlcmlu Zw0KdGhlIGJvdW5kYXJ5IGluIGNhc2UgaXQgYWR2YW5jZWQganVzdCBiZWZvcmUgcmVnaXN0cmF0 aW9uLiAgQW5kIEkgdXNlZA0KPj0gYmVjYXVzZSBpZiBmbHVzaFJlY1B0ciBwb2ludHMgdG8gdGhl IGVuZCBvZiB0aGUgcmVjb3JkLCB3ZSBzaG91bGQNCmJlIGFibGUgdG8gY3JlYXRlIHRoZSAucmVh ZHkgZmlsZSBmb3IgdGhlIHNlZ21lbnQuDQoNCldlIGNhbiBhdm9pZCBhY3F1aXJpbmcgdGhlIHNw aW5sb2NrIGFuIGV4dHJhIHRpbWUgaWYgd2UgbW92ZSB0aGUgZmlyc3QNCnBhcnQgb2YgdGhlIGNy b3NzLXNlZ21lbnQgbG9naWMgdG8gYmVmb3JlIHdlIHVwZGF0ZSB0aGUgbG9jYWwgY29weSBvZg0K TG9nd3J0UmVzdWx0LiAgSSBhdHRhY2hlZCBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBwYXRjaCB0aGF0 IGRvZXMgdGhpcy4NCg0KVGhlIHJlc3QgbG9va3MgZ29vZCB0byBtZS4NCg0KTmF0aGFuDQoNCg== --_002_E65B47AAC50B4AD7A90B25D106582EB8amazoncom_ Content-Type: application/octet-stream; name="v11-0001-Avoid-creating-archive-status-.ready-files-too-e.patch" Content-Description: v11-0001-Avoid-creating-archive-status-.ready-files-too-e.patch Content-Disposition: attachment; filename="v11-0001-Avoid-creating-archive-status-.ready-files-too-e.patch"; size=21828; creation-date="Thu, 19 Aug 2021 02:46:19 GMT"; modification-date="Thu, 19 Aug 2021 02:46:19 GMT" Content-ID: <42999264C25D2847841078C0F904938E@amazon.com> Content-Transfer-Encoding: base64 RnJvbSBhMzQ2NzI0Yzg0ZjA4N2EwMjY3YjNmNzZlYWIxNTc2ZWVjNDU1NzFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogVGh1LCAxOSBBdWcgMjAyMSAwMjoyNDo1MyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjEx IDEvMV0gQXZvaWQgY3JlYXRpbmcgYXJjaGl2ZSBzdGF0dXMgIi5yZWFkeSIgZmlsZXMgdG9vCiBl YXJseS4KCldBTCByZWNvcmRzIG1heSBzcGFuIG11bHRpcGxlIHNlZ21lbnRzLCBidXQgWExvZ1dy aXRlKCkgZG9lcyBub3QKd2FpdCBmb3IgdGhlIGVudGlyZSByZWNvcmQgdG8gYmUgd3JpdHRlbiBv dXQgdG8gZGlzayBiZWZvcmUKY3JlYXRpbmcgYXJjaGl2ZSBzdGF0dXMgZmlsZXMuICBJbnN0ZWFk LCBhcyBzb29uIGFzIHRoZSBsYXN0IFdBTApwYWdlIG9mIHRoZSBzZWdtZW50IGlzIHdyaXR0ZW4s IHRoZSBhcmNoaXZlIHN0YXR1cyBmaWxlIHdpbGwgYmUKY3JlYXRlZC4gIElmIFBvc3RncmVTUUwg Y3Jhc2hlcyBiZWZvcmUgaXQgaXMgYWJsZSB0byB3cml0ZSB0aGUgcmVzdApvZiB0aGUgcmVjb3Jk LCBpdCB3aWxsIGVuZCB1cCByZXVzaW5nIHNlZ21lbnRzIHRoYXQgaGF2ZSBhbHJlYWR5CmJlZW4g bWFya2VkIGFzIHJlYWR5LWZvci1hcmNoaXZhbC4gIEhvd2V2ZXIsIHRoZSBhcmNoaXZlciBwcm9j ZXNzCm1heSBoYXZlIGFscmVhZHkgcHJvY2Vzc2VkIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUgc2Vn bWVudCwgc28gdGhlCndyb25nIHZlcnNpb24gb2YgdGhlIHNlZ21lbnQgbWF5IGJlIGJhY2tlZC11 cC4gIFRoaXMgYmFja2VkLXVwCnNlZ21lbnQgd2lsbCBjYXVzZSBvcGVyYXRpb25zIHN1Y2ggYXMg cG9pbnQtaW4tdGltZSByZXN0b3JlcyB0bwpmYWlsLgoKVG8gZml4IHRoaXMsIHdlIGtlZXAgdHJh Y2sgb2YgcmVjb3JkcyB0aGF0IHNwYW4gYWNyb3NzIHNlZ21lbnRzIGFuZAplbnN1cmUgdGhhdCBz ZWdtZW50cyBhcmUgb25seSBtYXJrZWQgcmVhZHktZm9yLWFyY2hpdmFsIG9uY2Ugc3VjaApyZWNv cmRzIGhhdmUgYmVlbiBjb21wbGV0ZWx5IHdyaXR0ZW4gdG8gZGlzay4KLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS90aW1lbGluZS5jICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMgICAgICAgIHwgMjg5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMgfCAgMTcgKy0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fsd3JpdGVyLmMgICAgICAgfCAgIDcgKwogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQv c3RvcmFnZS9sbWdyL2x3bG9ja25hbWVzLnR4dCB8ICAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3Mv eGxvZy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nYXJj aGl2ZS5oICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nZGVmcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAg ICB8ICAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMDcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdGltZWxpbmUu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RpbWVsaW5lLmMKaW5kZXggOGQwOTAzYzE3 NS4uYWNkNWMyNDMxZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdGlt ZWxpbmUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90aW1lbGluZS5jCkBAIC00 NTIsNyArNDUyLDcgQEAgd3JpdGVUaW1lTGluZUhpc3RvcnkoVGltZUxpbmVJRCBuZXdUTEksIFRp bWVMaW5lSUQgcGFyZW50VExJLAogCWlmIChYTG9nQXJjaGl2aW5nQWN0aXZlKCkpCiAJewogCQlU TEhpc3RvcnlGaWxlTmFtZShoaXN0Zm5hbWUsIG5ld1RMSSk7Ci0JCVhMb2dBcmNoaXZlTm90aWZ5 KGhpc3RmbmFtZSk7CisJCVhMb2dBcmNoaXZlTm90aWZ5KGhpc3RmbmFtZSwgdHJ1ZSk7CiAJfQog fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggZTUxYTdhNzQ5ZC4uYzIxNjk2Mzg4 OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTEyLDYgKzUxMiwxNiBAQCB0eXBl ZGVmIGVudW0gRXhjbHVzaXZlQmFja3VwU3RhdGUKICAqLwogc3RhdGljIFNlc3Npb25CYWNrdXBT dGF0ZSBzZXNzaW9uQmFja3VwU3RhdGUgPSBTRVNTSU9OX0JBQ0tVUF9OT05FOwogCisvKgorICog RW50cmllcyBmb3IgU2VnbWVudEJvdW5kYXJ5TWFwLiAgRWFjaCBzdWNoIGVudHJ5IHJlcHJlc2Vu dHMgYSBXQUwKKyAqIHJlY29yZCB0aGF0IGVuZHMgaW4gZW5kcG9zIGFuZCBjcm9zc2VzIGEgV0FM IHNlZ21lbnQgYm91bmRhcnkuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNlZ21lbnRCb3VuZGFyeUVu dHJ5Cit7CisJWExvZ1NlZ05vCXNlZzsJCQkvKiBtdXN0IGJlIGZpcnN0ICovCisJWExvZ1JlY1B0 cgllbmRwb3M7Cit9IFNlZ21lbnRCb3VuZGFyeUVudHJ5OworCiAvKgogICogU2hhcmVkIHN0YXRl IGRhdGEgZm9yIFdBTCBpbnNlcnRpb24uCiAgKi8KQEAgLTcyMyw2ICs3MzMsMTIgQEAgdHlwZWRl ZiBzdHJ1Y3QgWExvZ0N0bERhdGEKIAkgKi8KIAlYTG9nUmVjUHRyCWxhc3RGcHdEaXNhYmxlUmVj UHRyOwogCisJLyoKKwkgKiBUaGUgbGFzdCBzZWdtZW50IHdlJ3ZlIG1hcmtlZCByZWFkeSBmb3Ig YXJjaGl2YWwuICBQcm90ZWN0ZWQgYnkKKwkgKiBpbmZvX2xjay4KKwkgKi8KKwlYTG9nU2VnTm8J bGFzdE5vdGlmaWVkU2VnOworCiAJc2xvY2tfdAkJaW5mb19sY2s7CQkvKiBsb2NrcyBzaGFyZWQg dmFyaWFibGVzIHNob3duIGFib3ZlICovCiB9IFhMb2dDdGxEYXRhOwogCkBAIC03MzYsNiArNzUy LDEyIEBAIHN0YXRpYyBXQUxJbnNlcnRMb2NrUGFkZGVkICpXQUxJbnNlcnRMb2NrcyA9IE5VTEw7 CiAgKi8KIHN0YXRpYyBDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlID0gTlVMTDsKIAorLyoK KyAqIFNlZ21lbnQgYm91bmRhcnkgbWFwLCB1c2VkIGZvciBtYXJraW5nIHNlZ21lbnRzIGFzIHJl YWR5IGZvciBhcmNoaXZhbC4KKyAqIFByb3RlY3RlZCBieSBTZWdtZW50Qm91bmRhcnlMb2NrLgor ICovCitzdGF0aWMgSFRBQiAqU2VnbWVudEJvdW5kYXJ5TWFwID0gTlVMTDsKKwogLyoKICAqIENh bGN1bGF0ZSB0aGUgYW1vdW50IG9mIHNwYWNlIGxlZnQgb24gdGhlIHBhZ2UgYWZ0ZXIgJ2VuZHB0 cicuIEJld2FyZQogICogbXVsdGlwbGUgZXZhbHVhdGlvbiEKQEAgLTk2Miw2ICs5ODQsMTMgQEAg c3RhdGljIFhMb2dSZWNQdHIgWExvZ0J5dGVQb3NUb1JlY1B0cih1aW50NjQgYnl0ZXBvcyk7CiBz dGF0aWMgWExvZ1JlY1B0ciBYTG9nQnl0ZVBvc1RvRW5kUmVjUHRyKHVpbnQ2NCBieXRlcG9zKTsK IHN0YXRpYyB1aW50NjQgWExvZ1JlY1B0clRvQnl0ZVBvcyhYTG9nUmVjUHRyIHB0cik7CiBzdGF0 aWMgdm9pZCBjaGVja1hMb2dDb25zaXN0ZW5jeShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7Citz dGF0aWMgdm9pZCBSZWdpc3RlclNlZ21lbnRCb3VuZGFyeUVudHJ5KFhMb2dTZWdObyBzZWcsIFhM b2dSZWNQdHIgcG9zKTsKK3N0YXRpYyBYTG9nU2VnTm8gR2V0TGFzdE5vdGlmaWVkU2VnbWVudCh2 b2lkKTsKK3N0YXRpYyB2b2lkIFNldExhc3ROb3RpZmllZFNlZ21lbnQoWExvZ1NlZ05vIHNlZyk7 CitzdGF0aWMgYm9vbCBHZXRMYXRlc3RTZWdtZW50Qm91bmRhcnkoWExvZ1NlZ05vIGxhc3Rfbm90 aWZpZWQsCisJCQkJCQkJCQkgWExvZ1JlY1B0ciBmbHVzaGVkLAorCQkJCQkJCQkJIFhMb2dTZWdO byAqbGF0ZXN0X2JvdW5kYXJ5X3NlZyk7CitzdGF0aWMgdm9pZCBSZW1vdmVTZWdtZW50Qm91bmRh cmllc1VwVG8oWExvZ1NlZ05vIHNlZyk7CiAKIHN0YXRpYyB2b2lkIFdBTEluc2VydExvY2tBY3F1 aXJlKHZvaWQpOwogc3RhdGljIHZvaWQgV0FMSW5zZXJ0TG9ja0FjcXVpcmVFeGNsdXNpdmUodm9p ZCk7CkBAIC0xMTU4LDYgKzExODcsMjQgQEAgWExvZ0luc2VydFJlY29yZChYTG9nUmVjRGF0YSAq cmRhdGEsCiAJICovCiAJaWYgKFN0YXJ0UG9zIC8gWExPR19CTENLU1ogIT0gRW5kUG9zIC8gWExP R19CTENLU1opCiAJeworCQlYTG9nU2VnTm8JU3RhcnRTZWc7CisJCVhMb2dTZWdObwlFbmRTZWc7 CisKKwkJLyoKKwkJICogSWYgd2UgY3Jvc3NlZCB0aGUgc2VnbWVudCBib3VuZGFyeSwgcmVjb3Jk IGl0LiAgVGhpcyBpcyB1c2VkIHRvCisJCSAqIGVuc3VyZSB0aGF0IHNlZ21lbnRzIGFyZSBub3Qg bWFya2VkIHJlYWR5IGZvciBhcmNoaXZhbCBiZWZvcmUgdGhlCisJCSAqIGVudGlyZSByZWNvcmQg aGFzIGJlZW4gZmx1c2hlZCB0byBkaXNrLgorCQkgKgorCQkgKiBOb3RlIHRoYXQgd2UgZG8gbm90 IHVzZSBYTEJ5dGVUb1ByZXZTZWcoKSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisJCSAqIGVuZGluZyBz ZWdtZW50LiAgVGhpcyBpcyBkb25lIHNvIHRoYXQgYSByZWNvcmQgdGhhdCBmaXRzIHBlcmZlY3Rs eQorCQkgKiBpbnRvIHRoZSBlbmQgb2YgdGhlIHNlZ21lbnQgaXMgbWFya2VkIHJlYWR5IGZvciBh cmNoaXZhbCBhcyBzb29uIGFzCisJCSAqIHRoZSBmbHVzaGVkIHBvaW50ZXIganVtcHMgdG8gdGhl IG5leHQgc2VnbWVudC4KKwkJICovCisJCVhMQnl0ZVRvU2VnKFN0YXJ0UG9zLCBTdGFydFNlZywg d2FsX3NlZ21lbnRfc2l6ZSk7CisJCVhMQnl0ZVRvU2VnKEVuZFBvcywgRW5kU2VnLCB3YWxfc2Vn bWVudF9zaXplKTsKKwkJaWYgKFN0YXJ0U2VnICE9IEVuZFNlZyAmJiBYTG9nQXJjaGl2aW5nQWN0 aXZlKCkpCisJCQlSZWdpc3RlclNlZ21lbnRCb3VuZGFyeUVudHJ5KEVuZFNlZywgRW5kUG9zKTsK KwogCQlTcGluTG9ja0FjcXVpcmUoJlhMb2dDdGwtPmluZm9fbGNrKTsKIAkJLyogYWR2YW5jZSBn bG9iYWwgcmVxdWVzdCB0byBpbmNsdWRlIG5ldyBibG9jayhzKSAqLwogCQlpZiAoWExvZ0N0bC0+ TG9nd3J0UnFzdC5Xcml0ZSA8IEVuZFBvcykKQEAgLTExNjUsMTIgKzEyMTIsMjEgQEAgWExvZ0lu c2VydFJlY29yZChYTG9nUmVjRGF0YSAqcmRhdGEsCiAJCS8qIHVwZGF0ZSBsb2NhbCByZXN1bHQg Y29weSB3aGlsZSBJIGhhdmUgdGhlIGNoYW5jZSAqLwogCQlMb2d3cnRSZXN1bHQgPSBYTG9nQ3Rs LT5Mb2d3cnRSZXN1bHQ7CiAJCVNwaW5Mb2NrUmVsZWFzZSgmWExvZ0N0bC0+aW5mb19sY2spOwor CisJCS8qCisJCSAqIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCB0aGUgcmVjb3JkIHdhcyBhbHJlYWR5 IGZsdXNoZWQgdG8gZGlzayBhbmQgd2UKKwkJICogbWlzc2VkIG1hcmtpbmcgc2VnbWVudHMgYXMg cmVhZHkgZm9yIGFyY2hpdmUuICBJZiB0aGlzIGhhcHBlbnMsIHdlCisJCSAqIG51ZGdlIHRoZSBX QUxXcml0ZXIsIHdoaWNoIHdpbGwgdGFrZSBjYXJlIG9mIG5vdGlmeWluZyBzZWdtZW50cyBhcwor CQkgKiBuZWVkZWQuCisJCSAqLworCQlpZiAoU3RhcnRTZWcgIT0gRW5kU2VnICYmIFhMb2dBcmNo aXZpbmdBY3RpdmUoKSAmJgorCQkJTG9nd3J0UmVzdWx0LkZsdXNoID49IEVuZFBvcyAmJiBQcm9j R2xvYmFsLT53YWx3cml0ZXJMYXRjaCkKKwkJCVNldExhdGNoKFByb2NHbG9iYWwtPndhbHdyaXRl ckxhdGNoKTsKIAl9CiAKIAkvKgogCSAqIElmIHRoaXMgd2FzIGFuIFhMT0dfU1dJVENIIHJlY29y ZCwgZmx1c2ggdGhlIHJlY29yZCBhbmQgdGhlIGVtcHR5Ci0JICogcGFkZGluZyBzcGFjZSB0aGF0 IGZpbGxzIHRoZSByZXN0IG9mIHRoZSBzZWdtZW50LCBhbmQgcGVyZm9ybQotCSAqIGVuZC1vZi1z ZWdtZW50IGFjdGlvbnMgKGVnLCBub3RpZnlpbmcgYXJjaGl2ZXIpLgorCSAqIHBhZGRpbmcgc3Bh Y2UgdGhhdCBmaWxscyB0aGUgcmVzdCBvZiB0aGUgc2VnbWVudC4KIAkgKi8KIAlpZiAoaXNMb2dT d2l0Y2gpCiAJewpAQCAtMTI2NCw2ICsxMzIwLDE5MiBAQCBYTG9nSW5zZXJ0UmVjb3JkKFhMb2dS ZWNEYXRhICpyZGF0YSwKIAlyZXR1cm4gRW5kUG9zOwogfQogCisvKgorICogUmVnaXN0ZXJTZWdt ZW50Qm91bmRhcnlFbnRyeQorICoKKyAqIFRoaXMgZW50ZXJzIGEgbmV3IGVudHJ5IGludG8gdGhl IHNlZ21lbnQgYm91bmRhcnkgbWFwLCB3aGljaCBpcyB1c2VkIGZvcgorICogZGV0ZXJtaW5nIHdo ZW4gaXQgaXMgc2FmZSB0byBtYXJrIGEgc2VnbWVudCBhcyByZWFkeSBmb3IgYXJjaGl2YWwuICBB biBlbnRyeQorICogd2l0aCB0aGUgZ2l2ZW4ga2V5ICh0aGUgc2VnbWVudCBudW1iZXIpIG11c3Qg bm90IGFscmVhZHkgZXhpc3QgaW4gdGhlIG1hcC4KKyAqIEFsc28sIHRoZSBjYWxsZXIgaXMgcmVz cG9uc2libGUgZm9yIGVuc3VyaW5nIHRoYXQgWExCeXRlVG9TZWcoKSB3b3VsZCByZXR1cm4KKyAq IHRoZSBzYW1lIHNlZ21lbnQgbnVtYmVyIGZvciB0aGUgZ2l2ZW4gcmVjb3JkIHBvaW50ZXIuCisg Ki8KK3N0YXRpYyB2b2lkCitSZWdpc3RlclNlZ21lbnRCb3VuZGFyeUVudHJ5KFhMb2dTZWdObyBz ZWcsIFhMb2dSZWNQdHIgcG9zKQoreworCVNlZ21lbnRCb3VuZGFyeUVudHJ5ICplbnRyeTsKKwli b29sCQlmb3VuZDsKKworCUxXTG9ja0FjcXVpcmUoU2VnbWVudEJvdW5kYXJ5TG9jaywgTFdfRVhD TFVTSVZFKTsKKworCWVudHJ5ID0gKFNlZ21lbnRCb3VuZGFyeUVudHJ5ICopIGhhc2hfc2VhcmNo KFNlZ21lbnRCb3VuZGFyeU1hcCwKKwkJCQkJCQkJCQkJCSAodm9pZCAqKSAmc2VnLCBIQVNIX0VO VEVSLAorCQkJCQkJCQkJCQkJICZmb3VuZCk7CisJaWYgKGZvdW5kKQorCQllbG9nKEVSUk9SLCAi ZW50cnkgZm9yIHNlZ21lbnQgYWxyZWFkeSBleGlzdHMiKTsKKworCWVudHJ5LT5lbmRwb3MgPSBw b3M7CisKKwlMV0xvY2tSZWxlYXNlKFNlZ21lbnRCb3VuZGFyeUxvY2spOworfQorCisvKgorICog Tm90aWZ5U2VnbWVudHNSZWFkeUZvckFyY2hpdmUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG1hcmtz IHNlZ21lbnRzIGFzIHJlYWR5IGZvciBhcmNoaXZhbCwgZ2l2ZW4gdGhhdCBpdCBpcyBzYWZlIHRv CisgKiBkbyBzby4gIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHJlcGVhdGVkbHks IGV2ZW4gaWYgbm90aGluZyBoYXMKKyAqIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgdGltZSBpdCB3 YXMgY2FsbGVkLgorICovCit2b2lkCitOb3RpZnlTZWdtZW50c1JlYWR5Rm9yQXJjaGl2ZShYTG9n UmVjUHRyIGZsdXNoUmVjUHRyKQoreworCVhMb2dTZWdObwlmbHVzaGVkX3NlZzsKKwlYTG9nU2Vn Tm8JbGF0ZXN0X2JvdW5kYXJ5X3NlZzsKKwlYTG9nU2VnTm8JbGFzdF9ub3RpZmllZDsKKworCS8q CisJICogV2UgZmlyc3QgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBi YWlsIG91dCB3aXRob3V0CisJICogdGFraW5nIHRoZSBTZWdtZW50Qm91bmRhcnlMb2NrIGF0IGFs bC4gIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhpcworCSAqIGZ1bmN0aW9uIHdpbGwgcnVuIGZyZXF1 ZW50bHkgYW5kIHRoYXQgaXQgd2lsbCBuZWVkIHRvIGRvIG5vdGhpbmcgdGhlCisJICogdmFzdCBt YWpvcml0eSBvZiB0aGUgdGltZS4KKwkgKgorCSAqIFNwZWNpZmljYWxseSwgd2UgYmFpbCBvdXQg aWYgd2UndmUgYWxyZWFkeSBtYXJrZWQgdGhlIHNlZ21lbnQgcHJpb3IgdG8KKwkgKiB0aGUgc2Vn bWVudCB0aGF0IGNvbnRhaW5zIGZsdXNoUmVjUHRyIGFzIHJlYWR5IGZvciBhcmNoaXZhbC4gIFdl CisJICogaW50ZW50aW9uYWxseSB1c2UgWExCeXRlVG9TZWcoKSBpbnN0ZWFkIG9mIFhMQnl0ZVRv UHJldlNlZygpIHNvIHRoYXQgd2UKKwkgKiBkb24ndCBza2lwIG5vdGlmeWluZyB3aGVuIGEgcmVj b3JkIGZpdHMgcGVyZmVjdGx5IGludG8gdGhlIGVuZCBvZiBhCisJICogc2VnbWVudC4gIChmbHVz aFJlY1B0ciBzaG91bGQgcG9pbnQgdG8gdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIHJlY29yZAorCSAq IF9hZnRlcl8gdGhlIG9uZSB0aGF0IGlzIGtub3duIHRvIGJlIGZsdXNoZWQgdG8gZGlzay4pCisJ ICovCisJbGFzdF9ub3RpZmllZCA9IEdldExhc3ROb3RpZmllZFNlZ21lbnQoKTsKKwlYTEJ5dGVU b1NlZyhmbHVzaFJlY1B0ciwgZmx1c2hlZF9zZWcsIHdhbF9zZWdtZW50X3NpemUpOworCWlmIChs YXN0X25vdGlmaWVkID49IGZsdXNoZWRfc2VnIC0gMSkKKwkJcmV0dXJuOworCisJTFdMb2NrQWNx dWlyZShTZWdtZW50Qm91bmRhcnlMb2NrLCBMV19FWENMVVNJVkUpOworCisJLyogUmVvYnRhaW4g bGFzdE5vdGlmaWVkU2VnIGluIGNhc2Ugc29tZW9uZSBlbHNlIGNoYW5nZWQgaXQuICovCisJbGFz dF9ub3RpZmllZCA9IEdldExhc3ROb3RpZmllZFNlZ21lbnQoKTsKKworCS8qIFJldHJpZXZlIHRo ZSBsYXRlc3Qgc2VnbWVudCBib3VuZGFyeSB0byB1c2UgZm9yIG5vdGlmeWluZyBzZWdtZW50cy4g Ki8KKwlpZiAoR2V0TGF0ZXN0U2VnbWVudEJvdW5kYXJ5KGxhc3Rfbm90aWZpZWQsIGZsdXNoUmVj UHRyLCAmbGF0ZXN0X2JvdW5kYXJ5X3NlZykpCisJeworCQkvKgorCQkgKiBVcGRhdGUgc2hhcmVk IG1lbW9yeSBhbmQgZGlzY2FyZCBzZWdtZW50IGJvdW5kYXJpZXMgdGhhdCBhcmUgbm8KKwkJICog bG9uZ2VyIG5lZWRlZC4KKwkJICoKKwkJICogSXQgaXMgc2FmZSB0byB1cGRhdGUgc2hhcmVkIG1l bW9yeSBiZWZvcmUgd2UgYXR0ZW1wdCB0byBjcmVhdGUgdGhlCisJCSAqIC5yZWFkeSBmaWxlcy4g IElmIG91ciBjYWxscyB0byBYTG9nQXJjaGl2ZU5vdGlmeVNlZygpIGZhaWwsCisJCSAqIFJlbW92 ZU9sZFhsb2dGaWxlcygpIHdpbGwgcmV0cnkgaXQgYXMgbmVlZGVkLgorCQkgKi8KKwkJU2V0TGFz dE5vdGlmaWVkU2VnbWVudChsYXRlc3RfYm91bmRhcnlfc2VnIC0gMSk7CisJCVJlbW92ZVNlZ21l bnRCb3VuZGFyaWVzVXBUbyhsYXRlc3RfYm91bmRhcnlfc2VnKTsKKworCQlMV0xvY2tSZWxlYXNl KFNlZ21lbnRCb3VuZGFyeUxvY2spOworCisJCS8qCisJCSAqIE5vdGlmeSBhcmNoaXZlciBhYm91 dCBzZWdtZW50cyB0aGF0IGFyZSByZWFkeSBmb3IgYXJjaGl2YWwgKGJ5CisJCSAqIGNyZWF0aW5n IHRoZSBjb3JyZXNwb25kaW5nIC5yZWFkeSBmaWxlcykuCisJCSAqLworCQlmb3IgKFhMb2dTZWdO byBzZWcgPSBsYXN0X25vdGlmaWVkICsgMTsgc2VnIDwgbGF0ZXN0X2JvdW5kYXJ5X3NlZzsgc2Vn KyspCisJCQlYTG9nQXJjaGl2ZU5vdGlmeVNlZyhzZWcsIGZhbHNlKTsKKworCQlQZ0FyY2hXYWtl dXAoKTsKKwl9CisJZWxzZQorCQlMV0xvY2tSZWxlYXNlKFNlZ21lbnRCb3VuZGFyeUxvY2spOwor fQorCisvKgorICogR2V0TGF0ZXN0U2VnbWVudEJvdW5kYXJ5CisgKgorICogVGhpcyBmdW5jdGlv biBmaW5kcyB0aGUgbGF0ZXN0IHNlZ21lbnQgYm91bmRhcnkgaW4gU2VnbWVudEJvdW5kYXJ5TWFw IHRoYXQgaXMKKyAqIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4gImZsdXNoZWQiIHBv aW50ZXIgYW5kIGJleW9uZCB0aGUgbGFzdAorICogbm90aWZpZWQgc2VnbWVudC4gIElmIHN1Y2gg YSBzZWdtZW50IGlzIGZvdW5kLCBsYXRlc3RfYm91bmRhcnlfc2VnIGlzCisgKiBwb3B1bGF0ZWQg YW5kIHRydWUgaXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIGZhbHNlIGlzIHJldHVybmVkLgorICov CitzdGF0aWMgYm9vbAorR2V0TGF0ZXN0U2VnbWVudEJvdW5kYXJ5KFhMb2dTZWdObyBsYXN0X25v dGlmaWVkLCBYTG9nUmVjUHRyIGZsdXNoZWQsCisJCQkJCQkgWExvZ1NlZ05vICpsYXRlc3RfYm91 bmRhcnlfc2VnKQoreworCVhMb2dTZWdObwlmbHVzaGVkX3NlZzsKKwlYTG9nU2VnTm8Jc2VnOwor CisJQXNzZXJ0KExXTG9ja0hlbGRCeU1lKFNlZ21lbnRCb3VuZGFyeUxvY2spKTsKKwlBc3NlcnQo bGF0ZXN0X2JvdW5kYXJ5X3NlZyAhPSBOVUxMKTsKKworCVhMQnl0ZVRvU2VnKGZsdXNoZWQsIGZs dXNoZWRfc2VnLCB3YWxfc2VnbWVudF9zaXplKTsKKworCWZvciAoc2VnID0gZmx1c2hlZF9zZWc7 IHNlZyA+IGxhc3Rfbm90aWZpZWQ7IHNlZy0tKQorCXsKKwkJU2VnbWVudEJvdW5kYXJ5RW50cnkg KmVudHJ5OworCisJCWVudHJ5ID0gKFNlZ21lbnRCb3VuZGFyeUVudHJ5ICopIGhhc2hfc2VhcmNo KFNlZ21lbnRCb3VuZGFyeU1hcCwKKwkJCQkJCQkJCQkJCQkgKHZvaWQgKikgJnNlZywgSEFTSF9G SU5ELAorCQkJCQkJCQkJCQkJCSBOVUxMKTsKKworCQlpZiAoZW50cnkgIT0gTlVMTCAmJiBmbHVz aGVkID49IGVudHJ5LT5lbmRwb3MpCisJCXsKKwkJCSpsYXRlc3RfYm91bmRhcnlfc2VnID0gZW50 cnktPnNlZzsKKwkJCXJldHVybiB0cnVlOworCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOworfQor CisvKgorICogUmVtb3ZlU2VnbWVudEJvdW5kYXJpZXNVcFRvCisgKgorICogVGhpcyBmdW5jdGlv biByZW1vdmVzIGFsbCBlbnRyaWVzIGluIHRoZSBTZWdtZW50Qm91bmRhcnlNYXAgd2l0aCBzZWdt ZW50CisgKiBudW1iZXJzIHVwIHRvIGFuZCBpbmNsdWRpbmcgc2VnLgorICovCitzdGF0aWMgdm9p ZAorUmVtb3ZlU2VnbWVudEJvdW5kYXJpZXNVcFRvKFhMb2dTZWdObyBzZWcpCit7CisJU2VnbWVu dEJvdW5kYXJ5RW50cnkgKmVudHJ5OworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisKKwlBc3Nl cnQoTFdMb2NrSGVsZEJ5TWVJbk1vZGUoU2VnbWVudEJvdW5kYXJ5TG9jaywgTFdfRVhDTFVTSVZF KSk7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIFNlZ21lbnRCb3VuZGFyeU1hcCk7CisKKwl3 aGlsZSAoKGVudHJ5ID0gKFNlZ21lbnRCb3VuZGFyeUVudHJ5ICopIGhhc2hfc2VxX3NlYXJjaCgm c3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChlbnRyeS0+c2VnIDw9IHNlZykKKwkJCSh2b2lk KSBoYXNoX3NlYXJjaChTZWdtZW50Qm91bmRhcnlNYXAsICh2b2lkICopICZlbnRyeS0+c2VnLAor CQkJCQkJCSAgIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9Cit9CisKKy8qCisgKiBHZXRMYXN0Tm90 aWZpZWRTZWdtZW50CisgKgorICogUmV0cmlldmVzIGxhc3Qgbm90aWZpZWQgc2VnbWVudCBmcm9t IHNoYXJlZCBtZW1vcnkuCisgKi8KK1hMb2dTZWdObworR2V0TGFzdE5vdGlmaWVkU2VnbWVudCh2 b2lkKQoreworCVhMb2dTZWdObwlzZWc7CisKKwlTcGluTG9ja0FjcXVpcmUoJlhMb2dDdGwtPmlu Zm9fbGNrKTsKKwlzZWcgPSBYTG9nQ3RsLT5sYXN0Tm90aWZpZWRTZWc7CisJU3BpbkxvY2tSZWxl YXNlKCZYTG9nQ3RsLT5pbmZvX2xjayk7CisKKwlyZXR1cm4gc2VnOworfQorCisvKgorICogU2V0 TGFzdE5vdGlmaWVkU2VnbWVudAorICoKKyAqIFNldHMgbGFzdCBub3RpZmllZCBzZWdtZW50IGlu IHNoYXJlZCBtZW1vcnkuCisgKi8KK3N0YXRpYyB2b2lkCitTZXRMYXN0Tm90aWZpZWRTZWdtZW50 KFhMb2dTZWdObyBzZWcpCit7CisJU3BpbkxvY2tBY3F1aXJlKCZYTG9nQ3RsLT5pbmZvX2xjayk7 CisJWExvZ0N0bC0+bGFzdE5vdGlmaWVkU2VnID0gc2VnOworCVNwaW5Mb2NrUmVsZWFzZSgmWExv Z0N0bC0+aW5mb19sY2spOworfQorCiAvKgogICogUmVzZXJ2ZXMgdGhlIHJpZ2h0IGFtb3VudCBv ZiBzcGFjZSBmb3IgYSByZWNvcmQgb2YgZ2l2ZW4gc2l6ZSBmcm9tIHRoZSBXQUwuCiAgKiAqU3Rh cnRQb3MgaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlc2VydmVkIHNlY3Rpb24sICpF bmRQb3MgdG8KQEAgLTI0MjEsNiArMjY2Myw3IEBAIFhMb2dXcml0ZShYTG9nd3J0UnFzdCBXcml0 ZVJxc3QsIGJvb2wgZmxleGlibGUpCiAKIAkvKiBXZSBzaG91bGQgYWx3YXlzIGJlIGluc2lkZSBh IGNyaXRpY2FsIHNlY3Rpb24gaGVyZSAqLwogCUFzc2VydChDcml0U2VjdGlvbkNvdW50ID4gMCk7 CisJQXNzZXJ0KExXTG9ja0hlbGRCeU1lKFdBTFdyaXRlTG9jaykpOwogCiAJLyoKIAkgKiBVcGRh dGUgbG9jYWwgTG9nd3J0UmVzdWx0IChjYWxsZXIgcHJvYmFibHkgZGlkIHRoaXMgYWxyZWFkeSwg YnV0Li4uKQpAQCAtMjU4NiwxMSArMjgyOSwxMyBAQCBYTG9nV3JpdGUoWExvZ3dydFJxc3QgV3Jp dGVScXN0LCBib29sIGZsZXhpYmxlKQogCQkJICogbGF0ZXIuIERvaW5nIGl0IGhlcmUgZW5zdXJl cyB0aGF0IG9uZSBhbmQgb25seSBvbmUgYmFja2VuZCB3aWxsCiAJCQkgKiBwZXJmb3JtIHRoaXMg ZnN5bmMuCiAJCQkgKgotCQkJICogVGhpcyBpcyBhbHNvIHRoZSByaWdodCBwbGFjZSB0byBub3Rp ZnkgdGhlIEFyY2hpdmVyIHRoYXQgdGhlCi0JCQkgKiBzZWdtZW50IGlzIHJlYWR5IHRvIGNvcHkg dG8gYXJjaGl2YWwgc3RvcmFnZSwgYW5kIHRvIHVwZGF0ZSB0aGUKLQkJCSAqIHRpbWVyIGZvciBh cmNoaXZlX3RpbWVvdXQsIGFuZCB0byBzaWduYWwgZm9yIGEgY2hlY2twb2ludCBpZgotCQkJICog dG9vIG1hbnkgbG9nZmlsZSBzZWdtZW50cyBoYXZlIGJlZW4gdXNlZCBzaW5jZSB0aGUgbGFzdAot CQkJICogY2hlY2twb2ludC4KKwkJCSAqIElmIFdBTCBhcmNoaXZpbmcgaXMgYWN0aXZlLCB3ZSBh dHRlbXB0IHRvIG5vdGlmeSB0aGUgYXJjaGl2ZXIKKwkJCSAqIG9mIGFueSBzZWdtZW50cyB0aGF0 IGFyZSBub3cgcmVhZHkgZm9yIGFyY2hpdmFsLgorCQkJICoKKwkJCSAqIFRoaXMgaXMgYWxzbyB0 aGUgcmlnaHQgcGxhY2UgdG8gdXBkYXRlIHRoZSB0aW1lciBmb3IKKwkJCSAqIGFyY2hpdmVfdGlt ZW91dCBhbmQgdG8gc2lnbmFsIGZvciBhIGNoZWNrcG9pbnQgaWYgdG9vIG1hbnkKKwkJCSAqIGxv Z2ZpbGUgc2VnbWVudHMgaGF2ZSBiZWVuIHVzZWQgc2luY2UgdGhlIGxhc3QgY2hlY2twb2ludC4K KwkJCSAqCiAJCQkgKi8KIAkJCWlmIChmaW5pc2hpbmdfc2VnKQogCQkJewpAQCAtMjYwMiw3ICsy ODQ3LDcgQEAgWExvZ1dyaXRlKFhMb2d3cnRScXN0IFdyaXRlUnFzdCwgYm9vbCBmbGV4aWJsZSkK IAkJCQlMb2d3cnRSZXN1bHQuRmx1c2ggPSBMb2d3cnRSZXN1bHQuV3JpdGU7CS8qIGVuZCBvZiBw YWdlICovCiAKIAkJCQlpZiAoWExvZ0FyY2hpdmluZ0FjdGl2ZSgpKQotCQkJCQlYTG9nQXJjaGl2 ZU5vdGlmeVNlZyhvcGVuTG9nU2VnTm8pOworCQkJCQlOb3RpZnlTZWdtZW50c1JlYWR5Rm9yQXJj aGl2ZShMb2d3cnRSZXN1bHQuRmx1c2gpOwogCiAJCQkJWExvZ0N0bC0+bGFzdFNlZ1N3aXRjaFRp bWUgPSAocGdfdGltZV90KSB0aW1lKE5VTEwpOwogCQkJCVhMb2dDdGwtPmxhc3RTZWdTd2l0Y2hM U04gPSBMb2d3cnRSZXN1bHQuRmx1c2g7CkBAIC0yNjkwLDYgKzI5MzUsOSBAQCBYTG9nV3JpdGUo WExvZ3dydFJxc3QgV3JpdGVScXN0LCBib29sIGZsZXhpYmxlKQogCQkJWExvZ0N0bC0+TG9nd3J0 UnFzdC5GbHVzaCA9IExvZ3dydFJlc3VsdC5GbHVzaDsKIAkJU3BpbkxvY2tSZWxlYXNlKCZYTG9n Q3RsLT5pbmZvX2xjayk7CiAJfQorCisJaWYgKFhMb2dBcmNoaXZpbmdBY3RpdmUoKSkKKwkJTm90 aWZ5U2VnbWVudHNSZWFkeUZvckFyY2hpdmUoTG9nd3J0UmVzdWx0LkZsdXNoKTsKIH0KIAogLyoK QEAgLTUxMTcsNiArNTM2NSw5IEBAIFhMT0dTaG1lbVNpemUodm9pZCkKIAkvKiBhbmQgdGhlIGJ1 ZmZlcnMgdGhlbXNlbHZlcyAqLwogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBtdWxfc2l6ZShYTE9H X0JMQ0tTWiwgWExPR2J1ZmZlcnMpKTsKIAorCS8qIHN0dWZmIGZvciBtYXJraW5nIHNlZ21lbnRz IGFzIHJlYWR5IGZvciBhcmNoaXZhbCAqLworCXNpemUgPSBhZGRfc2l6ZShzaXplLCBoYXNoX2Vz dGltYXRlX3NpemUoMTYsIHNpemVvZihTZWdtZW50Qm91bmRhcnlFbnRyeSkpKTsKKwogCS8qCiAJ ICogTm90ZTogd2UgZG9uJ3QgY291bnQgQ29udHJvbEZpbGVEYXRhLCBpdCBjb21lcyBvdXQgb2Yg dGhlICJzbG9wIGZhY3RvciIKIAkgKiBhZGRlZCBieSBDcmVhdGVTaGFyZWRNZW1vcnlBbmRTZW1h cGhvcmVzLiAgVGhpcyBsZXRzIHVzIHVzZSB0aGlzCkBAIC01MTM0LDYgKzUzODUsNyBAQCBYTE9H U2htZW1Jbml0KHZvaWQpCiAJY2hhcgkgICAqYWxsb2NwdHI7CiAJaW50CQkJaTsKIAlDb250cm9s RmlsZURhdGEgKmxvY2FsQ29udHJvbEZpbGU7CisJSEFTSENUTAkJaW5mbzsKIAogI2lmZGVmIFdB TF9ERUJVRwogCkBAIC01MjI3LDEyICs1NDc5LDIwIEBAIFhMT0dTaG1lbUluaXQodm9pZCkKIAlY TG9nQ3RsLT5JbnN0YWxsWExvZ0ZpbGVTZWdtZW50QWN0aXZlID0gZmFsc2U7CiAJWExvZ0N0bC0+ U2hhcmVkUHJvbW90ZUlzVHJpZ2dlcmVkID0gZmFsc2U7CiAJWExvZ0N0bC0+V2FsV3JpdGVyU2xl ZXBpbmcgPSBmYWxzZTsKKwlYTG9nQ3RsLT5sYXN0Tm90aWZpZWRTZWcgPSBNYXhYTG9nU2VnTm87 CiAKIAlTcGluTG9ja0luaXQoJlhMb2dDdGwtPkluc2VydC5pbnNlcnRwb3NfbGNrKTsKIAlTcGlu TG9ja0luaXQoJlhMb2dDdGwtPmluZm9fbGNrKTsKIAlTcGluTG9ja0luaXQoJlhMb2dDdGwtPnVs c25fbGNrKTsKIAlJbml0U2hhcmVkTGF0Y2goJlhMb2dDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gp OwogCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmWExvZ0N0bC0+cmVjb3ZlcnlOb3RQYXVzZWRDVik7 CisKKwkvKiBJbml0aWFsaXplIHN0dWZmIGZvciBtYXJraW5nIHNlZ21lbnRzIGFzIHJlYWR5IGZv ciBhcmNoaXZhbC4gKi8KKwltZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7CisJaW5mby5r ZXlzaXplID0gc2l6ZW9mKFhMb2dTZWdObyk7CisJaW5mby5lbnRyeXNpemUgPSBzaXplb2YoU2Vn bWVudEJvdW5kYXJ5RW50cnkpOworCVNlZ21lbnRCb3VuZGFyeU1hcCA9IFNobWVtSW5pdEhhc2go IlNlZ21lbnQgQm91bmRhcnkgVGFibGUiLCAxNiwgMTYsICZpbmZvLAorCQkJCQkJCQkJICAgSEFT SF9FTEVNIHwgSEFTSF9CTE9CUyk7CiB9CiAKIC8qCkBAIC03ODczLDYgKzgxMzMsMTcgQEAgU3Rh cnR1cFhMT0codm9pZCkKIAlYTG9nQ3RsLT5Mb2d3cnRScXN0LldyaXRlID0gRW5kT2ZMb2c7CiAJ WExvZ0N0bC0+TG9nd3J0UnFzdC5GbHVzaCA9IEVuZE9mTG9nOwogCisJLyoKKwkgKiBJbml0aWFs aXplIFhMb2dDdGwtPmxhc3ROb3RpZmllZFNlZyB0byB0aGUgcHJldmlvdXMgV0FMIGZpbGUuCisJ ICovCisJaWYgKFhMb2dBcmNoaXZpbmdBY3RpdmUoKSkKKwl7CisJCVhMb2dTZWdObwlFbmRPZkxv Z1NlZzsKKworCQlYTEJ5dGVUb1NlZyhFbmRPZkxvZywgRW5kT2ZMb2dTZWcsIHdhbF9zZWdtZW50 X3NpemUpOworCQlTZXRMYXN0Tm90aWZpZWRTZWdtZW50KEVuZE9mTG9nU2VnIC0gMSk7CisJfQor CiAJLyoKIAkgKiBVcGRhdGUgZnVsbF9wYWdlX3dyaXRlcyBpbiBzaGFyZWQgbWVtb3J5IGFuZCB3 cml0ZSBhbiBYTE9HX0ZQV19DSEFOR0UKIAkgKiByZWNvcmQgYmVmb3JlIHJlc291cmNlIG1hbmFn ZXIgd3JpdGVzIGNsZWFudXAgV0FMIHJlY29yZHMgb3IgY2hlY2twb2ludApAQCAtODAwMCw3ICs4 MjcxLDcgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkJCQlYTG9nQXJjaGl2ZUNsZWFudXAocGFydGlh bGZuYW1lKTsKIAogCQkJCWR1cmFibGVfcmVuYW1lKG9yaWdwYXRoLCBwYXJ0aWFscGF0aCwgRVJS T1IpOwotCQkJCVhMb2dBcmNoaXZlTm90aWZ5KHBhcnRpYWxmbmFtZSk7CisJCQkJWExvZ0FyY2hp dmVOb3RpZnkocGFydGlhbGZuYW1lLCB0cnVlKTsKIAkJCX0KIAkJfQogCX0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jCmluZGV4IDI2YjAyM2U3NTQuLmI5YzE5YjIwODUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYwpAQCAtNDMzLDcgKzQz Myw3IEBAIEtlZXBGaWxlUmVzdG9yZWRGcm9tQXJjaGl2ZShjb25zdCBjaGFyICpwYXRoLCBjb25z dCBjaGFyICp4bG9nZm5hbWUpCiAJaWYgKFhMb2dBcmNoaXZlTW9kZSAhPSBBUkNISVZFX01PREVf QUxXQVlTKQogCQlYTG9nQXJjaGl2ZUZvcmNlRG9uZSh4bG9nZm5hbWUpOwogCWVsc2UKLQkJWExv Z0FyY2hpdmVOb3RpZnkoeGxvZ2ZuYW1lKTsKKwkJWExvZ0FyY2hpdmVOb3RpZnkoeGxvZ2ZuYW1l LCB0cnVlKTsKIAogCS8qCiAJICogSWYgdGhlIGV4aXN0aW5nIGZpbGUgd2FzIHJlcGxhY2VkLCBz aW5jZSB3YWxzZW5kZXJzIG1pZ2h0IGhhdmUgaXQgb3BlbiwKQEAgLTQ2Miw5ICs0NjIsMTIgQEAg S2VlcEZpbGVSZXN0b3JlZEZyb21BcmNoaXZlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIg Knhsb2dmbmFtZSkKICAqIGJ5IHRoZSBhcmNoaXZlciwgZS5nLiB3ZSB3cml0ZSAwMDAwMDAwMTAw MDAwMDAxMDAwMDAwQzYucmVhZHkKICAqIGFuZCB0aGUgYXJjaGl2ZXIgdGhlbiBrbm93cyB0byBh cmNoaXZlIFhMT0dESVIvMDAwMDAwMDEwMDAwMDAwMTAwMDAwMEM2LAogICogdGhlbiB3aGVuIGNv bXBsZXRlLCByZW5hbWUgaXQgdG8gMDAwMDAwMDEwMDAwMDAwMTAwMDAwMEM2LmRvbmUKKyAqCisg KiBPcHRpb25hbGx5LCBudWRnZSB0aGUgYXJjaGl2ZXIgcHJvY2VzcyBzbyB0aGF0IGl0J2xsIG5v dGljZSB0aGUgZmlsZSB3ZQorICogY3JlYXRlLgogICovCiB2b2lkCi1YTG9nQXJjaGl2ZU5vdGlm eShjb25zdCBjaGFyICp4bG9nKQorWExvZ0FyY2hpdmVOb3RpZnkoY29uc3QgY2hhciAqeGxvZywg Ym9vbCBudWRnZSkKIHsKIAljaGFyCQlhcmNoaXZlU3RhdHVzUGF0aFtNQVhQR1BBVEhdOwogCUZJ TEUJICAgKmZkOwpAQCAtNDg5LDggKzQ5Miw4IEBAIFhMb2dBcmNoaXZlTm90aWZ5KGNvbnN0IGNo YXIgKnhsb2cpCiAJCXJldHVybjsKIAl9CiAKLQkvKiBOb3RpZnkgYXJjaGl2ZXIgdGhhdCBpdCdz IGdvdCBzb21ldGhpbmcgdG8gZG8gKi8KLQlpZiAoSXNVbmRlclBvc3RtYXN0ZXIpCisJLyogSWYg Y2FsbGVyIHJlcXVlc3RlZCwgbGV0IGFyY2hpdmVyIGtub3cgaXQncyBnb3Qgd29yayB0byBkbyAq LworCWlmIChudWRnZSkKIAkJUGdBcmNoV2FrZXVwKCk7CiB9CiAKQEAgLTQ5OCwxMiArNTAxLDEy IEBAIFhMb2dBcmNoaXZlTm90aWZ5KGNvbnN0IGNoYXIgKnhsb2cpCiAgKiBDb252ZW5pZW5jZSBy b3V0aW5lIHRvIG5vdGlmeSB1c2luZyBzZWdtZW50IG51bWJlciByZXByZXNlbnRhdGlvbiBvZiBm aWxlbmFtZQogICovCiB2b2lkCi1YTG9nQXJjaGl2ZU5vdGlmeVNlZyhYTG9nU2VnTm8gc2Vnbm8p CitYTG9nQXJjaGl2ZU5vdGlmeVNlZyhYTG9nU2VnTm8gc2Vnbm8sIGJvb2wgbnVkZ2UpCiB7CiAJ Y2hhcgkJeGxvZ1tNQVhGTkFNRUxFTl07CiAKIAlYTG9nRmlsZU5hbWUoeGxvZywgVGhpc1RpbWVM aW5lSUQsIHNlZ25vLCB3YWxfc2VnbWVudF9zaXplKTsKLQlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9n KTsKKwlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9nLCBudWRnZSk7CiB9CiAKIC8qCkBAIC02MDgsNyAr NjExLDcgQEAgWExvZ0FyY2hpdmVDaGVja0RvbmUoY29uc3QgY2hhciAqeGxvZykKIAkJcmV0dXJu IHRydWU7CiAKIAkvKiBSZXRyeSBjcmVhdGlvbiBvZiB0aGUgLnJlYWR5IGZpbGUgKi8KLQlYTG9n QXJjaGl2ZU5vdGlmeSh4bG9nKTsKKwlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9nLCB0cnVlKTsKIAly ZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fs d3JpdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3dhbHdyaXRlci5jCmluZGV4IDYyNmZh ZTg0NTQuLjZhMWUxNmVkYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fs d3JpdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93YWx3cml0ZXIuYwpAQCAtMjQ4 LDYgKzI0OCwxMyBAQCBXYWxXcml0ZXJNYWluKHZvaWQpCiAJCS8qIFByb2Nlc3MgYW55IHNpZ25h bHMgcmVjZWl2ZWQgcmVjZW50bHkgKi8KIAkJSGFuZGxlV2FsV3JpdGVySW50ZXJydXB0cygpOwog CisJCS8qCisJCSAqIE5vdGlmeSB0aGUgYXJjaGl2ZXIgb2YgYW55IFdBTCBzZWdtZW50cyB0aGF0 IGFyZSByZWFkeS4gIFdlIGRvIHRoaXMKKwkJICogaGVyZSB0byBoYW5kbGUgYSByYWNlIGNvbmRp dGlvbiB3aGVyZSBXQUwgaXMgZmx1c2hlZCB0byBkaXNrIHByaW9yCisJCSAqIHRvIHJlZ2lzdGVy aW5nIHRoZSBzZWdtZW50IGJvdW5kYXJ5LgorCQkgKi8KKwkJTm90aWZ5U2VnbWVudHNSZWFkeUZv ckFyY2hpdmUoR2V0Rmx1c2hSZWNQdHIoKSk7CisKIAkJLyoKIAkJICogRG8gd2hhdCB3ZSdyZSBo ZXJlIGZvcjsgdGhlbiwgaWYgWExvZ0JhY2tncm91bmRGbHVzaCgpIGZvdW5kIHVzZWZ1bAogCQkg KiB3b3JrIHRvIGRvLCByZXNldCBoaWJlcm5hdGlvbiBjb3VudGVyLgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHJlY2VpdmVyLmMKaW5kZXggOWEyYmMzN2ZkNy4uNjBkZTNiZTkyYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCkBAIC02MjIsNyArNjIyLDcgQEAgV2FsUmVjZWl2 ZXJNYWluKHZvaWQpCiAJCQlpZiAoWExvZ0FyY2hpdmVNb2RlICE9IEFSQ0hJVkVfTU9ERV9BTFdB WVMpCiAJCQkJWExvZ0FyY2hpdmVGb3JjZURvbmUoeGxvZ2ZuYW1lKTsKIAkJCWVsc2UKLQkJCQlY TG9nQXJjaGl2ZU5vdGlmeSh4bG9nZm5hbWUpOworCQkJCVhMb2dBcmNoaXZlTm90aWZ5KHhsb2dm bmFtZSwgdHJ1ZSk7CiAJCX0KIAkJcmVjdkZpbGUgPSAtMTsKIApAQCAtNzYwLDcgKzc2MCw3IEBA IFdhbFJjdkZldGNoVGltZUxpbmVIaXN0b3J5RmlsZXMoVGltZUxpbmVJRCBmaXJzdCwgVGltZUxp bmVJRCBsYXN0KQogCQkJaWYgKFhMb2dBcmNoaXZlTW9kZSAhPSBBUkNISVZFX01PREVfQUxXQVlT KQogCQkJCVhMb2dBcmNoaXZlRm9yY2VEb25lKGZuYW1lKTsKIAkJCWVsc2UKLQkJCQlYTG9nQXJj aGl2ZU5vdGlmeShmbmFtZSk7CisJCQkJWExvZ0FyY2hpdmVOb3RpZnkoZm5hbWUsIHRydWUpOwog CiAJCQlwZnJlZShmbmFtZSk7CiAJCQlwZnJlZShjb250ZW50KTsKQEAgLTkxNSw3ICs5MTUsNyBA QCBYTG9nV2FsUmN2V3JpdGUoY2hhciAqYnVmLCBTaXplIG5ieXRlcywgWExvZ1JlY1B0ciByZWNw dHIpCiAJCQkJaWYgKFhMb2dBcmNoaXZlTW9kZSAhPSBBUkNISVZFX01PREVfQUxXQVlTKQogCQkJ CQlYTG9nQXJjaGl2ZUZvcmNlRG9uZSh4bG9nZm5hbWUpOwogCQkJCWVsc2UKLQkJCQkJWExvZ0Fy Y2hpdmVOb3RpZnkoeGxvZ2ZuYW1lKTsKKwkJCQkJWExvZ0FyY2hpdmVOb3RpZnkoeGxvZ2ZuYW1l LCB0cnVlKTsKIAkJCX0KIAkJCXJlY3ZGaWxlID0gLTE7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvbG1nci9sd2xvY2tuYW1lcy50eHQgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xt Z3IvbHdsb2NrbmFtZXMudHh0CmluZGV4IDZjN2NmNmMyOTUuLjE0YTc0MmQ2NTUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sd2xvY2tuYW1lcy50eHQKKysrIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2x3bG9ja25hbWVzLnR4dApAQCAtNTMsMyArNTMsNCBAQCBYYWN0 VHJ1bmNhdGlvbkxvY2sJCQkJCTQ0CiAjIDQ1IHdhcyBYYWN0VHJ1bmNhdGlvbkxvY2sgdW50aWwg cmVtb3ZhbCBvZiBCYWNrZW5kUmFuZG9tTG9jawogV3JhcExpbWl0c1ZhY3V1bUxvY2sJCQkJNDYK IE5vdGlmeVF1ZXVlVGFpbExvY2sJCQkJCTQ3CitTZWdtZW50Qm91bmRhcnlMb2NrCQkJCQk0OApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy94bG9nLmgKaW5kZXggMGE4ZWRlNzAwZC4uNmI2YWU4MWMyZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0z MTUsNiArMzE1LDcgQEAgZXh0ZXJuIFhMb2dSZWNQdHIgR2V0SW5zZXJ0UmVjUHRyKHZvaWQpOwog ZXh0ZXJuIFhMb2dSZWNQdHIgR2V0Rmx1c2hSZWNQdHIodm9pZCk7CiBleHRlcm4gWExvZ1JlY1B0 ciBHZXRMYXN0SW1wb3J0YW50UmVjUHRyKHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVtb3ZlUHJvbW90 ZVNpZ25hbEZpbGVzKHZvaWQpOworZXh0ZXJuIHZvaWQgTm90aWZ5U2VnbWVudHNSZWFkeUZvckFy Y2hpdmUoWExvZ1JlY1B0ciBmbHVzaFJlY1B0cik7CiAKIGV4dGVybiBib29sIFByb21vdGVJc1Ry aWdnZXJlZCh2b2lkKTsKIGV4dGVybiBib29sIENoZWNrUHJvbW90ZVNpZ25hbCh2b2lkKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nYXJjaGl2ZS5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2dhcmNoaXZlLmgKaW5kZXggM2VkZDFhOTc2Yy4uOTM1YjRjYjAyZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dhcmNoaXZlLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2dhcmNoaXZlLmgKQEAgLTIzLDggKzIzLDggQEAgZXh0ZXJuIGJvb2wgUmVzdG9y ZUFyY2hpdmVkRmlsZShjaGFyICpwYXRoLCBjb25zdCBjaGFyICp4bG9nZm5hbWUsCiBleHRlcm4g dm9pZCBFeGVjdXRlUmVjb3ZlcnlDb21tYW5kKGNvbnN0IGNoYXIgKmNvbW1hbmQsIGNvbnN0IGNo YXIgKmNvbW1hbmROYW1lLAogCQkJCQkJCQkgICBib29sIGZhaWxPblNpZ25hbCk7CiBleHRlcm4g dm9pZCBLZWVwRmlsZVJlc3RvcmVkRnJvbUFyY2hpdmUoY29uc3QgY2hhciAqcGF0aCwgY29uc3Qg Y2hhciAqeGxvZ2ZuYW1lKTsKLWV4dGVybiB2b2lkIFhMb2dBcmNoaXZlTm90aWZ5KGNvbnN0IGNo YXIgKnhsb2cpOwotZXh0ZXJuIHZvaWQgWExvZ0FyY2hpdmVOb3RpZnlTZWcoWExvZ1NlZ05vIHNl Z25vKTsKK2V4dGVybiB2b2lkIFhMb2dBcmNoaXZlTm90aWZ5KGNvbnN0IGNoYXIgKnhsb2csIGJv b2wgbnVkZ2UpOworZXh0ZXJuIHZvaWQgWExvZ0FyY2hpdmVOb3RpZnlTZWcoWExvZ1NlZ05vIHNl Z25vLCBib29sIG51ZGdlKTsKIGV4dGVybiB2b2lkIFhMb2dBcmNoaXZlRm9yY2VEb25lKGNvbnN0 IGNoYXIgKnhsb2cpOwogZXh0ZXJuIGJvb2wgWExvZ0FyY2hpdmVDaGVja0RvbmUoY29uc3QgY2hh ciAqeGxvZyk7CiBleHRlcm4gYm9vbCBYTG9nQXJjaGl2ZUlzQnVzeShjb25zdCBjaGFyICp4bG9n KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nZGVmcy5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3hsb2dkZWZzLmgKaW5kZXggNjAzNDhkMTg1MC4uOWI0NTVlODhlMyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dkZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3hsb2dkZWZzLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgdHlwZWRlZiB1aW50NjQgWExvZ1JlY1B0 cjsKICAqIFhMb2dTZWdObyAtIHBoeXNpY2FsIGxvZyBmaWxlIHNlcXVlbmNlIG51bWJlci4KICAq LwogdHlwZWRlZiB1aW50NjQgWExvZ1NlZ05vOworI2RlZmluZSBNYXhYTG9nU2VnTm8JKChYTG9n U2VnTm8pIDB4RkZGRkZGRkZGRkZGRkZGRikKIAogLyoKICAqIFRpbWVMaW5lSUQgKFRMSSkgLSBp ZGVudGlmaWVzIGRpZmZlcmVudCBkYXRhYmFzZSBoaXN0b3JpZXMgdG8gcHJldmVudApkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCAzN2NmNGIyZjc2Li43OTY5NGIwNDllIDEwMDY0NAotLS0g YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdApAQCAtMjMzNCw2ICsyMzM0LDcgQEAgU2VjQnVmZmVyRGVzYwogU2Vj TGFiZWxJdGVtCiBTZWNMYWJlbFN0bXQKIFNlZW5SZWxzRW50cnkKK1NlZ21lbnRCb3VuZGFyeUVu dHJ5CiBTZWxlY3RMaW1pdAogU2VsZWN0U3RtdAogU2VsZWN0aXZpdHkKLS0gCjIuMTYuNgoK --_002_E65B47AAC50B4AD7A90B25D106582EB8amazoncom_--