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 [216.205.24.124]) by sourceware.org (Postfix) with ESMTPS id 1FBB33858014 for ; Thu, 11 Nov 2021 20:42:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1FBB33858014 Received: from mail-yb1-f200.google.com (mail-yb1-f200.google.com [209.85.219.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-437-OkEi6hOtOyiAD1UJCfJu9w-1; Thu, 11 Nov 2021 15:41:59 -0500 X-MC-Unique: OkEi6hOtOyiAD1UJCfJu9w-1 Received: by mail-yb1-f200.google.com with SMTP id x75-20020a25ce4e000000b005c5d04a1d52so10941724ybe.23 for ; Thu, 11 Nov 2021 12:41:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qr7nO5AeymMbxppYwFDHu4g7IZdgtLXX/pjy7re+QSA=; b=wb32yww43tFnmWanoIejYrODuwfhekQZl0C8ksgs7qi9Wcackh5MQPgZb36cuuyccc P8G/2Ue2/LLEc4VYNdZSLn+68UxGaNC03Qf0cZvvFGpkiYqVSTewGH4AGTXo9i3sHyWU sCnDY1hl4F67595GUVrcv2zLF5rGVML7kg4HAudSDQk43ZK7aDQBysN2/gwHqS3SJaOc oUrkln4+l1E8kMOYne8dV6B21k35ZuOmNogDkXe7LNc2pJNSE41A51lGlW247ULvq5vR m+gWJgtmBPSbcZwo+3IOLwhk70sQ+OMGkI0LgzymPzCOHKx0Gb4PPD260akSsmodGAUc nPDg== X-Gm-Message-State: AOAM532k4ZZmRY2VkHHY0KXzP/z6eFHJD7LkQi8haD0tXsyzev9zoQly GV3+NG4cjhgKWlCjJIFudSh/UcMqs7pyqBsOI9dBXOPk8mXWSPSA0xhKLUA43Rg5eKcVg6WyPfc /yq2Jk5pwVKUYPRsNCcZiBgb2Sozh9qc= X-Received: by 2002:a25:acdd:: with SMTP id x29mr11286529ybd.96.1636663319293; Thu, 11 Nov 2021 12:41:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJyojpgKmNHbrOo2F6CtcUEB8zUxLcaTFTjvNDVEXzUteAhZ6QXBwBGPHqeiFrtJSkpHu0jNh8G5B/nz+/KtOJ8= X-Received: by 2002:a25:acdd:: with SMTP id x29mr11286507ybd.96.1636663319098; Thu, 11 Nov 2021 12:41:59 -0800 (PST) MIME-Version: 1.0 References: <4eec3fb9-851e-3e4e-f9f4-1110db3af747@gmail.com> <6c349652-8b6f-2027-08c3-6ce58a765aeb@gmail.com> <22bf1b42-8cf4-7a6e-d5dc-c322ccbb2b46@gmail.com> <68641ea0-2a14-e3a5-8315-a7b3a9c1fdb4@gmail.com> In-Reply-To: From: Jonathan Wakely Date: Thu, 11 Nov 2021 20:41:48 +0000 Message-ID: Subject: Re: [PATH][_GLIBCXX_DEBUG] Fix unordered container merge To: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= Cc: "libstdc++" , gcc-patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000c0f90605d0895f2a" X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Nov 2021 20:42:10 -0000 --000000000000c0f90605d0895f2a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 10 Nov 2021 at 11:55, Jonathan Wakely wrote: > > > On Tue, 9 Nov 2021 at 16:25, Jonathan Wakely wrote: > >> >> >> On Mon, 8 Nov 2021 at 21:36, Fran=C3=A7ois Dumont >> wrote: >> >>> Yet another version this time with only 1 guard implementation. The >>> predicate to invalidate the safe iterators has been externalized. >>> >>> Ok to commit ? >>> >> >> I like this version a lot - thanks for persisting with it. >> >> > > I'm seeing new failures with this: > > make check RUNTESTFLAGS=3D"conformance.exp=3D23_containers/*/invalidation= /* > --target_board=3Dunix/-D_GLIBCXX_DEBUG/-std=3Dgnu++98" > > FAIL: 23_containers/deque/debug/invalidation/1.cc (test for excess errors= ) > FAIL: 23_containers/list/debug/invalidation/1.cc (test for excess errors) > FAIL: 23_containers/map/debug/invalidation/1.cc (test for excess errors) > FAIL: 23_containers/multimap/debug/invalidation/1.cc (test for excess > errors) > FAIL: 23_containers/multiset/debug/invalidation/1.cc (test for excess > errors) > FAIL: 23_containers/set/debug/invalidation/1.cc (test for excess errors) > FAIL: 23_containers/vector/debug/invalidation/1.cc (test for excess error= s) > It's caused by: --- a/libstdc++-v3/include/debug/safe_container.h +++ b/libstdc++-v3/include/debug/safe_container.h @@ -78,7 +78,6 @@ namespace __gnu_debug { } #endif - public: // Copy assignment invalidate all iterators. _Safe_container& operator=3D(const _Safe_container&) _GLIBCXX_NOEXCEPT For C++98 mode that gets called explicitly by the user-provided copy assignment operators in the derived class. I'm testing the attached fix. --000000000000c0f90605d0895f2a Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kvvf28ha0 Y29tbWl0IDcwNzVhYmQ1MTgzNjRiOGQ5NzY3MDc5ZTA0NGJhYmE4NjE0NWNjMDgKQXV0aG9yOiBK b25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4KRGF0ZTogICBUaHUgTm92IDExIDIw OjIzOjQ4IDIwMjEKCiAgICBsaWJzdGRjKys6IEZpeCBkZWJ1ZyBjb250YWluZXJzIGZvciBDKys5 OCBtb2RlCiAgICAKICAgIFNpbmNlIHIxMi01MDcyIG1hZGUgX1NhZmVfY29udGFpbmVyOjpvcGVy YXRvcj0oY29uc3QgX1NhZmVfY29udGFpbmVyJikKICAgIHByb3RlY3RlZCwgdGhlIGRlYnVnIGNv bnRhaW5lcnMgbm8gbG9uZ2VyIGNvbXBpbGUgaW4gQysrOTggbW9kZS4gVGhleQogICAgaGF2ZSB1 c2VyLXByb3ZpZGVkIGNvcHkgYXNzaWdubWVudCBvcGVyYXRvcnMgaW4gQysrOTggbW9kZSwgYW5k IHRoZXkKICAgIGFzc2lnbiBlYWNoIGJhc2UgY2xhc3MgaW4gdHVybi4gVGhlICd0aGlzLT5fTV9z YWZlKCkgPSBfX3gnIGV4cHJlc3Npb25zCiAgICBmYWlsLCBiZWNhdXNlIGNhbGxpbmcgYSBwcm90 ZWN0ZWQgbWVtYmVyIGZ1bmN0aW9uIGlzIG9ubHkgYWxvd2VkIHZpYQogICAgYHRoaXNgLiBUaGV5 IGNvdWxkIGJlIGZpeGVkIGJ5IHVzaW5nIHRoaXMtPl9TYWZlOjpvcGVyYXRvcj0oX194KSBidXQg YQogICAgc2ltcGxlciBzb2x1dGlvbiBpcyB0byBqdXN0IHJlbW92ZSB0aGUgdXNlci1wcm92aWRl ZCBhc3NpZ25tZW50CiAgICBvcGVyYXRvcnMgYW5kIGxldCB0aGUgY29tcGlsZXIgZGVmaW5lZCB0 aGVtIChhcyBpbiBDKysxMSBhbmQgbGF0ZXIpLgogICAgCiAgICBUaGUgb25seSBjaGFuZ2UgbmVl ZGVkIGZvciB0aGF0IHRvIHdvcmsgaXMgdG8gZGVmaW5lIHRoZSBfU2FmZV92ZWN0b3IKICAgIGNv cHkgYXNzaWdubWVudCBvcGVyYXRvciBpbiBDKys5OCBtb2RlLCBzbyB0aGF0IHRoZSBpbXBsaWNp dAogICAgX19nbnVfZGVidWc6OnZlY3Rvcjo6b3BlcmF0b3I9IGRlZmluaXRpb24gd2lsbCBjYWxs IGl0LCBpbnN0ZWFkIG9mCiAgICBjYWxsaW5nIF9NX3VwZGF0ZV9ndWFyYW50ZWVkX2NhcGFjaXR5 KCkgbWFudWFsbHkuCiAgICAKICAgIGxpYnN0ZGMrKy12My9DaGFuZ2VMb2c6CiAgICAKICAgICAg ICAgICAgKiBpbmNsdWRlL2RlYnVnL2RlcXVlIChkZXF1ZTo6b3BlcmF0b3I9KGNvbnN0IGRlcXVl JikpOiBSZW1vdmUKICAgICAgICAgICAgZGVmaW5pdGlvbi4KICAgICAgICAgICAgKiBpbmNsdWRl L2RlYnVnL2xpc3QgKGxpc3Q6Om9wZXJhdG9yPShjb25zdCBsaXN0JikpOiBMaWtld2lzZS4KICAg ICAgICAgICAgKiBpbmNsdWRlL2RlYnVnL21hcC5oIChtYXA6Om9wZXJhdG9yPShjb25zdCBtYXAm KSk6IExpa2V3aXNlLgogICAgICAgICAgICAqIGluY2x1ZGUvZGVidWcvbXVsdGltYXAuaCAobXVs dGltYXA6Om9wZXJhdG9yPShjb25zdCBtdWx0aW1hcCYpKToKICAgICAgICAgICAgTGlrZXdpc2Uu CiAgICAgICAgICAgICogaW5jbHVkZS9kZWJ1Zy9tdWx0aXNldC5oIChtdWx0aXNldDo6b3BlcmF0 b3I9KGNvbnN0IG11bHRpc2V0JikpOgogICAgICAgICAgICBMaWtld2lzZS4KICAgICAgICAgICAg KiBpbmNsdWRlL2RlYnVnL3NldC5oIChzZXQ6Om9wZXJhdG9yPShjb25zdCBzZXQmKSk6IExpa2V3 aXNlLgogICAgICAgICAgICAqIGluY2x1ZGUvZGVidWcvc3RyaW5nIChiYXNpY19zdHJpbmc6Om9w ZXJhdG9yPShjb25zdCBiYXNpY19zdHJpbmcmKSk6CiAgICAgICAgICAgIExpa2V3aXNlLgogICAg ICAgICAgICAqIGluY2x1ZGUvZGVidWcvdmVjdG9yICh2ZWN0b3I6Om9wZXJhdG9yPShjb25zdCB2 ZWN0b3ImKSk6CiAgICAgICAgICAgIExpa2V3aXNlLgogICAgICAgICAgICAoX1NhZmVfdmVjdG9y OjpvcGVyYXRvcj0oY29uc3QgX1NhZmVfdmVjdG9yJikpOiBEZWZpbmUgZm9yCiAgICAgICAgICAg IEMrKzk4IGFzIHdlbGwuCgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcv ZGVxdWUgYi9saWJzdGRjKystdjMvaW5jbHVkZS9kZWJ1Zy9kZXF1ZQppbmRleCA4ZTQ4MTExNDlk Mi4uNTI3NzhiYTE2MTcgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL2Rl cXVlCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL2RlcXVlCkBAIC0xNTYsMTUgKzE1 Niw3IEBAIG5hbWVzcGFjZSBfX2RlYnVnCiAgICAgICBkZXF1ZShfQmFzZV9yZWYgX194KQogICAg ICAgOiBfQmFzZShfX3guX01fcmVmKSB7IH0KIAotI2lmIF9fY3BsdXNwbHVzIDwgMjAxMTAzTAot ICAgICAgZGVxdWUmCi0gICAgICBvcGVyYXRvcj0oY29uc3QgZGVxdWUmIF9feCkKLSAgICAgIHsK LQl0aGlzLT5fTV9zYWZlKCkgPSBfX3g7Ci0JX01fYmFzZSgpID0gX194OwotCXJldHVybiAqdGhp czsKLSAgICAgIH0KLSNlbHNlCisjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAogICAgICAgZGVx dWUmCiAgICAgICBvcGVyYXRvcj0oY29uc3QgZGVxdWUmKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdp dCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL2xpc3QgYi9saWJzdGRjKystdjMvaW5jbHVk ZS9kZWJ1Zy9saXN0CmluZGV4IGRlMzBlZGIxOWMyLi5mNDBlYmM4NTIxZSAxMDA2NDQKLS0tIGEv bGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvbGlzdAorKysgYi9saWJzdGRjKystdjMvaW5jbHVk ZS9kZWJ1Zy9saXN0CkBAIC0xNjEsMTUgKzE2MSw3IEBAIG5hbWVzcGFjZSBfX2RlYnVnCiAgICAg ICBsaXN0KF9CYXNlX3JlZiBfX3gpCiAgICAgICA6IF9CYXNlKF9feC5fTV9yZWYpIHsgfQogCi0j aWYgX19jcGx1c3BsdXMgPCAyMDExMDNMCi0gICAgICBsaXN0JgotICAgICAgb3BlcmF0b3I9KGNv bnN0IGxpc3QmIF9feCkKLSAgICAgIHsKLQl0aGlzLT5fTV9zYWZlKCkgPSBfX3g7Ci0JX01fYmFz ZSgpID0gX194OwotCXJldHVybiAqdGhpczsKLSAgICAgIH0KLSNlbHNlCisjaWYgX19jcGx1c3Bs dXMgPj0gMjAxMTAzTAogICAgICAgbGlzdCYKICAgICAgIG9wZXJhdG9yPShjb25zdCBsaXN0Jikg PSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvaW5jbHVkZS9kZWJ1Zy9tYXAu aCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL21hcC5oCmluZGV4IDllMTQyY2Y3MDIzLi4z ODgzYzU0Njg3MSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvbWFwLmgK KysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvbWFwLmgKQEAgLTE1MiwxNSArMTUyLDcg QEAgbmFtZXNwYWNlIF9fZGVidWcKIAkJX19nbnVfZGVidWc6Ol9fYmFzZShfX2xhc3QpLAogCQlf X2NvbXAsIF9fYSkgeyB9CiAKLSNpZiBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKLSAgICAgIG1hcCYK LSAgICAgIG9wZXJhdG9yPShjb25zdCBtYXAmIF9feCkKLSAgICAgIHsKLQl0aGlzLT5fTV9zYWZl KCkgPSBfX3g7Ci0JX01fYmFzZSgpID0gX194OwotCXJldHVybiAqdGhpczsKLSAgICAgIH0KLSNl bHNlCisjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAogICAgICAgbWFwJgogICAgICAgb3BlcmF0 b3I9KGNvbnN0IG1hcCYpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvZGVidWcvbXVsdGltYXAuaCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL211bHRp bWFwLmgKaW5kZXggYTA1YjhhODQ5M2UuLjA3M2MxYzM5MjQwIDEwMDY0NAotLS0gYS9saWJzdGRj KystdjMvaW5jbHVkZS9kZWJ1Zy9tdWx0aW1hcC5oCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRl L2RlYnVnL211bHRpbWFwLmgKQEAgLTE1MiwxNSArMTUyLDcgQEAgbmFtZXNwYWNlIF9fZGVidWcK ICAgICAgIG11bHRpbWFwKF9CYXNlX3JlZiBfX3gpCiAgICAgICA6IF9CYXNlKF9feC5fTV9yZWYp IHsgfQogCi0jaWYgX19jcGx1c3BsdXMgPCAyMDExMDNMCi0gICAgICBtdWx0aW1hcCYKLSAgICAg IG9wZXJhdG9yPShjb25zdCBtdWx0aW1hcCYgX194KQotICAgICAgewotCXRoaXMtPl9NX3NhZmUo KSA9IF9feDsKLQlfTV9iYXNlKCkgPSBfX3g7Ci0JcmV0dXJuICp0aGlzOwotICAgICAgfQotI2Vs c2UKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCiAgICAgICBtdWx0aW1hcCYKICAgICAgIG9w ZXJhdG9yPShjb25zdCBtdWx0aW1hcCYpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvbGlic3Rk YysrLXYzL2luY2x1ZGUvZGVidWcvbXVsdGlzZXQuaCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Rl YnVnL211bHRpc2V0LmgKaW5kZXggYTMxMmNjZjZmNTAuLjQ3OTQxMWQ5ZDA2IDEwMDY0NAotLS0g YS9saWJzdGRjKystdjMvaW5jbHVkZS9kZWJ1Zy9tdWx0aXNldC5oCisrKyBiL2xpYnN0ZGMrKy12 My9pbmNsdWRlL2RlYnVnL211bHRpc2V0LmgKQEAgLTE1MiwxNSArMTUyLDcgQEAgbmFtZXNwYWNl IF9fZGVidWcKICAgICAgIG11bHRpc2V0KF9CYXNlX3JlZiBfX3gpCiAgICAgICA6IF9CYXNlKF9f eC5fTV9yZWYpIHsgfQogCi0jaWYgX19jcGx1c3BsdXMgPCAyMDExMDNMCi0gICAgICBtdWx0aXNl dCYKLSAgICAgIG9wZXJhdG9yPShjb25zdCBtdWx0aXNldCYgX194KQotICAgICAgewotCXRoaXMt Pl9NX3NhZmUoKSA9IF9feDsKLQlfTV9iYXNlKCkgPSBfX3g7Ci0JcmV0dXJuICp0aGlzOwotICAg ICAgfQotI2Vsc2UKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCiAgICAgICBtdWx0aXNldCYK ICAgICAgIG9wZXJhdG9yPShjb25zdCBtdWx0aXNldCYpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvc2V0LmggYi9saWJzdGRjKystdjMvaW5jbHVk ZS9kZWJ1Zy9zZXQuaAppbmRleCAwMWRhOTQyZWI3OC4uZTM1ZTVjMWZhYWUgMTAwNjQ0Ci0tLSBh L2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL3NldC5oCisrKyBiL2xpYnN0ZGMrKy12My9pbmNs dWRlL2RlYnVnL3NldC5oCkBAIC0xNTAsMTUgKzE1MCw3IEBAIG5hbWVzcGFjZSBfX2RlYnVnCiAg ICAgICBzZXQoX0Jhc2VfcmVmIF9feCkKICAgICAgIDogX0Jhc2UoX194Ll9NX3JlZikgeyB9CiAK LSNpZiBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKLSAgICAgIHNldCYKLSAgICAgIG9wZXJhdG9yPShj b25zdCBzZXQmIF9feCkKLSAgICAgIHsKLQl0aGlzLT5fTV9zYWZlKCkgPSBfX3g7Ci0JX01fYmFz ZSgpID0gX194OwotCXJldHVybiAqdGhpczsKLSAgICAgIH0KLSNlbHNlCisjaWYgX19jcGx1c3Bs dXMgPj0gMjAxMTAzTAogICAgICAgc2V0JgogICAgICAgb3BlcmF0b3I9KGNvbnN0IHNldCYpID0g ZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvc3RyaW5n IGIvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvc3RyaW5nCmluZGV4IGE4Mzg5NTI4MDAxLi4y MjA5Zjg4ZmQ1NCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvc3RyaW5n CisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL3N0cmluZwpAQCAtMjAxLDE1ICsyMDEs NyBAQCBuYW1lc3BhY2UgX19nbnVfZGVidWcKIAkJICBfX2dsaWJjeHhfY2hlY2tfdmFsaWRfY29u c3RydWN0b3JfcmFuZ2UoX19iZWdpbiwgX19lbmQpKSwKIAkJX19nbnVfZGVidWc6Ol9fYmFzZShf X2VuZCksIF9fYSkgeyB9CiAKLSNpZiBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKLSAgICAgIGJhc2lj X3N0cmluZyYKLSAgICAgIG9wZXJhdG9yPShjb25zdCBiYXNpY19zdHJpbmcmIF9fc3RyKQotICAg ICAgewotCXRoaXMtPl9NX3NhZmUoKSA9IF9fc3RyOwotCV9NX2Jhc2UoKSA9IF9fc3RyOwotCXJl dHVybiAqdGhpczsKLSAgICAgIH0KLSNlbHNlCisjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAog ICAgICAgYmFzaWNfc3RyaW5nJgogICAgICAgb3BlcmF0b3I9KGNvbnN0IGJhc2ljX3N0cmluZyYp ID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvdmVj dG9yIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvdmVjdG9yCmluZGV4IDAzZmQ5NDA1Y2M5 Li5iNTMyYTE2OGUwZSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvdmVj dG9yCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL3ZlY3RvcgpAQCAtNzEsMTggKzcx LDE4IEBAIG5hbWVzcGFjZSBfX2dudV9kZWJ1ZwogCTogX01fZ3VhcmFudGVlZF9jYXBhY2l0eShf X24pCiAgICAgICB7IH0KIAotI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSAgICAgIF9TYWZl X3ZlY3RvcihfU2FmZV92ZWN0b3ImJiBfX3gpIG5vZXhjZXB0Ci0JOiBfU2FmZV92ZWN0b3IoKQot ICAgICAgeyBfX3guX01fZ3VhcmFudGVlZF9jYXBhY2l0eSA9IDA7IH0KLQogICAgICAgX1NhZmVf dmVjdG9yJgotICAgICAgb3BlcmF0b3I9KGNvbnN0IF9TYWZlX3ZlY3RvciYpIG5vZXhjZXB0Cisg ICAgICBvcGVyYXRvcj0oY29uc3QgX1NhZmVfdmVjdG9yJikgX0dMSUJDWFhfTk9FWENFUFQKICAg ICAgIHsKIAlfTV91cGRhdGVfZ3VhcmFudGVlZF9jYXBhY2l0eSgpOwogCXJldHVybiAqdGhpczsK ICAgICAgIH0KIAorI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKKyAgICAgIF9TYWZlX3ZlY3Rv cihfU2FmZV92ZWN0b3ImJiBfX3gpIG5vZXhjZXB0CisJOiBfU2FmZV92ZWN0b3IoKQorICAgICAg eyBfX3guX01fZ3VhcmFudGVlZF9jYXBhY2l0eSA9IDA7IH0KKwogICAgICAgX1NhZmVfdmVjdG9y JgogICAgICAgb3BlcmF0b3I9KF9TYWZlX3ZlY3RvciYmIF9feCkgbm9leGNlcHQKICAgICAgIHsK QEAgLTIzNCwxNiArMjM0LDcgQEAgbmFtZXNwYWNlIF9fZGVidWcKICAgICAgIHZlY3RvcihfQmFz ZV9yZWYgX194KQogICAgICAgOiBfQmFzZShfX3guX01fcmVmKSB7IH0KIAotI2lmIF9fY3BsdXNw bHVzIDwgMjAxMTAzTAotICAgICAgdmVjdG9yJgotICAgICAgb3BlcmF0b3I9KGNvbnN0IHZlY3Rv ciYgX194KQotICAgICAgewotCXRoaXMtPl9NX3NhZmUoKSA9IF9feDsKLQlfTV9iYXNlKCkgPSBf X3g7Ci0JdGhpcy0+X01fdXBkYXRlX2d1YXJhbnRlZWRfY2FwYWNpdHkoKTsKLQlyZXR1cm4gKnRo aXM7Ci0gICAgICB9Ci0jZWxzZQorI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKICAgICAgIHZl Y3RvciYKICAgICAgIG9wZXJhdG9yPShjb25zdCB2ZWN0b3ImKSA9IGRlZmF1bHQ7CiAK --000000000000c0f90605d0895f2a--