Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ohobL-0000X2-3V for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Oct 2022 08:57:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ohobJ-0005A5-T1 for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Oct 2022 08:57:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ohobJ-00059w-AV for pgsql-hackers@lists.postgresql.org; Mon, 10 Oct 2022 08:57:29 +0000 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ohobF-0002qy-BD for pgsql-hackers@postgresql.org; Mon, 10 Oct 2022 08:57:28 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 57FC0320077A for ; Mon, 10 Oct 2022 04:57:24 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Mon, 10 Oct 2022 04:57:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1665392243; x=1665478643; bh=HOla8gaum/JN4aNqnotnF1q1CmBw mT/tarUvaBuBVZc=; b=QCF3oXIWhCjeW43DRrxMhZdWMjsfg1S/7EcrVVOKGYHq FtMC36YXkZCyz7lWtmy1aMxSJRAPRUHWf+AN5Xfjtwb0n6cfAX+ROaJMyKmZAmYf LE5dF9qFfXw60VDhxbIMWVUcc/7/g34RKBLZ4Ouk02azqCy9RL8yz7uaQVTXIAMV o1zwLcyH6PwLYIY5P+SgLsvwE7RIw3Wzaqk8tezC2mcR6b8Fq8a+7TBZ5Ogd/PoG USesDHRmQP8vE2GPtYpPmduWWd5J5RWBLB47TOSucOUT06K/qm87rYXN1OjFE/qG jZHnzcfjDV2sWfSXjGU0aUa95UOaN02RObiENf09kQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeejgedgtdehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 10 Oct 2022 04:57:22 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------1LK6ynpvtqvI32eIWRDqzzBy" Message-ID: <289c2e45-c7d9-5ce4-7eff-a9e2a33e1580@enterprisedb.com> Date: Mon, 10 Oct 2022 10:57:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: clean up pid_t printing and get rid of pgpid_t Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------1LK6ynpvtqvI32eIWRDqzzBy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 04.10.22 10:15, Peter Eisentraut wrote: > I wanted to propose the attached patch to get rid of the custom pgpid_t > typedef in pg_ctl.  Since we liberally use pid_t elsewhere, this seemed > plausible. > > However, this patch fails the CompilerWarnings job on Cirrus, because > apparently under mingw, pid_t is "volatile long long int", so all the > printf placeholders mismatch.  However, we print pid_t as %d in a lot of > other places, so I'm confused why this fails here. I figured out that in most places we actually store PIDs in int, and in the cases where we use pid_t, casts before printing are indeed used and necessary. So nevermind that. In any case, I took this opportunity to standardize the printing of PIDs as %d. There were a few stragglers. And then the original patch to get rid of pgpid_t in pg_ctl, now updated with the correct casts for printing. I confirmed that this now passes the CompilerWarnings job. --------------1LK6ynpvtqvI32eIWRDqzzBy Content-Type: text/plain; charset=UTF-8; name="v2-0001-doc-Correct-type-of-bgw_notify_pid.patch" Content-Disposition: attachment; filename="v2-0001-doc-Correct-type-of-bgw_notify_pid.patch" Content-Transfer-Encoding: base64 RnJvbSA3MmIwNjIwZjM4MjRlZjkxYmY5ZjY0YjQ4MTRlNTg3NGY4MTUyMzIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxMCBPY3QgMjAyMiAxMDowNDo0NSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMS8zXSBkb2M6IENvcnJlY3QgdHlwZSBvZiBiZ3dfbm90aWZ5X3BpZAoK VGhpcyBoYXMgYXBwYXJlbnRseSBiZWVuIHdyb25nIHNpbmNlIHRoZSBiZWdpbm5pbmcKKDA5 MGQwZjIwNTA2NDc5NTg4NjVjYjQ5NWRmZjc0YWY3MjU3ZDJiYjQpLgotLS0KIGRvYy9zcmMv c2dtbC9iZ3dvcmtlci5zZ21sIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Jnd29ya2Vy LnNnbWwgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbAppbmRleCAzZDRlNGFmY2Y5MTku LjdiYTVkYTI3ZTUwYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwKQEAgLTYzLDcgKzYzLDcgQEAgPHRp dGxlPkJhY2tncm91bmQgV29ya2VyIFByb2Nlc3NlczwvdGl0bGU+CiAgICAgY2hhciAgICAg ICAgYmd3X2Z1bmN0aW9uX25hbWVbQkdXX01BWExFTl07CiAgICAgRGF0dW0gICAgICAgYmd3 X21haW5fYXJnOwogICAgIGNoYXIgICAgICAgIGJnd19leHRyYVtCR1dfRVhUUkFMRU5dOwot ICAgIGludCAgICAgICAgIGJnd19ub3RpZnlfcGlkOworICAgIHBpZF90ICAgICAgIGJnd19u b3RpZnlfcGlkOwogfSBCYWNrZ3JvdW5kV29ya2VyOwogPC9wcm9ncmFtbGlzdGluZz4KICAg PC9wYXJhPgoKYmFzZS1jb21taXQ6IDA2ZGJkNjE5YmZiZmUwM2ZlZmE3MjIzODM4NjkwZDQw MTJmODc0YWQKLS0gCjIuMzcuMwoK --------------1LK6ynpvtqvI32eIWRDqzzBy Content-Type: text/plain; charset=UTF-8; name="v2-0002-Standardize-format-for-printing-PIDs.patch" Content-Disposition: attachment; filename="v2-0002-Standardize-format-for-printing-PIDs.patch" Content-Transfer-Encoding: base64 RnJvbSBjNDA1YzRhOTQyYzg2MWE3MjA2NjIwMzU5ODNkY2EyMzdmYjkyNTI3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxMCBPY3QgMjAyMiAxMDowNzoxNCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMi8zXSBTdGFuZGFyZGl6ZSBmb3JtYXQgZm9yIHByaW50aW5nIFBJRHMK Ck1vc3QgY29kZSBwcmludHMgUElEcyBhcyAlZCwgYnV0IHNvbWUgY29kZSB0cmllZCB0byBw cmludCB0aGVtIGFzIGxvbmcKb3IgdW5zaWduZWQgbG9uZy4gIFdoaWxlIHRoaXMgaXMgaW4g dGhlb3J5IGFsbG93ZWQsIHRoZSBmYWN0IHRoYXQgUElEcwpmaXQgaW50byBpbnQgaXMgZGVl cGx5IGJha2VkIGludG8gYWxsIFBvc3RncmVTUUwgY29kZSwgc28gdGhlc2UgcmFuZG9tCmRl dmlhdGlvbnMgZG9uJ3QgYWNjb21wbGlzaCBhbnl0aGluZyBleGNlcHQgY29uZnVzaW9uLgoK Tm90ZSB0aGF0IHdlIHN0aWxsIG5lZWQgY2FzdHMgZnJvbSBwaWRfdCB0byBpbnQsIGJlY2F1 c2Ugb24gNjQtYml0Ck1pbkdXLCBwaWRfdCBpcyBsb25nIGxvbmcgaW50LiAgKEJ1dCBwZXIg YWJvdmUsIGFjdHVhbGx5IHN1cHBvcnRpbmcKdGhhdCByYW5nZSBpbiBQb3N0Z3JlU1FMIGNv ZGUgd291bGQgYmUgbWFqb3Igc3VyZ2VyeSBhbmQgcHJvYmFibHkgbm90CnVzZWZ1bC4pCi0t LQogY29udHJpYi9wZ19wcmV3YXJtL2F1dG9wcmV3YXJtLmMgICAgIHwgMjAgKysrKysrKysr Ky0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyAgICB8ICA0 ICsrLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyB8ICA0ICsrLS0K IDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvY29udHJpYi9wZ19wcmV3YXJtL2F1dG9wcmV3YXJtLmMgYi9jb250cmli L3BnX3ByZXdhcm0vYXV0b3ByZXdhcm0uYwppbmRleCBjOGQ2NzNhMjBlMzYuLjE4NDNiMTg2 MmU1NyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19wcmV3YXJtL2F1dG9wcmV3YXJtLmMKKysr IGIvY29udHJpYi9wZ19wcmV3YXJtL2F1dG9wcmV3YXJtLmMKQEAgLTE5Myw4ICsxOTMsOCBA QCBhdXRvcHJld2FybV9tYWluKERhdHVtIG1haW5fYXJnKQogCXsKIAkJTFdMb2NrUmVsZWFz ZSgmYXB3X3N0YXRlLT5sb2NrKTsKIAkJZXJlcG9ydChMT0csCi0JCQkJKGVycm1zZygiYXV0 b3ByZXdhcm0gd29ya2VyIGlzIGFscmVhZHkgcnVubmluZyB1bmRlciBQSUQgJWx1IiwKLQkJ CQkJCSh1bnNpZ25lZCBsb25nKSBhcHdfc3RhdGUtPmJnd29ya2VyX3BpZCkpKTsKKwkJCQko ZXJybXNnKCJhdXRvcHJld2FybSB3b3JrZXIgaXMgYWxyZWFkeSBydW5uaW5nIHVuZGVyIFBJ RCAlZCIsCisJCQkJCQkoaW50KSBhcHdfc3RhdGUtPmJnd29ya2VyX3BpZCkpKTsKIAkJcmV0 dXJuOwogCX0KIAlhcHdfc3RhdGUtPmJnd29ya2VyX3BpZCA9IE15UHJvY1BpZDsKQEAgLTMw Myw4ICszMDMsOCBAQCBhcHdfbG9hZF9idWZmZXJzKHZvaWQpCiAJewogCQlMV0xvY2tSZWxl YXNlKCZhcHdfc3RhdGUtPmxvY2spOwogCQllcmVwb3J0KExPRywKLQkJCQkoZXJybXNnKCJz a2lwcGluZyBwcmV3YXJtIGJlY2F1c2UgYmxvY2sgZHVtcCBmaWxlIGlzIGJlaW5nIHdyaXR0 ZW4gYnkgUElEICVsdSIsCi0JCQkJCQkodW5zaWduZWQgbG9uZykgYXB3X3N0YXRlLT5waWRf dXNpbmdfZHVtcGZpbGUpKSk7CisJCQkJKGVycm1zZygic2tpcHBpbmcgcHJld2FybSBiZWNh dXNlIGJsb2NrIGR1bXAgZmlsZSBpcyBiZWluZyB3cml0dGVuIGJ5IFBJRCAlZCIsCisJCQkJ CQkoaW50KSBhcHdfc3RhdGUtPnBpZF91c2luZ19kdW1wZmlsZSkpKTsKIAkJcmV0dXJuOwog CX0KIAlMV0xvY2tSZWxlYXNlKCZhcHdfc3RhdGUtPmxvY2spOwpAQCAtNTk5LDEyICs1OTks MTIgQEAgYXB3X2R1bXBfbm93KGJvb2wgaXNfYmd3b3JrZXIsIGJvb2wgZHVtcF91bmxvZ2dl ZCkKIAl7CiAJCWlmICghaXNfYmd3b3JrZXIpCiAJCQllcmVwb3J0KEVSUk9SLAotCQkJCQko ZXJybXNnKCJjb3VsZCBub3QgcGVyZm9ybSBibG9jayBkdW1wIGJlY2F1c2UgZHVtcCBmaWxl IGlzIGJlaW5nIHVzZWQgYnkgUElEICVsdSIsCi0JCQkJCQkJKHVuc2lnbmVkIGxvbmcpIGFw d19zdGF0ZS0+cGlkX3VzaW5nX2R1bXBmaWxlKSkpOworCQkJCQkoZXJybXNnKCJjb3VsZCBu b3QgcGVyZm9ybSBibG9jayBkdW1wIGJlY2F1c2UgZHVtcCBmaWxlIGlzIGJlaW5nIHVzZWQg YnkgUElEICVkIiwKKwkJCQkJCQkoaW50KSBhcHdfc3RhdGUtPnBpZF91c2luZ19kdW1wZmls ZSkpKTsKIAogCQllcmVwb3J0KExPRywKLQkJCQkoZXJybXNnKCJza2lwcGluZyBibG9jayBk dW1wIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBiZWluZyBwZXJmb3JtZWQgYnkgUElEICVsdSIs Ci0JCQkJCQkodW5zaWduZWQgbG9uZykgYXB3X3N0YXRlLT5waWRfdXNpbmdfZHVtcGZpbGUp KSk7CisJCQkJKGVycm1zZygic2tpcHBpbmcgYmxvY2sgZHVtcCBiZWNhdXNlIGl0IGlzIGFs cmVhZHkgYmVpbmcgcGVyZm9ybWVkIGJ5IFBJRCAlZCIsCisJCQkJCQkoaW50KSBhcHdfc3Rh dGUtPnBpZF91c2luZ19kdW1wZmlsZSkpKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC03Mzcs OCArNzM3LDggQEAgYXV0b3ByZXdhcm1fc3RhcnRfd29ya2VyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJaWYgKHBpZCAhPSBJbnZhbGlkUGlkKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJj b2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAotCQkJCSBl cnJtc2coImF1dG9wcmV3YXJtIHdvcmtlciBpcyBhbHJlYWR5IHJ1bm5pbmcgdW5kZXIgUElE ICVsdSIsCi0JCQkJCQkodW5zaWduZWQgbG9uZykgcGlkKSkpOworCQkJCSBlcnJtc2coImF1 dG9wcmV3YXJtIHdvcmtlciBpcyBhbHJlYWR5IHJ1bm5pbmcgdW5kZXIgUElEICVkIiwKKwkJ CQkJCShpbnQpIHBpZCkpKTsKIAogCWFwd19zdGFydF9sZWFkZXJfd29ya2VyKCk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyBiL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwppbmRleCA4ZGQ3ZDY0NjMwYzQuLjBkNzJkZTI0 YjAyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCisr KyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwpAQCAtMzg5LDggKzM4OSw4 IEBAIEJhY2tncm91bmRXb3JrZXJTdGF0ZUNoYW5nZShib29sIGFsbG93X25ld193b3JrZXJz KQogCQlydy0+cndfd29ya2VyLmJnd19ub3RpZnlfcGlkID0gc2xvdC0+d29ya2VyLmJnd19u b3RpZnlfcGlkOwogCQlpZiAoIVBvc3RtYXN0ZXJNYXJrUElERm9yV29ya2VyTm90aWZ5KHJ3 LT5yd193b3JrZXIuYmd3X25vdGlmeV9waWQpKQogCQl7Ci0JCQllbG9nKERFQlVHMSwgIndv cmtlciBub3RpZmljYXRpb24gUElEICVsZCBpcyBub3QgdmFsaWQiLAotCQkJCSAobG9uZykg cnctPnJ3X3dvcmtlci5iZ3dfbm90aWZ5X3BpZCk7CisJCQllbG9nKERFQlVHMSwgIndvcmtl ciBub3RpZmljYXRpb24gUElEICVkIGlzIG5vdCB2YWxpZCIsCisJCQkJIChpbnQpIHJ3LT5y d193b3JrZXIuYmd3X25vdGlmeV9waWQpOwogCQkJcnctPnJ3X3dvcmtlci5iZ3dfbm90aWZ5 X3BpZCA9IDA7CiAJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv cHJvY3NpZ25hbC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmlu ZGV4IDIxYTlmYzBmZGQyZS4uNzc2NzY1N2YyNzEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvcHJvY3NpZ25hbC5jCkBAIC00MTYsOCArNDE2LDggQEAgV2FpdEZvclByb2NTaWduYWxC YXJyaWVyKHVpbnQ2NCBnZW5lcmF0aW9uKQogCQkJCQkJCQkJCQk1MDAwLAogCQkJCQkJCQkJ CQlXQUlUX0VWRU5UX1BST0NfU0lHTkFMX0JBUlJJRVIpKQogCQkJCWVyZXBvcnQoTE9HLAot CQkJCQkJKGVycm1zZygic3RpbGwgd2FpdGluZyBmb3IgYmFja2VuZCB3aXRoIFBJRCAlbHUg dG8gYWNjZXB0IFByb2NTaWduYWxCYXJyaWVyIiwKLQkJCQkJCQkJKHVuc2lnbmVkIGxvbmcp IHNsb3QtPnBzc19waWQpKSk7CisJCQkJCQkoZXJybXNnKCJzdGlsbCB3YWl0aW5nIGZvciBi YWNrZW5kIHdpdGggUElEICVkIHRvIGFjY2VwdCBQcm9jU2lnbmFsQmFycmllciIsCisJCQkJ CQkJCShpbnQpIHNsb3QtPnBzc19waWQpKSk7CiAJCQlvbGR2YWwgPSBwZ19hdG9taWNfcmVh ZF91NjQoJnNsb3QtPnBzc19iYXJyaWVyR2VuZXJhdGlvbik7CiAJCX0KIAkJQ29uZGl0aW9u VmFyaWFibGVDYW5jZWxTbGVlcCgpOwotLSAKMi4zNy4zCgo= --------------1LK6ynpvtqvI32eIWRDqzzBy Content-Type: text/plain; charset=UTF-8; name="v2-0003-Remove-pgpid_t-type-use-pid_t-instead.patch" Content-Disposition: attachment; filename="v2-0003-Remove-pgpid_t-type-use-pid_t-instead.patch" Content-Transfer-Encoding: base64 RnJvbSAwNzliNDZiN2Q0OGI4MDNiMTI1MmExZTNmNWZlMzcwOTQzNDg3ZTQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxMCBPY3QgMjAyMiAxMDoxMzozNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMy8zXSBSZW1vdmUgcGdwaWRfdCB0eXBlLCB1c2UgcGlkX3QgaW5zdGVh ZAoKSXQncyB1bmNsZWFyIHdoeSBhIHNlcGFyYXRlIHR5cGUgd291bGQgYmUgbmVlZGVkIGhl cmUuICBXZSB1c2UgcGxhaW4KcGlkX3QgZXZlcnl3aGVyZSBlbHNlLgoKUmV2ZXJ0cyA2NmZh NmViYTVhNjFiZTc0MGE2YzA3ZGU5MmM0MjIyMWZhZTc5ZTljLgotLS0KIHNyYy9iaW4vcGdf Y3RsL3BnX2N0bC5jICAgICAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IHwgICAxIC0KIDIgZmls ZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMgYi9zcmMvYmluL3BnX2N0bC9wZ19jdGwu YwppbmRleCA5MjkxYzYxZDAwMGYuLmE1MDlmYzkxMDllOCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19jdGwvcGdfY3RsLmMKKysrIGIvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKQEAgLTMz LDkgKzMzLDYgQEAKICNpbmNsdWRlICJwcWV4cGJ1ZmZlci5oIgogI2VuZGlmCiAKLS8qIFBJ RCBjYW4gYmUgbmVnYXRpdmUgZm9yIHN0YW5kYWxvbmUgYmFja2VuZCAqLwotdHlwZWRlZiBs b25nIHBncGlkX3Q7Ci0KIAogdHlwZWRlZiBlbnVtCiB7CkBAIC0xMDMsNyArMTAwLDcgQEAg c3RhdGljIGNoYXIgYmFja3VwX2ZpbGVbTUFYUEdQQVRIXTsKIHN0YXRpYyBjaGFyIHByb21v dGVfZmlsZVtNQVhQR1BBVEhdOwogc3RhdGljIGNoYXIgbG9ncm90YXRlX2ZpbGVbTUFYUEdQ QVRIXTsKIAotc3RhdGljIHZvbGF0aWxlIHBncGlkX3QgcG9zdG1hc3RlclBJRCA9IC0xOwor c3RhdGljIHZvbGF0aWxlIHBpZF90IHBvc3RtYXN0ZXJQSUQgPSAtMTsKIAogI2lmZGVmIFdJ TjMyCiBzdGF0aWMgRFdPUkQgcGdjdGxfc3RhcnRfdHlwZSA9IFNFUlZJQ0VfQVVUT19TVEFS VDsKQEAgLTEyOSw3ICsxMjYsNyBAQCBzdGF0aWMgdm9pZCBkb19yZWxvYWQodm9pZCk7CiBz dGF0aWMgdm9pZCBkb19zdGF0dXModm9pZCk7CiBzdGF0aWMgdm9pZCBkb19wcm9tb3RlKHZv aWQpOwogc3RhdGljIHZvaWQgZG9fbG9ncm90YXRlKHZvaWQpOwotc3RhdGljIHZvaWQgZG9f a2lsbChwZ3BpZF90IHBpZCk7CitzdGF0aWMgdm9pZCBkb19raWxsKHBpZF90IHBpZCk7CiBz dGF0aWMgdm9pZCBwcmludF9tc2coY29uc3QgY2hhciAqbXNnKTsKIHN0YXRpYyB2b2lkIGFk anVzdF9kYXRhX2Rpcih2b2lkKTsKIApAQCAtMTQ3LDEzICsxNDQsMTMgQEAgc3RhdGljIGlu dAlDcmVhdGVSZXN0cmljdGVkUHJvY2VzcyhjaGFyICpjbWQsIFBST0NFU1NfSU5GT1JNQVRJ T04gKnByb2Nlc3NJbmZvLAogc3RhdGljIFBUT0tFTl9QUklWSUxFR0VTIEdldFByaXZpbGVn ZXNUb0RlbGV0ZShIQU5ETEUgaFRva2VuKTsKICNlbmRpZgogCi1zdGF0aWMgcGdwaWRfdCBn ZXRfcGdwaWQoYm9vbCBpc19zdGF0dXNfcmVxdWVzdCk7CitzdGF0aWMgcGlkX3QgZ2V0X3Bn cGlkKGJvb2wgaXNfc3RhdHVzX3JlcXVlc3QpOwogc3RhdGljIGNoYXIgKipyZWFkZmlsZShj b25zdCBjaGFyICpwYXRoLCBpbnQgKm51bWxpbmVzKTsKIHN0YXRpYyB2b2lkIGZyZWVfcmVh ZGZpbGUoY2hhciAqKm9wdGxpbmVzKTsKLXN0YXRpYyBwZ3BpZF90IHN0YXJ0X3Bvc3RtYXN0 ZXIodm9pZCk7CitzdGF0aWMgcGlkX3Qgc3RhcnRfcG9zdG1hc3Rlcih2b2lkKTsKIHN0YXRp YyB2b2lkIHJlYWRfcG9zdF9vcHRzKHZvaWQpOwogCi1zdGF0aWMgV2FpdFBNUmVzdWx0IHdh aXRfZm9yX3Bvc3RtYXN0ZXJfc3RhcnQocGdwaWRfdCBwbV9waWQsIGJvb2wgZG9fY2hlY2tw b2ludCk7CitzdGF0aWMgV2FpdFBNUmVzdWx0IHdhaXRfZm9yX3Bvc3RtYXN0ZXJfc3RhcnQo cGlkX3QgcG1fcGlkLCBib29sIGRvX2NoZWNrcG9pbnQpOwogc3RhdGljIGJvb2wgd2FpdF9m b3JfcG9zdG1hc3Rlcl9zdG9wKHZvaWQpOwogc3RhdGljIGJvb2wgd2FpdF9mb3JfcG9zdG1h c3Rlcl9wcm9tb3RlKHZvaWQpOwogc3RhdGljIGJvb2wgcG9zdG1hc3Rlcl9pc19hbGl2ZShw aWRfdCBwaWQpOwpAQCAtMjQ1LDExICsyNDIsMTEgQEAgcHJpbnRfbXNnKGNvbnN0IGNoYXIg Km1zZykKIAl9CiB9CiAKLXN0YXRpYyBwZ3BpZF90CitzdGF0aWMgcGlkX3QKIGdldF9wZ3Bp ZChib29sIGlzX3N0YXR1c19yZXF1ZXN0KQogewogCUZJTEUJICAgKnBpZGY7Ci0JbG9uZwkJ cGlkOworCWludAkJCXBpZDsKIAlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOwogCiAJaWYgKHN0YXQo cGdfZGF0YSwgJnN0YXRidWYpICE9IDApCkBAIC0yODksNyArMjg2LDcgQEAgZ2V0X3BncGlk KGJvb2wgaXNfc3RhdHVzX3JlcXVlc3QpCiAJCQlleGl0KDEpOwogCQl9CiAJfQotCWlmIChm c2NhbmYocGlkZiwgIiVsZCIsICZwaWQpICE9IDEpCisJaWYgKGZzY2FuZihwaWRmLCAiJWQi LCAmcGlkKSAhPSAxKQogCXsKIAkJLyogSXMgdGhlIGZpbGUgZW1wdHk/ICovCiAJCWlmIChm dGVsbChwaWRmKSA9PSAwICYmIGZlb2YocGlkZikpCkBAIC0zMDEsNyArMjk4LDcgQEAgZ2V0 X3BncGlkKGJvb2wgaXNfc3RhdHVzX3JlcXVlc3QpCiAJCWV4aXQoMSk7CiAJfQogCWZjbG9z ZShwaWRmKTsKLQlyZXR1cm4gKHBncGlkX3QpIHBpZDsKKwlyZXR1cm4gKHBpZF90KSBwaWQ7 CiB9CiAKIApAQCAtNDM5LDEzICs0MzYsMTMgQEAgZnJlZV9yZWFkZmlsZShjaGFyICoqb3B0 bGluZXMpCiAgKiBPbiBXaW5kb3dzLCB3ZSBhbHNvIHNhdmUgYXNpZGUgYSBoYW5kbGUgdG8g dGhlIHNoZWxsIHByb2Nlc3MgaW4KICAqICJwb3N0bWFzdGVyUHJvY2VzcyIsIHdoaWNoIHRo ZSBjYWxsZXIgc2hvdWxkIGNsb3NlIHdoZW4gZG9uZSB3aXRoIGl0LgogICovCi1zdGF0aWMg cGdwaWRfdAorc3RhdGljIHBpZF90CiBzdGFydF9wb3N0bWFzdGVyKHZvaWQpCiB7CiAJY2hh cgkgICAqY21kOwogCiAjaWZuZGVmIFdJTjMyCi0JcGdwaWRfdAkJcG1fcGlkOworCXBpZF90 CQlwbV9waWQ7CiAKIAkvKiBGbHVzaCBzdGRpbyBjaGFubmVscyBqdXN0IGJlZm9yZSBmb3Jr LCB0byBhdm9pZCBkb3VibGUtb3V0cHV0IHByb2JsZW1zICovCiAJZmZsdXNoKE5VTEwpOwpA QCAtNTkzLDcgKzU5MCw3IEBAIHN0YXJ0X3Bvc3RtYXN0ZXIodm9pZCkKICAqIG1hbmFnZXIg Y2hlY2twb2ludCwgaXQncyBnb3Qgbm90aGluZyB0byBkbyB3aXRoIGRhdGFiYXNlIGNoZWNr cG9pbnRzISEKICAqLwogc3RhdGljIFdhaXRQTVJlc3VsdAotd2FpdF9mb3JfcG9zdG1hc3Rl cl9zdGFydChwZ3BpZF90IHBtX3BpZCwgYm9vbCBkb19jaGVja3BvaW50KQord2FpdF9mb3Jf cG9zdG1hc3Rlcl9zdGFydChwaWRfdCBwbV9waWQsIGJvb2wgZG9fY2hlY2twb2ludCkKIHsK IAlpbnQJCQlpOwogCkBAIC02MTAsNyArNjA3LDcgQEAgd2FpdF9mb3JfcG9zdG1hc3Rlcl9z dGFydChwZ3BpZF90IHBtX3BpZCwgYm9vbCBkb19jaGVja3BvaW50KQogCQkJbnVtbGluZXMg Pj0gTE9DS19GSUxFX0xJTkVfUE1fU1RBVFVTKQogCQl7CiAJCQkvKiBGaWxlIGlzIGNvbXBs ZXRlIGVub3VnaCBmb3IgdXMsIHBhcnNlIGl0ICovCi0JCQlwZ3BpZF90CQlwbXBpZDsKKwkJ CXBpZF90CQlwbXBpZDsKIAkJCXRpbWVfdAkJcG1zdGFydDsKIAogCQkJLyoKQEAgLTY2NSw3 ICs2NjIsNyBAQCB3YWl0X2Zvcl9wb3N0bWFzdGVyX3N0YXJ0KHBncGlkX3QgcG1fcGlkLCBi b29sIGRvX2NoZWNrcG9pbnQpCiAJCXsKIAkJCWludAkJCWV4aXRzdGF0dXM7CiAKLQkJCWlm ICh3YWl0cGlkKChwaWRfdCkgcG1fcGlkLCAmZXhpdHN0YXR1cywgV05PSEFORykgPT0gKHBp ZF90KSBwbV9waWQpCisJCQlpZiAod2FpdHBpZChwbV9waWQsICZleGl0c3RhdHVzLCBXTk9I QU5HKSA9PSBwbV9waWQpCiAJCQkJcmV0dXJuIFBPU1RNQVNURVJfRkFJTEVEOwogCQl9CiAj ZWxzZQpAQCAtNzE2LDEyICs3MTMsMTIgQEAgd2FpdF9mb3JfcG9zdG1hc3Rlcl9zdG9wKHZv aWQpCiAKIAlmb3IgKGNudCA9IDA7IGNudCA8IHdhaXRfc2Vjb25kcyAqIFdBSVRTX1BFUl9T RUM7IGNudCsrKQogCXsKLQkJcGdwaWRfdAkJcGlkOworCQlwaWRfdAkJcGlkOwogCiAJCWlm ICgocGlkID0gZ2V0X3BncGlkKGZhbHNlKSkgPT0gMCkKIAkJCXJldHVybiB0cnVlOwkJLyog cGlkIGZpbGUgaXMgZ29uZSAqLwogCi0JCWlmIChraWxsKChwaWRfdCkgcGlkLCAwKSAhPSAw KQorCQlpZiAoa2lsbChwaWQsIDApICE9IDApCiAJCXsKIAkJCS8qCiAJCQkgKiBQb3N0bWFz dGVyIHNlZW1zIHRvIGhhdmUgZGllZC4gIENoZWNrIHRoZSBwaWQgZmlsZSBvbmNlIG1vcmUg dG8KQEAgLTc1MywxMiArNzUwLDEyIEBAIHdhaXRfZm9yX3Bvc3RtYXN0ZXJfcHJvbW90ZSh2 b2lkKQogCiAJZm9yIChjbnQgPSAwOyBjbnQgPCB3YWl0X3NlY29uZHMgKiBXQUlUU19QRVJf U0VDOyBjbnQrKykKIAl7Ci0JCXBncGlkX3QJCXBpZDsKKwkJcGlkX3QJCXBpZDsKIAkJREJT dGF0ZQkJc3RhdGU7CiAKIAkJaWYgKChwaWQgPSBnZXRfcGdwaWQoZmFsc2UpKSA9PSAwKQog CQkJcmV0dXJuIGZhbHNlOwkJLyogcGlkIGZpbGUgaXMgZ29uZSAqLwotCQlpZiAoa2lsbCgo cGlkX3QpIHBpZCwgMCkgIT0gMCkKKwkJaWYgKGtpbGwocGlkLCAwKSAhPSAwKQogCQkJcmV0 dXJuIGZhbHNlOwkJLyogcG9zdG1hc3RlciBkaWVkICovCiAKIAkJc3RhdGUgPSBnZXRfY29u dHJvbF9kYnN0YXRlKCk7CkBAIC04NTUsOCArODUyLDggQEAgdHJhcF9zaWdpbnRfZHVyaW5n X3N0YXJ0dXAoU0lHTkFMX0FSR1MpCiAJaWYgKHBvc3RtYXN0ZXJQSUQgIT0gLTEpCiAJewog CQlpZiAoa2lsbChwb3N0bWFzdGVyUElELCBTSUdJTlQpICE9IDApCi0JCQl3cml0ZV9zdGRl cnIoXygiJXM6IGNvdWxkIG5vdCBzZW5kIHN0b3Agc2lnbmFsIChQSUQ6ICVsZCk6ICVzXG4i KSwKLQkJCQkJCSBwcm9nbmFtZSwgKHBncGlkX3QpIHBvc3RtYXN0ZXJQSUQsIHN0cmVycm9y KGVycm5vKSk7CisJCQl3cml0ZV9zdGRlcnIoXygiJXM6IGNvdWxkIG5vdCBzZW5kIHN0b3Ag c2lnbmFsIChQSUQ6ICVkKTogJXNcbiIpLAorCQkJCQkJIHByb2duYW1lLCAoaW50KSBwb3N0 bWFzdGVyUElELCBzdHJlcnJvcihlcnJubykpOwogCX0KIAogCS8qCkBAIC05MjYsOCArOTIz LDggQEAgZG9faW5pdCh2b2lkKQogc3RhdGljIHZvaWQKIGRvX3N0YXJ0KHZvaWQpCiB7Ci0J cGdwaWRfdAkJb2xkX3BpZCA9IDA7Ci0JcGdwaWRfdAkJcG1fcGlkOworCXBpZF90CQlvbGRf cGlkID0gMDsKKwlwaWRfdAkJcG1fcGlkOwogCiAJaWYgKGN0bF9jb21tYW5kICE9IFJFU1RB UlRfQ09NTUFORCkKIAl7CkBAIC0xMDE4LDcgKzEwMTUsNyBAQCBkb19zdGFydCh2b2lkKQog c3RhdGljIHZvaWQKIGRvX3N0b3Aodm9pZCkKIHsKLQlwZ3BpZF90CQlwaWQ7CisJcGlkX3QJ CXBpZDsKIAogCXBpZCA9IGdldF9wZ3BpZChmYWxzZSk7CiAKQEAgLTEwMzIsMTQgKzEwMjks MTQgQEAgZG9fc3RvcCh2b2lkKQogCXsKIAkJcGlkID0gLXBpZDsKIAkJd3JpdGVfc3RkZXJy KF8oIiVzOiBjYW5ub3Qgc3RvcCBzZXJ2ZXI7ICIKLQkJCQkJICAgInNpbmdsZS11c2VyIHNl cnZlciBpcyBydW5uaW5nIChQSUQ6ICVsZClcbiIpLAotCQkJCQkgcHJvZ25hbWUsIHBpZCk7 CisJCQkJCSAgICJzaW5nbGUtdXNlciBzZXJ2ZXIgaXMgcnVubmluZyAoUElEOiAlZClcbiIp LAorCQkJCQkgcHJvZ25hbWUsIChpbnQpIHBpZCk7CiAJCWV4aXQoMSk7CiAJfQogCi0JaWYg KGtpbGwoKHBpZF90KSBwaWQsIHNpZykgIT0gMCkKKwlpZiAoa2lsbChwaWQsIHNpZykgIT0g MCkKIAl7Ci0JCXdyaXRlX3N0ZGVycihfKCIlczogY291bGQgbm90IHNlbmQgc3RvcCBzaWdu YWwgKFBJRDogJWxkKTogJXNcbiIpLCBwcm9nbmFtZSwgcGlkLAorCQl3cml0ZV9zdGRlcnIo XygiJXM6IGNvdWxkIG5vdCBzZW5kIHN0b3Agc2lnbmFsIChQSUQ6ICVkKTogJXNcbiIpLCBw cm9nbmFtZSwgKGludCkgcGlkLAogCQkJCQkgc3RyZXJyb3IoZXJybm8pKTsKIAkJZXhpdCgx KTsKIAl9CkBAIC0xMDc3LDcgKzEwNzQsNyBAQCBkb19zdG9wKHZvaWQpCiBzdGF0aWMgdm9p ZAogZG9fcmVzdGFydCh2b2lkKQogewotCXBncGlkX3QJCXBpZDsKKwlwaWRfdAkJcGlkOwog CiAJcGlkID0gZ2V0X3BncGlkKGZhbHNlKTsKIApAQCAtMTA5MywyMSArMTA5MCwyMSBAQCBk b19yZXN0YXJ0KHZvaWQpCiAJZWxzZSBpZiAocGlkIDwgMCkJCQkvKiBzdGFuZGFsb25lIGJh Y2tlbmQsIG5vdCBwb3N0bWFzdGVyICovCiAJewogCQlwaWQgPSAtcGlkOwotCQlpZiAocG9z dG1hc3Rlcl9pc19hbGl2ZSgocGlkX3QpIHBpZCkpCisJCWlmIChwb3N0bWFzdGVyX2lzX2Fs aXZlKHBpZCkpCiAJCXsKIAkJCXdyaXRlX3N0ZGVycihfKCIlczogY2Fubm90IHJlc3RhcnQg c2VydmVyOyAiCi0JCQkJCQkgICAic2luZ2xlLXVzZXIgc2VydmVyIGlzIHJ1bm5pbmcgKFBJ RDogJWxkKVxuIiksCi0JCQkJCQkgcHJvZ25hbWUsIHBpZCk7CisJCQkJCQkgICAic2luZ2xl LXVzZXIgc2VydmVyIGlzIHJ1bm5pbmcgKFBJRDogJWQpXG4iKSwKKwkJCQkJCSBwcm9nbmFt ZSwgKGludCkgcGlkKTsKIAkJCXdyaXRlX3N0ZGVycihfKCJQbGVhc2UgdGVybWluYXRlIHRo ZSBzaW5nbGUtdXNlciBzZXJ2ZXIgYW5kIHRyeSBhZ2Fpbi5cbiIpKTsKIAkJCWV4aXQoMSk7 CiAJCX0KIAl9CiAKLQlpZiAocG9zdG1hc3Rlcl9pc19hbGl2ZSgocGlkX3QpIHBpZCkpCisJ aWYgKHBvc3RtYXN0ZXJfaXNfYWxpdmUocGlkKSkKIAl7Ci0JCWlmIChraWxsKChwaWRfdCkg cGlkLCBzaWcpICE9IDApCisJCWlmIChraWxsKHBpZCwgc2lnKSAhPSAwKQogCQl7Ci0JCQl3 cml0ZV9zdGRlcnIoXygiJXM6IGNvdWxkIG5vdCBzZW5kIHN0b3Agc2lnbmFsIChQSUQ6ICVs ZCk6ICVzXG4iKSwgcHJvZ25hbWUsIHBpZCwKKwkJCXdyaXRlX3N0ZGVycihfKCIlczogY291 bGQgbm90IHNlbmQgc3RvcCBzaWduYWwgKFBJRDogJWQpOiAlc1xuIiksIHByb2duYW1lLCAo aW50KSBwaWQsCiAJCQkJCQkgc3RyZXJyb3IoZXJybm8pKTsKIAkJCWV4aXQoMSk7CiAJCX0K QEAgLTExMzEsOCArMTEyOCw4IEBAIGRvX3Jlc3RhcnQodm9pZCkKIAl9CiAJZWxzZQogCXsK LQkJd3JpdGVfc3RkZXJyKF8oIiVzOiBvbGQgc2VydmVyIHByb2Nlc3MgKFBJRDogJWxkKSBz ZWVtcyB0byBiZSBnb25lXG4iKSwKLQkJCQkJIHByb2duYW1lLCBwaWQpOworCQl3cml0ZV9z dGRlcnIoXygiJXM6IG9sZCBzZXJ2ZXIgcHJvY2VzcyAoUElEOiAlZCkgc2VlbXMgdG8gYmUg Z29uZVxuIiksCisJCQkJCSBwcm9nbmFtZSwgKGludCkgcGlkKTsKIAkJd3JpdGVfc3RkZXJy KF8oInN0YXJ0aW5nIHNlcnZlciBhbnl3YXlcbiIpKTsKIAl9CiAKQEAgLTExNDIsNyArMTEz OSw3IEBAIGRvX3Jlc3RhcnQodm9pZCkKIHN0YXRpYyB2b2lkCiBkb19yZWxvYWQodm9pZCkK IHsKLQlwZ3BpZF90CQlwaWQ7CisJcGlkX3QJCXBpZDsKIAogCXBpZCA9IGdldF9wZ3BpZChm YWxzZSk7CiAJaWYgKHBpZCA9PSAwKQkJCQkvKiBubyBwaWQgZmlsZSAqLwpAQCAtMTE1NSwx NiArMTE1MiwxNiBAQCBkb19yZWxvYWQodm9pZCkKIAl7CiAJCXBpZCA9IC1waWQ7CiAJCXdy aXRlX3N0ZGVycihfKCIlczogY2Fubm90IHJlbG9hZCBzZXJ2ZXI7ICIKLQkJCQkJICAgInNp bmdsZS11c2VyIHNlcnZlciBpcyBydW5uaW5nIChQSUQ6ICVsZClcbiIpLAotCQkJCQkgcHJv Z25hbWUsIHBpZCk7CisJCQkJCSAgICJzaW5nbGUtdXNlciBzZXJ2ZXIgaXMgcnVubmluZyAo UElEOiAlZClcbiIpLAorCQkJCQkgcHJvZ25hbWUsIChpbnQpIHBpZCk7CiAJCXdyaXRlX3N0 ZGVycihfKCJQbGVhc2UgdGVybWluYXRlIHRoZSBzaW5nbGUtdXNlciBzZXJ2ZXIgYW5kIHRy eSBhZ2Fpbi5cbiIpKTsKIAkJZXhpdCgxKTsKIAl9CiAKLQlpZiAoa2lsbCgocGlkX3QpIHBp ZCwgc2lnKSAhPSAwKQorCWlmIChraWxsKHBpZCwgc2lnKSAhPSAwKQogCXsKLQkJd3JpdGVf c3RkZXJyKF8oIiVzOiBjb3VsZCBub3Qgc2VuZCByZWxvYWQgc2lnbmFsIChQSUQ6ICVsZCk6 ICVzXG4iKSwKLQkJCQkJIHByb2duYW1lLCBwaWQsIHN0cmVycm9yKGVycm5vKSk7CisJCXdy aXRlX3N0ZGVycihfKCIlczogY291bGQgbm90IHNlbmQgcmVsb2FkIHNpZ25hbCAoUElEOiAl ZCk6ICVzXG4iKSwKKwkJCQkJIHByb2duYW1lLCAoaW50KSBwaWQsIHN0cmVycm9yKGVycm5v KSk7CiAJCWV4aXQoMSk7CiAJfQogCkBAIC0xMTgwLDcgKzExNzcsNyBAQCBzdGF0aWMgdm9p ZAogZG9fcHJvbW90ZSh2b2lkKQogewogCUZJTEUJICAgKnBybWZpbGU7Ci0JcGdwaWRfdAkJ cGlkOworCXBpZF90CQlwaWQ7CiAKIAlwaWQgPSBnZXRfcGdwaWQoZmFsc2UpOwogCkBAIC0x MTk0LDggKzExOTEsOCBAQCBkb19wcm9tb3RlKHZvaWQpCiAJewogCQlwaWQgPSAtcGlkOwog CQl3cml0ZV9zdGRlcnIoXygiJXM6IGNhbm5vdCBwcm9tb3RlIHNlcnZlcjsgIgotCQkJCQkg ICAic2luZ2xlLXVzZXIgc2VydmVyIGlzIHJ1bm5pbmcgKFBJRDogJWxkKVxuIiksCi0JCQkJ CSBwcm9nbmFtZSwgcGlkKTsKKwkJCQkJICAgInNpbmdsZS11c2VyIHNlcnZlciBpcyBydW5u aW5nIChQSUQ6ICVkKVxuIiksCisJCQkJCSBwcm9nbmFtZSwgKGludCkgcGlkKTsKIAkJZXhp dCgxKTsKIAl9CiAKQEAgLTEyMjMsMTAgKzEyMjAsMTAgQEAgZG9fcHJvbW90ZSh2b2lkKQog CX0KIAogCXNpZyA9IFNJR1VTUjE7Ci0JaWYgKGtpbGwoKHBpZF90KSBwaWQsIHNpZykgIT0g MCkKKwlpZiAoa2lsbChwaWQsIHNpZykgIT0gMCkKIAl7Ci0JCXdyaXRlX3N0ZGVycihfKCIl czogY291bGQgbm90IHNlbmQgcHJvbW90ZSBzaWduYWwgKFBJRDogJWxkKTogJXNcbiIpLAot CQkJCQkgcHJvZ25hbWUsIHBpZCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJd3JpdGVfc3RkZXJy KF8oIiVzOiBjb3VsZCBub3Qgc2VuZCBwcm9tb3RlIHNpZ25hbCAoUElEOiAlZCk6ICVzXG4i KSwKKwkJCQkJIHByb2duYW1lLCAoaW50KSBwaWQsIHN0cmVycm9yKGVycm5vKSk7CiAJCWlm ICh1bmxpbmsocHJvbW90ZV9maWxlKSAhPSAwKQogCQkJd3JpdGVfc3RkZXJyKF8oIiVzOiBj b3VsZCBub3QgcmVtb3ZlIHByb21vdGUgc2lnbmFsIGZpbGUgXCIlc1wiOiAlc1xuIiksCiAJ CQkJCQkgcHJvZ25hbWUsIHByb21vdGVfZmlsZSwgc3RyZXJyb3IoZXJybm8pKTsKQEAgLTEy NjEsNyArMTI1OCw3IEBAIHN0YXRpYyB2b2lkCiBkb19sb2dyb3RhdGUodm9pZCkKIHsKIAlG SUxFCSAgICpsb2dyb3RhdGVmaWxlOwotCXBncGlkX3QJCXBpZDsKKwlwaWRfdAkJcGlkOwog CiAJcGlkID0gZ2V0X3BncGlkKGZhbHNlKTsKIApAQCAtMTI3NSw4ICsxMjcyLDggQEAgZG9f bG9ncm90YXRlKHZvaWQpCiAJewogCQlwaWQgPSAtcGlkOwogCQl3cml0ZV9zdGRlcnIoXygi JXM6IGNhbm5vdCByb3RhdGUgbG9nIGZpbGU7ICIKLQkJCQkJICAgInNpbmdsZS11c2VyIHNl cnZlciBpcyBydW5uaW5nIChQSUQ6ICVsZClcbiIpLAotCQkJCQkgcHJvZ25hbWUsIHBpZCk7 CisJCQkJCSAgICJzaW5nbGUtdXNlciBzZXJ2ZXIgaXMgcnVubmluZyAoUElEOiAlZClcbiIp LAorCQkJCQkgcHJvZ25hbWUsIChpbnQpIHBpZCk7CiAJCWV4aXQoMSk7CiAJfQogCkBAIC0x Mjk2LDEwICsxMjkzLDEwIEBAIGRvX2xvZ3JvdGF0ZSh2b2lkKQogCX0KIAogCXNpZyA9IFNJ R1VTUjE7Ci0JaWYgKGtpbGwoKHBpZF90KSBwaWQsIHNpZykgIT0gMCkKKwlpZiAoa2lsbChw aWQsIHNpZykgIT0gMCkKIAl7Ci0JCXdyaXRlX3N0ZGVycihfKCIlczogY291bGQgbm90IHNl bmQgbG9nIHJvdGF0aW9uIHNpZ25hbCAoUElEOiAlbGQpOiAlc1xuIiksCi0JCQkJCSBwcm9n bmFtZSwgcGlkLCBzdHJlcnJvcihlcnJubykpOworCQl3cml0ZV9zdGRlcnIoXygiJXM6IGNv dWxkIG5vdCBzZW5kIGxvZyByb3RhdGlvbiBzaWduYWwgKFBJRDogJWQpOiAlc1xuIiksCisJ CQkJCSBwcm9nbmFtZSwgKGludCkgcGlkLCBzdHJlcnJvcihlcnJubykpOwogCQlpZiAodW5s aW5rKGxvZ3JvdGF0ZV9maWxlKSAhPSAwKQogCQkJd3JpdGVfc3RkZXJyKF8oIiVzOiBjb3Vs ZCBub3QgcmVtb3ZlIGxvZyByb3RhdGlvbiBzaWduYWwgZmlsZSBcIiVzXCI6ICVzXG4iKSwK IAkJCQkJCSBwcm9nbmFtZSwgbG9ncm90YXRlX2ZpbGUsIHN0cmVycm9yKGVycm5vKSk7CkBA IC0xMzQxLDcgKzEzMzgsNyBAQCBwb3N0bWFzdGVyX2lzX2FsaXZlKHBpZF90IHBpZCkKIHN0 YXRpYyB2b2lkCiBkb19zdGF0dXModm9pZCkKIHsKLQlwZ3BpZF90CQlwaWQ7CisJcGlkX3QJ CXBpZDsKIAogCXBpZCA9IGdldF9wZ3BpZCh0cnVlKTsKIAkvKiBJcyB0aGVyZSBhIHBpZCBm aWxlPyAqLwpAQCAtMTM1MSwyNCArMTM0OCwyNCBAQCBkb19zdGF0dXModm9pZCkKIAkJaWYg KHBpZCA8IDApCiAJCXsKIAkJCXBpZCA9IC1waWQ7Ci0JCQlpZiAocG9zdG1hc3Rlcl9pc19h bGl2ZSgocGlkX3QpIHBpZCkpCisJCQlpZiAocG9zdG1hc3Rlcl9pc19hbGl2ZShwaWQpKQog CQkJewotCQkJCXByaW50ZihfKCIlczogc2luZ2xlLXVzZXIgc2VydmVyIGlzIHJ1bm5pbmcg KFBJRDogJWxkKVxuIiksCi0JCQkJCSAgIHByb2duYW1lLCBwaWQpOworCQkJCXByaW50Zihf KCIlczogc2luZ2xlLXVzZXIgc2VydmVyIGlzIHJ1bm5pbmcgKFBJRDogJWQpXG4iKSwKKwkJ CQkJICAgcHJvZ25hbWUsIChpbnQpIHBpZCk7CiAJCQkJcmV0dXJuOwogCQkJfQogCQl9CiAJ CWVsc2UKIAkJCS8qIG11c3QgYmUgYSBwb3N0bWFzdGVyICovCiAJCXsKLQkJCWlmIChwb3N0 bWFzdGVyX2lzX2FsaXZlKChwaWRfdCkgcGlkKSkKKwkJCWlmIChwb3N0bWFzdGVyX2lzX2Fs aXZlKHBpZCkpCiAJCQl7CiAJCQkJY2hhcgkgICoqb3B0bGluZXM7CiAJCQkJY2hhcgkgICoq Y3Vycl9saW5lOwogCQkJCWludAkJCW51bWxpbmVzOwogCi0JCQkJcHJpbnRmKF8oIiVzOiBz ZXJ2ZXIgaXMgcnVubmluZyAoUElEOiAlbGQpXG4iKSwKLQkJCQkJICAgcHJvZ25hbWUsIHBp ZCk7CisJCQkJcHJpbnRmKF8oIiVzOiBzZXJ2ZXIgaXMgcnVubmluZyAoUElEOiAlZClcbiIp LAorCQkJCQkgICBwcm9nbmFtZSwgKGludCkgcGlkKTsKIAogCQkJCW9wdGxpbmVzID0gcmVh ZGZpbGUocG9zdG9wdHNfZmlsZSwgJm51bWxpbmVzKTsKIAkJCQlpZiAob3B0bGluZXMgIT0g TlVMTCkKQEAgLTEzOTYsMTIgKzEzOTMsMTIgQEAgZG9fc3RhdHVzKHZvaWQpCiAKIAogc3Rh dGljIHZvaWQKLWRvX2tpbGwocGdwaWRfdCBwaWQpCitkb19raWxsKHBpZF90IHBpZCkKIHsK LQlpZiAoa2lsbCgocGlkX3QpIHBpZCwgc2lnKSAhPSAwKQorCWlmIChraWxsKHBpZCwgc2ln KSAhPSAwKQogCXsKLQkJd3JpdGVfc3RkZXJyKF8oIiVzOiBjb3VsZCBub3Qgc2VuZCBzaWdu YWwgJWQgKFBJRDogJWxkKTogJXNcbiIpLAotCQkJCQkgcHJvZ25hbWUsIHNpZywgcGlkLCBz dHJlcnJvcihlcnJubykpOworCQl3cml0ZV9zdGRlcnIoXygiJXM6IGNvdWxkIG5vdCBzZW5k IHNpZ25hbCAlZCAoUElEOiAlZCk6ICVzXG4iKSwKKwkJCQkJIHByb2duYW1lLCBzaWcsIChp bnQpIHBpZCwgc3RyZXJyb3IoZXJybm8pKTsKIAkJZXhpdCgxKTsKIAl9CiB9CkBAIC0yMjE0 LDcgKzIyMTEsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAljaGFyCSAgICpl bnZfd2FpdDsKIAlpbnQJCQlvcHRpb25faW5kZXg7CiAJaW50CQkJYzsKLQlwZ3BpZF90CQlr aWxscHJvYyA9IDA7CisJcGlkX3QJCWtpbGxwcm9jID0gMDsKIAogCXBnX2xvZ2dpbmdfaW5p dChhcmd2WzBdKTsKIAlwcm9nbmFtZSA9IGdldF9wcm9nbmFtZShhcmd2WzBdKTsKZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOTdjOWJjMTg2MTU3Li4zZThjZWFkOTBmNDgg MTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0zNTEzLDcgKzM1MTMsNiBAQCBw Z193Y19wcm9iZWZ1bmMKIHBnX3djaGFyCiBwZ193Y2hhcl90YmwKIHBncF9hcm1vcl9oZWFk ZXJzX3N0YXRlCi1wZ3BpZF90CiBwZ3NvY2tldAogcGdzcWxfdGhpbmdfdAogcGdzc0VudHJ5 Ci0tIAoyLjM3LjMKCg== --------------1LK6ynpvtqvI32eIWRDqzzBy--