From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15401 invoked by alias); 11 Jan 2017 13:15:54 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 15328 invoked by uid 89); 11 Jan 2017 13:15:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-5.1 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=H*f:sk:3f087b3, 4216 X-HELO: userp1040.oracle.com Received: from userp1040.oracle.com (HELO userp1040.oracle.com) (156.151.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 11 Jan 2017 13:15:35 +0000 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v0BDFW6V029340 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 11 Jan 2017 13:15:32 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id v0BDFWEc031611 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 11 Jan 2017 13:15:32 GMT Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id v0BDFWIM029675; Wed, 11 Jan 2017 13:15:32 GMT Received: from [10.163.45.69] (/10.163.45.69) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 11 Jan 2017 05:15:31 -0800 Subject: Re: [PATCH] Bug 20936 - provide sparc and sparcv9 target description XML files To: Yao Qi References: <46200a1e-29f7-8e20-c0b5-3f6f25c82d45@oracle.com> <20161206152616.GC28789@E107787-LIN> <83d4c58d-0834-4fc2-6194-72408510aa8a@oracle.com> <20161212125331.GB25542@E107787-LIN> <082f9ac8-3e46-42cd-198d-91866d83ebb8@oracle.com> <20170105143109.GA21293@E107787-LIN> <20170109173515.GC9518@E107787-LIN> <3f087b35-96e1-47fa-7b98-6c7fb2ba31d5@oracle.com> <20170110092907.GD9518@E107787-LIN> Cc: gdb-patches@sourceware.org From: Ivo Raisr Message-ID: Date: Wed, 11 Jan 2017 13:15:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20170110092907.GD9518@E107787-LIN> Content-Type: multipart/mixed; boundary="------------E73465D88EC638D57B8BA0B9" X-SW-Source: 2017-01/txt/msg00184.txt.bz2 This is a multi-part message in MIME format. --------------E73465D88EC638D57B8BA0B9 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 2431 On 10.1.2017 10:29, Yao Qi wrote: > On 17-01-09 22:18:22, Ivo Raisr wrote: > >> ChangeLog entry: >> 2017-01-09 Ivo Raisr >> >> Split real and pseudo registers. >> * sparc-tdep.h: Separate real and pseudo registers. > We describe the changes in the ChangeLog, so the change can be described > like this: All fixed. Please see attached new ChangeLog entry and a new patch. Kind regards, I. >> --- a/gdb/sparc-tdep.c 2016-02-09 19:19:39.000000000 +0000 >> +++ gdb-7.11/gdb/sparc-tdep.c 2017-01-09 13:11:30.421265402 +0000 >> >> +static const char *sparc_core_register_names[] = { SPARC_CORE_REGISTERS }; >> +static const char *sparc32_fpu_register_names[] = { SPARC32_FPU_REGISTERS }; >> +static const char *sparc32_cp0_register_names[] = { SPARC32_CP0_REGISTERS }; > They are not used in this patch at all. Should be moved to patch #2. Fixed. > >> >> /* Total number of registers. */ >> @@ -327,17 +330,26 @@ static const char *sparc32_pseudo_regist >> #define SPARC32_NUM_PSEUDO_REGS ARRAY_SIZE (sparc32_pseudo_register_names) >> >> /* Return the name of register REGNUM. */ >> +static const char * >> +sparc32_pseudo_register_name (struct gdbarch *gdbarch, int regnum) > Don't insert the new function between sparc32_register_name and its > comments. We also need comments to sparc32_pseudo_register_name. Fixed. >> /* Return the GDB type object for the "standard" data type of data in >> register REGNUM. */ >> +static struct type * >> +sparc32_pseudo_register_type (struct gdbarch *gdbarch, int regnum) > Likewise, don't insert sparc32_pseudo_register_type between > sparc32_register_type and its type. Fixed. > >> --- a/gdb/sparc64-tdep.c 2016-02-09 19:19:39.000000000 +0000 >> +++ gdb-7.11/gdb/sparc64-tdep.c 2017-01-09 13:11:51.858903807 +0000 >> >> +static const char *sparc64_fpu_register_names[] = { SPARC64_FPU_REGISTERS }; >> +static const char *sparc64_cp0_register_names[] = { SPARC64_CP0_REGISTERS }; > They are not used, should be moved to patch #2. Fixed. > >> @@ -273,28 +274,57 @@ static const char *sparc64_pseudo_regist >> #define SPARC64_NUM_PSEUDO_REGS ARRAY_SIZE (sparc64_pseudo_register_names) >> >> /* Return the name of register REGNUM. */ >> +static const char * >> +sparc64_pseudo_register_name (struct gdbarch *gdbarch, int regnum) > sparc64_pseudo_register_name is added between sparc64_register_name and > its comments. Fixed. --------------E73465D88EC638D57B8BA0B9 Content-Type: text/plain; charset=UTF-8; name="ChangeLog.entry.pseudoreg-003" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ChangeLog.entry.pseudoreg-003" Content-length: 1664 Q2hhbmdlTG9nIGVudHJ5OgoyMDE3LTAxLTExICBJdm8gUmFpc3IgIDxpdm8u cmFpc3JAb3JhY2xlLmNvbT4KCglTcGxpdCByZWFsIGFuZCBwc2V1ZG8gcmVn aXN0ZXJzLgoJKiBzcGFyYy10ZGVwLmggKFNQQVJDX0NPUkVfUkVHSVNURVJT KTogTmV3IG1hY3JvLgoJKHNwYXJjMzJfcHNldWRvX3JlZ251bSk6IE5ldyBl bnVtLgoJKiBzcGFyYzY0LXRkZXAuaCAoc3BhcmM2NF9wc2V1ZG9fcmVnbnVt KTogTmV3IGVudW0uCgkqIHNwYXJjLXRkZXAuYyAoU1BBUkMzMl9GUFVfUkVH SVNURVJTKTogTmV3IG1hY3JvLgoJKFNQQVJDMzJfQ1AwX1JFR0lTVEVSUyk6 IE5ldyBtYWNyby4KCShzcGFyYzMyX3BzZXVkb19yZWdpc3Rlcl9uYW1lKTog TmV3IGZ1bmN0aW9uLgoJKHNwYXJjMzJfcmVnaXN0ZXJfbmFtZSk6IFVzZSBz cGFyYzMyX3BzZXVkb19yZWdpc3Rlcl9uYW1lKCkuCgkoc3BhcmMzMl9wc2V1 ZG9fcmVnaXN0ZXJfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCShzcGFyYzMyX3Jl Z2lzdGVyX3R5cGUpOiBVc2Ugc3BhcmMzMl9wc2V1ZG9fcmVnaXN0ZXJfdHlw ZSgpLgoJKHNwYXJjMzJfcHNldWRvX3JlZ2lzdGVyX3JlYWQsIHNwYXJjMzJf cHNldWRvX3JlZ2lzdGVyX3dyaXRlKTogUHNldWRvCglyZWdpc3RlcnMgbWF5 IGhhdmUgZGlmZmVyZW50IG51bWJlcnMuCgkqIHNwYXJjNjQtdGRlcC5jIFNQ QVJDNjRfRlBVX1JFR0lTVEVSUyk6IE5ldyBtYWNyby4KCShTUEFSQzY0X0NQ MF9SRUdJU1RFUlMpOiBOZXcgbWFjcm8uCgkoc3BhcmM2NF9wc2V1ZG9fcmVn aXN0ZXJfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShzcGFyYzY0X3JlZ2lzdGVy X25hbWUpOiBVc2Ugc3BhcmM2NF9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSgpLgoJ KHNwYXJjNjRfcHNldWRvX3JlZ2lzdGVyX3R5cGUpOiBOZXcgZnVuY3Rpb24u Cgkoc3BhcmM2NF9yZWdpc3Rlcl90eXBlKTogVXNlIHNwYXJjNjRfcHNldWRv X3JlZ2lzdGVyX3R5cGUoKS4KCShzcGFyYzY0X3BzZXVkb19yZWdpc3Rlcl9y ZWFkLCBzcGFyYzY0X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IFBzZXVkbwoJ cmVnaXN0ZXJzIG1heSBoYXZlIGRpZmZlcmVudCBudW1iZXJzLgoJKHNwYXJj NjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzLCBzcGFyYzY0X2V4dHJhY3RfZmxv YXRpbmdfZmllbGRzLAoJc3BhcmM2NF9zdG9yZV9hcmd1bWVudHMpOiBQc2V1 ZG8gcmVnaXN0ZXJzIG1heSBoYXZlIGRpZmZlcmVudCBudW1iZXJzOwoJZGVh bCB3aXRoIGl0Lgo= --------------E73465D88EC638D57B8BA0B9 Content-Type: text/plain; charset=UTF-8; name="sparc_pseudoreg.patch-003" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sparc_pseudoreg.patch-003" Content-length: 23172 LS0tIGEvZ2RiL3NwYXJjLXRkZXAuaAkyMDE2LTAyLTA5IDE5OjE5OjM5LjAw MDAwMDAwMCArMDAwMAorKysgZ2RiLTcuMTEvZ2RiL3NwYXJjLXRkZXAuaAky MDE3LTAxLTA5IDEzOjI2OjExLjc0OTkyOTUxNSArMDAwMApAQCAtMjAsNiAr MjAsMTIgQEAKICNpZm5kZWYgU1BBUkNfVERFUF9ICiAjZGVmaW5lIFNQQVJD X1RERVBfSCAxCiAKKyNkZWZpbmUgU1BBUkNfQ09SRV9SRUdJU1RFUlMgICAg ICAgICAgICAgICAgICAgICAgXAorICAiZzAiLCAiZzEiLCAiZzIiLCAiZzMi LCAiZzQiLCAiZzUiLCAiZzYiLCAiZzciLCBcCisgICJvMCIsICJvMSIsICJv MiIsICJvMyIsICJvNCIsICJvNSIsICJzcCIsICJvNyIsIFwKKyAgImwwIiwg ImwxIiwgImwyIiwgImwzIiwgImw0IiwgImw1IiwgImw2IiwgImw3IiwgXAor ICAiaTAiLCAiaTEiLCAiaTIiLCAiaTMiLCAiaTQiLCAiaTUiLCAiZnAiLCAi aTciCisKIHN0cnVjdCBmcmFtZV9pbmZvOwogc3RydWN0IGdkYmFyY2g7CiBz dHJ1Y3QgcmVnY2FjaGU7CkBAIC04NSw3ICs5MSw3IEBAIHN0cnVjdCBnZGJh cmNoX3RkZXAKIAogZW51bSBzcGFyY19yZWdudW0KIHsKLSAgU1BBUkNfRzBf UkVHTlVNLAkJLyogJWcwICovCisgIFNQQVJDX0cwX1JFR05VTSA9IDAsCQkv KiAlZzAgKi8KICAgU1BBUkNfRzFfUkVHTlVNLAogICBTUEFSQ19HMl9SRUdO VU0sCiAgIFNQQVJDX0czX1JFR05VTSwKQEAgLTE0MCw5ICsxNDYsMTIgQEAg ZW51bSBzcGFyYzMyX3JlZ251bQogICBTUEFSQzMyX05QQ19SRUdOVU0sCQkv KiAlbnBjICovCiAgIFNQQVJDMzJfRlNSX1JFR05VTSwJCS8qICVmc3IgKi8K ICAgU1BBUkMzMl9DU1JfUkVHTlVNLAkJLyogJWNzciAqLworfTsKIAotICAv KiBQc2V1ZG8gcmVnaXN0ZXJzLiAgKi8KLSAgU1BBUkMzMl9EMF9SRUdOVU0s CQkvKiAlZDAgKi8KKy8qIFBzZXVkbyByZWdpc3RlcnMuICAqLworZW51bSBz cGFyYzMyX3BzZXVkb19yZWdudW0KK3sKKyAgU1BBUkMzMl9EMF9SRUdOVU0g PSAwLAkvKiAlZDAgKi8KICAgU1BBUkMzMl9EMzBfUkVHTlVNCQkvKiAlZDMw ICovCiAgID0gU1BBUkMzMl9EMF9SRUdOVU0gKyAxNQogfTsKLS0tIGEvZ2Ri L3NwYXJjLXRkZXAuYwkyMDE2LTAyLTA5IDE5OjE5OjM5LjAwMDAwMDAwMCAr MDAwMAorKysgZ2RiLTcuMTEvZ2RiL3NwYXJjLXRkZXAuYwkyMDE3LTAxLTEx IDA0OjIzOjI4LjU0MzkwNDIxMCArMDAwMApAQCAtMjk1LDIwICsyOTUsMTkg QEAgc3BhcmNfc3RydWN0dXJlX29yX3VuaW9uX3AgKGNvbnN0IHN0cnVjdAog fQogCiAvKiBSZWdpc3RlciBpbmZvcm1hdGlvbi4gICovCisjZGVmaW5lIFNQ QVJDMzJfRlBVX1JFR0lTVEVSUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAiZjAiLCAiZjEiLCAiZjIiLCAiZjMiLCAiZjQiLCAiZjUiLCAi ZjYiLCAiZjciLCAgICAgICAgIFwKKyAgImY4IiwgImY5IiwgImYxMCIsICJm MTEiLCAiZjEyIiwgImYxMyIsICJmMTQiLCAiZjE1IiwgICBcCisgICJmMTYi LCAiZjE3IiwgImYxOCIsICJmMTkiLCAiZjIwIiwgImYyMSIsICJmMjIiLCAi ZjIzIiwgXAorICAiZjI0IiwgImYyNSIsICJmMjYiLCAiZjI3IiwgImYyOCIs ICJmMjkiLCAiZjMwIiwgImYzMSIKKyNkZWZpbmUgU1BBUkMzMl9DUDBfUkVH SVNURVJTIFwKKyAgInkiLCAicHNyIiwgIndpbSIsICJ0YnIiLCAicGMiLCAi bnBjIiwgImZzciIsICJjc3IiCiAKIHN0YXRpYyBjb25zdCBjaGFyICpzcGFy YzMyX3JlZ2lzdGVyX25hbWVzW10gPQogewotICAiZzAiLCAiZzEiLCAiZzIi LCAiZzMiLCAiZzQiLCAiZzUiLCAiZzYiLCAiZzciLAotICAibzAiLCAibzEi LCAibzIiLCAibzMiLCAibzQiLCAibzUiLCAic3AiLCAibzciLAotICAibDAi LCAibDEiLCAibDIiLCAibDMiLCAibDQiLCAibDUiLCAibDYiLCAibDciLAot ICAiaTAiLCAiaTEiLCAiaTIiLCAiaTMiLCAiaTQiLCAiaTUiLCAiZnAiLCAi aTciLAotCi0gICJmMCIsICJmMSIsICJmMiIsICJmMyIsICJmNCIsICJmNSIs ICJmNiIsICJmNyIsCi0gICJmOCIsICJmOSIsICJmMTAiLCAiZjExIiwgImYx MiIsICJmMTMiLCAiZjE0IiwgImYxNSIsCi0gICJmMTYiLCAiZjE3IiwgImYx OCIsICJmMTkiLCAiZjIwIiwgImYyMSIsICJmMjIiLCAiZjIzIiwKLSAgImYy NCIsICJmMjUiLCAiZjI2IiwgImYyNyIsICJmMjgiLCAiZjI5IiwgImYzMCIs ICJmMzEiLAotCi0gICJ5IiwgInBzciIsICJ3aW0iLCAidGJyIiwgInBjIiwg Im5wYyIsICJmc3IiLCAiY3NyIgorICBTUEFSQ19DT1JFX1JFR0lTVEVSUywK KyAgU1BBUkMzMl9GUFVfUkVHSVNURVJTLAorICBTUEFSQzMyX0NQMF9SRUdJ U1RFUlMKIH07CiAKIC8qIFRvdGFsIG51bWJlciBvZiByZWdpc3RlcnMuICAq LwpAQCAtMzI2LDE4ICszMjUsMjggQEAgc3RhdGljIGNvbnN0IGNoYXIgKnNw YXJjMzJfcHNldWRvX3JlZ2lzdAogLyogVG90YWwgbnVtYmVyIG9mIHBzZXVk byByZWdpc3RlcnMuICAqLwogI2RlZmluZSBTUEFSQzMyX05VTV9QU0VVRE9f UkVHUyBBUlJBWV9TSVpFIChzcGFyYzMyX3BzZXVkb19yZWdpc3Rlcl9uYW1l cykKIAotLyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4g ICovCisvKiBSZXR1cm4gdGhlIG5hbWUgb2YgcHNldWRvIHJlZ2lzdGVyIFJF R05VTS4gICovCitzdGF0aWMgY29uc3QgY2hhciAqCitzcGFyYzMyX3BzZXVk b19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50 IHJlZ251bSkKK3sKKyAgcmVnbnVtIC09IGdkYmFyY2hfbnVtX3JlZ3MgKGdk YmFyY2gpOworCisgIGlmIChyZWdudW0gPCBTUEFSQzMyX05VTV9QU0VVRE9f UkVHUykKKyAgICByZXR1cm4gc3BhcmMzMl9wc2V1ZG9fcmVnaXN0ZXJfbmFt ZXNbcmVnbnVtXTsKIAorICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9f TElORV9fLAorICAgICAgICAgICAgICAgICAgXygic3BhcmMzMl9wc2V1ZG9f cmVnaXN0ZXJfbmFtZTogYmFkIHJlZ2lzdGVyIG51bWJlciAlZCIpLAorICAg ICAgICAgICAgICAgICAgcmVnbnVtKTsKK30KKworLyogUmV0dXJuIHRoZSBu YW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4gICovCiBzdGF0aWMgY29uc3QgY2hh ciAqCiBzcGFyYzMyX3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBpbnQgcmVnbnVtKQogewotICBpZiAocmVnbnVtID49IDAgJiYg cmVnbnVtIDwgU1BBUkMzMl9OVU1fUkVHUykKKyAgaWYgKHJlZ251bSA+PSAw ICYmIHJlZ251bSA8IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpKQogICAg IHJldHVybiBzcGFyYzMyX3JlZ2lzdGVyX25hbWVzW3JlZ251bV07CiAKLSAg aWYgKHJlZ251bSA8IFNQQVJDMzJfTlVNX1JFR1MgKyBTUEFSQzMyX05VTV9Q U0VVRE9fUkVHUykKLSAgICByZXR1cm4gc3BhcmMzMl9wc2V1ZG9fcmVnaXN0 ZXJfbmFtZXNbcmVnbnVtIC0gU1BBUkMzMl9OVU1fUkVHU107Ci0KLSAgcmV0 dXJuIE5VTEw7CisgIHJldHVybiBzcGFyYzMyX3BzZXVkb19yZWdpc3Rlcl9u YW1lIChnZGJhcmNoLCByZWdudW0pOwogfQogDAogLyogQ29uc3RydWN0IHR5 cGVzIGZvciBJU0Etc3BlY2lmaWMgcmVnaXN0ZXJzLiAgKi8KQEAgLTM5OCwx NyArNDA3LDI4IEBAIHNwYXJjX2Zzcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCkKIH0KIAogLyogUmV0dXJuIHRoZSBHREIgdHlwZSBvYmplY3Qg Zm9yIHRoZSAic3RhbmRhcmQiIGRhdGEgdHlwZSBvZiBkYXRhIGluCi0gICBy ZWdpc3RlciBSRUdOVU0uICAqLworICAgcHNldWRvIHJlZ2lzdGVyIFJFR05V TS4gICovCitzdGF0aWMgc3RydWN0IHR5cGUgKgorc3BhcmMzMl9wc2V1ZG9f cmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCBy ZWdudW0pCit7CisgIHJlZ251bSAtPSBnZGJhcmNoX251bV9yZWdzIChnZGJh cmNoKTsKKworICBpZiAocmVnbnVtID49IFNQQVJDMzJfRDBfUkVHTlVNICYm IHJlZ251bSA8PSBTUEFSQzMyX0QzMF9SRUdOVU0pCisgICAgcmV0dXJuIGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fZG91YmxlOworCisgIGlu dGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAg ICAgICAgICBfKCJzcGFyYzMyX3BzZXVkb19yZWdpc3Rlcl90eXBlOiBiYWQg cmVnaXN0ZXIgbnVtYmVyICVkIiksCisgICAgICAgICAgICAgICAgICByZWdu dW0pOworfQogCisvKiBSZXR1cm4gdGhlIEdEQiB0eXBlIG9iamVjdCBmb3Ig dGhlICJzdGFuZGFyZCIgZGF0YSB0eXBlIG9mIGRhdGEgaW4KKyAgIHJlZ2lz dGVyIFJFR05VTS4gICovCiBzdGF0aWMgc3RydWN0IHR5cGUgKgogc3BhcmMz Ml9yZWdpc3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50 IHJlZ251bSkKIHsKICAgaWYgKHJlZ251bSA+PSBTUEFSQ19GMF9SRUdOVU0g JiYgcmVnbnVtIDw9IFNQQVJDX0YzMV9SRUdOVU0pCiAgICAgcmV0dXJuIGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fZmxvYXQ7CiAKLSAgaWYg KHJlZ251bSA+PSBTUEFSQzMyX0QwX1JFR05VTSAmJiByZWdudW0gPD0gU1BB UkMzMl9EMzBfUkVHTlVNKQotICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdk YmFyY2gpLT5idWlsdGluX2RvdWJsZTsKLQogICBpZiAocmVnbnVtID09IFNQ QVJDX1NQX1JFR05VTSB8fCByZWdudW0gPT0gU1BBUkNfRlBfUkVHTlVNKQog ICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2Rh dGFfcHRyOwogCkBAIC00MjEsNiArNDQxLDkgQEAgc3BhcmMzMl9yZWdpc3Rl cl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZwogICBpZiAocmVnbnVtID09IFNQ QVJDMzJfRlNSX1JFR05VTSkKICAgICByZXR1cm4gc3BhcmNfZnNyX3R5cGUg KGdkYmFyY2gpOwogCisgIGlmIChyZWdudW0gPj0gZ2RiYXJjaF9udW1fcmVn cyAoZ2RiYXJjaCkpCisgICAgcmV0dXJuIHNwYXJjMzJfcHNldWRvX3JlZ2lz dGVyX3R5cGUgKGdkYmFyY2gsIHJlZ251bSk7CisKICAgcmV0dXJuIGJ1aWx0 aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50MzI7CiB9CiAKQEAgLTQz MSw2ICs0NTQsNyBAQCBzcGFyYzMyX3BzZXVkb19yZWdpc3Rlcl9yZWFkIChz dHJ1Y3QgZ2RiCiB7CiAgIGVudW0gcmVnaXN0ZXJfc3RhdHVzIHN0YXR1czsK IAorICByZWdudW0gLT0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCk7CiAg IGdkYl9hc3NlcnQgKHJlZ251bSA+PSBTUEFSQzMyX0QwX1JFR05VTSAmJiBy ZWdudW0gPD0gU1BBUkMzMl9EMzBfUkVHTlVNKTsKIAogICByZWdudW0gPSBT UEFSQ19GMF9SRUdOVU0gKyAyICogKHJlZ251bSAtIFNQQVJDMzJfRDBfUkVH TlVNKTsKQEAgLTQ0NSw2ICs0NjksNyBAQCBzcGFyYzMyX3BzZXVkb19yZWdp c3Rlcl93cml0ZSAoc3RydWN0IGdkCiAJCQkgICAgICAgc3RydWN0IHJlZ2Nh Y2hlICpyZWdjYWNoZSwKIAkJCSAgICAgICBpbnQgcmVnbnVtLCBjb25zdCBn ZGJfYnl0ZSAqYnVmKQogeworICByZWdudW0gLT0gZ2RiYXJjaF9udW1fcmVn cyAoZ2RiYXJjaCk7CiAgIGdkYl9hc3NlcnQgKHJlZ251bSA+PSBTUEFSQzMy X0QwX1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkMzMl9EMzBfUkVHTlVNKTsK IAogICByZWdudW0gPSBTUEFSQ19GMF9SRUdOVU0gKyAyICogKHJlZ251bSAt IFNQQVJDMzJfRDBfUkVHTlVNKTsKLS0tIGEvZ2RiL3NwYXJjNjQtdGRlcC5o CTIwMTYtMDItMDkgMTk6MTk6MzkuMDAwMDAwMDAwICswMDAwCisrKyBnZGIt Ny4xMS9nZGIvc3BhcmM2NC10ZGVwLmgJMjAxNy0wMS0wOSAxMzoyNjoxMS43 NTEwOTgzMTUgKzAwMDAKQEAgLTU2LDkgKzU2LDEyIEBAIGVudW0gc3BhcmM2 NF9yZWdudW0KICAgU1BBUkM2NF9GU1JfUkVHTlVNLAkJLyogJWZzciAqLwog ICBTUEFSQzY0X0ZQUlNfUkVHTlVNLAkJLyogJWZwcnMgKi8KICAgU1BBUkM2 NF9ZX1JFR05VTSwJCS8qICV5ICovCit9OwogCi0gIC8qIFBzZXVkbyByZWdp c3RlcnMuICAqLwotICBTUEFSQzY0X0NXUF9SRUdOVU0sCQkvKiAlY3dwICov CisvKiBQc2V1ZG8gcmVnaXN0ZXJzLiAgKi8KK2VudW0gc3BhcmM2NF9wc2V1 ZG9fcmVnbnVtCit7CisgIFNQQVJDNjRfQ1dQX1JFR05VTSA9IDAsCS8qICVj d3AgKi8KICAgU1BBUkM2NF9QU1RBVEVfUkVHTlVNLAkvKiAlcHN0YXRlICov CiAgIFNQQVJDNjRfQVNJX1JFR05VTSwJCS8qICVhc2kgKi8KICAgU1BBUkM2 NF9DQ1JfUkVHTlVNLAkJLyogJWNjciAqLwotLS0gYS9nZGIvc3BhcmM2NC10 ZGVwLmMJMjAxNi0wMi0wOSAxOToxOTozOS4wMDAwMDAwMDAgKzAwMDAKKysr IGdkYi03LjExL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE3LTAxLTExIDA0OjI1 OjMwLjY3MDA4NTM3NSArMDAwMApAQCAtMjI2LDI4ICsyMjYsMjYgQEAgc3Bh cmM2NF9mcHJzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcgogCiAKIC8q IFJlZ2lzdGVyIGluZm9ybWF0aW9uLiAgKi8KKyNkZWZpbmUgU1BBUkM2NF9G UFVfUkVHSVNURVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICJmMCIsICJmMSIsICJmMiIsICJmMyIsICJmNCIsICJmNSIsICJmNiIsICJm NyIsICAgICAgICAgXAorICAiZjgiLCAiZjkiLCAiZjEwIiwgImYxMSIsICJm MTIiLCAiZjEzIiwgImYxNCIsICJmMTUiLCAgIFwKKyAgImYxNiIsICJmMTci LCAiZjE4IiwgImYxOSIsICJmMjAiLCAiZjIxIiwgImYyMiIsICJmMjMiLCBc CisgICJmMjQiLCAiZjI1IiwgImYyNiIsICJmMjciLCAiZjI4IiwgImYyOSIs ICJmMzAiLCAiZjMxIiwgXAorICAiZjMyIiwgImYzNCIsICJmMzYiLCAiZjM4 IiwgImY0MCIsICJmNDIiLCAiZjQ0IiwgImY0NiIsIFwKKyAgImY0OCIsICJm NTAiLCAiZjUyIiwgImY1NCIsICJmNTYiLCAiZjU4IiwgImY2MCIsICJmNjIi CisjZGVmaW5lIFNQQVJDNjRfQ1AwX1JFR0lTVEVSUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgInBjIiwgIm5w YyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAvKiBGSVhNRTogR2l2ZSAic3RhdGUi IGEgbmFtZSB1bnRpbCB3ZSBzdGFydCB1c2luZyByZWdpc3RlciBncm91cHMu ICAqLyBcCisgICJzdGF0ZSIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgImZz ciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAiZnBycyIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICJ5IgogCiBzdGF0aWMgY29uc3QgY2hhciAqc3Bh cmM2NF9yZWdpc3Rlcl9uYW1lc1tdID0KIHsKLSAgImcwIiwgImcxIiwgImcy IiwgImczIiwgImc0IiwgImc1IiwgImc2IiwgImc3IiwKLSAgIm8wIiwgIm8x IiwgIm8yIiwgIm8zIiwgIm80IiwgIm81IiwgInNwIiwgIm83IiwKLSAgImww IiwgImwxIiwgImwyIiwgImwzIiwgImw0IiwgImw1IiwgImw2IiwgImw3IiwK LSAgImkwIiwgImkxIiwgImkyIiwgImkzIiwgImk0IiwgImk1IiwgImZwIiwg Imk3IiwKLQotICAiZjAiLCAiZjEiLCAiZjIiLCAiZjMiLCAiZjQiLCAiZjUi LCAiZjYiLCAiZjciLAotICAiZjgiLCAiZjkiLCAiZjEwIiwgImYxMSIsICJm MTIiLCAiZjEzIiwgImYxNCIsICJmMTUiLAotICAiZjE2IiwgImYxNyIsICJm MTgiLCAiZjE5IiwgImYyMCIsICJmMjEiLCAiZjIyIiwgImYyMyIsCi0gICJm MjQiLCAiZjI1IiwgImYyNiIsICJmMjciLCAiZjI4IiwgImYyOSIsICJmMzAi LCAiZjMxIiwKLSAgImYzMiIsICJmMzQiLCAiZjM2IiwgImYzOCIsICJmNDAi LCAiZjQyIiwgImY0NCIsICJmNDYiLAotICAiZjQ4IiwgImY1MCIsICJmNTIi LCAiZjU0IiwgImY1NiIsICJmNTgiLCAiZjYwIiwgImY2MiIsCi0KLSAgInBj IiwgIm5wYyIsCi0gIAotICAvKiBGSVhNRTogR2l2ZSAic3RhdGUiIGEgbmFt ZSB1bnRpbCB3ZSBzdGFydCB1c2luZyByZWdpc3RlciBncm91cHMuICAqLwot ICAic3RhdGUiLAotICAiZnNyIiwKLSAgImZwcnMiLAotICAieSIsCisgIFNQ QVJDX0NPUkVfUkVHSVNURVJTLAorICBTUEFSQzY0X0ZQVV9SRUdJU1RFUlMs CisgIFNQQVJDNjRfQ1AwX1JFR0lTVEVSUwogfTsKIAogLyogVG90YWwgbnVt YmVyIG9mIHJlZ2lzdGVycy4gICovCkBAIC0yNzIsMjkgKzI3MCw2MSBAQCBz dGF0aWMgY29uc3QgY2hhciAqc3BhcmM2NF9wc2V1ZG9fcmVnaXN0CiAvKiBU b3RhbCBudW1iZXIgb2YgcHNldWRvIHJlZ2lzdGVycy4gICovCiAjZGVmaW5l IFNQQVJDNjRfTlVNX1BTRVVET19SRUdTIEFSUkFZX1NJWkUgKHNwYXJjNjRf cHNldWRvX3JlZ2lzdGVyX25hbWVzKQogCi0vKiBSZXR1cm4gdGhlIG5hbWUg b2YgcmVnaXN0ZXIgUkVHTlVNLiAgKi8KKy8qIFJldHVybiB0aGUgbmFtZSBv ZiBwc2V1ZG8gcmVnaXN0ZXIgUkVHTlVNLiAgKi8KK3N0YXRpYyBjb25zdCBj aGFyICoKK3NwYXJjNjRfcHNldWRvX3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQoreworICByZWdudW0gLT0g Z2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCk7CisKKyAgaWYgKHJlZ251bSA8 IFNQQVJDNjRfTlVNX1BTRVVET19SRUdTKQorICAgIHJldHVybiBzcGFyYzY0 X3BzZXVkb19yZWdpc3Rlcl9uYW1lc1tyZWdudW1dOwogCisgIGludGVybmFs X2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAg ICBfKCJzcGFyYzY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lOiBiYWQgcmVnaXN0 ZXIgbnVtYmVyICVkIiksCisgICAgICAgICAgICAgICAgICByZWdudW0pOwor fQorCisvKiBSZXR1cm4gdGhlIG5hbWUgb2YgcmVnaXN0ZXIgUkVHTlVNLiAg Ki8KIHN0YXRpYyBjb25zdCBjaGFyICoKIHNwYXJjNjRfcmVnaXN0ZXJfbmFt ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCiB7Ci0g IGlmIChyZWdudW0gPj0gMCAmJiByZWdudW0gPCBTUEFSQzY0X05VTV9SRUdT KQorICBpZiAocmVnbnVtID49IDAgJiYgcmVnbnVtIDwgZ2RiYXJjaF9udW1f cmVncyAoZ2RiYXJjaCkpCiAgICAgcmV0dXJuIHNwYXJjNjRfcmVnaXN0ZXJf bmFtZXNbcmVnbnVtXTsKIAotICBpZiAocmVnbnVtID49IFNQQVJDNjRfTlVN X1JFR1MKLSAgICAgICYmIHJlZ251bSA8IFNQQVJDNjRfTlVNX1JFR1MgKyBT UEFSQzY0X05VTV9QU0VVRE9fUkVHUykKLSAgICByZXR1cm4gc3BhcmM2NF9w c2V1ZG9fcmVnaXN0ZXJfbmFtZXNbcmVnbnVtIC0gU1BBUkM2NF9OVU1fUkVH U107CisgIHJldHVybiBzcGFyYzY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChn ZGJhcmNoLCByZWdudW0pOworfQorCisvKiBSZXR1cm4gdGhlIEdEQiB0eXBl IG9iamVjdCBmb3IgdGhlICJzdGFuZGFyZCIgZGF0YSB0eXBlIG9mIGRhdGEg aW4KKyAgIHBzZXVkbyByZWdpc3RlciBSRUdOVU0uICAqLworc3RhdGljIHN0 cnVjdCB0eXBlICoKK3NwYXJjNjRfcHNldWRvX3JlZ2lzdGVyX3R5cGUgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQoreworICByZWdu dW0gLT0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCk7CisKKyAgaWYgKHJl Z251bSA9PSBTUEFSQzY0X0NXUF9SRUdOVU0pCisgICAgcmV0dXJuIGJ1aWx0 aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50NjQ7CisgIGlmIChyZWdu dW0gPT0gU1BBUkM2NF9QU1RBVEVfUkVHTlVNKQorICAgIHJldHVybiBzcGFy YzY0X3BzdGF0ZV90eXBlIChnZGJhcmNoKTsKKyAgaWYgKHJlZ251bSA9PSBT UEFSQzY0X0FTSV9SRUdOVU0pCisgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAo Z2RiYXJjaCktPmJ1aWx0aW5faW50NjQ7CisgIGlmIChyZWdudW0gPT0gU1BB UkM2NF9DQ1JfUkVHTlVNKQorICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdk YmFyY2gpLT5idWlsdGluX2ludDY0OworICBpZiAocmVnbnVtID49IFNQQVJD NjRfRDBfUkVHTlVNICYmIHJlZ251bSA8PSBTUEFSQzY0X0Q2Ml9SRUdOVU0p CisgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f ZG91YmxlOworICBpZiAocmVnbnVtID49IFNQQVJDNjRfUTBfUkVHTlVNICYm IHJlZ251bSA8PSBTUEFSQzY0X1E2MF9SRUdOVU0pCisgICAgcmV0dXJuIGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fbG9uZ19kb3VibGU7CiAK LSAgcmV0dXJuIE5VTEw7CisgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCisgICAgICAgICAgICAgICAgICBfKCJzcGFyYzY0X3BzZXVk b19yZWdpc3Rlcl90eXBlOiBiYWQgcmVnaXN0ZXIgbnVtYmVyICVkIiksCisg ICAgICAgICAgICAgICAgICByZWdudW0pOwogfQogCiAvKiBSZXR1cm4gdGhl IEdEQiB0eXBlIG9iamVjdCBmb3IgdGhlICJzdGFuZGFyZCIgZGF0YSB0eXBl IG9mIGRhdGEgaW4KICAgIHJlZ2lzdGVyIFJFR05VTS4gICovCi0KIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqCiBzcGFyYzY0X3JlZ2lzdGVyX3R5cGUgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQogewogICAvKiBSYXcg cmVnaXN0ZXJzLiAgKi8KLQogICBpZiAocmVnbnVtID09IFNQQVJDX1NQX1JF R05VTSB8fCByZWdudW0gPT0gU1BBUkNfRlBfUkVHTlVNKQogICAgIHJldHVy biBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2RhdGFfcHRyOwog ICBpZiAocmVnbnVtID49IFNQQVJDX0cwX1JFR05VTSAmJiByZWdudW0gPD0g U1BBUkNfSTdfUkVHTlVNKQpAQCAtMzE5LDE5ICszNDksOCBAQCBzcGFyYzY0 X3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnCiAgICAgcmV0dXJu IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50NjQ7CiAKICAg LyogUHNldWRvIHJlZ2lzdGVycy4gICovCi0KLSAgaWYgKHJlZ251bSA9PSBT UEFSQzY0X0NXUF9SRUdOVU0pCi0gICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAo Z2RiYXJjaCktPmJ1aWx0aW5faW50NjQ7Ci0gIGlmIChyZWdudW0gPT0gU1BB UkM2NF9QU1RBVEVfUkVHTlVNKQotICAgIHJldHVybiBzcGFyYzY0X3BzdGF0 ZV90eXBlIChnZGJhcmNoKTsKLSAgaWYgKHJlZ251bSA9PSBTUEFSQzY0X0FT SV9SRUdOVU0pCi0gICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCkt PmJ1aWx0aW5faW50NjQ7Ci0gIGlmIChyZWdudW0gPT0gU1BBUkM2NF9DQ1Jf UkVHTlVNKQotICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5i dWlsdGluX2ludDY0OwotICBpZiAocmVnbnVtID49IFNQQVJDNjRfRDBfUkVH TlVNICYmIHJlZ251bSA8PSBTUEFSQzY0X0Q2Ml9SRUdOVU0pCi0gICAgcmV0 dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fZG91YmxlOwot ICBpZiAocmVnbnVtID49IFNQQVJDNjRfUTBfUkVHTlVNICYmIHJlZ251bSA8 PSBTUEFSQzY0X1E2MF9SRUdOVU0pCi0gICAgcmV0dXJuIGJ1aWx0aW5fdHlw ZSAoZ2RiYXJjaCktPmJ1aWx0aW5fbG9uZ19kb3VibGU7CisgIGlmIChyZWdu dW0gPj0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkpCisgICAgcmV0dXJu IHNwYXJjNjRfcHNldWRvX3JlZ2lzdGVyX3R5cGUgKGdkYmFyY2gsIHJlZ251 bSk7CiAKICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywg XygiaW52YWxpZCByZWdudW0iKSk7CiB9CkBAIC0zNDQsNyArMzYzLDcgQEAg c3BhcmM2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGdkYgogICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRl ciAoZ2RiYXJjaCk7CiAgIGVudW0gcmVnaXN0ZXJfc3RhdHVzIHN0YXR1czsK IAotICBnZGJfYXNzZXJ0IChyZWdudW0gPj0gU1BBUkM2NF9OVU1fUkVHUyk7 CisgIHJlZ251bSAtPSBnZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKTsKIAog ICBpZiAocmVnbnVtID49IFNQQVJDNjRfRDBfUkVHTlVNICYmIHJlZ251bSA8 PSBTUEFSQzY0X0QzMF9SRUdOVU0pCiAgICAgewpAQCAtNDIxLDcgKzQ0MCw4 IEBAIHNwYXJjNjRfcHNldWRvX3JlZ2lzdGVyX3dyaXRlIChzdHJ1Y3QgZ2QK IAkJCSAgICAgICBpbnQgcmVnbnVtLCBjb25zdCBnZGJfYnl0ZSAqYnVmKQog ewogICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7Ci0gIGdkYl9hc3NlcnQgKHJlZ251bSA+PSBT UEFSQzY0X05VTV9SRUdTKTsKKworICByZWdudW0gLT0gZ2RiYXJjaF9udW1f cmVncyAoZ2RiYXJjaCk7CiAKICAgaWYgKHJlZ251bSA+PSBTUEFSQzY0X0Qw X1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9EMzBfUkVHTlVNKQogICAg IHsKQEAgLTYzOCw2ICs2NTgsNyBAQCBzdGF0aWMgdm9pZAogc3BhcmM2NF9z dG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsIHN0cnVjdCB0eXBlICp0eXBlLAogCQkJICAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWxidWYsIGludCBlbGVtZW50LCBpbnQgYml0cG9zKQogeworICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChy ZWdjYWNoZSk7CiAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAK ICAgZ2RiX2Fzc2VydCAoZWxlbWVudCA8IDE2KTsKQEAgLTY1MiwxNCArNjcz LDE1IEBAIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3Qg cmUKIAkgIGdkYl9hc3NlcnQgKGJpdHBvcyA9PSAwKTsKIAkgIGdkYl9hc3Nl cnQgKChlbGVtZW50ICUgMikgPT0gMCk7CiAKLQkgIHJlZ251bSA9IFNQQVJD NjRfUTBfUkVHTlVNICsgZWxlbWVudCAvIDI7CisJICByZWdudW0gPSBnZGJh cmNoX251bV9yZWdzIChnZGJhcmNoKSArIFNQQVJDNjRfUTBfUkVHTlVNICsg ZWxlbWVudCAvIDI7CiAJICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2Nh Y2hlLCByZWdudW0sIHZhbGJ1Zik7CiAJfQogICAgICAgZWxzZSBpZiAobGVu ID09IDgpCiAJewogCSAgZ2RiX2Fzc2VydCAoYml0cG9zID09IDAgfHwgYml0 cG9zID09IDY0KTsKIAotCSAgcmVnbnVtID0gU1BBUkM2NF9EMF9SRUdOVU0g KyBlbGVtZW50ICsgYml0cG9zIC8gNjQ7CisJICByZWdudW0gPSBnZGJhcmNo X251bV9yZWdzIChnZGJhcmNoKSArIFNQQVJDNjRfRDBfUkVHTlVNCisgICAg ICAgICAgICAgICAgICAgKyBlbGVtZW50ICsgYml0cG9zIC8gNjQ7CiAJICBy ZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCByZWdudW0sIHZhbGJ1 ZiArIChiaXRwb3MgLyA4KSk7CiAJfQogICAgICAgZWxzZQpAQCAtNzEyLDYg KzczNCw4IEBAIHN0YXRpYyB2b2lkCiBzcGFyYzY0X2V4dHJhY3RfZmxvYXRp bmdfZmllbGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKIAkJCQkgZ2RiX2J5dGUgKnZhbGJ1ZiwgaW50IGJpdHBv cykKIHsKKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2Fj aGVfYXJjaCAocmVnY2FjaGUpOworCiAgIGlmIChzcGFyYzY0X2Zsb2F0aW5n X3AgKHR5cGUpKQogICAgIHsKICAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CkBAIC03MjEsMTQgKzc0NSwxNSBAQCBzcGFyYzY0X2V4dHJh Y3RfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3QKIAl7CiAJICBnZGJfYXNzZXJ0 IChiaXRwb3MgPT0gMCB8fCBiaXRwb3MgPT0gMTI4KTsKIAotCSAgcmVnbnVt ID0gU1BBUkM2NF9RMF9SRUdOVU0gKyBiaXRwb3MgLyAxMjg7CisJICByZWdu dW0gPSBnZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKSArIFNQQVJDNjRfUTBf UkVHTlVNCisgICAgICAgICAgICAgICAgICAgKyBiaXRwb3MgLyAxMjg7CiAJ ICByZWdjYWNoZV9jb29rZWRfcmVhZCAocmVnY2FjaGUsIHJlZ251bSwgdmFs YnVmICsgKGJpdHBvcyAvIDgpKTsKIAl9CiAgICAgICBlbHNlIGlmIChsZW4g PT0gOCkKIAl7CiAJICBnZGJfYXNzZXJ0IChiaXRwb3MgJSA2NCA9PSAwICYm IGJpdHBvcyA+PSAwICYmIGJpdHBvcyA8IDI1Nik7CiAKLQkgIHJlZ251bSA9 IFNQQVJDNjRfRDBfUkVHTlVNICsgYml0cG9zIC8gNjQ7CisJICByZWdudW0g PSBnZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKSArIFNQQVJDNjRfRDBfUkVH TlVNICsgYml0cG9zIC8gNjQ7CiAJICByZWdjYWNoZV9jb29rZWRfcmVhZCAo cmVnY2FjaGUsIHJlZ251bSwgdmFsYnVmICsgKGJpdHBvcyAvIDgpKTsKIAl9 CiAgICAgICBlbHNlCkBAIC05MTEsMTMgKzkzNiwxMyBAQCBzcGFyYzY0X3N0 b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAJICAvKiBGbG9hdCBD b21wbGV4IG9yIGRvdWJsZSBDb21wbGV4IGFyZ3VtZW50cy4gICovCiAJICBp ZiAoZWxlbWVudCA8IDE2KQogCSAgICB7Ci0JICAgICAgcmVnbnVtID0gU1BB UkM2NF9EMF9SRUdOVU0gKyBlbGVtZW50OworCSAgICAgIHJlZ251bSA9IGdk YmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgU1BBUkM2NF9EMF9SRUdOVU0g KyBlbGVtZW50OwogCiAJICAgICAgaWYgKGxlbiA9PSAxNikKIAkJewotCQkg IGlmIChyZWdudW0gPCBTUEFSQzY0X0QzMF9SRUdOVU0pCisJCSAgaWYgKHJl Z251bSA8IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgU1BBUkM2NF9E MzBfUkVHTlVNKQogCQkgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdj YWNoZSwgcmVnbnVtICsgMSwgdmFsYnVmICsgOCk7Ci0JCSAgaWYgKHJlZ251 bSA8IFNQQVJDNjRfRDEwX1JFR05VTSkKKwkJICBpZiAocmVnbnVtIDwgZ2Ri YXJjaF9udW1fcmVncyAoZ2RiYXJjaCkgKyBTUEFSQzY0X0QxMF9SRUdOVU0p CiAJCSAgICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLAogCQkJ CQkgICBTUEFSQ19PMF9SRUdOVU0gKyBlbGVtZW50ICsgMSwKIAkJCQkJICAg dmFsYnVmICsgOCk7CkBAIC05MzIsMTIgKzk1NywxNCBAQCBzcGFyYzY0X3N0 b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAJICAgICAgaWYgKGVs ZW1lbnQgJSAyKQogCQllbGVtZW50Kys7CiAJICAgICAgaWYgKGVsZW1lbnQg PCAxNikKLQkJcmVnbnVtID0gU1BBUkM2NF9RMF9SRUdOVU0gKyBlbGVtZW50 IC8gMjsKKwkJcmVnbnVtID0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkg KyBTUEFSQzY0X1EwX1JFR05VTQorICAgICAgICAgICAgICAgICAgICAgICAg ICsgZWxlbWVudCAvIDI7CiAJICAgIH0KIAkgIGVsc2UgaWYgKGxlbiA9PSA4 KQogCSAgICB7CiAJICAgICAgaWYgKGVsZW1lbnQgPCAxNikKLQkJcmVnbnVt ID0gU1BBUkM2NF9EMF9SRUdOVU0gKyBlbGVtZW50OworCQlyZWdudW0gPSBn ZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKSArIFNQQVJDNjRfRDBfUkVHTlVN CisgICAgICAgICAgICAgICAgICAgICAgICAgKyBlbGVtZW50OwogCSAgICB9 CiAJICBlbHNlIGlmIChsZW4gPT0gNCkKIAkgICAgewpAQCAtOTUyLDcgKzk3 OSw4IEBAIHNwYXJjNjRfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2Fj aGUKIAkgICAgICB2YWxidWYgPSBidWY7CiAJICAgICAgbGVuID0gODsKIAkg ICAgICBpZiAoZWxlbWVudCA8IDE2KQotCQlyZWdudW0gPSBTUEFSQzY0X0Qw X1JFR05VTSArIGVsZW1lbnQ7CisJCXJlZ251bSA9IGdkYmFyY2hfbnVtX3Jl Z3MgKGdkYmFyY2gpICsgU1BBUkM2NF9EMF9SRUdOVU0KKyAgICAgICAgICAg ICAgICAgICAgICAgICArIGVsZW1lbnQ7CiAJICAgIH0KIAl9CiAgICAgICBl bHNlCkBAIC05NjksMTkgKzk5NywyNCBAQCBzcGFyYzY0X3N0b3JlX2FyZ3Vt ZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAKIAkgIC8qIElmIHdlJ3JlIHN0b3Jp bmcgdGhlIHZhbHVlIGluIGEgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXIsCiAg ICAgICAgICAgICAgYWxzbyBzdG9yZSBpdCBpbiB0aGUgY29ycmVzcG9uZGlu ZyAlMCByZWdpc3RlcihzKS4gICovCi0JICBpZiAocmVnbnVtID49IFNQQVJD NjRfRDBfUkVHTlVNICYmIHJlZ251bSA8PSBTUEFSQzY0X0QxMF9SRUdOVU0p Ci0JICAgIHsKLQkgICAgICBnZGJfYXNzZXJ0IChlbGVtZW50IDwgNik7Ci0J ICAgICAgcmVnbnVtID0gU1BBUkNfTzBfUkVHTlVNICsgZWxlbWVudDsKLQkg ICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCByZWdudW0s IHZhbGJ1Zik7Ci0JICAgIH0KLQkgIGVsc2UgaWYgKHJlZ251bSA+PSBTUEFS QzY0X1EwX1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9ROF9SRUdOVU0p Ci0JICAgIHsKLQkgICAgICBnZGJfYXNzZXJ0IChlbGVtZW50IDwgNSk7Ci0J ICAgICAgcmVnbnVtID0gU1BBUkNfTzBfUkVHTlVNICsgZWxlbWVudDsKLQkg ICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCByZWdudW0s IHZhbGJ1Zik7Ci0JICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdj YWNoZSwgcmVnbnVtICsgMSwgdmFsYnVmICsgOCk7Ci0JICAgIH0KKwkgIGlm IChyZWdudW0gPj0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkpCisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgIHJlZ251bSAtPSBnZGJhcmNoX251 bV9yZWdzIChnZGJhcmNoKTsKKworICAgICAgICAgICAgICBpZiAocmVnbnVt ID49IFNQQVJDNjRfRDBfUkVHTlVNICYmIHJlZ251bSA8PSBTUEFSQzY0X0Qx MF9SRUdOVU0pCisJICAgICAgICB7CisJICAgICAgICAgIGdkYl9hc3NlcnQg KGVsZW1lbnQgPCA2KTsKKwkgICAgICAgICAgcmVnbnVtID0gU1BBUkNfTzBf UkVHTlVNICsgZWxlbWVudDsKKwkgICAgICAgICAgcmVnY2FjaGVfY29va2Vk X3dyaXRlIChyZWdjYWNoZSwgcmVnbnVtLCB2YWxidWYpOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAocmVnbnVtID49IFNQ QVJDNjRfUTBfUkVHTlVNICYmIHJlZ251bSA8PSBTUEFSQzY0X1E4X1JFR05V TSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBnZGJf YXNzZXJ0IChlbGVtZW50IDwgNSk7CisgICAgICAgICAgICAgICAgICByZWdu dW0gPSBTUEFSQ19PMF9SRUdOVU0gKyBlbGVtZW50OworICAgICAgICAgICAg ICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwgcmVnbnVt LCB2YWxidWYpOworICAgICAgICAgICAgICAgICAgcmVnY2FjaGVfY29va2Vk X3dyaXRlIChyZWdjYWNoZSwgcmVnbnVtICsgMSwgdmFsYnVmICsgOCk7CisJ ICAgICAgICB9CisgICAgICAgICAgICB9CiAJfQogCiAgICAgICAvKiBBbHdh eXMgc3RvcmUgdGhlIGFyZ3VtZW50IGluIG1lbW9yeS4gICovCg== --------------E73465D88EC638D57B8BA0B9--