From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 804583858406 for ; Tue, 8 Nov 2022 14:07:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 804583858406 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1667916435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=huubBB82qO2qerIEy/8rT0ZozAGUSpuF7vazEqCRmkk=; b=NNl5s5kx+AmUFJ1+6LV2VJ6lwvTgiTKT8r9Cxaka48tJbYBEcZwBHllFxE1O6GeJL5fesI a+Rg9dLGcMRJPALBmsxmLprFGO9GuIzIs+ESTG/gB8ffVdP+JkWpqaA4e3vufl4g1MENK+ HBN4k6wJFQugq/yGSLFQ2DRtz5TyWrc= Received: from mail-yb1-f198.google.com (mail-yb1-f198.google.com [209.85.219.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-356-p5vc6PT8NbOdyuIqliTsig-1; Tue, 08 Nov 2022 09:07:06 -0500 X-MC-Unique: p5vc6PT8NbOdyuIqliTsig-1 Received: by mail-yb1-f198.google.com with SMTP id c188-20020a25c0c5000000b006d8eba07513so3162762ybf.17 for ; Tue, 08 Nov 2022 06:07:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=huubBB82qO2qerIEy/8rT0ZozAGUSpuF7vazEqCRmkk=; b=2y3WbZHkE1z+C1yX2Pv1s1t8RnHudMAYCzqT04uK2OXfHJUd6drYoDuiemF0lq+RN7 wTNasl0pQ+PA62Fc4uLT89bH0HCKG4+RixMrqnuIO7YxlhOWkL94sz6cpjGC7nVkaefT 2B44Ca+mmuvXqde24oambM6FGGladnfT0v669/byBViL+zZgRRYf3z3oxCoOb+ycpoKD /GFTHnwrVIFDoMMig13xChwWaP+5YtR+hM8x7+PrfpwkH0ytfy9csmBuXsea7WFPLsAV zt67nICD003E+Pg4hoARDrcjI/73gBH7h/D7mV3x0QlhWJYYbkeGxq/RwRAQFGAv9UWe hcGw== X-Gm-Message-State: ACrzQf1XSqKiQMtA5m7fABG6ut1EUygYumWPqIyymvLPXOzqj5NPz3zf gV6whSVWCqp+na3UYKzK+81SGbzJGNwfTbGdtHzfJfyVgcf659gqPVmalfqPiMpICEIzJS4+6A4 qGzsqOiWO0pyp9ZhMYS9WZU/S6YxKE13bxg== X-Received: by 2002:a81:1086:0:b0:36f:ce5a:982 with SMTP id 128-20020a811086000000b0036fce5a0982mr54331472ywq.158.1667916425421; Tue, 08 Nov 2022 06:07:05 -0800 (PST) X-Google-Smtp-Source: AMsMyM5OYyDBZC3Bzk0Caqmqu/Xtc/ChXnLSltjMiHAQ+WPLPYCKfKwb+12R+zoPVbQgk/ubeQq3leOcv/UC4D/vwhk= X-Received: by 2002:a81:1086:0:b0:36f:ce5a:982 with SMTP id 128-20020a811086000000b0036fce5a0982mr54331457ywq.158.1667916425174; Tue, 08 Nov 2022 06:07:05 -0800 (PST) MIME-Version: 1.0 References: <20221013123649.474497-1-aldyh@redhat.com> In-Reply-To: From: Aldy Hernandez Date: Tue, 8 Nov 2022 15:06:53 +0100 Message-ID: Subject: Re: [PATCH] [PR24021] Implement PLUS_EXPR range-op entry for floats. To: Jakub Jelinek Cc: GCC patches , Andrew MacLeod X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="00000000000009d8ed05ecf60ea5" X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000009d8ed05ecf60ea5 Content-Type: text/plain; charset="UTF-8" On Tue, Nov 8, 2022 at 2:50 PM Jakub Jelinek wrote: > > On Tue, Nov 08, 2022 at 02:47:35PM +0100, Aldy Hernandez wrote: > > Well, perhaps we should just nuke update_nan_sign() altogether, and > > always keep the sign varying? > > > > inline bool > > propagate_nans (frange &r, const frange &op1, const frange &op2) > > { > > if (op1.known_isnan () || op2.known_isnan ()) > > { > > r.set_nan (op1.type ()); > > return true; > > } > > return false; > > } > > > > I'm fine either way. The less code the better :). > > Yes, but you had 2 callers, so something needs to be done also if > in foperator_plus::fold_range. We can also remove the update_nan_sign() in the other call because the r.set() before it sets a default NAN (with a varying sign). Attached patch in testing. Aldy --00000000000009d8ed05ecf60ea5 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-PR24021-Implement-PLUS_EXPR-range-op-entry-for-float.patch" Content-Disposition: attachment; filename="0002-PR24021-Implement-PLUS_EXPR-range-op-entry-for-float.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_la8achvb0 RnJvbSA4ZGE0ZmMzOWNjNzNmMGFlNzg1NDYzYmQ1ZjM3MTIyM2ZhNTkwMjdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGR5IEhlcm5hbmRleiA8YWxkeWhAcmVkaGF0LmNvbT4KRGF0 ZTogVGh1LCAxMyBPY3QgMjAyMiAwODoxNDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIFtQUjI0 MDIxXSBJbXBsZW1lbnQgUExVU19FWFBSIHJhbmdlLW9wIGVudHJ5IGZvciBmbG9hdHMuCgpUaGlz IGlzIHRoZSByYW5nZS1vcCBlbnRyeSBmb3IgZmxvYXRpbmcgcG9pbnQgUExVU19FWFBSLiAgSXQn cyB0aGUKbW9zdCBpbnRyaWNhdGUgcmFuZ2UgZW50cnkgd2UgaGF2ZSBzbyBmYXIsIGJlY2F1c2Ug d2UgbmVlZCB0byBrZWVwCnRyYWNrIG9mIHJvdW5kaW5nIGFuZCB0YXJnZXQgRlAgZm9ybWF0cy4g IFRoaXMgd2lsbCBiZSB0aGUgbGFzdCBGUAplbnRyeSBJIGNvbW1pdCwgbW9zdGx5IHRvIGF2b2lk IGRpc3R1cmJpbmcgdGhlIHRyZWUgYW55IGZ1cnRoZXIsIGFuZAphbHNvIGJlY2F1c2Ugd2hhdCB3 ZSBoYXZlIHNvIGZhciBpcyBlbm91Z2ggZm9yIGEgc29saWQgVlJQLgoKU28gZmFyIHdlIHRyYWNr IE5BTnMgYW5kIHNpZ25zIGNvcnJlY3RseS4gIFdlIGFsc28gaGFuZGxlIHJlbGF0aW9uYWxzCihz eW1ib2xpY3MgYW5kIG51bWVyaWMpLCBib3RoIG9yZGVyZWQgYW5kIHVub3JkZXJlZCwgQUJTX0VY UFIgYW5kCk5FR0FURV9FWFBSIHdoaWNoIGFyZSB1c2VkIHRvIGZvbGQgX19idWlsdGluX2lzaW5m LCBhbmQgX19idWlsdGluX3NpZ24KKF9fYnVpbHRpbl9jb3B5c2lnbiBpcyBjb21pbmcgdXApLiAg QWxsIGluIGFsbCwgSSB0aGluayB0aGlzIHByb3ZpZGUKbW9yZSB0aGFuIGVub3VnaCBmb3IgYmFz aWMgVlJQIG9uIGZsb2F0cywgYXMgd2VsbCBhcyBwcm92aWRlIGEgYmFzaXMKdG8gZmxlc2ggb3V0 IHRoZSByZXN0IGlmIHRoZXJlJ3MgaW50ZXJlc3QuCgpNeSBnb2FsIHdpdGggdGhpcyBlbnRyeSBp cyB0byBwcm92aWRlIGEgdGVtcGxhdGUgZm9yIGFkZGl0aW9uYWwgYmluYXJ5Cm9wZXJhdG9ycywg YXMgdGhleSB0ZW5kIHRvIGZvbGxvdyBhIHNpbWlsYXIgcGF0dGVybjogaGFuZGxlIE5BTnMsIGRv CnRoZSBhcml0aG1ldGljIHdoaWxlIGtlZXBpbmcgdHJhY2sgb2Ygcm91bmRpbmcsIGFuZCBhZGp1 c3QgZm9yIE5BTi4gIEkKbWF5IGFic3RyYWN0IHRoZSBnZW5lcmFsIHBhcnRzIGFzIHdlIGRvIGZv ciBpcmFuZ2UncyBmb2xkX3JhbmdlIGFuZAp3aV9mb2xkLgoKCVBSIHRyZWUtb3B0aW1pemF0aW9u LzI0MDIxCgpnY2MvQ2hhbmdlTG9nOgoKCSogcmFuZ2Utb3AtZmxvYXQuY2MgKHByb3BhZ2F0ZV9u YW5zKTogTmV3LgoJKGZyYW5nZV9uZXh0YWZ0ZXIpOiBOZXcuCgkoZnJhbmdlX2FyaXRobWV0aWMp OiBOZXcuCgkoY2xhc3MgZm9wZXJhdG9yX3BsdXMpOiBOZXcuCgkoZmxvYXRpbmdfb3BfdGFibGU6 OmZsb2F0aW5nX29wX3RhYmxlKTogQWRkIFBMVVNfRVhQUiBlbnRyeS4KCmdjYy90ZXN0c3VpdGUv Q2hhbmdlTG9nOgoKCSogZ2NjLmRnL3RyZWUtc3NhL3ZycC1mbG9hdC1wbHVzLmM6IE5ldyB0ZXN0 LgotLS0KIGdjYy9yYW5nZS1vcC1mbG9hdC5jYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDEy OCArKysrKysrKysrKysrKysrKysKIC4uLi9nY2MuZGcvdHJlZS1zc2EvdnJwLWZsb2F0LXBsdXMu YyAgICAgICAgICB8ICAyMSArKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS92cnAtZmxv YXQtcGx1cy5jCgpkaWZmIC0tZ2l0IGEvZ2NjL3JhbmdlLW9wLWZsb2F0LmNjIGIvZ2NjL3Jhbmdl LW9wLWZsb2F0LmNjCmluZGV4IGExZjM3Mjk5N2JmLi41MDJiNjdhYWE2NiAxMDA2NDQKLS0tIGEv Z2NjL3JhbmdlLW9wLWZsb2F0LmNjCisrKyBiL2djYy9yYW5nZS1vcC1mbG9hdC5jYwpAQCAtMTky LDYgKzE5Miw4MSBAQCBmcmVsb3BfZWFybHlfcmVzb2x2ZSAoaXJhbmdlICZyLCB0cmVlIHR5cGUs CiAJICAmJiByZWxvcF9lYXJseV9yZXNvbHZlIChyLCB0eXBlLCBvcDEsIG9wMiwgcmVsLCBteV9y ZWwpKTsKIH0KIAorLy8gSWYgZWl0aGVyIG9wZXJhbmQgaXMgYSBOQU4sIHNldCBSIHRvIHRoZSBj b21iaW5hdGlvbiBvZiBib3RoIE5BTnMKKy8vIHNpZ253aXNlIGFuZCByZXR1cm4gVFJVRS4KKwor aW5saW5lIGJvb2wKK3Byb3BhZ2F0ZV9uYW5zIChmcmFuZ2UgJnIsIGNvbnN0IGZyYW5nZSAmb3Ax LCBjb25zdCBmcmFuZ2UgJm9wMikKK3sKKyAgaWYgKG9wMS5rbm93bl9pc25hbiAoKSB8fCBvcDIu a25vd25faXNuYW4gKCkpCisgICAgeworICAgICAgci5zZXRfbmFuIChvcDEudHlwZSAoKSk7Cisg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIHJldHVybiBmYWxzZTsKK30KKworLy8gU2V0IFZB TFVFIHRvIGl0cyBuZXh0IHJlYWwgdmFsdWUsIG9yIElORiBpZiB0aGUgb3BlcmF0aW9uIG92ZXJm bG93cy4KKworaW5saW5lIHZvaWQKK2ZyYW5nZV9uZXh0YWZ0ZXIgKGVudW0gbWFjaGluZV9tb2Rl IG1vZGUsCisJCSAgUkVBTF9WQUxVRV9UWVBFICZ2YWx1ZSwKKwkJICBjb25zdCBSRUFMX1ZBTFVF X1RZUEUgJmluZikKK3sKKyAgY29uc3QgcmVhbF9mb3JtYXQgKmZtdCA9IFJFQUxfTU9ERV9GT1JN QVQgKG1vZGUpOworICBSRUFMX1ZBTFVFX1RZUEUgdG1wOworICByZWFsX25leHRhZnRlciAoJnRt cCwgZm10LCAmdmFsdWUsICZpbmYpOworICB2YWx1ZSA9IHRtcDsKK30KKworLy8gTGlrZSByZWFs X2FyaXRobWV0aWMsIGJ1dCByb3VuZCB0aGUgcmVzdWx0IHRvIElORiBpZiB0aGUgb3BlcmF0aW9u CisvLyBwcm9kdWNlZCBpbmV4YWN0IHJlc3VsdHMuCisvLworLy8gPz8gVGhlcmUgaXMgc3RpbGwg b25lIHByb2JsZW1hdGljIGNhc2UsIGkzODcuICBXaXRoCisvLyAtZmV4Y2Vzcy1wcmVjaXNpb249 c3RhbmRhcmQgd2UgcGVyZm9ybSBtb3N0IFNGL0RGbW9kZSBhcml0aG1ldGljIGluCisvLyBYRm1v ZGUgKGxvbmdfZG91YmxlX3R5cGVfbm9kZSksIHNvIHRoYXQgY2FzZSBpcyBPSy4gIEJ1dCB3aXRo b3V0CisvLyAtbWZwbWF0aD1zc2UsIGFsbCB0aGUgU0YvREZtb2RlIGNvbXB1dGF0aW9ucyBhcmUg aW4gWEZtb2RlCisvLyBwcmVjaXNpb24gKDY0LWJpdCBtYW50aXNzYSkgYW5kIG9ubHkgb2NjYXNz aW9uYWxseSByb3VuZGVkIHRvCisvLyBTRi9ERm1vZGUgKHdoZW4gc3RvcmluZyBpbnRvIG1lbW9y eSBmcm9tIHRoZSAzODcgc3RhY2spLiAgTWF5YmUKKy8vIHRoaXMgaXMgb2sgYXMgd2VsbCB0aG91 Z2ggaXQgaXMganVzdCBvY2Nhc3Npb25hbGx5IG1vcmUgcHJlY2lzZS4gPz8KKworc3RhdGljIHZv aWQKK2ZyYW5nZV9hcml0aG1ldGljIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlIHR5cGUsCisJ CSAgIFJFQUxfVkFMVUVfVFlQRSAmcmVzdWx0LAorCQkgICBjb25zdCBSRUFMX1ZBTFVFX1RZUEUg Jm9wMSwKKwkJICAgY29uc3QgUkVBTF9WQUxVRV9UWVBFICZvcDIsCisJCSAgIGNvbnN0IFJFQUxf VkFMVUVfVFlQRSAmaW5mKQoreworICBSRUFMX1ZBTFVFX1RZUEUgdmFsdWU7CisgIGVudW0gbWFj aGluZV9tb2RlIG1vZGUgPSBUWVBFX01PREUgKHR5cGUpOworICBib29sIG1vZGVfY29tcG9zaXRl ID0gTU9ERV9DT01QT1NJVEVfUCAobW9kZSk7CisKKyAgYm9vbCBpbmV4YWN0ID0gcmVhbF9hcml0 aG1ldGljICgmdmFsdWUsIGNvZGUsICZvcDEsICZvcDIpOworICByZWFsX2NvbnZlcnQgKCZyZXN1 bHQsIG1vZGUsICZ2YWx1ZSk7CisKKyAgLy8gQmUgZXh0cmEgY2FyZWZ1bCBpZiB0aGVyZSBtYXkg YmUgZGlzY3JlcGFuY2llcyBiZXR3ZWVuIHRoZQorICAvLyBjb21waWxlIGFuZCBydW50aW1lIHJl c3VsdHMuCisgIGlmICgobW9kZV9jb21wb3NpdGUgfHwgKHJlYWxfaXNuZWcgKCZpbmYpID8gcmVh bF9sZXNzICgmcmVzdWx0LCAmdmFsdWUpCisJCQkgIDogIXJlYWxfbGVzcyAoJnZhbHVlLCAmcmVz dWx0KSkpCisgICAgICAmJiAoaW5leGFjdCB8fCAhcmVhbF9pZGVudGljYWwgKCZyZXN1bHQsICZ2 YWx1ZSkpKQorICAgIHsKKyAgICAgIGlmIChtb2RlX2NvbXBvc2l0ZSkKKwl7CisJICBpZiAocmVh bF9pc2Rlbm9ybWFsICgmcmVzdWx0LCBtb2RlKQorCSAgICAgIHx8IHJlYWxfaXN6ZXJvICgmcmVz dWx0KSkKKwkgICAgeworCSAgICAgIC8vIElCTSBleHRlbmRlZCBkZW5vcm1hbHMgb25seSBoYXZl IERGbW9kZSBwcmVjaXNpb24uCisJICAgICAgUkVBTF9WQUxVRV9UWVBFIHRtcDsKKwkgICAgICBy ZWFsX2NvbnZlcnQgKCZ0bXAsIERGbW9kZSwgJnZhbHVlKTsKKwkgICAgICBmcmFuZ2VfbmV4dGFm dGVyIChERm1vZGUsIHRtcCwgaW5mKTsKKwkgICAgICByZWFsX2NvbnZlcnQgKCZyZXN1bHQsIG1v ZGUsICZ0bXApOworCSAgICAgIHJldHVybjsKKwkgICAgfQorCX0KKyAgICAgIGZyYW5nZV9uZXh0 YWZ0ZXIgKG1vZGUsIHJlc3VsdCwgaW5mKTsKKyAgICB9Cit9CisKIC8vIENyb3AgUiB0byBbLUlO RiwgTUFYXSB3aGVyZSBNQVggaXMgdGhlIG1heGltdW0gcmVwcmVzZW50YWJsZSBudW1iZXIKIC8v IGZvciBUWVBFLgogCkBAIC0xNzQ2LDYgKzE4MjEsNTggQEAgZm9wZXJhdG9yX3Vub3JkZXJlZF9l cXVhbDo6b3AxX3JhbmdlIChmcmFuZ2UgJnIsIHRyZWUgdHlwZSwKICAgcmV0dXJuIHRydWU7CiB9 CiAKK2NsYXNzIGZvcGVyYXRvcl9wbHVzIDogcHVibGljIHJhbmdlX29wZXJhdG9yX2Zsb2F0Cit7 CisgIHVzaW5nIHJhbmdlX29wZXJhdG9yX2Zsb2F0Ojpmb2xkX3JhbmdlOworCitwdWJsaWM6Cisg IGJvb2wgZm9sZF9yYW5nZSAoZnJhbmdlICZyLCB0cmVlIHR5cGUsCisJCSAgIGNvbnN0IGZyYW5n ZSAmbGgsCisJCSAgIGNvbnN0IGZyYW5nZSAmcmgsCisJCSAgIHJlbGF0aW9uX3RyaW8gPSBUUklP X1ZBUllJTkcpIGNvbnN0IGZpbmFsIG92ZXJyaWRlOworfSBmb3BfcGx1czsKKworYm9vbAorZm9w ZXJhdG9yX3BsdXM6OmZvbGRfcmFuZ2UgKGZyYW5nZSAmciwgdHJlZSB0eXBlLAorCQkJICAgIGNv bnN0IGZyYW5nZSAmb3AxLCBjb25zdCBmcmFuZ2UgJm9wMiwKKwkJCSAgICByZWxhdGlvbl90cmlv KSBjb25zdAoreworICBpZiAoZW1wdHlfcmFuZ2VfdmFyeWluZyAociwgdHlwZSwgb3AxLCBvcDIp KQorICAgIHJldHVybiB0cnVlOworICBpZiAocHJvcGFnYXRlX25hbnMgKHIsIG9wMSwgb3AyKSkK KyAgICByZXR1cm4gdHJ1ZTsKKworICBSRUFMX1ZBTFVFX1RZUEUgbGIsIHViOworICBmcmFuZ2Vf YXJpdGhtZXRpYyAoUExVU19FWFBSLCB0eXBlLCBsYiwKKwkJICAgICBvcDEubG93ZXJfYm91bmQg KCksIG9wMi5sb3dlcl9ib3VuZCAoKSwgZGNvbnN0bmluZik7CisgIGZyYW5nZV9hcml0aG1ldGlj IChQTFVTX0VYUFIsIHR5cGUsIHViLAorCQkgICAgIG9wMS51cHBlcl9ib3VuZCAoKSwgb3AyLnVw cGVyX2JvdW5kICgpLCBkY29uc3RpbmYpOworCisgIC8vIEhhbmRsZSBwb3NzaWJsZSBOQU5zIGJ5 IHNhdHVyYXRpbmcgdG8gdGhlIGFwcHJvcHJpYXRlIElORiBpZiBvbmx5CisgIC8vIG9uZSBlbmQg aXMgYSBOQU4uICBJZiBib3RoIGVuZHMgYXJlIGEgTkFOLCBqdXN0IHJldHVybiBhIE5BTi4KKyAg Ym9vbCBsYl9uYW4gPSByZWFsX2lzbmFuICgmbGIpOworICBib29sIHViX25hbiA9IHJlYWxfaXNu YW4gKCZ1Yik7CisgIGlmIChsYl9uYW4gJiYgdWJfbmFuKQorICAgIHsKKyAgICAgIHIuc2V0X25h biAodHlwZSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIGlmIChsYl9uYW4pCisgICAg bGIgPSBkY29uc3RuaW5mOworICBlbHNlIGlmICh1Yl9uYW4pCisgICAgdWIgPSBkY29uc3RpbmY7 CisKKyAgci5zZXQgKHR5cGUsIGxiLCB1Yik7CisKKyAgaWYgKGxiX25hbiB8fCB1Yl9uYW4pCisg ICAgLy8gS2VlcCB0aGUgZGVmYXVsdCBOQU4gKHdpdGggYSB2YXJ5aW5nIHNpZ24pIHNldCBieSB0 aGUgc2V0dGVyLgorICAgIDsKKyAgZWxzZSBpZiAoIW9wMS5tYXliZV9pc25hbiAoKSAmJiAhb3Ay Lm1heWJlX2lzbmFuICgpKQorICAgIHIuY2xlYXJfbmFuICgpOworCisgIHJldHVybiB0cnVlOwor fQorCiAvLyBJbnN0YW50aWF0ZSBhIHJhbmdlX29wX3RhYmxlIGZvciBmbG9hdGluZyBwb2ludCBv cGVyYXRpb25zLgogc3RhdGljIGZsb2F0aW5nX29wX3RhYmxlIGdsb2JhbF9mbG9hdGluZ190YWJs ZTsKIApAQCAtMTc3OCw2ICsxOTA1LDcgQEAgZmxvYXRpbmdfb3BfdGFibGU6OmZsb2F0aW5nX29w X3RhYmxlICgpCiAKICAgc2V0IChBQlNfRVhQUiwgZm9wX2Ficyk7CiAgIHNldCAoTkVHQVRFX0VY UFIsIGZvcF9uZWdhdGUpOworICBzZXQgKFBMVVNfRVhQUiwgZm9wX3BsdXMpOwogfQogCiAvLyBS ZXR1cm4gYSBwb2ludGVyIHRvIHRoZSByYW5nZV9vcGVyYXRvcl9mbG9hdCBpbnN0YW5jZSwgaWYg dGhlcmUgaXMKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ZycC1m bG9hdC1wbHVzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS92cnAtZmxvYXQtcGx1 cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNzM5ZWE0ZTgxMAot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ZycC1mbG9h dC1wbHVzLmMKQEAgLTAsMCArMSwyMSBAQAorLy8geyBkZy1kbyBjb21waWxlIH0KKy8vIHsgZGct b3B0aW9ucyAiLU8yIC1mbm8tdHJlZS1mcmUgLWZuby10cmVlLWRvbWluYXRvci1vcHRzIC1mbm8t dGhyZWFkLWp1bXBzIC1mZHVtcC10cmVlLXZycDIiIH0KKworZG91YmxlIEJHX1NwbGluZUxlbmd0 aCAoKQoreworICBkb3VibGUgbGFzdFBvaW50OworICBkb3VibGUgaTsKKworICBmb3IgKGkgPSAw LjAxO2k8PTE7aSs9MC4xZikKKyAgICBpZiAoIShpICE9IDAuMCkpCisgICAgICB7CisgICAgICAg IGxhc3RQb2ludCA9IGk7CisgICAgICB9CisgICAgZWxzZQorICAgICAgeworICAgICAgICBsYXN0 UG9pbnQgPSAyOworICAgICAgfQorICByZXR1cm4gbGFzdFBvaW50OworfQorCisvLyB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInJldHVybiAyXFwuMGUiIDEgInZycDIiIH0gfQot LSAKMi4zOC4xCgo= --00000000000009d8ed05ecf60ea5--