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 1w9Tcl-001T3p-2L for pgsql-hackers@arkaria.postgresql.org; Sun, 05 Apr 2026 19:59:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w9Tcj-004nzh-1R for pgsql-hackers@arkaria.postgresql.org; Sun, 05 Apr 2026 19:59:09 +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.96) (envelope-from ) id 1w9Tcj-004nzZ-0D for pgsql-hackers@lists.postgresql.org; Sun, 05 Apr 2026 19:59:09 +0000 Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w9Tcg-00000000mQU-25bL for pgsql-hackers@postgresql.org; Sun, 05 Apr 2026 19:59:08 +0000 Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-38ccde812ecso32646991fa.0 for ; Sun, 05 Apr 2026 12:59:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775419145; cv=none; d=google.com; s=arc-20240605; b=Ycir7U4RwBjeujWEoQN59Id8KE94iNS+2iJvt4tINP6vTSTakyBothOxIkSIvxIN2n 1bRo6aRQG1ISMankjoEa9yVmMphGL1hDVR3BaTkWA6ClzFTEkNT2XDVnQGLOTxaz5fqd d3wJbC3yC4A+FEERRPDeyZWU5+bdO3oq7sascQluxZEFBrsEqrtKqroahyCJtS84OBt+ cnPo3ORdWVszRRa9KD0Z37hK7neMLcljVlQgP0+2gf4qptQ9TBJMGd5/HPvj39tptklv I4oBdMrnoLT8G7UElkzsT3tGSgGRwv/nOS69da8si7AGbqArGhwicQl07qt7gVswxp79 mUVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=GsoZdeSr6G3YYAcIQLvvMSkJibpvg5UxOC0klKbEUhQ=; fh=Wm9nPSrzbVUYUNZV7MMYUAwqdetsvZWuD651ovCffdI=; b=Mg0A2HsqEu8ZjbXNpND+xQfBF28kSLBL/ShoAKsktqL+yfwXtzc7Z+PLe3rGmxSffQ VUiE/CWUOFrKXqQesr3ImpC8Vm6DaIPgEvieppC49odg4C0BlvoCuNt/t7CYDh1SW7UK 46gOXhq4opOZAXnzCFVAYCkXcIk5gWVzeKh286PxphuR88uFcI8eZB2/Y0TKe4qweMsK 9cry0nO7Zh8y1Is5jrCPdmtuw756HTrwm3AEx0QtAMU5sXV3qFwQvx+4e3Jgl2wGPh2z di+fUQXhu79c2/+knMgkbIKA3s4nY+Id5bOlMCcG0nQYlSloDtfxlDcSbJVqqhNCMAWg AfYg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775419145; x=1776023945; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=GsoZdeSr6G3YYAcIQLvvMSkJibpvg5UxOC0klKbEUhQ=; b=MOBEq6Tosocr6ko0a4/iLricH7/rF81GkL5xTXNjjQb3a5Opu3/aKLXo+O2HQtBfaD i29Rvr2LzJc3V13fu/e4X6cGGdx70GvofIioSlh3Ak+KxnlHUgwkV/9pvn6JgYMmbhDv 1EvPq+dRiWiTO1e9/RJvpfX3KCHpV82Z202Y6luIPZ5OiowSo7wXq1nBfIkCwDng5oww KEQ/5XAdqLTWY64fRtHuFo6l7CBUs7HXRBjTveiGnfbhJ7qQjHdXqVeFRSunI8xfBMAJ 2JLGFRBnbeVAT8KyD+GTYfebPYgzMrSt3CF6ix71kO/8HuWLeLnjuj6y2+d5UBdb9NNZ gf4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775419145; x=1776023945; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GsoZdeSr6G3YYAcIQLvvMSkJibpvg5UxOC0klKbEUhQ=; b=VXDTEVkGGC6hcKmI4dgZYlZtxvacEetDadCJ2jieASnlKPBJpe6kJXTHsHj15NA3hT 5OGIkhjLDYBBcvgtJRzqVarHJV6+rYoxW0DRJ07dLpUq1wd8Lm6Xy096o7kaesgQvjrF RfhW8EgXdUInTrED3XEllXrPE8NShTud2vXnMkzr3H1RQe/ItaCc4uACNHwF6RAt86Pt s/mrgkD/8ABhgiLAA//P9DMXCqdJYcSpLG2TM9HqlzQRAqns4TDIK+ebUkuCDXvnsJ3B PHFR37zTUQjbmlyTiNzNh7kFHDDtSBoXdaD/IRELXu9JrMbB9fhKToXT7Rutstitd5/k Mj4Q== X-Forwarded-Encrypted: i=1; AJvYcCVCW0DF24jWYNRVNpMzHnHUGavIo00RnypUUGXvWY0QDSTlv6H9SuraUrc9mHlSvDi6oKpyQ400FuIi4y0D@postgresql.org X-Gm-Message-State: AOJu0Yx5iLws+56sk2sTgWYqgUnFbt4Kd1VYAqA8xA440xGjdycLDxcN CXcSIQ5XWLB1+UVlFhIBpdOGjjQPLLqcvslgELTBXC0ZftfEuFJJN+nU4qzdIMM6rR0JKU3cvAf golfPHbimmWRy6YTXyjMGRI8mZyYHHvc= X-Gm-Gg: AeBDieuKy7pohU5ke3TIolByvi63vy3nFzRQyTXDZCnGE7Wy4bqX8QzOwmcagZVj3oI 7/fF5P3dS4Oi266a1N8eHUoiEk5hiTSfBkKPrRe8+TFrJyVAEFrcTwYlUX+SoSyjNIPKqY81sQP Q/jxJuQFOLz9/L3XjjP8toVLVQV8M3T68Q7M95JVPRKFx0Q3/6GdKlk9dL4XAEjdKOd0CUQ4Ygn kpilcDVx529QNOsDA2ZjRfpbpxmM8XA1MVlN524k9MeokdhymRHy21UHw1AwHW5Jjskz01N3XNH ++LY0kL8CypvOp3bG5RSyl7/DwoxBoETBaqrqC2jAjyMu0c25B2B0fzY5EriPqwMobT3oNnBj/I 5DntQ X-Received: by 2002:a05:651c:1448:b0:38c:331d:95c with SMTP id 38308e7fff4ca-38d6562aa35mr30566551fa.17.1775419145165; Sun, 05 Apr 2026 12:59:05 -0700 (PDT) MIME-Version: 1.0 References: <113724ab-0028-493f-9605-6e8570f0939f@iki.fi> <791c3f18-f4de-4d84-ac6b-c7ccc074dd38@iki.fi> <9d919bd9-94dd-4bda-8ccf-ebced4178c53@iki.fi> <7d3ba240-9350-4dfc-bbe1-be6584aee236@iki.fi> <1c3a07a7-158d-4800-927c-2641c73277d8@iki.fi> In-Reply-To: From: Matthias van de Meent Date: Sun, 5 Apr 2026 21:58:52 +0200 X-Gm-Features: AQROBzBYoFAoEsaX6u4r6NB99_th4s8E-RLBBeE1Rb1u7oT6cXIOveGxGXH1ZLM Message-ID: Subject: Re: Better shared data structure management and resizable shared data structures To: Heikki Linnakangas Cc: Ashutosh Bapat , Robert Haas , Andres Freund , pgsql-hackers , chaturvedipalak1911@gmail.com Content-Type: multipart/mixed; boundary="00000000000079be1f064ebbfb42" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000079be1f064ebbfb42 Content-Type: text/plain; charset="UTF-8" On Sun, 5 Apr 2026 at 17:07, Heikki Linnakangas wrote: > > On 05/04/2026 02:17, Matthias van de Meent wrote: > > Is this malformatting caused by pgindent? If so, could you see if > > there's a better way of defining ShmemRequestHash/Struct that doesn't > > have this indent as output? > > Yeah, that's pgindent. Matter of taste, but I think that looks fine. An > alternative is to put the closing bracket on the same line with the last > argument and drop the trailing comma: > > ShmemRequestStruct(.name = "pg_stat_statements", > .size = sizeof(pgssSharedState), > .ptr = (void **) &pgss); > > That looks OK to me too. Then let's keep it as per the v11 patch with ugly closing indents -- hopefully someone will fix pgindent in the future, but that's not the job of this patch. > > You could make sure that this isn't an issue by maintaining a flag > > in lwlock.c that's set when the shmem request is made (and reset on > > shmem exit), which must be false when RequestNamedLWLockTranche() is > > called, and if not then it should throw an error. > I'll change it so that the number of locks calculated in > LWLockShmemRequest() is stored in a global variable, and > LWLockShmemInit() has an Assert() to cross-checks with that. That > catches the bug and seems like a good cross-check in general. Thanks for fixing this! > > 0010: Not looked at everything yet, but a few comment: > > > >> +++ b/src/include/access/slru.h > > > > With the changes in the signatures for most/all SLRU functions from a > > hidden-by-typedef pointer to a visible pointer type, maybe this could > > be an opportunity to swap them to `const SlruDesc *ctl` wherever > > possible? I don't think there are many backend-local changes that > > happen to SlruDescs once we've properly started the backend. I'm happy > > to provide an incremental patch if you'd like me to spend cycles on it > > if you're busy. > > Yeah sounds like a good idea. Attached 2 incremental patches: 0001 constifies the expected function arguments, which I propose to include; and 0002 adds 'type* const struct fields' in SlruShared. 0002 was not requested, but it looked feasible to at least try it out in this subsystem. It might be interesting, but you're free to drop it. Kind regards, Matthias van de Meent Databricks (https://www.databricks.com) --00000000000079be1f064ebbfb42 Content-Type: application/octet-stream; name="nocfbot.v11-0002-Const-qualify-SlruShared-s-fields-and-i.patch" Content-Disposition: attachment; filename="nocfbot.v11-0002-Const-qualify-SlruShared-s-fields-and-i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnm6emi80 RnJvbSAwNmFhM2MzMjdkN2JhMjFhNzBkNDE2YTFiZjdhOWJjOTU1ZjYyOWM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGlhcyB2YW4gZGUgTWVlbnQgPGJvZWtld3VybStwb3N0 Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFN1biwgNSBBcHIgMjAyNiAyMTo0ODoyMyArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggdm5vY2Zib3QudjExIDIvMl0gQ29uc3QtcXVhbGlmeSBTbHJ1U2hhcmVkJ3Mg ZmllbGRzIGFuZAogaW50ZXJuYWwgcG9pbnRlcnMKClRoZXNlIGZpZWxkcyBhcmUgZXhwZWN0ZWQg dG8gbmV2ZXIgdXBkYXRlLCBzbyBieSBjb25zdC1xdWFsaWZ5aW5nCnRoZW0gd2UgcHJvdGVjdCBh Z2FpbnN0IGluYWR2ZXJ0ZW50IG1vZGlmaWNhdGlvbiBhbmQgd2UgYWxsb3cgdGhlCmNvbXBpbGVy IHRvIGFwcGx5IGEgZmV3IG1vcmUgb3B0aW1pemF0aW9ucyBpdCBwcmV2aW91c2x5IG1heSBub3QK aGF2ZSBiZWVuIGFibGUgdG8gcHJvdmUuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v c2xydS5jIHwgODIgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUv YWNjZXNzL3NscnUuaCAgICAgICAgIHwgMjQgKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDY2 IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3NscnUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUu YwppbmRleCBhMWU2ODhkZDcwMi4uY2IyYmRiMzVjZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3NscnUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9z bHJ1LmMKQEAgLTI3OCw2ICsyNzgsMTUgQEAgc2htZW1fc2xydV9pbml0KHZvaWQgKmxvY2F0aW9u LCBTaG1lbVN0cnVjdE9wdHMgKmJhc2Vfb3B0aW9ucykKIAlpbnQJCQlubHNucyA9IG9wdGlvbnMt Pm5sc25zOwogCWNoYXIJICAgKnB0cjsKIAlTaXplCQlvZmZzZXQ7CisJY2hhcgkgICoqcGFnZV9i dWZmZXI7CisJU2xydVBhZ2VTdGF0dXMgKnBhZ2Vfc3RhdHVzOworCWJvb2wJICAgKnBhZ2VfZGly dHk7CisJaW50NjQJICAgKnBhZ2VfbnVtYmVyOworCWludAkJICAgKnBhZ2VfbHJ1X2NvdW50Owor CUxXTG9ja1BhZGRlZCAqYnVmZmVyX2xvY2tzOworCUxXTG9ja1BhZGRlZCAqYmFua19sb2NrczsK KwlpbnQJCSAgICpiYW5rX2N1cl9scnVfY291bnQ7CisJWExvZ1JlY1B0ciAqZ3JvdXBfbHNuOwog CiAJc2hhcmVkID0gKFNscnVTaGFyZWQpIGxvY2F0aW9uOwogCWRlc2MtPnNoYXJlZCA9IHNoYXJl ZDsKQEAgLTMwMCw2MiArMzA5LDc5IEBAIHNobWVtX3NscnVfaW5pdCh2b2lkICpsb2NhdGlvbiwg U2htZW1TdHJ1Y3RPcHRzICpiYXNlX29wdGlvbnMpCiAKIAltZW1zZXQoc2hhcmVkLCAwLCBzaXpl b2YoU2xydVNoYXJlZERhdGEpKTsKIAotCXNoYXJlZC0+bnVtX3Nsb3RzID0gbnNsb3RzOwotCXNo YXJlZC0+bHNuX2dyb3Vwc19wZXJfcGFnZSA9IG5sc25zOwotCi0JcGdfYXRvbWljX2luaXRfdTY0 KCZzaGFyZWQtPmxhdGVzdF9wYWdlX251bWJlciwgMCk7Ci0KLQlzaGFyZWQtPnNscnVfc3RhdHNf aWR4ID0gcGdzdGF0X2dldF9zbHJ1X2luZGV4KGRlc2MtPm9wdGlvbnMubmFtZSk7Ci0KIAlwdHIg PSAoY2hhciAqKSBzaGFyZWQ7CiAJb2Zmc2V0ID0gTUFYQUxJR04oc2l6ZW9mKFNscnVTaGFyZWRE YXRhKSk7Ci0Jc2hhcmVkLT5wYWdlX2J1ZmZlciA9IChjaGFyICoqKSAocHRyICsgb2Zmc2V0KTsK KwlwYWdlX2J1ZmZlciA9IChjaGFyICoqKSAocHRyICsgb2Zmc2V0KTsKIAlvZmZzZXQgKz0gTUFY QUxJR04obnNsb3RzICogc2l6ZW9mKGNoYXIgKikpOwotCXNoYXJlZC0+cGFnZV9zdGF0dXMgPSAo U2xydVBhZ2VTdGF0dXMgKikgKHB0ciArIG9mZnNldCk7CisJcGFnZV9zdGF0dXMgPSAoU2xydVBh Z2VTdGF0dXMgKikgKHB0ciArIG9mZnNldCk7CiAJb2Zmc2V0ICs9IE1BWEFMSUdOKG5zbG90cyAq IHNpemVvZihTbHJ1UGFnZVN0YXR1cykpOwotCXNoYXJlZC0+cGFnZV9kaXJ0eSA9IChib29sICop IChwdHIgKyBvZmZzZXQpOworCXBhZ2VfZGlydHkgPSAoYm9vbCAqKSAocHRyICsgb2Zmc2V0KTsK IAlvZmZzZXQgKz0gTUFYQUxJR04obnNsb3RzICogc2l6ZW9mKGJvb2wpKTsKLQlzaGFyZWQtPnBh Z2VfbnVtYmVyID0gKGludDY0ICopIChwdHIgKyBvZmZzZXQpOworCXBhZ2VfbnVtYmVyID0gKGlu dDY0ICopIChwdHIgKyBvZmZzZXQpOwogCW9mZnNldCArPSBNQVhBTElHTihuc2xvdHMgKiBzaXpl b2YoaW50NjQpKTsKLQlzaGFyZWQtPnBhZ2VfbHJ1X2NvdW50ID0gKGludCAqKSAocHRyICsgb2Zm c2V0KTsKKwlwYWdlX2xydV9jb3VudCA9IChpbnQgKikgKHB0ciArIG9mZnNldCk7CiAJb2Zmc2V0 ICs9IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihpbnQpKTsKIAogCS8qIEluaXRpYWxpemUgTFdM b2NrcyAqLwotCXNoYXJlZC0+YnVmZmVyX2xvY2tzID0gKExXTG9ja1BhZGRlZCAqKSAocHRyICsg b2Zmc2V0KTsKKwlidWZmZXJfbG9ja3MgPSAoTFdMb2NrUGFkZGVkICopIChwdHIgKyBvZmZzZXQp OwogCW9mZnNldCArPSBNQVhBTElHTihuc2xvdHMgKiBzaXplb2YoTFdMb2NrUGFkZGVkKSk7Ci0J c2hhcmVkLT5iYW5rX2xvY2tzID0gKExXTG9ja1BhZGRlZCAqKSAocHRyICsgb2Zmc2V0KTsKKwli YW5rX2xvY2tzID0gKExXTG9ja1BhZGRlZCAqKSAocHRyICsgb2Zmc2V0KTsKIAlvZmZzZXQgKz0g TUFYQUxJR04obmJhbmtzICogc2l6ZW9mKExXTG9ja1BhZGRlZCkpOwotCXNoYXJlZC0+YmFua19j dXJfbHJ1X2NvdW50ID0gKGludCAqKSAocHRyICsgb2Zmc2V0KTsKKwliYW5rX2N1cl9scnVfY291 bnQgPSAoaW50ICopIChwdHIgKyBvZmZzZXQpOwogCW9mZnNldCArPSBNQVhBTElHTihuYmFua3Mg KiBzaXplb2YoaW50KSk7CiAKIAlpZiAobmxzbnMgPiAwKQogCXsKLQkJc2hhcmVkLT5ncm91cF9s c24gPSAoWExvZ1JlY1B0ciAqKSAocHRyICsgb2Zmc2V0KTsKKwkJZ3JvdXBfbHNuID0gKFhMb2dS ZWNQdHIgKikgKHB0ciArIG9mZnNldCk7CiAJCW9mZnNldCArPSBNQVhBTElHTihuc2xvdHMgKiBu bHNucyAqIHNpemVvZihYTG9nUmVjUHRyKSk7CiAJfQorCWVsc2UKKwkJZ3JvdXBfbHNuID0gTlVM TDsKKworCS8qIEluaXRpYWxpemUgdGhlIHNsb3QgYmFua3MuICovCisJZm9yIChpbnQgYmFua25v ID0gMDsgYmFua25vIDwgbmJhbmtzOyBiYW5rbm8rKykKKwl7CisJCUxXTG9ja0luaXRpYWxpemUo JmJhbmtfbG9ja3NbYmFua25vXS5sb2NrLCBkZXNjLT5vcHRpb25zLmJhbmtfdHJhbmNoZV9pZCk7 CisJCWJhbmtfY3VyX2xydV9jb3VudFtiYW5rbm9dID0gMDsKKwl9CiAKIAlwdHIgKz0gQlVGRkVS QUxJR04ob2Zmc2V0KTsKIAlmb3IgKGludCBzbG90bm8gPSAwOyBzbG90bm8gPCBuc2xvdHM7IHNs b3RubysrKQogCXsKLQkJTFdMb2NrSW5pdGlhbGl6ZSgmc2hhcmVkLT5idWZmZXJfbG9ja3Nbc2xv dG5vXS5sb2NrLAorCQlMV0xvY2tJbml0aWFsaXplKCZidWZmZXJfbG9ja3Nbc2xvdG5vXS5sb2Nr LAogCQkJCQkJIGRlc2MtPm9wdGlvbnMuYnVmZmVyX3RyYW5jaGVfaWQpOwogCi0JCXNoYXJlZC0+ cGFnZV9idWZmZXJbc2xvdG5vXSA9IHB0cjsKLQkJc2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9d ID0gU0xSVV9QQUdFX0VNUFRZOwotCQlzaGFyZWQtPnBhZ2VfZGlydHlbc2xvdG5vXSA9IGZhbHNl OwotCQlzaGFyZWQtPnBhZ2VfbHJ1X2NvdW50W3Nsb3Rub10gPSAwOworCQlwYWdlX2J1ZmZlcltz bG90bm9dID0gcHRyOworCQlwYWdlX3N0YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX0VNUFRZOwor CQlwYWdlX2RpcnR5W3Nsb3Rub10gPSBmYWxzZTsKKwkJcGFnZV9scnVfY291bnRbc2xvdG5vXSA9 IDA7CiAJCXB0ciArPSBCTENLU1o7CiAJfQogCi0JLyogSW5pdGlhbGl6ZSB0aGUgc2xvdCBiYW5r cy4gKi8KLQlmb3IgKGludCBiYW5rbm8gPSAwOyBiYW5rbm8gPCBuYmFua3M7IGJhbmtubysrKQot CXsKLQkJTFdMb2NrSW5pdGlhbGl6ZSgmc2hhcmVkLT5iYW5rX2xvY2tzW2Jhbmtub10ubG9jaywg ZGVzYy0+b3B0aW9ucy5iYW5rX3RyYW5jaGVfaWQpOwotCQlzaGFyZWQtPmJhbmtfY3VyX2xydV9j b3VudFtiYW5rbm9dID0gMDsKLQl9Ci0KIAkvKiBTaG91bGQgZml0IHRvIGVzdGltYXRlZCBzaG1l bSBzaXplICovCiAJQXNzZXJ0KHB0ciAtIChjaGFyICopIHNoYXJlZCA8PSBTaW1wbGVMcnVTaG1l bVNpemUobnNsb3RzLCBubHNucykpOworCisKKwl7CisJCVNscnVTaGFyZWREYXRhIHRlbXBsYXRl ID0geworCQkJLm51bV9zbG90cyA9IG5zbG90cywKKwkJCS5sc25fZ3JvdXBzX3Blcl9wYWdlID0g bmxzbnMsCisJCQkucGFnZV9idWZmZXIgPSBwYWdlX2J1ZmZlciwKKwkJCS5wYWdlX3N0YXR1cyA9 IHBhZ2Vfc3RhdHVzLAorCQkJLnBhZ2VfZGlydHkgPSBwYWdlX2RpcnR5LAorCQkJLnBhZ2VfbnVt YmVyID0gcGFnZV9udW1iZXIsCisJCQkucGFnZV9scnVfY291bnQgPSBwYWdlX2xydV9jb3VudCwK KwkJCS5idWZmZXJfbG9ja3MgPSBidWZmZXJfbG9ja3MsCisJCQkuYmFua19sb2NrcyA9IGJhbmtf bG9ja3MsCisJCQkuYmFua19jdXJfbHJ1X2NvdW50ID0gYmFua19jdXJfbHJ1X2NvdW50LAorCQkJ Lmdyb3VwX2xzbiA9IGdyb3VwX2xzbiwKKwkJCS5zbHJ1X3N0YXRzX2lkeCA9IHBnc3RhdF9nZXRf c2xydV9pbmRleChkZXNjLT5vcHRpb25zLm5hbWUpLAorCQl9OworCisJCXBnX2F0b21pY19pbml0 X3U2NCgmdGVtcGxhdGUubGF0ZXN0X3BhZ2VfbnVtYmVyLCAwKTsKKworCQltZW1jcHkoc2hhcmVk LCAmdGVtcGxhdGUsIHNpemVvZihTbHJ1U2hhcmVkRGF0YSkpOworCX0KIH0KIAogdm9pZApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9z bHJ1LmgKaW5kZXggNzRlYTg0ZGVlYzUuLmI2ODU0YWYzMTE5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTQ4 LDIzICs0OCwyMyBAQCB0eXBlZGVmIGVudW0KIHR5cGVkZWYgc3RydWN0IFNscnVTaGFyZWREYXRh CiB7CiAJLyogTnVtYmVyIG9mIGJ1ZmZlcnMgbWFuYWdlZCBieSB0aGlzIFNMUlUgc3RydWN0dXJl ICovCi0JaW50CQkJbnVtX3Nsb3RzOworCWNvbnN0IGludAludW1fc2xvdHM7CiAKIAkvKgogCSAq IEFycmF5cyBob2xkaW5nIGluZm8gZm9yIGVhY2ggYnVmZmVyIHNsb3QuICBQYWdlIG51bWJlciBp cyB1bmRlZmluZWQKIAkgKiB3aGVuIHN0YXR1cyBpcyBFTVBUWSwgYXMgaXMgcGFnZV9scnVfY291 bnQuCiAJICovCi0JY2hhcgkgICoqcGFnZV9idWZmZXI7Ci0JU2xydVBhZ2VTdGF0dXMgKnBhZ2Vf c3RhdHVzOwotCWJvb2wJICAgKnBhZ2VfZGlydHk7Ci0JaW50NjQJICAgKnBhZ2VfbnVtYmVyOwot CWludAkJICAgKnBhZ2VfbHJ1X2NvdW50OworCWNoYXIJICAgKmNvbnN0ICpjb25zdCBwYWdlX2J1 ZmZlcjsKKwlTbHJ1UGFnZVN0YXR1cyAqY29uc3QgcGFnZV9zdGF0dXM7CisJYm9vbAkgICAqY29u c3QgcGFnZV9kaXJ0eTsKKwlpbnQ2NAkgICAqY29uc3QgcGFnZV9udW1iZXI7CisJaW50CQkgICAq Y29uc3QgcGFnZV9scnVfY291bnQ7CiAKIAkvKiBUaGUgYnVmZmVyX2xvY2tzIHByb3RlY3RzIHRo ZSBJL08gb24gZWFjaCBidWZmZXIgc2xvdHMgKi8KLQlMV0xvY2tQYWRkZWQgKmJ1ZmZlcl9sb2Nr czsKKwlMV0xvY2tQYWRkZWQgKmNvbnN0IGJ1ZmZlcl9sb2NrczsKIAogCS8qIExvY2tzIHRvIHBy b3RlY3QgdGhlIGluIG1lbW9yeSBidWZmZXIgc2xvdCBhY2Nlc3MgaW4gU0xSVSBiYW5rLiAqLwot CUxXTG9ja1BhZGRlZCAqYmFua19sb2NrczsKKwlMV0xvY2tQYWRkZWQgKmNvbnN0IGJhbmtfbG9j a3M7CiAKIAkvKi0tLS0tLS0tLS0KIAkgKiBBIGJhbmstd2lzZSBMUlUgY291bnRlciBpcyBtYWlu dGFpbmVkIGJlY2F1c2Ugd2UgZG8gYSB2aWN0aW0gYnVmZmVyCkBAIC04MSw3ICs4MSw3IEBAIHR5 cGVkZWYgc3RydWN0IFNscnVTaGFyZWREYXRhCiAJICogd29ya3MgYXMgbG9uZyBhcyBubyBwYWdl J3MgYWdlIGV4Y2VlZHMgSU5UX01BWCBjb3VudHMuCiAJICotLS0tLS0tLS0tCiAJICovCi0JaW50 CQkgICAqYmFua19jdXJfbHJ1X2NvdW50OworCWludAkJICAgKmNvbnN0IGJhbmtfY3VyX2xydV9j b3VudDsKIAogCS8qCiAJICogT3B0aW9uYWwgYXJyYXkgb2YgV0FMIGZsdXNoIExTTnMgYXNzb2Np YXRlZCB3aXRoIGVudHJpZXMgaW4gdGhlIFNMUlUKQEAgLTkxLDggKzkxLDggQEAgdHlwZWRlZiBz dHJ1Y3QgU2xydVNoYXJlZERhdGEKIAkgKiBoaWdoZXN0IExTTiBrbm93biBmb3IgYSBjb250aWd1 b3VzIGdyb3VwIG9mIFNMUlUgZW50cmllcyBvbiB0aGF0IHNsb3QncwogCSAqIHBhZ2UuCiAJICov Ci0JWExvZ1JlY1B0ciAqZ3JvdXBfbHNuOwotCWludAkJCWxzbl9ncm91cHNfcGVyX3BhZ2U7CisJ WExvZ1JlY1B0ciAqY29uc3QgZ3JvdXBfbHNuOworCWNvbnN0IGludAlsc25fZ3JvdXBzX3Blcl9w YWdlOwogCiAJLyoKIAkgKiBsYXRlc3RfcGFnZV9udW1iZXIgaXMgdGhlIHBhZ2UgbnVtYmVyIG9m IHRoZSBjdXJyZW50IGVuZCBvZiB0aGUgbG9nOwpAQCAtMTAyLDcgKzEwMiw3IEBAIHR5cGVkZWYg c3RydWN0IFNscnVTaGFyZWREYXRhCiAJcGdfYXRvbWljX3VpbnQ2NCBsYXRlc3RfcGFnZV9udW1i ZXI7CiAKIAkvKiBTTFJVJ3MgaW5kZXggZm9yIHN0YXRpc3RpY3MgcHVycG9zZXMgKG1pZ2h0IG5v dCBiZSB1bmlxdWUpICovCi0JaW50CQkJc2xydV9zdGF0c19pZHg7CisJY29uc3QgaW50CXNscnVf c3RhdHNfaWR4OwogfSBTbHJ1U2hhcmVkRGF0YTsKIAogdHlwZWRlZiBTbHJ1U2hhcmVkRGF0YSAq U2xydVNoYXJlZDsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000079be1f064ebbfb42 Content-Type: application/octet-stream; name="nocfbot.v11-0001-Add-const-qualification-in-SLRU-subsyst.patch" Content-Disposition: attachment; filename="nocfbot.v11-0001-Add-const-qualification-in-SLRU-subsyst.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnm6emif1 RnJvbSA1M2Y0OTFlMjU2NWY0MmZjMWZjYjM2MTJmZTgyMWIxYzNiNzk2ZDRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGlhcyB2YW4gZGUgTWVlbnQgPGJvZWtld3VybStwb3N0 Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFN1biwgNSBBcHIgMjAyNiAyMTo0NjozMSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggdm5vY2Zib3QudjExIDEvMl0gQWRkIGNvbnN0IHF1YWxpZmljYXRpb24gaW4g U0xSVSBzdWJzeXN0ZW0KCldpdGggU2xydUN0bCBiZWluZyByZXBsYWNlZCB3aXRoIFNscnVEZXNj Kiwgd2UgY2FuIGNvbnN0LXF1YWxpZnkgdGhlCmlucHV0IGFyZ3VtZW50cyBvZiB2YXJpb3VzIFNM UlUgZnVuY3Rpb25zIHdpdGhvdXQgc2lnbmlmaWNhbnQgZWZmb3J0LgpJbiBwYXNzaW5nLCBzb21l IG90aGVyIGFyZ3VtZW50cyBhcmUgYWxzbyBjb25zdC1xdWFsaWZpZWQuCi0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jICAgICAgfCA3OCArKysrKysrKysrKysrKy0tLS0tLS0t LS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCAgICAgICAgICAgICAgfCAzOCArKysrKysr LS0tLS0tCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYyB8ICAzICstCiAz IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3NscnUuYwppbmRleCA0N2RkNTJkNjc0OS4uYTFlNjg4ZGQ3MDIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMKQEAgLTkxLDcgKzkxLDcgQEAKICAqICBkaXIvMTIzNDU2 IGZvciBbMl4yMCwgMl4yNC0xXQogICovCiBzdGF0aWMgaW5saW5lIGludAotU2xydUZpbGVOYW1l KFNscnVEZXNjICpjdGwsIGNoYXIgKnBhdGgsIGludDY0IHNlZ25vKQorU2xydUZpbGVOYW1lKGNv bnN0IFNscnVEZXNjICpjdGwsIGNoYXIgKnBhdGgsIGludDY0IHNlZ25vKQogewogCWlmIChjdGwt Pm9wdGlvbnMubG9uZ19zZWdtZW50X25hbWVzKQogCXsKQEAgLTE3OCwxOSArMTc4LDIyIEBAIHN0 YXRpYyBTbHJ1RXJyb3JDYXVzZSBzbHJ1X2VycmNhdXNlOwogc3RhdGljIGludAlzbHJ1X2Vycm5v OwogCiAKLXN0YXRpYyB2b2lkIFNpbXBsZUxydVplcm9MU05zKFNscnVEZXNjICpjdGwsIGludCBz bG90bm8pOwotc3RhdGljIHZvaWQgU2ltcGxlTHJ1V2FpdElPKFNscnVEZXNjICpjdGwsIGludCBz bG90bm8pOwotc3RhdGljIHZvaWQgU2xydUludGVybmFsV3JpdGVQYWdlKFNscnVEZXNjICpjdGws IGludCBzbG90bm8sIFNscnVXcml0ZUFsbCBmZGF0YSk7Ci1zdGF0aWMgYm9vbCBTbHJ1UGh5c2lj YWxSZWFkUGFnZShTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGludCBzbG90bm8pOwotc3Rh dGljIGJvb2wgU2xydVBoeXNpY2FsV3JpdGVQYWdlKFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2Vu bywgaW50IHNsb3RubywKK3N0YXRpYyB2b2lkIFNpbXBsZUxydVplcm9MU05zKGNvbnN0IFNscnVE ZXNjICpjdGwsIGludCBzbG90bm8pOworc3RhdGljIHZvaWQgU2ltcGxlTHJ1V2FpdElPKGNvbnN0 IFNscnVEZXNjICpjdGwsIGludCBzbG90bm8pOworc3RhdGljIHZvaWQgU2xydUludGVybmFsV3Jp dGVQYWdlKGNvbnN0IFNscnVEZXNjICpjdGwsIGludCBzbG90bm8sCiAJCQkJCQkJCSAgU2xydVdy aXRlQWxsIGZkYXRhKTsKLXN0YXRpYyB2b2lkIFNscnVSZXBvcnRJT0Vycm9yKFNscnVEZXNjICpj dGwsIGludDY0IHBhZ2VubywKK3N0YXRpYyBib29sIFNscnVQaHlzaWNhbFJlYWRQYWdlKGNvbnN0 IFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2VubywKKwkJCQkJCQkJIGludCBzbG90bm8pOworc3Rh dGljIGJvb2wgU2xydVBoeXNpY2FsV3JpdGVQYWdlKGNvbnN0IFNscnVEZXNjICpjdGwsIGludDY0 IHBhZ2VubywKKwkJCQkJCQkJICBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRhdGEpOworc3Rh dGljIHZvaWQgU2xydVJlcG9ydElPRXJyb3IoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFn ZW5vLAogCQkJCQkJCSAgY29uc3Qgdm9pZCAqb3BhcXVlX2RhdGEpOwotc3RhdGljIGludAlTbHJ1 U2VsZWN0TFJVUGFnZShTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8pOworc3RhdGljIGludAlT bHJ1U2VsZWN0TFJVUGFnZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8pOwogCi1z dGF0aWMgYm9vbCBTbHJ1U2NhbkRpckNiRGVsZXRlQ3V0b2ZmKFNscnVEZXNjICpjdGwsIGNoYXIg KmZpbGVuYW1lLAorc3RhdGljIGJvb2wgU2xydVNjYW5EaXJDYkRlbGV0ZUN1dG9mZihjb25zdCBT bHJ1RGVzYyAqY3RsLAorCQkJCQkJCQkJICBjb25zdCBjaGFyICpmaWxlbmFtZSwKIAkJCQkJCQkJ CSAgaW50NjQgc2VncGFnZSwgdm9pZCAqZGF0YSk7Ci1zdGF0aWMgdm9pZCBTbHJ1SW50ZXJuYWxE ZWxldGVTZWdtZW50KFNscnVEZXNjICpjdGwsIGludDY0IHNlZ25vKTsKK3N0YXRpYyB2b2lkIFNs cnVJbnRlcm5hbERlbGV0ZVNlZ21lbnQoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgc2Vnbm8p Owogc3RhdGljIGlubGluZSB2b2lkIFNscnVSZWNlbnRseVVzZWQoU2xydVNoYXJlZCBzaGFyZWQs IGludCBzbG90bm8pOwogCiAKQEAgLTM5NCw3ICszOTcsNyBAQCBjaGVja19zbHJ1X2J1ZmZlcnMo Y29uc3QgY2hhciAqbmFtZSwgaW50ICpuZXd2YWwpCiAgKiBCYW5rIGxvY2sgbXVzdCBiZSBoZWxk IGF0IGVudHJ5LCBhbmQgd2lsbCBiZSBoZWxkIGF0IGV4aXQuCiAgKi8KIGludAotU2ltcGxlTHJ1 WmVyb1BhZ2UoU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vKQorU2ltcGxlTHJ1WmVyb1BhZ2Uo Y29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vKQogewogCVNscnVTaGFyZWQJc2hhcmVk ID0gY3RsLT5zaGFyZWQ7CiAJaW50CQkJc2xvdG5vOwpAQCAtNDQ3LDcgKzQ1MCw3IEBAIFNpbXBs ZUxydVplcm9QYWdlKFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2VubykKICAqIFRoaXMgYXNzdW1l cyB0aGF0IEludmFsaWRYTG9nUmVjUHRyIGlzIGJpdHdpc2UtYWxsLTAuCiAgKi8KIHN0YXRpYyB2 b2lkCi1TaW1wbGVMcnVaZXJvTFNOcyhTbHJ1RGVzYyAqY3RsLCBpbnQgc2xvdG5vKQorU2ltcGxl THJ1WmVyb0xTTnMoY29uc3QgU2xydURlc2MgKmN0bCwgaW50IHNsb3RubykKIHsKIAlTbHJ1U2hh cmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOwogCkBAIC00NjMsNyArNDY2LDcgQEAgU2ltcGxlTHJ1 WmVyb0xTTnMoU2xydURlc2MgKmN0bCwgaW50IHNsb3RubykKICAqIFNMUlUgYmFuayBsb2NrIGlz IGFjcXVpcmVkIGFuZCByZWxlYXNlZCBoZXJlLgogICovCiB2b2lkCi1TaW1wbGVMcnVaZXJvQW5k V3JpdGVQYWdlKFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2VubykKK1NpbXBsZUxydVplcm9BbmRX cml0ZVBhZ2UoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vKQogewogCWludAkJCXNs b3RubzsKIAlMV0xvY2sJICAgKmxvY2s7CkBAIC00ODksNyArNDkyLDcgQEAgU2ltcGxlTHJ1WmVy b0FuZFdyaXRlUGFnZShTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8pCiAgKiBCYW5rIGxvY2sg bXVzdCBiZSBoZWxkIGF0IGVudHJ5LCBhbmQgd2lsbCBiZSBoZWxkIGF0IGV4aXQuCiAgKi8KIHN0 YXRpYyB2b2lkCi1TaW1wbGVMcnVXYWl0SU8oU2xydURlc2MgKmN0bCwgaW50IHNsb3RubykKK1Np bXBsZUxydVdhaXRJTyhjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQgc2xvdG5vKQogewogCVNscnVT aGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CiAJaW50CQkJYmFua25vID0gU2xvdEdldEJhbmtO dW1iZXIoc2xvdG5vKTsKQEAgLTU0Nyw3ICs1NTAsNyBAQCBTaW1wbGVMcnVXYWl0SU8oU2xydURl c2MgKmN0bCwgaW50IHNsb3RubykKICAqIFRoZSBjb3JyZWN0IGJhbmsgbG9jayBtdXN0IGJlIGhl bGQgYXQgZW50cnksIGFuZCB3aWxsIGJlIGhlbGQgYXQgZXhpdC4KICAqLwogaW50Ci1TaW1wbGVM cnVSZWFkUGFnZShTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCitT aW1wbGVMcnVSZWFkUGFnZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGJvb2wg d3JpdGVfb2ssCiAJCQkJICBjb25zdCB2b2lkICpvcGFxdWVfZGF0YSkKIHsKIAlTbHJ1U2hhcmVk CXNoYXJlZCA9IGN0bC0+c2hhcmVkOwpAQCAtNjUxLDcgKzY1NCw3IEBAIFNpbXBsZUxydVJlYWRQ YWdlKFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2VubywgYm9vbCB3cml0ZV9vaywKICAqIEl0IGlz IHVuc3BlY2lmaWVkIHdoZXRoZXIgdGhlIGxvY2sgd2lsbCBiZSBzaGFyZWQgb3IgZXhjbHVzaXZl LgogICovCiBpbnQKLVNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KFNscnVEZXNjICpjdGwsIGlu dDY0IHBhZ2VubywgY29uc3Qgdm9pZCAqb3BhcXVlX2RhdGEpCitTaW1wbGVMcnVSZWFkUGFnZV9S ZWFkT25seShjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGNvbnN0IHZvaWQgKm9w YXF1ZV9kYXRhKQogewogCVNscnVTaGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CiAJTFdMb2Nr CSAgICpiYW5rbG9jayA9IFNpbXBsZUxydUdldEJhbmtMb2NrKGN0bCwgcGFnZW5vKTsKQEAgLTY5 OCw3ICs3MDEsNyBAQCBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShTbHJ1RGVzYyAqY3RsLCBp bnQ2NCBwYWdlbm8sIGNvbnN0IHZvaWQgKm9wYXF1ZV9kYXRhKQogICogQmFuayBsb2NrIG11c3Qg YmUgaGVsZCBhdCBlbnRyeSwgYW5kIHdpbGwgYmUgaGVsZCBhdCBleGl0LgogICovCiBzdGF0aWMg dm9pZAotU2xydUludGVybmFsV3JpdGVQYWdlKFNscnVEZXNjICpjdGwsIGludCBzbG90bm8sIFNs cnVXcml0ZUFsbCBmZGF0YSkKK1NscnVJbnRlcm5hbFdyaXRlUGFnZShjb25zdCBTbHJ1RGVzYyAq Y3RsLCBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRhdGEpCiB7CiAJU2xydVNoYXJlZAlzaGFy ZWQgPSBjdGwtPnNoYXJlZDsKIAlpbnQ2NAkJcGFnZW5vID0gc2hhcmVkLT5wYWdlX251bWJlcltz bG90bm9dOwpAQCAtNzc4LDcgKzc4MSw3IEBAIFNscnVJbnRlcm5hbFdyaXRlUGFnZShTbHJ1RGVz YyAqY3RsLCBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRhdGEpCiAgKiBmZGF0YSBpcyBhbHdh eXMgcGFzc2VkIGEgTlVMTCBoZXJlLgogICovCiB2b2lkCi1TaW1wbGVMcnVXcml0ZVBhZ2UoU2xy dURlc2MgKmN0bCwgaW50IHNsb3RubykKK1NpbXBsZUxydVdyaXRlUGFnZShjb25zdCBTbHJ1RGVz YyAqY3RsLCBpbnQgc2xvdG5vKQogewogCUFzc2VydChjdGwtPnNoYXJlZC0+cGFnZV9zdGF0dXNb c2xvdG5vXSAhPSBTTFJVX1BBR0VfRU1QVFkpOwogCkBAIC03OTIsNyArNzk1LDcgQEAgU2ltcGxl THJ1V3JpdGVQYWdlKFNscnVEZXNjICpjdGwsIGludCBzbG90bm8pCiAgKiBsYXJnZSBlbm91Z2gg dG8gY29udGFpbiB0aGUgZ2l2ZW4gcGFnZS4KICAqLwogYm9vbAotU2ltcGxlTHJ1RG9lc1BoeXNp Y2FsUGFnZUV4aXN0KFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2VubykKK1NpbXBsZUxydURvZXNQ aHlzaWNhbFBhZ2VFeGlzdChjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8pCiB7CiAJ aW50NjQJCXNlZ25vID0gcGFnZW5vIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKIAlpbnQJCQly cGFnZW5vID0gcGFnZW5vICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKQEAgLTg1MCw3ICs4NTMs NyBAQCBTaW1wbGVMcnVEb2VzUGh5c2ljYWxQYWdlRXhpc3QoU2xydURlc2MgKmN0bCwgaW50NjQg cGFnZW5vKQogICogcmVhZC93cml0ZSBvcGVyYXRpb25zLiAgV2UgY291bGQgY2FjaGUgb25lIHZp cnR1YWwgZmlsZSBwb2ludGVyIC4uLgogICovCiBzdGF0aWMgYm9vbAotU2xydVBoeXNpY2FsUmVh ZFBhZ2UoU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vLCBpbnQgc2xvdG5vKQorU2xydVBoeXNp Y2FsUmVhZFBhZ2UoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vLCBpbnQgc2xvdG5v KQogewogCVNscnVTaGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CiAJaW50NjQJCXNlZ25vID0g cGFnZW5vIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKQEAgLTkyMiw3ICs5MjUsNyBAQCBTbHJ1 UGh5c2ljYWxSZWFkUGFnZShTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGludCBzbG90bm8p CiAgKiBTaW1wbGVMcnVXcml0ZUFsbC4KICAqLwogc3RhdGljIGJvb2wKLVNscnVQaHlzaWNhbFdy aXRlUGFnZShTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGludCBzbG90bm8sIFNscnVXcml0 ZUFsbCBmZGF0YSkKK1NscnVQaHlzaWNhbFdyaXRlUGFnZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBp bnQ2NCBwYWdlbm8sIGludCBzbG90bm8sIFNscnVXcml0ZUFsbCBmZGF0YSkKIHsKIAlTbHJ1U2hh cmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOwogCWludDY0CQlzZWdubyA9IHBhZ2VubyAvIFNMUlVf UEFHRVNfUEVSX1NFR01FTlQ7CkBAIC0xMDk0LDcgKzEwOTcsNyBAQCBTbHJ1UGh5c2ljYWxXcml0 ZVBhZ2UoU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vLCBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVB bGwgZmRhdAogICogU2xydVBoeXNpY2FsV3JpdGVQYWdlLiAgQ2FsbCB0aGlzIGFmdGVyIGNsZWFu aW5nIHVwIHNoYXJlZC1tZW1vcnkgc3RhdGUuCiAgKi8KIHN0YXRpYyB2b2lkCi1TbHJ1UmVwb3J0 SU9FcnJvcihTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGNvbnN0IHZvaWQgKm9wYXF1ZV9k YXRhKQorU2xydVJlcG9ydElPRXJyb3IoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5v LCBjb25zdCB2b2lkICpvcGFxdWVfZGF0YSkKIHsKIAlpbnQ2NAkJc2Vnbm8gPSBwYWdlbm8gLyBT TFJVX1BBR0VTX1BFUl9TRUdNRU5UOwogCWludAkJCXJwYWdlbm8gPSBwYWdlbm8gJSBTTFJVX1BB R0VTX1BFUl9TRUdNRU5UOwpAQCAtMTIxNiw3ICsxMjE5LDcgQEAgU2xydVJlY2VudGx5VXNlZChT bHJ1U2hhcmVkIHNoYXJlZCwgaW50IHNsb3RubykKICAqIFRoZSBjb3JyZWN0IGJhbmsgbG9jayBt dXN0IGJlIGhlbGQgYXQgZW50cnksIGFuZCB3aWxsIGJlIGhlbGQgYXQgZXhpdC4KICAqLwogc3Rh dGljIGludAotU2xydVNlbGVjdExSVVBhZ2UoU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vKQor U2xydVNlbGVjdExSVVBhZ2UoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vKQogewog CVNscnVTaGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CiAKQEAgLTEzNjksNyArMTM3Miw3IEBA IFNscnVTZWxlY3RMUlVQYWdlKFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2VubykKICAqIGVudHJp ZXMgYXJlIG9uIGRpc2suCiAgKi8KIHZvaWQKLVNpbXBsZUxydVdyaXRlQWxsKFNscnVEZXNjICpj dGwsIGJvb2wgYWxsb3dfcmVkaXJ0aWVkKQorU2ltcGxlTHJ1V3JpdGVBbGwoY29uc3QgU2xydURl c2MgKmN0bCwgYm9vbCBhbGxvd19yZWRpcnRpZWQpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBj dGwtPnNoYXJlZDsKIAlTbHJ1V3JpdGVBbGxEYXRhIGZkYXRhOwpAQCAtMTQ1NSw3ICsxNDU4LDcg QEAgU2ltcGxlTHJ1V3JpdGVBbGwoU2xydURlc2MgKmN0bCwgYm9vbCBhbGxvd19yZWRpcnRpZWQp CiAgKiBhZnRlciBpdCBoYXMgYWNjcnVlZCBmcmVzaGx5LXdyaXR0ZW4gZGF0YS4KICAqLwogdm9p ZAotU2ltcGxlTHJ1VHJ1bmNhdGUoU2xydURlc2MgKmN0bCwgaW50NjQgY3V0b2ZmUGFnZSkKK1Np bXBsZUxydVRydW5jYXRlKGNvbnN0IFNscnVEZXNjICpjdGwsIGludDY0IGN1dG9mZlBhZ2UpCiB7 CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNoYXJlZDsKIAlpbnQJCQlwcmV2YmFuazsKQEAg LTE1NTAsNyArMTU1Myw3IEBAIHJlc3RhcnQ6CiAgKiB0aGV5IGVpdGhlciBjYW4ndCB5ZXQgY29u dGFpbiBhbnl0aGluZywgb3IgaGF2ZSBhbHJlYWR5IGJlZW4gY2xlYW5lZCBvdXQuCiAgKi8KIHN0 YXRpYyB2b2lkCi1TbHJ1SW50ZXJuYWxEZWxldGVTZWdtZW50KFNscnVEZXNjICpjdGwsIGludDY0 IHNlZ25vKQorU2xydUludGVybmFsRGVsZXRlU2VnbWVudChjb25zdCBTbHJ1RGVzYyAqY3RsLCBp bnQ2NCBzZWdubykKIHsKIAljaGFyCQlwYXRoW01BWFBHUEFUSF07CiAKQEAgLTE1NzMsNyArMTU3 Niw3IEBAIFNscnVJbnRlcm5hbERlbGV0ZVNlZ21lbnQoU2xydURlc2MgKmN0bCwgaW50NjQgc2Vn bm8pCiAgKiBEZWxldGUgYW4gaW5kaXZpZHVhbCBTTFJVIHNlZ21lbnQsIGlkZW50aWZpZWQgYnkg dGhlIHNlZ21lbnQgbnVtYmVyLgogICovCiB2b2lkCi1TbHJ1RGVsZXRlU2VnbWVudChTbHJ1RGVz YyAqY3RsLCBpbnQ2NCBzZWdubykKK1NscnVEZWxldGVTZWdtZW50KGNvbnN0IFNscnVEZXNjICpj dGwsIGludDY0IHNlZ25vKQogewogCVNscnVTaGFyZWQJc2hhcmVkID0gY3RsLT5zaGFyZWQ7CiAJ aW50CQkJcHJldmJhbmsgPSBTbG90R2V0QmFua051bWJlcigwKTsKQEAgLTE2NTAsNyArMTY1Myw3 IEBAIHJlc3RhcnQ6CiAgKiBmaXJzdD49Y3V0b2ZmICYmIGxhc3Q+PWN1dG9mZjogbm87IGV2ZXJ5 IHBhZ2Ugb2YgdGhpcyBzZWdtZW50IGlzIHRvbyB5b3VuZwogICovCiBzdGF0aWMgYm9vbAotU2xy dU1heURlbGV0ZVNlZ21lbnQoU2xydURlc2MgKmN0bCwgaW50NjQgc2VncGFnZSwgaW50NjQgY3V0 b2ZmUGFnZSkKK1NscnVNYXlEZWxldGVTZWdtZW50KGNvbnN0IFNscnVEZXNjICpjdGwsIGludDY0 IHNlZ3BhZ2UsIGludDY0IGN1dG9mZlBhZ2UpCiB7CiAJaW50NjQJCXNlZ19sYXN0X3BhZ2UgPSBz ZWdwYWdlICsgU0xSVV9QQUdFU19QRVJfU0VHTUVOVCAtIDE7CiAKQEAgLTE2NjIsNyArMTY2NSw3 IEBAIFNscnVNYXlEZWxldGVTZWdtZW50KFNscnVEZXNjICpjdGwsIGludDY0IHNlZ3BhZ2UsIGlu dDY0IGN1dG9mZlBhZ2UpCiAKICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCiBzdGF0aWMgdm9p ZAotU2xydVBhZ2VQcmVjZWRlc1Rlc3RPZmZzZXQoU2xydURlc2MgKmN0bCwgaW50IHBlcl9wYWdl LCB1aW50MzIgb2Zmc2V0KQorU2xydVBhZ2VQcmVjZWRlc1Rlc3RPZmZzZXQoY29uc3QgU2xydURl c2MgKmN0bCwgaW50IHBlcl9wYWdlLCB1aW50MzIgb2Zmc2V0KQogewogCVRyYW5zYWN0aW9uSWQg bGhzLAogCQkJCXJoczsKQEAgLTE3NDcsNyArMTc1MCw3IEBAIFNscnVQYWdlUHJlY2VkZXNUZXN0 T2Zmc2V0KFNscnVEZXNjICpjdGwsIGludCBwZXJfcGFnZSwgdWludDMyIG9mZnNldCkKICAqIGRv IG5vdCBhcHBseSB0byB0aGVtLikKICAqLwogdm9pZAotU2xydVBhZ2VQcmVjZWRlc1VuaXRUZXN0 cyhTbHJ1RGVzYyAqY3RsLCBpbnQgcGVyX3BhZ2UpCitTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3Rz KGNvbnN0IFNscnVEZXNjICpjdGwsIGludCBwZXJfcGFnZSkKIHsKIAkvKiBUZXN0IGZpcnN0LCBt aWRkbGUgYW5kIGxhc3QgZW50cmllcyBvZiBhIHBhZ2UuICovCiAJU2xydVBhZ2VQcmVjZWRlc1Rl c3RPZmZzZXQoY3RsLCBwZXJfcGFnZSwgMCk7CkBAIC0xNzYyLDggKzE3NjUsOCBAQCBTbHJ1UGFn ZVByZWNlZGVzVW5pdFRlc3RzKFNscnVEZXNjICpjdGwsIGludCBwZXJfcGFnZSkKICAqCQlvbmUg Y29udGFpbmluZyB0aGUgcGFnZSBwYXNzZWQgYXMgImRhdGEiLgogICovCiBib29sCi1TbHJ1U2Nh bkRpckNiUmVwb3J0UHJlc2VuY2UoU2xydURlc2MgKmN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0 IHNlZ3BhZ2UsCi0JCQkJCQkJdm9pZCAqZGF0YSkKK1NscnVTY2FuRGlyQ2JSZXBvcnRQcmVzZW5j ZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJCQlpbnQ2 NCBzZWdwYWdlLCB2b2lkICpkYXRhKQogewogCWludDY0CQljdXRvZmZQYWdlID0gKihpbnQ2NCAq KSBkYXRhOwogCkBAIC0xNzc4LDcgKzE3ODEsNyBAQCBTbHJ1U2NhbkRpckNiUmVwb3J0UHJlc2Vu Y2UoU2xydURlc2MgKmN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2UsCiAgKgkJVGhp cyBjYWxsYmFjayBkZWxldGVzIHNlZ21lbnRzIHByaW9yIHRvIHRoZSBvbmUgcGFzc2VkIGluIGFz ICJkYXRhIi4KICAqLwogc3RhdGljIGJvb2wKLVNscnVTY2FuRGlyQ2JEZWxldGVDdXRvZmYoU2xy dURlc2MgKmN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2UsCitTbHJ1U2NhbkRpckNi RGVsZXRlQ3V0b2ZmKGNvbnN0IFNscnVEZXNjICpjdGwsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBp bnQ2NCBzZWdwYWdlLAogCQkJCQkJICB2b2lkICpkYXRhKQogewogCWludDY0CQljdXRvZmZQYWdl ID0gKihpbnQ2NCAqKSBkYXRhOwpAQCAtMTc5NCw3ICsxNzk3LDggQEAgU2xydVNjYW5EaXJDYkRl bGV0ZUN1dG9mZihTbHJ1RGVzYyAqY3RsLCBjaGFyICpmaWxlbmFtZSwgaW50NjQgc2VncGFnZSwK ICAqCQlUaGlzIGNhbGxiYWNrIGRlbGV0ZXMgYWxsIHNlZ21lbnRzLgogICovCiBib29sCi1TbHJ1 U2NhbkRpckNiRGVsZXRlQWxsKFNscnVEZXNjICpjdGwsIGNoYXIgKmZpbGVuYW1lLCBpbnQ2NCBz ZWdwYWdlLCB2b2lkICpkYXRhKQorU2xydVNjYW5EaXJDYkRlbGV0ZUFsbChjb25zdCBTbHJ1RGVz YyAqY3RsLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJICAgaW50NjQgc2VncGFnZSwgdm9p ZCAqZGF0YSkKIHsKIAlTbHJ1SW50ZXJuYWxEZWxldGVTZWdtZW50KGN0bCwgc2VncGFnZSAvIFNM UlVfUEFHRVNfUEVSX1NFR01FTlQpOwogCkBAIC0xODA4LDcgKzE4MTIsNyBAQCBTbHJ1U2NhbkRp ckNiRGVsZXRlQWxsKFNscnVEZXNjICpjdGwsIGNoYXIgKmZpbGVuYW1lLCBpbnQ2NCBzZWdwYWdl LCB2b2lkICpkYXRhKQogICogU0xSVSBzZWdtZW50LgogICovCiBzdGF0aWMgaW5saW5lIGJvb2wK LVNscnVDb3JyZWN0U2VnbWVudEZpbGVuYW1lTGVuZ3RoKFNscnVEZXNjICpjdGwsIHNpemVfdCBs ZW4pCitTbHJ1Q29ycmVjdFNlZ21lbnRGaWxlbmFtZUxlbmd0aChjb25zdCBTbHJ1RGVzYyAqY3Rs LCBzaXplX3QgbGVuKQogewogCWlmIChjdGwtPm9wdGlvbnMubG9uZ19zZWdtZW50X25hbWVzKQog CQlyZXR1cm4gKGxlbiA9PSAxNSk7CQkvKiBzZWUgU2xydUZpbGVOYW1lKCkgKi8KQEAgLTE4NDEs NyArMTg0NSw3IEBAIFNscnVDb3JyZWN0U2VnbWVudEZpbGVuYW1lTGVuZ3RoKFNscnVEZXNjICpj dGwsIHNpemVfdCBsZW4pCiAgKiBOb3RlIHRoYXQgbm8gbG9ja2luZyBpcyBhcHBsaWVkLgogICov CiBib29sCi1TbHJ1U2NhbkRpcmVjdG9yeShTbHJ1RGVzYyAqY3RsLCBTbHJ1U2NhbkNhbGxiYWNr IGNhbGxiYWNrLCB2b2lkICpkYXRhKQorU2xydVNjYW5EaXJlY3RvcnkoY29uc3QgU2xydURlc2Mg KmN0bCwgU2xydVNjYW5DYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqZGF0YSkKIHsKIAlib29sCQly ZXR2YWwgPSBmYWxzZTsKIAlESVIJCSAgICpjbGRpcjsKQEAgLTE4ODEsNyArMTg4NSw3IEBAIFNs cnVTY2FuRGlyZWN0b3J5KFNscnVEZXNjICpjdGwsIFNscnVTY2FuQ2FsbGJhY2sgY2FsbGJhY2ss IHZvaWQgKmRhdGEpCiAgKiBwZXJmb3JtcyB0aGUgZnN5bmMuCiAgKi8KIGludAotU2xydVN5bmNG aWxlVGFnKFNscnVEZXNjICpjdGwsIGNvbnN0IEZpbGVUYWcgKmZ0YWcsIGNoYXIgKnBhdGgpCitT bHJ1U3luY0ZpbGVUYWcoY29uc3QgU2xydURlc2MgKmN0bCwgY29uc3QgRmlsZVRhZyAqZnRhZywg Y2hhciAqcGF0aCkKIHsKIAlpbnQJCQlmZDsKIAlpbnQJCQlzYXZlX2Vycm5vOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgK aW5kZXggMzZhNzUxNGQ3YTAuLjc0ZWE4NGRlZWM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTIwMCw3ICsy MDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBTbHJ1RGVzYwogICogcmVzcGVjdGl2ZSBiYW5rLgogICov CiBzdGF0aWMgaW5saW5lIExXTG9jayAqCi1TaW1wbGVMcnVHZXRCYW5rTG9jayhTbHJ1RGVzYyAq Y3RsLCBpbnQ2NCBwYWdlbm8pCitTaW1wbGVMcnVHZXRCYW5rTG9jayhjb25zdCBTbHJ1RGVzYyAq Y3RsLCBpbnQ2NCBwYWdlbm8pCiB7CiAJaW50CQkJYmFua25vOwogCkBAIC0yMTUsMzQgKzIxNSwz NiBAQCBleHRlcm4gdm9pZCBTaW1wbGVMcnVSZXF1ZXN0V2l0aE9wdHMoY29uc3QgU2xydU9wdHMg Km9wdGlvbnMpOwogCVNpbXBsZUxydVJlcXVlc3RXaXRoT3B0cygmKFNscnVPcHRzKXtfX1ZBX0FS R1NfX30pCiAKIGV4dGVybiBpbnQJU2ltcGxlTHJ1QXV0b3R1bmVCdWZmZXJzKGludCBkaXZpc29y LCBpbnQgbWF4KTsKLWV4dGVybiBpbnQJU2ltcGxlTHJ1WmVyb1BhZ2UoU2xydURlc2MgKmN0bCwg aW50NjQgcGFnZW5vKTsKLWV4dGVybiB2b2lkIFNpbXBsZUxydVplcm9BbmRXcml0ZVBhZ2UoU2xy dURlc2MgKmN0bCwgaW50NjQgcGFnZW5vKTsKLWV4dGVybiBpbnQJU2ltcGxlTHJ1UmVhZFBhZ2Uo U2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vLCBib29sIHdyaXRlX29rLAorZXh0ZXJuIGludAlT aW1wbGVMcnVaZXJvUGFnZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8pOworZXh0 ZXJuIHZvaWQgU2ltcGxlTHJ1WmVyb0FuZFdyaXRlUGFnZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBp bnQ2NCBwYWdlbm8pOworZXh0ZXJuIGludAlTaW1wbGVMcnVSZWFkUGFnZShjb25zdCBTbHJ1RGVz YyAqY3RsLCBpbnQ2NCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCiAJCQkJCQkJICBjb25zdCB2b2lk ICpvcGFxdWVfZGF0YSk7Ci1leHRlcm4gaW50CVNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KFNs cnVEZXNjICpjdGwsIGludDY0IHBhZ2VubywKK2V4dGVybiBpbnQJU2ltcGxlTHJ1UmVhZFBhZ2Vf UmVhZE9ubHkoY29uc3QgU2xydURlc2MgKmN0bCwgaW50NjQgcGFnZW5vLAogCQkJCQkJCQkJICAg Y29uc3Qgdm9pZCAqb3BhcXVlX2RhdGEpOwotZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1V3JpdGVQYWdl KFNscnVEZXNjICpjdGwsIGludCBzbG90bm8pOwotZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1V3JpdGVB bGwoU2xydURlc2MgKmN0bCwgYm9vbCBhbGxvd19yZWRpcnRpZWQpOworZXh0ZXJuIHZvaWQgU2lt cGxlTHJ1V3JpdGVQYWdlKGNvbnN0IFNscnVEZXNjICpjdGwsIGludCBzbG90bm8pOworZXh0ZXJu IHZvaWQgU2ltcGxlTHJ1V3JpdGVBbGwoY29uc3QgU2xydURlc2MgKmN0bCwgYm9vbCBhbGxvd19y ZWRpcnRpZWQpOwogI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKLWV4dGVybiB2b2lkIFNscnVQ YWdlUHJlY2VkZXNVbml0VGVzdHMoU2xydURlc2MgKmN0bCwgaW50IHBlcl9wYWdlKTsKK2V4dGVy biB2b2lkIFNscnVQYWdlUHJlY2VkZXNVbml0VGVzdHMoY29uc3QgU2xydURlc2MgKmN0bCwgaW50 IHBlcl9wYWdlKTsKICNlbHNlCiAjZGVmaW5lIFNscnVQYWdlUHJlY2VkZXNVbml0VGVzdHMoY3Rs LCBwZXJfcGFnZSkgZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKLWV4dGVybiB2b2lkIFNpbXBsZUxy dVRydW5jYXRlKFNscnVEZXNjICpjdGwsIGludDY0IGN1dG9mZlBhZ2UpOwotZXh0ZXJuIGJvb2wg U2ltcGxlTHJ1RG9lc1BoeXNpY2FsUGFnZUV4aXN0KFNscnVEZXNjICpjdGwsIGludDY0IHBhZ2Vu byk7CitleHRlcm4gdm9pZCBTaW1wbGVMcnVUcnVuY2F0ZShjb25zdCBTbHJ1RGVzYyAqY3RsLCBp bnQ2NCBjdXRvZmZQYWdlKTsKK2V4dGVybiBib29sIFNpbXBsZUxydURvZXNQaHlzaWNhbFBhZ2VF eGlzdChjb25zdCBTbHJ1RGVzYyAqY3RsLCBpbnQ2NCBwYWdlbm8pOwogCi10eXBlZGVmIGJvb2wg KCpTbHJ1U2NhbkNhbGxiYWNrKSAoU2xydURlc2MgKmN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0 IHNlZ3BhZ2UsCi0JCQkJCQkJCSAgdm9pZCAqZGF0YSk7Ci1leHRlcm4gYm9vbCBTbHJ1U2NhbkRp cmVjdG9yeShTbHJ1RGVzYyAqY3RsLCBTbHJ1U2NhbkNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpk YXRhKTsKLWV4dGVybiB2b2lkIFNscnVEZWxldGVTZWdtZW50KFNscnVEZXNjICpjdGwsIGludDY0 IHNlZ25vKTsKK3R5cGVkZWYgYm9vbCAoKlNscnVTY2FuQ2FsbGJhY2spIChjb25zdCBTbHJ1RGVz YyAqY3RsLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJCQkJICBpbnQ2NCBzZWdwYWdlLCB2 b2lkICpkYXRhKTsKK2V4dGVybiBib29sIFNscnVTY2FuRGlyZWN0b3J5KGNvbnN0IFNscnVEZXNj ICpjdGwsIFNscnVTY2FuQ2FsbGJhY2sgY2FsbGJhY2ssCisJCQkJCQkJICB2b2lkICpkYXRhKTsK K2V4dGVybiB2b2lkIFNscnVEZWxldGVTZWdtZW50KGNvbnN0IFNscnVEZXNjICpjdGwsIGludDY0 IHNlZ25vKTsKIAotZXh0ZXJuIGludAlTbHJ1U3luY0ZpbGVUYWcoU2xydURlc2MgKmN0bCwgY29u c3QgRmlsZVRhZyAqZnRhZywgY2hhciAqcGF0aCk7CitleHRlcm4gaW50CVNscnVTeW5jRmlsZVRh Zyhjb25zdCBTbHJ1RGVzYyAqY3RsLCBjb25zdCBGaWxlVGFnICpmdGFnLAorCQkJCQkJCWNoYXIg KnBhdGgpOwogCiAvKiBTbHJ1U2NhbkRpcmVjdG9yeSBwdWJsaWMgY2FsbGJhY2tzICovCi1leHRl cm4gYm9vbCBTbHJ1U2NhbkRpckNiUmVwb3J0UHJlc2VuY2UoU2xydURlc2MgKmN0bCwgY2hhciAq ZmlsZW5hbWUsCitleHRlcm4gYm9vbCBTbHJ1U2NhbkRpckNiUmVwb3J0UHJlc2VuY2UoY29uc3Qg U2xydURlc2MgKmN0bCwgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAJCQkJCQkJCQkJaW50NjQgc2Vn cGFnZSwgdm9pZCAqZGF0YSk7Ci1leHRlcm4gYm9vbCBTbHJ1U2NhbkRpckNiRGVsZXRlQWxsKFNs cnVEZXNjICpjdGwsIGNoYXIgKmZpbGVuYW1lLCBpbnQ2NCBzZWdwYWdlLAotCQkJCQkJCQkgICB2 b2lkICpkYXRhKTsKK2V4dGVybiBib29sIFNscnVTY2FuRGlyQ2JEZWxldGVBbGwoY29uc3QgU2xy dURlc2MgKmN0bCwgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCQkJCSAgIGludDY0IHNlZ3Bh Z2UsIHZvaWQgKmRhdGEpOwogZXh0ZXJuIGJvb2wgY2hlY2tfc2xydV9idWZmZXJzKGNvbnN0IGNo YXIgKm5hbWUsIGludCAqbmV3dmFsKTsKIAogZXh0ZXJuIHZvaWQgc2htZW1fc2xydV9pbml0KHZv aWQgKmxvY2F0aW9uLCBTaG1lbVN0cnVjdE9wdHMgKm9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3Rfc2xydS90ZXN0X3NscnUuYwppbmRleCA0MGVmZmZkYmY2Mi4uNWRmYTA4MmVkMjUgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5jCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5jCkBAIC01NSw3ICs1NSw4IEBAIHN0YXRp YyBjb25zdCBTaG1lbUNhbGxiYWNrcyB0ZXN0X3NscnVfc2htZW1fY2FsbGJhY2tzID0gewogI2Rl ZmluZSBUZXN0U2xydUN0bAkJCSgmVGVzdFNscnVEZXNjKQogCiBzdGF0aWMgYm9vbAotdGVzdF9z bHJ1X3NjYW5fY2IoU2xydURlc2MgKmN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2Us IHZvaWQgKmRhdGEpCit0ZXN0X3NscnVfc2Nhbl9jYihjb25zdCBTbHJ1RGVzYyAqY3RsLCBjb25z dCBjaGFyICpmaWxlbmFtZSwgaW50NjQgc2VncGFnZSwKKwkJCQkgIHZvaWQgKmRhdGEpCiB7CiAJ ZWxvZyhOT1RJQ0UsICJDYWxsaW5nIHRlc3Rfc2xydV9zY2FuX2NiKCkiKTsKIAlyZXR1cm4gU2xy dVNjYW5EaXJDYkRlbGV0ZUFsbChjdGwsIGZpbGVuYW1lLCBzZWdwYWdlLCBkYXRhKTsKLS0gCjIu NTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000079be1f064ebbfb42--