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 1pCbxi-0003Ti-Bb for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Jan 2023 07:43:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pCbwi-0001NX-O5 for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Jan 2023 07:42:52 +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 1pCbwi-0001NO-5p for pgsql-hackers@lists.postgresql.org; Tue, 03 Jan 2023 07:42:52 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pCbwY-0000Rm-QT for pgsql-hackers@postgresql.org; Tue, 03 Jan 2023 07:42:51 +0000 Received: by mail-wr1-x432.google.com with SMTP id d9so27836wrp.10 for ; Mon, 02 Jan 2023 23:42:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=dpYb+ceoJ2kXK/wZIbMi0q0k3QsvDD+vrn2tdnPNV/A=; b=ilr7xEzu2+FYPx543t8w4LeEpm4KqiPTulBoi0tCDjsuECF8h+XngCGt5QlbvYCnt4 Qzk7Fe/aIg6mss8p3ePxVEw65dplDEmT3vIEboYPg94CQrV9SBXKIOdl93gso7j+Njxi PwTYEkDD49S8bO8yPw1u8cTNXszeaH0sCHfCEhXWio1IBmqSW02pUlLcdGoDqJH15v5d J5iDY/FotNUkRt6UgmsRRrIXlQfszTqIBjAXzBwYa4mH4ObwPlcYqDMZITLCR/A3UqXH bcOTQH6s+59a8VfifT/9j6F206Jn5utxmj3hjIdIvH1RrDtKhEh70vJtMZiqMZusIUjC LlgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dpYb+ceoJ2kXK/wZIbMi0q0k3QsvDD+vrn2tdnPNV/A=; b=pVncCbtOMMYTn3e0zLS/A4Zt2IOksNlMr5fiXt8WCx8/xleP+PV2TeCXhNuWhIS4/6 XJWMdwv8jfdSKMnmJQGjkZ+eywbMUBmZE0/oln4MVJ84tdnzU3ainBrLiz0gvM4RT63G 0L0S3ej3gItQxPl6+cQBvPlhqXRYbZ7wgnCaNYpbcUoRrEc65pwCHzxYPP32g2rlmvxt vaYxHZYHVQeAXGGXQWL6DXtdszBXhHrtK4rN1lEDsuig5xx8D0sFIefnbc/og+sfvCnO IdS2htC9X2+/957pgLl8k2lRJUi9Hp4cCLKNsriJFukTcgZ3p1s6n0Uc83/csTc/VXTd qe7Q== X-Gm-Message-State: AFqh2ko0QsRIJnm7nC2+Svl3UbarcUjA3UR9VC5ms3/0+DTNILY+l80M uXWYocOgFZyHHepkFSPq1mw= X-Google-Smtp-Source: AMrXdXvdvAZHOX9Zd2eJioZruvZ4XPvPAJ8CI99/9re4R8jFf5J6CJJI1AF3a7CoqPXEW6XUk++TQA== X-Received: by 2002:adf:e283:0:b0:242:324e:b3d with SMTP id v3-20020adfe283000000b00242324e0b3dmr25612945wri.1.1672731760855; Mon, 02 Jan 2023 23:42:40 -0800 (PST) Received: from [192.168.9.100] ([54.239.6.185]) by smtp.gmail.com with ESMTPSA id f13-20020a5d4dcd000000b0023659925b2asm30450774wru.51.2023.01.02.23.42.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Jan 2023 23:42:39 -0800 (PST) Content-Type: multipart/mixed; boundary="------------oIFDDdQpExMWTSNNkT0LkHjl" Message-ID: <05c0c4f3-82eb-bc6d-c876-5a265c05927b@gmail.com> Date: Tue, 3 Jan 2023 08:41:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: Minimal logical decoding on standbys Content-Language: en-US From: "Drouvot, Bertrand" To: Robert Haas , Andres Freund Cc: Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <4b19419f-2e7c-a76b-c948-26d10af6693d@gmail.com> <20221207175824.apmc5clnj2fdjkaq@awork3.anarazel.de> <09c26df0-c5f9-eae0-5a6a-10fb00b0522e@gmail.com> <9f0a021e-40e1-0ae6-8086-a4457c99749e@gmail.com> <0ae83e69-bda0-0eb8-ef4a-d169292e3f66@gmail.com> <47f5faf0-6a6d-602a-5d5b-9449ca74c6ad@gmail.com> <20221214173552.sshklqvwezeo52h3@alap3.anarazel.de> <1f2ad9fd-53ff-74cc-a602-72d45423bcab@gmail.com> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, On 12/22/22 8:50 AM, Drouvot, Bertrand wrote: > Hi, > > On 12/21/22 10:06 AM, Drouvot, Bertrand wrote: >> Hi, >> >> On 12/20/22 10:41 PM, Robert Haas wrote: >>> On Tue, Dec 20, 2022 at 3:39 PM Robert Haas wrote: >>> I guess whatever else we >>> do here, we should fix the comments. >>> >> >> Agree, please find attached a patch proposal doing so. >> >> >>> Bottom line is that I think the two cases that have alignment issues >>> as coded are xl_hash_vacuum_one_page and gistxlogDelete. Everything >>> else is OK, as far as I can tell right now. >>> >> >> Thanks a lot for the repro(s) and explanations! That's very useful/helpful. >> >> Based on your discovery about the wrong comments above, I'm now tempted to fix those 2 alignment issues >> by using a FLEXIBLE_ARRAY_MEMBER within those structs (as you proposed in [1]) (as that should also prevent >> any possible wrong comments about where the array is located). >> >> What do you think? > > As mentioned above, It looks to me that making use of a FLEXIBLE_ARRAY_MEMBER is a good choice. > So, please find attached v35 making use of a FLEXIBLE_ARRAY_MEMBER in xl_hash_vacuum_one_page and gistxlogDelete (your 2 repros are not failing anymore). > I've also added a few words in the commit message in 0001 about it. > > So, we end up with: > > (gdb) ptype /o struct xl_hash_vacuum_one_page > /* offset      |    size */  type = struct xl_hash_vacuum_one_page { > /*      0      |       4 */    TransactionId snapshotConflictHorizon; > /*      4      |       4 */    int ntuples; > /*      8      |       1 */    _Bool isCatalogRel; > /* XXX  1-byte hole      */ > /*     10      |       0 */    OffsetNumber offsets[]; > /* XXX  2-byte padding   */ > >                                /* total size (bytes):   12 */ >                              } > > (gdb) ptype /o struct gistxlogDelete > /* offset      |    size */  type = struct gistxlogDelete { > /*      0      |       4 */    TransactionId snapshotConflictHorizon; > /*      4      |       2 */    uint16 ntodelete; > /*      6      |       1 */    _Bool isCatalogRel; > /* XXX  1-byte hole      */ > /*      8      |       0 */    OffsetNumber offsets[]; > >                                /* total size (bytes):    8 */ >                              } > > While looking at it, I've a question: xl_hash_vacuum_one_page.ntuples is an int, do you see any reason why it is not an uint16? (we would get rid of 4 bytes in the struct). > Please find attached v36, tiny rebase due to 1de58df4fe. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; name="v36-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v36-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwNWEyMzkxYTVlYWYwY2U5ODYxMjkwMDkxNTkzMzY5MGFkOTllNWI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAzIEphbiAyMDIzIDA2OjUyOjMxICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MzYgNi82XSBGaXhpbmcgV2Fsc2VuZGVyIGNvcm5lciBjYXNlIHdpdGggbG9naWNhbCBk ZWNvZGluZyBvbgogc3RhbmRieS4KClRoZSBwcm9ibGVtIGlzIHRoYXQgV2FsU25kV2FpdEZv cldhbCgpIHdhaXRzIGZvciB0aGUgKnJlcGxheSogTFNOIHRvCmluY3JlYXNlLCBidXQgZ2V0 cyB3b2tlbiB1cCBieSB3YWxyZWNlaXZlciB3aGVuIG5ldyBXQUwgaGFzIGJlZW4KZmx1c2hl ZC4gV2hpY2ggbWVhbnMgdGhhdCB0eXBpY2FsbHkgd2Fsc2VuZGVycyB3aWxsIGdldCB3b2tl biB1cCBhdCB0aGUKc2FtZSB0aW1lIHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyB3aWxsIGJl IC0gd2hpY2ggbWVhbnMgdGhhdCBieSB0aGUKdGltZSB0aGUgbG9naWNhbCB3YWxzZW5kZXIg Y2hlY2tzIEdldFhMb2dSZXBsYXlSZWNQdHIoKSBpdCdzIHVubGlrZWx5CnRoYXQgdGhlIHN0 YXJ0dXAgcHJvY2VzcyBhbHJlYWR5IHJlcGxheWVkIHRoZSByZWNvcmQgYW5kIHVwZGF0ZWQK WExvZ0N0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRyLgoKSW50cm9kdWNpbmcgYSBuZXcgY29u ZGl0aW9uIHZhcmlhYmxlIHRvIGZpeCB0aGlzIGNvcm5lciBjYXNlLgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIHwgMjggKysrKysrKysrKysrKysr KysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwgMzEg KysrKysrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dh aXRfZXZlbnQuYyAgIHwgIDMgKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5 LmggICAgICAgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmggICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmggICAgICAg ICAgICB8ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKICA0MS4yJSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICA0OC41JSBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KICAgMy42JSBzcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS8KICAgMy40JSBzcmMvaW5jbHVkZS9hY2Nlc3MvCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwppbmRleCBiYzNjM2ViM2U3Li45OGM5NmViODY0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3Zlcnku YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwpAQCAt MzU4LDYgKzM1OCw5IEBAIHR5cGVkZWYgc3RydWN0IFhMb2dSZWNvdmVyeUN0bERhdGEKIAlS ZWNvdmVyeVBhdXNlU3RhdGUgcmVjb3ZlcnlQYXVzZVN0YXRlOwogCUNvbmRpdGlvblZhcmlh YmxlIHJlY292ZXJ5Tm90UGF1c2VkQ1Y7CiAKKwkvKiBSZXBsYXkgc3RhdGUgKHNlZSBnZXRS ZXBsYXllZENWKCkgZm9yIG1vcmUgZXhwbGFuYXRpb24pICovCisJQ29uZGl0aW9uVmFyaWFi bGUgcmVwbGF5ZWRDVjsKKwogCXNsb2NrX3QJCWluZm9fbGNrOwkJLyogbG9ja3Mgc2hhcmVk IHZhcmlhYmxlcyBzaG93biBhYm92ZSAqLwogfSBYTG9nUmVjb3ZlcnlDdGxEYXRhOwogCkBA IC00NjcsNiArNDcwLDcgQEAgWExvZ1JlY292ZXJ5U2htZW1Jbml0KHZvaWQpCiAJU3Bpbkxv Y2tJbml0KCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKIAlJbml0U2hhcmVkTGF0Y2go JlhMb2dSZWNvdmVyeUN0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCk7CiAJQ29uZGl0aW9uVmFy aWFibGVJbml0KCZYTG9nUmVjb3ZlcnlDdGwtPnJlY292ZXJ5Tm90UGF1c2VkQ1YpOworCUNv bmRpdGlvblZhcmlhYmxlSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5yZXBsYXllZENWKTsKIH0K IAogLyoKQEAgLTE5MTYsNiArMTkyMCwxMSBAQCBBcHBseVdhbFJlY29yZChYTG9nUmVhZGVy U3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGltZUxpbmVJRCAqcmVw bAogCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkVExJID0gKnJlcGxheVRMSTsKIAlT cGluTG9ja1JlbGVhc2UoJlhMb2dSZWNvdmVyeUN0bC0+aW5mb19sY2spOwogCisJLyoKKwkg KiB3YWtlIHVwIHdhbHNlbmRlcihzKSB1c2VkIGJ5IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3Rh bmRieS4KKwkgKi8KKwlDb25kaXRpb25WYXJpYWJsZUJyb2FkY2FzdCgmWExvZ1JlY292ZXJ5 Q3RsLT5yZXBsYXllZENWKTsKKwogCS8qCiAJICogSWYgcm1fcmVkbyBjYWxsZWQgWExvZ1Jl cXVlc3RXYWxSZWNlaXZlclJlcGx5LCB0aGVuIHdlIHdha2UgdXAgdGhlCiAJICogcmVjZWl2 ZXIgc28gdGhhdCBpdCBub3RpY2VzIHRoZSB1cGRhdGVkIGxhc3RSZXBsYXllZEVuZFJlY1B0 ciBhbmQgc2VuZHMKQEAgLTQ5MTYsMyArNDkyNSwyMiBAQCBhc3NpZ25fcmVjb3ZlcnlfdGFy Z2V0X3hpZChjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQogCWVsc2UKIAkJcmVj b3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfVU5TRVQ7CiB9CisKKy8qCisgKiBSZXR1 cm4gdGhlIENvbmRpdGlvblZhcmlhYmxlIGluZGljYXRpbmcgdGhhdCBhIHJlcGxheSBoYXMg YmVlbiBkb25lLgorICoKKyAqIFRoaXMgaXMgbmVlZGVkIGZvciBsb2dpY2FsIGRlY29kaW5n IG9uIHN0YW5kYnkuIEluZGVlZCB0aGUgInByb2JsZW0iIGlzIHRoYXQKKyAqIFdhbFNuZFdh aXRGb3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0byBpbmNyZWFzZSwgYnV0 IGdldHMgd29rZW4gdXAKKyAqIGJ5IHdhbHJlY2VpdmVyIHdoZW4gbmV3IFdBTCBoYXMgYmVl biBmbHVzaGVkLiBXaGljaCBtZWFucyB0aGF0IHR5cGljYWxseQorICogd2Fsc2VuZGVycyB3 aWxsIGdldCB3b2tlbiB1cCBhdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHN0YXJ0dXAgcHJv Y2VzcworICogd2lsbCBiZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlIHRpbWUgdGhlIGxv Z2ljYWwgd2Fsc2VuZGVyIGNoZWNrcworICogR2V0WExvZ1JlcGxheVJlY1B0cigpIGl0J3Mg dW5saWtlbHkgdGhhdCB0aGUgc3RhcnR1cCBwcm9jZXNzIGFscmVhZHkgcmVwbGF5ZWQKKyAq IHRoZSByZWNvcmQgYW5kIHVwZGF0ZWQgWExvZ0N0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRy LgorICoKKyAqIFRoZSBDb25kaXRpb25WYXJpYWJsZSBYTG9nUmVjb3ZlcnlDdGwtPnJlcGxh eWVkQ1Ygc29sdmVzIHRoaXMgY29ybmVyIGNhc2UuCisgKi8KK0NvbmRpdGlvblZhcmlhYmxl ICoKK2dldFJlcGxheWVkQ1Yodm9pZCkKK3sKKwlyZXR1cm4gJlhMb2dSZWNvdmVyeUN0bC0+ cmVwbGF5ZWRDVjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXgg ZTg5YzIxMGE4ZS4uYjBiNmQ2ZmZjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2Vu ZGVyLmMKQEAgLTE1NDgsNiArMTU0OCw3IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0 ciBsb2MpCiB7CiAJaW50CQkJd2FrZUV2ZW50czsKIAlzdGF0aWMgWExvZ1JlY1B0ciBSZWNl bnRGbHVzaFB0ciA9IEludmFsaWRYTG9nUmVjUHRyOworCUNvbmRpdGlvblZhcmlhYmxlICpy ZXBsYXllZENWID0gZ2V0UmVwbGF5ZWRDVigpOwogCiAJLyoKIAkgKiBGYXN0IHBhdGggdG8g YXZvaWQgYWNxdWlyaW5nIHRoZSBzcGlubG9jayBpbiBjYXNlIHdlIGFscmVhZHkga25vdyB3 ZQpAQCAtMTU2Niw3ICsxNTY3LDYgQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxv YykKIAogCWZvciAoOzspCiAJewotCQlsb25nCQlzbGVlcHRpbWU7CiAKIAkJLyogQ2xlYXIg YW55IGFscmVhZHktcGVuZGluZyB3YWtldXBzICovCiAJCVJlc2V0TGF0Y2goTXlMYXRjaCk7 CkBAIC0xNjUwLDIwICsxNjUwLDM1IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAJCVdhbFNuZEtlZXBhbGl2ZUlmTmVjZXNzYXJ5KCk7CiAKIAkJLyoKLQkJICogU2xl ZXAgdW50aWwgc29tZXRoaW5nIGhhcHBlbnMgb3Igd2UgdGltZSBvdXQuICBBbHNvIHdhaXQg Zm9yIHRoZQotCQkgKiBzb2NrZXQgYmVjb21pbmcgd3JpdGFibGUsIGlmIHRoZXJlJ3Mgc3Rp bGwgcGVuZGluZyBvdXRwdXQuCisJCSAqIFdoZW4gbm90IGluIHJlY292ZXJ5LCBzbGVlcCB1 bnRpbCBzb21ldGhpbmcgaGFwcGVucyBvciB3ZSB0aW1lIG91dC4KKwkJICogQWxzbyB3YWl0 IGZvciB0aGUgc29ja2V0IGJlY29taW5nIHdyaXRhYmxlLCBpZiB0aGVyZSdzIHN0aWxsIHBl bmRpbmcgb3V0cHV0LgogCQkgKiBPdGhlcndpc2Ugd2UgbWlnaHQgc2l0IG9uIHNlbmRhYmxl IG91dHB1dCBkYXRhIHdoaWxlIHdhaXRpbmcgZm9yCiAJCSAqIG5ldyBXQUwgdG8gYmUgZ2Vu ZXJhdGVkLiAgKEJ1dCBpZiB3ZSBoYXZlIG5vdGhpbmcgdG8gc2VuZCwgd2UgZG9uJ3QKIAkJ ICogd2FudCB0byB3YWtlIG9uIHNvY2tldC13cml0YWJsZS4pCiAJCSAqLwotCQlzbGVlcHRp bWUgPSBXYWxTbmRDb21wdXRlU2xlZXB0aW1lKEdldEN1cnJlbnRUaW1lc3RhbXAoKSk7CisJ CWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCXsKKwkJCWxvbmcJCXNsZWVwdGltZTsK KwkJCXNsZWVwdGltZSA9IFdhbFNuZENvbXB1dGVTbGVlcHRpbWUoR2V0Q3VycmVudFRpbWVz dGFtcCgpKTsKIAotCQl3YWtlRXZlbnRzID0gV0xfU09DS0VUX1JFQURBQkxFOworCQkJd2Fr ZUV2ZW50cyA9IFdMX1NPQ0tFVF9SRUFEQUJMRTsKIAotCQlpZiAocHFfaXNfc2VuZF9wZW5k aW5nKCkpCi0JCQl3YWtlRXZlbnRzIHw9IFdMX1NPQ0tFVF9XUklURUFCTEU7CisJCQlpZiAo cHFfaXNfc2VuZF9wZW5kaW5nKCkpCisJCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJ VEVBQkxFOwogCi0JCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCBXQUlUX0VW RU5UX1dBTF9TRU5ERVJfV0FJVF9XQUwpOworCQkJV2FsU25kV2FpdCh3YWtlRXZlbnRzLCBz bGVlcHRpbWUgKiAxMCwgV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dBSVRfV0FMKTsKKwkJfQor CQllbHNlCisJCS8qCisJCSAqIFdlIGFyZSBpbiB0aGUgbG9naWNhbCBkZWNvZGluZyBvbiBz dGFuZGJ5IGNhc2UuCisJCSAqIFdlIGFyZSB3YWl0aW5nIGZvciB0aGUgc3RhcnR1cCBwcm9j ZXNzIHRvIHJlcGxheSB3YWwgcmVjb3JkKHMpIHVzaW5nCisJCSAqIGEgdGltZW91dCBpbiBj YXNlIHdlIGFyZSByZXF1ZXN0ZWQgdG8gc3RvcC4KKwkJICovCisJCXsKKwkJCUNvbmRpdGlv blZhcmlhYmxlUHJlcGFyZVRvU2xlZXAocmVwbGF5ZWRDVik7CisJCQlDb25kaXRpb25WYXJp YWJsZVRpbWVkU2xlZXAocmVwbGF5ZWRDViwgMTAwMCwKKwkJCQkJCQkJCQlXQUlUX0VWRU5U X1dBTF9TRU5ERVJfV0FJVF9SRVBMQVkpOworCQl9CiAJfQogCiAJLyogcmVhY3RpdmF0ZSBs YXRjaCBzbyBXYWxTbmRMb29wIGtub3dzIHRvIGNvbnRpbnVlICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKaW5kZXggZjk1NzRlODAwZi4uOGFjOWE2MTRl MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQuYwpAQCAtNDU3 LDYgKzQ1Nyw5IEBAIHBnc3RhdF9nZXRfd2FpdF9pcGMoV2FpdEV2ZW50SVBDIHcpCiAJCWNh c2UgV0FJVF9FVkVOVF9XQUxfUkVDRUlWRVJfV0FJVF9TVEFSVDoKIAkJCWV2ZW50X25hbWUg PSAiV2FsUmVjZWl2ZXJXYWl0U3RhcnQiOwogCQkJYnJlYWs7CisJCWNhc2UgV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZOgorCQkJZXZlbnRfbmFtZSA9ICJXYWxSZWNlaXZl cldhaXRSZXBsYXkiOworCQkJYnJlYWs7CiAJCWNhc2UgV0FJVF9FVkVOVF9YQUNUX0dST1VQ X1VQREFURToKIAkJCWV2ZW50X25hbWUgPSAiWGFjdEdyb3VwVXBkYXRlIjsKIAkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCmluZGV4IDQ3YzI5MzUwZjUuLmI2NWMy Y2YxZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgKQEAgLTE1LDYgKzE1LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnRyb2wuaCIKICNpbmNsdWRlICJsaWIvc3Ry aW5naW5mby5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCiAKIC8qCiAgKiBSZWNvdmVyeSB0YXJnZXQg dHlwZS4KQEAgLTE1NSw0ICsxNTYsNiBAQCBleHRlcm4gdm9pZCBSZWNvdmVyeVJlcXVpcmVz SW50UGFyYW1ldGVyKGNvbnN0IGNoYXIgKnBhcmFtX25hbWUsIGludCBjdXJyVmFsdWUsCiAK IGV4dGVybiB2b2lkIHhsb2dfb3V0ZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpOwogCitleHRlcm4gQ29uZGl0aW9uVmFyaWFibGUgKmdldFJlcGxheWVk Q1Yodm9pZCk7CisKICNlbmRpZgkJCQkJCQkvKiBYTE9HUkVDT1ZFUllfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmggYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaAppbmRleCA1MmJiM2UyYWFlLi4yZmQ3NDVmZTcy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaAorKysg Yi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaApAQCAtMTMsNiArMTMsNyBA QAogI2RlZmluZSBfV0FMU0VOREVSX0gKIAogI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1 ZGUgInN0b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCiAKIC8qCiAgKiBXaGF0IHRvIGRv IHdpdGggYSBzbmFwc2hvdCBpbiBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBjb21tYW5kLgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvd2FpdF9ldmVudC5oCmluZGV4IGY1MzI1NGFkMWYuLjFlYjQ0MWRmZmUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy93YWl0X2V2ZW50LmgKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVu dW0KIAlXQUlUX0VWRU5UX1NZTkNfUkVQLAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX0VY SVQsCiAJV0FJVF9FVkVOVF9XQUxfUkVDRUlWRVJfV0FJVF9TVEFSVCwKKwlXQUlUX0VWRU5U X1dBTF9TRU5ERVJfV0FJVF9SRVBMQVksCiAJV0FJVF9FVkVOVF9YQUNUX0dST1VQX1VQREFU RQogfSBXYWl0RXZlbnRJUEM7CiAKLS0gCjIuMzQuMQoK --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; name="v36-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v36-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3MjRlYTYyZjNjNjg2NWZkZjE4NjgzMThlNTIzZmU2MGEyYTM4YmRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAzIEphbiAyMDIzIDA2OjUxOjQ0ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MzYgNS82XSBEb2MgY2hhbmdlcyBkZXNjcmliaW5nIGRldGFpbHMgYWJvdXQgbG9naWNh bAogZGVjb2RpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9sZGVyIHZlcnNp b24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQgRHJvdXZvdApSZXZpZXdlZC1CeTogQmVy dHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZhYnJpemlvIGRl IFJveWVzIE1lbGxvCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIHwg MjEgKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9u cygrKQogMTAwLjAlIGRvYy9zcmMvc2dtbC8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv bG9naWNhbGRlY29kaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNn bWwKaW5kZXggMzhlZTY5ZGNjYy4uOWFjZjE2MDM3YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbApAQCAtMzE2LDYgKzMxNiwyNyBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZy b20gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxM LCBOVQogICAgICBtYXkgY29uc3VtZSBjaGFuZ2VzIGZyb20gYSBzbG90IGF0IGFueSBnaXZl biB0aW1lLgogICAgIDwvcGFyYT4KIAorICAgIDxwYXJhPgorICAgICBBIGxvZ2ljYWwgcmVw bGljYXRpb24gc2xvdCBjYW4gYWxzbyBiZSBjcmVhdGVkIG9uIGEgaG90IHN0YW5kYnkuIFRv IHByZXZlbnQKKyAgICAgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBmcm9tIHJlbW92aW5n IHJlcXVpcmVkIHJvd3MgZnJvbSB0aGUgc3lzdGVtCisgICAgIGNhdGFsb2dzLCA8dmFybmFt ZT5ob3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT4gc2hvdWxkIGJlIHNldCBvbiB0aGUK KyAgICAgc3RhbmRieS4gSW4gc3BpdGUgb2YgdGhhdCwgaWYgYW55IHJlcXVpcmVkIHJvd3Mg Z2V0IHJlbW92ZWQsIHRoZSBzbG90IGdldHMKKyAgICAgaW52YWxpZGF0ZWQuIEl0J3MgaGln aGx5IHJlY29tbWVuZGVkIHRvIHVzZSBhIHBoeXNpY2FsIHNsb3QgYmV0d2VlbiB0aGUgcHJp bWFyeQorICAgICBhbmQgdGhlIHN0YW5kYnkuIE90aGVyd2lzZSwgaG90X3N0YW5kYnlfZmVl ZGJhY2sgd2lsbCB3b3JrLCBidXQgb25seSB3aGlsZSB0aGUKKyAgICAgY29ubmVjdGlvbiBp cyBhbGl2ZSAoZm9yIGV4YW1wbGUgYSBub2RlIHJlc3RhcnQgd291bGQgYnJlYWsgaXQpLiBF eGlzdGluZworICAgICBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkgYWxzbyBnZXQgaW52YWxp ZGF0ZWQgaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0bworICAgICBsZXNz IHRoYW4gJ2xvZ2ljYWwnLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3Ig YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCwgaXQgYnVpbGRzIGEgaGlzdG9yaWMgc25h cHNob3QsIGZvciB3aGljaAorICAgICBpbmZvcm1hdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRs eSBydW5uaW5nIHRyYW5zYWN0aW9ucyBpcyBlc3NlbnRpYWwuIE9uCisgICAgIHByaW1hcnks IHRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLCBidXQgb24gc3RhbmRieSwgdGhpcyBp bmZvcm1hdGlvbgorICAgICBoYXMgdG8gYmUgb2J0YWluZWQgZnJvbSBwcmltYXJ5LiBTbywg c2xvdCBjcmVhdGlvbiBtYXkgd2FpdCBmb3Igc29tZQorICAgICBhY3Rpdml0eSB0byBoYXBw ZW4gb24gdGhlIHByaW1hcnkuIElmIHRoZSBwcmltYXJ5IGlzIGlkbGUsIGNyZWF0aW5nIGEK KyAgICAgbG9naWNhbCBzbG90IG9uIHN0YW5kYnkgbWF5IHRha2UgYSBub3RpY2VhYmxlIHRp bWUuCisgICAgPC9wYXJhPgorCiAgICAgPGNhdXRpb24+CiAgICAgIDxwYXJhPgogICAgICAg UmVwbGljYXRpb24gc2xvdHMgcGVyc2lzdCBhY3Jvc3MgY3Jhc2hlcyBhbmQga25vdyBub3Ro aW5nIGFib3V0IHRoZSBzdGF0ZQotLSAKMi4zNC4xCgo= --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; name="v36-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v36-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA5NGQ4Y2ZmZTdkOGYwZDNlMGY2MTZkN2RmNzVkYWIyYTc5MzQ0ZTBiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAzIEphbiAyMDIzIDA2OjUwOjU4ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MzYgNC82XSBOZXcgVEFQIHRlc3QgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRi eS4KCkF1dGhvcjogQ3JhaWcgUmluZ2VyIChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBL aGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2 b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxs bwotLS0KIHNyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0gICAgICB8 ICAzNyArKwogc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg IHwgICAxICsKIC4uLi90LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwgICAgICAg ICB8IDQ3OSArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTE3IGluc2Vy dGlvbnMoKykKICAgNi4wJSBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC8KICA5My43 JSBzcmMvdGVzdC9yZWNvdmVyeS90LwoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9z dGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0gYi9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVz dC9DbHVzdGVyLnBtCmluZGV4IDA0OTIxY2EzYTMuLjZmM2M5YTY5MTAgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KKysrIGIvc3JjL3Rl c3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5wbQpAQCAtMzAzNyw2ICszMDM3LDQz IEBAICRTSUd7VEVSTX0gPSAkU0lHe0lOVH0gPSBzdWIgewogCiA9cG9kCiAKKz1pdGVtICRu b2RlLT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoc2VsZiwgbWFzdGVyLCBzbG90 X25hbWUsIGRibmFtZSkKKworQ3JlYXRlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBvbiBn aXZlbiBzdGFuZGJ5CisKKz1jdXQKKworc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3Rh bmRieQoreworCW15ICgkc2VsZiwgJG1hc3RlciwgJHNsb3RfbmFtZSwgJGRibmFtZSkgPSBA XzsKKwlteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKwlteSAkaGFuZGxlOworCisJJGhhbmRs ZSA9IElQQzo6UnVuOjpzdGFydChbJ3BnX3JlY3Zsb2dpY2FsJywgJy1kJywgJHNlbGYtPmNv bm5zdHIoJGRibmFtZSksICctUCcsICd0ZXN0X2RlY29kaW5nJywgJy1TJywgJHNsb3RfbmFt ZSwgJy0tY3JlYXRlLXNsb3QnXSwgJz4nLCBcJHN0ZG91dCwgJzI+JywgXCRzdGRlcnIpOwor CisJIyBPbmNlIHNsb3QgcmVzdGFydF9sc24gaXMgY3JlYXRlZCwgdGhlIHN0YW5kYnkgbG9v a3MgZm9yIHhsX3J1bm5pbmdfeGFjdHMKKwkjIFdBTCByZWNvcmQgZnJvbSB0aGUgcmVzdGFy dF9sc24gb253YXJkcy4gU28gZmlyc3RseSwgd2FpdCB1bnRpbCB0aGUgc2xvdAorCSMgcmVz dGFydF9sc24gaXMgZXZhbHVhdGVkLgorCisJJHNlbGYtPnBvbGxfcXVlcnlfdW50aWwoCisJ CSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgcmVzdGFydF9sc24gSVMgTk9UIE5VTEwKKwkJ RlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9 ICckc2xvdF9uYW1lJworCV0pIG9yIGRpZSAidGltZWQgb3V0IHdhaXRpbmcgZm9yIGxvZ2lj YWwgc2xvdCB0byBjYWxjdWxhdGUgaXRzIHJlc3RhcnRfbHNuIjsKKworCSMgTm93IGFycmFu Z2UgZm9yIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCBmb3Igd2hpY2ggcGdfcmVjdmxv Z2ljYWwKKwkjIGlzIHdhaXRpbmcuCisJJG1hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdDSEVDS1BPSU5UJyk7CisKKwkkaGFuZGxlLT5maW5pc2goKTsKKworCWlzKCRzZWxmLT5z bG90KCRzbG90X25hbWUpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsICRzbG90X25hbWUg LiAnIG9uIHN0YW5kYnkgY3JlYXRlZCcpCisJCW9yIGRpZSAiY291bGQgbm90IGNyZWF0ZSBz bG90IiAuICRzbG90X25hbWU7Cit9CisKKz1wb2QKKwogPWJhY2sKIAogPWN1dApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9yZWNvdmVy eS9tZXNvbi5idWlsZAppbmRleCBlZGFhYTFhM2NlLi41MmIyODE2YzdhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9yZWNvdmVy eS9tZXNvbi5idWlsZApAQCAtNDAsNiArNDAsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8w MzFfcmVjb3ZlcnlfY29uZmxpY3QucGwnLAogICAgICAgJ3QvMDMyX3JlbGZpbGVub2RlX3Jl dXNlLnBsJywKICAgICAgICd0LzAzM19yZXBsYXlfdHNwX2Ryb3BzLnBsJywKKyAgICAgICd0 LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwnLAogICAgIF0sCiAgIH0sCiB9CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVj b2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVj b2RpbmcucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDI1ODg0 NGM4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM0X3N0YW5k YnlfbG9naWNhbF9kZWNvZGluZy5wbApAQCAtMCwwICsxLDQ3OSBAQAorIyBsb2dpY2FsIGRl Y29kaW5nIG9uIHN0YW5kYnkgOiB0ZXN0IGxvZ2ljYWwgZGVjb2RpbmcsCisjIHJlY292ZXJ5 IGNvbmZsaWN0IGFuZCBzdGFuZGJ5IHByb21vdGlvbi4KKwordXNlIHN0cmljdDsKK3VzZSB3 YXJuaW5nczsKKwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgVGVzdDo6 TW9yZSB0ZXN0cyA9PiA0MjsKKworbXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwgJHJl dCwgJGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9wcmltYXJ5ID0gUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3Rlci0+bmV3KCdwcmltYXJ5Jyk7CitteSAkbm9kZV9zdGFuZGJ5ID0gUG9z dGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5Jyk7CisKKyMgTmFtZSBmb3Ig dGhlIHBoeXNpY2FsIHNsb3Qgb24gcHJpbWFyeQorbXkgJHByaW1hcnlfc2xvdG5hbWUgPSAn cHJpbWFyeV9waHlzaWNhbCc7CisKKyMgZmluZCAkcGF0IGluIGxvZ2ZpbGUgb2YgJG5vZGUg YWZ0ZXIgJG9mZi10aCBieXRlCitzdWIgZmluZF9pbl9sb2cKK3sKKwlteSAoJG5vZGUsICRw YXQsICRvZmYpID0gQF87CisKKwkkb2ZmID0gMCB1bmxlc3MgZGVmaW5lZCAkb2ZmOworCW15 ICRsb2cgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c2x1cnBfZmlsZSgkbm9kZS0+bG9n ZmlsZSk7CisJcmV0dXJuIDAgaWYgKGxlbmd0aCgkbG9nKSA8PSAkb2ZmKTsKKworCSRsb2cg PSBzdWJzdHIoJGxvZywgJG9mZik7CisKKwlyZXR1cm4gJGxvZyA9fiBtLyRwYXQvOworfQor CisjIEZldGNoIHhtaW4gY29sdW1ucyBmcm9tIHNsb3QncyBwZ19yZXBsaWNhdGlvbl9zbG90 cyByb3csIGFmdGVyIHdhaXRpbmcgZm9yCisjIGdpdmVuIGJvb2xlYW4gY29uZGl0aW9uIHRv IGJlIHRydWUgdG8gZW5zdXJlIHdlJ3ZlIHJlYWNoZWQgYSBxdWllc2NlbnQgc3RhdGUuCitz dWIgd2FpdF9mb3JfeG1pbnMKK3sKKwlteSAoJG5vZGUsICRzbG90bmFtZSwgJGNoZWNrX2V4 cHIpID0gQF87CisKKwkkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywg cXFbCisJCVNFTEVDVCAkY2hlY2tfZXhwcgorCQlGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGlj YXRpb25fc2xvdHMKKwkJV0hFUkUgc2xvdF9uYW1lID0gJyRzbG90bmFtZSc7CisJXSkgb3Ig ZGllICJUaW1lZCBvdXQgd2FpdGluZyBmb3Igc2xvdCB4bWlucyB0byBhZHZhbmNlIjsKK30K KworIyBDcmVhdGUgdGhlIHJlcXVpcmVkIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieS4KK3N1 YiBjcmVhdGVfbG9naWNhbF9zbG90cworeworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dp Y2FsX3Nsb3Rfb25fc3RhbmRieSgkbm9kZV9wcmltYXJ5LCAnaW5hY3RpdmVzbG90JywgJ3Rl c3RkYicpOworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRi eSgkbm9kZV9wcmltYXJ5LCAnYWN0aXZlc2xvdCcsICd0ZXN0ZGInKTsKK30KKworIyBBY3F1 aXJlIG9uZSBvZiB0aGUgc3RhbmRieSBsb2dpY2FsIHNsb3RzIGNyZWF0ZWQgYnkgY3JlYXRl X2xvZ2ljYWxfc2xvdHMoKS4KKyMgSW4gY2FzZSB3YWl0IGlzIHRydWUgd2UgYXJlIHdhaXRp bmcgZm9yIGFuIGFjdGl2ZSBwaWQgb24gdGhlICdhY3RpdmVzbG90JyBzbG90LgorIyBJZiB3 YWl0IGlzIG5vdCB0cnVlIGl0IG1lYW5zIHdlIGFyZSB0ZXN0aW5nIGEga25vd24gZmFpbHVy ZSBzY2VuYXJpby4KK3N1YiBtYWtlX3Nsb3RfYWN0aXZlCit7CisJbXkgJHdhaXQgPSBzaGlm dDsKKwlteSAkc2xvdF91c2VyX2hhbmRsZTsKKworCXByaW50ICJzdGFydGluZyBwZ19yZWN2 bG9naWNhbFxuIjsKKwkkc2xvdF91c2VyX2hhbmRsZSA9IElQQzo6UnVuOjpzdGFydChbJ3Bn X3JlY3Zsb2dpY2FsJywgJy1kJywgJG5vZGVfc3RhbmRieS0+Y29ubnN0cigndGVzdGRiJyks ICctUycsICdhY3RpdmVzbG90JywgJy1mJywgJy0nLCAnLS1uby1sb29wJywgJy0tc3RhcnQn XSwgJz4nLCBcJHN0ZG91dCwgJzI+JywgXCRzdGRlcnIpOworCisJaWYgKCR3YWl0KQorCSMg bWFrZSBzdXJlIGFjdGl2ZXNsb3QgaXMgaW4gdXNlCisJeworCQkkbm9kZV9zdGFuZGJ5LT5w b2xsX3F1ZXJ5X3VudGlsKCd0ZXN0ZGInLAorCQkJIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAx IEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2FjdGl2ZXNs b3QnIEFORCBhY3RpdmVfcGlkIElTIE5PVCBOVUxMKSIKKwkJKSBvciBkaWUgInNsb3QgbmV2 ZXIgYmVjYW1lIGFjdGl2ZSI7CisJfQorCisJcmV0dXJuICRzbG90X3VzZXJfaGFuZGxlOwor fQorCisjIENoZWNrIHBnX3JlY3Zsb2dpY2FsIHN0ZGVycgorc3ViIGNoZWNrX3BnX3JlY3Zs b2dpY2FsX3N0ZGVycgoreworCW15ICgkc2xvdF91c2VyX2hhbmRsZSwgJGNoZWNrX3N0ZGVy cikgPSBAXzsKKwlteSAkcmV0dXJuOworCisJIyBvdXIgY2xpZW50IHNob3VsZCd2ZSB0ZXJt aW5hdGVkIGluIHJlc3BvbnNlIHRvIHRoZSB3YWxzZW5kZXIgZXJyb3IKKwkkc2xvdF91c2Vy X2hhbmRsZS0+ZmluaXNoOworCSRyZXR1cm4gPSAkPzsKKwljbXBfb2soJHJldHVybiwgIiE9 IiwgMCwgInBnX3JlY3Zsb2dpY2FsIGV4aXRlZCBub24temVybyIpOworCWlmICgkcmV0dXJu KSB7CisJCWxpa2UoJHN0ZGVyciwgcXIvJGNoZWNrX3N0ZGVyci8sICdzbG90IGhhcyBiZWVu IGludmFsaWRhdGVkJyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKyMgQ2hlY2sgaWYgYWxs IHRoZSBzbG90cyBvbiBzdGFuZGJ5IGFyZSBkcm9wcGVkLiBUaGVzZSBpbmNsdWRlIHRoZSAn YWN0aXZlc2xvdCcKKyMgdGhhdCB3YXMgYWNxdWlyZWQgYnkgbWFrZV9zbG90X2FjdGl2ZSgp LCBhbmQgdGhlIG5vbi1hY3RpdmUgJ2luYWN0aXZlc2xvdCcuCitzdWIgY2hlY2tfc2xvdHNf ZHJvcHBlZAoreworCW15ICgkc2xvdF91c2VyX2hhbmRsZSkgPSBAXzsKKworCWlzKCRub2Rl X3N0YW5kYnktPnNsb3QoJ2luYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2lu YWN0aXZlc2xvdCBvbiBzdGFuZGJ5IGRyb3BwZWQnKTsKKwlpcygkbm9kZV9zdGFuZGJ5LT5z bG90KCdhY3RpdmVzbG90JyktPnsnc2xvdF90eXBlJ30sICcnLCAnYWN0aXZlc2xvdCBvbiBz dGFuZGJ5IGRyb3BwZWQnKTsKKworCWNoZWNrX3BnX3JlY3Zsb2dpY2FsX3N0ZGVycigkc2xv dF91c2VyX2hhbmRsZSwgImNvbmZsaWN0IHdpdGggcmVjb3ZlcnkiKTsKK30KKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUgcHJpbWFyeSBub2RlCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+aW5pdChhbGxvd3Nfc3RyZWFt aW5nID0+IDEsIGhhc19hcmNoaXZpbmcgPT4gMSk7Ciskbm9kZV9wcmltYXJ5LT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworbWF4 X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9zZW5kZXJzID0gNAorbG9nX21pbl9t ZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVyYm9zaXR5ID0gdmVyYm9zZQorfSk7 Ciskbm9kZV9wcmltYXJ5LT5kdW1wX2luZm87Ciskbm9kZV9wcmltYXJ5LT5zdGFydDsKKwor JG5vZGVfcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0 ZGJdKTsKKworJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtTRUxFQ1Qg KiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckcHJpbWFyeV9z bG90bmFtZScpO10pOworbXkgJGJhY2t1cF9uYW1lID0gJ2IxJzsKKyRub2RlX3ByaW1hcnkt PmJhY2t1cCgkYmFja3VwX25hbWUpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBJ bml0aWFsaXplIHN0YW5kYnkgbm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5v ZGVfc3RhbmRieS0+aW5pdF9mcm9tX2JhY2t1cCgKKwkkbm9kZV9wcmltYXJ5LCAkYmFja3Vw X25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7Cisk bm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKKwlxcVtwcmlt YXJ5X3Nsb3RfbmFtZSA9ICckcHJpbWFyeV9zbG90bmFtZSddKTsKKyRub2RlX3N0YW5kYnkt PnN0YXJ0OworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKworCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRo YXQgbG9naWNhbCBkZWNvZGluZyBvbiB0aGUgc3RhbmRieQorIyBiZWhhdmVzIGNvcnJlY3Rs eS4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNx bCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3QoeCBpbnRlZ2VyLCB5 IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtJTlNF UlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMsIHM6OnRleHQgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwxMCkgcztdKTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0 Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVz aCcpKTsKKworbXkgJHJlc3VsdCA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRi JywKKwlxcVtTRUxFQ1QgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdhY3RpdmVzbG90 JywgTlVMTCwgTlVMTCk7XSk7CisKKyMgdGVzdCBpZiBiYXNpYyBkZWNvZGluZyB3b3Jrcwor aXMoc2NhbGFyKG15IEBmb29iYXIgPSBzcGxpdCAvXi9tLCAkcmVzdWx0KSwKKwkxNCwgJ0Rl Y29kaW5nIHByb2R1Y2VkIDE0IHJvd3MnKTsKKworIyBJbnNlcnQgc29tZSByb3dzIGFuZCB2 ZXJpZnkgdGhhdCB3ZSBnZXQgdGhlIHNhbWUgcmVzdWx0cyBmcm9tIHBnX3JlY3Zsb2dpY2Fs CisjIGFuZCB0aGUgU1FMIGludGVyZmFjZS4KKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgn dGVzdGRiJywKKwlxcVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMs IHM6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw0KSBzO10KKyk7CisKK215ICRleHBl Y3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhb aW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElO U0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMuZGVjb2Rpbmdf dGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxlIHB1YmxpYy5k ZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0JworQ09NTUlU fTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAn cmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKworbXkgJHN0ZG91dF9z cWwgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbU0VMRUNUIGRh dGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90JywgTlVM TCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScp O10KKyk7CisKK2lzKCRzdGRvdXRfc3FsLCAkZXhwZWN0ZWQsICdnb3QgZXhwZWN0ZWQgb3V0 cHV0IGZyb20gU1FMIGRlY29kaW5nIHNlc3Npb24nKTsKKworbXkgJGVuZHBvcyA9ICRub2Rl X3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRiJywKKwkiU0VMRUNUIGxzbiBGUk9NIHBnX2xv Z2ljYWxfc2xvdF9wZWVrX2NoYW5nZXMoJ2FjdGl2ZXNsb3QnLCBOVUxMLCBOVUxMKSBPUkRF UiBCWSBsc24gREVTQyBMSU1JVCAxOyIKKyk7CitwcmludCAid2FpdGluZyB0byByZXBsYXkg JGVuZHBvc1xuIjsKKworIyBJbnNlcnQgc29tZSByb3dzIGFmdGVyICRlbmRwb3MsIHdoaWNo IHdlIHdvbid0IHJlYWQuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJ cXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDUsNTApIHM7XQorKTsKKworJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+ bHNuKCdmbHVzaCcpKTsKKworbXkgJHN0ZG91dF9yZWN2ID0gJG5vZGVfc3RhbmRieS0+cGdf cmVjdmxvZ2ljYWxfdXB0bygKKyAgICAndGVzdGRiJywgJ2FjdGl2ZXNsb3QnLCAkZW5kcG9z LCAxODAsCisgICAgJ2luY2x1ZGUteGlkcycgICAgID0+ICcwJywKKyAgICAnc2tpcC1lbXB0 eS14YWN0cycgPT4gJzEnKTsKK2Nob21wKCRzdGRvdXRfcmVjdik7Citpcygkc3Rkb3V0X3Jl Y3YsICRleHBlY3RlZCwKKyAgICAnZ290IHNhbWUgZXhwZWN0ZWQgb3V0cHV0IGZyb20gcGdf cmVjdmxvZ2ljYWwgZGVjb2Rpbmcgc2Vzc2lvbicpOworCiskbm9kZV9zdGFuZGJ5LT5wb2xs X3F1ZXJ5X3VudGlsKCd0ZXN0ZGInLAorCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9N IHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVzbG90JyBB TkQgYWN0aXZlX3BpZCBJUyBOVUxMKSIKKykgb3IgZGllICJzbG90IG5ldmVyIGJlY2FtZSBp bmFjdGl2ZSI7CisKKyRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBnX3JlY3Zsb2dp Y2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBvcywgMTgwLAor ICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1wdHkteGFjdHMn ID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9yZWN2LCAnJywg J3BnX3JlY3Zsb2dpY2FsIGFja25vd2xlZGdlZCBjaGFuZ2VzJyk7CisKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIERBVEFCQVNFIG90aGVyZGInKTsK KworaXMoICRub2RlX3ByaW1hcnktPnBzcWwoCisgICAgICAgICdvdGhlcmRiJywKKyAgICAg ICAgIlNFTEVDVCBsc24gRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3Rp dmVzbG90JywgTlVMTCwgTlVMTCkgT1JERVIgQlkgbHNuIERFU0MgTElNSVQgMTsiCisgICAg KSwKKyAgICAzLAorICAgICdyZXBsYXlpbmcgbG9naWNhbCBzbG90IGZyb20gYW5vdGhlciBk YXRhYmFzZSBmYWlscycpOworCisjIGRyb3AgdGhlIGxvZ2ljYWwgc2xvdHMKKyRub2RlX3N0 YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMn LCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2FjdGl2ZXNsb3QnKV0pOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90cywgaW5j bHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJpbyAxOiBob3Rfc3RhbmRieV9mZWVkYmFj ayBvZmYgYW5kIHZhY3V1bSBGVUxMCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCisjIE9u ZSB3YXkgdG8gcmVwcm9kdWNlIHJlY292ZXJ5IGNvbmZsaWN0IGlzIHRvIHJ1biBWQUNVVU0g RlVMTCB3aXRoCisjIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24gdGhlIHN0 YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxx WworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRieS0+cmVz dGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0aW5nIGZv ciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4gQm90aCBz aG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3htaW5z KCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTlVM TCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xvdF9h Y3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRub2Rl X3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTSBGVUxMJyk7CisKKyRub2Rl X3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRu b2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91bGQgYmUgaXNz dWVkCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0 aW5nIHNsb3QgXCJpbmFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJl Y292ZXJ5IiksCisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2Vk IHdpdGggdmFjdXVtIEZVTEwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3Rh bmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQg Y29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiKSwKKyAgJ2FjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlk YXRpb24gaXMgbG9nZ2VkIHdpdGggdmFjdXVtIEZVTEwnKTsKKworIyBWZXJpZnkgdGhhdCBw Z19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cy5jb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgaGFz IGJlZW4gdXBkYXRlZAorb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoCisJ J3Bvc3RncmVzJywKKwkic2VsZWN0IChjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgPSAxKSBm cm9tIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRi JyIsICd0JyksCisJJ2NvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGll ICJUaW1lZCBvdXQgd2FpdGluZyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdG8gYmUgdXBk YXRlZCI7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBXZSBhcmUgbm90 IGFibGUgdG8gcmVhZCBmcm9tIHRoZSBzbG90IGFzIGl0IGhhcyBiZWVuIGludmFsaWRhdGVk CitjaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCByZWFkIGZy b20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisKKyMgVHVy biBob3Rfc3RhbmRieV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgor XSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBm ZWVkYmFjayBzZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFs b2dfeG1pbiBvbiBwcmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWlu IHNob3VsZCBhZHZhbmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1h aW4gTlVMTCBzaW5jZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlu cygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5P VCBOVUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGlj dDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90 cworIyBTY2VuYXJpbyAyOiBjb25mbGljdCBkdWUgdG8gcm93IHJlbW92YWwgd2l0aCBob3Rf c3RhbmRieV9mZWVkYmFjayBvZmYuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRpb24gdG8gc2VhcmNoIGZy b20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQorbXkgJGxvZ3N0YXJ0ID0gLXMgJG5vZGVfc3Rh bmRieS0+bG9nZmlsZTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywg cVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsKKwor Y3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBPbmUgd2F5IHRvIHByb2R1Y2UgcmVjb3Zl cnkgY29uZmxpY3QgaXMgdG8gY3JlYXRlL2Ryb3AgYSByZWxhdGlvbiBhbmQgbGF1bmNoIGEg dmFjdXVtCisjIHdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgdHVybmVkIG9mZiBvbiB0aGUg c3RhbmRieS4KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LHFbCitob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5y ZXN0YXJ0OworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2ZmIGJ5IHdhaXRpbmcg Zm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBwcmltYXJ5LiBCb3Ro IHNob3VsZCBiZSBOVUxMIHNpbmNlIGhzX2ZlZWRiYWNrIGlzIG9mZgord2FpdF9mb3JfeG1p bnMoJG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO VUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0gbWFrZV9zbG90 X2FjdGl2ZSgxKTsKKworIyBUaGlzIHNob3VsZCB0cmlnZ2VyIHRoZSBjb25mbGljdAorJG5v ZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtDUkVBVEUgVEFCTEUgY29uZmxp Y3RfdGVzdCh4IGludGVnZXIsIHkgdGV4dCk7XSk7Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJ3Rlc3RkYicsIHFxW0RST1AgVEFCTEUgY29uZmxpY3RfdGVzdDtdKTsKKyRub2RlX3By aW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTScpOworCiskbm9kZV9wcmltYXJ5 LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmlt YXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2so IGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90 IFwiaW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIs ICRsb2dzdGFydCksCisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9n Z2VkIGR1ZSB0byByb3cgcmVtb3ZhbCcpOworCitvayggZmluZF9pbl9sb2coCisgICAkbm9k ZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0aW5nIHNsb3QgXCJhY3RpdmVzbG90XCIgYmVjYXVz ZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCksCisgICdhY3RpdmVz bG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsK KworIyBWZXJpZnkgdGhhdCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cy5jb25mbF9hY3Rp dmVfbG9naWNhbHNsb3QgaGFzIGJlZW4gdXBkYXRlZAorIyB3ZSBub3cgZXhwZWN0IDIgY29u ZmxpY3RzIHJlcG9ydGVkIGFzIHRoZSBjb3VudGVyIHBlcnNpc3QgYWNyb3NzIHJlc3RhcnRz CitvayggJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgKKwkncG9zdGdyZXMnLAor CSJzZWxlY3QgKGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCA9IDIpIGZyb20gcGdfc3RhdF9k YXRhYmFzZV9jb25mbGljdHMgd2hlcmUgZGF0bmFtZSA9ICd0ZXN0ZGInIiwgJ3QnKSwKKwkn Y29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IHVwZGF0ZWQnKSBvciBkaWUgIlRpbWVkIG91dCB3 YWl0aW5nIGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB0byBiZSB1cGRhdGVkIjsKKworJGhh bmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7CisjIFdlIGFyZSBub3QgYWJsZSB0byByZWFk IGZyb20gdGhlIHNsb3QgYXMgaXQgaGFzIGJlZW4gaW52YWxpZGF0ZWQKK2NoZWNrX3BnX3Jl Y3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLCAiY2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgXCJhY3RpdmVzbG90XCIiKTsKKworIyBUdXJuIGhvdF9zdGFuZGJ5 X2ZlZWRiYWNrIGJhY2sgb24KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jl c3FsLmNvbmYnLHFbCitob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCitdKTsKKyRub2RlX3N0 YW5kYnktPnJlc3RhcnQ7CisKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIHNlbnQg Ynkgd2FpdGluZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIHBy aW1hcnkuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hvdWxkIGFkdmFu Y2UsCisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBOVUxMIHNpbmNl IHRoZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRub2RlX3ByaW1h cnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTk9UIE5VTEwgQU5EIGNh dGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFJlY292ZXJ5IGNvbmZsaWN0OiBJbnZhbGlkYXRl IGNvbmZsaWN0aW5nIHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3RzCisjIFNjZW5hcmlv IDM6IGluY29ycmVjdCB3YWxfbGV2ZWwgb24gcHJpbWFyeS4KKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgZ2V0IHRoZSBwb3NpdGlv biB0byBzZWFyY2ggZnJvbSBpbiB0aGUgc3RhbmRieSBsb2dmaWxlCiskbG9nc3RhcnQgPSAt cyAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlOworCisjIGRyb3AgdGhlIGxvZ2ljYWwgc2xvdHMK KyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBs aWNhdGlvbl9zbG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5vZGVfc3RhbmRieS0+cHNxbCgn cG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2FjdGl2ZXNs b3QnKV0pOworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCiskaGFuZGxlID0gbWFrZV9z bG90X2FjdGl2ZSgxKTsKKworIyBNYWtlIHByaW1hcnkgd2FsX2xldmVsIHJlcGxpY2EuIFRo aXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29uZmxpY3QuCiskbm9kZV9wcmltYXJ5LT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJyxxWword2FsX2xldmVsID0gJ3JlcGxpY2EnCitdKTsK KyRub2RlX3ByaW1hcnktPnJlc3RhcnQ7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91bGQgYmUgaXNzdWVkCitvayggZmluZF9pbl9sb2co CisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0aW5nIHNsb3QgXCJpbmFjdGl2ZXNs b3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwgJGxvZ3N0YXJ0KSwK KyAgJ2luYWN0aXZlc2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdh bF9sZXZlbCcpOworCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAi aW52YWxpZGF0aW5nIHNsb3QgXCJhY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMg d2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxp ZGF0aW9uIGlzIGxvZ2dlZCBkdWUgdG8gd2FsX2xldmVsJyk7CisKKyMgVmVyaWZ5IHRoYXQg cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IGhh cyBiZWVuIHVwZGF0ZWQKKyMgd2Ugbm93IGV4cGVjdCAzIGNvbmZsaWN0cyByZXBvcnRlZCBh cyB0aGUgY291bnRlciBwZXJzaXN0IGFjcm9zcyByZXN0YXJ0cworb2soICRub2RlX3N0YW5k YnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywKKwkic2VsZWN0IChjb25mbF9h Y3RpdmVfbG9naWNhbHNsb3QgPSAzKSBmcm9tIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3Rz IHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIsICd0JyksCisJJ2NvbmZsX2FjdGl2ZV9sb2dp Y2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyBjb25mbF9hY3Rp dmVfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKDApOworIyBXZSBhcmUgbm90IGFibGUgdG8gcmVhZCBmcm9tIHRoZSBzbG90IGFz IGl0IHJlcXVpcmVzIHdhbF9sZXZlbCBhdCBsZWFzdCBsb2dpY2FsIG9uIG1hc3RlcgorY2hl Y2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJsb2dpY2FsIGRlY29kaW5nIG9u IHN0YW5kYnkgcmVxdWlyZXMgd2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwgb24g bWFzdGVyIik7CisKKyMgUmVzdG9yZSBwcmltYXJ5IHdhbF9sZXZlbAorJG5vZGVfcHJpbWFy eS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdsb2dp Y2FsJworXSk7Ciskbm9kZV9wcmltYXJ5LT5yZXN0YXJ0OworJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+ bHNuKCdmbHVzaCcpKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7CisjIGFz IHRoZSBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIHdlIHNob3VsZCBub3QgYmUgYWJsZSB0 byByZWFkCitjaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCBy ZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IERST1AgREFUQUJBU0Ugc2hvdWxkIGRyb3BzIGl0J3Mgc2xvdHMsIGluY2x1ZGluZyBhY3Rp dmUgc2xvdHMuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5k YnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 KCdhY3RpdmVzbG90JyldKTsKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CiskaGFuZGxlID0g bWFrZV9zbG90X2FjdGl2ZSgxKTsKKyMgQ3JlYXRlIGEgc2xvdCBvbiBhIGRhdGFiYXNlIHRo YXQgd291bGQgbm90IGJlIGRyb3BwZWQuIFRoaXMgc2xvdCBzaG91bGQgbm90CisjIGdldCBk cm9wcGVkLgorJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5 KCRub2RlX3ByaW1hcnksICdvdGhlcnNsb3QnLCAncG9zdGdyZXMnKTsKKworIyBkcm9wZGIg b24gdGhlIHByaW1hcnkgdG8gdmVyaWZ5IHNsb3RzIGFyZSBkcm9wcGVkIG9uIHN0YW5kYnkK KyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxW0RST1AgREFUQUJBU0Ug dGVzdGRiXSk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3Rh bmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKK2lzKCRu b2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXFbU0VMRUNUIEVYSVNUUyhT RUxFQ1QgMSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAndGVzdGRiJyldKSwg J2YnLAorCSdkYXRhYmFzZSBkcm9wcGVkIG9uIHN0YW5kYnknKTsKKworY2hlY2tfc2xvdHNf ZHJvcHBlZCgkaGFuZGxlKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgnb3RoZXJzbG90 JyktPnsnc2xvdF90eXBlJ30sICdsb2dpY2FsJywKKwknb3RoZXJzbG90IG9uIHN0YW5kYnkg bm90IGRyb3BwZWQnKTsKKworIyBDbGVhbnVwIDogbWFudWFsbHkgZHJvcCB0aGUgc2xvdCB0 aGF0IHdhcyBub3QgZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywg cVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdvdGhlcnNsb3QnKV0pOworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IHN0YW5kYnkgcHJvbW90aW9uIGFuZCBsb2dpY2FsIGRlY29kaW5nIGJlaGF2aW9yCisj IGFmdGVyIHRoZSBzdGFuZGJ5IGdldHMgcHJvbW90ZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9wcmltYXJ5LT5wc3Fs KCdwb3N0Z3JlcycsIHFbQ1JFQVRFIERBVEFCQVNFIHRlc3RkYl0pOworJG5vZGVfcHJpbWFy eS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtDUkVBVEUgVEFCTEUgZGVjb2RpbmdfdGVzdCh4 IGludGVnZXIsIHkgdGV4dCk7XSk7CisKKyMgY3JlYXRlIHRoZSBsb2dpY2FsIHNsb3RzCitj cmVhdGVfbG9naWNhbF9zbG90cygpOworCisjIEluc2VydCBzb21lIHJvd3MgYmVmb3JlIHRo ZSBwcm9tb3Rpb24KKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywKKwlxcVtJ TlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMsIHM6OnRleHQgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSw0KSBzO10KKyk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9y X2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbign Zmx1c2gnKSk7CisKKyMgcHJvbW90ZQorJG5vZGVfc3RhbmRieS0+cHJvbW90ZTsKKworIyBp bnNlcnQgc29tZSByb3dzIG9uIHByb21vdGVkIHN0YW5kYnkKKyRub2RlX3N0YW5kYnktPnNh ZmVfcHNxbCgndGVzdGRiJywKKwlxcVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkg U0VMRUNUIHMsIHM6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoNSw3KSBzO10KKyk7CisK KworJGV4cGVjdGVkID0gcXtCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElO U0VSVDogeFtpbnRlZ2VyXToxIHlbdGV4dF06JzEnCit0YWJsZSBwdWJsaWMuZGVjb2Rpbmdf dGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjIgeVt0ZXh0XTonMicKK3RhYmxlIHB1YmxpYy5k ZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06MyB5W3RleHRdOiczJwordGFibGUg cHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo0IHlbdGV4dF06JzQn CitDT01NSVQKK0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4 W2ludGVnZXJdOjUgeVt0ZXh0XTonNScKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06NiB5W3RleHRdOic2JwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo3IHlbdGV4dF06JzcnCitDT01NSVR9OworCisj IGNoZWNrIHRoYXQgd2UgYXJlIGRlY29kaW5nIHByZSBhbmQgcG9zdCBwcm9tb3Rpb24gaW5z ZXJ0ZWQgcm93cworJHN0ZG91dF9zcWwgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rl c3RkYicsCisJcXFbU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFu Z2VzKCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3Nr aXAtZW1wdHkteGFjdHMnLCAnMScpO10KKyk7CisKK2lzKCRzdGRvdXRfc3FsLCAkZXhwZWN0 ZWQsICdnb3QgZXhwZWN0ZWQgb3V0cHV0IGZyb20gU1FMIGRlY29kaW5nIHNlc3Npb24gb24g cHJvbW90ZWQgc3RhbmRieScpOwotLSAKMi4zNC4xCgo= --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; name="v36-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v36-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBmMDgzMzlmNmFmZDMxZjYwZmQ0NTVkOWE0YjA5M2UyNDViNGU4ZjRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAzIEphbiAyMDIzIDA2OjUwOjAwICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MzYgMy82XSBBbGxvdyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkuCgpBbGxvdyBh IGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkIG9uIHN0YW5kYnkuIFJlc3RyaWN0IGl0cyB1 c2FnZQpvciBpdHMgY3JlYXRpb24gaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgbGVzcyB0 aGFuIGxvZ2ljYWwuCkR1cmluZyBzbG90IGNyZWF0aW9uLCBpdCdzIHJlc3RhcnRfbHNuIGlz IHNldCB0byB0aGUgbGFzdCByZXBsYXllZApMU04uIEVmZmVjdGl2ZWx5LCBhIGxvZ2ljYWwg c2xvdCBjcmVhdGlvbiBvbiBzdGFuZGJ5IHdhaXRzIGZvciBhbgp4bF9ydW5uaW5nX3hhY3Qg cmVjb3JkIHRvIGFycml2ZSBmcm9tIHByaW1hcnkuIENvbmZsaWN0aW5nIHNsb3RzCndvdWxk IGJlIGhhbmRsZWQgaW4gbmV4dCBjb21taXRzLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChp biBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QK UmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBI YWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYyAgICAgICAgIHwgMTEgKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9kZWNvZGUuYyAgfCAyMiArKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyB8IDM3ICsrKysrKystLS0tLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgfCA3MyArKysrKysrKysrKysrKystLS0t LS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgfCAyNyAr KysrKy0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgICAgIHwg IDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25z KC0pCiAgIDQuNSUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgMzYuNiUgc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA1Ny45JSBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi8KCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggMzljYjk5M2I5Mi4u NzgwZTVhNTliMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNDQ2Miw2 ICs0NDYyLDE3IEBAIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVh ZENvbnRyb2xGaWxlKCk7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRo ZSBjb250cm9sIGZpbGUuIEZvciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisg KiBjb25zaWRlcmVkIGFzIGl0cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBi ZSBkaWZmZXJlbnQgZnJvbSB3aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9u IHN0YW5kYnkuCisgKi8KK1dhbExldmVsCitHZXRBY3RpdmVXYWxMZXZlbE9uU3RhbmRieSh2 b2lkKQoreworCXJldHVybiBDb250cm9sRmlsZS0+d2FsX2xldmVsOworfQorCiAvKgogICog SW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1lbW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCBjM2JjOGVjYzkyLi40 MGM4MGZjOGRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMKQEAgLTE1MiwxMSArMTUyLDMxIEBAIHhsb2dfZGVjb2RlKExvZ2ljYWxEZWNvZGluZ0Nv bnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQkJICogY2FuIHJlc3RhcnQg ZnJvbSB0aGVyZS4KIAkJCSAqLwogCQkJYnJlYWs7CisJCWNhc2UgWExPR19QQVJBTUVURVJf Q0hBTkdFOgorCQl7CisJCQl4bF9wYXJhbWV0ZXJfY2hhbmdlICp4bHJlYyA9CisJCQkJKHhs X3BhcmFtZXRlcl9jaGFuZ2UgKikgWExvZ1JlY0dldERhdGEoYnVmLT5yZWNvcmQpOworCisJ CQkvKgorCQkJICogSWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0byBsZXNz IHRoYW4gbG9naWNhbCwgdGhlbiB3ZQorCQkJICogd2FudCB0byBwcmV2ZW50IGV4aXN0aW5n IGxvZ2ljYWwgc2xvdHMgZnJvbSBiZWluZyB1c2VkLgorCQkJICogRXhpc3RpbmcgbG9naWNh bCBzbG90cyBvbiBzdGFuZGJ5IGdldCBpbnZhbGlkYXRlZCB3aGVuIHRoaXMgV0FMCisJCQkg KiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxz IHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMgbm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwg dGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkgKiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9n aWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0aGUgd2FsX2xldmVsCisJCQkgKiBpcyBi ZWluZyByZWR1Y2VkLiBIZW5jZSB0aGlzIGV4dHJhIGNoZWNrLgorCQkJICovCisJCQlpZiAo eGxyZWMtPndhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRF X1NUQVRFKSwKKwkJCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSBy ZXF1aXJlcyAiCisJCQkJCQkJCSJ3YWxfbGV2ZWwgdG8gYmUgYXQgbGVhc3QgbG9naWNhbCBv biBtYXN0ZXIiKSkpOworCQkJYnJlYWs7CisJCX0KIAkJY2FzZSBYTE9HX05PT1A6CiAJCWNh c2UgWExPR19ORVhUT0lEOgogCQljYXNlIFhMT0dfU1dJVENIOgogCQljYXNlIFhMT0dfQkFD S1VQX0VORDoKLQkJY2FzZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0U6CiAJCWNhc2UgWExPR19S RVNUT1JFX1BPSU5UOgogCQljYXNlIFhMT0dfRlBXX0NIQU5HRToKIAkJY2FzZSBYTE9HX0ZQ SV9GT1JfSElOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2Fs LmMKaW5kZXggNTJkMWZlNjI2OS4uYjMxM2FhOTNiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTExOSwyMyArMTE5LDIyIEBAIENoZWNr TG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKHZvaWQpCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygibG9n aWNhbCBkZWNvZGluZyByZXF1aXJlcyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24iKSkpOwogCi0J LyogLS0tLQotCSAqIFRPRE86IFdlIGdvdCB0byBjaGFuZ2UgdGhhdCBzb21lZGF5IHNvb24u Li4KLQkgKgotCSAqIFRoZXJlJ3MgYmFzaWNhbGx5IHRocmVlIHRoaW5ncyBtaXNzaW5nIHRv IGFsbG93IHRoaXM6Ci0JICogMSkgV2UgbmVlZCB0byBiZSBhYmxlIHRvIGNvcnJlY3RseSBh bmQgcXVpY2tseSBpZGVudGlmeSB0aGUgdGltZWxpbmUgYQotCSAqCSAgTFNOIGJlbG9uZ3Mg dG8KLQkgKiAyKSBXZSBuZWVkIHRvIGZvcmNlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHRvIGJl IGVuYWJsZWQgYXQgYWxsIHRpbWVzIHNvCi0JICoJICB0aGUgcHJpbWFyeSBjYW5ub3QgcmVt b3ZlIHJvd3Mgd2UgbmVlZC4KLQkgKiAzKSBzdXBwb3J0IGRyb3BwaW5nIHJlcGxpY2F0aW9u IHNsb3RzIHJlZmVycmluZyB0byBhIGRhdGFiYXNlLCBpbgotCSAqCSAgZGJhc2VfcmVkby4g VGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2ZSBvbmVzIGR1ZSB0byBIUyByZWNvdmVyeQotCSAq CSAgY29uZmxpY3RzLCBzbyB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5IGVhc3kuCi0JICog LS0tLQotCSAqLwogCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKLQkJZXJlcG9ydChFUlJP UiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJ IGVycm1zZygibG9naWNhbCBkZWNvZGluZyBjYW5ub3QgYmUgdXNlZCB3aGlsZSBpbiByZWNv dmVyeSIpKSk7CisJeworCQkvKgorCQkgKiBUaGlzIGNoZWNrIG1heSBoYXZlIHJhY2UgY29u ZGl0aW9ucywgYnV0IHdoZW5ldmVyCisJCSAqIFhMT0dfUEFSQU1FVEVSX0NIQU5HRSBpbmRp Y2F0ZXMgdGhhdCB3YWxfbGV2ZWwgaGFzIGNoYW5nZWQsIHdlCisJCSAqIHZlcmlmeSB0aGF0 IHRoZXJlIGFyZSBubyBleGlzdGluZyBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzLiBBbmQg dG8KKwkJICogYXZvaWQgcmFjZXMgYXJvdW5kIGNyZWF0aW5nIGEgbmV3IHNsb3QsCisJCSAq IENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKCkgaXMgY2FsbGVkIG9uY2UgYmVm b3JlIGNyZWF0aW5nCisJCSAqIHRoZSBzbG90LCBhbmQgb25jZSB3aGVuIGxvZ2ljYWwgZGVj b2RpbmcgaXMgaW5pdGlhbGx5IHN0YXJ0aW5nIHVwLgorCQkgKi8KKwkJaWYgKEdldEFjdGl2 ZVdhbExldmVsT25TdGFuZGJ5KCkgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJ VEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgIgorCQkJCQkJCSJ3YWxfbGV2ZWwgdG8gYmUgYXQgbGVhc3QgbG9naWNhbCBv biBtYXN0ZXIiKSkpOworCX0KIH0KIAogLyoKQEAgLTMzMSw2ICszMzAsMTIgQEAgQ3JlYXRl SW5pdERlY29kaW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVnaW4sCiAJTG9naWNhbERlY29k aW5nQ29udGV4dCAqY3R4OwogCU1lbW9yeUNvbnRleHQgb2xkX2NvbnRleHQ7CiAKKwkvKgor CSAqIE9uIHN0YW5kYnksIHRoaXMgY2hlY2sgaXMgYWxzbyByZXF1aXJlZCB3aGlsZSBjcmVh dGluZyB0aGUgc2xvdC4gQ2hlY2sKKwkgKiB0aGUgY29tbWVudHMgaW4gdGhpcyBmdW5jdGlv bi4KKwkgKi8KKwlDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpOworCiAJLyog c2hvcnRlciBsaW5lcy4uLiAqLwogCXNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDE5NDZkMDcwNjIuLmRkYzdlYmViZjIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJzdG9y YWdlL3Byb2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dyZWNvdmVyeS5oIgog CiAvKgogICogUmVwbGljYXRpb24gc2xvdCBvbi1kaXNrIGRhdGEgc3RydWN0dXJlLgpAQCAt MTE3NSwzNyArMTE3Niw0NiBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2FsKHZvaWQpCiAJ CS8qCiAJCSAqIEZvciBsb2dpY2FsIHNsb3RzIGxvZyBhIHN0YW5kYnkgc25hcHNob3QgYW5k IHN0YXJ0IGxvZ2ljYWwgZGVjb2RpbmcKIAkJICogYXQgZXhhY3RseSB0aGF0IHBvc2l0aW9u LiBUaGF0IGFsbG93cyB0aGUgc2xvdCB0byBzdGFydCB1cCBtb3JlCi0JCSAqIHF1aWNrbHku CisJCSAqIHF1aWNrbHkuIEJ1dCBvbiBhIHN0YW5kYnkgd2UgY2Fubm90IGRvIFdBTCB3cml0 ZXMsIHNvIGp1c3QgdXNlIHRoZQorCQkgKiByZXBsYXkgcG9pbnRlcjsgZWZmZWN0aXZlbHks IGFuIGF0dGVtcHQgdG8gY3JlYXRlIGEgbG9naWNhbCBzbG90IG9uCisJCSAqIHN0YW5kYnkg d2lsbCBjYXVzZSBpdCB0byB3YWl0IGZvciBhbiB4bF9ydW5uaW5nX3hhY3QgcmVjb3JkIHRv IGJlCisJCSAqIGxvZ2dlZCBpbmRlcGVuZGVudGx5IG9uIHRoZSBwcmltYXJ5LCBzbyB0aGF0 IGEgc25hcHNob3QgY2FuIGJlIGJ1aWx0CisJCSAqIHVzaW5nIHRoZSByZWNvcmQuCiAJCSAq Ci0JCSAqIFRoYXQncyBub3QgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNp Y2FsIHNsb3RzIGFzIHRoZXknbGwKLQkJICogc3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxv Z2dlZCBjaGVja3BvaW50IGFueXdheS4gSW5zdGVhZCByZXR1cm4KLQkJICogdGhlIGxvY2F0 aW9uIG9mIHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5IGluY3JlYXNl cwotCQkgKiB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBh IGJhc2UgYmFja3VwIGhhcyB0bwotCQkgKiBzdGFydCByZXBsYXkgYXQuCisJCSAqIE5vbmUg b2YgdGhpcyBpcyBuZWVkZWQgKG9yIGluZGVlZCBoZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xv dHMgYXMKKwkJICogdGhleSdsbCBzdGFydCByZXBsYXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNo ZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkCisJCSAqIHJldHVybiB0aGUgbG9jYXRpb24gb2Yg dGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRoYXQgc2xpZ2h0bHkKKwkJICogaW5jcmVhc2Vz IHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRvIHJldHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBi YWNrdXAKKwkJICogaGFzIHRvIHN0YXJ0IHJlcGxheSBhdC4KIAkJICovCi0JCWlmICghUmVj b3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNhbChzbG90KSkKKwkJaWYgKFNsb3RJ c1BoeXNpY2FsKHNsb3QpKQorCQkJcmVzdGFydF9sc24gPSBHZXRSZWRvUmVjUHRyKCk7CisJ CWVsc2UgaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQogCQl7Ci0JCQlYTG9nUmVjUHRyCWZs dXNocHRyOwotCi0JCQkvKiBzdGFydCBhdCBjdXJyZW50IGluc2VydCBwb3NpdGlvbiAqLwot CQkJcmVzdGFydF9sc24gPSBHZXRYTG9nSW5zZXJ0UmVjUHRyKCk7Ci0JCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKLQkJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0 YXJ0X2xzbjsKLQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwotCi0JCQkvKiBt YWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gc3RhcnQgKi8KLQkJCWZs dXNocHRyID0gTG9nU3RhbmRieVNuYXBzaG90KCk7Ci0KLQkJCS8qIGFuZCBtYWtlIHN1cmUg aXQncyBmc3luY2VkIHRvIGRpc2sgKi8KLQkJCVhMb2dGbHVzaChmbHVzaHB0cik7CisJCQly ZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQkvKgorCQkJICog UmVwbGF5IHBvaW50ZXIgbWF5IHBvaW50IG9uZSBwYXN0IHRoZSBlbmQgb2YgdGhlIHJlY29y ZC4gSWYgdGhhdAorCQkJICogaXMgYSBYTE9HIHBhZ2UgYm91bmRhcnksIGl0IHdpbGwgbm90 IGJlIGEgdmFsaWQgTFNOIGZvciB0aGUKKwkJCSAqIHN0YXJ0IG9mIGEgcmVjb3JkLCBzbyBi dW1wIGl0IHVwIHBhc3QgdGhlIHBhZ2UgaGVhZGVyLgorCQkJICovCisJCQlpZiAoIVhSZWNP ZmZJc1ZhbGlkKHJlc3RhcnRfbHNuKSkKKwkJCXsKKwkJCQlpZiAocmVzdGFydF9sc24gJSBY TE9HX0JMQ0tTWiAhPSAwKQorCQkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCByZXBsYXkgcG9p bnRlciIpOworCisJCQkJLyogRm9yIHRoZSBmaXJzdCBwYWdlIG9mIGEgc2VnbWVudCBmaWxl LCBpdCdzIGEgbG9uZyBoZWFkZXIgKi8KKwkJCQlpZiAoWExvZ1NlZ21lbnRPZmZzZXQocmVz dGFydF9sc24sIHdhbF9zZWdtZW50X3NpemUpID09IDApCisJCQkJCXJlc3RhcnRfbHNuICs9 IFNpemVPZlhMb2dMb25nUEhEOworCQkJCWVsc2UKKwkJCQkJcmVzdGFydF9sc24gKz0gU2l6 ZU9mWExvZ1Nob3J0UEhEOworCQkJfQogCQl9CiAJCWVsc2UKLQkJewotCQkJcmVzdGFydF9s c24gPSBHZXRSZWRvUmVjUHRyKCk7Ci0JCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4 KTsKLQkJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKLQkJCVNwaW5M b2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwotCQl9CisJCQlyZXN0YXJ0X2xzbiA9IEdldFhM b2dJbnNlcnRSZWNQdHIoKTsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsK KwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQlTcGluTG9ja1Jl bGVhc2UoJnNsb3QtPm11dGV4KTsKIAogCQkvKiBwcmV2ZW50IFdBTCByZW1vdmFsIGFzIGZh c3QgYXMgcG9zc2libGUgKi8KIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExT TigpOwpAQCAtMTIyMSw2ICsxMjMxLDE3IEBAIFJlcGxpY2F0aW9uU2xvdFJlc2VydmVXYWwo dm9pZCkKIAkJaWYgKFhMb2dHZXRMYXN0UmVtb3ZlZFNlZ25vKCkgPCBzZWdubykKIAkJCWJy ZWFrOwogCX0KKworCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNh bChzbG90KSkKKwl7CisJCVhMb2dSZWNQdHIJZmx1c2hwdHI7CisKKwkJLyogbWFrZSBzdXJl IHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCisJCWZsdXNocHRyID0g TG9nU3RhbmRieVNuYXBzaG90KCk7CisKKwkJLyogYW5kIG1ha2Ugc3VyZSBpdCdzIGZzeW5j ZWQgdG8gZGlzayAqLworCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCX0KIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggODdhYjQ2NzQ0Ni4uZTg5YzIx MGE4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTkwNiwxNCAr OTA2LDE4IEBAIGxvZ2ljYWxfcmVhZF94bG9nX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0 ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxCiAJaW50CQkJY291bnQ7CiAJ V0FMUmVhZEVycm9yIGVycmluZm87CiAJWExvZ1NlZ05vCXNlZ25vOwotCVRpbWVMaW5lSUQJ Y3VyclRMSSA9IEdldFdBTEluc2VydGlvblRpbWVMaW5lKCk7CisJVGltZUxpbmVJRAljdXJy VExJOwogCiAJLyoKLQkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5nIGlzIG9ubHkgcGVybWl0 dGVkIG9uIGEgcHJpbWFyeSBzZXJ2ZXIsIHdlIGtub3cKLQkgKiB0aGF0IHRoZSBjdXJyZW50 IHRpbWVsaW5lIElEIGNhbid0IGJlIGNoYW5naW5nIGFueSBtb3JlLiBJZiB3ZSBkaWQgdGhp cwotCSAqIG9uIGEgc3RhbmRieSwgd2UnZCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSB2YWx1 ZXMgd2UgY29tcHV0ZSBoZXJlCi0JICogYmVjb21pbmcgaW52YWxpZCBkdWUgdG8gYSBwcm9t b3Rpb24gb3IgdGltZWxpbmUgY2hhbmdlLgorCSAqIFNpbmNlIGxvZ2ljYWwgZGVjb2Rpbmcg aXMgYWxzbyBwZXJtaXR0ZWQgb24gYSBzdGFuZGJ5IHNlcnZlciwgd2UgbmVlZAorCSAqIHRv IGNoZWNrIGlmIHRoZSBzZXJ2ZXIgaXMgaW4gcmVjb3ZlcnkgdG8gZGVjaWRlIGhvdyB0byBn ZXQgdGhlIGN1cnJlbnQKKwkgKiB0aW1lbGluZSBJRCAoc28gdGhhdCBpdCBhbHNvIGNvdmVy IHRoZSBwcm9tb3Rpb24gb3IgdGltZWxpbmUgY2hhbmdlIGNhc2VzKS4KIAkgKi8KKwlpZiAo IVJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQljdXJyVExJID0gR2V0V0FMSW5zZXJ0aW9uVGlt ZUxpbmUoKTsKKwllbHNlCisJCUdldFhMb2dSZXBsYXlSZWNQdHIoJmN1cnJUTEkpOworCiAJ WExvZ1JlYWREZXRlcm1pbmVUaW1lbGluZShzdGF0ZSwgdGFyZ2V0UGFnZVB0ciwgcmVxTGVu LCBjdXJyVExJKTsKIAlzZW5kVGltZUxpbmVJc0hpc3RvcmljID0gKHN0YXRlLT5jdXJyVExJ ICE9IGN1cnJUTEkpOwogCXNlbmRUaW1lTGluZSA9IHN0YXRlLT5jdXJyVExJOwpAQCAtMzA3 NCwxMCArMzA3OCwxMiBAQCBYTG9nU2VuZExvZ2ljYWwodm9pZCkKIAkgKiBJZiBmaXJzdCB0 aW1lIHRocm91Z2ggaW4gdGhpcyBzZXNzaW9uLCBpbml0aWFsaXplIGZsdXNoUHRyLiAgT3Ro ZXJ3aXNlLAogCSAqIHdlIG9ubHkgbmVlZCB0byB1cGRhdGUgZmx1c2hQdHIgaWYgRW5kUmVj UHRyIGlzIHBhc3QgaXQuCiAJICovCi0JaWYgKGZsdXNoUHRyID09IEludmFsaWRYTG9nUmVj UHRyKQotCQlmbHVzaFB0ciA9IEdldEZsdXNoUmVjUHRyKE5VTEwpOwotCWVsc2UgaWYgKGxv Z2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKLQkJ Zmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKKwlpZiAoZmx1c2hQdHIgPT0gSW52 YWxpZFhMb2dSZWNQdHIgfHwKKwkJbG9naWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5k UmVjUHRyID49IGZsdXNoUHRyKQorCXsKKwkJZmx1c2hQdHIgPSAoYW1fY2FzY2FkaW5nX3dh bHNlbmRlciA/CisJCQkJCUdldFN0YW5kYnlGbHVzaFJlY1B0cihOVUxMKSA6IEdldEZsdXNo UmVjUHRyKE5VTEwpKTsKKwl9CiAKIAkvKiBJZiBFbmRSZWNQdHIgaXMgc3RpbGwgcGFzdCBv dXIgZmx1c2hQdHIsIGl0IG1lYW5zIHdlIGNhdWdodCB1cC4gKi8KIAlpZiAobG9naWNhbF9k ZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQpAQCAtMzE2OCw3 ICszMTc0LDggQEAgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSkKIAly ZWNlaXZlUHRyID0gR2V0V2FsUmN2Rmx1c2hSZWNQdHIoTlVMTCwgJnJlY2VpdmVUTEkpOwog CXJlcGxheVB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoJnJlcGxheVRMSSk7CiAKLQkqdGxp ID0gcmVwbGF5VExJOworCWlmICh0bGkpCisJCSp0bGkgPSByZXBsYXlUTEk7CiAKIAlyZXN1 bHQgPSByZXBsYXlQdHI7CiAJaWYgKHJlY2VpdmVUTEkgPT0gcmVwbGF5VExJICYmIHJlY2Vp dmVQdHIgPiByZXBsYXlQdHIpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxv Zy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAppbmRleCBjZmU1NDA5NzM4Li40OGNh ODUyMzgxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKQEAgLTIzMCw2ICsyMzAsNyBAQCBleHRlcm4gdm9p ZCBYTE9HU2htZW1Jbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lk KTsKIGV4dGVybiB2b2lkIEluaXRpYWxpemVXYWxDb25zaXN0ZW5jeUNoZWNraW5nKHZvaWQp OwogZXh0ZXJuIHZvaWQgTG9jYWxQcm9jZXNzQ29udHJvbEZpbGUoYm9vbCByZXNldCk7Citl eHRlcm4gV2FsTGV2ZWwgR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnkodm9pZCk7CiBleHRl cm4gdm9pZCBTdGFydHVwWExPRyh2b2lkKTsKIGV4dGVybiB2b2lkIFNodXRkb3duWExPRyhp bnQgY29kZSwgRGF0dW0gYXJnKTsKIGV4dGVybiB2b2lkIENyZWF0ZUNoZWNrUG9pbnQoaW50 IGZsYWdzKTsKLS0gCjIuMzQuMQoK --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; name="v36-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v36-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA2NThkY2I3ZmZkYWJiMGMwMWZiMjViM2VlMzgyNTQ1MWQzNDJkNGQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAzIEphbiAyMDIzIDA2OjQ5OjEyICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MzYgMi82XSBIYW5kbGUgbG9naWNhbCBzbG90IGNvbmZsaWN0cyBvbiBzdGFuZGJ5LgoK RHVyaW5nIFdBTCByZXBsYXkgb24gc3RhbmRieSwgd2hlbiBzbG90IGNvbmZsaWN0IGlzIGlk ZW50aWZpZWQsCmludmFsaWRhdGUgc3VjaCBzbG90cy4gQWxzbyBkbyB0aGUgc2FtZSB0aGlu ZyBpZiB3YWxfbGV2ZWwgb24gbWFzdGVyCmlzIHJlZHVjZWQgdG8gYmVsb3cgbG9naWNhbCBh bmQgdGhlcmUgYXJlIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMKb24gc3RhbmRieS4gSW50cm9k dWNlIGEgbmV3IFByb2NTaWduYWxSZWFzb24gdmFsdWUgZm9yIHNsb3QKY29uZmxpY3QgcmVj b3ZlcnkuIEFycmFuZ2UgZm9yIGEgbmV3IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIGZp ZWxkOgpjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQg KGluIGFuIG9sZGVyIHZlcnNpb24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQgRHJvdXZv dApSZXZpZXdlZC1CeTogQmVydHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0 IEhhYXMsIEZhYnJpemlvIGRlIFJveWVzIE1lbGxvCi0tLQogZG9jL3NyYy9zZ21sL21vbml0 b3Jpbmcuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDExICsKIHNyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3R4bG9nLmMgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoX3hsb2cuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0eGxvZy5jICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAgICAgICAgIHwgIDEzICsrCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jICAgICAgICB8ICAgNyArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgMjA5ICsrKysrKysr KysrKysrKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAg ICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAgICAg ICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgICAg ICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jICAgICAg ICAgICAgIHwgIDEzICstCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAg ICAgICAgICAgfCAgMjIgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9k YXRhYmFzZS5jICB8ICAgNCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YyAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAg ICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90Lmgg ICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFs LmggICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5o ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dCAgICAgICAgICAgfCAgIDMgKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDMxOCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogICAzLjklIGRvYy9zcmMvc2dtbC8KICAgNS4z JSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICAgMy4xJSBzcmMvYmFja2VuZC9hY2Nl c3MvCiAgIDMuOSUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA1OS4wJSBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KICAgNi43JSBzcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy8KICAgOC4wJSBzcmMvYmFja2VuZC90Y29wLwogICAzLjQlIHNyYy9iYWNrZW5kLwogICA1 LjYlIHNyYy9pbmNsdWRlLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5n LnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDViY2JhMGZkZWMu LjVhMzc4Y2U4YWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApAQCAtNDMyNCw2ICs0MzI0LDE3 IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCBGUk9NIHBnX3N0 YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAgICAgICAgZGVhZGxvY2tzCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xv dDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE51bWJlciBvZiBhY3RpdmUgbG9naWNhbCBzbG90cyBpbiB0 aGlzIGRhdGFiYXNlIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgaW52YWxpZGF0ZWQgYmVjYXVz ZSB0aGV5IGNvbmZsaWN0IHdpdGggcmVjb3ZlcnkgKG5vdGUgdGhhdCBpbmFjdGl2ZSBvbmVz CisgICAgICAgYXJlIGFsc28gaW52YWxpZGF0ZWQgYnV0IGRvIG5vdCBpbmNyZW1lbnQgdGhp cyBjb3VudGVyKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwv dGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0eGxvZy5jCmluZGV4IDU5ZTMxZmNjMTIuLjBjYzlhNzg1OGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtMTk3LDYgKzE5Nyw3IEBAIGdpc3RSZWRvRGVsZXRl UmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9nUmVjR2V0QmxvY2tUYWco cmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsIE5VTEwpOwogCiAJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RDb25mbGljdEhvcml6b24s CisJCQkJCQkJCQkJCXhsZGF0YS0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQlybG9jYXRv cik7CiAJfQogCkBAIC0zOTAsNiArMzkxLDcgQEAgZ2lzdFJlZG9QYWdlUmV1c2UoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2 ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVjLT5zbmFwc2hvdENv bmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCSAgIHhscmVjLT5pc0NhdGFsb2dSZWwsCiAJ CQkJCQkJCQkJCQkgICB4bHJlYy0+bG9jYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hh c2gvaGFzaF94bG9nLmMKaW5kZXggMDhjZWI5MTI4OC4uYjg1NjMwNDc0NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKQEAgLTEwMDMsNiArMTAwMyw3IEBAIGhhc2hf eGxvZ192YWN1dW1fb25lX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExv Z1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJ UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5zbmFwc2hvdENv bmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxkYXRhLT5pc0NhdGFsb2dSZWwsCiAJCQkJ CQkJCQkJCXJsb2NhdG9yKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5k ZXggMTJlZGQ2OTQ0Mi4uZGQyOWRlOTkwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMKQEAgLTg3MTEsNiArODcxMSw3IEBAIGhlYXBfeGxvZ19wcnVuZShYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24s CisJCQkJCQkJCQkJCXhscmVjLT5pc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJCXJsb2NhdG9y KTsKIAogCS8qCkBAIC04ODgwLDYgKzg4ODEsNyBAQCBoZWFwX3hsb2dfdmlzaWJsZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGlj dEhvcml6b24sCisJCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfT05f Q0FUQUxPR19BQ0NFU1NJQkxFX0lOX0xPR0lDQUxfREVDT0RJTkcsCiAJCQkJCQkJCQkJCXJs b2NhdG9yKTsKIAogCS8qCkBAIC05MTM1LDYgKzkxMzcsNyBAQCBoZWFwX3hsb2dfZnJlZXpl X3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJUmVzb2x2ZVJlY292ZXJ5 Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAor CQkJCQkJCQkJCQl4bHJlYy0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQlybG9jYXRvcik7 CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCmluZGV4IDQxNGNhNGY2 ZGUuLmM4N2U0NmVkNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCkBA IC02NjksNiArNjY5LDcgQEAgYnRyZWVfeGxvZ19kZWxldGUoWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVM TCwgTlVMTCk7CiAKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxy ZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+aXNDYXRh bG9nUmVsLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCkBAIC0xMDA3LDYgKzEwMDgs NyBAQCBidHJlZV94bG9nX3JldXNlX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAK IAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdEZ1bGxYaWQoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJ CQkJICAgeGxyZWMtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5sb2Nh dG9yKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4 bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwppbmRleCBiMDcx YjU5YzhhLi40NTlhYzkyOWJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cu YwpAQCAtODc5LDYgKzg3OSw3IEBAIHNwZ1JlZG9WYWN1dW1SZWRpcmVjdChYTG9nUmVhZGVy U3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmbG9j YXRvciwgTlVMTCwgTlVMTCk7CiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBz aG90KHhsZGF0YS0+c25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0 YS0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQlsb2NhdG9yKTsKIAl9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCAwMDcwZDU2YjBiLi4zOWNiOTkzYjkyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC03OTU4LDYgKzc5NTgsMTkgQEAgeGxv Z19yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkvKiBVcGRhdGUgb3VyIGNvcHkg b2YgdGhlIHBhcmFtZXRlcnMgaW4gcGdfY29udHJvbCAqLwogCQltZW1jcHkoJnhscmVjLCBY TG9nUmVjR2V0RGF0YShyZWNvcmQpLCBzaXplb2YoeGxfcGFyYW1ldGVyX2NoYW5nZSkpOwog CisJCS8qCisJCSAqIEludmFsaWRhdGUgbG9naWNhbCBzbG90cyBpZiB3ZSBhcmUgaW4gaG90 IHN0YW5kYnkgYW5kIHRoZSBwcmltYXJ5IGRvZXMgbm90CisJCSAqIGhhdmUgYSBXQUwgbGV2 ZWwgc3VmZmljaWVudCBmb3IgbG9naWNhbCBkZWNvZGluZy4gTm8gbmVlZCB0byBzZWFyY2gK KwkJICogZm9yIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nIGxvZ2ljYWxseSBzbG90cyBpZiBz dGFuZGJ5IGlzIHJ1bm5pbmcKKwkJICogd2l0aCB3YWxfbGV2ZWwgbG93ZXIgdGhhbiBsb2dp Y2FsLCBiZWNhdXNlIGluIHRoYXQgY2FzZSwgd2Ugd291bGQKKwkJICogaGF2ZSBlaXRoZXIg ZGlzYWxsb3dlZCBjcmVhdGlvbiBvZiBsb2dpY2FsIHNsb3RzIG9yIGludmFsaWRhdGVkIGV4 aXN0aW5nCisJCSAqIG9uZXMuCisJCSAqLworCQlpZiAoSW5SZWNvdmVyeSAmJiBJbkhvdFN0 YW5kYnkgJiYKKwkJCXhscmVjLndhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMICYmCisJ CQl3YWxfbGV2ZWwgPj0gV0FMX0xFVkVMX0xPR0lDQUwpCisJCQlJbnZhbGlkYXRlQ29uZmxp Y3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhJbnZhbGlkT2lkLEludmFsaWRUcmFuc2Fj dGlvbklkKTsKKwogCQlMV0xvY2tBY3F1aXJlKENvbnRyb2xGaWxlTG9jaywgTFdfRVhDTFVT SVZFKTsKIAkJQ29udHJvbEZpbGUtPk1heENvbm5lY3Rpb25zID0geGxyZWMuTWF4Q29ubmVj dGlvbnM7CiAJCUNvbnRyb2xGaWxlLT5tYXhfd29ya2VyX3Byb2Nlc3NlcyA9IHhscmVjLm1h eF93b3JrZXJfcHJvY2Vzc2VzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs CmluZGV4IDQ0N2M5Yjk3MGYuLjYwODBjMTdhYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwKQEAgLTEwNjUsNyArMTA2NSw4IEBAIENSRUFURSBWSUVXIHBnX3N0 YXRfZGF0YWJhc2VfY29uZmxpY3RzIEFTCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9sb2NrKEQub2lkKSBBUyBjb25mbF9sb2NrLAogICAgICAgICAgICAgcGdfc3Rh dF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoRC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAog ICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKEQub2lkKSBB UyBjb25mbF9idWZmZXJwaW4sCi0gICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGlj dF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25mbF9kZWFkbG9jaworICAgICAgICAg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMg Y29uZmxfZGVhZGxvY2ssCisgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9s b2dpY2Fsc2xvdChELm9pZCkgQVMgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90CiAgICAgRlJP TSBwZ19kYXRhYmFzZSBEOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3VzZXJfZnVuY3Rpb25z IEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2lj YWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVu Y3MuYwppbmRleCBmYTFiNjQxYTJiLi5kYTNkYTQzNzNlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKQEAgLTIxNiwxMSArMjE2 LDE0IEBAIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRzKEZ1bmN0aW9uQ2FsbElu Zm8gZmNpbmZvLCBib29sIGNvbmZpcm0sIGJvb2wgYmluCiAKIAkJLyoKIAkJICogQWZ0ZXIg dGhlIHNhbml0eSBjaGVja3MgaW4gQ3JlYXRlRGVjb2RpbmdDb250ZXh0LCBtYWtlIHN1cmUg dGhlCi0JCSAqIHJlc3RhcnRfbHNuIGlzIHZhbGlkLiAgQXZvaWQgImNhbm5vdCBnZXQgY2hh bmdlcyIgd29yZGluZyBpbiB0aGlzCisJCSAqIHJlc3RhcnRfbHNuIGlzIHZhbGlkIG9yIGJv dGggeG1pbiBhbmQgY2F0YWxvZ194bWluIGFyZSB2YWxpZC4KKwkJICogQXZvaWQgImNhbm5v dCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCiAJCSAqIGVycm1zZyBiZWNhdXNlIHRo YXQnZCBiZSBjb25mdXNpbmdseSBhbWJpZ3VvdXMgYWJvdXQgbm8gY2hhbmdlcwogCQkgKiBi ZWluZyBhdmFpbGFibGUuCiAJCSAqLwotCQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChNeVJl cGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikpCisJCWlmIChYTG9nUmVjUHRySXNJ bnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKQorCQkJfHwgKCFU cmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluKQorCQkJ CSYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5jYXRh bG9nX3htaW4pKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf T0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCQkgZXJybXNnKCJjYW4g bm8gbG9uZ2VyIGdldCBjaGFuZ2VzIGZyb20gcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IGYyODY5MThmNjkuLjE5NDZkMDcwNjIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTE0MzIsNiArMTQzMiwyMTUgQEAgcmVzdGFy dDoKIAlyZXR1cm4gaW52YWxpZGF0ZWQ7CiB9CiAKKy8qCisgKiBIZWxwZXIgZm9yIEludmFs aWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3QgLS0gYWNxdWlyZXMgdGhl IGdpdmVuIHNsb3QKKyAqIGFuZCBtYXJrIGl0IGludmFsaWQsIGlmIG5lY2Vzc2FyeSBhbmQg cG9zc2libGUuCisgKgorICogUmV0dXJucyB3aGV0aGVyIFJlcGxpY2F0aW9uU2xvdENvbnRy b2xMb2NrIHdhcyByZWxlYXNlZCBpbiB0aGUgaW50ZXJpbSAoYW5kCisgKiBpbiB0aGF0IGNh c2Ugd2UncmUgbm90IGhvbGRpbmcgdGhlIGxvY2sgYXQgcmV0dXJuLCBvdGhlcndpc2Ugd2Ug YXJlKS4KKyAqCisgKiBUaGlzIGlzIGluaGVyZW50bHkgcmFjeSwgYmVjYXVzZSB3ZSByZWxl YXNlIHRoZSBMV0xvY2sKKyAqIGZvciBzeXNjYWxscywgc28gY2FsbGVyIG11c3QgcmVzdGFy dCBpZiB3ZSByZXR1cm4gdHJ1ZS4KKyAqLworc3RhdGljIGJvb2wKK0ludmFsaWRhdGVQb3Nz aWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdChSZXBsaWNhdGlvblNsb3Qg KnMsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCWludAkJbGFzdF9zaWduYWxlZF9waWQgPSAw OworCWJvb2wJcmVsZWFzZWRfbG9jayA9IGZhbHNlOworCisJZm9yICg7OykKKwl7CisJCVRy YW5zYWN0aW9uSWQgc2xvdF94bWluOworCQlUcmFuc2FjdGlvbklkIHNsb3RfY2F0YWxvZ194 bWluOworCQlOYW1lRGF0YQlzbG90bmFtZTsKKwkJaW50CQkJYWN0aXZlX3BpZCA9IDA7CisK KwkJQXNzZXJ0KExXTG9ja0hlbGRCeU1lSW5Nb2RlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xM b2NrLCBMV19TSEFSRUQpKTsKKworCQlpZiAoIXMtPmluX3VzZSkKKwkJeworCQkJaWYgKHJl bGVhc2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jayk7CisJCQlicmVhazsKKwkJfQorCisJCS8qCisJCSAqIENoZWNrIGlmIHRoZSBzbG90 IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkLiBJZiBpdCBuZWVkcyB0byBiZQorCQkgKiBpbnZh bGlkYXRlZCwgYW5kIGlzIG5vdCBjdXJyZW50bHkgYWNxdWlyZWQsIGFjcXVpcmUgaXQgYW5k IG1hcmsgaXQKKwkJICogYXMgaGF2aW5nIGJlZW4gaW52YWxpZGF0ZWQuIFdlIGRvIHRoaXMg d2l0aCB0aGUgc3BpbmxvY2sgaGVsZCB0bworCQkgKiBhdm9pZCByYWNlIGNvbmRpdGlvbnMg LS0gZm9yIGV4YW1wbGUgdGhlIHhtaW4ocykgY291bGQgbW92ZSBmb3J3YXJkCisJCSAqICwg b3IgdGhlIHNsb3QgY291bGQgYmUgZHJvcHBlZC4KKwkJICovCisJCVNwaW5Mb2NrQWNxdWly ZSgmcy0+bXV0ZXgpOworCisJCXNsb3RfeG1pbiA9IHMtPmRhdGEueG1pbjsKKwkJc2xvdF9j YXRhbG9nX3htaW4gPSBzLT5kYXRhLmNhdGFsb2dfeG1pbjsKKworCQkvKgorCQkgKiBJZiB0 aGUgc2xvdCBpcyBhbHJlYWR5IGludmFsaWQgb3IgaXMgbm90IGNvbmZsaWN0aW5nLCB3ZSBk b24ndCBuZWVkIHRvCisJCSAqIGRvIGFueXRoaW5nLgorCQkgKi8KKworCQkvKiBzbG90IGhh cyBiZWVuIGludmFsaWRhdGVkICovCisJCWlmICgoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNs b3RfeG1pbikgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWluKSkK KwkJCXx8CisJCS8qCisJCSAqIHdlIGFyZSBub3QgZm9yY2luZyBmb3IgaW52YWxpZGF0aW9u IGJlY2F1c2UgdGhlIHhpZCBpcyB2YWxpZAorCQkgKiBhbmQgdGhpcyBpcyBhIG5vbiBjb25m bGljdGluZyBzbG90CisJCSAqLworCQkJKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHhpZCkgJiYg ISgKKwkJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF94bWluKSAmJiBUcmFuc2FjdGlv bklkUHJlY2VkZXNPckVxdWFscyhzbG90X3htaW4sIHhpZCkpCisJCQkJfHwKKwkJCQkoVHJh bnNhY3Rpb25JZElzVmFsaWQoc2xvdF9jYXRhbG9nX3htaW4pICYmIFRyYW5zYWN0aW9uSWRQ cmVjZWRlc09yRXF1YWxzKHNsb3RfY2F0YWxvZ194bWluLCB4aWQpKQorCQkJCSkpCisJCQkp CisJCXsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOworCQkJaWYgKHJlbGVhc2Vk X2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7 CisJCQlicmVhazsKKwkJfQorCisJCXNsb3RuYW1lID0gcy0+ZGF0YS5uYW1lOworCQlhY3Rp dmVfcGlkID0gcy0+YWN0aXZlX3BpZDsKKworCQkvKgorCQkgKiBJZiB0aGUgc2xvdCBjYW4g YmUgYWNxdWlyZWQsIGRvIHNvIGFuZCBtYXJrIGl0IGludmFsaWRhdGVkCisJCSAqIGltbWVk aWF0ZWx5LiAgT3RoZXJ3aXNlIHdlJ2xsIHNpZ25hbCB0aGUgb3duaW5nIHByb2Nlc3MsIGJl bG93LCBhbmQKKwkJICogcmV0cnkuCisJCSAqLworCQlpZiAoYWN0aXZlX3BpZCA9PSAwKQor CQl7CisJCQlNeVJlcGxpY2F0aW9uU2xvdCA9IHM7CisJCQlzLT5hY3RpdmVfcGlkID0gTXlQ cm9jUGlkOworCQkJcy0+ZGF0YS54bWluID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCQlz LT5kYXRhLmNhdGFsb2dfeG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCQl9CisKKwkJ U3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJaWYgKGFjdGl2ZV9waWQgIT0gMCkK KwkJeworCQkJLyoKKwkJCSAqIFByZXBhcmUgdGhlIHNsZWVwIG9uIHRoZSBzbG90J3MgY29u ZGl0aW9uIHZhcmlhYmxlIGJlZm9yZQorCQkJICogcmVsZWFzaW5nIHRoZSBsb2NrLCB0byBj bG9zZSBhIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uIGlmIHRoZQorCQkJICogc2xvdCBpcyBy ZWxlYXNlZCBiZWZvcmUgdGhlIHNsZWVwIGJlbG93LgorCQkJICovCisKKwkJCUNvbmRpdGlv blZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJnMtPmFjdGl2ZV9jdik7CisKKwkJCUxXTG9ja1Jl bGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCQkJcmVsZWFzZWRfbG9jayA9 IHRydWU7CisKKwkJCS8qCisJCQkgKiBTaWduYWwgdG8gdGVybWluYXRlIHRoZSBwcm9jZXNz IHRoYXQgb3ducyB0aGUgc2xvdCwgaWYgd2UKKwkJCSAqIGhhdmVuJ3QgYWxyZWFkeSBzaWdu YWxsZWQgaXQuICAoQXZvaWRhbmNlIG9mIHJlcGVhdGVkCisJCQkgKiBzaWduYWxsaW5nIGlz IHRoZSBvbmx5IHJlYXNvbiBmb3IgdGhlcmUgdG8gYmUgYSBsb29wIGluIHRoaXMKKwkJCSAq IHJvdXRpbmU7IG90aGVyd2lzZSB3ZSBjb3VsZCByZWx5IG9uIGNhbGxlcidzIHJlc3RhcnQg bG9vcC4pCisJCQkgKgorCQkJICogVGhlcmUgaXMgdGhlIHJhY2UgY29uZGl0aW9uIHRoYXQg b3RoZXIgcHJvY2VzcyBtYXkgb3duIHRoZSBzbG90CisJCQkgKiBhZnRlciBpdHMgY3VycmVu dCBvd25lciBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQgYW5kIGJlZm9yZSB0aGlzCisJCQkgKiBw cm9jZXNzIG93bnMgaXQuIFRvIGhhbmRsZSB0aGF0LCB3ZSBzaWduYWwgb25seSBpZiB0aGUg UElEIG9mCisJCQkgKiB0aGUgb3duaW5nIHByb2Nlc3MgaGFzIGNoYW5nZWQgZnJvbSB0aGUg cHJldmlvdXMgdGltZS4gKFRoaXMKKwkJCSAqIGxvZ2ljIGFzc3VtZXMgdGhhdCB0aGUgc2Ft ZSBQSUQgaXMgbm90IHJldXNlZCB2ZXJ5IHF1aWNrbHkuKQorCQkJICovCisJCQlpZiAobGFz dF9zaWduYWxlZF9waWQgIT0gYWN0aXZlX3BpZCkKKwkJCXsKKwkJCQllcmVwb3J0KExPRywK KwkJCQkJCShlcnJtc2coInRlcm1pbmF0aW5nIHByb2Nlc3MgJWQgYmVjYXVzZSByZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsCisJCQkJCQkJCWFj dGl2ZV9waWQsIE5hbWVTdHIoc2xvdG5hbWUpKSkpOworCisJCQkJKHZvaWQpIFNlbmRQcm9j U2lnbmFsKGFjdGl2ZV9waWQsIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNM T1QsIEludmFsaWRCYWNrZW5kSWQpOworCQkJCWxhc3Rfc2lnbmFsZWRfcGlkID0gYWN0aXZl X3BpZDsKKwkJCX0KKworCQkJLyogV2FpdCB1bnRpbCB0aGUgc2xvdCBpcyByZWxlYXNlZC4g Ki8KKwkJCUNvbmRpdGlvblZhcmlhYmxlU2xlZXAoJnMtPmFjdGl2ZV9jdiwKKwkJCQkJCQkJ CVdBSVRfRVZFTlRfUkVQTElDQVRJT05fU0xPVF9EUk9QKTsKKworCQkJLyoKKwkJCSAqIFJl LWFjcXVpcmUgbG9jayBhbmQgc3RhcnQgb3Zlcjsgd2UgZXhwZWN0IHRvIGludmFsaWRhdGUg dGhlCisJCQkgKiBzbG90IG5leHQgdGltZSAodW5sZXNzIGFub3RoZXIgcHJvY2VzcyBhY3F1 aXJlcyB0aGUgc2xvdCBpbiB0aGUKKwkJCSAqIG1lYW50aW1lKS4KKwkJCSAqLworCQkJTFdM b2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdfU0hBUkVEKTsKKwkJ CWNvbnRpbnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFdlIGhvbGQgdGhl IHNsb3Qgbm93IGFuZCBoYXZlIGFscmVhZHkgaW52YWxpZGF0ZWQgaXQ7IGZsdXNoIGl0CisJ CQkgKiB0byBlbnN1cmUgdGhhdCBzdGF0ZSBwZXJzaXN0cy4KKwkJCSAqCisJCQkgKiBEb24n dCB3YW50IHRvIGhvbGQgUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sgYWNyb3NzIGZpbGUK KwkJCSAqIHN5c3RlbSBvcGVyYXRpb25zLCBzbyByZWxlYXNlIGl0IG5vdyBidXQgYmUgc3Vy ZSB0byB0ZWxsIGNhbGxlcgorCQkJICogdG8gcmVzdGFydCBmcm9tIHNjcmF0Y2guCisJCQkg Ki8KKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCQkJ cmVsZWFzZWRfbG9jayA9IHRydWU7CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgaW52YWxpZGF0 ZWQgc3RhdGUgcGVyc2lzdHMgYWNyb3NzIHNlcnZlciByZXN0YXJ0ICovCisJCQlSZXBsaWNh dGlvblNsb3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKKwkJCVJl cGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKwkJCXBnc3RhdF9kcm9wX3JlcGxzbG90KHMpOwor CisJCQllcmVwb3J0KExPRywKKwkJCQkJKGVycm1zZygiaW52YWxpZGF0aW5nIHNsb3QgXCIl c1wiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCBOYW1lU3RyKHNsb3Ru YW1lKSkpKTsKKworCQkJLyogZG9uZSB3aXRoIHRoaXMgc2xvdCBmb3Igbm93ICovCisJCQli cmVhazsKKwkJfQorCX0KKworCUFzc2VydCghcmVsZWFzZWRfbG9jayA9PSBMV0xvY2tIZWxk QnlNZUluTW9kZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdfU0hBUkVEKSk7CisK KwlyZXR1cm4gcmVsZWFzZWRfbG9jazsKK30KKworLyoKKyAqIFJlc29sdmUgcmVjb3Zlcnkg Y29uZmxpY3RzIHdpdGggbG9naWNhbCBzbG90cy4KKyAqCisgKiBXaGVuIHhpZCBpcyB2YWxp ZCwgaXQgbWVhbnMgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gcmVtb3ZlIHJvd3Mgb2xkZXIgdGhh biB4aWQuCisgKiBUaGVyZWZvcmUgd2UgbmVlZCB0byBpbnZhbGlkYXRlIHNsb3RzIHRoYXQg ZGVwZW5kIG9uIHNlZWluZyB0aG9zZSByb3dzLgorICogV2hlbiB4aWQgaXMgaW52YWxpZCwg aW52YWxpZGF0ZSBhbGwgbG9naWNhbCBzbG90cy4gVGhpcyBpcyByZXF1aXJlZCB3aGVuIHRo ZQorICogbWFzdGVyIHdhbF9sZXZlbCBpcyBzZXQgYmFjayB0byByZXBsaWNhLCBzbyBleGlz dGluZyBsb2dpY2FsIHNsb3RzIG5lZWQgdG8KKyAqIGJlIGludmFsaWRhdGVkLgorICovCit2 b2lkCitJbnZhbGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhPaWQg ZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCisJQXNzZXJ0KG1heF9yZXBsaWNhdGlv bl9zbG90cyA+PSAwKTsKKworCWlmIChtYXhfcmVwbGljYXRpb25fc2xvdHMgPT0gMCkKKwkJ cmV0dXJuOworcmVzdGFydDoKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRy b2xMb2NrLCBMV19TSEFSRUQpOworCWZvciAoaW50IGkgPSAwOyBpIDwgbWF4X3JlcGxpY2F0 aW9uX3Nsb3RzOyBpKyspCisJeworCQlSZXBsaWNhdGlvblNsb3QgKnMgPSAmUmVwbGljYXRp b25TbG90Q3RsLT5yZXBsaWNhdGlvbl9zbG90c1tpXTsKKworCQlpZiAoIXMtPmluX3VzZSkK KwkJCWNvbnRpbnVlOworCisJCS8qIFdlIGFyZSBvbmx5IGRlYWxpbmcgd2l0aCAqbG9naWNh bCogc2xvdCBjb25mbGljdHMuICovCisJCWlmICghU2xvdElzTG9naWNhbChzKSkKKwkJCWNv bnRpbnVlOworCisJCS8qIG5vdCBvdXIgZGF0YWJhc2UgYW5kIHdlIGRvbid0IHdhbnQgYWxs IHRoZSBkYXRhYmFzZSwgc2tpcCAqLworCQlpZiAocy0+ZGF0YS5kYXRhYmFzZSAhPSBkYm9p ZCAmJiBUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKQorCQkJY29udGludWU7CisKKwkJaWYg KEludmFsaWRhdGVQb3NzaWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdChz LCB4aWQpKQorCQl7CisJCQkvKiBpZiB0aGUgbG9jayB3YXMgcmVsZWFzZWQsIHdlIG5lZWQg dG8gcmVzdGFydCBmcm9tIHNjcmF0Y2ggKi8KKwkJCWdvdG8gcmVzdGFydDsKKwkJfQorCX0K KwlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKK30KKwogLyoK ICAqIEZsdXNoIGFsbCByZXBsaWNhdGlvbiBzbG90cyB0byBkaXNrLgogICoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggMDE1YWUyOTk1ZC4uODdhYjQ2NzQ0NiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTEyNTMsNiArMTI1Mywx NCBAQCBTdGFydExvZ2ljYWxSZXBsaWNhdGlvbihTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQp CiAKIAlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKGNtZC0+c2xvdG5hbWUsIHRydWUpOwogCisJ aWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWlu KQorCQkgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRh LmNhdGFsb2dfeG1pbikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygiY2Fu bm90IHJlYWQgZnJvbSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKKwkJCQkJ CWNtZC0+c2xvdG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIlRoaXMgc2xvdCBoYXMgYmVlbiBp bnZhbGlkYXRlZCBiZWNhdXNlIGl0IHdhcyBjb25mbGljdGluZyB3aXRoIHJlY292ZXJ5LiIp KSk7CisKIAlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0 YS5yZXN0YXJ0X2xzbikpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3Byb2NhcnJheS5jCmluZGV4IDQzNDBiZjk2NDEuLmM3ZTA0MTVhMTkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCisrKyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCkBAIC0zNDc3LDYgKzM0NzcsMTAgQEAgU2ln bmFsVmlydHVhbFRyYW5zYWN0aW9uKFZpcnR1YWxUcmFuc2FjdGlvbklkIHZ4aWQsIFByb2NT aWduYWxSZWFzb24gc2lnbW9kZSwKIAogCQlHRVRfVlhJRF9GUk9NX1BHUFJPQyhwcm9jdnhp ZCwgKnByb2MpOwogCisJCS8qCisJCSAqIE5vdGU6IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklk IGNhbiBiZSBpbnZhbGlkLCB3aGljaCBtZWFucyB0aGUKKwkJICogcmVxdWVzdCBpcyB0byBz aWduYWwgdGhlIHBpZCB0aGF0IGlzIG5vdCBydW5uaW5nIGEgdHJhbnNhY3Rpb24uCisJCSAq LwogCQlpZiAocHJvY3Z4aWQuYmFja2VuZElkID09IHZ4aWQuYmFja2VuZElkICYmCiAJCQlw cm9jdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQgPT0gdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQp CiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwu YyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwppbmRleCA0M2ZiYmRi Yzg2Li42MGM3NzAzZDI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9w cm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5j CkBAIC02NjksNiArNjY5LDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lHTkFM X0FSR1MpCiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X1NOQVBTSE9UKSkKIAkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX1NOQVBTSE9UKTsKIAorCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCkpCisJCVJlY292ZXJ5Q29uZmxpY3RJ bnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCk7CisKIAlp ZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9E RUFETE9DSykpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVS WV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3Rh bmRieS5jCmluZGV4IDk0Y2M4NjBmNWYuLjZjMTk4OTEwMWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9zdGFuZGJ5LmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJ1dGlscy9wc19z dGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lb3V0LmgiCiAjaW5jbHVkZSAidXRpbHMv dGltZXN0YW1wLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogCiAvKiBVc2Vy LXNldHRhYmxlIEdVQyBwYXJhbWV0ZXJzICovCiBpbnQJCQl2YWN1dW1fZGVmZXJfY2xlYW51 cF9hZ2U7CkBAIC00NzUsNiArNDc2LDcgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo VmlydHVhbFhJRHMoVmlydHVhbFRyYW5zYWN0aW9uSWQgKndhaXRsaXN0LAogICovCiB2b2lk CiBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJYm9vbCBpc0NhdGFsb2dSZWwsCiAJ CQkJCQkJCQlSZWxGaWxlTG9jYXRvciBsb2NhdG9yKQogewogCVZpcnR1YWxUcmFuc2FjdGlv bklkICpiYWNrZW5kczsKQEAgLTUwMCw2ICs1MDIsOSBAQCBSZXNvbHZlUmVjb3ZlcnlDb25m bGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAogCQkJCQkJCQkJCSAgIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJ CQkJCQkJCQkJICAgV0FJVF9FVkVOVF9SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCwKIAkJ CQkJCQkJCQkgICB0cnVlKTsKKworCWlmIChpc0NhdGFsb2dSZWwpCisJCUludmFsaWRhdGVD b25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKGxvY2F0b3IuZGJPaWQsIHNuYXBz aG90Q29uZmxpY3RIb3Jpem9uKTsKIH0KIAogLyoKQEAgLTUwOCw2ICs1MTMsNyBAQCBSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uLAogICovCiB2b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhv cml6b24sCisJCQkJCQkJCQkJICAgYm9vbCBpc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJICAg UmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAkvKgpAQCAtNTI2LDcgKzUzMiw5IEBAIFJl c29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yCiAJCVRyYW5zYWN0aW9uSWQgdHJ1bmNhdGVkOwog CiAJCXRydW5jYXRlZCA9IFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChzbmFwc2hvdENvbmZs aWN0SG9yaXpvbik7Ci0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHRy dW5jYXRlZCwgbG9jYXRvcik7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBz aG90KHRydW5jYXRlZCwKKwkJCQkJCQkJCQkJaXNDYXRhbG9nUmVsLAorCQkJCQkJCQkJCQls b2NhdG9yKTsKIAl9CiB9CiAKQEAgLTE0ODcsNiArMTQ5NSw5IEBAIGdldF9yZWNvdmVyeV9j b25mbGljdF9kZXNjKFByb2NTaWduYWxSZWFzb24gcmVhc29uKQogCQljYXNlIFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CiAJCQlyZWFzb25EZXNjID0gXygicmVjb3Zl cnkgY29uZmxpY3Qgb24gc25hcHNob3QiKTsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQlyZWFzb25EZXNjID0gXygicmVj b3ZlcnkgY29uZmxpY3Qgb24gcmVwbGljYXRpb24gc2xvdCIpOworCQkJYnJlYWs7CiAJCWNh c2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJcmVh c29uRGVzYyA9IF8oInJlY292ZXJ5IGNvbmZsaWN0IG9uIGJ1ZmZlciBkZWFkbG9jayIpOwog CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9z cmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKaW5kZXggMzE0NzllODIxMi4uZTEzNDg3MGNi YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwpAQCAtMjQ4Miw2ICsyNDgyLDkgQEAgZXJyZGV0YWls X3JlY292ZXJ5X2NvbmZsaWN0KHZvaWQpCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9TTkFQU0hPVDoKIAkJCWVycmRldGFpbCgiVXNlciBxdWVyeSBtaWdodCBoYXZlIG5l ZWRlZCB0byBzZWUgcm93IHZlcnNpb25zIHRoYXQgbXVzdCBiZSByZW1vdmVkLiIpOwogCQkJ YnJlYWs7CisJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVDoK KwkJCWVycmRldGFpbCgiVXNlciB3YXMgdXNpbmcgdGhlIGxvZ2ljYWwgc2xvdCB0aGF0IG11 c3QgYmUgZHJvcHBlZC4iKTsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCWVycmRldGFpbCgiVXNlciB0cmFuc2Fj dGlvbiBjYXVzZWQgYnVmZmVyIGRlYWRsb2NrIHdpdGggcmVjb3ZlcnkuIik7CiAJCQlicmVh azsKQEAgLTMwNTEsNiArMzA1NCwyNSBAQCBSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBy b2NTaWduYWxSZWFzb24gcmVhc29uKQogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZM SUNUX0xPQ0s6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfVEFCTEVTUEFD RToKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVDoKKwkJCWNh c2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVDoKKwkJCQkvKgorCQkJ CSAqIEZvciBjb25mbGljdHMgdGhhdCByZXF1aXJlIGEgbG9naWNhbCBzbG90IHRvIGJlIGlu dmFsaWRhdGVkLCB0aGUKKwkJCQkgKiByZXF1aXJlbWVudCBpcyBmb3IgdGhlIHNpZ25hbCBy ZWNlaXZlciB0byByZWxlYXNlIHRoZSBzbG90LAorCQkJCSAqIHNvIHRoYXQgaXQgY291bGQg YmUgaW52YWxpZGF0ZWQgYnkgdGhlIHNpZ25hbCBzZW5kZXIuIFNvIGZvcgorCQkJCSAqIG5v cm1hbCBiYWNrZW5kcywgdGhlIHRyYW5zYWN0aW9uIHNob3VsZCBiZSBhYm9ydGVkLCBqdXN0 CisJCQkJICogbGlrZSBmb3Igb3RoZXIgcmVjb3ZlcnkgY29uZmxpY3RzLiBCdXQgaWYgaXQn cyB3YWxzZW5kZXIgb24KKwkJCQkgKiBzdGFuZGJ5LCB0aGVuIGl0IGhhcyB0byBiZSBraWxs ZWQgc28gYXMgdG8gcmVsZWFzZSBhbgorCQkJCSAqIGFjcXVpcmVkIGxvZ2ljYWwgc2xvdC4K KwkJCQkgKi8KKwkJCQlpZiAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciAmJgorCQkJCQlyZWFz b24gPT0gUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCAmJgorCQkJCQlN eVJlcGxpY2F0aW9uU2xvdCAmJiBTbG90SXNMb2dpY2FsKE15UmVwbGljYXRpb25TbG90KSkK KwkJCQl7CisJCQkJCVJlY292ZXJ5Q29uZmxpY3RQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJUXVl cnlDYW5jZWxQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7 CisJCQkJCWJyZWFrOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogSWYgd2UgYXJlbid0IGlu IGEgdHJhbnNhY3Rpb24gYW55IGxvbmdlciB0aGVuIGlnbm9yZS4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKaW5kZXggNmU2NTBjZWFhZC4u NzE0OWYyMmY3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X2RhdGFiYXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2RhdGFiYXNlLmMKQEAgLTEwOSw2ICsxMDksOSBAQCBwZ3N0YXRfcmVwb3J0X3JlY292ZXJ5 X2NvbmZsaWN0KGludCByZWFzb24pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9CVUZGRVJQSU46CiAJCQlkYmVudHJ5LT5jb25mbGljdF9idWZmZXJwaW4rKzsKIAkJCWJy ZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJ CQlkYmVudHJ5LT5jb25mbGljdF9sb2dpY2Fsc2xvdCsrOworCQkJYnJlYWs7CiAJCWNhc2Ug UFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJZGJlbnRy eS0+Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jaysrOwogCQkJYnJlYWs7CkBAIC0zODcsNiAr MzkwLDcgQEAgcGdzdGF0X2RhdGFiYXNlX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50 cnlfcmVmLCBib29sIG5vd2FpdCkKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF90 YWJsZXNwYWNlKTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9sb2NrKTsKIAlQ R1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9zbmFwc2hvdCk7CisJUEdTVEFUX0FDQ1VN X0RCQ09VTlQoY29uZmxpY3RfbG9naWNhbHNsb3QpOwogCVBHU1RBVF9BQ0NVTV9EQkNPVU5U KGNvbmZsaWN0X2J1ZmZlcnBpbik7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rf c3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMK aW5kZXggNmNkZGQ3NGFhNy4uM2NlNjlhNGJiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMKQEAgLTEwNTUsNiArMTA1NSw4IEBAIFBHX1NUQVRfR0VUX0RCRU5UUllf SU5UNjQoeGFjdF9jb21taXQpCiAvKiBwZ19zdGF0X2dldF9kYl94YWN0X3JvbGxiYWNrICov CiBQR19TVEFUX0dFVF9EQkVOVFJZX0lOVDY0KHhhY3Rfcm9sbGJhY2spCiAKKy8qIHBnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90ICovCitQR19TVEFUX0dFVF9EQkVOVFJZ X0lOVDY0KGNvbmZsaWN0X2xvZ2ljYWxzbG90KQogCiBEYXR1bQogcGdfc3RhdF9nZXRfZGJf c3RhdF9yZXNldF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCkBAIC0xMDg4LDYgKzEwOTAsNyBA QCBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9hbGwoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVz dWx0ID0gKGludDY0KSAoZGJlbnRyeS0+Y29uZmxpY3RfdGFibGVzcGFjZSArCiAJCQkJCQkg IGRiZW50cnktPmNvbmZsaWN0X2xvY2sgKwogCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9z bmFwc2hvdCArCisJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2xvZ2ljYWxzbG90ICsKIAkJ CQkJCSAgZGJlbnRyeS0+Y29uZmxpY3RfYnVmZmVycGluICsKIAkJCQkJCSAgZGJlbnRyeS0+ Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CmluZGV4IDdiZTlhNTAxNDcuLmUwNTc1MTY4OTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdApAQCAtNTU0Niw2ICs1NTQ2LDExIEBACiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X3NuYXBzaG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJh bGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lk JywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcgfSwK K3sgb2lkID0+ICc5OTAxJywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNv bmZsaWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90 JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3Qn LCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlw ZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JyB9LAogeyBvaWQgPT4gJzMwNjgnLAog ICBkZXNjciA9PiAnc3RhdGlzdGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGluIGRhdGFiYXNl IGNhdXNlZCBieSBzaGFyZWQgYnVmZmVyIHBpbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbicsIHByb3ZvbGF0aWxlID0+ICdzJywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5k ZXggZDNlOTY1ZDc0NC4uNjRkYzRlOTllZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdz dGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTI5MSw2ICsyOTEsNyBAQCB0 eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdERCRW50cnkKIAlQZ1N0YXRfQ291bnRlciBjb25m bGljdF90YWJsZXNwYWNlOwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2xvY2s7CiAJUGdT dGF0X0NvdW50ZXIgY29uZmxpY3Rfc25hcHNob3Q7CisJUGdTdGF0X0NvdW50ZXIgY29uZmxp Y3RfbG9naWNhbHNsb3Q7CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfYnVmZmVycGluOwog CVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2s7CiAJUGdTdGF0X0Nv dW50ZXIgdGVtcF9maWxlczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA4ODcyYzgw Y2RmLi5jYTdlOTQxOGYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9z bG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0yMTYsNiAr MjE2LDcgQEAgZXh0ZXJuIFhMb2dSZWNQdHIgUmVwbGljYXRpb25TbG90c0NvbXB1dGVMb2dp Y2FsUmVzdGFydExTTih2b2lkKTsKIGV4dGVybiBib29sIFJlcGxpY2F0aW9uU2xvdHNDb3Vu dERCU2xvdHMoT2lkIGRib2lkLCBpbnQgKm5zbG90cywgaW50ICpuYWN0aXZlKTsKIGV4dGVy biB2b2lkIFJlcGxpY2F0aW9uU2xvdHNEcm9wREJTbG90cyhPaWQgZGJvaWQpOwogZXh0ZXJu IGJvb2wgSW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyhYTG9nU2VnTm8gb2xk ZXN0U2Vnbm8pOworZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJl cGxpY2F0aW9uU2xvdHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCk7CiBleHRlcm4g UmVwbGljYXRpb25TbG90ICpTZWFyY2hOYW1lZFJlcGxpY2F0aW9uU2xvdChjb25zdCBjaGFy ICpuYW1lLCBib29sIG5lZWRfbG9jayk7CiBleHRlcm4gaW50CVJlcGxpY2F0aW9uU2xvdElu ZGV4KFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7CiBleHRlcm4gYm9vbCBSZXBsaWNhdGlvblNs b3ROYW1lKGludCBpbmRleCwgTmFtZSBuYW1lKTsKQEAgLTIyNyw1ICsyMjgsNiBAQCBleHRl cm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90cyh2b2lkKTsKIAogZXh0ZXJuIHZv aWQgQ2hlY2tTbG90UmVxdWlyZW1lbnRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90 UGVybWlzc2lvbnModm9pZCk7CitleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGlj dFdpdGhMb2dpY2FsU2xvdHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAq cmVhc29uKTsKIAogI2VuZGlmCQkJCQkJCS8qIFNMT1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3By b2NzaWduYWwuaAppbmRleCA0NWUyZjFmZTlkLi42ZTU4YTNiM2ZiIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9y YWdlL3Byb2NzaWduYWwuaApAQCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIGVudW0KIAlQUk9D U0lHX1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0UsCiAJUFJPQ1NJR19SRUNPVkVSWV9D T05GTElDVF9MT0NLLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCisJ UFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCwKIAlQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX0JVRkZFUlBJTiwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NU QVJUVVBfREVBRExPQ0ssCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3Rh bmRieS5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKaW5kZXggMmVmZmRlYTEy Ni4uNDFmNGRjMzcyZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5 LmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKQEAgLTMwLDggKzMwLDEw IEBAIGV4dGVybiB2b2lkIEluaXRSZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQodm9p ZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blJlY292ZXJ5VHJhbnNhY3Rpb25FbnZpcm9ubWVu dCh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJ CQkJCWJvb2wgaXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9j YXRvcik7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCisJ CQkJCQkJCQkJCQkJICAgYm9vbCBpc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJCQkJICAgUmVs RmlsZUxvY2F0b3IgbG9jYXRvcik7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25m bGljdFdpdGhUYWJsZXNwYWNlKE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aERhdGFiYXNlKE9pZCBkYmlkKTsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKaW5kZXggZmI5ZjkzNmQ0My4uMWNjNjJjNDQ3ZCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4NjgsNyArMTg2OCw4IEBAIHBnX3N0 YXRfZGF0YWJhc2VfY29uZmxpY3RzfCBTRUxFQ1QgZC5vaWQgQVMgZGF0aWQsCiAgICAgcGdf c3RhdF9nZXRfZGJfY29uZmxpY3RfbG9jayhkLm9pZCkgQVMgY29uZmxfbG9jaywKICAgICBw Z19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdChkLm9pZCkgQVMgY29uZmxfc25hcHNo b3QsCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQub2lkKSBBUyBj b25mbF9idWZmZXJwaW4sCi0gICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9k ZWFkbG9jayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9zdGFydHVwX2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFkbG9jaywKKyAg ICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChkLm9pZCkgQVMgY29uZmxf YWN0aXZlX2xvZ2ljYWxzbG90CiAgICBGUk9NIHBnX2RhdGFiYXNlIGQ7CiBwZ19zdGF0X2dz c2FwaXwgU0VMRUNUIHMucGlkLAogICAgIHMuZ3NzX2F1dGggQVMgZ3NzX2F1dGhlbnRpY2F0 ZWQsCi0tIAoyLjM0LjEKCg== --------------oIFDDdQpExMWTSNNkT0LkHjl Content-Type: text/plain; charset=UTF-8; name="v36-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v36-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxZDgyNjFjNGU3NTA5MWQ0YTI5MTQ3ZWE5ZjU3MGI1OGRhMDlmMDVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAzIEphbiAyMDIzIDA2OjQ0OjUzICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MzYgMS82XSBBZGQgaW5mbyBpbiBXQUwgcmVjb3JkcyBpbiBwcmVwYXJhdGlvbiBmb3Ig bG9naWNhbAogc2xvdCBjb25mbGljdCBoYW5kbGluZy4KTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKCk92ZXJhbGwgZGVzaWduOgoKMS4gV2Ugd2FudCB0byBlbmFibGUg bG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5cywgYnV0IHJlcGxheSBvZiBXQUwKZnJvbSB0 aGUgcHJpbWFyeSBtaWdodCByZW1vdmUgZGF0YSB0aGF0IGlzIG5lZWRlZCBieSBsb2dpY2Fs IGRlY29kaW5nLApjYXVzaW5nIHJlcGxpY2F0aW9uIGNvbmZsaWN0cyBtdWNoIGFzIGhvdCBz dGFuZGJ5IGRvZXMuCgoyLiBPdXIgY2hvc2VuIHN0cmF0ZWd5IGZvciBkZWFsaW5nIHdpdGgg dGhpcyB0eXBlIG9mIHJlcGxpY2F0aW9uIHNsb3QKaXMgdG8gaW52YWxpZGF0ZSBsb2dpY2Fs IHNsb3RzIGZvciB3aGljaCBuZWVkZWQgZGF0YSBoYXMgYmVlbiByZW1vdmVkLgoKMy4gVG8g ZG8gdGhpcyB3ZSBuZWVkIHRoZSBsYXRlc3RSZW1vdmVkWGlkIGZvciBlYWNoIGNoYW5nZSwg anVzdCBhcyB3ZQpkbyBmb3IgcGh5c2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLCBidXQg d2UgYWxzbyBuZWVkIHRvIGtub3cKd2hldGhlciBhbnkgcGFydGljdWxhciBjaGFuZ2Ugd2Fz IHRvIGRhdGEgdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uCm1pZ2h0IGFjY2Vzcy4KCjQuIFdl IGNhbid0IHJlbHkgb24gdGhlIHN0YW5kYnkncyByZWxjYWNoZSBlbnRyaWVzIGZvciB0aGlz IHB1cnBvc2UgaW4KYW55IHdheSwgYmVjYXVzZSB0aGUgV0FMIHJlY29yZCB0aGF0IGNhdXNl cyB0aGUgcHJvYmxlbSBtaWdodCBiZQpyZXBsYXllZCBiZWZvcmUgdGhlIHN0YW5kYnkgZXZl biByZWFjaGVzIGNvbnNpc3RlbmN5LgoKNS4gVGhlcmVmb3JlIGV2ZXJ5IFdBTCByZWNvcmQg dGhhdCBwb3RlbnRpYWxseSByZW1vdmVzIGRhdGEgZnJvbSB0aGUKaW5kZXggb3IgaGVhcCBt dXN0IGNhcnJ5IGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IGl0IGlzIG9uZQp0 aGF0IG1pZ2h0IGJlIGFjY2Vzc2VkIGR1cmluZyBsb2dpY2FsIGRlY29kaW5nLgoKV2h5IGRv IHdlIG5lZWQgdGhpcyBmb3IgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5PwoKRmlyc3Qs IGxldCdzIGZvcmdldCBhYm91dCBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgYW5kIHJl Y2FsbCB0aGF0Cm9uIGEgcHJpbWFyeSBkYXRhYmFzZSwgYW55IGNhdGFsb2cgcm93cyB0aGF0 IG1heSBiZSBuZWVkZWQgYnkgYSBsb2dpY2FsCmRlY29kaW5nIHJlcGxpY2F0aW9uIHNsb3Qg YXJlIG5vdCByZW1vdmVkLgoKVGhpcyBpcyBkb25lIHRoYW5rcyB0byB0aGUgY2F0YWxvZ194 bWluIGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9naWNhbApyZXBsaWNhdGlvbiBzbG90LgoKQnV0 LCB3aXRoIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSwgaW4gdGhlIGZvbGxvd2luZyBj YXNlczoKCi0gaG90X3N0YW5kYnlfZmVlZGJhY2sgaXMgb2ZmCi0gaG90X3N0YW5kYnlfZmVl ZGJhY2sgaXMgb24gYnV0IHRoZXJlIGlzIG5vIGEgcGh5c2ljYWwgc2xvdCBiZXR3ZWVuCiAg dGhlIHByaW1hcnkgYW5kIHRoZSBzdGFuZGJ5LiBUaGVuLCBob3Rfc3RhbmRieV9mZWVkYmFj ayB3aWxsIHdvcmssCiAgYnV0IG9ubHkgd2hpbGUgdGhlIGNvbm5lY3Rpb24gaXMgYWxpdmUg KGZvciBleGFtcGxlIGEgbm9kZSByZXN0YXJ0CiAgd291bGQgYnJlYWsgaXQpCgpUaGVuLCB0 aGUgcHJpbWFyeSBtYXkgZGVsZXRlIHN5c3RlbSBjYXRhbG9nIHJvd3MgdGhhdCBjb3VsZCBi ZSBuZWVkZWQKYnkgdGhlIGxvZ2ljYWwgZGVjb2Rpbmcgb24gdGhlIHN0YW5kYnkgKGFzIGl0 IGRvZXMgbm90IGtub3cgYWJvdXQgdGhlCmNhdGFsb2dfeG1pbiBvbiB0aGUgc3RhbmRieSku CgpTbywgaXTigJlzIG1hbmRhdG9yeSB0byBpZGVudGlmeSB0aG9zZSByb3dzIGFuZCBpbnZh bGlkYXRlIHRoZSBzbG90cwp0aGF0IG1heSBuZWVkIHRoZW0gaWYgYW55LiBJZGVudGlmeWlu ZyB0aG9zZSByb3dzIGlzIHRoZSBwdXJwb3NlIG9mCnRoaXMgY29tbWl0LgoKSW1wbGVtZW50 YXRpb246CgpXaGVuIGEgV0FMIHJlcGxheSBvbiBzdGFuZGJ5IGluZGljYXRlcyB0aGF0IGEg Y2F0YWxvZyB0YWJsZSB0dXBsZSBpcwp0byBiZSBkZWxldGVkIGJ5IGFuIHhpZCB0aGF0IGlz IGdyZWF0ZXIgdGhhbiBhIGxvZ2ljYWwgc2xvdCdzCmNhdGFsb2dfeG1pbiwgdGhlbiB0aGF0 IG1lYW5zIHRoZSBzbG90J3MgY2F0YWxvZ194bWluIGNvbmZsaWN0cyB3aXRoCnRoZSB4aWQs IGFuZCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUgY29uZmxpY3QuIFdoaWxlIHN1YnNlcXVlbnQg Y29tbWl0cwp3aWxsIGRvIHRoZSBhY3R1YWwgY29uZmxpY3QgaGFuZGxpbmcsIHRoaXMgY29t bWl0IGFkZHMgYSBuZXcgZmllbGQKaXNDYXRhbG9nUmVsIGluIHN1Y2ggV0FMIHJlY29yZHMg KGFuZCBhIG5ldyBiaXQgc2V0IGluIHRoZQp4bF9oZWFwX3Zpc2libGUgZmxhZ3MgZmllbGQp LCB0aGF0IGlzIHRydWUgZm9yIGNhdGFsb2cgdGFibGVzLCBzbyBhcyB0bwphcnJhbmdlIGZv ciBjb25mbGljdCBoYW5kbGluZy4KCkR1ZSB0byB0aGlzIG5ldyBmaWVsZCBiZWluZyBhZGRl ZCwgeGxfaGFzaF92YWN1dW1fb25lX3BhZ2UgYW5kCmdpc3R4bG9nRGVsZXRlIGRvIG5vdyBj b250YWluIHRoZSBvZmZzZXRzIHRvIGJlIGRlbGV0ZWQgYXMgYQpGTEVYSUJMRV9BUlJBWV9N RU1CRVIuIFRoaXMgaXMgbmVlZGVkIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWduZW1lbnQuCkl0 J3Mgbm90IG5lZWRlZCBvbiB0aGUgb3RoZXJzIHN0cnVjdCB3aGVyZSBpc0NhdGFsb2dSZWwg aGFzCmJlZW4gYWRkZWQuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9sZGVyIHZl cnNpb24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQKRHJvdXZvdApSZXZpZXdlZC1CeTog QmVydHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZhYnJpemlv IGRlClJveWVzIE1lbGxvCi0tLQogY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2Rk bC5vdXQgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKwogY29udHJpYi90ZXN0X2Rl Y29kaW5nL3NxbC9kZGwuc3FsICAgICAgIHwgMjMgKysrKysrKysrCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgfCAxMSArKysrKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R4bG9nLmMgICAgICB8IDExICsrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFz aC9oYXNoX3hsb2cuYyAgICAgfCAxMiArKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaGluc2VydC5jICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMgICAgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j ICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyB8 ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYyAgICAgfCAgMiAr CiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jICAgfCAgMSArCiBzcmMv YmFja2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgICAgfCAxMCArKy0tCiBzcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgfCA1NSArKysrKysrKysrKysrKysr KysrKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oICAgICAgICAgICB8IDExICsr Ky0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggICAgICAgICAgfCAgOCArLS0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICB8ICA4ICstLQogc3Jj L2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaCAgICAgICAgICAgIHwgIDYgKystCiBzcmMvaW5j bHVkZS9hY2Nlc3Mvc3BneGxvZy5oICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgfCAgOSArKy0tCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2luZGV4LmggICAgICAgICAgfCAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9yZWwu aCAgICAgICAgICAgICAgICAgfCAxNCArKysrKy0KIDIyIGZpbGVzIGNoYW5nZWQsIDIxNyBp bnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKICAyNS42JSBjb250cmliL3Rlc3RfZGVj b2RpbmcvZXhwZWN0ZWQvCiAgMTAuOSUgY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC8KICAg NC4yJSBkb2Mvc3JjL3NnbWwvCiAgIDMuNyUgc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvCiAg IDMuNyUgc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvCiAgIDUuMyUgc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvCiAgMTQuOSUgc3JjL2JhY2tlbmQvY29tbWFuZHMvCiAgIDUuMiUgc3JjL2Jh Y2tlbmQvCiAgMjAuOCUgc3JjL2luY2x1ZGUvYWNjZXNzLwogICA0LjMlIHNyYy9pbmNsdWRl L3V0aWxzLwoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9k ZGwub3V0IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbC5vdXQKaW5kZXgg OWEyOGI1ZGRjNS4uNDhmYjQ0YzU3NSAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29k aW5nL2V4cGVjdGVkL2RkbC5vdXQKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVj dGVkL2RkbC5vdXQKQEAgLTQ4Myw2ICs0ODMsNyBAQCBDUkVBVEUgVEFCTEUgcmVwbGljYXRp b25fbWV0YWRhdGEgKAogKQogV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkKIDsK K0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIG9uIHJlcGxpY2F0aW9u X21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMucmVwbGljYXRpb25fbWV0YWRhdGEiCiAgIENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIApA QCAtNDkyLDExICs0OTMsMTkgQEAgV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkK ICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwg ICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9w a2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0 YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCiBPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9 dHJ1ZQogCitTRUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRl eCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwor IGJvb2xfYW5kIAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwogSU5TRVJUIElOVE8gcmVw bGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdmb28nLCBB UlJBWVsnYScsICdiJ10pOwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgUkVT RVQgKHVzZXJfY2F0YWxvZ190YWJsZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0 YWRhdGFfaWR4MiBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVw bGljYXRpb25fbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICBD b2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0 cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKQEAgLTUwNiwxMCArNTE1LDE5IEBAIEFMVEVSIFRB QkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFJFU0VUICh1c2VyX2NhdGFsb2dfdGFibGUpOwog IG9wdGlvbnMgIHwgdGV4dFtdICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAg ICAgICAgICAgICAgfCAKIEluZGV4ZXM6CiAgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX3Br ZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRh X2lkeDEiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4 MiIgYnRyZWUgKHJlbGF0aW9uKQorCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9n KSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRh Jzo6cmVnY2xhc3M7CisgYm9vbF9vciAKKy0tLS0tLS0tLQorIGYKKygxIHJvdykKIAogSU5T RVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxV RVMgKCdiYXInLCBBUlJBWVsnYScsICdiJ10pOwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25f bWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKTsKK0NSRUFURSBJTkRF WCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgzIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJl bGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRp b25fbWV0YWRhdGEiCiAgIENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFi bGUgfCAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAg fCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIApAQCAtNTE5LDE1ICs1 MzcsNTIgQEAgQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2Nh dGFsb2dfdGFibGUgPSB0cnVlKTsKICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJy ZXBsaWNhdGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAg ICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCisgICAgInJl cGxpY2F0aW9uX21ldGFkYXRhX2lkeDIiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGlj YXRpb25fbWV0YWRhdGFfaWR4MyIgYnRyZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9j YXRhbG9nX3RhYmxlPXRydWUKIAorU0VMRUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cp IGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEn OjpyZWdjbGFzczsKKyBib29sX2FuZCAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKIElO U0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFM VUVTICgnYmx1YicsIE5VTEwpOworLS0gQWxzbyBjaGVja2luZyB0aGF0IGluZGlzdXNlcmNh dGFsb2cgaXMgc2V0IGNvcnJlY3RseSB3aGVuIGEgdGFibGUgaXMgY3JlYXRlZCB3aXRoIHVz ZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNlCitDUkVBVEUgVEFCTEUgcmVwbGljYXRpb25fbWV0 YWRhdGFfZmFsc2UgKAorICAgIGlkIHNlcmlhbCBwcmltYXJ5IGtleSwKKyAgICByZWxhdGlv biBuYW1lIE5PVCBOVUxMLAorICAgIG9wdGlvbnMgdGV4dFtdCispCitXSVRIICh1c2VyX2Nh dGFsb2dfdGFibGUgPSBmYWxzZSkKKzsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRh ZGF0YV9mYWxzZV9pZHgxIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlKHJlbGF0aW9u KTsKK1xkKyByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRp b25fbWV0YWRhdGFfZmFsc2UiCisgIENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAg ICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBpZCAgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCBub3QgbnVsbCB8IG5leHR2YWwoJ3JlcGxpY2F0aW9uX21ldGFkYXRh X2ZhbHNlX2lkX3NlcSc6OnJlZ2NsYXNzKSB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwg CisgcmVsYXRpb24gfCBuYW1lICAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFp biAgICB8ICAgICAgICAgICAgICB8IAorIG9wdGlvbnMgIHwgdGV4dFtdICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6 CisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlX3BrZXkiIFBSSU1BUlkgS0VZLCBi dHJlZSAoaWQpCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlX2lkeDEiIGJ0cmVl IChyZWxhdGlvbikKK09wdGlvbnM6IHVzZXJfY2F0YWxvZ190YWJsZT1mYWxzZQorCitTRUxF Q1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJl bGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlJzo6cmVnY2xhc3M7CisgYm9vbF9v ciAKKy0tLS0tLS0tLQorIGYKKygxIHJvdykKKwogLS0gbWFrZSBzdXJlIHJld3JpdGVzIGRv bid0IHdvcmsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFERCBDT0xVTU4g cmV3cml0ZW1lb3Jub3QgaW50OwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEg QUxURVIgQ09MVU1OIHJld3JpdGVtZW9ybm90IFRZUEUgdGV4dDsKIEVSUk9SOiAgY2Fubm90 IHJld3JpdGUgdGFibGUgInJlcGxpY2F0aW9uX21ldGFkYXRhIiB1c2VkIGFzIGEgY2F0YWxv ZyB0YWJsZQogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2Nh dGFsb2dfdGFibGUgPSBmYWxzZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRh dGFfaWR4NCBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGlj YXRpb25fbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICAg ICBDb2x1bW4gICAgIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAg fCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKQEAgLTUzOCw4ICs1OTMsMTggQEAgQUxU RVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUg PSBmYWxzZSk7CiAgcmV3cml0ZW1lb3Jub3QgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGlj YXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVw bGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNh dGlvbl9tZXRhZGF0YV9pZHgyIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9u X21ldGFkYXRhX2lkeDMiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0 YWRhdGFfaWR4NCIgYnRyZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9jYXRhbG9nX3Rh YmxlPWZhbHNlCiAKK1NFTEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdf aW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFz czsKKyBib29sX29yIAorLS0tLS0tLS0tCisgZgorKDEgcm93KQorCiBJTlNFUlQgSU5UTyBy ZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ3phcGhv ZCcsIE5VTEwpOwogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcs ICdza2lwLWVtcHR5LXhhY3RzJywgJzEnKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9zcWwvZGRsLnNxbCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsLnNx bAppbmRleCA0Zjc2YmVkNzJjLi41MWJhYWM1YzRlIDEwMDY0NAotLS0gYS9jb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL2RkbC5zcWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3Nx bC9kZGwuc3FsCkBAIC0yNzYsMjkgKzI3Niw1MiBAQCBDUkVBVEUgVEFCTEUgcmVwbGljYXRp b25fbWV0YWRhdGEgKAogKQogV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkKIDsK KworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEgb24gcmVwbGljYXRp b25fbWV0YWRhdGEocmVsYXRpb24pOworCiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKK1NF TEVDVCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGlu ZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJ TlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgn Zm9vJywgQVJSQVlbJ2EnLCAnYiddKTsKIAogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0 YWRhdGEgUkVTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSk7CitDUkVBVEUgSU5ERVggcmVwbGlj YXRpb25fbWV0YWRhdGFfaWR4MiBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7 CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKK1NFTEVDVCBib29sX29yKGluZGlzdXNlcmNh dGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0 YWRhdGEnOjpyZWdjbGFzczsKIAogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEo cmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdiYXInLCBBUlJBWVsnYScsICdiJ10pOwog CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190 YWJsZSA9IHRydWUpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDMg b24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21l dGFkYXRhCitTRUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRl eCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwog CiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykK IFZBTFVFUyAoJ2JsdWInLCBOVUxMKTsKIAorLS0gQWxzbyBjaGVja2luZyB0aGF0IGluZGlz dXNlcmNhdGFsb2cgaXMgc2V0IGNvcnJlY3RseSB3aGVuIGEgdGFibGUgaXMgY3JlYXRlZCB3 aXRoIHVzZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNlCitDUkVBVEUgVEFCTEUgcmVwbGljYXRp b25fbWV0YWRhdGFfZmFsc2UgKAorICAgIGlkIHNlcmlhbCBwcmltYXJ5IGtleSwKKyAgICBy ZWxhdGlvbiBuYW1lIE5PVCBOVUxMLAorICAgIG9wdGlvbnMgdGV4dFtdCispCitXSVRIICh1 c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxzZSkKKzsKKworQ1JFQVRFIElOREVYIHJlcGxpY2F0 aW9uX21ldGFkYXRhX2ZhbHNlX2lkeDEgb24gcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2Uo cmVsYXRpb24pOworXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlCitTRUxFQ1QgYm9v bF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0g J3JlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlJzo6cmVnY2xhc3M7CisKIC0tIG1ha2Ugc3Vy ZSByZXdyaXRlcyBkb24ndCB3b3JrCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0 YSBBREQgQ09MVU1OIHJld3JpdGVtZW9ybm90IGludDsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhIEFMVEVSIENPTFVNTiByZXdyaXRlbWVvcm5vdCBUWVBFIHRleHQ7CiAK IEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3Rh YmxlID0gZmFsc2UpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDQg b24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21l dGFkYXRhCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4 IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAK IElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQog VkFMVUVTICgnemFwaG9kJywgTlVMTCk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDkzMTZiODEx YWMuLjQ1OTUzOWI3NjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC00NDQ3LDYgKzQ0NDcsMTcg QEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8 L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+aW5kaXN1c2VyY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0cnVlLCB0 aGUgaW5kZXggaXMgbGlua2VkIHRvIGEgdGFibGUgdGhhdCBpcyBkZWNsYXJlZCBhcyBhbiBh ZGRpdGlvbmFsCisgICAgICAgY2F0YWxvZyB0YWJsZSBmb3IgcHVycG9zZXMgb2YgbG9naWNh bCByZXBsaWNhdGlvbiAobWVhbnMgaGFzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJs ZSI+PGxpdGVyYWw+dXNlcl9jYXRhbG9nX3RhYmxlPC9saXRlcmFsPjwvbGluaz4pCisgICAg ICAgc2V0IHRvIHRydWUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK ICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmlu ZGlzcmVwbGlkZW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5kZXggMTRjMjMxMDFhZC4uZjUzNjhl M2E1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25z LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKQEAgLTEy MCw3ICsxMjAsNyBAQCBzdGF0aWMgcmVsb3B0X2Jvb2wgYm9vbFJlbE9wdHNbXSA9CiAJCQlS RUxPUFRfS0lORF9IRUFQLAogCQkJQWNjZXNzRXhjbHVzaXZlTG9jawogCQl9LAotCQlmYWxz ZQorCQlIRUFQX0RFRkFVTFRfVVNFUl9DQVRBTE9HX1RBQkxFCiAJfSwKIAl7CiAJCXsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCmluZGV4IGY2NTg2NDI1NGEuLjU5ZTMxZmNj MTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtMTc3LDYgKzE3Nyw3 IEBAIGdpc3RSZWRvRGVsZXRlUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCWdp c3R4bG9nRGVsZXRlICp4bGRhdGEgPSAoZ2lzdHhsb2dEZWxldGUgKikgWExvZ1JlY0dldERh dGEocmVjb3JkKTsKIAlCdWZmZXIJCWJ1ZmZlcjsKIAlQYWdlCQlwYWdlOworCU9mZnNldE51 bWJlciAqdG9EZWxldGUgPSB4bGRhdGEtPm9mZnNldHM7CiAKIAkvKgogCSAqIElmIHdlIGhh dmUgYW55IGNvbmZsaWN0IHByb2Nlc3NpbmcgdG8gZG8sIGl0IG11c3QgaGFwcGVuIGJlZm9y ZSB3ZQpAQCAtMjAzLDE0ICsyMDQsNyBAQCBnaXN0UmVkb0RlbGV0ZVJlY29yZChYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCkKIAl7CiAJCXBhZ2UgPSAoUGFnZSkgQnVmZmVyR2V0UGFnZShi dWZmZXIpOwogCi0JCWlmIChYTG9nUmVjR2V0RGF0YUxlbihyZWNvcmQpID4gU2l6ZU9mR2lz dHhsb2dEZWxldGUpCi0JCXsKLQkJCU9mZnNldE51bWJlciAqdG9kZWxldGU7Ci0KLQkJCXRv ZGVsZXRlID0gKE9mZnNldE51bWJlciAqKSAoKGNoYXIgKikgeGxkYXRhICsgU2l6ZU9mR2lz dHhsb2dEZWxldGUpOwotCi0JCQlQYWdlSW5kZXhNdWx0aURlbGV0ZShwYWdlLCB0b2RlbGV0 ZSwgeGxkYXRhLT5udG9kZWxldGUpOwotCQl9CisJCVBhZ2VJbmRleE11bHRpRGVsZXRlKHBh Z2UsIHRvRGVsZXRlLCB4bGRhdGEtPm50b2RlbGV0ZSk7CiAKIAkJR2lzdENsZWFyUGFnZUhh c0dhcmJhZ2UocGFnZSk7CiAJCUdpc3RNYXJrVHVwbGVzRGVsZXRlZChwYWdlKTsKQEAgLTYw OCw2ICs2MDIsNyBAQCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiByZWwsIEJsb2NrTnVt YmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBkZWxldGVYaWQpCiAJICovCiAKIAkvKiBY TE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2UuaXNDYXRhbG9nUmVsID0gUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVjX3JldXNlLmxvY2F0b3Ig PSByZWwtPnJkX2xvY2F0b3I7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJl Y19yZXVzZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IGRlbGV0ZVhpZDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKaW5kZXggZjM4YjQyZWZiOS4uMDhjZWI5MTI4OCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKQEAgLTk4MCw4ICs5ODAsMTAg QEAgaGFzaF94bG9nX3ZhY3V1bV9vbmVfcGFnZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkK IAlQYWdlCQlwYWdlOwogCVhMb2dSZWRvQWN0aW9uIGFjdGlvbjsKIAlIYXNoUGFnZU9wYXF1 ZSBwYWdlb3BhcXVlOworCU9mZnNldE51bWJlciAqdG9EZWxldGU7CiAKIAl4bGRhdGEgPSAo eGxfaGFzaF92YWN1dW1fb25lX3BhZ2UgKikgWExvZ1JlY0dldERhdGEocmVjb3JkKTsKKwl0 b0RlbGV0ZSA9IHhsZGF0YS0+b2Zmc2V0czsKIAogCS8qCiAJICogSWYgd2UgaGF2ZSBhbnkg Y29uZmxpY3QgcHJvY2Vzc2luZyB0byBkbywgaXQgbXVzdCBoYXBwZW4gYmVmb3JlIHdlCkBA IC0xMDEwLDE1ICsxMDEyLDcgQEAgaGFzaF94bG9nX3ZhY3V1bV9vbmVfcGFnZShYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCkKIAl7CiAJCXBhZ2UgPSAoUGFnZSkgQnVmZmVyR2V0UGFnZShi dWZmZXIpOwogCi0JCWlmIChYTG9nUmVjR2V0RGF0YUxlbihyZWNvcmQpID4gU2l6ZU9mSGFz aFZhY3V1bU9uZVBhZ2UpCi0JCXsKLQkJCU9mZnNldE51bWJlciAqdW51c2VkOwotCi0JCQl1 bnVzZWQgPSAoT2Zmc2V0TnVtYmVyICopICgoY2hhciAqKSB4bGRhdGEgKyBTaXplT2ZIYXNo VmFjdXVtT25lUGFnZSk7Ci0KLQkJCVBhZ2VJbmRleE11bHRpRGVsZXRlKHBhZ2UsIHVudXNl ZCwgeGxkYXRhLT5udHVwbGVzKTsKLQkJfQotCisJCVBhZ2VJbmRleE11bHRpRGVsZXRlKHBh Z2UsIHRvRGVsZXRlLCB4bGRhdGEtPm50dXBsZXMpOwogCQkvKgogCQkgKiBNYXJrIHRoZSBw YWdlIGFzIG5vdCBjb250YWluaW5nIGFueSBMUF9ERUFEIGl0ZW1zLiBTZWUgY29tbWVudHMg aW4KIAkJICogX2hhc2hfdmFjdXVtX29uZV9wYWdlKCkgZm9yIGRldGFpbHMuCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKaW5kZXggYTYwNGUzMTg5MS4uMjI2NTZiMjRl MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwpAQCAtNDMyLDYgKzQz Miw3IEBAIF9oYXNoX3ZhY3V1bV9vbmVfcGFnZShSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGhy ZWwsIEJ1ZmZlciBtZXRhYnVmLCBCdWZmZXIgYnVmKQogCQkJeGxfaGFzaF92YWN1dW1fb25l X3BhZ2UgeGxyZWM7CiAJCQlYTG9nUmVjUHRyCXJlY3B0cjsKIAorCQkJeGxyZWMuaXNDYXRh bG9nUmVsID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhocmVsKTsK IAkJCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGljdEhv cml6b247CiAJCQl4bHJlYy5udHVwbGVzID0gbmRlbGV0YWJsZTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW0uYwppbmRleCA4NTUzM2UxMmExLi4xMmVkZDY5NDQyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtNjgzMCw2ICs2ODMwLDcgQEAgaGVhcF9mcmVlemVf ZXhlY3V0ZV9wcmVwYXJlZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWZmZXIsCiAJCW5wbGFu cyA9IGhlYXBfeGxvZ19mcmVlemVfcGxhbih0dXBsZXMsIG50dXBsZXMsIHBsYW5zLCBvZmZz ZXRzKTsKIAogCQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uOworCQl4bHJlYy5pc0NhdGFsb2dSZWwgPSBSZWxhdGlvbklzQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CiAJCXhscmVjLm5wbGFucyA9IG5wbGFuczsK IAogCQlYTG9nQmVnaW5JbnNlcnQoKTsKQEAgLTgyNjIsNyArODI2Myw3IEBAIGJvdHRvbXVw X3NvcnRfYW5kX3NocmluayhUTV9JbmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKICAqIHVwZGF0 ZSB0aGUgaGVhcCBwYWdlJ3MgTFNOLgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF92aXNp YmxlKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZl ciB2bV9idWZmZXIsCitsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhl YXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAogCQkJCSBUcmFuc2FjdGlvbklkIHNuYXBz aG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdzKQogewogCXhsX2hlYXBfdmlzaWJs ZSB4bHJlYzsKQEAgLTgyNzQsNiArODI3NSw4IEBAIGxvZ19oZWFwX3Zpc2libGUoUmVsRmls ZUxvY2F0b3IgcmxvY2F0b3IsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZl ciwKIAogCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGlj dEhvcml6b247CiAJeGxyZWMuZmxhZ3MgPSB2bWZsYWdzOworCWlmIChSZWxhdGlvbklzQWNj ZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCkpCisJCXhscmVjLmZsYWdzIHw9IFZJU0lC SUxJVFlNQVBfT05fQ0FUQUxPR19BQ0NFU1NJQkxFX0lOX0xPR0lDQUxfREVDT0RJTkc7CiAJ WExvZ0JlZ2luSW5zZXJ0KCk7CiAJWExvZ1JlZ2lzdGVyRGF0YSgoY2hhciAqKSAmeGxyZWMs IFNpemVPZkhlYXBWaXNpYmxlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwppbmRleCA0ZTY1Y2JjYWRmLi4zZjAzNDIzNTFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYwpAQCAtNDE4LDYgKzQxOCw3IEBAIGhlYXBfcGFnZV9wcnVuZShSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCXhsX2hlYXBfcHJ1bmUgeGxyZWM7 CiAJCQlYTG9nUmVjUHRyCXJlY3B0cjsKIAorCQkJeGxyZWMuaXNDYXRhbG9nUmVsID0gUmVs YXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbik7CiAJCQl4bHJl Yy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHByc3RhdGUuc25hcHNob3RDb25mbGljdEhv cml6b247CiAJCQl4bHJlYy5ucmVkaXJlY3RlZCA9IHByc3RhdGUubnJlZGlyZWN0ZWQ7CiAJ CQl4bHJlYy5uZGVhZCA9IHByc3RhdGUubmRlYWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92aXNpYmlsaXR5bWFwLmMKaW5kZXggMWQxY2E0MjNhOS4uMDQ1YzYxZWRiOCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMjgzLDggKzI4Myw3 IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJs aywgQnVmZmVyIGhlYXBCdWYsCiAJCQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChyZWNwdHIp KQogCQkJewogCQkJCUFzc2VydCghSW5SZWNvdmVyeSk7Ci0JCQkJcmVjcHRyID0gbG9nX2hl YXBfdmlzaWJsZShyZWwtPnJkX2xvY2F0b3IsIGhlYXBCdWYsIHZtQnVmLAotCQkJCQkJCQkJ CSAgY3V0b2ZmX3hpZCwgZmxhZ3MpOworCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUo cmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwogCiAJCQkJLyoKIAkJ CQkgKiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1v biksIHdlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2Uu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCmluZGV4IDNmZWVlMjhk MTkuLmVkYzRmZTg2NmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0cGFnZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCkBA IC04MzYsNiArODM2LDcgQEAgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9uIHJlbCwgQmxv Y2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIHNhZmV4aWQpCiAJICovCiAKIAkv KiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2UuaXNDYXRhbG9nUmVsID0gUmVsYXRpb25J c0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVjX3JldXNlLmxvY2F0 b3IgPSByZWwtPnJkX2xvY2F0b3I7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtubzsKIAl4 bHJlY19yZXVzZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNhZmV4aWQ7CkBAIC0xMzU4 LDYgKzEzNTksNyBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwKIAkJWExvZ1JlY1B0cglyZWNwdHI7CiAJCXhsX2J0cmVlX2RlbGV0ZSB4bHJlY19k ZWxldGU7CiAKKwkJeGxyZWNfZGVsZXRlLmlzQ2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nl c3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAkJeGxyZWNfZGVsZXRlLnNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGljdEhvcml6b247CiAJCXhscmVjX2Rl bGV0ZS5uZGVsZXRlZCA9IG5kZWxldGFibGU7CiAJCXhscmVjX2RlbGV0ZS5udXBkYXRlZCA9 IG51cGRhdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3Nw Z3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRl eCAzYWRiMThmMmQ4Li5hZmQ5Mjc1YTEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qv c3BndmFjdXVtLmMKQEAgLTUwMyw2ICs1MDMsNyBAQCB2YWN1dW1SZWRpcmVjdEFuZFBsYWNl aG9sZGVyKFJlbGF0aW9uIGluZGV4LCBCdWZmZXIgYnVmZmVyKQogCXNwZ3hsb2dWYWN1dW1S ZWRpcmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsKIAorCXhscmVjLmlz Q2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaW5k ZXgpOwogCXhscmVjLm5Ub1BsYWNlaG9sZGVyID0gMDsKIAl4bHJlYy5zbmFwc2hvdENvbmZs aWN0SG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMK aW5kZXggZTY1NzlmMjk3OS4uYTAzODQwMGZlMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9pbmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAt MTIzLDcgKzEyMyw4IEBAIHN0YXRpYyB2b2lkIFVwZGF0ZUluZGV4UmVsYXRpb24oT2lkIGlu ZGV4b2lkLCBPaWQgaGVhcG9pZCwKIAkJCQkJCQkJYm9vbCBpc2V4Y2x1c2lvbiwKIAkJCQkJ CQkJYm9vbCBpbW1lZGlhdGUsCiAJCQkJCQkJCWJvb2wgaXN2YWxpZCwKLQkJCQkJCQkJYm9v bCBpc3JlYWR5KTsKKwkJCQkJCQkJYm9vbCBpc3JlYWR5LAorCQkJCQkJCQlib29sIGlzX3Vz ZXJfY2F0YWxvZyk7CiBzdGF0aWMgdm9pZCBpbmRleF91cGRhdGVfc3RhdHMoUmVsYXRpb24g cmVsLAogCQkJCQkJCSAgIGJvb2wgaGFzaW5kZXgsCiAJCQkJCQkJICAgZG91YmxlIHJlbHR1 cGxlcyk7CkBAIC01NDUsNyArNTQ2LDggQEAgVXBkYXRlSW5kZXhSZWxhdGlvbihPaWQgaW5k ZXhvaWQsCiAJCQkJCWJvb2wgaXNleGNsdXNpb24sCiAJCQkJCWJvb2wgaW1tZWRpYXRlLAog CQkJCQlib29sIGlzdmFsaWQsCi0JCQkJCWJvb2wgaXNyZWFkeSkKKwkJCQkJYm9vbCBpc3Jl YWR5LAorCQkJCQlib29sIGlzX3VzZXJfY2F0YWxvZykKIHsKIAlpbnQydmVjdG9yICppbmRr ZXk7CiAJb2lkdmVjdG9yICAqaW5kY29sbGF0aW9uOwpAQCAtNjIyLDYgKzYyNCw3IEBAIFVw ZGF0ZUluZGV4UmVsYXRpb24oT2lkIGluZGV4b2lkLAogCXZhbHVlc1tBbnVtX3BnX2luZGV4 X2luZGNoZWNreG1pbiAtIDFdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAl2YWx1ZXNbQW51 bV9wZ19pbmRleF9pbmRpc3JlYWR5IC0gMV0gPSBCb29sR2V0RGF0dW0oaXNyZWFkeSk7CiAJ dmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXNsaXZlIC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1 ZSk7CisJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXN1c2VyY2F0YWxvZyAtIDFdID0gQm9v bEdldERhdHVtKGlzX3VzZXJfY2F0YWxvZyk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5k aXNyZXBsaWRlbnQgLSAxXSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CiAJdmFsdWVzW0FudW1f cGdfaW5kZXhfaW5ka2V5IC0gMV0gPSBQb2ludGVyR2V0RGF0dW0oaW5ka2V5KTsKIAl2YWx1 ZXNbQW51bV9wZ19pbmRleF9pbmRjb2xsYXRpb24gLSAxXSA9IFBvaW50ZXJHZXREYXR1bShp bmRjb2xsYXRpb24pOwpAQCAtMTAyMCw3ICsxMDIzLDggQEAgaW5kZXhfY3JlYXRlKFJlbGF0 aW9uIGhlYXBSZWxhdGlvbiwKIAkJCQkJCWlzcHJpbWFyeSwgaXNfZXhjbHVzaW9uLAogCQkJ CQkJKGNvbnN0cl9mbGFncyAmIElOREVYX0NPTlNUUl9DUkVBVEVfREVGRVJSQUJMRSkgPT0g MCwKIAkJCQkJCSFjb25jdXJyZW50ICYmICFpbnZhbGlkLAotCQkJCQkJIWNvbmN1cnJlbnQp OworCQkJCQkJIWNvbmN1cnJlbnQsCisJCQkJCQlSZWxhdGlvbklzVXNlZEFzQ2F0YWxvZ1Rh YmxlKGhlYXBSZWxhdGlvbikpOwogCiAJLyoKIAkgKiBSZWdpc3RlciByZWxjYWNoZSBpbnZh bGlkYXRpb24gb24gdGhlIGluZGV4ZXMnIGhlYXAgcmVsYXRpb24sIHRvCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCmluZGV4IDFkYjNiZDllMmUuLjA5Mjc0OWQxMDMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogI2luY2x1 ZGUgInV0aWxzL3R5cGNhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAKIC8qCiAg KiBPTiBDT01NSVQgYWN0aW9uIGxpc3QKQEAgLTE0MTQ4LDYgKzE0MTQ5LDEwIEBAIEFURXhl Y1NldFJlbE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxl VHlwZSBvcGVyYXRpb24sCiAJRGF0dW0JCXJlcGxfdmFsW05hdHRzX3BnX2NsYXNzXTsKIAli b29sCQlyZXBsX251bGxbTmF0dHNfcGdfY2xhc3NdOwogCWJvb2wJCXJlcGxfcmVwbFtOYXR0 c19wZ19jbGFzc107CisJTGlzdENlbGwgICAqY2VsbDsKKwlMaXN0CSAgICpyZWxfb3B0aW9u czsKKwlib29sCQljYXRhbG9nX3RhYmxlX3ZhbCA9IEhFQVBfREVGQVVMVF9VU0VSX0NBVEFM T0dfVEFCTEU7CisJYm9vbAkJY2F0YWxvZ190YWJsZSA9IGZhbHNlOwogCXN0YXRpYyBjaGFy ICp2YWxpZG5zcHNbXSA9IEhFQVBfUkVMT1BUX05BTUVTUEFDRVM7CiAKIAlpZiAoZGVmTGlz dCA9PSBOSUwgJiYgb3BlcmF0aW9uICE9IEFUX1JlcGxhY2VSZWxPcHRpb25zKQpAQCAtMTQy MTQsNyArMTQyMTksNiBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlz dCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCXsKIAkJUXVlcnkJICAg KnZpZXdfcXVlcnkgPSBnZXRfdmlld19xdWVyeShyZWwpOwogCQlMaXN0CSAgICp2aWV3X29w dGlvbnMgPSB1bnRyYW5zZm9ybVJlbE9wdGlvbnMobmV3T3B0aW9ucyk7Ci0JCUxpc3RDZWxs ICAgKmNlbGw7CiAJCWJvb2wJCWNoZWNrX29wdGlvbiA9IGZhbHNlOwogCiAJCWZvcmVhY2go Y2VsbCwgdmlld19vcHRpb25zKQpAQCAtMTQyNDIsNiArMTQyNDYsMjAgQEAgQVRFeGVjU2V0 UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBl IG9wZXJhdGlvbiwKIAkJfQogCX0KIAorCS8qIElmIHVzZXJfY2F0YWxvZ190YWJsZSBpcyBw YXJ0IG9mIHRoZSBuZXcgb3B0aW9ucywgcmVjb3JkIGl0cyBuZXcgdmFsdWUgKi8KKwlyZWxf b3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhuZXdPcHRpb25zKTsKKworCWZvcmVh Y2goY2VsbCwgcmVsX29wdGlvbnMpCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IChEZWZF bGVtICopIGxmaXJzdChjZWxsKTsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAi dXNlcl9jYXRhbG9nX3RhYmxlIikgPT0gMCkKKwkJeworCQkJY2F0YWxvZ190YWJsZSA9IHRy dWU7CisJCQljYXRhbG9nX3RhYmxlX3ZhbCA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9 CisJfQorCiAJLyoKIAkgKiBBbGwgd2UgbmVlZCBkbyBoZXJlIGlzIHVwZGF0ZSB0aGUgcGdf Y2xhc3Mgcm93OyB0aGUgbmV3IG9wdGlvbnMgd2lsbCBiZQogCSAqIHByb3BhZ2F0ZWQgaW50 byByZWxjYWNoZXMgZHVyaW5nIHBvc3QtY29tbWl0IGNhY2hlIGludmFsLgpAQCAtMTQyNjgs NiArMTQyODYsNDEgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExpc3Qg KmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAogCVJlbGVhc2VTeXNDYWNo ZSh0dXBsZSk7CiAKKwkvKiBVcGRhdGUgdGhlIGluZGV4ZXMgaWYgdGhlcmUgaXMgYSBuZWVk IHRvICovCisJaWYgKGNhdGFsb2dfdGFibGUgfHwgb3BlcmF0aW9uID09IEFUX1Jlc2V0UmVs T3B0aW9ucykKKwl7CisJCVJlbGF0aW9uCXBnX2luZGV4OworCQlIZWFwVHVwbGUJcGdfaW5k ZXhfdHVwbGU7CisJCUZvcm1fcGdfaW5kZXggcGdfaW5kZXhfZm9ybTsKKwkJTGlzdENlbGwg ICAqaW5kZXg7CisKKwkJcGdfaW5kZXggPSB0YWJsZV9vcGVuKEluZGV4UmVsYXRpb25JZCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwkJZm9yZWFjaChpbmRleCwgUmVsYXRpb25HZXRJbmRl eExpc3QocmVsKSkKKwkJeworCQkJT2lkCQkJdGhpc0luZGV4T2lkID0gbGZpcnN0X29pZChp bmRleCk7CisKKwkJCXBnX2luZGV4X3R1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShJTkRF WFJFTElELAorCQkJCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0odGhpc0luZGV4T2lkKSk7 CisJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocGdfaW5kZXhfdHVwbGUpKQorCQkJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBpbmRleCAldSIsIHRoaXNJbmRleE9p ZCk7CisJCQlwZ19pbmRleF9mb3JtID0gKEZvcm1fcGdfaW5kZXgpIEdFVFNUUlVDVChwZ19p bmRleF90dXBsZSk7CisKKwkJCS8qIE1vZGlmeSB0aGUgaW5kZXggb25seSBpZiB1c2VyX2Nh dGFsb2dfdGFibGUgZGlmZmVyICovCisJCQlpZiAoY2F0YWxvZ190YWJsZV92YWwgIT0gcGdf aW5kZXhfZm9ybS0+aW5kaXN1c2VyY2F0YWxvZykKKwkJCXsKKwkJCQlwZ19pbmRleF9mb3Jt LT5pbmRpc3VzZXJjYXRhbG9nID0gY2F0YWxvZ190YWJsZV92YWw7CisJCQkJQ2F0YWxvZ1R1 cGxlVXBkYXRlKHBnX2luZGV4LCAmcGdfaW5kZXhfdHVwbGUtPnRfc2VsZiwgcGdfaW5kZXhf dHVwbGUpOworCQkJCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2tBcmcoSW5kZXhSZWxhdGlv bklkLCB0aGlzSW5kZXhPaWQsIDAsCisJCQkJCQkJCQkJCSBJbnZhbGlkT2lkLCB0cnVlKTsK KwkJCX0KKworCQkJaGVhcF9mcmVldHVwbGUocGdfaW5kZXhfdHVwbGUpOworCQl9CisKKwkJ dGFibGVfY2xvc2UocGdfaW5kZXgsIFJvd0V4Y2x1c2l2ZUxvY2spOworCX0KKwogCS8qIHJl cGVhdCB0aGUgd2hvbGUgZXhlcmNpc2UgZm9yIHRoZSB0b2FzdCB0YWJsZSwgaWYgdGhlcmUn cyBvbmUgKi8KIAlpZiAoT2lkSXNWYWxpZChyZWwtPnJkX3JlbC0+cmVsdG9hc3RyZWxpZCkp CiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggYi9zcmMv aW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAppbmRleCAwOWY5YjBmOGM2Li4xOTFmMGU1ODA4 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAorKysgYi9zcmMv aW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaApAQCAtNTEsMTMgKzUxLDEzIEBAIHR5cGVkZWYg c3RydWN0IGdpc3R4bG9nRGVsZXRlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZs aWN0SG9yaXpvbjsKIAl1aW50MTYJCW50b2RlbGV0ZTsJCS8qIG51bWJlciBvZiBkZWxldGVk IG9mZnNldHMgKi8KKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiAKLQkvKgotCSAqIElu IHBheWxvYWQgb2YgYmxrIDAgOiB0b2RlbGV0ZSBPZmZzZXROdW1iZXJzCi0JICovCisJLyog VE9ERUxFVEUgT0ZGU0VUIE5VTUJFUlMgKi8KKwlPZmZzZXROdW1iZXIgb2Zmc2V0c1tGTEVY SUJMRV9BUlJBWV9NRU1CRVJdOwogfSBnaXN0eGxvZ0RlbGV0ZTsKIAotI2RlZmluZSBTaXpl T2ZHaXN0eGxvZ0RlbGV0ZQkob2Zmc2V0b2YoZ2lzdHhsb2dEZWxldGUsIG50b2RlbGV0ZSkg KyBzaXplb2YodWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mR2lzdHhsb2dEZWxldGUgb2Zmc2V0 b2YoZ2lzdHhsb2dEZWxldGUsIG9mZnNldHMpCiAKIC8qCiAgKiBCYWNrdXAgQmxrIDA6IElm IHRoaXMgb3BlcmF0aW9uIGNvbXBsZXRlcyBhIHBhZ2Ugc3BsaXQsIGJ5IGluc2VydGluZyBh CkBAIC0xMDAsOSArMTAwLDEwIEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVJldXNl CiAJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcjsKIAlCbG9ja051bWJlciBibG9jazsKIAlGdWxs VHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKKwlib29sICAgICAgICBp c0NhdGFsb2dSZWw7CiB9IGdpc3R4bG9nUGFnZVJldXNlOwogCi0jZGVmaW5lIFNpemVPZkdp c3R4bG9nUGFnZVJldXNlCShvZmZzZXRvZihnaXN0eGxvZ1BhZ2VSZXVzZSwgc25hcHNob3RD b25mbGljdEhvcml6b24pICsgc2l6ZW9mKEZ1bGxUcmFuc2FjdGlvbklkKSkKKyNkZWZpbmUg U2l6ZU9mR2lzdHhsb2dQYWdlUmV1c2UJKG9mZnNldG9mKGdpc3R4bG9nUGFnZVJldXNlLCBp c0NhdGFsb2dSZWwpICsgc2l6ZW9mKGJvb2wpKQogCiBleHRlcm4gdm9pZCBnaXN0X3JlZG8o WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIHZvaWQgZ2lzdF9kZXNjKFN0cmlu Z0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94 bG9nLmgKaW5kZXggYTJmMGYzOTIxMy4uNGE3OWUwYzBhNCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNo X3hsb2cuaApAQCAtMjUyLDEyICsyNTIsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGFzaF92 YWN1dW1fb25lX3BhZ2UKIHsKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uOwogCWludAkJCW50dXBsZXM7Ci0KLQkvKiBUQVJHRVQgT0ZGU0VUIE5VTUJFUlMgRk9M TE9XIEFUIFRIRSBFTkQgKi8KKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CisJLyogVEFS R0VUIE9GRlNFVCBOVU1CRVJTICovCisJT2Zmc2V0TnVtYmVyIG9mZnNldHNbRkxFWElCTEVf QVJSQVlfTUVNQkVSXTsKIH0geGxfaGFzaF92YWN1dW1fb25lX3BhZ2U7CiAKLSNkZWZpbmUg U2l6ZU9mSGFzaFZhY3V1bU9uZVBhZ2UgXAotCShvZmZzZXRvZih4bF9oYXNoX3ZhY3V1bV9v bmVfcGFnZSwgbnR1cGxlcykgKyBzaXplb2YoaW50KSkKKyNkZWZpbmUgU2l6ZU9mSGFzaFZh Y3V1bU9uZVBhZ2Ugb2Zmc2V0b2YoeGxfaGFzaF92YWN1dW1fb25lX3BhZ2UsIG9mZnNldHMp CiAKIGV4dGVybiB2b2lkIGhhc2hfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBl eHRlcm4gdm9pZCBoYXNoX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5o IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggOGNiMGQ4ZGExOS4u MWQ0MzE4MWE0MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9n LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTI0NSwxMCAr MjQ1LDExIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUKIAlUcmFuc2FjdGlvbklk IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnJlZGlyZWN0ZWQ7CiAJdWlu dDE2CQluZGVhZDsKKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiAJLyogT0ZGU0VUIE5V TUJFUlMgYXJlIGluIHRoZSBibG9jayByZWZlcmVuY2UgMCAqLwogfSB4bF9oZWFwX3BydW5l OwogCi0jZGVmaW5lIFNpemVPZkhlYXBQcnVuZSAob2Zmc2V0b2YoeGxfaGVhcF9wcnVuZSwg bmRlYWQpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkhlYXBQcnVuZSAob2Zm c2V0b2YoeGxfaGVhcF9wcnVuZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAog LyoKICAqIFRoZSB2YWN1dW0gcGFnZSByZWNvcmQgaXMgc2ltaWxhciB0byB0aGUgcHJ1bmUg cmVjb3JkLCBidXQgY2FuIG9ubHkgbWFyawpAQCAtMzQ0LDEyICszNDUsMTMgQEAgdHlwZWRl ZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFnZQogewogCVRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b247CiAJdWludDE2CQlucGxhbnM7CisJYm9vbCAgICAgICAgaXND YXRhbG9nUmVsOwogCiAJLyogRlJFRVpFIFBMQU5TIEZPTExPVyAqLwogCS8qIE9GRlNFVCBO VU1CRVIgQVJSQVkgRk9MTE9XUyAqLwogfSB4bF9oZWFwX2ZyZWV6ZV9wYWdlOwogCi0jZGVm aW5lIFNpemVPZkhlYXBGcmVlemVQYWdlIChvZmZzZXRvZih4bF9oZWFwX2ZyZWV6ZV9wYWdl LCBucGxhbnMpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkhlYXBGcmVlemVQ YWdlIChvZmZzZXRvZih4bF9oZWFwX2ZyZWV6ZV9wYWdlLCBpc0NhdGFsb2dSZWwpICsgc2l6 ZW9mKGJvb2wpKQogCiAvKgogICogVGhpcyBpcyB3aGF0IHdlIG5lZWQgdG8ga25vdyBhYm91 dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAgYml0CkBAIC00MDgsNyArNDEwLDcgQEAgZXh0 ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8p OwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xvZ2ljYWxfcmV3cml0ZShYTG9nUmVhZGVyU3Rh dGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVM b2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsCitleHRlcm4gWExvZ1JlY1B0 ciBsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAog CQkJCQkJCQkgICBCdWZmZXIgdm1fYnVmZmVyLAogCQkJCQkJCQkgICBUcmFuc2FjdGlvbklk IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAogCQkJCQkJCQkgICB1aW50OCB2bWZsYWdzKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvbmJ0eGxvZy5oCmluZGV4IGVkZDEzMzNkOWIuLjk5ZDg3ZDcxODkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL25idHhsb2cuaApAQCAtMTg4LDkgKzE4OCwxMCBAQCB0eXBlZGVmIHN0cnVjdCB4 bF9idHJlZV9yZXVzZV9wYWdlCiAJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcjsKIAlCbG9ja051 bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpv bjsKKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiB9IHhsX2J0cmVlX3JldXNlX3BhZ2U7 CiAKLSNkZWZpbmUgU2l6ZU9mQnRyZWVSZXVzZVBhZ2UJKHNpemVvZih4bF9idHJlZV9yZXVz ZV9wYWdlKSkKKyNkZWZpbmUgU2l6ZU9mQnRyZWVSZXVzZVBhZ2UJKG9mZnNldG9mKHhsX2J0 cmVlX3JldXNlX3BhZ2UsIGlzQ2F0YWxvZ1JlbCkgKyBzaXplb2YoYm9vbCkpCiAKIC8qCiAg KiB4bF9idHJlZV92YWN1dW0gYW5kIHhsX2J0cmVlX2RlbGV0ZSByZWNvcmRzIGRlc2NyaWJl IGRlbGV0aW9uIG9mIGluZGV4CkBAIC0yMzUsMTMgKzIzNiwxNCBAQCB0eXBlZGVmIHN0cnVj dCB4bF9idHJlZV9kZWxldGUKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uOwogCXVpbnQxNgkJbmRlbGV0ZWQ7CiAJdWludDE2CQludXBkYXRlZDsKKwlib29sICAg ICAgICBpc0NhdGFsb2dSZWw7CiAKIAkvKiBERUxFVEVEIFRBUkdFVCBPRkZTRVQgTlVNQkVS UyBGT0xMT1cgKi8KIAkvKiBVUERBVEVEIFRBUkdFVCBPRkZTRVQgTlVNQkVSUyBGT0xMT1cg Ki8KIAkvKiBVUERBVEVEIFRVUExFUyBNRVRBREFUQSAoeGxfYnRyZWVfdXBkYXRlKSBBUlJB WSBGT0xMT1dTICovCiB9IHhsX2J0cmVlX2RlbGV0ZTsKIAotI2RlZmluZSBTaXplT2ZCdHJl ZURlbGV0ZQkob2Zmc2V0b2YoeGxfYnRyZWVfZGVsZXRlLCBudXBkYXRlZCkgKyBzaXplb2Yo dWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mQnRyZWVEZWxldGUJKG9mZnNldG9mKHhsX2J0cmVl X2RlbGV0ZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogLyoKICAqIFRoZSBv ZmZzZXRzIHRoYXQgYXBwZWFyIGluIHhsX2J0cmVlX3VwZGF0ZSBtZXRhZGF0YSBhcmUgb2Zm c2V0cyBpbnRvIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKaW5kZXggYjlkNjc1MzUzMy4uMjlh NmFhNTdhOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaAorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCkBAIC0yNDAsNiArMjQwLDcgQEAgdHlw ZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJlZGlyZWN0CiAJdWludDE2CQluVG9QbGFjZWhv bGRlcjsgLyogbnVtYmVyIG9mIHJlZGlyZWN0cyB0byBtYWtlIHBsYWNlaG9sZGVycyAqLwog CU9mZnNldE51bWJlciBmaXJzdFBsYWNlaG9sZGVyOwkvKiBmaXJzdCBwbGFjZWhvbGRlciB0 dXBsZSB0byByZW1vdmUgKi8KIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uOwkvKiBuZXdlc3QgWElEIG9mIHJlbW92ZWQgcmVkaXJlY3RzICovCisJYm9vbCAgICAg ICAgaXNDYXRhbG9nUmVsOwogCiAJLyogb2Zmc2V0cyBvZiByZWRpcmVjdCB0dXBsZXMgdG8g bWFrZSBwbGFjZWhvbGRlcnMgZm9sbG93ICovCiAJT2Zmc2V0TnVtYmVyIG9mZnNldHNbRkxF WElCTEVfQVJSQVlfTUVNQkVSXTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92 aXNpYmlsaXR5bWFwZGVmcy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBk ZWZzLmgKaW5kZXggOTE2NWI5NDU2Yi4uNDMyM2JjOTY0MSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTE3LDkgKzE3LDEwIEBACiAjZGVmaW5lIEJJ VFNfUEVSX0hFQVBCTE9DSyAyCiAKIC8qIEZsYWdzIGZvciBiaXQgbWFwICovCi0jZGVmaW5l IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJMHgwMQotI2RlZmluZSBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4JMHgwMgotI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMJMHgw MwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAotCQkJCQkJCQkJCQkgKiBmbGFn cyBiaXRzICovCisjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJCQkJCQkJCTB4 MDEKKyNkZWZpbmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCQkJCQkJCQkweDAyCisjZGVm aW5lIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUwkJCQkJCQkJMHgwMwkvKiBPUiBvZiBhbGwg dmFsaWQgdmlzaWJpbGl0eW1hcAorCQkJCQkJCQkJCQkJCQkJCQkJICogZmxhZ3MgYml0cyAq LworI2RlZmluZSBWSVNJQklMSVRZTUFQX09OX0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJ Q0FMX0RFQ09ESU5HCTB4MDQKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBERUZT X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAppbmRleCBiMDU5MjU3MWRhLi5mNWY1ZGUx NjAzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCkBAIC00Myw2ICs0Myw4IEBAIENBVEFM T0cocGdfaW5kZXgsMjYxMCxJbmRleFJlbGF0aW9uSWQpIEJLSV9TQ0hFTUFfTUFDUk8KIAli b29sCQlpbmRjaGVja3htaW47CS8qIG11c3Qgd2Ugd2FpdCBmb3IgeG1pbiB0byBiZSBvbGQ/ ICovCiAJYm9vbAkJaW5kaXNyZWFkeTsJCS8qIGlzIHRoaXMgaW5kZXggcmVhZHkgZm9yIGlu c2VydHM/ICovCiAJYm9vbAkJaW5kaXNsaXZlOwkJLyogaXMgdGhpcyBpbmRleCBhbGl2ZSBh dCBhbGw/ICovCisJYm9vbAkJaW5kaXN1c2VyY2F0YWxvZzsJLyogaXMgdGhpcyBpbmRleCBs aW5rZWQgdG8gYSB1c2VyIGNhdGFsb2cKKwkJCQkJCQkJCSAqIHJlbGF0aW9uPyAqLwogCWJv b2wJCWluZGlzcmVwbGlkZW50OyAvKiBpcyB0aGlzIGluZGV4IHRoZSBpZGVudGl0eSBmb3Ig cmVwbGljYXRpb24/ICovCiAKIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhl cmUsIGJ1dCB3ZSBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIGluZGtleSAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApp bmRleCBhZjk3ODUwMzhkLi4yZWYxOTJjMTY5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMjcsNiArMjcs NyBAQAogI2luY2x1ZGUgInN0b3JhZ2Uvc21nci5oIgogI2luY2x1ZGUgInV0aWxzL3JlbGNh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsdHJpZ2dlci5oIgorI2luY2x1ZGUgImNhdGFs b2cvY2F0YWxvZy5oIgogCiAKIC8qCkBAIC0zNDMsNiArMzQ0LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgU3RkUmRPcHRpb25zCiAKICNkZWZpbmUgSEVBUF9NSU5fRklMTEZBQ1RPUgkJCTEwCiAj ZGVmaW5lIEhFQVBfREVGQVVMVF9GSUxMRkFDVE9SCQkxMDAKKyNkZWZpbmUgSEVBUF9ERUZB VUxUX1VTRVJfQ0FUQUxPR19UQUJMRQkJZmFsc2UKIAogLyoKICAqIFJlbGF0aW9uR2V0VG9h c3RUdXBsZVRhcmdldApAQCAtMzg1LDYgKzM4NywxNSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRS ZE9wdGlvbnMKIAkgIChyZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01B VFZJRVcpID8gXAogCSAoKFN0ZFJkT3B0aW9ucyAqKSAocmVsYXRpb24pLT5yZF9vcHRpb25z KS0+dXNlcl9jYXRhbG9nX3RhYmxlIDogZmFsc2UpCiAKKy8qCisgKiBJbmRleElzTGlua2Vk VG9Vc2VyQ2F0YWxvZ1RhYmxlCisgKgkJUmV0dXJucyB3aGV0aGVyIHRoZSByZWxhdGlvbiBz aG91bGQgYmUgdHJlYXRlZCBhcyBhbiBpbmRleCBsaW5rZWQgdG8KKyAqCQlhIHVzZXIgY2F0 YWxvZyB0YWJsZSBmcm9tIHRoZSBwb3Ygb2YgbG9naWNhbCBkZWNvZGluZy4KKyAqLworI2Rl ZmluZSBJbmRleElzTGlua2VkVG9Vc2VyQ2F0YWxvZ1RhYmxlKHJlbGF0aW9uKQlcCisJKChy ZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYICYmIFwKKwkgKHJl bGF0aW9uKS0+cmRfaW5kZXgtPmluZGlzdXNlcmNhdGFsb2cpCisKIC8qCiAgKiBSZWxhdGlv bkdldFBhcmFsbGVsV29ya2VycwogICoJCVJldHVybnMgdGhlIHJlbGF0aW9uJ3MgcGFyYWxs ZWxfd29ya2VycyByZWxvcHRpb24gc2V0dGluZy4KQEAgLTY4Miw3ICs2OTMsOCBAQCBSZWxh dGlvbkNsb3NlU21ncihSZWxhdGlvbiByZWxhdGlvbikKICNkZWZpbmUgUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNhbElu Zm9BY3RpdmUoKSAmJiBcCiAJIFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pICYmIFwKLQkg KElzQ2F0YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSB8fCBSZWxhdGlvbklzVXNlZEFzQ2F0YWxv Z1RhYmxlKHJlbGF0aW9uKSkpCisJIChJc0NhdGFsb2dSZWxhdGlvbihyZWxhdGlvbikgfHwg UmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikgfHwgXAorCSAgSW5kZXhJ c0xpbmtlZFRvVXNlckNhdGFsb2dUYWJsZShyZWxhdGlvbikpKQogCiAvKgogICogUmVsYXRp b25Jc0xvZ2ljYWxseUxvZ2dlZAotLSAKMi4zNC4xCgo= --------------oIFDDdQpExMWTSNNkT0LkHjl--