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.94.2) (envelope-from ) id 1uV5tV-00DKHK-Sq for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Jun 2025 10:01:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uV5tS-000nZ5-0Z for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Jun 2025 10:01:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uV5tR-000nYx-EY for pgsql-hackers@lists.postgresql.org; Fri, 27 Jun 2025 10:01:14 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uV5tL-004Nod-29 for pgsql-hackers@postgresql.org; Fri, 27 Jun 2025 10:01:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1751018466; bh=oVtvXo/HmSl53oQyAN8h56gztWfAfTfIFBCRnZoG2sw=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=xGKSgnmu7TqgAnyY2+Zq/gSuiVEt6L1DArwzE132GfTjVUua9160s+1ngJGGNDD9y K1pNhWTLS5XpdtrSDJFVDBAnYqJEy4Y1VftlKMT3VOjaTXUDxgn6+WKrQ92lcDT/+I JeGZUZRaz+sznxI9Y2e71Jd9o4r9rPd4p6igNrbLaV7nZSLa6a1HJ0O30jIHusARvP mWP9G7IqyLeKOiRegurhMnyffhzS4YLJm12dat5ojIo9Mv5CS+Ny4qTGRSyk+4lvB5 rwMRYM1CsE6YGGZu0gLLL0AH7PTfMzGVjtB/T35OYCgRtsEtrKuZufSaBp47JGbiXF ipFM9/HOpBPyA== Received: from [192.168.15.199] (unknown [80.251.191.198]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.lepikhov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 97F8B5FD2A; Fri, 27 Jun 2025 13:01:05 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------dcIs0vJwQBenKpXyRmzGGv73" Message-ID: <695ac356-87e6-45b3-a487-1e07b526ed52@postgrespro.ru> Date: Fri, 27 Jun 2025 12:01:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Memory consumed by paths during partitionwise join planning To: Ashutosh Bapat , David Rowley Cc: pgsql-hackers References: Content-Language: en-US From: Andrei Lepikhov Organization: Postgres Professional In-Reply-To: X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/06/27 08:36:00 #27595657 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 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. --------------dcIs0vJwQBenKpXyRmzGGv73 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 6/2/2024 13:51, Ashutosh Bapat wrote: > On Fri, Dec 15, 2023 at 5:22 AM Ashutosh Bapat > wrote: > First patch is no longer required. Here's rebased set > > The patches are raw. make check has some crashes that I need to fix. I > am waiting to hear whether this is useful and whether the design is on > the right track. I think this project is quite important to move forward and discover how far we can go this way. In the attachment, the rebased patch set with fixes allows it to pass the regression tests. This idea of a refcounter resolves the problem with blind usage of add_path. It is not only about extensions, which sometimes want to add paths on different levels of the join tree and don't care about dangling pointers. It is also about possible hidden bugs (a freed path staying in the path list, just not employed) that aren't yet detected due to costings and low test coverage. -- regards, Andrei Lepikhov Postgres Professional --------------dcIs0vJwQBenKpXyRmzGGv73 Content-Type: text/plain; charset=UTF-8; name="0001-Basic-infrastructure-to-link-unlink-and-free-pathnod-20250627.patch" Content-Disposition: attachment; filename*0="0001-Basic-infrastructure-to-link-unlink-and-free-pathnod-20"; filename*1="250627.patch" Content-Transfer-Encoding: base64 RnJvbSAxYjJhNDJkYTk4NWZiZDAyODc0NzJiYTNiMzQ4NTI4ZDg5MzFiYTlkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBn bWFpbC5jb20+CkRhdGU6IFRodSwgMjYgSnVuIDIwMjUgMTU6MTE6MDMgKzAyMDAKU3ViamVj dDogW1BBVENIIDEvM10gQmFzaWMgaW5mcmFzdHJ1Y3R1cmUgdG8gbGluaywgdW5saW5rLCBh bmQgZnJlZSBwYXRobm9kZXMuCgphZGRfcGF0aCBhbmQgYWRkX3BhcnRpYWxfcGF0aCBmcmVl IHBhdGggbm9kZXMgdGhhdCB0aGV5IGRlZW0gc3Vib3B0aW1hbC4KQnV0IHRoZXkganVzdCBm cmVlIHRoZSB1cHBlcm1vc3QgcGF0aG5vZGUgaW4gdGhlIHBhdGguIFRoZSBzdWJwYXRocyBj b250aW51ZQp0byBvY2N1cHkgbWVtb3J5IGV2ZW4gaWYgdGhleSBhcmUgbm90IHVzZWQgYW55 d2hlcmUuIFRoZSBzdWJwYXRoIG5vZGVzIGFyZQpub3QgZnJlZWQgYmVjYXVzZSBvdGhlciBw YXRocyBtYXkgcmVmZXJlbmNlIHRoZW0uIFRoaXMgY29tbWl0IGludHJvZHVjZXMKdGhlIGlu ZnJhc3RydWN0dXJlIHRvIHRyYWNrIHJlZmVyZW5jZXMgdG8gcGF0aHMuCgpBcyB0aGUgcGF0 aCBub2RlcyBhcmUgcmVmZXJlbmNlZCwgdGhleSBhcmUgImxpbmtlZCIgdXNpbmcgbGlua19w YXRoKCkgdG8KcmVmZXJlbmNlIG9iamVjdHMuIFdoZW4gdGhlIHBhdGggbm9kZXMgYXJlIG5v IGxvbmdlciBoZWxwZnVsLCB0aGV5IGFyZQoidW5saW5rZWQiIHVzaW5nIHVubGlua19wYXRo KCkgZnJvbSB0aGUgcmVmZXJlbmNpbmcgb2JqZWN0cy4gVGhlIHBhdGhzIHdob3NlCnJlZmVy ZW5jZXMgcmVhY2ggemVybyBkdXJpbmcgdW5saW5raW5nIGFyZSBmcmVlZCBhdXRvbWF0aWNh bGx5IHVzaW5nCnRoZSBmcmVlX3BhdGgoKSBmdW5jdGlvbi4gVGhlIGZ1bmN0aW9uIHVubGlu a3MgdGhlIHN1Yi1wYXRoIG5vZGVzIGFuZCBjYW4gYmUKY2FsbGVkIHdoZW4gZnJlZWluZyBh bnkgcGF0aCBub2RlLgoKV2hlbiB0aGUgZmluYWwgcGF0aCBmb3IgdGhlIGpvaW4gdHJlZSBp cyBjaG9zZW4sIHRoZSBwYXRocyBsaW5rZWQgdG8gZWFjaApwYXJ0aWNpcGF0aW5nIHJlbGF0 aW9uIGFyZSB1bmxpbmtlZCwgdGh1cyB1bHRpbWF0ZWx5IGdldHRpbmcgZnJlZWQgaWYgbm90 IHVzZWQuCgpUT0RPClRoZSBmdW5jdGlvbnMgZnJlZV9wYXRoKCksIHVubGlua19wYXRoKCkg YW5kIGxpbmtfcGF0aCgpIGhhdmUgZXJlcG9ydHMKdG8gY2F0Y2ggY29kZSBwYXRocyB0aGF0 IGRvIG5vdCB1c2UgdGhlc2UgZnVuY3Rpb25zIGNvcnJlY3RseS4gVGhleSBjYWxsCmVycmJh Y2t0cmFjZSgpLCB3aGljaCBpcyBub3QgdXNlZCBhbnl3aGVyZSBlbHNlLiBUaGVzZSBlcmVw b3J0IGNhbGxzIHdpbGwKbmVlZCB0byBiZSBmaXhlZCBmb3IgcHJvZHVjdGl6YXRpb24uCi0t LQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyB8ICA4MyArKysrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgfCAxNDIg KysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgg ICAgICB8ICAzOCArKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI2NCBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKaW5kZXggNmNjNjk2NmIw NjAuLmE1ZDQ4Mzk3YWMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0 aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhz LmMKQEAgLTM0MTgsNiArMzQxOCw4NyBAQCBtYWtlX3JlbF9mcm9tX2pvaW5saXN0KFBsYW5u ZXJJbmZvICpyb290LCBMaXN0ICpqb2lubGlzdCkKIAl9CiB9CiAKKy8qCisgKiBUT0RPOiBO ZWVkIHNpbWlsYXIgY29kZSB0byBmcmVlIHBhdGhzIGluIHVwcGVyIHJlbGF0aW9ucy4KKyAq Lworc3RhdGljIHZvaWQKK2ZyZWVfdW51c2VkX3BhdGhzX2Zyb21fcmVsKFJlbE9wdEluZm8g KnJlbCkKK3sKKwlMaXN0Q2VsbCAgICpsY19wYXRoOworCWludAkJCWNudF9wYXJ0OworCisJ Zm9yZWFjaChsY19wYXRoLCByZWwtPnBhdGhsaXN0KQorCXsKKwkJUGF0aAkgICAqcGF0aCA9 IChQYXRoICopIGxmaXJzdChsY19wYXRoKTsKKworCQkvKiBGcmVlIHRoZSBwYXRoIGlmIG5v bmUgcmVmZXJlbmNlcyBpdC4gKi8KKwkJaWYgKHBhdGgtPnJlZl9jb3VudCA9PSAxKQorCQl7 CisJCQkvKiBUT0RPOiB1c2Ugcm91dGluZSB0byB1bmxpbmsgcGF0aCBmcm9tIGxpc3QgKi8K KwkJCXJlbC0+cGF0aGxpc3QgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KHJlbC0+cGF0aGxp c3QsIGxjX3BhdGgpOworCQkJdW5saW5rX3BhdGgoJnBhdGgpOworCQl9CisJfQorCisJLyog RG8gdGhlIHNhbWUgZm9yIHBhcnRpYWwgcGF0aGxpc3QuICovCisJZm9yZWFjaChsY19wYXRo LCByZWwtPnBhcnRpYWxfcGF0aGxpc3QpCisJeworCQlQYXRoCSAgICpwYXRoID0gKFBhdGgg KikgbGZpcnN0KGxjX3BhdGgpOworCisJCS8qIEZyZWUgdGhlIHBhdGggaWYgbm9uZSByZWZl cmVuY2VzIGl0LiAqLworCQlpZiAocGF0aC0+cmVmX2NvdW50ID09IDEpCisJCXsKKwkJCXJl bC0+cGFydGlhbF9wYXRobGlzdCA9IGZvcmVhY2hfZGVsZXRlX2N1cnJlbnQocmVsLT5wYXJ0 aWFsX3BhdGhsaXN0LCBsY19wYXRoKTsKKwkJCXVubGlua19wYXRoKCZwYXRoKTsKKwkJfQor CX0KKworCS8qCisJICogVE9ETzogV2UgY2FuIHBlcmZvcm0gdGhpcyBpbiBnZW5lcmF0ZV9w YXJ0aXRpb253aXNlX3BhdGhzIGFzIHdlbGwgc2luY2UKKwkgKiBieSB0aGF0IHRpbWUgYWxs IHRoZSBwYXRocyBmcm9tIHBhcnRpdGlvbnMgd2lsbCBiZSBsaW5rZWQgaWYgdXNlZC4KKwkg Ki8KKworCS8qIEZyZWUgdW51c2VkIHBhdGhzIGZyb20gdGhlIHBhcnRpdGlvbiByZWxhdGlv bnMgKi8KKwlmb3IgKGNudF9wYXJ0ID0gMDsgY250X3BhcnQgPCByZWwtPm5wYXJ0czsgY250 X3BhcnQrKykKKwl7CisJCVJlbE9wdEluZm8gKmNoaWxkX3JlbCA9IHJlbC0+cGFydF9yZWxz W2NudF9wYXJ0XTsKKworCQlpZiAoY2hpbGRfcmVsID09IE5VTEwgfHwgSVNfRFVNTVlfUkVM KGNoaWxkX3JlbCkpCisJCQkvKiBTa2lwIGVtcHR5IGVudHJpZXMgKi8KKwkJCWNvbnRpbnVl OworCisJCWZyZWVfdW51c2VkX3BhdGhzX2Zyb21fcmVsKGNoaWxkX3JlbCk7CisJfQorfQor CisvKgorICogRnJlZSB1bnVzZWQgcGF0aHMgZnJvbSBhbGwgdGhlIHJlbGF0aW9ucyBjcmVh dGVkIHdoaWxlIGJ1aWxkaW5nIHRoZSBqb2luIHRyZWUuCisgKi8KK3N0YXRpYyB2b2lkCitm cmVlX3VudXNlZF9wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgaW50IGxldmVsc19uZWVkZWQp Cit7CisJaW50CQkJY250OworCisJZm9yIChjbnQgPSBsZXZlbHNfbmVlZGVkIC0gMTsgY250 ID49IDE7IGNudC0tKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisKKwkJZm9yZWFjaChsYywg cm9vdC0+am9pbl9yZWxfbGV2ZWxbY250XSkKKwkJeworCQkJZnJlZV91bnVzZWRfcGF0aHNf ZnJvbV9yZWwobGZpcnN0KGxjKSk7CisJCX0KKwl9CisKKwlmb3IgKGNudCA9IDA7IGNudCA8 IHJvb3QtPnNpbXBsZV9yZWxfYXJyYXlfc2l6ZTsgY250KyspCisJeworCQlSZWxPcHRJbmZv ICpyZWwgPSByb290LT5zaW1wbGVfcmVsX2FycmF5W2NudF07CisKKwkJLyogU2tpcCBlbXB0 eSBzbG90cyAqLworCQlpZiAocmVsICE9IE5VTEwpCisJCQlmcmVlX3VudXNlZF9wYXRoc19m cm9tX3JlbChyZWwpOworCX0KK30KKwogLyoKICAqIHN0YW5kYXJkX2pvaW5fc2VhcmNoCiAg KgkgIEZpbmQgcG9zc2libGUgam9pbnBhdGhzIGZvciBhIHF1ZXJ5IGJ5IHN1Y2Nlc3NpdmVs eSBmaW5kaW5nIHdheXMKQEAgLTM1MjAsNiArMzYwMSw4IEBAIHN0YW5kYXJkX2pvaW5fc2Vh cmNoKFBsYW5uZXJJbmZvICpyb290LCBpbnQgbGV2ZWxzX25lZWRlZCwgTGlzdCAqaW5pdGlh bF9yZWxzKQogCQl9CiAJfQogCisJZnJlZV91bnVzZWRfcGF0aHMocm9vdCwgbGV2ZWxzX25l ZWRlZCk7CisKIAkvKgogCSAqIFdlIHNob3VsZCBoYXZlIGEgc2luZ2xlIHJlbCBhdCB0aGUg ZmluYWwgbGV2ZWwuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9wYXRobm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUu YwppbmRleCBlMDE5MmQ0YTQ5MS4uZmExM2E4ZjhmZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3V0aWwvcGF0aG5vZGUuYwpAQCAtOTY5LDYgKzk2OSwxNDggQEAgYWRkX3BhcnRpYWxf cGF0aF9wcmVjaGVjayhSZWxPcHRJbmZvICpwYXJlbnRfcmVsLCBpbnQgZGlzYWJsZWRfbm9k ZXMsCiAJcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQKK2ZyZWVfcGF0aChQYXRoICpwYXRoKQor eworCS8qCisJICogSWYgdGhlIHBhdGggaXMgc3RpbGwgcmVmZXJlbmNlZCwgZnJlZWluZyBp dCB3b3VsZCBjcmVhdGUgYSBkYW5nbGluZworCSAqIHBvaW50ZXIuCisJICovCisJLyogVE9E TzogaXQgY291bGQganVzdCBiZSBhbiBBc3NlcnQ/ICovCisJaWYgKHBhdGgtPnJlZl9jb3Vu dCAhPSAwKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVf SU5URVJOQUxfRVJST1IpLAorCQkJCSBlcnJiYWNrdHJhY2UoKSwKKwkJCQkgZXJybXNnKCJw YXRoIG5vZGUgJXAgb2YgdHlwZSAlZCBoYXMgcmVmZXJlbmNlIGNvdW50ICVkLCBjYW4gbm90 IGJlIGZyZWVkIiwKKwkJCQkJCXBhdGgsIHBhdGgtPnBhdGh0eXBlLCBwYXRoLT5yZWZfY291 bnQpKSk7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIEEgcGF0aCByZWZlcmVuY2VkIGlu IHRoZSBwYXJlbnQgcmVsYXRpb24ncyBwYXRobGlzdCBjYW4ndCBiZSBmcmVlZC4KKwkgKiBJ ZGVhbGx5IHN1Y2ggYSBwYXRoIHNob3VsZCBoYXZlIHJlZl9jb3VudCA+PSAxLiBJZiB0aGlz IGhhcHBlbnMgaXQKKwkgKiBpbmRpY2F0ZXMgdGhhdCB0aGUgcGF0aCB3YXMgbm90IGxpbmtl ZCBzb21ld2hlcmUsIGFuZCB5ZXQgdW5saW5rZWQKKwkgKiAodXN1YWxseSBieSBmcmVlX3Bh dGgoKSkuCisJICovCisJaWYgKGxpc3RfbWVtYmVyX3B0cihwYXRoLT5wYXJlbnQtPnBhdGhs aXN0LCBwYXRoKSkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJD T0RFX0lOVEVSTkFMX0VSUk9SKSwKKwkJCQkgZXJyYmFja3RyYWNlKCksCisJCQkJIGVycm1z ZygicGF0aCBub2RlICVwIG9mIHR5cGUgJWQgaGFzIHJlZmVyZW5jZSBjb3VudCAlZCBidXQg aXMgbGlua2VkIGluIHBhcmVudCdzIHBhdGhsaXN0LCBjYW4gbm90IGJlIGZyZWVkIiwKKwkJ CQkJCXBhdGgsIHBhdGgtPnBhdGh0eXBlLCBwYXRoLT5yZWZfY291bnQpKSk7CisJCXJldHVy bjsKKwl9CisKKwkvKiBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudHMgb2YgcGF0aHMg cmVmZXJlbmNlZCBieSB0aGlzIG9uZS4gKi8KKwlzd2l0Y2ggKHBhdGgtPnBhdGh0eXBlKQor CXsKKwkJY2FzZSBUX1NlcVNjYW46CisJCWNhc2UgVF9JbmRleFNjYW46CisJCWNhc2UgVF9J bmRleE9ubHlTY2FuOgorCQkJLyogU2ltcGxlIHBhdGhzIHJlZmVyZW5jZSBubyBvdGhlciBw YXRoLiAqLworCQkJYnJlYWs7CisKKwkJY2FzZSBUX01lcmdlSm9pbjoKKwkJY2FzZSBUX0hh c2hKb2luOgorCQljYXNlIFRfTmVzdExvb3A6CisJCQl7CisJCQkJSm9pblBhdGggICAqanBh dGggPSAoSm9pblBhdGggKikgcGF0aDsKKworCQkJCXVubGlua19wYXRoKCYoanBhdGgtPm91 dGVyam9pbnBhdGgpKTsKKwkJCQl1bmxpbmtfcGF0aCgmKGpwYXRoLT5pbm5lcmpvaW5wYXRo KSk7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFRfQXBwZW5kOgorCQljYXNlIFRfTWVy Z2VBcHBlbmQ6CisJCQl7CisJCQkJQXBwZW5kUGF0aCAqYXBwYXRoID0gKEFwcGVuZFBhdGgg KikgcGF0aDsKKwkJCQlMaXN0Q2VsbCAgICpsYzsKKworCQkJCWZvcmVhY2gobGMsIGFwcGF0 aC0+c3VicGF0aHMpCisJCQkJeworCQkJCQlQYXRoCSAgICpzdWJwYXRoID0gbGZpcnN0KGxj KTsKKworCQkJCQkvKiBUT0RPIHVzZSBhIHJvdXRpbmUgdG8gdW5saW5rIHBhdGggZnJvbSBs aXN0LiAqLworCQkJCQlhcHBhdGgtPnN1YnBhdGhzID0gZm9yZWFjaF9kZWxldGVfY3VycmVu dChhcHBhdGgtPnN1YnBhdGhzLCBsYyk7CisJCQkJCXVubGlua19wYXRoKCZzdWJwYXRoKTsK KwkJCQl9CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFRfR2F0aGVyOgorCQkJeworCQkJ CUdhdGhlclBhdGggKmdwYXRoID0gKEdhdGhlclBhdGggKikgcGF0aDsKKworCQkJCXVubGlu a19wYXRoKCYoZ3BhdGgtPnN1YnBhdGgpKTsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2Ug VF9HYXRoZXJNZXJnZToKKwkJCXsKKwkJCQlHYXRoZXJNZXJnZVBhdGggKmdtcGF0aCA9IChH YXRoZXJNZXJnZVBhdGggKikgcGF0aDsKKworCQkJCXVubGlua19wYXRoKCZnbXBhdGgtPnN1 YnBhdGgpOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBUX0JpdG1hcEhlYXBTY2FuOgor CQkJeworCQkJCUJpdG1hcEhlYXBQYXRoICpiaHBhdGggPSAoQml0bWFwSGVhcFBhdGggKikg cGF0aDsKKworCQkJCXVubGlua19wYXRoKCYoYmhwYXRoLT5iaXRtYXBxdWFsKSk7CisJCQl9 CisJCQlicmVhazsKKworCQljYXNlIFRfTWF0ZXJpYWw6CisJCQl7CisJCQkJTWF0ZXJpYWxQ YXRoICptcGF0aCA9IChNYXRlcmlhbFBhdGggKikgcGF0aDsKKworCQkJCXVubGlua19wYXRo KCYobXBhdGgtPnN1YnBhdGgpKTsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgVF9NZW1v aXplOgorCQkJeworCQkJCU1lbW9pemVQYXRoICptcGF0aCA9IChNZW1vaXplUGF0aCAqKSBw YXRoOworCisJCQkJdW5saW5rX3BhdGgoJm1wYXRoLT5zdWJwYXRoKTsKKwkJCX0KKwkJCWJy ZWFrOworCisJCWNhc2UgVF9SZXN1bHQ6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBBbGwgUmVz dWx0IHBhdGhzIGV4Y2VwdCBQcm9qZWN0aW9uUGF0aCBhcmUgc2ltcGxlIHBhdGhzCisJCQkJ ICogd2l0aG91dCBhbnkgc3VicGF0aC4KKwkJCQkgKi8KKwkJCQlpZiAoSXNBKHBhdGgsIFBy b2plY3Rpb25QYXRoKSkKKwkJCQl7CisJCQkJCVByb2plY3Rpb25QYXRoICpwcGF0aCA9IChQ cm9qZWN0aW9uUGF0aCAqKSBwYXRoOworCisJCQkJCXVubGlua19wYXRoKCZwcGF0aC0+c3Vi cGF0aCk7CisJCQkJfQorCQkJfQorCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCWVyZXBv cnQoV0FSTklORywKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlRFUk5BTF9FUlJPUiksCisJ CQkJCSBlcnJiYWNrdHJhY2UoKSwKKwkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIHBhdGgg dHlwZSAlZCIsIHBhdGgtPnBhdGh0eXBlKSkpOworCQkJYnJlYWs7CisJfQorCisJLyoKKwkg KiBUT0RPOiBhZGRfcGF0aCBkb2VzIG5vdCBmcmVlIEluZGV4UGF0aHMsIGJ1dCB3ZSBkbyB0 aGF0IGhlcmUuIElzIHRoZXJlCisJICogYSBoYXphcmQ/CisJICovCisKKwkvKiBOb3cgcmVj bGFpbSB0aGUgbWVtb3J5LiAqLworCXBmcmVlKHBhdGgpOworfQogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICAqCQlQQVRIIE5PREUgQ1JFQVRJT04gUk9VVElORVMKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGF0aG5vZGVzLmgKaW5kZXggNjU2Nzc1OTU5NWQuLmM4ODMyM2E5MTViIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaApAQCAtMTc5Nyw2ICsxNzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGF0 aAogCiAJLyogc29ydCBvcmRlcmluZyBvZiBwYXRoJ3Mgb3V0cHV0OyBhIExpc3Qgb2YgUGF0 aEtleSBub2Rlczsgc2VlIGFib3ZlICovCiAJTGlzdAkgICAqcGF0aGtleXM7CisJaW50CQkJ cmVmX2NvdW50OwogfSBQYXRoOwogCiAvKiBNYWNybyBmb3IgZXh0cmFjdGluZyBhIHBhdGgn cyBwYXJhbWV0ZXJpemF0aW9uIHJlbGlkczsgYmV3YXJlIGRvdWJsZSBldmFsICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9wYXRobm9kZS5oCmluZGV4IDYwZGNkYjc3ZTQxLi4yMmVlMWMyMjYxYiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2lu Y2x1ZGUgIm5vZGVzL2JpdG1hcHNldC5oIgogI2luY2x1ZGUgIm5vZGVzL3BhdGhub2Rlcy5o IgorI2luY2x1ZGUgImxpbWl0cy5oIgogCiAKIC8qCkBAIC0zMDYsNiArMzA3LDQzIEBAIGV4 dGVybiBQYXRoICpyZXBhcmFtZXRlcml6ZV9wYXRoX2J5X2NoaWxkKFBsYW5uZXJJbmZvICpy b290LCBQYXRoICpwYXRoLAogCQkJCQkJCQkJCSAgUmVsT3B0SW5mbyAqY2hpbGRfcmVsKTsK IGV4dGVybiBib29sIHBhdGhfaXNfcmVwYXJhbWV0ZXJpemFibGVfYnlfY2hpbGQoUGF0aCAq cGF0aCwKIAkJCQkJCQkJCQkJICAgUmVsT3B0SW5mbyAqY2hpbGRfcmVsKTsKK2V4dGVybiB2 b2lkIGZyZWVfcGF0aChQYXRoICpwYXRoKTsKKworc3RhdGljIGlubGluZSB2b2lkCitsaW5r X3BhdGgoUGF0aCAqKnBhdGhfbGluaywgUGF0aCAqcGF0aCkKK3sKKwlpZiAocGF0aC0+cmVm X2NvdW50IDwgMCkKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVf SU5URVJOQUxfRVJST1IpLAorCQkJCSBlcnJiYWNrdHJhY2UoKSwKKwkJCQkgZXJybXNnKCJw YXRoIG5vZGUgJXAgb2YgdHlwZSAlZCBoYXMgbmVnYXRpdmUgcmVmZXJlbmNlIGNvdW50ICVk IiwKKwkJCQkJCXBhdGgsIHBhdGgtPnBhdGh0eXBlLCBwYXRoLT5yZWZfY291bnQpKSk7CisK KwlwYXRoLT5yZWZfY291bnQrKzsKKwkqcGF0aF9saW5rID0gcGF0aDsKKwlBc3NlcnQocGF0 aC0+cmVmX2NvdW50ID4gMCAmJiBwYXRoLT5yZWZfY291bnQgPD0gSU5UX01BWCk7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZAordW5saW5rX3BhdGgoUGF0aCAqKnBhdGhfbGluaykKK3sK KwlQYXRoCSAgICpwYXRoID0gKnBhdGhfbGluazsKKworCS8qIEEgcGF0aCB0byBiZSB1bmxp bmtlZCBzaG91bGQgaGF2ZSBiZWVuIGxpbmtlZCBiZWZvcmUuICovCisJaWYgKHBhdGgtPnJl Zl9jb3VudCA8IDApCisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RF X0lOVEVSTkFMX0VSUk9SKSwKKwkJCQkgZXJyYmFja3RyYWNlKCksCisJCQkJIGVycm1zZygi cGF0aCBub2RlICVwIG9mIHR5cGUgJWQgaGFkIG5lZ2F0aXZlIHJlZmVyZW5jZSBjb3VudCAl ZCIsCisJCQkJCQlwYXRoLCBwYXRoLT5wYXRodHlwZSwgcGF0aC0+cmVmX2NvdW50KSkpOwor CisJcGF0aC0+cmVmX2NvdW50LS07CisJKnBhdGhfbGluayA9IE5VTEw7CisKKwkvKiBGcmVl IHBhdGggaWYgbm9uZSBpcyByZWZlcmVuY2luZyBpdC4gKi8KKwlpZiAocGF0aC0+cmVmX2Nv dW50ID09IDApCisJCWZyZWVfcGF0aChwYXRoKTsKK30KIAogLyoKICAqIHByb3RvdHlwZXMg Zm9yIHJlbG5vZGUuYwotLSAKMi41MC4wCgo= --------------dcIs0vJwQBenKpXyRmzGGv73 Content-Type: text/plain; charset=UTF-8; name="0002-Actual-code-to-use-pathnode-referencing-infrastructu-20250627.patch" Content-Disposition: attachment; filename*0="0002-Actual-code-to-use-pathnode-referencing-infrastructu-20"; filename*1="250627.patch" Content-Transfer-Encoding: base64 RnJvbSBhMzc2MTQ1ZjM3NzBiMGZjMmVhOWI4MjhlMDc0ZGM1MjJjMWFiYWY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBn bWFpbC5jb20+CkRhdGU6IEZyaSwgMjcgSnVuIDIwMjUgMTE6NDI6MDYgKzAyMDAKU3ViamVj dDogW1BBVENIIDIvM10gQWN0dWFsIGNvZGUgdG8gdXNlIHBhdGhub2RlIHJlZmVyZW5jaW5n IGluZnJhc3RydWN0dXJlCgpUaGUgY29tbWl0IHVzZXMgdGhlIGluZnJhc3RydWN0dXJlIGJ1 aWx0IGJ5IHRoZSBwcmV2aW91cyBjb21taXQgdG8gcmVmZXJlbmNlcywKdW5yZWZlcmVuY2Ug YW5kIGZyZWUgcGF0aHMuCgpUaGUgY29kZSBpcyBub3QgY29tcGxldGVseSBtYXR1cmUuIFRo ZXJlIGFyZSBUT0RPcy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRo cy5jIHwgICA4ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jIHwg MjEyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIv cGF0aG5vZGUuaCAgICAgIHwgICA4ICstCiAzIGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNlcnRp b25zKCspLCA4MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGF0aC9hbGxwYXRocy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxs cGF0aHMuYwppbmRleCBhNWQ0ODM5N2FjMy4uMzNiMTJlZDUwZjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpAQCAtMzQzMiwxMSArMzQzMiwxMSBAQCBmcmVl X3VudXNlZF9wYXRoc19mcm9tX3JlbChSZWxPcHRJbmZvICpyZWwpCiAJCVBhdGgJICAgKnBh dGggPSAoUGF0aCAqKSBsZmlyc3QobGNfcGF0aCk7CiAKIAkJLyogRnJlZSB0aGUgcGF0aCBp ZiBub25lIHJlZmVyZW5jZXMgaXQuICovCi0JCWlmIChwYXRoLT5yZWZfY291bnQgPT0gMSkK KwkJaWYgKHBhdGgtPnJlZl9jb3VudCA9PSAwKQogCQl7CiAJCQkvKiBUT0RPOiB1c2Ugcm91 dGluZSB0byB1bmxpbmsgcGF0aCBmcm9tIGxpc3QgKi8KIAkJCXJlbC0+cGF0aGxpc3QgPSBm b3JlYWNoX2RlbGV0ZV9jdXJyZW50KHJlbC0+cGF0aGxpc3QsIGxjX3BhdGgpOwotCQkJdW5s aW5rX3BhdGgoJnBhdGgpOworCQkJdW5saW5rX3BhdGgoJnBhdGgsIDAsIHRydWUsIHRydWUp OwogCQl9CiAJfQogCkBAIC0zNDQ2LDEwICszNDQ2LDEwIEBAIGZyZWVfdW51c2VkX3BhdGhz X2Zyb21fcmVsKFJlbE9wdEluZm8gKnJlbCkKIAkJUGF0aAkgICAqcGF0aCA9IChQYXRoICop IGxmaXJzdChsY19wYXRoKTsKIAogCQkvKiBGcmVlIHRoZSBwYXRoIGlmIG5vbmUgcmVmZXJl bmNlcyBpdC4gKi8KLQkJaWYgKHBhdGgtPnJlZl9jb3VudCA9PSAxKQorCQlpZiAocGF0aC0+ cmVmX2NvdW50ID09IDApCiAJCXsKIAkJCXJlbC0+cGFydGlhbF9wYXRobGlzdCA9IGZvcmVh Y2hfZGVsZXRlX2N1cnJlbnQocmVsLT5wYXJ0aWFsX3BhdGhsaXN0LCBsY19wYXRoKTsKLQkJ CXVubGlua19wYXRoKCZwYXRoKTsKKwkJCXVubGlua19wYXRoKCZwYXRoLCAwLCB0cnVlLCB0 cnVlKTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvcGF0aG5vZGUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMK aW5kZXggZmExM2E4ZjhmZjEuLjBkODIwMTQzYmEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL3BhdGhub2RlLmMKQEAgLTYyNywxMCArNjI3LDEwIEBAIGFkZF9wYXRoKFJlbE9w dEluZm8gKnBhcmVudF9yZWwsIFBhdGggKm5ld19wYXRoKQogCQkJCQkJCQkJCQkJCQkgIHAx KTsKIAogCQkJLyoKLQkJCSAqIERlbGV0ZSB0aGUgZGF0YSBwb2ludGVkLXRvIGJ5IHRoZSBk ZWxldGVkIGNlbGwsIGlmIHBvc3NpYmxlCisJCQkgKiBUT0RPOiB3cml0ZSBhIHJvdXRpbmUg dG8gdW5saW5rIGEgcGF0aCBmcm9tIHRoZSBsaXN0IG5vZGUgYW5kCisJCQkgKiBkZWxldGUg dGhlIGxpc3Qgbm9kZQogCQkJICovCi0JCQlpZiAoIUlzQShvbGRfcGF0aCwgSW5kZXhQYXRo KSkKLQkJCQlwZnJlZShvbGRfcGF0aCk7CisJCQl1bmxpbmtfcGF0aCgmb2xkX3BhdGgsIDAs IGZhbHNlLCBmYWxzZSk7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC02NTgsMTIgKzY1OCwxNCBA QCBhZGRfcGF0aChSZWxPcHRJbmZvICpwYXJlbnRfcmVsLCBQYXRoICpuZXdfcGF0aCkKIAkJ LyogQWNjZXB0IHRoZSBuZXcgcGF0aDogaW5zZXJ0IGl0IGF0IHByb3BlciBwbGFjZSBpbiBw YXRobGlzdCAqLwogCQlwYXJlbnRfcmVsLT5wYXRobGlzdCA9CiAJCQlsaXN0X2luc2VydF9u dGgocGFyZW50X3JlbC0+cGF0aGxpc3QsIGluc2VydF9hdCwgbmV3X3BhdGgpOworCQluZXdf cGF0aC0+cmVmX2NvdW50Kys7CisJCS8qIFRPRE86IHdyaXRlIGEgZnVuY3Rpb24gdG8gbGlu a19wYXRoIGluIGEgTGlzdCAqLwogCX0KIAllbHNlCiAJewogCQkvKiBSZWplY3QgYW5kIHJl Y3ljbGUgdGhlIG5ldyBwYXRoICovCiAJCWlmICghSXNBKG5ld19wYXRoLCBJbmRleFBhdGgp KQotCQkJcGZyZWUobmV3X3BhdGgpOworCQkJZnJlZV9wYXRoKG5ld19wYXRoLCAwLCBmYWxz ZSk7CiAJfQogfQogCkBAIC04NzYsNyArODc4LDggQEAgYWRkX3BhcnRpYWxfcGF0aChSZWxP cHRJbmZvICpwYXJlbnRfcmVsLCBQYXRoICpuZXdfcGF0aCkKIAkJewogCQkJcGFyZW50X3Jl bC0+cGFydGlhbF9wYXRobGlzdCA9CiAJCQkJZm9yZWFjaF9kZWxldGVfY3VycmVudChwYXJl bnRfcmVsLT5wYXJ0aWFsX3BhdGhsaXN0LCBwMSk7Ci0JCQlwZnJlZShvbGRfcGF0aCk7CisJ CQkvKiBUT0RPIHVzZSByb3V0aW5lIHRvIHVubGluayBhIHBhdGggZnJvbSB0aGUgbGlua2Vk IGxpc3QgKi8KKwkJCXVubGlua19wYXRoKCZvbGRfcGF0aCwgMCwgZmFsc2UsIGZhbHNlKTsK IAkJfQogCQllbHNlCiAJCXsKQEAgLTg5OSwxMSArOTAyLDEzIEBAIGFkZF9wYXJ0aWFsX3Bh dGgoUmVsT3B0SW5mbyAqcGFyZW50X3JlbCwgUGF0aCAqbmV3X3BhdGgpCiAJCS8qIEFjY2Vw dCB0aGUgbmV3IHBhdGg6IGluc2VydCBpdCBhdCBwcm9wZXIgcGxhY2UgKi8KIAkJcGFyZW50 X3JlbC0+cGFydGlhbF9wYXRobGlzdCA9CiAJCQlsaXN0X2luc2VydF9udGgocGFyZW50X3Jl bC0+cGFydGlhbF9wYXRobGlzdCwgaW5zZXJ0X2F0LCBuZXdfcGF0aCk7CisJCW5ld19wYXRo LT5yZWZfY291bnQrKzsKKwkJLyogVE9ETyBjcmVhdGUgYSByb3V0aW5lIHRvIGxpbmsgcGF0 aCBpbiBhIGxpc3QgYXQgYSBnaXZlbiBwbGFjZSAqLwogCX0KIAllbHNlCiAJewogCQkvKiBS ZWplY3QgYW5kIHJlY3ljbGUgdGhlIG5ldyBwYXRoICovCi0JCXBmcmVlKG5ld19wYXRoKTsK KwkJZnJlZV9wYXRoKG5ld19wYXRoLCAwLCBmYWxzZSk7CiAJfQogfQogCkBAIC05NzAsOCAr OTc1LDEzIEBAIGFkZF9wYXJ0aWFsX3BhdGhfcHJlY2hlY2soUmVsT3B0SW5mbyAqcGFyZW50 X3JlbCwgaW50IGRpc2FibGVkX25vZGVzLAogfQogCiB2b2lkCi1mcmVlX3BhdGgoUGF0aCAq cGF0aCkKK2ZyZWVfcGF0aChQYXRoICpwYXRoLCBpbnQgbGV2ZWwsIGJvb2wgcmVjdXJzZSkK IHsKKwlpZiAoIXJlY3Vyc2UgJiYgbGV2ZWwgPiAwKQorCQlyZXR1cm47CisKKwlsZXZlbCsr OworCiAJLyoKIAkgKiBJZiB0aGUgcGF0aCBpcyBzdGlsbCByZWZlcmVuY2VkLCBmcmVlaW5n IGl0IHdvdWxkIGNyZWF0ZSBhIGRhbmdsaW5nCiAJICogcG9pbnRlci4KQEAgLTk3OSwxMSAr OTg5LDYgQEAgZnJlZV9wYXRoKFBhdGggKnBhdGgpCiAJLyogVE9ETzogaXQgY291bGQganVz dCBiZSBhbiBBc3NlcnQ/ICovCiAJaWYgKHBhdGgtPnJlZl9jb3VudCAhPSAwKQogCXsKLQkJ ZXJlcG9ydChXQVJOSU5HLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5URVJOQUxfRVJST1Ip LAotCQkJCSBlcnJiYWNrdHJhY2UoKSwKLQkJCQkgZXJybXNnKCJwYXRoIG5vZGUgJXAgb2Yg dHlwZSAlZCBoYXMgcmVmZXJlbmNlIGNvdW50ICVkLCBjYW4gbm90IGJlIGZyZWVkIiwKLQkJ CQkJCXBhdGgsIHBhdGgtPnBhdGh0eXBlLCBwYXRoLT5yZWZfY291bnQpKSk7CiAJCXJldHVy bjsKIAl9CiAKQEAgLTk5NSwxMSArMTAwMCw2IEBAIGZyZWVfcGF0aChQYXRoICpwYXRoKQog CSAqLwogCWlmIChsaXN0X21lbWJlcl9wdHIocGF0aC0+cGFyZW50LT5wYXRobGlzdCwgcGF0 aCkpCiAJewotCQllcmVwb3J0KFdBUk5JTkcsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9JTlRF Uk5BTF9FUlJPUiksCi0JCQkJIGVycmJhY2t0cmFjZSgpLAotCQkJCSBlcnJtc2coInBhdGgg bm9kZSAlcCBvZiB0eXBlICVkIGhhcyByZWZlcmVuY2UgY291bnQgJWQgYnV0IGlzIGxpbmtl ZCBpbiBwYXJlbnQncyBwYXRobGlzdCwgY2FuIG5vdCBiZSBmcmVlZCIsCi0JCQkJCQlwYXRo LCBwYXRoLT5wYXRodHlwZSwgcGF0aC0+cmVmX2NvdW50KSkpOwogCQlyZXR1cm47CiAJfQog CkBAIC0xMDE4LDggKzEwMTgsOCBAQCBmcmVlX3BhdGgoUGF0aCAqcGF0aCkKIAkJCXsKIAkJ CQlKb2luUGF0aCAgICpqcGF0aCA9IChKb2luUGF0aCAqKSBwYXRoOwogCi0JCQkJdW5saW5r X3BhdGgoJihqcGF0aC0+b3V0ZXJqb2lucGF0aCkpOwotCQkJCXVubGlua19wYXRoKCYoanBh dGgtPmlubmVyam9pbnBhdGgpKTsKKwkJCQl1bmxpbmtfcGF0aCgmKGpwYXRoLT5vdXRlcmpv aW5wYXRoKSwgbGV2ZWwsIHJlY3Vyc2UsIHRydWUpOworCQkJCXVubGlua19wYXRoKCYoanBh dGgtPmlubmVyam9pbnBhdGgpLCBsZXZlbCwgcmVjdXJzZSwgdHJ1ZSk7CiAJCQl9CiAJCQli cmVhazsKIApAQCAtMTAzNSw3ICsxMDM1LDcgQEAgZnJlZV9wYXRoKFBhdGggKnBhdGgpCiAK IAkJCQkJLyogVE9ETyB1c2UgYSByb3V0aW5lIHRvIHVubGluayBwYXRoIGZyb20gbGlzdC4g Ki8KIAkJCQkJYXBwYXRoLT5zdWJwYXRocyA9IGZvcmVhY2hfZGVsZXRlX2N1cnJlbnQoYXBw YXRoLT5zdWJwYXRocywgbGMpOwotCQkJCQl1bmxpbmtfcGF0aCgmc3VicGF0aCk7CisJCQkJ CXVubGlua19wYXRoKCZzdWJwYXRoLCBsZXZlbCwgcmVjdXJzZSwgdHJ1ZSk7CiAJCQkJfQog CQkJfQogCQkJYnJlYWs7CkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBmcmVlX3BhdGgoUGF0aCAq cGF0aCkKIAkJCXsKIAkJCQlHYXRoZXJQYXRoICpncGF0aCA9IChHYXRoZXJQYXRoICopIHBh dGg7CiAKLQkJCQl1bmxpbmtfcGF0aCgmKGdwYXRoLT5zdWJwYXRoKSk7CisJCQkJdW5saW5r X3BhdGgoJihncGF0aC0+c3VicGF0aCksIGxldmVsLCByZWN1cnNlLCB0cnVlKTsKIAkJCX0K IAkJCWJyZWFrOwogCkBAIC0xMDUyLDcgKzEwNTIsNyBAQCBmcmVlX3BhdGgoUGF0aCAqcGF0 aCkKIAkJCXsKIAkJCQlHYXRoZXJNZXJnZVBhdGggKmdtcGF0aCA9IChHYXRoZXJNZXJnZVBh dGggKikgcGF0aDsKIAotCQkJCXVubGlua19wYXRoKCZnbXBhdGgtPnN1YnBhdGgpOworCQkJ CXVubGlua19wYXRoKCZnbXBhdGgtPnN1YnBhdGgsIGxldmVsLCByZWN1cnNlLCB0cnVlKTsK IAkJCX0KIAkJCWJyZWFrOwogCkBAIC0xMDYwLDcgKzEwNjAsNyBAQCBmcmVlX3BhdGgoUGF0 aCAqcGF0aCkKIAkJCXsKIAkJCQlCaXRtYXBIZWFwUGF0aCAqYmhwYXRoID0gKEJpdG1hcEhl YXBQYXRoICopIHBhdGg7CiAKLQkJCQl1bmxpbmtfcGF0aCgmKGJocGF0aC0+Yml0bWFwcXVh bCkpOworCQkJCXVubGlua19wYXRoKCYoYmhwYXRoLT5iaXRtYXBxdWFsKSwgbGV2ZWwsIHJl Y3Vyc2UsIHRydWUpOwogCQkJfQogCQkJYnJlYWs7CiAKQEAgLTEwNjgsNyArMTA2OCw3IEBA IGZyZWVfcGF0aChQYXRoICpwYXRoKQogCQkJewogCQkJCU1hdGVyaWFsUGF0aCAqbXBhdGgg PSAoTWF0ZXJpYWxQYXRoICopIHBhdGg7CiAKLQkJCQl1bmxpbmtfcGF0aCgmKG1wYXRoLT5z dWJwYXRoKSk7CisJCQkJdW5saW5rX3BhdGgoJihtcGF0aC0+c3VicGF0aCksIGxldmVsLCBy ZWN1cnNlLCB0cnVlKTsKIAkJCX0KIAkJCWJyZWFrOwogCkBAIC0xMDc2LDcgKzEwNzYsNyBA QCBmcmVlX3BhdGgoUGF0aCAqcGF0aCkKIAkJCXsKIAkJCQlNZW1vaXplUGF0aCAqbXBhdGgg PSAoTWVtb2l6ZVBhdGggKikgcGF0aDsKIAotCQkJCXVubGlua19wYXRoKCZtcGF0aC0+c3Vi cGF0aCk7CisJCQkJdW5saW5rX3BhdGgoJm1wYXRoLT5zdWJwYXRoLCBsZXZlbCwgcmVjdXJz ZSwgdHJ1ZSk7CiAJCQl9CiAJCQlicmVhazsKIApAQCAtMTA5MCwxNiArMTA5MCw2NCBAQCBm cmVlX3BhdGgoUGF0aCAqcGF0aCkKIAkJCQl7CiAJCQkJCVByb2plY3Rpb25QYXRoICpwcGF0 aCA9IChQcm9qZWN0aW9uUGF0aCAqKSBwYXRoOwogCi0JCQkJCXVubGlua19wYXRoKCZwcGF0 aC0+c3VicGF0aCk7CisJCQkJCXVubGlua19wYXRoKCZwcGF0aC0+c3VicGF0aCwgbGV2ZWws IHJlY3Vyc2UsIHRydWUpOwogCQkJCX0KIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfQWdn OgorCQl7CisJCQlBZ2dQYXRoICphcGF0aCA9IChBZ2dQYXRoICopIHBhdGg7CisKKwkJCXVu bGlua19wYXRoKCZhcGF0aC0+c3VicGF0aCwgbGV2ZWwsIHJlY3Vyc2UsIHRydWUpOworCQl9 CisJCQlicmVhazsKKwkJY2FzZSBUX0luY3JlbWVudGFsU29ydDoKKwkJeworCQkJSW5jcmVt ZW50YWxTb3J0UGF0aCAqaXBhdGggPSAoSW5jcmVtZW50YWxTb3J0UGF0aCAqKSBwYXRoOwor CisJCQl1bmxpbmtfcGF0aCgmaXBhdGgtPnNwYXRoLnN1YnBhdGgsIGxldmVsLCByZWN1cnNl LCB0cnVlKTsKKwkJfQorCQkJYnJlYWs7CisJCWNhc2UgVF9XaW5kb3dBZ2c6CisJCXsKKwkJ CVdpbmRvd0FnZ1BhdGggKndwYXRoID0gKFdpbmRvd0FnZ1BhdGggKikgcGF0aDsKKworCQkJ dW5saW5rX3BhdGgoJndwYXRoLT5zdWJwYXRoLCBsZXZlbCwgcmVjdXJzZSwgdHJ1ZSk7CisJ CX0KKwkJCWJyZWFrOworCQljYXNlIFRfU3VicXVlcnlTY2FuOgorCQl7CisJCQlTdWJxdWVy eVNjYW5QYXRoICpzcGF0aCA9IChTdWJxdWVyeVNjYW5QYXRoICopIHBhdGg7CisKKwkJCXVu bGlua19wYXRoKCZzcGF0aC0+c3VicGF0aCwgbGV2ZWwsIHJlY3Vyc2UsIHRydWUpOworCQl9 CisJCQlicmVhazsKKwkJY2FzZSBUX1VuaXF1ZToKKwkJeworCQkJVW5pcXVlUGF0aCAqdXBh dGggPSAoVW5pcXVlUGF0aCAqKSBwYXRoOwogCisJCQl1bmxpbmtfcGF0aCgmdXBhdGgtPnN1 YnBhdGgsIGxldmVsLCByZWN1cnNlLCB0cnVlKTsKKwkJfQorCQkJYnJlYWs7CisJCWNhc2Ug VF9MaW1pdDoKKwkJeworCQkJTGltaXRQYXRoICpscGF0aCA9IChMaW1pdFBhdGggKikgcGF0 aDsKKworCQkJdW5saW5rX3BhdGgoJmxwYXRoLT5zdWJwYXRoLCBsZXZlbCwgcmVjdXJzZSwg dHJ1ZSk7CisJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfR3JvdXA6CisJCXsKKwkJCUdyb3Vw UGF0aCAqZ3BhdGggPSAoR3JvdXBQYXRoICopIHBhdGg7CisKKwkJCXVubGlua19wYXRoKCZn cGF0aC0+c3VicGF0aCwgbGV2ZWwsIHJlY3Vyc2UsIHRydWUpOworCQl9CisJCQlicmVhazsK IAkJZGVmYXVsdDoKLQkJCWVyZXBvcnQoV0FSTklORywKKwkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5URVJOQUxfRVJST1IpLAogCQkJCQkgZXJyYmFja3Ry YWNlKCksCi0JCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBwYXRoIHR5cGUgJWQiLCBwYXRo LT5wYXRodHlwZSkpKTsKKwkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIHBhdGggdHlwZTEg JWQiLCBwYXRoLT5wYXRodHlwZSkpKTsKIAkJCWJyZWFrOwogCX0KIApAQCAtMTI1Niw3ICsx MzA0LDcgQEAgY3JlYXRlX2JpdG1hcF9oZWFwX3BhdGgoUGxhbm5lckluZm8gKnJvb3QsCiAJ cGF0aG5vZGUtPnBhdGgucGFyYWxsZWxfd29ya2VycyA9IHBhcmFsbGVsX2RlZ3JlZTsKIAlw YXRobm9kZS0+cGF0aC5wYXRoa2V5cyA9IE5JTDsJLyogYWx3YXlzIHVub3JkZXJlZCAqLwog Ci0JcGF0aG5vZGUtPmJpdG1hcHF1YWwgPSBiaXRtYXBxdWFsOworCWxpbmtfcGF0aCgmKHBh dGhub2RlLT5iaXRtYXBxdWFsKSwgYml0bWFwcXVhbCk7CiAKIAljb3N0X2JpdG1hcF9oZWFw X3NjYW4oJnBhdGhub2RlLT5wYXRoLCByb290LCByZWwsCiAJCQkJCQkgIHBhdGhub2RlLT5w YXRoLnBhcmFtX2luZm8sCkBAIC0xMjkxLDYgKzEzMzksOCBAQCBjcmVhdGVfYml0bWFwX2Fu ZF9wYXRoKFBsYW5uZXJJbmZvICpyb290LAogCXsKIAkJUGF0aAkgICAqYml0bWFwcXVhbCA9 IChQYXRoICopIGxmaXJzdChsYyk7CiAKKwkJLyogVE9ETzogZmluZCBhIGJldHRlciB3YXkg dG8gbGluayBhIHBhdGggaW4gYSBsaW5rZWQgbGlzdCAqLworCQliaXRtYXBxdWFsLT5yZWZf Y291bnQrKzsKIAkJcmVxdWlyZWRfb3V0ZXIgPSBibXNfYWRkX21lbWJlcnMocmVxdWlyZWRf b3V0ZXIsCiAJCQkJCQkJCQkJIFBBVEhfUkVRX09VVEVSKGJpdG1hcHF1YWwpKTsKIAl9CkBA IC0xMzQzLDYgKzEzOTMsOCBAQCBjcmVhdGVfYml0bWFwX29yX3BhdGgoUGxhbm5lckluZm8g KnJvb3QsCiAJewogCQlQYXRoCSAgICpiaXRtYXBxdWFsID0gKFBhdGggKikgbGZpcnN0KGxj KTsKIAorCQkvKiBUT0RPOiBmaW5kIGEgYmV0dGVyIHdheSB0byBsaW5rIGEgcGF0aCBpbiBh IGxpbmtlZCBsaXN0ICovCisJCWJpdG1hcHF1YWwtPnJlZl9jb3VudCsrOwogCQlyZXF1aXJl ZF9vdXRlciA9IGJtc19hZGRfbWVtYmVycyhyZXF1aXJlZF9vdXRlciwKIAkJCQkJCQkJCQkg UEFUSF9SRVFfT1VURVIoYml0bWFwcXVhbCkpOwogCX0KQEAgLTE1MTYsNiArMTU2OCw4IEBA IGNyZWF0ZV9hcHBlbmRfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAl7CiAJCVBhdGgJICAg KnN1YnBhdGggPSAoUGF0aCAqKSBsZmlyc3QobCk7CiAKKwkJLyogVE9ETzogd2Ugc2hvdWxk IHVzZSB0aGUgcm91dGluZSB0byBsaW5rIHBhdGggdG8gbGlzdCAqLworCQlzdWJwYXRoLT5y ZWZfY291bnQrKzsKIAkJcGF0aG5vZGUtPnBhdGgucGFyYWxsZWxfc2FmZSA9IHBhdGhub2Rl LT5wYXRoLnBhcmFsbGVsX3NhZmUgJiYKIAkJCXN1YnBhdGgtPnBhcmFsbGVsX3NhZmU7CiAK QEAgLTE2NjEsNiArMTcxNSw5IEBAIGNyZWF0ZV9tZXJnZV9hcHBlbmRfcGF0aChQbGFubmVy SW5mbyAqcm9vdCwKIAkJLyogQWxsIGNoaWxkIHBhdGhzIHNob3VsZCBiZSB1bnBhcmFtZXRl cml6ZWQgKi8KIAkJQXNzZXJ0KGJtc19pc19lbXB0eShQQVRIX1JFUV9PVVRFUihzdWJwYXRo KSkpOwogCisJCS8qIFRPRE86IHVzZSByb3V0aW5lIHdoaWNoIGxpbmtzIGEgcGF0aCBpbnRv IGEgbGlzdCAqLworCQlzdWJwYXRoLT5yZWZfY291bnQrKzsKKwogCQlwYXRobm9kZS0+cGF0 aC5yb3dzICs9IHN1YnBhdGgtPnJvd3M7CiAJCXBhdGhub2RlLT5wYXRoLnBhcmFsbGVsX3Nh ZmUgPSBwYXRobm9kZS0+cGF0aC5wYXJhbGxlbF9zYWZlICYmCiAJCQlzdWJwYXRoLT5wYXJh bGxlbF9zYWZlOwpAQCAtMTc4OSw3ICsxODQ2LDcgQEAgY3JlYXRlX21hdGVyaWFsX3BhdGgo UmVsT3B0SW5mbyAqcmVsLCBQYXRoICpzdWJwYXRoKQogCXBhdGhub2RlLT5wYXRoLnBhcmFs bGVsX3dvcmtlcnMgPSBzdWJwYXRoLT5wYXJhbGxlbF93b3JrZXJzOwogCXBhdGhub2RlLT5w YXRoLnBhdGhrZXlzID0gc3VicGF0aC0+cGF0aGtleXM7CiAKLQlwYXRobm9kZS0+c3VicGF0 aCA9IHN1YnBhdGg7CisJbGlua19wYXRoKCZwYXRobm9kZS0+c3VicGF0aCwgc3VicGF0aCk7 CiAKIAljb3N0X21hdGVyaWFsKCZwYXRobm9kZS0+cGF0aCwKIAkJCQkgIHN1YnBhdGgtPmRp c2FibGVkX25vZGVzLApAQCAtMTgyNCw3ICsxODgxLDcgQEAgY3JlYXRlX21lbW9pemVfcGF0 aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLCBQYXRoICpzdWJwYXRoLAog CXBhdGhub2RlLT5wYXRoLnBhcmFsbGVsX3dvcmtlcnMgPSBzdWJwYXRoLT5wYXJhbGxlbF93 b3JrZXJzOwogCXBhdGhub2RlLT5wYXRoLnBhdGhrZXlzID0gc3VicGF0aC0+cGF0aGtleXM7 CiAKLQlwYXRobm9kZS0+c3VicGF0aCA9IHN1YnBhdGg7CisJbGlua19wYXRoKCZwYXRobm9k ZS0+c3VicGF0aCwgc3VicGF0aCk7CiAJcGF0aG5vZGUtPmhhc2hfb3BlcmF0b3JzID0gaGFz aF9vcGVyYXRvcnM7CiAJcGF0aG5vZGUtPnBhcmFtX2V4cHJzID0gcGFyYW1fZXhwcnM7CiAJ cGF0aG5vZGUtPnNpbmdsZXJvdyA9IHNpbmdsZXJvdzsKQEAgLTE5MTksNyArMTk3Niw3IEBA IGNyZWF0ZV91bmlxdWVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVs LCBQYXRoICpzdWJwYXRoLAogCSAqLwogCXBhdGhub2RlLT5wYXRoLnBhdGhrZXlzID0gTklM OwogCi0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJwYXRoOworCWxpbmtfcGF0aCgmKHBhdGhu b2RlLT5zdWJwYXRoKSwgc3VicGF0aCk7CiAKIAkvKgogCSAqIFVuZGVyIEdFUU8gYW5kIHdo ZW4gcGxhbm5pbmcgY2hpbGQgam9pbnMsIHRoZSBzamluZm8gbWlnaHQgYmUKQEAgLTE5NDcs NyArMjAwNCw4IEBAIGNyZWF0ZV91bmlxdWVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLCBQYXRoICpzdWJwYXRoLAogCQlwYXRobm9kZS0+cGF0aC50b3RhbF9j b3N0ID0gc3VicGF0aC0+dG90YWxfY29zdDsKIAkJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMg PSBzdWJwYXRoLT5wYXRoa2V5czsKIAotCQlyZWwtPmNoZWFwZXN0X3VuaXF1ZV9wYXRoID0g KFBhdGggKikgcGF0aG5vZGU7CisJCS8qIFRPRE86IERvIHdlIG5lZWQgdG8gbWFrZSBzdXJl IHRoYXQgY2hlYXBlc3RfdW5pcXVlX3BhdGggaXMgTlVMTC4gKi8KKwkJbGlua19wYXRoKCYo cmVsLT5jaGVhcGVzdF91bmlxdWVfcGF0aCksIChQYXRoICopIHBhdGhub2RlKTsKIAogCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKQEAgLTE5ODYsNyArMjA0NCw3 IEBAIGNyZWF0ZV91bmlxdWVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAq cmVsLCBQYXRoICpzdWJwYXRoLAogCQkJCXBhdGhub2RlLT5wYXRoLnRvdGFsX2Nvc3QgPSBz dWJwYXRoLT50b3RhbF9jb3N0OwogCQkJCXBhdGhub2RlLT5wYXRoLnBhdGhrZXlzID0gc3Vi cGF0aC0+cGF0aGtleXM7CiAKLQkJCQlyZWwtPmNoZWFwZXN0X3VuaXF1ZV9wYXRoID0gKFBh dGggKikgcGF0aG5vZGU7CisJCQkJbGlua19wYXRoKCYocmVsLT5jaGVhcGVzdF91bmlxdWVf cGF0aCksIChQYXRoICopIHBhdGhub2RlKTsKIAogCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjb250ZXh0KTsKIApAQCAtMjA4Nyw3ICsyMTQ1LDcgQEAgY3JlYXRlX3VuaXF1ZV9w YXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsIFBhdGggKnN1YnBhdGgs CiAJCXBhdGhub2RlLT5wYXRoLnRvdGFsX2Nvc3QgPSBzb3J0X3BhdGgudG90YWxfY29zdDsK IAl9CiAKLQlyZWwtPmNoZWFwZXN0X3VuaXF1ZV9wYXRoID0gKFBhdGggKikgcGF0aG5vZGU7 CisJbGlua19wYXRoKCYocmVsLT5jaGVhcGVzdF91bmlxdWVfcGF0aCksIChQYXRoICopIHBh dGhub2RlKTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIApAQCAt MjEyOSw3ICsyMTg3LDcgQEAgY3JlYXRlX2dhdGhlcl9tZXJnZV9wYXRoKFBsYW5uZXJJbmZv ICpyb290LCBSZWxPcHRJbmZvICpyZWwsIFBhdGggKnN1YnBhdGgsCiAJCQkJCQkJCQkJCQkJ CSAgcmVxdWlyZWRfb3V0ZXIpOwogCXBhdGhub2RlLT5wYXRoLnBhcmFsbGVsX2F3YXJlID0g ZmFsc2U7CiAKLQlwYXRobm9kZS0+c3VicGF0aCA9IHN1YnBhdGg7CisJbGlua19wYXRoKCZw YXRobm9kZS0+c3VicGF0aCwgc3VicGF0aCk7CiAJcGF0aG5vZGUtPm51bV93b3JrZXJzID0g c3VicGF0aC0+cGFyYWxsZWxfd29ya2VyczsKIAlwYXRobm9kZS0+cGF0aC5wYXRoa2V5cyA9 IHBhdGhrZXlzOwogCXBhdGhub2RlLT5wYXRoLnBhdGh0YXJnZXQgPSB0YXJnZXQgPyB0YXJn ZXQgOiByZWwtPnJlbHRhcmdldDsKQEAgLTIyMDAsNyArMjI1OCw3IEBAIGNyZWF0ZV9nYXRo ZXJfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLCBQYXRoICpzdWJw YXRoLAogCXBhdGhub2RlLT5wYXRoLnBhcmFsbGVsX3dvcmtlcnMgPSAwOwogCXBhdGhub2Rl LT5wYXRoLnBhdGhrZXlzID0gTklMOwkvKiBHYXRoZXIgaGFzIHVub3JkZXJlZCByZXN1bHQg Ki8KIAotCXBhdGhub2RlLT5zdWJwYXRoID0gc3VicGF0aDsKKwlsaW5rX3BhdGgoJihwYXRo bm9kZS0+c3VicGF0aCksIHN1YnBhdGgpOwogCXBhdGhub2RlLT5udW1fd29ya2VycyA9IHN1 YnBhdGgtPnBhcmFsbGVsX3dvcmtlcnM7CiAJcGF0aG5vZGUtPnNpbmdsZV9jb3B5ID0gZmFs c2U7CiAKQEAgLTIyNDMsNyArMjMwMSw3IEBAIGNyZWF0ZV9zdWJxdWVyeXNjYW5fcGF0aChQ bGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLCBQYXRoICpzdWJwYXRoLAogCQlz dWJwYXRoLT5wYXJhbGxlbF9zYWZlOwogCXBhdGhub2RlLT5wYXRoLnBhcmFsbGVsX3dvcmtl cnMgPSBzdWJwYXRoLT5wYXJhbGxlbF93b3JrZXJzOwogCXBhdGhub2RlLT5wYXRoLnBhdGhr ZXlzID0gcGF0aGtleXM7Ci0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJwYXRoOworCWxpbmtf cGF0aCgmcGF0aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwogCiAJY29zdF9zdWJxdWVyeXNj YW4ocGF0aG5vZGUsIHJvb3QsIHJlbCwgcGF0aG5vZGUtPnBhdGgucGFyYW1faW5mbywKIAkJ CQkJICB0cml2aWFsX3BhdGh0YXJnZXQpOwpAQCAtMjQ3NSw3ICsyNTMzLDcgQEAgY3JlYXRl X2ZvcmVpZ25zY2FuX3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwK IAlwYXRobm9kZS0+cGF0aC50b3RhbF9jb3N0ID0gdG90YWxfY29zdDsKIAlwYXRobm9kZS0+ cGF0aC5wYXRoa2V5cyA9IHBhdGhrZXlzOwogCi0JcGF0aG5vZGUtPmZkd19vdXRlcnBhdGgg PSBmZHdfb3V0ZXJwYXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUtPmZkd19vdXRlcnBhdGgs IGZkd19vdXRlcnBhdGgpOwogCXBhdGhub2RlLT5mZHdfcmVzdHJpY3RpbmZvID0gZmR3X3Jl c3RyaWN0aW5mbzsKIAlwYXRobm9kZS0+ZmR3X3ByaXZhdGUgPSBmZHdfcHJpdmF0ZTsKIApA QCAtMjUyOSw3ICsyNTg3LDcgQEAgY3JlYXRlX2ZvcmVpZ25fam9pbl9wYXRoKFBsYW5uZXJJ bmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJcGF0aG5vZGUtPnBhdGgudG90YWxfY29z dCA9IHRvdGFsX2Nvc3Q7CiAJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMgPSBwYXRoa2V5czsK IAotCXBhdGhub2RlLT5mZHdfb3V0ZXJwYXRoID0gZmR3X291dGVycGF0aDsKKwlsaW5rX3Bh dGgoJnBhdGhub2RlLT5mZHdfb3V0ZXJwYXRoLCBmZHdfb3V0ZXJwYXRoKTsKIAlwYXRobm9k ZS0+ZmR3X3Jlc3RyaWN0aW5mbyA9IGZkd19yZXN0cmljdGluZm87CiAJcGF0aG5vZGUtPmZk d19wcml2YXRlID0gZmR3X3ByaXZhdGU7CiAKQEAgLTI1NzgsNyArMjYzNiw3IEBAIGNyZWF0 ZV9mb3JlaWduX3VwcGVyX3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJl bCwKIAlwYXRobm9kZS0+cGF0aC50b3RhbF9jb3N0ID0gdG90YWxfY29zdDsKIAlwYXRobm9k ZS0+cGF0aC5wYXRoa2V5cyA9IHBhdGhrZXlzOwogCi0JcGF0aG5vZGUtPmZkd19vdXRlcnBh dGggPSBmZHdfb3V0ZXJwYXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUtPmZkd19vdXRlcnBh dGgsIGZkd19vdXRlcnBhdGgpOwogCXBhdGhub2RlLT5mZHdfcmVzdHJpY3RpbmZvID0gZmR3 X3Jlc3RyaWN0aW5mbzsKIAlwYXRobm9kZS0+ZmR3X3ByaXZhdGUgPSBmZHdfcHJpdmF0ZTsK IApAQCAtMjc0MSw4ICsyNzk5LDggQEAgY3JlYXRlX25lc3Rsb29wX3BhdGgoUGxhbm5lcklu Zm8gKnJvb3QsCiAJcGF0aG5vZGUtPmpwYXRoLnBhdGgucGF0aGtleXMgPSBwYXRoa2V5czsK IAlwYXRobm9kZS0+anBhdGguam9pbnR5cGUgPSBqb2ludHlwZTsKIAlwYXRobm9kZS0+anBh dGguaW5uZXJfdW5pcXVlID0gZXh0cmEtPmlubmVyX3VuaXF1ZTsKLQlwYXRobm9kZS0+anBh dGgub3V0ZXJqb2lucGF0aCA9IG91dGVyX3BhdGg7Ci0JcGF0aG5vZGUtPmpwYXRoLmlubmVy am9pbnBhdGggPSBpbm5lcl9wYXRoOworCWxpbmtfcGF0aCgmKHBhdGhub2RlLT5qcGF0aC5v dXRlcmpvaW5wYXRoKSwgb3V0ZXJfcGF0aCk7CisJbGlua19wYXRoKCYocGF0aG5vZGUtPmpw YXRoLmlubmVyam9pbnBhdGgpLCBpbm5lcl9wYXRoKTsKIAlwYXRobm9kZS0+anBhdGguam9p bnJlc3RyaWN0aW5mbyA9IHJlc3RyaWN0X2NsYXVzZXM7CiAKIAlmaW5hbF9jb3N0X25lc3Rs b29wKHJvb3QsIHBhdGhub2RlLCB3b3Jrc3BhY2UsIGV4dHJhKTsKQEAgLTI4MDcsOCArMjg2 NSw4IEBAIGNyZWF0ZV9tZXJnZWpvaW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAlwYXRo bm9kZS0+anBhdGgucGF0aC5wYXRoa2V5cyA9IHBhdGhrZXlzOwogCXBhdGhub2RlLT5qcGF0 aC5qb2ludHlwZSA9IGpvaW50eXBlOwogCXBhdGhub2RlLT5qcGF0aC5pbm5lcl91bmlxdWUg PSBleHRyYS0+aW5uZXJfdW5pcXVlOwotCXBhdGhub2RlLT5qcGF0aC5vdXRlcmpvaW5wYXRo ID0gb3V0ZXJfcGF0aDsKLQlwYXRobm9kZS0+anBhdGguaW5uZXJqb2lucGF0aCA9IGlubmVy X3BhdGg7CisJbGlua19wYXRoKCYocGF0aG5vZGUtPmpwYXRoLm91dGVyam9pbnBhdGgpLCBv dXRlcl9wYXRoKTsKKwlsaW5rX3BhdGgoJihwYXRobm9kZS0+anBhdGguaW5uZXJqb2lucGF0 aCksIGlubmVyX3BhdGgpOwogCXBhdGhub2RlLT5qcGF0aC5qb2lucmVzdHJpY3RpbmZvID0g cmVzdHJpY3RfY2xhdXNlczsKIAlwYXRobm9kZS0+cGF0aF9tZXJnZWNsYXVzZXMgPSBtZXJn ZWNsYXVzZXM7CiAJcGF0aG5vZGUtPm91dGVyc29ydGtleXMgPSBvdXRlcnNvcnRrZXlzOwpA QCAtMjg4NSw4ICsyOTQzLDggQEAgY3JlYXRlX2hhc2hqb2luX3BhdGgoUGxhbm5lckluZm8g KnJvb3QsCiAJcGF0aG5vZGUtPmpwYXRoLnBhdGgucGF0aGtleXMgPSBOSUw7CiAJcGF0aG5v ZGUtPmpwYXRoLmpvaW50eXBlID0gam9pbnR5cGU7CiAJcGF0aG5vZGUtPmpwYXRoLmlubmVy X3VuaXF1ZSA9IGV4dHJhLT5pbm5lcl91bmlxdWU7Ci0JcGF0aG5vZGUtPmpwYXRoLm91dGVy am9pbnBhdGggPSBvdXRlcl9wYXRoOwotCXBhdGhub2RlLT5qcGF0aC5pbm5lcmpvaW5wYXRo ID0gaW5uZXJfcGF0aDsKKwlsaW5rX3BhdGgoJihwYXRobm9kZS0+anBhdGgub3V0ZXJqb2lu cGF0aCksIG91dGVyX3BhdGgpOworCWxpbmtfcGF0aCgmKHBhdGhub2RlLT5qcGF0aC5pbm5l cmpvaW5wYXRoKSwgaW5uZXJfcGF0aCk7CiAJcGF0aG5vZGUtPmpwYXRoLmpvaW5yZXN0cmlj dGluZm8gPSByZXN0cmljdF9jbGF1c2VzOwogCXBhdGhub2RlLT5wYXRoX2hhc2hjbGF1c2Vz ID0gaGFzaGNsYXVzZXM7CiAJLyogZmluYWxfY29zdF9oYXNoam9pbiB3aWxsIGZpbGwgaW4g cGF0aG5vZGUtPm51bV9iYXRjaGVzICovCkBAIC0yOTI3LDYgKzI5ODUsOSBAQCBjcmVhdGVf cHJvamVjdGlvbl9wYXRoKFBsYW5uZXJJbmZvICpyb290LAogCQlBc3NlcnQoc3VicHAtPnBh dGgucGFyZW50ID09IHJlbCk7CiAJCXN1YnBhdGggPSBzdWJwcC0+c3VicGF0aDsKIAkJQXNz ZXJ0KCFJc0Eoc3VicGF0aCwgUHJvamVjdGlvblBhdGgpKTsKKworCQkvKiBGcmVlIGl0IGlm IG5vdCB1c2VkIGFueXdoZXJlIGVsc2UuICovCisJCXVubGlua19wYXRoKChQYXRoICoqKSAm c3VicHAsIDAsIGZhbHNlLCBmYWxzZSk7CiAJfQogCiAJcGF0aG5vZGUtPnBhdGgucGF0aHR5 cGUgPSBUX1Jlc3VsdDsKQEAgLTI5NDIsNyArMzAwMyw3IEBAIGNyZWF0ZV9wcm9qZWN0aW9u X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsCiAJLyogUHJvamVjdGlvbiBkb2VzIG5vdCBjaGFu Z2UgdGhlIHNvcnQgb3JkZXIgKi8KIAlwYXRobm9kZS0+cGF0aC5wYXRoa2V5cyA9IHN1YnBh dGgtPnBhdGhrZXlzOwogCi0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJwYXRoOworCWxpbmtf cGF0aCgmcGF0aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwogCiAJLyoKIAkgKiBXZSBtaWdo dCBub3QgbmVlZCBhIHNlcGFyYXRlIFJlc3VsdCBub2RlLiAgSWYgdGhlIGlucHV0IHBsYW4g bm9kZSB0eXBlCkBAIC0zMDYzLDIxICszMTI0LDIxIEBAIGFwcGx5X3Byb2plY3Rpb25fdG9f cGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkJewogCQkJR2F0aGVyUGF0aCAqZ3BhdGggPSAo R2F0aGVyUGF0aCAqKSBwYXRoOwogCi0JCQlncGF0aC0+c3VicGF0aCA9IChQYXRoICopCi0J CQkJY3JlYXRlX3Byb2plY3Rpb25fcGF0aChyb290LAotCQkJCQkJCQkJICAgZ3BhdGgtPnN1 YnBhdGgtPnBhcmVudCwKLQkJCQkJCQkJCSAgIGdwYXRoLT5zdWJwYXRoLAotCQkJCQkJCQkJ ICAgdGFyZ2V0KTsKKwkJCWxpbmtfcGF0aCgmZ3BhdGgtPnN1YnBhdGgsCisJCQkJCSAgKFBh dGggKikgY3JlYXRlX3Byb2plY3Rpb25fcGF0aChyb290LAorCQkJCQkJCQkJCQkJCSAgZ3Bh dGgtPnN1YnBhdGgtPnBhcmVudCwKKwkJCQkJCQkJCQkJCQkgIGdwYXRoLT5zdWJwYXRoLAor CQkJCQkJCQkJCQkJCSAgdGFyZ2V0KSk7CiAJCX0KIAkJZWxzZQogCQl7CiAJCQlHYXRoZXJN ZXJnZVBhdGggKmdtcGF0aCA9IChHYXRoZXJNZXJnZVBhdGggKikgcGF0aDsKIAotCQkJZ21w YXRoLT5zdWJwYXRoID0gKFBhdGggKikKLQkJCQljcmVhdGVfcHJvamVjdGlvbl9wYXRoKHJv b3QsCi0JCQkJCQkJCQkgICBnbXBhdGgtPnN1YnBhdGgtPnBhcmVudCwKLQkJCQkJCQkJCSAg IGdtcGF0aC0+c3VicGF0aCwKLQkJCQkJCQkJCSAgIHRhcmdldCk7CisJCQlsaW5rX3BhdGgo JmdtcGF0aC0+c3VicGF0aCwKKwkJCQkJICAoUGF0aCAqKSBjcmVhdGVfcHJvamVjdGlvbl9w YXRoKHJvb3QsCisJCQkJCQkJCQkJCQkJICBnbXBhdGgtPnN1YnBhdGgtPnBhcmVudCwKKwkJ CQkJCQkJCQkJCQkgIGdtcGF0aC0+c3VicGF0aCwKKwkJCQkJCQkJCQkJCQkgIHRhcmdldCkp OwogCQl9CiAJfQogCWVsc2UgaWYgKHBhdGgtPnBhcmFsbGVsX3NhZmUgJiYKQEAgLTMxMjYs NyArMzE4Nyw3IEBAIGNyZWF0ZV9zZXRfcHJvamVjdGlvbl9wYXRoKFBsYW5uZXJJbmZvICpy b290LAogCS8qIFByb2plY3Rpb24gZG9lcyBub3QgY2hhbmdlIHRoZSBzb3J0IG9yZGVyIFhY WD8gKi8KIAlwYXRobm9kZS0+cGF0aC5wYXRoa2V5cyA9IHN1YnBhdGgtPnBhdGhrZXlzOwog Ci0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJwYXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUt PnN1YnBhdGgsIHN1YnBhdGgpOwogCiAJLyoKIAkgKiBFc3RpbWF0ZSBudW1iZXIgb2Ygcm93 cyBwcm9kdWNlZCBieSBTUkZzIGZvciBlYWNoIHJvdyBvZiBpbnB1dDsgaWYKQEAgLTMxOTYs NyArMzI1Nyw3IEBAIGNyZWF0ZV9pbmNyZW1lbnRhbF9zb3J0X3BhdGgoUGxhbm5lckluZm8g KnJvb3QsCiAJcGF0aG5vZGUtPnBhdGgucGFyYWxsZWxfd29ya2VycyA9IHN1YnBhdGgtPnBh cmFsbGVsX3dvcmtlcnM7CiAJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMgPSBwYXRoa2V5czsK IAotCXBhdGhub2RlLT5zdWJwYXRoID0gc3VicGF0aDsKKwlsaW5rX3BhdGgoJnBhdGhub2Rl LT5zdWJwYXRoLCBzdWJwYXRoKTsKIAogCWNvc3RfaW5jcmVtZW50YWxfc29ydCgmcGF0aG5v ZGUtPnBhdGgsCiAJCQkJCQkgIHJvb3QsIHBhdGhrZXlzLCBwcmVzb3J0ZWRfa2V5cywKQEAg LTMyNDQsNyArMzMwNSw3IEBAIGNyZWF0ZV9zb3J0X3BhdGgoUGxhbm5lckluZm8gKnJvb3Qs CiAJcGF0aG5vZGUtPnBhdGgucGFyYWxsZWxfd29ya2VycyA9IHN1YnBhdGgtPnBhcmFsbGVs X3dvcmtlcnM7CiAJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMgPSBwYXRoa2V5czsKIAotCXBh dGhub2RlLT5zdWJwYXRoID0gc3VicGF0aDsKKwlsaW5rX3BhdGgoJnBhdGhub2RlLT5zdWJw YXRoLCBzdWJwYXRoKTsKIAogCWNvc3Rfc29ydCgmcGF0aG5vZGUtPnBhdGgsIHJvb3QsIHBh dGhrZXlzLAogCQkJICBzdWJwYXRoLT5kaXNhYmxlZF9ub2RlcywKQEAgLTMyOTEsNyArMzM1 Miw3IEBAIGNyZWF0ZV9ncm91cF9wYXRoKFBsYW5uZXJJbmZvICpyb290LAogCS8qIEdyb3Vw IGRvZXNuJ3QgY2hhbmdlIHNvcnQgb3JkZXJpbmcgKi8KIAlwYXRobm9kZS0+cGF0aC5wYXRo a2V5cyA9IHN1YnBhdGgtPnBhdGhrZXlzOwogCi0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJw YXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwogCiAJcGF0 aG5vZGUtPmdyb3VwQ2xhdXNlID0gZ3JvdXBDbGF1c2U7CiAJcGF0aG5vZGUtPnF1YWwgPSBx dWFsOwpAQCAtMzM1MCw3ICszNDExLDcgQEAgY3JlYXRlX3VwcGVyX3VuaXF1ZV9wYXRoKFBs YW5uZXJJbmZvICpyb290LAogCS8qIFVuaXF1ZSBkb2Vzbid0IGNoYW5nZSB0aGUgaW5wdXQg b3JkZXJpbmcgKi8KIAlwYXRobm9kZS0+cGF0aC5wYXRoa2V5cyA9IHN1YnBhdGgtPnBhdGhr ZXlzOwogCi0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJwYXRoOworCWxpbmtfcGF0aCgmcGF0 aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwogCXBhdGhub2RlLT5udW1rZXlzID0gbnVtQ29s czsKIAogCS8qCkBAIC0zNDI0LDcgKzM0ODUsNyBAQCBjcmVhdGVfYWdnX3BhdGgoUGxhbm5l ckluZm8gKnJvb3QsCiAJZWxzZQogCQlwYXRobm9kZS0+cGF0aC5wYXRoa2V5cyA9IE5JTDsJ Lyogb3V0cHV0IGlzIHVub3JkZXJlZCAqLwogCi0JcGF0aG5vZGUtPnN1YnBhdGggPSBzdWJw YXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwogCiAJcGF0 aG5vZGUtPmFnZ3N0cmF0ZWd5ID0gYWdnc3RyYXRlZ3k7CiAJcGF0aG5vZGUtPmFnZ3NwbGl0 ID0gYWdnc3BsaXQ7CkBAIC0zNDg4LDcgKzM1NDksNyBAQCBjcmVhdGVfZ3JvdXBpbmdzZXRz X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsCiAJcGF0aG5vZGUtPnBhdGgucGFyYWxsZWxfc2Fm ZSA9IHJlbC0+Y29uc2lkZXJfcGFyYWxsZWwgJiYKIAkJc3VicGF0aC0+cGFyYWxsZWxfc2Fm ZTsKIAlwYXRobm9kZS0+cGF0aC5wYXJhbGxlbF93b3JrZXJzID0gc3VicGF0aC0+cGFyYWxs ZWxfd29ya2VyczsKLQlwYXRobm9kZS0+c3VicGF0aCA9IHN1YnBhdGg7CisJbGlua19wYXRo KCZwYXRobm9kZS0+c3VicGF0aCwgc3VicGF0aCk7CiAKIAkvKgogCSAqIFNpbXBsaWZ5IGNh bGxlcnMgYnkgZG93bmdyYWRpbmcgQUdHX1NPUlRFRCB0byBBR0dfUExBSU4sIGFuZCBBR0df TUlYRUQKQEAgLTM3NDYsNyArMzgwNyw3IEBAIGNyZWF0ZV93aW5kb3dhZ2dfcGF0aChQbGFu bmVySW5mbyAqcm9vdCwKIAkvKiBXaW5kb3dBZ2cgcHJlc2VydmVzIHRoZSBpbnB1dCBzb3J0 IG9yZGVyICovCiAJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMgPSBzdWJwYXRoLT5wYXRoa2V5 czsKIAotCXBhdGhub2RlLT5zdWJwYXRoID0gc3VicGF0aDsKKwlsaW5rX3BhdGgoJnBhdGhu b2RlLT5zdWJwYXRoLCBzdWJwYXRoKTsKIAlwYXRobm9kZS0+d2luY2xhdXNlID0gd2luY2xh dXNlOwogCXBhdGhub2RlLT5xdWFsID0gcXVhbDsKIAlwYXRobm9kZS0+cnVuQ29uZGl0aW9u ID0gcnVuQ29uZGl0aW9uOwpAQCAtMzgxOCw4ICszODc5LDkgQEAgY3JlYXRlX3NldG9wX3Bh dGgoUGxhbm5lckluZm8gKnJvb3QsCiAJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMgPQogCQko c3RyYXRlZ3kgPT0gU0VUT1BfU09SVEVEKSA/IGxlZnRwYXRoLT5wYXRoa2V5cyA6IE5JTDsK IAotCXBhdGhub2RlLT5sZWZ0cGF0aCA9IGxlZnRwYXRoOwotCXBhdGhub2RlLT5yaWdodHBh dGggPSByaWdodHBhdGg7CisJbGlua19wYXRoKCZwYXRobm9kZS0+bGVmdHBhdGgsIGxlZnRw YXRoKTsKKwlsaW5rX3BhdGgoJnBhdGhub2RlLT5yaWdodHBhdGgsIHJpZ2h0cGF0aCk7CisK IAlwYXRobm9kZS0+Y21kID0gY21kOwogCXBhdGhub2RlLT5zdHJhdGVneSA9IHN0cmF0ZWd5 OwogCXBhdGhub2RlLT5ncm91cExpc3QgPSBncm91cExpc3Q7CkBAIC0zOTM0LDggKzM5OTYs OCBAQCBjcmVhdGVfcmVjdXJzaXZldW5pb25fcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkv KiBSZWN1cnNpdmVVbmlvbiByZXN1bHQgaXMgYWx3YXlzIHVuc29ydGVkICovCiAJcGF0aG5v ZGUtPnBhdGgucGF0aGtleXMgPSBOSUw7CiAKLQlwYXRobm9kZS0+bGVmdHBhdGggPSBsZWZ0 cGF0aDsKLQlwYXRobm9kZS0+cmlnaHRwYXRoID0gcmlnaHRwYXRoOworCWxpbmtfcGF0aCgm cGF0aG5vZGUtPmxlZnRwYXRoLCBsZWZ0cGF0aCk7CisJbGlua19wYXRoKCZwYXRobm9kZS0+ cmlnaHRwYXRoLCByaWdodHBhdGgpOwogCXBhdGhub2RlLT5kaXN0aW5jdExpc3QgPSBkaXN0 aW5jdExpc3Q7CiAJcGF0aG5vZGUtPnd0UGFyYW0gPSB3dFBhcmFtOwogCXBhdGhub2RlLT5u dW1Hcm91cHMgPSBudW1Hcm91cHM7CkBAIC0zOTc3LDcgKzQwMzksNyBAQCBjcmVhdGVfbG9j a3Jvd3NfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCSAqLwog CXBhdGhub2RlLT5wYXRoLnBhdGhrZXlzID0gTklMOwogCi0JcGF0aG5vZGUtPnN1YnBhdGgg PSBzdWJwYXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwog CXBhdGhub2RlLT5yb3dNYXJrcyA9IHJvd01hcmtzOwogCXBhdGhub2RlLT5lcHFQYXJhbSA9 IGVwcVBhcmFtOwogCkBAIC00MDg0LDcgKzQxNDYsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVf cGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQlwYXRobm9kZS0+ cGF0aC5wYXRodGFyZ2V0LT53aWR0aCA9IDA7CiAJfQogCi0JcGF0aG5vZGUtPnN1YnBhdGgg PSBzdWJwYXRoOworCWxpbmtfcGF0aCgmcGF0aG5vZGUtPnN1YnBhdGgsIHN1YnBhdGgpOwog CXBhdGhub2RlLT5vcGVyYXRpb24gPSBvcGVyYXRpb247CiAJcGF0aG5vZGUtPmNhblNldFRh ZyA9IGNhblNldFRhZzsKIAlwYXRobm9kZS0+bm9taW5hbFJlbGF0aW9uID0gbm9taW5hbFJl bGF0aW9uOwpAQCAtNDE0NCw3ICs0MjA2LDcgQEAgY3JlYXRlX2xpbWl0X3BhdGgoUGxhbm5l ckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAlwYXRobm9kZS0+cGF0aC5zdGFydHVw X2Nvc3QgPSBzdWJwYXRoLT5zdGFydHVwX2Nvc3Q7CiAJcGF0aG5vZGUtPnBhdGgudG90YWxf Y29zdCA9IHN1YnBhdGgtPnRvdGFsX2Nvc3Q7CiAJcGF0aG5vZGUtPnBhdGgucGF0aGtleXMg PSBzdWJwYXRoLT5wYXRoa2V5czsKLQlwYXRobm9kZS0+c3VicGF0aCA9IHN1YnBhdGg7CisJ bGlua19wYXRoKCZwYXRobm9kZS0+c3VicGF0aCwgc3VicGF0aCk7CiAJcGF0aG5vZGUtPmxp bWl0T2Zmc2V0ID0gbGltaXRPZmZzZXQ7CiAJcGF0aG5vZGUtPmxpbWl0Q291bnQgPSBsaW1p dENvdW50OwogCXBhdGhub2RlLT5saW1pdE9wdGlvbiA9IGxpbWl0T3B0aW9uOwpAQCAtNDQz MCw2ICs0NDkyLDcgQEAgZG8geyBcCiAJKHBhdGgpID0gcmVwYXJhbWV0ZXJpemVfcGF0aF9i eV9jaGlsZChyb290LCAocGF0aCksIGNoaWxkX3JlbCk7IFwKIAlpZiAoKHBhdGgpID09IE5V TEwpIFwKIAkJcmV0dXJuIE5VTEw7IFwKKwlsaW5rX3BhdGgoJihwYXRoKSwgKHBhdGgpKTsg XAogfSB3aGlsZSgwKQogCiAjZGVmaW5lIFJFUEFSQU1FVEVSSVpFX0NISUxEX1BBVEhfTElT VChwYXRobGlzdCkgXApAQCAtNDg1MiwxMSArNDkxNSwxNCBAQCByZXBhcmFtZXRlcml6ZV9w YXRobGlzdF9ieV9jaGlsZChQbGFubmVySW5mbyAqcm9vdCwKIAogCQlpZiAocGF0aCA9PSBO VUxMKQogCQl7CisJCQkvKiBUT0RPOiB1bmxpbmsgcGF0aHMgaW4gdGhlIGxpc3QgKi8KIAkJ CWxpc3RfZnJlZShyZXN1bHQpOwogCQkJcmV0dXJuIE5JTDsKIAkJfQogCisJCS8qIFRPRE86 IG5lZWQgYSByb3V0aW5lIHRvIGxpbmsgYSBwYXRoIGludG8gYSBsaW5rZWQgbGlzdCAqLwog CQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgcGF0aCk7CisJCXBhdGgtPnJlZl9jb3VudCsr OwogCX0KIAogCXJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCmlu ZGV4IDIyZWUxYzIyNjFiLi5kYTM3NzcxYmY4NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv b3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhu b2RlLmgKQEAgLTMwNyw3ICszMDcsNyBAQCBleHRlcm4gUGF0aCAqcmVwYXJhbWV0ZXJpemVf cGF0aF9ieV9jaGlsZChQbGFubmVySW5mbyAqcm9vdCwgUGF0aCAqcGF0aCwKIAkJCQkJCQkJ CQkgIFJlbE9wdEluZm8gKmNoaWxkX3JlbCk7CiBleHRlcm4gYm9vbCBwYXRoX2lzX3JlcGFy YW1ldGVyaXphYmxlX2J5X2NoaWxkKFBhdGggKnBhdGgsCiAJCQkJCQkJCQkJCSAgIFJlbE9w dEluZm8gKmNoaWxkX3JlbCk7Ci1leHRlcm4gdm9pZCBmcmVlX3BhdGgoUGF0aCAqcGF0aCk7 CitleHRlcm4gdm9pZCBmcmVlX3BhdGgoUGF0aCAqcGF0aCwgaW50IGxldmVsLCBib29sIHJl Y3Vyc2UpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQKIGxpbmtfcGF0aChQYXRoICoqcGF0aF9s aW5rLCBQYXRoICpwYXRoKQpAQCAtMzI1LDcgKzMyNSw3IEBAIGxpbmtfcGF0aChQYXRoICoq cGF0aF9saW5rLCBQYXRoICpwYXRoKQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLXVubGlu a19wYXRoKFBhdGggKipwYXRoX2xpbmspCit1bmxpbmtfcGF0aChQYXRoICoqcGF0aF9saW5r LCBpbnQgbGV2ZWwsIGJvb2wgcmVjdXJzZSwgYm9vbCBuZWVkX2ZyZWUpCiB7CiAJUGF0aAkg ICAqcGF0aCA9ICpwYXRoX2xpbms7CiAKQEAgLTM0MSw4ICszNDEsOCBAQCB1bmxpbmtfcGF0 aChQYXRoICoqcGF0aF9saW5rKQogCSpwYXRoX2xpbmsgPSBOVUxMOwogCiAJLyogRnJlZSBw YXRoIGlmIG5vbmUgaXMgcmVmZXJlbmNpbmcgaXQuICovCi0JaWYgKHBhdGgtPnJlZl9jb3Vu dCA9PSAwKQotCQlmcmVlX3BhdGgocGF0aCk7CisJaWYgKHBhdGgtPnJlZl9jb3VudCA9PSAw ICYmIG5lZWRfZnJlZSkKKwkJZnJlZV9wYXRoKHBhdGgsIGxldmVsLCByZWN1cnNlKTsKIH0K IAogLyoKLS0gCjIuNTAuMAoK --------------dcIs0vJwQBenKpXyRmzGGv73 Content-Type: text/plain; charset=UTF-8; name="0003-Local-variables-pointing-to-path-node-used-repeatedl-20250627.patch" Content-Disposition: attachment; filename*0="0003-Local-variables-pointing-to-path-node-used-repeatedl-20"; filename*1="250627.patch" Content-Transfer-Encoding: base64 RnJvbSAwZjVhNWJkMTRjZTI3OTFmMjRmODU1ZjgxNzZiNDcwYTBiYTg4ODRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBn bWFpbC5jb20+CkRhdGU6IEZyaSwgMjcgSnVuIDIwMjUgMTE6NDY6MTYgKzAyMDAKU3ViamVj dDogW1BBVENIIDMvM10gTG9jYWwgdmFyaWFibGVzIHBvaW50aW5nIHRvIHBhdGggbm9kZSB1 c2VkIHJlcGVhdGVkbHkKCkluIG1hdGNoX3Vuc29ydGVkX291dGVyKCkgd2UgY3JlYXRlIGEg bWF0ZXJpYWxpemUgcGF0aCBmb3IgaW5uZXIKcmVsYXRpb24gYW5kIHBhc3MgaXQgdG8gdHJ5 X25lc3Rsb29wX3BhdGggcmVwZWF0ZWRseS4gTGluayBhbmQgdW5saW5rCnRoZSBwYXRoIHRv IGFuZCBmcm9tIHRoZSBsb2NhbCB2YXJpYWJsZSB0byBrZWVwIHRyYWNrIG9mIGl0LgotLS0K IHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2pvaW5wYXRoLmMgfCAxMiArKysrKysrKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvam9pbnBhdGguYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wYXRoL2pvaW5wYXRoLmMKaW5kZXggN2FhOGY1ZDc5OWMu LjI3NWZlOWNmYjU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9q b2lucGF0aC5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2pvaW5wYXRoLmMK QEAgLTE4OTIsMTIgKzE4OTIsMTQgQEAgbWF0Y2hfdW5zb3J0ZWRfb3V0ZXIoUGxhbm5lcklu Zm8gKnJvb3QsCiAJCS8qCiAJCSAqIENvbnNpZGVyIG1hdGVyaWFsaXppbmcgdGhlIGNoZWFw ZXN0IGlubmVyIHBhdGgsIHVubGVzcwogCQkgKiBlbmFibGVfbWF0ZXJpYWwgaXMgb2ZmIG9y IHRoZSBwYXRoIGluIHF1ZXN0aW9uIG1hdGVyaWFsaXplcyBpdHMKLQkJICogb3V0cHV0IGFu eXdheS4KKwkJICogb3V0cHV0IGFueXdheS4gTGluayB0aGUgcGF0aCB0byBhIGxvY2FsIHJl ZmVyZW5jZSBzbyB0aGF0IGl0IHdvbid0CisJCSAqIGJlIGZyZWVkIGJ5IGFkZF9wYXRoIGlm IHRoZSBzdXJyb3VuZGluZyBuZXN0IHBhdGggaXMgZnJlZWQgYnkKKwkJICogYWRkX3BhdGgu IEl0IHdpbGwgZ2V0IGZyZWVkIGlmIG5vdCB1c2VkIGxhdGVyLgogCQkgKi8KIAkJaWYgKGVu YWJsZV9tYXRlcmlhbCAmJiBpbm5lcl9jaGVhcGVzdF90b3RhbCAhPSBOVUxMICYmCiAJCQkh RXhlY01hdGVyaWFsaXplc091dHB1dChpbm5lcl9jaGVhcGVzdF90b3RhbC0+cGF0aHR5cGUp KQotCQkJbWF0cGF0aCA9IChQYXRoICopCi0JCQkJY3JlYXRlX21hdGVyaWFsX3BhdGgoaW5u ZXJyZWwsIGlubmVyX2NoZWFwZXN0X3RvdGFsKTsKKwkJCWxpbmtfcGF0aCgmbWF0cGF0aCwK KwkJCQkJICAoUGF0aCAqKSBjcmVhdGVfbWF0ZXJpYWxfcGF0aChpbm5lcnJlbCwgaW5uZXJf Y2hlYXBlc3RfdG90YWwpKTsKIAl9CiAKIAlmb3JlYWNoKGxjMSwgb3V0ZXJyZWwtPnBhdGhs aXN0KQpAQCAtMjAxMyw2ICsyMDE1LDEwIEBAIG1hdGNoX3Vuc29ydGVkX291dGVyKFBsYW5u ZXJJbmZvICpyb290LAogCQkJCQkJCQkgZmFsc2UpOwogCX0KIAorCS8qIE1hdGVyaWFsaXpl ZCBpbm5lciBwYXRoIHdvbid0IGJlIHVzZWQgYW55bW9yZS4gVW5saW5rIGl0ICovCisJaWYg KG1hdHBhdGgpCisJCXVubGlua19wYXRoKCZtYXRwYXRoLCAwLCBmYWxzZSwgdHJ1ZSk7CisK IAkvKgogCSAqIENvbnNpZGVyIHBhcnRpYWwgbmVzdGxvb3AgYW5kIG1lcmdlam9pbiBwbGFu IGlmIG91dGVycmVsIGhhcyBhbnkKIAkgKiBwYXJ0aWFsIHBhdGggYW5kIHRoZSBqb2lucmVs IGlzIHBhcmFsbGVsLXNhZmUuICBIb3dldmVyLCB3ZSBjYW4ndAotLSAKMi41MC4wCgo= --------------dcIs0vJwQBenKpXyRmzGGv73--