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 1l7hsR-0003kI-SE for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Feb 2021 16:53:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l7hsQ-0008VX-R4 for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Feb 2021 16:53:06 +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 1l7hpG-0003vd-Ow for pgsql-hackers@lists.postgresql.org; Thu, 04 Feb 2021 16:49:51 +0000 Received: from smtp-fw-4101.amazon.com ([72.21.198.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l7hpB-0008Sx-1z for pgsql-hackers@postgresql.org; Thu, 04 Feb 2021 16:49:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1612457385; x=1643993385; h=subject:from:to:cc:references:message-id:date: mime-version:in-reply-to; bh=26XAvXwzvxhSGIn1JgHamX8Qi2OTMr5AuUhJWTOh6fI=; b=C60LgyJEgsfVdFGDjisbk5mdC6evTC3EpVxzXWt2DJ534c1TU8z6wE4v npegUDNwie/0Pto5libWsLIokj+Zj8fYIynHO5rZ53i8yv4noeieqDhvL MA9BZgbIxhwF4AbYVCh65nTcZnBQVUnNbo31bTGAIJmzxFEpBJxCEG7JK E=; X-Amazon-filename: v9-0001-Allow-logical-decoding-on-standby.patch, v9-0002-Add-info-in-WAL-records-in-preparation-for-logica.patch, v9-0003-Handle-logical-slot-conflicts-on-standby.patch, v9-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v9-0005-Doc-changes-describing-details-about-logical-deco.patch X-IronPort-AV: E=Sophos;i="5.79,401,1602547200"; d="scan'208,217,223";a="79976565" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1a-af6a10df.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 04 Feb 2021 16:49:35 +0000 Received: from EX13D03EUC003.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38]) by email-inbound-relay-1a-af6a10df.us-east-1.amazon.com (Postfix) with ESMTPS id 4C24BA1E1A; Thu, 4 Feb 2021 16:49:32 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.160.67) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 4 Feb 2021 16:49:27 +0000 Subject: Re: Minimal logical decoding on standbys From: "Drouvot, Bertrand" To: , Alvaro Herrera , Andres Freund , tushar , "[pgdg] Robert Haas" , Amit Khandekar , Rahila Syed CC: pgsql-hackers References: <20200318184249.GA29007@alvherre.pgsql> <20200318195038.GA7123@alvherre.pgsql> Message-ID: <1ab609c9-2c16-26ff-5fbe-c3195e541f9c@amazon.com> Date: Thu, 4 Feb 2021 17:49:23 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------E57C3138DCDD77C4B41FB56F" Content-Language: en-US X-Originating-IP: [10.43.160.67] X-ClientProxiedBy: EX13D24UWA002.ant.amazon.com (10.43.160.200) To EX13D03EUC003.ant.amazon.com (10.43.164.192) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --------------E57C3138DCDD77C4B41FB56F Content-Type: multipart/alternative; boundary="------------C9C91D0CC1149B97703847E1" --------------C9C91D0CC1149B97703847E1 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Hi, On 1/26/21 10:31 AM, Drouvot, Bertrand wrote: > > Hi, > > On 1/25/21 8:34 PM, Fabrízio de Royes Mello wrote: >> >> On Mon, Jan 18, 2021 at 8:48 AM Drouvot, Bertrand >> > wrote: >> > >> > 3 and 4 were failing because the >> ResolveRecoveryConflictWithLogicalSlots() call was missing in >> ResolveRecoveryConflictWithSnapshot(): the new version attached adds it. >> > >> > The new version attached also provides a few changes to make it >> compiling on the current master (it was not the case anymore). >> > >> > I also had to change 023_standby_logical_decoding_conflicts.pl >> (had to call >> $node_standby->create_logical_slot_on_standby($node_master, >> 'otherslot', 'postgres'); at the very beginning of the "DROP DATABASE >> should drops it's slots, including active slots" section) >> > >> >> Awesome and thanks a lot. >> >> Seems your patch series is broken... can you please `git >> format-patch` and send again? > > Thanks for pointing out! > > Enclosed a new series created with "format-patch" and that can be > applied with "git am": > > $ git am v8-000*.patch > Applying: Allow logical decoding on standby. > Applying: Add info in WAL records in preparation for logical slot > conflict handling. > Applying: Handle logical slot conflicts on standby. > Applying: New TAP test for logical decoding on standby. > Applying: Doc changes describing details about logical decoding. > > Bertrand > Had to do a little change to make it compiling again (re-add the heapRel argument in _bt_delitems_delete() that was removed by commit dc43492e46c7145a476cb8ca6200fc8eefe673ef). Given that this attached v9 version: * compiles successfully on current master * passes "make check" * passes the 2 associated tap tests "make -C src/test/recovery check PROVE_TESTS=t/022_standby_logical_decoding_xmins.pl PROVE_FLAGS=-v"  and "make -C src/test/recovery check PROVE_TESTS=t/023_standby_logical_decoding_conflicts.pl PROVE_FLAGS=-v" wouldn't that make sense to (re)add this patch in the commitfest? Thanks Bertrand --------------C9C91D0CC1149B97703847E1 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit

Hi,

On 1/26/21 10:31 AM, Drouvot, Bertrand wrote:

Hi,

On 1/25/21 8:34 PM, Fabrízio de Royes Mello wrote:

On Mon, Jan 18, 2021 at 8:48 AM Drouvot, Bertrand <bdrouvot@amazon.com> wrote:
>
> 3 and 4 were failing because the ResolveRecoveryConflictWithLogicalSlots() call was missing in ResolveRecoveryConflictWithSnapshot(): the new version attached adds it.
>
> The new version attached also provides a few changes to make it compiling on the current master (it was not the case anymore).
>
> I also had to change 023_standby_logical_decoding_conflicts.pl (had to call $node_standby->create_logical_slot_on_standby($node_master, 'otherslot', 'postgres'); at the very beginning of the "DROP DATABASE should drops it's slots, including active slots" section)
>

Awesome and thanks a lot.

Seems your patch series is broken... can you please `git format-patch` and send again?

Thanks for pointing out!

Enclosed a new series created with "format-patch" and that can be applied with "git am":

$ git am v8-000*.patch
Applying: Allow logical decoding on standby.
Applying: Add info in WAL records in preparation for logical slot conflict handling.
Applying: Handle logical slot conflicts on standby.
Applying: New TAP test for logical decoding on standby.
Applying: Doc changes describing details about logical decoding.

Bertrand

Had to do a little change to make it compiling again (re-add the heapRel argument in _bt_delitems_delete() that was removed by commit dc43492e46c7145a476cb8ca6200fc8eefe673ef).

Given that this attached v9 version:

  • compiles successfully on current master
  • passes "make check"
  • passes the 2 associated tap tests "make -C src/test/recovery check PROVE_TESTS=t/022_standby_logical_decoding_xmins.pl PROVE_FLAGS=-v"  and "make -C src/test/recovery check PROVE_TESTS=t/023_standby_logical_decoding_conflicts.pl PROVE_FLAGS=-v"

wouldn't that make sense to (re)add this patch in the commitfest?

Thanks

Bertrand

