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 1mGQuQ-00046X-Bu for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Aug 2021 19:07: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 1mGQuP-00083i-8b for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Aug 2021 19:07:29 +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 1mGQuO-00083a-Rd for pgsql-hackers@lists.postgresql.org; Wed, 18 Aug 2021 19:07:28 +0000 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mGQuM-000157-32 for pgsql-hackers@postgresql.org; Wed, 18 Aug 2021 19:07:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1629313647; x=1660849647; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=4VQc3nUuyiuXsCAZ/Xj4ie5kOoed8zD62olqYHHXWZw=; b=icHJIfRHfEb7uzuHlLDcdIVJMu6OVtV8sSSUVWhsdfCD1bAxISK86F7+ oG8p50x7c2uzl1U7kNSOay/fxAt50XJVJKZixDCCTi9Ta8+jl4qE3bKrt ZcFym5Nf36U0hTVCczdFYU91EoLTO2fi2nvTRMDYKi+pl7m9JgJHceQ9w Y=; X-Amazon-filename: v9-0001-Avoid-creating-archive-status-.ready-files-too-ea.patch X-IronPort-AV: E=Sophos;i="5.84,332,1620691200"; d="scan'208,223";a="142490562" Subject: Re: archive status ".ready" files may be created too early Thread-Topic: archive status ".ready" files may be created too early Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1e-303d0b0e.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP; 18 Aug 2021 19:07:23 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1e-303d0b0e.us-east-1.amazon.com (Postfix) with ESMTPS id 02286A3493; Wed, 18 Aug 2021 19:07:19 +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; Wed, 18 Aug 2021 19:07:19 +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; Wed, 18 Aug 2021 19:07:19 +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; Wed, 18 Aug 2021 19:07:18 +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//5e8AAAOvBUAAA2CaYAACrPgAAARbsCAAA30QQAADLOUgAAZN3mAAECA24AAcWAngADwHqgA Date: Wed, 18 Aug 2021 19:07:18 +0000 Message-ID: <05AD5FE2-9A53-4D11-A3F8-3A83EBB0EB93@amazon.com> References: <202108181830.wgxahkv2eu3y@alvherre.pgsql> In-Reply-To: <202108181830.wgxahkv2eu3y@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.41] Content-Type: multipart/mixed; boundary="_002_05AD5FE29A534D11A3F83A83EBB0EB93amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_05AD5FE29A534D11A3F83A83EBB0EB93amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <76FCD058217ADB489E970852804737CB@amazon.com> Content-Transfer-Encoding: base64 T24gOC8xOC8yMSwgMTE6MzEgQU0sICJhbHZoZXJyZUBhbHZoLm5vLWlwLm9yZyIgPGFsdmhlcnJl QGFsdmgubm8taXAub3JnPiB3cm90ZToNCj4gSSB3YXMgd29uZGVyaW5nIHdoaWNoIHdvdWxkIGJl IGJldHRlcjogYmVmb3JlIG9yIGFmdGVyLg0KPiBYTG9nQmFja2dyb3VuZEZsdXNoIHdvdWxkIGRv IGl0IGFueXdheSwgc28gaWYgeW91IGRvIGl0IGFmdGVyIHRoZW4gaXQncw0KPiBub3QgY2xlYXIg dG8gbWUgdGhhdCBpdCdkIGRvIGFueXRoaW5nIChJIG1lYW4gd2Ugc2hvdWxkIG5vdCBkbyBhbnkg bmV3DQo+IGNhbGxzIG9mIE5vdGlmeVNlZ21lbnRzUmVhZHlGb3JBcmNoaXZlIGFuZCBqdXN0IHJl bHkgb24gdGhlIG9uZSBpbg0KPiBYTG9nQmFja2dyb3VuZEZsdXNoIC0+IFhMb2dXcml0ZSkuDQo+ DQo+IFRoZSBhZHZhbnRhZ2Ugb2YgZG9pbmcgTm90aWZ5U2VnbWVudHNSZWFkeUZvckFyY2hpdmUg YmVmb3JlDQo+IFhMb2dCYWNrZ3JvdW5kRmx1c2ggaXMgdGhhdCB0aGUgZmlsZXMgd291bGQgYmUg Y3JlYXRlZCBzb29uZXIsIHNvIHRoZQ0KPiBhcmNoaXZlciBjYW4gYmUgd29ya2luZyBpbiBwYXJh bGxlbCB3aGlsZSB3YWx3cml0ZXIgZG9lcyBpdHMgb3RoZXINCj4gdGhpbmc7IHRoZW4gd2UnZCBy ZWFjaCB0aGUgTm90aWZ5U2VnbWVudHNSZWFkeUZvckFyY2hpdmUgaW4NCj4gWExvZ0JhY2tncm91 bmRGbHVzaCBhbmQgaXQnZCBmaW5kIG5vdGhpbmcgdG8gZG8gbW9zdCBvZiB0aGUgdGltZSwgd2hp Y2gNCj4gaXMganVzdCBmaW5lLg0KDQpBcyBsb25nIGFzIFhMb2dCYWNrZ3JvdW5kRmx1c2goKSBm b3VuZCB3b3JrIHRvIGRvLCBpdCB3b3VsZCB0YWtlIGNhcmUNCm9mIG5vdGlmeWluZywgYnV0IEkg ZG9uJ3QgdGhpbmsgd2UgY2FuIGRlcGVuZCBvbiB0aGF0LiAgSG93ZXZlciwgc2luY2UNCndlJ3Jl IHByaW1hcmlseSB1c2luZyB0aGUgV0FMIHdyaXRlciB0byB0YWtlIGNhcmUgb2YgdGhlIGNhc2Ug d2hlbiB0aGUNCnJlY29yZCBoYXMgYWxyZWFkeSBiZWVuIGZsdXNoZWQsIG5vdGlmeWluZyBiZWZv cmVoYW5kIHNlZW1zIGZpbmUgdG8NCm1lLiAgSWYgWExvZ0JhY2tncm91bmRGbHVzaCgpIGRvZXMg ZW5kIHVwIGNhbGxpbmcgWExvZ1dyaXRlKCksIGl0J2xsDQpjYWxsIGl0IGFnYWluLCBhbnl3YXku DQoNCkluIHRoZSBhdHRhY2hlZCBwYXRjaCwgSSBtb2RpZmllZCBYTG9nSW5zZXJ0UmVjb3JkKCkg dG8gc2ltcGx5IHNldCB0aGUNCmxhdGNoIGlmIHdlIGRldGVjdCB0aGF0IGZsdXNoUmVjUHRyIGhh cyBhZHZhbmNlZC4NCg0KTmF0aGFuDQoNCg== --_002_05AD5FE29A534D11A3F83A83EBB0EB93amazoncom_ Content-Type: application/octet-stream; name="v9-0001-Avoid-creating-archive-status-.ready-files-too-ea.patch" Content-Description: v9-0001-Avoid-creating-archive-status-.ready-files-too-ea.patch Content-Disposition: attachment; filename="v9-0001-Avoid-creating-archive-status-.ready-files-too-ea.patch"; size=20812; creation-date="Wed, 18 Aug 2021 19:07:18 GMT"; modification-date="Wed, 18 Aug 2021 19:07:18 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSAwMTQxYjExNmE1N2MwZjA5MTAyYzZkMzI0MDBhMGNlOTU3MWQ1ZDg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogV2VkLCAxOCBBdWcgMjAyMSAxOTowMjo1OCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MS8xXSBBdm9pZCBjcmVhdGluZyBhcmNoaXZlIHN0YXR1cyAiLnJlYWR5IiBmaWxlcyB0b28KIGVh cmx5LgoKV0FMIHJlY29yZHMgbWF5IHNwYW4gbXVsdGlwbGUgc2VnbWVudHMsIGJ1dCBYTG9nV3Jp dGUoKSBkb2VzIG5vdAp3YWl0IGZvciB0aGUgZW50aXJlIHJlY29yZCB0byBiZSB3cml0dGVuIG91 dCB0byBkaXNrIGJlZm9yZQpjcmVhdGluZyBhcmNoaXZlIHN0YXR1cyBmaWxlcy4gIEluc3RlYWQs IGFzIHNvb24gYXMgdGhlIGxhc3QgV0FMCnBhZ2Ugb2YgdGhlIHNlZ21lbnQgaXMgd3JpdHRlbiwg dGhlIGFyY2hpdmUgc3RhdHVzIGZpbGUgd2lsbCBiZQpjcmVhdGVkLiAgSWYgUG9zdGdyZVNRTCBj cmFzaGVzIGJlZm9yZSBpdCBpcyBhYmxlIHRvIHdyaXRlIHRoZSByZXN0Cm9mIHRoZSByZWNvcmQs IGl0IHdpbGwgZW5kIHVwIHJldXNpbmcgc2VnbWVudHMgdGhhdCBoYXZlIGFscmVhZHkKYmVlbiBt YXJrZWQgYXMgcmVhZHktZm9yLWFyY2hpdmFsLiAgSG93ZXZlciwgdGhlIGFyY2hpdmVyIHByb2Nl c3MKbWF5IGhhdmUgYWxyZWFkeSBwcm9jZXNzZWQgdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBzZWdt ZW50LCBzbyB0aGUKd3JvbmcgdmVyc2lvbiBvZiB0aGUgc2VnbWVudCBtYXkgYmUgYmFja2VkLXVw LiAgVGhpcyBiYWNrZWQtdXAKc2VnbWVudCB3aWxsIGNhdXNlIG9wZXJhdGlvbnMgc3VjaCBhcyBw b2ludC1pbi10aW1lIHJlc3RvcmVzIHRvCmZhaWwuCgpUbyBmaXggdGhpcywgd2Uga2VlcCB0cmFj ayBvZiByZWNvcmRzIHRoYXQgc3BhbiBhY3Jvc3Mgc2VnbWVudHMgYW5kCmVuc3VyZSB0aGF0IHNl Z21lbnRzIGFyZSBvbmx5IG1hcmtlZCByZWFkeS1mb3ItYXJjaGl2YWwgb25jZSBzdWNoCnJlY29y ZHMgaGF2ZSBiZWVuIGNvbXBsZXRlbHkgd3JpdHRlbiB0byBkaXNrLgotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3RpbWVsaW5lLmMgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYyAgICAgICAgfCAyODcgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyB8ICAxNCArLQog c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93YWx3cml0ZXIuYyAgICAgICB8ICAgNyArCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvbHdsb2NrbmFtZXMudHh0IHwgICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy94 bG9nLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dhcmNo aXZlLmggICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dkZWZzLmggICAg ICAgICAgICB8ICAgMSArCiA5IGZpbGVzIGNoYW5nZWQsIDMwMSBpbnNlcnRpb25zKCspLCAyMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90aW1l bGluZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdGltZWxpbmUuYwppbmRleCA4ZDA5 MDNjMTc1Li5hY2Q1YzI0MzFkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS90aW1lbGluZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3RpbWVsaW5lLmMK QEAgLTQ1Miw3ICs0NTIsNyBAQCB3cml0ZVRpbWVMaW5lSGlzdG9yeShUaW1lTGluZUlEIG5ld1RM SSwgVGltZUxpbmVJRCBwYXJlbnRUTEksCiAJaWYgKFhMb2dBcmNoaXZpbmdBY3RpdmUoKSkKIAl7 CiAJCVRMSGlzdG9yeUZpbGVOYW1lKGhpc3RmbmFtZSwgbmV3VExJKTsKLQkJWExvZ0FyY2hpdmVO b3RpZnkoaGlzdGZuYW1lKTsKKwkJWExvZ0FyY2hpdmVOb3RpZnkoaGlzdGZuYW1lLCB0cnVlKTsK IAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBlNTFhN2E3NDlkLi5hMzU3 ZGIzZGM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC01MTIsNiArNTEyLDEzIEBA IHR5cGVkZWYgZW51bSBFeGNsdXNpdmVCYWNrdXBTdGF0ZQogICovCiBzdGF0aWMgU2Vzc2lvbkJh Y2t1cFN0YXRlIHNlc3Npb25CYWNrdXBTdGF0ZSA9IFNFU1NJT05fQkFDS1VQX05PTkU7CiAKKy8q IGVudHJpZXMgZm9yIFNlZ21lbnRCb3VuZGFyeU1hcCwgdXNlZCB0byBtYXJrIHNlZ21lbnRzIHJl YWR5IGZvciBhcmNoaXZhbCAqLwordHlwZWRlZiBzdHJ1Y3QgU2VnbWVudEJvdW5kYXJ5RW50cnkK K3sKKwlYTG9nU2VnTm8gc2VnOwkvKiBtdXN0IGJlIGZpcnN0ICovCisJWExvZ1JlY1B0ciBwb3M7 Cit9IFNlZ21lbnRCb3VuZGFyeUVudHJ5OworCiAvKgogICogU2hhcmVkIHN0YXRlIGRhdGEgZm9y IFdBTCBpbnNlcnRpb24uCiAgKi8KQEAgLTcyMyw2ICs3MzAsMTIgQEAgdHlwZWRlZiBzdHJ1Y3Qg WExvZ0N0bERhdGEKIAkgKi8KIAlYTG9nUmVjUHRyCWxhc3RGcHdEaXNhYmxlUmVjUHRyOwogCisJ LyoKKwkgKiBUaGUgbGFzdCBzZWdtZW50IHdlJ3ZlIG1hcmtlZCByZWFkeSBmb3IgYXJjaGl2YWwu ICBQcm90ZWN0ZWQgYnkKKwkgKiBpbmZvX2xjay4KKwkgKi8KKwlYTG9nU2VnTm8gbGFzdE5vdGlm aWVkU2VnOworCiAJc2xvY2tfdAkJaW5mb19sY2s7CQkvKiBsb2NrcyBzaGFyZWQgdmFyaWFibGVz IHNob3duIGFib3ZlICovCiB9IFhMb2dDdGxEYXRhOwogCkBAIC03MzYsNiArNzQ5LDEyIEBAIHN0 YXRpYyBXQUxJbnNlcnRMb2NrUGFkZGVkICpXQUxJbnNlcnRMb2NrcyA9IE5VTEw7CiAgKi8KIHN0 YXRpYyBDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlID0gTlVMTDsKIAorLyoKKyAqIFNlZ21l bnQgYm91bmRhcnkgbWFwLCB1c2VkIGZvciBtYXJraW5nIHNlZ21lbnRzIGFzIHJlYWR5IGZvciBh cmNoaXZhbC4KKyAqIFByb3RlY3RlZCBieSBTZWdtZW50Qm91bmRhcnlMb2NrLgorICovCitzdGF0 aWMgSFRBQiAqU2VnbWVudEJvdW5kYXJ5TWFwID0gTlVMTDsKKwogLyoKICAqIENhbGN1bGF0ZSB0 aGUgYW1vdW50IG9mIHNwYWNlIGxlZnQgb24gdGhlIHBhZ2UgYWZ0ZXIgJ2VuZHB0cicuIEJld2Fy ZQogICogbXVsdGlwbGUgZXZhbHVhdGlvbiEKQEAgLTk2Miw2ICs5ODEsMTMgQEAgc3RhdGljIFhM b2dSZWNQdHIgWExvZ0J5dGVQb3NUb1JlY1B0cih1aW50NjQgYnl0ZXBvcyk7CiBzdGF0aWMgWExv Z1JlY1B0ciBYTG9nQnl0ZVBvc1RvRW5kUmVjUHRyKHVpbnQ2NCBieXRlcG9zKTsKIHN0YXRpYyB1 aW50NjQgWExvZ1JlY1B0clRvQnl0ZVBvcyhYTG9nUmVjUHRyIHB0cik7CiBzdGF0aWMgdm9pZCBj aGVja1hMb2dDb25zaXN0ZW5jeShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CitzdGF0aWMgdm9p ZCBSZWdpc3RlclNlZ21lbnRCb3VuZGFyeUVudHJ5KFhMb2dTZWdObyBzZWcsIFhMb2dSZWNQdHIg cG9zKTsKK3N0YXRpYyBYTG9nU2VnTm8gR2V0TGFzdE5vdGlmaWVkU2VnbWVudCh2b2lkKTsKK3N0 YXRpYyB2b2lkIFNldExhc3ROb3RpZmllZFNlZ21lbnQoWExvZ1NlZ05vIHNlZyk7CitzdGF0aWMg Ym9vbCBHZXRMYXRlc3RTZWdtZW50Qm91bmRhcnkoWExvZ1NlZ05vIGxhc3Rfbm90aWZpZWQsCisJ CQkJCQkJCQkgWExvZ1JlY1B0ciBmbHVzaGVkLAorCQkJCQkJCQkJIFhMb2dTZWdObyAqbGF0ZXN0 X2JvdW5kYXJ5X3NlZyk7CitzdGF0aWMgdm9pZCBSZW1vdmVTZWdtZW50Qm91bmRhcmllc1VwVG8o WExvZ1NlZ05vIHNlZyk7CiAKIHN0YXRpYyB2b2lkIFdBTEluc2VydExvY2tBY3F1aXJlKHZvaWQp Owogc3RhdGljIHZvaWQgV0FMSW5zZXJ0TG9ja0FjcXVpcmVFeGNsdXNpdmUodm9pZCk7CkBAIC0x MTU4LDYgKzExODQsOSBAQCBYTG9nSW5zZXJ0UmVjb3JkKFhMb2dSZWNEYXRhICpyZGF0YSwKIAkg Ki8KIAlpZiAoU3RhcnRQb3MgLyBYTE9HX0JMQ0tTWiAhPSBFbmRQb3MgLyBYTE9HX0JMQ0tTWikK IAl7CisJCVhMb2dTZWdObyBTdGFydFNlZzsKKwkJWExvZ1NlZ05vIEVuZFNlZzsKKwogCQlTcGlu TG9ja0FjcXVpcmUoJlhMb2dDdGwtPmluZm9fbGNrKTsKIAkJLyogYWR2YW5jZSBnbG9iYWwgcmVx dWVzdCB0byBpbmNsdWRlIG5ldyBibG9jayhzKSAqLwogCQlpZiAoWExvZ0N0bC0+TG9nd3J0UnFz dC5Xcml0ZSA8IEVuZFBvcykKQEAgLTExNjUsMTIgKzExOTQsMzggQEAgWExvZ0luc2VydFJlY29y ZChYTG9nUmVjRGF0YSAqcmRhdGEsCiAJCS8qIHVwZGF0ZSBsb2NhbCByZXN1bHQgY29weSB3aGls ZSBJIGhhdmUgdGhlIGNoYW5jZSAqLwogCQlMb2d3cnRSZXN1bHQgPSBYTG9nQ3RsLT5Mb2d3cnRS ZXN1bHQ7CiAJCVNwaW5Mb2NrUmVsZWFzZSgmWExvZ0N0bC0+aW5mb19sY2spOworCisJCS8qCisJ CSAqIElmIHdlIGNyb3NzZWQgdGhlIHNlZ21lbnQgYm91bmRhcnksIHJlY29yZCBpdC4gIFRoaXMg aXMgdXNlZCB0bworCQkgKiBlbnN1cmUgdGhhdCBzZWdtZW50cyBhcmUgbm90IG1hcmtlZCByZWFk eSBmb3IgYXJjaGl2YWwgYmVmb3JlIHRoZQorCQkgKiBlbnRpcmUgcmVjb3JkIGhhcyBiZWVuIGZs dXNoZWQgdG8gZGlzay4KKwkJICoKKwkJICogTm90ZSB0aGF0IHdlIGRvIG5vdCB1c2UgWExCeXRl VG9QcmV2U2VnKCkgZm9yIGRldGVybWluaW5nIHRoZSBlbmRpbmcKKwkJICogc2VnbWVudC4gIFRo aXMgaXMgZG9uZSBzbyB0aGF0IGEgcmVjb3JkIHRoYXQgZml0cyBwZXJmZWN0bHkgaW50byB0aGUK KwkJICogZW5kIG9mIHRoZSBzZWdtZW50IGlzIG1hcmtlZCByZWFkeSBmb3IgYXJjaGl2YWwgYXMg c29vbiBhcyB0aGUKKwkJICogZmx1c2hlZCBwb2ludGVyIGp1bXBzIHRvIHRoZSBuZXh0IHNlZ21l bnQuCisJCSAqLworCQlYTEJ5dGVUb1NlZyhTdGFydFBvcywgU3RhcnRTZWcsIHdhbF9zZWdtZW50 X3NpemUpOworCQlYTEJ5dGVUb1NlZyhFbmRQb3MsIEVuZFNlZywgd2FsX3NlZ21lbnRfc2l6ZSk7 CisKKwkJaWYgKFN0YXJ0U2VnICE9IEVuZFNlZyAmJiBYTG9nQXJjaGl2aW5nQWN0aXZlKCkpCisJ CXsKKwkJCVJlZ2lzdGVyU2VnbWVudEJvdW5kYXJ5RW50cnkoRW5kU2VnLCBFbmRQb3MpOworCisJ CQkvKgorCQkJICogVGhlcmUncyBhIGNoYW5jZSB0aGF0IHRoZSByZWNvcmQgd2FzIGFscmVhZHkg Zmx1c2hlZCB0byBkaXNrIGFuZAorCQkJICogd2UgbWlzc2VkIG1hcmtpbmcgc2VnbWVudHMgYXMg cmVhZHkgZm9yIGFyY2hpdmUuICBJZiB0aGlzCisJCQkgKiBoYXBwZW5zLCB3ZSBudWRnZSB0aGUg V0FMV3JpdGVyLCB3aGljaCB3aWxsIHRha2UgY2FyZSBvZgorCQkJICogbm90aWZ5aW5nIHNlZ21l bnRzIGFzIG5lZWRlZC4KKwkJCSAqLworCQkJaWYgKEdldEZsdXNoUmVjUHRyKCkgPj0gRW5kUG9z ICYmIFByb2NHbG9iYWwtPndhbHdyaXRlckxhdGNoKQorCQkJCVNldExhdGNoKFByb2NHbG9iYWwt PndhbHdyaXRlckxhdGNoKTsKKwkJfQogCX0KIAogCS8qCiAJICogSWYgdGhpcyB3YXMgYW4gWExP R19TV0lUQ0ggcmVjb3JkLCBmbHVzaCB0aGUgcmVjb3JkIGFuZCB0aGUgZW1wdHkKLQkgKiBwYWRk aW5nIHNwYWNlIHRoYXQgZmlsbHMgdGhlIHJlc3Qgb2YgdGhlIHNlZ21lbnQsIGFuZCBwZXJmb3Jt Ci0JICogZW5kLW9mLXNlZ21lbnQgYWN0aW9ucyAoZWcsIG5vdGlmeWluZyBhcmNoaXZlcikuCisJ ICogcGFkZGluZyBzcGFjZSB0aGF0IGZpbGxzIHRoZSByZXN0IG9mIHRoZSBzZWdtZW50LgogCSAq LwogCWlmIChpc0xvZ1N3aXRjaCkKIAl7CkBAIC0xMjY0LDYgKzEzMTksMTkyIEBAIFhMb2dJbnNl cnRSZWNvcmQoWExvZ1JlY0RhdGEgKnJkYXRhLAogCXJldHVybiBFbmRQb3M7CiB9CiAKKy8qCisg KiBSZWdpc3RlclNlZ21lbnRCb3VuZGFyeUVudHJ5CisgKgorICogVGhpcyBlbnRlcnMgYSBuZXcg ZW50cnkgaW50byB0aGUgc2VnbWVudCBib3VuZGFyeSBtYXAsIHdoaWNoIGlzIHVzZWQgZm9yCisg KiBkZXRlcm1pbmcgd2hlbiBpdCBpcyBzYWZlIHRvIG1hcmsgYSBzZWdtZW50IGFzIHJlYWR5IGZv ciBhcmNoaXZhbC4gIEFuIGVudHJ5CisgKiB3aXRoIHRoZSBnaXZlbiBrZXkgKHRoZSBzZWdtZW50 IG51bWJlcikgbXVzdCBub3QgYWxyZWFkeSBleGlzdCBpbiB0aGUgbWFwLgorICogQWxzbywgdGhl IGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhhdCBYTEJ5dGVUb1NlZygpIHdv dWxkIHJldHVybgorICogdGhlIHNhbWUgc2VnbWVudCBudW1iZXIgZm9yIHRoZSBnaXZlbiByZWNv cmQgcG9pbnRlci4KKyAqLworc3RhdGljIHZvaWQKK1JlZ2lzdGVyU2VnbWVudEJvdW5kYXJ5RW50 cnkoWExvZ1NlZ05vIHNlZywgWExvZ1JlY1B0ciBwb3MpCit7CisJU2VnbWVudEJvdW5kYXJ5RW50 cnkgKmVudHJ5OworCWJvb2wgZm91bmQ7CisKKwlMV0xvY2tBY3F1aXJlKFNlZ21lbnRCb3VuZGFy eUxvY2ssIExXX0VYQ0xVU0lWRSk7CisKKwllbnRyeSA9IChTZWdtZW50Qm91bmRhcnlFbnRyeSAq KSBoYXNoX3NlYXJjaChTZWdtZW50Qm91bmRhcnlNYXAsCisJCQkJCQkJCQkJCQkgKHZvaWQgKikg JnNlZywgSEFTSF9FTlRFUiwKKwkJCQkJCQkJCQkJCSAmZm91bmQpOworCWlmIChmb3VuZCkKKwkJ ZWxvZyhFUlJPUiwgImVudHJ5IGZvciBzZWdtZW50IGFscmVhZHkgZXhpc3RzIik7CisKKwllbnRy eS0+cG9zID0gcG9zOworCisJTFdMb2NrUmVsZWFzZShTZWdtZW50Qm91bmRhcnlMb2NrKTsKK30K KworLyoKKyAqIE5vdGlmeVNlZ21lbnRzUmVhZHlGb3JBcmNoaXZlCisgKgorICogVGhpcyBmdW5j dGlvbiBtYXJrcyBzZWdtZW50cyBhcyByZWFkeSBmb3IgYXJjaGl2YWwsIGdpdmVuIHRoYXQgaXQg aXMgc2FmZSB0bworICogZG8gc28uICBJdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBy ZXBlYXRlZGx5LCBldmVuIGlmIG5vdGhpbmcgaGFzCisgKiBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0 IHRpbWUgaXQgd2FzIGNhbGxlZC4KKyAqLwordm9pZAorTm90aWZ5U2VnbWVudHNSZWFkeUZvckFy Y2hpdmUoWExvZ1JlY1B0ciBmbHVzaFJlY1B0cikKK3sKKwlYTG9nU2VnTm8JZmx1c2hlZF9zZWc7 CisJWExvZ1NlZ05vCWxhdGVzdF9ib3VuZGFyeV9zZWc7CisJWExvZ1NlZ05vCWxhc3Rfbm90aWZp ZWQ7CisKKwkvKgorCSAqIFdlIGZpcnN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIHNlZSBp ZiB3ZSBjYW4gYmFpbCBvdXQgd2l0aG91dCB0YWtpbmcKKwkgKiB0aGUgU2VnbWVudEJvdW5kYXJ5 TG9jayBhdCBhbGwuICBJdCBpcyBleHBlY3RlZCB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbAorCSAq IHJ1biBmcmVxdWVudGx5IGFuZCB0aGF0IGl0IHdpbGwgbmVlZCB0byBkbyBub3RoaW5nIHRoZSB2 YXN0IG1ham9yaXR5IG9mCisJICogdGhlIHRpbWUuCisJICoKKwkgKiBTcGVjaWZpY2FsbHksIHdl IGJhaWwgb3V0IGlmIHdlJ3ZlIGFscmVhZHkgbWFya2VkIHRoZSBzZWdtZW50IHByaW9yIHRvCisJ ICogdGhlIHNlZ21lbnQgdGhhdCBjb250YWlucyBmbHVzaFJlY1B0ciBhcyByZWFkeSBmb3IgYXJj aGl2YWwuICBXZQorCSAqIGludGVudGlvbmFsbHkgdXNlIFhMQnl0ZVRvU2VnKCkgaW5zdGVhZCBv ZiBYTEJ5dGVUb1ByZXZTZWcoKSBzbyB0aGF0IHdlCisJICogZG9uJ3Qgc2tpcCBub3RpZnlpbmcg d2hlbiBhIHJlY29yZCBmaXRzIHBlcmZlY3RseSBpbnRvIHRoZSBlbmQgb2YgYQorCSAqIHNlZ21l bnQuICAoZmx1c2hSZWNQdHIgc2hvdWxkIHBvaW50IHRvIHRoZSBmaXJzdCBieXRlIG9mIHRoZSBy ZWNvcmQKKwkgKiBfYWZ0ZXJfIHRoZSBvbmUgdGhhdCBpcyBrbm93biB0byBiZSBmbHVzaGVkIHRv IGRpc2suKQorCSAqLworCWxhc3Rfbm90aWZpZWQgPSBHZXRMYXN0Tm90aWZpZWRTZWdtZW50KCk7 CisJWExCeXRlVG9TZWcoZmx1c2hSZWNQdHIsIGZsdXNoZWRfc2VnLCB3YWxfc2VnbWVudF9zaXpl KTsKKwlpZiAobGFzdF9ub3RpZmllZCA+PSBmbHVzaGVkX3NlZyAtIDEpCisJCXJldHVybjsKKwor CUxXTG9ja0FjcXVpcmUoU2VnbWVudEJvdW5kYXJ5TG9jaywgTFdfRVhDTFVTSVZFKTsKKworCS8q IFJlb2J0YWluIGxhc3ROb3RpZmllZFNlZyBpbiBjYXNlIHNvbWVvbmUgZWxzZSBjaGFuZ2VkIGl0 LiAqLworCWxhc3Rfbm90aWZpZWQgPSBHZXRMYXN0Tm90aWZpZWRTZWdtZW50KCk7CisKKwkvKiBS ZXRyaWV2ZSB0aGUgbGF0ZXN0IHNlZ21lbnQgYm91bmRhcnkgdG8gdXNlIGZvciBub3RpZnlpbmcg c2VnbWVudHMuICovCisJaWYgKEdldExhdGVzdFNlZ21lbnRCb3VuZGFyeShsYXN0X25vdGlmaWVk LCBmbHVzaFJlY1B0ciwgJmxhdGVzdF9ib3VuZGFyeV9zZWcpKQorCXsKKwkJLyoKKwkJICogVXBk YXRlIHNoYXJlZCBtZW1vcnkgYW5kIGRpc2NhcmQgc2VnbWVudCBib3VuZGFyaWVzIHRoYXQgYXJl IG5vCisJCSAqIGxvbmdlciBuZWVkZWQuCisJCSAqCisJCSAqIEl0IGlzIHNhZmUgdG8gdXBkYXRl IHNoYXJlZCBtZW1vcnkgYmVmb3JlIHdlIGF0dGVtcHQgdG8gY3JlYXRlIHRoZQorCQkgKiAucmVh ZHkgZmlsZXMuICBJZiBvdXIgY2FsbHMgdG8gWExvZ0FyY2hpdmVOb3RpZnlTZWcoKSBmYWlsLAor CQkgKiBSZW1vdmVPbGRYbG9nRmlsZXMoKSB3aWxsIHJldHJ5IGl0IGFzIG5lZWRlZC4KKwkJICov CisJCVNldExhc3ROb3RpZmllZFNlZ21lbnQobGF0ZXN0X2JvdW5kYXJ5X3NlZyAtIDEpOworCQlS ZW1vdmVTZWdtZW50Qm91bmRhcmllc1VwVG8obGF0ZXN0X2JvdW5kYXJ5X3NlZyk7CisKKwkJTFdM b2NrUmVsZWFzZShTZWdtZW50Qm91bmRhcnlMb2NrKTsKKworCQkvKgorCQkgKiBOb3RpZnkgYXJj aGl2ZXIgYWJvdXQgc2VnbWVudHMgdGhhdCBhcmUgcmVhZHkgZm9yIGFyY2hpdmFsIChieQorCQkg KiBjcmVhdGluZyB0aGUgY29ycmVzcG9uZGluZyAucmVhZHkgZmlsZXMpLgorCQkgKi8KKwkJZm9y IChYTG9nU2VnTm8gc2VnID0gbGFzdF9ub3RpZmllZCArIDE7IHNlZyA8IGxhdGVzdF9ib3VuZGFy eV9zZWc7IHNlZysrKQorCQkJWExvZ0FyY2hpdmVOb3RpZnlTZWcoc2VnLCBmYWxzZSk7CisKKwkJ UGdBcmNoV2FrZXVwKCk7CisJfQorCWVsc2UKKwkJTFdMb2NrUmVsZWFzZShTZWdtZW50Qm91bmRh cnlMb2NrKTsKK30KKworLyoKKyAqIEdldExhdGVzdFNlZ21lbnRCb3VuZGFyeQorICoKKyAqIFRo aXMgZnVuY3Rpb24gZmluZHMgdGhlIGxhdGVzdCBzZWdtZW50IGJvdW5kYXJ5IGluIFNlZ21lbnRC b3VuZGFyeU1hcCB0aGF0IGlzCisgKiBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGdpdmVuICJm bHVzaGVkIiBwb2ludGVyIGFuZCBiZXlvbmQgdGhlIGxhc3QKKyAqIG5vdGlmaWVkIHNlZ21lbnQu ICBJZiBzdWNoIGEgc2VnbWVudCBpcyBmb3VuZCwgbGF0ZXN0X2JvdW5kYXJ5X3NlZyBpcworICog cG9wdWxhdGVkIGFuZCB0cnVlIGlzIHJldHVybmVkLiAgT3RoZXJ3aXNlLCBmYWxzZSBpcyByZXR1 cm5lZC4KKyAqLworc3RhdGljIGJvb2wKK0dldExhdGVzdFNlZ21lbnRCb3VuZGFyeShYTG9nU2Vn Tm8gbGFzdF9ub3RpZmllZCwgWExvZ1JlY1B0ciBmbHVzaGVkLAorCQkJCQkJIFhMb2dTZWdObyAq bGF0ZXN0X2JvdW5kYXJ5X3NlZykKK3sKKwlYTG9nU2VnTm8JZmx1c2hlZF9zZWc7CisJWExvZ1Nl Z05vCXNlZzsKKworCUFzc2VydChMV0xvY2tIZWxkQnlNZShTZWdtZW50Qm91bmRhcnlMb2NrKSk7 CisJQXNzZXJ0KGxhdGVzdF9ib3VuZGFyeV9zZWcgIT0gTlVMTCk7CisKKwlYTEJ5dGVUb1NlZyhm bHVzaGVkLCBmbHVzaGVkX3NlZywgd2FsX3NlZ21lbnRfc2l6ZSk7CisKKwlmb3IgKHNlZyA9IGZs dXNoZWRfc2VnOyBzZWcgPiBsYXN0X25vdGlmaWVkOyBzZWctLSkKKwl7CisJCVNlZ21lbnRCb3Vu ZGFyeUVudHJ5ICplbnRyeTsKKworCQllbnRyeSA9IChTZWdtZW50Qm91bmRhcnlFbnRyeSAqKSBo YXNoX3NlYXJjaChTZWdtZW50Qm91bmRhcnlNYXAsCisJCQkJCQkJCQkJCQkJICh2b2lkICopICZz ZWcsIEhBU0hfRklORCwKKwkJCQkJCQkJCQkJCQkgTlVMTCk7CisKKwkJaWYgKGVudHJ5ICE9IE5V TEwgJiYgZmx1c2hlZCA+PSBlbnRyeS0+cG9zKQorCQl7CisJCQkqbGF0ZXN0X2JvdW5kYXJ5X3Nl ZyA9IGVudHJ5LT5zZWc7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KKworCXJldHVybiBmYWxz ZTsKK30KKworLyoKKyAqIFJlbW92ZVNlZ21lbnRCb3VuZGFyaWVzVXBUbworICoKKyAqIFRoaXMg ZnVuY3Rpb24gcmVtb3ZlcyBhbGwgZW50cmllcyBpbiB0aGUgU2VnbWVudEJvdW5kYXJ5TWFwIHdp dGggc2VnbWVudAorICogbnVtYmVycyB1cCB0byBhbmQgaW5jbHVkaW5nIHNlZy4KKyAqLworc3Rh dGljIHZvaWQKK1JlbW92ZVNlZ21lbnRCb3VuZGFyaWVzVXBUbyhYTG9nU2VnTm8gc2VnKQorewor CVNlZ21lbnRCb3VuZGFyeUVudHJ5ICplbnRyeTsKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOwor CisJQXNzZXJ0KExXTG9ja0hlbGRCeU1lSW5Nb2RlKFNlZ21lbnRCb3VuZGFyeUxvY2ssIExXX0VY Q0xVU0lWRSkpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBTZWdtZW50Qm91bmRhcnlNYXAp OworCisJd2hpbGUgKChlbnRyeSA9IChTZWdtZW50Qm91bmRhcnlFbnRyeSAqKSBoYXNoX3NlcV9z ZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoZW50cnktPnNlZyA8PSBzZWcpCisJ CQkodm9pZCkgaGFzaF9zZWFyY2goU2VnbWVudEJvdW5kYXJ5TWFwLCAodm9pZCAqKSAmZW50cnkt PnNlZywKKwkJCQkJCQkgICBIQVNIX1JFTU9WRSwgTlVMTCk7CisJfQorfQorCisvKgorICogR2V0 TGFzdE5vdGlmaWVkU2VnbWVudAorICoKKyAqIFJldHJpZXZlcyBsYXN0IG5vdGlmaWVkIHNlZ21l bnQgZnJvbSBzaGFyZWQgbWVtb3J5LgorICovCitYTG9nU2VnTm8KK0dldExhc3ROb3RpZmllZFNl Z21lbnQodm9pZCkKK3sKKwlYTG9nU2VnTm8gc2VnOworCisJU3BpbkxvY2tBY3F1aXJlKCZYTG9n Q3RsLT5pbmZvX2xjayk7CisJc2VnID0gWExvZ0N0bC0+bGFzdE5vdGlmaWVkU2VnOworCVNwaW5M b2NrUmVsZWFzZSgmWExvZ0N0bC0+aW5mb19sY2spOworCisJcmV0dXJuIHNlZzsKK30KKworLyoK KyAqIFNldExhc3ROb3RpZmllZFNlZ21lbnQKKyAqCisgKiBTZXRzIGxhc3Qgbm90aWZpZWQgc2Vn bWVudCBpbiBzaGFyZWQgbWVtb3J5LgorICovCitzdGF0aWMgdm9pZAorU2V0TGFzdE5vdGlmaWVk U2VnbWVudChYTG9nU2VnTm8gc2VnKQoreworCVNwaW5Mb2NrQWNxdWlyZSgmWExvZ0N0bC0+aW5m b19sY2spOworCVhMb2dDdGwtPmxhc3ROb3RpZmllZFNlZyA9IHNlZzsKKwlTcGluTG9ja1JlbGVh c2UoJlhMb2dDdGwtPmluZm9fbGNrKTsKK30KKwogLyoKICAqIFJlc2VydmVzIHRoZSByaWdodCBh bW91bnQgb2Ygc3BhY2UgZm9yIGEgcmVjb3JkIG9mIGdpdmVuIHNpemUgZnJvbSB0aGUgV0FMLgog ICogKlN0YXJ0UG9zIGlzIHNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZXNlcnZlZCBzZWN0 aW9uLCAqRW5kUG9zIHRvCkBAIC0yNTg2LDExICsyODI3LDEzIEBAIFhMb2dXcml0ZShYTG9nd3J0 UnFzdCBXcml0ZVJxc3QsIGJvb2wgZmxleGlibGUpCiAJCQkgKiBsYXRlci4gRG9pbmcgaXQgaGVy ZSBlbnN1cmVzIHRoYXQgb25lIGFuZCBvbmx5IG9uZSBiYWNrZW5kIHdpbGwKIAkJCSAqIHBlcmZv cm0gdGhpcyBmc3luYy4KIAkJCSAqCi0JCQkgKiBUaGlzIGlzIGFsc28gdGhlIHJpZ2h0IHBsYWNl IHRvIG5vdGlmeSB0aGUgQXJjaGl2ZXIgdGhhdCB0aGUKLQkJCSAqIHNlZ21lbnQgaXMgcmVhZHkg dG8gY29weSB0byBhcmNoaXZhbCBzdG9yYWdlLCBhbmQgdG8gdXBkYXRlIHRoZQotCQkJICogdGlt ZXIgZm9yIGFyY2hpdmVfdGltZW91dCwgYW5kIHRvIHNpZ25hbCBmb3IgYSBjaGVja3BvaW50IGlm Ci0JCQkgKiB0b28gbWFueSBsb2dmaWxlIHNlZ21lbnRzIGhhdmUgYmVlbiB1c2VkIHNpbmNlIHRo ZSBsYXN0Ci0JCQkgKiBjaGVja3BvaW50LgorCQkJICogSWYgV0FMIGFyY2hpdmluZyBpcyBhY3Rp dmUsIHdlIGF0dGVtcHQgdG8gbm90aWZ5IHRoZSBhcmNoaXZlciBvZgorCQkJICogYW55IHNlZ21l bnRzIHRoYXQgYXJlIG5vdyByZWFkeSBmb3IgYXJjaGl2YWwuCisJCQkgKgorCQkJICogVGhpcyBp cyBhbHNvIHRoZSByaWdodCBwbGFjZSB0byB1cGRhdGUgdGhlIHRpbWVyIGZvcgorCQkJICogYXJj aGl2ZV90aW1lb3V0IGFuZCB0byBzaWduYWwgZm9yIGEgY2hlY2twb2ludCBpZiB0b28gbWFueQor CQkJICogbG9nZmlsZSBzZWdtZW50cyBoYXZlIGJlZW4gdXNlZCBzaW5jZSB0aGUgbGFzdCBjaGVj a3BvaW50LgorCQkJICoKIAkJCSAqLwogCQkJaWYgKGZpbmlzaGluZ19zZWcpCiAJCQl7CkBAIC0y NjAyLDcgKzI4NDUsNyBAQCBYTG9nV3JpdGUoWExvZ3dydFJxc3QgV3JpdGVScXN0LCBib29sIGZs ZXhpYmxlKQogCQkJCUxvZ3dydFJlc3VsdC5GbHVzaCA9IExvZ3dydFJlc3VsdC5Xcml0ZTsJLyog ZW5kIG9mIHBhZ2UgKi8KIAogCQkJCWlmIChYTG9nQXJjaGl2aW5nQWN0aXZlKCkpCi0JCQkJCVhM b2dBcmNoaXZlTm90aWZ5U2VnKG9wZW5Mb2dTZWdObyk7CisJCQkJCU5vdGlmeVNlZ21lbnRzUmVh ZHlGb3JBcmNoaXZlKExvZ3dydFJlc3VsdC5GbHVzaCk7CiAKIAkJCQlYTG9nQ3RsLT5sYXN0U2Vn U3dpdGNoVGltZSA9IChwZ190aW1lX3QpIHRpbWUoTlVMTCk7CiAJCQkJWExvZ0N0bC0+bGFzdFNl Z1N3aXRjaExTTiA9IExvZ3dydFJlc3VsdC5GbHVzaDsKQEAgLTI2OTAsNiArMjkzMyw5IEBAIFhM b2dXcml0ZShYTG9nd3J0UnFzdCBXcml0ZVJxc3QsIGJvb2wgZmxleGlibGUpCiAJCQlYTG9nQ3Rs LT5Mb2d3cnRScXN0LkZsdXNoID0gTG9nd3J0UmVzdWx0LkZsdXNoOwogCQlTcGluTG9ja1JlbGVh c2UoJlhMb2dDdGwtPmluZm9fbGNrKTsKIAl9CisKKwlpZiAoWExvZ0FyY2hpdmluZ0FjdGl2ZSgp KQorCQlOb3RpZnlTZWdtZW50c1JlYWR5Rm9yQXJjaGl2ZShMb2d3cnRSZXN1bHQuRmx1c2gpOwog fQogCiAvKgpAQCAtNTExNyw2ICs1MzYzLDkgQEAgWExPR1NobWVtU2l6ZSh2b2lkKQogCS8qIGFu ZCB0aGUgYnVmZmVycyB0aGVtc2VsdmVzICovCiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG11bF9z aXplKFhMT0dfQkxDS1NaLCBYTE9HYnVmZmVycykpOwogCisJLyogc3R1ZmYgZm9yIG1hcmtpbmcg c2VnbWVudHMgYXMgcmVhZHkgZm9yIGFyY2hpdmFsICovCisJc2l6ZSA9IGFkZF9zaXplKHNpemUs IGhhc2hfZXN0aW1hdGVfc2l6ZSgxNiwgc2l6ZW9mKFNlZ21lbnRCb3VuZGFyeUVudHJ5KSkpOwor CiAJLyoKIAkgKiBOb3RlOiB3ZSBkb24ndCBjb3VudCBDb250cm9sRmlsZURhdGEsIGl0IGNvbWVz IG91dCBvZiB0aGUgInNsb3AgZmFjdG9yIgogCSAqIGFkZGVkIGJ5IENyZWF0ZVNoYXJlZE1lbW9y eUFuZFNlbWFwaG9yZXMuICBUaGlzIGxldHMgdXMgdXNlIHRoaXMKQEAgLTUxMzQsNiArNTM4Myw3 IEBAIFhMT0dTaG1lbUluaXQodm9pZCkKIAljaGFyCSAgICphbGxvY3B0cjsKIAlpbnQJCQlpOwog CUNvbnRyb2xGaWxlRGF0YSAqbG9jYWxDb250cm9sRmlsZTsKKwlIQVNIQ1RMCQlpbmZvOwogCiAj aWZkZWYgV0FMX0RFQlVHCiAKQEAgLTUyMjcsMTIgKzU0NzcsMjAgQEAgWExPR1NobWVtSW5pdCh2 b2lkKQogCVhMb2dDdGwtPkluc3RhbGxYTG9nRmlsZVNlZ21lbnRBY3RpdmUgPSBmYWxzZTsKIAlY TG9nQ3RsLT5TaGFyZWRQcm9tb3RlSXNUcmlnZ2VyZWQgPSBmYWxzZTsKIAlYTG9nQ3RsLT5XYWxX cml0ZXJTbGVlcGluZyA9IGZhbHNlOworCVhMb2dDdGwtPmxhc3ROb3RpZmllZFNlZyA9IE1heFhM b2dTZWdObzsKIAogCVNwaW5Mb2NrSW5pdCgmWExvZ0N0bC0+SW5zZXJ0Lmluc2VydHBvc19sY2sp OwogCVNwaW5Mb2NrSW5pdCgmWExvZ0N0bC0+aW5mb19sY2spOwogCVNwaW5Mb2NrSW5pdCgmWExv Z0N0bC0+dWxzbl9sY2spOwogCUluaXRTaGFyZWRMYXRjaCgmWExvZ0N0bC0+cmVjb3ZlcnlXYWtl dXBMYXRjaCk7CiAJQ29uZGl0aW9uVmFyaWFibGVJbml0KCZYTG9nQ3RsLT5yZWNvdmVyeU5vdFBh dXNlZENWKTsKKworCS8qIEluaXRpYWxpemUgc3R1ZmYgZm9yIG1hcmtpbmcgc2VnbWVudHMgYXMg cmVhZHkgZm9yIGFyY2hpdmFsLiAqLworCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsK KwlpbmZvLmtleXNpemUgPSBzaXplb2YoWExvZ1NlZ05vKTsKKwlpbmZvLmVudHJ5c2l6ZSA9IHNp emVvZihTZWdtZW50Qm91bmRhcnlFbnRyeSk7CisJU2VnbWVudEJvdW5kYXJ5TWFwID0gU2htZW1J bml0SGFzaCgiU2VnbWVudCBCb3VuZGFyeSBUYWJsZSIsIDE2LCAxNiwgJmluZm8sCisJCQkJCQkJ CQkgICBIQVNIX0VMRU0gfCBIQVNIX0JMT0JTKTsKIH0KIAogLyoKQEAgLTc4NzMsNiArODEzMSwx NyBAQCBTdGFydHVwWExPRyh2b2lkKQogCVhMb2dDdGwtPkxvZ3dydFJxc3QuV3JpdGUgPSBFbmRP ZkxvZzsKIAlYTG9nQ3RsLT5Mb2d3cnRScXN0LkZsdXNoID0gRW5kT2ZMb2c7CiAKKwkvKgorCSAq IEluaXRpYWxpemUgWExvZ0N0bC0+bGFzdE5vdGlmaWVkU2VnIHRvIHRoZSBwcmV2aW91cyBXQUwg ZmlsZS4KKwkgKi8KKwlpZiAoWExvZ0FyY2hpdmluZ0FjdGl2ZSgpKQorCXsKKwkJWExvZ1NlZ05v IEVuZE9mTG9nU2VnOworCisJCVhMQnl0ZVRvU2VnKEVuZE9mTG9nLCBFbmRPZkxvZ1NlZywgd2Fs X3NlZ21lbnRfc2l6ZSk7CisJCVNldExhc3ROb3RpZmllZFNlZ21lbnQoRW5kT2ZMb2dTZWcgLSAx KTsKKwl9CisKIAkvKgogCSAqIFVwZGF0ZSBmdWxsX3BhZ2Vfd3JpdGVzIGluIHNoYXJlZCBtZW1v cnkgYW5kIHdyaXRlIGFuIFhMT0dfRlBXX0NIQU5HRQogCSAqIHJlY29yZCBiZWZvcmUgcmVzb3Vy Y2UgbWFuYWdlciB3cml0ZXMgY2xlYW51cCBXQUwgcmVjb3JkcyBvciBjaGVja3BvaW50CkBAIC04 MDAwLDcgKzgyNjksNyBAQCBTdGFydHVwWExPRyh2b2lkKQogCQkJCVhMb2dBcmNoaXZlQ2xlYW51 cChwYXJ0aWFsZm5hbWUpOwogCiAJCQkJZHVyYWJsZV9yZW5hbWUob3JpZ3BhdGgsIHBhcnRpYWxw YXRoLCBFUlJPUik7Ci0JCQkJWExvZ0FyY2hpdmVOb3RpZnkocGFydGlhbGZuYW1lKTsKKwkJCQlY TG9nQXJjaGl2ZU5vdGlmeShwYXJ0aWFsZm5hbWUsIHRydWUpOwogCQkJfQogCQl9CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKaW5kZXggMjZiMDIzZTc1NC4uZTlj YWM5MGI0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hp dmUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jCkBAIC00 MzMsNyArNDMzLDcgQEAgS2VlcEZpbGVSZXN0b3JlZEZyb21BcmNoaXZlKGNvbnN0IGNoYXIgKnBh dGgsIGNvbnN0IGNoYXIgKnhsb2dmbmFtZSkKIAlpZiAoWExvZ0FyY2hpdmVNb2RlICE9IEFSQ0hJ VkVfTU9ERV9BTFdBWVMpCiAJCVhMb2dBcmNoaXZlRm9yY2VEb25lKHhsb2dmbmFtZSk7CiAJZWxz ZQotCQlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9nZm5hbWUpOworCQlYTG9nQXJjaGl2ZU5vdGlmeSh4 bG9nZm5hbWUsIHRydWUpOwogCiAJLyoKIAkgKiBJZiB0aGUgZXhpc3RpbmcgZmlsZSB3YXMgcmVw bGFjZWQsIHNpbmNlIHdhbHNlbmRlcnMgbWlnaHQgaGF2ZSBpdCBvcGVuLApAQCAtNDY0LDcgKzQ2 NCw3IEBAIEtlZXBGaWxlUmVzdG9yZWRGcm9tQXJjaGl2ZShjb25zdCBjaGFyICpwYXRoLCBjb25z dCBjaGFyICp4bG9nZm5hbWUpCiAgKiB0aGVuIHdoZW4gY29tcGxldGUsIHJlbmFtZSBpdCB0byAw MDAwMDAwMTAwMDAwMDAxMDAwMDAwQzYuZG9uZQogICovCiB2b2lkCi1YTG9nQXJjaGl2ZU5vdGlm eShjb25zdCBjaGFyICp4bG9nKQorWExvZ0FyY2hpdmVOb3RpZnkoY29uc3QgY2hhciAqeGxvZywg Ym9vbCBub3RpZnkpCiB7CiAJY2hhcgkJYXJjaGl2ZVN0YXR1c1BhdGhbTUFYUEdQQVRIXTsKIAlG SUxFCSAgICpmZDsKQEAgLTQ4OSw4ICs0ODksOCBAQCBYTG9nQXJjaGl2ZU5vdGlmeShjb25zdCBj aGFyICp4bG9nKQogCQlyZXR1cm47CiAJfQogCi0JLyogTm90aWZ5IGFyY2hpdmVyIHRoYXQgaXQn cyBnb3Qgc29tZXRoaW5nIHRvIGRvICovCi0JaWYgKElzVW5kZXJQb3N0bWFzdGVyKQorCS8qIElm IGNhbGxlciByZXF1ZXN0ZWQsIG5vdGlmeSBhcmNoaXZlciB0aGF0IGl0J3MgZ290IHNvbWV0aGlu ZyB0byBkbyAqLworCWlmIChub3RpZnkpCiAJCVBnQXJjaFdha2V1cCgpOwogfQogCkBAIC00OTgs MTIgKzQ5OCwxMiBAQCBYTG9nQXJjaGl2ZU5vdGlmeShjb25zdCBjaGFyICp4bG9nKQogICogQ29u dmVuaWVuY2Ugcm91dGluZSB0byBub3RpZnkgdXNpbmcgc2VnbWVudCBudW1iZXIgcmVwcmVzZW50 YXRpb24gb2YgZmlsZW5hbWUKICAqLwogdm9pZAotWExvZ0FyY2hpdmVOb3RpZnlTZWcoWExvZ1Nl Z05vIHNlZ25vKQorWExvZ0FyY2hpdmVOb3RpZnlTZWcoWExvZ1NlZ05vIHNlZ25vLCBib29sIG5v dGlmeSkKIHsKIAljaGFyCQl4bG9nW01BWEZOQU1FTEVOXTsKIAogCVhMb2dGaWxlTmFtZSh4bG9n LCBUaGlzVGltZUxpbmVJRCwgc2Vnbm8sIHdhbF9zZWdtZW50X3NpemUpOwotCVhMb2dBcmNoaXZl Tm90aWZ5KHhsb2cpOworCVhMb2dBcmNoaXZlTm90aWZ5KHhsb2csIG5vdGlmeSk7CiB9CiAKIC8q CkBAIC02MDgsNyArNjA4LDcgQEAgWExvZ0FyY2hpdmVDaGVja0RvbmUoY29uc3QgY2hhciAqeGxv ZykKIAkJcmV0dXJuIHRydWU7CiAKIAkvKiBSZXRyeSBjcmVhdGlvbiBvZiB0aGUgLnJlYWR5IGZp bGUgKi8KLQlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9nKTsKKwlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9n LCB0cnVlKTsKIAlyZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvd2Fsd3JpdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3dhbHdyaXRlci5j CmluZGV4IDYyNmZhZTg0NTQuLmMyMGYzNGRhNWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvd2Fsd3JpdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93YWx3cml0 ZXIuYwpAQCAtMjQ4LDYgKzI0OCwxMyBAQCBXYWxXcml0ZXJNYWluKHZvaWQpCiAJCS8qIFByb2Nl c3MgYW55IHNpZ25hbHMgcmVjZWl2ZWQgcmVjZW50bHkgKi8KIAkJSGFuZGxlV2FsV3JpdGVySW50 ZXJydXB0cygpOwogCisJCS8qCisJCSAqIE5vdGlmeSB0aGUgYXJjaGl2ZXIgb2YgYW55IFdBTCBz ZWdtZW50cyB0aGF0IGFyZSByZWFkeS4gIFdlIGRvIHRoaXMKKwkJICogaGVyZSB0byBoYW5kbGUg YSByYWNlIGNvbmRpdGlvbiB3aGVyZSBXQUwgaXMgZmx1c2hlZCB0byBkaXNrIHByaW9yIHRvCisJ CSAqIHJlZ2lzdGVyaW5nIHRoZSBzZWdtZW50IGJvdW5kYXJ5LgorCQkgKi8KKwkJTm90aWZ5U2Vn bWVudHNSZWFkeUZvckFyY2hpdmUoR2V0Rmx1c2hSZWNQdHIoKSk7CisKIAkJLyoKIAkJICogRG8g d2hhdCB3ZSdyZSBoZXJlIGZvcjsgdGhlbiwgaWYgWExvZ0JhY2tncm91bmRGbHVzaCgpIGZvdW5k IHVzZWZ1bAogCQkgKiB3b3JrIHRvIGRvLCByZXNldCBoaWJlcm5hdGlvbiBjb3VudGVyLgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKaW5kZXggOWEyYmMzN2ZkNy4uNjBkZTNiZTky YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCkBAIC02MjIsNyArNjIyLDcg QEAgV2FsUmVjZWl2ZXJNYWluKHZvaWQpCiAJCQlpZiAoWExvZ0FyY2hpdmVNb2RlICE9IEFSQ0hJ VkVfTU9ERV9BTFdBWVMpCiAJCQkJWExvZ0FyY2hpdmVGb3JjZURvbmUoeGxvZ2ZuYW1lKTsKIAkJ CWVsc2UKLQkJCQlYTG9nQXJjaGl2ZU5vdGlmeSh4bG9nZm5hbWUpOworCQkJCVhMb2dBcmNoaXZl Tm90aWZ5KHhsb2dmbmFtZSwgdHJ1ZSk7CiAJCX0KIAkJcmVjdkZpbGUgPSAtMTsKIApAQCAtNzYw LDcgKzc2MCw3IEBAIFdhbFJjdkZldGNoVGltZUxpbmVIaXN0b3J5RmlsZXMoVGltZUxpbmVJRCBm aXJzdCwgVGltZUxpbmVJRCBsYXN0KQogCQkJaWYgKFhMb2dBcmNoaXZlTW9kZSAhPSBBUkNISVZF X01PREVfQUxXQVlTKQogCQkJCVhMb2dBcmNoaXZlRm9yY2VEb25lKGZuYW1lKTsKIAkJCWVsc2UK LQkJCQlYTG9nQXJjaGl2ZU5vdGlmeShmbmFtZSk7CisJCQkJWExvZ0FyY2hpdmVOb3RpZnkoZm5h bWUsIHRydWUpOwogCiAJCQlwZnJlZShmbmFtZSk7CiAJCQlwZnJlZShjb250ZW50KTsKQEAgLTkx NSw3ICs5MTUsNyBAQCBYTG9nV2FsUmN2V3JpdGUoY2hhciAqYnVmLCBTaXplIG5ieXRlcywgWExv Z1JlY1B0ciByZWNwdHIpCiAJCQkJaWYgKFhMb2dBcmNoaXZlTW9kZSAhPSBBUkNISVZFX01PREVf QUxXQVlTKQogCQkJCQlYTG9nQXJjaGl2ZUZvcmNlRG9uZSh4bG9nZm5hbWUpOwogCQkJCWVsc2UK LQkJCQkJWExvZ0FyY2hpdmVOb3RpZnkoeGxvZ2ZuYW1lKTsKKwkJCQkJWExvZ0FyY2hpdmVOb3Rp ZnkoeGxvZ2ZuYW1lLCB0cnVlKTsKIAkJCX0KIAkJCXJlY3ZGaWxlID0gLTE7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sd2xvY2tuYW1lcy50eHQgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL2xtZ3IvbHdsb2NrbmFtZXMudHh0CmluZGV4IDZjN2NmNmMyOTUuLjE0YTc0MmQ2 NTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sd2xvY2tuYW1lcy50eHQK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2x3bG9ja25hbWVzLnR4dApAQCAtNTMsMyAr NTMsNCBAQCBYYWN0VHJ1bmNhdGlvbkxvY2sJCQkJCTQ0CiAjIDQ1IHdhcyBYYWN0VHJ1bmNhdGlv bkxvY2sgdW50aWwgcmVtb3ZhbCBvZiBCYWNrZW5kUmFuZG9tTG9jawogV3JhcExpbWl0c1ZhY3V1 bUxvY2sJCQkJNDYKIE5vdGlmeVF1ZXVlVGFpbExvY2sJCQkJCTQ3CitTZWdtZW50Qm91bmRhcnlM b2NrCQkJCQk0OApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9p bmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMGE4ZWRlNzAwZC4uNmI2YWU4MWMyZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv eGxvZy5oCkBAIC0zMTUsNiArMzE1LDcgQEAgZXh0ZXJuIFhMb2dSZWNQdHIgR2V0SW5zZXJ0UmVj UHRyKHZvaWQpOwogZXh0ZXJuIFhMb2dSZWNQdHIgR2V0Rmx1c2hSZWNQdHIodm9pZCk7CiBleHRl cm4gWExvZ1JlY1B0ciBHZXRMYXN0SW1wb3J0YW50UmVjUHRyKHZvaWQpOwogZXh0ZXJuIHZvaWQg UmVtb3ZlUHJvbW90ZVNpZ25hbEZpbGVzKHZvaWQpOworZXh0ZXJuIHZvaWQgTm90aWZ5U2VnbWVu dHNSZWFkeUZvckFyY2hpdmUoWExvZ1JlY1B0ciBmbHVzaFJlY1B0cik7CiAKIGV4dGVybiBib29s IFByb21vdGVJc1RyaWdnZXJlZCh2b2lkKTsKIGV4dGVybiBib29sIENoZWNrUHJvbW90ZVNpZ25h bCh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nYXJjaGl2ZS5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dhcmNoaXZlLmgKaW5kZXggM2VkZDFhOTc2Yy4uZTI1YzNk ODExNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dhcmNoaXZlLmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dhcmNoaXZlLmgKQEAgLTIzLDggKzIzLDggQEAgZXh0ZXJu IGJvb2wgUmVzdG9yZUFyY2hpdmVkRmlsZShjaGFyICpwYXRoLCBjb25zdCBjaGFyICp4bG9nZm5h bWUsCiBleHRlcm4gdm9pZCBFeGVjdXRlUmVjb3ZlcnlDb21tYW5kKGNvbnN0IGNoYXIgKmNvbW1h bmQsIGNvbnN0IGNoYXIgKmNvbW1hbmROYW1lLAogCQkJCQkJCQkgICBib29sIGZhaWxPblNpZ25h bCk7CiBleHRlcm4gdm9pZCBLZWVwRmlsZVJlc3RvcmVkRnJvbUFyY2hpdmUoY29uc3QgY2hhciAq cGF0aCwgY29uc3QgY2hhciAqeGxvZ2ZuYW1lKTsKLWV4dGVybiB2b2lkIFhMb2dBcmNoaXZlTm90 aWZ5KGNvbnN0IGNoYXIgKnhsb2cpOwotZXh0ZXJuIHZvaWQgWExvZ0FyY2hpdmVOb3RpZnlTZWco WExvZ1NlZ05vIHNlZ25vKTsKK2V4dGVybiB2b2lkIFhMb2dBcmNoaXZlTm90aWZ5KGNvbnN0IGNo YXIgKnhsb2csIGJvb2wgbm90aWZ5KTsKK2V4dGVybiB2b2lkIFhMb2dBcmNoaXZlTm90aWZ5U2Vn KFhMb2dTZWdObyBzZWdubywgYm9vbCBub3RpZnkpOwogZXh0ZXJuIHZvaWQgWExvZ0FyY2hpdmVG b3JjZURvbmUoY29uc3QgY2hhciAqeGxvZyk7CiBleHRlcm4gYm9vbCBYTG9nQXJjaGl2ZUNoZWNr RG9uZShjb25zdCBjaGFyICp4bG9nKTsKIGV4dGVybiBib29sIFhMb2dBcmNoaXZlSXNCdXN5KGNv bnN0IGNoYXIgKnhsb2cpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dkZWZz LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ2RlZnMuaAppbmRleCA2MDM0OGQxODUwLi4zMTNj Nzc1ZTg1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ2RlZnMuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZ2RlZnMuaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVmIHVp bnQ2NCBYTG9nUmVjUHRyOwogICogWExvZ1NlZ05vIC0gcGh5c2ljYWwgbG9nIGZpbGUgc2VxdWVu Y2UgbnVtYmVyLgogICovCiB0eXBlZGVmIHVpbnQ2NCBYTG9nU2VnTm87CisjZGVmaW5lIE1heFhM b2dTZWdObyAoMHhGRkZGRkZGRkZGRkZGRkZGKQogCiAvKgogICogVGltZUxpbmVJRCAoVExJKSAt IGlkZW50aWZpZXMgZGlmZmVyZW50IGRhdGFiYXNlIGhpc3RvcmllcyB0byBwcmV2ZW50Ci0tIAoy LjE2LjYKCg== --_002_05AD5FE29A534D11A3F83A83EBB0EB93amazoncom_--