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 1vQcbx-00Ctkg-2y for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Dec 2025 02:28:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vQcbw-00AtmS-1t for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Dec 2025 02:28:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vQcbv-00AtmJ-1J for pgsql-hackers@lists.postgresql.org; Wed, 03 Dec 2025 02:28:56 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vQcbr-002qhX-0V for pgsql-hackers@lists.postgresql.org; Wed, 03 Dec 2025 02:28:54 +0000 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-595825c8eb3so5923861e87.0 for ; Tue, 02 Dec 2025 18:28:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764728930; x=1765333730; darn=lists.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=lWbBYBWtJKvUPixo0NwPq5o1UNaVHFh2zCBNByTzyCk=; b=U8GWsou8tnBigSKY5gehBCMNO4EJEQf6O4Eummy0gnetsSTlRNoRT+A2piRS3D5CnA XOABh9I8RgnE+u9VWA2mnaKlIPOVzfSCwwwv0NAX6WIvxgF76ErbnIwt1Gy5VZa4aRnR 35O9Xm6zhkFv823IUNdNgQk1YdDHgfgE0/5+/FkUiCZaKWIpKG5X4jMITwxypbuVzBZY o1gamt3XdZSfhWo9LC/ndSGw4osIh91kLApUXcXTnQ3Fj5l7rNx0aNg8idFfV5K3SUkn hRa8a9ZED/pi6iXxfkMvjjmiwwFzXqSeF+YbDEZzIfu7bElTPsfBdTQdkQIPpfrv0Dg7 mkgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764728930; x=1765333730; 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=lWbBYBWtJKvUPixo0NwPq5o1UNaVHFh2zCBNByTzyCk=; b=utUMSWHlmlGQsmo2TWJSNWRk5cKhn1Rie3WPitdVQzCEEqrbPfj1IMa7ov7Yj8gNhL 96mYWu70fRzTX4AkBifwRqKqZk7LRRcLmKRSN2U0DM9wkhfdUPdKM5/amKBEjLO4d030 IKlBehUXt3H3VTX+nFFWJgJgBUykYlMbmPQJqg6DUW7Ut5Km9XPYpvCeFHoegLdcsd0o GWG0lfKUNWVHdhWyflZa8Tmy4HdnzfWbz9RmA8H1RHx34fNsf5w+ldJhCFgCzWa2271D ZYHnl1JDGI/8SQrBBxXdSzqlq9hGLxAhrVeF78w7em0NjimrBWLocLfjQYlGQ/YncfyW Jofw== X-Gm-Message-State: AOJu0YxJhwMFtr2Fc6FZhlknP6FZuJLo5ivIcyDDxnPQhJQrEuLQ7nZf mkQspTtvGpOxENL2pP3oaZzYkDKRc8ILLd24keW2OlyrySkrNQ9shwmY35nC14MYKaLPVkryn/V kuag4mrT0mtwLE9K5OQ6gchE7WNI6NFEEJGOm X-Gm-Gg: ASbGncvdyWZwWJRhVCXOIOneMNSLS9y+2misOV8upyYNV7XEXfWxIDuq8STN4Ef3N0z DmtIx+vI158WBYGUIE3eBECKDjmQjRLRk4IvKS4uePelkli11ct/7Zuj2MyRL57AC69TjgvDXV9 dfyKgR8FkSNLYc3D39KhYrPAoEzVGKRN6YPbIwVMMh5hRmYb8MfjOgg7lf5HL0mOR9NsOi9kb1/ ohvrVWz8VuAgj23Q6UxqUbM8NFgg54ryL6HzTspDwa9bEf20yXLDwa4m7vEGGQqJG64Q+8= X-Google-Smtp-Source: AGHT+IF29vWYr08XQ496DhAjRiRujBvaB6IYWxeEOdzj9gEIX9RnS/mWV78N5YEpRUCRavz8sVunCGtb0geC0vh522U= X-Received: by 2002:a05:6512:1390:b0:594:5000:4555 with SMTP id 2adb3069b0e04-597d3fba5ddmr232319e87.29.1764728929666; Tue, 02 Dec 2025 18:28:49 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Chao Li Date: Wed, 3 Dec 2025 10:28:36 +0800 X-Gm-Features: AWmQ_bkYu6GOTF1Qt-aVnJw2K259bGqMDbNegTynK3L0UK9nFM6N-EYrRxEa-jo Message-ID: Subject: Re: Cleanup shadows variable warnings, round 1 To: Peter Eisentraut Cc: Postgres hackers Content-Type: multipart/mixed; boundary="000000000000fa6571064502f87d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fa6571064502f87d Content-Type: multipart/alternative; boundary="000000000000fa6570064502f87b" --000000000000fa6570064502f87b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Peter, On Nov 29, 2025, at 23:29, Peter Eisentraut wrote: On 28.11.25 09:16, Chao Li wrote: Hi Hackers, While reviewing [1], it makes me recall an experience where I had a patch ready locally, but CommitFest CI failed with a shadows-variable warning. Now I understand that -Wall doesn't by default enable -Wshadows with some compilers like clang. I did a clean build with manually enabling -Wshadow and surprisingly found there are a lot of such warnings in the current code base, roughly ~200 occurrences. As there are too many, I plan to fix them all in 3-4 rounds. For round 1 patch, I'd see any objection, then decide if to proceed more rounds. See < https://www.postgresql.org/message-id/flat/20220817145434.GC26426%40telsaso= ft.com> for a previous long thread on this, which led to the addition of the -Wshadow=3Dcompatible-local flag. Thanks for pointing out the previous discussion. I have read through the discussion. Looks like there was no objection on the direction of cleaning up the shadow-variable warnings, folks were discussing how to do the cleanup. I think my v1 patch has already taken the =E2=80=9Csaner=E2=80=9D = way as Micheal suggested: renaming inter local variables. I counted all warnings, there are totally 167 occurrences, seems a manageable number. Instead of randomly splitting all fixes into several commits as v1 did, which would really discourage reviewers and committers, in v2, I tried to categorize all warnings to different types, and put fixes of different types into different commits, which should make reviews a lot easier. All commits are self-contained, each of them can be reviewed and pushed independently. I think this is a slightly unsatisfactory state, because that is a gcc-specific option, and maybe you are using clang or something else. So maybe some further cleanup is useful, but please check the previous discussions. I know -Wshadow=3Dcompatible-local is not supported by all compilers, some compilers may fallback to -Wshadow and some may just ignore it. This patch set has cleaned up all shadow-variable warnings, once the cleanup is done, in theory, we should be able to enable -Wshadow. 0001 - simple cases of local variable shadowing local variable by changing inner variable to for loop variable (also need to rename the for loop var) 0002 - simple cases of local variable shadowing local variable by renaming inner variable 0003 - simple cases of local variable shadowing local variable by renaming outer variable. In this commit, outer local variables are used much less than inner variables, thus renaming outer is simpler than renaming inner. 0004 - still local shadows local, but caused by a macro definition, only in inval.c 0005 - cases of global wal_level and wal_segment_size shadow local ones, fixed by renaming local variables 0006 - in xlogrecovery.c, some static file-scope variables shadow local variables, fixed by renaming local variables 0007 - cases of global progname shadows local, fixed by renaming local to myprogname 0008 - in file_ops.c, some static file-scope variables shadow local, fixed by renaming local variables 0009 - simple cases of local variables are shadowed by global, fixed by renaming local variables 0010 - a few more cases of static file-scope variables shadow local variables, fixed by renaming local variables 0011 - cases of global conn shadows local variables, fixed by renaming local conn to myconn 0012 - fixed shadowing in ecpg.header 0013 - fixed shadowing in all time-related modules. Heikki had a concern where there is a global named =E2=80=9Cdays=E2=80=9D, so there could be som= e discussions for this commit. For now, I just renamed local variables to avoid shadowing= . With this patch set, building postgres with =E2=80=9C-Wshadow=E2=80=9D won= =E2=80=99t get any warning. Note, this patch set doesn=E2=80=99t cover contrib. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/ --000000000000fa6570064502f87b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
H= i Peter,

On Nov 29, 2025, at 23:29, Peter= Eisentraut <p= eter@eisentraut.org> wrote:

On 28.11.25 09:16, Chao Li wrote:=
Hi Hackers,
While reviewing [1], it makes = me recall an experience where I had a patch ready locally, but CommitFest C= I failed with a shadows-variable warning. Now I understand that -Wall doesn= 't by default enable -Wshadows with some compilers like clang.
I did= a clean build with manually enabling -Wshadow and surprisingly=C2=A0found = there are a lot of such warnings in the current code base, roughly ~200 occ= urrences.
As there are too many, I plan to fix them all in 3-4 rounds. F= or round 1 patch, I'd see any objection, then decide if to proceed more= rounds.

See <h= ttps://www.postgresql.org/message-id/flat/20220817145434.GC26426%40telsasof= t.com> for a previous long thread on this, which led to the addition= of the -Wshadow=3Dcompatible-local flag.

Thanks for pointing out the previous discussion. I have read through the= discussion. Looks like there was no objection on the direction of cleaning= up the shadow-variable warnings, folks were discussing how to do the clean= up. I think my v1 patch has already taken the =E2=80=9Csaner=E2=80=9D way a= s Micheal suggested: renaming inter local variables.

I counted all warnings, there are totally 167 occurrences, seems a manag= eable number. Instead of randomly splitting all fixes into several commits = as v1 did, which would really discourage reviewers and committers, in v2, I= tried to categorize all warnings to different types, and put fixes of diff= erent types into different commits, which should make reviews a lot easier.= All commits are self-contained, each of them can be reviewed and pushed in= dependently.


I think this= is a slightly unsatisfactory state, because that is a gcc-specific option,= and maybe you are using clang or something else. So maybe some further cle= anup is useful, but please check the previous discussions.
=

I know -Wshadow=3Dcompatible-local is not supported by all c= ompilers, some compilers may fallback to -Wshadow and some may just ignore = it. This patch set has cleaned up all shadow-variable warnings, once the cl= eanup is done, in theory, we should be able to enable -Wshadow.
<= br>
0001 - simple cases of local variable shadowing local variabl= e by changing inner variable to for loop variable (also need to rename the = for loop var)
0002 - simple cases of local variable shadowing loc= al variable by renaming =C2=A0inner variable=C2=A0
0003 - simple = cases of local variable shadowing local variable by renaming outer variable= . In this commit, outer local variables are used much less than inner varia= bles, thus renaming outer is simpler than renaming inner.
0004 - = =C2=A0still local shadows local, but caused by a macro definition, only in = inval.c
0005 - cases of global wal_level and wal_segment_size sha= dow local ones, fixed by renaming local variables
0006 - in xlogr= ecovery.c, some static file-scope variables shadow local variables, fixed b= y renaming local variables
0007 - cases of global progname shadow= s local, fixed by renaming local to myprogname
0008 - in file_ops= .c, some=C2=A0static file-scope variables shadow local, fixed by renaming l= ocal variables
0009 - simple cases of local variables are shadowe= d by global, fixed by renaming local variables
0010 - a few more = cases of static file-scope variables shadow local variables, fixed by renam= ing local variables
0011 - cases of global conn shadows local var= iables, fixed by renaming local conn to myconn
0012 - fixed shado= wing in=C2=A0ecpg.header
0013 - fixed shadowing in all time-relat= ed modules. Heikki had a concern where there is a global named =E2=80=9Cday= s=E2=80=9D, so there could be some discussions for this commit. For now, I = just renamed local variables to avoid shadowing.

With this patch set= , building postgres with =E2=80=9C-Wshadow=E2=80=9D won=E2=80=99t get any w= arning. Note, this patch set doesn=E2=80=99t cover contrib.

Best reg= ards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/




--000000000000fa6570064502f87b-- --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0005-cleanup-avoid-local-wal_level-and-wal_segment_siz.patch" Content-Disposition: attachment; filename="v2-0005-cleanup-avoid-local-wal_level-and-wal_segment_siz.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocn4 RnJvbSAwY2RkZWUyODJhMDhjNzkyMTRmYTcyYTIxYTU0OGI3M2NjNjI1NmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDEzOjQ1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwNS8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgd2FsX2xldmVsIGFuZCB3YWxfc2VnbWVudF9zaXplCiBi ZWluZyBzaGFkb3dlZCBieSBnbG9iYWxzCgpUaGlzIGNvbW1pdCBmaXhlcyBjYXNlcyB3aGVyZSBs b2NhbCB2YXJpYWJsZXMgbmFtZWQgd2FsX2xldmVsIGFuZAp3YWxfc2VnbWVudF9zaXplIHdlcmUg c2hhZG93ZWQgYnkgZ2xvYmFsIGlkZW50aWZpZXJzIG9mIHRoZSBzYW1lIG5hbWVzLgpUaGUgbG9j YWwgdmFyaWFibGVzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFkb3dlZCBi eSB0aGUKZ2xvYmFscy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+CkRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0SExKMz1qZkMrcDVZWEhr SnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNz L3JtZ3JkZXNjL3hsb2dkZXNjLmMgIHwgMTggKysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMgfCAgNCArKy0tCiBzcmMvYmluL3BnX2NvbnRy b2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMgfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEzIGlu c2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3hs b2dkZXNjLmMKaW5kZXggY2Q2YzJhMmY2NTAuLjYyNDFkODdjNjQ3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYwpAQCAtMzQsMjQgKzM0LDI0IEBAIGNvbnN0IHN0cnVjdCBj b25maWdfZW51bV9lbnRyeSB3YWxfbGV2ZWxfb3B0aW9uc1tdID0gewogfTsKIAogLyoKLSAqIEZp bmQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHdhbF9sZXZlbAorICogRmluZCBhIHN0cmlu ZyByZXByZXNlbnRhdGlvbiBmb3Igd2FsbGV2ZWwKICAqLwogc3RhdGljIGNvbnN0IGNoYXIgKgot Z2V0X3dhbF9sZXZlbF9zdHJpbmcoaW50IHdhbF9sZXZlbCkKK2dldF93YWxfbGV2ZWxfc3RyaW5n KGludCB3YWxsZXZlbCkKIHsKIAljb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgKmVudHJ5 OwotCWNvbnN0IGNoYXIgKndhbF9sZXZlbF9zdHIgPSAiPyI7CisJY29uc3QgY2hhciAqd2FsbGV2 ZWxfc3RyID0gIj8iOwogCiAJZm9yIChlbnRyeSA9IHdhbF9sZXZlbF9vcHRpb25zOyBlbnRyeS0+ bmFtZTsgZW50cnkrKykKIAl7Ci0JCWlmIChlbnRyeS0+dmFsID09IHdhbF9sZXZlbCkKKwkJaWYg KGVudHJ5LT52YWwgPT0gd2FsbGV2ZWwpCiAJCXsKLQkJCXdhbF9sZXZlbF9zdHIgPSBlbnRyeS0+ bmFtZTsKKwkJCXdhbGxldmVsX3N0ciA9IGVudHJ5LT5uYW1lOwogCQkJYnJlYWs7CiAJCX0KIAl9 CiAKLQlyZXR1cm4gd2FsX2xldmVsX3N0cjsKKwlyZXR1cm4gd2FsbGV2ZWxfc3RyOwogfQogCiB2 b2lkCkBAIC0xNjIsMTAgKzE2MiwxMCBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogCX0KIAllbHNlIGlmIChpbmZvID09IFhMT0dfQ0hFQ0tQT0lO VF9SRURPKQogCXsKLQkJaW50CQkJd2FsX2xldmVsOworCQlpbnQJCQl3YWxsZXZlbDsKIAotCQlt ZW1jcHkoJndhbF9sZXZlbCwgcmVjLCBzaXplb2YoaW50KSk7Ci0JCWFwcGVuZFN0cmluZ0luZm8o YnVmLCAid2FsX2xldmVsICVzIiwgZ2V0X3dhbF9sZXZlbF9zdHJpbmcod2FsX2xldmVsKSk7CisJ CW1lbWNweSgmd2FsbGV2ZWwsIHJlYywgc2l6ZW9mKGludCkpOworCQlhcHBlbmRTdHJpbmdJbmZv KGJ1ZiwgIndhbF9sZXZlbCAlcyIsIGdldF93YWxfbGV2ZWxfc3RyaW5nKHdhbGxldmVsKSk7CiAJ fQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVy LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMKaW5kZXggOWNjNzQ4 OGU4OTIuLjBhZTRlMDVmOGYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9ncmVhZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRl ci5jCkBAIC0xMDQsNyArMTA0LDcgQEAgWExvZ1JlYWRlclNldERlY29kZUJ1ZmZlcihYTG9nUmVh ZGVyU3RhdGUgKnN0YXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKQogICogUmV0dXJucyBO VUxMIGlmIHRoZSB4bG9ncmVhZGVyIGNvdWxkbid0IGJlIGFsbG9jYXRlZC4KICAqLwogWExvZ1Jl YWRlclN0YXRlICoKLVhMb2dSZWFkZXJBbGxvY2F0ZShpbnQgd2FsX3NlZ21lbnRfc2l6ZSwgY29u c3QgY2hhciAqd2FsZGlyLAorWExvZ1JlYWRlckFsbG9jYXRlKGludCB3YWxfc2VnX3NpemUsIGNv bnN0IGNoYXIgKndhbGRpciwKIAkJCQkgICBYTG9nUmVhZGVyUm91dGluZSAqcm91dGluZSwgdm9p ZCAqcHJpdmF0ZV9kYXRhKQogewogCVhMb2dSZWFkZXJTdGF0ZSAqc3RhdGU7CkBAIC0xMzQsNyAr MTM0LDcgQEAgWExvZ1JlYWRlckFsbG9jYXRlKGludCB3YWxfc2VnbWVudF9zaXplLCBjb25zdCBj aGFyICp3YWxkaXIsCiAJfQogCiAJLyogSW5pdGlhbGl6ZSBzZWdtZW50IGluZm8uICovCi0JV0FM T3BlblNlZ21lbnRJbml0KCZzdGF0ZS0+c2VnLCAmc3RhdGUtPnNlZ2N4dCwgd2FsX3NlZ21lbnRf c2l6ZSwKKwlXQUxPcGVuU2VnbWVudEluaXQoJnN0YXRlLT5zZWcsICZzdGF0ZS0+c2VnY3h0LCB3 YWxfc2VnX3NpemUsCiAJCQkJCSAgIHdhbGRpcik7CiAKIAkvKiBzeXN0ZW1faWRlbnRpZmllciBp bml0aWFsaXplZCB0byB6ZXJvZXMgYWJvdmUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29u dHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYyBiL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29u dHJvbGRhdGEuYwppbmRleCAzMGFkNDY5MTJlMS4uYTJiODczOWNiOTYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYworKysgYi9zcmMvYmluL3BnX2Nv bnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKQEAgLTcwLDkgKzcwLDkgQEAgZGJTdGF0ZShEQlN0 YXRlIHN0YXRlKQogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqCi13YWxfbGV2ZWxfc3RyKFdhbExl dmVsIHdhbF9sZXZlbCkKK3dhbF9sZXZlbF9zdHIoV2FsTGV2ZWwgd2FsbGV2ZWwpCiB7Ci0Jc3dp dGNoICh3YWxfbGV2ZWwpCisJc3dpdGNoICh3YWxsZXZlbCkKIAl7CiAJCWNhc2UgV0FMX0xFVkVM X01JTklNQUw6CiAJCQlyZXR1cm4gIm1pbmltYWwiOwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0001-cleanup-rename-loop-variables-to-avoid-local-shad.patch" Content-Disposition: attachment; filename="v2-0001-cleanup-rename-loop-variables-to-avoid-local-shad.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocd0 RnJvbSAwYmVkNjg0ZGVmZWYxOWVhODhkYzY0YzIyNjZjZGRiNzE2NmI0ZGUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDA5OjIyOjQ3ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwMS8x M10gY2xlYW51cDogcmVuYW1lIGxvb3AgdmFyaWFibGVzIHRvIGF2b2lkIGxvY2FsCiBzaGFkb3dp bmcKClRoaXMgY29tbWl0IGFkanVzdHMgc2V2ZXJhbCBjb2RlIGxvY2F0aW9ucyB3aGVyZSBhIGxv Y2FsIHZhcmlhYmxlIHdhcwpzaGFkb3dlZCBieSBhbm90aGVyIGluIHRoZSBzYW1lIHNjb3BlLiBU aGUgY2hhbmdlcyB1cGRhdGUgbG9vcC12YXJpYWJsZQpuYW1lcyBpbiBiYXNlYmFja3VwX2luY3Jl bWVudGFsLmMgYW5kIHBhcnNlX3RhcmdldC5jIHNvIHRoYXQgZWFjaAp2YXJpYWJsZSBpcyB1bmlx dWVseSBzY29wZWQgd2l0aGluIGl0cyBibG9jay4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hn by5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0 SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3Jj L2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYyB8ICA1ICsrLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAgICAgIHwgMTAgKysrKy0tLS0tLQog MiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYyBiL3NyYy9i YWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMKaW5kZXggODUyYWI1NzcwNDUu LjQ0ZjhkZTZmZGFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9p bmNyZW1lbnRhbC5jCisrKyBiL3NyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVu dGFsLmMKQEAgLTU5NiwxNiArNTk2LDE1IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJ bmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCQkJd2hpbGUgKDEpCiAJCQl7CiAJCQkJdW5zaWdu ZWQJbmJsb2NrczsKLQkJCQl1bnNpZ25lZAlpOwogCiAJCQkJbmJsb2NrcyA9IEJsb2NrUmVmVGFi bGVSZWFkZXJHZXRCbG9ja3MocmVhZGVyLCBibG9ja3MsCiAJCQkJCQkJCQkJCQkJICAgQkxPQ0tT X1BFUl9SRUFEKTsKIAkJCQlpZiAobmJsb2NrcyA9PSAwKQogCQkJCQlicmVhazsKIAotCQkJCWZv ciAoaSA9IDA7IGkgPCBuYmxvY2tzOyArK2kpCisJCQkJZm9yICh1bnNpZ25lZCB1ID0gMDsgdSA8 IG5ibG9ja3M7ICsrdSkKIAkJCQkJQmxvY2tSZWZUYWJsZU1hcmtCbG9ja01vZGlmaWVkKGliLT5i cnRhYiwgJnJsb2NhdG9yLAotCQkJCQkJCQkJCQkJICAgZm9ya251bSwgYmxvY2tzW2ldKTsKKwkJ CQkJCQkJCQkJCSAgIGZvcmtudW0sIGJsb2Nrc1t1XSk7CiAJCQl9CiAJCX0KIAkJRGVzdHJveUJs b2NrUmVmVGFibGVSZWFkZXIocmVhZGVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRl eCA5MDVjOTc1ZDgzYi4uMDQ2Zjk2ZDQxMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMK QEAgLTE2MDksMTAgKzE2MDksOSBAQCBleHBhbmRSZWNvcmRWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIFZhciAqdmFyLCBpbnQgbGV2ZWxzdXApCiAJCQkJCSAqIHN1YnNlbGVjdCBtdXN0IGhh dmUgdGhhdCBvdXRlciBsZXZlbCBhcyBwYXJlbnQuCiAJCQkJCSAqLwogCQkJCQlQYXJzZVN0YXRl CW15cHN0YXRlID0gezB9OwotCQkJCQlJbmRleAkJbGV2ZWxzdXA7CiAKIAkJCQkJLyogdGhpcyBs b29wIG11c3Qgd29yaywgc2luY2UgR2V0UlRFQnlSYW5nZVRhYmxlUG9zbiBkaWQgKi8KLQkJCQkJ Zm9yIChsZXZlbHN1cCA9IDA7IGxldmVsc3VwIDwgbmV0bGV2ZWxzdXA7IGxldmVsc3VwKyspCisJ CQkJCWZvciAoSW5kZXggbGV2ZWwgPSAwOyBsZXZlbCA8IG5ldGxldmVsc3VwOyBsZXZlbCsrKQog CQkJCQkJcHN0YXRlID0gcHN0YXRlLT5wYXJlbnRQYXJzZVN0YXRlOwogCQkJCQlteXBzdGF0ZS5w YXJlbnRQYXJzZVN0YXRlID0gcHN0YXRlOwogCQkJCQlteXBzdGF0ZS5wX3J0YWJsZSA9IHJ0ZS0+ c3VicXVlcnktPnJ0YWJsZTsKQEAgLTE2NjcsMTIgKzE2NjYsMTEgQEAgZXhwYW5kUmVjb3JkVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXIgKnZhciwgaW50IGxldmVsc3VwKQogCQkJCQkg KiBjb3VsZCBiZSBhbiBvdXRlciBDVEUgKGNvbXBhcmUgU1VCUVVFUlkgY2FzZSBhYm92ZSkuCiAJ CQkJCSAqLwogCQkJCQlQYXJzZVN0YXRlCW15cHN0YXRlID0gezB9OwotCQkJCQlJbmRleAkJbGV2 ZWxzdXA7CiAKIAkJCQkJLyogdGhpcyBsb29wIG11c3Qgd29yaywgc2luY2UgR2V0Q1RFRm9yUlRF IGRpZCAqLwotCQkJCQlmb3IgKGxldmVsc3VwID0gMDsKLQkJCQkJCSBsZXZlbHN1cCA8IHJ0ZS0+ Y3RlbGV2ZWxzdXAgKyBuZXRsZXZlbHN1cDsKLQkJCQkJCSBsZXZlbHN1cCsrKQorCQkJCQlmb3Ig KEluZGV4IGxldmVsID0gMDsKKwkJCQkJCSBsZXZlbCA8IHJ0ZS0+Y3RlbGV2ZWxzdXAgKyBuZXRs ZXZlbHN1cDsKKwkJCQkJCSBsZXZlbCsrKQogCQkJCQkJcHN0YXRlID0gcHN0YXRlLT5wYXJlbnRQ YXJzZVN0YXRlOwogCQkJCQlteXBzdGF0ZS5wYXJlbnRQYXJzZVN0YXRlID0gcHN0YXRlOwogCQkJ CQlteXBzdGF0ZS5wX3J0YWJsZSA9ICgoUXVlcnkgKikgY3RlLT5jdGVxdWVyeSktPnJ0YWJsZTsK LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0002-cleanup-rename-inner-variables-to-avoid-shadowing.patch" Content-Disposition: attachment; filename="v2-0002-cleanup-rename-inner-variables-to-avoid-shadowing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocj1 RnJvbSA4MWQ2MjJjYjRjN2UzNmRiYjM5NTcyYmY0YTAwOTQ3ZGRmODIzNDQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDA5OjMyOjU4ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwMi8x M10gY2xlYW51cDogcmVuYW1lIGlubmVyIHZhcmlhYmxlcyB0byBhdm9pZCBzaGFkb3dpbmcKIGJ5 IG91dGVyIGxvY2FscwoKVGhpcyBjb21taXQgZml4ZXMgc2V2ZXJhbCBjYXNlcyB3aGVyZSBhIHZh cmlhYmxlIGRlY2xhcmVkIGluIGFuIGlubmVyCnNjb3BlIHdhcyBzaGFkb3dlZCBieSBhbiBleGlz dGluZyBsb2NhbCB2YXJpYWJsZSBpbiB0aGUgb3V0ZXIgc2NvcGUuIFRoZQpjaGFuZ2VzIHJlbmFt ZSB0aGUgaW5uZXIgdmFyaWFibGVzIHNvIGVhY2ggaWRlbnRpZmllciBpcyBkaXN0aW5jdCB3aXRo aW4KaXRzIHJlc3BlY3RpdmUgYmxvY2suCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29t PgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9 amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW4uYyAgICAgICAgICAgICB8ICA4ICsrLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jICAgICAgICB8IDEwICsrLS0tCiBzcmMvYmFja2VuZC9j b21tYW5kcy9leHRlbnNpb24uYyAgICAgICAgICAgfCAgOCArKy0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zY2hlbWFjbWRzLmMgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c3RhdHNjbWRzLmMgICAgICAgICAgIHwgIDYgKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMgICAgfCAgOCArKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICAgfCAyOCArKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv dHJpZ2dlci5jICAgICAgICAgICAgIHwgMTQgKysrLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv d2FpdC5jICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9u b2RlQWdnLmMgICAgICAgICAgICAgfCAxNiArKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVZhbHVlc3NjYW4uYyAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L2NyZWF0ZXBsYW4uYyAgICB8IDQ0ICsrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMgICAgICB8IDI2ICsrKysrKy0tLS0tLS0KIHNyYy9i YWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMuYyAgICB8ICA2ICstLQogc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICAgICAgIHwgIDYgKy0tCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jICAgICAgfCAzMCArKysrKysrLS0tLS0tLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyB8ICA0ICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jICAgICAgICAgICAgfCAyMCArKysrKy0tLS0tCiBzcmMvYmFj a2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMgICAgICAgICAgfCAgNiArLS0KIHNyYy9iaW4vcGdi ZW5jaC9wZ2JlbmNoLmMgICAgICAgICAgICAgICAgICB8ICA2ICstLQogc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKy0tLS0tCiBzcmMvYmluL3BzcWwv cHJvbXB0LmMgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIHNyYy9mZV91dGlscy9w cmludC5jICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1jb25uZWN0LmMgICAgICAgICAgfCAgOCArKy0tCiAyNCBmaWxlcyBjaGFuZ2VkLCAx NTggaW5zZXJ0aW9ucygrKSwgMTU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpp bmRleCBjYjMzMzE5MjFjYi4uMGFlZTBjMDEzZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAg LTY5NCwxNSArNjk0LDE1IEBAIGJyaW5nZXRiaXRtYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBUSURC aXRtYXAgKnRibSkKIAkJICovCiAJCWlmIChjb25zaXN0ZW50Rm5ba2V5YXR0bm8gLSAxXS5mbl9v aWQgPT0gSW52YWxpZE9pZCkKIAkJewotCQkJRm1nckluZm8gICAqdG1wOworCQkJRm1nckluZm8g ICAqdG1wZmk7CiAKIAkJCS8qIEZpcnN0IHRpbWUgd2Ugc2VlIHRoaXMgYXR0cmlidXRlLCBzbyBu byBrZXkvbnVsbCBrZXlzLiAqLwogCQkJQXNzZXJ0KG5rZXlzW2tleWF0dG5vIC0gMV0gPT0gMCk7 CiAJCQlBc3NlcnQobm51bGxrZXlzW2tleWF0dG5vIC0gMV0gPT0gMCk7CiAKLQkJCXRtcCA9IGlu ZGV4X2dldHByb2NpbmZvKGlkeFJlbCwga2V5YXR0bm8sCi0JCQkJCQkJCQlCUklOX1BST0NOVU1f Q09OU0lTVEVOVCk7Ci0JCQlmbWdyX2luZm9fY29weSgmY29uc2lzdGVudEZuW2tleWF0dG5vIC0g MV0sIHRtcCwKKwkJCXRtcGZpID0gaW5kZXhfZ2V0cHJvY2luZm8oaWR4UmVsLCBrZXlhdHRubywK KwkJCQkJCQkJCSAgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQpOworCQkJZm1ncl9pbmZvX2NvcHko JmNvbnNpc3RlbnRGbltrZXlhdHRubyAtIDFdLCB0bXBmaSwKIAkJCQkJCSAgIEN1cnJlbnRNZW1v cnlDb250ZXh0KTsKIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0YnVpbGQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCmluZGV4IGJl MGZkNWI3NTNkLi43ZDk3NTY1MmFkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dp c3QvZ2lzdGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMK QEAgLTExNTgsNyArMTE1OCw3IEBAIGdpc3RidWZmZXJpbmdpbnNlcnR0dXBsZXMoR0lTVEJ1aWxk U3RhdGUgKmJ1aWxkc3RhdGUsIEJ1ZmZlciBidWZmZXIsIGludCBsZXZlbCwKIAkJaSA9IDA7CiAJ CWZvcmVhY2gobGMsIHNwbGl0aW5mbykKIAkJewotCQkJR0lTVFBhZ2VTcGxpdEluZm8gKnNwbGl0 aW5mbyA9IGxmaXJzdChsYyk7CisJCQlHSVNUUGFnZVNwbGl0SW5mbyAqc2kgPSBsZmlyc3QobGMp OwogCiAJCQkvKgogCQkJICogUmVtZW1iZXIgdGhlIHBhcmVudCBvZiBlYWNoIG5ldyBjaGlsZCBw YWdlIGluIG91ciBwYXJlbnQgbWFwLgpAQCAtMTE2OSw3ICsxMTY5LDcgQEAgZ2lzdGJ1ZmZlcmlu Z2luc2VydHR1cGxlcyhHSVNUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgQnVmZmVyIGJ1ZmZlciwg aW50IGxldmVsLAogCQkJICovCiAJCQlpZiAobGV2ZWwgPiAwKQogCQkJCWdpc3RNZW1vcml6ZVBh cmVudChidWlsZHN0YXRlLAotCQkJCQkJCQkgICBCdWZmZXJHZXRCbG9ja051bWJlcihzcGxpdGlu Zm8tPmJ1ZiksCisJCQkJCQkJCSAgIEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNpLT5idWYpLAogCQkJ CQkJCQkgICBCdWZmZXJHZXRCbG9ja051bWJlcihwYXJlbnRCdWZmZXIpKTsKIAogCQkJLyoKQEAg LTExNzksMTQgKzExNzksMTQgQEAgZ2lzdGJ1ZmZlcmluZ2luc2VydHR1cGxlcyhHSVNUQnVpbGRT dGF0ZSAqYnVpbGRzdGF0ZSwgQnVmZmVyIGJ1ZmZlciwgaW50IGxldmVsLAogCQkJICogaGFybSku CiAJCQkgKi8KIAkJCWlmIChsZXZlbCA+IDEpCi0JCQkJZ2lzdE1lbW9yaXplQWxsRG93bmxpbmtz KGJ1aWxkc3RhdGUsIHNwbGl0aW5mby0+YnVmKTsKKwkJCQlnaXN0TWVtb3JpemVBbGxEb3dubGlu a3MoYnVpbGRzdGF0ZSwgc2ktPmJ1Zik7CiAKIAkJCS8qCiAJCQkgKiBTaW5jZSB0aGVyZSdzIG5v IGNvbmN1cnJlbnQgYWNjZXNzLCB3ZSBjYW4gcmVsZWFzZSB0aGUgbG93ZXIKIAkJCSAqIGxldmVs IGJ1ZmZlcnMgaW1tZWRpYXRlbHkuIFRoaXMgaW5jbHVkZXMgdGhlIG9yaWdpbmFsIHBhZ2UuCiAJ CQkgKi8KLQkJCVVubG9ja1JlbGVhc2VCdWZmZXIoc3BsaXRpbmZvLT5idWYpOwotCQkJZG93bmxp bmtzW2krK10gPSBzcGxpdGluZm8tPmRvd25saW5rOworCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihz aS0+YnVmKTsKKwkJCWRvd25saW5rc1tpKytdID0gc2ktPmRvd25saW5rOwogCQl9CiAKIAkJLyog SW5zZXJ0IHRoZW0gaW50byBwYXJlbnQuICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9leHRlbnNpb24uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCmluZGV4 IGViYzIwNGM0NDYyLi4wZWY2NTdiZjkxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXh0ZW5zaW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMKQEAg LTEyNzQsOCArMTI3NCw4IEBAIGV4ZWN1dGVfZXh0ZW5zaW9uX3NjcmlwdChPaWQgZXh0ZW5zaW9u T2lkLCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkJCURhdHVtCQlvbGQgPSB0X3Nx bDsKIAkJCWNoYXIJICAgKnJlcWV4dG5hbWUgPSAoY2hhciAqKSBsZmlyc3QobGMpOwogCQkJT2lk CQkJcmVxc2NoZW1hID0gbGZpcnN0X29pZChsYzIpOwotCQkJY2hhcgkgICAqc2NoZW1hTmFtZSA9 IGdldF9uYW1lc3BhY2VfbmFtZShyZXFzY2hlbWEpOwotCQkJY29uc3QgY2hhciAqcVNjaGVtYU5h bWUgPSBxdW90ZV9pZGVudGlmaWVyKHNjaGVtYU5hbWUpOworCQkJY2hhcgkgICAqcmVxU2NoZW1h TmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShyZXFzY2hlbWEpOworCQkJY29uc3QgY2hhciAqcVJl cVNjaGVtYU5hbWUgPSBxdW90ZV9pZGVudGlmaWVyKHJlcVNjaGVtYU5hbWUpOwogCQkJY2hhcgkg ICAqcmVwbHRva2VuOwogCiAJCQlyZXBsdG9rZW4gPSBwc3ByaW50ZigiQGV4dHNjaGVtYTolc0Ai LCByZXFleHRuYW1lKTsKQEAgLTEyODMsOCArMTI4Myw4IEBAIGV4ZWN1dGVfZXh0ZW5zaW9uX3Nj cmlwdChPaWQgZXh0ZW5zaW9uT2lkLCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkJ CQkJCQkJCQkJQ19DT0xMQVRJT05fT0lELAogCQkJCQkJCQkJCQl0X3NxbCwKIAkJCQkJCQkJCQkJ Q1N0cmluZ0dldFRleHREYXR1bShyZXBsdG9rZW4pLAotCQkJCQkJCQkJCQlDU3RyaW5nR2V0VGV4 dERhdHVtKHFTY2hlbWFOYW1lKSk7Ci0JCQlpZiAodF9zcWwgIT0gb2xkICYmIHN0cnBicmsoc2No ZW1hTmFtZSwgcXVvdGluZ19yZWxldmFudF9jaGFycykpCisJCQkJCQkJCQkJCUNTdHJpbmdHZXRU ZXh0RGF0dW0ocVJlcVNjaGVtYU5hbWUpKTsKKwkJCWlmICh0X3NxbCAhPSBvbGQgJiYgc3RycGJy ayhyZXFTY2hlbWFOYW1lLCBxdW90aW5nX3JlbGV2YW50X2NoYXJzKSkKIAkJCQllcmVwb3J0KEVS Uk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04p LAogCQkJCQkJIGVycm1zZygiaW52YWxpZCBjaGFyYWN0ZXIgaW4gZXh0ZW5zaW9uIFwiJXNcIiBz Y2hlbWE6IG11c3Qgbm90IGNvbnRhaW4gYW55IG9mIFwiJXNcIiIsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zY2hl bWFjbWRzLmMKaW5kZXggM2NjMTQ3MjEwM2EuLmJjOGU4ZmIxZWFhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2NoZW1hY21kcy5jCkBAIC0yMDUsMTQgKzIwNSwxNCBAQCBDcmVhdGVTY2hlbWFDb21tYW5kKENy ZWF0ZVNjaGVtYVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAqLwogCWZv cmVhY2gocGFyc2V0cmVlX2l0ZW0sIHBhcnNldHJlZV9saXN0KQogCXsKLQkJTm9kZQkgICAqc3Rt dCA9IChOb2RlICopIGxmaXJzdChwYXJzZXRyZWVfaXRlbSk7CisJCU5vZGUJICAgKnN1YnN0bXQg PSAoTm9kZSAqKSBsZmlyc3QocGFyc2V0cmVlX2l0ZW0pOwogCQlQbGFubmVkU3RtdCAqd3JhcHBl cjsKIAogCQkvKiBuZWVkIHRvIG1ha2UgYSB3cmFwcGVyIFBsYW5uZWRTdG10ICovCiAJCXdyYXBw ZXIgPSBtYWtlTm9kZShQbGFubmVkU3RtdCk7CiAJCXdyYXBwZXItPmNvbW1hbmRUeXBlID0gQ01E X1VUSUxJVFk7CiAJCXdyYXBwZXItPmNhblNldFRhZyA9IGZhbHNlOwotCQl3cmFwcGVyLT51dGls aXR5U3RtdCA9IHN0bXQ7CisJCXdyYXBwZXItPnV0aWxpdHlTdG10ID0gc3Vic3RtdDsKIAkJd3Jh cHBlci0+c3RtdF9sb2NhdGlvbiA9IHN0bXRfbG9jYXRpb247CiAJCXdyYXBwZXItPnN0bXRfbGVu ID0gc3RtdF9sZW47CiAJCXdyYXBwZXItPnBsYW5PcmlnaW4gPSBQTEFOX1NUTVRfSU5URVJOQUw7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmluZGV4IDc3YjFhNmUyZGM1Li5kYzM1MDBiOGZhNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKQEAgLTMxOSwxNSArMzE5LDE1IEBAIENyZWF0ZVN0 YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10LCBib29sIGNoZWNrX3JpZ2h0cykKIAkJCU5v ZGUJICAgKmV4cHIgPSBzZWxlbS0+ZXhwcjsKIAkJCU9pZAkJCWF0dHR5cGU7CiAJCQlUeXBlQ2Fj aGVFbnRyeSAqdHlwZTsKLQkJCUJpdG1hcHNldCAgKmF0dG51bXMgPSBOVUxMOworCQkJQml0bWFw c2V0ICAqYXR0bnVtc2JtID0gTlVMTDsKIAkJCWludAkJCWs7CiAKIAkJCUFzc2VydChleHByICE9 IE5VTEwpOwogCi0JCQlwdWxsX3ZhcmF0dG5vcyhleHByLCAxLCAmYXR0bnVtcyk7CisJCQlwdWxs X3ZhcmF0dG5vcyhleHByLCAxLCAmYXR0bnVtc2JtKTsKIAogCQkJayA9IC0xOwotCQkJd2hpbGUg KChrID0gYm1zX25leHRfbWVtYmVyKGF0dG51bXMsIGspKSA+PSAwKQorCQkJd2hpbGUgKChrID0g Ym1zX25leHRfbWVtYmVyKGF0dG51bXNibSwgaykpID49IDApCiAJCQl7CiAJCQkJQXR0ck51bWJl cglhdHRudW0gPSBrICsgRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcjsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDI0YjcwMjM0YjM1Li5iYjVm ZGM3ODJlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTEy MiwxMCArMTEyMiwxMCBAQCBBbHRlclN1YnNjcmlwdGlvbl9yZWZyZXNoKFN1YnNjcmlwdGlvbiAq c3ViLCBib29sIGNvcHlfZGF0YSwKIAkJICogdG8gYmUgYXQgdGhlIGVuZCBiZWNhdXNlIG90aGVy d2lzZSBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGlsZSBkb2luZwogCQkgKiB0aGUgZGF0YWJhc2Ug b3BlcmF0aW9ucyB3ZSB3b24ndCBiZSBhYmxlIHRvIHJvbGxiYWNrIGRyb3BwZWQgc2xvdHMuCiAJ CSAqLwotCQlmb3JlYWNoX3B0cihTdWJSZW1vdmVSZWxzLCByZWwsIHN1Yl9yZW1vdmVfcmVscykK KwkJZm9yZWFjaF9wdHIoU3ViUmVtb3ZlUmVscywgc3VicmVsLCBzdWJfcmVtb3ZlX3JlbHMpCiAJ CXsKLQkJCWlmIChyZWwtPnN0YXRlICE9IFNVQlJFTF9TVEFURV9SRUFEWSAmJgotCQkJCXJlbC0+ c3RhdGUgIT0gU1VCUkVMX1NUQVRFX1NZTkNET05FKQorCQkJaWYgKHN1YnJlbC0+c3RhdGUgIT0g U1VCUkVMX1NUQVRFX1JFQURZICYmCisJCQkJc3VicmVsLT5zdGF0ZSAhPSBTVUJSRUxfU1RBVEVf U1lOQ0RPTkUpCiAJCQl7CiAJCQkJY2hhcgkJc3luY3Nsb3RuYW1lW05BTUVEQVRBTEVOXSA9IHsw fTsKIApAQCAtMTEzOSw3ICsxMTM5LDcgQEAgQWx0ZXJTdWJzY3JpcHRpb25fcmVmcmVzaChTdWJz Y3JpcHRpb24gKnN1YiwgYm9vbCBjb3B5X2RhdGEsCiAJCQkJICogZHJvcHBlZCBzbG90cyBhbmQg ZmFpbC4gRm9yIHRoZXNlIHJlYXNvbnMsIHdlIGFsbG93CiAJCQkJICogbWlzc2luZ19vayA9IHRy dWUgZm9yIHRoZSBkcm9wLgogCQkJCSAqLwotCQkJCVJlcGxpY2F0aW9uU2xvdE5hbWVGb3JUYWJs ZXN5bmMoc3ViLT5vaWQsIHJlbC0+cmVsaWQsCisJCQkJUmVwbGljYXRpb25TbG90TmFtZUZvclRh Ymxlc3luYyhzdWItPm9pZCwgc3VicmVsLT5yZWxpZCwKIAkJCQkJCQkJCQkJCXN5bmNzbG90bmFt ZSwgc2l6ZW9mKHN5bmNzbG90bmFtZSkpOwogCQkJCVJlcGxpY2F0aW9uU2xvdERyb3BBdFB1Yk5v ZGUod3Jjb25uLCBzeW5jc2xvdG5hbWUsIHRydWUpOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwppbmRleCAyM2ViYWEzZjIzMC4uYjJhOTMyMmM0OTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCkBAIC0xNTcwOCwxNCArMTU3MDgsMTQgQEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lk IG9sZElkLCBPaWQgb2xkUmVsSWQsIE9pZCByZWZSZWxJZCwgY2hhciAqY21kLAogCiAJCQlmb3Jl YWNoKGxjbWQsIHN0bXQtPmNtZHMpCiAJCQl7Ci0JCQkJQWx0ZXJUYWJsZUNtZCAqY21kID0gbGZp cnN0X25vZGUoQWx0ZXJUYWJsZUNtZCwgbGNtZCk7CisJCQkJQWx0ZXJUYWJsZUNtZCAqc3ViY21k ID0gbGZpcnN0X25vZGUoQWx0ZXJUYWJsZUNtZCwgbGNtZCk7CiAKLQkJCQlpZiAoY21kLT5zdWJ0 eXBlID09IEFUX0FkZEluZGV4KQorCQkJCWlmIChzdWJjbWQtPnN1YnR5cGUgPT0gQVRfQWRkSW5k ZXgpCiAJCQkJewogCQkJCQlJbmRleFN0bXQgICppbmRzdG10OwogCQkJCQlPaWQJCQlpbmRvaWQ7 CiAKLQkJCQkJaW5kc3RtdCA9IGNhc3ROb2RlKEluZGV4U3RtdCwgY21kLT5kZWYpOworCQkJCQlp bmRzdG10ID0gY2FzdE5vZGUoSW5kZXhTdG10LCBzdWJjbWQtPmRlZik7CiAJCQkJCWluZG9pZCA9 IGdldF9jb25zdHJhaW50X2luZGV4KG9sZElkKTsKIAogCQkJCQlpZiAoIXJld3JpdGUpCkBAIC0x NTcyNSw5ICsxNTcyNSw5IEBAIEFUUG9zdEFsdGVyVHlwZVBhcnNlKE9pZCBvbGRJZCwgT2lkIG9s ZFJlbElkLCBPaWQgcmVmUmVsSWQsIGNoYXIgKmNtZCwKIAkJCQkJCQkJCQkJCQkgUmVsYXRpb25S ZWxhdGlvbklkLCAwKTsKIAkJCQkJaW5kc3RtdC0+cmVzZXRfZGVmYXVsdF90YmxzcGMgPSB0cnVl OwogCi0JCQkJCWNtZC0+c3VidHlwZSA9IEFUX1JlQWRkSW5kZXg7CisJCQkJCXN1YmNtZC0+c3Vi dHlwZSA9IEFUX1JlQWRkSW5kZXg7CiAJCQkJCXRhYi0+c3ViY21kc1tBVF9QQVNTX09MRF9JTkRF WF0gPQotCQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfSU5ERVhdLCBjbWQp OworCQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfSU5ERVhdLCBzdWJjbWQp OwogCiAJCQkJCS8qIHJlY3JlYXRlIGFueSBjb21tZW50IG9uIHRoZSBjb25zdHJhaW50ICovCiAJ CQkJCVJlYnVpbGRDb25zdHJhaW50Q29tbWVudCh0YWIsCkBAIC0xNTczNyw5ICsxNTczNyw5IEBA IEFUUG9zdEFsdGVyVHlwZVBhcnNlKE9pZCBvbGRJZCwgT2lkIG9sZFJlbElkLCBPaWQgcmVmUmVs SWQsIGNoYXIgKmNtZCwKIAkJCQkJCQkJCQkJIE5JTCwKIAkJCQkJCQkJCQkJIGluZHN0bXQtPmlk eG5hbWUpOwogCQkJCX0KLQkJCQllbHNlIGlmIChjbWQtPnN1YnR5cGUgPT0gQVRfQWRkQ29uc3Ry YWludCkKKwkJCQllbHNlIGlmIChzdWJjbWQtPnN1YnR5cGUgPT0gQVRfQWRkQ29uc3RyYWludCkK IAkJCQl7Ci0JCQkJCUNvbnN0cmFpbnQgKmNvbiA9IGNhc3ROb2RlKENvbnN0cmFpbnQsIGNtZC0+ ZGVmKTsKKwkJCQkJQ29uc3RyYWludCAqY29uID0gY2FzdE5vZGUoQ29uc3RyYWludCwgc3ViY21k LT5kZWYpOwogCiAJCQkJCWNvbi0+b2xkX3BrdGFibGVfb2lkID0gcmVmUmVsSWQ7CiAJCQkJCS8q IHJld3JpdGluZyBuZWl0aGVyIHNpZGUgb2YgYSBGSyAqLwpAQCAtMTU3NDcsOSArMTU3NDcsOSBA QCBBVFBvc3RBbHRlclR5cGVQYXJzZShPaWQgb2xkSWQsIE9pZCBvbGRSZWxJZCwgT2lkIHJlZlJl bElkLCBjaGFyICpjbWQsCiAJCQkJCQkhcmV3cml0ZSAmJiB0YWItPnJld3JpdGUgPT0gMCkKIAkJ CQkJCVRyeVJldXNlRm9yZWlnbktleShvbGRJZCwgY29uKTsKIAkJCQkJY29uLT5yZXNldF9kZWZh dWx0X3RibHNwYyA9IHRydWU7Ci0JCQkJCWNtZC0+c3VidHlwZSA9IEFUX1JlQWRkQ29uc3RyYWlu dDsKKwkJCQkJc3ViY21kLT5zdWJ0eXBlID0gQVRfUmVBZGRDb25zdHJhaW50OwogCQkJCQl0YWIt PnN1YmNtZHNbQVRfUEFTU19PTERfQ09OU1RSXSA9Ci0JCQkJCQlsYXBwZW5kKHRhYi0+c3ViY21k c1tBVF9QQVNTX09MRF9DT05TVFJdLCBjbWQpOworCQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNb QVRfUEFTU19PTERfQ09OU1RSXSwgc3ViY21kKTsKIAogCQkJCQkvKgogCQkJCQkgKiBSZWNyZWF0 ZSBhbnkgY29tbWVudCBvbiB0aGUgY29uc3RyYWludC4gIElmIHdlIGhhdmUKQEAgLTE1NzY5LDcg KzE1NzY5LDcgQEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBPaWQgb2xkUmVsSWQs IE9pZCByZWZSZWxJZCwgY2hhciAqY21kLAogCQkJCX0KIAkJCQllbHNlCiAJCQkJCWVsb2coRVJS T1IsICJ1bmV4cGVjdGVkIHN0YXRlbWVudCBzdWJ0eXBlOiAlZCIsCi0JCQkJCQkgKGludCkgY21k LT5zdWJ0eXBlKTsKKwkJCQkJCSAoaW50KSBzdWJjbWQtPnN1YnR5cGUpOwogCQkJfQogCQl9CiAJ CWVsc2UgaWYgKElzQShzdG0sIEFsdGVyRG9tYWluU3RtdCkpCkBAIC0xNTc3OSwxMiArMTU3Nzks MTIgQEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBPaWQgb2xkUmVsSWQsIE9pZCBy ZWZSZWxJZCwgY2hhciAqY21kLAogCQkJaWYgKHN0bXQtPnN1YnR5cGUgPT0gQURfQWRkQ29uc3Ry YWludCkKIAkJCXsKIAkJCQlDb25zdHJhaW50ICpjb24gPSBjYXN0Tm9kZShDb25zdHJhaW50LCBz dG10LT5kZWYpOwotCQkJCUFsdGVyVGFibGVDbWQgKmNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVD bWQpOworCQkJCUFsdGVyVGFibGVDbWQgKnN1YmNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQp OwogCi0JCQkJY21kLT5zdWJ0eXBlID0gQVRfUmVBZGREb21haW5Db25zdHJhaW50OwotCQkJCWNt ZC0+ZGVmID0gKE5vZGUgKikgc3RtdDsKKwkJCQlzdWJjbWQtPnN1YnR5cGUgPSBBVF9SZUFkZERv bWFpbkNvbnN0cmFpbnQ7CisJCQkJc3ViY21kLT5kZWYgPSAoTm9kZSAqKSBzdG10OwogCQkJCXRh Yi0+c3ViY21kc1tBVF9QQVNTX09MRF9DT05TVFJdID0KLQkJCQkJbGFwcGVuZCh0YWItPnN1YmNt ZHNbQVRfUEFTU19PTERfQ09OU1RSXSwgY21kKTsKKwkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNb QVRfUEFTU19PTERfQ09OU1RSXSwgc3ViY21kKTsKIAogCQkJCS8qIHJlY3JlYXRlIGFueSBjb21t ZW50IG9uIHRoZSBjb25zdHJhaW50ICovCiAJCQkJUmVidWlsZENvbnN0cmFpbnRDb21tZW50KHRh YiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCA1NzlhYzhkNzZhZS4uNDVkNDFhZGY1NzAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTExNjUsNyArMTE2NSw3IEBAIENyZWF0ZVRyaWdnZXJG aXJpbmdPbihDcmVhdGVUcmlnU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJ CXsKIAkJCUNyZWF0ZVRyaWdTdG10ICpjaGlsZFN0bXQ7CiAJCQlSZWxhdGlvbgljaGlsZFRibDsK LQkJCU5vZGUJICAgKnF1YWw7CisJCQlOb2RlCSAgICpwYXJ0cXVhbDsKIAogCQkJY2hpbGRUYmwg PSB0YWJsZV9vcGVuKHBhcnRkZXNjLT5vaWRzW2ldLCBTaGFyZVJvd0V4Y2x1c2l2ZUxvY2spOwog CkBAIC0xMTc4LDE4ICsxMTc4LDE4IEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihDcmVhdGVUcmln U3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQljaGlsZFN0bXQtPndoZW5D bGF1c2UgPSBOVUxMOwogCiAJCQkvKiBJZiB0aGVyZSBpcyBhIFdIRU4gY2xhdXNlLCBjcmVhdGUg YSBtb2RpZmllZCBjb3B5IG9mIGl0ICovCi0JCQlxdWFsID0gY29weU9iamVjdCh3aGVuQ2xhdXNl KTsKLQkJCXF1YWwgPSAoTm9kZSAqKQotCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0 ICopIHF1YWwsIFBSUzJfT0xEX1ZBUk5PLAorCQkJcGFydHF1YWwgPSBjb3B5T2JqZWN0KHdoZW5D bGF1c2UpOworCQkJcGFydHF1YWwgPSAoTm9kZSAqKQorCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0 bm9zKChMaXN0ICopIHBhcnRxdWFsLCBQUlMyX09MRF9WQVJOTywKIAkJCQkJCQkJCQljaGlsZFRi bCwgcmVsKTsKLQkJCXF1YWwgPSAoTm9kZSAqKQotCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9z KChMaXN0ICopIHF1YWwsIFBSUzJfTkVXX1ZBUk5PLAorCQkJcGFydHF1YWwgPSAoTm9kZSAqKQor CQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICopIHBhcnRxdWFsLCBQUlMyX05FV19W QVJOTywKIAkJCQkJCQkJCQljaGlsZFRibCwgcmVsKTsKIAogCQkJQ3JlYXRlVHJpZ2dlckZpcmlu Z09uKGNoaWxkU3RtdCwgcXVlcnlTdHJpbmcsCiAJCQkJCQkJCSAgcGFydGRlc2MtPm9pZHNbaV0s IHJlZlJlbE9pZCwKIAkJCQkJCQkJICBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAotCQkJCQkJCQkg IGZ1bmNvaWQsIHRyaWdvaWQsIHF1YWwsCisJCQkJCQkJCSAgZnVuY29pZCwgdHJpZ29pZCwgcGFy dHF1YWwsCiAJCQkJCQkJCSAgaXNJbnRlcm5hbCwgdHJ1ZSwgdHJpZ2dlcl9maXJlc193aGVuKTsK IAogCQkJdGFibGVfY2xvc2UoY2hpbGRUYmwsIE5vTG9jayk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy93YWl0LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy93YWl0LmMKaW5kZXgg YTM3YmRkYWVmYjIuLmU5M2Q5ZTE5ZGU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy93YWl0LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvd2FpdC5jCkBAIC01MSw3ICs1MSw3 IEBAIEV4ZWNXYWl0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFdhaXRTdG10ICpzdG10LCBEZXN0 UmVjZWl2ZXIgKmRlc3QpCiAJCXsKIAkJCWNoYXIJICAgKnRpbWVvdXRfc3RyOwogCQkJY29uc3Qg Y2hhciAqaGludG1zZzsKLQkJCWRvdWJsZQkJcmVzdWx0OworCQkJZG91YmxlCQl0aW1lb3V0X3Zh bDsKIAogCQkJaWYgKHRpbWVvdXRfc3BlY2lmaWVkKQogCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZF bGVtKGRlZmVsLCBwc3RhdGUpOwpAQCAtNTksNyArNTksNyBAQCBFeGVjV2FpdFN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBXYWl0U3RtdCAqc3RtdCwgRGVzdFJlY2VpdmVyICpkZXN0KQogCiAJCQl0 aW1lb3V0X3N0ciA9IGRlZkdldFN0cmluZyhkZWZlbCk7CiAKLQkJCWlmICghcGFyc2VfcmVhbCh0 aW1lb3V0X3N0ciwgJnJlc3VsdCwgR1VDX1VOSVRfTVMsICZoaW50bXNnKSkKKwkJCWlmICghcGFy c2VfcmVhbCh0aW1lb3V0X3N0ciwgJnRpbWVvdXRfdmFsLCBHVUNfVU5JVF9NUywgJmhpbnRtc2cp KQogCQkJewogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9QQVJBTUVURVJfVkFMVUUpLApAQCAtNzIsMjAgKzcyLDIwIEBAIEV4ZWNXYWl0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIFdhaXRTdG10ICpzdG10LCBEZXN0UmVjZWl2ZXIgKmRlc3QpCiAJCQkg KiBkb24ndCBmYWlsIG9uIGp1c3Qtb3V0LW9mLXJhbmdlIHZhbHVlcyB0aGF0IHdvdWxkIHJvdW5k IGludG8KIAkJCSAqIHJhbmdlLgogCQkJICovCi0JCQlyZXN1bHQgPSByaW50KHJlc3VsdCk7CisJ CQl0aW1lb3V0X3ZhbCA9IHJpbnQodGltZW91dF92YWwpOwogCiAJCQkvKiBSYW5nZSBjaGVjayAq LwotCQkJaWYgKHVubGlrZWx5KGlzbmFuKHJlc3VsdCkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KHJlc3VsdCkpKQorCQkJaWYgKHVubGlrZWx5KGlzbmFuKHRpbWVvdXRfdmFsKSB8fCAhRkxPQVQ4 X0ZJVFNfSU5fSU5UNjQodGltZW91dF92YWwpKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJ ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkJCWVycm1z ZygidGltZW91dCB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UiKSk7CiAKLQkJCWlmIChyZXN1bHQgPCAw KQorCQkJaWYgKHRpbWVvdXRfdmFsIDwgMCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJCWVycm1zZygidGlt ZW91dCBjYW5ub3QgYmUgbmVnYXRpdmUiKSk7CiAKLQkJCXRpbWVvdXQgPSAoaW50NjQpIHJlc3Vs dDsKKwkJCXRpbWVvdXQgPSAoaW50NjQpIHRpbWVvdXRfdmFsOwogCQl9CiAJCWVsc2UgaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgIm5vX3Rocm93IikgPT0gMCkKIAkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZUFnZy5jCmluZGV4IDBiMDJmZDMyMTA3Li5lNGM1MzllMzkxNyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVB Z2cuYwpAQCAtNDA3MCwxMiArNDA3MCwxMiBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0 ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCSAqLwogCWZvciAocGhhc2VpZHggPSAwOyBwaGFzZWlk eCA8IGFnZ3N0YXRlLT5udW1waGFzZXM7IHBoYXNlaWR4KyspCiAJewotCQlBZ2dTdGF0ZVBlclBo YXNlIHBoYXNlID0gJmFnZ3N0YXRlLT5waGFzZXNbcGhhc2VpZHhdOworCQlBZ2dTdGF0ZVBlclBo YXNlIGN1cnBoYXNlID0gJmFnZ3N0YXRlLT5waGFzZXNbcGhhc2VpZHhdOwogCQlib29sCQlkb2hh c2ggPSBmYWxzZTsKIAkJYm9vbAkJZG9zb3J0ID0gZmFsc2U7CiAKIAkJLyogcGhhc2UgMCBkb2Vz bid0IG5lY2Vzc2FyaWx5IGV4aXN0ICovCi0JCWlmICghcGhhc2UtPmFnZ25vZGUpCisJCWlmICgh Y3VycGhhc2UtPmFnZ25vZGUpCiAJCQljb250aW51ZTsKIAogCQlpZiAoYWdnc3RhdGUtPmFnZ3N0 cmF0ZWd5ID09IEFHR19NSVhFRCAmJiBwaGFzZWlkeCA9PSAxKQpAQCAtNDA5NiwxMyArNDA5Niwx MyBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQog CQkJICovCiAJCQljb250aW51ZTsKIAkJfQotCQllbHNlIGlmIChwaGFzZS0+YWdnc3RyYXRlZ3kg PT0gQUdHX1BMQUlOIHx8Ci0JCQkJIHBoYXNlLT5hZ2dzdHJhdGVneSA9PSBBR0dfU09SVEVEKQor CQllbHNlIGlmIChjdXJwaGFzZS0+YWdnc3RyYXRlZ3kgPT0gQUdHX1BMQUlOIHx8CisJCQkJIGN1 cnBoYXNlLT5hZ2dzdHJhdGVneSA9PSBBR0dfU09SVEVEKQogCQl7CiAJCQlkb2hhc2ggPSBmYWxz ZTsKIAkJCWRvc29ydCA9IHRydWU7CiAJCX0KLQkJZWxzZSBpZiAocGhhc2UtPmFnZ3N0cmF0ZWd5 ID09IEFHR19IQVNIRUQpCisJCWVsc2UgaWYgKGN1cnBoYXNlLT5hZ2dzdHJhdGVneSA9PSBBR0df SEFTSEVEKQogCQl7CiAJCQlkb2hhc2ggPSB0cnVlOwogCQkJZG9zb3J0ID0gZmFsc2U7CkBAIC00 MTEwLDExICs0MTEwLDExIEBAIEV4ZWNJbml0QWdnKEFnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUs IGludCBlZmxhZ3MpCiAJCWVsc2UKIAkJCUFzc2VydChmYWxzZSk7CiAKLQkJcGhhc2UtPmV2YWx0 cmFucyA9IEV4ZWNCdWlsZEFnZ1RyYW5zKGFnZ3N0YXRlLCBwaGFzZSwgZG9zb3J0LCBkb2hhc2gs Ci0JCQkJCQkJCQkJCSBmYWxzZSk7CisJCWN1cnBoYXNlLT5ldmFsdHJhbnMgPSBFeGVjQnVpbGRB Z2dUcmFucyhhZ2dzdGF0ZSwgY3VycGhhc2UsIGRvc29ydCwgZG9oYXNoLAorCQkJCQkJCQkJCQkJ ZmFsc2UpOwogCiAJCS8qIGNhY2hlIGNvbXBpbGVkIGV4cHJlc3Npb24gZm9yIG91dGVyIHNsb3Qg d2l0aG91dCBOVUxMIGNoZWNrICovCi0JCXBoYXNlLT5ldmFsdHJhbnNfY2FjaGVbMF1bMF0gPSBw aGFzZS0+ZXZhbHRyYW5zOworCQljdXJwaGFzZS0+ZXZhbHRyYW5zX2NhY2hlWzBdWzBdID0gY3Vy cGhhc2UtPmV2YWx0cmFuczsKIAl9CiAKIAlyZXR1cm4gYWdnc3RhdGU7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlVmFsdWVzc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVZhbHVlc3NjYW4uYwppbmRleCA4ZTg1YTVmMmU5YS4uMGQzNjY1NDY5NjYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVWYWx1ZXNzY2FuLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVZhbHVlc3NjYW4uYwpAQCAtMTQxLDExICsxNDEsMTEgQEAgVmFs dWVzTmV4dChWYWx1ZXNTY2FuU3RhdGUgKm5vZGUpCiAJCXJlc2luZCA9IDA7CiAJCWZvcmVhY2go bGMsIGV4cHJzdGF0ZWxpc3QpCiAJCXsKLQkJCUV4cHJTdGF0ZSAgKmVzdGF0ZSA9IChFeHByU3Rh dGUgKikgbGZpcnN0KGxjKTsKKwkJCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZSA9IChFeHByU3RhdGUg KikgbGZpcnN0KGxjKTsKIAkJCUNvbXBhY3RBdHRyaWJ1dGUgKmF0dHIgPSBUdXBsZURlc2NDb21w YWN0QXR0cihzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yLAogCQkJCQkJCQkJCQkJCQkgIHJlc2lu ZCk7CiAKLQkJCXZhbHVlc1tyZXNpbmRdID0gRXhlY0V2YWxFeHByKGVzdGF0ZSwKKwkJCXZhbHVl c1tyZXNpbmRdID0gRXhlY0V2YWxFeHByKGV4cHJzdGF0ZSwKIAkJCQkJCQkJCQkgIGVjb250ZXh0 LAogCQkJCQkJCQkJCSAgJmlzbnVsbFtyZXNpbmRdKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vY3JlYXRlcGxhbi5jCmluZGV4IDhhZjA5MWJhNjQ3Li45MmU0NmEzMTg5OCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMTIzNiwxNiArMTIzNiwxNiBAQCBj cmVhdGVfYXBwZW5kX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIEFwcGVuZFBhdGggKmJlc3RfcGF0 aCwgaW50IGZsYWdzKQogCWlmIChiZXN0X3BhdGgtPnN1YnBhdGhzID09IE5JTCkKIAl7CiAJCS8q IEdlbmVyYXRlIGEgUmVzdWx0IHBsYW4gd2l0aCBjb25zdGFudC1GQUxTRSBnYXRpbmcgcXVhbCAq LwotCQlQbGFuCSAgICpwbGFuOworCQlQbGFuCSAgICpyZXNwbGFuOwogCi0JCXBsYW4gPSAoUGxh biAqKSBtYWtlX29uZV9yb3dfcmVzdWx0KHRsaXN0LAotCQkJCQkJCQkJCQkoTm9kZSAqKSBsaXN0 X21ha2UxKG1ha2VCb29sQ29uc3QoZmFsc2UsCi0JCQkJCQkJCQkJCQkJCQkJCQkJICBmYWxzZSkp LAotCQkJCQkJCQkJCQliZXN0X3BhdGgtPnBhdGgucGFyZW50KTsKKwkJcmVzcGxhbiA9IChQbGFu ICopIG1ha2Vfb25lX3Jvd19yZXN1bHQodGxpc3QsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIGxp c3RfbWFrZTEobWFrZUJvb2xDb25zdChmYWxzZSwKKwkJCQkJCQkJCQkJCQkJCQkJCQkJIGZhbHNl KSksCisJCQkJCQkJCQkJCSAgIGJlc3RfcGF0aC0+cGF0aC5wYXJlbnQpOwogCi0JCWNvcHlfZ2Vu ZXJpY19wYXRoX2luZm8ocGxhbiwgKFBhdGggKikgYmVzdF9wYXRoKTsKKwkJY29weV9nZW5lcmlj X3BhdGhfaW5mbyhyZXNwbGFuLCAoUGF0aCAqKSBiZXN0X3BhdGgpOwogCi0JCXJldHVybiBwbGFu OworCQlyZXR1cm4gcmVzcGxhbjsKIAl9CiAKIAkvKgpAQCAtMjQwNiw3ICsyNDA2LDcgQEAgY3Jl YXRlX21pbm1heGFnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBNaW5NYXhBZ2dQYXRoICpiZXN0 X3BhdGgpCiAJCU1pbk1heEFnZ0luZm8gKm1taW5mbyA9IChNaW5NYXhBZ2dJbmZvICopIGxmaXJz dChsYyk7CiAJCVBsYW5uZXJJbmZvICpzdWJyb290ID0gbW1pbmZvLT5zdWJyb290OwogCQlRdWVy eQkgICAqc3VicGFyc2UgPSBzdWJyb290LT5wYXJzZTsKLQkJUGxhbgkgICAqcGxhbjsKKwkJUGxh bgkgICAqaW5pdHBsYW47CiAKIAkJLyoKIAkJICogR2VuZXJhdGUgdGhlIHBsYW4gZm9yIHRoZSBz dWJxdWVyeS4gV2UgYWxyZWFkeSBoYXZlIGEgUGF0aCwgYnV0IHdlCkBAIC0yNDE0LDI1ICsyNDE0 LDI1IEBAIGNyZWF0ZV9taW5tYXhhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTWluTWF4QWdn UGF0aCAqYmVzdF9wYXRoKQogCQkgKiBTaW5jZSB3ZSBhcmUgZW50ZXJpbmcgYSBkaWZmZXJlbnQg cGxhbm5lciBjb250ZXh0IChzdWJyb290KSwKIAkJICogcmVjdXJzZSB0byBjcmVhdGVfcGxhbiBu b3QgY3JlYXRlX3BsYW5fcmVjdXJzZS4KIAkJICovCi0JCXBsYW4gPSBjcmVhdGVfcGxhbihzdWJy b290LCBtbWluZm8tPnBhdGgpOworCQlpbml0cGxhbiA9IGNyZWF0ZV9wbGFuKHN1YnJvb3QsIG1t aW5mby0+cGF0aCk7CiAKLQkJcGxhbiA9IChQbGFuICopIG1ha2VfbGltaXQocGxhbiwKLQkJCQkJ CQkJICAgc3VicGFyc2UtPmxpbWl0T2Zmc2V0LAotCQkJCQkJCQkgICBzdWJwYXJzZS0+bGltaXRD b3VudCwKLQkJCQkJCQkJICAgc3VicGFyc2UtPmxpbWl0T3B0aW9uLAotCQkJCQkJCQkgICAwLCBO VUxMLCBOVUxMLCBOVUxMKTsKKwkJaW5pdHBsYW4gPSAoUGxhbiAqKSBtYWtlX2xpbWl0KGluaXRw bGFuLAorCQkJCQkJCQkJICAgc3VicGFyc2UtPmxpbWl0T2Zmc2V0LAorCQkJCQkJCQkJICAgc3Vi cGFyc2UtPmxpbWl0Q291bnQsCisJCQkJCQkJCQkgICBzdWJwYXJzZS0+bGltaXRPcHRpb24sCisJ CQkJCQkJCQkgICAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKIAogCQkvKiBNdXN0IGFwcGx5IGNvcnJl Y3QgY29zdC93aWR0aCBkYXRhIHRvIExpbWl0IG5vZGUgKi8KLQkJcGxhbi0+ZGlzYWJsZWRfbm9k ZXMgPSBtbWluZm8tPnBhdGgtPmRpc2FibGVkX25vZGVzOwotCQlwbGFuLT5zdGFydHVwX2Nvc3Qg PSBtbWluZm8tPnBhdGgtPnN0YXJ0dXBfY29zdDsKLQkJcGxhbi0+dG90YWxfY29zdCA9IG1taW5m by0+cGF0aGNvc3Q7Ci0JCXBsYW4tPnBsYW5fcm93cyA9IDE7Ci0JCXBsYW4tPnBsYW5fd2lkdGgg PSBtbWluZm8tPnBhdGgtPnBhdGh0YXJnZXQtPndpZHRoOwotCQlwbGFuLT5wYXJhbGxlbF9hd2Fy ZSA9IGZhbHNlOwotCQlwbGFuLT5wYXJhbGxlbF9zYWZlID0gbW1pbmZvLT5wYXRoLT5wYXJhbGxl bF9zYWZlOworCQlpbml0cGxhbi0+ZGlzYWJsZWRfbm9kZXMgPSBtbWluZm8tPnBhdGgtPmRpc2Fi bGVkX25vZGVzOworCQlpbml0cGxhbi0+c3RhcnR1cF9jb3N0ID0gbW1pbmZvLT5wYXRoLT5zdGFy dHVwX2Nvc3Q7CisJCWluaXRwbGFuLT50b3RhbF9jb3N0ID0gbW1pbmZvLT5wYXRoY29zdDsKKwkJ aW5pdHBsYW4tPnBsYW5fcm93cyA9IDE7CisJCWluaXRwbGFuLT5wbGFuX3dpZHRoID0gbW1pbmZv LT5wYXRoLT5wYXRodGFyZ2V0LT53aWR0aDsKKwkJaW5pdHBsYW4tPnBhcmFsbGVsX2F3YXJlID0g ZmFsc2U7CisJCWluaXRwbGFuLT5wYXJhbGxlbF9zYWZlID0gbW1pbmZvLT5wYXRoLT5wYXJhbGxl bF9zYWZlOwogCiAJCS8qIENvbnZlcnQgdGhlIHBsYW4gaW50byBhbiBJbml0UGxhbiBpbiB0aGUg b3V0ZXIgcXVlcnkuICovCi0JCVNTX21ha2VfaW5pdHBsYW5fZnJvbV9wbGFuKHJvb3QsIHN1YnJv b3QsIHBsYW4sIG1taW5mby0+cGFyYW0pOworCQlTU19tYWtlX2luaXRwbGFuX2Zyb21fcGxhbihy b290LCBzdWJyb290LCBpbml0cGxhbiwgbW1pbmZvLT5wYXJhbSk7CiAJfQogCiAJLyogR2VuZXJh dGUgdGhlIG91dHB1dCBwbGFuIC0tLSBiYXNpY2FsbHkganVzdCBhIFJlc3VsdCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9kZXBlbmRlbmNpZXMuYyBiL3NyYy9iYWNrZW5k L3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMKaW5kZXggNmY2M2I0ZjNmZmIuLjVjMjI0YmQ0ODE3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5jCisrKyBi L3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMKQEAgLTEwOTgsMTcgKzEwOTgs MTcgQEAgZGVwZW5kZW5jeV9pc19jb21wYXRpYmxlX2V4cHJlc3Npb24oTm9kZSAqY2xhdXNlLCBJ bmRleCByZWxpZCwgTGlzdCAqc3RhdGxpc3QsIE4KIAlpZiAoaXNfb3BjbGF1c2UoY2xhdXNlKSkK IAl7CiAJCS8qIElmIGl0J3MgYW4gb3BjbGF1c2UsIGNoZWNrIGZvciBWYXIgPSBDb25zdCBvciBD b25zdCA9IFZhci4gKi8KLQkJT3BFeHByCSAgICpleHByID0gKE9wRXhwciAqKSBjbGF1c2U7CisJ CU9wRXhwcgkgICAqb3BleHByID0gKE9wRXhwciAqKSBjbGF1c2U7CiAKIAkJLyogT25seSBleHBy ZXNzaW9ucyB3aXRoIHR3byBhcmd1bWVudHMgYXJlIGNhbmRpZGF0ZXMuICovCi0JCWlmIChsaXN0 X2xlbmd0aChleHByLT5hcmdzKSAhPSAyKQorCQlpZiAobGlzdF9sZW5ndGgob3BleHByLT5hcmdz KSAhPSAyKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCS8qIE1ha2Ugc3VyZSBub24tc2VsZWN0ZWQg YXJndW1lbnQgaXMgYSBwc2V1ZG9jb25zdGFudC4gKi8KLQkJaWYgKGlzX3BzZXVkb19jb25zdGFu dF9jbGF1c2UobHNlY29uZChleHByLT5hcmdzKSkpCi0JCQljbGF1c2VfZXhwciA9IGxpbml0aWFs KGV4cHItPmFyZ3MpOwotCQllbHNlIGlmIChpc19wc2V1ZG9fY29uc3RhbnRfY2xhdXNlKGxpbml0 aWFsKGV4cHItPmFyZ3MpKSkKLQkJCWNsYXVzZV9leHByID0gbHNlY29uZChleHByLT5hcmdzKTsK KwkJaWYgKGlzX3BzZXVkb19jb25zdGFudF9jbGF1c2UobHNlY29uZChvcGV4cHItPmFyZ3MpKSkK KwkJCWNsYXVzZV9leHByID0gbGluaXRpYWwob3BleHByLT5hcmdzKTsKKwkJZWxzZSBpZiAoaXNf cHNldWRvX2NvbnN0YW50X2NsYXVzZShsaW5pdGlhbChvcGV4cHItPmFyZ3MpKSkKKwkJCWNsYXVz ZV9leHByID0gbHNlY29uZChvcGV4cHItPmFyZ3MpOwogCQllbHNlCiAJCQlyZXR1cm4gZmFsc2U7 CiAKQEAgLTExMjQsNyArMTEyNCw3IEBAIGRlcGVuZGVuY3lfaXNfY29tcGF0aWJsZV9leHByZXNz aW9uKE5vZGUgKmNsYXVzZSwgSW5kZXggcmVsaWQsIExpc3QgKnN0YXRsaXN0LCBOCiAJCSAqIHNl bGVjdGl2aXR5IGZ1bmN0aW9ucywgYW5kIHRvIGJlIG1vcmUgY29uc2lzdGVudCB3aXRoIGRlY2lz aW9ucwogCQkgKiBlbHNld2hlcmUgaW4gdGhlIHBsYW5uZXIuCiAJCSAqLwotCQlpZiAoZ2V0X29w cnJlc3QoZXhwci0+b3BubykgIT0gRl9FUVNFTCkKKwkJaWYgKGdldF9vcHJyZXN0KG9wZXhwci0+ b3BubykgIT0gRl9FUVNFTCkKIAkJCXJldHVybiBmYWxzZTsKIAogCQkvKiBPSyB0byBwcm9jZWVk IHdpdGggY2hlY2tpbmcgInZhciIgKi8KQEAgLTExMzIsNyArMTEzMiw3IEBAIGRlcGVuZGVuY3lf aXNfY29tcGF0aWJsZV9leHByZXNzaW9uKE5vZGUgKmNsYXVzZSwgSW5kZXggcmVsaWQsIExpc3Qg KnN0YXRsaXN0LCBOCiAJZWxzZSBpZiAoSXNBKGNsYXVzZSwgU2NhbGFyQXJyYXlPcEV4cHIpKQog CXsKIAkJLyogSWYgaXQncyBhIHNjYWxhciBhcnJheSBvcGVyYXRvciwgY2hlY2sgZm9yIFZhciBJ TiBDb25zdC4gKi8KLQkJU2NhbGFyQXJyYXlPcEV4cHIgKmV4cHIgPSAoU2NhbGFyQXJyYXlPcEV4 cHIgKikgY2xhdXNlOworCQlTY2FsYXJBcnJheU9wRXhwciAqb3BleHByID0gKFNjYWxhckFycmF5 T3BFeHByICopIGNsYXVzZTsKIAogCQkvKgogCQkgKiBSZWplY3QgQUxMKCkgdmFyaWFudCwgd2Ug b25seSBjYXJlIGFib3V0IEFOWS9JTi4KQEAgLTExNDAsMjEgKzExNDAsMjEgQEAgZGVwZW5kZW5j eV9pc19jb21wYXRpYmxlX2V4cHJlc3Npb24oTm9kZSAqY2xhdXNlLCBJbmRleCByZWxpZCwgTGlz dCAqc3RhdGxpc3QsIE4KIAkJICogRklYTUUgTWF5YmUgd2Ugc2hvdWxkIGNoZWNrIGlmIGFsbCB0 aGUgdmFsdWVzIGFyZSB0aGUgc2FtZSwgYW5kCiAJCSAqIGFsbG93IEFMTCBpbiB0aGF0IGNhc2U/ IERvZXNuJ3Qgc2VlbSB2ZXJ5IHByYWN0aWNhbCwgdGhvdWdoLgogCQkgKi8KLQkJaWYgKCFleHBy LT51c2VPcikKKwkJaWYgKCFvcGV4cHItPnVzZU9yKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCS8q IE9ubHkgZXhwcmVzc2lvbnMgd2l0aCB0d28gYXJndW1lbnRzIGFyZSBjYW5kaWRhdGVzLiAqLwot CQlpZiAobGlzdF9sZW5ndGgoZXhwci0+YXJncykgIT0gMikKKwkJaWYgKGxpc3RfbGVuZ3RoKG9w ZXhwci0+YXJncykgIT0gMikKIAkJCXJldHVybiBmYWxzZTsKIAogCQkvKgogCQkgKiBXZSBrbm93 IGl0J3MgYWx3YXlzIChWYXIgSU4gQ29uc3QpLCBzbyB3ZSBhc3N1bWUgdGhlIHZhciBpcyB0aGUK IAkJICogZmlyc3QgYXJndW1lbnQsIGFuZCBwc2V1ZG9jb25zdGFudCBpcyB0aGUgc2Vjb25kIG9u ZS4KIAkJICovCi0JCWlmICghaXNfcHNldWRvX2NvbnN0YW50X2NsYXVzZShsc2Vjb25kKGV4cHIt PmFyZ3MpKSkKKwkJaWYgKCFpc19wc2V1ZG9fY29uc3RhbnRfY2xhdXNlKGxzZWNvbmQob3BleHBy LT5hcmdzKSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAKLQkJY2xhdXNlX2V4cHIgPSBsaW5pdGlhbChl eHByLT5hcmdzKTsKKwkJY2xhdXNlX2V4cHIgPSBsaW5pdGlhbChvcGV4cHItPmFyZ3MpOwogCiAJ CS8qCiAJCSAqIElmIGl0J3Mgbm90IGFuICI9IiBvcGVyYXRvciwganVzdCBpZ25vcmUgdGhlIGNs YXVzZSwgYXMgaXQncyBub3QKQEAgLTExNjMsNyArMTE2Myw3IEBAIGRlcGVuZGVuY3lfaXNfY29t cGF0aWJsZV9leHByZXNzaW9uKE5vZGUgKmNsYXVzZSwgSW5kZXggcmVsaWQsIExpc3QgKnN0YXRs aXN0LCBOCiAJCSAqIHNlbGVjdGl2aXR5LiBUaGF0J3MgYSBiaXQgc3RyYW5nZSwgYnV0IGl0J3Mg d2hhdCBvdGhlciBzaW1pbGFyCiAJCSAqIHBsYWNlcyBkby4KIAkJICovCi0JCWlmIChnZXRfb3By cmVzdChleHByLT5vcG5vKSAhPSBGX0VRU0VMKQorCQlpZiAoZ2V0X29wcnJlc3Qob3BleHByLT5v cG5vKSAhPSBGX0VRU0VMKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCS8qIE9LIHRvIHByb2NlZWQg d2l0aCBjaGVja2luZyAidmFyIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGlj cy9leHRlbmRlZF9zdGF0cy5jIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0 cy5jCmluZGV4IDNjM2QyZDMxNWM2Li43ZGY4NDAzNTc3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0YXRpc3Rp Y3MvZXh0ZW5kZWRfc3RhdHMuYwpAQCAtOTkxLDcgKzk5MSw3IEBAIGJ1aWxkX3NvcnRlZF9pdGVt cyhTdGF0c0J1aWxkRGF0YSAqZGF0YSwgaW50ICpuaXRlbXMsCiAJU2l6ZQkJbGVuOwogCVNvcnRJ dGVtICAgKml0ZW1zOwogCURhdHVtCSAgICp2YWx1ZXM7Ci0JYm9vbAkgICAqaXNudWxsOworCWJv b2wJICAgKmlzbnVsbHM7CiAJY2hhcgkgICAqcHRyOwogCWludAkJICAgKnR5cGxlbjsKIApAQCAt MTAxMSw3ICsxMDExLDcgQEAgYnVpbGRfc29ydGVkX2l0ZW1zKFN0YXRzQnVpbGREYXRhICpkYXRh LCBpbnQgKm5pdGVtcywKIAl2YWx1ZXMgPSAoRGF0dW0gKikgcHRyOwogCXB0ciArPSBudmFsdWVz ICogc2l6ZW9mKERhdHVtKTsKIAotCWlzbnVsbCA9IChib29sICopIHB0cjsKKwlpc251bGxzID0g KGJvb2wgKikgcHRyOwogCXB0ciArPSBudmFsdWVzICogc2l6ZW9mKGJvb2wpOwogCiAJLyogbWFr ZSBzdXJlIHdlIGNvbnN1bWVkIHRoZSB3aG9sZSBidWZmZXIgZXhhY3RseSAqLwpAQCAtMTAyMiw3 ICsxMDIyLDcgQEAgYnVpbGRfc29ydGVkX2l0ZW1zKFN0YXRzQnVpbGREYXRhICpkYXRhLCBpbnQg Km5pdGVtcywKIAlmb3IgKGkgPSAwOyBpIDwgZGF0YS0+bnVtcm93czsgaSsrKQogCXsKIAkJaXRl bXNbbnJvd3NdLnZhbHVlcyA9ICZ2YWx1ZXNbbnJvd3MgKiBudW1hdHRyc107Ci0JCWl0ZW1zW25y b3dzXS5pc251bGwgPSAmaXNudWxsW25yb3dzICogbnVtYXR0cnNdOworCQlpdGVtc1tucm93c10u aXNudWxsID0gJmlzbnVsbHNbbnJvd3MgKiBudW1hdHRyc107CiAKIAkJbnJvd3MrKzsKIAl9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IGYzNzNjZWFkOTVmLi44ODdjN2Q0ZDMz NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTExODgsNyArMTE4OCw3IEBA IFJlYWRCdWZmZXJfY29tbW9uKFJlbGF0aW9uIHJlbCwgU01nclJlbGF0aW9uIHNtZ3IsIGNoYXIg c21ncl9wZXJzaXN0ZW5jZSwKIAkgKi8KIAlpZiAodW5saWtlbHkoYmxvY2tOdW0gPT0gUF9ORVcp KQogCXsKLQkJdWludDMyCQlmbGFncyA9IEVCX1NLSVBfRVhURU5TSU9OX0xPQ0s7CisJCXVpbnQz MgkJdWZsYWdzID0gRUJfU0tJUF9FWFRFTlNJT05fTE9DSzsKIAogCQkvKgogCQkgKiBTaW5jZSBu by1vbmUgZWxzZSBjYW4gYmUgbG9va2luZyBhdCB0aGUgcGFnZSBjb250ZW50cyB5ZXQsIHRoZXJl IGlzCkBAIC0xMTk2LDkgKzExOTYsOSBAQCBSZWFkQnVmZmVyX2NvbW1vbihSZWxhdGlvbiByZWws IFNNZ3JSZWxhdGlvbiBzbWdyLCBjaGFyIHNtZ3JfcGVyc2lzdGVuY2UsCiAJCSAqIGxvY2suCiAJ CSAqLwogCQlpZiAobW9kZSA9PSBSQk1fWkVST19BTkRfTE9DSyB8fCBtb2RlID09IFJCTV9aRVJP X0FORF9DTEVBTlVQX0xPQ0spCi0JCQlmbGFncyB8PSBFQl9MT0NLX0ZJUlNUOworCQkJdWZsYWdz IHw9IEVCX0xPQ0tfRklSU1Q7CiAKLQkJcmV0dXJuIEV4dGVuZEJ1ZmZlcmVkUmVsKEJNUl9SRUwo cmVsKSwgZm9ya051bSwgc3RyYXRlZ3ksIGZsYWdzKTsKKwkJcmV0dXJuIEV4dGVuZEJ1ZmZlcmVk UmVsKEJNUl9SRUwocmVsKSwgZm9ya051bSwgc3RyYXRlZ3ksIHVmbGFncyk7CiAJfQogCiAJaWYg KHJlbCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCmluZGV4IDgxNTY2OTVlOTdl Li40YjgzN2ZmMDc2NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRo X2V4ZWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCkBAIC01 MzYsNyArNTM2LDcgQEAganNvbmJfcGF0aF9xdWVyeV9pbnRlcm5hbChGdW5jdGlvbkNhbGxJbmZv IGZjaW5mbywgYm9vbCB0eikKIAkJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwogCQlKc29uYgkg ICAqdmFyczsKIAkJYm9vbAkJc2lsZW50OwotCQlKc29uVmFsdWVMaXN0IGZvdW5kID0gezB9Owor CQlKc29uVmFsdWVMaXN0IGZvdW5kSlYgPSB7MH07CiAKIAkJZnVuY2N0eCA9IFNSRl9GSVJTVENB TExfSU5JVCgpOwogCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgt Pm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CkBAIC01NDgsOSArNTQ4LDkgQEAganNvbmJfcGF0aF9x dWVyeV9pbnRlcm5hbChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCB0eikKIAogCQkodm9p ZCkgZXhlY3V0ZUpzb25QYXRoKGpwLCB2YXJzLCBnZXRKc29uUGF0aFZhcmlhYmxlRnJvbUpzb25i LAogCQkJCQkJCSAgIGNvdW50VmFyaWFibGVzRnJvbUpzb25iLAotCQkJCQkJCSAgIGpiLCAhc2ls ZW50LCAmZm91bmQsIHR6KTsKKwkJCQkJCQkgICBqYiwgIXNpbGVudCwgJmZvdW5kSlYsIHR6KTsK IAotCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBKc29uVmFsdWVMaXN0R2V0TGlzdCgmZm91bmQpOwor CQlmdW5jY3R4LT51c2VyX2ZjdHggPSBKc29uVmFsdWVMaXN0R2V0TGlzdCgmZm91bmRKVik7CiAK IAkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCX0KQEAgLTE4NzksMjUgKzE4 NzksMjUgQEAgZXhlY3V0ZUJvb2xJdGVtKEpzb25QYXRoRXhlY0NvbnRleHQgKmN4dCwgSnNvblBh dGhJdGVtICpqc3AsCiAJCQkJICogY2hlY2sgdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGF0IGFs bC4KIAkJCQkgKi8KIAkJCQlKc29uVmFsdWVMaXN0IHZhbHMgPSB7MH07Ci0JCQkJSnNvblBhdGhF eGVjUmVzdWx0IHJlcyA9CisJCQkJSnNvblBhdGhFeGVjUmVzdWx0IGV4ZWNyZXMgPQogCQkJCQll eGVjdXRlSXRlbU9wdFVud3JhcFJlc3VsdE5vVGhyb3coY3h0LCAmbGFyZywgamIsCiAJCQkJCQkJ CQkJCQkJICBmYWxzZSwgJnZhbHMpOwogCi0JCQkJaWYgKGpwZXJJc0Vycm9yKHJlcykpCisJCQkJ aWYgKGpwZXJJc0Vycm9yKGV4ZWNyZXMpKQogCQkJCQlyZXR1cm4ganBiVW5rbm93bjsKIAogCQkJ CXJldHVybiBKc29uVmFsdWVMaXN0SXNFbXB0eSgmdmFscykgPyBqcGJGYWxzZSA6IGpwYlRydWU7 CiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJSnNvblBhdGhFeGVjUmVzdWx0IHJlcyA9CisJCQkJ SnNvblBhdGhFeGVjUmVzdWx0IGV4ZWNyZXMgPQogCQkJCQlleGVjdXRlSXRlbU9wdFVud3JhcFJl c3VsdE5vVGhyb3coY3h0LCAmbGFyZywgamIsCiAJCQkJCQkJCQkJCQkJICBmYWxzZSwgTlVMTCk7 CiAKLQkJCQlpZiAoanBlcklzRXJyb3IocmVzKSkKKwkJCQlpZiAoanBlcklzRXJyb3IoZXhlY3Jl cykpCiAJCQkJCXJldHVybiBqcGJVbmtub3duOwogCi0JCQkJcmV0dXJuIHJlcyA9PSBqcGVyT2sg PyBqcGJUcnVlIDoganBiRmFsc2U7CisJCQkJcmV0dXJuIGV4ZWNyZXMgPT0ganBlck9rID8ganBi VHJ1ZSA6IGpwYkZhbHNlOwogCQkJfQogCiAJCWRlZmF1bHQ6CkBAIC0yMDY2LDE2ICsyMDY2LDE2 IEBAIGV4ZWN1dGVQcmVkaWNhdGUoSnNvblBhdGhFeGVjQ29udGV4dCAqY3h0LCBKc29uUGF0aEl0 ZW0gKnByZWQsCiAJCS8qIExvb3Agb3ZlciByaWdodCBhcmcgc2VxdWVuY2Ugb3IgZG8gc2luZ2xl IHBhc3Mgb3RoZXJ3aXNlICovCiAJCXdoaWxlIChyYXJnID8gKHJ2YWwgIT0gTlVMTCkgOiBmaXJz dCkKIAkJewotCQkJSnNvblBhdGhCb29sIHJlcyA9IGV4ZWMocHJlZCwgbHZhbCwgcnZhbCwgcGFy YW0pOworCQkJSnNvblBhdGhCb29sIGJvb2xyZXMgPSBleGVjKHByZWQsIGx2YWwsIHJ2YWwsIHBh cmFtKTsKIAotCQkJaWYgKHJlcyA9PSBqcGJVbmtub3duKQorCQkJaWYgKGJvb2xyZXMgPT0ganBi VW5rbm93bikKIAkJCXsKIAkJCQlpZiAoanNwU3RyaWN0QWJzZW5jZU9mRXJyb3JzKGN4dCkpCiAJ CQkJCXJldHVybiBqcGJVbmtub3duOwogCiAJCQkJZXJyb3IgPSB0cnVlOwogCQkJfQotCQkJZWxz ZSBpZiAocmVzID09IGpwYlRydWUpCisJCQllbHNlIGlmIChib29scmVzID09IGpwYlRydWUpCiAJ CQl7CiAJCQkJaWYgKCFqc3BTdHJpY3RBYnNlbmNlT2ZFcnJvcnMoY3h0KSkKIAkJCQkJcmV0dXJu IGpwYlRydWU7CkBAIC00MTM2LDIwICs0MTM2LDIwIEBAIEpzb25UYWJsZUluaXRPcGFxdWUoVGFi bGVGdW5jU2NhblN0YXRlICpzdGF0ZSwgaW50IG5hdHRzKQogCQlmb3Jib3RoKGV4cHJsYywgc3Rh dGUtPnBhc3Npbmd2YWxleHBycywKIAkJCQluYW1lbGMsIGplLT5wYXNzaW5nX25hbWVzKQogCQl7 Ci0JCQlFeHByU3RhdGUgICpzdGF0ZSA9IGxmaXJzdF9ub2RlKEV4cHJTdGF0ZSwgZXhwcmxjKTsK KwkJCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZSA9IGxmaXJzdF9ub2RlKEV4cHJTdGF0ZSwgZXhwcmxj KTsKIAkJCVN0cmluZwkgICAqbmFtZSA9IGxmaXJzdF9ub2RlKFN0cmluZywgbmFtZWxjKTsKIAkJ CUpzb25QYXRoVmFyaWFibGUgKnZhciA9IHBhbGxvYyhzaXplb2YoKnZhcikpOwogCiAJCQl2YXIt Pm5hbWUgPSBwc3RyZHVwKG5hbWUtPnN2YWwpOwogCQkJdmFyLT5uYW1lbGVuID0gc3RybGVuKHZh ci0+bmFtZSk7Ci0JCQl2YXItPnR5cGlkID0gZXhwclR5cGUoKE5vZGUgKikgc3RhdGUtPmV4cHIp OwotCQkJdmFyLT50eXBtb2QgPSBleHByVHlwbW9kKChOb2RlICopIHN0YXRlLT5leHByKTsKKwkJ CXZhci0+dHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByc3RhdGUtPmV4cHIpOworCQkJdmFy LT50eXBtb2QgPSBleHByVHlwbW9kKChOb2RlICopIGV4cHJzdGF0ZS0+ZXhwcik7CiAKIAkJCS8q CiAJCQkgKiBFdmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBhbmQgc2F2ZSB0aGUgdmFsdWUgdG8gYmUg cmV0dXJuZWQgYnkKIAkJCSAqIEdldEpzb25QYXRoVmFyKCkuCiAJCQkgKi8KLQkJCXZhci0+dmFs dWUgPSBFeGVjRXZhbEV4cHIoc3RhdGUsIHBzLT5wc19FeHByQ29udGV4dCwKKwkJCXZhci0+dmFs dWUgPSBFeGVjRXZhbEV4cHIoZXhwcnN0YXRlLCBwcy0+cHNfRXhwckNvbnRleHQsCiAJCQkJCQkJ CQkgICZ2YXItPmlzbnVsbCk7CiAKIAkJCWFyZ3MgPSBsYXBwZW5kKGFyZ3MsIHZhcik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKaW5kZXggYTRmOGI0ZmFhOTAu LmNmYWE4ZjhhM2I3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFk ZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9y dC5jCkBAIC0yMjcsOCArMjI3LDggQEAgYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVu c2lvbihQR19GVU5DVElPTl9BUkdTKQogCQlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKHRleHRB cnJheSwgVEVYVE9JRCwgJnRleHREYXR1bXMsIE5VTEwsICZuZGF0dW1zKTsKIAkJZm9yIChpID0g MDsgaSA8IG5kYXR1bXM7IGkrKykKIAkJewotCQkJY2hhcgkgICAqZXh0TmFtZSA9IFRleHREYXR1 bUdldENTdHJpbmcodGV4dERhdHVtc1tpXSk7Ci0JCQlPaWQJCQlleHRPaWQgPSBnZXRfZXh0ZW5z aW9uX29pZChleHROYW1lLCBmYWxzZSk7CisJCQljaGFyCSAgICpleHROYW1lU3RyID0gVGV4dERh dHVtR2V0Q1N0cmluZyh0ZXh0RGF0dW1zW2ldKTsKKwkJCU9pZAkJCWV4dE9pZCA9IGdldF9leHRl bnNpb25fb2lkKGV4dE5hbWVTdHIsIGZhbHNlKTsKIAogCQkJcmVxdWlyZWRFeHRlbnNpb25zID0g bGFwcGVuZF9vaWQocmVxdWlyZWRFeHRlbnNpb25zLCBleHRPaWQpOwogCQl9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3ZhcmxlbmEuYwppbmRleCAzODk0NDU3YWI0MC4uODRmNjA3NGYwZjUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3ZhcmxlbmEuYwpAQCAtMzI3MywxNCArMzI3MywxNCBAQCBhcHBlbmRTdHJpbmdJbmZvUmVnZXhw U3Vic3RyKFN0cmluZ0luZm8gc3RyLCB0ZXh0ICpyZXBsYWNlX3RleHQsCiAJCQkgKiBDb3B5IHRo ZSB0ZXh0IHRoYXQgaXMgYmFjayByZWZlcmVuY2Ugb2YgcmVnZXhwLiAgTm90ZSBzbyBhbmQgZW8K IAkJCSAqIGFyZSBjb3VudGVkIGluIGNoYXJhY3RlcnMgbm90IGJ5dGVzLgogCQkJICovCi0JCQlj aGFyCSAgICpjaHVua19zdGFydDsKLQkJCWludAkJCWNodW5rX2xlbjsKKwkJCWNoYXIJICAgKnN0 YXJ0OworCQkJaW50CQkJbGVuOwogCiAJCQlBc3NlcnQoc28gPj0gZGF0YV9wb3MpOwotCQkJY2h1 bmtfc3RhcnQgPSBzdGFydF9wdHI7Ci0JCQljaHVua19zdGFydCArPSBjaGFybGVuX3RvX2J5dGVs ZW4oY2h1bmtfc3RhcnQsIHNvIC0gZGF0YV9wb3MpOwotCQkJY2h1bmtfbGVuID0gY2hhcmxlbl90 b19ieXRlbGVuKGNodW5rX3N0YXJ0LCBlbyAtIHNvKTsKLQkJCWFwcGVuZEJpbmFyeVN0cmluZ0lu Zm8oc3RyLCBjaHVua19zdGFydCwgY2h1bmtfbGVuKTsKKwkJCXN0YXJ0ID0gc3RhcnRfcHRyOwor CQkJc3RhcnQgKz0gY2hhcmxlbl90b19ieXRlbGVuKHN0YXJ0LCBzbyAtIGRhdGFfcG9zKTsKKwkJ CWxlbiA9IGNoYXJsZW5fdG9fYnl0ZWxlbihzdGFydCwgZW8gLSBzbyk7CisJCQlhcHBlbmRCaW5h cnlTdHJpbmdJbmZvKHN0ciwgc3RhcnQsIGxlbik7CiAJCX0KIAl9CiB9CkBAIC00ODk5LDcgKzQ4 OTksNyBAQCB0ZXh0X2Zvcm1hdChQR19GVU5DVElPTl9BUkdTKQogCQkJZWxzZQogCQkJewogCQkJ CS8qIEZvciBsZXNzLXVzdWFsIGRhdGF0eXBlcywgY29udmVydCB0byB0ZXh0IHRoZW4gdG8gaW50 ICovCi0JCQkJY2hhcgkgICAqc3RyOworCQkJCWNoYXIJICAgKnM7CiAKIAkJCQlpZiAodHlwaWQg IT0gcHJldl93aWR0aF90eXBlKQogCQkJCXsKQEAgLTQ5MTEsMTIgKzQ5MTEsMTIgQEAgdGV4dF9m b3JtYXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJcHJldl93aWR0aF90eXBlID0gdHlwaWQ7CiAJ CQkJfQogCi0JCQkJc3RyID0gT3V0cHV0RnVuY3Rpb25DYWxsKCZ0eXBvdXRwdXRpbmZvX3dpZHRo LCB2YWx1ZSk7CisJCQkJcyA9IE91dHB1dEZ1bmN0aW9uQ2FsbCgmdHlwb3V0cHV0aW5mb193aWR0 aCwgdmFsdWUpOwogCiAJCQkJLyogcGdfc3RydG9pbnQzMiB3aWxsIGNvbXBsYWluIGFib3V0IGJh ZCBkYXRhIG9yIG92ZXJmbG93ICovCi0JCQkJd2lkdGggPSBwZ19zdHJ0b2ludDMyKHN0cik7CisJ CQkJd2lkdGggPSBwZ19zdHJ0b2ludDMyKHMpOwogCi0JCQkJcGZyZWUoc3RyKTsKKwkJCQlwZnJl ZShzKTsKIAkJCX0KIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2Zy ZWVwYWdlLmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMKaW5kZXggMjdkM2U2 ZTEwMGMuLjk4MzZkODcyYWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2Zy ZWVwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9mcmVlcGFnZS5jCkBAIC0xNTg2 LDcgKzE1ODYsNyBAQCBGcmVlUGFnZU1hbmFnZXJQdXRJbnRlcm5hbChGcmVlUGFnZU1hbmFnZXIg KmZwbSwgU2l6ZSBmaXJzdF9wYWdlLCBTaXplIG5wYWdlcywKIAlpZiAocHJldmtleSAhPSBOVUxM ICYmIHByZXZrZXktPmZpcnN0X3BhZ2UgKyBwcmV2a2V5LT5ucGFnZXMgPj0gZmlyc3RfcGFnZSkK IAl7CiAJCWJvb2wJCXJlbW92ZV9uZXh0ID0gZmFsc2U7Ci0JCVNpemUJCXJlc3VsdDsKKwkJU2l6 ZQkJbnByZXZwYWdlczsKIAogCQlBc3NlcnQocHJldmtleS0+Zmlyc3RfcGFnZSArIHByZXZrZXkt Pm5wYWdlcyA9PSBmaXJzdF9wYWdlKTsKIAkJcHJldmtleS0+bnBhZ2VzID0gKGZpcnN0X3BhZ2Ug LSBwcmV2a2V5LT5maXJzdF9wYWdlKSArIG5wYWdlczsKQEAgLTE2MDYsNyArMTYwNiw3IEBAIEZy ZWVQYWdlTWFuYWdlclB1dEludGVybmFsKEZyZWVQYWdlTWFuYWdlciAqZnBtLCBTaXplIGZpcnN0 X3BhZ2UsIFNpemUgbnBhZ2VzLAogCQkvKiBQdXQgdGhlIHNwYW4gb24gdGhlIGNvcnJlY3QgZnJl ZWxpc3QgYW5kIHNhdmUgc2l6ZS4gKi8KIAkJRnJlZVBhZ2VQb3BTcGFuTGVhZGVyKGZwbSwgcHJl dmtleS0+Zmlyc3RfcGFnZSk7CiAJCUZyZWVQYWdlUHVzaFNwYW5MZWFkZXIoZnBtLCBwcmV2a2V5 LT5maXJzdF9wYWdlLCBwcmV2a2V5LT5ucGFnZXMpOwotCQlyZXN1bHQgPSBwcmV2a2V5LT5ucGFn ZXM7CisJCW5wcmV2cGFnZXMgPSBwcmV2a2V5LT5ucGFnZXM7CiAKIAkJLyoKIAkJICogSWYgd2Ug Y29uc29saWRhdGVkIHdpdGggYm90aCB0aGUgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgZW50cmll cywKQEAgLTE2MjEsNyArMTYyMSw3IEBAIEZyZWVQYWdlTWFuYWdlclB1dEludGVybmFsKEZyZWVQ YWdlTWFuYWdlciAqZnBtLCBTaXplIGZpcnN0X3BhZ2UsIFNpemUgbnBhZ2VzLAogCQlpZiAocmVt b3ZlX25leHQpCiAJCQlGcmVlUGFnZUJ0cmVlUmVtb3ZlKGZwbSwgbnAsIG5pbmRleCk7CiAKLQkJ cmV0dXJuIHJlc3VsdDsKKwkJcmV0dXJuIG5wcmV2cGFnZXM7CiAJfQogCiAJLyogQ29uc29saWRh dGUgd2l0aCB0aGUgbmV4dCBlbnRyeSBpZiBwb3NzaWJsZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdiZW5jaC9wZ2JlbmNoLmMgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCmluZGV4IDY4 Nzc0YTU5ZWZkLi40OGNiNTYzNjkwOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVu Y2guYworKysgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCkBAIC00NjYxLDcgKzQ2NjEsNyBA QCBkb0xvZyhUU3RhdGUgKnRocmVhZCwgQ1N0YXRlICpzdCwKIAkJCWRvdWJsZQkJbGFnX3N1bTIg PSAwLjA7CiAJCQlkb3VibGUJCWxhZ19taW4gPSAwLjA7CiAJCQlkb3VibGUJCWxhZ19tYXggPSAw LjA7Ci0JCQlpbnQ2NAkJc2tpcHBlZCA9IDA7CisJCQlpbnQ2NAkJc2tpcHMgPSAwOwogCQkJaW50 NjQJCXNlcmlhbGl6YXRpb25fZmFpbHVyZXMgPSAwOwogCQkJaW50NjQJCWRlYWRsb2NrX2ZhaWx1 cmVzID0gMDsKIAkJCWludDY0CQlvdGhlcl9zcWxfZmFpbHVyZXMgPSAwOwpAQCAtNDY5MSw4ICs0 NjkxLDggQEAgZG9Mb2coVFN0YXRlICp0aHJlYWQsIENTdGF0ZSAqc3QsCiAJCQkJCWxhZ19tYXgp OwogCiAJCQlpZiAobGF0ZW5jeV9saW1pdCkKLQkJCQlza2lwcGVkID0gYWdnLT5za2lwcGVkOwot CQkJZnByaW50Zihsb2dmaWxlLCAiICIgSU5UNjRfRk9STUFULCBza2lwcGVkKTsKKwkJCQlza2lw cyA9IGFnZy0+c2tpcHBlZDsKKwkJCWZwcmludGYobG9nZmlsZSwgIiAiIElOVDY0X0ZPUk1BVCwg c2tpcHMpOwogCiAJCQlpZiAobWF4X3RyaWVzICE9IDEpCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM2ZjI0 NTAyODQyLi40NzJjZDJiNzgyYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE3NTgsNyArMTc1OCw3IEBAIGRlc2Ny aWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJaWYgKHRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCiAJewogCQlQR3Jlc3VsdCAgICpyZXN1bHQg PSBOVUxMOwotCQlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCQlwcmludFF1ZXJ5 T3B0IHBvcHQgPSBwc2V0LnBvcHQ7CiAJCWNoYXIJICAgKmZvb3RlcnNbM10gPSB7TlVMTCwgTlVM TCwgTlVMTH07CiAKIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQpAQCAtMTg5NSwxMiAr MTg5NSwxMiBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1l LAogCQkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTZXF1ZW5jZSBcIiVzLiVzXCIiKSwK IAkJCQkJCQkgIHNjaGVtYW5hbWUsIHJlbGF0aW9ubmFtZSk7CiAKLQkJbXlvcHQuZm9vdGVycyA9 IGZvb3RlcnM7Ci0JCW15b3B0LnRvcHQuZGVmYXVsdF9mb290ZXIgPSBmYWxzZTsKLQkJbXlvcHQu dGl0bGUgPSB0aXRsZS5kYXRhOwotCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwkJ cG9wdC5mb290ZXJzID0gZm9vdGVyczsKKwkJcG9wdC50b3B0LmRlZmF1bHRfZm9vdGVyID0gZmFs c2U7CisJCXBvcHQudGl0bGUgPSB0aXRsZS5kYXRhOworCQlwb3B0LnRyYW5zbGF0ZV9oZWFkZXIg PSB0cnVlOwogCi0JCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxz ZSwgcHNldC5sb2dmaWxlKTsKKwkJcHJpbnRRdWVyeShyZXMsICZwb3B0LCBwc2V0LnF1ZXJ5Rm91 dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAKIAkJZnJlZShmb290ZXJzWzBdKTsKIAkJZnJlZShm b290ZXJzWzFdKTsKQEAgLTIzMTgsMTEgKzIzMTgsMTEgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAogCQlpZiAoUFFudHVwbGVzKHJlc3VsdCkgPT0g MSkKIAkJewotCQkJY2hhcgkgICAqc2NoZW1hbmFtZSA9IFBRZ2V0dmFsdWUocmVzdWx0LCAwLCAw KTsKLQkJCWNoYXIJICAgKnJlbG5hbWUgPSBQUWdldHZhbHVlKHJlc3VsdCwgMCwgMSk7CisJCQlj b25zdCBjaGFyICpzY2hlbWEgPSBQUWdldHZhbHVlKHJlc3VsdCwgMCwgMCk7CisJCQljb25zdCBj aGFyICpyZWxuYW1lID0gUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDEpOwogCiAJCQlwcmludGZQUUV4 cEJ1ZmZlcigmdG1wYnVmLCBfKCJPd25pbmcgdGFibGU6IFwiJXMuJXNcIiIpLAotCQkJCQkJCSAg c2NoZW1hbmFtZSwgcmVsbmFtZSk7CisJCQkJCQkJICBzY2hlbWEsIHJlbG5hbWUpOwogCQkJcHJp bnRUYWJsZUFkZEZvb3RlcigmY29udCwgdG1wYnVmLmRhdGEpOwogCQl9CiAJCVBRY2xlYXIocmVz dWx0KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9wcm9tcHQuYyBiL3NyYy9iaW4vcHNxbC9w cm9tcHQuYwppbmRleCA1OWEyY2VlZTA3YS4uOTQxZmE4OTQ5MTAgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9wcm9tcHQuYworKysgYi9zcmMvYmluL3BzcWwvcHJvbXB0LmMKQEAgLTIwMCwxMSAr MjAwLDExIEBAIGdldF9wcm9tcHQocHJvbXB0U3RhdHVzX3Qgc3RhdHVzLCBDb25kaXRpb25hbFN0 YWNrIGNzdGFjaykKIAkJCQkJLyogcGlwZWxpbmUgc3RhdHVzICovCiAJCQkJY2FzZSAnUCc6CiAJ CQkJCXsKLQkJCQkJCVBHcGlwZWxpbmVTdGF0dXMgc3RhdHVzID0gUFFwaXBlbGluZVN0YXR1cyhw c2V0LmRiKTsKKwkJCQkJCVBHcGlwZWxpbmVTdGF0dXMgcGlwZWxpbmVzdGF0dXMgPSBQUXBpcGVs aW5lU3RhdHVzKHBzZXQuZGIpOwogCi0JCQkJCQlpZiAoc3RhdHVzID09IFBRX1BJUEVMSU5FX09O KQorCQkJCQkJaWYgKHBpcGVsaW5lc3RhdHVzID09IFBRX1BJUEVMSU5FX09OKQogCQkJCQkJCXN0 cmxjcHkoYnVmLCAib24iLCBzaXplb2YoYnVmKSk7Ci0JCQkJCQllbHNlIGlmIChzdGF0dXMgPT0g UFFfUElQRUxJTkVfQUJPUlRFRCkKKwkJCQkJCWVsc2UgaWYgKHBpcGVsaW5lc3RhdHVzID09IFBR X1BJUEVMSU5FX0FCT1JURUQpCiAJCQkJCQkJc3RybGNweShidWYsICJhYm9ydCIsIHNpemVvZihi dWYpKTsKIAkJCQkJCWVsc2UKIAkJCQkJCQlzdHJsY3B5KGJ1ZiwgIm9mZiIsIHNpemVvZihidWYp KTsKQEAgLTM3MiwxMCArMzcyLDEyIEBAIGdldF9wcm9tcHQocHJvbXB0U3RhdHVzX3Qgc3RhdHVz LCBDb25kaXRpb25hbFN0YWNrIGNzdGFjaykKIAkvKiBDb21wdXRlIHRoZSB2aXNpYmxlIHdpZHRo IG9mIFBST01QVDEsIGZvciBQUk9NUFQyJ3MgJXcgKi8KIAlpZiAocHJvbXB0X3N0cmluZyA9PSBw c2V0LnByb21wdDEpCiAJewotCQljaGFyCSAgICpwID0gZGVzdGluYXRpb247Ci0JCWNoYXIJICAg KmVuZCA9IHAgKyBzdHJsZW4ocCk7CisJCWNvbnN0IGNoYXIgKmVuZDsKIAkJYm9vbAkJdmlzaWJs ZSA9IHRydWU7CiAKKwkJcCA9IChjb25zdCBjaGFyICopIGRlc3RpbmF0aW9uOworCQllbmQgPSBw ICsgc3RybGVuKHApOworCiAJCWxhc3RfcHJvbXB0MV93aWR0aCA9IDA7CiAJCXdoaWxlICgqcCkK IAkJewpkaWZmIC0tZ2l0IGEvc3JjL2ZlX3V0aWxzL3ByaW50LmMgYi9zcmMvZmVfdXRpbHMvcHJp bnQuYwppbmRleCA0ZDk3YWQyZGRlYi4uOTRlYTRkZmZlYTMgMTAwNjQ0Ci0tLSBhL3NyYy9mZV91 dGlscy9wcmludC5jCisrKyBiL3NyYy9mZV91dGlscy9wcmludC5jCkBAIC05MzMsNyArOTMzLDcg QEAgcHJpbnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250ZW50ICpjb250LCBGSUxF ICpmb3V0LCBib29sIGlzX3BhZ2VyKQogCQlpZiAoIW9wdF90dXBsZXNfb25seSkKIAkJewogCQkJ aW50CQkJbW9yZV9jb2xfd3JhcHBpbmc7Ci0JCQlpbnQJCQljdXJyX25sX2xpbmU7CisJCQlpbnQJ CQljdXJyX2xpbmU7CiAKIAkJCWlmIChvcHRfYm9yZGVyID09IDIpCiAJCQkJX3ByaW50X2hvcml6 b250YWxfbGluZShjb2xfY291bnQsIHdpZHRoX3dyYXAsIG9wdF9ib3JkZXIsCkBAIC05NDUsNyAr OTQ1LDcgQEAgcHJpbnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250ZW50ICpjb250 LCBGSUxFICpmb3V0LCBib29sIGlzX3BhZ2VyKQogCQkJCQkJCSBjb2xfbGluZXB0cnNbaV0sIG1h eF9ubF9saW5lc1tpXSk7CiAKIAkJCW1vcmVfY29sX3dyYXBwaW5nID0gY29sX2NvdW50OwotCQkJ Y3Vycl9ubF9saW5lID0gMDsKKwkJCWN1cnJfbGluZSA9IDA7CiAJCQlpZiAoY29sX2NvdW50ID4g MCkKIAkJCQltZW1zZXQoaGVhZGVyX2RvbmUsIGZhbHNlLCBjb2xfY291bnQgKiBzaXplb2YoYm9v bCkpOwogCQkJd2hpbGUgKG1vcmVfY29sX3dyYXBwaW5nKQpAQCAtOTU1LDEyICs5NTUsMTIgQEAg cHJpbnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250ZW50ICpjb250LCBGSUxFICpm b3V0LCBib29sIGlzX3BhZ2VyKQogCiAJCQkJZm9yIChpID0gMDsgaSA8IGNvbnQtPm5jb2x1bW5z OyBpKyspCiAJCQkJewotCQkJCQlzdHJ1Y3QgbGluZXB0ciAqdGhpc19saW5lID0gY29sX2xpbmVw dHJzW2ldICsgY3Vycl9ubF9saW5lOworCQkJCQlzdHJ1Y3QgbGluZXB0ciAqdGhpc19saW5lID0g Y29sX2xpbmVwdHJzW2ldICsgY3Vycl9saW5lOwogCQkJCQl1bnNpZ25lZCBpbnQgbmJzcGFjZTsK IAogCQkJCQlpZiAob3B0X2JvcmRlciAhPSAwIHx8CiAJCQkJCQkoIWZvcm1hdC0+d3JhcF9yaWdo dF9ib3JkZXIgJiYgaSA+IDApKQotCQkJCQkJZnB1dHMoY3Vycl9ubF9saW5lID8gZm9ybWF0LT5o ZWFkZXJfbmxfbGVmdCA6ICIgIiwKKwkJCQkJCWZwdXRzKGN1cnJfbGluZSA/IGZvcm1hdC0+aGVh ZGVyX25sX2xlZnQgOiAiICIsCiAJCQkJCQkJICBmb3V0KTsKIAogCQkJCQlpZiAoIWhlYWRlcl9k b25lW2ldKQpAQCAtOTg3LDcgKzk4Nyw3IEBAIHByaW50X2FsaWduZWRfdGV4dChjb25zdCBwcmlu dFRhYmxlQ29udGVudCAqY29udCwgRklMRSAqZm91dCwgYm9vbCBpc19wYWdlcikKIAkJCQkJaWYg KG9wdF9ib3JkZXIgIT0gMCAmJiBjb2xfY291bnQgPiAwICYmIGkgPCBjb2xfY291bnQgLSAxKQog CQkJCQkJZnB1dHMoZGZvcm1hdC0+bWlkdnJ1bGUsIGZvdXQpOwogCQkJCX0KLQkJCQljdXJyX25s X2xpbmUrKzsKKwkJCQljdXJyX2xpbmUrKzsKIAogCQkJCWlmIChvcHRfYm9yZGVyID09IDIpCiAJ CQkJCWZwdXRzKGRmb3JtYXQtPnJpZ2h0dnJ1bGUsIGZvdXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29u bmVjdC5jCmluZGV4IGMzYTI0NDhkY2U1Li4yNDE4NWEyNjAyZCAxMDA2NDQKLS0tIGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LWNvbm5lY3QuYwpAQCAtMzk5OSw3ICszOTk5LDcgQEAga2VlcF9nb2luZzoJCQkJCQkvKiBXZSB3 aWxsIGNvbWUgYmFjayB0byBoZXJlIHVudGlsIHRoZXJlIGlzCiAJCQkJaW50CQkJbXNnTGVuZ3Ro OwogCQkJCWludAkJCWF2YWlsOwogCQkJCUF1dGhSZXF1ZXN0IGFyZXE7Ci0JCQkJaW50CQkJcmVz OworCQkJCWludAkJCXN0YXR1czsKIAkJCQlib29sCQlhc3luYzsKIAogCQkJCS8qCkBAIC00MTk4 LDkgKzQxOTgsOSBAQCBrZWVwX2dvaW5nOgkJCQkJCS8qIFdlIHdpbGwgY29tZSBiYWNrIHRvIGhl cmUgdW50aWwgdGhlcmUgaXMKIAkJCQkgKiBOb3RlIHRoYXQgY29ubi0+cGdob3N0IG11c3QgYmUg bm9uLU5VTEwgaWYgd2UgYXJlIGdvaW5nIHRvCiAJCQkJICogYXZvaWQgdGhlIEtlcmJlcm9zIGNv ZGUgZG9pbmcgYSBob3N0bmFtZSBsb29rLXVwLgogCQkJCSAqLwotCQkJCXJlcyA9IHBnX2ZlX3Nl bmRhdXRoKGFyZXEsIG1zZ0xlbmd0aCwgY29ubiwgJmFzeW5jKTsKKwkJCQlzdGF0dXMgPSBwZ19m ZV9zZW5kYXV0aChhcmVxLCBtc2dMZW5ndGgsIGNvbm4sICZhc3luYyk7CiAKLQkJCQlpZiAoYXN5 bmMgJiYgKHJlcyA9PSBTVEFUVVNfT0spKQorCQkJCWlmIChhc3luYyAmJiAoc3RhdHVzID09IFNU QVRVU19PSykpCiAJCQkJewogCQkJCQkvKgogCQkJCQkgKiBXZSdsbCBjb21lIGJhY2sgbGF0ZXIg b25jZSB3ZSdyZSByZWFkeSB0byByZXNwb25kLgpAQCAtNDIxNyw3ICs0MjE3LDcgQEAga2VlcF9n b2luZzoJCQkJCQkvKiBXZSB3aWxsIGNvbWUgYmFjayB0byBoZXJlIHVudGlsIHRoZXJlIGlzCiAJ CQkJICovCiAJCQkJY29ubi0+aW5TdGFydCA9IGNvbm4tPmluQ3Vyc29yOwogCi0JCQkJaWYgKHJl cyAhPSBTVEFUVVNfT0spCisJCQkJaWYgKHN0YXR1cyAhPSBTVEFUVVNfT0spCiAJCQkJewogCQkJ CQkvKgogCQkJCQkgKiBPQXV0aCBjb25uZWN0aW9ucyBtYXkgcGVyZm9ybSB0d28tc3RlcCBkaXNj b3ZlcnksIHdoZXJlCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0003-cleanup-rename-outer-variables-to-avoid-shadowing.patch" Content-Disposition: attachment; filename="v2-0003-cleanup-rename-outer-variables-to-avoid-shadowing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ock2 RnJvbSBiMmEwNDljMDM4OGNkYjhhNTI5MTE4MzEzODlmZGQ4NDI2NDc5YzA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDExOjUxOjAxICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwMy8x M10gY2xlYW51cDogcmVuYW1lIG91dGVyIHZhcmlhYmxlcyB0byBhdm9pZCBzaGFkb3dpbmcKIGlu bmVyIGxvY2FscwoKVGhpcyBjb21taXQgcmVzb2x2ZXMgc2V2ZXJhbCBjYXNlcyB3aGVyZSBhbiBv dXRlci1zY29wZSB2YXJpYWJsZSBzaGFyZWQKYSBuYW1lIHdpdGggYSBtb3JlIGZyZXF1ZW50bHkg dXNlZCBpbm5lciB2YXJpYWJsZS4gVGhlIGZpeGVzIHJlbmFtZSB0aGUKb3V0ZXIgdmFyaWFibGVz IHNvIGVhY2ggaWRlbnRpZmllciByZW1haW5zIGRpc3RpbmN0IHdpdGhpbiBpdHMgc2NvcGUuCgpB dXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRt UUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j ICAgICB8IDEwICsrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5j ICAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3MuYyB8 ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRkZXNjLmMgICAgIHwgIDYg KysrLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jICAgfCAgNiArKyst LS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMgICB8ICA0ICsrLS0KIDYg ZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCBjNzViNzEzMWVkNy4uMjk2ZGU3NjQ3YmMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC0yMTE5LDcgKzIxMTksNyBAQCBwZ19n ZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAlPYmplY3RBZGRyZXNzIGFkZHI7 CiAJVHVwbGVEZXNjCXR1cGRlc2M7CiAJRGF0dW0JCXZhbHVlc1szXTsKLQlib29sCQludWxsc1sz XTsKKwlib29sCQlpc251bGxzWzNdOwogCUhlYXBUdXBsZQlodHVwOwogCVJlbGF0aW9uCXJlbGF0 aW9uOwogCkBAIC0yMzc0LDExICsyMzc0LDExIEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19G VU5DVElPTl9BUkdTKQogCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oYWRkci5jbGFzc0lk KTsKIAl2YWx1ZXNbMV0gPSBPYmplY3RJZEdldERhdHVtKGFkZHIub2JqZWN0SWQpOwogCXZhbHVl c1syXSA9IEludDMyR2V0RGF0dW0oYWRkci5vYmplY3RTdWJJZCk7Ci0JbnVsbHNbMF0gPSBmYWxz ZTsKLQludWxsc1sxXSA9IGZhbHNlOwotCW51bGxzWzJdID0gZmFsc2U7CisJaXNudWxsc1swXSA9 IGZhbHNlOworCWlzbnVsbHNbMV0gPSBmYWxzZTsKKwlpc251bGxzWzJdID0gZmFsc2U7CiAKLQlo dHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCWh0dXAgPSBo ZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBpc251bGxzKTsKIAogCVBHX1JFVFVSTl9E QVRVTShIZWFwVHVwbGVHZXREYXR1bShodHVwKSk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3Ry YWludC5jCmluZGV4IDk5NDRlNGJkMmQxLi5iODZmOTNhZWI0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19jb25zdHJhaW50LmMKQEAgLTgxNCw3ICs4MTQsNyBAQCBBZGp1c3ROb3ROdWxsSW5oZXJpdGFu Y2UoT2lkIHJlbGlkLCBBdHRyTnVtYmVyIGF0dG51bSwKICAqICdpbmNsdWRlX25vaW5oJyBkZXRl cm1pbmVzIHdoZXRoZXIgdG8gaW5jbHVkZSBOTyBJTkhFUklUIGNvbnN0cmFpbnRzIG9yIG5vdC4K ICAqLwogTGlzdCAqCi1SZWxhdGlvbkdldE5vdE51bGxDb25zdHJhaW50cyhPaWQgcmVsaWQsIGJv b2wgY29va2VkLCBib29sIGluY2x1ZGVfbm9pbmgpCitSZWxhdGlvbkdldE5vdE51bGxDb25zdHJh aW50cyhPaWQgcmVsaWQsIGJvb2wgd2FudF9jb29rZWQsIGJvb2wgaW5jbHVkZV9ub2luaCkKIHsK IAlMaXN0CSAgICpub3RudWxscyA9IE5JTDsKIAlSZWxhdGlvbgljb25zdHJSZWw7CkBAIC04NDIs NyArODQyLDcgQEAgUmVsYXRpb25HZXROb3ROdWxsQ29uc3RyYWludHMoT2lkIHJlbGlkLCBib29s IGNvb2tlZCwgYm9vbCBpbmNsdWRlX25vaW5oKQogCiAJCWNvbG51bSA9IGV4dHJhY3ROb3ROdWxs Q29sdW1uKGh0dXApOwogCi0JCWlmIChjb29rZWQpCisJCWlmICh3YW50X2Nvb2tlZCkKIAkJewog CQkJQ29va2VkQ29uc3RyYWludCAqY29va2VkOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9l cXVpdmNsYXNzLmMKaW5kZXggNDQxZjEyZjZjNTAuLmQzNTBhYThhM2IwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BhdGgvZXF1aXZjbGFzcy5jCkBAIC03MzksNyArNzM5LDcgQEAgZ2V0X2VjbGFz c19mb3Jfc29ydF9leHByKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJIE9pZCBvcGNpbnR5cGUs CiAJCQkJCQkgT2lkIGNvbGxhdGlvbiwKIAkJCQkJCSBJbmRleCBzb3J0cmVmLAotCQkJCQkJIFJl bGlkcyByZWwsCisJCQkJCQkgUmVsaWRzIHJlbGlkcywKIAkJCQkJCSBib29sIGNyZWF0ZV9pdCkK IHsKIAlKb2luRG9tYWluICpqZG9tYWluOwpAQCAtNzgyLDE0ICs3ODIsMTQgQEAgZ2V0X2VjbGFz c19mb3Jfc29ydF9leHByKFBsYW5uZXJJbmZvICpyb290LAogCQlpZiAoIWVxdWFsKG9wZmFtaWxp ZXMsIGN1cl9lYy0+ZWNfb3BmYW1pbGllcykpCiAJCQljb250aW51ZTsKIAotCQlzZXR1cF9lY2xh c3NfbWVtYmVyX2l0ZXJhdG9yKCZpdCwgY3VyX2VjLCByZWwpOworCQlzZXR1cF9lY2xhc3NfbWVt YmVyX2l0ZXJhdG9yKCZpdCwgY3VyX2VjLCByZWxpZHMpOwogCQl3aGlsZSAoKGN1cl9lbSA9IGVj bGFzc19tZW1iZXJfaXRlcmF0b3JfbmV4dCgmaXQpKSAhPSBOVUxMKQogCQl7CiAJCQkvKgogCQkJ ICogSWdub3JlIGNoaWxkIG1lbWJlcnMgdW5sZXNzIHRoZXkgbWF0Y2ggdGhlIHJlcXVlc3QuCiAJ CQkgKi8KIAkJCWlmIChjdXJfZW0tPmVtX2lzX2NoaWxkICYmCi0JCQkJIWJtc19lcXVhbChjdXJf ZW0tPmVtX3JlbGlkcywgcmVsKSkKKwkJCQkhYm1zX2VxdWFsKGN1cl9lbS0+ZW1fcmVsaWRzLCBy ZWxpZHMpKQogCQkJCWNvbnRpbnVlOwogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFydGl0aW9uaW5nL3BhcnRkZXNjLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGRl c2MuYwppbmRleCAzMjhiNGQ0NTBlNC4uNmZkNDZjZjJjOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnRpdGlvbmluZy9wYXJ0ZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmlu Zy9wYXJ0ZGVzYy5jCkBAIC0xNDYsNyArMTQ2LDcgQEAgUmVsYXRpb25CdWlsZFBhcnRpdGlvbkRl c2MoUmVsYXRpb24gcmVsLCBib29sIG9taXRfZGV0YWNoZWQpCiAJaW50CQkJaSwKIAkJCQlucGFy dHM7CiAJYm9vbAkJcmV0cmllZCA9IGZhbHNlOwotCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlv bkdldFBhcnRpdGlvbktleShyZWwpOworCVBhcnRpdGlvbktleSBwYXJ0a2V5ID0gUmVsYXRpb25H ZXRQYXJ0aXRpb25LZXkocmVsKTsKIAlNZW1vcnlDb250ZXh0IG5ld19wZGN4dDsKIAlNZW1vcnlD b250ZXh0IG9sZGN4dDsKIAlpbnQJCSAgICptYXBwaW5nOwpAQCAtMzA4LDcgKzMwOCw3IEBAIHJl dHJ5OgogCSAqIFRoaXMgY291bGQgZmFpbCwgYnV0IHdlIGhhdmVuJ3QgZG9uZSBhbnkgZGFtYWdl IGlmIHNvLgogCSAqLwogCWlmIChucGFydHMgPiAwKQotCQlib3VuZGluZm8gPSBwYXJ0aXRpb25f Ym91bmRzX2NyZWF0ZShib3VuZHNwZWNzLCBucGFydHMsIGtleSwgJm1hcHBpbmcpOworCQlib3Vu ZGluZm8gPSBwYXJ0aXRpb25fYm91bmRzX2NyZWF0ZShib3VuZHNwZWNzLCBucGFydHMsIHBhcnRr ZXksICZtYXBwaW5nKTsKIAogCS8qCiAJICogTm93IGJ1aWxkIHRoZSBhY3R1YWwgcmVsY2FjaGUg cGFydGl0aW9uIGRlc2NyaXB0b3IsIGNvcHlpbmcgYWxsIHRoZQpAQCAtMzI5LDcgKzMyOSw3IEBA IHJldHJ5OgogCWlmIChucGFydHMgPiAwKQogCXsKIAkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG5ld19wZGN4dCk7Ci0JCXBhcnRkZXNjLT5ib3VuZGluZm8gPSBwYXJ0aXRpb25fYm91 bmRzX2NvcHkoYm91bmRpbmZvLCBrZXkpOworCQlwYXJ0ZGVzYy0+Ym91bmRpbmZvID0gcGFydGl0 aW9uX2JvdW5kc19jb3B5KGJvdW5kaW5mbywgcGFydGtleSk7CiAKIAkJLyogSW5pdGlhbGl6ZSBj YWNoaW5nIGZpZWxkcyBmb3Igc3BlZWRpbmcgdXAgRXhlY0ZpbmRQYXJ0aXRpb24gKi8KIAkJcGFy dGRlc2MtPmxhc3RfZm91bmRfZGF0dW1faW5kZXggPSAtMTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9y ZWFkX3N0cmVhbS5jCmluZGV4IDAzMWZkZTlmNGNiLi5lZGMyMjc5ZWFkNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJlYW0uYworKysgYi9zcmMvYmFja2VuZC9z dG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jCkBAIC03ODgsNyArNzg4LDcgQEAgcmVhZF9zdHJlYW1f YmVnaW5fc21ncl9yZWxhdGlvbihpbnQgZmxhZ3MsCiAgKiB0aGUgc3RyZWFtIGVhcmx5IGF0IGFu eSB0aW1lIGJ5IGNhbGxpbmcgcmVhZF9zdHJlYW1fZW5kKCkuCiAgKi8KIEJ1ZmZlcgotcmVhZF9z dHJlYW1fbmV4dF9idWZmZXIoUmVhZFN0cmVhbSAqc3RyZWFtLCB2b2lkICoqcGVyX2J1ZmZlcl9k YXRhKQorcmVhZF9zdHJlYW1fbmV4dF9idWZmZXIoUmVhZFN0cmVhbSAqc3RyZWFtLCB2b2lkICoq cHBlcl9idWZmZXJfZGF0YSkKIHsKIAlCdWZmZXIJCWJ1ZmZlcjsKIAlpbnQxNgkJb2xkZXN0X2J1 ZmZlcl9pbmRleDsKQEAgLTkwMyw4ICs5MDMsOCBAQCByZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihS ZWFkU3RyZWFtICpzdHJlYW0sIHZvaWQgKipwZXJfYnVmZmVyX2RhdGEpCiAJQXNzZXJ0KG9sZGVz dF9idWZmZXJfaW5kZXggPj0gMCAmJgogCQkgICBvbGRlc3RfYnVmZmVyX2luZGV4IDwgc3RyZWFt LT5xdWV1ZV9zaXplKTsKIAlidWZmZXIgPSBzdHJlYW0tPmJ1ZmZlcnNbb2xkZXN0X2J1ZmZlcl9p bmRleF07Ci0JaWYgKHBlcl9idWZmZXJfZGF0YSkKLQkJKnBlcl9idWZmZXJfZGF0YSA9IGdldF9w ZXJfYnVmZmVyX2RhdGEoc3RyZWFtLCBvbGRlc3RfYnVmZmVyX2luZGV4KTsKKwlpZiAocHBlcl9i dWZmZXJfZGF0YSkKKwkJKnBwZXJfYnVmZmVyX2RhdGEgPSBnZXRfcGVyX2J1ZmZlcl9kYXRhKHN0 cmVhbSwgb2xkZXN0X2J1ZmZlcl9pbmRleCk7CiAKIAlBc3NlcnQoQnVmZmVySXNWYWxpZChidWZm ZXIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV3YWwu YyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMKaW5kZXggNDZlNTUzZGNl NGIuLjc4NWJmN2IxMWRjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfcmVj ZWl2ZXdhbC5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMKQEAg LTI2NSw3ICsyNjUsNyBAQCBjbG9zZV9kZXN0aW5hdGlvbl9kaXIoRElSICpkZXN0X2RpciwgY2hh ciAqZGVzdF9mb2xkZXIpCiAgKiBJZiB0aGVyZSBhcmUgbm8gV0FMIGZpbGVzIGluIHRoZSBkaXJl Y3RvcnksIHJldHVybnMgSW52YWxpZFhMb2dSZWNQdHIuCiAgKi8KIHN0YXRpYyBYTG9nUmVjUHRy Ci1GaW5kU3RyZWFtaW5nU3RhcnQodWludDMyICp0bGkpCitGaW5kU3RyZWFtaW5nU3RhcnQodWlu dDMyICpwdGxpKQogewogCURJUgkJICAgKmRpcjsKIAlzdHJ1Y3QgZGlyZW50ICpkaXJlbnQ7CkBA IC00ODYsNyArNDg2LDcgQEAgRmluZFN0cmVhbWluZ1N0YXJ0KHVpbnQzMiAqdGxpKQogCiAJCVhM b2dTZWdOb09mZnNldFRvUmVjUHRyKGhpZ2hfc2Vnbm8sIDAsIFdhbFNlZ1N6LCBoaWdoX3B0cik7 CiAKLQkJKnRsaSA9IGhpZ2hfdGxpOworCQkqcHRsaSA9IGhpZ2hfdGxpOwogCQlyZXR1cm4gaGln aF9wdHI7CiAJfQogCWVsc2UKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0004-cleanup-fix-macro-induced-variable-shadowing-in-i.patch" Content-Disposition: attachment; filename="v2-0004-cleanup-fix-macro-induced-variable-shadowing-in-i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocm3 RnJvbSA0M2VmMjJhMGZmNzU5YzllOTNhMGVkZDFlMjFkOWZjN2U1ZmFiMjlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDEyOjA4OjAzICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwNC8x M10gY2xlYW51cDogZml4IG1hY3JvLWluZHVjZWQgdmFyaWFibGUgc2hhZG93aW5nIGluCiBpbnZh bC5jCgpUaGlzIGNvbW1pdCByZXNvbHZlcyBhIHNoYWRvd2luZyBpc3N1ZSBpbiBpbnZhbC5jIHdo ZXJlIHZhcmlhYmxlcyBkZWZpbmVkCmluc2lkZSB0aGUgUHJvY2Vzc01lc3NhZ2VTdWJHcm91cCBh bmQgUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpIG1hY3Jvcwpjb25mbGljdGVkIHdpdGggYW4g ZXhpc3RpbmcgbG9jYWwgbmFtZS4gVGhlIGZpeCByZW5hbWVzIHRoZSBtYWNyby1zY29wZWQKdmFy aWFibGUgc28gaXQgbm8gbG9uZ2VyIHNoYWRvd3MgdGhlIGxvY2FsIHZhcmlhYmxlIGF0IHRoZSBj YWxsIHNpdGUuCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJE VGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2ludmFsLmMgfCA0NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9pbnZhbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv aW52YWwuYwppbmRleCAwNmY3MzZjYWI0NS4uMzBiZjc5ZmIxYzEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2ludmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv aW52YWwuYwpAQCAtMzg3LDcgKzM4Nyw3IEBAIEFwcGVuZEludmFsaWRhdGlvbk1lc3NhZ2VTdWJH cm91cChJbnZhbGlkYXRpb25Nc2dzR3JvdXAgKmRlc3QsCiAJCWludAkJX2VuZG1zZyA9IChncm91 cCktPm5leHRtc2dbc3ViZ3JvdXBdOyBcCiAJCWZvciAoOyBfbXNnaW5kZXggPCBfZW5kbXNnOyBf bXNnaW5kZXgrKykgXAogCQl7IFwKLQkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZyA9 IFwKKwkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKl9tc2cgPSBcCiAJCQkJJkludmFsTWVz c2FnZUFycmF5c1tzdWJncm91cF0ubXNnc1tfbXNnaW5kZXhdOyBcCiAJCQljb2RlRnJhZ21lbnQ7 IFwKIAkJfSBcCkBAIC00MDMsNyArNDAzLDcgQEAgQXBwZW5kSW52YWxpZGF0aW9uTWVzc2FnZVN1 Ykdyb3VwKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZGVzdCwKIAlkbyB7IFwKIAkJaW50CQluID0g TnVtTWVzc2FnZXNJblN1Ykdyb3VwKGdyb3VwLCBzdWJncm91cCk7IFwKIAkJaWYgKG4gPiAwKSB7 IFwKLQkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZ3MgPSBcCisJCQlTaGFyZWRJbnZh bGlkYXRpb25NZXNzYWdlICpfbXNncyA9IFwKIAkJCQkmSW52YWxNZXNzYWdlQXJyYXlzW3N1Ymdy b3VwXS5tc2dzWyhncm91cCktPmZpcnN0bXNnW3N1Ymdyb3VwXV07IFwKIAkJCWNvZGVGcmFnbWVu dDsgXAogCQl9IFwKQEAgLTQ3OSw5ICs0NzksOSBAQCBBZGRSZWxjYWNoZUludmFsaWRhdGlvbk1l c3NhZ2UoSW52YWxpZGF0aW9uTXNnc0dyb3VwICpncm91cCwKIAkgKiBkb24ndCBuZWVkIHRvIGFk ZCBpbmRpdmlkdWFsIG9uZXMgd2hlbiBpdCBpcyBwcmVzZW50LgogCSAqLwogCVByb2Nlc3NNZXNz YWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywKLQkJCQkJCSAgIGlmIChtc2ctPnJjLmlk ID09IFNIQVJFRElOVkFMUkVMQ0FDSEVfSUQgJiYKLQkJCQkJCQkgICAobXNnLT5yYy5yZWxJZCA9 PSByZWxJZCB8fAotCQkJCQkJCQltc2ctPnJjLnJlbElkID09IEludmFsaWRPaWQpKQorCQkJCQkJ ICAgaWYgKF9tc2ctPnJjLmlkID09IFNIQVJFRElOVkFMUkVMQ0FDSEVfSUQgJiYKKwkJCQkJCQkg ICAoX21zZy0+cmMucmVsSWQgPT0gcmVsSWQgfHwKKwkJCQkJCQkJX21zZy0+cmMucmVsSWQgPT0g SW52YWxpZE9pZCkpCiAJCQkJCQkgICByZXR1cm4pOwogCiAJLyogT0ssIGFkZCB0aGUgaXRlbSAq LwpAQCAtNTA5LDkgKzUwOSw5IEBAIEFkZFJlbHN5bmNJbnZhbGlkYXRpb25NZXNzYWdlKEludmFs aWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAKIAkvKiBEb24ndCBhZGQgYSBkdXBsaWNhdGUgaXRl bS4gKi8KIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJ CQkgICBpZiAobXNnLT5yYy5pZCA9PSBTSEFSRURJTlZBTFJFTFNZTkNfSUQgJiYKLQkJCQkJCQkg ICAobXNnLT5yYy5yZWxJZCA9PSByZWxJZCB8fAotCQkJCQkJCQltc2ctPnJjLnJlbElkID09IElu dmFsaWRPaWQpKQorCQkJCQkJICAgaWYgKF9tc2ctPnJjLmlkID09IFNIQVJFRElOVkFMUkVMU1lO Q19JRCAmJgorCQkJCQkJCSAgIChfbXNnLT5yYy5yZWxJZCA9PSByZWxJZCB8fAorCQkJCQkJCQlf bXNnLT5yYy5yZWxJZCA9PSBJbnZhbGlkT2lkKSkKIAkJCQkJCSAgIHJldHVybik7CiAKIAkvKiBP SywgYWRkIHRoZSBpdGVtICovCkBAIC01MzgsOCArNTM4LDggQEAgQWRkU25hcHNob3RJbnZhbGlk YXRpb25NZXNzYWdlKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAJLyogRG9uJ3QgYWRk IGEgZHVwbGljYXRlIGl0ZW0gKi8KIAkvKiBXZSBhc3N1bWUgZGJJZCBuZWVkIG5vdCBiZSBjaGVj a2VkIGJlY2F1c2UgaXQgd2lsbCBuZXZlciBjaGFuZ2UgKi8KIAlQcm9jZXNzTWVzc2FnZVN1Ykdy b3VwKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJCQkgICBpZiAobXNnLT5zbi5pZCA9PSBTSEFS RURJTlZBTFNOQVBTSE9UX0lEICYmCi0JCQkJCQkJICAgbXNnLT5zbi5yZWxJZCA9PSByZWxJZCkK KwkJCQkJCSAgIGlmIChfbXNnLT5zbi5pZCA9PSBTSEFSRURJTlZBTFNOQVBTSE9UX0lEICYmCisJ CQkJCQkJICAgX21zZy0+c24ucmVsSWQgPT0gcmVsSWQpCiAJCQkJCQkgICByZXR1cm4pOwogCiAJ LyogT0ssIGFkZCB0aGUgaXRlbSAqLwpAQCAtNTc0LDggKzU3NCw4IEBAIHN0YXRpYyB2b2lkCiBQ cm9jZXNzSW52YWxpZGF0aW9uTWVzc2FnZXMoSW52YWxpZGF0aW9uTXNnc0dyb3VwICpncm91cCwK IAkJCQkJCQl2b2lkICgqZnVuYykgKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZykpCiB7 Ci0JUHJvY2Vzc01lc3NhZ2VTdWJHcm91cChncm91cCwgQ2F0Q2FjaGVNc2dzLCBmdW5jKG1zZykp OwotCVByb2Nlc3NNZXNzYWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywgZnVuYyhtc2cp KTsKKwlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwKGdyb3VwLCBDYXRDYWNoZU1zZ3MsIGZ1bmMoX21z ZykpOworCVByb2Nlc3NNZXNzYWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywgZnVuYyhf bXNnKSk7CiB9CiAKIC8qCkBAIC01ODYsOCArNTg2LDggQEAgc3RhdGljIHZvaWQKIFByb2Nlc3NJ bnZhbGlkYXRpb25NZXNzYWdlc011bHRpKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAJ CQkJCQkJCSB2b2lkICgqZnVuYykgKGNvbnN0IFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1z Z3MsIGludCBuKSkKIHsKLQlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoZ3JvdXAsIENhdENh Y2hlTXNncywgZnVuYyhtc2dzLCBuKSk7Ci0JUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKGdy b3VwLCBSZWxDYWNoZU1zZ3MsIGZ1bmMobXNncywgbikpOworCVByb2Nlc3NNZXNzYWdlU3ViR3Jv dXBNdWx0aShncm91cCwgQ2F0Q2FjaGVNc2dzLCBmdW5jKF9tc2dzLCBuKSk7CisJUHJvY2Vzc01l c3NhZ2VTdWJHcm91cE11bHRpKGdyb3VwLCBSZWxDYWNoZU1zZ3MsIGZ1bmMoX21zZ3MsIG4pKTsK IH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA1MywyNSArMTA1MywyNSBAQCB4YWN0R2V0Q29tbWl0dGVk SW52YWxpZGF0aW9uTWVzc2FnZXMoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSAqKm1zZ3MsCiAJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZ0cmFuc0ludmFsSW5mby0+UHJpb3JDbWRJbnZh bGlkTXNncywKIAkJCQkJCQkJQ2F0Q2FjaGVNc2dzLAogCQkJCQkJCQkobWVtY3B5KG1zZ2FycmF5 ICsgbm1zZ3MsCi0JCQkJCQkJCQkJbXNncywKKwkJCQkJCQkJCQlfbXNncywKIAkJCQkJCQkJCQlu ICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UpKSwKIAkJCQkJCQkJIG5tc2dzICs9 IG4pKTsKIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoJnRyYW5zSW52YWxJbmZvLT5paS5D dXJyZW50Q21kSW52YWxpZE1zZ3MsCiAJCQkJCQkJCUNhdENhY2hlTXNncywKIAkJCQkJCQkJKG1l bWNweShtc2dhcnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3Ms CiAJCQkJCQkJCQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJ CQkJCSBubXNncyArPSBuKSk7CiAJUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZ0cmFuc0lu dmFsSW5mby0+UHJpb3JDbWRJbnZhbGlkTXNncywKIAkJCQkJCQkJUmVsQ2FjaGVNc2dzLAogCQkJ CQkJCQkobWVtY3B5KG1zZ2FycmF5ICsgbm1zZ3MsCi0JCQkJCQkJCQkJbXNncywKKwkJCQkJCQkJ CQlfbXNncywKIAkJCQkJCQkJCQluICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2Up KSwKIAkJCQkJCQkJIG5tc2dzICs9IG4pKTsKIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGko JnRyYW5zSW52YWxJbmZvLT5paS5DdXJyZW50Q21kSW52YWxpZE1zZ3MsCiAJCQkJCQkJCVJlbENh Y2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dhcnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1z Z3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJCQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlk YXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNncyArPSBuKSk7CiAJQXNzZXJ0KG5tc2dzID09 IG51bW1zZ3MpOwpAQCAtMTEwOSwxMyArMTEwOSwxMyBAQCBpbnBsYWNlR2V0SW52YWxpZGF0aW9u TWVzc2FnZXMoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSAqKm1zZ3MsCiAJUHJvY2Vzc01lc3Nh Z2VTdWJHcm91cE11bHRpKCZpbnBsYWNlSW52YWxJbmZvLT5DdXJyZW50Q21kSW52YWxpZE1zZ3Ms CiAJCQkJCQkJCUNhdENhY2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dhcnJheSArIG5tc2dz LAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJCQkJbiAqIHNpemVv ZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNncyArPSBuKSk7CiAJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZpbnBsYWNlSW52YWxJbmZvLT5DdXJyZW50Q21k SW52YWxpZE1zZ3MsCiAJCQkJCQkJCVJlbENhY2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dh cnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJ CQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNn cyArPSBuKSk7CiAJQXNzZXJ0KG5tc2dzID09IG51bW1zZ3MpOwpAQCAtMTk1NSwxMCArMTk1NSwx MCBAQCBMb2dMb2dpY2FsSW52YWxpZGF0aW9ucyh2b2lkKQogCQlYTG9nQmVnaW5JbnNlcnQoKTsK IAkJWExvZ1JlZ2lzdGVyRGF0YSgmeGxyZWMsIE1pblNpemVPZlhhY3RJbnZhbHMpOwogCQlQcm9j ZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoZ3JvdXAsIENhdENhY2hlTXNncywKLQkJCQkJCQkJCVhM b2dSZWdpc3RlckRhdGEobXNncywKKwkJCQkJCQkJCVhMb2dSZWdpc3RlckRhdGEoX21zZ3MsCiAJ CQkJCQkJCQkJCQkJIG4gKiBzaXplb2YoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSkpKTsKIAkJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJCQkJ CQlYTG9nUmVnaXN0ZXJEYXRhKG1zZ3MsCisJCQkJCQkJCQlYTG9nUmVnaXN0ZXJEYXRhKF9tc2dz LAogCQkJCQkJCQkJCQkJCSBuICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UpKSk7 CiAJCVhMb2dJbnNlcnQoUk1fWEFDVF9JRCwgWExPR19YQUNUX0lOVkFMSURBVElPTlMpOwogCX0K LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0009-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v2-0009-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocq8 RnJvbSBhY2RhZGQ0N2M5ZjhhNmViMmM0MjMwY2VkMGM0MjhkY2EwZWVlMTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE1OjA1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwOS8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGFj cm9zcyBzZXZlcmFsIGZpbGVzCgpUaGlzIGNvbW1pdCBmaXhlcyBtdWx0aXBsZSBpbnN0YW5jZXMg d2hlcmUgbG9jYWwgdmFyaWFibGVzIHVzZWQgdGhlIHNhbWUKbmFtZXMgYXMgZ2xvYmFsIGlkZW50 aWZpZXJzIGluIHZhcmlvdXMgbW9kdWxlcy4gVGhlIGFmZmVjdGVkIGxvY2FscyBhcmUKcmVuYW1l ZCBzbyB0aGV5IGFyZSBubyBsb25nZXIgc2hhZG93ZWQgYnkgdGhlIGdsb2JhbHMgYW5kIHJlbWFp biBjbGVhcgp3aXRoaW4gdGhlaXIgcmVzcGVjdGl2ZSBzY29wZXMuCgpBdXRob3I6IENoYW8gTGkg PGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJr UTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNv bQotLS0KIHNyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21tb24uYyAgICAgfCAxMiArKysr LS0tLS0KIHNyYy9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuYyAgICAgICAgICAgfCAgOCArKyst LS0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9kZXNjcmlwdG9yLmMgfCAzNCArKysrKysr KysrKystLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNv bW1vbi5jIGIvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNvbW1vbi5jCmluZGV4IGU4Yjgz N2QxZmE3Li44YjY3NDQzNWJkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2Vj dXJlLWNvbW1vbi5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21tb24uYwpA QCAtMTExLDE3ICsxMTEsMTcgQEAgZXJyb3I6CiAgKiBDaGVjayBwZXJtaXNzaW9ucyBmb3IgU1NM IGtleSBmaWxlcy4KICAqLwogYm9vbAotY2hlY2tfc3NsX2tleV9maWxlX3Blcm1pc3Npb25zKGNv bnN0IGNoYXIgKnNzbF9rZXlfZmlsZSwgYm9vbCBpc1NlcnZlclN0YXJ0KQorY2hlY2tfc3NsX2tl eV9maWxlX3Blcm1pc3Npb25zKGNvbnN0IGNoYXIgKnNzbEtleUZpbGUsIGJvb2wgaXNTZXJ2ZXJT dGFydCkKIHsKIAlpbnQJCQlsb2dsZXZlbCA9IGlzU2VydmVyU3RhcnQgPyBGQVRBTCA6IExPRzsK IAlzdHJ1Y3Qgc3RhdCBidWY7CiAKLQlpZiAoc3RhdChzc2xfa2V5X2ZpbGUsICZidWYpICE9IDAp CisJaWYgKHN0YXQoc3NsS2V5RmlsZSwgJmJ1ZikgIT0gMCkKIAl7CiAJCWVyZXBvcnQobG9nbGV2 ZWwsCiAJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCiAJCQkJIGVycm1zZygiY291bGQg bm90IGFjY2VzcyBwcml2YXRlIGtleSBmaWxlIFwiJXNcIjogJW0iLAotCQkJCQkJc3NsX2tleV9m aWxlKSkpOworCQkJCQkJc3NsS2V5RmlsZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAt MTMxLDcgKzEzMSw3IEBAIGNoZWNrX3NzbF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25zdCBjaGFy ICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNTZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2dsZXZlbCwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJw cml2YXRlIGtleSBmaWxlIFwiJXNcIiBpcyBub3QgYSByZWd1bGFyIGZpbGUiLAotCQkJCQkJc3Ns X2tleV9maWxlKSkpOworCQkJCQkJc3NsS2V5RmlsZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0K IApAQCAtMTU3LDcgKzE1Nyw3IEBAIGNoZWNrX3NzbF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25z dCBjaGFyICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNTZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2ds ZXZlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJy bXNnKCJwcml2YXRlIGtleSBmaWxlIFwiJXNcIiBtdXN0IGJlIG93bmVkIGJ5IHRoZSBkYXRhYmFz ZSB1c2VyIG9yIHJvb3QiLAotCQkJCQkJc3NsX2tleV9maWxlKSkpOworCQkJCQkJc3NsS2V5Rmls ZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAtMTY3LDcgKzE2Nyw3IEBAIGNoZWNrX3Nz bF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25zdCBjaGFyICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNT ZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2dsZXZlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NP TkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJwcml2YXRlIGtleSBmaWxlIFwiJXNcIiBo YXMgZ3JvdXAgb3Igd29ybGQgYWNjZXNzIiwKLQkJCQkJCXNzbF9rZXlfZmlsZSksCisJCQkJCQlz c2xLZXlGaWxlKSwKIAkJCQkgZXJyZGV0YWlsKCJGaWxlIG11c3QgaGF2ZSBwZXJtaXNzaW9ucyB1 PXJ3ICgwNjAwKSBvciBsZXNzIGlmIG93bmVkIGJ5IHRoZSBkYXRhYmFzZSB1c2VyLCBvciBwZXJt aXNzaW9ucyB1PXJ3LGc9ciAoMDY0MCkgb3IgbGVzcyBpZiBvd25lZCBieSByb290LiIpKSk7CiAJ CXJldHVybiBmYWxzZTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0 aWxzLmMgYi9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMKaW5kZXggZmEzNzVkYzkxMjku Ljc4NDY0ZTgyMzdmIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMK KysrIGIvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jCkBAIC00OSwxMSArNDksMTEgQEAK ICAqIGZpbGUgZGF0YSBpcyBjb3JyZWN0LgogICovCiBDb250cm9sRmlsZURhdGEgKgotZ2V0X2Nv bnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIsIGJvb2wgKmNyY19va19wKQorZ2V0X2NvbnRy b2xmaWxlKGNvbnN0IGNoYXIgKmRhdGFfZGlyLCBib29sICpjcmNfb2tfcCkKIHsKIAljaGFyCQlD b250cm9sRmlsZVBhdGhbTUFYUEdQQVRIXTsKIAotCXNucHJpbnRmKENvbnRyb2xGaWxlUGF0aCwg TUFYUEdQQVRILCAiJXMvJXMiLCBEYXRhRGlyLCBYTE9HX0NPTlRST0xfRklMRSk7CisJc25wcmlu dGYoQ29udHJvbEZpbGVQYXRoLCBNQVhQR1BBVEgsICIlcy8lcyIsIGRhdGFfZGlyLCBYTE9HX0NP TlRST0xfRklMRSk7CiAKIAlyZXR1cm4gZ2V0X2NvbnRyb2xmaWxlX2J5X2V4YWN0X3BhdGgoQ29u dHJvbEZpbGVQYXRoLCBjcmNfb2tfcCk7CiB9CkBAIC0xODYsNyArMTg2LDcgQEAgcmV0cnk6CiAg KiByb3V0aW5lIGluIHRoZSBiYWNrZW5kLgogICovCiB2b2lkCi11cGRhdGVfY29udHJvbGZpbGUo Y29uc3QgY2hhciAqRGF0YURpciwKK3VwZGF0ZV9jb250cm9sZmlsZShjb25zdCBjaGFyICpkYXRh X2RpciwKIAkJCQkgICBDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlLCBib29sIGRvX3N5bmMp CiB7CiAJaW50CQkJZmQ7CkBAIC0yMTEsNyArMjExLDcgQEAgdXBkYXRlX2NvbnRyb2xmaWxlKGNv bnN0IGNoYXIgKkRhdGFEaXIsCiAJbWVtc2V0KGJ1ZmZlciwgMCwgUEdfQ09OVFJPTF9GSUxFX1NJ WkUpOwogCW1lbWNweShidWZmZXIsIENvbnRyb2xGaWxlLCBzaXplb2YoQ29udHJvbEZpbGVEYXRh KSk7CiAKLQlzbnByaW50ZihDb250cm9sRmlsZVBhdGgsIHNpemVvZihDb250cm9sRmlsZVBhdGgp LCAiJXMvJXMiLCBEYXRhRGlyLCBYTE9HX0NPTlRST0xfRklMRSk7CisJc25wcmludGYoQ29udHJv bEZpbGVQYXRoLCBzaXplb2YoQ29udHJvbEZpbGVQYXRoKSwgIiVzLyVzIiwgZGF0YV9kaXIsIFhM T0dfQ09OVFJPTF9GSUxFKTsKIAogI2lmbmRlZiBGUk9OVEVORAogCmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZGVzY3JpcHRvci5jIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy9wcmVwcm9jL2Rlc2NyaXB0b3IuYwppbmRleCBlOGM3MDE2YmRjMS4uOWRhYzc2MWUzOTMgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9kZXNjcmlwdG9yLmMKKysrIGIv c3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2Rlc2NyaXB0b3IuYwpAQCAtNzIsNyArNzIsNyBA QCBFQ1BHbnVtZXJpY19sdmFsdWUoY2hhciAqbmFtZSkKIHN0YXRpYyBzdHJ1Y3QgZGVzY3JpcHRv ciAqZGVzY3JpcHRvcnM7CiAKIHZvaWQKLWFkZF9kZXNjcmlwdG9yKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKmNvbm5lY3Rpb24pCithZGRfZGVzY3JpcHRvcihjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpjb25uX3N0cikKIHsKIAlzdHJ1Y3QgZGVzY3JpcHRvciAqbmV3OwogCkBA IC04MywxNSArODMsMTUgQEAgYWRkX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY29ubmVjdGlvbikKIAogCW5ldy0+bmV4dCA9IGRlc2NyaXB0b3JzOwogCW5ldy0+bmFt ZSA9IG1tX3N0cmR1cChuYW1lKTsKLQlpZiAoY29ubmVjdGlvbikKLQkJbmV3LT5jb25uZWN0aW9u ID0gbW1fc3RyZHVwKGNvbm5lY3Rpb24pOworCWlmIChjb25uX3N0cikKKwkJbmV3LT5jb25uZWN0 aW9uID0gbW1fc3RyZHVwKGNvbm5fc3RyKTsKIAllbHNlCiAJCW5ldy0+Y29ubmVjdGlvbiA9IE5V TEw7CiAJZGVzY3JpcHRvcnMgPSBuZXc7CiB9CiAKIHZvaWQKLWRyb3BfZGVzY3JpcHRvcihjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uKQorZHJvcF9kZXNjcmlwdG9yKGNv bnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5fc3RyKQogewogCXN0cnVjdCBkZXNjcmlw dG9yICppOwogCXN0cnVjdCBkZXNjcmlwdG9yICoqbGFzdHB0ciA9ICZkZXNjcmlwdG9yczsKQEAg LTEwMyw5ICsxMDMsOSBAQCBkcm9wX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY29ubmVjdGlvbikKIAl7CiAJCWlmIChzdHJjbXAobmFtZSwgaS0+bmFtZSkgPT0gMCkK IAkJewotCQkJaWYgKCghY29ubmVjdGlvbiAmJiAhaS0+Y29ubmVjdGlvbikKLQkJCQl8fCAoY29u bmVjdGlvbiAmJiBpLT5jb25uZWN0aW9uCi0JCQkJCSYmIHN0cmNtcChjb25uZWN0aW9uLCBpLT5j b25uZWN0aW9uKSA9PSAwKSkKKwkJCWlmICgoIWNvbm5fc3RyICYmICFpLT5jb25uZWN0aW9uKQor CQkJCXx8IChjb25uX3N0ciAmJiBpLT5jb25uZWN0aW9uCisJCQkJCSYmIHN0cmNtcChjb25uX3N0 ciwgaS0+Y29ubmVjdGlvbikgPT0gMCkpCiAJCQl7CiAJCQkJKmxhc3RwdHIgPSBpLT5uZXh0Owog CQkJCWZyZWUoaS0+Y29ubmVjdGlvbik7CkBAIC0xMTUsMTQgKzExNSwxNCBAQCBkcm9wX2Rlc2Ny aXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlvbikKIAkJCX0KIAkJ fQogCX0KLQlpZiAoY29ubmVjdGlvbikKLQkJbW1lcnJvcihQQVJTRV9FUlJPUiwgRVRfV0FSTklO RywgImRlc2NyaXB0b3IgJXMgYm91bmQgdG8gY29ubmVjdGlvbiAlcyBkb2VzIG5vdCBleGlzdCIs IG5hbWUsIGNvbm5lY3Rpb24pOworCWlmIChjb25uX3N0cikKKwkJbW1lcnJvcihQQVJTRV9FUlJP UiwgRVRfV0FSTklORywgImRlc2NyaXB0b3IgJXMgYm91bmQgdG8gY29ubmVjdGlvbiAlcyBkb2Vz IG5vdCBleGlzdCIsIG5hbWUsIGNvbm5fc3RyKTsKIAllbHNlCiAJCW1tZXJyb3IoUEFSU0VfRVJS T1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9yICVzIGJvdW5kIHRvIHRoZSBkZWZhdWx0IGNvbm5l Y3Rpb24gZG9lcyBub3QgZXhpc3QiLCBuYW1lKTsKIH0KIAogc3RydWN0IGRlc2NyaXB0b3IgKgot bG9va3VwX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlv bikKK2xvb2t1cF9kZXNjcmlwdG9yKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5f c3RyKQogewogCXN0cnVjdCBkZXNjcmlwdG9yICppOwogCkBAIC0xMzMsMjAgKzEzMywyMCBAQCBs b29rdXBfZGVzY3JpcHRvcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9u KQogCXsKIAkJaWYgKHN0cmNtcChuYW1lLCBpLT5uYW1lKSA9PSAwKQogCQl7Ci0JCQlpZiAoKCFj b25uZWN0aW9uICYmICFpLT5jb25uZWN0aW9uKQotCQkJCXx8IChjb25uZWN0aW9uICYmIGktPmNv bm5lY3Rpb24KLQkJCQkJJiYgc3RyY21wKGNvbm5lY3Rpb24sIGktPmNvbm5lY3Rpb24pID09IDAp KQorCQkJaWYgKCghY29ubl9zdHIgJiYgIWktPmNvbm5lY3Rpb24pCisJCQkJfHwgKGNvbm5fc3Ry ICYmIGktPmNvbm5lY3Rpb24KKwkJCQkJJiYgc3RyY21wKGNvbm5fc3RyLCBpLT5jb25uZWN0aW9u KSA9PSAwKSkKIAkJCQlyZXR1cm4gaTsKLQkJCWlmIChjb25uZWN0aW9uICYmICFpLT5jb25uZWN0 aW9uKQorCQkJaWYgKGNvbm5fc3RyICYmICFpLT5jb25uZWN0aW9uKQogCQkJewogCQkJCS8qIG92 ZXJ3cml0ZSBkZXNjcmlwdG9yJ3MgY29ubmVjdGlvbiAqLwotCQkJCWktPmNvbm5lY3Rpb24gPSBt bV9zdHJkdXAoY29ubmVjdGlvbik7CisJCQkJaS0+Y29ubmVjdGlvbiA9IG1tX3N0cmR1cChjb25u X3N0cik7CiAJCQkJcmV0dXJuIGk7CiAJCQl9CiAJCX0KIAl9Ci0JaWYgKGNvbm5lY3Rpb24pCi0J CW1tZXJyb3IoUEFSU0VfRVJST1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9yICVzIGJvdW5kIHRv IGNvbm5lY3Rpb24gJXMgZG9lcyBub3QgZXhpc3QiLCBuYW1lLCBjb25uZWN0aW9uKTsKKwlpZiAo Y29ubl9zdHIpCisJCW1tZXJyb3IoUEFSU0VfRVJST1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9y ICVzIGJvdW5kIHRvIGNvbm5lY3Rpb24gJXMgZG9lcyBub3QgZXhpc3QiLCBuYW1lLCBjb25uX3N0 cik7CiAJZWxzZQogCQltbWVycm9yKFBBUlNFX0VSUk9SLCBFVF9XQVJOSU5HLCAiZGVzY3JpcHRv ciAlcyBib3VuZCB0byB0aGUgZGVmYXVsdCBjb25uZWN0aW9uIGRvZXMgbm90IGV4aXN0IiwgbmFt ZSk7CiAJcmV0dXJuIE5VTEw7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0006-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v2-0006-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocn5 RnJvbSAxYjk3YzFjYjNmYjdjMDUxODg0ZDMyMjg3ZGEzZGQ5NzViOWIyNTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjAxOjMxICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwNi8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIHhsb2dyZWNvdmVyeS5jCgpUaGlzIGNvbW1pdCBmaXhlcyBzZXZlcmFs IGNhc2VzIGluIHhsb2dyZWNvdmVyeS5jIHdoZXJlIGxvY2FsIHZhcmlhYmxlcwp1c2VkIG5hbWVz IHRoYXQgY29uZmxpY3RlZCB3aXRoIHN0YXRpYyB2YXJpYWJsZXMgZGVmaW5lZCBhdCBmaWxlIHNj b3BlLgpUaGUgbG9jYWwgaWRlbnRpZmllcnMgYXJlIHJlbmFtZWQgc28gdGhleSBhcmUgbm8gbG9u Z2VyIHNoYWRvd2VkIGJ5IHRoZQpzdGF0aWMgb25lcy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhp Z2hnby5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01h ajh0SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgfCAxMDAgKysrKysrKysr KystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDUwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNv dmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXgg MjFiOGYxNzliYTAuLjkwM2UyYWZlNWVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9ncmVjb3ZlcnkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9ncmVjb3ZlcnkuYwpAQCAtMTIwOCw3ICsxMjA4LDcgQEAgdmFsaWRhdGVSZWNvdmVyeVBhcmFt ZXRlcnModm9pZCkKICAqIFJldHVybnMgdHJ1ZSBpZiBhIGJhY2t1cF9sYWJlbCB3YXMgZm91bmQg KGFuZCBmaWxscyB0aGUgY2hlY2twb2ludAogICogbG9jYXRpb24gYW5kIFRMSSBpbnRvICpjaGVj a1BvaW50TG9jIGFuZCAqYmFja3VwTGFiZWxUTEksIHJlc3BlY3RpdmVseSk7CiAgKiByZXR1cm5z IGZhbHNlIGlmIG5vdC4gSWYgdGhpcyBiYWNrdXBfbGFiZWwgY2FtZSBmcm9tIGEgc3RyZWFtZWQg YmFja3VwLAotICogKmJhY2t1cEVuZFJlcXVpcmVkIGlzIHNldCB0byB0cnVlLiBJZiB0aGlzIGJh Y2t1cF9sYWJlbCB3YXMgY3JlYXRlZCBkdXJpbmcKKyAqICpiYWNrdXBFbmROZWVkZWQgaXMgc2V0 IHRvIHRydWUuIElmIHRoaXMgYmFja3VwX2xhYmVsIHdhcyBjcmVhdGVkIGR1cmluZwogICogcmVj b3ZlcnksICpiYWNrdXBGcm9tU3RhbmRieSBpcyBzZXQgdG8gdHJ1ZS4KICAqCiAgKiBBbHNvIHNl dHMgdGhlIGdsb2JhbCB2YXJpYWJsZXMgUmVkb1N0YXJ0TFNOIGFuZCBSZWRvU3RhcnRUTEkgd2l0 aCB0aGUgTFNOCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCB2YWxpZGF0ZVJlY292ZXJ5UGFyYW1ldGVy cyh2b2lkKQogICovCiBzdGF0aWMgYm9vbAogcmVhZF9iYWNrdXBfbGFiZWwoWExvZ1JlY1B0ciAq Y2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxUTEksCi0JCQkJICBib29sICpi YWNrdXBFbmRSZXF1aXJlZCwgYm9vbCAqYmFja3VwRnJvbVN0YW5kYnkpCisJCQkJICBib29sICpi YWNrdXBFbmROZWVkZWQsIGJvb2wgKmJhY2t1cEZyb21TdGFuZGJ5KQogewogCWNoYXIJCXN0YXJ0 eGxvZ2ZpbGVuYW1lW01BWEZOQU1FTEVOXTsKIAlUaW1lTGluZUlECXRsaV9mcm9tX3dhbHNlZywK QEAgLTEyMzMsNyArMTIzMyw3IEBAIHJlYWRfYmFja3VwX2xhYmVsKFhMb2dSZWNQdHIgKmNoZWNr UG9pbnRMb2MsIFRpbWVMaW5lSUQgKmJhY2t1cExhYmVsVExJLAogCS8qIHN1cHByZXNzIHBvc3Np YmxlIHVuaW5pdGlhbGl6ZWQtdmFyaWFibGUgd2FybmluZ3MgKi8KIAkqY2hlY2tQb2ludExvYyA9 IEludmFsaWRYTG9nUmVjUHRyOwogCSpiYWNrdXBMYWJlbFRMSSA9IDA7Ci0JKmJhY2t1cEVuZFJl cXVpcmVkID0gZmFsc2U7CisJKmJhY2t1cEVuZE5lZWRlZCA9IGZhbHNlOwogCSpiYWNrdXBGcm9t U3RhbmRieSA9IGZhbHNlOwogCiAJLyoKQEAgLTEyNzcsMTMgKzEyNzcsMTMgQEAgcmVhZF9iYWNr dXBfbGFiZWwoWExvZ1JlY1B0ciAqY2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFi ZWxUTEksCiAJICogb3RoZXIgb3B0aW9uIHRvZGF5IGJlaW5nIGZyb20gcGdfcmV3aW5kKS4gIElm IHRoaXMgd2FzIGEgc3RyZWFtZWQKIAkgKiBiYWNrdXAgdGhlbiB3ZSBrbm93IHRoYXQgd2UgbmVl ZCB0byBwbGF5IHRocm91Z2ggdW50aWwgd2UgZ2V0IHRvIHRoZQogCSAqIGVuZCBvZiB0aGUgV0FM IHdoaWNoIHdhcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBiYWNrdXAgKGF0IHdoaWNoIHBvaW50IHdl Ci0JICogd2lsbCBoYXZlIHJlYWNoZWQgY29uc2lzdGVuY3kgYW5kIGJhY2t1cEVuZFJlcXVpcmVk IHdpbGwgYmUgcmVzZXQgdG8gYmUKKwkgKiB3aWxsIGhhdmUgcmVhY2hlZCBjb25zaXN0ZW5jeSBh bmQgYmFja3VwRW5kTmVlZGVkIHdpbGwgYmUgcmVzZXQgdG8gYmUKIAkgKiBmYWxzZSkuCiAJICov CiAJaWYgKGZzY2FuZihsZnAsICJCQUNLVVAgTUVUSE9EOiAlMTlzXG4iLCBiYWNrdXB0eXBlKSA9 PSAxKQogCXsKIAkJaWYgKHN0cmNtcChiYWNrdXB0eXBlLCAic3RyZWFtZWQiKSA9PSAwKQotCQkJ KmJhY2t1cEVuZFJlcXVpcmVkID0gdHJ1ZTsKKwkJCSpiYWNrdXBFbmROZWVkZWQgPSB0cnVlOwog CX0KIAogCS8qCkBAIC0xOTI3LDE0ICsxOTI3LDE0IEBAIFBlcmZvcm1XYWxSZWNvdmVyeSh2b2lk KQogICogU3Vicm91dGluZSBvZiBQZXJmb3JtV2FsUmVjb3ZlcnksIHRvIGFwcGx5IG9uZSBXQUwg cmVjb3JkLgogICovCiBzdGF0aWMgdm9pZAotQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRlclN0YXRl ICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGxheVRMSSkK K0FwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVhZGVyLCBYTG9nUmVjb3JkICpyZWNv cmQsIFRpbWVMaW5lSUQgKnJlcGxheVRMSSkKIHsKIAlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJj YWxsYmFjazsKIAlib29sCQlzd2l0Y2hlZFRMSSA9IGZhbHNlOwogCiAJLyogU2V0dXAgZXJyb3Ig dHJhY2ViYWNrIHN1cHBvcnQgZm9yIGVyZXBvcnQoKSAqLwogCWVycmNhbGxiYWNrLmNhbGxiYWNr ID0gcm1fcmVkb19lcnJvcl9jYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSB4bG9ncmVhZGVy OworCWVycmNhbGxiYWNrLmFyZyA9IHJlYWRlcjsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVy cm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsK IApAQCAtMTk2MSw3ICsxOTYxLDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGwKIAkJewogCQkJ Q2hlY2tQb2ludAljaGVja1BvaW50OwogCi0JCQltZW1jcHkoJmNoZWNrUG9pbnQsIFhMb2dSZWNH ZXREYXRhKHhsb2dyZWFkZXIpLCBzaXplb2YoQ2hlY2tQb2ludCkpOworCQkJbWVtY3B5KCZjaGVj a1BvaW50LCBYTG9nUmVjR2V0RGF0YShyZWFkZXIpLCBzaXplb2YoQ2hlY2tQb2ludCkpOwogCQkJ bmV3UmVwbGF5VExJID0gY2hlY2tQb2ludC5UaGlzVGltZUxpbmVJRDsKIAkJCXByZXZSZXBsYXlU TEkgPSBjaGVja1BvaW50LlByZXZUaW1lTGluZUlEOwogCQl9CkBAIC0xOTY5LDcgKzE5NjksNyBA QCBBcHBseVdhbFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQg KnJlY29yZCwgVGltZUxpbmVJRCAqcmVwbAogCQl7CiAJCQl4bF9lbmRfb2ZfcmVjb3ZlcnkgeGxy ZWM7CiAKLQkJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNHZXREYXRhKHhsb2dyZWFkZXIpLCBzaXpl b2YoeGxfZW5kX29mX3JlY292ZXJ5KSk7CisJCQltZW1jcHkoJnhscmVjLCBYTG9nUmVjR2V0RGF0 YShyZWFkZXIpLCBzaXplb2YoeGxfZW5kX29mX3JlY292ZXJ5KSk7CiAJCQluZXdSZXBsYXlUTEkg PSB4bHJlYy5UaGlzVGltZUxpbmVJRDsKIAkJCXByZXZSZXBsYXlUTEkgPSB4bHJlYy5QcmV2VGlt ZUxpbmVJRDsKIAkJfQpAQCAtMTk3Nyw3ICsxOTc3LDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1Jl YWRlclN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAkJaWYgKG5ld1JlcGxheVRMSSAhPSAqcmVwbGF5VExJKQogCQl7CiAJCQkvKiBDaGVjayB0 aGF0IGl0J3MgT0sgdG8gc3dpdGNoIHRvIHRoaXMgVExJICovCi0JCQljaGVja1RpbWVMaW5lU3dp dGNoKHhsb2dyZWFkZXItPkVuZFJlY1B0ciwKKwkJCWNoZWNrVGltZUxpbmVTd2l0Y2gocmVhZGVy LT5FbmRSZWNQdHIsCiAJCQkJCQkJCW5ld1JlcGxheVRMSSwgcHJldlJlcGxheVRMSSwgKnJlcGxh eVRMSSk7CiAKIAkJCS8qIEZvbGxvd2luZyBXQUwgcmVjb3JkcyBzaG91bGQgYmUgcnVuIHdpdGgg bmV3IFRMSSAqLwpAQCAtMTk5MSw3ICsxOTkxLDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGwK IAkgKiBYTG9nRmx1c2ggd2lsbCB1cGRhdGUgbWluUmVjb3ZlcnlQb2ludCBjb3JyZWN0bHkuCiAJ ICovCiAJU3BpbkxvY2tBY3F1aXJlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKLQlYTG9n UmVjb3ZlcnlDdGwtPnJlcGxheUVuZFJlY1B0ciA9IHhsb2dyZWFkZXItPkVuZFJlY1B0cjsKKwlY TG9nUmVjb3ZlcnlDdGwtPnJlcGxheUVuZFJlY1B0ciA9IHJlYWRlci0+RW5kUmVjUHRyOwogCVhM b2dSZWNvdmVyeUN0bC0+cmVwbGF5RW5kVExJID0gKnJlcGxheVRMSTsKIAlTcGluTG9ja1JlbGVh c2UoJlhMb2dSZWNvdmVyeUN0bC0+aW5mb19sY2spOwogCkBAIC0yMDA3LDEwICsyMDA3LDEwIEBA IEFwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqeGxvZ3JlYWRlciwgWExvZ1JlY29yZCAq cmVjb3JkLCBUaW1lTGluZUlEICpyZXBsCiAJICogZGlyZWN0bHkgaGVyZSwgcmF0aGVyIHRoYW4g aW4geGxvZ19yZWRvKCkKIAkgKi8KIAlpZiAocmVjb3JkLT54bF9ybWlkID09IFJNX1hMT0dfSUQp Ci0JCXhsb2dyZWNvdmVyeV9yZWRvKHhsb2dyZWFkZXIsICpyZXBsYXlUTEkpOworCQl4bG9ncmVj b3ZlcnlfcmVkbyhyZWFkZXIsICpyZXBsYXlUTEkpOwogCiAJLyogTm93IGFwcGx5IHRoZSBXQUwg cmVjb3JkIGl0c2VsZiAqLwotCUdldFJtZ3IocmVjb3JkLT54bF9ybWlkKS5ybV9yZWRvKHhsb2dy ZWFkZXIpOworCUdldFJtZ3IocmVjb3JkLT54bF9ybWlkKS5ybV9yZWRvKHJlYWRlcik7CiAKIAkv KgogCSAqIEFmdGVyIHJlZG8sIGNoZWNrIHdoZXRoZXIgdGhlIGJhY2t1cCBwYWdlcyBhc3NvY2lh dGVkIHdpdGggdGhlIFdBTApAQCAtMjAxOCw3ICsyMDE4LDcgQEAgQXBwbHlXYWxSZWNvcmQoWExv Z1JlYWRlclN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQg KnJlcGwKIAkgKiBpZiBjb25zaXN0ZW5jeSBjaGVjayBpcyBlbmFibGVkIGZvciB0aGlzIHJlY29y ZC4KIAkgKi8KIAlpZiAoKHJlY29yZC0+eGxfaW5mbyAmIFhMUl9DSEVDS19DT05TSVNURU5DWSkg IT0gMCkKLQkJdmVyaWZ5QmFja3VwUGFnZUNvbnNpc3RlbmN5KHhsb2dyZWFkZXIpOworCQl2ZXJp ZnlCYWNrdXBQYWdlQ29uc2lzdGVuY3kocmVhZGVyKTsKIAogCS8qIFBvcCB0aGUgZXJyb3IgY29u dGV4dCBzdGFjayAqLwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91 czsKQEAgLTIwMjgsOCArMjAyOCw4IEBAIEFwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAq eGxvZ3JlYWRlciwgWExvZ1JlY29yZCAqcmVjb3JkLCBUaW1lTGluZUlEICpyZXBsCiAJICogcmVw bGF5ZWQuCiAJICovCiAJU3BpbkxvY2tBY3F1aXJlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNr KTsKLQlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFJlYWRSZWNQdHIgPSB4bG9ncmVhZGVy LT5SZWFkUmVjUHRyOwotCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRyID0g eGxvZ3JlYWRlci0+RW5kUmVjUHRyOworCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkUmVh ZFJlY1B0ciA9IHJlYWRlci0+UmVhZFJlY1B0cjsKKwlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBs YXllZEVuZFJlY1B0ciA9IHJlYWRlci0+RW5kUmVjUHRyOwogCVhMb2dSZWNvdmVyeUN0bC0+bGFz dFJlcGxheWVkVExJID0gKnJlcGxheVRMSTsKIAlTcGluTG9ja1JlbGVhc2UoJlhMb2dSZWNvdmVy eUN0bC0+aW5mb19sY2spOwogCkBAIC0yMDc5LDcgKzIwNzksNyBAQCBBcHBseVdhbFJlY29yZChY TG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGltZUxpbmVJ RCAqcmVwbAogCQkgKiBCZWZvcmUgd2UgY29udGludWUgb24gdGhlIG5ldyB0aW1lbGluZSwgY2xl YW4gdXAgYW55IChwb3NzaWJseQogCQkgKiBib2d1cykgZnV0dXJlIFdBTCBzZWdtZW50cyBvbiB0 aGUgb2xkIHRpbWVsaW5lLgogCQkgKi8KLQkJUmVtb3ZlTm9uUGFyZW50WGxvZ0ZpbGVzKHhsb2dy ZWFkZXItPkVuZFJlY1B0ciwgKnJlcGxheVRMSSk7CisJCVJlbW92ZU5vblBhcmVudFhsb2dGaWxl cyhyZWFkZXItPkVuZFJlY1B0ciwgKnJlcGxheVRMSSk7CiAKIAkJLyogUmVzZXQgdGhlIHByZWZl dGNoZXIuICovCiAJCVhMb2dQcmVmZXRjaFJlY29uZmlndXJlKCk7CkBAIC0zMTUyLDE5ICszMTUy LDE5IEBAIENvbmZpcm1SZWNvdmVyeVBhdXNlZCh2b2lkKQogICogcmVjb3JkIGlzIGF2YWlsYWJs ZS4KICAqLwogc3RhdGljIFhMb2dSZWNvcmQgKgotUmVhZFJlY29yZChYTG9nUHJlZmV0Y2hlciAq eGxvZ3ByZWZldGNoZXIsIGludCBlbW9kZSwKK1JlYWRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnBy ZWZldGNoZXIsIGludCBlbW9kZSwKIAkJICAgYm9vbCBmZXRjaGluZ19ja3B0LCBUaW1lTGluZUlE IHJlcGxheVRMSSkKIHsKIAlYTG9nUmVjb3JkICpyZWNvcmQ7Ci0JWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyID0gWExvZ1ByZWZldGNoZXJHZXRSZWFkZXIoeGxvZ3ByZWZldGNoZXIpOwotCVhM b2dQYWdlUmVhZFByaXZhdGUgKnByaXZhdGUgPSAoWExvZ1BhZ2VSZWFkUHJpdmF0ZSAqKSB4bG9n cmVhZGVyLT5wcml2YXRlX2RhdGE7CisJWExvZ1JlYWRlclN0YXRlICpyZWFkZXIgPSBYTG9nUHJl ZmV0Y2hlckdldFJlYWRlcihwcmVmZXRjaGVyKTsKKwlYTG9nUGFnZVJlYWRQcml2YXRlICpwcml2 YXRlID0gKFhMb2dQYWdlUmVhZFByaXZhdGUgKikgcmVhZGVyLT5wcml2YXRlX2RhdGE7CiAKIAlB c3NlcnQoQW1TdGFydHVwUHJvY2VzcygpIHx8ICFJc1VuZGVyUG9zdG1hc3Rlcik7CiAKIAkvKiBQ YXNzIHRocm91Z2ggcGFyYW1ldGVycyB0byBYTG9nUGFnZVJlYWQgKi8KIAlwcml2YXRlLT5mZXRj aGluZ19ja3B0ID0gZmV0Y2hpbmdfY2twdDsKIAlwcml2YXRlLT5lbW9kZSA9IGVtb2RlOwotCXBy aXZhdGUtPnJhbmRBY2Nlc3MgPSAhWExvZ1JlY1B0cklzVmFsaWQoeGxvZ3JlYWRlci0+UmVhZFJl Y1B0cik7CisJcHJpdmF0ZS0+cmFuZEFjY2VzcyA9ICFYTG9nUmVjUHRySXNWYWxpZChyZWFkZXIt PlJlYWRSZWNQdHIpOwogCXByaXZhdGUtPnJlcGxheVRMSSA9IHJlcGxheVRMSTsKIAogCS8qIFRo aXMgaXMgdGhlIGZpcnN0IGF0dGVtcHQgdG8gcmVhZCB0aGlzIHBhZ2UuICovCkBAIC0zMTc0LDcg KzMxNzQsNyBAQCBSZWFkUmVjb3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50 IGVtb2RlLAogCXsKIAkJY2hhcgkgICAqZXJyb3Jtc2c7CiAKLQkJcmVjb3JkID0gWExvZ1ByZWZl dGNoZXJSZWFkUmVjb3JkKHhsb2dwcmVmZXRjaGVyLCAmZXJyb3Jtc2cpOworCQlyZWNvcmQgPSBY TG9nUHJlZmV0Y2hlclJlYWRSZWNvcmQocHJlZmV0Y2hlciwgJmVycm9ybXNnKTsKIAkJaWYgKHJl Y29yZCA9PSBOVUxMKQogCQl7CiAJCQkvKgpAQCAtMzE5MCwxMCArMzE5MCwxMCBAQCBSZWFkUmVj b3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50IGVtb2RlLAogCQkJICogb3Zl cndyaXRlIGNvbnRyZWNvcmQgaW4gdGhlIHdyb25nIHBsYWNlLCBicmVha2luZyBldmVyeXRoaW5n LgogCQkJICovCiAJCQlpZiAoIUFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCAmJgotCQkJCVhMb2dS ZWNQdHJJc1ZhbGlkKHhsb2dyZWFkZXItPmFib3J0ZWRSZWNQdHIpKQorCQkJCVhMb2dSZWNQdHJJ c1ZhbGlkKHJlYWRlci0+YWJvcnRlZFJlY1B0cikpCiAJCQl7Ci0JCQkJYWJvcnRlZFJlY1B0ciA9 IHhsb2dyZWFkZXItPmFib3J0ZWRSZWNQdHI7Ci0JCQkJbWlzc2luZ0NvbnRyZWNQdHIgPSB4bG9n cmVhZGVyLT5taXNzaW5nQ29udHJlY1B0cjsKKwkJCQlhYm9ydGVkUmVjUHRyID0gcmVhZGVyLT5h Ym9ydGVkUmVjUHRyOworCQkJCW1pc3NpbmdDb250cmVjUHRyID0gcmVhZGVyLT5taXNzaW5nQ29u dHJlY1B0cjsKIAkJCX0KIAogCQkJaWYgKHJlYWRGaWxlID49IDApCkBAIC0zMjA5LDI5ICszMjA5 LDI5IEBAIFJlYWRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnhsb2dwcmVmZXRjaGVyLCBpbnQgZW1v ZGUsCiAJCQkgKiBzaG91bGRuJ3QgbG9vcCBhbnltb3JlIGluIHRoYXQgY2FzZS4KIAkJCSAqLwog CQkJaWYgKGVycm9ybXNnKQotCQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRfcmVjb3JkKGVt b2RlLCB4bG9ncmVhZGVyLT5FbmRSZWNQdHIpLAorCQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1 cHRfcmVjb3JkKGVtb2RlLCByZWFkZXItPkVuZFJlY1B0ciksCiAJCQkJCQkoZXJybXNnX2ludGVy bmFsKCIlcyIsIGVycm9ybXNnKSAvKiBhbHJlYWR5IHRyYW5zbGF0ZWQgKi8gKSk7CiAJCX0KIAog CQkvKgogCQkgKiBDaGVjayBwYWdlIFRMSSBpcyBvbmUgb2YgdGhlIGV4cGVjdGVkIHZhbHVlcy4K IAkJICovCi0JCWVsc2UgaWYgKCF0bGlJbkhpc3RvcnkoeGxvZ3JlYWRlci0+bGF0ZXN0UGFnZVRM SSwgZXhwZWN0ZWRUTEVzKSkKKwkJZWxzZSBpZiAoIXRsaUluSGlzdG9yeShyZWFkZXItPmxhdGVz dFBhZ2VUTEksIGV4cGVjdGVkVExFcykpCiAJCXsKIAkJCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVO XTsKIAkJCVhMb2dTZWdObwlzZWdubzsKIAkJCWludDMyCQlvZmZzZXQ7CiAKLQkJCVhMQnl0ZVRv U2VnKHhsb2dyZWFkZXItPmxhdGVzdFBhZ2VQdHIsIHNlZ25vLCB3YWxfc2VnbWVudF9zaXplKTsK LQkJCW9mZnNldCA9IFhMb2dTZWdtZW50T2Zmc2V0KHhsb2dyZWFkZXItPmxhdGVzdFBhZ2VQdHIs CisJCQlYTEJ5dGVUb1NlZyhyZWFkZXItPmxhdGVzdFBhZ2VQdHIsIHNlZ25vLCB3YWxfc2VnbWVu dF9zaXplKTsKKwkJCW9mZnNldCA9IFhMb2dTZWdtZW50T2Zmc2V0KHJlYWRlci0+bGF0ZXN0UGFn ZVB0ciwKIAkJCQkJCQkJCSAgIHdhbF9zZWdtZW50X3NpemUpOwotCQkJWExvZ0ZpbGVOYW1lKGZu YW1lLCB4bG9ncmVhZGVyLT5zZWcud3NfdGxpLCBzZWdubywKKwkJCVhMb2dGaWxlTmFtZShmbmFt ZSwgcmVhZGVyLT5zZWcud3NfdGxpLCBzZWdubywKIAkJCQkJCSB3YWxfc2VnbWVudF9zaXplKTsK LQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRfcmVjb3JkKGVtb2RlLCB4bG9ncmVhZGVyLT5F bmRSZWNQdHIpLAorCQkJZXJlcG9ydChlbW9kZV9mb3JfY29ycnVwdF9yZWNvcmQoZW1vZGUsIHJl YWRlci0+RW5kUmVjUHRyKSwKIAkJCQkJZXJybXNnKCJ1bmV4cGVjdGVkIHRpbWVsaW5lIElEICV1 IGluIFdBTCBzZWdtZW50ICVzLCBMU04gJVgvJTA4WCwgb2Zmc2V0ICV1IiwKLQkJCQkJCSAgIHhs b2dyZWFkZXItPmxhdGVzdFBhZ2VUTEksCisJCQkJCQkgICByZWFkZXItPmxhdGVzdFBhZ2VUTEks CiAJCQkJCQkgICBmbmFtZSwKLQkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyh4bG9ncmVhZGVyLT5s YXRlc3RQYWdlUHRyKSwKKwkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhyZWFkZXItPmxhdGVzdFBh Z2VQdHIpLAogCQkJCQkJICAgb2Zmc2V0KSk7CiAJCQlyZWNvcmQgPSBOVUxMOwogCQl9CkBAIC0z MjY3LDggKzMyNjcsOCBAQCBSZWFkUmVjb3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hl ciwgaW50IGVtb2RlLAogCQkJCWlmIChTdGFuZGJ5TW9kZVJlcXVlc3RlZCkKIAkJCQkJRW5hYmxl U3RhbmRieU1vZGUoKTsKIAotCQkJCVN3aXRjaEludG9BcmNoaXZlUmVjb3ZlcnkoeGxvZ3JlYWRl ci0+RW5kUmVjUHRyLCByZXBsYXlUTEkpOwotCQkJCW1pblJlY292ZXJ5UG9pbnQgPSB4bG9ncmVh ZGVyLT5FbmRSZWNQdHI7CisJCQkJU3dpdGNoSW50b0FyY2hpdmVSZWNvdmVyeShyZWFkZXItPkVu ZFJlY1B0ciwgcmVwbGF5VExJKTsKKwkJCQltaW5SZWNvdmVyeVBvaW50ID0gcmVhZGVyLT5FbmRS ZWNQdHI7CiAJCQkJbWluUmVjb3ZlcnlQb2ludFRMSSA9IHJlcGxheVRMSTsKIAogCQkJCUNoZWNr UmVjb3ZlcnlDb25zaXN0ZW5jeSgpOwpAQCAtMzMyMSwxMSArMzMyMSwxMSBAQCBSZWFkUmVjb3Jk KFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50IGVtb2RlLAogICogc2xlZXAgYW5k IHJldHJ5LgogICovCiBzdGF0aWMgaW50Ci1YTG9nUGFnZVJlYWQoWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCitYTG9nUGFn ZVJlYWQoWExvZ1JlYWRlclN0YXRlICpyZWFkZXIsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwg aW50IHJlcUxlbiwKIAkJCSBYTG9nUmVjUHRyIHRhcmdldFJlY1B0ciwgY2hhciAqcmVhZEJ1ZikK IHsKIAlYTG9nUGFnZVJlYWRQcml2YXRlICpwcml2YXRlID0KLQkJKFhMb2dQYWdlUmVhZFByaXZh dGUgKikgeGxvZ3JlYWRlci0+cHJpdmF0ZV9kYXRhOworCQkoWExvZ1BhZ2VSZWFkUHJpdmF0ZSAq KSByZWFkZXItPnByaXZhdGVfZGF0YTsKIAlpbnQJCQllbW9kZSA9IHByaXZhdGUtPmVtb2RlOwog CXVpbnQzMgkJdGFyZ2V0UGFnZU9mZjsKIAlYTG9nU2VnTm8JdGFyZ2V0U2VnTm8gUEdfVVNFRF9G T1JfQVNTRVJUU19PTkxZOwpAQCAtMzM3Miw3ICszMzcyLDcgQEAgcmV0cnk6CiAJCSBmbHVzaGVk VXB0byA8IHRhcmdldFBhZ2VQdHIgKyByZXFMZW4pKQogCXsKIAkJaWYgKHJlYWRGaWxlID49IDAg JiYKLQkJCXhsb2dyZWFkZXItPm5vbmJsb2NraW5nICYmCisJCQlyZWFkZXItPm5vbmJsb2NraW5n ICYmCiAJCQlyZWFkU291cmNlID09IFhMT0dfRlJPTV9TVFJFQU0gJiYKIAkJCWZsdXNoZWRVcHRv IDwgdGFyZ2V0UGFnZVB0ciArIHJlcUxlbikKIAkJCXJldHVybiBYTFJFQURfV09VTERCTE9DSzsK QEAgLTMzODIsOCArMzM4Miw4IEBAIHJldHJ5OgogCQkJCQkJCQkJCQlwcml2YXRlLT5mZXRjaGlu Z19ja3B0LAogCQkJCQkJCQkJCQl0YXJnZXRSZWNQdHIsCiAJCQkJCQkJCQkJCXByaXZhdGUtPnJl cGxheVRMSSwKLQkJCQkJCQkJCQkJeGxvZ3JlYWRlci0+RW5kUmVjUHRyLAotCQkJCQkJCQkJCQl4 bG9ncmVhZGVyLT5ub25ibG9ja2luZykpCisJCQkJCQkJCQkJCXJlYWRlci0+RW5kUmVjUHRyLAor CQkJCQkJCQkJCQlyZWFkZXItPm5vbmJsb2NraW5nKSkKIAkJewogCQkJY2FzZSBYTFJFQURfV09V TERCTE9DSzoKIAkJCQlyZXR1cm4gWExSRUFEX1dPVUxEQkxPQ0s7CkBAIC0zNDY3LDcgKzM0Njcs NyBAQCByZXRyeToKIAlBc3NlcnQodGFyZ2V0UGFnZU9mZiA9PSByZWFkT2ZmKTsKIAlBc3NlcnQo cmVxTGVuIDw9IHJlYWRMZW4pOwogCi0JeGxvZ3JlYWRlci0+c2VnLndzX3RsaSA9IGN1ckZpbGVU TEk7CisJcmVhZGVyLT5zZWcud3NfdGxpID0gY3VyRmlsZVRMSTsKIAogCS8qCiAJICogQ2hlY2sg dGhlIHBhZ2UgaGVhZGVyIGltbWVkaWF0ZWx5LCBzbyB0aGF0IHdlIGNhbiByZXRyeSBpbW1lZGlh dGVseSBpZgpAQCAtMzUwMywxOCArMzUwMywxOCBAQCByZXRyeToKIAkgKi8KIAlpZiAoU3RhbmRi eU1vZGUgJiYKIAkJKHRhcmdldFBhZ2VQdHIgJSB3YWxfc2VnbWVudF9zaXplKSA9PSAwICYmCi0J CSFYTG9nUmVhZGVyVmFsaWRhdGVQYWdlSGVhZGVyKHhsb2dyZWFkZXIsIHRhcmdldFBhZ2VQdHIs IHJlYWRCdWYpKQorCQkhWExvZ1JlYWRlclZhbGlkYXRlUGFnZUhlYWRlcihyZWFkZXIsIHRhcmdl dFBhZ2VQdHIsIHJlYWRCdWYpKQogCXsKIAkJLyoKIAkJICogRW1pdCB0aGlzIGVycm9yIHJpZ2h0 IG5vdyB0aGVuIHJldHJ5IHRoaXMgcGFnZSBpbW1lZGlhdGVseS4gVXNlCiAJCSAqIGVycm1zZ19p bnRlcm5hbCgpIGJlY2F1c2UgdGhlIG1lc3NhZ2Ugd2FzIGFscmVhZHkgdHJhbnNsYXRlZC4KIAkJ ICovCi0JCWlmICh4bG9ncmVhZGVyLT5lcnJvcm1zZ19idWZbMF0pCi0JCQllcmVwb3J0KGVtb2Rl X2Zvcl9jb3JydXB0X3JlY29yZChlbW9kZSwgeGxvZ3JlYWRlci0+RW5kUmVjUHRyKSwKLQkJCQkJ KGVycm1zZ19pbnRlcm5hbCgiJXMiLCB4bG9ncmVhZGVyLT5lcnJvcm1zZ19idWYpKSk7CisJCWlm IChyZWFkZXItPmVycm9ybXNnX2J1ZlswXSkKKwkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRf cmVjb3JkKGVtb2RlLCByZWFkZXItPkVuZFJlY1B0ciksCisJCQkJCShlcnJtc2dfaW50ZXJuYWwo IiVzIiwgcmVhZGVyLT5lcnJvcm1zZ19idWYpKSk7CiAKIAkJLyogcmVzZXQgYW55IGVycm9yIFhM b2dSZWFkZXJWYWxpZGF0ZVBhZ2VIZWFkZXIoKSBtaWdodCBoYXZlIHNldCAqLwotCQlYTG9nUmVh ZGVyUmVzZXRFcnJvcih4bG9ncmVhZGVyKTsKKwkJWExvZ1JlYWRlclJlc2V0RXJyb3IocmVhZGVy KTsKIAkJZ290byBuZXh0X3JlY29yZF9pc19pbnZhbGlkOwogCX0KIApAQCAtMzUyNiw3ICszNTI2 LDcgQEAgbmV4dF9yZWNvcmRfaXNfaW52YWxpZDoKIAkgKiBJZiB3ZSdyZSByZWFkaW5nIGFoZWFk LCBnaXZlIHVwIGZhc3QuICBSZXRyaWVzIGFuZCBlcnJvciByZXBvcnRpbmcgd2lsbAogCSAqIGJl IGhhbmRsZWQgYnkgYSBsYXRlciByZWFkIHdoZW4gcmVjb3ZlcnkgY2F0Y2hlcyB1cCB0byB0aGlz IHBvaW50LgogCSAqLwotCWlmICh4bG9ncmVhZGVyLT5ub25ibG9ja2luZykKKwlpZiAocmVhZGVy LT5ub25ibG9ja2luZykKIAkJcmV0dXJuIFhMUkVBRF9XT1VMREJMT0NLOwogCiAJbGFzdFNvdXJj ZUZhaWxlZCA9IHRydWU7CkBAIC00MTA0LDcgKzQxMDQsNyBAQCBlbW9kZV9mb3JfY29ycnVwdF9y ZWNvcmQoaW50IGVtb2RlLCBYTG9nUmVjUHRyIFJlY1B0cikKICAqIFN1YnJvdXRpbmUgdG8gdHJ5 IHRvIGZldGNoIGFuZCB2YWxpZGF0ZSBhIHByaW9yIGNoZWNrcG9pbnQgcmVjb3JkLgogICovCiBz dGF0aWMgWExvZ1JlY29yZCAqCi1SZWFkQ2hlY2twb2ludFJlY29yZChYTG9nUHJlZmV0Y2hlciAq eGxvZ3ByZWZldGNoZXIsIFhMb2dSZWNQdHIgUmVjUHRyLAorUmVhZENoZWNrcG9pbnRSZWNvcmQo WExvZ1ByZWZldGNoZXIgKnByZWZldGNoZXIsIFhMb2dSZWNQdHIgUmVjUHRyLAogCQkJCQkgVGlt ZUxpbmVJRCByZXBsYXlUTEkpCiB7CiAJWExvZ1JlY29yZCAqcmVjb3JkOwpAQCAtNDExOSw4ICs0 MTE5LDggQEAgUmVhZENoZWNrcG9pbnRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnhsb2dwcmVmZXRj aGVyLCBYTG9nUmVjUHRyIFJlY1B0ciwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JWExvZ1ByZWZl dGNoZXJCZWdpblJlYWQoeGxvZ3ByZWZldGNoZXIsIFJlY1B0cik7Ci0JcmVjb3JkID0gUmVhZFJl Y29yZCh4bG9ncHJlZmV0Y2hlciwgTE9HLCB0cnVlLCByZXBsYXlUTEkpOworCVhMb2dQcmVmZXRj aGVyQmVnaW5SZWFkKHByZWZldGNoZXIsIFJlY1B0cik7CisJcmVjb3JkID0gUmVhZFJlY29yZChw cmVmZXRjaGVyLCBMT0csIHRydWUsIHJlcGxheVRMSSk7CiAKIAlpZiAocmVjb3JkID09IE5VTEwp CiAJewotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0008-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v2-0008-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocp7 RnJvbSBkY2U2ZmU3OTYzMTA4YWFlZjQ4NzkyNDlhYzAzMzdiNDEzNmFkMzZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjU5OjUzICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwOC8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIGZpbGVfb3BzLmMKClRoaXMgY29tbWl0IGZpeGVzIHNldmVyYWwgY2Fz ZXMgaW4gZmlsZV9vcHMuYyB3aGVyZSBsb2NhbCB2YXJpYWJsZXMgdXNlZApuYW1lcyB0aGF0IGNv bmZsaWN0ZWQgd2l0aCBzdGF0aWMgdmFyaWFibGVzIGRlZmluZWQgYXQgZmlsZSBzY29wZS4gVGhl CmxvY2FsIGlkZW50aWZpZXJzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFk b3dlZCBieSB0aGUgZmlsZS0Kc2NvcGUgdmFyaWFibGVzIGFuZCByZW1haW4gdW5hbWJpZ3VvdXMg d2l0aGluIHRoZWlyIHJlc3BlY3RpdmUgYmxvY2tzLgoKQXV0aG9yOiBDaGFvIExpIDxsaWNAaGln aGdvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUVvV3gya1EyeDVnTWFq OHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFpbC5nbWFpbC5jb20KLS0tCiBz cmMvYmluL3BnX3Jld2luZC9maWxlX29wcy5jIHwgNTAgKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZV9vcHMuYyBiL3NyYy9i aW4vcGdfcmV3aW5kL2ZpbGVfb3BzLmMKaW5kZXggNTU2NTljZTIwMWYuLjM4NjcyMzNlOGE4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9maWxlX29wcy5jCisrKyBiL3NyYy9iaW4vcGdf cmV3aW5kL2ZpbGVfb3BzLmMKQEAgLTE4Niw0MSArMTg2LDQxIEBAIGNyZWF0ZV90YXJnZXQoZmls ZV9lbnRyeV90ICplbnRyeSkKIHZvaWQKIHJlbW92ZV90YXJnZXRfZmlsZShjb25zdCBjaGFyICpw YXRoLCBib29sIG1pc3Npbmdfb2spCiB7Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhdOworCWNo YXIJCXBhdGhidWZbTUFYUEdQQVRIXTsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47CiAKLQlz bnByaW50Zihkc3RwYXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0 LCBwYXRoKTsKLQlpZiAodW5saW5rKGRzdHBhdGgpICE9IDApCisJc25wcmludGYocGF0aGJ1Ziwg c2l6ZW9mKHBhdGhidWYpLCAiJXMvJXMiLCBkYXRhZGlyX3RhcmdldCwgcGF0aCk7CisJaWYgKHVu bGluayhwYXRoYnVmKSAhPSAwKQogCXsKIAkJaWYgKGVycm5vID09IEVOT0VOVCAmJiBtaXNzaW5n X29rKQogCQkJcmV0dXJuOwogCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVtb3ZlIGZpbGUgXCIl c1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsKIAl9CiB9CiAKIHZvaWQK IHRydW5jYXRlX3RhcmdldF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIG9mZl90IG5ld3NpemUpCiB7 Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhdOworCWNoYXIJCXBhdGhidWZbTUFYUEdQQVRIXTsK IAlpbnQJCQlmZDsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47CiAKLQlzbnByaW50Zihkc3Rw YXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlz bnByaW50ZihwYXRoYnVmLCBzaXplb2YocGF0aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0 LCBwYXRoKTsKIAotCWZkID0gb3Blbihkc3RwYXRoLCBPX1dST05MWSwgcGdfZmlsZV9jcmVhdGVf bW9kZSk7CisJZmQgPSBvcGVuKHBhdGhidWYsIE9fV1JPTkxZLCBwZ19maWxlX2NyZWF0ZV9tb2Rl KTsKIAlpZiAoZmQgPCAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIg Zm9yIHRydW5jYXRpb246ICVtIiwKLQkJCQkgZHN0cGF0aCk7CisJCQkJIHBhdGhidWYpOwogCiAJ aWYgKGZ0cnVuY2F0ZShmZCwgbmV3c2l6ZSkgIT0gMCkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCB0 cnVuY2F0ZSBmaWxlIFwiJXNcIiB0byAldTogJW0iLAotCQkJCSBkc3RwYXRoLCAodW5zaWduZWQg aW50KSBuZXdzaXplKTsKKwkJCQkgcGF0aGJ1ZiwgKHVuc2lnbmVkIGludCkgbmV3c2l6ZSk7CiAK IAljbG9zZShmZCk7CiB9CkBAIC0yMjgsNTcgKzIyOCw1NyBAQCB0cnVuY2F0ZV90YXJnZXRfZmls ZShjb25zdCBjaGFyICpwYXRoLCBvZmZfdCBuZXdzaXplKQogc3RhdGljIHZvaWQKIGNyZWF0ZV90 YXJnZXRfZGlyKGNvbnN0IGNoYXIgKnBhdGgpCiB7Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhd OworCWNoYXIJCXBhdGhidWZbTUFYUEdQQVRIXTsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47 CiAKLQlzbnByaW50Zihkc3RwYXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJf dGFyZ2V0LCBwYXRoKTsKLQlpZiAobWtkaXIoZHN0cGF0aCwgcGdfZGlyX2NyZWF0ZV9tb2RlKSAh PSAwKQorCXNucHJpbnRmKHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgZGF0YWRp cl90YXJnZXQsIHBhdGgpOworCWlmIChta2RpcihwYXRoYnVmLCBwZ19kaXJfY3JlYXRlX21vZGUp ICE9IDApCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVt IiwKLQkJCQkgZHN0cGF0aCk7CisJCQkJIHBhdGhidWYpOwogfQogCiBzdGF0aWMgdm9pZAogcmVt b3ZlX3RhcmdldF9kaXIoY29uc3QgY2hhciAqcGF0aCkKIHsKLQljaGFyCQlkc3RwYXRoW01BWFBH UEFUSF07CisJY2hhcgkJcGF0aGJ1ZltNQVhQR1BBVEhdOwogCiAJaWYgKGRyeV9ydW4pCiAJCXJl dHVybjsKIAotCXNucHJpbnRmKGRzdHBhdGgsIHNpemVvZihkc3RwYXRoKSwgIiVzLyVzIiwgZGF0 YWRpcl90YXJnZXQsIHBhdGgpOwotCWlmIChybWRpcihkc3RwYXRoKSAhPSAwKQorCXNucHJpbnRm KHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgZGF0YWRpcl90YXJnZXQsIHBhdGgp OworCWlmIChybWRpcihwYXRoYnVmKSAhPSAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IHJlbW92 ZSBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsK IH0KIAogc3RhdGljIHZvaWQKIGNyZWF0ZV90YXJnZXRfc3ltbGluayhjb25zdCBjaGFyICpwYXRo LCBjb25zdCBjaGFyICpsaW5rKQogewotCWNoYXIJCWRzdHBhdGhbTUFYUEdQQVRIXTsKKwljaGFy CQlwYXRoYnVmW01BWFBHUEFUSF07CiAKIAlpZiAoZHJ5X3J1bikKIAkJcmV0dXJuOwogCi0Jc25w cmludGYoZHN0cGF0aCwgc2l6ZW9mKGRzdHBhdGgpLCAiJXMvJXMiLCBkYXRhZGlyX3RhcmdldCwg cGF0aCk7Ci0JaWYgKHN5bWxpbmsobGluaywgZHN0cGF0aCkgIT0gMCkKKwlzbnByaW50ZihwYXRo YnVmLCBzaXplb2YocGF0aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlp ZiAoc3ltbGluayhsaW5rLCBwYXRoYnVmKSAhPSAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IGNy ZWF0ZSBzeW1ib2xpYyBsaW5rIGF0IFwiJXNcIjogJW0iLAotCQkJCSBkc3RwYXRoKTsKKwkJCQkg cGF0aGJ1Zik7CiB9CiAKIHN0YXRpYyB2b2lkCiByZW1vdmVfdGFyZ2V0X3N5bWxpbmsoY29uc3Qg Y2hhciAqcGF0aCkKIHsKLQljaGFyCQlkc3RwYXRoW01BWFBHUEFUSF07CisJY2hhcgkJcGF0aGJ1 ZltNQVhQR1BBVEhdOwogCiAJaWYgKGRyeV9ydW4pCiAJCXJldHVybjsKIAotCXNucHJpbnRmKGRz dHBhdGgsIHNpemVvZihkc3RwYXRoKSwgIiVzLyVzIiwgZGF0YWRpcl90YXJnZXQsIHBhdGgpOwot CWlmICh1bmxpbmsoZHN0cGF0aCkgIT0gMCkKKwlzbnByaW50ZihwYXRoYnVmLCBzaXplb2YocGF0 aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlpZiAodW5saW5rKHBhdGhi dWYpICE9IDApCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVtb3ZlIHN5bWJvbGljIGxpbmsgXCIl c1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsKIH0KIAogLyoKLS0gCjIu MzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0007-cleanup-rename-local-progname-variables-to-avoid-.patch" Content-Disposition: attachment; filename="v2-0007-cleanup-rename-local-progname-variables-to-avoid-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0oco6 RnJvbSA0MWE3MTY1OTY3MjQ4ODcxMTI4N2Y2MThjN2IwZmRkZjMzNjFjYzk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjU5OjQzICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAwNy8x M10gY2xlYW51cDogcmVuYW1lIGxvY2FsIHByb2duYW1lIHZhcmlhYmxlcyB0byBhdm9pZAogc2hh ZG93aW5nIHRoZSBnbG9iYWwKClRoaXMgY29tbWl0IHVwZGF0ZXMgYWxsIGZ1bmN0aW9ucyB0aGF0 IGRlY2xhcmVkIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQKJ3Byb2duYW1lJywgcmVuYW1pbmcgZWFj aCB0byAnbXlwcm9nbmFtZScuIFRoZSBjaGFuZ2UgcHJldmVudHMgc2hhZG93aW5nCm9mIHRoZSBn bG9iYWwgcHJvZ25hbWUgdmFyaWFibGUgYW5kIGtlZXBzIGlkZW50aWZpZXIgdXNhZ2UgdW5hbWJp Z3VvdXMKd2l0aGluIGVhY2ggc2NvcGUuCgpBIGZldyBhZGRpdGlvbmFsIHNoYWRvd2luZyBmaXhl cyBpbiB0aGUgc2FtZSBmaWxlcyBhcmUgaW5jbHVkZWQgYXMgd2VsbC4KVGhlc2UgdW5yZWxhdGVk IGNhc2VzIGFyZSBhZGRyZXNzZWQgaGVyZSBvbmx5IGJlY2F1c2UgdGhleSBvY2N1ciBpbiB0aGUK c2FtZSBjb2RlIGxvY2F0aW9ucyB0b3VjaGVkIGJ5IHRoZSBwcm9nbmFtZSBjaGFuZ2UsIGFuZCBi dW5kbGluZyB0aGVtCmtlZXBzIHRoZSBjb21taXQgc2VsZi1jb250YWluZWQuCgpBdXRob3I6IENo YW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NB RW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdt YWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyAgICAgICAgICAg fCAgOCArLQogc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMgICAgICAgICAgICAgICAgICAgICB8IDE0 ICsrLS0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAgICAgICAgICAgfCA2MCAr KysrKysrLS0tLS0tLQogc3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYyAgICAgICAgICAg ICB8ICA2ICstCiBzcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIHwg MTQgKystLQogc3JjL2Jpbi9wZ19kdW1wL2Nvbm5lY3RkYi5jICAgICAgICAgICAgICAgICB8ICA0 ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgIHwgODggKysr KysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jICAgICAgICAg ICAgICAgIHwgIDYgKy0KIHNyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jICAgICAgICAgICAg ICAgfCAyMiArKystLS0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmMgICAgICAg ICAgfCAgNiArLQogMTAgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDExNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMg Yi9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKaW5kZXggZmM4NjM4YzFiNjEuLmY2 NDljMDAxMTNkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMK KysrIGIvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jCkBAIC0yMDAsNyArMjAwLDcg QEAgdm9pZAogQm9vdHN0cmFwTW9kZU1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vbCBj aGVja19vbmx5KQogewogCWludAkJCWk7Ci0JY2hhcgkgICAqcHJvZ25hbWUgPSBhcmd2WzBdOwor CWNoYXIJICAgKm15cHJvZ25hbWUgPSBhcmd2WzBdOwogCWludAkJCWZsYWc7CiAJY2hhcgkgICAq dXNlckRvcHRpb24gPSBOVUxMOwogCXVpbnQzMgkJYm9vdHN0cmFwX2RhdGFfY2hlY2tzdW1fdmVy c2lvbiA9IDA7CS8qIE5vIGNoZWNrc3VtICovCkBAIC0yOTYsNyArMjk2LDcgQEAgQm9vdHN0cmFw TW9kZU1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vbCBjaGVja19vbmx5KQogCQkJCWJy ZWFrOwogCQkJZGVmYXVsdDoKIAkJCQl3cml0ZV9zdGRlcnIoIlRyeSBcIiVzIC0taGVscFwiIGZv ciBtb3JlIGluZm9ybWF0aW9uLlxuIiwKLQkJCQkJCQkgcHJvZ25hbWUpOworCQkJCQkJCSBteXBy b2duYW1lKTsKIAkJCQlwcm9jX2V4aXQoMSk7CiAJCQkJYnJlYWs7CiAJCX0KQEAgLTMwNCwxMiAr MzA0LDEyIEBAIEJvb3RzdHJhcE1vZGVNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sIGJvb2wg Y2hlY2tfb25seSkKIAogCWlmIChhcmdjICE9IG9wdGluZCkKIAl7Ci0JCXdyaXRlX3N0ZGVycigi JXM6IGludmFsaWQgY29tbWFuZC1saW5lIGFyZ3VtZW50c1xuIiwgcHJvZ25hbWUpOworCQl3cml0 ZV9zdGRlcnIoIiVzOiBpbnZhbGlkIGNvbW1hbmQtbGluZSBhcmd1bWVudHNcbiIsIG15cHJvZ25h bWUpOwogCQlwcm9jX2V4aXQoMSk7CiAJfQogCiAJLyogQWNxdWlyZSBjb25maWd1cmF0aW9uIHBh cmFtZXRlcnMgKi8KLQlpZiAoIVNlbGVjdENvbmZpZ0ZpbGVzKHVzZXJEb3B0aW9uLCBwcm9nbmFt ZSkpCisJaWYgKCFTZWxlY3RDb25maWdGaWxlcyh1c2VyRG9wdGlvbiwgbXlwcm9nbmFtZSkpCiAJ CXByb2NfZXhpdCgxKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9tYWluL21haW4u YyBiL3NyYy9iYWNrZW5kL21haW4vbWFpbi5jCmluZGV4IDcyYWFlZTM2YTY4Li5lZWI2NGQwOTYw OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKKysrIGIvc3JjL2JhY2tlbmQv bWFpbi9tYWluLmMKQEAgLTI4MSw3ICsyODEsNyBAQCBwYXJzZV9kaXNwYXRjaF9vcHRpb24oY29u c3QgY2hhciAqbmFtZSkKICAqIHdpdGhvdXQgaGVscC4gIEF2b2lkIGFkZGluZyBtb3JlIGhlcmUs IGlmIHlvdSBjYW4uCiAgKi8KIHN0YXRpYyB2b2lkCi1zdGFydHVwX2hhY2tzKGNvbnN0IGNoYXIg KnByb2duYW1lKQorc3RhcnR1cF9oYWNrcyhjb25zdCBjaGFyICpteXByb2duYW1lKQogewogCS8q CiAJICogV2luZG93cy1zcGVjaWZpYyBleGVjdXRpb24gZW52aXJvbm1lbnQgaGFja2luZy4KQEAg LTMwMCw3ICszMDAsNyBAQCBzdGFydHVwX2hhY2tzKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCQlp ZiAoZXJyICE9IDApCiAJCXsKIAkJCXdyaXRlX3N0ZGVycigiJXM6IFdTQVN0YXJ0dXAgZmFpbGVk OiAlZFxuIiwKLQkJCQkJCSBwcm9nbmFtZSwgZXJyKTsKKwkJCQkJCSBteXByb2duYW1lLCBlcnIp OwogCQkJZXhpdCgxKTsKIAkJfQogCkBAIC0zODUsMTAgKzM4NSwxMCBAQCBpbml0X2xvY2FsZShj b25zdCBjaGFyICpjYXRlZ29yeW5hbWUsIGludCBjYXRlZ29yeSwgY29uc3QgY2hhciAqbG9jYWxl KQogICogTWVzc2FnZXMgZW1pdHRlZCBpbiB3cml0ZV9jb25zb2xlKCkgZG8gbm90IGV4aGliaXQg dGhpcyBwcm9ibGVtLgogICovCiBzdGF0aWMgdm9pZAotaGVscChjb25zdCBjaGFyICpwcm9nbmFt ZSkKK2hlbHAoY29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMgaXMgdGhl IFBvc3RncmVTUUwgc2VydmVyLlxuXG4iKSwgcHJvZ25hbWUpOwotCXByaW50ZihfKCJVc2FnZTpc biAgJXMgW09QVElPTl0uLi5cblxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiJXMgaXMgdGhl IFBvc3RncmVTUUwgc2VydmVyLlxuXG4iKSwgbXlwcm9nbmFtZSk7CisJcHJpbnRmKF8oIlVzYWdl OlxuICAlcyBbT1BUSU9OXS4uLlxuXG4iKSwgbXlwcm9nbmFtZSk7CiAJcHJpbnRmKF8oIk9wdGlv bnM6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLUIgTkJVRkZFUlMgICAgICAgIG51bWJlciBvZiBzaGFy ZWQgYnVmZmVyc1xuIikpOwogCXByaW50ZihfKCIgIC1jIE5BTUU9VkFMVUUgICAgICBzZXQgcnVu LXRpbWUgcGFyYW1ldGVyXG4iKSk7CkBAIC00NDQsNyArNDQ0LDcgQEAgaGVscChjb25zdCBjaGFy ICpwcm9nbmFtZSkKIAogCiBzdGF0aWMgdm9pZAotY2hlY2tfcm9vdChjb25zdCBjaGFyICpwcm9n bmFtZSkKK2NoZWNrX3Jvb3QoY29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKICNpZm5kZWYgV0lO MzIKIAlpZiAoZ2V0ZXVpZCgpID09IDApCkBAIC00NjcsNyArNDY3LDcgQEAgY2hlY2tfcm9vdChj b25zdCBjaGFyICpwcm9nbmFtZSkKIAlpZiAoZ2V0dWlkKCkgIT0gZ2V0ZXVpZCgpKQogCXsKIAkJ d3JpdGVfc3RkZXJyKCIlczogcmVhbCBhbmQgZWZmZWN0aXZlIHVzZXIgSURzIG11c3QgbWF0Y2hc biIsCi0JCQkJCSBwcm9nbmFtZSk7CisJCQkJCSBteXByb2duYW1lKTsKIAkJZXhpdCgxKTsKIAl9 CiAjZWxzZQkJCQkJCQkvKiBXSU4zMiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5p dGRiLmMgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwppbmRleCA5MmZlMmY1MzFmNy4uZDhlOTVj YTJmZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCisrKyBiL3NyYy9iaW4v aW5pdGRiL2luaXRkYi5jCkBAIC04MTQsNyArODE0LDcgQEAgY2xlYW51cF9kaXJlY3Rvcmllc19h dGV4aXQodm9pZCkKIHN0YXRpYyBjaGFyICoKIGdldF9pZCh2b2lkKQogewotCWNvbnN0IGNoYXIg KnVzZXJuYW1lOworCWNvbnN0IGNoYXIgKnVzZXI7CiAKICNpZm5kZWYgV0lOMzIKIAlpZiAoZ2V0 ZXVpZCgpID09IDApCQkJLyogMCBpcyByb290J3MgdWlkICovCkBAIC04MjUsOSArODI1LDkgQEAg Z2V0X2lkKHZvaWQpCiAJfQogI2VuZGlmCiAKLQl1c2VybmFtZSA9IGdldF91c2VyX25hbWVfb3Jf ZXhpdChwcm9nbmFtZSk7CisJdXNlciA9IGdldF91c2VyX25hbWVfb3JfZXhpdChwcm9nbmFtZSk7 CiAKLQlyZXR1cm4gcGdfc3RyZHVwKHVzZXJuYW1lKTsKKwlyZXR1cm4gcGdfc3RyZHVwKHVzZXIp OwogfQogCiBzdGF0aWMgY2hhciAqCkBAIC0xMDQ2LDE0ICsxMDQ2LDE0IEBAIHdyaXRlX3ZlcnNp b25fZmlsZShjb25zdCBjaGFyICpleHRyYXBhdGgpCiBzdGF0aWMgdm9pZAogc2V0X251bGxfY29u Zih2b2lkKQogewotCUZJTEUJICAgKmNvbmZfZmlsZTsKKwlGSUxFCSAgICpmaWxlOwogCWNoYXIJ ICAgKnBhdGg7CiAKIAlwYXRoID0gcHNwcmludGYoIiVzL3Bvc3RncmVzcWwuY29uZiIsIHBnX2Rh dGEpOwotCWNvbmZfZmlsZSA9IGZvcGVuKHBhdGgsIFBHX0JJTkFSWV9XKTsKLQlpZiAoY29uZl9m aWxlID09IE5VTEwpCisJZmlsZSA9IGZvcGVuKHBhdGgsIFBHX0JJTkFSWV9XKTsKKwlpZiAoZmls ZSA9PSBOVUxMKQogCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIgZm9yIHdy aXRpbmc6ICVtIiwgcGF0aCk7Ci0JaWYgKGZjbG9zZShjb25mX2ZpbGUpKQorCWlmIChmY2xvc2Uo ZmlsZSkpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgd3JpdGUgZmlsZSBcIiVzXCI6ICVtIiwgcGF0 aCk7CiAJZnJlZShwYXRoKTsKIH0KQEAgLTIxMzcsNyArMjEzNyw3IEBAIG15X3N0cmZ0aW1lKGNo YXIgKnMsIHNpemVfdCBtYXgsIGNvbnN0IGNoYXIgKmZtdCwgY29uc3Qgc3RydWN0IHRtICp0bSkK ICAqIERldGVybWluZSBsaWtlbHkgZGF0ZSBvcmRlciBmcm9tIGxvY2FsZQogICovCiBzdGF0aWMg aW50Ci1sb2NhbGVfZGF0ZV9vcmRlcihjb25zdCBjaGFyICpsb2NhbGUpCitsb2NhbGVfZGF0ZV9v cmRlcihjb25zdCBjaGFyICpteWxvY2FsZSkKIHsKIAlzdHJ1Y3QgdG0JdGVzdHRpbWU7CiAJY2hh cgkJYnVmWzEyOF07CkBAIC0yMTUyLDcgKzIxNTIsNyBAQCBsb2NhbGVfZGF0ZV9vcmRlcihjb25z dCBjaGFyICpsb2NhbGUpCiAKIAlzYXZlID0gc2F2ZV9nbG9iYWxfbG9jYWxlKExDX1RJTUUpOwog Ci0Jc2V0bG9jYWxlKExDX1RJTUUsIGxvY2FsZSk7CisJc2V0bG9jYWxlKExDX1RJTUUsIG15bG9j YWxlKTsKIAogCW1lbXNldCgmdGVzdHRpbWUsIDAsIHNpemVvZih0ZXN0dGltZSkpOwogCXRlc3R0 aW1lLnRtX21kYXkgPSAyMjsKQEAgLTIxOTYsMTQgKzIxOTYsMTQgQEAgbG9jYWxlX2RhdGVfb3Jk ZXIoY29uc3QgY2hhciAqbG9jYWxlKQogICogdGhpcyBzaG91bGQgbWF0Y2ggdGhlIGJhY2tlbmQn cyBjaGVja19sb2NhbGUoKSBmdW5jdGlvbgogICovCiBzdGF0aWMgdm9pZAotY2hlY2tfbG9jYWxl X25hbWUoaW50IGNhdGVnb3J5LCBjb25zdCBjaGFyICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUp CitjaGVja19sb2NhbGVfbmFtZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKm15bG9jYWxlLCBj aGFyICoqY2Fub25uYW1lKQogewogCXNhdmVfbG9jYWxlX3Qgc2F2ZTsKIAljaGFyCSAgICpyZXM7 CiAKIAkvKiBEb24ndCBsZXQgV2luZG93cycgbm9uLUFTQ0lJIGxvY2FsZSBuYW1lcyBpbi4gKi8K LQlpZiAobG9jYWxlICYmICFwZ19pc19hc2NpaShsb2NhbGUpKQotCQlwZ19mYXRhbCgibG9jYWxl IG5hbWUgXCIlc1wiIGNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIiwgbG9jYWxlKTsKKwlp ZiAobXlsb2NhbGUgJiYgIXBnX2lzX2FzY2lpKG15bG9jYWxlKSkKKwkJcGdfZmF0YWwoImxvY2Fs ZSBuYW1lIFwiJXNcIiBjb250YWlucyBub24tQVNDSUkgY2hhcmFjdGVycyIsIG15bG9jYWxlKTsK IAogCWlmIChjYW5vbm5hbWUpCiAJCSpjYW5vbm5hbWUgPSBOVUxMOwkJLyogaW4gY2FzZSBvZiBm YWlsdXJlICovCkBAIC0yMjExLDExICsyMjExLDExIEBAIGNoZWNrX2xvY2FsZV9uYW1lKGludCBj YXRlZ29yeSwgY29uc3QgY2hhciAqbG9jYWxlLCBjaGFyICoqY2Fub25uYW1lKQogCXNhdmUgPSBz YXZlX2dsb2JhbF9sb2NhbGUoY2F0ZWdvcnkpOwogCiAJLyogZm9yIHNldGxvY2FsZSgpIGNhbGwg Ki8KLQlpZiAoIWxvY2FsZSkKLQkJbG9jYWxlID0gIiI7CisJaWYgKCFteWxvY2FsZSkKKwkJbXls b2NhbGUgPSAiIjsKIAogCS8qIHNldCB0aGUgbG9jYWxlIHdpdGggc2V0bG9jYWxlLCB0byBzZWUg aWYgaXQgYWNjZXB0cyBpdC4gKi8KLQlyZXMgPSBzZXRsb2NhbGUoY2F0ZWdvcnksIGxvY2FsZSk7 CisJcmVzID0gc2V0bG9jYWxlKGNhdGVnb3J5LCBteWxvY2FsZSk7CiAKIAkvKiBzYXZlIGNhbm9u aWNhbCBuYW1lIGlmIHJlcXVlc3RlZC4gKi8KIAlpZiAocmVzICYmIGNhbm9ubmFtZSkKQEAgLTIy MjcsOSArMjIyNyw5IEBAIGNoZWNrX2xvY2FsZV9uYW1lKGludCBjYXRlZ29yeSwgY29uc3QgY2hh ciAqbG9jYWxlLCBjaGFyICoqY2Fub25uYW1lKQogCS8qIGNvbXBsYWluIGlmIGxvY2FsZSB3YXNu J3QgdmFsaWQgKi8KIAlpZiAocmVzID09IE5VTEwpCiAJewotCQlpZiAoKmxvY2FsZSkKKwkJaWYg KCpteWxvY2FsZSkKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJpbnZhbGlkIGxvY2FsZSBuYW1lIFwi JXNcIiIsIGxvY2FsZSk7CisJCQlwZ19sb2dfZXJyb3IoImludmFsaWQgbG9jYWxlIG5hbWUgXCIl c1wiIiwgbXlsb2NhbGUpOwogCQkJcGdfbG9nX2Vycm9yX2hpbnQoIklmIHRoZSBsb2NhbGUgbmFt ZSBpcyBzcGVjaWZpYyB0byBJQ1UsIHVzZSAtLWljdS1sb2NhbGUuIik7CiAJCQlleGl0KDEpOwog CQl9CkBAIC0yMjU5LDExICsyMjU5LDExIEBAIGNoZWNrX2xvY2FsZV9uYW1lKGludCBjYXRlZ29y eSwgY29uc3QgY2hhciAqbG9jYWxlLCBjaGFyICoqY2Fub25uYW1lKQogICogdGhpcyBzaG91bGQg bWF0Y2ggdGhlIHNpbWlsYXIgY2hlY2sgaW4gdGhlIGJhY2tlbmQgY3JlYXRlZGIoKSBmdW5jdGlv bgogICovCiBzdGF0aWMgYm9vbAotY2hlY2tfbG9jYWxlX2VuY29kaW5nKGNvbnN0IGNoYXIgKmxv Y2FsZSwgaW50IHVzZXJfZW5jKQorY2hlY2tfbG9jYWxlX2VuY29kaW5nKGNvbnN0IGNoYXIgKm15 bG9jYWxlLCBpbnQgdXNlcl9lbmMpCiB7CiAJaW50CQkJbG9jYWxlX2VuYzsKIAotCWxvY2FsZV9l bmMgPSBwZ19nZXRfZW5jb2RpbmdfZnJvbV9sb2NhbGUobG9jYWxlLCB0cnVlKTsKKwlsb2NhbGVf ZW5jID0gcGdfZ2V0X2VuY29kaW5nX2Zyb21fbG9jYWxlKG15bG9jYWxlLCB0cnVlKTsKIAogCS8q IFNlZSBub3RlcyBpbiBjcmVhdGVkYigpIHRvIHVuZGVyc3RhbmQgdGhlc2UgdGVzdHMgKi8KIAlp ZiAoIShsb2NhbGVfZW5jID09IHVzZXJfZW5jIHx8CkBAIC0yNTExLDExICsyNTExLDExIEBAIHNl dGxvY2FsZXModm9pZCkKICAqIHByaW50IGhlbHAgdGV4dAogICovCiBzdGF0aWMgdm9pZAotdXNh Z2UoY29uc3QgY2hhciAqcHJvZ25hbWUpCit1c2FnZShjb25zdCBjaGFyICpteXByb2duYW1lKQog ewotCXByaW50ZihfKCIlcyBpbml0aWFsaXplcyBhIFBvc3RncmVTUUwgZGF0YWJhc2UgY2x1c3Rl ci5cblxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiJXMgaW5pdGlhbGl6ZXMgYSBQb3N0Z3Jl U1FMIGRhdGFiYXNlIGNsdXN0ZXIuXG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiVXNh Z2U6XG4iKSk7Ci0JcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RBVEFESVJdXG4iKSwgcHJv Z25hbWUpOworCXByaW50ZihfKCIgICVzIFtPUFRJT05dLi4uIFtEQVRBRElSXVxuIiksIG15cHJv Z25hbWUpOwogCXByaW50ZihfKCJcbk9wdGlvbnM6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLUEsIC0t YXV0aD1NRVRIT0QgICAgICAgICBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBmb3IgbG9j YWwgY29ubmVjdGlvbnNcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1hdXRoLWhvc3Q9TUVUSE9E ICAgIGRlZmF1bHQgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciBsb2NhbCBUQ1AvSVAgY29ubmVj dGlvbnNcbiIpKTsKQEAgLTI1OTEsMTQgKzI1OTEsMTQgQEAgY2hlY2tfYXV0aG1ldGhvZF92YWxp ZChjb25zdCBjaGFyICphdXRobWV0aG9kLCBjb25zdCBjaGFyICpjb25zdCAqdmFsaWRfbWV0aG9k cywKIH0KIAogc3RhdGljIHZvaWQKLWNoZWNrX25lZWRfcGFzc3dvcmQoY29uc3QgY2hhciAqYXV0 aG1ldGhvZGxvY2FsLCBjb25zdCBjaGFyICphdXRobWV0aG9kaG9zdCkKLXsKLQlpZiAoKHN0cmNt cChhdXRobWV0aG9kbG9jYWwsICJtZDUiKSA9PSAwIHx8Ci0JCSBzdHJjbXAoYXV0aG1ldGhvZGxv Y2FsLCAicGFzc3dvcmQiKSA9PSAwIHx8Ci0JCSBzdHJjbXAoYXV0aG1ldGhvZGxvY2FsLCAic2Ny YW0tc2hhLTI1NiIpID09IDApICYmCi0JCShzdHJjbXAoYXV0aG1ldGhvZGhvc3QsICJtZDUiKSA9 PSAwIHx8Ci0JCSBzdHJjbXAoYXV0aG1ldGhvZGhvc3QsICJwYXNzd29yZCIpID09IDAgfHwKLQkJ IHN0cmNtcChhdXRobWV0aG9kaG9zdCwgInNjcmFtLXNoYS0yNTYiKSA9PSAwKSAmJgorY2hlY2tf bmVlZF9wYXNzd29yZChjb25zdCBjaGFyICpteWF1dGhtZXRob2Rsb2NhbCwgY29uc3QgY2hhciAq bXlhdXRobWV0aG9kaG9zdCkKK3sKKwlpZiAoKHN0cmNtcChteWF1dGhtZXRob2Rsb2NhbCwgIm1k NSIpID09IDAgfHwKKwkJIHN0cmNtcChteWF1dGhtZXRob2Rsb2NhbCwgInBhc3N3b3JkIikgPT0g MCB8fAorCQkgc3RyY21wKG15YXV0aG1ldGhvZGxvY2FsLCAic2NyYW0tc2hhLTI1NiIpID09IDAp ICYmCisJCShzdHJjbXAobXlhdXRobWV0aG9kaG9zdCwgIm1kNSIpID09IDAgfHwKKwkJIHN0cmNt cChteWF1dGhtZXRob2Rob3N0LCAicGFzc3dvcmQiKSA9PSAwIHx8CisJCSBzdHJjbXAobXlhdXRo bWV0aG9kaG9zdCwgInNjcmFtLXNoYS0yNTYiKSA9PSAwKSAmJgogCQkhKHB3cHJvbXB0IHx8IHB3 ZmlsZW5hbWUpKQogCQlwZ19mYXRhbCgibXVzdCBzcGVjaWZ5IGEgcGFzc3dvcmQgZm9yIHRoZSBz dXBlcnVzZXIgdG8gZW5hYmxlIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uIik7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2FtY2hlY2svcGdfYW1jaGVjay5jIGIvc3JjL2Jpbi9wZ19hbWNoZWNr L3BnX2FtY2hlY2suYwppbmRleCAyYjFmZDU2NmMzNS4uMDZhOTc3MTJlMTggMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfYW1jaGVjay9wZ19hbWNoZWNrLmMKKysrIGIvc3JjL2Jpbi9wZ19hbWNoZWNr L3BnX2FtY2hlY2suYwpAQCAtMTE4MCwxMSArMTE4MCwxMSBAQCB2ZXJpZnlfYnRyZWVfc2xvdF9o YW5kbGVyKFBHcmVzdWx0ICpyZXMsIFBHY29ubiAqY29ubiwgdm9pZCAqY29udGV4dCkKICAqIHBy b2duYW1lOiB0aGUgbmFtZSBvZiB0aGUgZXhlY3V0ZWQgcHJvZ3JhbSwgc3VjaCBhcyAicGdfYW1j aGVjayIKICAqLwogc3RhdGljIHZvaWQKLWhlbHAoY29uc3QgY2hhciAqcHJvZ25hbWUpCitoZWxw KGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7Ci0JcHJpbnRmKF8oIiVzIGNoZWNrcyBvYmplY3Rz IGluIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSBmb3IgY29ycnVwdGlvbi5cblxuIiksIHByb2duYW1l KTsKKwlwcmludGYoXygiJXMgY2hlY2tzIG9iamVjdHMgaW4gYSBQb3N0Z3JlU1FMIGRhdGFiYXNl IGZvciBjb3JydXB0aW9uLlxuXG4iKSwgbXlwcm9nbmFtZSk7CiAJcHJpbnRmKF8oIlVzYWdlOlxu IikpOwotCXByaW50ZihfKCIgICVzIFtPUFRJT05dLi4uIFtEQk5BTUVdXG4iKSwgcHJvZ25hbWUp OworCXByaW50ZihfKCIgICVzIFtPUFRJT05dLi4uIFtEQk5BTUVdXG4iKSwgbXlwcm9nbmFtZSk7 CiAJcHJpbnRmKF8oIlxuVGFyZ2V0IG9wdGlvbnM6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWEsIC0t YWxsICAgICAgICAgICAgICAgICAgICAgICBjaGVjayBhbGwgZGF0YWJhc2VzXG4iKSk7CiAJcHJp bnRmKF8oIiAgLWQsIC0tZGF0YWJhc2U9UEFUVEVSTiAgICAgICAgICBjaGVjayBtYXRjaGluZyBk YXRhYmFzZShzKVxuIikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Ny ZWF0ZXN1YnNjcmliZXIuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3Jp YmVyLmMKaW5kZXggY2M0YmU1ZDZlZjQuLjg0NjExNDMxNTVjIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCisrKyBiL3NyYy9iaW4vcGdfYmFz ZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKQEAgLTM2MywzMiArMzYzLDMyIEBAIGdldF9z dWJfY29ubmluZm8oY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQpCiAg KiBwYXRoIG9mIHRoZSBwcm9nbmFtZS4KICAqLwogc3RhdGljIGNoYXIgKgotZ2V0X2V4ZWNfcGF0 aChjb25zdCBjaGFyICphcmd2MCwgY29uc3QgY2hhciAqcHJvZ25hbWUpCitnZXRfZXhlY19wYXRo KGNvbnN0IGNoYXIgKmFyZ3YwLCBjb25zdCBjaGFyICpteXByb2duYW1lKQogewogCWNoYXIJICAg KnZlcnNpb25zdHI7CiAJY2hhcgkgICAqZXhlY19wYXRoOwogCWludAkJCXJldDsKIAotCXZlcnNp b25zdHIgPSBwc3ByaW50ZigiJXMgKFBvc3RncmVTUUwpICVzXG4iLCBwcm9nbmFtZSwgUEdfVkVS U0lPTik7CisJdmVyc2lvbnN0ciA9IHBzcHJpbnRmKCIlcyAoUG9zdGdyZVNRTCkgJXNcbiIsIG15 cHJvZ25hbWUsIFBHX1ZFUlNJT04pOwogCWV4ZWNfcGF0aCA9IHBnX21hbGxvYyhNQVhQR1BBVEgp OwotCXJldCA9IGZpbmRfb3RoZXJfZXhlYyhhcmd2MCwgcHJvZ25hbWUsIHZlcnNpb25zdHIsIGV4 ZWNfcGF0aCk7CisJcmV0ID0gZmluZF9vdGhlcl9leGVjKGFyZ3YwLCBteXByb2duYW1lLCB2ZXJz aW9uc3RyLCBleGVjX3BhdGgpOwogCiAJaWYgKHJldCA8IDApCiAJewogCQljaGFyCQlmdWxsX3Bh dGhbTUFYUEdQQVRIXTsKIAogCQlpZiAoZmluZF9teV9leGVjKGFyZ3YwLCBmdWxsX3BhdGgpIDwg MCkKLQkJCXN0cmxjcHkoZnVsbF9wYXRoLCBwcm9nbmFtZSwgc2l6ZW9mKGZ1bGxfcGF0aCkpOwor CQkJc3RybGNweShmdWxsX3BhdGgsIG15cHJvZ25hbWUsIHNpemVvZihmdWxsX3BhdGgpKTsKIAog CQlpZiAocmV0ID09IC0xKQogCQkJcGdfZmF0YWwoInByb2dyYW0gXCIlc1wiIGlzIG5lZWRlZCBi eSAlcyBidXQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgXCIlc1wiIiwK LQkJCQkJIHByb2duYW1lLCAicGdfY3JlYXRlc3Vic2NyaWJlciIsIGZ1bGxfcGF0aCk7CisJCQkJ CSBteXByb2duYW1lLCAicGdfY3JlYXRlc3Vic2NyaWJlciIsIGZ1bGxfcGF0aCk7CiAJCWVsc2UK IAkJCXBnX2ZhdGFsKCJwcm9ncmFtIFwiJXNcIiB3YXMgZm91bmQgYnkgXCIlc1wiIGJ1dCB3YXMg bm90IHRoZSBzYW1lIHZlcnNpb24gYXMgJXMiLAotCQkJCQkgcHJvZ25hbWUsIGZ1bGxfcGF0aCwg InBnX2NyZWF0ZXN1YnNjcmliZXIiKTsKKwkJCQkJIG15cHJvZ25hbWUsIGZ1bGxfcGF0aCwgInBn X2NyZWF0ZXN1YnNjcmliZXIiKTsKIAl9CiAKLQlwZ19sb2dfZGVidWcoIiVzIHBhdGggaXM6ICAl cyIsIHByb2duYW1lLCBleGVjX3BhdGgpOworCXBnX2xvZ19kZWJ1ZygiJXMgcGF0aCBpczogICVz IiwgbXlwcm9nbmFtZSwgZXhlY19wYXRoKTsKIAogCXJldHVybiBleGVjX3BhdGg7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29ubmVjdGRiLmMgYi9zcmMvYmluL3BnX2R1bXAvY29u bmVjdGRiLmMKaW5kZXggZDU1ZDUzZGJlZWEuLmEyYTFiYWQyNTRiIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvY29ubmVjdGRiLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2Nvbm5lY3RkYi5j CkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBjaGFyICpjb25zdHJ1Y3RDb25uU3RyKGNvbnN0IGNo YXIgKiprZXl3b3JkcywgY29uc3QgY2hhciAqKnZhbHVlcyk7CiBQR2Nvbm4gKgogQ29ubmVjdERh dGFiYXNlKGNvbnN0IGNoYXIgKmRibmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlvbl9zdHJpbmcs CiAJCQkJY29uc3QgY2hhciAqcGdob3N0LCBjb25zdCBjaGFyICpwZ3BvcnQsIGNvbnN0IGNoYXIg KnBndXNlciwKLQkJCQl0cml2YWx1ZSBwcm9tcHRfcGFzc3dvcmQsIGJvb2wgZmFpbF9vbl9lcnJv ciwgY29uc3QgY2hhciAqcHJvZ25hbWUsCisJCQkJdHJpdmFsdWUgcHJvbXB0X3Bhc3N3b3JkLCBi b29sIGZhaWxfb25fZXJyb3IsIGNvbnN0IGNoYXIgKm15cHJvZ25hbWUsCiAJCQkJY29uc3QgY2hh ciAqKmNvbm5zdHIsIGludCAqc2VydmVyX3ZlcnNpb24sIGNoYXIgKnBhc3N3b3JkLAogCQkJCWNo YXIgKm92ZXJyaWRlX2RibmFtZSkKIHsKQEAgLTIyMSw3ICsyMjEsNyBAQCBDb25uZWN0RGF0YWJh c2UoY29uc3QgY2hhciAqZGJuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX3N0cmluZywKIAl7 CiAJCXBnX2xvZ19lcnJvcigiYWJvcnRpbmcgYmVjYXVzZSBvZiBzZXJ2ZXIgdmVyc2lvbiBtaXNt YXRjaCIpOwogCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJzZXJ2ZXIgdmVyc2lvbjogJXM7ICVzIHZl cnNpb246ICVzIiwKLQkJCQkJCQlyZW1vdGV2ZXJzaW9uX3N0ciwgcHJvZ25hbWUsIFBHX1ZFUlNJ T04pOworCQkJCQkJCXJlbW90ZXZlcnNpb25fc3RyLCBteXByb2duYW1lLCBQR19WRVJTSU9OKTsK IAkJZXhpdF9uaWNlbHkoMSk7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhMDA5MThiYWNiNC4uNmI2 OGU3Njc0MzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTMwMSwxMSArMTMwMSwxMSBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAogCiBzdGF0aWMgdm9pZAotaGVscChjb25zdCBjaGFyICpwcm9n bmFtZSkKK2hlbHAoY29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMgZXhw b3J0cyBhIFBvc3RncmVTUUwgZGF0YWJhc2UgYXMgYW4gU1FMIHNjcmlwdCBvciB0byBvdGhlciBm b3JtYXRzLlxuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIlcyBleHBvcnRzIGEgUG9zdGdy ZVNRTCBkYXRhYmFzZSBhcyBhbiBTUUwgc2NyaXB0IG9yIHRvIG90aGVyIGZvcm1hdHMuXG5cbiIp LCBteXByb2duYW1lKTsKIAlwcmludGYoXygiVXNhZ2U6XG4iKSk7Ci0JcHJpbnRmKF8oIiAgJXMg W09QVElPTl0uLi4gW0RCTkFNRV1cbiIpLCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIiAgJXMgW09Q VElPTl0uLi4gW0RCTkFNRV1cbiIpLCBteXByb2duYW1lKTsKIAogCXByaW50ZihfKCJcbkdlbmVy YWwgb3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtZiwgLS1maWxlPUZJTEVOQU1FICAgICAg ICAgIG91dHB1dCBmaWxlIG9yIGRpcmVjdG9yeSBuYW1lXG4iKSk7CkBAIC0xNjQ5LDcgKzE2NDks NyBAQCBzdGF0aWMgdm9pZAogZXhwYW5kX3NjaGVtYV9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZv dXQsCiAJCQkJCQkJU2ltcGxlU3RyaW5nTGlzdCAqcGF0dGVybnMsCiAJCQkJCQkJU2ltcGxlT2lk TGlzdCAqb2lkcywKLQkJCQkJCQlib29sIHN0cmljdF9uYW1lcykKKwkJCQkJCQlib29sIHN0cmlj dCkKIHsKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAlQR3Jlc3VsdCAgICpyZXM7CkBAIC0xNjg1LDcg KzE2ODUsNyBAQCBleHBhbmRfc2NoZW1hX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJ dGVybVBRRXhwQnVmZmVyKCZkYmJ1Zik7CiAKIAkJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQs IHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwotCQlpZiAoc3RyaWN0X25hbWVzICYmIFBR bnR1cGxlcyhyZXMpID09IDApCisJCWlmIChzdHJpY3QgJiYgUFFudHVwbGVzKHJlcykgPT0gMCkK IAkJCXBnX2ZhdGFsKCJubyBtYXRjaGluZyBzY2hlbWFzIHdlcmUgZm91bmQgZm9yIHBhdHRlcm4g XCIlc1wiIiwgY2VsbC0+dmFsKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgUFFudHVwbGVzKHJlcyk7 IGkrKykKQEAgLTE3MDgsNyArMTcwOCw3IEBAIHN0YXRpYyB2b2lkCiBleHBhbmRfZXh0ZW5zaW9u X25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkgICBTaW1wbGVTdHJpbmdMaXN0 ICpwYXR0ZXJucywKIAkJCQkJCQkgICBTaW1wbGVPaWRMaXN0ICpvaWRzLAotCQkJCQkJCSAgIGJv b2wgc3RyaWN0X25hbWVzKQorCQkJCQkJCSAgIGJvb2wgc3RyaWN0KQogewogCVBRRXhwQnVmZmVy IHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKQEAgLTE3MzgsNyArMTczOCw3IEBAIGV4cGFuZF9l eHRlbnNpb25fbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAogCQkJCQkgY2VsbC0+dmFsKTsK IAogCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExF U19PSyk7Ci0JCWlmIChzdHJpY3RfbmFtZXMgJiYgUFFudHVwbGVzKHJlcykgPT0gMCkKKwkJaWYg KHN0cmljdCAmJiBQUW50dXBsZXMocmVzKSA9PSAwKQogCQkJcGdfZmF0YWwoIm5vIG1hdGNoaW5n IGV4dGVuc2lvbnMgd2VyZSBmb3VuZCBmb3IgcGF0dGVybiBcIiVzXCIiLCBjZWxsLT52YWwpOwog CiAJCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMocmVzKTsgaSsrKQpAQCAtMTgxMiw3ICsxODEy LDcgQEAgZXhwYW5kX2ZvcmVpZ25fc2VydmVyX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwK IHN0YXRpYyB2b2lkCiBleHBhbmRfdGFibGVfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAog CQkJCQkJICAgU2ltcGxlU3RyaW5nTGlzdCAqcGF0dGVybnMsIFNpbXBsZU9pZExpc3QgKm9pZHMs Ci0JCQkJCQkgICBib29sIHN0cmljdF9uYW1lcywgYm9vbCB3aXRoX2NoaWxkX3RhYmxlcykKKwkJ CQkJCSAgIGJvb2wgc3RyaWN0LCBib29sIHdpdGhfY2hpbGRfdGFibGVzKQogewogCVBRRXhwQnVm ZmVyIHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKQEAgLTE4ODQsNyArMTg4NCw3IEBAIGV4cGFu ZF90YWJsZV9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZvdXQsCiAJCXJlcyA9IEV4ZWN1dGVTcWxR dWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKIAkJUFFjbGVhcihFeGVj dXRlU3FsUXVlcnlGb3JTaW5nbGVSb3coZm91dCwKIAkJCQkJCQkJCQkJQUxXQVlTX1NFQ1VSRV9T RUFSQ0hfUEFUSF9TUUwpKTsKLQkJaWYgKHN0cmljdF9uYW1lcyAmJiBQUW50dXBsZXMocmVzKSA9 PSAwKQorCQlpZiAoc3RyaWN0ICYmIFBRbnR1cGxlcyhyZXMpID09IDApCiAJCQlwZ19mYXRhbCgi bm8gbWF0Y2hpbmcgdGFibGVzIHdlcmUgZm91bmQgZm9yIHBhdHRlcm4gXCIlc1wiIiwgY2VsbC0+ dmFsKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgUFFudHVwbGVzKHJlcyk7IGkrKykKQEAgLTEwODcw LDggKzEwODcwLDggQEAgZHVtcENvbW1lbnRFeHRlbmRlZChBcmNoaXZlICpmb3V0LCBjb25zdCBj aGFyICp0eXBlLAogCQkJCQljb25zdCBjaGFyICppbml0ZGJfY29tbWVudCkKIHsKIAlEdW1wT3B0 aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7Ci0JQ29tbWVudEl0ZW0gKmNvbW1lbnRzOwotCWludAkJ CW5jb21tZW50czsKKwlDb21tZW50SXRlbSAqY29tbWVudF9pdGVtczsKKwlpbnQJCQluX2NvbW1l bnRfaXRlbXM7CiAKIAkvKiBkbyBub3RoaW5nLCBpZiAtLW5vLWNvbW1lbnRzIGlzIHN1cHBsaWVk ICovCiAJaWYgKGRvcHQtPm5vX2NvbW1lbnRzKQpAQCAtMTA4OTEsMTYgKzEwODkxLDE2IEBAIGR1 bXBDb21tZW50RXh0ZW5kZWQoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlwZSwKIAl9CiAK IAkvKiBTZWFyY2ggZm9yIGNvbW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBjYXRhbG9nSWQsIHVzaW5n IHRhYmxlICovCi0JbmNvbW1lbnRzID0gZmluZENvbW1lbnRzKGNhdGFsb2dJZC50YWJsZW9pZCwg Y2F0YWxvZ0lkLm9pZCwKLQkJCQkJCQkgJmNvbW1lbnRzKTsKKwluX2NvbW1lbnRfaXRlbXMgPSBm aW5kQ29tbWVudHMoY2F0YWxvZ0lkLnRhYmxlb2lkLCBjYXRhbG9nSWQub2lkLAorCQkJCQkJCQkg ICAmY29tbWVudF9pdGVtcyk7CiAKIAkvKiBJcyB0aGVyZSBvbmUgbWF0Y2hpbmcgdGhlIHN1Ymlk PyAqLwotCXdoaWxlIChuY29tbWVudHMgPiAwKQorCXdoaWxlIChuX2NvbW1lbnRfaXRlbXMgPiAw KQogCXsKLQkJaWYgKGNvbW1lbnRzLT5vYmpzdWJpZCA9PSBzdWJpZCkKKwkJaWYgKGNvbW1lbnRf aXRlbXMtPm9ianN1YmlkID09IHN1YmlkKQogCQkJYnJlYWs7Ci0JCWNvbW1lbnRzKys7Ci0JCW5j b21tZW50cy0tOworCQljb21tZW50X2l0ZW1zKys7CisJCW5fY29tbWVudF9pdGVtcy0tOwogCX0K IAogCWlmIChpbml0ZGJfY29tbWVudCAhPSBOVUxMKQpAQCAtMTA5MTMsMTcgKzEwOTEzLDE3IEBA IGR1bXBDb21tZW50RXh0ZW5kZWQoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlwZSwKIAkJ ICogbm9uLXN1cGVydXNlciB1c2Ugb2YgcGdfZHVtcC4gIFdoZW4gdGhlIERCQSBoYXMgcmVtb3Zl ZCBpbml0ZGIncwogCQkgKiBjb21tZW50LCByZXBsaWNhdGUgdGhhdC4KIAkJICovCi0JCWlmIChu Y29tbWVudHMgPT0gMCkKKwkJaWYgKG5fY29tbWVudF9pdGVtcyA9PSAwKQogCQl7Ci0JCQljb21t ZW50cyA9ICZlbXB0eV9jb21tZW50OwotCQkJbmNvbW1lbnRzID0gMTsKKwkJCWNvbW1lbnRfaXRl bXMgPSAmZW1wdHlfY29tbWVudDsKKwkJCW5fY29tbWVudF9pdGVtcyA9IDE7CiAJCX0KIAkJZWxz ZSBpZiAoc3RyY21wKGNvbW1lbnRzLT5kZXNjciwgaW5pdGRiX2NvbW1lbnQpID09IDApCi0JCQlu Y29tbWVudHMgPSAwOworCQkJbl9jb21tZW50X2l0ZW1zID0gMDsKIAl9CiAKIAkvKiBJZiBhIGNv bW1lbnQgZXhpc3RzLCBidWlsZCBDT01NRU5UIE9OIHN0YXRlbWVudCAqLwotCWlmIChuY29tbWVu dHMgPiAwKQorCWlmIChuX2NvbW1lbnRfaXRlbXMgPiAwKQogCXsKIAkJUFFFeHBCdWZmZXIgcXVl cnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwogCQlQUUV4cEJ1ZmZlciB0YWcgPSBjcmVhdGVQUUV4 cEJ1ZmZlcigpOwpAQCAtMTA5MzIsNyArMTA5MzIsNyBAQCBkdW1wQ29tbWVudEV4dGVuZGVkKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IGNoYXIgKnR5cGUsCiAJCWlmIChuYW1lc3BhY2UgJiYgKm5hbWVz cGFjZSkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiJXMuIiwgZm10SWQobmFtZXNwYWNl KSk7CiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiJXMgSVMgIiwgbmFtZSk7Ci0JCWFwcGVu ZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgY29tbWVudHMtPmRlc2NyLCBmb3V0KTsKKwkJYXBwZW5k U3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjb21tZW50X2l0ZW1zLT5kZXNjciwgZm91dCk7CiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiO1xuIik7CiAKIAkJYXBwZW5kUFFFeHBCdWZmZXIo dGFnLCAiJXMgJXMiLCB0eXBlLCBuYW1lKTsKQEAgLTExMzg4LDggKzExMzg4LDggQEAgZHVtcFRh YmxlQ29tbWVudChBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbywKIAkJCQkg Y29uc3QgY2hhciAqcmVsdHlwZW5hbWUpCiB7CiAJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5k b3B0OwotCUNvbW1lbnRJdGVtICpjb21tZW50czsKLQlpbnQJCQluY29tbWVudHM7CisJQ29tbWVu dEl0ZW0gKmNvbW1lbnRfaXRlbXM7CisJaW50CQkJbl9jb21tZW50X2l0ZW1zOwogCVBRRXhwQnVm ZmVyIHF1ZXJ5OwogCVBRRXhwQnVmZmVyIHRhZzsKIApAQCAtMTE0MDIsMjEgKzExNDAyLDIxIEBA IGR1bXBUYWJsZUNvbW1lbnQoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8s CiAJCXJldHVybjsKIAogCS8qIFNlYXJjaCBmb3IgY29tbWVudHMgYXNzb2NpYXRlZCB3aXRoIHJl bGF0aW9uLCB1c2luZyB0YWJsZSAqLwotCW5jb21tZW50cyA9IGZpbmRDb21tZW50cyh0YmluZm8t PmRvYmouY2F0SWQudGFibGVvaWQsCi0JCQkJCQkJIHRiaW5mby0+ZG9iai5jYXRJZC5vaWQsCi0J CQkJCQkJICZjb21tZW50cyk7CisJbl9jb21tZW50X2l0ZW1zID0gZmluZENvbW1lbnRzKHRiaW5m by0+ZG9iai5jYXRJZC50YWJsZW9pZCwKKwkJCQkJCQkJICAgdGJpbmZvLT5kb2JqLmNhdElkLm9p ZCwKKwkJCQkJCQkJICAgJmNvbW1lbnRfaXRlbXMpOwogCiAJLyogSWYgY29tbWVudHMgZXhpc3Qs IGJ1aWxkIENPTU1FTlQgT04gc3RhdGVtZW50cyAqLwotCWlmIChuY29tbWVudHMgPD0gMCkKKwlp ZiAobl9jb21tZW50X2l0ZW1zIDw9IDApCiAJCXJldHVybjsKIAogCXF1ZXJ5ID0gY3JlYXRlUFFF eHBCdWZmZXIoKTsKIAl0YWcgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwogCi0Jd2hpbGUgKG5jb21t ZW50cyA+IDApCisJd2hpbGUgKG5fY29tbWVudF9pdGVtcyA+IDApCiAJewotCQljb25zdCBjaGFy ICpkZXNjciA9IGNvbW1lbnRzLT5kZXNjcjsKLQkJaW50CQkJb2Jqc3ViaWQgPSBjb21tZW50cy0+ b2Jqc3ViaWQ7CisJCWNvbnN0IGNoYXIgKmRlc2NyID0gY29tbWVudF9pdGVtcy0+ZGVzY3I7CisJ CWludAkJCW9ianN1YmlkID0gY29tbWVudF9pdGVtcy0+b2Jqc3ViaWQ7CiAKIAkJaWYgKG9ianN1 YmlkID09IDApCiAJCXsKQEAgLTExNDY2LDggKzExNDY2LDggQEAgZHVtcFRhYmxlQ29tbWVudChB cmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbywKIAkJCQkJCQkJCSAgLm5EZXBz ID0gMSkpOwogCQl9CiAKLQkJY29tbWVudHMrKzsKLQkJbmNvbW1lbnRzLS07CisJCWNvbW1lbnRf aXRlbXMrKzsKKwkJbl9jb21tZW50X2l0ZW1zLS07CiAJfQogCiAJZGVzdHJveVBRRXhwQnVmZmVy KHF1ZXJ5KTsKQEAgLTEzMTE2LDggKzEzMTE2LDggQEAgc3RhdGljIHZvaWQKIGR1bXBDb21wb3Np dGVUeXBlQ29sQ29tbWVudHMoQXJjaGl2ZSAqZm91dCwgY29uc3QgVHlwZUluZm8gKnR5aW5mbywK IAkJCQkJCQkgUEdyZXN1bHQgKnJlcykKIHsKLQlDb21tZW50SXRlbSAqY29tbWVudHM7Ci0JaW50 CQkJbmNvbW1lbnRzOworCUNvbW1lbnRJdGVtICpjb21tZW50X2l0ZW1zOworCWludAkJCW5fY29t bWVudF9pdGVtczsKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAlQUUV4cEJ1ZmZlciB0YXJnZXQ7CiAJ aW50CQkJaTsKQEAgLTEzMTMxLDExICsxMzEzMSwxMSBAQCBkdW1wQ29tcG9zaXRlVHlwZUNvbENv bW1lbnRzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFR5cGVJbmZvICp0eWluZm8sCiAJCXJldHVybjsK IAogCS8qIFNlYXJjaCBmb3IgY29tbWVudHMgYXNzb2NpYXRlZCB3aXRoIHR5cGUncyBwZ19jbGFz cyBPSUQgKi8KLQluY29tbWVudHMgPSBmaW5kQ29tbWVudHMoUmVsYXRpb25SZWxhdGlvbklkLCB0 eWluZm8tPnR5cHJlbGlkLAotCQkJCQkJCSAmY29tbWVudHMpOworCW5fY29tbWVudF9pdGVtcyA9 IGZpbmRDb21tZW50cyhSZWxhdGlvblJlbGF0aW9uSWQsIHR5aW5mby0+dHlwcmVsaWQsCisJCQkJ CQkJCSAgICZjb21tZW50X2l0ZW1zKTsKIAogCS8qIElmIG5vIGNvbW1lbnRzIGV4aXN0LCB3ZSdy ZSBkb25lICovCi0JaWYgKG5jb21tZW50cyA8PSAwKQorCWlmIChuX2NvbW1lbnRfaXRlbXMgPD0g MCkKIAkJcmV0dXJuOwogCiAJLyogQnVpbGQgQ09NTUVOVCBPTiBzdGF0ZW1lbnRzICovCkBAIC0x MzE0NiwxNCArMTMxNDYsMTQgQEAgZHVtcENvbXBvc2l0ZVR5cGVDb2xDb21tZW50cyhBcmNoaXZl ICpmb3V0LCBjb25zdCBUeXBlSW5mbyAqdHlpbmZvLAogCWlfYXR0bnVtID0gUFFmbnVtYmVyKHJl cywgImF0dG51bSIpOwogCWlfYXR0bmFtZSA9IFBRZm51bWJlcihyZXMsICJhdHRuYW1lIik7CiAJ aV9hdHRpc2Ryb3BwZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0aXNkcm9wcGVkIik7Ci0Jd2hpbGUg KG5jb21tZW50cyA+IDApCisJd2hpbGUgKG5fY29tbWVudF9pdGVtcyA+IDApCiAJewogCQljb25z dCBjaGFyICphdHRuYW1lOwogCiAJCWF0dG5hbWUgPSBOVUxMOwogCQlmb3IgKGkgPSAwOyBpIDwg bnR1cHM7IGkrKykKIAkJewotCQkJaWYgKGF0b2koUFFnZXR2YWx1ZShyZXMsIGksIGlfYXR0bnVt KSkgPT0gY29tbWVudHMtPm9ianN1YmlkICYmCisJCQlpZiAoYXRvaShQUWdldHZhbHVlKHJlcywg aSwgaV9hdHRudW0pKSA9PSBjb21tZW50X2l0ZW1zLT5vYmpzdWJpZCAmJgogCQkJCVBRZ2V0dmFs dWUocmVzLCBpLCBpX2F0dGlzZHJvcHBlZClbMF0gIT0gJ3QnKQogCQkJewogCQkJCWF0dG5hbWUg PSBQUWdldHZhbHVlKHJlcywgaSwgaV9hdHRuYW1lKTsKQEAgLTEzMTYyLDcgKzEzMTYyLDcgQEAg ZHVtcENvbXBvc2l0ZVR5cGVDb2xDb21tZW50cyhBcmNoaXZlICpmb3V0LCBjb25zdCBUeXBlSW5m byAqdHlpbmZvLAogCQl9CiAJCWlmIChhdHRuYW1lKQkJCS8qIGp1c3QgaW4gY2FzZSB3ZSBkb24n dCBmaW5kIGl0ICovCiAJCXsKLQkJCWNvbnN0IGNoYXIgKmRlc2NyID0gY29tbWVudHMtPmRlc2Ny OworCQkJY29uc3QgY2hhciAqZGVzY3IgPSBjb21tZW50X2l0ZW1zLT5kZXNjcjsKIAogCQkJcmVz ZXRQUUV4cEJ1ZmZlcih0YXJnZXQpOwogCQkJYXBwZW5kUFFFeHBCdWZmZXIodGFyZ2V0LCAiQ09M VU1OICVzLiIsCkBAIC0xMzE4Nyw4ICsxMzE4Nyw4IEBAIGR1bXBDb21wb3NpdGVUeXBlQ29sQ29t bWVudHMoQXJjaGl2ZSAqZm91dCwgY29uc3QgVHlwZUluZm8gKnR5aW5mbywKIAkJCQkJCQkJCSAg Lm5EZXBzID0gMSkpOwogCQl9CiAKLQkJY29tbWVudHMrKzsKLQkJbmNvbW1lbnRzLS07CisJCWNv bW1lbnRfaXRlbXMrKzsKKwkJbl9jb21tZW50X2l0ZW1zLS07CiAJfQogCiAJZGVzdHJveVBRRXhw QnVmZmVyKHF1ZXJ5KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCmluZGV4IGM5Nzc2MzA2YzVjLi41Zjc3OGVj OWU3NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC01MTcsMTEgKzUxNywxMSBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIH0KIAogc3RhdGljIHZvaWQKLXVzYWdlKGNvbnN0IGNoYXIgKnBy b2duYW1lKQordXNhZ2UoY29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMg cmVzdG9yZXMgYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGZyb20gYW4gYXJjaGl2ZSBjcmVhdGVkIGJ5 IHBnX2R1bXAuXG5cbiIpLCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIiVzIHJlc3RvcmVzIGEgUG9z dGdyZVNRTCBkYXRhYmFzZSBmcm9tIGFuIGFyY2hpdmUgY3JlYXRlZCBieSBwZ19kdW1wLlxuXG4i KSwgbXlwcm9nbmFtZSk7CiAJcHJpbnRmKF8oIlVzYWdlOlxuIikpOwotCXByaW50ZihfKCIgICVz IFtPUFRJT05dLi4uIFtGSUxFXVxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiICAlcyBbT1BU SU9OXS4uLiBbRklMRV1cbiIpLCBteXByb2duYW1lKTsKIAogCXByaW50ZihfKCJcbkdlbmVyYWwg b3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtZCwgLS1kYm5hbWU9TkFNRSAgICAgICAgY29u bmVjdCB0byBkYXRhYmFzZSBuYW1lXG4iKSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jld2lu ZC9wZ19yZXdpbmQuYyBiL3NyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jCmluZGV4IGU5MzY0 ZDA0Zjc2Li40YmFjZDllOWQzNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXdpbmQvcGdfcmV3 aW5kLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvcGdfcmV3aW5kLmMKQEAgLTg5LDkgKzg5LDkg QEAgc3RhdGljIFBHY29ubiAqY29ubjsKIHN0YXRpYyByZXdpbmRfc291cmNlICpzb3VyY2U7CiAK IHN0YXRpYyB2b2lkCi11c2FnZShjb25zdCBjaGFyICpwcm9nbmFtZSkKK3VzYWdlKGNvbnN0IGNo YXIgKm15cHJvZ25hbWUpCiB7Ci0JcHJpbnRmKF8oIiVzIHJlc3luY2hyb25pemVzIGEgUG9zdGdy ZVNRTCBjbHVzdGVyIHdpdGggYW5vdGhlciBjb3B5IG9mIHRoZSBjbHVzdGVyLlxuXG4iKSwgcHJv Z25hbWUpOworCXByaW50ZihfKCIlcyByZXN5bmNocm9uaXplcyBhIFBvc3RncmVTUUwgY2x1c3Rl ciB3aXRoIGFub3RoZXIgY29weSBvZiB0aGUgY2x1c3Rlci5cblxuIiksIG15cHJvZ25hbWUpOwog CXByaW50ZihfKCJVc2FnZTpcbiAgJXMgW09QVElPTl0uLi5cblxuIiksIHByb2duYW1lKTsKIAlw cmludGYoXygiT3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1yZXN0b3JlLXRhcmdl dC13YWwgICAgICAgdXNlIFwicmVzdG9yZV9jb21tYW5kXCIgaW4gdGFyZ2V0IGNvbmZpZ3VyYXRp b24gdG9cbiIKQEAgLTU2MSw3ICs1NjEsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK ICAqIHRhcmdldCBhbmQgdGhlIHNvdXJjZS4KICAqLwogc3RhdGljIHZvaWQKLXBlcmZvcm1fcmV3 aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3aW5kX3NvdXJjZSAqc291cmNlLAorcGVyZm9ybV9y ZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpyZXdpbmRzb3VyY2UsCiAJ CQkgICBYTG9nUmVjUHRyIGNoa3B0cmVjLAogCQkJICAgVGltZUxpbmVJRCBjaGtwdHRsaSwKIAkJ CSAgIFhMb2dSZWNQdHIgY2hrcHRyZWRvKQpAQCAtNTk1LDcgKzU5NSw3IEBAIHBlcmZvcm1fcmV3 aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3aW5kX3NvdXJjZSAqc291cmNlLAogCQkJd2hpbGUg KGRhdGFwYWdlbWFwX25leHQoaXRlciwgJmJsa25vKSkKIAkJCXsKIAkJCQlvZmZzZXQgPSBibGtu byAqIEJMQ0tTWjsKLQkJCQlzb3VyY2UtPnF1ZXVlX2ZldGNoX3JhbmdlKHNvdXJjZSwgZW50cnkt PnBhdGgsIG9mZnNldCwgQkxDS1NaKTsKKwkJCQlyZXdpbmRzb3VyY2UtPnF1ZXVlX2ZldGNoX3Jh bmdlKHJld2luZHNvdXJjZSwgZW50cnktPnBhdGgsIG9mZnNldCwgQkxDS1NaKTsKIAkJCX0KIAkJ CXBnX2ZyZWUoaXRlcik7CiAJCX0KQEAgLTYwNyw3ICs2MDcsNyBAQCBwZXJmb3JtX3Jld2luZChm aWxlbWFwX3QgKmZpbGVtYXAsIHJld2luZF9zb3VyY2UgKnNvdXJjZSwKIAkJCQlicmVhazsKIAog CQkJY2FzZSBGSUxFX0FDVElPTl9DT1BZOgotCQkJCXNvdXJjZS0+cXVldWVfZmV0Y2hfZmlsZShz b3VyY2UsIGVudHJ5LT5wYXRoLCBlbnRyeS0+c291cmNlX3NpemUpOworCQkJCXJld2luZHNvdXJj ZS0+cXVldWVfZmV0Y2hfZmlsZShyZXdpbmRzb3VyY2UsIGVudHJ5LT5wYXRoLCBlbnRyeS0+c291 cmNlX3NpemUpOwogCQkJCWJyZWFrOwogCiAJCQljYXNlIEZJTEVfQUNUSU9OX1RSVU5DQVRFOgpA QCAtNjE1LDkgKzYxNSw5IEBAIHBlcmZvcm1fcmV3aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3 aW5kX3NvdXJjZSAqc291cmNlLAogCQkJCWJyZWFrOwogCiAJCQljYXNlIEZJTEVfQUNUSU9OX0NP UFlfVEFJTDoKLQkJCQlzb3VyY2UtPnF1ZXVlX2ZldGNoX3JhbmdlKHNvdXJjZSwgZW50cnktPnBh dGgsCi0JCQkJCQkJCQkJICBlbnRyeS0+dGFyZ2V0X3NpemUsCi0JCQkJCQkJCQkJICBlbnRyeS0+ c291cmNlX3NpemUgLSBlbnRyeS0+dGFyZ2V0X3NpemUpOworCQkJCXJld2luZHNvdXJjZS0+cXVl dWVfZmV0Y2hfcmFuZ2UocmV3aW5kc291cmNlLCBlbnRyeS0+cGF0aCwKKwkJCQkJCQkJCQkJCWVu dHJ5LT50YXJnZXRfc2l6ZSwKKwkJCQkJCQkJCQkJCWVudHJ5LT5zb3VyY2Vfc2l6ZSAtIGVudHJ5 LT50YXJnZXRfc2l6ZSk7CiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRklMRV9BQ1RJT05fUkVNT1ZF OgpAQCAtNjM1LDcgKzYzNSw3IEBAIHBlcmZvcm1fcmV3aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwg cmV3aW5kX3NvdXJjZSAqc291cmNlLAogCX0KIAogCS8qIENvbXBsZXRlIGFueSByZW1haW5pbmcg cmFuZ2UtZmV0Y2hlcyB0aGF0IHdlIHF1ZXVlZCB1cCBhYm92ZS4gKi8KLQlzb3VyY2UtPmZpbmlz aF9mZXRjaChzb3VyY2UpOworCXJld2luZHNvdXJjZS0+ZmluaXNoX2ZldGNoKHJld2luZHNvdXJj ZSk7CiAKIAljbG9zZV90YXJnZXRfZmlsZSgpOwogCkBAIC02NDUsNyArNjQ1LDcgQEAgcGVyZm9y bV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJICog RmV0Y2ggdGhlIGNvbnRyb2wgZmlsZSBmcm9tIHRoZSBzb3VyY2UgbGFzdC4gVGhpcyBlbnN1cmVz IHRoYXQgdGhlCiAJICogbWluUmVjb3ZlcnlQb2ludCBpcyB1cC10by1kYXRlLgogCSAqLwotCWJ1 ZmZlciA9IHNvdXJjZS0+ZmV0Y2hfZmlsZShzb3VyY2UsIFhMT0dfQ09OVFJPTF9GSUxFLCAmc2l6 ZSk7CisJYnVmZmVyID0gcmV3aW5kc291cmNlLT5mZXRjaF9maWxlKHJld2luZHNvdXJjZSwgWExP R19DT05UUk9MX0ZJTEUsICZzaXplKTsKIAlkaWdlc3RDb250cm9sRmlsZSgmQ29udHJvbEZpbGVf c291cmNlX2FmdGVyLCBidWZmZXIsIHNpemUpOwogCXBnX2ZyZWUoYnVmZmVyKTsKIApAQCAtNzE3 LDcgKzcxNyw3IEBAIHBlcmZvcm1fcmV3aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3aW5kX3Nv dXJjZSAqc291cmNlLAogCQkJaWYgKENvbnRyb2xGaWxlX3NvdXJjZV9hZnRlci5zdGF0ZSAhPSBE Ql9JTl9QUk9EVUNUSU9OKQogCQkJCXBnX2ZhdGFsKCJzb3VyY2Ugc3lzdGVtIHdhcyBpbiB1bmV4 cGVjdGVkIHN0YXRlIGF0IGVuZCBvZiByZXdpbmQiKTsKIAotCQkJZW5kcmVjID0gc291cmNlLT5n ZXRfY3VycmVudF93YWxfaW5zZXJ0X2xzbihzb3VyY2UpOworCQkJZW5kcmVjID0gcmV3aW5kc291 cmNlLT5nZXRfY3VycmVudF93YWxfaW5zZXJ0X2xzbihyZXdpbmRzb3VyY2UpOwogCQkJZW5kdGxp ID0gTWF4KENvbnRyb2xGaWxlX3NvdXJjZV9hZnRlci5jaGVja1BvaW50Q29weS5UaGlzVGltZUxp bmVJRCwKIAkJCQkJCSBDb250cm9sRmlsZV9zb3VyY2VfYWZ0ZXIubWluUmVjb3ZlcnlQb2ludFRM SSk7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmMg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZWNwZy5jCmluZGV4IDNmMGYxMGU2NTRhLi41 MjU5ODhhMjMwMiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcu YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZWNwZy5jCkBAIC0zMiwxMyArMzIs MTMgQEAgc3RydWN0IF9kZWZpbmVzICpkZWZpbmVzID0gTlVMTDsKIHN0cnVjdCBkZWNsYXJlZF9s aXN0ICpnX2RlY2xhcmVkX2xpc3QgPSBOVUxMOwogCiBzdGF0aWMgdm9pZAotaGVscChjb25zdCBj aGFyICpwcm9nbmFtZSkKK2hlbHAoY29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKIAlwcmludGYo XygiJXMgaXMgdGhlIFBvc3RncmVTUUwgZW1iZWRkZWQgU1FMIHByZXByb2Nlc3NvciBmb3IgQyBw cm9ncmFtcy5cblxuIiksCi0JCSAgIHByb2duYW1lKTsKKwkJICAgbXlwcm9nbmFtZSk7CiAJcHJp bnRmKF8oIlVzYWdlOlxuIgogCQkJICIgICVzIFtPUFRJT05dLi4uIEZJTEUuLi5cblxuIiksCi0J CSAgIHByb2duYW1lKTsKKwkJICAgbXlwcm9nbmFtZSk7CiAJcHJpbnRmKF8oIk9wdGlvbnM6XG4i KSk7CiAJcHJpbnRmKF8oIiAgLWMgICAgICAgICAgICAgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBD IGNvZGUgZnJvbSBlbWJlZGRlZCBTUUwgY29kZTtcbiIKIAkJCSAiICAgICAgICAgICAgICAgICB0 aGlzIGFmZmVjdHMgRVhFQyBTUUwgVFlQRVxuIikpOwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0010-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v2-0010-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocr9 RnJvbSBhNzA3YTVhN2Q5YjRjOTc5NTQ0MTIyMWQ0MmVkMDFmODA1YmI1ZWVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE1OjI2OjUxICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAxMC8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIHNldmVyYWwgZmlsZXMKClRoaXMgY29tbWl0IGZpeGVzIG11bHRpcGxl IGNhc2VzIHdoZXJlIGxvY2FsIHZhcmlhYmxlcyB1c2VkIG5hbWVzIHRoYXQKY29uZmxpY3RlZCB3 aXRoIHN0YXRpYyB2YXJpYWJsZXMgZGVmaW5lZCBhdCBmaWxlIHNjb3BlLiBUaGUgYWZmZWN0ZWQK bG9jYWxzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFkb3dlZCBieSB0aGUg ZmlsZS1zY29wZQppZGVudGlmaWVycyBhbmQgcmVtYWluIHVuYW1iaWd1b3VzIHdpdGhpbiB0aGVp ciByZXNwZWN0aXZlIHNjb3Blcy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0SExKMz1qZkMr cDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDYgKysrLS0tCiBzcmMvYmluL3BnX2N0bC9wZ19j dGwuYyAgICAgICAgICAgICAgIHwgNiArKystLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxs LmMgICAgICAgICAgfCA2ICsrKy0tLQogc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5j ICAgICB8IDYgKysrLS0tCiBzcmMvYmluL3BnX3Rlc3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jIHwg NiArKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggMGUxYTc0OTc2Zjcu LjBlZTQzMjJmZmUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTQ3 MSw3ICs0NzEsNyBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4 dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkgKiBUaGlzIGFycmF5IGhhcyB0byBiZSBpbiB0 aGUgc2FtZSBvcmRlciBhcyBlbnVtIEV4cHJFdmFsT3AuCiAJICovCiAjaWYgZGVmaW5lZChFRU9f VVNFX0NPTVBVVEVEX0dPVE8pCi0Jc3RhdGljIGNvbnN0IHZvaWQgKmNvbnN0IGRpc3BhdGNoX3Rh YmxlW10gPSB7CisJc3RhdGljIGNvbnN0IHZvaWQgKmNvbnN0IF9kaXNwYXRjaF90YWJsZVtdID0g ewogCQkmJkNBU0VfRUVPUF9ET05FX1JFVFVSTiwKIAkJJiZDQVNFX0VFT1BfRE9ORV9OT19SRVRV Uk4sCiAJCSYmQ0FTRV9FRU9QX0lOTkVSX0ZFVENIU09NRSwKQEAgLTU5NSwxMSArNTk1LDExIEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9MQVNUCiAJfTsKIAotCVN0YXRpY0Fzc2VydERl Y2wobGVuZ3Rob2YoZGlzcGF0Y2hfdGFibGUpID09IEVFT1BfTEFTVCArIDEsCisJU3RhdGljQXNz ZXJ0RGVjbChsZW5ndGhvZihfZGlzcGF0Y2hfdGFibGUpID09IEVFT1BfTEFTVCArIDEsCiAJCQkJ CSAiZGlzcGF0Y2hfdGFibGUgb3V0IG9mIHdoYWNrIHdpdGggRXhwckV2YWxPcCIpOwogCiAJaWYg KHVubGlrZWx5KHN0YXRlID09IE5VTEwpKQotCQlyZXR1cm4gUG9pbnRlckdldERhdHVtKGRpc3Bh dGNoX3RhYmxlKTsKKwkJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShfZGlzcGF0Y2hfdGFibGUpOwog I2Vsc2UKIAlBc3NlcnQoc3RhdGUgIT0gTlVMTCk7CiAjZW5kaWYJCQkJCQkJLyogRUVPX1VTRV9D T01QVVRFRF9HT1RPICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYyBiL3Ny Yy9iaW4vcGdfY3RsL3BnX2N0bC5jCmluZGV4IDRmNjY2ZDkxMDM2Li5kMmI4ZDgzZDFjYSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKKysrIGIvc3JjL2Jpbi9wZ19jdGwvcGdf Y3RsLmMKQEAgLTg3MywxOCArODczLDE4IEBAIHRyYXBfc2lnaW50X2R1cmluZ19zdGFydHVwKFNJ R05BTF9BUkdTKQogfQogCiBzdGF0aWMgY2hhciAqCi1maW5kX290aGVyX2V4ZWNfb3JfZGllKGNv bnN0IGNoYXIgKmFyZ3YwLCBjb25zdCBjaGFyICp0YXJnZXQsIGNvbnN0IGNoYXIgKnZlcnNpb25z dHIpCitmaW5kX290aGVyX2V4ZWNfb3JfZGllKGNvbnN0IGNoYXIgKm15YXJndjAsIGNvbnN0IGNo YXIgKnRhcmdldCwgY29uc3QgY2hhciAqdmVyc2lvbnN0cikKIHsKIAlpbnQJCQlyZXQ7CiAJY2hh cgkgICAqZm91bmRfcGF0aDsKIAogCWZvdW5kX3BhdGggPSBwZ19tYWxsb2MoTUFYUEdQQVRIKTsK IAotCWlmICgocmV0ID0gZmluZF9vdGhlcl9leGVjKGFyZ3YwLCB0YXJnZXQsIHZlcnNpb25zdHIs IGZvdW5kX3BhdGgpKSA8IDApCisJaWYgKChyZXQgPSBmaW5kX290aGVyX2V4ZWMobXlhcmd2MCwg dGFyZ2V0LCB2ZXJzaW9uc3RyLCBmb3VuZF9wYXRoKSkgPCAwKQogCXsKIAkJY2hhcgkJZnVsbF9w YXRoW01BWFBHUEFUSF07CiAKLQkJaWYgKGZpbmRfbXlfZXhlYyhhcmd2MCwgZnVsbF9wYXRoKSA8 IDApCisJCWlmIChmaW5kX215X2V4ZWMobXlhcmd2MCwgZnVsbF9wYXRoKSA8IDApCiAJCQlzdHJs Y3B5KGZ1bGxfcGF0aCwgcHJvZ25hbWUsIHNpemVvZihmdWxsX3BhdGgpKTsKIAogCQlpZiAocmV0 ID09IC0xKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKaW5kZXggYmI0NTFjMWJhZTEuLjVkYzA2YjRkMmI5IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wYWxsLmMKQEAgLTE4MTQsMjAgKzE4MTQsMjAgQEAgZHVtcFRpbWVzdGFtcChj b25zdCBjaGFyICptc2cpCiAgKiByZWFkX2R1bXBhbGxfZmlsdGVycyAtIHJldHJpZXZlIGRhdGFi YXNlIGlkZW50aWZpZXIgcGF0dGVybnMgZnJvbSBmaWxlCiAgKgogICogUGFyc2UgdGhlIHNwZWNp ZmllZCBmaWx0ZXIgZmlsZSBmb3IgaW5jbHVkZSBhbmQgZXhjbHVkZSBwYXR0ZXJucywgYW5kIGFk ZAotICogdGhlbSB0byB0aGUgcmVsZXZhbnQgbGlzdHMuICBJZiB0aGUgZmlsZW5hbWUgaXMgIi0i IHRoZW4gZmlsdGVycyB3aWxsIGJlCisgKiB0aGVtIHRvIHRoZSByZWxldmFudCBsaXN0cy4gIElm IHRoZSBmbmFtZSBpcyAiLSIgdGhlbiBmaWx0ZXJzIHdpbGwgYmUKICAqIHJlYWQgZnJvbSBTVERJ TiByYXRoZXIgdGhhbiBhIGZpbGUuCiAgKgogICogQXQgdGhlIG1vbWVudCwgdGhlIG9ubHkgYWxs b3dlZCBmaWx0ZXIgaXMgZm9yIGRhdGFiYXNlIGV4Y2x1c2lvbi4KICAqLwogc3RhdGljIHZvaWQK LXJlYWRfZHVtcGFsbF9maWx0ZXJzKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBTaW1wbGVTdHJpbmdM aXN0ICpwYXR0ZXJuKQorcmVhZF9kdW1wYWxsX2ZpbHRlcnMoY29uc3QgY2hhciAqZm5hbWUsIFNp bXBsZVN0cmluZ0xpc3QgKnBhdHRlcm4pCiB7CiAJRmlsdGVyU3RhdGVEYXRhIGZzdGF0ZTsKIAlj aGFyCSAgICpvYmpuYW1lOwogCUZpbHRlckNvbW1hbmRUeXBlIGNvbXR5cGU7CiAJRmlsdGVyT2Jq ZWN0VHlwZSBvYmp0eXBlOwogCi0JZmlsdGVyX2luaXQoJmZzdGF0ZSwgZmlsZW5hbWUsIGV4aXQp OworCWZpbHRlcl9pbml0KCZmc3RhdGUsIGZuYW1lLCBleGl0KTsKIAogCXdoaWxlIChmaWx0ZXJf cmVhZF9pdGVtKCZmc3RhdGUsICZvYmpuYW1lLCAmY29tdHlwZSwgJm9ianR5cGUpKQogCXsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdf cmVzZXR3YWwvcGdfcmVzZXR3YWwuYwppbmRleCA4ZDVkOTgwNTI3OS4uNWI1MjQ5NTM3ZTYgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmlu L3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKQEAgLTcxOSwxNSArNzE5LDE1IEBAIEd1ZXNzQ29u dHJvbFZhbHVlcyh2b2lkKQogCiAKIC8qCi0gKiBQcmludCB0aGUgZ3Vlc3NlZCBwZ19jb250cm9s IHZhbHVlcyB3aGVuIHdlIGhhZCB0byBndWVzcy4KKyAqIFByaW50IHRoZSBiR3Vlc3NlZCBwZ19j b250cm9sIHZhbHVlcyB3aGVuIHdlIGhhZCB0byBndWVzcy4KICAqCiAgKiBOQjogdGhpcyBkaXNw bGF5IHNob3VsZCBiZSBqdXN0IHRob3NlIGZpZWxkcyB0aGF0IHdpbGwgbm90IGJlCiAgKiByZXNl dCBieSBSZXdyaXRlQ29udHJvbEZpbGUoKS4KICAqLwogc3RhdGljIHZvaWQKLVByaW50Q29udHJv bFZhbHVlcyhib29sIGd1ZXNzZWQpCitQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBiR3Vlc3NlZCkK IHsKLQlpZiAoZ3Vlc3NlZCkKKwlpZiAoYkd1ZXNzZWQpCiAJCXByaW50ZihfKCJHdWVzc2VkIHBn X2NvbnRyb2wgdmFsdWVzOlxuXG4iKSk7CiAJZWxzZQogCQlwcmludGYoXygiQ3VycmVudCBwZ19j b250cm9sIHZhbHVlczpcblxuIikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ190ZXN0X2ZzeW5j L3BnX3Rlc3RfZnN5bmMuYyBiL3NyYy9iaW4vcGdfdGVzdF9mc3luYy9wZ190ZXN0X2ZzeW5jLmMK aW5kZXggMDA2MGVhMTU5MDIuLmQzOTNiMGVjZmIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Rl c3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jCisrKyBiL3NyYy9iaW4vcGdfdGVzdF9mc3luYy9wZ190 ZXN0X2ZzeW5jLmMKQEAgLTYyNSwxMCArNjI1LDEwIEBAIHBnX2ZzeW5jX3dyaXRldGhyb3VnaChp bnQgZmQpCiAgKiBwcmludCBvdXQgdGhlIHdyaXRlcyBwZXIgc2Vjb25kIGZvciB0ZXN0cwogICov CiBzdGF0aWMgdm9pZAotcHJpbnRfZWxhcHNlKHN0cnVjdCB0aW1ldmFsIHN0YXJ0X3QsIHN0cnVj dCB0aW1ldmFsIHN0b3BfdCwgaW50IG9wcykKK3ByaW50X2VsYXBzZShzdHJ1Y3QgdGltZXZhbCBz dGFydF90aW1lLCBzdHJ1Y3QgdGltZXZhbCBzdG9wX3RpbWUsIGludCBvcHMpCiB7Ci0JZG91Ymxl CQl0b3RhbF90aW1lID0gKHN0b3BfdC50dl9zZWMgLSBzdGFydF90LnR2X3NlYykgKwotCQkoc3Rv cF90LnR2X3VzZWMgLSBzdGFydF90LnR2X3VzZWMpICogMC4wMDAwMDE7CisJZG91YmxlCQl0b3Rh bF90aW1lID0gKHN0b3BfdGltZS50dl9zZWMgLSBzdGFydF90aW1lLnR2X3NlYykgKworCQkoc3Rv cF90aW1lLnR2X3VzZWMgLSBzdGFydF90aW1lLnR2X3VzZWMpICogMC4wMDAwMDE7CiAJZG91Ymxl CQlwZXJfc2Vjb25kID0gb3BzIC8gdG90YWxfdGltZTsKIAlkb3VibGUJCWF2Z19vcF90aW1lX3Vz ID0gKHRvdGFsX3RpbWUgLyBvcHMpICogVVNFQ1NfU0VDOwogCi0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0013-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v2-0013-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0oct12 RnJvbSAzNjdiNjdkNTdhZTZkNzkxMjk4ZWE3OTZjMGQ2Y2QxNzMzNTc5MTFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogV2VkLCAzIERlYyAyMDI1IDA4OjQ0OjQ2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAxMy8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGFj cm9zcyB0aW1lLXJlbGF0ZWQgbW9kdWxlcwoKVGhpcyBjb21taXQgcmVuYW1lcyBzZXZlcmFsIGxv Y2FsIHZhcmlhYmxlcyBpbiBkYXRlL3RpbWUgYW5kIHRpbWV6b25lCmNvZGUgdGhhdCB3ZXJlIHNo YWRvd2VkIGJ5IGdsb2JhbCBpZGVudGlmaWVycyBvZiB0aGUgc2FtZSBuYW1lcy4gVGhlCnVwZGF0 ZWQgbG9jYWwgaWRlbnRpZmllcnMgZW5zdXJlIGNsZWFyZXIgc2VwYXJhdGlvbiBvZiBzY29wZSB0 aHJvdWdob3V0CnRoZSBhZmZlY3RlZCBtb2R1bGVzLgoKQSBmZXcgYWRkaXRpb25hbCBzaGFkb3dp bmcgZml4ZXMgaW4gdGhlIHNhbWUgY29kZSBhcmVhcyBhcmUgaW5jbHVkZWQgYXMKd2VsbC4gVGhl c2UgYXJlIHVucmVsYXRlZCB0byB0aGUgY29ubiByZW5hbWluZyBidXQgb2NjdXIgaW4gdGhlIHNh bWUKZmlsZXMsIHNvIHRoZXkgYXJlIGJ1bmRsZWQgaGVyZSB0byBrZWVwIHRoZSBjb21taXQgc2Vs Zi1jb250YWluZWQuCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5 SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9kYXRlLmMgICAgICAgfCAyMCArKystLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRp bWUuYyAgIHwgMjAgKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyB8 ICA4ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jICB8IDkyICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL2Jpbi9pbml0ZGIvZmluZHRpbWV6b25lLmMgICAg ICB8IDM4ICsrKysrKy0tLS0tLQogc3JjL3RpbWV6b25lL3BndHouYyAgICAgICAgICAgICAgICB8 IDE2ICsrKy0tLQogNiBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBjNGI4MTI1ZGQ2Ni4uNmFmYmZiYWJjY2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGUuYwpAQCAtNTcwLDE2ICs1NzAsMTYgQEAgRGF0dW0KIGRhdGVfcGxpKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFSR19EQVRFQURU KDApOwotCWludDMyCQlkYXlzID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCWludDMyCQlkYXlWYWwg PSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCiAJaWYgKERBVEVfTk9U X0ZJTklURShkYXRlVmFsKSkKIAkJUEdfUkVUVVJOX0RBVEVBRFQoZGF0ZVZhbCk7IC8qIGNhbid0 IGNoYW5nZSBpbmZpbml0eSAqLwogCi0JcmVzdWx0ID0gZGF0ZVZhbCArIGRheXM7CisJcmVzdWx0 ID0gZGF0ZVZhbCArIGRheVZhbDsKIAogCS8qIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IGFu ZCBvdXQtb2YtYWxsb3dlZC1yYW5nZSAqLwotCWlmICgoZGF5cyA+PSAwID8gKHJlc3VsdCA8IGRh dGVWYWwpIDogKHJlc3VsdCA+IGRhdGVWYWwpKSB8fAorCWlmICgoZGF5VmFsID49IDAgPyAocmVz dWx0IDwgZGF0ZVZhbCkgOiAocmVzdWx0ID4gZGF0ZVZhbCkpIHx8CiAJCSFJU19WQUxJRF9EQVRF KHJlc3VsdCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElN RV9WQUxVRV9PVVRfT0ZfUkFOR0UpLApAQCAtNTk0LDE2ICs1OTQsMTYgQEAgRGF0dW0KIGRhdGVf bWlpKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFSR19E QVRFQURUKDApOwotCWludDMyCQlkYXlzID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCWludDMyCQlk YXlWYWwgPSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCiAJaWYgKERB VEVfTk9UX0ZJTklURShkYXRlVmFsKSkKIAkJUEdfUkVUVVJOX0RBVEVBRFQoZGF0ZVZhbCk7IC8q IGNhbid0IGNoYW5nZSBpbmZpbml0eSAqLwogCi0JcmVzdWx0ID0gZGF0ZVZhbCAtIGRheXM7CisJ cmVzdWx0ID0gZGF0ZVZhbCAtIGRheVZhbDsKIAogCS8qIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJm bG93IGFuZCBvdXQtb2YtYWxsb3dlZC1yYW5nZSAqLwotCWlmICgoZGF5cyA+PSAwID8gKHJlc3Vs dCA+IGRhdGVWYWwpIDogKHJlc3VsdCA8IGRhdGVWYWwpKSB8fAorCWlmICgoZGF5VmFsID49IDAg PyAocmVzdWx0ID4gZGF0ZVZhbCkgOiAocmVzdWx0IDwgZGF0ZVZhbCkpIHx8CiAJCSFJU19WQUxJ RF9EQVRFKHJlc3VsdCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLApAQCAtMzE1OSw3ICszMTU5LDcgQEAgdGltZXR6 X3pvbmUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lVHpBRFQgICp0ID0gUEdfR0VUQVJHX1RJTUVU WkFEVF9QKDEpOwogCVRpbWVUekFEVCAgKnJlc3VsdDsKIAlpbnQJCQl0ejsKLQljaGFyCQl0em5h bWVbVFpfU1RSTEVOX01BWCArIDFdOworCWNoYXIJCXR6X25hbWVbVFpfU1RSTEVOX01BWCArIDFd OwogCWludAkJCXR5cGUsCiAJCQkJdmFsOwogCXBnX3R6CSAgICp0enA7CkBAIC0zMTY3LDkgKzMx NjcsOSBAQCB0aW1ldHpfem9uZShQR19GVU5DVElPTl9BUkdTKQogCS8qCiAJICogTG9vayB1cCB0 aGUgcmVxdWVzdGVkIHRpbWV6b25lLgogCSAqLwotCXRleHRfdG9fY3N0cmluZ19idWZmZXIoem9u ZSwgdHpuYW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZlcih6b25l LCB0el9uYW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JdHlwZSA9IERlY29kZVRpbWV6b25lTmFt ZSh0em5hbWUsICZ2YWwsICZ0enApOworCXR5cGUgPSBEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFt ZSwgJnZhbCwgJnR6cCk7CiAKIAlpZiAodHlwZSA9PSBUWk5BTUVfRklYRURfT0ZGU0VUKQogCXsK QEAgLTMxODIsNyArMzE4Miw3IEBAIHRpbWV0el96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVRp bWVzdGFtcFR6IG5vdyA9IEdldEN1cnJlbnRUcmFuc2FjdGlvblN0YXJ0VGltZXN0YW1wKCk7CiAJ CWludAkJCWlzZHN0OwogCi0JCXR6ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXRUUyhu b3csIHR6bmFtZSwgdHpwLCAmaXNkc3QpOworCQl0eiA9IERldGVybWluZVRpbWVab25lQWJicmV2 T2Zmc2V0VFMobm93LCB0el9uYW1lLCB0enAsICZpc2RzdCk7CiAJfQogCWVsc2UKIAl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRpbWUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9kYXRldGltZS5jCmluZGV4IDY4MGZlZTJhODQ0Li5kODI0MGJlYWZjMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGV0aW1lLmMKQEAgLTY0MiwxMiArNjQyLDEyIEBAIEFkanVzdE1pY3Jvc2Vj b25kcyhpbnQ2NCB2YWwsIGRvdWJsZSBmdmFsLCBpbnQ2NCBzY2FsZSwKIHN0YXRpYyBib29sCiBB ZGp1c3REYXlzKGludDY0IHZhbCwgaW50IHNjYWxlLCBzdHJ1Y3QgcGdfaXRtX2luICppdG1faW4p CiB7Ci0JaW50CQkJZGF5czsKKwlpbnQJCQlkYXlWYWw7CiAKIAlpZiAodmFsIDwgSU5UX01JTiB8 fCB2YWwgPiBJTlRfTUFYKQogCQlyZXR1cm4gZmFsc2U7Ci0JcmV0dXJuICFwZ19tdWxfczMyX292 ZXJmbG93KChpbnQzMikgdmFsLCBzY2FsZSwgJmRheXMpICYmCi0JCSFwZ19hZGRfczMyX292ZXJm bG93KGl0bV9pbi0+dG1fbWRheSwgZGF5cywgJml0bV9pbi0+dG1fbWRheSk7CisJcmV0dXJuICFw Z19tdWxfczMyX292ZXJmbG93KChpbnQzMikgdmFsLCBzY2FsZSwgJmRheVZhbCkgJiYKKwkJIXBn X2FkZF9zMzJfb3ZlcmZsb3coaXRtX2luLT50bV9tZGF5LCBkYXlWYWwsICZpdG1faW4tPnRtX21k YXkpOwogfQogCiAvKgpAQCAtMzI4NSw3ICszMjg1LDcgQEAgRGVjb2RlU3BlY2lhbChpbnQgZmll bGQsIGNvbnN0IGNoYXIgKmxvd3Rva2VuLCBpbnQgKnZhbCkKICAqIHRoZSB6b25lIG5hbWUgb3Ig dGhlIGFiYnJldmlhdGlvbidzIHVuZGVybHlpbmcgem9uZS4KICAqLwogaW50Ci1EZWNvZGVUaW1l em9uZU5hbWUoY29uc3QgY2hhciAqdHpuYW1lLCBpbnQgKm9mZnNldCwgcGdfdHogKip0eikKK0Rl Y29kZVRpbWV6b25lTmFtZShjb25zdCBjaGFyICp0el9uYW1lLCBpbnQgKm9mZnNldCwgcGdfdHog Kip0eikKIHsKIAljaGFyCSAgICpsb3d6b25lOwogCWludAkJCWR0ZXJyLApAQCAtMzMwMiw4ICsz MzAyLDggQEAgRGVjb2RlVGltZXpvbmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50ICpvZmZz ZXQsIHBnX3R6ICoqdHopCiAJICovCiAKIAkvKiBEZWNvZGVUaW1lem9uZUFiYnJldiByZXF1aXJl cyBsb3dlcmNhc2UgaW5wdXQgKi8KLQlsb3d6b25lID0gZG93bmNhc2VfdHJ1bmNhdGVfaWRlbnRp Zmllcih0em5hbWUsCi0JCQkJCQkJCQkJICAgc3RybGVuKHR6bmFtZSksCisJbG93em9uZSA9IGRv d25jYXNlX3RydW5jYXRlX2lkZW50aWZpZXIodHpfbmFtZSwKKwkJCQkJCQkJCQkgICBzdHJsZW4o dHpfbmFtZSksCiAJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJZHRlcnIgPSBEZWNvZGVUaW1lem9u ZUFiYnJldigwLCBsb3d6b25lLCAmdHlwZSwgb2Zmc2V0LCB0eiwgJmV4dHJhKTsKQEAgLTMzMjMs MTEgKzMzMjMsMTEgQEAgRGVjb2RlVGltZXpvbmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50 ICpvZmZzZXQsIHBnX3R6ICoqdHopCiAJZWxzZQogCXsKIAkJLyogdHJ5IGl0IGFzIGEgZnVsbCB6 b25lIG5hbWUgKi8KLQkJKnR6ID0gcGdfdHpzZXQodHpuYW1lKTsKKwkJKnR6ID0gcGdfdHpzZXQo dHpfbmFtZSk7CiAJCWlmICgqdHogPT0gTlVMTCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkgZXJybXNnKCJ0 aW1lIHpvbmUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgdHpuYW1lKSkpOworCQkJCQkgZXJybXNn KCJ0aW1lIHpvbmUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgdHpfbmFtZSkpKTsKIAkJcmV0dXJu IFRaTkFNRV9aT05FOwogCX0KIH0KQEAgLTMzNDAsMTIgKzMzNDAsMTIgQEAgRGVjb2RlVGltZXpv bmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50ICpvZmZzZXQsIHBnX3R6ICoqdHopCiAgKiBy ZXN1bHQgaW4gYWxsIGNhc2VzLgogICovCiBwZ190eiAqCi1EZWNvZGVUaW1lem9uZU5hbWVUb1R6 KGNvbnN0IGNoYXIgKnR6bmFtZSkKK0RlY29kZVRpbWV6b25lTmFtZVRvVHooY29uc3QgY2hhciAq dHpfbmFtZSkKIHsKIAlwZ190egkgICAqcmVzdWx0OwogCWludAkJCW9mZnNldDsKIAotCWlmIChE ZWNvZGVUaW1lem9uZU5hbWUodHpuYW1lLCAmb2Zmc2V0LCAmcmVzdWx0KSA9PSBUWk5BTUVfRklY RURfT0ZGU0VUKQorCWlmIChEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFtZSwgJm9mZnNldCwgJnJl c3VsdCkgPT0gVFpOQU1FX0ZJWEVEX09GRlNFVCkKIAl7CiAJCS8qIGZpeGVkLW9mZnNldCBhYmJy ZXZpYXRpb24sIGdldCBhIHBnX3R6IGRlc2NyaXB0b3IgZm9yIHRoYXQgKi8KIAkJcmVzdWx0ID0g cGdfdHpzZXRfb2Zmc2V0KC1vZmZzZXQpOwkvKiBmbGlwIHRvIFBPU0lYIHNpZ24gY29udmVudGlv biAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMKaW5kZXggNWJmZWRhMmZmZGUuLmQzODU1 OTFiNTNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZm9ybWF0dGluZy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMKQEAgLTMwNDEsMTIgKzMwNDEs MTIgQEAgRENIX3RvX2NoYXIoRm9ybWF0Tm9kZSAqbm9kZSwgYm9vbCBpc19pbnRlcnZhbCwgVG1U b0NoYXIgKmluLCBjaGFyICpvdXQsIE9pZCBjb2wKIAkJCQllbHNlCiAJCQkJewogCQkJCQlpbnQJ CQltb24gPSAwOwotCQkJCQljb25zdCBjaGFyICpjb25zdCAqbW9udGhzOworCQkJCQljb25zdCBj aGFyICpjb25zdCAqcG1vbnRoczsKIAogCQkJCQlpZiAobi0+a2V5LT5pZCA9PSBEQ0hfUk0pCi0J CQkJCQltb250aHMgPSBybV9tb250aHNfdXBwZXI7CisJCQkJCQlwbW9udGhzID0gcm1fbW9udGhz X3VwcGVyOwogCQkJCQllbHNlCi0JCQkJCQltb250aHMgPSBybV9tb250aHNfbG93ZXI7CisJCQkJ CQlwbW9udGhzID0gcm1fbW9udGhzX2xvd2VyOwogCiAJCQkJCS8qCiAJCQkJCSAqIENvbXB1dGUg dGhlIHBvc2l0aW9uIGluIHRoZSByb21hbi1udW1lcmFsIGFycmF5LiAgTm90ZQpAQCAtMzA4MSw3 ICszMDgxLDcgQEAgRENIX3RvX2NoYXIoRm9ybWF0Tm9kZSAqbm9kZSwgYm9vbCBpc19pbnRlcnZh bCwgVG1Ub0NoYXIgKmluLCBjaGFyICpvdXQsIE9pZCBjb2wKIAkJCQkJfQogCiAJCQkJCXNwcmlu dGYocywgIiUqcyIsIElTX1NVRkZJWF9GTShuLT5zdWZmaXgpID8gMCA6IC00LAotCQkJCQkJCW1v bnRoc1ttb25dKTsKKwkJCQkJCQlwbW9udGhzW21vbl0pOwogCQkJCQlzICs9IHN0cmxlbihzKTsK IAkJCQl9CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMTU2YTQ4 MzBmZmQuLjhkNTQ1NjEzNTk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC00OTAs MTEgKzQ5MCwxMSBAQCB0aW1lc3RhbXB0el9pbihQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGlu dAogcGFyc2Vfc2FuZV90aW1lem9uZShzdHJ1Y3QgcGdfdG0gKnRtLCB0ZXh0ICp6b25lKQogewot CWNoYXIJCXR6bmFtZVtUWl9TVFJMRU5fTUFYICsgMV07CisJY2hhcgkJdHpfbmFtZVtUWl9TVFJM RU5fTUFYICsgMV07CiAJaW50CQkJZHRlcnI7CiAJaW50CQkJdHo7CiAKLQl0ZXh0X3RvX2NzdHJp bmdfYnVmZmVyKHpvbmUsIHR6bmFtZSwgc2l6ZW9mKHR6bmFtZSkpOworCXRleHRfdG9fY3N0cmlu Z19idWZmZXIoem9uZSwgdHpfbmFtZSwgc2l6ZW9mKHR6X25hbWUpKTsKIAogCS8qCiAJICogTG9v ayB1cCB0aGUgcmVxdWVzdGVkIHRpbWV6b25lLiAgRmlyc3Qgd2UgdHJ5IHRvIGludGVycHJldCBp dCBhcyBhCkBAIC01MDYsMTQgKzUwNiwxNCBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBw Z190bSAqdG0sIHRleHQgKnpvbmUpCiAJICogYXMgaW52YWxpZCwgaXQncyBlbm91Z2ggdG8gZGlz YWxsb3cgaGF2aW5nIGEgZGlnaXQgaW4gdGhlIGZpcnN0CiAJICogcG9zaXRpb24gb2Ygb3VyIGlu cHV0IHN0cmluZy4KIAkgKi8KLQlpZiAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikgKnR6bmFtZSkp CisJaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICp0el9uYW1lKSkKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkg ZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAlczogXCIlc1wiIiwKLQkJCQkJ CSJudW1lcmljIHRpbWUgem9uZSIsIHR6bmFtZSksCisJCQkJCQkibnVtZXJpYyB0aW1lIHpvbmUi LCB0el9uYW1lKSwKIAkJCQkgZXJyaGludCgiTnVtZXJpYyB0aW1lIHpvbmVzIG11c3QgaGF2ZSBc Ii1cIiBvciBcIitcIiBhcyBmaXJzdCBjaGFyYWN0ZXIuIikpKTsKIAotCWR0ZXJyID0gRGVjb2Rl VGltZXpvbmUodHpuYW1lLCAmdHopOworCWR0ZXJyID0gRGVjb2RlVGltZXpvbmUodHpfbmFtZSwg JnR6KTsKIAlpZiAoZHRlcnIgIT0gMCkKIAl7CiAJCWludAkJCXR5cGUsCkBAIC01MjMsMTMgKzUy MywxMyBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUp CiAJCWlmIChkdGVyciA9PSBEVEVSUl9UWkRJU1BfT1ZFUkZMT1cpCiAJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJ IGVycm1zZygibnVtZXJpYyB0aW1lIHpvbmUgXCIlc1wiIG91dCBvZiByYW5nZSIsIHR6bmFtZSkp KTsKKwkJCQkJIGVycm1zZygibnVtZXJpYyB0aW1lIHpvbmUgXCIlc1wiIG91dCBvZiByYW5nZSIs IHR6X25hbWUpKSk7CiAJCWVsc2UgaWYgKGR0ZXJyICE9IERURVJSX0JBRF9GT1JNQVQpCiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKLQkJCQkJIGVycm1zZygidGltZSB6b25lIFwiJXNcIiBub3QgcmVjb2duaXplZCIsIHR6 bmFtZSkpKTsKKwkJCQkJIGVycm1zZygidGltZSB6b25lIFwiJXNcIiBub3QgcmVjb2duaXplZCIs IHR6X25hbWUpKSk7CiAKLQkJdHlwZSA9IERlY29kZVRpbWV6b25lTmFtZSh0em5hbWUsICZ2YWws ICZ0enApOworCQl0eXBlID0gRGVjb2RlVGltZXpvbmVOYW1lKHR6X25hbWUsICZ2YWwsICZ0enAp OwogCiAJCWlmICh0eXBlID09IFRaTkFNRV9GSVhFRF9PRkZTRVQpCiAJCXsKQEAgLTUzOSw3ICs1 MzksNyBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUp CiAJCWVsc2UgaWYgKHR5cGUgPT0gVFpOQU1FX0RZTlRaKQogCQl7CiAJCQkvKiBkeW5hbWljLW9m ZnNldCBhYmJyZXZpYXRpb24sIHJlc29sdmUgdXNpbmcgc3BlY2lmaWVkIHRpbWUgKi8KLQkJCXR6 ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXQodG0sIHR6bmFtZSwgdHpwKTsKKwkJCXR6 ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXQodG0sIHR6X25hbWUsIHR6cCk7CiAJCX0K IAkJZWxzZQogCQl7CkBAIC01NTksMTEgKzU1OSwxMSBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0 cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUpCiBzdGF0aWMgcGdfdHogKgogbG9va3VwX3RpbWV6 b25lKHRleHQgKnpvbmUpCiB7Ci0JY2hhcgkJdHpuYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKKwlj aGFyCQl0el9uYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKIAotCXRleHRfdG9fY3N0cmluZ19idWZm ZXIoem9uZSwgdHpuYW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZl cih6b25lLCB0el9uYW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JcmV0dXJuIERlY29kZVRpbWV6 b25lTmFtZVRvVHoodHpuYW1lKTsKKwlyZXR1cm4gRGVjb2RlVGltZXpvbmVOYW1lVG9Ueih0el9u YW1lKTsKIH0KIAogLyoKQEAgLTE1MjksNDEgKzE1MjksNDEgQEAgQWRqdXN0SW50ZXJ2YWxGb3JU eXBtb2QoSW50ZXJ2YWwgKmludGVydmFsLCBpbnQzMiB0eXBtb2QsCiBEYXR1bQogbWFrZV9pbnRl cnZhbChQR19GVU5DVElPTl9BUkdTKQogewotCWludDMyCQl5ZWFycyA9IFBHX0dFVEFSR19JTlQz MigwKTsKLQlpbnQzMgkJbW9udGhzID0gUEdfR0VUQVJHX0lOVDMyKDEpOwotCWludDMyCQl3ZWVr cyA9IFBHX0dFVEFSR19JTlQzMigyKTsKLQlpbnQzMgkJZGF5cyA9IFBHX0dFVEFSR19JTlQzMigz KTsKLQlpbnQzMgkJaG91cnMgPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JaW50MzIJCW1pbnMgPSBQ R19HRVRBUkdfSU5UMzIoNSk7Ci0JZG91YmxlCQlzZWNzID0gUEdfR0VUQVJHX0ZMT0FUOCg2KTsK KwlpbnQzMgkJeWVhclZhbCA9IFBHX0dFVEFSR19JTlQzMigwKTsKKwlpbnQzMgkJbW9udGhWYWwg PSBQR19HRVRBUkdfSU5UMzIoMSk7CisJaW50MzIJCXdlZWtWYWwgPSBQR19HRVRBUkdfSU5UMzIo Mik7CisJaW50MzIJCWRheVZhbCA9IFBHX0dFVEFSR19JTlQzMigzKTsKKwlpbnQzMgkJaG91clZh bCA9IFBHX0dFVEFSR19JTlQzMig0KTsKKwlpbnQzMgkJbWluVmFsID0gUEdfR0VUQVJHX0lOVDMy KDUpOworCWRvdWJsZQkJc2VjVmFsID0gUEdfR0VUQVJHX0ZMT0FUOCg2KTsKIAlJbnRlcnZhbCAg ICpyZXN1bHQ7CiAKIAkvKgogCSAqIFJlamVjdCBvdXQtb2YtcmFuZ2UgaW5wdXRzLiAgV2UgcmVq ZWN0IGFueSBpbnB1dCB2YWx1ZXMgdGhhdCBjYXVzZQogCSAqIGludGVnZXIgb3ZlcmZsb3cgb2Yg dGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJ2YWwgZmllbGRzLgogCSAqLwotCWlmIChpc2luZihzZWNz KSB8fCBpc25hbihzZWNzKSkKKwlpZiAoaXNpbmYoc2VjVmFsKSB8fCBpc25hbihzZWNWYWwpKQog CQlnb3RvIG91dF9vZl9yYW5nZTsKIAogCXJlc3VsdCA9IChJbnRlcnZhbCAqKSBwYWxsb2Moc2l6 ZW9mKEludGVydmFsKSk7CiAKIAkvKiB5ZWFycyBhbmQgbW9udGhzIC0+IG1vbnRocyAqLwotCWlm IChwZ19tdWxfczMyX292ZXJmbG93KHllYXJzLCBNT05USFNfUEVSX1lFQVIsICZyZXN1bHQtPm1v bnRoKSB8fAotCQlwZ19hZGRfczMyX292ZXJmbG93KHJlc3VsdC0+bW9udGgsIG1vbnRocywgJnJl c3VsdC0+bW9udGgpKQorCWlmIChwZ19tdWxfczMyX292ZXJmbG93KHllYXJWYWwsIE1PTlRIU19Q RVJfWUVBUiwgJnJlc3VsdC0+bW9udGgpIHx8CisJCXBnX2FkZF9zMzJfb3ZlcmZsb3cocmVzdWx0 LT5tb250aCwgbW9udGhWYWwsICZyZXN1bHQtPm1vbnRoKSkKIAkJZ290byBvdXRfb2ZfcmFuZ2U7 CiAKIAkvKiB3ZWVrcyBhbmQgZGF5cyAtPiBkYXlzICovCi0JaWYgKHBnX211bF9zMzJfb3ZlcmZs b3cod2Vla3MsIERBWVNfUEVSX1dFRUssICZyZXN1bHQtPmRheSkgfHwKLQkJcGdfYWRkX3MzMl9v dmVyZmxvdyhyZXN1bHQtPmRheSwgZGF5cywgJnJlc3VsdC0+ZGF5KSkKKwlpZiAocGdfbXVsX3Mz Ml9vdmVyZmxvdyh3ZWVrVmFsLCBEQVlTX1BFUl9XRUVLLCAmcmVzdWx0LT5kYXkpIHx8CisJCXBn X2FkZF9zMzJfb3ZlcmZsb3cocmVzdWx0LT5kYXksIGRheVZhbCwgJnJlc3VsdC0+ZGF5KSkKIAkJ Z290byBvdXRfb2ZfcmFuZ2U7CiAKIAkvKiBob3VycyBhbmQgbWlucyAtPiB1c2VjcyAoY2Fubm90 IG92ZXJmbG93IDY0LWJpdCkgKi8KLQlyZXN1bHQtPnRpbWUgPSBob3VycyAqIFVTRUNTX1BFUl9I T1VSICsgbWlucyAqIFVTRUNTX1BFUl9NSU5VVEU7CisJcmVzdWx0LT50aW1lID0gaG91clZhbCAq IFVTRUNTX1BFUl9IT1VSICsgbWluVmFsICogVVNFQ1NfUEVSX01JTlVURTsKIAogCS8qIHNlY3Mg LT4gdXNlY3MgKi8KLQlzZWNzID0gcmludChmbG9hdDhfbXVsKHNlY3MsIFVTRUNTX1BFUl9TRUMp KTsKLQlpZiAoIUZMT0FUOF9GSVRTX0lOX0lOVDY0KHNlY3MpIHx8Ci0JCXBnX2FkZF9zNjRfb3Zl cmZsb3cocmVzdWx0LT50aW1lLCAoaW50NjQpIHNlY3MsICZyZXN1bHQtPnRpbWUpKQorCXNlY1Zh bCA9IHJpbnQoZmxvYXQ4X211bChzZWNWYWwsIFVTRUNTX1BFUl9TRUMpKTsKKwlpZiAoIUZMT0FU OF9GSVRTX0lOX0lOVDY0KHNlY1ZhbCkgfHwKKwkJcGdfYWRkX3M2NF9vdmVyZmxvdyhyZXN1bHQt PnRpbWUsIChpbnQ2NCkgc2VjVmFsLCAmcmVzdWx0LT50aW1lKSkKIAkJZ290byBvdXRfb2ZfcmFu Z2U7CiAKIAkvKiBtYWtlIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIGZpbml0ZSAqLwpAQCAtMjEz MSw5ICsyMTMxLDkgQEAgdGltZTJ0KGNvbnN0IGludCBob3VyLCBjb25zdCBpbnQgbWluLCBjb25z dCBpbnQgc2VjLCBjb25zdCBmc2VjX3QgZnNlYykKIH0KIAogc3RhdGljIFRpbWVzdGFtcAotZHQy bG9jYWwoVGltZXN0YW1wIGR0LCBpbnQgdGltZXpvbmUpCitkdDJsb2NhbChUaW1lc3RhbXAgZHQs IGludCB0eikKIHsKLQlkdCAtPSAodGltZXpvbmUgKiBVU0VDU19QRVJfU0VDKTsKKwlkdCAtPSAo dHogKiBVU0VDU19QRVJfU0VDKTsKIAlyZXR1cm4gZHQ7CiB9CiAKQEAgLTI1MjEsMjAgKzI1MjEs MjAgQEAgc3RhdGljIGlubGluZSBJTlQxMjgKIGludGVydmFsX2NtcF92YWx1ZShjb25zdCBJbnRl cnZhbCAqaW50ZXJ2YWwpCiB7CiAJSU5UMTI4CQlzcGFuOwotCWludDY0CQlkYXlzOworCWludDY0 CQlkYXlWYWw7CiAKIAkvKgogCSAqIENvbWJpbmUgdGhlIG1vbnRoIGFuZCBkYXkgZmllbGRzIGlu dG8gYW4gaW50ZWdyYWwgbnVtYmVyIG9mIGRheXMuCiAJICogQmVjYXVzZSB0aGUgaW5wdXRzIGFy ZSBpbnQzMiwgaW50NjQgYXJpdGhtZXRpYyBzdWZmaWNlcyBoZXJlLgogCSAqLwotCWRheXMgPSBp bnRlcnZhbC0+bW9udGggKiBJTlQ2NENPTlNUKDMwKTsKLQlkYXlzICs9IGludGVydmFsLT5kYXk7 CisJZGF5VmFsID0gaW50ZXJ2YWwtPm1vbnRoICogSU5UNjRDT05TVCgzMCk7CisJZGF5VmFsICs9 IGludGVydmFsLT5kYXk7CiAKIAkvKiBXaWRlbiB0aW1lIGZpZWxkIHRvIDEyOCBiaXRzICovCiAJ c3BhbiA9IGludDY0X3RvX2ludDEyOChpbnRlcnZhbC0+dGltZSk7CiAKIAkvKiBTY2FsZSB1cCBk YXlzIHRvIG1pY3Jvc2Vjb25kcywgZm9ybWluZyBhIDEyOC1iaXQgcHJvZHVjdCAqLwotCWludDEy OF9hZGRfaW50NjRfbXVsX2ludDY0KCZzcGFuLCBkYXlzLCBVU0VDU19QRVJfREFZKTsKKwlpbnQx MjhfYWRkX2ludDY0X211bF9pbnQ2NCgmc3BhbiwgZGF5VmFsLCBVU0VDU19QRVJfREFZKTsKIAog CXJldHVybiBzcGFuOwogfQpAQCAtNjIxOSw3ICs2MjE5LDcgQEAgaW50ZXJ2YWxfcGFydF9jb21t b24oUEdfRlVOQ1RJT05fQVJHUywgYm9vbCByZXRudW1lcmljKQogCQl7CiAJCQlOdW1lcmljCQly ZXN1bHQ7CiAJCQlpbnQ2NAkJc2Vjc19mcm9tX2RheV9tb250aDsKLQkJCWludDY0CQl2YWw7CisJ CQlpbnQ2NAkJdmFsdWU7CiAKIAkJCS8qCiAJCQkgKiBUbyBkbyB0aGlzIGNhbGN1bGF0aW9uIGlu IGludGVnZXIgYXJpdGhtZXRpYyBldmVuIHRob3VnaApAQCAtNjI0Miw5ICs2MjQyLDkgQEAgaW50 ZXJ2YWxfcGFydF9jb21tb24oUEdfRlVOQ1RJT05fQVJHUywgYm9vbCByZXRudW1lcmljKQogCQkJ ICogbnVtZXJpYyAoc2xvd2VyKS4gIFRoaXMgb3ZlcmZsb3cgaGFwcGVucyBhcm91bmQgMTBeOSBk YXlzLCBzbwogCQkJICogbm90IGNvbW1vbiBpbiBwcmFjdGljZS4KIAkJCSAqLwotCQkJaWYgKCFw Z19tdWxfczY0X292ZXJmbG93KHNlY3NfZnJvbV9kYXlfbW9udGgsIDEwMDAwMDAsICZ2YWwpICYm Ci0JCQkJIXBnX2FkZF9zNjRfb3ZlcmZsb3codmFsLCBpbnRlcnZhbC0+dGltZSwgJnZhbCkpCi0J CQkJcmVzdWx0ID0gaW50NjRfZGl2X2Zhc3RfdG9fbnVtZXJpYyh2YWwsIDYpOworCQkJaWYgKCFw Z19tdWxfczY0X292ZXJmbG93KHNlY3NfZnJvbV9kYXlfbW9udGgsIDEwMDAwMDAsICZ2YWx1ZSkg JiYKKwkJCQkhcGdfYWRkX3M2NF9vdmVyZmxvdyh2YWx1ZSwgaW50ZXJ2YWwtPnRpbWUsICZ2YWx1 ZSkpCisJCQkJcmVzdWx0ID0gaW50NjRfZGl2X2Zhc3RfdG9fbnVtZXJpYyh2YWx1ZSwgNik7CiAJ CQllbHNlCiAJCQkJcmVzdWx0ID0KIAkJCQkJbnVtZXJpY19hZGRfc2FmZShpbnQ2NF9kaXZfZmFz dF90b19udW1lcmljKGludGVydmFsLT50aW1lLCA2KSwKQEAgLTYzMDgsNyArNjMwOCw3IEBAIHRp bWVzdGFtcF96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZXN0YW1wCXRpbWVzdGFtcCA9IFBH X0dFVEFSR19USU1FU1RBTVAoMSk7CiAJVGltZXN0YW1wVHogcmVzdWx0OwogCWludAkJCXR6Owot CWNoYXIJCXR6bmFtZVtUWl9TVFJMRU5fTUFYICsgMV07CisJY2hhcgkJdHpfbmFtZVtUWl9TVFJM RU5fTUFYICsgMV07CiAJaW50CQkJdHlwZSwKIAkJCQl2YWw7CiAJcGdfdHoJICAgKnR6cDsKQEAg LTYzMjEsOSArNjMyMSw5IEBAIHRpbWVzdGFtcF96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJLyoK IAkgKiBMb29rIHVwIHRoZSByZXF1ZXN0ZWQgdGltZXpvbmUuCiAJICovCi0JdGV4dF90b19jc3Ry aW5nX2J1ZmZlcih6b25lLCB0em5hbWUsIHNpemVvZih0em5hbWUpKTsKKwl0ZXh0X3RvX2NzdHJp bmdfYnVmZmVyKHpvbmUsIHR6X25hbWUsIHNpemVvZih0el9uYW1lKSk7CiAKLQl0eXBlID0gRGVj b2RlVGltZXpvbmVOYW1lKHR6bmFtZSwgJnZhbCwgJnR6cCk7CisJdHlwZSA9IERlY29kZVRpbWV6 b25lTmFtZSh0el9uYW1lLCAmdmFsLCAmdHpwKTsKIAogCWlmICh0eXBlID09IFRaTkFNRV9GSVhF RF9PRkZTRVQpCiAJewpAQCAtNjMzOCw3ICs2MzM4LDcgQEAgdGltZXN0YW1wX3pvbmUoUEdfRlVO Q1RJT05fQVJHUykKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU RVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBv ZiByYW5nZSIpKSk7Ci0JCXR6ID0gLURldGVybWluZVRpbWVab25lQWJicmV2T2Zmc2V0KCZ0bSwg dHpuYW1lLCB0enApOworCQl0eiA9IC1EZXRlcm1pbmVUaW1lWm9uZUFiYnJldk9mZnNldCgmdG0s IHR6X25hbWUsIHR6cCk7CiAJCXJlc3VsdCA9IGR0MmxvY2FsKHRpbWVzdGFtcCwgdHopOwogCX0K IAllbHNlCkBAIC02NTk5LDcgKzY1OTksNyBAQCB0aW1lc3RhbXB0el96b25lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJVGltZXN0YW1wVHogdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUFRaKDEp OwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAJaW50CQkJdHo7Ci0JY2hhcgkJdHpuYW1lW1RaX1NUUkxF Tl9NQVggKyAxXTsKKwljaGFyCQl0el9uYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKIAlpbnQJCQl0 eXBlLAogCQkJCXZhbDsKIAlwZ190egkgICAqdHpwOwpAQCAtNjYxMCw5ICs2NjEwLDkgQEAgdGlt ZXN0YW1wdHpfem9uZShQR19GVU5DVElPTl9BUkdTKQogCS8qCiAJICogTG9vayB1cCB0aGUgcmVx dWVzdGVkIHRpbWV6b25lLgogCSAqLwotCXRleHRfdG9fY3N0cmluZ19idWZmZXIoem9uZSwgdHpu YW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZlcih6b25lLCB0el9u YW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JdHlwZSA9IERlY29kZVRpbWV6b25lTmFtZSh0em5h bWUsICZ2YWwsICZ0enApOworCXR5cGUgPSBEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFtZSwgJnZh bCwgJnR6cCk7CiAKIAlpZiAodHlwZSA9PSBUWk5BTUVfRklYRURfT0ZGU0VUKQogCXsKQEAgLTY2 MjUsNyArNjYyNSw3IEBAIHRpbWVzdGFtcHR6X3pvbmUoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyog ZHluYW1pYy1vZmZzZXQgYWJicmV2aWF0aW9uLCByZXNvbHZlIHVzaW5nIHNwZWNpZmllZCB0aW1l ICovCiAJCWludAkJCWlzZHN0OwogCi0JCXR6ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZz ZXRUUyh0aW1lc3RhbXAsIHR6bmFtZSwgdHpwLCAmaXNkc3QpOworCQl0eiA9IERldGVybWluZVRp bWVab25lQWJicmV2T2Zmc2V0VFModGltZXN0YW1wLCB0el9uYW1lLCB0enAsICZpc2RzdCk7CiAJ CXJlc3VsdCA9IGR0MmxvY2FsKHRpbWVzdGFtcCwgdHopOwogCX0KIAllbHNlCmRpZmYgLS1naXQg YS9zcmMvYmluL2luaXRkYi9maW5kdGltZXpvbmUuYyBiL3NyYy9iaW4vaW5pdGRiL2ZpbmR0aW1l em9uZS5jCmluZGV4IDJiMmFlMzlhZGYzLi45N2Q1NWUxOWMxMyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9pbml0ZGIvZmluZHRpbWV6b25lLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvZmluZHRpbWV6b25l LmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBjb21wYXJlX3RtKHN0cnVjdCB0bSAqcywgc3RydWN0IHBn X3RtICpwKQogICogdGVzdCB0aW1lLgogICovCiBzdGF0aWMgaW50Ci1zY29yZV90aW1lem9uZShj b25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAqdHQpCitzY29yZV90aW1lem9uZShjb25z dCBjaGFyICp0el9uYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogewogCWludAkJCWk7CiAJcGdfdGlt ZV90CXBndHQ7CkBAIC0yNDEsNyArMjQxLDcgQEAgc2NvcmVfdGltZXpvbmUoY29uc3QgY2hhciAq dHpuYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogCXBnX3R6CSAgICp0ejsKIAogCS8qIExvYWQgdGlt ZXpvbmUgZGVmaW5pdGlvbiAqLwotCXR6ID0gcGdfbG9hZF90eih0em5hbWUpOworCXR6ID0gcGdf bG9hZF90eih0el9uYW1lKTsKIAlpZiAoIXR6KQogCQlyZXR1cm4gLTE7CQkJCS8qIHVucmVjb2du aXplZCB6b25lIG5hbWUgKi8KIApAQCAtMjQ5LDcgKzI0OSw3IEBAIHNjb3JlX3RpbWV6b25lKGNv bnN0IGNoYXIgKnR6bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAlpZiAoIXBnX3R6X2FjY2VwdGFi bGUodHopKQogCXsKICNpZmRlZiBERUJVR19JREVOVElGWV9USU1FWk9ORQotCQlmcHJpbnRmKHN0 ZGVyciwgIlJlamVjdCBUWiBcIiVzXCI6IHVzZXMgbGVhcCBzZWNvbmRzXG4iLCB0em5hbWUpOwor CQlmcHJpbnRmKHN0ZGVyciwgIlJlamVjdCBUWiBcIiVzXCI6IHVzZXMgbGVhcCBzZWNvbmRzXG4i LCB0el9uYW1lKTsKICNlbmRpZgogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMjY2LDcgKzI2Niw3IEBA IHNjb3JlX3RpbWV6b25lKGNvbnN0IGNoYXIgKnR6bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAkJ ewogI2lmZGVmIERFQlVHX0lERU5USUZZX1RJTUVaT05FCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlRa IFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCAlMDRkLSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAl cywgc3lzdGVtIGhhZCBubyBkYXRhXG4iLAotCQkJCQl0em5hbWUsIGksIChsb25nKSBwZ3R0LAor CQkJCQl0el9uYW1lLCBpLCAobG9uZykgcGd0dCwKIAkJCQkJcGd0bS0+dG1feWVhciArIDE5MDAs IHBndG0tPnRtX21vbiArIDEsIHBndG0tPnRtX21kYXksCiAJCQkJCXBndG0tPnRtX2hvdXIsIHBn dG0tPnRtX21pbiwgcGd0bS0+dG1fc2VjLAogCQkJCQlwZ3RtLT50bV9pc2RzdCA/ICJkc3QiIDog InN0ZCIpOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHNjb3JlX3RpbWV6b25lKGNvbnN0IGNoYXIgKnR6 bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAkJewogI2lmZGVmIERFQlVHX0lERU5USUZZX1RJTUVa T05FCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlRaIFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCAlMDRk LSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAlcyB2ZXJzdXMgJTA0ZC0lMDJkLSUwMmQgJTAyZDol MDJkOiUwMmQgJXNcbiIsCi0JCQkJCXR6bmFtZSwgaSwgKGxvbmcpIHBndHQsCisJCQkJCXR6X25h bWUsIGksIChsb25nKSBwZ3R0LAogCQkJCQlwZ3RtLT50bV95ZWFyICsgMTkwMCwgcGd0bS0+dG1f bW9uICsgMSwgcGd0bS0+dG1fbWRheSwKIAkJCQkJcGd0bS0+dG1faG91ciwgcGd0bS0+dG1fbWlu LCBwZ3RtLT50bV9zZWMsCiAJCQkJCXBndG0tPnRtX2lzZHN0ID8gImRzdCIgOiAic3RkIiwKQEAg LTI5OCw3ICsyOTgsNyBAQCBzY29yZV90aW1lem9uZShjb25zdCBjaGFyICp0em5hbWUsIHN0cnVj dCB0enRyeSAqdHQpCiAJCQl7CiAjaWZkZWYgREVCVUdfSURFTlRJRllfVElNRVpPTkUKIAkJCQlm cHJpbnRmKHN0ZGVyciwgIlRaIFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCBcIiVzXCIgdmVyc3Vz IFwiJXNcIlxuIiwKLQkJCQkJCXR6bmFtZSwgaSwgKGxvbmcpIHBndHQsCisJCQkJCQl0el9uYW1l LCBpLCAobG9uZykgcGd0dCwKIAkJCQkJCXBndG0tPnRtX3pvbmUsIGNidWYpOwogI2VuZGlmCiAJ CQkJcmV0dXJuIGk7CkBAIC0zMDcsNyArMzA3LDcgQEAgc2NvcmVfdGltZXpvbmUoY29uc3QgY2hh ciAqdHpuYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogCX0KIAogI2lmZGVmIERFQlVHX0lERU5USUZZ X1RJTUVaT05FCi0JZnByaW50ZihzdGRlcnIsICJUWiBcIiVzXCIgZ2V0cyBtYXggc2NvcmUgJWRc biIsIHR6bmFtZSwgaSk7CisJZnByaW50ZihzdGRlcnIsICJUWiBcIiVzXCIgZ2V0cyBtYXggc2Nv cmUgJWRcbiIsIHR6X25hbWUsIGkpOwogI2VuZGlmCiAKIAlyZXR1cm4gaTsKQEAgLTMxNyw5ICsz MTcsOSBAQCBzY29yZV90aW1lem9uZShjb25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAq dHQpCiAgKiBUZXN0IHdoZXRoZXIgZ2l2ZW4gem9uZSBuYW1lIGlzIGEgcGVyZmVjdCBtYXRjaCB0 byBsb2NhbHRpbWUoKSBiZWhhdmlvcgogICovCiBzdGF0aWMgYm9vbAotcGVyZmVjdF90aW1lem9u ZV9tYXRjaChjb25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAqdHQpCitwZXJmZWN0X3Rp bWV6b25lX21hdGNoKGNvbnN0IGNoYXIgKnR6X25hbWUsIHN0cnVjdCB0enRyeSAqdHQpCiB7Ci0J cmV0dXJuIChzY29yZV90aW1lem9uZSh0em5hbWUsIHR0KSA9PSB0dC0+bl90ZXN0X3RpbWVzKTsK KwlyZXR1cm4gKHNjb3JlX3RpbWV6b25lKHR6X25hbWUsIHR0KSA9PSB0dC0+bl90ZXN0X3RpbWVz KTsKIH0KIAogCkBAIC0xNzI1LDE0ICsxNzI1LDE0IEBAIGlkZW50aWZ5X3N5c3RlbV90aW1lem9u ZSh2b2lkKQogICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHpvbmUgbmFtZSBpcyB2YWxpZCBh bmQgaXMgYW4gImFjY2VwdGFibGUiIHpvbmUuCiAgKi8KIHN0YXRpYyBib29sCi12YWxpZGF0ZV96 b25lKGNvbnN0IGNoYXIgKnR6bmFtZSkKK3ZhbGlkYXRlX3pvbmUoY29uc3QgY2hhciAqem9uZSkK IHsKIAlwZ190egkgICAqdHo7CiAKLQlpZiAoIXR6bmFtZSB8fCAhdHpuYW1lWzBdKQorCWlmICgh em9uZSB8fCAhem9uZVswXSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JdHogPSBwZ19sb2FkX3R6KHR6 bmFtZSk7CisJdHogPSBwZ19sb2FkX3R6KHpvbmUpOwogCWlmICghdHopCiAJCXJldHVybiBmYWxz ZTsKIApAQCAtMTc1Niw3ICsxNzU2LDcgQEAgdmFsaWRhdGVfem9uZShjb25zdCBjaGFyICp0em5h bWUpCiBjb25zdCBjaGFyICoKIHNlbGVjdF9kZWZhdWx0X3RpbWV6b25lKGNvbnN0IGNoYXIgKnNo YXJlX3BhdGgpCiB7Ci0JY29uc3QgY2hhciAqdHpuYW1lOworCWNvbnN0IGNoYXIgKnR6OwogCiAJ LyogSW5pdGlhbGl6ZSB0aW1lem9uZSBkaXJlY3RvcnkgcGF0aCwgaWYgbmVlZGVkICovCiAjaWZu ZGVmIFNZU1RFTVRaRElSCkBAIC0xNzY0LDE0ICsxNzY0LDE0IEBAIHNlbGVjdF9kZWZhdWx0X3Rp bWV6b25lKGNvbnN0IGNoYXIgKnNoYXJlX3BhdGgpCiAjZW5kaWYKIAogCS8qIENoZWNrIFRaIGVu dmlyb25tZW50IHZhcmlhYmxlICovCi0JdHpuYW1lID0gZ2V0ZW52KCJUWiIpOwotCWlmICh2YWxp ZGF0ZV96b25lKHR6bmFtZSkpCi0JCXJldHVybiB0em5hbWU7CisJdHogPSBnZXRlbnYoIlRaIik7 CisJaWYgKHZhbGlkYXRlX3pvbmUodHopKQorCQlyZXR1cm4gdHo7CiAKIAkvKiBOb3BlLCBzbyB0 cnkgdG8gaWRlbnRpZnkgdGhlIHN5c3RlbSB0aW1lem9uZSAqLwotCXR6bmFtZSA9IGlkZW50aWZ5 X3N5c3RlbV90aW1lem9uZSgpOwotCWlmICh2YWxpZGF0ZV96b25lKHR6bmFtZSkpCi0JCXJldHVy biB0em5hbWU7CisJdHogPSBpZGVudGlmeV9zeXN0ZW1fdGltZXpvbmUoKTsKKwlpZiAodmFsaWRh dGVfem9uZSh0eikpCisJCXJldHVybiB0ejsKIAogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL3RpbWV6b25lL3BndHouYyBiL3NyYy90aW1lem9uZS9wZ3R6LmMKaW5kZXggNTA0YzAy MzVmZmIuLmE0NGJkMjMwZDgwIDEwMDY0NAotLS0gYS9zcmMvdGltZXpvbmUvcGd0ei5jCisrKyBi L3NyYy90aW1lem9uZS9wZ3R6LmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBpbml0X3RpbWV6b25lX2hh c2h0YWJsZSh2b2lkKQogICogZGVmYXVsdCB0aW1lem9uZSBzZXR0aW5nIGlzIGxhdGVyIG92ZXJy aWRkZW4gZnJvbSBwb3N0Z3Jlc3FsLmNvbmYuCiAgKi8KIHBnX3R6ICoKLXBnX3R6c2V0KGNvbnN0 IGNoYXIgKnR6bmFtZSkKK3BnX3R6c2V0KGNvbnN0IGNoYXIgKnpvbmUpCiB7CiAJcGdfdHpfY2Fj aGUgKnR6cDsKIAlzdHJ1Y3Qgc3RhdGUgdHpzdGF0ZTsKQEAgLTIzOSw3ICsyMzksNyBAQCBwZ190 enNldChjb25zdCBjaGFyICp0em5hbWUpCiAJY2hhcgkJY2Fub25uYW1lW1RaX1NUUkxFTl9NQVgg KyAxXTsKIAljaGFyCSAgICpwOwogCi0JaWYgKHN0cmxlbih0em5hbWUpID4gVFpfU1RSTEVOX01B WCkKKwlpZiAoc3RybGVuKHpvbmUpID4gVFpfU1RSTEVOX01BWCkKIAkJcmV0dXJuIE5VTEw7CQkJ Lyogbm90IGdvaW5nIHRvIGZpdCAqLwogCiAJaWYgKCF0aW1lem9uZV9jYWNoZSkKQEAgLTI1Myw4 ICsyNTMsOCBAQCBwZ190enNldChjb25zdCBjaGFyICp0em5hbWUpCiAJICogYSBQT1NJWC1zdHls ZSB0aW1lem9uZSBzcGVjLikKIAkgKi8KIAlwID0gdXBwZXJuYW1lOwotCXdoaWxlICgqdHpuYW1l KQotCQkqcCsrID0gcGdfdG91cHBlcigodW5zaWduZWQgY2hhcikgKnR6bmFtZSsrKTsKKwl3aGls ZSAoKnpvbmUpCisJCSpwKysgPSBwZ190b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSAqem9uZSsrKTsK IAkqcCA9ICdcMCc7CiAKIAl0enAgPSAocGdfdHpfY2FjaGUgKikgaGFzaF9zZWFyY2godGltZXpv bmVfY2FjaGUsCkBAIC0zMjEsNyArMzIxLDcgQEAgcGdfdHpzZXRfb2Zmc2V0KGxvbmcgZ210b2Zm c2V0KQogewogCWxvbmcJCWFic29mZnNldCA9IChnbXRvZmZzZXQgPCAwKSA/IC1nbXRvZmZzZXQg OiBnbXRvZmZzZXQ7CiAJY2hhcgkJb2Zmc2V0c3RyWzY0XTsKLQljaGFyCQl0em5hbWVbMTI4XTsK KwljaGFyCQl6b25lWzEyOF07CiAKIAlzbnByaW50ZihvZmZzZXRzdHIsIHNpemVvZihvZmZzZXRz dHIpLAogCQkJICIlMDJsZCIsIGFic29mZnNldCAvIFNFQ1NfUEVSX0hPVVIpOwpAQCAtMzM4LDEz ICszMzgsMTMgQEAgcGdfdHpzZXRfb2Zmc2V0KGxvbmcgZ210b2Zmc2V0KQogCQkJCQkgIjolMDJs ZCIsIGFic29mZnNldCk7CiAJfQogCWlmIChnbXRvZmZzZXQgPiAwKQotCQlzbnByaW50Zih0em5h bWUsIHNpemVvZih0em5hbWUpLCAiPC0lcz4rJXMiLAorCQlzbnByaW50Zih6b25lLCBzaXplb2Yo em9uZSksICI8LSVzPislcyIsCiAJCQkJIG9mZnNldHN0ciwgb2Zmc2V0c3RyKTsKIAllbHNlCi0J CXNucHJpbnRmKHR6bmFtZSwgc2l6ZW9mKHR6bmFtZSksICI8KyVzPi0lcyIsCisJCXNucHJpbnRm KHpvbmUsIHNpemVvZih6b25lKSwgIjwrJXM+LSVzIiwKIAkJCQkgb2Zmc2V0c3RyLCBvZmZzZXRz dHIpOwogCi0JcmV0dXJuIHBnX3R6c2V0KHR6bmFtZSk7CisJcmV0dXJuIHBnX3R6c2V0KHpvbmUp OwogfQogCiAKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0011-cleanup-rename-local-conn-variables-to-avoid-shad.patch" Content-Disposition: attachment; filename="v2-0011-cleanup-rename-local-conn-variables-to-avoid-shad.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocs10 RnJvbSBmMDNkOGRjZjNiYzZlZmQ3YzAzMGM4MDEzZmZhMTNjNTgyYmU4ODNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE2OjAzOjE5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAxMS8x M10gY2xlYW51cDogcmVuYW1lIGxvY2FsIGNvbm4gdmFyaWFibGVzIHRvIGF2b2lkCiBzaGFkb3dp bmcgdGhlIGdsb2JhbAoKVGhpcyBjb21taXQgcmVuYW1lcyBhbGwgbG9jYWwgdmFyaWFibGVzIG5h bWVkICdjb25uJyB0byAnbXljb25uJyB0byBhdm9pZApzaGFkb3dpbmcgdGhlIGdsb2JhbCBjb25u ZWN0aW9uIHZhcmlhYmxlLiBUaGlzIGVuc3VyZXMgdGhlIGxvY2FsIGFuZApnbG9iYWwgaWRlbnRp ZmllcnMgcmVtYWluIGNsZWFybHkgZGlzdGluY3Qgd2l0aGluIGVhY2ggc2NvcGUuCgpBIGZldyBh ZGRpdGlvbmFsIHNoYWRvd2luZyBmaXhlcyBpbiB0aGUgc2FtZSBjb2RlIGFyZWFzIGFyZSBpbmNs dWRlZCBhcwp3ZWxsLiBUaGVzZSBhcmUgdW5yZWxhdGVkIHRvIHRoZSBjb25uIHJlbmFtaW5nIGJ1 dCBvY2N1ciBpbiB0aGUgc2FtZQpmaWxlcywgc28gdGhleSBhcmUgYnVuZGxlZCBoZXJlIHRvIGtl ZXAgdGhlIGNvbW1pdCBzZWxmLWNvbnRhaW5lZC4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hn by5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0 SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYyAgfCAgMzIgKysrKy0tLS0KIHNyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5jIHwgIDI0ICsrKy0tLQogc3JjL2Jpbi9w Z19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYyAgICAgfCAxMDggKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVhbXV0aWwuYyAgICAgfCAgNTggKysrKysr LS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMg Yi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCmluZGV4IDBhM2NhNDMxNWRl Li41YTU3YzY0ZGNkMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2Vi YWNrdXAuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCkBAIC0x MDEzLDE2ICsxMDEzLDE2IEBAIGJhY2t1cF9wYXJzZV9jb21wcmVzc19vcHRpb25zKGNoYXIgKm9w dGlvbiwgY2hhciAqKmFsZ29yaXRobSwgY2hhciAqKmRldGFpbCwKICAqIGNodW5rLgogICovCiBz dGF0aWMgdm9pZAotUmVjZWl2ZUNvcHlEYXRhKFBHY29ubiAqY29ubiwgV3JpdGVEYXRhQ2FsbGJh Y2sgY2FsbGJhY2ssCitSZWNlaXZlQ29weURhdGEoUEdjb25uICpteWNvbm4sIFdyaXRlRGF0YUNh bGxiYWNrIGNhbGxiYWNrLAogCQkJCXZvaWQgKmNhbGxiYWNrX2RhdGEpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOwogCiAJLyogR2V0IHRoZSBDT1BZIGRhdGEgc3RyZWFtLiAqLwotCXJlcyA9IFBRZ2V0 UmVzdWx0KGNvbm4pOworCXJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7CiAJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09QWV9PVVQpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZ2V0 IENPUFkgZGF0YSBzdHJlYW06ICVzIiwKLQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJ CSBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAlQUWNsZWFyKHJlcyk7CiAKIAkvKiBMb29wIG92 ZXIgY2h1bmtzIHVudGlsIGRvbmUuICovCkBAIC0xMDMxLDcgKzEwMzEsNyBAQCBSZWNlaXZlQ29w eURhdGEoUEdjb25uICpjb25uLCBXcml0ZURhdGFDYWxsYmFjayBjYWxsYmFjaywKIAkJaW50CQkJ cjsKIAkJY2hhcgkgICAqY29weWJ1ZjsKIAotCQlyID0gUFFnZXRDb3B5RGF0YShjb25uLCAmY29w eWJ1ZiwgMCk7CisJCXIgPSBQUWdldENvcHlEYXRhKG15Y29ubiwgJmNvcHlidWYsIDApOwogCQlp ZiAociA9PSAtMSkKIAkJewogCQkJLyogRW5kIG9mIGNodW5rLiAqLwpAQCAtMTAzOSw3ICsxMDM5 LDcgQEAgUmVjZWl2ZUNvcHlEYXRhKFBHY29ubiAqY29ubiwgV3JpdGVEYXRhQ2FsbGJhY2sgY2Fs bGJhY2ssCiAJCX0KIAkJZWxzZSBpZiAociA9PSAtMikKIAkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qg cmVhZCBDT1BZIGRhdGE6ICVzIiwKLQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJCQkJ IFBRZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCiAJCWlmIChiZ2NoaWxkX2V4aXRlZCkKIAkJCXBn X2ZhdGFsKCJiYWNrZ3JvdW5kIHByb2Nlc3MgdGVybWluYXRlZCB1bmV4cGVjdGVkbHkiKTsKQEAg LTEyODMsNyArMTI4Myw3IEBAIENyZWF0ZUJhY2t1cFN0cmVhbWVyKGNoYXIgKmFyY2hpdmVfbmFt ZSwgY2hhciAqc3BjbG9jYXRpb24sCiAgKiBtYW5pZmVzdCBpZiBwcmVzZW50IC0gYXMgYSBzaW5n bGUgQ09QWSBzdHJlYW0uCiAgKi8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlQXJjaGl2ZVN0cmVhbShQ R2Nvbm4gKmNvbm4sIHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gKmNvbXByZXNzKQorUmVjZWl2 ZUFyY2hpdmVTdHJlYW0oUEdjb25uICpteWNvbm4sIHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24g KmNvbXByZXNzKQogewogCUFyY2hpdmVTdHJlYW1TdGF0ZSBzdGF0ZTsKIApAQCAtMTI5Myw3ICsx MjkzLDcgQEAgUmVjZWl2ZUFyY2hpdmVTdHJlYW0oUEdjb25uICpjb25uLCBwZ19jb21wcmVzc19z cGVjaWZpY2F0aW9uICpjb21wcmVzcykKIAlzdGF0ZS5jb21wcmVzcyA9IGNvbXByZXNzOwogCiAJ LyogQWxsIHRoZSByZWFsIHdvcmsgaGFwcGVucyBpbiBSZWNlaXZlQXJjaGl2ZVN0cmVhbUNodW5r LiAqLwotCVJlY2VpdmVDb3B5RGF0YShjb25uLCBSZWNlaXZlQXJjaGl2ZVN0cmVhbUNodW5rLCAm c3RhdGUpOworCVJlY2VpdmVDb3B5RGF0YShteWNvbm4sIFJlY2VpdmVBcmNoaXZlU3RyZWFtQ2h1 bmssICZzdGF0ZSk7CiAKIAkvKiBJZiB3ZSB3cm90ZSB0aGUgYmFja3VwIG1hbmlmZXN0IHRvIGEg ZmlsZSwgY2xvc2UgdGhlIGZpbGUuICovCiAJaWYgKHN0YXRlLm1hbmlmZXN0X2ZpbGUgIT1OVUxM KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVwb3J0Q29weURhdGFQYXJzZUVycm9yKHNpemVfdCBy LCBjaGFyICpjb3B5YnVmKQogICogcmVjZWl2ZSB0aGUgYmFja3VwIG1hbmlmZXN0IGFuZCBpbmpl Y3QgaXQgaW50byB0aGF0IHRhcmZpbGUuCiAgKi8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlVGFyRmls ZShQR2Nvbm4gKmNvbm4sIGNoYXIgKmFyY2hpdmVfbmFtZSwgY2hhciAqc3BjbG9jYXRpb24sCitS ZWNlaXZlVGFyRmlsZShQR2Nvbm4gKm15Y29ubiwgY2hhciAqYXJjaGl2ZV9uYW1lLCBjaGFyICpz cGNsb2NhdGlvbiwKIAkJCSAgIGJvb2wgdGFibGVzcGFjZW51bSwgcGdfY29tcHJlc3Nfc3BlY2lm aWNhdGlvbiAqY29tcHJlc3MpCiB7CiAJV3JpdGVUYXJTdGF0ZSBzdGF0ZTsKQEAgLTE2MDksMTYg KzE2MDksMTYgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBjaGFyICphcmNoaXZlX25h bWUsIGNoYXIgKnNwY2xvY2F0aW9uLAogCS8qIFBhc3MgYWxsIENPUFkgZGF0YSB0aHJvdWdoIHRv IHRoZSBiYWNrdXAgc3RyZWFtZXIuICovCiAJbWVtc2V0KCZzdGF0ZSwgMCwgc2l6ZW9mKHN0YXRl KSk7CiAJaXNfcmVjb3ZlcnlfZ3VjX3N1cHBvcnRlZCA9Ci0JCVBRc2VydmVyVmVyc2lvbihjb25u KSA+PSBNSU5JTVVNX1ZFUlNJT05fRk9SX1JFQ09WRVJZX0dVQzsKKwkJUFFzZXJ2ZXJWZXJzaW9u KG15Y29ubikgPj0gTUlOSU1VTV9WRVJTSU9OX0ZPUl9SRUNPVkVSWV9HVUM7CiAJZXhwZWN0X3Vu dGVybWluYXRlZF90YXJmaWxlID0KLQkJUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pIDwgTUlOSU1VTV9W RVJTSU9OX0ZPUl9URVJNSU5BVEVEX1RBUkZJTEU7CisJCVBRc2VydmVyVmVyc2lvbihteWNvbm4p IDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9URVJNSU5BVEVEX1RBUkZJTEU7CiAJc3RhdGUuc3RyZWFt ZXIgPSBDcmVhdGVCYWNrdXBTdHJlYW1lcihhcmNoaXZlX25hbWUsIHNwY2xvY2F0aW9uLAogCQkJ CQkJCQkJCSAgJm1hbmlmZXN0X2luamVjdF9zdHJlYW1lciwKIAkJCQkJCQkJCQkgIGlzX3JlY292 ZXJ5X2d1Y19zdXBwb3J0ZWQsCiAJCQkJCQkJCQkJICBleHBlY3RfdW50ZXJtaW5hdGVkX3RhcmZp bGUsCiAJCQkJCQkJCQkJICBjb21wcmVzcyk7CiAJc3RhdGUudGFibGVzcGFjZW51bSA9IHRhYmxl c3BhY2VudW07Ci0JUmVjZWl2ZUNvcHlEYXRhKGNvbm4sIFJlY2VpdmVUYXJDb3B5Q2h1bmssICZz dGF0ZSk7CisJUmVjZWl2ZUNvcHlEYXRhKG15Y29ubiwgUmVjZWl2ZVRhckNvcHlDaHVuaywgJnN0 YXRlKTsKIAlwcm9ncmVzc191cGRhdGVfZmlsZW5hbWUoTlVMTCk7CiAKIAkvKgpAQCAtMTYzMyw3 ICsxNjMzLDcgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBjaGFyICphcmNoaXZlX25h bWUsIGNoYXIgKnNwY2xvY2F0aW9uLAogCiAJCS8qIFNsdXJwIHRoZSBlbnRpcmUgYmFja3VwIG1h bmlmZXN0IGludG8gYSBidWZmZXIuICovCiAJCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKLQkJUmVj ZWl2ZUJhY2t1cE1hbmlmZXN0SW5NZW1vcnkoY29ubiwgJmJ1Zik7CisJCVJlY2VpdmVCYWNrdXBN YW5pZmVzdEluTWVtb3J5KG15Y29ubiwgJmJ1Zik7CiAJCWlmIChQUUV4cEJ1ZmZlckRhdGFCcm9r ZW4oYnVmKSkKIAkJCXBnX2ZhdGFsKCJvdXQgb2YgbWVtb3J5Iik7CiAKQEAgLTE2OTcsNyArMTY5 Nyw3IEBAIGdldF90YWJsZXNwYWNlX21hcHBpbmcoY29uc3QgY2hhciAqZGlyKQogICogUmVjZWl2 ZSB0aGUgYmFja3VwIG1hbmlmZXN0IGZpbGUgYW5kIHdyaXRlIGl0IG91dCB0byBhIGZpbGUuCiAg Ki8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlQmFja3VwTWFuaWZlc3QoUEdjb25uICpjb25uKQorUmVj ZWl2ZUJhY2t1cE1hbmlmZXN0KFBHY29ubiAqbXljb25uKQogewogCVdyaXRlTWFuaWZlc3RTdGF0 ZSBzdGF0ZTsKIApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0KFBH Y29ubiAqY29ubikKIAlpZiAoc3RhdGUuZmlsZSA9PSBOVUxMKQogCQlwZ19mYXRhbCgiY291bGQg bm90IGNyZWF0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS5maWxlbmFtZSk7CiAKLQlSZWNlaXZl Q29weURhdGEoY29ubiwgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0Q2h1bmssICZzdGF0ZSk7CisJUmVj ZWl2ZUNvcHlEYXRhKG15Y29ubiwgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0Q2h1bmssICZzdGF0ZSk7 CiAKIAlmY2xvc2Uoc3RhdGUuZmlsZSk7CiB9CkBAIC0xNzM0LDkgKzE3MzQsOSBAQCBSZWNlaXZl QmFja3VwTWFuaWZlc3RDaHVuayhzaXplX3QgciwgY2hhciAqY29weWJ1Ziwgdm9pZCAqY2FsbGJh Y2tfZGF0YSkKICAqIFJlY2VpdmUgdGhlIGJhY2t1cCBtYW5pZmVzdCBmaWxlIGFuZCB3cml0ZSBp dCBvdXQgdG8gYSBmaWxlLgogICovCiBzdGF0aWMgdm9pZAotUmVjZWl2ZUJhY2t1cE1hbmlmZXN0 SW5NZW1vcnkoUEdjb25uICpjb25uLCBQUUV4cEJ1ZmZlciBidWYpCitSZWNlaXZlQmFja3VwTWFu aWZlc3RJbk1lbW9yeShQR2Nvbm4gKm15Y29ubiwgUFFFeHBCdWZmZXIgYnVmKQogewotCVJlY2Vp dmVDb3B5RGF0YShjb25uLCBSZWNlaXZlQmFja3VwTWFuaWZlc3RJbk1lbW9yeUNodW5rLCBidWYp OworCVJlY2VpdmVDb3B5RGF0YShteWNvbm4sIFJlY2VpdmVCYWNrdXBNYW5pZmVzdEluTWVtb3J5 Q2h1bmssIGJ1Zik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAv cGdfcmVjdmxvZ2ljYWwuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5j CmluZGV4IDE0YWQxNTA0Njc4Li43ODAxNjIzZmVjOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX3JlY3Zsb2dpY2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Bn X3JlY3Zsb2dpY2FsLmMKQEAgLTczLDggKzczLDggQEAgc3RhdGljIFhMb2dSZWNQdHIgb3V0cHV0 X2ZzeW5jX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCiBzdGF0aWMgdm9pZCB1c2FnZSh2b2lk KTsKIHN0YXRpYyB2b2lkIFN0cmVhbUxvZ2ljYWxMb2codm9pZCk7Ci1zdGF0aWMgYm9vbCBmbHVz aEFuZFNlbmRGZWVkYmFjayhQR2Nvbm4gKmNvbm4sIFRpbWVzdGFtcFR6ICpub3cpOwotc3RhdGlj IHZvaWQgcHJlcGFyZVRvVGVybWluYXRlKFBHY29ubiAqY29ubiwgWExvZ1JlY1B0ciBlbmRwb3Ms CitzdGF0aWMgYm9vbCBmbHVzaEFuZFNlbmRGZWVkYmFjayhQR2Nvbm4gKm15Y29ubiwgVGltZXN0 YW1wVHogKm5vdyk7CitzdGF0aWMgdm9pZCBwcmVwYXJlVG9UZXJtaW5hdGUoUEdjb25uICpteWNv bm4sIFhMb2dSZWNQdHIgZW5kcG9zLAogCQkJCQkJCSAgIFN0cmVhbVN0b3BSZWFzb24gcmVhc29u LAogCQkJCQkJCSAgIFhMb2dSZWNQdHIgbHNuKTsKIApAQCAtMTI2LDcgKzEyNiw3IEBAIHVzYWdl KHZvaWQpCiAgKiBTZW5kIGEgU3RhbmRieSBTdGF0dXMgVXBkYXRlIG1lc3NhZ2UgdG8gc2VydmVy LgogICovCiBzdGF0aWMgYm9vbAotc2VuZEZlZWRiYWNrKFBHY29ubiAqY29ubiwgVGltZXN0YW1w VHogbm93LCBib29sIGZvcmNlLCBib29sIHJlcGx5UmVxdWVzdGVkKQorc2VuZEZlZWRiYWNrKFBH Y29ubiAqbXljb25uLCBUaW1lc3RhbXBUeiBub3csIGJvb2wgZm9yY2UsIGJvb2wgcmVwbHlSZXF1 ZXN0ZWQpCiB7CiAJc3RhdGljIFhMb2dSZWNQdHIgbGFzdF93cml0dGVuX2xzbiA9IEludmFsaWRY TG9nUmVjUHRyOwogCXN0YXRpYyBYTG9nUmVjUHRyIGxhc3RfZnN5bmNfbHNuID0gSW52YWxpZFhM b2dSZWNQdHI7CkBAIC0xNjcsMTAgKzE2NywxMCBAQCBzZW5kRmVlZGJhY2soUEdjb25uICpjb25u LCBUaW1lc3RhbXBUeiBub3csIGJvb2wgZm9yY2UsIGJvb2wgcmVwbHlSZXF1ZXN0ZWQpCiAJbGFz dF93cml0dGVuX2xzbiA9IG91dHB1dF93cml0dGVuX2xzbjsKIAlsYXN0X2ZzeW5jX2xzbiA9IG91 dHB1dF9mc3luY19sc247CiAKLQlpZiAoUFFwdXRDb3B5RGF0YShjb25uLCByZXBseWJ1ZiwgbGVu KSA8PSAwIHx8IFBRZmx1c2goY29ubikpCisJaWYgKFBRcHV0Q29weURhdGEobXljb25uLCByZXBs eWJ1ZiwgbGVuKSA8PSAwIHx8IFBRZmx1c2gobXljb25uKSkKIAl7CiAJCXBnX2xvZ19lcnJvcigi Y291bGQgbm90IHNlbmQgZmVlZGJhY2sgcGFja2V0OiAlcyIsCi0JCQkJCSBQUWVycm9yTWVzc2Fn ZShjb25uKSk7CisJCQkJCSBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAkJcmV0dXJuIGZhbHNl OwogCX0KIApAQCAtMTA0NSwxMyArMTA0NSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAqIGZlZWRiYWNrLgogICovCiBzdGF0aWMgYm9vbAotZmx1c2hBbmRTZW5kRmVlZGJhY2so UEdjb25uICpjb25uLCBUaW1lc3RhbXBUeiAqbm93KQorZmx1c2hBbmRTZW5kRmVlZGJhY2soUEdj b25uICpteWNvbm4sIFRpbWVzdGFtcFR6ICpub3cpCiB7CiAJLyogZmx1c2ggZGF0YSB0byBkaXNr LCBzbyB0aGF0IHdlIHNlbmQgYSByZWNlbnQgZmx1c2ggcG9pbnRlciAqLwogCWlmICghT3V0cHV0 RnN5bmMoKm5vdykpCiAJCXJldHVybiBmYWxzZTsKIAkqbm93ID0gZmVHZXRDdXJyZW50VGltZXN0 YW1wKCk7Ci0JaWYgKCFzZW5kRmVlZGJhY2soY29ubiwgKm5vdywgdHJ1ZSwgZmFsc2UpKQorCWlm ICghc2VuZEZlZWRiYWNrKG15Y29ubiwgKm5vdywgdHJ1ZSwgZmFsc2UpKQogCQlyZXR1cm4gZmFs c2U7CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTEwNjIsMTEgKzEwNjIsMTEgQEAgZmx1c2hBbmRTZW5k RmVlZGJhY2soUEdjb25uICpjb25uLCBUaW1lc3RhbXBUeiAqbm93KQogICogcmV0cnkgb24gZmFp bHVyZS4KICAqLwogc3RhdGljIHZvaWQKLXByZXBhcmVUb1Rlcm1pbmF0ZShQR2Nvbm4gKmNvbm4s IFhMb2dSZWNQdHIgZW5kcG9zLCBTdHJlYW1TdG9wUmVhc29uIHJlYXNvbiwKK3ByZXBhcmVUb1Rl cm1pbmF0ZShQR2Nvbm4gKm15Y29ubiwgWExvZ1JlY1B0ciBlbmRfcG9zLCBTdHJlYW1TdG9wUmVh c29uIHJlYXNvbiwKIAkJCQkgICBYTG9nUmVjUHRyIGxzbikKIHsKLQkodm9pZCkgUFFwdXRDb3B5 RW5kKGNvbm4sIE5VTEwpOwotCSh2b2lkKSBQUWZsdXNoKGNvbm4pOworCSh2b2lkKSBQUXB1dENv cHlFbmQobXljb25uLCBOVUxMKTsKKwkodm9pZCkgUFFmbHVzaChteWNvbm4pOwogCiAJaWYgKHZl cmJvc2UpCiAJewpAQCAtMTA3NywxMiArMTA3NywxMiBAQCBwcmVwYXJlVG9UZXJtaW5hdGUoUEdj b25uICpjb25uLCBYTG9nUmVjUHRyIGVuZHBvcywgU3RyZWFtU3RvcFJlYXNvbiByZWFzb24sCiAJ CQkJYnJlYWs7CiAJCQljYXNlIFNUUkVBTV9TVE9QX0tFRVBBTElWRToKIAkJCQlwZ19sb2dfaW5m bygiZW5kIHBvc2l0aW9uICVYLyUwOFggcmVhY2hlZCBieSBrZWVwYWxpdmUiLAotCQkJCQkJCUxT Tl9GT1JNQVRfQVJHUyhlbmRwb3MpKTsKKwkJCQkJCQlMU05fRk9STUFUX0FSR1MoZW5kX3Bvcykp OwogCQkJCWJyZWFrOwogCQkJY2FzZSBTVFJFQU1fU1RPUF9FTkRfT0ZfV0FMOgogCQkJCUFzc2Vy dChYTG9nUmVjUHRySXNWYWxpZChsc24pKTsKIAkJCQlwZ19sb2dfaW5mbygiZW5kIHBvc2l0aW9u ICVYLyUwOFggcmVhY2hlZCBieSBXQUwgcmVjb3JkIGF0ICVYLyUwOFgiLAotCQkJCQkJCUxTTl9G T1JNQVRfQVJHUyhlbmRwb3MpLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CisJCQkJCQkJTFNOX0ZP Uk1BVF9BUkdTKGVuZF9wb3MpLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFNUUkVBTV9TVE9QX05PTkU6CiAJCQkJQXNzZXJ0KGZhbHNlKTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvcmVjZWl2ZWxvZy5jCmluZGV4IDI1YjEzYzdmNTVjLi45ZWMxZWVlMDg4YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYworKysgYi9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvcmVjZWl2ZWxvZy5jCkBAIC0zMiwxOCArMzIsMTggQEAgc3RhdGljIFhMb2dSZWNQ dHIgbGFzdEZsdXNoUG9zaXRpb24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAogc3RhdGljIGJvb2wg c3RpbGxfc2VuZGluZyA9IHRydWU7CS8qIGZlZWRiYWNrIHN0aWxsIG5lZWRzIHRvIGJlIHNlbnQ/ ICovCiAKLXN0YXRpYyBQR3Jlc3VsdCAqSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtLAorc3RhdGljIFBHcmVzdWx0ICpIYW5kbGVDb3B5U3RyZWFtKFBHY29u biAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwKIAkJCQkJCQkJICBYTG9nUmVjUHRyICpzdG9w cG9zKTsKLXN0YXRpYyBpbnQJQ29weVN0cmVhbVBvbGwoUEdjb25uICpjb25uLCBsb25nIHRpbWVv dXRfbXMsIHBnc29ja2V0IHN0b3Bfc29ja2V0KTsKLXN0YXRpYyBpbnQJQ29weVN0cmVhbVJlY2Vp dmUoUEdjb25uICpjb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAorc3Rh dGljIGludAlDb3B5U3RyZWFtUG9sbChQR2Nvbm4gKm15Y29ubiwgbG9uZyB0aW1lb3V0X21zLCBw Z3NvY2tldCBzdG9wX3NvY2tldCk7CitzdGF0aWMgaW50CUNvcHlTdHJlYW1SZWNlaXZlKFBHY29u biAqbXljb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogCQkJCQkJCSAg Y2hhciAqKmJ1ZmZlcik7Ci1zdGF0aWMgYm9vbCBQcm9jZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAq Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsCitzdGF0aWMgYm9vbCBQcm9j ZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAq Y29weWJ1ZiwKIAkJCQkJCQkJaW50IGxlbiwgWExvZ1JlY1B0ciBibG9ja3BvcywgVGltZXN0YW1w VHogKmxhc3Rfc3RhdHVzKTsKLXN0YXRpYyBib29sIFByb2Nlc3NXQUxEYXRhTXNnKFBHY29ubiAq Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGludCBsZW4sCitzdGF0aWMg Ym9vbCBQcm9jZXNzV0FMRGF0YU1zZyhQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0s IGNoYXIgKmNvcHlidWYsIGludCBsZW4sCiAJCQkJCQkJICBYTG9nUmVjUHRyICpibG9ja3Bvcyk7 Ci1zdGF0aWMgUEdyZXN1bHQgKkhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLAorc3RhdGljIFBHcmVzdWx0ICpIYW5kbGVF bmRPZkNvcHlTdHJlYW0oUEdjb25uICpteWNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpj b3B5YnVmLAogCQkJCQkJCQkJICAgWExvZ1JlY1B0ciBibG9ja3BvcywgWExvZ1JlY1B0ciAqc3Rv cHBvcyk7Ci1zdGF0aWMgYm9vbCBDaGVja0NvcHlTdHJlYW1TdG9wKFBHY29ubiAqY29ubiwgU3Ry ZWFtQ3RsICpzdHJlYW0sIFhMb2dSZWNQdHIgYmxvY2twb3MpOworc3RhdGljIGJvb2wgQ2hlY2tD b3B5U3RyZWFtU3RvcChQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIFhMb2dSZWNQ dHIgYmxvY2twb3MpOwogc3RhdGljIGxvbmcgQ2FsY3VsYXRlQ29weVN0cmVhbVNsZWVwdGltZShU aW1lc3RhbXBUeiBub3csIGludCBzdGFuZGJ5X21lc3NhZ2VfdGltZW91dCwKIAkJCQkJCQkJCQkg VGltZXN0YW1wVHogbGFzdF9zdGF0dXMpOwogCkBAIC0zMzQsNyArMzM0LDcgQEAgd3JpdGVUaW1l TGluZUhpc3RvcnlGaWxlKFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpmaWxlbmFtZSwgY2hhciAq Y29udGVudCkKICAqIFNlbmQgYSBTdGFuZGJ5IFN0YXR1cyBVcGRhdGUgbWVzc2FnZSB0byBzZXJ2 ZXIuCiAgKi8KIHN0YXRpYyBib29sCi1zZW5kRmVlZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVj UHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBub3csIGJvb2wgcmVwbHlSZXF1ZXN0ZWQpCitzZW5k RmVlZGJhY2soUEdjb25uICpteWNvbm4sIFhMb2dSZWNQdHIgYmxvY2twb3MsIFRpbWVzdGFtcFR6 IG5vdywgYm9vbCByZXBseVJlcXVlc3RlZCkKIHsKIAljaGFyCQlyZXBseWJ1ZlsxICsgOCArIDgg KyA4ICsgOCArIDFdOwogCWludAkJCWxlbiA9IDA7CkBAIC0zNTUsMTAgKzM1NSwxMCBAQCBzZW5k RmVlZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBu b3csIGJvb2wgcmVwbHlSZXF1ZQogCXJlcGx5YnVmW2xlbl0gPSByZXBseVJlcXVlc3RlZCA/IDEg OiAwOyAvKiByZXBseVJlcXVlc3RlZCAqLwogCWxlbiArPSAxOwogCi0JaWYgKFBRcHV0Q29weURh dGEoY29ubiwgcmVwbHlidWYsIGxlbikgPD0gMCB8fCBQUWZsdXNoKGNvbm4pKQorCWlmIChQUXB1 dENvcHlEYXRhKG15Y29ubiwgcmVwbHlidWYsIGxlbikgPD0gMCB8fCBQUWZsdXNoKG15Y29ubikp CiAJewogCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBzZW5kIGZlZWRiYWNrIHBhY2tldDogJXMi LAotCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkgUFFlcnJvck1lc3NhZ2UobXlj b25uKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTM3Miw3ICszNzIsNyBAQCBzZW5kRmVl ZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBub3cs IGJvb2wgcmVwbHlSZXF1ZQogICogSWYgaXQncyBub3QsIGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJp bnRlZCB0byBzdGRlcnIsIGFuZCBmYWxzZSBpcyByZXR1cm5lZC4KICAqLwogYm9vbAotQ2hlY2tT ZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKFBHY29ubiAqY29ubikKK0NoZWNrU2VydmVyVmVyc2lv bkZvclN0cmVhbWluZyhQR2Nvbm4gKm15Y29ubikKIHsKIAlpbnQJCQltaW5TZXJ2ZXJNYWpvciwK IAkJCQltYXhTZXJ2ZXJNYWpvcjsKQEAgLTM4NiwxMCArMzg2LDEwIEBAIENoZWNrU2VydmVyVmVy c2lvbkZvclN0cmVhbWluZyhQR2Nvbm4gKmNvbm4pCiAJICovCiAJbWluU2VydmVyTWFqb3IgPSA5 MDM7CiAJbWF4U2VydmVyTWFqb3IgPSBQR19WRVJTSU9OX05VTSAvIDEwMDsKLQlzZXJ2ZXJNYWpv ciA9IFBRc2VydmVyVmVyc2lvbihjb25uKSAvIDEwMDsKKwlzZXJ2ZXJNYWpvciA9IFBRc2VydmVy VmVyc2lvbihteWNvbm4pIC8gMTAwOwogCWlmIChzZXJ2ZXJNYWpvciA8IG1pblNlcnZlck1ham9y KQogCXsKLQkJY29uc3QgY2hhciAqc2VydmVydmVyID0gUFFwYXJhbWV0ZXJTdGF0dXMoY29ubiwg InNlcnZlcl92ZXJzaW9uIik7CisJCWNvbnN0IGNoYXIgKnNlcnZlcnZlciA9IFBRcGFyYW1ldGVy U3RhdHVzKG15Y29ubiwgInNlcnZlcl92ZXJzaW9uIik7CiAKIAkJcGdfbG9nX2Vycm9yKCJpbmNv bXBhdGlibGUgc2VydmVyIHZlcnNpb24gJXM7IGNsaWVudCBkb2VzIG5vdCBzdXBwb3J0IHN0cmVh bWluZyBmcm9tIHNlcnZlciB2ZXJzaW9ucyBvbGRlciB0aGFuICVzIiwKIAkJCQkJIHNlcnZlcnZl ciA/IHNlcnZlcnZlciA6ICIndW5rbm93biciLApAQCAtMzk4LDcgKzM5OCw3IEBAIENoZWNrU2Vy dmVyVmVyc2lvbkZvclN0cmVhbWluZyhQR2Nvbm4gKmNvbm4pCiAJfQogCWVsc2UgaWYgKHNlcnZl ck1ham9yID4gbWF4U2VydmVyTWFqb3IpCiAJewotCQljb25zdCBjaGFyICpzZXJ2ZXJ2ZXIgPSBQ UXBhcmFtZXRlclN0YXR1cyhjb25uLCAic2VydmVyX3ZlcnNpb24iKTsKKwkJY29uc3QgY2hhciAq c2VydmVydmVyID0gUFFwYXJhbWV0ZXJTdGF0dXMobXljb25uLCAic2VydmVyX3ZlcnNpb24iKTsK IAogCQlwZ19sb2dfZXJyb3IoImluY29tcGF0aWJsZSBzZXJ2ZXIgdmVyc2lvbiAlczsgY2xpZW50 IGRvZXMgbm90IHN1cHBvcnQgc3RyZWFtaW5nIGZyb20gc2VydmVyIHZlcnNpb25zIG5ld2VyIHRo YW4gJXMiLAogCQkJCQkgc2VydmVydmVyID8gc2VydmVydmVyIDogIid1bmtub3duJyIsCkBAIC00 NTAsNyArNDUwLDcgQEAgQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKFBHY29ubiAqY29u bikKICAqIE5vdGU6IFRoZSBXQUwgbG9jYXRpb24gKm11c3QqIGJlIGF0IGEgbG9nIHNlZ21lbnQg c3RhcnQhCiAgKi8KIGJvb2wKLVJlY2VpdmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFt Q3RsICpzdHJlYW0pCitSZWNlaXZlWGxvZ1N0cmVhbShQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3Rs ICpzdHJlYW0pCiB7CiAJY2hhcgkJcXVlcnlbMTI4XTsKIAljaGFyCQlzbG90Y21kWzEyOF07CkBA IC00NjEsNyArNDYxLDcgQEAgUmVjZWl2ZVhsb2dTdHJlYW0oUEdjb25uICpjb25uLCBTdHJlYW1D dGwgKnN0cmVhbSkKIAkgKiBUaGUgY2FsbGVyIHNob3VsZCd2ZSBjaGVja2VkIHRoZSBzZXJ2ZXIg dmVyc2lvbiBhbHJlYWR5LCBidXQgZG9lc24ndCBkbwogCSAqIGFueSBoYXJtIHRvIGNoZWNrIGl0 IGhlcmUgdG9vLgogCSAqLwotCWlmICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKGNv bm4pKQorCWlmICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKG15Y29ubikpCiAJCXJl dHVybiBmYWxzZTsKIAogCS8qCkBAIC00OTcsNyArNDk3LDcgQEAgUmVjZWl2ZVhsb2dTdHJlYW0o UEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSkKIAkJLyoKIAkJICogR2V0IHRoZSBzZXJ2 ZXIgc3lzdGVtIGlkZW50aWZpZXIgYW5kIHRpbWVsaW5lLCBhbmQgdmFsaWRhdGUgdGhlbS4KIAkJ ICovCi0JCWlmICghUnVuSWRlbnRpZnlTeXN0ZW0oY29ubiwgJnN5c2lkZW50aWZpZXIsICZzZXJ2 ZXJ0bGksIE5VTEwsIE5VTEwpKQorCQlpZiAoIVJ1bklkZW50aWZ5U3lzdGVtKG15Y29ubiwgJnN5 c2lkZW50aWZpZXIsICZzZXJ2ZXJ0bGksIE5VTEwsIE5VTEwpKQogCQl7CiAJCQlwZ19mcmVlKHN5 c2lkZW50aWZpZXIpOwogCQkJcmV0dXJuIGZhbHNlOwpAQCAtNTM2LDcgKzUzNiw3IEBAIFJlY2Vp dmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0pCiAJCWlmICghZXhp c3RzVGltZUxpbmVIaXN0b3J5RmlsZShzdHJlYW0pKQogCQl7CiAJCQlzbnByaW50ZihxdWVyeSwg c2l6ZW9mKHF1ZXJ5KSwgIlRJTUVMSU5FX0hJU1RPUlkgJXUiLCBzdHJlYW0tPnRpbWVsaW5lKTsK LQkJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeSk7CisJCQlyZXMgPSBQUWV4ZWMobXljb25uLCBx dWVyeSk7CiAJCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJ CQl7CiAJCQkJLyogRklYTUU6IHdlIG1pZ2h0IHNlbmQgaXQgb2ssIGJ1dCBnZXQgYW4gZXJyb3Ig Ki8KQEAgLTU3Niw3ICs1NzYsNyBAQCBSZWNlaXZlWGxvZ1N0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtKQogCQkJCSBzbG90Y21kLAogCQkJCSBMU05fRk9STUFUX0FSR1Moc3Ry ZWFtLT5zdGFydHBvcyksCiAJCQkJIHN0cmVhbS0+dGltZWxpbmUpOwotCQlyZXMgPSBQUWV4ZWMo Y29ubiwgcXVlcnkpOworCQlyZXMgPSBQUWV4ZWMobXljb25uLCBxdWVyeSk7CiAJCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPUFlfQk9USCkKIAkJewogCQkJcGdfbG9nX2Vycm9y KCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLApAQCAtNTg3 LDcgKzU4Nyw3IEBAIFJlY2VpdmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpz dHJlYW0pCiAJCVBRY2xlYXIocmVzKTsKIAogCQkvKiBTdHJlYW0gdGhlIFdBTCAqLwotCQlyZXMg PSBIYW5kbGVDb3B5U3RyZWFtKGNvbm4sIHN0cmVhbSwgJnN0b3Bwb3MpOworCQlyZXMgPSBIYW5k bGVDb3B5U3RyZWFtKG15Y29ubiwgc3RyZWFtLCAmc3RvcHBvcyk7CiAJCWlmIChyZXMgPT0gTlVM TCkKIAkJCWdvdG8gZXJyb3I7CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBSZWNlaXZlWGxvZ1N0cmVh bShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtKQogCQkJfQogCiAJCQkvKiBSZWFkIHRo ZSBmaW5hbCByZXN1bHQsIHdoaWNoIHNob3VsZCBiZSBDb21tYW5kQ29tcGxldGUuICovCi0JCQly ZXMgPSBQUWdldFJlc3VsdChjb25uKTsKKwkJCXJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7CiAJ CQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQkJewogCQkJ CXBnX2xvZ19lcnJvcigidW5leHBlY3RlZCB0ZXJtaW5hdGlvbiBvZiByZXBsaWNhdGlvbiBzdHJl YW06ICVzIiwKQEAgLTc0Miw3ICs3NDIsNyBAQCBSZWFkRW5kT2ZTdHJlYW1pbmdSZXN1bHQoUEdy ZXN1bHQgKnJlcywgWExvZ1JlY1B0ciAqc3RhcnRwb3MsIHVpbnQzMiAqdGltZWxpbmUpCiAgKiBP biBhbnkgb3RoZXIgc29ydCBvZiBlcnJvciwgcmV0dXJucyBOVUxMLgogICovCiBzdGF0aWMgUEdy ZXN1bHQgKgotSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFt LAorSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sCiAJ CQkJIFhMb2dSZWNQdHIgKnN0b3Bwb3MpCiB7CiAJY2hhcgkgICAqY29weWJ1ZiA9IE5VTEw7CkBA IC03NjAsNyArNzYwLDcgQEAgSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0 bCAqc3RyZWFtLAogCQkvKgogCQkgKiBDaGVjayBpZiB3ZSBzaG91bGQgY29udGludWUgc3RyZWFt aW5nLCBvciBhYm9ydCBhdCB0aGlzIHBvaW50LgogCQkgKi8KLQkJaWYgKCFDaGVja0NvcHlTdHJl YW1TdG9wKGNvbm4sIHN0cmVhbSwgYmxvY2twb3MpKQorCQlpZiAoIUNoZWNrQ29weVN0cmVhbVN0 b3AobXljb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKIAkJCWdvdG8gZXJyb3I7CiAKIAkJbm93ID0g ZmVHZXRDdXJyZW50VGltZXN0YW1wKCk7CkBAIC03ODAsNyArNzgwLDcgQEAgSGFuZGxlQ29weVN0 cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLAogCQkJICogU2VuZCBmZWVkYmFj ayBzbyB0aGF0IHRoZSBzZXJ2ZXIgc2VlcyB0aGUgbGF0ZXN0IFdBTCBsb2NhdGlvbnMKIAkJCSAq IGltbWVkaWF0ZWx5LgogCQkJICovCi0JCQlpZiAoIXNlbmRGZWVkYmFjayhjb25uLCBibG9ja3Bv cywgbm93LCBmYWxzZSkpCisJCQlpZiAoIXNlbmRGZWVkYmFjayhteWNvbm4sIGJsb2NrcG9zLCBu b3csIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yOwogCQkJbGFzdF9zdGF0dXMgPSBub3c7CiAJCX0K QEAgLTc5Myw3ICs3OTMsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFt Q3RsICpzdHJlYW0sCiAJCQkJCQkJCQkJIHN0cmVhbS0+c3RhbmRieV9tZXNzYWdlX3RpbWVvdXQp KQogCQl7CiAJCQkvKiBUaW1lIHRvIHNlbmQgZmVlZGJhY2shICovCi0JCQlpZiAoIXNlbmRGZWVk YmFjayhjb25uLCBibG9ja3Bvcywgbm93LCBmYWxzZSkpCisJCQlpZiAoIXNlbmRGZWVkYmFjayht eWNvbm4sIGJsb2NrcG9zLCBub3csIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yOwogCQkJbGFzdF9z dGF0dXMgPSBub3c7CiAJCX0KQEAgLTgwOCwxNCArODA4LDE0IEBAIEhhbmRsZUNvcHlTdHJlYW0o UEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwKIAkJUFFmcmVlbWVtKGNvcHlidWYpOwog CQljb3B5YnVmID0gTlVMTDsKIAotCQlyID0gQ29weVN0cmVhbVJlY2VpdmUoY29ubiwgc2xlZXB0 aW1lLCBzdHJlYW0tPnN0b3Bfc29ja2V0LCAmY29weWJ1Zik7CisJCXIgPSBDb3B5U3RyZWFtUmVj ZWl2ZShteWNvbm4sIHNsZWVwdGltZSwgc3RyZWFtLT5zdG9wX3NvY2tldCwgJmNvcHlidWYpOwog CQl3aGlsZSAociAhPSAwKQogCQl7CiAJCQlpZiAociA9PSAtMSkKIAkJCQlnb3RvIGVycm9yOwog CQkJaWYgKHIgPT0gLTIpCiAJCQl7Ci0JCQkJUEdyZXN1bHQgICAqcmVzID0gSGFuZGxlRW5kT2ZD b3B5U3RyZWFtKGNvbm4sIHN0cmVhbSwgY29weWJ1ZiwgYmxvY2twb3MsIHN0b3Bwb3MpOworCQkJ CVBHcmVzdWx0ICAgKnJlcyA9IEhhbmRsZUVuZE9mQ29weVN0cmVhbShteWNvbm4sIHN0cmVhbSwg Y29weWJ1ZiwgYmxvY2twb3MsIHN0b3Bwb3MpOwogCiAJCQkJaWYgKHJlcyA9PSBOVUxMKQogCQkJ CQlnb3RvIGVycm9yOwpAQCAtODI2LDIwICs4MjYsMjAgQEAgSGFuZGxlQ29weVN0cmVhbShQR2Nv bm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLAogCQkJLyogQ2hlY2sgdGhlIG1lc3NhZ2UgdHlw ZS4gKi8KIAkJCWlmIChjb3B5YnVmWzBdID09IFBxUmVwbE1zZ19LZWVwYWxpdmUpCiAJCQl7Ci0J CQkJaWYgKCFQcm9jZXNzS2VlcGFsaXZlTXNnKGNvbm4sIHN0cmVhbSwgY29weWJ1ZiwgciwgYmxv Y2twb3MsCisJCQkJaWYgKCFQcm9jZXNzS2VlcGFsaXZlTXNnKG15Y29ubiwgc3RyZWFtLCBjb3B5 YnVmLCByLCBibG9ja3BvcywKIAkJCQkJCQkJCQkgJmxhc3Rfc3RhdHVzKSkKIAkJCQkJZ290byBl cnJvcjsKIAkJCX0KIAkJCWVsc2UgaWYgKGNvcHlidWZbMF0gPT0gUHFSZXBsTXNnX1dBTERhdGEp CiAJCQl7Ci0JCQkJaWYgKCFQcm9jZXNzV0FMRGF0YU1zZyhjb25uLCBzdHJlYW0sIGNvcHlidWYs IHIsICZibG9ja3BvcykpCisJCQkJaWYgKCFQcm9jZXNzV0FMRGF0YU1zZyhteWNvbm4sIHN0cmVh bSwgY29weWJ1ZiwgciwgJmJsb2NrcG9zKSkKIAkJCQkJZ290byBlcnJvcjsKIAogCQkJCS8qCiAJ CQkJICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHN0cmVhbWluZywgb3IgYWJvcnQgYXQg dGhpcwogCQkJCSAqIHBvaW50LgogCQkJCSAqLwotCQkJCWlmICghQ2hlY2tDb3B5U3RyZWFtU3Rv cChjb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKKwkJCQlpZiAoIUNoZWNrQ29weVN0cmVhbVN0b3Ao bXljb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKIAkJCQkJZ290byBlcnJvcjsKIAkJCX0KIAkJCWVs c2UKQEAgLTg1Nyw3ICs4NTcsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3Ry ZWFtQ3RsICpzdHJlYW0sCiAJCQkgKiBQcm9jZXNzIHRoZSByZWNlaXZlZCBkYXRhLCBhbmQgYW55 IHN1YnNlcXVlbnQgZGF0YSB3ZSBjYW4gcmVhZAogCQkJICogd2l0aG91dCBibG9ja2luZy4KIAkJ CSAqLwotCQkJciA9IENvcHlTdHJlYW1SZWNlaXZlKGNvbm4sIDAsIHN0cmVhbS0+c3RvcF9zb2Nr ZXQsICZjb3B5YnVmKTsKKwkJCXIgPSBDb3B5U3RyZWFtUmVjZWl2ZShteWNvbm4sIDAsIHN0cmVh bS0+c3RvcF9zb2NrZXQsICZjb3B5YnVmKTsKIAkJfQogCX0KIApAQCAtODc1LDcgKzg3NSw3IEBA IGVycm9yOgogICogb3IgaW50ZXJydXB0ZWQgYnkgc2lnbmFsIG9yIHN0b3Bfc29ja2V0IGlucHV0 LCBhbmQgLTEgb24gYW4gZXJyb3IuCiAgKi8KIHN0YXRpYyBpbnQKLUNvcHlTdHJlYW1Qb2xsKFBH Y29ubiAqY29ubiwgbG9uZyB0aW1lb3V0X21zLCBwZ3NvY2tldCBzdG9wX3NvY2tldCkKK0NvcHlT dHJlYW1Qb2xsKFBHY29ubiAqbXljb25uLCBsb25nIHRpbWVvdXRfbXMsIHBnc29ja2V0IHN0b3Bf c29ja2V0KQogewogCWludAkJCXJldDsKIAlmZF9zZXQJCWlucHV0X21hc2s7CkBAIC04ODQsMTAg Kzg4NCwxMCBAQCBDb3B5U3RyZWFtUG9sbChQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91dF9tcywg cGdzb2NrZXQgc3RvcF9zb2NrZXQpCiAJc3RydWN0IHRpbWV2YWwgdGltZW91dDsKIAlzdHJ1Y3Qg dGltZXZhbCAqdGltZW91dHB0cjsKIAotCWNvbm5zb2NrZXQgPSBQUXNvY2tldChjb25uKTsKKwlj b25uc29ja2V0ID0gUFFzb2NrZXQobXljb25uKTsKIAlpZiAoY29ubnNvY2tldCA8IDApCiAJewot CQlwZ19sb2dfZXJyb3IoImludmFsaWQgc29ja2V0OiAlcyIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJcGdfbG9nX2Vycm9yKCJpbnZhbGlkIHNvY2tldDogJXMiLCBQUWVycm9yTWVzc2FnZSht eWNvbm4pKTsKIAkJcmV0dXJuIC0xOwogCX0KIApAQCAtOTM3LDcgKzkzNyw3IEBAIENvcHlTdHJl YW1Qb2xsKFBHY29ubiAqY29ubiwgbG9uZyB0aW1lb3V0X21zLCBwZ3NvY2tldCBzdG9wX3NvY2tl dCkKICAqIC0xIG9uIGVycm9yLiAtMiBpZiB0aGUgc2VydmVyIGVuZGVkIHRoZSBDT1BZLgogICov CiBzdGF0aWMgaW50Ci1Db3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91 dCwgcGdzb2NrZXQgc3RvcF9zb2NrZXQsCitDb3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKm15Y29u biwgbG9uZyB0aW1lb3V0LCBwZ3NvY2tldCBzdG9wX3NvY2tldCwKIAkJCQkgIGNoYXIgKipidWZm ZXIpCiB7CiAJY2hhcgkgICAqY29weWJ1ZiA9IE5VTEw7CkBAIC05NDcsNyArOTQ3LDcgQEAgQ29w eVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bf c29ja2V0LAogCUFzc2VydCgqYnVmZmVyID09IE5VTEwpOwogCiAJLyogVHJ5IHRvIHJlY2VpdmUg YSBDb3B5RGF0YSBtZXNzYWdlICovCi0JcmF3bGVuID0gUFFnZXRDb3B5RGF0YShjb25uLCAmY29w eWJ1ZiwgMSk7CisJcmF3bGVuID0gUFFnZXRDb3B5RGF0YShteWNvbm4sICZjb3B5YnVmLCAxKTsK IAlpZiAocmF3bGVuID09IDApCiAJewogCQlpbnQJCQlyZXQ7CkBAIC05NTcsMjAgKzk1NywyMCBA QCBDb3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91dCwgcGdzb2NrZXQg c3RvcF9zb2NrZXQsCiAJCSAqIHRoZSBzcGVjaWZpZWQgdGltZW91dCwgc28gdGhhdCB3ZSBjYW4g cGluZyB0aGUgc2VydmVyLiAgQWxzbyBzdG9wCiAJCSAqIHdhaXRpbmcgaWYgaW5wdXQgYXBwZWFy cyBvbiBzdG9wX3NvY2tldC4KIAkJICovCi0JCXJldCA9IENvcHlTdHJlYW1Qb2xsKGNvbm4sIHRp bWVvdXQsIHN0b3Bfc29ja2V0KTsKKwkJcmV0ID0gQ29weVN0cmVhbVBvbGwobXljb25uLCB0aW1l b3V0LCBzdG9wX3NvY2tldCk7CiAJCWlmIChyZXQgPD0gMCkKIAkJCXJldHVybiByZXQ7CiAKIAkJ LyogTm93IHRoZXJlIGlzIGFjdHVhbGx5IGRhdGEgb24gdGhlIHNvY2tldCAqLwotCQlpZiAoUFFj b25zdW1lSW5wdXQoY29ubikgPT0gMCkKKwkJaWYgKFBRY29uc3VtZUlucHV0KG15Y29ubikgPT0g MCkKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgcmVjZWl2ZSBkYXRhIGZyb20gV0FM IHN0cmVhbTogJXMiLAotCQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJCQkJCSBQUWVy cm9yTWVzc2FnZShteWNvbm4pKTsKIAkJCXJldHVybiAtMTsKIAkJfQogCiAJCS8qIE5vdyB0aGF0 IHdlJ3ZlIGNvbnN1bWVkIHNvbWUgaW5wdXQsIHRyeSBhZ2FpbiAqLwotCQlyYXdsZW4gPSBQUWdl dENvcHlEYXRhKGNvbm4sICZjb3B5YnVmLCAxKTsKKwkJcmF3bGVuID0gUFFnZXRDb3B5RGF0YSht eWNvbm4sICZjb3B5YnVmLCAxKTsKIAkJaWYgKHJhd2xlbiA9PSAwKQogCQkJcmV0dXJuIDA7CiAJ fQpAQCAtOTc4LDcgKzk3OCw3IEBAIENvcHlTdHJlYW1SZWNlaXZlKFBHY29ubiAqY29ubiwgbG9u ZyB0aW1lb3V0LCBwZ3NvY2tldCBzdG9wX3NvY2tldCwKIAkJcmV0dXJuIC0yOwogCWlmIChyYXds ZW4gPT0gLTIpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCByZWFkIENPUFkgZGF0YTog JXMiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHJl YWQgQ09QWSBkYXRhOiAlcyIsIFBRZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCQlyZXR1cm4gLTE7 CiAJfQogCkBAIC05OTEsNyArOTkxLDcgQEAgQ29weVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25u LCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogICogUHJvY2VzcyB0aGUga2Vl cGFsaXZlIG1lc3NhZ2UuCiAgKi8KIHN0YXRpYyBib29sCi1Qcm9jZXNzS2VlcGFsaXZlTXNnKFBH Y29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGludCBsZW4sCitQ cm9jZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hh ciAqY29weWJ1ZiwgaW50IGxlbiwKIAkJCQkJWExvZ1JlY1B0ciBibG9ja3BvcywgVGltZXN0YW1w VHogKmxhc3Rfc3RhdHVzKQogewogCWludAkJCXBvczsKQEAgLTEwMzMsNyArMTAzMyw3IEBAIFBy b2Nlc3NLZWVwYWxpdmVNc2coUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAq Y29weWJ1ZiwgaW50IGxlbiwKIAkJfQogCiAJCW5vdyA9IGZlR2V0Q3VycmVudFRpbWVzdGFtcCgp OwotCQlpZiAoIXNlbmRGZWVkYmFjayhjb25uLCBibG9ja3Bvcywgbm93LCBmYWxzZSkpCisJCWlm ICghc2VuZEZlZWRiYWNrKG15Y29ubiwgYmxvY2twb3MsIG5vdywgZmFsc2UpKQogCQkJcmV0dXJu IGZhbHNlOwogCQkqbGFzdF9zdGF0dXMgPSBub3c7CiAJfQpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAg UHJvY2Vzc0tlZXBhbGl2ZU1zZyhQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFy ICpjb3B5YnVmLCBpbnQgbGVuLAogICogUHJvY2VzcyBXQUxEYXRhIG1lc3NhZ2UuCiAgKi8KIHN0 YXRpYyBib29sCi1Qcm9jZXNzV0FMRGF0YU1zZyhQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3Ry ZWFtLCBjaGFyICpjb3B5YnVmLCBpbnQgbGVuLAorUHJvY2Vzc1dBTERhdGFNc2coUEdjb25uICpt eWNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLCBpbnQgbGVuLAogCQkJCSAg WExvZ1JlY1B0ciAqYmxvY2twb3MpCiB7CiAJaW50CQkJeGxvZ29mZjsKQEAgLTExNTYsMTAgKzEx NTYsMTAgQEAgUHJvY2Vzc1dBTERhdGFNc2coUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVh bSwgY2hhciAqY29weWJ1ZiwgaW50IGxlbiwKIAogCQkJaWYgKHN0aWxsX3NlbmRpbmcgJiYgc3Ry ZWFtLT5zdHJlYW1fc3RvcCgqYmxvY2twb3MsIHN0cmVhbS0+dGltZWxpbmUsIHRydWUpKQogCQkJ ewotCQkJCWlmIChQUXB1dENvcHlFbmQoY29ubiwgTlVMTCkgPD0gMCB8fCBQUWZsdXNoKGNvbm4p KQorCQkJCWlmIChQUXB1dENvcHlFbmQobXljb25uLCBOVUxMKSA8PSAwIHx8IFBRZmx1c2gobXlj b25uKSkKIAkJCQl7CiAJCQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNlbmQgY29weS1lbmQg cGFja2V0OiAlcyIsCi0JCQkJCQkJCSBQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCQkJCQkJCSBQ UWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAkJCQkJcmV0dXJuIGZhbHNlOwogCQkJCX0KIAkJCQlz dGlsbF9zZW5kaW5nID0gZmFsc2U7CkBAIC0xMTc2LDEwICsxMTc2LDEwIEBAIFByb2Nlc3NXQUxE YXRhTXNnKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGlu dCBsZW4sCiAgKiBIYW5kbGUgZW5kIG9mIHRoZSBjb3B5IHN0cmVhbS4KICAqLwogc3RhdGljIFBH cmVzdWx0ICoKLUhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAq c3RyZWFtLCBjaGFyICpjb3B5YnVmLAorSGFuZGxlRW5kT2ZDb3B5U3RyZWFtKFBHY29ubiAqbXlj b25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAqY29weWJ1ZiwKIAkJCQkJICBYTG9nUmVjUHRy IGJsb2NrcG9zLCBYTG9nUmVjUHRyICpzdG9wcG9zKQogewotCVBHcmVzdWx0ICAgKnJlcyA9IFBR Z2V0UmVzdWx0KGNvbm4pOworCVBHcmVzdWx0ICAgKnJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7 CiAKIAkvKgogCSAqIFRoZSBzZXJ2ZXIgY2xvc2VkIGl0cyBlbmQgb2YgdGhlIGNvcHkgc3RyZWFt LiAgSWYgd2UgaGF2ZW4ndCBjbG9zZWQKQEAgLTExOTYsMTQgKzExOTYsMTQgQEAgSGFuZGxlRW5k T2ZDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHli dWYsCiAJCX0KIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfQ09QWV9JTikKIAkJ ewotCQkJaWYgKFBRcHV0Q29weUVuZChjb25uLCBOVUxMKSA8PSAwIHx8IFBRZmx1c2goY29ubikp CisJCQlpZiAoUFFwdXRDb3B5RW5kKG15Y29ubiwgTlVMTCkgPD0gMCB8fCBQUWZsdXNoKG15Y29u bikpCiAJCQl7CiAJCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCBjb3B5LWVuZCBwYWNr ZXQ6ICVzIiwKLQkJCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkJCSBQUWVycm9y TWVzc2FnZShteWNvbm4pKTsKIAkJCQlQUWNsZWFyKHJlcyk7CiAJCQkJcmV0dXJuIE5VTEw7CiAJ CQl9Ci0JCQlyZXMgPSBQUWdldFJlc3VsdChjb25uKTsKKwkJCXJlcyA9IFBRZ2V0UmVzdWx0KG15 Y29ubik7CiAJCX0KIAkJc3RpbGxfc2VuZGluZyA9IGZhbHNlOwogCX0KQEAgLTEyMTUsNyArMTIx NSw3IEBAIEhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3Ry ZWFtLCBjaGFyICpjb3B5YnVmLAogICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHN0cmVh bWluZywgb3IgYWJvcnQgYXQgdGhpcyBwb2ludC4KICAqLwogc3RhdGljIGJvb2wKLUNoZWNrQ29w eVN0cmVhbVN0b3AoUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgWExvZ1JlY1B0ciBi bG9ja3BvcykKK0NoZWNrQ29weVN0cmVhbVN0b3AoUEdjb25uICpteWNvbm4sIFN0cmVhbUN0bCAq c3RyZWFtLCBYTG9nUmVjUHRyIGJsb2NrcG9zKQogewogCWlmIChzdGlsbF9zZW5kaW5nICYmIHN0 cmVhbS0+c3RyZWFtX3N0b3AoYmxvY2twb3MsIHN0cmVhbS0+dGltZWxpbmUsIGZhbHNlKSkKIAl7 CkBAIC0xMjI0LDEwICsxMjI0LDEwIEBAIENoZWNrQ29weVN0cmVhbVN0b3AoUEdjb25uICpjb25u LCBTdHJlYW1DdGwgKnN0cmVhbSwgWExvZ1JlY1B0ciBibG9ja3BvcykKIAkJCS8qIFBvdGVudGlh bCBlcnJvciBtZXNzYWdlIGlzIHdyaXR0ZW4gYnkgY2xvc2Vfd2FsZmlsZSAqLwogCQkJcmV0dXJu IGZhbHNlOwogCQl9Ci0JCWlmIChQUXB1dENvcHlFbmQoY29ubiwgTlVMTCkgPD0gMCB8fCBQUWZs dXNoKGNvbm4pKQorCQlpZiAoUFFwdXRDb3B5RW5kKG15Y29ubiwgTlVMTCkgPD0gMCB8fCBQUWZs dXNoKG15Y29ubikpCiAJCXsKIAkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNlbmQgY29weS1l bmQgcGFja2V0OiAlcyIsCi0JCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkJIFBR ZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJCXN0aWxsX3Nl bmRpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9zdHJlYW11 dGlsLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCmluZGV4IGU1YTdjYjZl NWIxLi4zNDJhZDJjYmQ0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVh bXV0aWwuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCkBAIC0zMSw3 ICszMSw3IEBACiAKIGludAkJCVdhbFNlZ1N6OwogCi1zdGF0aWMgYm9vbCBSZXRyaWV2ZURhdGFE aXJDcmVhdGVQZXJtKFBHY29ubiAqY29ubik7CitzdGF0aWMgYm9vbCBSZXRyaWV2ZURhdGFEaXJD cmVhdGVQZXJtKFBHY29ubiAqbXljb25uKTsKIAogLyogU0hPVyBjb21tYW5kIGZvciByZXBsaWNh dGlvbiBjb25uZWN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gMTAgKi8KICNkZWZpbmUg TUlOSU1VTV9WRVJTSU9OX0ZPUl9TSE9XX0NNRCAxMDAwMDAKQEAgLTI3Myw3ICsyNzMsNyBAQCBH ZXRDb25uZWN0aW9uKHZvaWQpCiAgKiBzaW5jZSBDb250cm9sRmlsZSBpcyBub3QgYWNjZXNzaWJs ZSBoZXJlLgogICovCiBib29sCi1SZXRyaWV2ZVdhbFNlZ1NpemUoUEdjb25uICpjb25uKQorUmV0 cmlldmVXYWxTZWdTaXplKFBHY29ubiAqbXljb25uKQogewogCVBHcmVzdWx0ICAgKnJlczsKIAlj aGFyCQl4bG9nX3VuaXRbM107CkBAIC0yODEsMjAgKzI4MSwyMCBAQCBSZXRyaWV2ZVdhbFNlZ1Np emUoUEdjb25uICpjb25uKQogCQkJCW11bHRpcGxpZXIgPSAxOwogCiAJLyogY2hlY2sgY29ubmVj dGlvbiBleGlzdGVuY2UgKi8KLQlBc3NlcnQoY29ubiAhPSBOVUxMKTsKKwlBc3NlcnQobXljb25u ICE9IE5VTEwpOwogCiAJLyogZm9yIHByZXZpb3VzIHZlcnNpb25zIHNldCB0aGUgZGVmYXVsdCB4 bG9nIHNlZyBzaXplICovCi0JaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA8IE1JTklNVU1fVkVS U0lPTl9GT1JfU0hPV19DTUQpCisJaWYgKFBRc2VydmVyVmVyc2lvbihteWNvbm4pIDwgTUlOSU1V TV9WRVJTSU9OX0ZPUl9TSE9XX0NNRCkKIAl7CiAJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NF R19TSVpFOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKLQlyZXMgPSBQUWV4ZWMoY29ubiwgIlNIT1cg d2FsX3NlZ21lbnRfc2l6ZSIpOworCXJlcyA9IFBRZXhlYyhteWNvbm4sICJTSE9XIHdhbF9zZWdt ZW50X3NpemUiKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0sp CiAJewogCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBzZW5kIHJlcGxpY2F0aW9uIGNvbW1hbmQg XCIlc1wiOiAlcyIsCi0JCQkJCSAiU0hPVyB3YWxfc2VnbWVudF9zaXplIiwgUFFlcnJvck1lc3Nh Z2UoY29ubikpOworCQkJCQkgIlNIT1cgd2FsX3NlZ21lbnRfc2l6ZSIsIFBRZXJyb3JNZXNzYWdl KG15Y29ubikpOwogCiAJCVBRY2xlYXIocmVzKTsKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzUyLDIz ICszNTIsMjMgQEAgUmV0cmlldmVXYWxTZWdTaXplKFBHY29ubiAqY29ubikKICAqIG9uIHRoZSBk YXRhIGRpcmVjdG9yeS4KICAqLwogc3RhdGljIGJvb2wKLVJldHJpZXZlRGF0YURpckNyZWF0ZVBl cm0oUEdjb25uICpjb25uKQorUmV0cmlldmVEYXRhRGlyQ3JlYXRlUGVybShQR2Nvbm4gKm15Y29u bikKIHsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJaW50CQkJZGF0YV9kaXJlY3RvcnlfbW9kZTsKIAog CS8qIGNoZWNrIGNvbm5lY3Rpb24gZXhpc3RlbmNlICovCi0JQXNzZXJ0KGNvbm4gIT0gTlVMTCk7 CisJQXNzZXJ0KG15Y29ubiAhPSBOVUxMKTsKIAogCS8qIGZvciBwcmV2aW91cyB2ZXJzaW9ucyBs ZWF2ZSB0aGUgZGVmYXVsdCBncm91cCBhY2Nlc3MgKi8KLQlpZiAoUFFzZXJ2ZXJWZXJzaW9uKGNv bm4pIDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9HUk9VUF9BQ0NFU1MpCisJaWYgKFBRc2VydmVyVmVy c2lvbihteWNvbm4pIDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9HUk9VUF9BQ0NFU1MpCiAJCXJldHVy biB0cnVlOwogCi0JcmVzID0gUFFleGVjKGNvbm4sICJTSE9XIGRhdGFfZGlyZWN0b3J5X21vZGUi KTsKKwlyZXMgPSBQUWV4ZWMobXljb25uLCAiU0hPVyBkYXRhX2RpcmVjdG9yeV9tb2RlIik7CiAJ aWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKIAkJcGdfbG9n X2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLAot CQkJCQkgIlNIT1cgZGF0YV9kaXJlY3RvcnlfbW9kZSIsIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsK KwkJCQkJICJTSE9XIGRhdGFfZGlyZWN0b3J5X21vZGUiLCBQUWVycm9yTWVzc2FnZShteWNvbm4p KTsKIAogCQlQUWNsZWFyKHJlcyk7CiAJCXJldHVybiBmYWxzZTsKQEAgLTQwNiw3ICs0MDYsNyBA QCBSZXRyaWV2ZURhdGFEaXJDcmVhdGVQZXJtKFBHY29ubiAqY29ubikKICAqIC0gRGF0YWJhc2Ug bmFtZSAoTlVMTCBpbiBzZXJ2ZXJzIHByaW9yIHRvIDkuNCkKICAqLwogYm9vbAotUnVuSWRlbnRp ZnlTeXN0ZW0oUEdjb25uICpjb25uLCBjaGFyICoqc3lzaWQsIFRpbWVMaW5lSUQgKnN0YXJ0dGxp LAorUnVuSWRlbnRpZnlTeXN0ZW0oUEdjb25uICpteWNvbm4sIGNoYXIgKipzeXNpZCwgVGltZUxp bmVJRCAqc3RhcnR0bGksCiAJCQkJICBYTG9nUmVjUHRyICpzdGFydHBvcywgY2hhciAqKmRiX25h bWUpCiB7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtNDE0LDEzICs0MTQsMTMgQEAgUnVuSWRlbnRp ZnlTeXN0ZW0oUEdjb25uICpjb25uLCBjaGFyICoqc3lzaWQsIFRpbWVMaW5lSUQgKnN0YXJ0dGxp LAogCQkJCWxvOwogCiAJLyogQ2hlY2sgY29ubmVjdGlvbiBleGlzdGVuY2UgKi8KLQlBc3NlcnQo Y29ubiAhPSBOVUxMKTsKKwlBc3NlcnQobXljb25uICE9IE5VTEwpOwogCi0JcmVzID0gUFFleGVj KGNvbm4sICJJREVOVElGWV9TWVNURU0iKTsKKwlyZXMgPSBQUWV4ZWMobXljb25uLCAiSURFTlRJ RllfU1lTVEVNIik7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09L KQogCXsKIAkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5k IFwiJXNcIjogJXMiLAotCQkJCQkgIklERU5USUZZX1NZU1RFTSIsIFBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJCQkJICJJREVOVElGWV9TWVNURU0iLCBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsK IAogCQlQUWNsZWFyKHJlcyk7CiAJCXJldHVybiBmYWxzZTsKQEAgLTQ2MCw3ICs0NjAsNyBAQCBS dW5JZGVudGlmeVN5c3RlbShQR2Nvbm4gKmNvbm4sIGNoYXIgKipzeXNpZCwgVGltZUxpbmVJRCAq c3RhcnR0bGksCiAJaWYgKGRiX25hbWUgIT0gTlVMTCkKIAl7CiAJCSpkYl9uYW1lID0gTlVMTDsK LQkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+PSA5MDQwMCkKKwkJaWYgKFBRc2VydmVyVmVy c2lvbihteWNvbm4pID49IDkwNDAwKQogCQl7CiAJCQlpZiAoUFFuZmllbGRzKHJlcykgPCA0KQog CQkJewpAQCAtNDg3LDcgKzQ4Nyw3IEBAIFJ1bklkZW50aWZ5U3lzdGVtKFBHY29ubiAqY29ubiwg Y2hhciAqKnN5c2lkLCBUaW1lTGluZUlEICpzdGFydHRsaSwKICAqIFJldHVybnMgZmFsc2Ugb24g ZmFpbHVyZSwgYW5kIHRydWUgb3RoZXJ3aXNlLgogICovCiBib29sCi1HZXRTbG90SW5mb3JtYXRp b24oUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90X25hbWUsCitHZXRTbG90SW5mb3JtYXRp b24oUEdjb25uICpteWNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwKIAkJCQkgICBYTG9nUmVj UHRyICpyZXN0YXJ0X2xzbiwgVGltZUxpbmVJRCAqcmVzdGFydF90bGkpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOwpAQCAtNTAyLDEzICs1MDIsMTMgQEAgR2V0U2xvdEluZm9ybWF0aW9uKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLAogCiAJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiUkVBRF9SRVBMSUNBVElPTl9TTE9UICVz Iiwgc2xvdF9uYW1lKTsKLQlyZXMgPSBQUWV4ZWMoY29ubiwgcXVlcnktPmRhdGEpOworCXJlcyA9 IFBRZXhlYyhteWNvbm4sIHF1ZXJ5LT5kYXRhKTsKIAlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkp OwogCiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKIAkJ cGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjog JXMiLAotCQkJCQkgIlJFQURfUkVQTElDQVRJT05fU0xPVCIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJCQkJICJSRUFEX1JFUExJQ0FUSU9OX1NMT1QiLCBQUWVycm9yTWVzc2FnZShteWNvbm4p KTsKIAkJUFFjbGVhcihyZXMpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtNTgxLDEzICs1ODEs MTMgQEAgR2V0U2xvdEluZm9ybWF0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9u YW1lLAogICogcmV0dXJucyB0cnVlIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KICAqLwogYm9vbAotQ3Jl YXRlUmVwbGljYXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLCBj b25zdCBjaGFyICpwbHVnaW4sCitDcmVhdGVSZXBsaWNhdGlvblNsb3QoUEdjb25uICpteWNvbm4s IGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogCQkJCQkgIGJvb2wg aXNfdGVtcG9yYXJ5LCBib29sIGlzX3BoeXNpY2FsLCBib29sIHJlc2VydmVfd2FsLAogCQkJCQkg IGJvb2wgc2xvdF9leGlzdHNfb2ssIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyKQogewog CVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKLQlib29sCQl1c2VfbmV3X29w dGlvbl9zeW50YXggPSAoUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE1MDAwMCk7CisJYm9vbAkJ dXNlX25ld19vcHRpb25fc3ludGF4ID0gKFBRc2VydmVyVmVyc2lvbihteWNvbm4pID49IDE1MDAw MCk7CiAKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKQEAgLTYxNywxNSArNjE3LDE1 IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3Rf bmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogCX0KIAllbHNlCiAJewotCQlpZiAoZmFpbG92ZXIg JiYgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE3MDAwMCkKKwkJaWYgKGZhaWxvdmVyICYmIFBR c2VydmVyVmVyc2lvbihteWNvbm4pID49IDE3MDAwMCkKIAkJCUFwcGVuZFBsYWluQ29tbWFuZE9w dGlvbihxdWVyeSwgdXNlX25ld19vcHRpb25fc3ludGF4LAogCQkJCQkJCQkJICJGQUlMT1ZFUiIp OwogCi0JCWlmICh0d29fcGhhc2UgJiYgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE1MDAwMCkK KwkJaWYgKHR3b19waGFzZSAmJiBQUXNlcnZlclZlcnNpb24obXljb25uKSA+PSAxNTAwMDApCiAJ CQlBcHBlbmRQbGFpbkNvbW1hbmRPcHRpb24ocXVlcnksIHVzZV9uZXdfb3B0aW9uX3N5bnRheCwK IAkJCQkJCQkJCSAiVFdPX1BIQVNFIik7CiAKLQkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+ PSAxMDAwMDApCisJCWlmIChQUXNlcnZlclZlcnNpb24obXljb25uKSA+PSAxMDAwMDApCiAJCXsK IAkJCS8qIHBnX3JlY3Zsb2dpY2FsIGRvZXNuJ3QgdXNlIGFuIGV4cG9ydGVkIHNuYXBzaG90LCBz byBzdXBwcmVzcyAqLwogCQkJaWYgKHVzZV9uZXdfb3B0aW9uX3N5bnRheCkKQEAgLTY0OSw3ICs2 NDksNyBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpz bG90X25hbWUsIGNvbnN0IGNoYXIgKnBsdWdpbiwKIAl9CiAKIAkvKiBOb3cgcnVuIHRoZSBxdWVy eSAqLwotCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeS0+ZGF0YSk7CisJcmVzID0gUFFleGVjKG15 Y29ubiwgcXVlcnktPmRhdGEpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RV UExFU19PSykKIAl7CiAJCWNvbnN0IGNoYXIgKnNxbHN0YXRlID0gUFFyZXN1bHRFcnJvckZpZWxk KHJlcywgUEdfRElBR19TUUxTVEFURSk7CkBAIC02NjUsNyArNjY1LDcgQEAgQ3JlYXRlUmVwbGlj YXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLCBjb25zdCBjaGFy ICpwbHVnaW4sCiAJCWVsc2UKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCBy ZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLAotCQkJCQkJIHF1ZXJ5LT5kYXRhLCBQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCQkJCQkgcXVlcnktPmRhdGEsIFBRZXJyb3JNZXNzYWdlKG15 Y29ubikpOwogCiAJCQlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOwogCQkJUFFjbGVhcihyZXMp OwpAQCAtNjk0LDcgKzY5NCw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogICogcmV0dXJucyB0 cnVlIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KICAqLwogYm9vbAotRHJvcFJlcGxpY2F0aW9uU2xvdChQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSkKK0Ryb3BSZXBsaWNhdGlvblNsb3Qo UEdjb25uICpteWNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSkKIHsKIAlQUUV4cEJ1ZmZlciBx dWVyeTsKIAlQR3Jlc3VsdCAgICpyZXM7CkBAIC03MDYsMTEgKzcwNiwxMSBAQCBEcm9wUmVwbGlj YXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lKQogCS8qIEJ1aWxk IHF1ZXJ5ICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJEUk9QX1JFUExJQ0FUSU9OX1NM T1QgXCIlc1wiIiwKIAkJCQkJICBzbG90X25hbWUpOwotCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVy eS0+ZGF0YSk7CisJcmVzID0gUFFleGVjKG15Y29ubiwgcXVlcnktPmRhdGEpOwogCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCiAJewogCQlwZ19sb2dfZXJyb3Io ImNvdWxkIG5vdCBzZW5kIHJlcGxpY2F0aW9uIGNvbW1hbmQgXCIlc1wiOiAlcyIsCi0JCQkJCSBx dWVyeS0+ZGF0YSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkgcXVlcnktPmRhdGEsIFBR ZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCiAJCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CiAJ CVBRY2xlYXIocmVzKTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000fa6571064502f87d Content-Type: application/octet-stream; name="v2-0012-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v2-0012-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mipe0ocs11 RnJvbSBlNzI1NzVkNjdmYjIzNjBmZjA0N2NkMDkxZWNjMDZkMWUwNjk2MDk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogV2VkLCAzIERlYyAyMDI1IDA3OjQwOjI2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MiAxMi8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGlu IGVjcGcuaGVhZGVyCgpUaGlzIGNvbW1pdCByZW5hbWVzIGxvY2FsIHZhcmlhYmxlcyBpbiBlY3Bn LmhlYWRlciB0aGF0IHdlcmUgc2hhZG93ZWQgYnkKZ2xvYmFsIGlkZW50aWZpZXJzIG9mIHRoZSBz YW1lIG5hbWVzLiBUaGUgdXBkYXRlZCBsb2NhbCBuYW1lcyBlbnN1cmUgdGhlCmlkZW50aWZpZXJz IHJlbWFpbiBkaXN0aW5jdCBhbmQgdW5hbWJpZ3VvdXMgd2l0aGluIHRoZSBmaWxlLgoKQXV0aG9y OiBDaGFvIExpIDxsaWNAaGlnaGdvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZWNwZy5oZWFkZXIg fCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcu aGVhZGVyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcuaGVhZGVyCmluZGV4IGRk ZTY5YTM5Njk1Li5hNThkZGEzMmY0OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9w cmVwcm9jL2VjcGcuaGVhZGVyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3Bn LmhlYWRlcgpAQCAtMTc4LDcgKzE3OCw3IEBAIGNyZWF0ZV9xdWVzdGlvbm1hcmtzKGNvbnN0IGNo YXIgKm5hbWUsIGJvb2wgYXJyYXkpCiB9CiAKIHN0YXRpYyBjaGFyICoKLWFkanVzdF9vdXRvZnNj b3BlX2N1cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKmN1cikKK2FkanVzdF9vdXRvZnNjb3BlX2N1 cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKnBjdXIpCiB7CiAJLyoKIAkgKiBJbmZvcm1peCBhY2Nl cHRzIERFQ0xBUkUgd2l0aCB2YXJpYWJsZXMgdGhhdCBhcmUgb3V0IG9mIHNjb3BlIHdoZW4gT1BF TgpAQCAtMjAzLDcgKzIwMyw3IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0cnVj dCBjdXJzb3IgKmN1cikKIAkJc3RydWN0IHZhcmlhYmxlICpuZXd2YXIsCiAJCQkJICAgKm5ld2lu ZDsKIAotCQlsaXN0ID0gKGluc2VydCA/IGN1ci0+YXJnc2luc2VydCA6IGN1ci0+YXJnc3Jlc3Vs dCk7CisJCWxpc3QgPSAoaW5zZXJ0ID8gcGN1ci0+YXJnc2luc2VydCA6IHBjdXItPmFyZ3NyZXN1 bHQpOwogCiAJCWZvciAocHRyID0gbGlzdDsgcHRyICE9IE5VTEw7IHB0ciA9IHB0ci0+bmV4dCkK IAkJewpAQCAtNDM0LDkgKzQzNCw5IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0 cnVjdCBjdXJzb3IgKmN1cikKIAkJfQogCiAJCWlmIChpbnNlcnQpCi0JCQljdXItPmFyZ3NpbnNl cnRfb29zID0gbmV3bGlzdDsKKwkJCXBjdXItPmFyZ3NpbnNlcnRfb29zID0gbmV3bGlzdDsKIAkJ ZWxzZQotCQkJY3VyLT5hcmdzcmVzdWx0X29vcyA9IG5ld2xpc3Q7CisJCQlwY3VyLT5hcmdzcmVz dWx0X29vcyA9IG5ld2xpc3Q7CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTQ5MCw3ICs0OTAs NyBAQCBzdGF0aWMgdm9pZAogYWRkX3R5cGVkZWYoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqZGltZW5zaW9uLCBjb25zdCBjaGFyICpsZW5ndGgsCiAJCQllbnVtIEVDUEd0dHlwZSB0eXBl X2VudW0sCiAJCQljb25zdCBjaGFyICp0eXBlX2RpbWVuc2lvbiwgY29uc3QgY2hhciAqdHlwZV9p bmRleCwKLQkJCWludCBpbml0aWFsaXplciwgaW50IGFycmF5KQorCQkJaW50IGluaXRpYWxfdmFs dWUsIGludCBhcnJheSkKIHsKIAkvKiBhZGQgZW50cnkgdG8gbGlzdCAqLwogCXN0cnVjdCB0eXBl ZGVmcyAqcHRyLApAQCAtNDk4LDcgKzQ5OCw3IEBAIGFkZF90eXBlZGVmKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKmRpbWVuc2lvbiwgY29uc3QgY2hhciAqbGVuZ3RoLAogCiAJaWYgKCh0 eXBlX2VudW0gPT0gRUNQR3Rfc3RydWN0IHx8CiAJCSB0eXBlX2VudW0gPT0gRUNQR3RfdW5pb24p ICYmCi0JCWluaXRpYWxpemVyID09IDEpCisJCWluaXRpYWxfdmFsdWUgPT0gMSkKIAkJbW1lcnJv cihQQVJTRV9FUlJPUiwgRVRfRVJST1IsICJpbml0aWFsaXplciBub3QgYWxsb3dlZCBpbiB0eXBl IGRlZmluaXRpb24iKTsKIAllbHNlIGlmIChJTkZPUk1JWF9NT0RFICYmIHN0cmNtcChuYW1lLCAi c3RyaW5nIikgPT0gMCkKIAkJbW1lcnJvcihQQVJTRV9FUlJPUiwgRVRfRVJST1IsICJ0eXBlIG5h bWUgXCJzdHJpbmdcIiBpcyByZXNlcnZlZCBpbiBJbmZvcm1peCBtb2RlIik7Ci0tIAoyLjM5LjUg KEFwcGxlIEdpdC0xNTQpCgo= --000000000000fa6571064502f87d--