--------------C9C91D0CC1149B97703847E1-- --------------E57C3138DCDD77C4B41FB56F Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v9-0001-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v9-0001-Allow-logical-decoding-on-standby.patch" RnJvbSA0MWMyZTE5MGVhYzBhMWYzNTVkYWQ2MmJlNTgwMjgzZjBiNDIyMDkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA0IEZlYiAyMDIxIDE2OjE0OjA3ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2OSAxLzVdIEFsbG93IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieS4KCkFsbG93IGEg bG9naWNhbCBzbG90IHRvIGJlIGNyZWF0ZWQgb24gc3RhbmRieS4gUmVzdHJpY3QgaXRzIHVz YWdlCm9yIGl0cyBjcmVhdGlvbiBpZiB3YWxfbGV2ZWwgb24gcHJpbWFyeSBpcyBsZXNzIHRo YW4gbG9naWNhbC4KRHVyaW5nIHNsb3QgY3JlYXRpb24sIGl0J3MgcmVzdGFydF9sc24gaXMg c2V0IHRvIHRoZSBsYXN0IHJlcGxheWVkCkxTTi4gRWZmZWN0aXZlbHksIGEgbG9naWNhbCBz bG90IGNyZWF0aW9uIG9uIHN0YW5kYnkgd2FpdHMgZm9yIGFuCnhsX3J1bm5pbmdfeGFjdCBy ZWNvcmQgdG8gYXJyaXZlIGZyb20gcHJpbWFyeS4gQ29uZmxpY3Rpbmcgc2xvdHMKd291bGQg YmUgaGFuZGxlZCBpbiBuZXh0IGNvbW1pdHMuCgpBbmRyZXMgRnJldW5kIGFuZCBBbWl0IEto YW5kZWthci4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgICAgICAg ICB8IDExICsrKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUu YyAgfCAyMiArKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbC5jIHwgMzcgKysrKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYyAgICAgICAgICAgIHwgNTcgKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgfCAx MCArKystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgICAgIHwg IDEgKwogNiBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMo LSkKICAgNS42JSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICA0NS44JSBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsLwogIDQ3LjclIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uLwoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBmMDNiZDQ3M2UyLi44 NTZiODQxMmU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC01MDYxLDYg KzUwNjEsMTcgQEAgTG9jYWxQcm9jZXNzQ29udHJvbEZpbGUoYm9vbCByZXNldCkKIAlSZWFk Q29udHJvbEZpbGUoKTsKIH0KIAorLyoKKyAqIEdldCB0aGUgd2FsX2xldmVsIGZyb20gdGhl IGNvbnRyb2wgZmlsZS4gRm9yIGEgc3RhbmRieSwgdGhpcyB2YWx1ZSBzaG91bGQgYmUKKyAq IGNvbnNpZGVyZWQgYXMgaXRzIGFjdGl2ZSB3YWxfbGV2ZWwsIGJlY2F1c2UgaXQgbWF5IGJl IGRpZmZlcmVudCBmcm9tIHdoYXQKKyAqIHdhcyBvcmlnaW5hbGx5IGNvbmZpZ3VyZWQgb24g c3RhbmRieS4KKyAqLworV2FsTGV2ZWwKK0dldEFjdGl2ZVdhbExldmVsKHZvaWQpCit7CisJ cmV0dXJuIENvbnRyb2xGaWxlLT53YWxfbGV2ZWw7Cit9CisKIC8qCiAgKiBJbml0aWFsaXph dGlvbiBvZiBzaGFyZWQgbWVtb3J5IGZvciBYTE9HCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCmluZGV4IGFmYTFkZjAwZDAuLmYwMWNiMmVjOTQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwpAQCAtMjE0 LDExICsyMTQsMzEgQEAgRGVjb2RlWExvZ09wKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0 eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQkJICogY2FuIHJlc3RhcnQgZnJvbSB0aGVy ZS4KIAkJCSAqLwogCQkJYnJlYWs7CisJCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgor CQl7CisJCQl4bF9wYXJhbWV0ZXJfY2hhbmdlICp4bHJlYyA9CisJCQkJKHhsX3BhcmFtZXRl cl9jaGFuZ2UgKikgWExvZ1JlY0dldERhdGEoYnVmLT5yZWNvcmQpOworCisJCQkvKgorCQkJ ICogSWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0byBsZXNzIHRoYW4gbG9n aWNhbCwgdGhlbiB3ZQorCQkJICogd2FudCB0byBwcmV2ZW50IGV4aXN0aW5nIGxvZ2ljYWwg c2xvdHMgZnJvbSBiZWluZyB1c2VkLgorCQkJICogRXhpc3RpbmcgbG9naWNhbCBzbG90cyBv biBzdGFuZGJ5IGdldCBkcm9wcGVkIHdoZW4gdGhpcyBXQUwKKwkJCSAqIHJlY29yZCBpcyBy ZXBsYXllZDsgYW5kIGZ1cnRoZXIsIHNsb3QgY3JlYXRpb24gZmFpbHMgd2hlbiB0aGUKKwkJ CSAqIHdhbCBsZXZlbCBpcyBub3Qgc3VmZmljaWVudDsgYnV0IGFsbCB0aGVzZSBvcGVyYXRp b25zIGFyZSBub3QKKwkJCSAqIHN5bmNocm9uaXplZCwgc28gYSBsb2dpY2FsIHNsb3QgbWF5 IGNyZWVwIGluIHdoaWxlIHRoZSB3YWxfbGV2ZWwKKwkJCSAqIGlzIGJlaW5nIHJlZHVjZWQu ICBIZW5jZSB0aGlzIGV4dHJhIGNoZWNrLgorCQkJICovCisJCQlpZiAoeGxyZWMtPndhbF9s ZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJ CQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSByZXF1aXJlcyAiCisJ CQkJCQkJCSJ3YWxfbGV2ZWwgPj0gbG9naWNhbCBvbiBtYXN0ZXIiKSkpOworCQkJYnJlYWs7 CisJCX0KIAkJY2FzZSBYTE9HX05PT1A6CiAJCWNhc2UgWExPR19ORVhUT0lEOgogCQljYXNl IFhMT0dfU1dJVENIOgogCQljYXNlIFhMT0dfQkFDS1VQX0VORDoKLQkJY2FzZSBYTE9HX1BB UkFNRVRFUl9DSEFOR0U6CiAJCWNhc2UgWExPR19SRVNUT1JFX1BPSU5UOgogCQljYXNlIFhM T0dfRlBXX0NIQU5HRToKIAkJY2FzZSBYTE9HX0ZQSV9GT1JfSElOVDoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKaW5kZXggMDk3N2FlYzcxMS4uNjdh MDNlMGZiYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s b2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2Fs LmMKQEAgLTExOSwyMyArMTE5LDIyIEBAIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1l bnRzKHZvaWQpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJ U0lURV9TVEFURSksCiAJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyBh IGRhdGFiYXNlIGNvbm5lY3Rpb24iKSkpOwogCi0JLyogLS0tLQotCSAqIFRPRE86IFdlIGdv dCB0byBjaGFuZ2UgdGhhdCBzb21lZGF5IHNvb24uLi4KLQkgKgotCSAqIFRoZXJlJ3MgYmFz aWNhbGx5IHRocmVlIHRoaW5ncyBtaXNzaW5nIHRvIGFsbG93IHRoaXM6Ci0JICogMSkgV2Ug bmVlZCB0byBiZSBhYmxlIHRvIGNvcnJlY3RseSBhbmQgcXVpY2tseSBpZGVudGlmeSB0aGUg dGltZWxpbmUgYQotCSAqCSAgTFNOIGJlbG9uZ3MgdG8KLQkgKiAyKSBXZSBuZWVkIHRvIGZv cmNlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHRvIGJlIGVuYWJsZWQgYXQgYWxsIHRpbWVzIHNv Ci0JICoJICB0aGUgcHJpbWFyeSBjYW5ub3QgcmVtb3ZlIHJvd3Mgd2UgbmVlZC4KLQkgKiAz KSBzdXBwb3J0IGRyb3BwaW5nIHJlcGxpY2F0aW9uIHNsb3RzIHJlZmVycmluZyB0byBhIGRh dGFiYXNlLCBpbgotCSAqCSAgZGJhc2VfcmVkby4gVGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2 ZSBvbmVzIGR1ZSB0byBIUyByZWNvdmVyeQotCSAqCSAgY29uZmxpY3RzLCBzbyB0aGF0IHNo b3VsZCBiZSByZWxhdGl2ZWx5IGVhc3kuCi0JICogLS0tLQotCSAqLwogCWlmIChSZWNvdmVy eUluUHJvZ3Jlc3MoKSkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGlu ZyBjYW5ub3QgYmUgdXNlZCB3aGlsZSBpbiByZWNvdmVyeSIpKSk7CisJeworCQkvKgorCQkg KiBUaGlzIGNoZWNrIG1heSBoYXZlIHJhY2UgY29uZGl0aW9ucywgYnV0IHdoZW5ldmVyCisJ CSAqIFhMT0dfUEFSQU1FVEVSX0NIQU5HRSBpbmRpY2F0ZXMgdGhhdCB3YWxfbGV2ZWwgaGFz IGNoYW5nZWQsIHdlCisJCSAqIHZlcmlmeSB0aGF0IHRoZXJlIGFyZSBubyBleGlzdGluZyBs b2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzLiBBbmQgdG8KKwkJICogYXZvaWQgcmFjZXMgYXJv dW5kIGNyZWF0aW5nIGEgbmV3IHNsb3QsCisJCSAqIENoZWNrTG9naWNhbERlY29kaW5nUmVx dWlyZW1lbnRzKCkgaXMgY2FsbGVkIG9uY2UgYmVmb3JlIGNyZWF0aW5nCisJCSAqIHRoZSBz bG90LCBhbmQgb25jZSB3aGVuIGxvZ2ljYWwgZGVjb2RpbmcgaXMgaW5pdGlhbGx5IHN0YXJ0 aW5nIHVwLgorCQkgKi8KKwkJaWYgKEdldEFjdGl2ZVdhbExldmVsKCkgPCBXQUxfTEVWRUxf TE9HSUNBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JK RUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJsb2dpY2Fs IGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJCSJ3YWxfbGV2ZWwgPj0g bG9naWNhbCBvbiBtYXN0ZXIiKSkpOworCX0KIH0KIAogLyoKQEAgLTMzMCw2ICszMjksMTIg QEAgQ3JlYXRlSW5pdERlY29kaW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVnaW4sCiAJTG9n aWNhbERlY29kaW5nQ29udGV4dCAqY3R4OwogCU1lbW9yeUNvbnRleHQgb2xkX2NvbnRleHQ7 CiAKKwkvKgorCSAqIE9uIHN0YW5kYnksIHRoaXMgY2hlY2sgaXMgYWxzbyByZXF1aXJlZCB3 aGlsZSBjcmVhdGluZyB0aGUgc2xvdC4gQ2hlY2sKKwkgKiB0aGUgY29tbWVudHMgaW4gdGhp cyBmdW5jdGlvbi4KKwkgKi8KKwlDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygp OworCiAJLyogc2hvcnRlciBsaW5lcy4uLiAqLwogCXNsb3QgPSBNeVJlcGxpY2F0aW9uU2xv dDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IGUwMGM3ZmZjMDEuLjhiMDJkMmY0 MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTEwOTcsMzcgKzEwOTcsNTYgQEAg UmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lkKQogCQkvKgogCQkgKiBGb3IgbG9naWNh bCBzbG90cyBsb2cgYSBzdGFuZGJ5IHNuYXBzaG90IGFuZCBzdGFydCBsb2dpY2FsIGRlY29k aW5nCiAJCSAqIGF0IGV4YWN0bHkgdGhhdCBwb3NpdGlvbi4gVGhhdCBhbGxvd3MgdGhlIHNs b3QgdG8gc3RhcnQgdXAgbW9yZQotCQkgKiBxdWlja2x5LgorCQkgKiBxdWlja2x5LiBCdXQg b24gYSBzdGFuZGJ5IHdlIGNhbm5vdCBkbyBXQUwgd3JpdGVzLCBzbyBqdXN0IHVzZSB0aGUK KwkJICogcmVwbGF5IHBvaW50ZXI7IGVmZmVjdGl2ZWx5LCBhbiBhdHRlbXB0IHRvIGNyZWF0 ZSBhIGxvZ2ljYWwgc2xvdCBvbgorCQkgKiBzdGFuZGJ5IHdpbGwgY2F1c2UgaXQgdG8gd2Fp dCBmb3IgYW4geGxfcnVubmluZ194YWN0IHJlY29yZCB0byBiZQorCQkgKiBsb2dnZWQgaW5k ZXBlbmRlbnRseSBvbiB0aGUgcHJpbWFyeSwgc28gdGhhdCBhIHNuYXBzaG90IGNhbiBiZSBi dWlsdAorCQkgKiB1c2luZyB0aGUgcmVjb3JkLgogCQkgKgotCQkgKiBUaGF0J3Mgbm90IG5l ZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwpIGZvciBwaHlzaWNhbCBzbG90cyBhcyB0aGV5J2xs Ci0JCSAqIHN0YXJ0IHJlcGxheSBhdCB0aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3 YXkuIEluc3RlYWQgcmV0dXJuCi0JCSAqIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRv IExTTi4gV2hpbGUgdGhhdCBzbGlnaHRseSBpbmNyZWFzZXMKLQkJICogdGhlIGNoYW5jZSB0 aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cCBoYXMgdG8K LQkJICogc3RhcnQgcmVwbGF5IGF0LgorCQkgKiBOb25lIG9mIHRoaXMgaXMgbmVlZGVkIChv ciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNpY2FsIHNsb3RzIGFzCisJCSAqIHRoZXknbGwg c3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxvZ2dlZCBjaGVja3BvaW50IGFueXdheS4gSW5z dGVhZAorCQkgKiByZXR1cm4gdGhlIGxvY2F0aW9uIG9mIHRoZSBsYXN0IHJlZG8gTFNOLiBX aGlsZSB0aGF0IHNsaWdodGx5CisJCSAqIGluY3JlYXNlcyB0aGUgY2hhbmNlIHRoYXQgd2Ug aGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBhIGJhc2UgYmFja3VwCisJCSAqIGhhcyB0byBz dGFydCByZXBsYXkgYXQuCiAJCSAqLworCQlpZiAoU2xvdElzUGh5c2ljYWwoc2xvdCkpCisJ CQlyZXN0YXJ0X2xzbiA9IEdldFJlZG9SZWNQdHIoKTsKKwkJZWxzZSBpZiAoUmVjb3ZlcnlJ blByb2dyZXNzKCkpCisJCXsKKwkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ1JlcGxheVJlY1B0 cihOVUxMKTsKKwkJCS8qCisJCQkgKiBSZXBsYXkgcG9pbnRlciBtYXkgcG9pbnQgb25lIHBh c3QgdGhlIGVuZCBvZiB0aGUgcmVjb3JkLiBJZiB0aGF0CisJCQkgKiBpcyBhIFhMT0cgcGFn ZSBib3VuZGFyeSwgaXQgd2lsbCBub3QgYmUgYSB2YWxpZCBMU04gZm9yIHRoZQorCQkJICog c3RhcnQgb2YgYSByZWNvcmQsIHNvIGJ1bXAgaXQgdXAgcGFzdCB0aGUgcGFnZSBoZWFkZXIu CisJCQkgKi8KKwkJCWlmICghWFJlY09mZklzVmFsaWQocmVzdGFydF9sc24pKQorCQkJewor CQkJCWlmIChyZXN0YXJ0X2xzbiAlIFhMT0dfQkxDS1NaICE9IDApCisJCQkJCWVsb2coRVJS T1IsICJpbnZhbGlkIHJlcGxheSBwb2ludGVyIik7CisJCQkJLyogRm9yIHRoZSBmaXJzdCBw YWdlIG9mIGEgc2VnbWVudCBmaWxlLCBpdCdzIGEgbG9uZyBoZWFkZXIgKi8KKwkJCQlpZiAo WExvZ1NlZ21lbnRPZmZzZXQocmVzdGFydF9sc24sIHdhbF9zZWdtZW50X3NpemUpID09IDAp CisJCQkJCXJlc3RhcnRfbHNuICs9IFNpemVPZlhMb2dMb25nUEhEOworCQkJCWVsc2UKKwkJ CQkJcmVzdGFydF9sc24gKz0gU2l6ZU9mWExvZ1Nob3J0UEhEOworCQkJfQorCQl9CisJCWVs c2UKKwkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigpOworCisJCVNwaW5M b2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0g cmVzdGFydF9sc247CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCiAJCWlm ICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNhbChzbG90KSkKIAkJewog CQkJWExvZ1JlY1B0cglmbHVzaHB0cjsKIAotCQkJLyogc3RhcnQgYXQgY3VycmVudCBpbnNl cnQgcG9zaXRpb24gKi8KLQkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigp OwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJl c3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11 dGV4KTsKLQogCQkJLyogbWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRv IHN0YXJ0ICovCiAJCQlmbHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgpOwogCiAJCQkv KiBhbmQgbWFrZSBzdXJlIGl0J3MgZnN5bmNlZCB0byBkaXNrICovCiAJCQlYTG9nRmx1c2go Zmx1c2hwdHIpOwogCQl9Ci0JCWVsc2UKLQkJewotCQkJcmVzdGFydF9sc24gPSBHZXRSZWRv UmVjUHRyKCk7Ci0JCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKLQkJCXNsb3Qt PmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKLQkJCVNwaW5Mb2NrUmVsZWFzZSgm c2xvdC0+bXV0ZXgpOwotCQl9CiAKIAkJLyogcHJldmVudCBXQUwgcmVtb3ZhbCBhcyBmYXN0 IGFzIHBvc3NpYmxlICovCiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04o KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggODU0NWM2YzQyMy4u Njc5OWU2N2YxOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2Vu ZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTI4 NzgsMTAgKzI4NzgsMTIgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmlyc3Qg dGltZSB0aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4gIE90 aGVyd2lzZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVuZFJl Y1B0ciBpcyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKLQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cigpOwotCWVsc2UgaWYgKGxvZ2lj YWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKLQkJZmx1 c2hQdHIgPSBHZXRGbHVzaFJlY1B0cigpOworCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExv Z1JlY1B0ciB8fAorCQlsb2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIg Pj0gZmx1c2hQdHIpCisJeworCQlmbHVzaFB0ciA9IChhbV9jYXNjYWRpbmdfd2Fsc2VuZGVy ID8KKwkJCQkJR2V0U3RhbmRieUZsdXNoUmVjUHRyKCkgOiBHZXRGbHVzaFJlY1B0cigpKTsK Kwl9CiAKIAkvKiBJZiBFbmRSZWNQdHIgaXMgc3RpbGwgcGFzdCBvdXIgZmx1c2hQdHIsIGl0 IG1lYW5zIHdlIGNhdWdodCB1cC4gKi8KIAlpZiAobG9naWNhbF9kZWNvZGluZ19jdHgtPnJl YWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggNzVlYzEw NzNiZC4uMTZjYTAwMzFkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cu aAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0zMjQsNiArMzI0LDcgQEAg ZXh0ZXJuIFNpemUgWExPR1NobWVtU2l6ZSh2b2lkKTsKIGV4dGVybiB2b2lkIFhMT0dTaG1l bUluaXQodm9pZCk7CiBleHRlcm4gdm9pZCBCb290U3RyYXBYTE9HKHZvaWQpOwogZXh0ZXJu IHZvaWQgTG9jYWxQcm9jZXNzQ29udHJvbEZpbGUoYm9vbCByZXNldCk7CitleHRlcm4gV2Fs TGV2ZWwgR2V0QWN0aXZlV2FsTGV2ZWwodm9pZCk7CiBleHRlcm4gdm9pZCBTdGFydHVwWExP Ryh2b2lkKTsKIGV4dGVybiB2b2lkIFNodXRkb3duWExPRyhpbnQgY29kZSwgRGF0dW0gYXJn KTsKIGV4dGVybiB2b2lkIEluaXRYTE9HQWNjZXNzKHZvaWQpOwotLSAKMi4xNC41Cgo= --------------E57C3138DCDD77C4B41FB56F Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v9-0002-Add-info-in-WAL-records-in-preparation-for-logica.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v9-0002-Add-info-in-WAL-records-in-preparation-for-logica.pa"; filename*1="tch" RnJvbSA2MWNjNTkwOTgyNWU1MjM5MjI2MTRjNDY0Y2I3M2FlYjRkN2JlOTg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA0IEZlYiAyMDIxIDE2OjIzOjA3ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2OSAyLzVdIEFkZCBpbmZvIGluIFdBTCByZWNvcmRzIGluIHByZXBhcmF0aW9uIGZvciBs b2dpY2FsCiBzbG90IGNvbmZsaWN0IGhhbmRsaW5nLgoKV2hlbiBhIFdBTCByZXBsYXkgb24g c3RhbmRieSBpbmRpY2F0ZXMgdGhhdCBhIGNhdGFsb2cgdGFibGUgdHVwbGUgaXMKdG8gYmUg ZGVsZXRlZCBieSBhbiB4aWQgdGhhdCBpcyBncmVhdGVyIHRoYW4gYSBsb2dpY2FsIHNsb3Qn cwpjYXRhbG9nX3htaW4sIHRoZW4gdGhhdCBtZWFucyB0aGUgc2xvdCdzIGNhdGFsb2dfeG1p biBjb25mbGljdHMgd2l0aAp0aGUgeGlkLCBhbmQgd2UgbmVlZCB0byBoYW5kbGUgdGhlIGNv bmZsaWN0LiAgV2hpbGUgc3Vic2VxdWVudCBjb21taXRzCndpbGwgZG8gdGhlIGFjdHVhbCBj b25mbGljdCBoYW5kbGluZywgdGhpcyBjb21taXQgYWRkcyBhIG5ldyBmaWVsZApvbkNhdGFs b2dUYWJsZSBpbiBzdWNoIFdBTCByZWNvcmRzLCB0aGF0IGlzIHRydWUgZm9yIGNhdGFsb2cg dGFibGVzLApzbyBhcyB0byBhcnJhbmdlIGZvciBjb25mbGljdCBoYW5kbGluZy4KCkFuZHJl cyBGcmV1bmQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jICAgICAgICAg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jICAgICB8ICAy ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jICAgICAgfCAgNCArKy0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jICAgICAgfCAgNCArKystCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMgICAgfCAgMiArKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgIHwgMTAgKysrKysrKy0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgIHwgIDIgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyB8ICAyICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHBhZ2UuYyAgICAgfCAxMiArKysrKysrKystLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgICB8ICA4ICsrKysrKysrCiBzcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgfCAxNiArKysrKysrKysrKysrKysr CiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmggICAgICAgfCAgNiArKystLS0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oICAgICAgICAgICB8ICAzICsrLQogc3Jj L2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggICAgICAgIHwgIDggKysrKysrLS0KIHNyYy9pbmNs dWRlL2FjY2Vzcy9uYnR4bG9nLmggICAgICAgICAgICB8ICAyICsrCiBzcmMvaW5jbHVkZS9h Y2Nlc3Mvc3BneGxvZy5oICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaCAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9yZWwuaCAg ICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysKIDE5IGZpbGVzIGNoYW5nZWQsIDc2IGlu c2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQogIDE1LjMlIHNyYy9iYWNrZW5kL2FjY2Vz cy9naXN0LwogIDIwLjklIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwLwogIDEyLjQlIHNyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvCiAgIDcuNiUgc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC8KICAgNi45JSBzcmMvYmFja2VuZC91dGlscy9jYWNoZS8KICAxOS45JSBzcmMvaW5jbHVk ZS9hY2Nlc3MvCiAgMTQuMiUgc3JjL2luY2x1ZGUvdXRpbHMvCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdC5jCmluZGV4IDA2ODNmNDJjMjUuLmI2ZTYzNDBjM2MgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0LmMKQEAgLTM0OCw3ICszNDgsNyBAQCBnaXN0cGxhY2V0b3BhZ2UoUmVsYXRpb24g cmVsLCBTaXplIGZyZWVzcGFjZSwgR0lTVFNUQVRFICpnaXN0c3RhdGUsCiAJCWZvciAoOyBw dHI7IHB0ciA9IHB0ci0+bmV4dCkKIAkJewogCQkJLyogQWxsb2NhdGUgbmV3IHBhZ2UgKi8K LQkJCXB0ci0+YnVmZmVyID0gZ2lzdE5ld0J1ZmZlcihyZWwpOworCQkJcHRyLT5idWZmZXIg PSBnaXN0TmV3QnVmZmVyKGhlYXBSZWwsIHJlbCk7CiAJCQlHSVNUSW5pdEJ1ZmZlcihwdHIt PmJ1ZmZlciwgKGlzX2xlYWYpID8gRl9MRUFGIDogMCk7CiAJCQlwdHItPnBhZ2UgPSBCdWZm ZXJHZXRQYWdlKHB0ci0+YnVmZmVyKTsKIAkJCXB0ci0+YmxvY2suYmxrbm8gPSBCdWZmZXJH ZXRCbG9ja051bWJlcihwdHItPmJ1ZmZlcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Ri dWlsZC5jCmluZGV4IDEwNTRmNmYxZjIuLjhiMDY0ZjMyYWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3RidWlsZC5jCkBAIC0yOTAsNyArMjkwLDcgQEAgZ2lzdGJ1aWxkKFJlbGF0 aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBJbmRleEluZm8gKmluZGV4SW5mbykKIAkJUGFn ZQkJcGFnZTsKIAogCQkvKiBpbml0aWFsaXplIHRoZSByb290IHBhZ2UgKi8KLQkJYnVmZmVy ID0gZ2lzdE5ld0J1ZmZlcihpbmRleCk7CisJCWJ1ZmZlciA9IGdpc3ROZXdCdWZmZXIoaGVh cCwgaW5kZXgpOwogCQlBc3NlcnQoQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKSA9PSBH SVNUX1JPT1RfQkxLTk8pOwogCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwppbmRleCBjZjUzZGFkNDc0Li40NDZhNjFi Y2E2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKQEAgLTgyMyw3ICs4MjMs NyBAQCBnaXN0Y2hlY2twYWdlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZikKICAqIENhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nIHRoZSBwYWdlIGJ5IGNhbGxpbmcg R0lTVEluaXRCdWZmZXIKICAqLwogQnVmZmVyCi1naXN0TmV3QnVmZmVyKFJlbGF0aW9uIHIp CitnaXN0TmV3QnVmZmVyKFJlbGF0aW9uIGhlYXBSZWwsIFJlbGF0aW9uIHIpCiB7CiAJQnVm ZmVyCQlidWZmZXI7CiAJYm9vbAkJbmVlZExvY2s7CkBAIC04NjcsNyArODY3LDcgQEAgZ2lz dE5ld0J1ZmZlcihSZWxhdGlvbiByKQogCQkJCSAqIHBhZ2UncyBkZWxldGVYaWQuCiAJCQkJ ICovCiAJCQkJaWYgKFhMb2dTdGFuZGJ5SW5mb0FjdGl2ZSgpICYmIFJlbGF0aW9uTmVlZHNX QUwocikpCi0JCQkJCWdpc3RYTG9nUGFnZVJldXNlKHIsIGJsa25vLCBHaXN0UGFnZUdldERl bGV0ZVhpZChwYWdlKSk7CisJCQkJCWdpc3RYTG9nUGFnZVJldXNlKGhlYXBSZWwsIHIsIGJs a25vLCBHaXN0UGFnZUdldERlbGV0ZVhpZChwYWdlKSk7CiAKIAkJCQlyZXR1cm4gYnVmZmVy OwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKaW5kZXggYzFkNGI1ZDRm Mi4uODIyNzFlZjhhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCkBAIC02 MTYsNyArNjE2LDggQEAgZ2lzdFhMb2dBc3NpZ25MU04odm9pZCkKICAqIFdyaXRlIFhMT0cg cmVjb3JkIGFib3V0IHJldXNlIG9mIGEgZGVsZXRlZCBwYWdlLgogICovCiB2b2lkCi1naXN0 WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJh bnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkKQorZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRp b24gaGVhcFJlbCwgUmVsYXRpb24gcmVsLAorCQkJCSAgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1 bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpCiB7CiAJZ2lzdHhsb2dQYWdlUmV1 c2UgeGxyZWNfcmV1c2U7CiAKQEAgLTYyNyw2ICs2MjgsNyBAQCBnaXN0WExvZ1BhZ2VSZXVz ZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBs YXRlc3RSZW1vdgogCSAqLwogCiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLm9u Q2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyho ZWFwUmVsKTsKIAl4bHJlY19yZXVzZS5ub2RlID0gcmVsLT5yZF9ub2RlOwogCXhscmVjX3Jl dXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2UubGF0ZXN0UmVtb3ZlZEZ1bGxYaWQg PSBsYXRlc3RSZW1vdmVkWGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hh c2gvaGFzaGluc2VydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5j CmluZGV4IGQyNTRhMDBiNmEuLjU3MTE5NTJmYzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFz aC9oYXNoaW5zZXJ0LmMKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9o YXNoLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2hhc2hfeGxvZy5oIgorI2luY2x1ZGUgImNhdGFs b2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvYnVmX2ludGVybmFscy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbHdsb2NrLmgiCkBAIC0z OTgsNiArMzk5LDcgQEAgX2hhc2hfdmFjdXVtX29uZV9wYWdlKFJlbGF0aW9uIHJlbCwgUmVs YXRpb24gaHJlbCwgQnVmZmVyIG1ldGFidWYsIEJ1ZmZlciBidWYpCiAJCQl4bF9oYXNoX3Zh Y3V1bV9vbmVfcGFnZSB4bHJlYzsKIAkJCVhMb2dSZWNQdHIJcmVjcHRyOwogCisJCQl4bHJl Yy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rp bmcoaHJlbCk7CiAJCQl4bHJlYy5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVtb3ZlZFhp ZDsKIAkJCXhscmVjLm50dXBsZXMgPSBuZGVsZXRhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jCmluZGV4IDk5MjZlMmJkNTQuLjAyN2MwNDc5MDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCkBAIC03ODA5LDEyICs3ODA5LDEzIEBAIGJvdHRvbXVwX3NvcnRf YW5kX3NocmluayhUTV9JbmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKICAqIHNlZSBjb21tZW50 cyBmb3IgdmFjdXVtX2xvZ19jbGVhbnVwX2luZm8oKS4KICAqLwogWExvZ1JlY1B0cgotbG9n X2hlYXBfY2xlYW51cF9pbmZvKFJlbEZpbGVOb2RlIHJub2RlLCBUcmFuc2FjdGlvbklkIGxh dGVzdFJlbW92ZWRYaWQpCitsb2dfaGVhcF9jbGVhbnVwX2luZm8oUmVsYXRpb24gcmVsLCBU cmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpCiB7CiAJeGxfaGVhcF9jbGVhbnVwX2lu Zm8geGxyZWM7CiAJWExvZ1JlY1B0cglyZWNwdHI7CiAKLQl4bHJlYy5ub2RlID0gcm5vZGU7 CisJeGxyZWMub25DYXRhbG9nVGFibGUgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNh bERlY29kaW5nKHJlbCk7CisJeGxyZWMubm9kZSA9IHJlbC0+cmRfbm9kZTsKIAl4bHJlYy5s YXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVtb3ZlZFhpZDsKIAogCVhMb2dCZWdpbkluc2Vy dCgpOwpAQCAtNzg1MCw2ICs3ODUxLDcgQEAgbG9nX2hlYXBfY2xlYW4oUmVsYXRpb24gcmVs biwgQnVmZmVyIGJ1ZmZlciwKIAkvKiBDYWxsZXIgc2hvdWxkIG5vdCBjYWxsIG1lIG9uIGEg bm9uLVdBTC1sb2dnZWQgcmVsYXRpb24gKi8KIAlBc3NlcnQoUmVsYXRpb25OZWVkc1dBTChy ZWxuKSk7CiAKKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxl SW5Mb2dpY2FsRGVjb2RpbmcocmVsbik7CiAJeGxyZWMubGF0ZXN0UmVtb3ZlZFhpZCA9IGxh dGVzdFJlbW92ZWRYaWQ7CiAJeGxyZWMubnJlZGlyZWN0ZWQgPSBucmVkaXJlY3RlZDsKIAl4 bHJlYy5uZGVhZCA9IG5kZWFkOwpAQCAtNzkwMCw2ICs3OTAyLDcgQEAgbG9nX2hlYXBfZnJl ZXplKFJlbGF0aW9uIHJlbG4sIEJ1ZmZlciBidWZmZXIsIFRyYW5zYWN0aW9uSWQgY3V0b2Zm X3hpZCwKIAkvKiBub3Igd2hlbiB0aGVyZSBhcmUgbm8gdHVwbGVzIHRvIGZyZWV6ZSAqLwog CUFzc2VydChudHVwbGVzID4gMCk7CiAKKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0 aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsbik7CiAJeGxyZWMuY3V0b2Zm X3hpZCA9IGN1dG9mZl94aWQ7CiAJeGxyZWMubnR1cGxlcyA9IG50dXBsZXM7CiAKQEAgLTc5 MzAsNyArNzkzMyw3IEBAIGxvZ19oZWFwX2ZyZWV6ZShSZWxhdGlvbiByZWxuLCBCdWZmZXIg YnVmZmVyLCBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQsCiAgKiBoZWFwX2J1ZmZlciwgaWYg bmVjZXNzYXJ5LgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVO b2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCitsb2df aGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIg dm1fYnVmZmVyLAogCQkJCSBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQsIHVpbnQ4IHZtZmxh Z3MpCiB7CiAJeGxfaGVhcF92aXNpYmxlIHhscmVjOwpAQCAtNzk0MCw2ICs3OTQzLDcgQEAg bG9nX2hlYXBfdmlzaWJsZShSZWxGaWxlTm9kZSBybm9kZSwgQnVmZmVyIGhlYXBfYnVmZmVy LCBCdWZmZXIgdm1fYnVmZmVyLAogCUFzc2VydChCdWZmZXJJc1ZhbGlkKGhlYXBfYnVmZmVy KSk7CiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQodm1fYnVmZmVyKSk7CiAKKwl4bHJlYy5vbkNh dGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVs KTsKIAl4bHJlYy5jdXRvZmZfeGlkID0gY3V0b2ZmX3hpZDsKIAl4bHJlYy5mbGFncyA9IHZt ZmxhZ3M7CiAJWExvZ0JlZ2luSW5zZXJ0KCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKaW5kZXggZjNkMjI2NWZhZC4uYTQyZmYwNGMyNiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNzE4LDcgKzcxOCw3IEBAIHZhY3V1bV9sb2df Y2xlYW51cF9pbmZvKFJlbGF0aW9uIHJlbCwgTFZSZWxTdGF0cyAqdmFjcmVsc3RhdHMpCiAJ ICogTm8gbmVlZCB0byB3cml0ZSB0aGUgcmVjb3JkIGF0IGFsbCB1bmxlc3MgaXQgY29udGFp bnMgYSB2YWxpZCB2YWx1ZQogCSAqLwogCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZCh2YWNy ZWxzdGF0cy0+bGF0ZXN0UmVtb3ZlZFhpZCkpCi0JCSh2b2lkKSBsb2dfaGVhcF9jbGVhbnVw X2luZm8ocmVsLT5yZF9ub2RlLCB2YWNyZWxzdGF0cy0+bGF0ZXN0UmVtb3ZlZFhpZCk7CisJ CSh2b2lkKSBsb2dfaGVhcF9jbGVhbnVwX2luZm8ocmVsLCB2YWNyZWxzdGF0cy0+bGF0ZXN0 UmVtb3ZlZFhpZCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmls aXR5bWFwLmMKaW5kZXggZTE5OGRmNjVkOC4uNmU4OWEwOGM1MiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMjgyLDcgKzI4Miw3IEBAIHZpc2li aWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVy IGhlYXBCdWYsCiAJCQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChyZWNwdHIpKQogCQkJewog CQkJCUFzc2VydCghSW5SZWNvdmVyeSk7Ci0JCQkJcmVjcHRyID0gbG9nX2hlYXBfdmlzaWJs ZShyZWwtPnJkX25vZGUsIGhlYXBCdWYsIHZtQnVmLAorCQkJCXJlY3B0ciA9IGxvZ19oZWFw X3Zpc2libGUocmVsLCBoZWFwQnVmLCB2bUJ1ZiwKIAkJCQkJCQkJCQkgIGN1dG9mZl94aWQs IGZsYWdzKTsKIAogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHBhZ2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCmlu ZGV4IDQxZGMzZjhmZGYuLjhmNzgxY2ZjYTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0cGFnZS5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9pbmRleGZz bS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJl ZGljYXRlLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvbWVtZGVidWcuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAKQEAgLTQxLDcg KzQyLDggQEAgc3RhdGljIHZvaWQgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9uIHJlbCwg QmxvY2tOdW1iZXIgYmxrbm8sCiBzdGF0aWMgdm9pZCBfYnRfZGVsaXRlbXNfZGVsZXRlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJVHJhbnNhY3Rpb25JZCBsYXRlc3RS ZW1vdmVkWGlkLAogCQkJCQkJCQlPZmZzZXROdW1iZXIgKmRlbGV0YWJsZSwgaW50IG5kZWxl dGFibGUsCi0JCQkJCQkJCUJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0 YWJsZSk7CisJCQkJCQkJCUJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0 YWJsZSwKKwkJCQkJCQkJUmVsYXRpb24gaGVhcFJlbCk7CiBzdGF0aWMgY2hhciAqX2J0X2Rl bGl0ZW1zX3VwZGF0ZShCVFZhY3V1bVBvc3RpbmcgKnVwZGF0YWJsZSwgaW50IG51cGRhdGFi bGUsCiAJCQkJCQkJCSBPZmZzZXROdW1iZXIgKnVwZGF0ZWRvZmZzZXRzLAogCQkJCQkJCQkg U2l6ZSAqdXBkYXRlZGJ1ZmxlbiwgYm9vbCBuZWVkc3dhbCk7CkBAIC03NzMsNiArNzc1LDcg QEAgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8s IFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFgKIAkgKi8KIAogCS8qIFhMT0cgc3R1ZmYg Ki8KKwl4bHJlY19yZXVzZS5vbkNhdGFsb2dUYWJsZSA9IGdldF9yZWxfbG9naWNhbF9jYXRh bG9nKHJlbC0+cmRfaW5kZXgtPmluZHJlbGlkKTsKIAl4bHJlY19yZXVzZS5ub2RlID0gcmVs LT5yZF9ub2RlOwogCXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2Uu bGF0ZXN0UmVtb3ZlZFhpZCA9IGxhdGVzdFJlbW92ZWRYaWQ7CkBAIC0xMjU5LDcgKzEyNjIs OCBAQCBfYnRfZGVsaXRlbXNfdmFjdXVtKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIHN0 YXRpYyB2b2lkCiBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwgVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAogCQkJCQlPZmZzZXROdW1iZXIg KmRlbGV0YWJsZSwgaW50IG5kZWxldGFibGUsCi0JCQkJCUJUVmFjdXVtUG9zdGluZyAqdXBk YXRhYmxlLCBpbnQgbnVwZGF0YWJsZSkKKwkJCQkJQlRWYWN1dW1Qb3N0aW5nICp1cGRhdGFi bGUsIGludCBudXBkYXRhYmxlLAorCQkJCQlSZWxhdGlvbiBoZWFwUmVsKQogewogCVBhZ2UJ CXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1Zik7CiAJQlRQYWdlT3BhcXVlIG9wYXF1ZTsKQEAg LTEzMjEsNiArMTMyNSw4IEBAIF9idF9kZWxpdGVtc19kZWxldGUoUmVsYXRpb24gcmVsLCBC dWZmZXIgYnVmLCBUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsCiAJCVhMb2dSZWNQ dHIJcmVjcHRyOwogCQl4bF9idHJlZV9kZWxldGUgeGxyZWNfZGVsZXRlOwogCisJCXhscmVj X2RlbGV0ZS5vbkNhdGFsb2dUYWJsZSA9CisJCQlSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9n aWNhbERlY29kaW5nKGhlYXBSZWwpOwogCQl4bHJlY19kZWxldGUubGF0ZXN0UmVtb3ZlZFhp ZCA9IGxhdGVzdFJlbW92ZWRYaWQ7CiAJCXhscmVjX2RlbGV0ZS5uZGVsZXRlZCA9IG5kZWxl dGFibGU7CiAJCXhscmVjX2RlbGV0ZS5udXBkYXRlZCA9IG51cGRhdGFibGU7CkBAIC0xNjQ4 LDcgKzE2NTQsNyBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlX2NoZWNrKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGJ1ZiwgUmVsYXRpb24gaGVhcFJlbCwKIAogCS8qIFBoeXNpY2FsbHkgZGVsZXRl IHR1cGxlcyAob3IgVElEcykgdXNpbmcgZGVsZXRhYmxlIChvciB1cGRhdGFibGUpICovCiAJ X2J0X2RlbGl0ZW1zX2RlbGV0ZShyZWwsIGJ1ZiwgbGF0ZXN0UmVtb3ZlZFhpZCwgZGVsZXRh YmxlLCBuZGVsZXRhYmxlLAotCQkJCQkJdXBkYXRhYmxlLCBudXBkYXRhYmxlKTsKKwkJCQkJ CXVwZGF0YWJsZSwgbnVwZGF0YWJsZSwgaGVhcFJlbCk7CiAKIAkvKiBiZSB0aWR5ICovCiAJ Zm9yIChpbnQgaSA9IDA7IGkgPCBudXBkYXRhYmxlOyBpKyspCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRleCAwZDAyYTAyMjIyLi4zOTc2NDhkMmFhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKQEAgLTI3LDYgKzI3LDcgQEAK ICNpbmNsdWRlICJzdG9yYWdlL2luZGV4ZnNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdy LmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgogCiAKIC8qIEVudHJ5IGluIHBlbmRpbmctbGlzdCBvZiBUSURzIHdlIG5lZWQg dG8gcmV2aXNpdCAqLwpAQCAtNTAzLDYgKzUwNCwxMyBAQCB2YWN1dW1SZWRpcmVjdEFuZFBs YWNlaG9sZGVyKFJlbGF0aW9uIGluZGV4LCBCdWZmZXIgYnVmZmVyKQogCXNwZ3hsb2dWYWN1 dW1SZWRpcmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsKIAorCS8qCisJ ICogVGhlcmUgaXMgbm8gY2hhbmNlIG9mIGVuZGxlc3MgcmVjdXJzaW9uIGV2ZW4gd2hlbiB3 ZSBhcmUgZG9pbmcgY2F0YWxvZworCSAqIGFjY2VzZXMgaGVyZTsgYmVjYXVzZSwgc3BnaXN0 IGlzIG5ldmVyIHVzZWQgZm9yIGNhdGFsb2dzLiBDaGVjaworCSAqIGNvbW1lbnRzIGluIFJl bGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoKS4KKwkgKi8KKwl4bHJlYy5v bkNhdGFsb2dUYWJsZSA9IGdldF9yZWxfbG9naWNhbF9jYXRhbG9nKGluZGV4LT5yZF9pbmRl eC0+aW5kcmVsaWQpOworCiAJeGxyZWMublRvUGxhY2Vob2xkZXIgPSAwOwogCXhscmVjLm5l d2VzdFJlZGlyZWN0WGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggODVjNDU4YmM0Ni4uNjVjYzM3ODk0NyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTE4LDcgKzE4LDkgQEAKICNp bmNsdWRlICJhY2Nlc3MvaGFzaC5oIgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMu aCIKICNpbmNsdWRlICJhY2Nlc3MvbmJ0cmVlLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxl LmgiCiAjaW5jbHVkZSAiYm9vdHN0cmFwL2Jvb3RzdHJhcC5oIgorI2luY2x1ZGUgImNhdGFs b2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgpAQCAt MjAzNSw2ICsyMDM3LDIwIEBAIGdldF9yZWxfcGVyc2lzdGVuY2UoT2lkIHJlbGlkKQogCXJl dHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wKK2dldF9yZWxfbG9naWNhbF9jYXRhbG9nKE9pZCBy ZWxpZCkKK3sKKwlib29sCXJlczsKKwlSZWxhdGlvbiByZWw7CisKKwkvKiBhc3N1bWUgcHJl dmlvdXNseSBsb2NrZWQgKi8KKwlyZWwgPSB0YWJsZV9vcGVuKHJlbGlkLCBOb0xvY2spOwor CXJlcyA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKKwl0 YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlyZXR1cm4gcmVzOworfQorCiAKIC8qCQkJ CS0tLS0tLS0tLS0gVFJBTlNGT1JNIENBQ0hFIC0tLS0tLS0tLS0JCQkJCQkgKi8KIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCmluZGV4IDU1M2QzNjRlMmQuLmEwZjQwMTU1NTYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmgKQEAgLTQ0MCw4ICs0NDAsOCBAQCBl eHRlcm4gWExvZ1JlY1B0ciBnaXN0WExvZ1BhZ2VEZWxldGUoQnVmZmVyIGJ1ZmZlciwKIAkJ CQkJCQkJCSBGdWxsVHJhbnNhY3Rpb25JZCB4aWQsIEJ1ZmZlciBwYXJlbnRCdWZmZXIsCiAJ CQkJCQkJCQkgT2Zmc2V0TnVtYmVyIGRvd25saW5rT2Zmc2V0KTsKIAotZXh0ZXJuIHZvaWQg Z2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBibGtubywKLQkJ CQkJCQkgIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpOworZXh0ZXJuIHZv aWQgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRpb24gcmVsLAor CQkJCSAgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92 ZWRYaWQpOwogCiBleHRlcm4gWExvZ1JlY1B0ciBnaXN0WExvZ1VwZGF0ZShCdWZmZXIgYnVm ZmVyLAogCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICp0b2RlbGV0ZSwgaW50IG50b2RlbGV0ZSwK QEAgLTQ4NSw3ICs0ODUsNyBAQCBleHRlcm4gYm9vbCBnaXN0cHJvcGVydHkoT2lkIGluZGV4 X29pZCwgaW50IGF0dG5vLAogZXh0ZXJuIGJvb2wgZ2lzdGZpdHBhZ2UoSW5kZXhUdXBsZSAq aXR2ZWMsIGludCBsZW4pOwogZXh0ZXJuIGJvb2wgZ2lzdG5vc3BhY2UoUGFnZSBwYWdlLCBJ bmRleFR1cGxlICppdHZlYywgaW50IGxlbiwgT2Zmc2V0TnVtYmVyIHRvZGVsZXRlLCBTaXpl IGZyZWVzcGFjZSk7CiBleHRlcm4gdm9pZCBnaXN0Y2hlY2twYWdlKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGJ1Zik7Ci1leHRlcm4gQnVmZmVyIGdpc3ROZXdCdWZmZXIoUmVsYXRpb24gcik7 CitleHRlcm4gQnVmZmVyIGdpc3ROZXdCdWZmZXIoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRp b24gcik7CiBleHRlcm4gYm9vbCBnaXN0UGFnZVJlY3ljbGFibGUoUGFnZSBwYWdlKTsKIGV4 dGVybiB2b2lkIGdpc3RmaWxsYnVmZmVyKFBhZ2UgcGFnZSwgSW5kZXhUdXBsZSAqaXR1cCwg aW50IGxlbiwKIAkJCQkJCSAgIE9mZnNldE51bWJlciBvZmYpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhs b2cuaAppbmRleCBmZDUxNDRmMjU4Li43Mzk5OWRkYzcwIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhs b2cuaApAQCAtNDksOSArNDksOSBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VVcGRh dGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dEZWxldGUKIHsKKwlib29sCQlvbkNh dGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWludDE2 CQludG9kZWxldGU7CQkvKiBudW1iZXIgb2YgZGVsZXRlZCBvZmZzZXRzICovCi0KIAkvKgog CSAqIEluIHBheWxvYWQgb2YgYmxrIDAgOiB0b2RlbGV0ZSBPZmZzZXROdW1iZXJzCiAJICov CkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZURlbGV0ZQog ICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VSZXVzZQogeworCWJvb2wJCW9uQ2F0 YWxvZ1RhYmxlOwogCVJlbEZpbGVOb2RlIG5vZGU7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJ RnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZEZ1bGxYaWQ7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFz aF94bG9nLmgKaW5kZXggNDM1M2EzMmRiYi4uOTRjMzI5MmMxZSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9o YXNoX3hsb2cuaApAQCAtMjUwLDYgKzI1MCw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hhc2hf aW5pdF9iaXRtYXBfcGFnZQogICovCiB0eXBlZGVmIHN0cnVjdCB4bF9oYXNoX3ZhY3V1bV9v bmVfcGFnZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgbGF0 ZXN0UmVtb3ZlZFhpZDsKIAlpbnQJCQludHVwbGVzOwogCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1f eGxvZy5oCmluZGV4IDE3OGQ0OTcxMGEuLjZjNGMyNmMyZmUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW1feGxvZy5oCkBAIC0yMzksNiArMjM5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVh cF91cGRhdGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9jbGVhbgogeworCWJvb2wJ CW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAl1 aW50MTYJCW5yZWRpcmVjdGVkOwogCXVpbnQxNgkJbmRlYWQ7CkBAIC0yNTQsNiArMjU1LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9jbGVhbgogICovCiB0eXBlZGVmIHN0cnVjdCB4 bF9oZWFwX2NsZWFudXBfaW5mbwogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVJlbEZp bGVOb2RlIG5vZGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogfSB4bF9o ZWFwX2NsZWFudXBfaW5mbzsKQEAgLTMzNCw2ICszMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCB4 bF9oZWFwX2ZyZWV6ZV90dXBsZQogICovCiB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2ZyZWV6 ZV9wYWdlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rpb25JZCBjdXRv ZmZfeGlkOwogCXVpbnQxNgkJbnR1cGxlczsKIH0geGxfaGVhcF9mcmVlemVfcGFnZTsKQEAg LTM0OCw2ICszNTEsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2ZyZWV6ZV9wYWdlCiAg Ki8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfdmlzaWJsZQogeworCWJvb2wJCW9uQ2F0YWxv Z1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZDsKIAl1aW50OAkJZmxhZ3M7CiB9 IHhsX2hlYXBfdmlzaWJsZTsKQEAgLTM5Nyw3ICs0MDEsNyBAQCBleHRlcm4gdm9pZCBoZWFw Ml9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBleHRl cm4gY29uc3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7CiBleHRlcm4gdm9p ZCBoZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0ZSAqcik7CiAKLWV4 dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhSZWxGaWxlTm9kZSBybm9k ZSwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhSZWxhdGlvbiBy ZWwsCiAJCQkJCQkJCQkJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkKTsKIGV4dGVy biBYTG9nUmVjUHRyIGxvZ19oZWFwX2NsZWFuKFJlbGF0aW9uIHJlbG4sIEJ1ZmZlciBidWZm ZXIsCiAJCQkJCQkJCSBPZmZzZXROdW1iZXIgKnJlZGlyZWN0ZWQsIGludCBucmVkaXJlY3Rl ZCwKQEAgLTQxNiw3ICs0MjAsNyBAQCBleHRlcm4gYm9vbCBoZWFwX3ByZXBhcmVfZnJlZXpl X3R1cGxlKEhlYXBUdXBsZUhlYWRlciB0dXBsZSwKIAkJCQkJCQkJCSAgYm9vbCAqdG90YWxs eV9mcm96ZW4pOwogZXh0ZXJuIHZvaWQgaGVhcF9leGVjdXRlX2ZyZWV6ZV90dXBsZShIZWFw VHVwbGVIZWFkZXIgdHVwbGUsCiAJCQkJCQkJCQkgIHhsX2hlYXBfZnJlZXplX3R1cGxlICp4 bHJlY190cCk7Ci1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVO b2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZmZXIsCitleHRlcm4gWExvZ1JlY1B0ciBsb2df aGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAogCQkJCQkJ CQkgICBCdWZmZXIgdm1fYnVmZmVyLCBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQsIHVpbnQ4 IGZsYWdzKTsKIAogI2VuZGlmCQkJCQkJCS8qIEhFQVBBTV9YTE9HX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv bmJ0eGxvZy5oCmluZGV4IDdhZTVjOThjMmIuLjY5OTVkYzI1NTggMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25i dHhsb2cuaApAQCAtMTg1LDYgKzE4NSw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX2Rl ZHVwCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX3JldXNlX3BhZ2UKIHsKKwlib29s CQlvbkNhdGFsb2dUYWJsZTsKIAlSZWxGaWxlTm9kZSBub2RlOwogCUJsb2NrTnVtYmVyIGJs b2NrOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKQEAgLTIzMiw2ICsyMzMs NyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV92YWN1dW0KIAogdHlwZWRlZiBzdHJ1Y3Qg eGxfYnRyZWVfZGVsZXRlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rp b25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCXVpbnQxNgkJbmRlbGV0ZWQ7CiAJdWludDE2CQlu dXBkYXRlZDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCmluZGV4IDY5NDA1YjU3NTAuLjA2YjkxZjRk MDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaApAQCAtMjM3LDYgKzIzNyw3IEBAIHR5cGVkZWYg c3RydWN0IHNwZ3hsb2dWYWN1dW1Sb290CiAKIHR5cGVkZWYgc3RydWN0IHNwZ3hsb2dWYWN1 dW1SZWRpcmVjdAogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCXVpbnQxNgkJblRvUGxh Y2Vob2xkZXI7IC8qIG51bWJlciBvZiByZWRpcmVjdHMgdG8gbWFrZSBwbGFjZWhvbGRlcnMg Ki8KIAlPZmZzZXROdW1iZXIgZmlyc3RQbGFjZWhvbGRlcjsJLyogZmlyc3QgcGxhY2Vob2xk ZXIgdHVwbGUgdG8gcmVtb3ZlICovCiAJVHJhbnNhY3Rpb25JZCBuZXdlc3RSZWRpcmVjdFhp ZDsJLyogbmV3ZXN0IFhJRCBvZiByZW1vdmVkIHJlZGlyZWN0cyAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaAppbmRleCBhZTcyMGMxNDk2Li44ZmQzMTI5ZWFlIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIGV4dGVybiBjaGFyIGdldF9yZWxfcmVsa2lu ZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgZ2V0X3JlbF9yZWxpc3BhcnRpdGlvbihPaWQg cmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3RhYmxlc3BhY2UoT2lkIHJlbGlkKTsKIGV4 dGVybiBjaGFyIGdldF9yZWxfcGVyc2lzdGVuY2UoT2lkIHJlbGlkKTsKK2V4dGVybiBib29s IGdldF9yZWxfbG9naWNhbF9jYXRhbG9nKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF90 cmFuc2Zvcm1fZnJvbXNxbChPaWQgdHlwaWQsIE9pZCBsYW5naWQsIExpc3QgKnRyZnR5cGVz KTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV90b3NxbChPaWQgdHlwaWQsIE9pZCBsYW5n aWQsIExpc3QgKnRyZnR5cGVzKTsKIGV4dGVybiBib29sIGdldF90eXBpc2RlZmluZWQoT2lk IHR5cGlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggMTBiNjM5ODJjMC4uZjgwMDZhNzEyNSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv cmVsLmgKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90dXBkZXNjLmgi CiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19pbmRleC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKQEAgLTM0 NSw2ICszNDYsOSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlvbnMKICAqIFJlbGF0aW9u SXNVc2VkQXNDYXRhbG9nVGFibGUKICAqCQlSZXR1cm5zIHdoZXRoZXIgdGhlIHJlbGF0aW9u IHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgY2F0YWxvZyB0YWJsZQogICoJCWZyb20gdGhlIHBv diBvZiBsb2dpY2FsIGRlY29kaW5nLiAgTm90ZSBtdWx0aXBsZSBldmFsIG9mIGFyZ3VtZW50 IQorICoJCVRoaXMgZGVmaW5pdGlvbiBzaG91bGQgbm90IGludm9rZSBhbnl0aGluZyB0aGF0 IHBlcmZvcm1zIGNhdGFsb2cKKyAqCQlhY2Nlc3M7IG90aGVyd2lzZSBpdCBtYXkgY2F1c2Ug aW5maW5pdGUgcmVjdXJzaW9uLiBDaGVjayB0aGUgY29tbWVudHMKKyAqCQlpbiBSZWxhdGlv bklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKCkgZm9yIGRldGFpbHMuCiAgKi8KICNk ZWZpbmUgUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikJXAogCSgocmVs YXRpb24pLT5yZF9vcHRpb25zICYmIFwKQEAgLTYxNiw2ICs2MjAsMTEgQEAgdHlwZWRlZiBz dHJ1Y3QgVmlld09wdGlvbnMKICAqIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcKICAqCQlUcnVlIGlmIHdlIG5lZWQgdG8gbG9nIGVub3VnaCBpbmZvcm1hdGlvbiB0 byBoYXZlIGFjY2VzcyB2aWEKICAqCQlkZWNvZGluZyBzbmFwc2hvdC4KKyAqCQlUaGlzIGRl ZmluaXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55dGhpbmcgdGhhdCBwZXJmb3JtcyBjYXRh bG9nCisgKgkJYWNjZXNzLiBPdGhlcndpc2UsIGUuZy4gbG9nZ2luZyBhIFdBTCBlbnRyeSBm b3IgY2F0YWxvZyByZWxhdGlvbiBtYXkKKyAqCQlpbnZva2UgdGhpcyBmdW5jdGlvbiwgd2hp Y2ggd2lsbCBpbiB0dXJuIGRvIGNhdGFsb2cgYWNjZXNzLCB3aGljaCBtYXkKKyAqCQlpbiB0 dXJuIGNhdXNlIGFub3RoZXIgc2ltaWxhciBXQUwgZW50cnkgdG8gYmUgbG9nZ2VkLCBsZWFk aW5nIHRvCisgKgkJaW5maW5pdGUgcmVjdXJzaW9uLgogICovCiAjZGVmaW5lIFJlbGF0aW9u SXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24pIFwKIAkoWExvZ0xvZ2lj YWxJbmZvQWN0aXZlKCkgJiYgXAotLSAKMi4xNC41Cgo= --------------E57C3138DCDD77C4B41FB56F Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v9-0003-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v9-0003-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSBmZjc0MzQ3ZjE5ZmFiNzAyNTMxZGM1OGI2MjAwODBjY2UyMWZkZDdkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA0IEZlYiAyMDIxIDE2OjI0OjM1ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2OSAzLzVdIEhhbmRsZSBsb2dpY2FsIHNsb3QgY29uZmxpY3RzIG9uIHN0YW5kYnkuCgpE dXJpbmcgV0FMIHJlcGxheSBvbiBzdGFuZGJ5LCB3aGVuIHNsb3QgY29uZmxpY3QgaXMgaWRl bnRpZmllZCwKZHJvcCBzdWNoIHNsb3RzLiBBbHNvIGRvIHRoZSBzYW1lIHRoaW5nIGlmIHdh bF9sZXZlbCBvbiBtYXN0ZXIKaXMgcmVkdWNlZCB0byBiZWxvdyBsb2dpY2FsIGFuZCB0aGVy ZSBhcmUgZXhpc3RpbmcgbG9naWNhbCBzbG90cwpvbiBzdGFuZGJ5LiBJbnRyb2R1Y2UgYSBu ZXcgUHJvY1NpZ25hbFJlYXNvbiB2YWx1ZSBmb3Igc2xvdApjb25mbGljdCByZWNvdmVyeS4g QXJyYW5nZSBmb3IgYSBuZXcgcGdfc3RhdF9nZXRfYWN0aXZpdHkgZmllbGQ6CmNvbmZsX2xv Z2ljYWxzbG90LgoKQW1pdCBLaGFuZGVrYXIsIHJldmlld2VkIGJ5IEFuZHJlcyBGcmV1bmQu Ci0tLQogZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCAgICAgICAgIHwgIDEwICsrCiBz cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jICAgfCAgIDQgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jICB8ICAgMyArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMgICAgIHwgIDEzICsrLQogc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR4bG9nLmMgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3Nw Z3hsb2cuYyAgfCAgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAg IHwgIDE0ICsrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIHwgICAx ICsKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgICAgICB8ICAgNCArCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgfCAxODggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJh eS5jICB8ICAgNCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgfCAg IDMgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jICAgIHwgICA3ICstCiBz cmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgfCAgMjIgKysrKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgIHwgIDE2ICsrKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5o ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90 LmggICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oICAgICAgICB8ICAgMiAr LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgIHwgICAxICsKIDIxIGZp bGVzIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogICAzLjAl IGRvYy9zcmMvc2dtbC8KICAgNi44JSBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC8KICAgNi40 JSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICAgNi4yJSBzcmMvYmFja2VuZC9hY2Nl c3MvCiAgNTIuNyUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDQuNiUgc3JjL2JhY2tl bmQvc3RvcmFnZS9pcGMvCiAgIDguNSUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy4zJSBzcmMv YmFja2VuZC91dGlscy9hZHQvCiAgIDUuNCUgc3JjL2luY2x1ZGUvCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5n LnNnbWwKaW5kZXggYzYwMmVlNDQyNy4uNWZlZGU1Njg0YyAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5z Z21sCkBAIC0zOTIzLDYgKzM5MjMsMTYgQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBl LCB3YWl0X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50IGkK ICAgICAgICBkZWFkbG9ja3MKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ Y29uZmxfbG9naWNhbHNsb3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgcXVlcmllcyBp biB0aGlzIGRhdGFiYXNlIHRoYXQgaGF2ZSBiZWVuIGNhbmNlbGVkIGR1ZSB0bworICAgICAg IGxvZ2ljYWwgc2xvdHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAg ICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dp c3QvZ2lzdHhsb2cuYwppbmRleCA4MjI3MWVmOGE5Li4wZmY1MDNiZmI2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5NSw3ICsxOTUsOCBAQCBnaXN0UmVkb0Rl bGV0ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVjR2V0Qmxv Y2tUYWcocmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwpOwogCi0JCVJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0UmVtb3ZlZFhpZCwgcm5v ZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPmxh dGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nVGFibGUsIHJu b2RlKTsKIAl9CiAKIAlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMCwgJmJ1 ZmZlcikgPT0gQkxLX05FRURTX1JFRE8pCkBAIC00MTMsNiArNDE0LDcgQEAgZ2lzdFJlZG9Q YWdlUmV1c2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJCWxhdGVzdFJlbW92ZWRY aWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQobGF0ZXN0UmVtb3ZlZEZ1bGxYaWQpOwog CQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhp ZCwKKwkJCQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwKIAkJCQkJCQkJCQkJCXhs cmVjLT5ub2RlKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMK aW5kZXggMDJkOWU2Y2RmZC4uYjFmZjU5NmViNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaF94bG9nLmMKQEAgLTEwMDIsNyArMTAwMiw4IEBAIGhhc2hfeGxvZ192YWN1dW1fb25l X3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVJlbEZpbGVOb2RlIHJub2RlOwog CiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7 Ci0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0 UmVtb3ZlZFhpZCwgcm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh4bGRhdGEtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhsZGF0YS0+b25D YXRhbG9nVGFibGUsIHJub2RlKTsKIAl9CiAKIAlhY3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZv clJlZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9OT1JNQUwsIHRydWUsICZidWZmZXIpOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCAwMjdjMDQ3OTA0Li5iNmQ4ZWZmYzAz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtODM2Nyw3ICs4MzY3LDggQEAg aGVhcF94bG9nX2NsZWFudXBfaW5mbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAl4bF9o ZWFwX2NsZWFudXBfaW5mbyAqeGxyZWMgPSAoeGxfaGVhcF9jbGVhbnVwX2luZm8gKikgWExv Z1JlY0dldERhdGEocmVjb3JkKTsKIAogCWlmIChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVS ZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLCB4 bHJlYy0+bm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs cmVjLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFi bGUsIHhscmVjLT5ub2RlKTsKIAogCS8qCiAJICogQWN0dWFsIG9wZXJhdGlvbiBpcyBhIG5v LW9wLiBSZWNvcmQgdHlwZSBleGlzdHMgdG8gcHJvdmlkZSBhIG1lYW5zIGZvcgpAQCAtODQw Myw3ICs4NDA0LDggQEAgaGVhcF94bG9nX2NsZWFuKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCSAqIGxhdGVzdFJlbW92ZWRYaWQgaXMgaW52YWxpZCwgc2tpcCBjb25mbGljdCBwcm9j ZXNzaW5nLgogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkgJiYgVHJhbnNhY3Rpb25JZElzVmFs aWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQpKQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGlj dFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwgcm5vZGUpOworCQlSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhp ZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAKIAkvKgog CSAqIElmIHdlIGhhdmUgYSBmdWxsLXBhZ2UgaW1hZ2UsIHJlc3RvcmUgaXQgKHVzaW5nIGEg Y2xlYW51cCBsb2NrKSBhbmQKQEAgLTg0OTksNyArODUwMSw5IEBAIGhlYXBfeGxvZ192aXNp YmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqIHJhdGhlciB0aGFuIGtpbGxpbmcg dGhlIHRyYW5zYWN0aW9uIG91dHJpZ2h0LgogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkpCi0J CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5jdXRvZmZfeGlk LCBybm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVj LT5jdXRvZmZfeGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsCisJCQkJ CQkJCQkJCXJub2RlKTsKIAogCS8qCiAJICogUmVhZCB0aGUgaGVhcCBwYWdlLCBpZiBpdCBz dGlsbCBleGlzdHMuIElmIHRoZSBoZWFwIGZpbGUgaGFzIGRyb3BwZWQgb3IKQEAgLTg2MzYs NyArODY0MCw4IEBAIGhlYXBfeGxvZ19mcmVlemVfcGFnZShYTG9nUmVhZGVyU3RhdGUgKnJl Y29yZCkKIAkJVHJhbnNhY3Rpb25JZFJldHJlYXQobGF0ZXN0UmVtb3ZlZFhpZCk7CiAKIAkJ WExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJub2RlLCBOVUxMLCBOVUxMKTsKLQkJ UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhpZCwg cm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChsYXRlc3RS ZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsIHJub2RlKTsK IAl9CiAKIAlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMCwgJmJ1ZmZlcikg PT0gQkxLX05FRURTX1JFRE8pCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHhsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCmlu ZGV4IGMxZDU3OGNjMDEuLjJhNjFlMDIzNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0eGxvZy5jCkBAIC02NjksNyArNjY5LDggQEAgYnRyZWVfeGxvZ19kZWxldGUoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwg JnJub2RlLCBOVUxMLCBOVUxMKTsKIAotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhT bmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwgcm5vZGUpOworCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJ CQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJLyoKQEAg LTk4MSw2ICs5ODIsNyBAQCBidHJlZV94bG9nX3JldXNlX3BhZ2UoWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpCiAJaWYgKEluSG90U3RhbmRieSkKIAl7CiAJCVJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJ CQl4bHJlYy0+b25DYXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJCXhscmVjLT5ub2RlKTsKIAl9 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jCmluZGV4IGQ0MGM3YjU4Nzcu LjFhNWM4OTU5YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3Bn eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jCkBAIC04 ODEsNiArODgxLDcgQEAgc3BnUmVkb1ZhY3V1bVJlZGlyZWN0KFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCiAJCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmbm9kZSwgTlVM TCwgTlVMTCk7CiAJCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRh dGEtPm5ld2VzdFJlZGlyZWN0WGlkLAorCQkJCQkJCQkJCQkJeGxkYXRhLT5vbkNhdGFsb2dU YWJsZSwKIAkJCQkJCQkJCQkJCW5vZGUpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCmluZGV4IDg1NmI4NDEyZTcuLjE2OTY1NTdjZmIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMKQEAgLTEwMzA5LDYgKzEwMzA5LDIwIEBAIHhsb2dfcmVkbyhY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVXBkYXRlIG91ciBjb3B5IG9mIHRoZSBw YXJhbWV0ZXJzIGluIHBnX2NvbnRyb2wgKi8KIAkJbWVtY3B5KCZ4bHJlYywgWExvZ1JlY0dl dERhdGEocmVjb3JkKSwgc2l6ZW9mKHhsX3BhcmFtZXRlcl9jaGFuZ2UpKTsKIAorCQkvKgor CQkgKiBEcm9wIGxvZ2ljYWwgc2xvdHMgaWYgd2UgYXJlIGluIGhvdCBzdGFuZGJ5IGFuZCB0 aGUgcHJpbWFyeSBkb2VzIG5vdAorCQkgKiBoYXZlIGEgV0FMIGxldmVsIHN1ZmZpY2llbnQg Zm9yIGxvZ2ljYWwgZGVjb2RpbmcuIE5vIG5lZWQgdG8gc2VhcmNoCisJCSAqIGZvciBwb3Rl bnRpYWxseSBjb25mbGljdGluZyBsb2dpY2FsbHkgc2xvdHMgaWYgc3RhbmRieSBpcyBydW5u aW5nCisJCSAqIHdpdGggd2FsX2xldmVsIGxvd2VyIHRoYW4gbG9naWNhbCwgYmVjYXVzZSBp biB0aGF0IGNhc2UsIHdlIHdvdWxkCisJCSAqIGhhdmUgZWl0aGVyIGRpc2FsbG93ZWQgY3Jl YXRpb24gb2YgbG9naWNhbCBzbG90cyBvciBkcm9wcGVkIGV4aXN0aW5nCisJCSAqIG9uZXMu CisJCSAqLworCQlpZiAoSW5SZWNvdmVyeSAmJiBJbkhvdFN0YW5kYnkgJiYKKwkJCXhscmVj LndhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMICYmCisJCQl3YWxfbGV2ZWwgPj0gV0FM X0xFVkVMX0xPR0lDQUwpCisJCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhMb2dpY2Fs U2xvdHMoSW52YWxpZE9pZCwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCisJCQkJZ2V0dGV4dF9u b29wKCJMb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgd2FsX2xldmVsID49 IGxvZ2ljYWwgb24gbWFzdGVyLiIpKTsKKwogCQlMV0xvY2tBY3F1aXJlKENvbnRyb2xGaWxl TG9jaywgTFdfRVhDTFVTSVZFKTsKIAkJQ29udHJvbEZpbGUtPk1heENvbm5lY3Rpb25zID0g eGxyZWMuTWF4Q29ubmVjdGlvbnM7CiAJCUNvbnRyb2xGaWxlLT5tYXhfd29ya2VyX3Byb2Nl c3NlcyA9IHhscmVjLm1heF93b3JrZXJfcHJvY2Vzc2VzOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCmluZGV4IGZhNThhZmQ5ZDcuLmQ4ZjYwNmVkNDkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTk0NSw2ICs5NDUsNyBAQCBDUkVB VEUgVklFVyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAgICAgICAgICAgcGdf c3RhdF9nZXRfZGJfY29uZmxpY3RfdGFibGVzcGFjZShELm9pZCkgQVMgY29uZmxfdGFibGVz cGFjZSwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soRC5vaWQp IEFTIGNvbmZsX2xvY2ssCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9z bmFwc2hvdChELm9pZCkgQVMgY29uZmxfc25hcHNob3QsCisgICAgICAgICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChELm9pZCkgQVMgY29uZmxfbG9naWNhbHNs b3QsCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4oRC5v aWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soRC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrCiAgICAg RlJPTSBwZ19kYXRhYmFzZSBEOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKaW5kZXggZjc1 YjUyNzE5ZC4uY2ZjMDc4ODczZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCkBAIC01 MDY4LDYgKzUwNjgsNyBAQCByZXNldF9kYmVudHJ5X2NvdW50ZXJzKFBnU3RhdF9TdGF0REJF bnRyeSAqZGJlbnRyeSkKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X3RhYmxlc3BhY2UgPSAwOwog CWRiZW50cnktPm5fY29uZmxpY3RfbG9jayA9IDA7CiAJZGJlbnRyeS0+bl9jb25mbGljdF9z bmFwc2hvdCA9IDA7CisJZGJlbnRyeS0+bl9jb25mbGljdF9sb2dpY2Fsc2xvdCA9IDA7CiAJ ZGJlbnRyeS0+bl9jb25mbGljdF9idWZmZXJwaW4gPSAwOwogCWRiZW50cnktPm5fY29uZmxp Y3Rfc3RhcnR1cF9kZWFkbG9jayA9IDA7CiAJZGJlbnRyeS0+bl90ZW1wX2ZpbGVzID0gMDsK QEAgLTY5NDMsNiArNjk0NCw5IEBAIHBnc3RhdF9yZWN2X3JlY292ZXJ5Y29uZmxpY3QoUGdT dGF0X01zZ1JlY292ZXJ5Q29uZmxpY3QgKm1zZywgaW50IGxlbikKIAkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJZGJlbnRyeS0+bl9jb25mbGljdF9z bmFwc2hvdCsrOwogCQkJYnJlYWs7CisJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9MT0dJQ0FMU0xPVDoKKwkJCWRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QrKzsK KwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElO OgogCQkJZGJlbnRyeS0+bl9jb25mbGljdF9idWZmZXJwaW4rKzsKIAkJCWJyZWFrOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDhiMDJkMmY0MzcuLjQ3YmUyNGIxMzEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJwZ3N0 YXQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9mZC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvY2FycmF5LmgiCiAjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKQEAgLTEwMyw2ICsxMDQsNyBAQCBzdGF0aWMgaW50IFJlcGxpY2F0 aW9uU2xvdEFjcXVpcmVJbnRlcm5hbChSZXBsaWNhdGlvblNsb3QgKnNsb3QsCiAJCQkJCQkJ CQkJICBjb25zdCBjaGFyICpuYW1lLCBTbG90QWNxdWlyZUJlaGF2aW9yIGJlaGF2aW9yKTsK IHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh2b2lkKTsKIHN0YXRp YyB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BQdHIoUmVwbGljYXRpb25TbG90ICpzbG90KTsK K3N0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BDb25mbGljdGluZyhSZXBsaWNhdGlv blNsb3QgKnNsb3QpOwogCiAvKiBpbnRlcm5hbCBwZXJzaXN0ZW5jeSBmdW5jdGlvbnMgKi8K IHN0YXRpYyB2b2lkIFJlc3RvcmVTbG90RnJvbURpc2soY29uc3QgY2hhciAqbmFtZSk7CkBA IC03MTEsNiArNzEzLDY0IEBAIFJlcGxpY2F0aW9uU2xvdERyb3BQdHIoUmVwbGljYXRpb25T bG90ICpzbG90KQogCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90QWxsb2NhdGlvbkxv Y2spOwogfQogCisvKgorICogUGVybWFuZW50bHkgZHJvcCBhIGNvbmZsaWN0aW5nIHJlcGxp Y2F0aW9uIHNsb3QuIElmIGl0J3MgYWxyZWFkeSBhY3RpdmUgYnkKKyAqIGFub3RoZXIgYmFj a2VuZCwgc2VuZCBpdCBhIHJlY292ZXJ5IGNvbmZsaWN0IHNpZ25hbCwgYW5kIHRoZW4gdHJ5 IGFnYWluLgorICovCitzdGF0aWMgdm9pZAorUmVwbGljYXRpb25TbG90RHJvcENvbmZsaWN0 aW5nKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCkKK3sKKwlwaWRfdAkJYWN0aXZlX3BpZDsKKwlQ R1BST0MJICAgKnByb2M7CisJVmlydHVhbFRyYW5zYWN0aW9uSWQJdnhpZDsKKworCUNvbmRp dGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJnNsb3QtPmFjdGl2ZV9jdik7CisJd2hpbGUg KDEpCisJeworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJYWN0aXZlX3Bp ZCA9IHNsb3QtPmFjdGl2ZV9waWQ7CisJCWlmIChhY3RpdmVfcGlkID09IDApCisJCQlhY3Rp dmVfcGlkID0gc2xvdC0+YWN0aXZlX3BpZCA9IE15UHJvY1BpZDsKKwkJU3BpbkxvY2tSZWxl YXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyogRHJvcCB0aGUgYWNxdWlyZWQgc2xvdCwgdW5s ZXNzIGl0IGlzIGFjcXVpcmVkIGJ5IGFub3RoZXIgYmFja2VuZCAqLworCQlpZiAoYWN0aXZl X3BpZCA9PSBNeVByb2NQaWQpCisJCXsKKwkJCWVsb2coREVCVUcxLCAiYWNxdWlyZWQgY29u ZmxpY3Rpbmcgc2xvdCwgbm93IGRyb3BwaW5nIGl0Iik7CisJCQlSZXBsaWNhdGlvblNsb3RE cm9wUHRyKHNsb3QpOworCQkJYnJlYWs7CisJCX0KKworCQkvKiBTZW5kIHRoZSBvdGhlciBi YWNrZW5kLCBhIGNvbmZsaWN0IHJlY292ZXJ5IHNpZ25hbCAqLworCisJCVNldEludmFsaWRW aXJ0dWFsVHJhbnNhY3Rpb25JZCh2eGlkKTsKKwkJTFdMb2NrQWNxdWlyZShQcm9jQXJyYXlM b2NrLCBMV19TSEFSRUQpOworCQlwcm9jID0gQmFja2VuZFBpZEdldFByb2NXaXRoTG9jayhh Y3RpdmVfcGlkKTsKKwkJaWYgKHByb2MpCisJCQlHRVRfVlhJRF9GUk9NX1BHUFJPQyh2eGlk LCAqcHJvYyk7CisJCUxXTG9ja1JlbGVhc2UoUHJvY0FycmF5TG9jayk7CisKKwkJLyoKKwkJ ICogSWYgY29pbmNpZGVudGx5IHRoYXQgcHJvY2VzcyBmaW5pc2hlZCwgc29tZSBvdGhlciBi YWNrZW5kIG1heQorCQkgKiBhY3F1aXJlIHRoZSBzbG90IGFnYWluLiBTbyBzdGFydCBvdmVy IGFnYWluLgorCQkgKiBOb3RlOiBFdmVuIGlmIHZ4aWQubG9jYWxUcmFuc2FjdGlvbklkIGlz IGludmFsaWQsIHdlIG5lZWQgdG8gY2FuY2VsCisJCSAqIHRoYXQgYmFja2VuZCwgYmVjYXVz ZSB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gbWFrZSBpdCByZWxlYXNlIHRoZQorCQkgKiBz bG90LiBTbyBkb24ndCBib3RoZXIgdG8gdmFsaWRhdGUgdnhpZC5sb2NhbFRyYW5zYWN0aW9u SWQuCisJCSAqLworCQlpZiAodnhpZC5iYWNrZW5kSWQgPT0gSW52YWxpZEJhY2tlbmRJZCkK KwkJCWNvbnRpbnVlOworCisJCWVsb2coREVCVUcxLCAiY2FuY2VsbGluZyBwaWQgJWQgKGJh Y2tlbmRJZDogJWQpIGZvciByZWxlYXNpbmcgc2xvdCIsCisJCQkJCSBhY3RpdmVfcGlkLCB2 eGlkLmJhY2tlbmRJZCk7CisKKwkJQ2FuY2VsVmlydHVhbFRyYW5zYWN0aW9uKHZ4aWQsIFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpOworCQlDb25kaXRpb25WYXJp YWJsZVNsZWVwKCZzbG90LT5hY3RpdmVfY3YsCisJCQkJCQkJICAgV0FJVF9FVkVOVF9SRVBM SUNBVElPTl9TTE9UX0RST1ApOworCX0KKworCUNvbmRpdGlvblZhcmlhYmxlQ2FuY2VsU2xl ZXAoKTsKK30KKwogLyoKICAqIFNlcmlhbGl6ZSB0aGUgY3VycmVudGx5IGFjcXVpcmVkIHNs b3QncyBzdGF0ZSBmcm9tIG1lbW9yeSB0byBkaXNrLCB0aGVyZWJ5CiAgKiBndWFyYW50ZWVp bmcgdGhlIGN1cnJlbnQgc3RhdGUgd2lsbCBzdXJ2aXZlIGEgY3Jhc2guCkBAIC0xMTQxLDEy ICsxMjAxLDI1IEBAIFJlcGxpY2F0aW9uU2xvdFJlc2VydmVXYWwodm9pZCkKIAkJewogCQkJ WExvZ1JlY1B0cglmbHVzaHB0cjsKIAorCQkJLyogc3RhcnQgYXQgY3VycmVudCBpbnNlcnQg cG9zaXRpb24gKi8KKwkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigpOwor CQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCQlzbG90LT5kYXRhLnJlc3Rh cnRfbHNuID0gcmVzdGFydF9sc247CisJCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4 KTsKKwogCQkJLyogbWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0 YXJ0ICovCiAJCQlmbHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgpOwogCiAJCQkvKiBh bmQgbWFrZSBzdXJlIGl0J3MgZnN5bmNlZCB0byBkaXNrICovCiAJCQlYTG9nRmx1c2goZmx1 c2hwdHIpOwogCQl9CisJCWVsc2UKKwkJeworCQkJcmVzdGFydF9sc24gPSBHZXRSZWRvUmVj UHRyKCk7CisJCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJCXNsb3QtPmRh dGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xv dC0+bXV0ZXgpOworCQl9CiAKIAkJLyogcHJldmVudCBXQUwgcmVtb3ZhbCBhcyBmYXN0IGFz IHBvc3NpYmxlICovCiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKTsK QEAgLTExNjQsNiArMTIzNywxMjEgQEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lk KQogCX0KIH0KIAorLyoKKyAqIFJlc29sdmUgcmVjb3ZlcnkgY29uZmxpY3RzIHdpdGggbG9n aWNhbCBzbG90cy4KKyAqCisgKiBXaGVuIHhpZCBpcyB2YWxpZCwgaXQgbWVhbnMgdGhhdCBy b3dzIG9sZGVyIHRoYW4geGlkIG1pZ2h0IGhhdmUgYmVlbgorICogcmVtb3ZlZC4gVGhlcmVm b3JlIHdlIG5lZWQgdG8gZHJvcCBzbG90cyB0aGF0IGRlcGVuZCBvbiBzZWVpbmcgdGhvc2Ug cm93cy4KKyAqIFdoZW4geGlkIGlzIGludmFsaWQsIGRyb3AgYWxsIGxvZ2ljYWwgc2xvdHMu IFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB0aGUKKyAqIG1hc3RlciB3YWxfbGV2ZWwgaXMgc2V0 IGJhY2sgdG8gcmVwbGljYSwgc28gZXhpc3RpbmcgbG9naWNhbCBzbG90cyBuZWVkIHRvCisg KiBiZSBkcm9wcGVkLiBBbHNvLCB3aGVuIHhpZCBpcyBpbnZhbGlkLCBhIGNvbW1vbiAnY29u ZmxpY3RfcmVhc29uJyBpcworICogcHJvdmlkZWQgZm9yIHRoZSBlcnJvciBkZXRhaWw7IG90 aGVyd2lzZSBpdCBpcyBOVUxMLCBpbiB3aGljaCBjYXNlIGl0IGlzCisgKiBjb25zdHJ1Y3Rl ZCBvdXQgb2YgdGhlIHhpZCB2YWx1ZS4KKyAqLwordm9pZAorUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoTG9naWNhbFNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQsCisJ CQkJCQkJCQkJY2hhciAqY29uZmxpY3RfcmVhc29uKQoreworCWludAkJCWk7CisJYm9vbAkJ Zm91bmRfY29uZmxpY3QgPSBmYWxzZTsKKworCWlmIChtYXhfcmVwbGljYXRpb25fc2xvdHMg PD0gMCkKKwkJcmV0dXJuOworCityZXN0YXJ0OgorCWlmIChmb3VuZF9jb25mbGljdCkKKwl7 CisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisJCWZvdW5kX2NvbmZsaWN0ID0gZmFsc2U7 CisJfQorCisJTFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdf U0hBUkVEKTsKKwlmb3IgKGkgPSAwOyBpIDwgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOyBpKysp CisJeworCQlSZXBsaWNhdGlvblNsb3QgKnM7CisKKwkJcyA9ICZSZXBsaWNhdGlvblNsb3RD dGwtPnJlcGxpY2F0aW9uX3Nsb3RzW2ldOworCisJCS8qIGNhbm5vdCBjaGFuZ2Ugd2hpbGUg UmVwbGljYXRpb25TbG90Q3RsTG9jayBpcyBoZWxkICovCisJCWlmICghcy0+aW5fdXNlKQor CQkJY29udGludWU7CisKKwkJLyogV2UgYXJlIG9ubHkgZGVhbGluZyB3aXRoICpsb2dpY2Fs KiBzbG90IGNvbmZsaWN0cy4gKi8KKwkJaWYgKCFTbG90SXNMb2dpY2FsKHMpKQorCQkJY29u dGludWU7CisKKwkJLyogSW52YWxpZCB4aWQgbWVhbnMgY2FsbGVyIGlzIGFza2luZyB0byBk cm9wIGFsbCBsb2dpY2FsIHNsb3RzICovCisJCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQo eGlkKSkKKwkJCWZvdW5kX2NvbmZsaWN0ID0gdHJ1ZTsKKwkJZWxzZQorCQl7CisJCQlUcmFu c2FjdGlvbklkIHNsb3RfeG1pbjsKKwkJCVRyYW5zYWN0aW9uSWQgc2xvdF9jYXRhbG9nX3ht aW47CisJCQlTdHJpbmdJbmZvRGF0YQljb25mbGljdF9zdHIsIGNvbmZsaWN0X3htaW5zOwor CQkJY2hhcgkgICAqY29uZmxpY3Rfc2VudGVuY2UgPQorCQkJCWdldHRleHRfbm9vcCgiU2xv dCBjb25mbGljdGVkIHdpdGggeGlkIGhvcml6b24gd2hpY2ggd2FzIGJlaW5nIGluY3JlYXNl ZCB0byIpOworCisJCQkvKiBub3Qgb3VyIGRhdGFiYXNlLCBza2lwICovCisJCQlpZiAocy0+ ZGF0YS5kYXRhYmFzZSAhPSBJbnZhbGlkT2lkICYmIHMtPmRhdGEuZGF0YWJhc2UgIT0gZGJv aWQpCisJCQkJY29udGludWU7CisKKwkJCVNwaW5Mb2NrQWNxdWlyZSgmcy0+bXV0ZXgpOwor CQkJc2xvdF94bWluID0gcy0+ZGF0YS54bWluOworCQkJc2xvdF9jYXRhbG9nX3htaW4gPSBz LT5kYXRhLmNhdGFsb2dfeG1pbjsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOwor CisJCQkvKgorCQkJICogQnVpbGQgdGhlIGNvbmZsaWN0X3N0ciB3aGljaCB3aWxsIGxvb2sg bGlrZSA6CisJCQkgKiAiU2xvdCBjb25mbGljdGVkIHdpdGggeGlkIGhvcml6b24gd2hpY2gg d2FzIGJlaW5nIGluY3JlYXNlZAorCQkJICogdG8gOTAxMiAoc2xvdCB4bWluOiAxMjM0LCBz bG90IGNhdGFsb2dfeG1pbjogNTY3OCkuIgorCQkJICovCisJCQlpbml0U3RyaW5nSW5mbygm Y29uZmxpY3RfeG1pbnMpOworCQkJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfeG1p bikgJiYKKwkJCQlUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhzbG90X3htaW4sIHhp ZCkpCisJCQl7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmY29uZmxpY3RfeG1pbnMsICJzbG90 IHhtaW46ICVkIiwgc2xvdF94bWluKTsKKwkJCX0KKwkJCWlmIChUcmFuc2FjdGlvbklkSXNW YWxpZChzbG90X2NhdGFsb2dfeG1pbikgJiYKKwkJCQlUcmFuc2FjdGlvbklkUHJlY2VkZXNP ckVxdWFscyhzbG90X2NhdGFsb2dfeG1pbiwgeGlkKSkKKwkJCQlhcHBlbmRTdHJpbmdJbmZv KCZjb25mbGljdF94bWlucywgIiVzc2xvdCBjYXRhbG9nX3htaW46ICVkIiwKKwkJCQkJCQkJ IGNvbmZsaWN0X3htaW5zLmxlbiA+IDAgPyAiLCAiIDogIiIsCisJCQkJCQkJCSBzbG90X2Nh dGFsb2dfeG1pbik7CisKKwkJCWlmIChjb25mbGljdF94bWlucy5sZW4gPiAwKQorCQkJewor CQkJCWluaXRTdHJpbmdJbmZvKCZjb25mbGljdF9zdHIpOworCQkJCWFwcGVuZFN0cmluZ0lu Zm8oJmNvbmZsaWN0X3N0ciwgIiVzICVkICglcykuIiwKKwkJCQkJCQkJIGNvbmZsaWN0X3Nl bnRlbmNlLCB4aWQsIGNvbmZsaWN0X3htaW5zLmRhdGEpOworCQkJCWZvdW5kX2NvbmZsaWN0 ID0gdHJ1ZTsKKwkJCQljb25mbGljdF9yZWFzb24gPSBjb25mbGljdF9zdHIuZGF0YTsKKwkJ CX0KKwkJfQorCisJCWlmIChmb3VuZF9jb25mbGljdCkKKwkJeworCQkJTmFtZURhdGEJc2xv dG5hbWU7CisKKwkJCVNwaW5Mb2NrQWNxdWlyZSgmcy0+bXV0ZXgpOworCQkJc2xvdG5hbWUg PSBzLT5kYXRhLm5hbWU7CisJCQlTcGluTG9ja1JlbGVhc2UoJnMtPm11dGV4KTsKKworCQkJ LyogUmVwbGljYXRpb25TbG90RHJvcENvbmZsaWN0aW5nKCkgd2lsbCBhY3F1aXJlIHRoZSBs b2NrIGJlbG93ICovCisJCQlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xM b2NrKTsKKworCQkJUmVwbGljYXRpb25TbG90RHJvcENvbmZsaWN0aW5nKHMpOworCisJCQll cmVwb3J0KExPRywKKwkJCQkJKGVycm1zZygiZHJvcHBlZCBjb25mbGljdGluZyBzbG90ICVz IiwgTmFtZVN0cihzbG90bmFtZSkpLAorCQkJCQkgZXJyZGV0YWlsKCIlcyIsIGNvbmZsaWN0 X3JlYXNvbikpKTsKKworCQkJLyogV2UgcmVsZWFzZWQgdGhlIGxvY2sgYWJvdmU7IHNvIHJl LXNjYW4gdGhlIHNsb3RzLiAqLworCQkJZ290byByZXN0YXJ0OworCQl9CisJfQorCisJTFdM b2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7Cit9CisKIC8qCiAgKiBN YXJrIGFueSBzbG90IHRoYXQgcG9pbnRzIHRvIGFuIExTTiBvbGRlciB0aGFuIHRoZSBnaXZl biBzZWdtZW50CiAgKiBhcyBpbnZhbGlkOyBpdCByZXF1aXJlcyBXQUwgdGhhdCdzIGFib3V0 IHRvIGJlIHJlbW92ZWQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9w cm9jYXJyYXkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4 IGNmMTJlZGE1MDQuLjM0MzkwMjZlYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvaXBjL3Byb2NhcnJheS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2Nh cnJheS5jCkBAIC0zMzQ2LDYgKzMzNDYsMTAgQEAgU2lnbmFsVmlydHVhbFRyYW5zYWN0aW9u KFZpcnR1YWxUcmFuc2FjdGlvbklkIHZ4aWQsIFByb2NTaWduYWxSZWFzb24gc2lnbW9kZSwK IAogCQlHRVRfVlhJRF9GUk9NX1BHUFJPQyhwcm9jdnhpZCwgKnByb2MpOwogCisJCS8qCisJ CSAqIE5vdGU6IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklkIGNhbiBiZSBpbnZhbGlkLCB3aGlj aCBtZWFucyB0aGUKKwkJICogcmVxdWVzdCBpcyB0byBzaWduYWwgdGhlIHBpZCB0aGF0IGlz IG5vdCBydW5uaW5nIGEgdHJhbnNhY3Rpb24uCisJCSAqLwogCQlpZiAocHJvY3Z4aWQuYmFj a2VuZElkID09IHZ4aWQuYmFja2VuZElkICYmCiAJCQlwcm9jdnhpZC5sb2NhbFRyYW5zYWN0 aW9uSWQgPT0gdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQpCiAJCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvaXBjL3Byb2NzaWduYWwuYwppbmRleCBjNDNjZGQ2ODViLi40NzQwZTgzNTJhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKKysrIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCkBAIC02ODAsNiArNjgwLDkgQEAg cHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lHTkFMX0FSR1MpCiAJaWYgKENoZWNrUHJv Y1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UKSkKIAkJUmVjb3Zl cnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9U KTsKIAorCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9M T0dJQ0FMU0xPVCkpCisJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCk7CisKIAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSykpCiAJCVJlY292ZXJ5 Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RF QURMT0NLKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IDM5YTMwYzAw ZjcuLjAwODdiMjE4MGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0 YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTIz LDYgKzIzLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0 aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0 b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNDI1LDcgKzQy Niw4IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFZpcnR1YWxYSURzKFZpcnR1YWxU cmFuc2FjdGlvbklkICp3YWl0bGlzdCwKIH0KIAogdm9pZAotUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLCBSZWxG aWxlTm9kZSBub2RlKQorUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJh bnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJYm9vbCBvbkNhdGFsb2dU YWJsZSwgUmVsRmlsZU5vZGUgbm9kZSkKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rpb25JZCAqYmFj a2VuZHM7CiAKQEAgLTQ1MCw2ICs0NTIsOSBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsIFJlbEZpbGVOb2Rl CiAJCQkJCQkJCQkJICAgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCwKIAkJ CQkJCQkJCQkgICBXQUlUX0VWRU5UX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAogCQkJ CQkJCQkJCSAgIHRydWUpOworCisJaWYgKG9uQ2F0YWxvZ1RhYmxlKQorCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhMb2dpY2FsU2xvdHMobm9kZS5kYk5vZGUsIGxhdGVzdFJlbW92 ZWRYaWQsIE5VTEwpOwogfQogCiB2b2lkCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKaW5kZXggY2I1YTk2 MTE3Zi4uOGFlZWRkZjBhMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jl cy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwpAQCAtMjQ2Niw2ICsyNDY2 LDkgQEAgZXJyZGV0YWlsX3JlY292ZXJ5X2NvbmZsaWN0KHZvaWQpCiAJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVDoKIAkJCWVycmRldGFpbCgiVXNlciBxdWVy eSBtaWdodCBoYXZlIG5lZWRlZCB0byBzZWUgcm93IHZlcnNpb25zIHRoYXQgbXVzdCBiZSBy ZW1vdmVkLiIpOwogCQkJYnJlYWs7CisJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9MT0dJQ0FMU0xPVDoKKwkJCWVycmRldGFpbCgiVXNlciB3YXMgdXNpbmcgdGhlIGxvZ2lj YWwgc2xvdCB0aGF0IG11c3QgYmUgZHJvcHBlZC4iKTsKKwkJCWJyZWFrOwogCQljYXNlIFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCWVycmRldGFp bCgiVXNlciB0cmFuc2FjdGlvbiBjYXVzZWQgYnVmZmVyIGRlYWRsb2NrIHdpdGggcmVjb3Zl cnkuIik7CiAJCQlicmVhazsKQEAgLTI5NzksNiArMjk4MiwyNSBAQCBSZWNvdmVyeUNvbmZs aWN0SW50ZXJydXB0KFByb2NTaWduYWxSZWFzb24gcmVhc29uKQogCQkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX0xPQ0s6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfVEFCTEVTUEFDRToKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9T TkFQU0hPVDoKKwkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xP VDoKKwkJCQkvKgorCQkJCSAqIEZvciBjb25mbGljdHMgdGhhdCByZXF1aXJlIGEgbG9naWNh bCBzbG90IHRvIGJlIGRyb3BwZWQsIHRoZQorCQkJCSAqIHJlcXVpcmVtZW50IGlzIGZvciB0 aGUgc2lnbmFsIHJlY2VpdmVyIHRvIHJlbGVhc2UgdGhlIHNsb3QsCisJCQkJICogc28gdGhh dCBpdCBjb3VsZCBiZSBkcm9wcGVkIGJ5IHRoZSBzaWduYWwgc2VuZGVyLiBTbyBmb3IKKwkJ CQkgKiBub3JtYWwgYmFja2VuZHMsIHRoZSB0cmFuc2FjdGlvbiBzaG91bGQgYmUgYWJvcnRl ZCwganVzdAorCQkJCSAqIGxpa2UgZm9yIG90aGVyIHJlY292ZXJ5IGNvbmZsaWN0cy4gQnV0 IGlmIGl0J3Mgd2Fsc2VuZGVyIG9uCisJCQkJICogc3RhbmRieSwgdGhlbiBpdCBoYXMgdG8g YmUga2lsbGVkIHNvIGFzIHRvIHJlbGVhc2UgYW4KKwkJCQkgKiBhY3F1aXJlZCBsb2dpY2Fs IHNsb3QuCisJCQkJICovCisJCQkJaWYgKGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgJiYKKwkJ CQkJcmVhc29uID09IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QgJiYK KwkJCQkJTXlSZXBsaWNhdGlvblNsb3QgJiYgU2xvdElzTG9naWNhbChNeVJlcGxpY2F0aW9u U2xvdCkpCisJCQkJeworCQkJCQlSZWNvdmVyeUNvbmZsaWN0UGVuZGluZyA9IHRydWU7CisJ CQkJCVF1ZXJ5Q2FuY2VsUGVuZGluZyA9IHRydWU7CisJCQkJCUludGVycnVwdFBlbmRpbmcg PSB0cnVlOworCQkJCQlicmVhazsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIElmIHdlIGFy ZW4ndCBpbiBhIHRyYW5zYWN0aW9uIGFueSBsb25nZXIgdGhlbiBpZ25vcmUuCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDYyYmZmNTI2MzguLjc2YmE4MGY1Y2Eg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xNDk2LDYgKzE0OTYs MjEgQEAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoUEdfRlVOQ1RJT05fQVJH UykKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAorRGF0dW0KK3BnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJ ZGJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50NjQJCXJlc3VsdDsKKwlQZ1N0YXRfU3Rh dERCRW50cnkgKmRiZW50cnk7CisKKwlpZiAoKGRiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3Rh dF9kYmVudHJ5KGRiaWQpKSA9PSBOVUxMKQorCQlyZXN1bHQgPSAwOworCWVsc2UKKwkJcmVz dWx0ID0gKGludDY0KSAoZGJlbnRyeS0+bl9jb25mbGljdF9sb2dpY2Fsc2xvdCk7CisKKwlQ R19SRVRVUk5fSU5UNjQocmVzdWx0KTsKK30KKwogRGF0dW0KIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X2J1ZmZlcnBpbihQR19GVU5DVElPTl9BUkdTKQogewpAQCAtMTUzOSw2ICsxNTU0 LDcgQEAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYWxsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CXJlc3VsdCA9IChpbnQ2NCkgKGRiZW50cnktPm5fY29uZmxpY3RfdGFibGVzcGFjZSArCiAJ CQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3RfbG9jayArCiAJCQkJCQkgIGRiZW50cnktPm5f Y29uZmxpY3Rfc25hcHNob3QgKworCQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2lj YWxzbG90ICsKIAkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9idWZmZXJwaW4gKwogCQkJ CQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0ZTBjOWJlNThjLi5lZWRlMGRhZDViIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTUzOTksNiArNTM5OSwxMSBAQAogICBwcm9uYW1l ID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcsIHByb3ZvbGF0aWxlID0+ ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJv YXJndHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxp Y3Rfc25hcHNob3QnIH0sCit7IG9pZCA9PiAnNDU0MycsCisgIGRlc2NyID0+ICdzdGF0aXN0 aWNzOiByZWNvdmVyeSBjb25mbGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5IGxvZ2ljYWwg cmVwbGljYXRpb24gc2xvdCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZs aWN0X2xvZ2ljYWxzbG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9 PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAg cHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCcgfSwKIHsg b2lkID0+ICczMDY4JywKICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZs aWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgc2hhcmVkIGJ1ZmZlciBwaW4nLAogICBwcm9u YW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4nLCBwcm92b2xhdGls ZSA9PiAncycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNs dWRlL3Bnc3RhdC5oCmluZGV4IDcyNDA2OGNmODcuLmViM2VmYTNiYmUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC03 MTQsNiArNzE0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdT dGF0X0NvdW50ZXIgbl9jb25mbGljdF90YWJsZXNwYWNlOwogCVBnU3RhdF9Db3VudGVyIG5f Y29uZmxpY3RfbG9jazsKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X3NuYXBzaG90Owor CVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3RfbG9naWNhbHNsb3Q7CiAJUGdTdGF0X0NvdW50 ZXIgbl9jb25mbGljdF9idWZmZXJwaW47CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9z dGFydHVwX2RlYWRsb2NrOwogCVBnU3RhdF9Db3VudGVyIG5fdGVtcF9maWxlczsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaAppbmRleCA1M2Y2MzZjNTZmLi42ZjY1MTE2YTY0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vc2xvdC5oCkBAIC0yMTcsNCArMjE3LDYgQEAgZXh0ZXJuIHZvaWQgQ2hl Y2tQb2ludFJlcGxpY2F0aW9uU2xvdHModm9pZCk7CiAKIGV4dGVybiB2b2lkIENoZWNrU2xv dFJlcXVpcmVtZW50cyh2b2lkKTsKIAorZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoTG9naWNhbFNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQsIGNo YXIgKnJlYXNvbik7CisKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFn ZS9wcm9jc2lnbmFsLmgKaW5kZXggNGFlN2RjMzNiOC4uMjcwMzViMDc1YiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUv c3RvcmFnZS9wcm9jc2lnbmFsLmgKQEAgLTQwLDYgKzQwLDcgQEAgdHlwZWRlZiBlbnVtCiAJ UFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFLAogCVBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfTE9DSywKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9U LAorCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsCiAJUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU4sCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9TVEFSVFVQX0RFQURMT0NLLAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdl L3N0YW5kYnkuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCmluZGV4IDk0ZDMz ODUxZDAuLjgwMjQ4MmUxY2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3Rh bmRieS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCkBAIC0zMCw3ICsz MCw3IEBAIGV4dGVybiB2b2lkIEluaXRSZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQo dm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blJlY292ZXJ5VHJhbnNhY3Rpb25FbnZpcm9u bWVudCh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo U25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAotCQkJCQkJCQkJCQkJ UmVsRmlsZU5vZGUgbm9kZSk7CisJCQkJCQkJCQlib29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxG aWxlTm9kZSBub2RlKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFRhYmxlc3BhY2UoT2lkIHRzaWQpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoRGF0YWJhc2UoT2lkIGRiaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0CmluZGV4IDYxNzM0NzNkZTkuLmZiMDJlN2JlNTIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xODY3LDYgKzE4NjcsNyBAQCBwZ19zdGF0X2Rh dGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIGQub2lkIEFTIGRhdGlkLAogICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X3RhYmxlc3BhY2UoZC5vaWQpIEFTIGNvbmZsX3RhYmxlc3BhY2Us CiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9jayhkLm9pZCkgQVMgY29uZmxfbG9j aywKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdChkLm9pZCkgQVMgY29u Zmxfc25hcHNob3QsCisgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3Qo ZC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxzbG90LAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZs aWN0X2J1ZmZlcnBpbihkLm9pZCkgQVMgY29uZmxfYnVmZmVycGluLAogICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQpIEFTIGNvbmZsX2RlYWRs b2NrCiAgICBGUk9NIHBnX2RhdGFiYXNlIGQ7Ci0tIAoyLjE0LjUKCg== --------------E57C3138DCDD77C4B41FB56F Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v9-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v9-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSBkZTI0NGMwNDg4OWM5YWNkYjNjYWE0NGMwMGQyYzMwOTdlZWUxZTllIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA0IEZlYiAyMDIxIDE2OjI2OjE4ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2OSA0LzVdIE5ldyBUQVAgdGVzdCBmb3IgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5 LgoKVGhpcyB0ZXN0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQ3JhaWcgUmluZ2VyLCB0 aGVuCmV4dGVuZGVkL21vZGlmaWVkIGJ5IG1lLCB0byB0ZXN0IHZhcmlvdXMgc2xvdCBjb25m bGljdCBzY2VuYXJpb3MuCgpBdXRob3JzOiBDcmFpZyBSaW5nZXIsIEFtaXQgS2hhbmRla2Fy LgotLS0KIHNyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtICAgICAgICAgICAgICAgICAg ICAgIHwgIDM3ICsrKwogLi4uL3QvMDIyX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlu cy5wbCAgICAgICAgfCAyNzIgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vdC8wMjNfc3Rh bmRieV9sb2dpY2FsX2RlY29kaW5nX2NvbmZsaWN0cy5wbCAgICB8IDIxNSArKysrKysrKysr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDUyNCBpbnNlcnRpb25zKCspCiAgIDYuMCUgc3Jj L3Rlc3QvcGVybC8KICA5My45JSBzcmMvdGVzdC9yZWNvdmVyeS90LwoKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl c05vZGUucG0KaW5kZXggOTY2N2Y3NjY3ZS4uMWQ2MjcwMGNhNiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KKysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl c05vZGUucG0KQEAgLTIyMjMsNiArMjIyMyw0MyBAQCBzdWIgcGdfcmVjdmxvZ2ljYWxfdXB0 bwogCiA9cG9kCiAKKz1pdGVtICRub2RlLT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5k Ynkoc2VsZiwgbWFzdGVyLCBzbG90X25hbWUsIGRibmFtZSkKKworQ3JlYXRlIGxvZ2ljYWwg cmVwbGljYXRpb24gc2xvdCBvbiBnaXZlbiBzdGFuZGJ5CisKKz1jdXQKKworc3ViIGNyZWF0 ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRieQoreworCW15ICgkc2VsZiwgJG1hc3RlciwgJHNs b3RfbmFtZSwgJGRibmFtZSkgPSBAXzsKKwlteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKwlt eSAkaGFuZGxlOworCisJJGhhbmRsZSA9IElQQzo6UnVuOjpzdGFydChbJ3BnX3JlY3Zsb2dp Y2FsJywgJy1kJywgJHNlbGYtPmNvbm5zdHIoJGRibmFtZSksICctUCcsICd0ZXN0X2RlY29k aW5nJywgJy1TJywgJHNsb3RfbmFtZSwgJy0tY3JlYXRlLXNsb3QnXSwgJz4nLCBcJHN0ZG91 dCwgJzI+JywgXCRzdGRlcnIpOworCisJIyBPbmNlIHNsb3QgcmVzdGFydF9sc24gaXMgY3Jl YXRlZCwgdGhlIHN0YW5kYnkgbG9va3MgZm9yIHhsX3J1bm5pbmdfeGFjdHMKKwkjIFdBTCBy ZWNvcmQgZnJvbSB0aGUgcmVzdGFydF9sc24gb253YXJkcy4gU28gZmlyc3RseSwgd2FpdCB1 bnRpbCB0aGUgc2xvdAorCSMgcmVzdGFydF9sc24gaXMgZXZhbHVhdGVkLgorCisJJHNlbGYt PnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgcmVzdGFy dF9sc24gSVMgTk9UIE5VTEwKKwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Ns b3RzIFdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdF9uYW1lJworCV0pIG9yIGRpZSAidGltZWQg b3V0IHdhaXRpbmcgZm9yIGxvZ2ljYWwgc2xvdCB0byBjYWxjdWxhdGUgaXRzIHJlc3RhcnRf bHNuIjsKKworCSMgTm93IGFycmFuZ2UgZm9yIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29y ZCBmb3Igd2hpY2ggcGdfcmVjdmxvZ2ljYWwKKwkjIGlzIHdhaXRpbmcuCisJJG1hc3Rlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDSEVDS1BPSU5UJyk7CisKKwkkaGFuZGxlLT5maW5p c2goKTsKKworCWlzKCRzZWxmLT5zbG90KCRzbG90X25hbWUpLT57J3Nsb3RfdHlwZSd9LCAn bG9naWNhbCcsICRzbG90X25hbWUgLiAnIG9uIHN0YW5kYnkgY3JlYXRlZCcpCisJCW9yIGRp ZSAiY291bGQgbm90IGNyZWF0ZSBzbG90IiAuICRzbG90X25hbWU7Cit9CisKKz1wb2QKKwog PWJhY2sKIAogPWN1dApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjJfc3Rh bmRieV9sb2dpY2FsX2RlY29kaW5nX3htaW5zLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w MjJfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX3htaW5zLnBsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ2NTRkNzk1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWNvdmVyeS90LzAyMl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfeG1pbnMu cGwKQEAgLTAsMCArMSwyNzIgQEAKKyMgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnkg OiBlbnN1cmUgeG1pbnMgYXJlIGFwcHJvcHJpYXRlbHkgdXBkYXRlZAorCit1c2Ugc3RyaWN0 OwordXNlIHdhcm5pbmdzOworCit1c2UgUG9zdGdyZXNOb2RlOwordXNlIFRlc3RMaWI7Cit1 c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiAyMzsKK3VzZSBSZWN1cnNpdmVDb3B5OwordXNlIEZp bGU6OkNvcHk7Cit1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsKKworbXkgKCRzdGRpbiwg JHN0ZG91dCwgJHN0ZGVyciwgJHJldCwgJGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9t YXN0ZXIgPSBnZXRfbmV3X25vZGUoJ21hc3RlcicpOworbXkgJG5vZGVfc3RhbmRieSA9IGdl dF9uZXdfbm9kZSgnc3RhbmRieScpOworCisjIE5hbWUgZm9yIHRoZSBwaHlzaWNhbCBzbG90 IG9uIG1hc3RlcgorbXkgJG1hc3Rlcl9zbG90bmFtZSA9ICdtYXN0ZXJfcGh5c2ljYWwnOwor IyBOYW1lIGZvciB0aGUgbG9naWNhbCBzbG90IG9uIHN0YW5kYnkKK215ICRzdGFuZGJ5X3Ns b3RuYW1lID0gJ3N0YW5kYnlfbG9naWNhbCc7CisKKyMgRmV0Y2ggeG1pbiBjb2x1bW5zIGZy b20gc2xvdCdzIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHJvdywgYWZ0ZXIgd2FpdGluZyBmb3IK KyMgZ2l2ZW4gYm9vbGVhbiBjb25kaXRpb24gdG8gYmUgdHJ1ZSB0byBlbnN1cmUgd2UndmUg cmVhY2hlZCBhIHF1aWVzY2VudCBzdGF0ZQorc3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkg KCRub2RlLCAkc2xvdG5hbWUsICRjaGVja19leHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxf cXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIK KwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3Rf bmFtZSA9ICckc2xvdG5hbWUnOworCV0pIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9y IHNsb3QgeG1pbnMgdG8gYWR2YW5jZSI7Cit9CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjIEluaXRpYWxpemUgbWFzdGVyIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCiskbm9kZV9tYXN0ZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxLCBoYXNfYXJj aGl2aW5nID0+IDEpOworJG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5j b25mJywgcXsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworbWF4X3JlcGxpY2F0aW9uX3Nsb3Rz ID0gNAorbWF4X3dhbF9zZW5kZXJzID0gNAorbG9nX21pbl9tZXNzYWdlcyA9ICdkZWJ1ZzIn Citsb2dfZXJyb3JfdmVyYm9zaXR5ID0gdmVyYm9zZQorIyB2ZXJ5IHByb21wdGx5IHRlcm1p bmF0ZSBjb25mbGljdGluZyBiYWNrZW5kcworbWF4X3N0YW5kYnlfc3RyZWFtaW5nX2RlbGF5 ID0gJzJzJworfSk7Ciskbm9kZV9tYXN0ZXItPmR1bXBfaW5mbzsKKyRub2RlX21hc3Rlci0+ c3RhcnQ7CisKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxW1NFTEVD VCAqIEZST00gcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRtYXN0ZXJf c2xvdG5hbWUnKTtdKTsKK215ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9tYXN0ZXIt PmJhY2t1cCgkYmFja3VwX25hbWUpOworCisjIEFmdGVyIHNsb3QgY3JlYXRpb24sIHhtaW5z IG11c3QgYmUgbnVsbAorJHNsb3QgPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90 bmFtZSk7Citpcygkc2xvdC0+eyd4bWluJ30sICcnLCAieG1pbiBudWxsIik7Citpcygkc2xv dC0+eydjYXRhbG9nX3htaW4nfSwgJycsICJjYXRhbG9nX3htaW4gbnVsbCIpOworCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXplIHNsYXZlIG5vZGUKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJ JG5vZGVfbWFzdGVyLCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhh c19yZXN0b3JpbmcgPT4gMSk7Ciskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJywKKwlxcVtwcmltYXJ5X3Nsb3RfbmFtZSA9ICckbWFzdGVyX3Nsb3RuYW1l J10pOworJG5vZGVfc3RhbmRieS0+c3RhcnQ7Ciskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVz aCcpKTsKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyB4bWluL2Nh dGFsb2dfeG1pbiB2ZXJpZmljYXRpb24gYmVmb3JlIGFuZCBhZnRlciBzdGFuZGJ5LWxvZ2lj YWwtc2xvdCBjcmVhdGlvbi4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK KyMgV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvZmYsIHhtaW4gYW5kIGNhdGFsb2dfeG1p biBtdXN0IHN0aWxsIGJlIG51bGwKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0 ZXJfc2xvdG5hbWUpOworaXMoJHNsb3QtPnsneG1pbid9LCAnJywgInhtaW4gbnVsbCBhZnRl ciBzdGFuZGJ5IGpvaW4iKTsKK2lzKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAnJywgImNh dGFsb2dfeG1pbiBudWxsIGFmdGVyIHN0YW5kYnkgam9pbiIpOworCiskbm9kZV9zdGFuZGJ5 LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJh Y2sgPSBvbgorIyBzZW5kIHN0YXR1cyByYXBpZGx5IHNvIHdlIHByb21wdGx5IGFkdmFuY2Ug eG1pbiBvbiBtYXN0ZXIKK3dhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPSAxCitdKTsK KyRub2RlX3N0YW5kYnktPnJlc3RhcnQ7CisKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRi YWNrIHNlbnQgYnkgd2FpdGluZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194 bWluIG9uIG1hc3Rlci4gV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1pbiBzaG91 bGQgYWR2YW5jZSwKKyMgYnV0IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVtYWluIE5V TEwgc2luY2UgdGhlcmUgaXMgbm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1pbnMoJG5v ZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1lLCAieG1pbiBJUyBOT1QgTlVMTCBBTkQgY2F0 YWxvZ194bWluIElTIE5VTEwiKTsKKworIyBDcmVhdGUgbmV3IHNsb3RzIG9uIHRoZSBzdGFu ZGJ5LCBpZ25vcmluZyB0aGUgb25lcyBvbiB0aGUgbWFzdGVyIGNvbXBsZXRlbHkuCisjCisj IFRoaXMgbXVzdCBzdWNjZWVkIHNpbmNlIHdlIGtub3cgd2UgaGF2ZSBhIGNhdGFsb2dfeG1p biByZXNlcnZhdGlvbi4gV2UKKyMgbWlnaHQndmUgYWxyZWFkeSBzZW50IGhvdCBzdGFuZGJ5 IGZlZWRiYWNrIHRvIGFkdmFuY2Ugb3VyIHBoeXNpY2FsIHNsb3QncworIyBjYXRhbG9nX3ht aW4gYnV0IG5vdCByZWNlaXZlZCB0aGUgY29ycmVzcG9uZGluZyB4bG9nIGZvciB0aGUgY2F0 YWxvZyB4bWluCisjIGFkdmFuY2UsIGluIHdoaWNoIGNhc2Ugd2UnbGwgY3JlYXRlIGEgc2xv dCB0aGF0IGlzbid0IHVzYWJsZS4gVGhlIGNhbGxpbmcKKyMgYXBwbGljYXRpb24gY2FuIHBy ZXZlbnQgdGhpcyBieSBjcmVhdGluZyBhIHRlbXBvcmFyeSBzbG90IG9uIHRoZSBtYXN0ZXIg dG8KKyMgbG9jayBpbiBpdHMgY2F0YWxvZ194bWluLiBGb3IgYSB0cnVseSByYWNlLWZyZWUg c29sdXRpb24gd2UnZCBuZWVkCisjIG1hc3Rlci10by1zdGFuZGJ5IGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHJlcGxpZXMuCisjCisjIEluIHRoaXMgY2FzZSBpdCB3b24ndCByYWNlIGJlY2F1 c2UgdGhlcmUncyBubyBjb25jdXJyZW50IGFjdGl2aXR5IG9uIHRoZQorIyBtYXN0ZXIuCisj Ciskbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVf bWFzdGVyLCAkc3RhbmRieV9zbG90bmFtZSwgJ3Bvc3RncmVzJyk7CisKKyRub2RlX21hc3Rl ci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFz dGVyLT5sc24oJ2ZsdXNoJykpOworCisjIE5vdyB0aGF0IHNsb3QgaXMgY3JlYXRlZCBvbiBz dGFuZGJ5LCB4bWluIGFuZCBjYXRhbG9nX3htaW4gc2hvdWxkIGJlIG5vbiBOVUxMCisjIG9u IGJvdGggbWFzdGVyIGFuZCBzdGFuZGJ5LiBCdXQgb24gbWFzdGVyLCB0aGUgeG1pbnMgd2ls bCBiZSB1cGRhdGVkIG9ubHkKKyMgYWZ0ZXIgaG90IHN0YW5kYnkgZmVlZGJhY2sgaXMgcmVj ZWl2ZWQuCit3YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUs ICJ4bWluIElTIE5PVCBOVUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTk9UIE5VTEwiKTsKKwor JHNsb3QgPSAkbm9kZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3RuYW1lKTsKK2lzKCRz bG90LT57J3htaW4nfSwgJycsICJsb2dpY2FsIHhtaW4gbnVsbCIpOworaXNudCgkc2xvdC0+ eydjYXRhbG9nX3htaW4nfSwgJycsICJsb2dpY2FsIGNhdGFsb2dfeG1pbiBub3QgbnVsbCIp OworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFN0YW5kYnkgbG9n aWNhbCBzbG90IHNob3VsZCBiZSBhYmxlIHRvIGZldGNoIHRoZSB0YWJsZSBjaGFuZ2VzIGV2 ZW4gd2hlbiB0aGUKKyMgdGFibGUgaXMgZHJvcHBlZC4KKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdD UkVBVEUgVEFCTEUgdGVzdF90YWJsZShpZCBzZXJpYWwgcHJpbWFyeSBrZXksIGJsYWggdGV4 dCknKTsKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbSU5TRVJUIElO VE8gdGVzdF90YWJsZShibGFoKSB2YWx1ZXMgKCdpdHdvcmtzJyldKTsKKyRub2RlX21hc3Rl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFRBQkxFIHRlc3RfdGFibGUnKTsKKyRu b2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdWQUNVVU0nKTsKKworJG5vZGVf bWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9k ZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKKyMgU2hvdWxkIHNob3cgdGhlIGluc2VydHMg ZXZlbiB3aGVuIHRoZSB0YWJsZSBpcyBkcm9wcGVkIG9uIG1hc3RlcgorKCRyZXQsICRzdGRv dXQsICRzdGRlcnIpID0gJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxcVtTRUxF Q1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnJHN0YW5kYnlfc2xv dG5hbWUnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14 YWN0cycsICcxJywgJ2luY2x1ZGUtdGltZXN0YW1wJywgJzAnKV0pOworaXMoJHN0ZGVyciwg JycsICdzdGRlcnIgaXMgZW1wdHknKTsKK2lzKCRyZXQsIDAsICdyZXBsYXkgZnJvbSBzbG90 IHN1Y2NlZWRlZCcpCisJb3IgZGllICdjYW5ub3QgY29udGludWUgaWYgc2xvdCByZXBsYXkg ZmFpbHMnOworaXMoJHN0ZG91dCwgcXtCRUdJTgordGFibGUgcHVibGljLnRlc3RfdGFibGU6 IElOU0VSVDogaWRbaW50ZWdlcl06MSBibGFoW3RleHRdOidpdHdvcmtzJworQ09NTUlUfSwg J3JlcGxheSByZXN1bHRzIG1hdGNoJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0 Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNo JykpOworCiskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKTsK K2lzbnQoJHNsb3QtPnsneG1pbid9LCAnJywgInBoeXNpY2FsIHhtaW4gbm90IG51bGwiKTsK K215ICRzYXZlZF9waHlzaWNhbF9jYXRhbG9nX3htaW4gPSAkc2xvdC0+eydjYXRhbG9nX3ht aW4nfTsKK2lzbnQoJHNhdmVkX3BoeXNpY2FsX2NhdGFsb2dfeG1pbiwgJycsICJwaHlzaWNh bCBjYXRhbG9nX3htaW4gbm90IG51bGwiKTsKKworJHNsb3QgPSAkbm9kZV9zdGFuZGJ5LT5z bG90KCRzdGFuZGJ5X3Nsb3RuYW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycsICJsb2dp Y2FsIHhtaW4gbnVsbCIpOworbXkgJHNhdmVkX2xvZ2ljYWxfY2F0YWxvZ194bWluID0gJHNs b3QtPnsnY2F0YWxvZ194bWluJ307Citpc250KCRzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1p biwgJycsICJsb2dpY2FsIGNhdGFsb2dfeG1pbiBub3QgbnVsbCIpOworCisKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENhdGFsb2cgeG1pbnMgc2hvdWxkIGFkdmFu Y2UgYWZ0ZXIgc3RhbmRieSBsb2dpY2FsIHNsb3QgZmV0Y2hlcyB0aGUgY2hhbmdlcy4KKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgSWRlYWxseSB3ZSdkIGp1c3Qg aG9sZCBjYXRhbG9nX3htaW4sIGJ1dCBzaW5jZSBoc19mZWVkYmFjayBjdXJyZW50bHkgdXNl cyB0aGUgc2xvdCwKKyMgd2UgaG9sZCBkb3duIHhtaW4uCiskbm9kZV9tYXN0ZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxcVtDUkVBVEUgVEFCTEUgY2F0YWxvZ19pbmNyZWFzZV8xKCk7 XSk7Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIFRBQkxF IHRlc3RfdGFibGUoaWQgc2VyaWFsIHByaW1hcnkga2V5LCBibGFoIHRleHQpJyk7Citmb3Ig bXkgJGkgKDAgLi4gMjAwMCkKK3sKKyAgICAkbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxcVtJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlKGJsYWgpIFZBTFVFUyAoJ2VudHJ5 ICRpJyldKTsKK30KKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxW0NS RUFURSBUQUJMRSBjYXRhbG9nX2luY3JlYXNlXzIoKTtdKTsKKyRub2RlX21hc3Rlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICdWQUNVVU0nKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zv cl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbign Zmx1c2gnKSk7CisKK2NtcF9vaygkbm9kZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3Ru YW1lKS0+eydjYXRhbG9nX3htaW4nfSwgIj09IiwKKwkgICAkc2F2ZWRfbG9naWNhbF9jYXRh bG9nX3htaW4sCisJICAgImxvZ2ljYWwgc2xvdCBjYXRhbG9nX3htaW4gaGFzbid0IGFkdmFu Y2VkIGJlZm9yZSBnZXRfY2hhbmdlcyIpOworCisoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikg PSAkbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsCisJcXFbU0VMRUNUIGRhdGEgRlJP TSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJyRzdGFuZGJ5X3Nsb3RuYW1lJywgTlVM TCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScs ICdpbmNsdWRlLXRpbWVzdGFtcCcsICcwJyldKTsKK2lzKCRyZXQsIDAsICdyZXBsYXkgb2Yg YmlnIHNlcmllcyBzdWNjZWVkZWQnKTsKK2lzbnQoJHN0ZG91dCwgJycsICdyZXBsYXllZCBz b21lIHJvd3MnKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKKyMgbG9n aWNhbCBzbG90IGNhdGFsb2dfeG1pbiBvbiBzbGF2ZSBzaG91bGQgYWR2YW5jZSBhZnRlciBw Z19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMKK3dhaXRfZm9yX3htaW5zKCRub2RlX3N0YW5k YnksICRzdGFuZGJ5X3Nsb3RuYW1lLAorCQkJICAgImNhdGFsb2dfeG1pbjo6dmFyY2hhcjo6 aW50ID4gJHtzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1pbn0iKTsKKyRzbG90ID0gJG5vZGVf c3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSk7CitteSAkbmV3X2xvZ2ljYWxfY2F0 YWxvZ194bWluID0gJHNsb3QtPnsnY2F0YWxvZ194bWluJ307Citpcygkc2xvdC0+eyd4bWlu J30sICcnLCAibG9naWNhbCB4bWluIG51bGwiKTsKKworIyBob3Qgc3RhbmRieSBmZWVkYmFj ayBzaG91bGQgYWR2YW5jZSBtYXN0ZXIncyBwaHlzIGNhdGFsb2dfeG1pbiBub3cgdGhhdCB0 aGUKKyMgc3RhbmRieSdzIHNsb3QgZG9lc24ndCBob2xkIGl0IGRvd24gYXMgZmFyLgorIyBC dXQgbWFzdGVyJ3MgcGh5cyBjYXRhbG9nX3htaW4gc2hvdWxkIG5vdCBnbyBwYXN0IHRoZSBz bGF2ZSdzIGxvZ2ljYWwgc2xvdCdzCisjIGNhdGFsb2dfeG1pbiwgZXZlbiB3aGlsZSBtYXN0 ZXIncyBwaHlzIHhtaW4gYWR2YW5jZXMuCisjCisjIEZpcnN0LCBtYWtlIHN1cmUgbWFzdGVy J3MgeG1pbiBpcyBhZHZhbmNlZC4gVGhpcyBoYXBwZW5zIG9uIGhvdCBzdGFuZGJ5CisjIGZl ZWRiYWNrLiBTbyB0aGlzIGNoZWNrIGZvciBtYXN0ZXIncyB4bWluIGFkdmFuY2UgYWxzbyBt YWtlcyBzdXJlIGhvdCBzdGFuZGJ5CisjIGZlZWRiYWNrIGhhcyByZWFjaGVkIHRoZSBtYXN0 ZXIsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciB0aGUgc3Vic2VxdWVudAorIyBjYXRhbG9nX3ht aW4gdGVzdC4KK215ICR0ZW1wX3BoeXNfeG1pbiA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFz dGVyX3Nsb3RuYW1lKS0+eyd4bWluJ307Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAnU0VMRUNUIHR4aWRfY3VycmVudCgpJyk7Cit3YWl0X2Zvcl94bWlucygkbm9k ZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbjo6dmFyY2hhcjo6aW50 ID4gJHt0ZW1wX3BoeXNfeG1pbn0iKTsKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRt YXN0ZXJfc2xvdG5hbWUpOworIyBOb3cgY2hlY2sgdGhhdCB0aGUgbWFzdGVyJ3MgcGh5cyBj YXRhbG9nX3htaW4gaGFzIGFkdmFuY2VkIGJ1dCBub3QgYmV5b25kCisjIHN0YW5kYnkncyBs b2dpY2FsIGNhdGFsb2dfeG1pbgorY21wX29rKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAi PiIsICRzYXZlZF9waHlzaWNhbF9jYXRhbG9nX3htaW4sCisJJ3Vwc3RyZWFtIHBoeXNpY2Fs IHNsb3QgY2F0YWxvZ194bWluIGhhcyBhZHZhbmNlZCB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7 CitjbXBfb2soJHNsb3QtPnsnY2F0YWxvZ194bWluJ30sICI9PSIsICRuZXdfbG9naWNhbF9j YXRhbG9nX3htaW4sCisJJ3Vwc3RyZWFtIHBoeXNpY2FsIHNsb3QgY2F0YWxvZ194bWluIG5v dCBwYXN0IGRvd25zdHJlYW0gY2F0YWxvZ194bWluIHdpdGggaHNfZmVlZGJhY2sgb24nKTsK KworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFVwc3RyZWFtIG9sZGVzdFhpZCBzaG91 bGQgbm90IGdvIHBhc3QgZG93bnN0cmVhbSBjYXRhbG9nX3htaW4KKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworIyBGaXJzdCBidXJuIHNvbWUgeGlkcyBvbiB0aGUgbWFzdGVyIGluIGFu b3RoZXIgREIsIHNvIHdlIHB1c2ggdGhlIG1hc3RlcidzCisjIG5leHRYaWQgYWhlYWQuCitm b3JlYWNoIG15ICRpICgxIC4uIDEwMCkKK3sKKwkkbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAnU0VMRUNUIHR4aWRfY3VycmVudCgpJyk7Cit9CisKKyMgRm9yY2UgdmFj dXVtIGZyZWV6ZSBvbiB0aGUgbWFzdGVyIGFuZCBlbnN1cmUgaXRzIG9sZGVzdFhtaW4gZG9l c24ndCBhZHZhbmNlCisjIHBhc3Qgb3VyIG5lZWRlZCB4bWluLiBUaGUgb25seSB3YXkgd2Ug aGF2ZSB2aXNpYmlsaXR5IGludG8gdGhhdCBpcyB0byBmb3JjZQorIyBhIGNoZWNrcG9pbnQu Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVVBEQVRFIHBnX2RhdGFi YXNlIFNFVCBkYXRhbGxvd2Nvbm4gPSB0cnVlIFdIRVJFIGRhdG5hbWUgPSAndGVtcGxhdGUw JyIpOworZm9yZWFjaCBteSAkZGJuYW1lICgndGVtcGxhdGUxJywgJ3Bvc3RncmVzJywgJ3Bv c3RncmVzJywgJ3RlbXBsYXRlMCcpCit7CisJJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJGRi bmFtZSwgJ1ZBQ1VVTSBGUkVFWkUnKTsKK30KKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICdDSEVDS1BPSU5UJyk7CitJUEM6OlJ1bjo6cnVuKFsncGdfY29udHJvbGRh dGEnLCAkbm9kZV9tYXN0ZXItPmRhdGFfZGlyKCldLCAnPicsIFwkc3Rkb3V0KQorCW9yIGRp ZSAicGdfY29udHJvbGRhdGEgZmFpbGVkIHdpdGggJD8iOworbXkgQGNoZWNrcG9pbnQgPSBz cGxpdCgnXG4nLCAkc3Rkb3V0KTsKK215ICRvbGRlc3RYaWQgPSAnJzsKK2ZvcmVhY2ggbXkg JGxpbmUgKEBjaGVja3BvaW50KQoreworCWlmICgkbGluZSA9fiBxci9eTGF0ZXN0IGNoZWNr cG9pbnQncyBvbGRlc3RYSUQ6XHMrKFxkKykvKQorCXsKKwkJJG9sZGVzdFhpZCA9ICQxOwor CX0KK30KK2RpZSAnbm8gb2xkZXN0WElEIGZvdW5kIGluIGNoZWNrcG9pbnQnIHVubGVzcyAk b2xkZXN0WGlkOworCitjbXBfb2soJG9sZGVzdFhpZCwgIjw9IiwgJG5vZGVfc3RhbmRieS0+ c2xvdCgkc3RhbmRieV9zbG90bmFtZSktPnsnY2F0YWxvZ194bWluJ30sCisJICAgJ3Vwc3Ry ZWFtIG9sZGVzdFhpZCBub3QgcGFzdCBkb3duc3RyZWFtIGNhdGFsb2dfeG1pbiB3aXRoIGhz X2ZlZWRiYWNrIG9uJyk7CisKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlVQREFURSBwZ19kYXRhYmFzZSBTRVQgZGF0YWxsb3djb25uID0gZmFsc2UgV0hFUkUg ZGF0bmFtZSA9ICd0ZW1wbGF0ZTAnIik7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgRHJvcCBzbG90CisjIE1ha2Ugc3VyZSBz dGFuZGJ5IHNsb3RzIGFyZSBkcm9wcGFibGUsIGFuZCBwcm9wZXJseSBjbGVhciB0aGUgdXBz dHJlYW0ncyB4bWluCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitpcygkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg J1NIT1cgaG90X3N0YW5kYnlfZmVlZGJhY2snKSwgJ29uJywgJ2hzX2ZlZWRiYWNrIGlzIG9u Jyk7CisKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcXFbU0VMRUNUIHBnX2Ry b3BfcmVwbGljYXRpb25fc2xvdCgnJHN0YW5kYnlfc2xvdG5hbWUnKV0pOworCitpcygkbm9k ZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3RuYW1lKS0+eydzbG90X3R5cGUnfSwgJycs ICdzbG90IG9uIHN0YW5kYnkgZHJvcHBlZCBtYW51YWxseScpOworCisjIGVuc3VyZSB3YWxy ZWNlaXZlciBmZWVkYmFjayBzZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5k CisjIGNhdGFsb2dfeG1pbiBvbiBtYXN0ZXIuIGNhdGFsb2dfeG1pbiBzaG91bGQgYmVjb21l IE5VTEwgYmVjYXVzZSB3ZSBkcm9wcGVkCisjIHRoZSBsb2dpY2FsIHNsb3QuCit3YWl0X2Zv cl94bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJ UyBOT1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDIzX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ19jb25mbGlj dHMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxfZGVjb2Rp bmdfY29uZmxpY3RzLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjMwOTRlMDA2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAy M19zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfY29uZmxpY3RzLnBsCkBAIC0wLDAgKzEsMjE1 IEBACisjIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzdGFuZGJ5IDogdGVzdCBjb25mbGljdCBy ZWNvdmVyeTsgYW5kIG90aGVyIHRlc3RzIHRoYXQKKyMgdmVyaWZ5IHNsb3RzIGdldCBkcm9w cGVkIGFzIGV4cGVjdGVkLgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2Ug UG9zdGdyZXNOb2RlOwordXNlIFRlc3RMaWI7Cit1c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiAy NDsKK3VzZSBSZWN1cnNpdmVDb3B5OwordXNlIEZpbGU6OkNvcHk7Cit1c2UgVGltZTo6SGlS ZXMgcXcodXNsZWVwKTsKKworbXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwgJHJldCwg JGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9tYXN0ZXIgPSBnZXRfbmV3X25vZGUoJ21h c3RlcicpOworbXkgJG5vZGVfc3RhbmRieSA9IGdldF9uZXdfbm9kZSgnc3RhbmRieScpOwor CisjIE5hbWUgZm9yIHRoZSBwaHlzaWNhbCBzbG90IG9uIG1hc3RlcgorbXkgJG1hc3Rlcl9z bG90bmFtZSA9ICdtYXN0ZXJfcGh5c2ljYWwnOworCisjIEZldGNoIHhtaW4gY29sdW1ucyBm cm9tIHNsb3QncyBwZ19yZXBsaWNhdGlvbl9zbG90cyByb3csIGFmdGVyIHdhaXRpbmcgZm9y CisjIGdpdmVuIGJvb2xlYW4gY29uZGl0aW9uIHRvIGJlIHRydWUgdG8gZW5zdXJlIHdlJ3Zl IHJlYWNoZWQgYSBxdWllc2NlbnQgc3RhdGUKK3N1YiB3YWl0X2Zvcl94bWlucworeworCW15 ICgkbm9kZSwgJHNsb3RuYW1lLCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5wb2xs X3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19leHBy CisJCUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBzbG90 X25hbWUgPSAnJHNsb3RuYW1lJzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGZv ciBzbG90IHhtaW5zIHRvIGFkdmFuY2UiOworfQorCisjIENyZWF0ZSB0aGUgcmVxdWlyZWQg bG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5Lgorc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3RzCit7 CisJJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2Rl X21hc3RlciwgJ2Ryb3BzbG90JywgJ3Rlc3RkYicpOworCSRub2RlX3N0YW5kYnktPmNyZWF0 ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRieSgkbm9kZV9tYXN0ZXIsICdhY3RpdmVzbG90Jywg J3Rlc3RkYicpOworfQorCisjIEFjcXVpcmUgb25lIG9mIHRoZSBzdGFuZGJ5IGxvZ2ljYWwg c2xvdHMgY3JlYXRlZCBieSBjcmVhdGVfbG9naWNhbF9zbG90cygpCitzdWIgbWFrZV9zbG90 X2FjdGl2ZQoreworCW15ICRzbG90X3VzZXJfaGFuZGxlOworCisJIyBtYWtlIHN1cmUgYWN0 aXZlc2xvdCBpcyBpbiB1c2UKKwlwcmludCAic3RhcnRpbmcgcGdfcmVjdmxvZ2ljYWxcbiI7 CisJJHNsb3RfdXNlcl9oYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNh bCcsICctZCcsICRub2RlX3N0YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicpLCAnLVMnLCAnYWN0 aXZlc2xvdCcsICctZicsICctJywgJy0tbm8tbG9vcCcsICctLXN0YXJ0J10sICc+JywgXCRz dGRvdXQsICcyPicsIFwkc3RkZXJyKTsKKworCXdoaWxlICghJG5vZGVfc3RhbmRieS0+c2xv dCgnYWN0aXZlc2xvdCcpLT57J2FjdGl2ZV9waWQnfSkKKwl7CisJCXVzbGVlcCgxMDBfMDAw KTsKKwkJcHJpbnQgIndhaXRpbmcgZm9yIHNsb3QgdG8gYmVjb21lIGFjdGl2ZVxuIjsKKwl9 CisJcmV0dXJuICRzbG90X3VzZXJfaGFuZGxlOworfQorCisjIENoZWNrIGlmIGFsbCB0aGUg c2xvdHMgb24gc3RhbmRieSBhcmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUgJ2FjdGl2 ZXNsb3QnCisjIHRoYXQgd2FzIGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUoKSwgYW5k IHRoZSBub24tYWN0aXZlICdkcm9wc2xvdCcuCitzdWIgY2hlY2tfc2xvdHNfZHJvcHBlZAor eworCW15ICgkc2xvdF91c2VyX2hhbmRsZSkgPSBAXzsKKwlteSAkcmV0dXJuOworCisJaXMo JG5vZGVfc3RhbmRieS0+c2xvdCgnZHJvcHNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdk cm9wc2xvdCBvbiBzdGFuZGJ5IGRyb3BwZWQnKTsKKwlpcygkbm9kZV9zdGFuZGJ5LT5zbG90 KCdhY3RpdmVzbG90JyktPnsnc2xvdF90eXBlJ30sICcnLCAnYWN0aXZlc2xvdCBvbiBzdGFu ZGJ5IGRyb3BwZWQnKTsKKworCSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVybWluYXRlZCBp biByZXNwb25zZSB0byB0aGUgd2Fsc2VuZGVyIGVycm9yCisJZXZhbCB7CisJCSRzbG90X3Vz ZXJfaGFuZGxlLT5maW5pc2g7CisJfTsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1 cm4sICIhPSIsIDAsICJwZ19yZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm9cbiIpOworCWlm ICgkcmV0dXJuKSB7CisJCWxpa2UoJHN0ZGVyciwgcXIvY29uZmxpY3Qgd2l0aCByZWNvdmVy eS8sICdyZWN2bG9naWNhbCByZWNvdmVyeSBjb25mbGljdCcpOworCQlsaWtlKCRzdGRlcnIs IHFyL211c3QgYmUgZHJvcHBlZC8sICdyZWN2bG9naWNhbCBlcnJvciBkZXRhaWwnKTsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSW5p dGlhbGl6ZSBtYXN0ZXIgbm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2Rl X21hc3Rlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+IDEsIGhhc19hcmNoaXZpbmcgPT4g MSk7Ciskbm9kZV9tYXN0ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxewor d2FsX2xldmVsID0gJ2xvZ2ljYWwnCittYXhfcmVwbGljYXRpb25fc2xvdHMgPSA0CittYXhf d2FsX3NlbmRlcnMgPSA0Citsb2dfbWluX21lc3NhZ2VzID0gJ2RlYnVnMicKK2xvZ19lcnJv cl92ZXJib3NpdHkgPSB2ZXJib3NlCisjIHNlbmQgc3RhdHVzIHJhcGlkbHkgc28gd2UgcHJv bXB0bHkgYWR2YW5jZSB4bWluIG9uIG1hc3Rlcgord2FsX3JlY2VpdmVyX3N0YXR1c19pbnRl cnZhbCA9IDEKKyMgdmVyeSBwcm9tcHRseSB0ZXJtaW5hdGUgY29uZmxpY3RpbmcgYmFja2Vu ZHMKK21heF9zdGFuZGJ5X3N0cmVhbWluZ19kZWxheSA9ICcycycKK30pOworJG5vZGVfbWFz dGVyLT5kdW1wX2luZm87Ciskbm9kZV9tYXN0ZXItPnN0YXJ0OworCiskbm9kZV9tYXN0ZXIt PnBzcWwoJ3Bvc3RncmVzJywgcVtDUkVBVEUgREFUQUJBU0UgdGVzdGRiXSk7CisKKyRub2Rl X21hc3Rlci0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtTRUxFQ1QgKiBGUk9NIHBnX2NyZWF0 ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckbWFzdGVyX3Nsb3RuYW1lJyk7XSk7Citt eSAkYmFja3VwX25hbWUgPSAnYjEnOworJG5vZGVfbWFzdGVyLT5iYWNrdXAoJGJhY2t1cF9u YW1lKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBzbGF2ZSBu b2RlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5pbml0X2Zy b21fYmFja3VwKAorCSRub2RlX21hc3RlciwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1p bmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOworJG5vZGVfc3RhbmRieS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJG1h c3Rlcl9zbG90bmFtZSddKTsKKyRub2RlX3N0YW5kYnktPnN0YXJ0OworJG5vZGVfbWFzdGVy LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0 ZXItPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxpY3Q6IERyb3AgY29uZmxp Y3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMSA6IGhv dF9zdGFuZGJ5X2ZlZWRiYWNrIG9mZgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBP bmUgd2F5IHRvIHJlcHJvZHVjZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVN IEZVTEwgd2l0aAorIyBob3Rfc3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHNsYXZl LgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hv dF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJlc3RhcnQ7 CisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBmb3IgZXhw ZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIG1hc3Rlci4gQm90aCBzaG91bGQg YmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3htaW5zKCRub2Rl X21hc3RlciwgJG1hc3Rlcl9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5VTEwgQU5EIGNh dGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7 CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRub2RlX21hc3Rlci0+ c2FmZV9wc3FsKCd0ZXN0ZGInLCAnVkFDVVVNIEZVTEwnKTsKKworJG5vZGVfbWFzdGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXIt PmxzbignZmx1c2gnKSk7CisKK2NoZWNrX3Nsb3RzX2Ryb3BwZWQoJGhhbmRsZSk7CisKKyMg VHVybiBob3Rfc3RhbmRieV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBl bmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBv bgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZl ciBmZWVkYmFjayBzZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNh dGFsb2dfeG1pbiBvbiBtYXN0ZXIuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHht aW4gc2hvdWxkIGFkdmFuY2UsCisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJl bWFpbiBOVUxMIHNpbmNlIHRoZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3ht aW5zKCRub2RlX21hc3RlciwgJG1hc3Rlcl9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5P VCBOVUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGlj dDogRHJvcCBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBT Y2VuYXJpbyAyIDogaW5jb3JyZWN0IHdhbF9sZXZlbCBhdCBtYXN0ZXIKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dp Y2FsX3Nsb3RzKCk7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMgTWFr ZSBtYXN0ZXIgd2FsX2xldmVsIHJlcGxpY2EuIFRoaXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29u ZmxpY3QuCiskbm9kZV9tYXN0ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFb Cit3YWxfbGV2ZWwgPSAncmVwbGljYScKK10pOworJG5vZGVfbWFzdGVyLT5yZXN0YXJ0Owor Ciskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxh eScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworY2hlY2tfc2xvdHNfZHJvcHBl ZCgkaGFuZGxlKTsKKworIyBSZXN0b3JlIG1hc3RlciB3YWxfbGV2ZWwKKyRub2RlX21hc3Rl ci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdsb2dp Y2FsJworXSk7Ciskbm9kZV9tYXN0ZXItPnJlc3RhcnQ7Ciskbm9kZV9tYXN0ZXItPndhaXRf Zm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNu KCdmbHVzaCcpKTsKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIyBEUk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3Rz LCBpbmNsdWRpbmcgYWN0aXZlIHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgYSBzbG90IG9uIGEgZGF0YWJh c2UgdGhhdCB3b3VsZCBub3QgYmUgZHJvcHBlZC4gVGhpcyBzbG90IHNob3VsZCBub3QKKyMg Z2V0IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0 YW5kYnkoJG5vZGVfbWFzdGVyLCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7CitjcmVhdGVf bG9naWNhbF9zbG90cygpOworJGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoKTsKKworIyBk cm9wZGIgb24gdGhlIG1hc3RlciB0byB2ZXJpZnkgc2xvdHMgYXJlIGRyb3BwZWQgb24gc3Rh bmRieQorJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFC QVNFIHRlc3RkYl0pOworCiskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVf c3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworaXMo JG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcVtTRUxFQ1QgRVhJU1RT KFNFTEVDVCAxIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICd0ZXN0ZGInKV0p LCAnZicsCisJJ2RhdGFiYXNlIGRyb3BwZWQgb24gc3RhbmRieScpOworCitjaGVja19zbG90 c19kcm9wcGVkKCRoYW5kbGUpOworCitpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdvdGhlcnNs b3QnKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLAorCSdvdGhlcnNsb3Qgb24gc3RhbmRi eSBub3QgZHJvcHBlZCcpOworCisjIENsZWFudXAgOiBtYW51YWxseSBkcm9wIHRoZSBzbG90 IHRoYXQgd2FzIG5vdCBkcm9wcGVkLgorJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMn LCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ290aGVyc2xvdCcpXSk7Ci0t IAoyLjE0LjUKCg== --------------E57C3138DCDD77C4B41FB56F Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v9-0005-Doc-changes-describing-details-about-logical-deco.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v9-0005-Doc-changes-describing-details-about-logical-deco.pa"; filename*1="tch" RnJvbSAxZTU5MTY3OGEyN2I1NzNkM2I2MTViYjUxZDQwNTU0NDM1MTIxYTdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA0IEZlYiAyMDIxIDE2OjI3OjQxICswMDAwClN1YmplY3Q6IFtQQVRD SCB2OSA1LzVdIERvYyBjaGFuZ2VzIGRlc2NyaWJpbmcgZGV0YWlscyBhYm91dCBsb2dpY2Fs IGRlY29kaW5nLgoKLS0tCiBkb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwgfCAx OCArKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCsp CiAxMDAuMCUgZG9jL3NyYy9zZ21sLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dp Y2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbApp bmRleCBjZjcwNWVkOWNkLi4zYmYxODg5NjMzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv bG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGlu Zy5zZ21sCkBAIC0yOTksNiArMjk5LDI0IEBAIHBvc3RncmVzPSMgc2VsZWN0ICogZnJvbSBw Z19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5V CiAgICAgIG1heSBjb25zdW1lIGNoYW5nZXMgZnJvbSBhIHNsb3QgYXQgYW55IGdpdmVuIHRp bWUuCiAgICAgPC9wYXJhPgogCisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBsaWNh dGlvbiBzbG90IGNhbiBhbHNvIGJlIGNyZWF0ZWQgb24gYSBob3Qgc3RhbmRieS4gVG8gcHJl dmVudAorICAgICA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+IGZyb20gcmVtb3ZpbmcgcmVx dWlyZWQgcm93cyBmcm9tIHRoZSBzeXN0ZW0KKyAgICAgY2F0YWxvZ3MsIDx2YXJuYW1lPmhv dF9zdGFuZGJ5X2ZlZWRiYWNrPC92YXJuYW1lPiBzaG91bGQgYmUgc2V0IG9uIHRoZQorICAg ICBzdGFuZGJ5LiBJbiBzcGl0ZSBvZiB0aGF0LCBpZiBhbnkgcmVxdWlyZWQgcm93cyBnZXQg cmVtb3ZlZCwgdGhlIHNsb3QgZ2V0cworICAgICBkcm9wcGVkLiAgRXhpc3RpbmcgbG9naWNh bCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGRyb3BwZWQgaWYgd2FsX2xldmVsCisgICAg IG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0byBsZXNzIHRoYW4gJ2xvZ2ljYWwnLgorICAgIDwv cGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3IgYSBsb2dpY2FsIHNsb3QgdG8gYmUgY3Jl YXRlZCwgaXQgYnVpbGRzIGEgaGlzdG9yaWMgc25hcHNob3QsIGZvciB3aGljaAorICAgICBp bmZvcm1hdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRyYW5zYWN0aW9ucyBp cyBlc3NlbnRpYWwuIE9uCisgICAgIHByaW1hcnksIHRoaXMgaW5mb3JtYXRpb24gaXMgYXZh aWxhYmxlLCBidXQgb24gc3RhbmRieSwgdGhpcyBpbmZvcm1hdGlvbgorICAgICBoYXMgdG8g YmUgb2J0YWluZWQgZnJvbSBwcmltYXJ5LiBTbywgc2xvdCBjcmVhdGlvbiBtYXkgd2FpdCBm b3Igc29tZQorICAgICBhY3Rpdml0eSB0byBoYXBwZW4gb24gdGhlIHByaW1hcnkuIElmIHRo ZSBwcmltYXJ5IGlzIGlkbGUsIGNyZWF0aW5nIGEKKyAgICAgbG9naWNhbCBzbG90IG9uIHN0 YW5kYnkgbWF5IHRha2UgYSBub3RpY2VhYmxlIHRpbWUuCisgICAgPC9wYXJhPgorCiAgICAg PGNhdXRpb24+CiAgICAgIDxwYXJhPgogICAgICAgUmVwbGljYXRpb24gc2xvdHMgcGVyc2lz dCBhY3Jvc3MgY3Jhc2hlcyBhbmQga25vdyBub3RoaW5nIGFib3V0IHRoZSBzdGF0ZQotLSAK Mi4xNC41Cgo= --------------E57C3138DCDD77C4B41FB56F--