From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24713 invoked by alias); 3 Jun 2019 09:37:08 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 24705 invoked by uid 89); 3 Jun 2019 09:37:08 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-HELO:sk:mail-ed, sk:BUILT_I, sk:DEFINE_, sk:built_i X-HELO: mail-ed1-f50.google.com Received: from mail-ed1-f50.google.com (HELO mail-ed1-f50.google.com) (209.85.208.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 03 Jun 2019 09:37:05 +0000 Received: by mail-ed1-f50.google.com with SMTP id w33so25983479edb.10 for ; Mon, 03 Jun 2019 02:37:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wP7a6ZTSD3mDx72PflnqvvT+r0ItwFx//M1HhdYHpbA=; b=XnFRjaaAg37x2IvfhDdUXD4QTH8U+GIszobkl1fo8i0OB71fDPPoUW7g8haGQobXSY IuhyY2zwCI3pebo6Hwzr+U5pasyX/h9Gy8srLZv2khAILZmZ4n/0BQ5JV3Fz3FWvb5Dz xNLTG8wz+zLcakY0z5K9uPlHYJY3wtL7hTvFeRzOM7HQHOwUKJY59XKzx60tUWsbcYEX B50VIGVuKOFKwnoVqUKs0tgQbznH1oxzGoYG5XVYsHJXQoCxv3fRaB8kLJ4ukI8kuwSb G5ZeZSGYVXpHt2JN3mAlk2Bd2IUdN3c8R8ynDyn8sk0A+CqIF4B9WAizmK56sD/pzuxM DezQ== MIME-Version: 1.0 References: <20190530213839.GF31586@gate.crashing.org> <97e48c33-93ab-8776-5ae5-bd1ce026d0a0@acm.org> In-Reply-To: From: Tejas Joshi Date: Mon, 03 Jun 2019 09:37:00 -0000 Message-ID: Subject: Re: About GSOC. To: gcc@gcc.gnu.org Cc: Martin Jambor , hubicka@ucw.cz Content-Type: multipart/mixed; boundary="0000000000004f5cdc058a681b32" X-IsSubscribed: yes X-SW-Source: 2019-06/txt/msg00006.txt.bz2 --0000000000004f5cdc058a681b32 Content-Type: text/plain; charset="UTF-8" Content-length: 2437 Hello. I have already sent a patch for roundeven implementation but I do not know how do I commit my changes to GCC. Am I supposed to create a branch or anything etc? Also I have been trying to do folding for constant arguments and inspecting for only func (func (x)) -> func (x) right now. I made some changes to make this work including like : +(for fns (TRUNC_ALL FLOOR_ALL CEIL_ALL ROUND_ALL ROUNDEVEN_ALL NEARBYINT_ALL RINT_ALL) Also, BUILT_IN_ROUNDEVEN instead of ROUNDEVEN_ALL is not working here. Other changes regarding to this after inspecting round are included in this patch, but this seems not working and I am surely missing something. Do I need to include roundeven like round: DEFINE_INT_AND_FLOAT_ROUND_FN (ROUND) but this would require defining IROUNDEVEN in builtins.def but it is not supposed to? Thanks, --Tejas On Fri, 31 May 2019 at 19:00, Eric Gallager wrote: > > On 5/31/19, Nathan Sidwell wrote: > > On 5/30/19 5:38 PM, Segher Boessenkool wrote: > >> On Thu, May 30, 2019 at 07:08:45PM +0200, Martin Jambor wrote: > >>> Interesting, I was also puzzled for a moment. But notice that: > >>> > >>> int main () > >>> { > >>> _Float128 x = 18446744073709551617.5f128; > >>> _Float128 y = __builtin_roundf128 (x); > >>> } > >>> > >>> behaves as expected... the difference is of course the suffix pegged to > >>> the literal constant (see > >>> https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Floating-Types.html). > >>> > >>> I would also expect GCC to use a larger type if a constant does not fit > >>> into a double, but apparently that does not happen. I would have to > >>> check but it is probably the right behavior according to the standard. > >> > >> 6.4.4.2/4: "An unsuffixed floating constant has type double." I don't > >> think your suggestion would be okay? > > > > Not only that, but > > > > 1) there isn't a literal suffix to mean 'double', so one couldn't > > override that extended type. > > There's not a standard one, but there is 'D' or 'd' as a GNU > extension. The fact that it's nonstandard, though, is what causes some > projects to ignore -Wunsuffixed-float-constants: > https://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00017.html > > > 2) how do you define 'doesn't fit'? decimal 0.1 has a recurring binary > > representation. Should that become the longest floating point type? > > > > nathan > > > > -- > > Nathan Sidwell > > --0000000000004f5cdc058a681b32 Content-Type: text/x-patch; charset="US-ASCII"; name="roundeven.patch" Content-Disposition: attachment; filename="roundeven.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwg6qh1i0 Content-length: 11566 ZGlmZiAtLWdpdCBhL2djYy9idWlsdGlucy5jIGIvZ2NjL2J1aWx0aW5zLmMK aW5kZXggMjVlMDFlNDA5MmIuLjBiMmQ2YmY4MmY5IDEwMDY0NAotLS0gYS9n Y2MvYnVpbHRpbnMuYworKysgYi9nY2MvYnVpbHRpbnMuYwpAQCAtMjA2Nyw2 ICsyMDY3LDcgQEAgbWF0aGZuX2J1aWx0X2luXzIgKHRyZWUgdHlwZSwgY29t YmluZWRfZm4gZm4pCiAgICAgQ0FTRV9NQVRIRk4gKFJFTVFVTykKICAgICBD QVNFX01BVEhGTl9GTE9BVE4gKFJJTlQpCiAgICAgQ0FTRV9NQVRIRk5fRkxP QVROIChST1VORCkKKyAgICBDQVNFX01BVEhGTiAoUk9VTkRFVkVOKQogICAg IENBU0VfTUFUSEZOIChTQ0FMQikKICAgICBDQVNFX01BVEhGTiAoU0NBTEJM TikKICAgICBDQVNFX01BVEhGTiAoU0NBTEJOKQpkaWZmIC0tZ2l0IGEvZ2Nj L2J1aWx0aW5zLmRlZiBiL2djYy9idWlsdGlucy5kZWYKaW5kZXggZWY4OTcy OWZkMGMuLmYyODRhM2VhZTNiIDEwMDY0NAotLS0gYS9nY2MvYnVpbHRpbnMu ZGVmCisrKyBiL2djYy9idWlsdGlucy5kZWYKQEAgLTU0MiwxMiArNTQyLDE4 IEBAIERFRl9DOTlfQlVJTFRJTiAgICAgICAgKEJVSUxUX0lOX1JJTlRMLCAi cmludGwiLCBCVF9GTl9MT05HRE9VQkxFX0xPTkdET1VCTEUsIEFUCiAjZGVm aW5lIFJJTlRfVFlQRShGKSBCVF9GTl8jI0YjI18jI0YKIERFRl9FWFRfTElC X0ZMT0FUTl9OWF9CVUlMVElOUyAoQlVJTFRfSU5fUklOVCwgInJpbnQiLCBS SU5UX1RZUEUsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCiAjdW5k ZWYgUklOVF9UWVBFCitERUZfRVhUX0xJQl9CVUlMVElOICAgIChCVUlMVF9J Tl9ST1VOREVWRU4sICJyb3VuZGV2ZW4iLCBCVF9GTl9ET1VCTEVfRE9VQkxF LCBBVFRSX0NPTlNUX05PVEhST1dfTEVBRl9MSVNUKQorREVGX0VYVF9MSUJf QlVJTFRJTiAgICAoQlVJTFRfSU5fUk9VTkRFVkVORiwgInJvdW5kZXZlbmYi LCBCVF9GTl9GTE9BVF9GTE9BVCwgQVRUUl9DT05TVF9OT1RIUk9XX0xFQUZf TElTVCkKK0RFRl9FWFRfTElCX0JVSUxUSU4gICAgKEJVSUxUX0lOX1JPVU5E RVZFTkwsICJyb3VuZGV2ZW5sIiwgQlRfRk5fTE9OR0RPVUJMRV9MT05HRE9V QkxFLCBBVFRSX0NPTlNUX05PVEhST1dfTEVBRl9MSVNUKQogREVGX0M5OV9C VUlMVElOICAgICAgICAoQlVJTFRfSU5fUk9VTkQsICJyb3VuZCIsIEJUX0ZO X0RPVUJMRV9ET1VCTEUsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1Qp CiBERUZfQzk5X0JVSUxUSU4gICAgICAgIChCVUlMVF9JTl9ST1VOREYsICJy b3VuZGYiLCBCVF9GTl9GTE9BVF9GTE9BVCwgQVRUUl9DT05TVF9OT1RIUk9X X0xFQUZfTElTVCkKIERFRl9DOTlfQlVJTFRJTiAgICAgICAgKEJVSUxUX0lO X1JPVU5ETCwgInJvdW5kbCIsIEJUX0ZOX0xPTkdET1VCTEVfTE9OR0RPVUJM RSwgQVRUUl9DT05TVF9OT1RIUk9XX0xFQUZfTElTVCkKICNkZWZpbmUgUk9V TkRfVFlQRShGKSBCVF9GTl8jI0YjI18jI0YKIERFRl9FWFRfTElCX0ZMT0FU Tl9OWF9CVUlMVElOUyAoQlVJTFRfSU5fUk9VTkQsICJyb3VuZCIsIFJPVU5E X1RZUEUsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCiAjdW5kZWYg Uk9VTkRfVFlQRQorI2RlZmluZSBST1VOREVWRU5fVFlQRShGKSBCVF9GTl8j I0YjI18jI0YKK0RFRl9FWFRfTElCX0ZMT0FUTl9OWF9CVUlMVElOUyAoQlVJ TFRfSU5fUk9VTkRFVkVOLCAicm91bmRldmVuIiwgUk9VTkRFVkVOX1RZUEUs IEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCisjdW5kZWYgUk9VTkRF VkVOX1RZUEUKIERFRl9FWFRfTElCX0JVSUxUSU4gICAgKEJVSUxUX0lOX1ND QUxCLCAic2NhbGIiLCBCVF9GTl9ET1VCTEVfRE9VQkxFX0RPVUJMRSwgQVRU Ul9NQVRIRk5fRlBST1VORElOR19FUlJOTykKIERFRl9FWFRfTElCX0JVSUxU SU4gICAgKEJVSUxUX0lOX1NDQUxCRiwgInNjYWxiZiIsIEJUX0ZOX0ZMT0FU X0ZMT0FUX0ZMT0FULCBBVFRSX01BVEhGTl9GUFJPVU5ESU5HX0VSUk5PKQog REVGX0VYVF9MSUJfQlVJTFRJTiAgICAoQlVJTFRfSU5fU0NBTEJMLCAic2Nh bGJsIiwgQlRfRk5fTE9OR0RPVUJMRV9MT05HRE9VQkxFX0xPTkdET1VCTEUs IEFUVFJfTUFUSEZOX0ZQUk9VTkRJTkdfRVJSTk8pCmRpZmYgLS1naXQgYS9n Y2MvZm9sZC1jb25zdC1jYWxsLmMgYi9nY2MvZm9sZC1jb25zdC1jYWxsLmMK aW5kZXggMDZhNDIwNjAxYzAuLjU0MzE1ZDA1N2EyIDEwMDY0NAotLS0gYS9n Y2MvZm9sZC1jb25zdC1jYWxsLmMKKysrIGIvZ2NjL2ZvbGQtY29uc3QtY2Fs bC5jCkBAIC03OTIsNiArNzkyLDE1IEBAIGZvbGRfY29uc3RfY2FsbF9zcyAo cmVhbF92YWx1ZSAqcmVzdWx0LCBjb21iaW5lZF9mbiBmbiwKIAl9CiAgICAg ICByZXR1cm4gZmFsc2U7CiAKKyAgICBDQVNFX0NGTl9ST1VOREVWRU46Cisg ICAgQ0FTRV9DRk5fUk9VTkRFVkVOX0ZOOgorICAgICAgaWYgKCFSRUFMX1ZB TFVFX0lTTkFOICgqYXJnKSB8fCAhZmxhZ19lcnJub19tYXRoKQorICB7Cisg ICAgcmVhbF9yb3VuZGV2ZW4gKHJlc3VsdCwgZm9ybWF0LCBhcmcpOworICAg IHJldHVybiB0cnVlOworICB9CisgICAgICByZXR1cm4gZmFsc2U7CisKICAg ICBDQVNFX0NGTl9MT0dCOgogICAgICAgcmV0dXJuIGZvbGRfY29uc3RfbG9n YiAocmVzdWx0LCBhcmcsIGZvcm1hdCk7CiAKQEAgLTg1NCw2ICs4NjMsMTAg QEAgZm9sZF9jb25zdF9jYWxsX3NzICh3aWRlX2ludCAqcmVzdWx0LCBjb21i aW5lZF9mbiBmbiwKICAgICAgIHJldHVybiBmb2xkX2NvbnN0X2NvbnZlcnNp b24gKHJlc3VsdCwgcmVhbF9yb3VuZCwgYXJnLAogCQkJCSAgICBwcmVjaXNp b24sIGZvcm1hdCk7CiAKKyAgICBDQVNFX0NGTl9ST1VOREVWRU46CisgICAg Q0FTRV9DRk5fUk9VTkRFVkVOX0ZOOgorICAgICAgcmV0dXJuIGZvbGRfY29u c3RfY29udmVyc2lvbiAocmVzdWx0LCByZWFsX3JvdW5kZXZlbiwgYXJnLCBw cmVjaXNpb24sIGZvcm1hdCk7CisKICAgICBDQVNFX0NGTl9JUklOVDoKICAg ICBDQVNFX0NGTl9MUklOVDoKICAgICBDQVNFX0NGTl9MTFJJTlQ6CmRpZmYg LS1naXQgYS9nY2MvZm9sZC1jb25zdC5jIGIvZ2NjL2ZvbGQtY29uc3QuYwpp bmRleCA1OWNlZGVhZmQ3MS4uYWI5NmYxOTdkNWYgMTAwNjQ0Ci0tLSBhL2dj Yy9mb2xkLWNvbnN0LmMKKysrIGIvZ2NjL2ZvbGQtY29uc3QuYwpAQCAtMzI5 LDYgKzMyOSw4IEBAIG5lZ2F0ZV9tYXRoZm5fcCAoY29tYmluZWRfZm4gZm4p CiAgICAgQ0FTRV9DRk5fTExST1VORDoKICAgICBDQVNFX0NGTl9MUk9VTkQ6 CiAgICAgQ0FTRV9DRk5fUk9VTkQ6CisgICAgQ0FTRV9DRk5fUk9VTkRFVkVO OgorICAgIENBU0VfQ0ZOX1JPVU5ERVZFTl9GTjoKICAgICBDQVNFX0NGTl9T SU46CiAgICAgQ0FTRV9DRk5fU0lOSDoKICAgICBDQVNFX0NGTl9UQU46CkBA IC0xMzA2MCw2ICsxMzA2Miw4IEBAIHRyZWVfY2FsbF9ub25uZWdhdGl2ZV93 YXJudl9wICh0cmVlIHR5cGUsIGNvbWJpbmVkX2ZuIGZuLCB0cmVlIGFyZzAs IHRyZWUgYXJnMSwKICAgICBDQVNFX0NGTl9SSU5UX0ZOOgogICAgIENBU0Vf Q0ZOX1JPVU5EOgogICAgIENBU0VfQ0ZOX1JPVU5EX0ZOOgorICAgIENBU0Vf Q0ZOX1JPVU5ERVZFTjoKKyAgICBDQVNFX0NGTl9ST1VOREVWRU5fRk46CiAg ICAgQ0FTRV9DRk5fU0NBTEI6CiAgICAgQ0FTRV9DRk5fU0NBTEJMTjoKICAg ICBDQVNFX0NGTl9TQ0FMQk46CkBAIC0xMzU4Myw2ICsxMzU4Nyw4IEBAIGlu dGVnZXJfdmFsdWVkX3JlYWxfY2FsbF9wIChjb21iaW5lZF9mbiBmbiwgdHJl ZSBhcmcwLCB0cmVlIGFyZzEsIGludCBkZXB0aCkKICAgICBDQVNFX0NGTl9S SU5UX0ZOOgogICAgIENBU0VfQ0ZOX1JPVU5EOgogICAgIENBU0VfQ0ZOX1JP VU5EX0ZOOgorICAgIENBU0VfQ0ZOX1JPVU5ERVZFTjoKKyAgICBDQVNFX0NG Tl9ST1VOREVWRU5fRk46CiAgICAgQ0FTRV9DRk5fVFJVTkM6CiAgICAgQ0FT RV9DRk5fVFJVTkNfRk46CiAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp dCBhL2djYy9pbnRlcm5hbC1mbi5kZWYgYi9nY2MvaW50ZXJuYWwtZm4uZGVm CmluZGV4IGNkYTMxNGUxMTIxLi5iODk5MTg4MTVmOSAxMDA2NDQKLS0tIGEv Z2NjL2ludGVybmFsLWZuLmRlZgorKysgYi9nY2MvaW50ZXJuYWwtZm4uZGVm CkBAIC0yMjQsNiArMjI0LDcgQEAgREVGX0lOVEVSTkFMX0ZMVF9GTE9BVE5f Rk4gKEZMT09SLCBFQ0ZfQ09OU1QsIGZsb29yLCB1bmFyeSkKIERFRl9JTlRF Uk5BTF9GTFRfRkxPQVROX0ZOIChORUFSQllJTlQsIEVDRl9DT05TVCwgbmVh cmJ5aW50LCB1bmFyeSkKIERFRl9JTlRFUk5BTF9GTFRfRkxPQVROX0ZOIChS SU5ULCBFQ0ZfQ09OU1QsIHJpbnQsIHVuYXJ5KQogREVGX0lOVEVSTkFMX0ZM VF9GTE9BVE5fRk4gKFJPVU5ELCBFQ0ZfQ09OU1QsIHJvdW5kLCB1bmFyeSkK K0RFRl9JTlRFUk5BTF9GTFRfRkxPQVROX0ZOIChST1VOREVWRU4sIEVDRl9D T05TVCwgcm91bmRldmVuLCB1bmFyeSkKIERFRl9JTlRFUk5BTF9GTFRfRkxP QVROX0ZOIChUUlVOQywgRUNGX0NPTlNULCBidHJ1bmMsIHVuYXJ5KQogCiAv KiBCaW5hcnkgbWF0aCBmdW5jdGlvbnMuICAqLwpkaWZmIC0tZ2l0IGEvZ2Nj L21hdGNoLnBkIGIvZ2NjL21hdGNoLnBkCmluZGV4IDdjYzIzNzRmZmViLi45 OGY0NzI5ZjQyZCAxMDA2NDQKLS0tIGEvZ2NjL21hdGNoLnBkCisrKyBiL2dj Yy9tYXRjaC5wZApAQCAtNDIyOSw3ICs0MjI5LDcgQEAgREVGSU5FX0lOVF9B TkRfRkxPQVRfUk9VTkRfRk4gKFJJTlQpCiAgKGFicyBAMCkpCiAKIC8qIHRy dW5jKHRydW5jKHgpKSAtPiB0cnVuYyh4KSwgZXRjLiAgKi8KLShmb3IgZm5z IChUUlVOQ19BTEwgRkxPT1JfQUxMIENFSUxfQUxMIFJPVU5EX0FMTCBORUFS QllJTlRfQUxMIFJJTlRfQUxMKQorKGZvciBmbnMgKFRSVU5DX0FMTCBGTE9P Ul9BTEwgQ0VJTF9BTEwgUk9VTkRfQUxMIFJPVU5ERVZFTl9BTEwgTkVBUkJZ SU5UX0FMTCBSSU5UX0FMTCkKICAoc2ltcGxpZnkKICAgKGZucyAoZm5zIEAw KSkKICAgKGZucyBAMCkpKQpkaWZmIC0tZ2l0IGEvZ2NjL29wdGFicy5kZWYg Yi9nY2Mvb3B0YWJzLmRlZgppbmRleCA1YTY3ZjVlZWQ1ZS4uZWI5ZTIyYWNk OGYgMTAwNjQ0Ci0tLSBhL2djYy9vcHRhYnMuZGVmCisrKyBiL2djYy9vcHRh YnMuZGVmCkBAIC0yNjcsNiArMjY3LDcgQEAgT1BUQUJfRCAoZm5tc19vcHRh YiwgImZubXMkYTQiKQogCiBPUFRBQl9EIChyaW50X29wdGFiLCAicmludCRh MiIpCiBPUFRBQl9EIChyb3VuZF9vcHRhYiwgInJvdW5kJGEyIikKK09QVEFC X0QgKHJvdW5kZXZlbl9vcHRhYiwgInJvdW5kZXZlbiRhMiIpCiBPUFRBQl9E IChmbG9vcl9vcHRhYiwgImZsb29yJGEyIikKIE9QVEFCX0QgKGNlaWxfb3B0 YWIsICJjZWlsJGEyIikKIE9QVEFCX0QgKGJ0cnVuY19vcHRhYiwgImJ0cnVu YyRhMiIpCmRpZmYgLS1naXQgYS9nY2MvcmVhbC5jIGIvZ2NjL3JlYWwuYwpp bmRleCBmODIyYWU4MmQ2MS4uMTljNzA0ZWMwZWMgMTAwNjQ0Ci0tLSBhL2dj Yy9yZWFsLmMKKysrIGIvZ2NjL3JlYWwuYwpAQCAtNTAxMCw2ICs1MDEwLDgx IEBAIHJlYWxfcm91bmQgKFJFQUxfVkFMVUVfVFlQRSAqciwgZm9ybWF0X2hl bHBlciBmbXQsCiAgICAgcmVhbF9jb252ZXJ0IChyLCBmbXQsIHIpOwogfQog CisvKiBSZXR1cm4gdHJ1ZSBpZiBpbnRlZ2VyIHBhcnQgb2YgUiBpcyBldmVu LCBlbHNlIHJldHVybiBmYWxzZS4gKi8KKworYm9vbAoraXNfZXZlbiAoUkVB TF9WQUxVRV9UWVBFICpyKQoreworICBpZiAoUkVBTF9FWFAgKHIpIDw9IDAp CisgICAgcmV0dXJuIGZhbHNlOworCisgIGVsc2UgaWYgKFJFQUxfRVhQIChy KSA8IFNJR05JRklDQU5EX0JJVFMpCisgIHsKKyAgICB1bnNpZ25lZCBpbnQg biA9IFNJR05JRklDQU5EX0JJVFMgLSBSRUFMX0VYUCAocik7CisgICAgaW50 IHcgPSBuIC8gSE9TVF9CSVRTX1BFUl9MT05HOworCisgICAgdW5zaWduZWQg bG9uZyBudW0gPSAoKHVuc2lnbmVkIGxvbmcpMSA8PCAobiAlIEhPU1RfQklU U19QRVJfTE9ORykpOworCisgICAgaWYgKChyLT5zaWdbd10gJiBudW0pID09 IDApCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7 Cit9CisKKy8qIFJldHVybiB0cnVlIGlmIFIgaXMgaGFsZndheSBiZXR3ZWVu IHR3byBpbnRlZ2VycywgZWxzZSByZXR1cm4gZmFsc2UuICovCisKK2Jvb2wK K2lzX2hhbGZ3YXlfYmVsb3cgKGNvbnN0IFJFQUxfVkFMVUVfVFlQRSAqcikK K3sKKyAgaWYgKFJFQUxfRVhQIChyKSA8IDApCisgICAgcmV0dXJuIGZhbHNl OworCisgIGlmIChSRUFMX0VYUCAocikgPT0gMCkKKyAgeworICAgIHVuc2ln bmVkIGxvbmcgdGVtcCA9ICgodW5zaWduZWQgbG9uZykxIDw8IDYzKTsKKwor ICAgIGlmICgoKHItPnNpZ1tTSUdTWi0xXSAmIHRlbXApICE9IDApICYmICgo ci0+c2lnW1NJR1NaLTFdICYgKHRlbXAtMSkpID09IDApKQorICAgICAgcmV0 dXJuIHRydWU7CisgICAgZWxzZQorICAgICAgcmV0dXJuIGZhbHNlOworICB9 CisKKyAgZWxzZSBpZiAoUkVBTF9FWFAgKHIpIDwgU0lHTklGSUNBTkRfQklU UykKKyAgeworICAgIHVuc2lnbmVkIGludCBuID0gU0lHTklGSUNBTkRfQklU UyAtIFJFQUxfRVhQIChyKTsKKyAgICBpbnQgaSwgdyA9IG4gLyBIT1NUX0JJ VFNfUEVSX0xPTkc7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgdzsgKytpKQor ICAgIHsKKyAgICAgIGlmIChyLT5zaWdbaV0gIT0gMCkKKyAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgIH0KKworICAgIHVuc2lnbmVkIGxvbmcgbnVtID0g KCh1bnNpZ25lZCBsb25nKTEgPDwgKChuIC0gMSkgJSBIT1NUX0JJVFNfUEVS X0xPTkcpKTsKKworICAgIGlmICgoKHItPnNpZ1t3XSAmIG51bSkgIT0gMCkg JiYgKChyLT5zaWdbd10gJiAobnVtLTEpKSA9PSAwKSkKKyAgICAgIHJldHVy biB0cnVlOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworLyogUm91bmQg WCB0byBuZWFyZXN0IGludGVnZXIsIHJvdW5kaW5nIGhhbGZ3YXkgY2FzZXMg dG93YXJkcyBldmVuLiAqLworCit2b2lkCityZWFsX3JvdW5kZXZlbiAoUkVB TF9WQUxVRV9UWVBFICpyLCBmb3JtYXRfaGVscGVyIGZtdCwKKwkJY29uc3Qg UkVBTF9WQUxVRV9UWVBFICp4KQoreworICBmcHJpbnRmIChzdGRlcnIsICJc biVzXG4iLCAiaW4gcm91bmRldmVuIik7CisgIGlmIChpc19oYWxmd2F5X2Jl bG93ICh4KSkKKyAgeworICAgIGRvX2FkZCAociwgeCwgJmRjb25zdGhhbGYs IHgtPnNpZ24pOworICAgIGlmICghaXNfZXZlbiAocikpCisgICAgICBkb19h ZGQgKHIsIHIsICZkY29uc3RtMSwgeC0+c2lnbik7CisgIH0KKyAgZWxzZQor ICAgIHJlYWxfcm91bmQgKHIsIGZtdCwgeCk7Cit9CisKIC8qIFNldCB0aGUg c2lnbiBvZiBSIHRvIHRoZSBzaWduIG9mIFguICAqLwogCiB2b2lkCmRpZmYg LS1naXQgYS9nY2MvcmVhbC5oIGIvZ2NjL3JlYWwuaAppbmRleCAwY2U0MjU2 NTcwOC4uZWJlNjZkMjM0YWYgMTAwNjQ0Ci0tLSBhL2djYy9yZWFsLmgKKysr IGIvZ2NjL3JlYWwuaApAQCAtNDEsMTEgKzQxLDE4IEBAIHN0cnVjdCBHVFko KCkpIHJlYWxfdmFsdWUgewogICAgICBzdXJlIHRoZXkncmUgcGFja2VkIHRv Z2V0aGVyLCBvdGhlcndpc2UgUkVBTF9WQUxVRV9UWVBFX1NJWkUgd2lsbAog ICAgICBiZSBtaXNjb21wdXRlZC4gICovCiAgIHVuc2lnbmVkIGludCAvKiBF TlVNX0JJVEZJRUxEIChyZWFsX3ZhbHVlX2NsYXNzKSAqLyBjbCA6IDI7Cisg IC8qIDEgaWYgbnVtYmVyIGlzIGRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgKi8K ICAgdW5zaWduZWQgaW50IGRlY2ltYWwgOiAxOworICAvKiAxIGlmIG51bWJl ciBpcyBuZWdhdGl2ZSAqLwogICB1bnNpZ25lZCBpbnQgc2lnbiA6IDE7Cisg IC8qIDEgaWYgbnVtYmVyIGlzIHNpZ25hbGxpbmcgKi8KICAgdW5zaWduZWQg aW50IHNpZ25hbGxpbmcgOiAxOworICAvKiAxIGlmIG51bWJlciBpcyBjYW5v bmljYWwKKyAgQWxsIGFyZSBnZW5lcmFsbHkgdXNlZCBmb3IgaGFuZGxpbmcg Y2FzZXMgaW4gcmVhbC5jICovCiAgIHVuc2lnbmVkIGludCBjYW5vbmljYWwg OiAxOworICAvKiB1bmJpYXNlZCBleHBvbmVudCBvZiB0aGUgbnVtYmVyICov CiAgIHVuc2lnbmVkIGludCB1ZXhwIDogRVhQX0JJVFM7CisgIC8qIHNpZ25p ZmljYW5kIG9mIHRoZSBudW1iZXIgKi8KICAgdW5zaWduZWQgbG9uZyBzaWdb U0lHU1pdOwogfTsKIApAQCAtNDk5LDYgKzUwNiw4IEBAIGV4dGVybiB2b2lk IHJlYWxfY2VpbCAoUkVBTF9WQUxVRV9UWVBFICosIGZvcm1hdF9oZWxwZXIs CiAJCSAgICAgICBjb25zdCBSRUFMX1ZBTFVFX1RZUEUgKik7CiBleHRlcm4g dm9pZCByZWFsX3JvdW5kIChSRUFMX1ZBTFVFX1RZUEUgKiwgZm9ybWF0X2hl bHBlciwKIAkJCWNvbnN0IFJFQUxfVkFMVUVfVFlQRSAqKTsKK2V4dGVybiB2 b2lkIHJlYWxfcm91bmRldmVuIChSRUFMX1ZBTFVFX1RZUEUgKiwgZm9ybWF0 X2hlbHBlciwKKyAgICAgIGNvbnN0IFJFQUxfVkFMVUVfVFlQRSAqKTsKIAog LyogU2V0IHRoZSBzaWduIG9mIFIgdG8gdGhlIHNpZ24gb2YgWC4gICovCiBl eHRlcm4gdm9pZCByZWFsX2NvcHlzaWduIChSRUFMX1ZBTFVFX1RZUEUgKiwg Y29uc3QgUkVBTF9WQUxVRV9UWVBFICopOwo= --0000000000004f5cdc058a681b32--