Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wAAJq-0027Yg-0V for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Apr 2026 17:34:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAAJn-001inF-2J for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Apr 2026 17:34:28 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wAAJm-001in7-2g for pgsql-hackers@lists.postgresql.org; Tue, 07 Apr 2026 17:34:27 +0000 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wAAJh-000000014Xp-0v00 for pgsql-hackers@lists.postgresql.org; Tue, 07 Apr 2026 17:34:26 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 1F3573EC16; Tue, 7 Apr 2026 17:34:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vondra.me; s=gm1; t=1775583259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=anuXEP27/JbkfZf3DdLMgQAHXDiF4WJjfLYVesWgPuQ=; b=UbEMNPhS8mp5lxtg+TK9BQSB9BZ05RAr/znQrJOvdIlQ69PP8UvsUxQaPz6t3JS7dMPNV6 vK5DLb2gqEA4EGpXlwmbgSRQplg+5XVFP/VFxQ7aKc56A5IN8aCf9brFDF81E+3zPtDl/V dsPLcaeakp4tA1wl0uWpDwS5pABljo8srSp7Vub+T9RzO+JvFUHOBXTgckpeKlU2YnI//S TAHYcNGfBeUgDssfdrQazuLc7VpAiSb2UuOtsoGqtLnlfUh+Yaf8dT57zA4SumLtbyV1xR lefxkKzDq3/4Yi7uLbWUcZ2XY/OofjlwTKPyHXiAUBUfiQrNvR1tCYAcxooVVw== Content-Type: multipart/mixed; boundary="------------gEzlAgH0MfmkTWAZBB6VCeL9" Message-ID: <552ecf6c-e8a2-4183-afc4-eff592674475@vondra.me> Date: Tue, 7 Apr 2026 19:34:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: EXPLAIN: showing ReadStream / prefetch stats To: Melanie Plageman Cc: Lukas Fittl , Andres Freund , PostgreSQL Hackers References: <8125d541-1116-46e6-a5b0-e47a390214f1@vondra.me> <945a7a88-061b-4158-8362-9233c1565ee6@vondra.me> <3bdbc70d-ad44-494a-8aab-868b5066fe8b@vondra.me> <4d3bfa83-a11a-4d01-8dce-46724d49a7e1@vondra.me> <2aaa701f-76f9-4e83-bb2c-ec4520b5a89b@vondra.me> <8d6187c9-62ac-43a3-88d1-7503c4206657@vondra.me> <6ce690b9-0ec4-4d9e-ae9b-95a5ca3f79b2@vondra.me> <72391376-967e-41b8-806b-41f9efea9a97@vondra.me> Content-Language: en-US From: Tomas Vondra In-Reply-To: X-GND-Sasl: tomas@vondra.me X-GND-Cause: dmFkZTEoUIv4zVL9oBlxE9S13e/9RgMVqpn0BYtrV0tpq7WQnQYJq4K9IPLTullnTCG4I7wyDqnrCGFnqFWxTvqsmHhsXno63QfngiLpHXJz3eo1FwNnyy3P4ob7LKvjSMuFVLgzFS1kr7Ik+UdZTzlfYf3zc81+Il3vLb+ohp3Tqq4Yz/D6tzzeNhRHFRcJNXj2V9UJN1V+bAWgRQjtoeIRq0LvaFc3tBOrA1W0Tm8gkKIRhMemnTj2iJSXztiu3LmktI4JMbniJH7sx2gUO+NXQUjOrSjT/iP/bHLCuwRpdU9vnEKfmiscbwnTn3tT4fznZ5nWx1wk8IF0NzPEufgOtucVVxwgMm79tHLDilQpAe3ECzaljZIdfcUBDLMl4aX2BvCADeyJS89XX9vLvOQmzaB1dpmjqSCTViBqXocuHFTR6wadBSdd/UI7PKiRuCKYNzsE7rMw6olUTWY/nzgJuNxtUhn7jxLi5TBG10rADqIE3yBbQP2OjGZK/c3oZnKCSoVdOk7rOvLEAqkYWGVdzER6Y1/zDF2rxE9k+0JYNOtoXdQb6+dYvLWCQVR0pmfmCT894GJAqKmEeiwm/LfCwReeTTodzKTnGBVBQKjbZA0dJzYymcFHy93SVow2W0iYKJi7+UIEjlwglMLNNHUxggrIhYFC20iNalV7JxZ/INVRug X-GND-State: clean X-GND-Score: -100 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. --------------gEzlAgH0MfmkTWAZBB6VCeL9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 4/7/26 18:07, Melanie Plageman wrote: > On Tue, Apr 7, 2026 at 8:36 AM Tomas Vondra wrote: >> >> I've pushed the first two parts earlier today. Here's a v13 with the >> remaining pieces rebased on top of that, with updated commit messages >> and some additional fixes. > > I noticed a couple of things while reviewing 0004. > > I see I had bitmapheapscan use > if (!node->ss.ps.instrument || pcxt->nworkers == 0) > return; > > while seq scan uses > if (!estate->es_instrument || pcxt->nworkers == 0) > return; > > That does seem worth being consistent about. Though the estate one is > probably better to use and changing bitmapheapscan in this commit > might be noisy... I don't feel strongly either way. > I'm not sure this is just a question of consistency, because BHS may need the shared instrumentation even if (es_instrument = 0), no? While the seqscan/tidrange scan only need it with EXPLAIN(IO). So I think the two nodes should check ((estate->es_instrument & INSTRUMENT_IO) == 0) The attached v14 does it this way. I left BHS to check ps.instrument, I think that's fine. > In ExecSeqScanInstrumentInitWorker() -> shm_toc_lookup() noerror is true: > > node->sinstrument = shm_toc_lookup(pwcxt->toc, > node->ss.ps.plan->plan_node_id > + PARALLEL_KEY_SCAN_INSTRUMENT_OFFSET, > true); > > I went back and forth on this for bitmapheapscan and ended up going > with the guard > if (!node->ss.ps.instrument) > return; > and passing noerror as false. I thought it would be better to get an > error if something went wrong. > > If you keep noerror true, there's no reason to check for es_instrument. I agree this should use noerror=false. It's an error to not find the expected DSM chunk, and we don't want to hide that. It'd probably fail with a segfault later, but that's hardly a better outcome. > > I also noticed that seq scan doesn't use add_size/mul_size for the > size calculations when estimating and allocating DSM. I switched to > using them in bitmapheapscan because I realized other code in that > file used them. Seems seq scan was doing plain arithmetic without > those helpers already. And overflow is unlikely here. But I wonder if > it is worth using them? > Seems better to use that, so done in v14. > It doesn't matter for the Retrieve functions because overflow would > have caused us to error out at estimation or allocation time. > > Most of the seq scan specific stuff above applies to tid range scan as well. > OK, fixed that too. > One other point about 0002: I wonder if the text explain output should > say "in-progress" instead of "inprogress" > True. Changed. Thanks! -- Tomas Vondra --------------gEzlAgH0MfmkTWAZBB6VCeL9 Content-Type: text/x-patch; charset=UTF-8; name="v14-0001-Switch-EXPLAIN-to-unaligned-output-for-json-xml-.patch" Content-Disposition: attachment; filename*0="v14-0001-Switch-EXPLAIN-to-unaligned-output-for-json-xml-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxMjcwZmI0Yzg3Yjk2NDAyMWE2NmZmYjI2MWE5MDFlMGZkYzkyOWFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogVHVlLCAzMSBNYXIgMjAyNiAxMzo0NDoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg djE0IDEvNV0gU3dpdGNoIEVYUExBSU4gdG8gdW5hbGlnbmVkIG91dHB1dCBmb3IganNvbi94 bWwveWFtbAoKVXNlIHVuYWxpZ25lZCBvdXRwdXQgZm9yIG11bHRpcGxlIEVYUExBSU4gcXVl cmllcyB1c2luZyBub24tdGV4dCBmb3JtYXQKaW4gcmVncmVzc2lvbiB0ZXN0cy4gV2l0aCBh bGlnbmVkIG91dHB1dCBhZGRpbmcvcmVtb3ZpbmcgZXhwbGFpbiBmaWVsZHMKY2FuIGJlIHZl cnkgZGlzcnVwdGl2ZSwgYXMgaXQgb2Z0ZW4gbW9kaWZpZXMgdGhlIHdob2xlIGJsb2NrIGJl Y2F1c2Ugb2YKcGFkZGluZy4gVW5hbGlnbmVkIG91dHB1dCBkb2VzIG5vdCBoYXZlIHRoaXMg aXNzdWUuCgpSZXZpZXdlZC1ieTogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFu QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEx1a2FzIEZpdHRsIDxsdWthc0BmaXR0bC5jb20+ ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+CkRpc2N1 c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9hMTc3YTZkZC0yNDBiLTQ1NWEtOGYy NS1hY2EwYjFjMDhjNmUlNDB2b25kcmEubWUKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2V4cGxhaW4ub3V0IHwgMjk2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNxbCAgICAgIHwgICA1ICstCiAyIGZpbGVzIGNo YW5nZWQsIDE1MCBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQKaW5kZXggN2MxZjI2YjE4MmMuLmRjMzFjN2Nl OWY5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQKQEAgLTkzLDE2 NCArOTMsMTYwIEBAIHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwg YnVmZmVycywgZm9ybWF0IHRleHQpIHNlbGVjdCAqIGZyb20gaW50CiAgRXhlY3V0aW9uIFRp bWU6IE4uTiBtcwogKDMgcm93cykKIAotc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWlu IChhbmFseXplLCBidWZmZXJzLCBmb3JtYXQgeG1sKSBzZWxlY3QgKiBmcm9tIGludDhfdGJs IGk4Jyk7Ci0gICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSA8ZXhwbGFpbiB4bWxucz0iaHR0cDovL3d3dy5wb3N0Z3Jlc3Fs Lm9yZy9OL2V4cGxhaW4iPiArCi0gICA8UXVlcnk+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgICA8UGxhbj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8Tm9kZS1UeXBlPlNlcSBTY2Fu PC9Ob2RlLVR5cGU+ICAgICAgICAgICAgICAgICArCi0gICAgICAgPFBhcmFsbGVsLUF3YXJl PmZhbHNlPC9QYXJhbGxlbC1Bd2FyZT4gICAgICAgICAgKwotICAgICAgIDxBc3luYy1DYXBh YmxlPmZhbHNlPC9Bc3luYy1DYXBhYmxlPiAgICAgICAgICAgICsKLSAgICAgICA8UmVsYXRp b24tTmFtZT5pbnQ4X3RibDwvUmVsYXRpb24tTmFtZT4gICAgICAgICArCi0gICAgICAgPEFs aWFzPmk4PC9BbGlhcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAg IDxTdGFydHVwLUNvc3Q+Ti5OPC9TdGFydHVwLUNvc3Q+ICAgICAgICAgICAgICAgICsKLSAg ICAgICA8VG90YWwtQ29zdD5OLk48L1RvdGFsLUNvc3Q+ICAgICAgICAgICAgICAgICAgICAr Ci0gICAgICAgPFBsYW4tUm93cz5OPC9QbGFuLVJvd3M+ICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgICAgIDxQbGFuLVdpZHRoPk48L1BsYW4tV2lkdGg+ICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgICA8QWN0dWFsLVN0YXJ0dXAtVGltZT5OLk48L0FjdHVhbC1TdGFy dHVwLVRpbWU+ICArCi0gICAgICAgPEFjdHVhbC1Ub3RhbC1UaW1lPk4uTjwvQWN0dWFsLVRv dGFsLVRpbWU+ICAgICAgKwotICAgICAgIDxBY3R1YWwtUm93cz5OLk48L0FjdHVhbC1Sb3dz PiAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8QWN0dWFsLUxvb3BzPk48L0FjdHVhbC1M b29wcz4gICAgICAgICAgICAgICAgICArCi0gICAgICAgPERpc2FibGVkPmZhbHNlPC9EaXNh YmxlZD4gICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxTaGFyZWQtSGl0LUJsb2Nr cz5OPC9TaGFyZWQtSGl0LUJsb2Nrcz4gICAgICAgICsKLSAgICAgICA8U2hhcmVkLVJlYWQt QmxvY2tzPk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4gICAgICArCi0gICAgICAgPFNoYXJlZC1E aXJ0aWVkLUJsb2Nrcz5OPC9TaGFyZWQtRGlydGllZC1CbG9ja3M+KwotICAgICAgIDxTaGFy ZWQtV3JpdHRlbi1CbG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4tQmxvY2tzPisKLSAgICAgICA8 TG9jYWwtSGl0LUJsb2Nrcz5OPC9Mb2NhbC1IaXQtQmxvY2tzPiAgICAgICAgICArCi0gICAg ICAgPExvY2FsLVJlYWQtQmxvY2tzPk48L0xvY2FsLVJlYWQtQmxvY2tzPiAgICAgICAgKwot ICAgICAgIDxMb2NhbC1EaXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJsb2Nrcz4g ICsKLSAgICAgICA8TG9jYWwtV3JpdHRlbi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRlbi1CbG9j a3M+ICArCi0gICAgICAgPFRlbXAtUmVhZC1CbG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nrcz4g ICAgICAgICAgKwotICAgICAgIDxUZW1wLVdyaXR0ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRl bi1CbG9ja3M+ICAgICsKLSAgICAgPC9QbGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCi0gICAgIDxQbGFubmluZz4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxTaGFyZWQtSGl0LUJsb2Nrcz5OPC9T aGFyZWQtSGl0LUJsb2Nrcz4gICAgICAgICsKLSAgICAgICA8U2hhcmVkLVJlYWQtQmxvY2tz Pk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4gICAgICArCi0gICAgICAgPFNoYXJlZC1EaXJ0aWVk LUJsb2Nrcz5OPC9TaGFyZWQtRGlydGllZC1CbG9ja3M+KwotICAgICAgIDxTaGFyZWQtV3Jp dHRlbi1CbG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4tQmxvY2tzPisKLSAgICAgICA8TG9jYWwt SGl0LUJsb2Nrcz5OPC9Mb2NhbC1IaXQtQmxvY2tzPiAgICAgICAgICArCi0gICAgICAgPExv Y2FsLVJlYWQtQmxvY2tzPk48L0xvY2FsLVJlYWQtQmxvY2tzPiAgICAgICAgKwotICAgICAg IDxMb2NhbC1EaXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJsb2Nrcz4gICsKLSAg ICAgICA8TG9jYWwtV3JpdHRlbi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRlbi1CbG9ja3M+ICAr Ci0gICAgICAgPFRlbXAtUmVhZC1CbG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nrcz4gICAgICAg ICAgKwotICAgICAgIDxUZW1wLVdyaXR0ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRlbi1CbG9j a3M+ICAgICsKLSAgICAgPC9QbGFubmluZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICAgIDxQbGFubmluZy1UaW1lPk4uTjwvUGxhbm5pbmctVGltZT4g ICAgICAgICAgICAgICAgKwotICAgICA8VHJpZ2dlcnM+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgPC9UcmlnZ2Vycz4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIDxFeGVjdXRpb24tVGltZT5OLk48L0V4 ZWN1dGlvbi1UaW1lPiAgICAgICAgICAgICAgKwotICAgPC9RdWVyeT4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSA8L2V4cGxhaW4+Ci0oMSByb3cp Ci0KLXNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgc2VyaWFsaXpl LCBidWZmZXJzLCBmb3JtYXQgeWFtbCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOwot ICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotIC0gUGxhbjogICAgICAgICAgICAgICAgICAgICAgKwotICAgICBOb2Rl IFR5cGU6ICJTZXEgU2NhbiIgICAgKwotICAgICBQYXJhbGxlbCBBd2FyZTogZmFsc2UgICAg KwotICAgICBBc3luYyBDYXBhYmxlOiBmYWxzZSAgICAgKwotICAgICBSZWxhdGlvbiBOYW1l OiAiaW50OF90YmwiKwotICAgICBBbGlhczogImk4IiAgICAgICAgICAgICAgKwotICAgICBT dGFydHVwIENvc3Q6IE4uTiAgICAgICAgKwotICAgICBUb3RhbCBDb3N0OiBOLk4gICAgICAg ICAgKwotICAgICBQbGFuIFJvd3M6IE4gICAgICAgICAgICAgKwotICAgICBQbGFuIFdpZHRo OiBOICAgICAgICAgICAgKwotICAgICBBY3R1YWwgU3RhcnR1cCBUaW1lOiBOLk4gKwotICAg ICBBY3R1YWwgVG90YWwgVGltZTogTi5OICAgKwotICAgICBBY3R1YWwgUm93czogTi5OICAg ICAgICAgKwotICAgICBBY3R1YWwgTG9vcHM6IE4gICAgICAgICAgKwotICAgICBEaXNhYmxl ZDogZmFsc2UgICAgICAgICAgKwotICAgICBTaGFyZWQgSGl0IEJsb2NrczogTiAgICAgKwot ICAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4gICAgKwotICAgICBTaGFyZWQgRGlydGllZCBC bG9ja3M6IE4gKwotICAgICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4gKwotICAgICBMb2Nh bCBIaXQgQmxvY2tzOiBOICAgICAgKwotICAgICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAg KwotICAgICBMb2NhbCBEaXJ0aWVkIEJsb2NrczogTiAgKwotICAgICBMb2NhbCBXcml0dGVu IEJsb2NrczogTiAgKwotICAgICBUZW1wIFJlYWQgQmxvY2tzOiBOICAgICAgKwotICAgICBU ZW1wIFdyaXR0ZW4gQmxvY2tzOiBOICAgKwotICAgUGxhbm5pbmc6ICAgICAgICAgICAgICAg ICAgKwotICAgICBTaGFyZWQgSGl0IEJsb2NrczogTiAgICAgKwotICAgICBTaGFyZWQgUmVh ZCBCbG9ja3M6IE4gICAgKwotICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4gKwotICAg ICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4gKwotICAgICBMb2NhbCBIaXQgQmxvY2tzOiBO ICAgICAgKwotICAgICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAgKwotICAgICBMb2NhbCBE aXJ0aWVkIEJsb2NrczogTiAgKwotICAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTiAgKwot ICAgICBUZW1wIFJlYWQgQmxvY2tzOiBOICAgICAgKwotICAgICBUZW1wIFdyaXR0ZW4gQmxv Y2tzOiBOICAgKwotICAgUGxhbm5pbmcgVGltZTogTi5OICAgICAgICAgKwotICAgVHJpZ2dl cnM6ICAgICAgICAgICAgICAgICAgKwotICAgU2VyaWFsaXphdGlvbjogICAgICAgICAgICAg KwotICAgICBUaW1lOiBOLk4gICAgICAgICAgICAgICAgKwotICAgICBPdXRwdXQgVm9sdW1l OiBOICAgICAgICAgKwotICAgICBGb3JtYXQ6ICJ0ZXh0IiAgICAgICAgICAgKwotICAgICBT aGFyZWQgSGl0IEJsb2NrczogTiAgICAgKwotICAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4g ICAgKwotICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4gKwotICAgICBTaGFyZWQgV3Jp dHRlbiBCbG9ja3M6IE4gKwotICAgICBMb2NhbCBIaXQgQmxvY2tzOiBOICAgICAgKwotICAg ICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAgKwotICAgICBMb2NhbCBEaXJ0aWVkIEJsb2Nr czogTiAgKwotICAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTiAgKwotICAgICBUZW1wIFJl YWQgQmxvY2tzOiBOICAgICAgKwotICAgICBUZW1wIFdyaXR0ZW4gQmxvY2tzOiBOICAgKwot ICAgRXhlY3V0aW9uIFRpbWU6IE4uTgotKDEgcm93KQotCiBzZWxlY3QgZXhwbGFpbl9maWx0 ZXIoJ2V4cGxhaW4gKGJ1ZmZlcnMsIGZvcm1hdCB0ZXh0KSBzZWxlY3QgKiBmcm9tIGludDhf dGJsIGk4Jyk7CiAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAg ICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1O Lk4uLk4uTiByb3dzPU4gd2lkdGg9TikKICgxIHJvdykKIAorXGEKK3NlbGVjdCBleHBsYWlu X2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IHhtbCkgc2VsZWN0 ICogZnJvbSBpbnQ4X3RibCBpOCcpOworZXhwbGFpbl9maWx0ZXIKKzxleHBsYWluIHhtbG5z PSJodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL04vZXhwbGFpbiI+CisgIDxRdWVyeT4KKyAg ICA8UGxhbj4KKyAgICAgIDxOb2RlLVR5cGU+U2VxIFNjYW48L05vZGUtVHlwZT4KKyAgICAg IDxQYXJhbGxlbC1Bd2FyZT5mYWxzZTwvUGFyYWxsZWwtQXdhcmU+CisgICAgICA8QXN5bmMt Q2FwYWJsZT5mYWxzZTwvQXN5bmMtQ2FwYWJsZT4KKyAgICAgIDxSZWxhdGlvbi1OYW1lPmlu dDhfdGJsPC9SZWxhdGlvbi1OYW1lPgorICAgICAgPEFsaWFzPmk4PC9BbGlhcz4KKyAgICAg IDxTdGFydHVwLUNvc3Q+Ti5OPC9TdGFydHVwLUNvc3Q+CisgICAgICA8VG90YWwtQ29zdD5O Lk48L1RvdGFsLUNvc3Q+CisgICAgICA8UGxhbi1Sb3dzPk48L1BsYW4tUm93cz4KKyAgICAg IDxQbGFuLVdpZHRoPk48L1BsYW4tV2lkdGg+CisgICAgICA8QWN0dWFsLVN0YXJ0dXAtVGlt ZT5OLk48L0FjdHVhbC1TdGFydHVwLVRpbWU+CisgICAgICA8QWN0dWFsLVRvdGFsLVRpbWU+ Ti5OPC9BY3R1YWwtVG90YWwtVGltZT4KKyAgICAgIDxBY3R1YWwtUm93cz5OLk48L0FjdHVh bC1Sb3dzPgorICAgICAgPEFjdHVhbC1Mb29wcz5OPC9BY3R1YWwtTG9vcHM+CisgICAgICA8 RGlzYWJsZWQ+ZmFsc2U8L0Rpc2FibGVkPgorICAgICAgPFNoYXJlZC1IaXQtQmxvY2tzPk48 L1NoYXJlZC1IaXQtQmxvY2tzPgorICAgICAgPFNoYXJlZC1SZWFkLUJsb2Nrcz5OPC9TaGFy ZWQtUmVhZC1CbG9ja3M+CisgICAgICA8U2hhcmVkLURpcnRpZWQtQmxvY2tzPk48L1NoYXJl ZC1EaXJ0aWVkLUJsb2Nrcz4KKyAgICAgIDxTaGFyZWQtV3JpdHRlbi1CbG9ja3M+TjwvU2hh cmVkLVdyaXR0ZW4tQmxvY2tzPgorICAgICAgPExvY2FsLUhpdC1CbG9ja3M+TjwvTG9jYWwt SGl0LUJsb2Nrcz4KKyAgICAgIDxMb2NhbC1SZWFkLUJsb2Nrcz5OPC9Mb2NhbC1SZWFkLUJs b2Nrcz4KKyAgICAgIDxMb2NhbC1EaXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJs b2Nrcz4KKyAgICAgIDxMb2NhbC1Xcml0dGVuLUJsb2Nrcz5OPC9Mb2NhbC1Xcml0dGVuLUJs b2Nrcz4KKyAgICAgIDxUZW1wLVJlYWQtQmxvY2tzPk48L1RlbXAtUmVhZC1CbG9ja3M+Cisg ICAgICA8VGVtcC1Xcml0dGVuLUJsb2Nrcz5OPC9UZW1wLVdyaXR0ZW4tQmxvY2tzPgorICAg IDwvUGxhbj4KKyAgICA8UGxhbm5pbmc+CisgICAgICA8U2hhcmVkLUhpdC1CbG9ja3M+Tjwv U2hhcmVkLUhpdC1CbG9ja3M+CisgICAgICA8U2hhcmVkLVJlYWQtQmxvY2tzPk48L1NoYXJl ZC1SZWFkLUJsb2Nrcz4KKyAgICAgIDxTaGFyZWQtRGlydGllZC1CbG9ja3M+TjwvU2hhcmVk LURpcnRpZWQtQmxvY2tzPgorICAgICAgPFNoYXJlZC1Xcml0dGVuLUJsb2Nrcz5OPC9TaGFy ZWQtV3JpdHRlbi1CbG9ja3M+CisgICAgICA8TG9jYWwtSGl0LUJsb2Nrcz5OPC9Mb2NhbC1I aXQtQmxvY2tzPgorICAgICAgPExvY2FsLVJlYWQtQmxvY2tzPk48L0xvY2FsLVJlYWQtQmxv Y2tzPgorICAgICAgPExvY2FsLURpcnRpZWQtQmxvY2tzPk48L0xvY2FsLURpcnRpZWQtQmxv Y2tzPgorICAgICAgPExvY2FsLVdyaXR0ZW4tQmxvY2tzPk48L0xvY2FsLVdyaXR0ZW4tQmxv Y2tzPgorICAgICAgPFRlbXAtUmVhZC1CbG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nrcz4KKyAg ICAgIDxUZW1wLVdyaXR0ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRlbi1CbG9ja3M+CisgICAg PC9QbGFubmluZz4KKyAgICA8UGxhbm5pbmctVGltZT5OLk48L1BsYW5uaW5nLVRpbWU+Cisg ICAgPFRyaWdnZXJzPgorICAgIDwvVHJpZ2dlcnM+CisgICAgPEV4ZWN1dGlvbi1UaW1lPk4u TjwvRXhlY3V0aW9uLVRpbWU+CisgIDwvUXVlcnk+Cis8L2V4cGxhaW4+CisoMSByb3cpCitz ZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIHNlcmlhbGl6ZSwgYnVm ZmVycywgZm9ybWF0IHlhbWwpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKK2V4cGxh aW5fZmlsdGVyCistIFBsYW46IAorICAgIE5vZGUgVHlwZTogIlNlcSBTY2FuIgorICAgIFBh cmFsbGVsIEF3YXJlOiBmYWxzZQorICAgIEFzeW5jIENhcGFibGU6IGZhbHNlCisgICAgUmVs YXRpb24gTmFtZTogImludDhfdGJsIgorICAgIEFsaWFzOiAiaTgiCisgICAgU3RhcnR1cCBD b3N0OiBOLk4KKyAgICBUb3RhbCBDb3N0OiBOLk4KKyAgICBQbGFuIFJvd3M6IE4KKyAgICBQ bGFuIFdpZHRoOiBOCisgICAgQWN0dWFsIFN0YXJ0dXAgVGltZTogTi5OCisgICAgQWN0dWFs IFRvdGFsIFRpbWU6IE4uTgorICAgIEFjdHVhbCBSb3dzOiBOLk4KKyAgICBBY3R1YWwgTG9v cHM6IE4KKyAgICBEaXNhYmxlZDogZmFsc2UKKyAgICBTaGFyZWQgSGl0IEJsb2NrczogTgor ICAgIFNoYXJlZCBSZWFkIEJsb2NrczogTgorICAgIFNoYXJlZCBEaXJ0aWVkIEJsb2Nrczog TgorICAgIFNoYXJlZCBXcml0dGVuIEJsb2NrczogTgorICAgIExvY2FsIEhpdCBCbG9ja3M6 IE4KKyAgICBMb2NhbCBSZWFkIEJsb2NrczogTgorICAgIExvY2FsIERpcnRpZWQgQmxvY2tz OiBOCisgICAgTG9jYWwgV3JpdHRlbiBCbG9ja3M6IE4KKyAgICBUZW1wIFJlYWQgQmxvY2tz OiBOCisgICAgVGVtcCBXcml0dGVuIEJsb2NrczogTgorICBQbGFubmluZzogCisgICAgU2hh cmVkIEhpdCBCbG9ja3M6IE4KKyAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4KKyAgICBTaGFy ZWQgRGlydGllZCBCbG9ja3M6IE4KKyAgICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4KKyAg ICBMb2NhbCBIaXQgQmxvY2tzOiBOCisgICAgTG9jYWwgUmVhZCBCbG9ja3M6IE4KKyAgICBM b2NhbCBEaXJ0aWVkIEJsb2NrczogTgorICAgIExvY2FsIFdyaXR0ZW4gQmxvY2tzOiBOCisg ICAgVGVtcCBSZWFkIEJsb2NrczogTgorICAgIFRlbXAgV3JpdHRlbiBCbG9ja3M6IE4KKyAg UGxhbm5pbmcgVGltZTogTi5OCisgIFRyaWdnZXJzOiAKKyAgU2VyaWFsaXphdGlvbjogCisg ICAgVGltZTogTi5OCisgICAgT3V0cHV0IFZvbHVtZTogTgorICAgIEZvcm1hdDogInRleHQi CisgICAgU2hhcmVkIEhpdCBCbG9ja3M6IE4KKyAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4K KyAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4KKyAgICBTaGFyZWQgV3JpdHRlbiBCbG9j a3M6IE4KKyAgICBMb2NhbCBIaXQgQmxvY2tzOiBOCisgICAgTG9jYWwgUmVhZCBCbG9ja3M6 IE4KKyAgICBMb2NhbCBEaXJ0aWVkIEJsb2NrczogTgorICAgIExvY2FsIFdyaXR0ZW4gQmxv Y2tzOiBOCisgICAgVGVtcCBSZWFkIEJsb2NrczogTgorICAgIFRlbXAgV3JpdHRlbiBCbG9j a3M6IE4KKyAgRXhlY3V0aW9uIFRpbWU6IE4uTgorKDEgcm93KQogc2VsZWN0IGV4cGxhaW5f ZmlsdGVyKCdleHBsYWluIChidWZmZXJzLCBmb3JtYXQganNvbikgc2VsZWN0ICogZnJvbSBp bnQ4X3RibCBpOCcpOwotICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBbICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCi0gICAgICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAiTm9k ZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgKwotICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZh bHNlLCAgICArCi0gICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICsKLSAgICAg ICAiUmVsYXRpb24gTmFtZSI6ICJpbnQ4X3RibCIsKwotICAgICAgICJBbGlhcyI6ICJpOCIs ICAgICAgICAgICAgICArCi0gICAgICAgIlN0YXJ0dXAgQ29zdCI6IE4uTiwgICAgICAgICsK LSAgICAgICAiVG90YWwgQ29zdCI6IE4uTiwgICAgICAgICAgKwotICAgICAgICJQbGFuIFJv d3MiOiBOLCAgICAgICAgICAgICArCi0gICAgICAgIlBsYW4gV2lkdGgiOiBOLCAgICAgICAg ICAgICsKLSAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgKwotICAgICAgICJT aGFyZWQgSGl0IEJsb2NrcyI6IE4sICAgICArCi0gICAgICAgIlNoYXJlZCBSZWFkIEJsb2Nr cyI6IE4sICAgICsKLSAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgKwotICAg ICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBOLCArCi0gICAgICAgIkxvY2FsIEhpdCBC bG9ja3MiOiBOLCAgICAgICsKLSAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAg KwotICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IE4sICArCi0gICAgICAgIkxvY2Fs IFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKLSAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4s ICAgICAgKwotICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjogTiAgICArCi0gICAgIH0s ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgIlBsYW5uaW5nIjogeyAgICAg ICAgICAgICAgICAgKwotICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IE4sICAgICArCi0g ICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICsKLSAgICAgICAiU2hhcmVkIERp cnRpZWQgQmxvY2tzIjogTiwgKwotICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBO LCArCi0gICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKLSAgICAgICAiTG9j YWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgKwotICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2Nr cyI6IE4sICArCi0gICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKLSAgICAg ICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKwotICAgICAgICJUZW1wIFdyaXR0ZW4g QmxvY2tzIjogTiAgICArCi0gICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotIF0KK2V4cGxhaW5fZmls dGVyCitbCisgIHsKKyAgICAiUGxhbiI6IHsKKyAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNj YW4iLAorICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsCisgICAgICAiQXN5bmMgQ2Fw YWJsZSI6IGZhbHNlLAorICAgICAgIlJlbGF0aW9uIE5hbWUiOiAiaW50OF90YmwiLAorICAg ICAgIkFsaWFzIjogImk4IiwKKyAgICAgICJTdGFydHVwIENvc3QiOiBOLk4sCisgICAgICAi VG90YWwgQ29zdCI6IE4uTiwKKyAgICAgICJQbGFuIFJvd3MiOiBOLAorICAgICAgIlBsYW4g V2lkdGgiOiBOLAorICAgICAgIkRpc2FibGVkIjogZmFsc2UsCisgICAgICAiU2hhcmVkIEhp dCBCbG9ja3MiOiBOLAorICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sCisgICAgICAi U2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwKKyAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9j a3MiOiBOLAorICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLAorICAgICAgIkxvY2FsIFJl YWQgQmxvY2tzIjogTiwKKyAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IE4sCisgICAg ICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAgIlRlbXAgUmVhZCBCbG9ja3Mi OiBOLAorICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOCisgICAgfSwKKyAgICAiUGxh bm5pbmciOiB7CisgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLAorICAgICAgIlNoYXJl ZCBSZWFkIEJsb2NrcyI6IE4sCisgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwK KyAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAgIkxvY2FsIEhpdCBC bG9ja3MiOiBOLAorICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwKKyAgICAgICJMb2Nh bCBEaXJ0aWVkIEJsb2NrcyI6IE4sCisgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBO LAorICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLAorICAgICAgIlRlbXAgV3JpdHRlbiBC bG9ja3MiOiBOCisgICAgfQorICB9CitdCiAoMSByb3cpCi0KK1xhCiAtLSBDaGVjayBleHBh bnNpb24gb2Ygd2luZG93IGRlZmluaXRpb25zCiBzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4 cGxhaW4gdmVyYm9zZSBzZWxlY3Qgc3VtKHVuaXF1ZTEpIG92ZXIgdywgc3VtKHVuaXF1ZTIp IG92ZXIgKHcgb3JkZXIgYnkgaHVuZHJlZCksIHN1bSh0ZW50aG91cykgb3ZlciAodyBvcmRl ciBieSBodW5kcmVkKSBmcm9tIHRlbmsxIHdpbmRvdyB3IGFzIChwYXJ0aXRpb24gYnkgdGVu KScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBs YWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXhwbGFpbi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNxbAppbmRleCBlYmRhYjQyNjA0Yi4uOGYxMGUx YWZmNTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsCkBAIC02NiwxMCArNjYsMTMg QEAgc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIHNlbGVjdCAqIGZyb20gaW50OF90 YmwgaTgnKTsKIHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVm ZmVycyBvZmYpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKIHNlbGVjdCBleHBsYWlu X2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycyBvZmYsIHZlcmJvc2UpIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKIHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFp biAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IHRleHQpIHNlbGVjdCAqIGZyb20gaW50OF90 YmwgaTgnKTsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYnVmZmVycywgZm9y bWF0IHRleHQpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKworXGEKIHNlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IHhtbCkg c2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOwogc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdl eHBsYWluIChhbmFseXplLCBzZXJpYWxpemUsIGJ1ZmZlcnMsIGZvcm1hdCB5YW1sKSBzZWxl Y3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7Ci1zZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxh aW4gKGJ1ZmZlcnMsIGZvcm1hdCB0ZXh0KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7 CiBzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGJ1ZmZlcnMsIGZvcm1hdCBqc29u KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CitcYQogCiAtLSBDaGVjayBleHBhbnNp b24gb2Ygd2luZG93IGRlZmluaXRpb25zCiAKLS0gCjIuNTMuMAoK --------------gEzlAgH0MfmkTWAZBB6VCeL9 Content-Type: text/x-patch; charset=UTF-8; name="v14-0002-Add-EXPLAIN-IO-infrastructure-with-BitmapHeapSca.patch" Content-Disposition: attachment; filename*0="v14-0002-Add-EXPLAIN-IO-infrastructure-with-BitmapHeapSca.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3NGU4OGYwOGQ4NzgwMTc5OWQ3OWM5N2Q0NTFkYTNiODllZTU3ZGU5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDUgQXByIDIwMjYgMTc6MTc6MjIgLTA0MDAKU3Vi amVjdDogW1BBVENIIHYxNCAyLzVdIEFkZCBFWFBMQUlOIChJTykgaW5mcmFzdHJ1Y3R1cmUg d2l0aCBCaXRtYXBIZWFwU2Nhbgogc3VwcG9ydAoKQWxsb3dzIGNvbGxlY3RpbmcgZGV0YWls cyBhYm91dCBBSU8gLyBwcmVmZXRjaCBmb3Igc2NhbiBub2RlcyBiYWNrZWQgYnkKYSBSZWFk U3RyZWFtLiBUaGlzIG1heSBiZSBlbmFibGVkIGJ5IGEgbmV3ICJJTyIgb3B0aW9uIGluIEVY UExBSU4sIGFuZAppdCBzaG93cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJlZmV0Y2ggZGlz dGFuY2UgYW5kIEkvTyByZXF1ZXN0cy4KCkFzIG9mIHRoaXMgY29tbWl0IHRoaXMgYXBwbGll cyBvbmx5IHRvIEJpdG1hcEhlYXBTY2FuLCBiZWNhdXNlIHRoYXQncwp0aGUgb25seSBzY2Fu IG5vZGUgdXNpbmcgYSBSZWFkU3RyZWFtIGFuZCBjb2xsZWN0aW5nIGluc3RydW1lbnRhdGlv bgpmcm9tIHdvcmtlcnMgaW4gYSBwYXJhbGxlbCBxdWVyeS4gU3VwcG9ydCBmb3IgU2VxU2Nh biBhbmQgVGlkUmFuZ2VTY2FuLAp0aGUgb3RoZXIgc2NhbiBub2RlcyB1c2luZyBSZWFkU3Ry ZWFtLCB3aWxsIGJlIGFkZGVkIGluIHN1YnNlcXVlbnQKY29tbWl0cy4KClRoZSBzdGF0cyBh cmUgY29sbGVjdGVkIG9ubHkgd2hlbiByZXF1aXJlZCBieSBFWFBMQUlOIEFOQUxZWkUsIHdp dGggdGhlCklPIG9wdGlvbiAoZGlzYWJsZWQgYnkgZGVmYXVsdCkuIFRoZSBhbW91bnQgb2Yg Y29sbGVjdGVkIHN0YXRpc3RpY3MgaXMKdmVyeSBsaW1pdGVkLCBidXQgd2UgZG9uJ3Qgd2Fu dCB0byBjbHV0dGVyIEVYUExBSU4gd2l0aCB0b28gbXVjaCBkYXRhLgoKVGhlIElPU3RhdHMg c3RydWN0IGlzIHN0b3JlZCBpbiB0aGUgc2NhbiBkZXNjcmlwdG9yIGFzIGEgZmllbGQsIG5l eHQgdG8Kb3RoZXIgZmllbGRzIHVzZWQgYnkgdGFibGUgQU1zLiBBIHBvaW50ZXIgdG8gdGhl IGZpZWxkIGlzIHBhc3NlZCB0byB0aGUKUmVhZFN0cmVhbSwgYW5kIHVwZGF0ZWQgZGlyZWN0 bHkuCgpJdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgdGFibGUgQU0gdG8gYWxsb2Nh dGUgdGhlIHN0cnVjdCAoZS5nLiBpbgphbWJlZ2luc2Nhbikgd2hlbmV2ZXIgdGhlIGZsYWcg U09fU0NBTl9JTlNUUlVNRU5UIGZsYWcgaXMgcGFzc2VkIHRvIHRoZQpzY2FuLCBzbyB0aGF0 IHRoZSBleGVjdXRvciBhbmQgUmVhZFN0cmVhbSBoYXMgYWNjZXNzIHRvIGl0LgoKVGhlIGNv bGxlY3RlZCBzdGF0cyBhcmUgZGVzaWduZWQgZm9yIFJlYWRTdHJlYW0sIGJ1dCBhcmUgbWVh bnQgdG8gYmUKcmVhc29uYWJseSBnZW5lcmljIGluIGNhc2UgYSBUQU0gbWFuYWdlcyBJL09z IGluIGRpZmZlcmVudCB3YXlzLgoKUmV2aWV3ZWQtYnk6IE1lbGFuaWUgUGxhZ2VtYW4gPG1l bGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBMdWthcyBGaXR0bCA8bHVr YXNAZml0dGwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJh emVsLmRlPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvYTE3N2E2ZGQt MjQwYi00NTVhLThmMjUtYWNhMGIxYzA4YzZlJTQwdm9uZHJhLm1lCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9leHBsYWluLnNnbWwgICAgICAgICAgICAgfCAgMTIgKysKIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgIHwgIDEzICsrKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgfCAxMjggKysrKysrKysrKysrKysrKysr KysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9zdGF0ZS5jICAgICAgfCAgIDgg KysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIHwgIDE5ICsr Ky0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMgICAgIHwgIDg3ICsr KysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaCAgICAgICAgICAg ICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCAgICAgICAgICAgICAg fCAgIDMgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbl9zdGF0ZS5oICAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudF9ub2RlLmggICAgfCAgNTAgKysr KysrKysrCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3JlYWRfc3RyZWFtLmggICAgICAgICB8ICAg MiArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICB8ICAgMiAr CiAxMyBmaWxlcyBjaGFuZ2VkLCAzMzAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvZXhwbGFpbi5zZ21sCmluZGV4IDViOGI1MjE4MDJlLi5hODU0YzQxZTk2MyAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9leHBsYWluLnNnbWwKQEAgLTQ2LDYgKzQ2LDcgQEAgRVhQTEFJTiBbICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gKSBdIDxyZXAKICAgICBUSU1JTkcgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF0KICAgICBTVU1NQVJZIFsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdCiAgICAgTUVN T1JZIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2Vh YmxlPiBdCisgICAgSU8gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVh bjwvcmVwbGFjZWFibGU+IF0KICAgICBGT1JNQVQgeyBURVhUIHwgWE1MIHwgSlNPTiB8IFlB TUwgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtMjk4LDYgKzI5OSwx NyBAQCBST0xMQkFDSzsKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SU88L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBJbmNsdWRlIGluZm9y bWF0aW9uIG9uIEkvTyBwZXJmb3JtZWQgYnkgZWFjaCBub2RlLgorICAgICAgVGhpcyBwYXJh bWV0ZXIgbWF5IG9ubHkgYmUgdXNlZCB3aGVuIDxsaXRlcmFsPkFOQUxZWkU8L2xpdGVyYWw+ IGlzIGFsc28KKyAgICAgIGVuYWJsZWQuICBJdCBkZWZhdWx0cyB0byA8bGl0ZXJhbD5GQUxT RTwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+Rk9S TUFUPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jCmluZGV4IGY2YWM1YTA4OTdjLi5hZGY3MTZlY2E1NCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZV9kLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1 bWVudF9ub2RlLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9ydC9wZ19i aXR1dGlscy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgpAQCAtMTIwMCw2ICsxMjAx LDcgQEAgaGVhcF9iZWdpbnNjYW4oUmVsYXRpb24gcmVsYXRpb24sIFNuYXBzaG90IHNuYXBz aG90LAogCXNjYW4tPnJzX2Jhc2UucnNfbmtleXMgPSBua2V5czsKIAlzY2FuLT5yc19iYXNl LnJzX2ZsYWdzID0gZmxhZ3M7CiAJc2Nhbi0+cnNfYmFzZS5yc19wYXJhbGxlbCA9IHBhcmFs bGVsX3NjYW47CisJc2Nhbi0+cnNfYmFzZS5yc19pbnN0cnVtZW50ID0gTlVMTDsKIAlzY2Fu LT5yc19zdHJhdGVneSA9IE5VTEw7CS8qIHNldCBpbiBpbml0c2NhbiAqLwogCXNjYW4tPnJz X2NidWYgPSBJbnZhbGlkQnVmZmVyOwogCkBAIC0xMzEyLDYgKzEzMTQsMTQgQEAgaGVhcF9i ZWdpbnNjYW4oUmVsYXRpb24gcmVsYXRpb24sIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJ CQkJCQkJCQkgIHNpemVvZihUQk1JdGVyYXRlUmVzdWx0KSk7CiAJfQogCisJLyogZW5hYmxl IHJlYWQgc3RyZWFtIGluc3RydW1lbnRhdGlvbiAqLworCWlmIChmbGFncyAmIFNPX1NDQU5f SU5TVFJVTUVOVCkKKwl7CisJCXNjYW4tPnJzX2Jhc2UucnNfaW5zdHJ1bWVudCA9IHBhbGxv YzBfb2JqZWN0KFRhYmxlU2Nhbkluc3RydW1lbnRhdGlvbik7CisJCXJlYWRfc3RyZWFtX2Vu YWJsZV9zdGF0cyhzY2FuLT5yc19yZWFkX3N0cmVhbSwKKwkJCQkJCQkJICZzY2FuLT5yc19i YXNlLnJzX2luc3RydW1lbnQtPmlvKTsKKwl9CisKIAlzY2FuLT5yc192bWJ1ZmZlciA9IElu dmFsaWRCdWZmZXI7CiAKIAlyZXR1cm4gKFRhYmxlU2NhbkRlc2MpIHNjYW47CkBAIC0xNDE1 LDYgKzE0MjUsOSBAQCBoZWFwX2VuZHNjYW4oVGFibGVTY2FuRGVzYyBzc2NhbikKIAlpZiAo c2Nhbi0+cnNfYmFzZS5yc19mbGFncyAmIFNPX1RFTVBfU05BUFNIT1QpCiAJCVVucmVnaXN0 ZXJTbmFwc2hvdChzY2FuLT5yc19iYXNlLnJzX3NuYXBzaG90KTsKIAorCWlmIChzY2FuLT5y c19iYXNlLnJzX2luc3RydW1lbnQpCisJCXBmcmVlKHNjYW4tPnJzX2Jhc2UucnNfaW5zdHJ1 bWVudCk7CisKIAlwZnJlZShzY2FuKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmlu ZGV4IGYxNTFmMjFmOWIzLi5jYTMwNzFmNGNhMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YwpAQCAtMTMsNiArMTMsNyBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2lu Y2x1ZGUgImFjY2Vzcy9yZWxzY2FuLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jcmVhdGVh cy5oIgpAQCAtMTM5LDYgKzE0MCw4IEBAIHN0YXRpYyB2b2lkIHNob3dfaGFzaGFnZ19pbmZv KEFnZ1N0YXRlICphZ2dzdGF0ZSwgRXhwbGFpblN0YXRlICplcyk7CiBzdGF0aWMgdm9pZCBz aG93X2luZGV4c2VhcmNoZXNfaW5mbyhQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRXhwbGFpblN0 YXRlICplcyk7CiBzdGF0aWMgdm9pZCBzaG93X3RpZGJpdG1hcF9pbmZvKEJpdG1hcEhlYXBT Y2FuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJCQkJCQkJRXhwbGFpblN0YXRlICplcyk7CitzdGF0 aWMgdm9pZCBzaG93X3NjYW5faW9fdXNhZ2UoU2NhblN0YXRlICpwbGFuc3RhdGUsCisJCQkJ CQkJICAgRXhwbGFpblN0YXRlICplcyk7CiBzdGF0aWMgdm9pZCBzaG93X2luc3RydW1lbnRh dGlvbl9jb3VudChjb25zdCBjaGFyICpxbGFiZWwsIGludCB3aGljaCwKIAkJCQkJCQkJCSAg IFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFeHBsYWluU3RhdGUgKmVzKTsKIHN0YXRpYyB2b2lk IHNob3dfZm9yZWlnbnNjYW5faW5mbyhGb3JlaWduU2NhblN0YXRlICpmc3N0YXRlLCBFeHBs YWluU3RhdGUgKmVzKTsKQEAgLTUxOSw2ICs1MjIsOCBAQCBFeHBsYWluT25lUGxhbihQbGFu bmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAq ZXMsCiAJCWluc3RydW1lbnRfb3B0aW9uIHw9IElOU1RSVU1FTlRfQlVGRkVSUzsKIAlpZiAo ZXMtPndhbCkKIAkJaW5zdHJ1bWVudF9vcHRpb24gfD0gSU5TVFJVTUVOVF9XQUw7CisJaWYg KGVzLT5pbykKKwkJaW5zdHJ1bWVudF9vcHRpb24gfD0gSU5TVFJVTUVOVF9JTzsKIAogCS8q CiAJICogV2UgYWx3YXlzIGNvbGxlY3QgdGltaW5nIGZvciB0aGUgZW50aXJlIHN0YXRlbWVu dCwgZXZlbiB3aGVuIG5vZGUtbGV2ZWwKQEAgLTIwMDgsNiArMjAxMyw3IEBAIEV4cGxhaW5O b2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJc2hvd19p bnN0cnVtZW50YXRpb25fY291bnQoIlJvd3MgUmVtb3ZlZCBieSBGaWx0ZXIiLCAxLAogCQkJ CQkJCQkJCSAgIHBsYW5zdGF0ZSwgZXMpOwogCQkJc2hvd190aWRiaXRtYXBfaW5mbygoQml0 bWFwSGVhcFNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUsIGVzKTsKKwkJCXNob3dfc2Nhbl9pb191 c2FnZSgoU2NhblN0YXRlICopIHBsYW5zdGF0ZSwgZXMpOwogCQkJYnJlYWs7CiAJCWNhc2Ug VF9TYW1wbGVTY2FuOgogCQkJc2hvd190YWJsZXNhbXBsZSgoKFNhbXBsZVNjYW4gKikgcGxh biktPnRhYmxlc2FtcGxlLApAQCAtMzk4NCw2ICszOTkwLDEyOCBAQCBzaG93X3RpZGJpdG1h cF9pbmZvKEJpdG1hcEhlYXBTY2FuU3RhdGUgKnBsYW5zdGF0ZSwgRXhwbGFpblN0YXRlICpl cykKIAl9CiB9CiAKKy8qCisgKiBQcmludCBJL08gc3RhdHMgLSBwcmVmZXRjaGluZyBhbmQg SS9PIHBlcmZvcm1lZAorICoKKyAqIFRoaXMgcHJpbnRzIHR3byB0eXBlcyBvZiBzdGF0cyAt ICJwcmVmZXRjaCIgYWJvdXQgdGhlIHByZWZldGNoaW5nIGRvbmUgYnkKKyAqIFJlYWRTdHJl YW0sIGFuZCAiSS9PIiBpc3N1ZWQgYnkgdGhlIHN0cmVhbS4gVGhlIHByZWZldGNoIHN0YXRz IGFyZSBiYXNlZAorICogb24gYnVmZmVycyBwdWxsZWQgZnJvbSB0aGUgc3RyZWFtIChldmVu IGlmIG5vIEkvTyBpcyBuZWVkZWQpLiBUaGUgSS9PCisgKiBpbmZvcm1hdGlvbiBpcyByZWxh dGVkIHRvIEkvTyByZXF1ZXN0cyBpc3N1ZWQgYnkgdGhlIHN0cmVhbS4KKyAqCisgKiBUaGUg cHJlZmV0Y2ggc3RhdHMgYXJlIHByaW50ZWQgaWYgYW55IGJ1ZmZlciB3YXMgcHVsbGVkIGZy b20gdGhlIHN0cmVhbS4KKyAqIEZvciB0aGUgSS9PIHN0YXRzIGl0IGRlcGVuZCBvbiB0aGUg b3V0cHV0IGZvcm1hdC4gSW4gbm9uLXRleHQgZm9ybWF0cyB0aGUKKyAqIGluZm9ybWF0aW9u IGlzIHByaW50ZWQgYWx3YXlzLCB3aGlsZSBpbiB0ZXh0IGZvcm1hdCBvbmx5IGlmIHRoZXJl IHdlcmUKKyAqIGFueSBhY3R1YWwgSS9PIHJlcXVlc3RzLgorICovCitzdGF0aWMgdm9pZAor cHJpbnRfaW9fdXNhZ2UoRXhwbGFpblN0YXRlICplcywgSU9TdGF0cyAqc3RhdHMpCit7CisJ LyogZG9uJ3QgcHJpbnQgcHJlZmV0Y2ggc3RhdHMgaWYgdGhlcmUncyBub3RoaW5nIHRvIHJl cG9ydCAqLworCWlmIChzdGF0cy0+cHJlZmV0Y2hfY291bnQgPiAwKQorCXsKKwkJaWYgKGVz LT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJeworCQkJLyogcHJlZmV0Y2gg ZGlzdGFuY2UgaW5mbyAqLworCQkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQkJYXBwZW5k U3RyaW5nSW5mbyhlcy0+c3RyLCAiUHJlZmV0Y2g6IGF2Zz0lLjJmIG1heD0lZCBjYXBhY2l0 eT0lZFxuIiwKKwkJCQkJCQkgKHN0YXRzLT5kaXN0YW5jZV9zdW0gKiAxLjAgLyBzdGF0cy0+ cHJlZmV0Y2hfY291bnQpLAorCQkJCQkJCSBzdGF0cy0+ZGlzdGFuY2VfbWF4LAorCQkJCQkJ CSBzdGF0cy0+ZGlzdGFuY2VfY2FwYWNpdHkpOworCisJCQkvKiBwcmVmZXRjaCBJL08gaW5m byAob25seSBpZiB0aGVyZSB3ZXJlIGFjdHVhbCBJL09zKSAqLworCQkJaWYgKHN0YXRzLT5p b19jb3VudCA+IDApCisJCQl7CisJCQkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQkJCWFw cGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIkkvTzogY291bnQ9JSIgUFJJdTY0ICIgd2FpdHM9 JSIgUFJJdTY0CisJCQkJCQkJCSAiIHNpemU9JS4yZiBpbi1wcm9ncmVzcz0lLjJmXG4iLAor CQkJCQkJCQkgc3RhdHMtPmlvX2NvdW50LCBzdGF0cy0+d2FpdF9jb3VudCwKKwkJCQkJCQkJ IChzdGF0cy0+aW9fbmJsb2NrcyAqIDEuMCAvIHN0YXRzLT5pb19jb3VudCksCisJCQkJCQkJ CSAoc3RhdHMtPmlvX2luX3Byb2dyZXNzICogMS4wIC8gc3RhdHMtPmlvX2NvdW50KSk7CisJ CQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiQXZlcmFn ZSBQcmVmZXRjaCBEaXN0YW5jZSIsIE5VTEwsCisJCQkJCQkJCSAoc3RhdHMtPmRpc3RhbmNl X3N1bSAqIDEuMCAvIHN0YXRzLT5wcmVmZXRjaF9jb3VudCksIDMsIGVzKTsKKwkJCUV4cGxh aW5Qcm9wZXJ0eUludGVnZXIoIk1heCBQcmVmZXRjaCBEaXN0YW5jZSIsIE5VTEwsCisJCQkJ CQkJCSAgIHN0YXRzLT5kaXN0YW5jZV9tYXgsIGVzKTsKKwkJCUV4cGxhaW5Qcm9wZXJ0eUlu dGVnZXIoIlByZWZldGNoIENhcGFjaXR5IiwgTlVMTCwKKwkJCQkJCQkJICAgc3RhdHMtPmRp c3RhbmNlX2NhcGFjaXR5LCBlcyk7CisKKwkJCUV4cGxhaW5Qcm9wZXJ0eVVJbnRlZ2VyKCJJ L08gQ291bnQiLCBOVUxMLAorCQkJCQkJCQkJc3RhdHMtPmlvX2NvdW50LCBlcyk7CisJCQlF eHBsYWluUHJvcGVydHlVSW50ZWdlcigiSS9PIFdhaXRzIiwgTlVMTCwKKwkJCQkJCQkJCXN0 YXRzLT53YWl0X2NvdW50LCBlcyk7CisJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiQXZlcmFn ZSBJL08gU2l6ZSIsIE5VTEwsCisJCQkJCQkJCSAoc3RhdHMtPmlvX25ibG9ja3MgKiAxLjAg LyBNYXgoMSwgc3RhdHMtPmlvX2NvdW50KSksIDMsIGVzKTsKKwkJCUV4cGxhaW5Qcm9wZXJ0 eUZsb2F0KCJBdmVyYWdlIEkvT3MgSW4gUHJvZ3Jlc3MiLCBOVUxMLAorCQkJCQkJCQkgKHN0 YXRzLT5pb19pbl9wcm9ncmVzcyAqIDEuMCAvIE1heCgxLCBzdGF0cy0+aW9fY291bnQpKSwg MywgZXMpOworCQl9CisJfQorfQorCisvKgorICogU2hvdyBpbmZvcm1hdGlvbiBhYm91dCBw cmVmZXRjaCBhbmQgSS9PIGluIGEgc2NhbiBub2RlLgorICovCitzdGF0aWMgdm9pZAorc2hv d19zY2FuX2lvX3VzYWdlKFNjYW5TdGF0ZSAqcGxhbnN0YXRlLCBFeHBsYWluU3RhdGUgKmVz KQoreworCVBsYW4JICAgKnBsYW4gPSBwbGFuc3RhdGUtPnBzLnBsYW47CisJSU9TdGF0cwkJ c3RhdHMgPSB7MH07CisKKwlpZiAoIWVzLT5pbykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJ bml0aWFsaXplIGNvdW50ZXJzIHdpdGggc3RhdHMgZnJvbSB0aGUgbG9jYWwgcHJvY2VzcyBm aXJzdC4KKwkgKgorCSAqIFRoZSBzY2FuIGRlc2NyaXB0b3IgbWF5IG5vdCBleGlzdCwgZS5n LiBpZiB0aGUgc2NhbiBkaWQgbm90IHN0YXJ0LCBvcgorCSAqIGJlY2F1c2Ugb2YgZGVidWdf cGFyYWxsZWxfcXVlcnk9cmVncmVzcy4gV2Ugc3RpbGwgd2FudCB0byBjb2xsZWN0IGRhdGEK KwkgKiBmcm9tIHdvcmtlcnMuCisJICovCisJaWYgKHBsYW5zdGF0ZS0+c3NfY3VycmVudFNj YW5EZXNjICYmCisJCXBsYW5zdGF0ZS0+c3NfY3VycmVudFNjYW5EZXNjLT5yc19pbnN0cnVt ZW50KQorCXsKKwkJc3RhdHMgPSBwbGFuc3RhdGUtPnNzX2N1cnJlbnRTY2FuRGVzYy0+cnNf aW5zdHJ1bWVudC0+aW87CisJfQorCisJLyoKKwkgKiBBY2N1bXVsYXRlIGRhdGEgZnJvbSBw YXJhbGxlbCB3b3JrZXJzIChpZiBhbnkpLgorCSAqLworCXN3aXRjaCAobm9kZVRhZyhwbGFu KSkKKwl7CisJCWNhc2UgVF9CaXRtYXBIZWFwU2NhbjoKKwkJCXsKKwkJCQlTaGFyZWRCaXRt YXBIZWFwSW5zdHJ1bWVudGF0aW9uICpzaW5zdHJ1bWVudAorCQkJCT0gKChCaXRtYXBIZWFw U2NhblN0YXRlICopIHBsYW5zdGF0ZSktPnNpbnN0cnVtZW50OworCisJCQkJaWYgKHNpbnN0 cnVtZW50KQorCQkJCXsKKwkJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBzaW5zdHJ1bWVudC0+ bnVtX3dvcmtlcnM7ICsraSkKKwkJCQkJeworCQkJCQkJQml0bWFwSGVhcFNjYW5JbnN0cnVt ZW50YXRpb24gKndpbnN0cnVtZW50ID0gJnNpbnN0cnVtZW50LT5zaW5zdHJ1bWVudFtpXTsK KworCQkJCQkJQWNjdW11bGF0ZUlPU3RhdHMoJnN0YXRzLCAmd2luc3RydW1lbnQtPnN0YXRz LmlvKTsKKworCQkJCQkJaWYgKCFlcy0+d29ya2Vyc19zdGF0ZSkKKwkJCQkJCQljb250aW51 ZTsKKworCQkJCQkJRXhwbGFpbk9wZW5Xb3JrZXIoaSwgZXMpOworCQkJCQkJcHJpbnRfaW9f dXNhZ2UoZXMsICZ3aW5zdHJ1bWVudC0+c3RhdHMuaW8pOworCQkJCQkJRXhwbGFpbkNsb3Nl V29ya2VyKGksIGVzKTsKKwkJCQkJfQorCQkJCX0KKworCQkJCWJyZWFrOworCQkJfQorCQlk ZWZhdWx0OgorCQkJLyogaWdub3JlIG90aGVyIHBsYW5zICovCisJCQlyZXR1cm47CisJfQor CisJcHJpbnRfaW9fdXNhZ2UoZXMsICZzdGF0cyk7Cit9CisKIC8qCiAgKiBJZiBpdCdzIEVY UExBSU4gQU5BTFlaRSwgc2hvdyBpbnN0cnVtZW50YXRpb24gaW5mb3JtYXRpb24gZm9yIGEg cGxhbiBub2RlCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bl9zdGF0ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9zdGF0ZS5jCmluZGV4 IDY1ZGQ0MTExNDU5Li4wZTA3YTYzZmNhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXhwbGFpbl9zdGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxh aW5fc3RhdGUuYwpAQCAtMTYyLDYgKzE2Miw4IEBAIFBhcnNlRXhwbGFpbk9wdGlvbkxpc3Qo RXhwbGFpblN0YXRlICplcywgTGlzdCAqb3B0aW9ucywgUGFyc2VTdGF0ZSAqcHN0YXRlKQog CQkJCQkJCQkiRVhQTEFJTiIsIG9wdC0+ZGVmbmFtZSwgcCksCiAJCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgb3B0LT5sb2NhdGlvbikpKTsKIAkJfQorCQllbHNlIGlmIChz dHJjbXAob3B0LT5kZWZuYW1lLCAiaW8iKSA9PSAwKQorCQkJZXMtPmlvID0gZGVmR2V0Qm9v bGVhbihvcHQpOwogCQllbHNlIGlmICghQXBwbHlFeHRlbnNpb25FeHBsYWluT3B0aW9uKGVz LCBvcHQsIHBzdGF0ZSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCkBAIC0xODgsNiArMTkwLDEyIEBAIFBhcnNlRXhwbGFpbk9w dGlvbkxpc3QoRXhwbGFpblN0YXRlICplcywgTGlzdCAqb3B0aW9ucywgUGFyc2VTdGF0ZSAq cHN0YXRlKQogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCSBlcnJtc2coIkVYUExBSU4gb3B0aW9uICVzIHJlcXVpcmVzIEFOQUxZWkUiLCAi VElNSU5HIikpKTsKIAorCS8qIGNoZWNrIHRoYXQgSU8gaXMgdXNlZCB3aXRoIEVYUExBSU4g QU5BTFlaRSAqLworCWlmIChlcy0+aW8gJiYgIWVzLT5hbmFseXplKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAor CQkJCSBlcnJtc2coIkVYUExBSU4gb3B0aW9uICVzIHJlcXVpcmVzIEFOQUxZWkUiLCAiSU8i KSkpOworCiAJLyogY2hlY2sgdGhhdCBzZXJpYWxpemUgaXMgdXNlZCB3aXRoIEVYUExBSU4g QU5BTFlaRSAqLwogCWlmIChlcy0+c2VyaWFsaXplICE9IEVYUExBSU5fU0VSSUFMSVpFX05P TkUgJiYgIWVzLT5hbmFseXplKQogCQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCBkNjVlMmE4N2I0Mi4uODNkNjQ3 OGJjMmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFw c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5j CkBAIC0xNDQsMTMgKzE0NCwyMCBAQCBCaXRtYXBUYWJsZVNjYW5TZXR1cChCaXRtYXBIZWFw U2NhblN0YXRlICpub2RlKQogCSAqLwogCWlmICghbm9kZS0+c3Muc3NfY3VycmVudFNjYW5E ZXNjKQogCXsKKwkJdWludDMyCQlmbGFncyA9IFNPX05PTkU7CisKKwkJaWYgKFNjYW5SZWxJ c1JlYWRPbmx5KCZub2RlLT5zcykpCisJCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09O TFk7CisKKwkJaWYgKG5vZGUtPnNzLnBzLnN0YXRlLT5lc19pbnN0cnVtZW50ICYgSU5TVFJV TUVOVF9JTykKKwkJCWZsYWdzIHw9IFNPX1NDQU5fSU5TVFJVTUVOVDsKKwogCQlub2RlLT5z cy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJdGFibGVfYmVnaW5zY2FuX2JtKG5vZGUtPnNz LnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkgICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNf c25hcHNob3QsCiAJCQkJCQkJICAgMCwKIAkJCQkJCQkgICBOVUxMLAotCQkJCQkJCSAgIFNj YW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPwotCQkJCQkJCSAgIFNPX0hJTlRfUkVMX1JF QURfT05MWSA6IFNPX05PTkUpOworCQkJCQkJCSAgIGZsYWdzKTsKIAl9CiAKIAlub2RlLT5z cy5zc19jdXJyZW50U2NhbkRlc2MtPnN0LnJzX3RibWl0ZXJhdG9yID0gdGJtaXRlcmF0b3I7 CkBAIC0zMzAsNiArMzM3LDE0IEBAIEV4ZWNFbmRCaXRtYXBIZWFwU2NhbihCaXRtYXBIZWFw U2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJc2ktPmV4YWN0X3BhZ2VzICs9IG5vZGUtPnN0 YXRzLmV4YWN0X3BhZ2VzOwogCQlzaS0+bG9zc3lfcGFnZXMgKz0gbm9kZS0+c3RhdHMubG9z c3lfcGFnZXM7CisKKwkJLyogY29sbGVjdCBJL08gaW5zdHJ1bWVudGF0aW9uIGZvciB0aGlz IHByb2Nlc3MgKi8KKwkJaWYgKG5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyAmJgorCQkJ bm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjLT5yc19pbnN0cnVtZW50KQorCQl7CisJCQlB Y2N1bXVsYXRlSU9TdGF0cygmc2ktPnN0YXRzLmlvLAorCQkJCQkJCSAgJm5vZGUtPnNzLnNz X2N1cnJlbnRTY2FuRGVzYy0+cnNfaW5zdHJ1bWVudC0+aW8pOworCQl9CiAJfQogCiAJLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jCmluZGV4IDBiNmNkZjdjODcz Li5iNmZjZTRlN2NjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVh ZF9zdHJlYW0uYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5j CkBAIC03NCw2ICs3NCw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1lbnRfbm9kZS5oIgog I2luY2x1ZGUgInN0b3JhZ2UvYWlvLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2lu Y2x1ZGUgInN0b3JhZ2Uvc21nci5oIgpAQCAtMTIzLDYgKzEyNCw5IEBAIHN0cnVjdCBSZWFk U3RyZWFtCiAJYm9vbAkJYWR2aWNlX2VuYWJsZWQ7CiAJYm9vbAkJdGVtcG9yYXJ5OwogCisJ Lyogc2NhbiBzdGF0cyBjb3VudGVycyAqLworCUlPU3RhdHMgICAgKnN0YXRzOworCiAJLyoK IAkgKiBPbmUtYmxvY2sgYnVmZmVyIHRvIHN1cHBvcnQgJ3VuZ2V0dGluZycgYSBibG9jayBu dW1iZXIsIHRvIHJlc29sdmUgZmxvdwogCSAqIGNvbnRyb2wgcHJvYmxlbXMgd2hlbiBJL09z IGFyZSBzcGxpdC4KQEAgLTE4OCw2ICsxOTIsNzMgQEAgYmxvY2tfcmFuZ2VfcmVhZF9zdHJl YW1fY2IoUmVhZFN0cmVhbSAqc3RyZWFtLAogCXJldHVybiBJbnZhbGlkQmxvY2tOdW1iZXI7 CiB9CiAKKy8qCisgKiBVcGRhdGUgc3RyZWFtIHN0YXRzIHdpdGggY3VycmVudCBwaW5uZWQg YnVmZmVyIGRlcHRoLgorICoKKyAqIENhbGxlZCBvbmNlIHBlciBidWZmZXIgcmV0dXJuZWQg dG8gdGhlIGNvbnN1bWVyIGluIHJlYWRfc3RyZWFtX25leHRfYnVmZmVyKCkuCisgKiBSZWNv cmRzIHRoZSBudW1iZXIgb2YgcGlubmVkIGJ1ZmZlcnMgYXQgdGhhdCBtb21lbnQsIHNvIHdl IGNhbiBjb21wdXRlIHRoZQorICogYXZlcmFnZSBsb29rLWFoZWFkIGRlcHRoLgorICovCitz dGF0aWMgaW5saW5lIHZvaWQKK3JlYWRfc3RyZWFtX2NvdW50X3ByZWZldGNoKFJlYWRTdHJl YW0gKnN0cmVhbSkKK3sKKwlJT1N0YXRzICAgICpzdGF0cyA9IHN0cmVhbS0+c3RhdHM7CisK KwlpZiAoc3RhdHMgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJc3RhdHMtPnByZWZldGNoX2Nv dW50Kys7CisJc3RhdHMtPmRpc3RhbmNlX3N1bSArPSBzdHJlYW0tPnBpbm5lZF9idWZmZXJz OworCWlmIChzdHJlYW0tPnBpbm5lZF9idWZmZXJzID4gc3RhdHMtPmRpc3RhbmNlX21heCkK KwkJc3RhdHMtPmRpc3RhbmNlX21heCA9IHN0cmVhbS0+cGlubmVkX2J1ZmZlcnM7Cit9CisK Ky8qCisgKiBVcGRhdGUgc3RyZWFtIHN0YXRzIGFib3V0IHNpemUgb2YgSS9PIHJlcXVlc3Rz LgorICoKKyAqIFdlIGNvdW50IHRoZSBudW1iZXIgb2YgSS9PIHJlcXVlc3RzLCBzaXplIG9m IHJlcXVlc3RzIChjb3VudGVkIGluIGJsb2NrcykKKyAqIGFuZCBudW1iZXIgb2YgaW4tcHJv Z3Jlc3MgSS9Pcy4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCityZWFkX3N0cmVhbV9jb3Vu dF9pbyhSZWFkU3RyZWFtICpzdHJlYW0sIGludCBuYmxvY2tzLCBpbnQgaW5fcHJvZ3Jlc3Mp Cit7CisJSU9TdGF0cyAgICAqc3RhdHMgPSBzdHJlYW0tPnN0YXRzOworCisJaWYgKHN0YXRz ID09IE5VTEwpCisJCXJldHVybjsKKworCXN0YXRzLT5pb19jb3VudCsrOworCXN0YXRzLT5p b19uYmxvY2tzICs9IG5ibG9ja3M7CisJc3RhdHMtPmlvX2luX3Byb2dyZXNzICs9IGluX3By b2dyZXNzOworfQorCisvKgorICogVXBkYXRlIHN0cmVhbSBzdGF0cyBhYm91dCB3YWl0cyBm b3IgSS9PIHdoZW4gY29uc3VtaW5nIGJ1ZmZlcnMuCisgKgorICogV2UgY291bnQgdGhlIG51 bWJlciBvZiBJL08gd2FpdHMgd2hpbGUgcHVsbGluZyBidWZmZXJzIG91dCBvZiBhIHN0cmVh bS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCityZWFkX3N0cmVhbV9jb3VudF93YWl0KFJl YWRTdHJlYW0gKnN0cmVhbSkKK3sKKwlJT1N0YXRzICAgICpzdGF0cyA9IHN0cmVhbS0+c3Rh dHM7CisKKwlpZiAoc3RhdHMgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJc3RhdHMtPndhaXRf Y291bnQrKzsKK30KKworLyoKKyAqIEVuYWJsZSBjb2xsZWN0aW9uIG9mIHN0YXRzIGludG8g dGhlIHByb3ZpZGVkIElPU3RhdHMuCisgKi8KK3ZvaWQKK3JlYWRfc3RyZWFtX2VuYWJsZV9z dGF0cyhSZWFkU3RyZWFtICpzdHJlYW0sIElPU3RhdHMgKnN0YXRzKQoreworCXN0cmVhbS0+ c3RhdHMgPSBzdGF0czsKKwlpZiAoc3RyZWFtLT5zdGF0cykKKwkJc3RyZWFtLT5zdGF0cy0+ ZGlzdGFuY2VfY2FwYWNpdHkgPSBzdHJlYW0tPm1heF9waW5uZWRfYnVmZmVyczsKK30KKwog LyoKICAqIEFzayB0aGUgY2FsbGJhY2sgd2hpY2ggYmxvY2sgaXQgd291bGQgbGlrZSB1cyB0 byByZWFkIG5leHQsIHdpdGggYSBvbmUgYmxvY2sKICAqIGJ1ZmZlciBpbiBmcm9udCB0byBh bGxvdyByZWFkX3N0cmVhbV91bmdldF9ibG9jaygpIHRvIHdvcmsuCkBAIC00MjYsNiArNDk3 LDkgQEAgcmVhZF9zdHJlYW1fc3RhcnRfcGVuZGluZ19yZWFkKFJlYWRTdHJlYW0gKnN0cmVh bSkKIAkJQXNzZXJ0KHN0cmVhbS0+aW9zX2luX3Byb2dyZXNzIDwgc3RyZWFtLT5tYXhfaW9z KTsKIAkJc3RyZWFtLT5pb3NfaW5fcHJvZ3Jlc3MrKzsKIAkJc3RyZWFtLT5zZXFfYmxvY2tu dW0gPSBzdHJlYW0tPnBlbmRpbmdfcmVhZF9ibG9ja251bSArIG5ibG9ja3M7CisKKwkJLyog dXBkYXRlIEkvTyBzdGF0cyAqLworCQlyZWFkX3N0cmVhbV9jb3VudF9pbyhzdHJlYW0sIG5i bG9ja3MsIHN0cmVhbS0+aW9zX2luX3Byb2dyZXNzKTsKIAl9CiAKIAkvKgpAQCAtMTAyMSw2 ICsxMDk1LDcgQEAgcmVhZF9zdHJlYW1fbmV4dF9idWZmZXIoUmVhZFN0cmVhbSAqc3RyZWFt LCB2b2lkICoqcGVyX2J1ZmZlcl9kYXRhKQogCQkJCQkJCQkJCWZsYWdzKSkpCiAJCQl7CiAJ CQkJLyogRmFzdCByZXR1cm4uICovCisJCQkJcmVhZF9zdHJlYW1fY291bnRfcHJlZmV0Y2go c3RyZWFtKTsKIAkJCQlyZXR1cm4gYnVmZmVyOwogCQkJfQogCkBAIC0xMDM2LDYgKzExMTEs MTIgQEAgcmVhZF9zdHJlYW1fbmV4dF9idWZmZXIoUmVhZFN0cmVhbSAqc3RyZWFtLCB2b2lk ICoqcGVyX2J1ZmZlcl9kYXRhKQogCQkJICogdG8gYXZvaWQgaGF2aW5nIHRvIGVmZmVjdGl2 ZWx5IGRvIGFub3RoZXIgc3luY2hyb25vdXMgSU8gZm9yCiAJCQkgKiB0aGUgbmV4dCBibG9j ayAoaWYgaXQgd2VyZSBhbHNvIGEgbWlzcykuCiAJCQkgKi8KKworCQkJLyogdXBkYXRlIEkv TyBzdGF0cyAqLworCQkJcmVhZF9zdHJlYW1fY291bnRfaW8oc3RyZWFtLCAxLCBzdHJlYW0t Pmlvc19pbl9wcm9ncmVzcyk7CisKKwkJCS8qIHVwZGF0ZSBwcmVmZXRjaCBkaXN0YW5jZSAq LworCQkJcmVhZF9zdHJlYW1fY291bnRfcHJlZmV0Y2goc3RyZWFtKTsKIAkJfQogCQllbHNl CiAJCXsKQEAgLTExMTYsNiArMTE5NywxMCBAQCByZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihS ZWFkU3RyZWFtICpzdHJlYW0sIHZvaWQgKipwZXJfYnVmZmVyX2RhdGEpCiAJCWlmIChzdHJl YW0tPmlvc1tpb19pbmRleF0ub3AuZmxhZ3MgJiBSRUFEX0JVRkZFUlNfU1lOQ0hST05PVVNM WSkKIAkJCW5lZWRlZF93YWl0ID0gdHJ1ZTsKIAorCQkvKiBDb3VudCBpdCBhcyBhIHdhaXQg aWYgd2UgbmVlZCB0byB3YWl0IGZvciBJTyAqLworCQlpZiAobmVlZGVkX3dhaXQpCisJCQly ZWFkX3N0cmVhbV9jb3VudF93YWl0KHN0cmVhbSk7CisKIAkJLyoKIAkJICogSGF2ZSB0aGUg cmVhZC1haGVhZCBkaXN0YW5jZSByYW1wIHVwIHJhcGlkbHkgYWZ0ZXIgd2UgbmVlZGVkIHRv CiAJCSAqIHdhaXQgZm9yIElPLiBXZSBvbmx5IGluY3JlYXNlIHRoZSByZWFkLWFoZWFkLWRp c3RhbmNlIHdoZW4gd2UKQEAgLTEyMjgsNiArMTMxMyw4IEBAIHJlYWRfc3RyZWFtX25leHRf YnVmZmVyKFJlYWRTdHJlYW0gKnN0cmVhbSwgdm9pZCAqKnBlcl9idWZmZXJfZGF0YSkKIAl9 CiAjZW5kaWYKIAorCXJlYWRfc3RyZWFtX2NvdW50X3ByZWZldGNoKHN0cmVhbSk7CisKIAkv KiBQaW4gdHJhbnNmZXJyZWQgdG8gY2FsbGVyLiAqLwogCUFzc2VydChzdHJlYW0tPnBpbm5l ZF9idWZmZXJzID4gMCk7CiAJc3RyZWFtLT5waW5uZWRfYnVmZmVycy0tOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9y ZWxzY2FuLmgKaW5kZXggZmQyMDc2YzU4MmEuLjJlYTA2YTY3YTYzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9y ZWxzY2FuLmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogCiBzdHJ1Y3QgUGFyYWxsZWxUYWJsZVNj YW5EZXNjRGF0YTsKK3N0cnVjdCBUYWJsZVNjYW5JbnN0cnVtZW50YXRpb247CiAKIC8qCiAg KiBHZW5lcmljIGRlc2NyaXB0b3IgZm9yIHRhYmxlIHNjYW5zLiBUaGlzIGlzIHRoZSBiYXNl LWNsYXNzIGZvciB0YWJsZSBzY2FucywKQEAgLTY0LDYgKzY1LDExIEBAIHR5cGVkZWYgc3Ry dWN0IFRhYmxlU2NhbkRlc2NEYXRhCiAKIAlzdHJ1Y3QgUGFyYWxsZWxUYWJsZVNjYW5EZXNj RGF0YSAqcnNfcGFyYWxsZWw7CS8qIHBhcmFsbGVsIHNjYW4KIAkJCQkJCQkJCQkJCQkgKiBp bmZvcm1hdGlvbiAqLworCisJLyoKKwkgKiBJbnN0cnVtZW50YXRpb24gY291bnRlcnMgbWFp bnRhaW5lZCBieSBhbGwgdGFibGUgQU1zLgorCSAqLworCXN0cnVjdCBUYWJsZVNjYW5JbnN0 cnVtZW50YXRpb24gKnJzX2luc3RydW1lbnQ7CiB9IFRhYmxlU2NhbkRlc2NEYXRhOwogdHlw ZWRlZiBzdHJ1Y3QgVGFibGVTY2FuRGVzY0RhdGEgKlRhYmxlU2NhbkRlc2M7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdGFibGVhbS5oCmluZGV4IGEyMWM3ZGI1NDM5Li5jMTNmMDVkMzlkYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdGFibGVhbS5oCkBAIC02OSw2ICs2OSw5IEBAIHR5cGVkZWYgZW51bSBTY2FuT3B0aW9u cwogCiAJLyogc2V0IGlmIHRoZSBxdWVyeSBkb2Vzbid0IG1vZGlmeSB0aGUgcmVsYXRpb24g Ki8KIAlTT19ISU5UX1JFTF9SRUFEX09OTFkgPSAxIDw8IDEwLAorCisJLyogY29sbGVjdCBz Y2FuIGluc3RydW1lbnRhdGlvbiAqLworCVNPX1NDQU5fSU5TVFJVTUVOVCA9IDEgPDwgMTEs CiB9CQkJU2Nhbk9wdGlvbnM7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9leHBsYWluX3N0YXRlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluX3N0 YXRlLmgKaW5kZXggNjI1MmZlMTFmMTUuLjk3YmM3ZWQ0OWY2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9leHBsYWluX3N0YXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbl9zdGF0ZS5oCkBAIC01NSw2ICs1NSw3IEBAIHR5cGVkZWYgc3RydWN0 IEV4cGxhaW5TdGF0ZQogCWJvb2wJCXN1bW1hcnk7CQkvKiBwcmludCB0b3RhbCBwbGFubmlu ZyBhbmQgZXhlY3V0aW9uIHRpbWluZyAqLwogCWJvb2wJCW1lbW9yeTsJCQkvKiBwcmludCBw bGFubmVyJ3MgbWVtb3J5IHVzYWdlIGluZm9ybWF0aW9uICovCiAJYm9vbAkJc2V0dGluZ3M7 CQkvKiBwcmludCBtb2RpZmllZCBzZXR0aW5ncyAqLworCWJvb2wJCWlvOwkJCQkvKiBwcmlu dCBpbmZvIGFib3V0IElPIChwcmVmZXRjaCwgLi4uKSAqLwogCWJvb2wJCWdlbmVyaWM7CQkv KiBnZW5lcmF0ZSBhIGdlbmVyaWMgcGxhbiAqLwogCUV4cGxhaW5TZXJpYWxpemVPcHRpb24g c2VyaWFsaXplOwkvKiBzZXJpYWxpemUgdGhlIHF1ZXJ5J3Mgb3V0cHV0PyAqLwogCUV4cGxh aW5Gb3JtYXQgZm9ybWF0OwkJLyogb3V0cHV0IGZvcm1hdCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv aW5zdHJ1bWVudC5oCmluZGV4IGNjOWZiYjBlMmYwLi5mMDkzYTUyYWFlMCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2luc3RydW1lbnQuaApAQCAtNjQsNiArNjQsNyBAQCB0eXBlZGVmIGVudW0g SW5zdHJ1bWVudE9wdGlvbgogCUlOU1RSVU1FTlRfQlVGRkVSUyA9IDEgPDwgMSwJLyogbmVl ZHMgYnVmZmVyIHVzYWdlICovCiAJSU5TVFJVTUVOVF9ST1dTID0gMSA8PCAyLAkvKiBuZWVk cyByb3cgY291bnQgKi8KIAlJTlNUUlVNRU5UX1dBTCA9IDEgPDwgMywJLyogbmVlZHMgV0FM IHVzYWdlICovCisJSU5TVFJVTUVOVF9JTyA9IDEgPDwgNCwJCS8qIG5lZWRzIElPIHVzYWdl ICovCiAJSU5TVFJVTUVOVF9BTEwgPSBQR19JTlQzMl9NQVgKIH0gSW5zdHJ1bWVudE9wdGlv bjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudF9ub2Rl LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUuaAppbmRleCBlNmEz ZjlmMTk0MS4uMjJhNzVjY2Q4NjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnRfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1l bnRfbm9kZS5oCkBAIC00OCw2ICs0OCw1NSBAQCB0eXBlZGVmIHN0cnVjdCBTaGFyZWRBZ2dJ bmZvCiB9IFNoYXJlZEFnZ0luZm87CiAKIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KglJbnN0cnVtZW50YXRpb24gaW5mb3JtYXRpb24gYWJvdXQgcmVhZCBzdHJlYW1zIGFuZCBJ L08KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBJT1N0 YXRzCit7CisJLyogbnVtYmVyIG9mIGJ1ZmZlcnMgcmV0dXJuZWQgdG8gY29uc3VtZXIgKGZv ciBhdmVyYWdpbmcgZGlzdGFuY2UpICovCisJdWludDY0CQlwcmVmZXRjaF9jb3VudDsKKwor CS8qIHN1bSBvZiBwaW5uZWRfYnVmZmVycyBzYW1wbGVkIGF0IGVhY2ggYnVmZmVyIHJldHVy biAqLworCXVpbnQ2NAkJZGlzdGFuY2Vfc3VtOworCisJLyogbWF4aW11bSBhY3R1YWwgcGlu bmVkX2J1ZmZlcnMgb2JzZXJ2ZWQgZHVyaW5nIHRoZSBzY2FuICovCisJaW50MTYJCWRpc3Rh bmNlX21heDsKKworCS8qIG1heGltdW0gcG9zc2libGUgbG9vay1haGVhZCBkaXN0YW5jZSAo bWF4X3Bpbm5lZF9idWZmZXJzKSAqLworCWludDE2CQlkaXN0YW5jZV9jYXBhY2l0eTsKKwor CS8qIG51bWJlciBvZiB3YWl0cyBmb3IgYSByZWFkIChmb3IgdGhlIEkvTykgKi8KKwl1aW50 NjQJCXdhaXRfY291bnQ7CisKKwkvKiBJL08gc3RhdHMgKi8KKwl1aW50NjQJCWlvX2NvdW50 OwkJLyogbnVtYmVyIG9mIEkvT3MgKi8KKwl1aW50NjQJCWlvX25ibG9ja3M7CQkvKiBzdW0g b2YgYmxvY2tzIGZvciBhbGwgSS9PcyAqLworCXVpbnQ2NAkJaW9faW5fcHJvZ3Jlc3M7IC8q IHN1bSBvZiBpbi1wcm9ncmVzcyBJL09zICovCit9IElPU3RhdHM7CisKK3R5cGVkZWYgc3Ry dWN0IFRhYmxlU2Nhbkluc3RydW1lbnRhdGlvbgoreworCUlPU3RhdHMJCWlvOworfSBUYWJs ZVNjYW5JbnN0cnVtZW50YXRpb247CisKKy8qIG1lcmdlIElPIHN0YXRpc3RpY3MgZnJvbSAn c3JjJyBpbnRvICdkc3QnICovCitzdGF0aWMgaW5saW5lIHZvaWQKK0FjY3VtdWxhdGVJT1N0 YXRzKElPU3RhdHMgKmRzdCwgSU9TdGF0cyAqc3JjKQoreworCWRzdC0+cHJlZmV0Y2hfY291 bnQgKz0gc3JjLT5wcmVmZXRjaF9jb3VudDsKKwlkc3QtPmRpc3RhbmNlX3N1bSArPSBzcmMt PmRpc3RhbmNlX3N1bTsKKwlpZiAoc3JjLT5kaXN0YW5jZV9tYXggPiBkc3QtPmRpc3RhbmNl X21heCkKKwkJZHN0LT5kaXN0YW5jZV9tYXggPSBzcmMtPmRpc3RhbmNlX21heDsKKwlpZiAo c3JjLT5kaXN0YW5jZV9jYXBhY2l0eSA+IGRzdC0+ZGlzdGFuY2VfY2FwYWNpdHkpCisJCWRz dC0+ZGlzdGFuY2VfY2FwYWNpdHkgPSBzcmMtPmRpc3RhbmNlX2NhcGFjaXR5OworCWRzdC0+ d2FpdF9jb3VudCArPSBzcmMtPndhaXRfY291bnQ7CisJZHN0LT5pb19jb3VudCArPSBzcmMt PmlvX2NvdW50OworCWRzdC0+aW9fbmJsb2NrcyArPSBzcmMtPmlvX25ibG9ja3M7CisJZHN0 LT5pb19pbl9wcm9ncmVzcyArPSBzcmMtPmlvX2luX3Byb2dyZXNzOworfQorCisKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICoJSW5zdHJ1bWVudGF0aW9uIGluZm9ybWF0aW9uIGZv ciBpbmRleHNjYW5zIChhbWdldHR1cGxlIGFuZCBhbWdldGJpdG1hcCkKICAqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLQpAQCAtNzksNiArMTI4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQml0bWFw SGVhcFNjYW5JbnN0cnVtZW50YXRpb24KIHsKIAl1aW50NjQJCWV4YWN0X3BhZ2VzOwogCXVp bnQ2NAkJbG9zc3lfcGFnZXM7CisJVGFibGVTY2FuSW5zdHJ1bWVudGF0aW9uIHN0YXRzOwog fSBCaXRtYXBIZWFwU2Nhbkluc3RydW1lbnRhdGlvbjsKIAogLyoKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcmVhZF9zdHJlYW0uaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cmVhZF9zdHJlYW0uaAppbmRleCBjOTM1OWIyOWIwZi4uNDg5OTVjNmQ1MzQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcmVhZF9zdHJlYW0uaAorKysgYi9zcmMvaW5jbHVk ZS9zdG9yYWdlL3JlYWRfc3RyZWFtLmgKQEAgLTY1LDYgKzY1LDcgQEAKIAogc3RydWN0IFJl YWRTdHJlYW07CiB0eXBlZGVmIHN0cnVjdCBSZWFkU3RyZWFtIFJlYWRTdHJlYW07CitzdHJ1 Y3QgSU9TdGF0czsKIAogLyogZm9yIGJsb2NrX3JhbmdlX3JlYWRfc3RyZWFtX2NiICovCiB0 eXBlZGVmIHN0cnVjdCBCbG9ja1JhbmdlUmVhZFN0cmVhbVByaXZhdGUKQEAgLTEwMyw1ICsx MDQsNiBAQCBleHRlcm4gQmxvY2tOdW1iZXIgcmVhZF9zdHJlYW1fcGF1c2UoUmVhZFN0cmVh bSAqc3RyZWFtKTsKIGV4dGVybiB2b2lkIHJlYWRfc3RyZWFtX3Jlc3VtZShSZWFkU3RyZWFt ICpzdHJlYW0pOwogZXh0ZXJuIHZvaWQgcmVhZF9zdHJlYW1fcmVzZXQoUmVhZFN0cmVhbSAq c3RyZWFtKTsKIGV4dGVybiB2b2lkIHJlYWRfc3RyZWFtX2VuZChSZWFkU3RyZWFtICpzdHJl YW0pOworZXh0ZXJuIHZvaWQgcmVhZF9zdHJlYW1fZW5hYmxlX3N0YXRzKFJlYWRTdHJlYW0g KnN0cmVhbSwgc3RydWN0IElPU3RhdHMgKnN0YXRzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFJF QURfU1RSRUFNX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOWU2YTM5 ZjU2MDguLjk4YjhkNzhlNjkzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAt MTI3OSw2ICsxMjc5LDcgQEAgSU9Db250ZXh0CiBJT0Z1bmNTZWxlY3RvcgogSU9PYmplY3QK IElPT3AKK0lPU3RhdHMKIElPX1NUQVRVU19CTE9DSwogSVBDb21wYXJlTWV0aG9kCiBJVEVN CkBAIC0zMTI3LDYgKzMxMjgsNyBAQCBUYWJsZUxpa2VDbGF1c2UKIFRhYmxlU2FtcGxlQ2xh dXNlCiBUYWJsZVNjYW5EZXNjCiBUYWJsZVNjYW5EZXNjRGF0YQorVGFibGVTY2FuSW5zdHJ1 bWVudGF0aW9uCiBUYWJsZVNwYWNlQ2FjaGVFbnRyeQogVGFibGVTcGFjZU9wdHMKIFRhYmxl VG9Qcm9jZXNzCi0tIAoyLjUzLjAKCg== --------------gEzlAgH0MfmkTWAZBB6VCeL9 Content-Type: text/x-patch; charset=UTF-8; name="v14-0003-auto_explain-Add-new-GUC-auto_explain.log_io.patch" Content-Disposition: attachment; filename*0="v14-0003-auto_explain-Add-new-GUC-auto_explain.log_io.patch" Content-Transfer-Encoding: base64 RnJvbSBjNDhiYzI0NGNjY2IyNDFjNzYxODYwM2RjOTFmOTI0YTY2MzIxYTdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB0ZXN0IDx0ZXN0PgpEYXRlOiBUdWUsIDcgQXByIDIw MjYgMDI6MDQ6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIHYxNCAzLzVdIGF1dG9fZXhwbGFp bjogQWRkIG5ldyBHVUMgYXV0b19leHBsYWluLmxvZ19pbwoKQWxsb3dzIGVuYWJsaW5nIHRo ZSBuZXcgRVhQTEFJTiAiSU8iIG9wdGlvbiBmb3IgYXV0b19leHBsYWluLgoKUmV2aWV3ZWQt Ynk6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL2ZsYXQvYTE3N2E2ZGQtMjQwYi00NTVhLThmMjUtYWNhMGIxYzA4 YzZlJTQwdm9uZHJhLm1lCi0tLQogY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWlu LmMgfCAxNSArKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9hdXRvLWV4cGxhaW4uc2dt bCAgICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzUg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9f ZXhwbGFpbi5jIGIvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMKaW5kZXgg NmNlYWUxYzY5Y2UuLjkxMTRjZWQ0NWE3IDEwMDY0NAotLS0gYS9jb250cmliL2F1dG9fZXhw bGFpbi9hdXRvX2V4cGxhaW4uYworKysgYi9jb250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4 cGxhaW4uYwpAQCAtMzgsNiArMzgsNyBAQCBzdGF0aWMgaW50CWF1dG9fZXhwbGFpbl9sb2df cGFyYW1ldGVyX21heF9sZW5ndGggPSAtMTsgLyogYnl0ZXMgb3IgLTEgKi8KIHN0YXRpYyBi b29sIGF1dG9fZXhwbGFpbl9sb2dfYW5hbHl6ZSA9IGZhbHNlOwogc3RhdGljIGJvb2wgYXV0 b19leHBsYWluX2xvZ192ZXJib3NlID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBhdXRvX2V4cGxh aW5fbG9nX2J1ZmZlcnMgPSBmYWxzZTsKK3N0YXRpYyBib29sIGF1dG9fZXhwbGFpbl9sb2df aW8gPSBmYWxzZTsKIHN0YXRpYyBib29sIGF1dG9fZXhwbGFpbl9sb2dfd2FsID0gZmFsc2U7 CiBzdGF0aWMgYm9vbCBhdXRvX2V4cGxhaW5fbG9nX3RyaWdnZXJzID0gZmFsc2U7CiBzdGF0 aWMgYm9vbCBhdXRvX2V4cGxhaW5fbG9nX3RpbWluZyA9IHRydWU7CkBAIC0yMDMsNiArMjA0 LDE3IEBAIF9QR19pbml0KHZvaWQpCiAJCQkJCQkJIE5VTEwsCiAJCQkJCQkJIE5VTEwpOwog CisJRGVmaW5lQ3VzdG9tQm9vbFZhcmlhYmxlKCJhdXRvX2V4cGxhaW4ubG9nX2lvIiwKKwkJ CQkJCQkgIkxvZyBJL08gc3RhdGlzdGljcy4iLAorCQkJCQkJCSBOVUxMLAorCQkJCQkJCSAm YXV0b19leHBsYWluX2xvZ19pbywKKwkJCQkJCQkgZmFsc2UsCisJCQkJCQkJIFBHQ19TVVNF VCwKKwkJCQkJCQkgMCwKKwkJCQkJCQkgTlVMTCwKKwkJCQkJCQkgTlVMTCwKKwkJCQkJCQkg TlVMTCk7CisKIAlEZWZpbmVDdXN0b21Cb29sVmFyaWFibGUoImF1dG9fZXhwbGFpbi5sb2df d2FsIiwKIAkJCQkJCQkgIkxvZyBXQUwgdXNhZ2UuIiwKIAkJCQkJCQkgTlVMTCwKQEAgLTM0 Myw2ICszNTUsOCBAQCBleHBsYWluX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURl c2MsIGludCBlZmxhZ3MpCiAJCQkJcXVlcnlEZXNjLT5pbnN0cnVtZW50X29wdGlvbnMgfD0g SU5TVFJVTUVOVF9ST1dTOwogCQkJaWYgKGF1dG9fZXhwbGFpbl9sb2dfYnVmZmVycykKIAkJ CQlxdWVyeURlc2MtPmluc3RydW1lbnRfb3B0aW9ucyB8PSBJTlNUUlVNRU5UX0JVRkZFUlM7 CisJCQlpZiAoYXV0b19leHBsYWluX2xvZ19pbykKKwkJCQlxdWVyeURlc2MtPmluc3RydW1l bnRfb3B0aW9ucyB8PSBJTlNUUlVNRU5UX0lPOwogCQkJaWYgKGF1dG9fZXhwbGFpbl9sb2df d2FsKQogCQkJCXF1ZXJ5RGVzYy0+aW5zdHJ1bWVudF9vcHRpb25zIHw9IElOU1RSVU1FTlRf V0FMOwogCQl9CkBAIC00NDAsNiArNDU0LDcgQEAgZXhwbGFpbl9FeGVjdXRvckVuZChRdWVy eURlc2MgKnF1ZXJ5RGVzYykKIAkJCWVzLT5hbmFseXplID0gKHF1ZXJ5RGVzYy0+aW5zdHJ1 bWVudF9vcHRpb25zICYmIGF1dG9fZXhwbGFpbl9sb2dfYW5hbHl6ZSk7CiAJCQllcy0+dmVy Ym9zZSA9IGF1dG9fZXhwbGFpbl9sb2dfdmVyYm9zZTsKIAkJCWVzLT5idWZmZXJzID0gKGVz LT5hbmFseXplICYmIGF1dG9fZXhwbGFpbl9sb2dfYnVmZmVycyk7CisJCQllcy0+aW8gPSAo ZXMtPmFuYWx5emUgJiYgYXV0b19leHBsYWluX2xvZ19pbyk7CiAJCQllcy0+d2FsID0gKGVz LT5hbmFseXplICYmIGF1dG9fZXhwbGFpbl9sb2dfd2FsKTsKIAkJCWVzLT50aW1pbmcgPSAo ZXMtPmFuYWx5emUgJiYgYXV0b19leHBsYWluX2xvZ190aW1pbmcpOwogCQkJZXMtPnN1bW1h cnkgPSBlcy0+YW5hbHl6ZTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9hdXRvLWV4cGxh aW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9hdXRvLWV4cGxhaW4uc2dtbAppbmRleCBlZTg1YTY3 ZWIyZS4uMDZhOGZjYzZjNWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9hdXRvLWV4cGxh aW4uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYXV0by1leHBsYWluLnNnbWwKQEAgLTEyOCw2 ICsxMjgsMjYgQEAgTE9BRCAnYXV0b19leHBsYWluJzsKICAgICA8L2xpc3RpdGVtPgogICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9ImF1dG8tZXhwbGFpbi1j b25maWd1cmF0aW9uLXBhcmFtZXRlcnMtbG9nLWlvIj4KKyAgICA8dGVybT4KKyAgICAgPHZh cm5hbWU+YXV0b19leHBsYWluLmxvZ19pbzwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5 cGU+KQorICAgICA8aW5kZXh0ZXJtPgorICAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0b19l eHBsYWluLmxvZ19pbzwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1h cnk+CisgICAgIDwvaW5kZXh0ZXJtPgorICAgIDwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgPHZhcm5hbWU+YXV0b19leHBsYWluLmxvZ19pbzwvdmFybmFt ZT4gY29udHJvbHMgd2hldGhlciBJL08gdXNhZ2UKKyAgICAgIHN0YXRpc3RpY3MgYXJlIHBy aW50ZWQgd2hlbiBhbiBleGVjdXRpb24gcGxhbiBpcyBsb2dnZWQ7IGl0J3MKKyAgICAgIGVx dWl2YWxlbnQgdG8gdGhlIDxsaXRlcmFsPklPPC9saXRlcmFsPiBvcHRpb24gb2YgPGNvbW1h bmQ+RVhQTEFJTjwvY29tbWFuZD4uCisgICAgICBUaGlzIHBhcmFtZXRlciBoYXMgbm8gZWZm ZWN0CisgICAgICB1bmxlc3MgPHZhcm5hbWU+YXV0b19leHBsYWluLmxvZ19hbmFseXplPC92 YXJuYW1lPiBpcyBlbmFibGVkLgorICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgb2ZmIGJ5IGRl ZmF1bHQuCisgICAgICBPbmx5IHN1cGVydXNlcnMgY2FuIGNoYW5nZSB0aGlzIHNldHRpbmcu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImF1dG8tZXhwbGFpbi1jb25maWd1cmF0aW9uLXBhcmFt ZXRlcnMtbG9nLXdhbCI+CiAgICAgPHRlcm0+CiAgICAgIDx2YXJuYW1lPmF1dG9fZXhwbGFp bi5sb2dfd2FsPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCi0tIAoyLjUzLjAK Cg== --------------gEzlAgH0MfmkTWAZBB6VCeL9 Content-Type: text/x-patch; charset=UTF-8; name="v14-0004-Add-EXPLAIN-IO-instrumentation-for-SeqScan.patch" Content-Disposition: attachment; filename*0="v14-0004-Add-EXPLAIN-IO-instrumentation-for-SeqScan.patch" Content-Transfer-Encoding: base64 RnJvbSA2M2FlODc4YTQzM2M1ZTE0Y2UwYzk0ODIyODMyZDY1N2VjNDA0Nzk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB0ZXN0IDx0ZXN0PgpEYXRlOiBUdWUsIDcgQXByIDIw MjYgMDE6Mzg6NTMgKzAyMDAKU3ViamVjdDogW1BBVENIIHYxNCA0LzVdIEFkZCBFWFBMQUlO IChJTykgaW5zdHJ1bWVudGF0aW9uIGZvciBTZXFTY2FuCgpBZGRzIHN1cHBvcnQgZm9yIEVY UExBSU4gKElPKSBpbnN0cnVtZW50YXRpb24gZm9yIHNlcXVlbnRpYWwgc2NhbnMuIFRoaXMK cmVxdWlyZXMgYWRkaW5nIHNoYXJlZCBpbnN0cnVtZW50YXRpb24gZm9yIHBhcmFsbGVsIHNj YW5zLCB1c2luZyB0aGUKc2VwYXJhdGUgRFNNIGFwcHJvYWNoIGludHJvZHVjZWQgYnkgZGQ3 OGU2OWNmYzMzLgoKUmV2aWV3ZWQtYnk6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFn ZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwu Y29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpE aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvYTE3N2E2ZGQtMjQwYi00NTVh LThmMjUtYWNhMGIxYzA4YzZlJTQwdm9uZHJhLm1lCi0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXhwbGFpbi5jICAgICAgICAgfCAgMjUgKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5jICAgIHwgIDExICsrCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2Vxc2Nhbi5jICAgICB8IDEzMyArKysrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvaW5j bHVkZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUuaCB8ICAxOSArKysrCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9ub2RlU2Vxc2Nhbi5oICAgICB8ICAgOSArKwogc3JjL2luY2x1ZGUvbm9k ZXMvZXhlY25vZGVzLmggICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9leHBsYWluLm91dCAgfCAgMTggKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXhw bGFpbi5zcWwgICAgICAgfCAgIDQgKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgIHwgICAyICsKIDkgZmlsZXMgY2hhbmdlZCwgMjA5IGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCBjYTMwNzFm NGNhMi4uYzE5Mjg3MTNiNTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTIwMzIs NiArMjAzMiw3IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICph bmNlc3RvcnMsCiAJCQkJCQkJCQkJICAgcGxhbnN0YXRlLCBlcyk7CiAJCQlpZiAoSXNBKHBs YW4sIEN0ZVNjYW4pKQogCQkJCXNob3dfY3Rlc2Nhbl9pbmZvKGNhc3ROb2RlKEN0ZVNjYW5T dGF0ZSwgcGxhbnN0YXRlKSwgZXMpOworCQkJc2hvd19zY2FuX2lvX3VzYWdlKChTY2FuU3Rh dGUgKikgcGxhbnN0YXRlLCBlcyk7CiAJCQlicmVhazsKIAkJY2FzZSBUX0dhdGhlcjoKIAkJ CXsKQEAgLTQxMDIsNiArNDEwMywzMCBAQCBzaG93X3NjYW5faW9fdXNhZ2UoU2NhblN0YXRl ICpwbGFuc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQkJCX0KIAkJCQl9CiAKKwkJCQli cmVhazsKKwkJCX0KKwkJY2FzZSBUX1NlcVNjYW46CisJCQl7CisJCQkJU2hhcmVkU2VxU2Nh bkluc3RydW1lbnRhdGlvbiAqc2luc3RydW1lbnQKKwkJCQk9ICgoU2VxU2NhblN0YXRlICop IHBsYW5zdGF0ZSktPnNpbnN0cnVtZW50OworCisJCQkJaWYgKHNpbnN0cnVtZW50KQorCQkJ CXsKKwkJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBzaW5zdHJ1bWVudC0+bnVtX3dvcmtlcnM7 ICsraSkKKwkJCQkJeworCQkJCQkJU2VxU2Nhbkluc3RydW1lbnRhdGlvbiAqd2luc3RydW1l bnQgPSAmc2luc3RydW1lbnQtPnNpbnN0cnVtZW50W2ldOworCisJCQkJCQlBY2N1bXVsYXRl SU9TdGF0cygmc3RhdHMsICZ3aW5zdHJ1bWVudC0+c3RhdHMuaW8pOworCisJCQkJCQlpZiAo IWVzLT53b3JrZXJzX3N0YXRlKQorCQkJCQkJCWNvbnRpbnVlOworCisJCQkJCQlFeHBsYWlu T3BlbldvcmtlcihpLCBlcyk7CisJCQkJCQlwcmludF9pb191c2FnZShlcywgJndpbnN0cnVt ZW50LT5zdGF0cy5pbyk7CisJCQkJCQlFeHBsYWluQ2xvc2VXb3JrZXIoaSwgZXMpOworCQkJ CQl9CisJCQkJfQorCiAJCQkJYnJlYWs7CiAJCQl9CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4IDFhNWVjMGMzMDVmLi45NjkwZjA5MzhhZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTI1Nyw2ICsyNTcsOSBA QCBFeGVjUGFyYWxsZWxFc3RpbWF0ZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRXhlY1BhcmFs bGVsRXN0aW1hdGVDb250ZXh0ICplKQogCQkJaWYgKHBsYW5zdGF0ZS0+cGxhbi0+cGFyYWxs ZWxfYXdhcmUpCiAJCQkJRXhlY1NlcVNjYW5Fc3RpbWF0ZSgoU2VxU2NhblN0YXRlICopIHBs YW5zdGF0ZSwKIAkJCQkJCQkJCWUtPnBjeHQpOworCQkJLyogZXZlbiB3aGVuIG5vdCBwYXJh bGxlbC1hd2FyZSwgZm9yIEVYUExBSU4gQU5BTFlaRSAqLworCQkJRXhlY1NlcVNjYW5JbnN0 cnVtZW50RXN0aW1hdGUoKFNlcVNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUsCisJCQkJCQkJCQkJ ICBlLT5wY3h0KTsKIAkJCWJyZWFrOwogCQljYXNlIFRfSW5kZXhTY2FuU3RhdGU6CiAJCQlp ZiAocGxhbnN0YXRlLT5wbGFuLT5wYXJhbGxlbF9hd2FyZSkKQEAgLTUwMCw2ICs1MDMsOSBA QCBFeGVjUGFyYWxsZWxJbml0aWFsaXplRFNNKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLAogCQkJ aWYgKHBsYW5zdGF0ZS0+cGxhbi0+cGFyYWxsZWxfYXdhcmUpCiAJCQkJRXhlY1NlcVNjYW5J bml0aWFsaXplRFNNKChTZXFTY2FuU3RhdGUgKikgcGxhbnN0YXRlLAogCQkJCQkJCQkJCSBk LT5wY3h0KTsKKwkJCS8qIGV2ZW4gd2hlbiBub3QgcGFyYWxsZWwtYXdhcmUsIGZvciBFWFBM QUlOIEFOQUxZWkUgKi8KKwkJCUV4ZWNTZXFTY2FuSW5zdHJ1bWVudEluaXREU00oKFNlcVNj YW5TdGF0ZSAqKSBwbGFuc3RhdGUsCisJCQkJCQkJCQkJIGQtPnBjeHQpOwogCQkJYnJlYWs7 CiAJCWNhc2UgVF9JbmRleFNjYW5TdGF0ZToKIAkJCWlmIChwbGFuc3RhdGUtPnBsYW4tPnBh cmFsbGVsX2F3YXJlKQpAQCAtMTE0OCw2ICsxMTU0LDkgQEAgRXhlY1BhcmFsbGVsUmV0cmll dmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAJCWNhc2UgVF9CaXRt YXBIZWFwU2NhblN0YXRlOgogCQkJRXhlY0JpdG1hcEhlYXBSZXRyaWV2ZUluc3RydW1lbnRh dGlvbigoQml0bWFwSGVhcFNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUpOwogCQkJYnJlYWs7CisJ CWNhc2UgVF9TZXFTY2FuU3RhdGU6CisJCQlFeGVjU2VxU2NhblJldHJpZXZlSW5zdHJ1bWVu dGF0aW9uKChTZXFTY2FuU3RhdGUgKikgcGxhbnN0YXRlKTsKKwkJCWJyZWFrOwogCQlkZWZh dWx0OgogCQkJYnJlYWs7CiAJfQpAQCAtMTM4OCw2ICsxMzk3LDggQEAgRXhlY1BhcmFsbGVs SW5pdGlhbGl6ZVdvcmtlcihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgUGFyYWxsZWxXb3JrZXJD b250ZXh0ICpwd2N4dCkKIAkJY2FzZSBUX1NlcVNjYW5TdGF0ZToKIAkJCWlmIChwbGFuc3Rh dGUtPnBsYW4tPnBhcmFsbGVsX2F3YXJlKQogCQkJCUV4ZWNTZXFTY2FuSW5pdGlhbGl6ZVdv cmtlcigoU2VxU2NhblN0YXRlICopIHBsYW5zdGF0ZSwgcHdjeHQpOworCQkJLyogZXZlbiB3 aGVuIG5vdCBwYXJhbGxlbC1hd2FyZSwgZm9yIEVYUExBSU4gQU5BTFlaRSAqLworCQkJRXhl Y1NlcVNjYW5JbnN0cnVtZW50SW5pdFdvcmtlcigoU2VxU2NhblN0YXRlICopIHBsYW5zdGF0 ZSwgcHdjeHQpOwogCQkJYnJlYWs7CiAJCWNhc2UgVF9JbmRleFNjYW5TdGF0ZToKIAkJCWlm IChwbGFuc3RhdGUtPnBsYW4tPnBhcmFsbGVsX2F3YXJlKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTZXFzY2FuLmMKaW5kZXggMDQ4MDNiMGUzN2QuLjViY2IwYTg2MWQ3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUg ImFjY2Vzcy9yZWxzY2FuLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNs dWRlICJleGVjdXRvci9leGVjUGFyYWxsZWwuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj U2Nhbi5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3Ivbm9kZVNlcXNjYW4uaCIKQEAgLTY1LDE1ICs2NiwyMSBAQCBTZXFOZXh0KFNlcVNj YW5TdGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMy CQlmbGFncyA9IFNPX05PTkU7CisKKwkJaWYgKFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5z cykpCisJCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKKwkJaWYgKGVzdGF0 ZS0+ZXNfaW5zdHJ1bWVudCAmIElOU1RSVU1FTlRfSU8pCisJCQlmbGFncyB8PSBTT19TQ0FO X0lOU1RSVU1FTlQ7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgc2NhbiBp cyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlIHNlcmlhbGx5CiAJCSAqIGV4ZWN1dGluZyBh IHNjYW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZSBwYXJhbGxlbC4KIAkJICovCiAJCXNjYW5k ZXNjID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJ CQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgMCwgTlVMTCwKLQkJ CQkJCQkJICAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/Ci0JCQkJCQkJCSAgIFNP X0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOworCQkJCQkJCQkgICAwLCBOVUxMLCBm bGFncyk7CiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCX0K IApAQCAtMzAyLDYgKzMwOSwyMiBAQCBFeGVjRW5kU2VxU2NhbihTZXFTY2FuU3RhdGUgKm5v ZGUpCiAJICovCiAJc2NhbkRlc2MgPSBub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2M7CiAK KwkvKgorCSAqIENvbGxlY3QgSS9PIHN0YXRzIGZvciB0aGlzIHByb2Nlc3MgaW50byBzaGFy ZWQgaW5zdHJ1bWVudGF0aW9uLgorCSAqLworCWlmIChub2RlLT5zaW5zdHJ1bWVudCAhPSBO VUxMICYmIElzUGFyYWxsZWxXb3JrZXIoKSkKKwl7CisJCVNlcVNjYW5JbnN0cnVtZW50YXRp b24gKnNpOworCisJCUFzc2VydChQYXJhbGxlbFdvcmtlck51bWJlciA8IG5vZGUtPnNpbnN0 cnVtZW50LT5udW1fd29ya2Vycyk7CisJCXNpID0gJm5vZGUtPnNpbnN0cnVtZW50LT5zaW5z dHJ1bWVudFtQYXJhbGxlbFdvcmtlck51bWJlcl07CisKKwkJaWYgKHNjYW5EZXNjICYmIHNj YW5EZXNjLT5yc19pbnN0cnVtZW50KQorCQl7CisJCQlBY2N1bXVsYXRlSU9TdGF0cygmc2kt PnN0YXRzLmlvLCAmc2NhbkRlc2MtPnJzX2luc3RydW1lbnQtPmlvKTsKKwkJfQorCX0KKwog CS8qCiAJICogY2xvc2UgaGVhcCBzY2FuCiAJICovCkBAIC0zNzAsNiArMzkzLDEzIEBAIEV4 ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5vZGUsCiB7CiAJRVN0YXRl CSAgICplc3RhdGUgPSBub2RlLT5zcy5wcy5zdGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRl c2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9IFNPX05PTkU7CisKKwlpZiAoU2NhblJlbElz UmVhZE9ubHkoJm5vZGUtPnNzKSkKKwkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZ OworCisJaWYgKGVzdGF0ZS0+ZXNfaW5zdHJ1bWVudCAmIElOU1RSVU1FTlRfSU8pCisJCWZs YWdzIHw9IFNPX1NDQU5fSU5TVFJVTUVOVDsKIAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0 ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xlbik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2lu aXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLApAQCAtMzc4LDkgKzQwOCw3 IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5vZGUsCiAJc2ht X3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQs IHBzY2FuKTsKIAogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAot CQkJCQkJCQkgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/Ci0JCQkJCQkJCSBTT19I SU5UX1JFTF9SRUFEX09OTFkgOiBTT19OT05FKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIGZsYWdzKTsKIH0KIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpAQCAtNDEwLDEwICs0MzgsOTcgQEAgRXhlY1NlcVNjYW5Jbml0aWFs aXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQlQYXJhbGxlbFdvcmtlckNv bnRleHQgKnB3Y3h0KQogewogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50 MzIJCWZsYWdzID0gU09fTk9ORTsKKworCWlmIChTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+ c3MpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKKwlpZiAobm9kZS0+ c3MucHMuc3RhdGUtPmVzX2luc3RydW1lbnQgJiBJTlNUUlVNRU5UX0lPKQorCQlmbGFncyB8 PSBTT19TQ0FOX0lOU1RSVU1FTlQ7CiAKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0 LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUt PnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChu b2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAotCQkJCQkJCQkgU2NhblJlbElz UmVhZE9ubHkoJm5vZGUtPnNzKSA/Ci0JCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkg OiBTT19OT05FKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1 cnJlbnRSZWxhdGlvbiwgcHNjYW4sIGZsYWdzKTsKK30KKworLyoKKyAqIENvbXB1dGUgdGhl IGFtb3VudCBvZiBzcGFjZSB3ZSdsbCBuZWVkIGZvciB0aGUgc2hhcmVkIGluc3RydW1lbnRh dGlvbiBhbmQKKyAqIGluZm9ybSBwY3h0LT5lc3RpbWF0b3IuCisgKi8KK3ZvaWQKK0V4ZWNT ZXFTY2FuSW5zdHJ1bWVudEVzdGltYXRlKFNlcVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxD b250ZXh0ICpwY3h0KQoreworCUVTdGF0ZQkgICAqZXN0YXRlID0gbm9kZS0+c3MucHMuc3Rh dGU7CisJU2l6ZQkJc2l6ZTsKKworCWlmICgoZXN0YXRlLT5lc19pbnN0cnVtZW50ICYgSU5T VFJVTUVOVF9JTykgPT0gMCB8fCBwY3h0LT5ud29ya2VycyA9PSAwKQorCQlyZXR1cm47CisK KwlzaXplID0gYWRkX3NpemUob2Zmc2V0b2YoU2hhcmVkU2VxU2Nhbkluc3RydW1lbnRhdGlv biwgc2luc3RydW1lbnQpLAorCQkJCQltdWxfc2l6ZShwY3h0LT5ud29ya2Vycywgc2l6ZW9m KFNlcVNjYW5JbnN0cnVtZW50YXRpb24pKSk7CisKKwlzaG1fdG9jX2VzdGltYXRlX2NodW5r KCZwY3h0LT5lc3RpbWF0b3IsIHNpemUpOworCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4 dC0+ZXN0aW1hdG9yLCAxKTsKK30KKworLyoKKyAqIFNldCB1cCBwYXJhbGxlbCBzZXF1ZW50 aWFsIHNjYW4gaW5zdHJ1bWVudGF0aW9uLgorICovCit2b2lkCitFeGVjU2VxU2Nhbkluc3Ry dW1lbnRJbml0RFNNKFNlcVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxDb250ZXh0ICpwY3h0 KQoreworCUVTdGF0ZQkgICAqZXN0YXRlID0gbm9kZS0+c3MucHMuc3RhdGU7CisJU2hhcmVk U2VxU2Nhbkluc3RydW1lbnRhdGlvbiAqc2luc3RydW1lbnQ7CisJU2l6ZQkJc2l6ZTsKKwor CWlmICgoZXN0YXRlLT5lc19pbnN0cnVtZW50ICYgSU5TVFJVTUVOVF9JTykgPT0gMCB8fCBw Y3h0LT5ud29ya2VycyA9PSAwKQorCQlyZXR1cm47CisKKwlzaXplID0gYWRkX3NpemUob2Zm c2V0b2YoU2hhcmVkU2VxU2Nhbkluc3RydW1lbnRhdGlvbiwgc2luc3RydW1lbnQpLAorCQkJ CQltdWxfc2l6ZShwY3h0LT5ud29ya2Vycywgc2l6ZW9mKFNlcVNjYW5JbnN0cnVtZW50YXRp b24pKSk7CisJc2luc3RydW1lbnQgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgc2l6 ZSk7CisJbWVtc2V0KHNpbnN0cnVtZW50LCAwLCBzaXplKTsKKwlzaW5zdHJ1bWVudC0+bnVt X3dvcmtlcnMgPSBwY3h0LT5ud29ya2VyczsKKwlzaG1fdG9jX2luc2VydChwY3h0LT50b2Ms CisJCQkJICAgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkICsKKwkJCQkgICBQQVJB TExFTF9LRVlfU0NBTl9JTlNUUlVNRU5UX09GRlNFVCwKKwkJCQkgICBzaW5zdHJ1bWVudCk7 CisJbm9kZS0+c2luc3RydW1lbnQgPSBzaW5zdHJ1bWVudDsKK30KKworLyoKKyAqIExvb2sg dXAgYW5kIHNhdmUgdGhlIGxvY2F0aW9uIG9mIHRoZSBzaGFyZWQgaW5zdHJ1bWVudGF0aW9u LgorICovCit2b2lkCitFeGVjU2VxU2Nhbkluc3RydW1lbnRJbml0V29ya2VyKFNlcVNjYW5T dGF0ZSAqbm9kZSwKKwkJCQkJCQkJUGFyYWxsZWxXb3JrZXJDb250ZXh0ICpwd2N4dCkKK3sK KwlFU3RhdGUJICAgKmVzdGF0ZSA9IG5vZGUtPnNzLnBzLnN0YXRlOworCisJaWYgKChlc3Rh dGUtPmVzX2luc3RydW1lbnQgJiBJTlNUUlVNRU5UX0lPKSA9PSAwKQorCQlyZXR1cm47CisK Kwlub2RlLT5zaW5zdHJ1bWVudCA9IHNobV90b2NfbG9va3VwKHB3Y3h0LT50b2MsCisJCQkJ CQkJCQkgICBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQgKworCQkJCQkJCQkJICAg UEFSQUxMRUxfS0VZX1NDQU5fSU5TVFJVTUVOVF9PRkZTRVQsCisJCQkJCQkJCQkgICBmYWxz ZSk7Cit9CisKKy8qCisgKiBUcmFuc2ZlciBzZXF1ZW50aWFsIHNjYW4gaW5zdHJ1bWVudGF0 aW9uIGZyb20gRFNNIHRvIHByaXZhdGUgbWVtb3J5LgorICovCit2b2lkCitFeGVjU2VxU2Nh blJldHJpZXZlSW5zdHJ1bWVudGF0aW9uKFNlcVNjYW5TdGF0ZSAqbm9kZSkKK3sKKwlTaGFy ZWRTZXFTY2FuSW5zdHJ1bWVudGF0aW9uICpzaW5zdHJ1bWVudCA9IG5vZGUtPnNpbnN0cnVt ZW50OworCVNpemUJCXNpemU7CisKKwlpZiAoc2luc3RydW1lbnQgPT0gTlVMTCkKKwkJcmV0 dXJuOworCisJc2l6ZSA9IG9mZnNldG9mKFNoYXJlZFNlcVNjYW5JbnN0cnVtZW50YXRpb24s IHNpbnN0cnVtZW50KQorCQkrIHNpbnN0cnVtZW50LT5udW1fd29ya2VycyAqIHNpemVvZihT ZXFTY2FuSW5zdHJ1bWVudGF0aW9uKTsKKworCW5vZGUtPnNpbnN0cnVtZW50ID0gcGFsbG9j KHNpemUpOworCW1lbWNweShub2RlLT5zaW5zdHJ1bWVudCwgc2luc3RydW1lbnQsIHNpemUp OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudF9ub2Rl LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUuaAppbmRleCAyMmE3 NWNjZDg2My4uMDAzZGMyNjJiNWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnRfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1l bnRfbm9kZS5oCkBAIC0yNjYsNCArMjY2LDIzIEBAIHR5cGVkZWYgc3RydWN0IFNoYXJlZElu Y3JlbWVudGFsU29ydEluZm8KIAlJbmNyZW1lbnRhbFNvcnRJbmZvIHNpbmZvW0ZMRVhJQkxF X0FSUkFZX01FTUJFUl07CiB9IFNoYXJlZEluY3JlbWVudGFsU29ydEluZm87CiAKKworLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKglJbnN0cnVtZW50YXRpb24gaW5mb3JtYXRpb24g Zm9yIHNlcXVlbnRpYWwgc2NhbnMKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0 eXBlZGVmIHN0cnVjdCBTZXFTY2FuSW5zdHJ1bWVudGF0aW9uCit7CisJVGFibGVTY2FuSW5z dHJ1bWVudGF0aW9uIHN0YXRzOworfSBTZXFTY2FuSW5zdHJ1bWVudGF0aW9uOworCisvKgor ICogU2hhcmVkIG1lbW9yeSBjb250YWluZXIgZm9yIHBlci13b3JrZXIgaW5mb3JtYXRpb24K KyAqLwordHlwZWRlZiBzdHJ1Y3QgU2hhcmVkU2VxU2Nhbkluc3RydW1lbnRhdGlvbgorewor CWludAkJCW51bV93b3JrZXJzOworCVNlcVNjYW5JbnN0cnVtZW50YXRpb24gc2luc3RydW1l bnRbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKK30gU2hhcmVkU2VxU2Nhbkluc3RydW1lbnRh dGlvbjsKKwogI2VuZGlmCQkJCQkJCS8qIElOU1RSVU1FTlRfTk9ERV9IICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlU2Vxc2Nhbi5oIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivbm9kZVNlcXNjYW4uaAppbmRleCA3YTE0OTA1OTZmYi4uOWMwYWQ0ODc5ZDcg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmgKKysrIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uaApAQCAtMjgsNCArMjgsMTMgQEAg ZXh0ZXJuIHZvaWQgRXhlY1NlcVNjYW5SZUluaXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpu b2RlLCBQYXJhbGxlbENvbnRleHQgKnBjeHQKIGV4dGVybiB2b2lkIEV4ZWNTZXFTY2FuSW5p dGlhbGl6ZVdvcmtlcihTZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCQkJUGFyYWxsZWxX b3JrZXJDb250ZXh0ICpwd2N4dCk7CiAKKy8qIGluc3RydW1lbnQgc3VwcG9ydCAqLworZXh0 ZXJuIHZvaWQgRXhlY1NlcVNjYW5JbnN0cnVtZW50RXN0aW1hdGUoU2VxU2NhblN0YXRlICpu b2RlLAorCQkJCQkJCQkJCSAgUGFyYWxsZWxDb250ZXh0ICpwY3h0KTsKK2V4dGVybiB2b2lk IEV4ZWNTZXFTY2FuSW5zdHJ1bWVudEluaXREU00oU2VxU2NhblN0YXRlICpub2RlLAorCQkJ CQkJCQkJCSBQYXJhbGxlbENvbnRleHQgKnBjeHQpOworZXh0ZXJuIHZvaWQgRXhlY1NlcVNj YW5JbnN0cnVtZW50SW5pdFdvcmtlcihTZXFTY2FuU3RhdGUgKm5vZGUsCisJCQkJCQkJCQkJ CVBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpOworZXh0ZXJuIHZvaWQgRXhlY1NlcVNj YW5SZXRyaWV2ZUluc3RydW1lbnRhdGlvbihTZXFTY2FuU3RhdGUgKm5vZGUpOworCiAjZW5k aWYJCQkJCQkJLyogTk9ERVNFUVNDQU5fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCAzZWNhZTc1NTJmYy4uNTZmZWJiMzIwNGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBA IC0xNjcwLDYgKzE2NzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBTZXFTY2FuU3RhdGUKIHsKIAlT Y2FuU3RhdGUJc3M7CQkJCS8qIGl0cyBmaXJzdCBmaWVsZCBpcyBOb2RlVGFnICovCiAJU2l6 ZQkJcHNjYW5fbGVuOwkJLyogc2l6ZSBvZiBwYXJhbGxlbCBoZWFwIHNjYW4gZGVzY3JpcHRv ciAqLworCXN0cnVjdCBTaGFyZWRTZXFTY2FuSW5zdHJ1bWVudGF0aW9uICpzaW5zdHJ1bWVu dDsKIH0gU2VxU2NhblN0YXRlOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9leHBsYWluLm91dAppbmRleCBkYzMxYzdjZTlmOS4uNzRhNGQ4Nzgw MWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dApAQCAtMTAwLDcg KzEwMCw3IEBAIHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYnVmZmVycywgZm9y bWF0IHRleHQpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnCiAoMSByb3cpCiAKIFxhCi1z ZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMsIGZvcm1h dCB4bWwpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKK3NlbGVjdCBleHBsYWluX2Zp bHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgaW8sIGZvcm1hdCB4bWwpIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKIGV4cGxhaW5fZmlsdGVyCiA8ZXhwbGFpbiB4bWxu cz0iaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9OL2V4cGxhaW4iPgogICA8UXVlcnk+CkBA IC0xMTksNiArMTE5LDEzIEBAIGV4cGxhaW5fZmlsdGVyCiAgICAgICA8QWN0dWFsLVJvd3M+ Ti5OPC9BY3R1YWwtUm93cz4KICAgICAgIDxBY3R1YWwtTG9vcHM+TjwvQWN0dWFsLUxvb3Bz PgogICAgICAgPERpc2FibGVkPmZhbHNlPC9EaXNhYmxlZD4KKyAgICAgIDxBdmVyYWdlLVBy ZWZldGNoLURpc3RhbmNlPk4uTjwvQXZlcmFnZS1QcmVmZXRjaC1EaXN0YW5jZT4KKyAgICAg IDxNYXgtUHJlZmV0Y2gtRGlzdGFuY2U+TjwvTWF4LVByZWZldGNoLURpc3RhbmNlPgorICAg ICAgPFByZWZldGNoLUNhcGFjaXR5Pk48L1ByZWZldGNoLUNhcGFjaXR5PgorICAgICAgPEkt Ty1Db3VudD5OPC9JLU8tQ291bnQ+CisgICAgICA8SS1PLVdhaXRzPk48L0ktTy1XYWl0cz4K KyAgICAgIDxBdmVyYWdlLUktTy1TaXplPk4uTjwvQXZlcmFnZS1JLU8tU2l6ZT4KKyAgICAg IDxBdmVyYWdlLUktT3MtSW4tUHJvZ3Jlc3M+Ti5OPC9BdmVyYWdlLUktT3MtSW4tUHJvZ3Jl c3M+CiAgICAgICA8U2hhcmVkLUhpdC1CbG9ja3M+TjwvU2hhcmVkLUhpdC1CbG9ja3M+CiAg ICAgICA8U2hhcmVkLVJlYWQtQmxvY2tzPk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4KICAgICAg IDxTaGFyZWQtRGlydGllZC1CbG9ja3M+TjwvU2hhcmVkLURpcnRpZWQtQmxvY2tzPgpAQCAt MTQ5LDcgKzE1Niw3IEBAIGV4cGxhaW5fZmlsdGVyCiAgIDwvUXVlcnk+CiA8L2V4cGxhaW4+ CiAoMSByb3cpCi1zZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIHNl cmlhbGl6ZSwgYnVmZmVycywgZm9ybWF0IHlhbWwpIHNlbGVjdCAqIGZyb20gaW50OF90Ymwg aTgnKTsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgc2VyaWFs aXplLCBidWZmZXJzLCBpbywgZm9ybWF0IHlhbWwpIHNlbGVjdCAqIGZyb20gaW50OF90Ymwg aTgnKTsKIGV4cGxhaW5fZmlsdGVyCiAtIFBsYW46IAogICAgIE5vZGUgVHlwZTogIlNlcSBT Y2FuIgpAQCAtMTY2LDYgKzE3MywxMyBAQCBleHBsYWluX2ZpbHRlcgogICAgIEFjdHVhbCBS b3dzOiBOLk4KICAgICBBY3R1YWwgTG9vcHM6IE4KICAgICBEaXNhYmxlZDogZmFsc2UKKyAg ICBBdmVyYWdlIFByZWZldGNoIERpc3RhbmNlOiBOLk4KKyAgICBNYXggUHJlZmV0Y2ggRGlz dGFuY2U6IE4KKyAgICBQcmVmZXRjaCBDYXBhY2l0eTogTgorICAgIEkvTyBDb3VudDogTgor ICAgIEkvTyBXYWl0czogTgorICAgIEF2ZXJhZ2UgSS9PIFNpemU6IE4uTgorICAgIEF2ZXJh Z2UgSS9PcyBJbiBQcm9ncmVzczogTi5OCiAgICAgU2hhcmVkIEhpdCBCbG9ja3M6IE4KICAg ICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4KICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZXhwbGFpbi5zcWwKaW5kZXggOGYxMGUxYWZmNTUuLjJmMTYzYzY0 YmY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNxbApAQCAtNjksOCArNjksOCBAQCBz ZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMsIGZvcm1h dCB0ZXh0KSBzZWxlY3QgKiBmcm9tIGludAogc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBs YWluIChidWZmZXJzLCBmb3JtYXQgdGV4dCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcp OwogCiBcYQotc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZm ZXJzLCBmb3JtYXQgeG1sKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7Ci1zZWxlY3Qg ZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIHNlcmlhbGl6ZSwgYnVmZmVycywg Zm9ybWF0IHlhbWwpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKK3NlbGVjdCBleHBs YWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgaW8sIGZvcm1hdCB4bWwp IHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcign ZXhwbGFpbiAoYW5hbHl6ZSwgc2VyaWFsaXplLCBidWZmZXJzLCBpbywgZm9ybWF0IHlhbWwp IHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKIHNlbGVjdCBleHBsYWluX2ZpbHRlcign ZXhwbGFpbiAoYnVmZmVycywgZm9ybWF0IGpzb24pIHNlbGVjdCAqIGZyb20gaW50OF90Ymwg aTgnKTsKIFxhCiAKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOThiOGQ3OGU2 OTMuLmMwNDM2YTEzYWMzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjgw MCw2ICsyODAwLDcgQEAgU2VsZkpvaW5DYW5kaWRhdGUKIFNlbVRQYWRkZWQKIFNlbWlBbnRp Sm9pbkZhY3RvcnMKIFNlcVNjYW4KK1NlcVNjYW5JbnN0cnVtZW50YXRpb24KIFNlcVNjYW5T dGF0ZQogU2VxVGFibGUKIFNlcVRhYmxlRGF0YQpAQCAtMjg2NCw2ICsyODY1LDcgQEAgU2hh cmVkTWVtb2l6ZUluZm8KIFNoYXJlZFJlY29yZFRhYmxlRW50cnkKIFNoYXJlZFJlY29yZFRh YmxlS2V5CiBTaGFyZWRSZWNvcmRUeXBtb2RSZWdpc3RyeQorU2hhcmVkU2VxU2Nhbkluc3Ry dW1lbnRhdGlvbgogU2hhcmVkU29ydEluZm8KIFNoYXJlZFR1cGxlc3RvcmUKIFNoYXJlZFR1 cGxlc3RvcmVBY2Nlc3NvcgotLSAKMi41My4wCgo= --------------gEzlAgH0MfmkTWAZBB6VCeL9 Content-Type: text/x-patch; charset=UTF-8; name="v14-0005-Add-EXPLAIN-IO-instrumentation-for-TidRangeScan.patch" Content-Disposition: attachment; filename*0="v14-0005-Add-EXPLAIN-IO-instrumentation-for-TidRangeScan.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSBhYzYzMjlhYWEyZTIwNDVkYWIxODA0YWQwOTUwNmY4YjM5OTA2MTY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDcgQXByIDIwMjYgMTY6NDU6MTEgKzAyMDAKU3Vi amVjdDogW1BBVENIIHYxNCA1LzVdIEFkZCBFWFBMQUlOIChJTykgaW5zdHJ1bWVudGF0aW9u IGZvciBUaWRSYW5nZVNjYW4KCkFkZHMgc3VwcG9ydCBmb3IgRVhQTEFJTiAoSU8pIGluc3Ry dW1lbnRhdGlvbiBmb3IgVGlkUmFuZ2Ugc2NhbnMuIFRoaXMKcmVxdWlyZXMgYWRkaW5nIHNo YXJlZCBpbnN0cnVtZW50YXRpb24gZm9yIHBhcmFsbGVsIHNjYW5zLCB1c2luZyB0aGUKc2Vw YXJhdGUgRFNNIGFwcHJvYWNoIGludHJvZHVjZWQgYnkgZGQ3OGU2OWNmYzMzLgoKUmV2aWV3 ZWQtYnk6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpEaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL2ZsYXQvYTE3N2E2ZGQtMjQwYi00NTVhLThmMjUtYWNhMGIxYzA4YzZl JTQwdm9uZHJhLm1lCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAg ICAgIHwgIDI1ICsrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyAg ICAgfCAgMTIgKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMg fCAxMzMgKysrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvaW5jbHVkZS9leGVjdXRvci9p bnN0cnVtZW50X25vZGUuaCAgfCAgMTggKysrKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9k ZVRpZHJhbmdlc2Nhbi5oIHwgICA5ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aCAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg ICAgICAgIHwgICAyICsKIDcgZmlsZXMgY2hhbmdlZCwgMTkyIGluc2VydGlvbnMoKyksIDgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGMxOTI4NzEzYjUy Li5mOWQ3OTg3OWZkYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMjE0OSw2ICsy MTQ5LDcgQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2Vz dG9ycywKIAkJCQlpZiAocGxhbi0+cXVhbCkKIAkJCQkJc2hvd19pbnN0cnVtZW50YXRpb25f Y291bnQoIlJvd3MgUmVtb3ZlZCBieSBGaWx0ZXIiLCAxLAogCQkJCQkJCQkJCQkgICBwbGFu c3RhdGUsIGVzKTsKKwkJCQlzaG93X3NjYW5faW9fdXNhZ2UoKFNjYW5TdGF0ZSAqKSBwbGFu c3RhdGUsIGVzKTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFRfRm9yZWlnblNjYW46CkBA IC00MTI3LDYgKzQxMjgsMzAgQEAgc2hvd19zY2FuX2lvX3VzYWdlKFNjYW5TdGF0ZSAqcGxh bnN0YXRlLCBFeHBsYWluU3RhdGUgKmVzKQogCQkJCQl9CiAJCQkJfQogCisJCQkJYnJlYWs7 CisJCQl9CisJCWNhc2UgVF9UaWRSYW5nZVNjYW46CisJCQl7CisJCQkJU2hhcmVkVGlkUmFu Z2VTY2FuSW5zdHJ1bWVudGF0aW9uICpzaW5zdHJ1bWVudAorCQkJCT0gKChUaWRSYW5nZVNj YW5TdGF0ZSAqKSBwbGFuc3RhdGUpLT50cnNzX3NpbnN0cnVtZW50OworCisJCQkJaWYgKHNp bnN0cnVtZW50KQorCQkJCXsKKwkJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBzaW5zdHJ1bWVu dC0+bnVtX3dvcmtlcnM7ICsraSkKKwkJCQkJeworCQkJCQkJVGlkUmFuZ2VTY2FuSW5zdHJ1 bWVudGF0aW9uICp3aW5zdHJ1bWVudCA9ICZzaW5zdHJ1bWVudC0+c2luc3RydW1lbnRbaV07 CisKKwkJCQkJCUFjY3VtdWxhdGVJT1N0YXRzKCZzdGF0cywgJndpbnN0cnVtZW50LT5zdGF0 cy5pbyk7CisKKwkJCQkJCWlmICghZXMtPndvcmtlcnNfc3RhdGUpCisJCQkJCQkJY29udGlu dWU7CisKKwkJCQkJCUV4cGxhaW5PcGVuV29ya2VyKGksIGVzKTsKKwkJCQkJCXByaW50X2lv X3VzYWdlKGVzLCAmd2luc3RydW1lbnQtPnN0YXRzLmlvKTsKKwkJCQkJCUV4cGxhaW5DbG9z ZVdvcmtlcihpLCBlcyk7CisJCQkJCX0KKwkJCQl9CisKIAkJCQlicmVhazsKIAkJCX0KIAkJ ZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxl bC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggOTY5MGYw OTM4YWUuLjgxYjg3ZDgyZmFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwu YwpAQCAtMjkxLDYgKzI5MSw5IEBAIEV4ZWNQYXJhbGxlbEVzdGltYXRlKFBsYW5TdGF0ZSAq cGxhbnN0YXRlLCBFeGVjUGFyYWxsZWxFc3RpbWF0ZUNvbnRleHQgKmUpCiAJCQlpZiAocGxh bnN0YXRlLT5wbGFuLT5wYXJhbGxlbF9hd2FyZSkKIAkJCQlFeGVjVGlkUmFuZ2VTY2FuRXN0 aW1hdGUoKFRpZFJhbmdlU2NhblN0YXRlICopIHBsYW5zdGF0ZSwKIAkJCQkJCQkJCQkgZS0+ cGN4dCk7CisJCQkvKiBldmVuIHdoZW4gbm90IHBhcmFsbGVsLWF3YXJlLCBmb3IgRVhQTEFJ TiBBTkFMWVpFICovCisJCQlFeGVjVGlkUmFuZ2VTY2FuSW5zdHJ1bWVudEVzdGltYXRlKChU aWRSYW5nZVNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUsCisJCQkJCQkJCQkJCSAgIGUtPnBjeHQp OwogCQkJYnJlYWs7CiAJCWNhc2UgVF9BcHBlbmRTdGF0ZToKIAkJCWlmIChwbGFuc3RhdGUt PnBsYW4tPnBhcmFsbGVsX2F3YXJlKQpAQCAtNTM2LDYgKzUzOSw5IEBAIEV4ZWNQYXJhbGxl bEluaXRpYWxpemVEU00oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAJCQlpZiAocGxhbnN0YXRl LT5wbGFuLT5wYXJhbGxlbF9hd2FyZSkKIAkJCQlFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6 ZURTTSgoVGlkUmFuZ2VTY2FuU3RhdGUgKikgcGxhbnN0YXRlLAogCQkJCQkJCQkJCQkgIGQt PnBjeHQpOworCQkJLyogZXZlbiB3aGVuIG5vdCBwYXJhbGxlbC1hd2FyZSwgZm9yIEVYUExB SU4gQU5BTFlaRSAqLworCQkJRXhlY1RpZFJhbmdlU2Nhbkluc3RydW1lbnRJbml0RFNNKChU aWRSYW5nZVNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUsCisJCQkJCQkJCQkJCSAgZC0+cGN4dCk7 CiAJCQlicmVhazsKIAkJY2FzZSBUX0FwcGVuZFN0YXRlOgogCQkJaWYgKHBsYW5zdGF0ZS0+ cGxhbi0+cGFyYWxsZWxfYXdhcmUpCkBAIC0xMTU3LDYgKzExNjMsOSBAQCBFeGVjUGFyYWxs ZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJY2Fz ZSBUX1NlcVNjYW5TdGF0ZToKIAkJCUV4ZWNTZXFTY2FuUmV0cmlldmVJbnN0cnVtZW50YXRp b24oKFNlcVNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9U aWRSYW5nZVNjYW5TdGF0ZToKKwkJCUV4ZWNUaWRSYW5nZVNjYW5SZXRyaWV2ZUluc3RydW1l bnRhdGlvbigoVGlkUmFuZ2VTY2FuU3RhdGUgKikgcGxhbnN0YXRlKTsKKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpAQCAtMTQzMCw2ICsxNDM5LDkgQEAgRXhlY1Bh cmFsbGVsSW5pdGlhbGl6ZVdvcmtlcihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgUGFyYWxsZWxX b3JrZXJDb250ZXh0ICpwd2N4dCkKIAkJCWlmIChwbGFuc3RhdGUtPnBsYW4tPnBhcmFsbGVs X2F3YXJlKQogCQkJCUV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplV29ya2VyKChUaWRSYW5n ZVNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUsCiAJCQkJCQkJCQkJCQkgcHdjeHQpOworCQkJLyog ZXZlbiB3aGVuIG5vdCBwYXJhbGxlbC1hd2FyZSwgZm9yIEVYUExBSU4gQU5BTFlaRSAqLwor CQkJRXhlY1RpZFJhbmdlU2Nhbkluc3RydW1lbnRJbml0V29ya2VyKChUaWRSYW5nZVNjYW5T dGF0ZSAqKSBwbGFuc3RhdGUsCisJCQkJCQkJCQkJCQkgcHdjeHQpOwogCQkJYnJlYWs7CiAJ CWNhc2UgVF9BcHBlbmRTdGF0ZToKIAkJCWlmIChwbGFuc3RhdGUtPnBsYW4tPnBhcmFsbGVs X2F3YXJlKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdl c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCmluZGV4 IDRhOGZlOTFiMmIzLi5iMzg3ZWQ2YzMwOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVUaWRyYW5nZXNjYW4uYwpAQCAtMTgsNyArMTgsOSBAQAogI2luY2x1ZGUgImFjY2Vzcy9z eXNhdHRyLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX29wZXJhdG9yLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKKyNpbmNsdWRlICJleGVjdXRvci9p bnN0cnVtZW50LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5oIgog I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgpA QCAtMjQyLDEyICsyNDQsMTkgQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdlU2NhblN0YXRlICpu b2RlKQogCiAJCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCQl7CisJCQl1aW50MzIJCWZsYWdz ID0gU09fTk9ORTsKKworCQkJaWYgKFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykpCisJ CQkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCisJCQlpZiAoZXN0YXRlLT5l c19pbnN0cnVtZW50ICYgSU5TVFJVTUVOVF9JTykKKwkJCQlmbGFncyB8PSBTT19TQ0FOX0lO U1RSVU1FTlQ7CisKIAkJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuX3RpZHJhbmdlKG5v ZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25h cHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19taW50aWQsCiAJCQkJCQkJCQkJCQkm bm9kZS0+dHJzc19tYXh0aWQsCi0JCQkJCQkJCQkJCQlTY2FuUmVsSXNSZWFkT25seSgmbm9k ZS0+c3MpID8KLQkJCQkJCQkJCQkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUp OworCQkJCQkJCQkJCQkJZmxhZ3MpOwogCQkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNj ID0gc2NhbmRlc2M7CiAJCX0KIAkJZWxzZQpAQCAtMzQyLDYgKzM1MSwyMCBAQCBFeGVjRW5k VGlkUmFuZ2VTY2FuKFRpZFJhbmdlU2NhblN0YXRlICpub2RlKQogewogCVRhYmxlU2NhbkRl c2Mgc2NhbiA9IG5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYzsKIAorCS8qIENvbGxlY3Qg SU8gc3RhdHMgZm9yIHRoaXMgcHJvY2VzcyBpbnRvIHNoYXJlZCBpbnN0cnVtZW50YXRpb24g Ki8KKwlpZiAobm9kZS0+dHJzc19zaW5zdHJ1bWVudCAhPSBOVUxMICYmIElzUGFyYWxsZWxX b3JrZXIoKSkKKwl7CisJCVRpZFJhbmdlU2Nhbkluc3RydW1lbnRhdGlvbiAqc2k7CisKKwkJ QXNzZXJ0KFBhcmFsbGVsV29ya2VyTnVtYmVyIDwgbm9kZS0+dHJzc19zaW5zdHJ1bWVudC0+ bnVtX3dvcmtlcnMpOworCQlzaSA9ICZub2RlLT50cnNzX3NpbnN0cnVtZW50LT5zaW5zdHJ1 bWVudFtQYXJhbGxlbFdvcmtlck51bWJlcl07CisKKwkJaWYgKHNjYW4gJiYgc2Nhbi0+cnNf aW5zdHJ1bWVudCkKKwkJeworCQkJQWNjdW11bGF0ZUlPU3RhdHMoJnNpLT5zdGF0cy5pbywg JnNjYW4tPnJzX2luc3RydW1lbnQtPmlvKTsKKwkJfQorCX0KKwogCWlmIChzY2FuICE9IE5V TEwpCiAJCXRhYmxlX2VuZHNjYW4oc2Nhbik7CiB9CkBAIC00NTQsNiArNDc3LDEzIEBAIEV4 ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplRFNNKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLCBQ YXJhbGxlbENvbnRleHQgKnBjeHQpCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5z cy5wcy5zdGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlm bGFncyA9IFNPX05PTkU7CisKKwlpZiAoU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSkK KwkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCisJaWYgKGVzdGF0ZS0+ZXNf aW5zdHJ1bWVudCAmIElOU1RSVU1FTlRfSU8pCisJCWZsYWdzIHw9IFNPX1NDQU5fSU5TVFJV TUVOVDsKIAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnRy c3NfcHNjYW5sZW4pOwogCXRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKG5vZGUtPnNz LnNzX2N1cnJlbnRSZWxhdGlvbiwKQEAgLTQ2Miw5ICs0OTIsNyBAQCBFeGVjVGlkUmFuZ2VT Y2FuSW5pdGlhbGl6ZURTTShUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxDb250 ZXh0ICpwY3h0KQogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxh bi0+cGxhbl9ub2RlX2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNj ID0KIAkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1 cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkgIHBzY2FuLAotCQkJCQkJCQkJCSAgU2NhblJl bElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/Ci0JCQkJCQkJCQkJICBTT19ISU5UX1JFTF9SRUFE X09OTFkgOiBTT19OT05FKTsKKwkJCQkJCQkJCQkgIHBzY2FuLCBmbGFncyk7CiB9CiAKIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KQEAgLTQ5NCwxMSArNTIyLDEwMCBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5p dGlhbGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIFBhcmFs bGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBz Y2FuOworCXVpbnQzMgkJZmxhZ3MgPSBTT19OT05FOworCisJaWYgKFNjYW5SZWxJc1JlYWRP bmx5KCZub2RlLT5zcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwor CWlmIChub2RlLT5zcy5wcy5zdGF0ZS0+ZXNfaW5zdHJ1bWVudCAmIElOU1RSVU1FTlRfSU8p CisJCWZsYWdzIHw9IFNPX1NDQU5fSU5TVFJVTUVOVDsKIAogCXBzY2FuID0gc2htX3RvY19s b29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxz ZSk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJ CQkJCQkgIHBzY2FuLAotCQkJCQkJCQkJCSAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNz KSA/Ci0JCQkJCQkJCQkJICBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiBTT19OT05FKTsKKwkJ CQkJCQkJCQkgIHBzY2FuLCBmbGFncyk7Cit9CisKKy8qCisgKiBDb21wdXRlIHRoZSBhbW91 bnQgb2Ygc3BhY2Ugd2UnbGwgbmVlZCBmb3IgdGhlIHNoYXJlZCBpbnN0cnVtZW50YXRpb24g YW5kCisgKiBpbmZvcm0gcGN4dC0+ZXN0aW1hdG9yLgorICovCit2b2lkCitFeGVjVGlkUmFu Z2VTY2FuSW5zdHJ1bWVudEVzdGltYXRlKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLAorCQkJ CQkJCQkgICBQYXJhbGxlbENvbnRleHQgKnBjeHQpCit7CisJRVN0YXRlCSAgICplc3RhdGUg PSBub2RlLT5zcy5wcy5zdGF0ZTsKKwlTaXplCQlzaXplOworCisJaWYgKChlc3RhdGUtPmVz X2luc3RydW1lbnQgJiBJTlNUUlVNRU5UX0lPKSA9PSAwIHx8IHBjeHQtPm53b3JrZXJzID09 IDApCisJCXJldHVybjsKKworCXNpemUgPSBhZGRfc2l6ZShvZmZzZXRvZihTaGFyZWRUaWRS YW5nZVNjYW5JbnN0cnVtZW50YXRpb24sIHNpbnN0cnVtZW50KSwKKwkJCQkJbXVsX3NpemUo cGN4dC0+bndvcmtlcnMsIHNpemVvZihUaWRSYW5nZVNjYW5JbnN0cnVtZW50YXRpb24pKSk7 CisKKwlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHNpemUpOwor CXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKK30KKworLyoK KyAqIFNldCB1cCBwYXJhbGxlbCBzY2FuIGluc3RydW1lbnRhdGlvbi4KKyAqLwordm9pZAor RXhlY1RpZFJhbmdlU2Nhbkluc3RydW1lbnRJbml0RFNNKFRpZFJhbmdlU2NhblN0YXRlICpu b2RlLAorCQkJCQkJCQkgIFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKK3sKKwlFU3RhdGUJICAg KmVzdGF0ZSA9IG5vZGUtPnNzLnBzLnN0YXRlOworCVNoYXJlZFRpZFJhbmdlU2Nhbkluc3Ry dW1lbnRhdGlvbiAqc2luc3RydW1lbnQ7CisJU2l6ZQkJc2l6ZTsKKworCWlmICgoZXN0YXRl LT5lc19pbnN0cnVtZW50ICYgSU5TVFJVTUVOVF9JTykgPT0gMCB8fCBwY3h0LT5ud29ya2Vy cyA9PSAwKQorCQlyZXR1cm47CisKKwlzaXplID0gYWRkX3NpemUob2Zmc2V0b2YoU2hhcmVk VGlkUmFuZ2VTY2FuSW5zdHJ1bWVudGF0aW9uLCBzaW5zdHJ1bWVudCksCisJCQkJCW11bF9z aXplKHBjeHQtPm53b3JrZXJzLCBzaXplb2YoVGlkUmFuZ2VTY2FuSW5zdHJ1bWVudGF0aW9u KSkpOworCXNpbnN0cnVtZW50ID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIHNpemUp OworCW1lbXNldChzaW5zdHJ1bWVudCwgMCwgc2l6ZSk7CisJc2luc3RydW1lbnQtPm51bV93 b3JrZXJzID0gcGN4dC0+bndvcmtlcnM7CisJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLAor CQkJCSAgIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCArCisJCQkJICAgUEFSQUxM RUxfS0VZX1NDQU5fSU5TVFJVTUVOVF9PRkZTRVQsCisJCQkJICAgc2luc3RydW1lbnQpOwor CW5vZGUtPnRyc3Nfc2luc3RydW1lbnQgPSBzaW5zdHJ1bWVudDsKK30KKworLyoKKyAqIExv b2sgdXAgYW5kIHNhdmUgdGhlIGxvY2F0aW9uIG9mIHRoZSBzaGFyZWQgaW5zdHJ1bWVudGF0 aW9uLgorICovCit2b2lkCitFeGVjVGlkUmFuZ2VTY2FuSW5zdHJ1bWVudEluaXRXb3JrZXIo VGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUsCisJCQkJCQkJCQkgUGFyYWxsZWxXb3JrZXJDb250 ZXh0ICpwd2N4dCkKK3sKKwlFU3RhdGUJICAgKmVzdGF0ZSA9IG5vZGUtPnNzLnBzLnN0YXRl OworCisJaWYgKChlc3RhdGUtPmVzX2luc3RydW1lbnQgJiBJTlNUUlVNRU5UX0lPKSA9PSAw KQorCQlyZXR1cm47CisKKwlub2RlLT50cnNzX3NpbnN0cnVtZW50ID0gc2htX3RvY19sb29r dXAocHdjeHQtPnRvYywKKwkJCQkJCQkJCQkJbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2Rl X2lkICsKKwkJCQkJCQkJCQkJUEFSQUxMRUxfS0VZX1NDQU5fSU5TVFJVTUVOVF9PRkZTRVQs CisJCQkJCQkJCQkJCWZhbHNlKTsKK30KKworLyoKKyAqIFRyYW5zZmVyIHNjYW4gaW5zdHJ1 bWVudGF0aW9uIGZyb20gRFNNIHRvIHByaXZhdGUgbWVtb3J5LgorICovCit2b2lkCitFeGVj VGlkUmFuZ2VTY2FuUmV0cmlldmVJbnN0cnVtZW50YXRpb24oVGlkUmFuZ2VTY2FuU3RhdGUg Km5vZGUpCit7CisJU2hhcmVkVGlkUmFuZ2VTY2FuSW5zdHJ1bWVudGF0aW9uICpzaW5zdHJ1 bWVudCA9IG5vZGUtPnRyc3Nfc2luc3RydW1lbnQ7CisJU2l6ZQkJc2l6ZTsKKworCWlmIChz aW5zdHJ1bWVudCA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlzaXplID0gb2Zmc2V0b2YoU2hh cmVkVGlkUmFuZ2VTY2FuSW5zdHJ1bWVudGF0aW9uLCBzaW5zdHJ1bWVudCkKKwkJKyBzaW5z dHJ1bWVudC0+bnVtX3dvcmtlcnMgKiBzaXplb2YoVGlkUmFuZ2VTY2FuSW5zdHJ1bWVudGF0 aW9uKTsKKworCW5vZGUtPnRyc3Nfc2luc3RydW1lbnQgPSBwYWxsb2Moc2l6ZSk7CisJbWVt Y3B5KG5vZGUtPnRyc3Nfc2luc3RydW1lbnQsIHNpbnN0cnVtZW50LCBzaXplKTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnRfbm9kZS5oIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudF9ub2RlLmgKaW5kZXggMDAzZGMyNjJiNWQu LjQwNzY5OTA0MDhlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVt ZW50X25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUu aApAQCAtMjg1LDQgKzI4NSwyMiBAQCB0eXBlZGVmIHN0cnVjdCBTaGFyZWRTZXFTY2FuSW5z dHJ1bWVudGF0aW9uCiAJU2VxU2Nhbkluc3RydW1lbnRhdGlvbiBzaW5zdHJ1bWVudFtGTEVY SUJMRV9BUlJBWV9NRU1CRVJdOwogfSBTaGFyZWRTZXFTY2FuSW5zdHJ1bWVudGF0aW9uOwog CisKKy8qCisgKglJbnN0cnVtZW50YXRpb24gaW5mb3JtYXRpb24gZm9yIFRJRCByYW5nZSBz Y2FucworICovCit0eXBlZGVmIHN0cnVjdCBUaWRSYW5nZVNjYW5JbnN0cnVtZW50YXRpb24K K3sKKwlUYWJsZVNjYW5JbnN0cnVtZW50YXRpb24gc3RhdHM7Cit9IFRpZFJhbmdlU2Nhbklu c3RydW1lbnRhdGlvbjsKKworLyoKKyAqIFNoYXJlZCBtZW1vcnkgY29udGFpbmVyIGZvciBw ZXItd29ya2VyIGluZm9ybWF0aW9uCisgKi8KK3R5cGVkZWYgc3RydWN0IFNoYXJlZFRpZFJh bmdlU2Nhbkluc3RydW1lbnRhdGlvbgoreworCWludAkJCW51bV93b3JrZXJzOworCVRpZFJh bmdlU2Nhbkluc3RydW1lbnRhdGlvbiBzaW5zdHJ1bWVudFtGTEVYSUJMRV9BUlJBWV9NRU1C RVJdOworfSBTaGFyZWRUaWRSYW5nZVNjYW5JbnN0cnVtZW50YXRpb247CisKICNlbmRpZgkJ CQkJCQkvKiBJTlNUUlVNRU5UX05PREVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9k ZVRpZHJhbmdlc2Nhbi5oCmluZGV4IDg3NTJkMWVhOGM0Li45ZTdkMGEzNTdiYiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5oCisrKyBiL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uaApAQCAtMjgsNCArMjgsMTMg QEAgZXh0ZXJuIHZvaWQgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlkUmFuZ2VT Y2FuU3RhdGUgKm5vZGUsIFBhcmFsbGVsQ29udGUKIGV4dGVybiB2b2lkIEV4ZWNUaWRSYW5n ZVNjYW5SZUluaXRpYWxpemVEU00oVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUsIFBhcmFsbGVs Q29udGV4dCAqcGN4dCk7CiBleHRlcm4gdm9pZCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6 ZVdvcmtlcihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxXb3JrZXJDb250ZXh0 ICpwd2N4dCk7CiAKKy8qIGluc3RydW1lbnQgc3VwcG9ydCAqLworZXh0ZXJuIHZvaWQgRXhl Y1RpZFJhbmdlU2Nhbkluc3RydW1lbnRFc3RpbWF0ZShUaWRSYW5nZVNjYW5TdGF0ZSAqbm9k ZSwKKwkJCQkJCQkJCQkJICAgUGFyYWxsZWxDb250ZXh0ICpwY3h0KTsKK2V4dGVybiB2b2lk IEV4ZWNUaWRSYW5nZVNjYW5JbnN0cnVtZW50SW5pdERTTShUaWRSYW5nZVNjYW5TdGF0ZSAq bm9kZSwKKwkJCQkJCQkJCQkJICBQYXJhbGxlbENvbnRleHQgKnBjeHQpOworZXh0ZXJuIHZv aWQgRXhlY1RpZFJhbmdlU2Nhbkluc3RydW1lbnRJbml0V29ya2VyKFRpZFJhbmdlU2NhblN0 YXRlICpub2RlLAorCQkJCQkJCQkJCQkJIFBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQp OworZXh0ZXJuIHZvaWQgRXhlY1RpZFJhbmdlU2NhblJldHJpZXZlSW5zdHJ1bWVudGF0aW9u KFRpZFJhbmdlU2NhblN0YXRlICpub2RlKTsKKwogI2VuZGlmCQkJCQkJCS8qIE5PREVUSURS QU5HRVNDQU5fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCA1NmZlYmIzMjA0Yy4u MTMzNTkxODBkMjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xOTIyLDYgKzE5MjIs NyBAQCB0eXBlZGVmIHN0cnVjdCBUaWRSYW5nZVNjYW5TdGF0ZQogCUl0ZW1Qb2ludGVyRGF0 YSB0cnNzX21heHRpZDsKIAlib29sCQl0cnNzX2luU2NhbjsKIAlTaXplCQl0cnNzX3BzY2Fu bGVuOworCXN0cnVjdCBTaGFyZWRUaWRSYW5nZVNjYW5JbnN0cnVtZW50YXRpb24gKnRyc3Nf c2luc3RydW1lbnQ7CiB9IFRpZFJhbmdlU2NhblN0YXRlOwogCiAvKiAtLS0tLS0tLS0tLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGMwNDM2YTEzYWMzLi4wY2Q0 MTEwNjk3NSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI4NjcsNiArMjg2 Nyw3IEBAIFNoYXJlZFJlY29yZFRhYmxlS2V5CiBTaGFyZWRSZWNvcmRUeXBtb2RSZWdpc3Ry eQogU2hhcmVkU2VxU2Nhbkluc3RydW1lbnRhdGlvbgogU2hhcmVkU29ydEluZm8KK1NoYXJl ZFRpZFJhbmdlU2Nhbkluc3RydW1lbnRhdGlvbgogU2hhcmVkVHVwbGVzdG9yZQogU2hhcmVk VHVwbGVzdG9yZUFjY2Vzc29yCiBTaGFyZWRUdXBsZXN0b3JlQ2h1bmsKQEAgLTMxNzEsNiAr MzE3Miw3IEBAIFRpZE9wRXhwcgogVGlkUGF0aAogVGlkUmFuZ2VQYXRoCiBUaWRSYW5nZVNj YW4KK1RpZFJhbmdlU2Nhbkluc3RydW1lbnRhdGlvbgogVGlkUmFuZ2VTY2FuU3RhdGUKIFRp ZFNjYW4KIFRpZFNjYW5TdGF0ZQotLSAKMi41My4wCgo= --------------gEzlAgH0MfmkTWAZBB6VCeL9--