From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2543 invoked by alias); 9 Jan 2017 21:18:40 -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 2529 invoked by uid 89); 9 Jan 2017 21:18:39 -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=**fpu_register_names, 20936, H*f:sk:46200a1, tbr 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; Mon, 09 Jan 2017 21:18:29 +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 v09LIQvV002757 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 9 Jan 2017 21:18:26 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id v09LIQaj027150 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 9 Jan 2017 21:18:26 GMT Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id v09LIPPZ022162; Mon, 9 Jan 2017 21:18:25 GMT Received: from [10.175.195.48] (/10.175.195.48) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Jan 2017 13:18:24 -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> Cc: gdb-patches@sourceware.org From: Ivo Raisr Message-ID: <3f087b35-96e1-47fa-7b98-6c7fb2ba31d5@oracle.com> Date: Mon, 09 Jan 2017 21:18: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: <20170109173515.GC9518@E107787-LIN> Content-Type: multipart/mixed; boundary="------------069602EF643ED0CC7925A7CD" X-SW-Source: 2017-01/txt/msg00139.txt.bz2 This is a multi-part message in MIME format. --------------069602EF643ED0CC7925A7CD Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 962 On 9.1.2017 18:35, Yao Qi wrote: >> ChangeLog entry: >> 2017-01-06 Ivo Raisr >> >> Split real and pseudo registers in preparation for registers provided >> by a target. Registers provided by target description can have more real >> registers and pseudo registers need to be positioned after them. > We don't document "changes" in this way. If you think it is important > to mention them, put them in the commit log. No need to put it there. I've simplified the description heavily, please find attached new ChangeLogentry. > >> @@ -57,6 +63,12 @@ struct gdbarch_tdep >> + /* Register names specific for architecture (sparc32 vs. sparc64) */ >> + const char **fpu_register_names; >> + size_t fpu_registers_num; >> + const char **cp0_register_names; >> + size_t cp0_registers_num; >> + > These four fields are added, but not used at all, so could you move > them to patch #2? Fixed. Find attached new patch. Kind regards, I. --------------069602EF643ED0CC7925A7CD Content-Type: text/plain; charset=UTF-8; name="ChangeLog.entry.pseudoreg-002" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ChangeLog.entry.pseudoreg-002" Content-length: 1688 Q2hhbmdlTG9nIGVudHJ5OgoyMDE3LTAxLTA5ICBJdm8gUmFpc3IgIDxpdm8u cmFpc3JAb3JhY2xlLmNvbT4KCglTcGxpdCByZWFsIGFuZCBwc2V1ZG8gcmVn aXN0ZXJzLgoJKiBzcGFyYy10ZGVwLmg6IFNlcGFyYXRlIHJlYWwgYW5kIHBz ZXVkbyByZWdpc3RlcnMuCgkqIHNwYXJjNjQtdGRlcC5oOiBTZXBhcmF0ZSBy ZWFsIGFuZCBwc2V1ZG8gcmVnaXN0ZXJzLgoJKiBzcGFyYy10ZGVwLmMgKHNw YXJjMzJfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBOZXcgZnVuY3Rpb24gcmV0 dXJuaW5nCglwc2V1ZG8gcmVnaXN0ZXIgbmFtZXMgb24gc3BhcmMgMzItYml0 LgoJKHNwYXJjMzJfcmVnaXN0ZXJfbmFtZSk6IFVzZSBzcGFyYzMyX3BzZXVk b19yZWdpc3Rlcl9uYW1lKCkuCgkoc3BhcmMzMl9wc2V1ZG9fcmVnaXN0ZXJf dHlwZSk6IE5ldyBmdW5jdGlvbiByZXR1cm5pbmcgcHNldWRvIHJlZ2lzdGVy Cgl0eXBlcyBvbiBzcGFyYyAzMi1iaXQuCgkoc3BhcmMzMl9yZWdpc3Rlcl90 eXBlKTogVXNlIHNwYXJjMzJfcHNldWRvX3JlZ2lzdGVyX3R5cGUoKS4KCShz cGFyYzMyX3BzZXVkb19yZWdpc3Rlcl9yZWFkLCBzcGFyYzMyX3BzZXVkb19y ZWdpc3Rlcl93cml0ZSk6IFBzZXVkbwoJcmVnaXN0ZXJzIG1heSBoYXZlIGRp ZmZlcmVudCBudW1iZXJzLgoJKiBzcGFyYzY0LXRkZXAuYyAoc3BhcmM2NF9w c2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IE5ldyBmdW5jdGlvbiByZXR1cm5pbmcK CXBzZXVkbyByZWdpc3RlciBuYW1lcyBvbiBzcGFyYyA2NC1iaXQuCgkoc3Bh cmM2NF9yZWdpc3Rlcl9uYW1lKTogVXNlIHNwYXJjNjRfcHNldWRvX3JlZ2lz dGVyX25hbWUoKS4KCShzcGFyYzY0X3BzZXVkb19yZWdpc3Rlcl90eXBlKTog TmV3IGZ1bmN0aW9uIHJldHVybmluZyBwc2V1ZG8gcmVnaXN0ZXIKCXR5cGVz IG9uIHNwYXJjIDY0LWJpdC4KCShzcGFyYzY0X3JlZ2lzdGVyX3R5cGUpOiBV c2Ugc3BhcmM2NF9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSgpLgoJKHNwYXJjNjRf cHNldWRvX3JlZ2lzdGVyX3JlYWQsIHNwYXJjNjRfcHNldWRvX3JlZ2lzdGVy X3dyaXRlKTogUHNldWRvCglyZWdpc3RlcnMgbWF5IGhhdmUgZGlmZmVyZW50 IG51bWJlcnMuCgkoc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMsIHNw YXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMsCglzcGFyYzY0X3N0b3Jl X2FyZ3VtZW50cyk6IFBzZXVkbyByZWdpc3RlcnMgbWF5IGhhdmUgZGlmZmVy ZW50IG51bWJlcnM7CglkZWFsIHdpdGggaXQuCg== --------------069602EF643ED0CC7925A7CD Content-Type: text/plain; charset=UTF-8; name="sparc_pseudoreg.patch-002" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sparc_pseudoreg.patch-002" Content-length: 23091 LS0tIGEvZ2RiL3NwYXJjLXRkZXAuaAkyMDE2LTAyLTA5IDE5OjE5OjM5LjAw MDAwMDAwMCArMDAwMAorKysgZ2RiLTcuMTEvZ2RiL3NwYXJjLXRkZXAuaAky MDE3LTAxLTA5IDEzOjExOjEzLjkwMzYyMzc0MiArMDAwMApAQCAtMjAsNiAr MjAsMTIgQEAKICNpZm5kZWYgU1BBUkNfVERFUF9ICiAjZGVmaW5lIFNQQVJD X1RERVBfSCAxCiAKKyNkZWZpbmUgU1BBUkNfQ09SRV9SRUdJU1RFUlMgICAg ICAgICAgICAgICAgICAgICAgXAorICAiZzAiLCAiZzEiLCAiZzIiLCAiZzMi LCAiZzQiLCAiZzUiLCAiZzYiLCAiZzciLCBcCisgICJvMCIsICJvMSIsICJv MiIsICJvMyIsICJvNCIsICJvNSIsICJzcCIsICJvNyIsIFwKKyAgImwwIiwg ImwxIiwgImwyIiwgImwzIiwgImw0IiwgImw1IiwgImw2IiwgImw3IiwgXAor ICAiaTAiLCAiaTEiLCAiaTIiLCAiaTMiLCAiaTQiLCAiaTUiLCAiZnAiLCAi aTciCisKIHN0cnVjdCBmcmFtZV9pbmZvOwogc3RydWN0IGdkYmFyY2g7CiBz dHJ1Y3QgcmVnY2FjaGU7CkBAIC04NSw3ICs5MSw3IEBAIHN0cnVjdCBnZGJh cmNoX3RkZXAKIAogZW51bSBzcGFyY19yZWdudW0KIHsKLSAgU1BBUkNfRzBf UkVHTlVNLAkJLyogJWcwICovCisgIFNQQVJDX0cwX1JFR05VTSA9IDAsCQkv KiAlZzAgKi8KICAgU1BBUkNfRzFfUkVHTlVNLAogICBTUEFSQ19HMl9SRUdO VU0sCiAgIFNQQVJDX0czX1JFR05VTSwKQEAgLTE0MCw5ICsxNDYsMTIgQEAg ZW51bSBzcGFyYzMyX3JlZ251bQogICBTUEFSQzMyX05QQ19SRUdOVU0sCQkv KiAlbnBjICovCiAgIFNQQVJDMzJfRlNSX1JFR05VTSwJCS8qICVmc3IgKi8K ICAgU1BBUkMzMl9DU1JfUkVHTlVNLAkJLyogJWNzciAqLworfTsKIAotICAv KiBQc2V1ZG8gcmVnaXN0ZXJzLiAgKi8KLSAgU1BBUkMzMl9EMF9SRUdOVU0s CQkvKiAlZDAgKi8KKy8qIFBzZXVkbyByZWdpc3RlcnMuICAqLworZW51bSBz cGFyYzMyX3BzZXVkb19yZWdudW0KK3sKKyAgU1BBUkMzMl9EMF9SRUdOVU0g PSAwLAkvKiAlZDAgKi8KICAgU1BBUkMzMl9EMzBfUkVHTlVNCQkvKiAlZDMw ICovCiAgID0gU1BBUkMzMl9EMF9SRUdOVU0gKyAxNQogfTsKLS0tIGEvZ2Ri L3NwYXJjNjQtdGRlcC5oCTIwMTYtMDItMDkgMTk6MTk6MzkuMDAwMDAwMDAw ICswMDAwCisrKyBnZGItNy4xMS9nZGIvc3BhcmM2NC10ZGVwLmgJMjAxNy0w MS0wOSAxMzoxMDo0My4xMjE4NDYxMjcgKzAwMDAKQEAgLTU2LDkgKzU2LDEy IEBAIGVudW0gc3BhcmM2NF9yZWdudW0KICAgU1BBUkM2NF9GU1JfUkVHTlVN LAkJLyogJWZzciAqLwogICBTUEFSQzY0X0ZQUlNfUkVHTlVNLAkJLyogJWZw cnMgKi8KICAgU1BBUkM2NF9ZX1JFR05VTSwJCS8qICV5ICovCit9OwogCi0g IC8qIFBzZXVkbyByZWdpc3RlcnMuICAqLwotICBTUEFSQzY0X0NXUF9SRUdO VU0sCQkvKiAlY3dwICovCisvKiBQc2V1ZG8gcmVnaXN0ZXJzLiAgKi8KK2Vu dW0gc3BhcmM2NF9wc2V1ZG9fcmVnbnVtCit7CisgIFNQQVJDNjRfQ1dQX1JF R05VTSA9IDAsCS8qICVjd3AgKi8KICAgU1BBUkM2NF9QU1RBVEVfUkVHTlVN LAkvKiAlcHN0YXRlICovCiAgIFNQQVJDNjRfQVNJX1JFR05VTSwJCS8qICVh c2kgKi8KICAgU1BBUkM2NF9DQ1JfUkVHTlVNLAkJLyogJWNjciAqLwotLS0g YS9nZGIvc3BhcmMtdGRlcC5jCTIwMTYtMDItMDkgMTk6MTk6MzkuMDAwMDAw MDAwICswMDAwCisrKyBnZGItNy4xMS9nZGIvc3BhcmMtdGRlcC5jCTIwMTct MDEtMDkgMTM6MTE6MzAuNDIxMjY1NDAyICswMDAwCkBAIC0yOTUsMjAgKzI5 NSwyMyBAQCBzcGFyY19zdHJ1Y3R1cmVfb3JfdW5pb25fcCAoY29uc3Qgc3Ry dWN0CiB9CiAKIC8qIFJlZ2lzdGVyIGluZm9ybWF0aW9uLiAgKi8KKyNkZWZp bmUgU1BBUkMzMl9GUFVfUkVHSVNURVJTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICJmMCIsICJmMSIsICJmMiIsICJmMyIsICJmNCIsICJm NSIsICJmNiIsICJmNyIsICAgICAgICAgXAorICAiZjgiLCAiZjkiLCAiZjEw IiwgImYxMSIsICJmMTIiLCAiZjEzIiwgImYxNCIsICJmMTUiLCAgIFwKKyAg ImYxNiIsICJmMTciLCAiZjE4IiwgImYxOSIsICJmMjAiLCAiZjIxIiwgImYy MiIsICJmMjMiLCBcCisgICJmMjQiLCAiZjI1IiwgImYyNiIsICJmMjciLCAi ZjI4IiwgImYyOSIsICJmMzAiLCAiZjMxIgorI2RlZmluZSBTUEFSQzMyX0NQ MF9SRUdJU1RFUlMgXAorICAieSIsICJwc3IiLCAid2ltIiwgInRiciIsICJw YyIsICJucGMiLCAiZnNyIiwgImNzciIKKworc3RhdGljIGNvbnN0IGNoYXIg KnNwYXJjX2NvcmVfcmVnaXN0ZXJfbmFtZXNbXSA9IHsgU1BBUkNfQ09SRV9S RUdJU1RFUlMgfTsKK3N0YXRpYyBjb25zdCBjaGFyICpzcGFyYzMyX2ZwdV9y ZWdpc3Rlcl9uYW1lc1tdID0geyBTUEFSQzMyX0ZQVV9SRUdJU1RFUlMgfTsK K3N0YXRpYyBjb25zdCBjaGFyICpzcGFyYzMyX2NwMF9yZWdpc3Rlcl9uYW1l c1tdID0geyBTUEFSQzMyX0NQMF9SRUdJU1RFUlMgfTsKIAogc3RhdGljIGNv bnN0IGNoYXIgKnNwYXJjMzJfcmVnaXN0ZXJfbmFtZXNbXSA9CiB7Ci0gICJn MCIsICJnMSIsICJnMiIsICJnMyIsICJnNCIsICJnNSIsICJnNiIsICJnNyIs Ci0gICJvMCIsICJvMSIsICJvMiIsICJvMyIsICJvNCIsICJvNSIsICJzcCIs ICJvNyIsCi0gICJsMCIsICJsMSIsICJsMiIsICJsMyIsICJsNCIsICJsNSIs ICJsNiIsICJsNyIsCi0gICJpMCIsICJpMSIsICJpMiIsICJpMyIsICJpNCIs ICJpNSIsICJmcCIsICJpNyIsCi0KLSAgImYwIiwgImYxIiwgImYyIiwgImYz IiwgImY0IiwgImY1IiwgImY2IiwgImY3IiwKLSAgImY4IiwgImY5IiwgImYx MCIsICJmMTEiLCAiZjEyIiwgImYxMyIsICJmMTQiLCAiZjE1IiwKLSAgImYx NiIsICJmMTciLCAiZjE4IiwgImYxOSIsICJmMjAiLCAiZjIxIiwgImYyMiIs ICJmMjMiLAotICAiZjI0IiwgImYyNSIsICJmMjYiLCAiZjI3IiwgImYyOCIs ICJmMjkiLCAiZjMwIiwgImYzMSIsCi0KLSAgInkiLCAicHNyIiwgIndpbSIs ICJ0YnIiLCAicGMiLCAibnBjIiwgImZzciIsICJjc3IiCisgIFNQQVJDX0NP UkVfUkVHSVNURVJTLAorICBTUEFSQzMyX0ZQVV9SRUdJU1RFUlMsCisgIFNQ QVJDMzJfQ1AwX1JFR0lTVEVSUwogfTsKIAogLyogVG90YWwgbnVtYmVyIG9m IHJlZ2lzdGVycy4gICovCkBAIC0zMjcsMTcgKzMzMCwyNiBAQCBzdGF0aWMg Y29uc3QgY2hhciAqc3BhcmMzMl9wc2V1ZG9fcmVnaXN0CiAjZGVmaW5lIFNQ QVJDMzJfTlVNX1BTRVVET19SRUdTIEFSUkFZX1NJWkUgKHNwYXJjMzJfcHNl dWRvX3JlZ2lzdGVyX25hbWVzKQogCiAvKiBSZXR1cm4gdGhlIG5hbWUgb2Yg cmVnaXN0ZXIgUkVHTlVNLiAgKi8KK3N0YXRpYyBjb25zdCBjaGFyICoKK3Nw YXJjMzJfcHNldWRvX3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBpbnQgcmVnbnVtKQoreworICByZWdudW0gLT0gZ2RiYXJjaF9u dW1fcmVncyAoZ2RiYXJjaCk7CisKKyAgaWYgKHJlZ251bSA8IFNQQVJDMzJf TlVNX1BTRVVET19SRUdTKQorICAgIHJldHVybiBzcGFyYzMyX3BzZXVkb19y ZWdpc3Rlcl9uYW1lc1tyZWdudW1dOworCisgIGludGVybmFsX2Vycm9yIChf X0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICBfKCJzcGFy YzMyX3BzZXVkb19yZWdpc3Rlcl9uYW1lOiBiYWQgcmVnaXN0ZXIgbnVtYmVy ICVkIiksCisgICAgICAgICAgICAgICAgICByZWdudW0pOworfQogCiBzdGF0 aWMgY29uc3QgY2hhciAqCiBzcGFyYzMyX3JlZ2lzdGVyX25hbWUgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQogewotICBpZiAocmVn bnVtID49IDAgJiYgcmVnbnVtIDwgU1BBUkMzMl9OVU1fUkVHUykKKyAgaWYg KHJlZ251bSA+PSAwICYmIHJlZ251bSA8IGdkYmFyY2hfbnVtX3JlZ3MgKGdk YmFyY2gpKQogICAgIHJldHVybiBzcGFyYzMyX3JlZ2lzdGVyX25hbWVzW3Jl Z251bV07CiAKLSAgaWYgKHJlZ251bSA8IFNQQVJDMzJfTlVNX1JFR1MgKyBT UEFSQzMyX05VTV9QU0VVRE9fUkVHUykKLSAgICByZXR1cm4gc3BhcmMzMl9w c2V1ZG9fcmVnaXN0ZXJfbmFtZXNbcmVnbnVtIC0gU1BBUkMzMl9OVU1fUkVH U107Ci0KLSAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBzcGFyYzMyX3BzZXVk b19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCByZWdudW0pOwogfQogDAogLyog Q29uc3RydWN0IHR5cGVzIGZvciBJU0Etc3BlY2lmaWMgcmVnaXN0ZXJzLiAg Ki8KQEAgLTM5OSw2ICs0MTEsMTggQEAgc3BhcmNfZnNyX3R5cGUgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoKQogCiAvKiBSZXR1cm4gdGhlIEdEQiB0eXBl IG9iamVjdCBmb3IgdGhlICJzdGFuZGFyZCIgZGF0YSB0eXBlIG9mIGRhdGEg aW4KICAgIHJlZ2lzdGVyIFJFR05VTS4gICovCitzdGF0aWMgc3RydWN0IHR5 cGUgKgorc3BhcmMzMl9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCit7CisgIHJlZ251bSAtPSBn ZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKTsKKworICBpZiAocmVnbnVtID49 IFNQQVJDMzJfRDBfUkVHTlVNICYmIHJlZ251bSA8PSBTUEFSQzMyX0QzMF9S RUdOVU0pCisgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1 aWx0aW5fZG91YmxlOworCisgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCisgICAgICAgICAgICAgICAgICBfKCJzcGFyYzMyX3BzZXVk b19yZWdpc3Rlcl90eXBlOiBiYWQgcmVnaXN0ZXIgbnVtYmVyICVkIiksCisg ICAgICAgICAgICAgICAgICByZWdudW0pOworfQogCiBzdGF0aWMgc3RydWN0 IHR5cGUgKgogc3BhcmMzMl9yZWdpc3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKQEAgLTQwNiw5ICs0MzAsNiBAQCBz cGFyYzMyX3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnCiAgIGlm IChyZWdudW0gPj0gU1BBUkNfRjBfUkVHTlVNICYmIHJlZ251bSA8PSBTUEFS Q19GMzFfUkVHTlVNKQogICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFy Y2gpLT5idWlsdGluX2Zsb2F0OwogCi0gIGlmIChyZWdudW0gPj0gU1BBUkMz Ml9EMF9SRUdOVU0gJiYgcmVnbnVtIDw9IFNQQVJDMzJfRDMwX1JFR05VTSkK LSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9k b3VibGU7Ci0KICAgaWYgKHJlZ251bSA9PSBTUEFSQ19TUF9SRUdOVU0gfHwg cmVnbnVtID09IFNQQVJDX0ZQX1JFR05VTSkKICAgICByZXR1cm4gYnVpbHRp bl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKIApAQCAtNDIx LDYgKzQ0Miw5IEBAIHNwYXJjMzJfcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdk YmFyY2ggKmcKICAgaWYgKHJlZ251bSA9PSBTUEFSQzMyX0ZTUl9SRUdOVU0p CiAgICAgcmV0dXJuIHNwYXJjX2Zzcl90eXBlIChnZGJhcmNoKTsKIAorICBp ZiAocmVnbnVtID49IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpKQorICAg IHJldHVybiBzcGFyYzMyX3BzZXVkb19yZWdpc3Rlcl90eXBlIChnZGJhcmNo LCByZWdudW0pOworCiAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gp LT5idWlsdGluX2ludDMyOwogfQogCkBAIC00MzEsNiArNDU1LDcgQEAgc3Bh cmMzMl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGdkYgogewogICBl bnVtIHJlZ2lzdGVyX3N0YXR1cyBzdGF0dXM7CiAKKyAgcmVnbnVtIC09IGdk YmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpOwogICBnZGJfYXNzZXJ0IChyZWdu dW0gPj0gU1BBUkMzMl9EMF9SRUdOVU0gJiYgcmVnbnVtIDw9IFNQQVJDMzJf RDMwX1JFR05VTSk7CiAKICAgcmVnbnVtID0gU1BBUkNfRjBfUkVHTlVNICsg MiAqIChyZWdudW0gLSBTUEFSQzMyX0QwX1JFR05VTSk7CkBAIC00NDUsNiAr NDcwLDcgQEAgc3BhcmMzMl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKHN0cnVj dCBnZAogCQkJICAgICAgIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAJ CQkgICAgICAgaW50IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUgKmJ1ZikKIHsK KyAgcmVnbnVtIC09IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpOwogICBn ZGJfYXNzZXJ0IChyZWdudW0gPj0gU1BBUkMzMl9EMF9SRUdOVU0gJiYgcmVn bnVtIDw9IFNQQVJDMzJfRDMwX1JFR05VTSk7CiAKICAgcmVnbnVtID0gU1BB UkNfRjBfUkVHTlVNICsgMiAqIChyZWdudW0gLSBTUEFSQzMyX0QwX1JFR05V TSk7Ci0tLSBhL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE2LTAyLTA5IDE5OjE5 OjM5LjAwMDAwMDAwMCArMDAwMAorKysgZ2RiLTcuMTEvZ2RiL3NwYXJjNjQt dGRlcC5jCTIwMTctMDEtMDkgMTM6MTE6NTEuODU4OTAzODA3ICswMDAwCkBA IC0yMjYsMjggKzIyNiwyOSBAQCBzcGFyYzY0X2ZwcnNfdHlwZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyCiAKIAogLyogUmVnaXN0ZXIgaW5mb3JtYXRpb24u ICAqLworI2RlZmluZSBTUEFSQzY0X0ZQVV9SRUdJU1RFUlMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgImYwIiwgImYxIiwgImYyIiwgImYz IiwgImY0IiwgImY1IiwgImY2IiwgImY3IiwgICAgICAgICBcCisgICJmOCIs ICJmOSIsICJmMTAiLCAiZjExIiwgImYxMiIsICJmMTMiLCAiZjE0IiwgImYx NSIsICAgXAorICAiZjE2IiwgImYxNyIsICJmMTgiLCAiZjE5IiwgImYyMCIs ICJmMjEiLCAiZjIyIiwgImYyMyIsIFwKKyAgImYyNCIsICJmMjUiLCAiZjI2 IiwgImYyNyIsICJmMjgiLCAiZjI5IiwgImYzMCIsICJmMzEiLCBcCisgICJm MzIiLCAiZjM0IiwgImYzNiIsICJmMzgiLCAiZjQwIiwgImY0MiIsICJmNDQi LCAiZjQ2IiwgXAorICAiZjQ4IiwgImY1MCIsICJmNTIiLCAiZjU0IiwgImY1 NiIsICJmNTgiLCAiZjYwIiwgImY2MiIKKyNkZWZpbmUgU1BBUkM2NF9DUDBf UkVHSVNURVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAicGMiLCAibnBjIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg IC8qIEZJWE1FOiBHaXZlICJzdGF0ZSIgYSBuYW1lIHVudGlsIHdlIHN0YXJ0 IHVzaW5nIHJlZ2lzdGVyIGdyb3Vwcy4gICovIFwKKyAgInN0YXRlIiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAiZnNyIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICJmcHJzIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgInkiCisK K3N0YXRpYyBjb25zdCBjaGFyICpzcGFyYzY0X2ZwdV9yZWdpc3Rlcl9uYW1l c1tdID0geyBTUEFSQzY0X0ZQVV9SRUdJU1RFUlMgfTsKK3N0YXRpYyBjb25z dCBjaGFyICpzcGFyYzY0X2NwMF9yZWdpc3Rlcl9uYW1lc1tdID0geyBTUEFS QzY0X0NQMF9SRUdJU1RFUlMgfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnNw YXJjNjRfcmVnaXN0ZXJfbmFtZXNbXSA9CiB7Ci0gICJnMCIsICJnMSIsICJn MiIsICJnMyIsICJnNCIsICJnNSIsICJnNiIsICJnNyIsCi0gICJvMCIsICJv MSIsICJvMiIsICJvMyIsICJvNCIsICJvNSIsICJzcCIsICJvNyIsCi0gICJs MCIsICJsMSIsICJsMiIsICJsMyIsICJsNCIsICJsNSIsICJsNiIsICJsNyIs Ci0gICJpMCIsICJpMSIsICJpMiIsICJpMyIsICJpNCIsICJpNSIsICJmcCIs ICJpNyIsCi0KLSAgImYwIiwgImYxIiwgImYyIiwgImYzIiwgImY0IiwgImY1 IiwgImY2IiwgImY3IiwKLSAgImY4IiwgImY5IiwgImYxMCIsICJmMTEiLCAi ZjEyIiwgImYxMyIsICJmMTQiLCAiZjE1IiwKLSAgImYxNiIsICJmMTciLCAi ZjE4IiwgImYxOSIsICJmMjAiLCAiZjIxIiwgImYyMiIsICJmMjMiLAotICAi ZjI0IiwgImYyNSIsICJmMjYiLCAiZjI3IiwgImYyOCIsICJmMjkiLCAiZjMw IiwgImYzMSIsCi0gICJmMzIiLCAiZjM0IiwgImYzNiIsICJmMzgiLCAiZjQw IiwgImY0MiIsICJmNDQiLCAiZjQ2IiwKLSAgImY0OCIsICJmNTAiLCAiZjUy IiwgImY1NCIsICJmNTYiLCAiZjU4IiwgImY2MCIsICJmNjIiLAotCi0gICJw YyIsICJucGMiLAotICAKLSAgLyogRklYTUU6IEdpdmUgInN0YXRlIiBhIG5h bWUgdW50aWwgd2Ugc3RhcnQgdXNpbmcgcmVnaXN0ZXIgZ3JvdXBzLiAgKi8K LSAgInN0YXRlIiwKLSAgImZzciIsCi0gICJmcHJzIiwKLSAgInkiLAorICBT UEFSQ19DT1JFX1JFR0lTVEVSUywKKyAgU1BBUkM2NF9GUFVfUkVHSVNURVJT LAorICBTUEFSQzY0X0NQMF9SRUdJU1RFUlMKIH07CiAKIC8qIFRvdGFsIG51 bWJlciBvZiByZWdpc3RlcnMuICAqLwpAQCAtMjczLDI4ICsyNzQsNTcgQEAg c3RhdGljIGNvbnN0IGNoYXIgKnNwYXJjNjRfcHNldWRvX3JlZ2lzdAogI2Rl ZmluZSBTUEFSQzY0X05VTV9QU0VVRE9fUkVHUyBBUlJBWV9TSVpFIChzcGFy YzY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lcykKIAogLyogUmV0dXJuIHRoZSBu YW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4gICovCitzdGF0aWMgY29uc3QgY2hh ciAqCitzcGFyYzY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKK3sKKyAgcmVnbnVtIC09IGdk YmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpOworCisgIGlmIChyZWdudW0gPCBT UEFSQzY0X05VTV9QU0VVRE9fUkVHUykKKyAgICByZXR1cm4gc3BhcmM2NF9w c2V1ZG9fcmVnaXN0ZXJfbmFtZXNbcmVnbnVtXTsKKworICBpbnRlcm5hbF9l cnJvciAoX19GSUxFX18sIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAg Xygic3BhcmM2NF9wc2V1ZG9fcmVnaXN0ZXJfbmFtZTogYmFkIHJlZ2lzdGVy IG51bWJlciAlZCIpLAorICAgICAgICAgICAgICAgICAgcmVnbnVtKTsKK30K IAogc3RhdGljIGNvbnN0IGNoYXIgKgogc3BhcmM2NF9yZWdpc3Rlcl9uYW1l IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKIHsKLSAg aWYgKHJlZ251bSA+PSAwICYmIHJlZ251bSA8IFNQQVJDNjRfTlVNX1JFR1Mp CisgIGlmIChyZWdudW0gPj0gMCAmJiByZWdudW0gPCBnZGJhcmNoX251bV9y ZWdzIChnZGJhcmNoKSkKICAgICByZXR1cm4gc3BhcmM2NF9yZWdpc3Rlcl9u YW1lc1tyZWdudW1dOwogCi0gIGlmIChyZWdudW0gPj0gU1BBUkM2NF9OVU1f UkVHUwotICAgICAgJiYgcmVnbnVtIDwgU1BBUkM2NF9OVU1fUkVHUyArIFNQ QVJDNjRfTlVNX1BTRVVET19SRUdTKQotICAgIHJldHVybiBzcGFyYzY0X3Bz ZXVkb19yZWdpc3Rlcl9uYW1lc1tyZWdudW0gLSBTUEFSQzY0X05VTV9SRUdT XTsKLQotICByZXR1cm4gTlVMTDsKKyAgcmV0dXJuIHNwYXJjNjRfcHNldWRv X3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIHJlZ251bSk7CiB9CiAKIC8qIFJl dHVybiB0aGUgR0RCIHR5cGUgb2JqZWN0IGZvciB0aGUgInN0YW5kYXJkIiBk YXRhIHR5cGUgb2YgZGF0YSBpbgogICAgcmVnaXN0ZXIgUkVHTlVNLiAgKi8K K3N0YXRpYyBzdHJ1Y3QgdHlwZSAqCitzcGFyYzY0X3BzZXVkb19yZWdpc3Rl cl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkK K3sKKyAgcmVnbnVtIC09IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpOwor CisgIGlmIChyZWdudW0gPT0gU1BBUkM2NF9DV1BfUkVHTlVNKQorICAgIHJl dHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDY0Owor ICBpZiAocmVnbnVtID09IFNQQVJDNjRfUFNUQVRFX1JFR05VTSkKKyAgICBy ZXR1cm4gc3BhcmM2NF9wc3RhdGVfdHlwZSAoZ2RiYXJjaCk7CisgIGlmIChy ZWdudW0gPT0gU1BBUkM2NF9BU0lfUkVHTlVNKQorICAgIHJldHVybiBidWls dGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDY0OworICBpZiAocmVn bnVtID09IFNQQVJDNjRfQ0NSX1JFR05VTSkKKyAgICByZXR1cm4gYnVpbHRp bl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsKKyAgaWYgKHJlZ251 bSA+PSBTUEFSQzY0X0QwX1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9E NjJfUkVHTlVNKQorICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gp LT5idWlsdGluX2RvdWJsZTsKKyAgaWYgKHJlZ251bSA+PSBTUEFSQzY0X1Ew X1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9RNjBfUkVHTlVNKQorICAg IHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2xvbmdf ZG91YmxlOworCisgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5F X18sCisgICAgICAgICAgICAgICAgICBfKCJzcGFyYzY0X3BzZXVkb19yZWdp c3Rlcl90eXBlOiBiYWQgcmVnaXN0ZXIgbnVtYmVyICVkIiksCisgICAgICAg ICAgICAgICAgICByZWdudW0pOworfQogCiBzdGF0aWMgc3RydWN0IHR5cGUg Kgogc3BhcmM2NF9yZWdpc3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgaW50IHJlZ251bSkKIHsKICAgLyogUmF3IHJlZ2lzdGVycy4gICov Ci0KICAgaWYgKHJlZ251bSA9PSBTUEFSQ19TUF9SRUdOVU0gfHwgcmVnbnVt ID09IFNQQVJDX0ZQX1JFR05VTSkKICAgICByZXR1cm4gYnVpbHRpbl90eXBl IChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKICAgaWYgKHJlZ251bSA+ PSBTUEFSQ19HMF9SRUdOVU0gJiYgcmVnbnVtIDw9IFNQQVJDX0k3X1JFR05V TSkKQEAgLTMxOSwxOSArMzQ5LDggQEAgc3BhcmM2NF9yZWdpc3Rlcl90eXBl IChzdHJ1Y3QgZ2RiYXJjaCAqZwogICAgIHJldHVybiBidWlsdGluX3R5cGUg KGdkYmFyY2gpLT5idWlsdGluX2ludDY0OwogCiAgIC8qIFBzZXVkbyByZWdp c3RlcnMuICAqLwotCi0gIGlmIChyZWdudW0gPT0gU1BBUkM2NF9DV1BfUkVH TlVNKQotICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWls dGluX2ludDY0OwotICBpZiAocmVnbnVtID09IFNQQVJDNjRfUFNUQVRFX1JF R05VTSkKLSAgICByZXR1cm4gc3BhcmM2NF9wc3RhdGVfdHlwZSAoZ2RiYXJj aCk7Ci0gIGlmIChyZWdudW0gPT0gU1BBUkM2NF9BU0lfUkVHTlVNKQotICAg IHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDY0 OwotICBpZiAocmVnbnVtID09IFNQQVJDNjRfQ0NSX1JFR05VTSkKLSAgICBy ZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsK LSAgaWYgKHJlZ251bSA+PSBTUEFSQzY0X0QwX1JFR05VTSAmJiByZWdudW0g PD0gU1BBUkM2NF9ENjJfUkVHTlVNKQotICAgIHJldHVybiBidWlsdGluX3R5 cGUgKGdkYmFyY2gpLT5idWlsdGluX2RvdWJsZTsKLSAgaWYgKHJlZ251bSA+ PSBTUEFSQzY0X1EwX1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9RNjBf UkVHTlVNKQotICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5i dWlsdGluX2xvbmdfZG91YmxlOworICBpZiAocmVnbnVtID49IGdkYmFyY2hf bnVtX3JlZ3MgKGdkYmFyY2gpKQorICAgIHJldHVybiBzcGFyYzY0X3BzZXVk b19yZWdpc3Rlcl90eXBlIChnZGJhcmNoLCByZWdudW0pOwogCiAgIGludGVy bmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgcmVn bnVtIikpOwogfQpAQCAtMzQ0LDcgKzM2Myw3IEBAIHNwYXJjNjRfcHNldWRv X3JlZ2lzdGVyX3JlYWQgKHN0cnVjdCBnZGIKICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwog ICBlbnVtIHJlZ2lzdGVyX3N0YXR1cyBzdGF0dXM7CiAKLSAgZ2RiX2Fzc2Vy dCAocmVnbnVtID49IFNQQVJDNjRfTlVNX1JFR1MpOworICByZWdudW0gLT0g Z2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCk7CiAKICAgaWYgKHJlZ251bSA+ PSBTUEFSQzY0X0QwX1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9EMzBf UkVHTlVNKQogICAgIHsKQEAgLTQyMSw3ICs0NDAsOCBAQCBzcGFyYzY0X3Bz ZXVkb19yZWdpc3Rlcl93cml0ZSAoc3RydWN0IGdkCiAJCQkgICAgICAgaW50 IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUgKmJ1ZikKIHsKICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFy Y2gpOwotICBnZGJfYXNzZXJ0IChyZWdudW0gPj0gU1BBUkM2NF9OVU1fUkVH Uyk7CisKKyAgcmVnbnVtIC09IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gp OwogCiAgIGlmIChyZWdudW0gPj0gU1BBUkM2NF9EMF9SRUdOVU0gJiYgcmVn bnVtIDw9IFNQQVJDNjRfRDMwX1JFR05VTSkKICAgICB7CkBAIC02MzgsNiAr NjU4LDcgQEAgc3RhdGljIHZvaWQKIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdf ZmllbGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwKIAkJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYnVmLCBp bnQgZWxlbWVudCwgaW50IGJpdHBvcykKIHsKKyAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICBp bnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogCiAgIGdkYl9hc3NlcnQg KGVsZW1lbnQgPCAxNik7CkBAIC02NTIsMTQgKzY3MywxNSBAQCBzcGFyYzY0 X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlCiAJICBnZGJfYXNz ZXJ0IChiaXRwb3MgPT0gMCk7CiAJICBnZGJfYXNzZXJ0ICgoZWxlbWVudCAl IDIpID09IDApOwogCi0JICByZWdudW0gPSBTUEFSQzY0X1EwX1JFR05VTSAr IGVsZW1lbnQgLyAyOworCSAgcmVnbnVtID0gZ2RiYXJjaF9udW1fcmVncyAo Z2RiYXJjaCkgKyBTUEFSQzY0X1EwX1JFR05VTSArIGVsZW1lbnQgLyAyOwog CSAgcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwgcmVnbnVtLCB2 YWxidWYpOwogCX0KICAgICAgIGVsc2UgaWYgKGxlbiA9PSA4KQogCXsKIAkg IGdkYl9hc3NlcnQgKGJpdHBvcyA9PSAwIHx8IGJpdHBvcyA9PSA2NCk7CiAK LQkgIHJlZ251bSA9IFNQQVJDNjRfRDBfUkVHTlVNICsgZWxlbWVudCArIGJp dHBvcyAvIDY0OworCSAgcmVnbnVtID0gZ2RiYXJjaF9udW1fcmVncyAoZ2Ri YXJjaCkgKyBTUEFSQzY0X0QwX1JFR05VTQorICAgICAgICAgICAgICAgICAg ICsgZWxlbWVudCArIGJpdHBvcyAvIDY0OwogCSAgcmVnY2FjaGVfY29va2Vk X3dyaXRlIChyZWdjYWNoZSwgcmVnbnVtLCB2YWxidWYgKyAoYml0cG9zIC8g OCkpOwogCX0KICAgICAgIGVsc2UKQEAgLTcxMiw2ICs3MzQsOCBAQCBzdGF0 aWMgdm9pZAogc3BhcmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAoc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCiAJ CQkJIGdkYl9ieXRlICp2YWxidWYsIGludCBiaXRwb3MpCiB7CisgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2Nh Y2hlKTsKKwogICBpZiAoc3BhcmM2NF9mbG9hdGluZ19wICh0eXBlKSkKICAg ICB7CiAgICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwpAQCAt NzIxLDE0ICs3NDUsMTUgQEAgc3BhcmM2NF9leHRyYWN0X2Zsb2F0aW5nX2Zp ZWxkcyAoc3RydWN0CiAJewogCSAgZ2RiX2Fzc2VydCAoYml0cG9zID09IDAg fHwgYml0cG9zID09IDEyOCk7CiAKLQkgIHJlZ251bSA9IFNQQVJDNjRfUTBf UkVHTlVNICsgYml0cG9zIC8gMTI4OworCSAgcmVnbnVtID0gZ2RiYXJjaF9u dW1fcmVncyAoZ2RiYXJjaCkgKyBTUEFSQzY0X1EwX1JFR05VTQorICAgICAg ICAgICAgICAgICAgICsgYml0cG9zIC8gMTI4OwogCSAgcmVnY2FjaGVfY29v a2VkX3JlYWQgKHJlZ2NhY2hlLCByZWdudW0sIHZhbGJ1ZiArIChiaXRwb3Mg LyA4KSk7CiAJfQogICAgICAgZWxzZSBpZiAobGVuID09IDgpCiAJewogCSAg Z2RiX2Fzc2VydCAoYml0cG9zICUgNjQgPT0gMCAmJiBiaXRwb3MgPj0gMCAm JiBiaXRwb3MgPCAyNTYpOwogCi0JICByZWdudW0gPSBTUEFSQzY0X0QwX1JF R05VTSArIGJpdHBvcyAvIDY0OworCSAgcmVnbnVtID0gZ2RiYXJjaF9udW1f cmVncyAoZ2RiYXJjaCkgKyBTUEFSQzY0X0QwX1JFR05VTSArIGJpdHBvcyAv IDY0OwogCSAgcmVnY2FjaGVfY29va2VkX3JlYWQgKHJlZ2NhY2hlLCByZWdu dW0sIHZhbGJ1ZiArIChiaXRwb3MgLyA4KSk7CiAJfQogICAgICAgZWxzZQpA QCAtOTExLDEzICs5MzYsMTMgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVudHMg KHN0cnVjdCByZWdjYWNoZQogCSAgLyogRmxvYXQgQ29tcGxleCBvciBkb3Vi bGUgQ29tcGxleCBhcmd1bWVudHMuICAqLwogCSAgaWYgKGVsZW1lbnQgPCAx NikKIAkgICAgewotCSAgICAgIHJlZ251bSA9IFNQQVJDNjRfRDBfUkVHTlVN ICsgZWxlbWVudDsKKwkgICAgICByZWdudW0gPSBnZGJhcmNoX251bV9yZWdz IChnZGJhcmNoKSArIFNQQVJDNjRfRDBfUkVHTlVNICsgZWxlbWVudDsKIAog CSAgICAgIGlmIChsZW4gPT0gMTYpCiAJCXsKLQkJICBpZiAocmVnbnVtIDwg U1BBUkM2NF9EMzBfUkVHTlVNKQorCQkgIGlmIChyZWdudW0gPCBnZGJhcmNo X251bV9yZWdzIChnZGJhcmNoKSArIFNQQVJDNjRfRDMwX1JFR05VTSkKIAkJ ICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZSAocmVnY2FjaGUsIHJlZ251bSAr IDEsIHZhbGJ1ZiArIDgpOwotCQkgIGlmIChyZWdudW0gPCBTUEFSQzY0X0Qx MF9SRUdOVU0pCisJCSAgaWYgKHJlZ251bSA8IGdkYmFyY2hfbnVtX3JlZ3Mg KGdkYmFyY2gpICsgU1BBUkM2NF9EMTBfUkVHTlVNKQogCQkgICAgcmVnY2Fj aGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwKIAkJCQkJICAgU1BBUkNfTzBf UkVHTlVNICsgZWxlbWVudCArIDEsCiAJCQkJCSAgIHZhbGJ1ZiArIDgpOwpA QCAtOTMyLDEyICs5NTcsMTQgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVudHMg KHN0cnVjdCByZWdjYWNoZQogCSAgICAgIGlmIChlbGVtZW50ICUgMikKIAkJ ZWxlbWVudCsrOwogCSAgICAgIGlmIChlbGVtZW50IDwgMTYpCi0JCXJlZ251 bSA9IFNQQVJDNjRfUTBfUkVHTlVNICsgZWxlbWVudCAvIDI7CisJCXJlZ251 bSA9IGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgU1BBUkM2NF9RMF9S RUdOVU0KKyAgICAgICAgICAgICAgICAgICAgICAgICArIGVsZW1lbnQgLyAy OwogCSAgICB9CiAJICBlbHNlIGlmIChsZW4gPT0gOCkKIAkgICAgewogCSAg ICAgIGlmIChlbGVtZW50IDwgMTYpCi0JCXJlZ251bSA9IFNQQVJDNjRfRDBf UkVHTlVNICsgZWxlbWVudDsKKwkJcmVnbnVtID0gZ2RiYXJjaF9udW1fcmVn cyAoZ2RiYXJjaCkgKyBTUEFSQzY0X0QwX1JFR05VTQorICAgICAgICAgICAg ICAgICAgICAgICAgICsgZWxlbWVudDsKIAkgICAgfQogCSAgZWxzZSBpZiAo bGVuID09IDQpCiAJICAgIHsKQEAgLTk1Miw3ICs5NzksOCBAQCBzcGFyYzY0 X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAJICAgICAgdmFs YnVmID0gYnVmOwogCSAgICAgIGxlbiA9IDg7CiAJICAgICAgaWYgKGVsZW1l bnQgPCAxNikKLQkJcmVnbnVtID0gU1BBUkM2NF9EMF9SRUdOVU0gKyBlbGVt ZW50OworCQlyZWdudW0gPSBnZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKSAr IFNQQVJDNjRfRDBfUkVHTlVNCisgICAgICAgICAgICAgICAgICAgICAgICAg KyBlbGVtZW50OwogCSAgICB9CiAJfQogICAgICAgZWxzZQpAQCAtOTY5LDE5 ICs5OTcsMjQgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCBy ZWdjYWNoZQogCiAJICAvKiBJZiB3ZSdyZSBzdG9yaW5nIHRoZSB2YWx1ZSBp biBhIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyLAogICAgICAgICAgICAgIGFs c28gc3RvcmUgaXQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgJTAgcmVnaXN0ZXIo cykuICAqLwotCSAgaWYgKHJlZ251bSA+PSBTUEFSQzY0X0QwX1JFR05VTSAm JiByZWdudW0gPD0gU1BBUkM2NF9EMTBfUkVHTlVNKQotCSAgICB7Ci0JICAg ICAgZ2RiX2Fzc2VydCAoZWxlbWVudCA8IDYpOwotCSAgICAgIHJlZ251bSA9 IFNQQVJDX08wX1JFR05VTSArIGVsZW1lbnQ7Ci0JICAgICAgcmVnY2FjaGVf Y29va2VkX3dyaXRlIChyZWdjYWNoZSwgcmVnbnVtLCB2YWxidWYpOwotCSAg ICB9Ci0JICBlbHNlIGlmIChyZWdudW0gPj0gU1BBUkM2NF9RMF9SRUdOVU0g JiYgcmVnbnVtIDw9IFNQQVJDNjRfUThfUkVHTlVNKQotCSAgICB7Ci0JICAg ICAgZ2RiX2Fzc2VydCAoZWxlbWVudCA8IDUpOwotCSAgICAgIHJlZ251bSA9 IFNQQVJDX08wX1JFR05VTSArIGVsZW1lbnQ7Ci0JICAgICAgcmVnY2FjaGVf Y29va2VkX3dyaXRlIChyZWdjYWNoZSwgcmVnbnVtLCB2YWxidWYpOwotCSAg ICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZSAocmVnY2FjaGUsIHJlZ251bSAr IDEsIHZhbGJ1ZiArIDgpOwotCSAgICB9CisJICBpZiAocmVnbnVtID49IGdk YmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICByZWdudW0gLT0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJj aCk7CisKKyAgICAgICAgICAgICAgaWYgKHJlZ251bSA+PSBTUEFSQzY0X0Qw X1JFR05VTSAmJiByZWdudW0gPD0gU1BBUkM2NF9EMTBfUkVHTlVNKQorCSAg ICAgICAgeworCSAgICAgICAgICBnZGJfYXNzZXJ0IChlbGVtZW50IDwgNik7 CisJICAgICAgICAgIHJlZ251bSA9IFNQQVJDX08wX1JFR05VTSArIGVsZW1l bnQ7CisJICAgICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZSAocmVnY2Fj aGUsIHJlZ251bSwgdmFsYnVmKTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgIGVsc2UgaWYgKHJlZ251bSA+PSBTUEFSQzY0X1EwX1JFR05V TSAmJiByZWdudW0gPD0gU1BBUkM2NF9ROF9SRUdOVU0pCisgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgZ2RiX2Fzc2VydCAoZWxlbWVu dCA8IDUpOworICAgICAgICAgICAgICAgICAgcmVnbnVtID0gU1BBUkNfTzBf UkVHTlVNICsgZWxlbWVudDsKKyAgICAgICAgICAgICAgICAgIHJlZ2NhY2hl X2Nvb2tlZF93cml0ZSAocmVnY2FjaGUsIHJlZ251bSwgdmFsYnVmKTsKKyAg ICAgICAgICAgICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZSAocmVnY2Fj aGUsIHJlZ251bSArIDEsIHZhbGJ1ZiArIDgpOworCSAgICAgICAgfQorICAg ICAgICAgICAgfQogCX0KIAogICAgICAgLyogQWx3YXlzIHN0b3JlIHRoZSBh cmd1bWVudCBpbiBtZW1vcnkuICAqLwo= --------------069602EF643ED0CC7925A7CD--