From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com [IPv6:2607:f8b0:4864:20::329]) by sourceware.org (Postfix) with ESMTPS id C21443870914 for ; Fri, 15 Jan 2021 03:37:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C21443870914 Received: by mail-ot1-x329.google.com with SMTP id d8so7340236otq.6 for ; Thu, 14 Jan 2021 19:37:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7cg2QOpIb6w94dgrz1xCvDVCSootFOkl3O+agpmac0w=; b=JO2DUtJufuQjMZN7A9bpwxCKByjSh2+GSjov64fl+cEJKVlU7qwnR4QK36CjdrSgDZ R1/NDi5aQ4ALfPLqPKKXWIQh+l0mvzPZFEZ4bkc784K6uK1wzbMuW3fHgufl+aPvImJV xAyEBA+v5iPsxTyV7fzy9b8+LQBe/FxbrWf7ZiY9qIGAXv36aMzpuWovlF+fWi3jgtuH jZeE4EVJFohkUwX5+W+MX6PfZJFbN4X5jskCOSZoKLCW3ToXflRioCZskLSl7bGvZ0mk +1Tpgud3V4KuP5C4AYOq+YUA6UNN5gFxCR2zEbB5Kq4l8jomyyhkzzT/wJ96qnYOQJk6 LOlQ== X-Gm-Message-State: AOAM532hBPo+I+tjhCXEnnt5eyKofNl7n2/YfBQp1Ri3qV9l6yf/91+9 EpGhV0c5jw+HILUp8/gJcJ09Ft9xDDkCBW9Wa75WLGDs X-Google-Smtp-Source: ABdhPJx5vcnkouSZv3/fduui+iNtBZIz3FTxdV81hZG47wrM+5oNzUO+Uny2AApsDxtK9o10gNKxB2g5+o8sOTEt1A4= X-Received: by 2002:a9d:6285:: with SMTP id x5mr6891847otk.179.1610681850089; Thu, 14 Jan 2021 19:37:30 -0800 (PST) MIME-Version: 1.0 References: <27498bbc768372541e4379794656ac2778d33035.1610471272.git.szabolcs.nagy@arm.com> <20210113095053.GA2379@arm.com> <20210114111757.GA11466@arm.com> In-Reply-To: <20210114111757.GA11466@arm.com> From: "H.J. Lu" Date: Thu, 14 Jan 2021 19:36:53 -0800 Message-ID: Subject: Re: [PATCH v3 2/5] Make libc symbols hidden in static PIE To: Szabolcs Nagy Cc: GNU C Library Content-Type: multipart/mixed; boundary="00000000000085f3e905b8e8175a" X-Spam-Status: No, score=-3036.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2021 03:37:34 -0000 --00000000000085f3e905b8e8175a Content-Type: text/plain; charset="UTF-8" On Thu, Jan 14, 2021 at 3:18 AM Szabolcs Nagy wrote: > > The 01/13/2021 09:50, Szabolcs Nagy via Libc-alpha wrote: > > The 01/12/2021 17:19, H.J. Lu wrote: > > > On Tue, Jan 12, 2021 at 4:33 PM H.J. Lu wrote: > > > > On Tue, Jan 12, 2021 at 4:02 PM H.J. Lu wrote: > > > > > See: > > > > > > > > > > https://sourceware.org/bugzilla/show_bug.cgi?id=14961 > > > > > > > > > /* Mark all symbols hidden in static PIE libc to avoid GOT indirections. */ > > > > -#if BUILD_PIE_DEFAULT && IS_IN (libc) && !defined LIBC_NONSHARED > > > > +#if BUILD_PIE_DEFAULT && !defined NO_HIDDEN_EXTERN_FUNC_IN_PIE \ > > > > + && IS_IN (libc) && !defined LIBC_NONSHARED > > > > # pragma GCC visibility push(hidden) > > > > #endif > > > > > > > > > > This works on i686. > > The series i plan to commit today is in nsz/bug27072 now, > > This is the v4 of this patch: > > Hidden matters with static PIE: extern symbol access in position > independent code usually involves GOT indirections which needs > RELATIVE relocs in a static linked PIE. Hidden visibility avoids > indirections and RELATIVE relocs on targets that can access symbols > pc-relative. > > The check should use IS_IN_LIB instead of IS_IN(libc) since all > static libraries can use hidden visibility to avoid indirections, > however the test system links objects from libcrypt.a into dynamic > linked test binaries so hidden does not work there. I think mixing > static and shared libc components in the same binary should not be > supported usage, but to be safe only use hidden in libc.a. > > There are targets (i686) where hidden visibility functions are > problematic in PIE code so hidden cannot be applied to all symbols. > Then static PIE requires extern object access without relocations > (e.g. by relying on copy relocations in shared libraries instead of > GOT access in PIE code). See bug 14961. It isn't about copy relocations. It is IFUNC, PLT and PIE. I needed additional patches to make static PIE to work on i386 and x86-64. I am enclosing my patches. Please include them in your patch set. > From -static-pie linked 'int main(){}' this shaves off 73 relative > relocs on aarch64 and reduces code size too. -- H.J. --00000000000085f3e905b8e8175a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-libmvec-Add-extra-test-objs-to-test-extras.patch" Content-Disposition: attachment; filename="0001-libmvec-Add-extra-test-objs-to-test-extras.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjxq9rcz0 RnJvbSAxNTQ4ODg5MDIyMGE4YzU4MDY4OWU2Zjc4YTM4ODQ3ODUzYjc4ODUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTQgSmFuIDIwMjEgMTg6Mzk6MjQgLTA4MDAKU3ViamVjdDogW1BBVENIIDEvNF0gbGli bXZlYzogQWRkIGV4dHJhLXRlc3Qtb2JqcyB0byB0ZXN0LWV4dHJhcwoKQWRkIGV4dHJhLXRlc3Qt b2JqcyB0byB0ZXN0LWV4dHJhcyBzbyB0aGF0IHRoZXkgYXJlIGNvbXBpbGVkIHdpdGgKLURNT0RV TEVfTkFNRT10ZXN0c3VpdGUgaW5zdGVhZCBvZiAtRE1PRFVMRV9OQU1FPWxpYmMuCi0tLQogc3lz ZGVwcy94ODZfNjQvZnB1L01ha2VmaWxlIHwgOCArKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L2ZwdS9NYWtlZmlsZSBi L3N5c2RlcHMveDg2XzY0L2ZwdS9NYWtlZmlsZQppbmRleCBhNGZmMjcyM2E4Li45YTRiZGQwNzVj IDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Nl82NC9mcHUvTWFrZWZpbGUKKysrIGIvc3lzZGVwcy94 ODZfNjQvZnB1L01ha2VmaWxlCkBAIC0zMSw2ICszMSwxMiBAQCBsaWJtdmVjLXRlc3RzICs9IGRv dWJsZS12bGVuMiBkb3VibGUtdmxlbjQgZG91YmxlLXZsZW40LWF2eDIgXAogdGVzdHMgKz0gdGVz dC1kb3VibGUtbGlibXZlYy1zaW5jb3MgdGVzdC1kb3VibGUtbGlibXZlYy1zaW5jb3MtYXZ4IFwK IAkgdGVzdC1kb3VibGUtbGlibXZlYy1zaW5jb3MtYXZ4MiB0ZXN0LWZsb2F0LWxpYm12ZWMtc2lu Y29zZiBcCiAJIHRlc3QtZmxvYXQtbGlibXZlYy1zaW5jb3NmLWF2eCB0ZXN0LWZsb2F0LWxpYm12 ZWMtc2luY29zZi1hdngyCit0ZXN0LWV4dHJhcyArPSB0ZXN0LWRvdWJsZS1saWJtdmVjLXNpbmNv cy1hdngtbWFpbiBcCisJCSAgIHRlc3QtZG91YmxlLWxpYm12ZWMtc2luY29zLWF2eDItbWFpbiBc CisJCSAgIHRlc3QtZG91YmxlLWxpYm12ZWMtc2luY29zLW1haW4gXAorCQkgICB0ZXN0LWZsb2F0 LWxpYm12ZWMtc2luY29zZi1hdngtbWFpbiBcCisJCSAgIHRlc3QtZmxvYXQtbGlibXZlYy1zaW5j b3NmLWF2eDItbWFpbiBcCisJCSAgIHRlc3QtZmxvYXQtbGlibXZlYy1zaW5jb3NmLW1haW4KIGV4 dHJhLXRlc3Qtb2JqcyArPSB0ZXN0LWRvdWJsZS1saWJtdmVjLXNpbmNvcy1hdngtbWFpbi5vIFwK IAkJICAgdGVzdC1kb3VibGUtbGlibXZlYy1zaW5jb3MtYXZ4Mi1tYWluLm8gXAogCQkgICB0ZXN0 LWRvdWJsZS1saWJtdmVjLXNpbmNvcy1tYWluLm8gXApAQCAtNjYsNiArNzIsOCBAQCBpZmVxICh5 ZXMsJChjb25maWctY2ZsYWdzLWF2eDUxMikpCiBsaWJtdmVjLXRlc3RzICs9IGRvdWJsZS12bGVu OCBmbG9hdC12bGVuMTYKIHRlc3RzICs9IHRlc3QtZG91YmxlLWxpYm12ZWMtc2luY29zLWF2eDUx MiBcCiAJIHRlc3QtZmxvYXQtbGlibXZlYy1zaW5jb3NmLWF2eDUxMgordGVzdC1leHRyYXMgKz0g dGVzdC1kb3VibGUtbGlibXZlYy1zaW5jb3MtYXZ4NTEyLW1haW4gXAorCSAgICAgICB0ZXN0LWZs b2F0LWxpYm12ZWMtc2luY29zZi1hdng1MTItbWFpbgogZXh0cmEtdGVzdC1vYmpzICs9IHRlc3Qt ZG91YmxlLWxpYm12ZWMtc2luY29zLWF2eDUxMi1tYWluLm8gXAogCQkgICB0ZXN0LWZsb2F0LWxp Ym12ZWMtc2luY29zZi1hdng1MTItbWFpbi5vCiAKLS0gCjIuMjkuMgoK --00000000000085f3e905b8e8175a Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Make-all-symbols-used-by-_dl_relocate_static_pie-hid.patch" Content-Disposition: attachment; filename="0002-Make-all-symbols-used-by-_dl_relocate_static_pie-hid.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjxq9xga1 RnJvbSBlMWUxMGNkNmJkNTJkOTA2MWYxMzhmNDliMzVkNDkzOWUxY2Q1NjkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTQgSmFuIDIwMjEgMTY6NDA6NDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDIvNF0gTWFr ZSBhbGwgc3ltYm9scyB1c2VkIGJ5IF9kbF9yZWxvY2F0ZV9zdGF0aWNfcGllIGhpZGRlbgoKT24g aTM4NiwgYWxsIGNhbGxzIHRvIElGVU5DIGZ1bmN0aW9ucyBtdXN0IGdvIHRocm91Z2ggUExUIGFu ZCBjYWxscyB0bwpoaWRkZW4gZnVuY3Rpb25zIENBTk5PVCBnbyB0aHJvdWdoIFBMVCBpbiBQSUUg c2luY2UgRUJYIHVzZWQgaW4gUElFIFBMVAptYXkgbm90IGJlIHNldCB1cCBmb3IgbG9jYWwgY2Fs bHMgdG8gaGlkZGVuIElGVU5DIGZ1bmN0aW9ucy4KCkV2ZW4gaWYgd2UgY2FuJ3QgbWFrZSBhbGwg bGliYyBzeW1ib2xzIGhpZGRlbiBmb3Igc3RhdGljIFBJRSBvbiBpMzg2LCB3ZQptdXN0IG1ha2Ug YWxsIHN5bWJvbHMgdXNlZCBieSBfZGxfcmVsb2NhdGVfc3RhdGljX3BpZSBoaWRkZW4uCi0tLQog ZWxmL2RsLXJlbG9jLXN0YXRpYy1waWUuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvZWxmL2RsLXJlbG9jLXN0YXRpYy1waWUuYyBiL2VsZi9kbC1y ZWxvYy1zdGF0aWMtcGllLmMKaW5kZXggYThkOTY0MDYxZS4uY2MzNGMyZDJmZSAxMDA2NDQKLS0t IGEvZWxmL2RsLXJlbG9jLXN0YXRpYy1waWUuYworKysgYi9lbGYvZGwtcmVsb2Mtc3RhdGljLXBp ZS5jCkBAIC0xNyw2ICsxNyw3IEBACiAgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KIAogI2lmIEVOQUJMRV9TVEFUSUNfUElFCisjcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1 c2goaGlkZGVuKQogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPGxkc29kZWZzLmg+CiAj aW5jbHVkZSAiZHluYW1pYy1saW5rLmgiCi0tIAoyLjI5LjIKCg== --00000000000085f3e905b8e8175a Content-Type: text/x-patch; charset="US-ASCII"; name="0003-i386-Call-_dl_aux_init-after-relocating-static-PIE.patch" Content-Disposition: attachment; filename="0003-i386-Call-_dl_aux_init-after-relocating-static-PIE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjxqa1iw2 RnJvbSBjNWZmYTQ2NTkxNTUwZDk0NWIwMDlmMGUzYmNmNjY2MDNkNDhhYzBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTQgSmFuIDIwMjEgMTM6MjY6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDMvNF0gaTM4 NjogQ2FsbCBfZGxfYXV4X2luaXQgYWZ0ZXIgcmVsb2NhdGluZyBzdGF0aWMgUElFCgpJbiBpMzg2 IHN0YXRpYyBQSUUsIHdlIG5lZWQgdG8gY2FsbCBfZGxfYXV4X2luaXQgYWZ0ZXIgcmVsb2NhdGlu ZyBzdGF0aWMKUElFIHNvIHRoYXQgc3ltYm9sIGFkZHJlc3NlcyBpbiBfZGxfYXV4X2luaXQgYW5k IEFSQ0hfU0VUVVBfVExTIGFyZSBpbgpzeW5jLiAgQWxzbyBpbiBpMzg2IHN0YXRpYyBQSUUsIHNp bmNlIF9fbGliY19pbml0X3NlY3VyZSBpcyBjYWxsZWQgYmVmb3JlCkFSQ0hfU0VUVVBfVExTLCBp dCBtdXN0IHVzZSAiaW50ICQweDgwIiBmb3Igc3lzdGVtIGNhbGxzLiAgVXBkYXRlCl9fbGliY19p bml0X3NlY3VyZSB0byB1c2UgX19nZXRldWlkX3N0YXJ0dXAsIF9fZ2V0dWlkX3N0YXJ0dXAsCl9f Z2V0ZWdpZF9zdGFydHVwIGFuZCBfX2dldGdpZF9zdGFydHVwLgotLS0KIGNvbmZpZy5oLmluICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrKwogY3N1L2xpYmMt c3RhcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKysrKysK IGVsZi9lbmJsLXNlY3VyZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0 ICsrLS0KIGluY2x1ZGUvdW5pc3RkLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrKysKIHN5c2RlcHMvaTM4Ni9jb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzICsrKwogc3lzZGVwcy9pMzg2L2NvbmZpZ3VyZS5hYyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKysrKwogc3lzZGVwcy9tYWNoL2h1cmQvZ2V0ZWdpZC5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3lzZGVwcy9tYWNoL2h1cmQvZ2V0ZXVpZC5jICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3lzZGVwcy9tYWNoL2h1cmQvZ2V0Z2lkLmMg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3lzZGVwcy9tYWNoL2h1cmQvZ2V0dWlk LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3lzZGVwcy91bml4L3N5c2NhbGxz Lmxpc3QgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogc3lzZGVwcy91bml4L3N5 c3YvbGludXgvYXJtL3N5c2NhbGxzLmxpc3QgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHN5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L2kzODYvTWFrZWZpbGUgICAgICAgICAgICAgICB8ICA4ICsrKysr KysrCiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2dldGVnaWQtc3RhcnR1cC5TICAgICAg fCAxMiArKysrKysrKysrKysKIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvZ2V0ZXVpZC1z dGFydHVwLlMgICAgICB8IDEyICsrKysrKysrKysrKwogc3lzZGVwcy91bml4L3N5c3YvbGludXgv aTM4Ni9nZXRnaWQtc3RhcnR1cC5TICAgICAgIHwgMTIgKysrKysrKysrKysrCiBzeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9pMzg2L2dldHVpZC1zdGFydHVwLlMgICAgICAgfCAxMiArKysrKysrKysr KysKIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzY2FsbHMubGlzdCAgICAgICAgICB8 ICA4ICsrKystLS0tCiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zMzkwL3MzOTAtMzIvc3lzY2Fs bHMubGlzdCAgfCAgOCArKysrLS0tLQogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gvc3lzY2Fs bHMubGlzdCAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L3NwYXJjL3NwYXJjMzIvc3lzY2FsbHMubGlzdCB8ICA4ICsrKystLS0tCiBzeXNkZXBzL3VuaXgv c3lzdi9saW51eC9zeXNjYWxscy5saXN0ICAgICAgICAgICAgICAgfCAgNCArKy0tCiAyMiBmaWxl cyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9nZXRlZ2lkLXN0YXJ0dXAuUwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvZ2V0ZXVpZC1z dGFydHVwLlMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2 L2dldGdpZC1zdGFydHVwLlMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9pMzg2L2dldHVpZC1zdGFydHVwLlMKCmRpZmYgLS1naXQgYS9jb25maWcuaC5pbiBiL2Nv bmZpZy5oLmluCmluZGV4IDk0N2ZlZWZmMzYuLjcwZDNjYmRlMGYgMTAwNjQ0Ci0tLSBhL2NvbmZp Zy5oLmluCisrKyBiL2NvbmZpZy5oLmluCkBAIC05NCw2ICs5NCw5IEBACiAgICBhbmQgZG9lcyBu b3QgbmVlZCByZWxvY2F0aW9ucy4gICovCiAjdW5kZWYJUElfU1RBVElDX0FORF9ISURERU4KIAor LyogRGVmaW5lIGlmIF9kbF9hdXhfaW5pdCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIHJlbG9jYXRp bmcgc3RhdGljIFBJRS4gICovCisjdW5kZWYgQ0FMTF9ETF9BVVhfSU5JVF9BRlRFUl9SRUxPQ0FU SU5HX1NUQVRJQ19QSUUKKwogLyogRGVmaW5lIHRoaXMgdG8gZGlzYWJsZSB0aGUgJ2hpZGRlbl9w cm90bycgZXQgYWwgbWFjcm9zIGluCiAgICBpbmNsdWRlL2xpYmMtc3ltYm9scy5oIHRoYXQgYXZv aWQgUExUIHNsb3RzIGluIFBJRS4gICovCiAjdW5kZWYgIE5PX0hJRERFTl9FWFRFUk5fRlVOQ19J Tl9QSUUKZGlmZiAtLWdpdCBhL2NzdS9saWJjLXN0YXJ0LmMgYi9jc3UvbGliYy1zdGFydC5jCmlu ZGV4IGZiNjRjZGIyYzkuLmU4MmM5NDczYzggMTAwNjQ0Ci0tLSBhL2NzdS9saWJjLXN0YXJ0LmMK KysrIGIvY3N1L2xpYmMtc3RhcnQuYwpAQCAtMTYyLDcgKzE2MiwxMCBAQCBMSUJDX1NUQVJUX01B SU4gKGludCAoKm1haW4pIChpbnQsIGNoYXIgKiosIGNoYXIgKiogTUFJTl9BVVhWRUNfREVDTCks CiAgICAgYXV4dmVjID0gKEVsZlcoYXV4dl90KSAqKSBldnA7CiAgIH0KICMgIGVuZGlmCisjICBp ZiAhKEJVSUxEX1BJRV9ERUZBVUxUICYmIGRlZmluZWQgSEFWRV9BVVhfVkVDVE9SIFwKKwkmJiBk ZWZpbmVkIENBTExfRExfQVVYX0lOSVRfQUZURVJfUkVMT0NBVElOR19TVEFUSUNfUElFKQogICBf ZGxfYXV4X2luaXQgKGF1eHZlYyk7CisjICBlbmRpZgogIyBlbmRpZgogCiAgIC8qIEluaXRpYWxp emUgdmVyeSBlYXJseSBzbyB0aGF0IHR1bmFibGVzIGNhbiB1c2UgaXQuICAqLwpAQCAtMTc3LDYg KzE4MCwxMSBAQCBMSUJDX1NUQVJUX01BSU4gKGludCAoKm1haW4pIChpbnQsIGNoYXIgKiosIGNo YXIgKiogTUFJTl9BVVhWRUNfREVDTCksCiAgICAgIG11c3QgYmUgYXZvaWRlZC4gICovCiAgIF9k bF9yZWxvY2F0ZV9zdGF0aWNfcGllICgpOwogCisjIGlmIEJVSUxEX1BJRV9ERUZBVUxUICYmIGRl ZmluZWQgSEFWRV9BVVhfVkVDVE9SIFwKKyAgICAgJiYgZGVmaW5lZCBDQUxMX0RMX0FVWF9JTklU X0FGVEVSX1JFTE9DQVRJTkdfU1RBVElDX1BJRQorICBfZGxfYXV4X2luaXQgKGF1eHZlYyk7Cisj IGVuZGlmCisKICAgLyogUGVyZm9ybSBJUkVMeyxBfSByZWxvY2F0aW9ucy4gICovCiAgIEFSQ0hf U0VUVVBfSVJFTCAoKTsKIApkaWZmIC0tZ2l0IGEvZWxmL2VuYmwtc2VjdXJlLmMgYi9lbGYvZW5i bC1zZWN1cmUuYwppbmRleCBiYzhjNWU5NmQyLi4yZmFkZjk2ZWVkIDEwMDY0NAotLS0gYS9lbGYv ZW5ibC1zZWN1cmUuYworKysgYi9lbGYvZW5ibC1zZWN1cmUuYwpAQCAtMzEsNiArMzEsNiBAQCB2 b2lkCiBfX2xpYmNfaW5pdF9zZWN1cmUgKHZvaWQpCiB7CiAgIGlmIChfX2xpYmNfZW5hYmxlX3Nl Y3VyZV9kZWNpZGVkID09IDApCi0gICAgX19saWJjX2VuYWJsZV9zZWN1cmUgPSAoX19nZXRldWlk ICgpICE9IF9fZ2V0dWlkICgpCi0JCQkgICAgfHwgX19nZXRlZ2lkICgpICE9IF9fZ2V0Z2lkICgp KTsKKyAgICBfX2xpYmNfZW5hYmxlX3NlY3VyZSA9IChfX2dldGV1aWRfc3RhcnR1cCAoKSAhPSBf X2dldHVpZF9zdGFydHVwICgpCisJCQkgICAgfHwgX19nZXRlZ2lkX3N0YXJ0dXAgKCkgIT0gX19n ZXRnaWRfc3RhcnR1cCAoKSk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VuaXN0ZC5oIGIvaW5j bHVkZS91bmlzdGQuaAppbmRleCA1NGJlY2JjOWViLi42N2ZlNzVmMWUwIDEwMDY0NAotLS0gYS9p bmNsdWRlL3VuaXN0ZC5oCisrKyBiL2luY2x1ZGUvdW5pc3RkLmgKQEAgLTExMyw5ICsxMTMsMTMg QEAgbGliY19oaWRkZW5fcHJvdG8gKF9fZ2V0cGlkKQogZXh0ZXJuIF9fcGlkX3QgX19nZXRwcGlk ICh2b2lkKTsKIGV4dGVybiBfX3BpZF90IF9fc2V0c2lkICh2b2lkKSBhdHRyaWJ1dGVfaGlkZGVu OwogZXh0ZXJuIF9fdWlkX3QgX19nZXR1aWQgKHZvaWQpIGF0dHJpYnV0ZV9oaWRkZW47CitleHRl cm4gX191aWRfdCBfX2dldHVpZF9zdGFydHVwICh2b2lkKSBhdHRyaWJ1dGVfaGlkZGVuOwogZXh0 ZXJuIF9fdWlkX3QgX19nZXRldWlkICh2b2lkKSBhdHRyaWJ1dGVfaGlkZGVuOworZXh0ZXJuIF9f dWlkX3QgX19nZXRldWlkX3N0YXJ0dXAgKHZvaWQpIGF0dHJpYnV0ZV9oaWRkZW47CiBleHRlcm4g X19naWRfdCBfX2dldGdpZCAodm9pZCkgYXR0cmlidXRlX2hpZGRlbjsKK2V4dGVybiBfX2dpZF90 IF9fZ2V0Z2lkX3N0YXJ0dXAgKHZvaWQpIGF0dHJpYnV0ZV9oaWRkZW47CiBleHRlcm4gX19naWRf dCBfX2dldGVnaWQgKHZvaWQpIGF0dHJpYnV0ZV9oaWRkZW47CitleHRlcm4gX19naWRfdCBfX2dl dGVnaWRfc3RhcnR1cCAodm9pZCkgYXR0cmlidXRlX2hpZGRlbjsKIGV4dGVybiBpbnQgX19nZXRn cm91cHMgKGludCBfX3NpemUsIF9fZ2lkX3QgX19saXN0W10pIGF0dHJpYnV0ZV9oaWRkZW47CiBs aWJjX2hpZGRlbl9wcm90byAoX19nZXRwZ2lkKQogZXh0ZXJuIGludCBfX2dyb3VwX21lbWJlciAo X19naWRfdCBfX2dpZCkgYXR0cmlidXRlX2hpZGRlbjsKZGlmZiAtLWdpdCBhL3N5c2RlcHMvaTM4 Ni9jb25maWd1cmUgYi9zeXNkZXBzL2kzODYvY29uZmlndXJlCmluZGV4IDkwYzYzY2FmMzUuLjYw ZjdhZmQ2NmIgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvaTM4Ni9jb25maWd1cmUKKysrIGIvc3lzZGVw cy9pMzg2L2NvbmZpZ3VyZQpAQCAtMTEzLDYgKzExMyw5IEBAIGZpCiAkYXNfZWNobyAiI2RlZmlu ZSBQSV9TVEFUSUNfQU5EX0hJRERFTiAxIiA+PmNvbmZkZWZzLmgKIAogCiskYXNfZWNobyAiI2Rl ZmluZSBDQUxMX0RMX0FVWF9JTklUX0FGVEVSX1JFTE9DQVRJTkdfU1RBVElDX1BJRSAxIiA+PmNv bmZkZWZzLmgKKworCiBpZiB0ZXN0IHgiJG11bHRpX2FyY2giICE9IHhubzsgdGhlbgogICAkYXNf ZWNobyAiI2RlZmluZSBOT19ISURERU5fRVhURVJOX0ZVTkNfSU5fUElFIDEiID4+Y29uZmRlZnMu aAogCmRpZmYgLS1naXQgYS9zeXNkZXBzL2kzODYvY29uZmlndXJlLmFjIGIvc3lzZGVwcy9pMzg2 L2NvbmZpZ3VyZS5hYwppbmRleCA2ZDIwNjhkMmIzLi4wYTdmMjMzZGU4IDEwMDY0NAotLS0gYS9z eXNkZXBzL2kzODYvY29uZmlndXJlLmFjCisrKyBiL3N5c2RlcHMvaTM4Ni9jb25maWd1cmUuYWMK QEAgLTcyLDYgKzcyLDEwIEBAIGRubCBJdCBpcyBhbHdheXMgcG9zc2libGUgdG8gYWNjZXNzIHN0 YXRpYyBhbmQgaGlkZGVuIHN5bWJvbHMgaW4gYW4KIGRubCBwb3NpdGlvbiBpbmRlcGVuZGVudCB3 YXkuCiBBQ19ERUZJTkUoUElfU1RBVElDX0FORF9ISURERU4pCiAKK2RubCBDYWxsIF9kbF9hdXhf aW5pdCBhZnRlciByZWxvY2F0aW5nIHN0YXRpYyBQSUUgc28gdGhhdCBzeW1ib2wgYWRkcmVzc2Vz CitkbmwgaW4gX2RsX2F1eF9pbml0IGFuZCBBUkNIX1NFVFVQX1RMUyBhcmUgaW4gc3luYy4KK0FD X0RFRklORShDQUxMX0RMX0FVWF9JTklUX0FGVEVSX1JFTE9DQVRJTkdfU1RBVElDX1BJRSkKKwog ZG5sIFdoZW4gbXVsdGktYXJjaCBpcyBlbmFibGVkLCBhbGwgZXh0ZXJuYWwgZnVuY3Rpb25zIG11 c3QgYmUgY2FsbGVkCiBkbmwgdmlhIFBJQyBQTFQgaW4gUElFLCB3aGljaCByZXF1aXJlcyBzZXR0 aW5nIHVwIEVCWCByZWdpc3Rlci4KIGlmIHRlc3QgeCIkbXVsdGlfYXJjaCIgIT0geG5vOyB0aGVu CmRpZmYgLS1naXQgYS9zeXNkZXBzL21hY2gvaHVyZC9nZXRlZ2lkLmMgYi9zeXNkZXBzL21hY2gv aHVyZC9nZXRlZ2lkLmMKaW5kZXggNWEzZGIyMjc0Ni4uZGE4NjBkMzU0NCAxMDA2NDQKLS0tIGEv c3lzZGVwcy9tYWNoL2h1cmQvZ2V0ZWdpZC5jCisrKyBiL3N5c2RlcHMvbWFjaC9odXJkL2dldGVn aWQuYwpAQCAtNTQsMyArNTQsNCBAQCBfX2dldGVnaWQgKHZvaWQpCiB9CiAKIHdlYWtfYWxpYXMg KF9fZ2V0ZWdpZCwgZ2V0ZWdpZCkKK3dlYWtfYWxpYXMgKF9fZ2V0ZWdpZCwgX19nZXRlZ2lkX3N0 YXJ0dXApCmRpZmYgLS1naXQgYS9zeXNkZXBzL21hY2gvaHVyZC9nZXRldWlkLmMgYi9zeXNkZXBz L21hY2gvaHVyZC9nZXRldWlkLmMKaW5kZXggYTdhZjVhOWQwZC4uZWVjZGI3MzgzYiAxMDA2NDQK LS0tIGEvc3lzZGVwcy9tYWNoL2h1cmQvZ2V0ZXVpZC5jCisrKyBiL3N5c2RlcHMvbWFjaC9odXJk L2dldGV1aWQuYwpAQCAtNTQsMyArNTQsNCBAQCBfX2dldGV1aWQgKHZvaWQpCiB9CiAKIHdlYWtf YWxpYXMgKF9fZ2V0ZXVpZCwgZ2V0ZXVpZCkKK3dlYWtfYWxpYXMgKF9fZ2V0ZXVpZCwgX19nZXRl dWlkX3N0YXJ0dXApCmRpZmYgLS1naXQgYS9zeXNkZXBzL21hY2gvaHVyZC9nZXRnaWQuYyBiL3N5 c2RlcHMvbWFjaC9odXJkL2dldGdpZC5jCmluZGV4IGFhMTM4ODRhOGYuLjRmOTQxNGZlZTcgMTAw NjQ0Ci0tLSBhL3N5c2RlcHMvbWFjaC9odXJkL2dldGdpZC5jCisrKyBiL3N5c2RlcHMvbWFjaC9o dXJkL2dldGdpZC5jCkBAIC01MSwzICs1MSw0IEBAIF9fZ2V0Z2lkICh2b2lkKQogfQogCiB3ZWFr X2FsaWFzIChfX2dldGdpZCwgZ2V0Z2lkKQord2Vha19hbGlhcyAoX19nZXRnaWQsIF9fZ2V0Z2lk X3N0YXJ0dXApCmRpZmYgLS1naXQgYS9zeXNkZXBzL21hY2gvaHVyZC9nZXR1aWQuYyBiL3N5c2Rl cHMvbWFjaC9odXJkL2dldHVpZC5jCmluZGV4IGZjNGE0NDE1NjkuLjdhNzBkMDViZjggMTAwNjQ0 Ci0tLSBhL3N5c2RlcHMvbWFjaC9odXJkL2dldHVpZC5jCisrKyBiL3N5c2RlcHMvbWFjaC9odXJk L2dldHVpZC5jCkBAIC01MSwzICs1MSw0IEBAIF9fZ2V0dWlkICh2b2lkKQogfQogCiB3ZWFrX2Fs aWFzIChfX2dldHVpZCwgZ2V0dWlkKQord2Vha19hbGlhcyAoX19nZXR1aWQsIF9fZ2V0dWlkX3N0 YXJ0dXApCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzY2FsbHMubGlzdCBiL3N5c2RlcHMv dW5peC9zeXNjYWxscy5saXN0CmluZGV4IDcyMDljMjQxMTAuLjY4NTBiYzU5MTMgMTAwNjQ0Ci0t LSBhL3N5c2RlcHMvdW5peC9zeXNjYWxscy5saXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXNjYWxs cy5saXN0CkBAIC0yMSw3ICsyMSw3IEBAIGZjbnRsCQktCWZjbnRsCQlDaTppaUYJX19saWJjX2Zj bnRsCV9fZmNudGwgZmNudGwKIGZzdGF0ZnMJCS0JZnN0YXRmcwkJaTppcAlfX2ZzdGF0ZnMJZnN0 YXRmcwogZnRydW5jYXRlCS0JZnRydW5jYXRlCWk6aWkJX19mdHJ1bmNhdGUJZnRydW5jYXRlCiBn ZXRkb21haW4JLQlnZXRkb21haW5uYW1lCWk6c2kJZ2V0ZG9tYWlubmFtZQotZ2V0Z2lkCQktCWdl dGdpZAkJRWk6CV9fZ2V0Z2lkCWdldGdpZAorZ2V0Z2lkCQktCWdldGdpZAkJRWk6CV9fZ2V0Z2lk CWdldGdpZAkJX19nZXRnaWRfc3RhcnR1cAogZ2V0Z3JvdXBzCS0JZ2V0Z3JvdXBzCWk6aXAJX19n ZXRncm91cHMJZ2V0Z3JvdXBzCiBnZXRob3N0aWQJLQlnZXRob3N0aWQJaToJZ2V0aG9zdGlkCiBn ZXRob3N0bmFtZQktCWdldGhvc3RuYW1lCWk6Ym4JX19nZXRob3N0bmFtZQlnZXRob3N0bmFtZQpA QCAtMzEsNyArMzEsNyBAQCBnZXRwcmlvcml0eQktCWdldHByaW9yaXR5CWk6aWkJX19nZXRwcmlv cml0eQlnZXRwcmlvcml0eQogZ2V0cmxpbWl0CS0JZ2V0cmxpbWl0CWk6aXAJX19nZXRybGltaXQJ Z2V0cmxpbWl0CiBnZXRzb2NrbmFtZQktCWdldHNvY2tuYW1lCWk6aWJOCV9fZ2V0c29ja25hbWUJ Z2V0c29ja25hbWUKIGdldHNvY2tvcHQJLQlnZXRzb2Nrb3B0CWk6aWlpQk4JZ2V0c29ja29wdAot Z2V0dWlkCQktCWdldHVpZAkJRWk6CV9fZ2V0dWlkCWdldHVpZAorZ2V0dWlkCQktCWdldHVpZAkJ RWk6CV9fZ2V0dWlkCWdldHVpZAkJX19nZXR1aWRfc3RhcnR1cAogaW9jdGwJCS0JaW9jdGwJCWk6 aWlJCV9faW9jdGwJCWlvY3RsCiBraWxsCQktCWtpbGwJCWk6aWkJX19raWxsCQlraWxsCiBsaW5r CQktCWxpbmsJCWk6c3MJX19saW5rCQlsaW5rCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9hcm0vc3lzY2FsbHMubGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FybS9z eXNjYWxscy5saXN0CmluZGV4IDEzNDQxZjdlYjQuLjRiNWIxZjE5NjAgMTAwNjQ0Ci0tLSBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FybS9zeXNjYWxscy5saXN0CisrKyBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L2FybS9zeXNjYWxscy5saXN0CkBAIC00LDEwICs0LDEwIEBAIGNob3duCQkt CWNob3duMzIJCWk6c2lpCV9fY2hvd24JCWNob3duCiBsY2hvd24JCS0JbGNob3duMzIJaTpzaWkJ X19sY2hvd24JbGNob3duCiBmY2hvd24JCS0JZmNob3duMzIJaTppaWkJX19mY2hvd24JZmNob3du CiAKLWdldGVnaWQJCS0JZ2V0ZWdpZDMyCUVpOglfX2dldGVnaWQJZ2V0ZWdpZAotZ2V0ZXVpZAkJ LQlnZXRldWlkMzIJRWk6CV9fZ2V0ZXVpZAlnZXRldWlkCi1nZXRnaWQJCS0JZ2V0Z2lkMzIJRWk6 CV9fZ2V0Z2lkCWdldGdpZAotZ2V0dWlkCQktCWdldHVpZDMyCUVpOglfX2dldHVpZAlnZXR1aWQK K2dldGVnaWQJCS0JZ2V0ZWdpZDMyCUVpOglfX2dldGVnaWQJZ2V0ZWdpZAkJX19nZXRlZ2lkX3N0 YXJ0dXAKK2dldGV1aWQJCS0JZ2V0ZXVpZDMyCUVpOglfX2dldGV1aWQJZ2V0ZXVpZAkJX19nZXRl Z2lkX3N0YXJ0dXAKK2dldGdpZAkJLQlnZXRnaWQzMglFaToJX19nZXRnaWQJZ2V0Z2lkCQlfX2dl dGdpZF9zdGFydHVwCitnZXR1aWQJCS0JZ2V0dWlkMzIJRWk6CV9fZ2V0dWlkCWdldHVpZAkJX19n ZXR1aWRfc3RhcnR1cAogZ2V0cmVzZ2lkCS0JZ2V0cmVzZ2lkMzIJaTpwcHAJX19nZXRyZXNnaWQJ Z2V0cmVzZ2lkCiBnZXRyZXN1aWQJLQlnZXRyZXN1aWQzMglpOnBwcAlfX2dldHJlc3VpZAlnZXRy ZXN1aWQKIGdldGdyb3VwcwktCWdldGdyb3VwczMyCWk6aXAJX19nZXRncm91cHMJZ2V0Z3JvdXBz CmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L01ha2VmaWxlIGIvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9NYWtlZmlsZQppbmRleCBkYTcxNmUyYzFiLi5lMzcz MmJjMWE4IDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L01ha2VmaWxl CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvTWFrZWZpbGUKQEAgLTIzLDYgKzIz LDE0IEBAIGxpYnB0aHJlYWQtc3lzZGVwX3JvdXRpbmVzICs9IGxpYmMtZG8tc3lzY2FsbAogbGli cHRocmVhZC1zaGFyZWQtb25seS1yb3V0aW5lcyArPSBsaWJjLWRvLXN5c2NhbGwKIGVuZGlmCiAK K2lmZXEgKCQoc3ViZGlyKSxwb3NpeCkKK3N5c2RlcF9yb3V0aW5lcyArPSBcCisgIGdldGVnaWQt c3RhcnR1cCBcCisgIGdldGV1aWQtc3RhcnR1cCBcCisgIGdldGdpZC1zdGFydHVwIFwKKyAgZ2V0 dWlkLXN0YXJ0dXAKK2VuZGlmCisKIGlmZXEgKCQoc3ViZGlyKSxzdGRsaWIpCiBnZW4tYXMtY29u c3QtaGVhZGVycyArPSB1Y29udGV4dF9pLnN5bQogZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L2kzODYvZ2V0ZWdpZC1zdGFydHVwLlMgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9pMzg2L2dldGVnaWQtc3RhcnR1cC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjRlMmNiMDEzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9pMzg2L2dldGVnaWQtc3RhcnR1cC5TCkBAIC0wLDAgKzEsMTIgQEAKKyNpZm5k ZWYgU0hBUkVECisvKiBDYW4ndCB1c2UgImNhbGwgKiVnczpTWVNJTkZPX09GRlNFVCIgZHVyaW5n IHN0YXR1cCBpbiBzdGF0aWMgUElFLiAgKi8KKyMgZGVmaW5lIEkzODZfVVNFX1NZU0VOVEVSIDAK KyMgZGVmaW5lIFNZU0NBTExfTkFNRSBnZXRlZ2lkMzIKKyMgZGVmaW5lIFNZU0NBTExfTkFSR1Mg MAorIyBkZWZpbmUgU1lTQ0FMTF9VTE9OR19BUkdfMSAwCisjIGRlZmluZSBTWVNDQUxMX1VMT05H X0FSR18yIDAKKyMgZGVmaW5lIFNZU0NBTExfU1lNQk9MIF9fZ2V0ZWdpZF9zdGFydHVwCisjIGRl ZmluZSBTWVNDQUxMX05PRVJSTk8gMQorIyBkZWZpbmUgU1lTQ0FMTF9FUlJWQUwgMAorIyBpbmNs dWRlIDxzeXNjYWxsLXRlbXBsYXRlLlM+CisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L2kzODYvZ2V0ZXVpZC1zdGFydHVwLlMgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9pMzg2L2dldGV1aWQtc3RhcnR1cC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmVkOTdiZGIzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9pMzg2L2dldGV1aWQtc3RhcnR1cC5TCkBAIC0wLDAgKzEsMTIgQEAKKyNpZm5kZWYg U0hBUkVECisvKiBDYW4ndCB1c2UgImNhbGwgKiVnczpTWVNJTkZPX09GRlNFVCIgZHVyaW5nIHN0 YXR1cCBpbiBzdGF0aWMgUElFLiAgKi8KKyMgZGVmaW5lIEkzODZfVVNFX1NZU0VOVEVSIDAKKyMg ZGVmaW5lIFNZU0NBTExfTkFNRSBnZXRldWlkMzIKKyMgZGVmaW5lIFNZU0NBTExfTkFSR1MgMAor IyBkZWZpbmUgU1lTQ0FMTF9VTE9OR19BUkdfMSAwCisjIGRlZmluZSBTWVNDQUxMX1VMT05HX0FS R18yIDAKKyMgZGVmaW5lIFNZU0NBTExfU1lNQk9MIF9fZ2V0ZXVpZF9zdGFydHVwCisjIGRlZmlu ZSBTWVNDQUxMX05PRVJSTk8gMQorIyBkZWZpbmUgU1lTQ0FMTF9FUlJWQUwgMAorIyBpbmNsdWRl IDxzeXNjYWxsLXRlbXBsYXRlLlM+CisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L2kzODYvZ2V0Z2lkLXN0YXJ0dXAuUyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L2kzODYvZ2V0Z2lkLXN0YXJ0dXAuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi5kZDc1YjNmMmMyCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvaTM4Ni9nZXRnaWQtc3RhcnR1cC5TCkBAIC0wLDAgKzEsMTIgQEAKKyNpZm5kZWYgU0hBUkVE CisvKiBDYW4ndCB1c2UgImNhbGwgKiVnczpTWVNJTkZPX09GRlNFVCIgZHVyaW5nIHN0YXR1cCBp biBzdGF0aWMgUElFLiAgKi8KKyMgZGVmaW5lIEkzODZfVVNFX1NZU0VOVEVSIDAKKyMgZGVmaW5l IFNZU0NBTExfTkFNRSBnZXRnaWQzMgorIyBkZWZpbmUgU1lTQ0FMTF9OQVJHUyAwCisjIGRlZmlu ZSBTWVNDQUxMX1VMT05HX0FSR18xIDAKKyMgZGVmaW5lIFNZU0NBTExfVUxPTkdfQVJHXzIgMAor IyBkZWZpbmUgU1lTQ0FMTF9TWU1CT0wgX19nZXRnaWRfc3RhcnR1cAorIyBkZWZpbmUgU1lTQ0FM TF9OT0VSUk5PIDEKKyMgZGVmaW5lIFNZU0NBTExfRVJSVkFMIDAKKyMgaW5jbHVkZSA8c3lzY2Fs bC10ZW1wbGF0ZS5TPgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9pMzg2L2dldHVpZC1zdGFydHVwLlMgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2dl dHVpZC1zdGFydHVwLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTFm ZWQ4MmNhMgotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYv Z2V0dWlkLXN0YXJ0dXAuUwpAQCAtMCwwICsxLDEyIEBACisjaWZuZGVmIFNIQVJFRAorLyogQ2Fu J3QgdXNlICJjYWxsIColZ3M6U1lTSU5GT19PRkZTRVQiIGR1cmluZyBzdGF0dXAgaW4gc3RhdGlj IFBJRS4gICovCisjIGRlZmluZSBJMzg2X1VTRV9TWVNFTlRFUiAwCisjIGRlZmluZSBTWVNDQUxM X05BTUUgZ2V0dWlkMzIKKyMgZGVmaW5lIFNZU0NBTExfTkFSR1MgMAorIyBkZWZpbmUgU1lTQ0FM TF9VTE9OR19BUkdfMSAwCisjIGRlZmluZSBTWVNDQUxMX1VMT05HX0FSR18yIDAKKyMgZGVmaW5l IFNZU0NBTExfU1lNQk9MIF9fZ2V0dWlkX3N0YXJ0dXAKKyMgZGVmaW5lIFNZU0NBTExfTk9FUlJO TyAxCisjIGRlZmluZSBTWVNDQUxMX0VSUlZBTCAwCisjIGluY2x1ZGUgPHN5c2NhbGwtdGVtcGxh dGUuUz4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9z eXNjYWxscy5saXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxscy5saXN0 CmluZGV4IDU1YTM3N2I4NDEuLjUyOWI1NDhjZTUgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L202OGsvc3lzY2FsbHMubGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9tNjhrL3N5c2NhbGxzLmxpc3QKQEAgLTQsMTAgKzQsMTAgQEAgY2hvd24JCS0JY2hvd24zMgkJ aTpzaWkJX19jaG93bgkJY2hvd24KIGxjaG93bgkJLQlsY2hvd24zMglpOnNpaQlfX2xjaG93bgls Y2hvd24KIGZjaG93bgkJLQlmY2hvd24zMglpOmlpaQlfX2ZjaG93bglmY2hvd24KIAotZ2V0ZWdp ZAkJLQlnZXRlZ2lkMzIJRWk6CV9fZ2V0ZWdpZAlnZXRlZ2lkCi1nZXRldWlkCQktCWdldGV1aWQz MglFaToJX19nZXRldWlkCWdldGV1aWQKLWdldGdpZAkJLQlnZXRnaWQzMglFaToJX19nZXRnaWQJ Z2V0Z2lkCi1nZXR1aWQJCS0JZ2V0dWlkMzIJRWk6CV9fZ2V0dWlkCWdldHVpZAorZ2V0ZWdpZAkJ LQlnZXRlZ2lkMzIJRWk6CV9fZ2V0ZWdpZAlnZXRlZ2lkCQlfX2dldGVnaWRfc3RhcnR1cAorZ2V0 ZXVpZAkJLQlnZXRldWlkMzIJRWk6CV9fZ2V0ZXVpZAlnZXRldWlkCQlfX2dldGV1aWRfc3RhcnR1 cAorZ2V0Z2lkCQktCWdldGdpZDMyCUVpOglfX2dldGdpZAlnZXRnaWQJCV9fZ2V0Z2lkX3N0YXJ0 dXAKK2dldHVpZAkJLQlnZXR1aWQzMglFaToJX19nZXR1aWQJZ2V0dWlkCQlfX2dldHVpZF9zdGFy dHVwCiBnZXRyZXNnaWQJLQlnZXRyZXNnaWQzMglpOnBwcAlfX2dldHJlc2dpZAlnZXRyZXNnaWQK IGdldHJlc3VpZAktCWdldHJlc3VpZDMyCWk6cHBwCV9fZ2V0cmVzdWlkCWdldHJlc3VpZAogZ2V0 Z3JvdXBzCS0JZ2V0Z3JvdXBzMzIJaTppcAlfX2dldGdyb3VwcwlnZXRncm91cHMKZGlmZiAtLWdp dCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3MzOTAvczM5MC0zMi9zeXNjYWxscy5saXN0IGIv c3lzZGVwcy91bml4L3N5c3YvbGludXgvczM5MC9zMzkwLTMyL3N5c2NhbGxzLmxpc3QKaW5kZXgg MzAwYjEzZGQwMS4uNjYyNTNhMjBmZiAxMDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvczM5MC9zMzkwLTMyL3N5c2NhbGxzLmxpc3QKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvczM5MC9zMzkwLTMyL3N5c2NhbGxzLmxpc3QKQEAgLTQsMTAgKzQsMTAgQEAgY2hvd24JCS0J Y2hvd24zMgkJaTpzaWkJX19jaG93bgkJY2hvd25AQEdMSUJDXzIuMQogbGNob3duCQktCWxjaG93 bjMyCWk6c2lpCV9fbGNob3duCWxjaG93bkBAR0xJQkNfMi4wIGNob3duQEdMSUJDXzIuMAogZmNo b3duCQktCWZjaG93bjMyCWk6aWlpCV9fZmNob3duCWZjaG93bgogCi1nZXRlZ2lkCQktCWdldGVn aWQzMglFaToJX19nZXRlZ2lkCWdldGVnaWQKLWdldGV1aWQJCS0JZ2V0ZXVpZDMyCUVpOglfX2dl dGV1aWQJZ2V0ZXVpZAotZ2V0Z2lkCQktCWdldGdpZDMyCUVpOglfX2dldGdpZAlnZXRnaWQKLWdl dHVpZAkJLQlnZXR1aWQzMglFaToJX19nZXR1aWQJZ2V0dWlkCitnZXRlZ2lkCQktCWdldGVnaWQz MglFaToJX19nZXRlZ2lkCWdldGVnaWQJCV9fZ2V0ZWdpZF9zdGFydHVwCitnZXRldWlkCQktCWdl dGV1aWQzMglFaToJX19nZXRldWlkCWdldGV1aWQJCV9fZ2V0ZXVpZF9zdGFydHVwCitnZXRnaWQJ CS0JZ2V0Z2lkMzIJRWk6CV9fZ2V0Z2lkCWdldGdpZAkJX19nZXRnaWRfc3RhcnR1cAorZ2V0dWlk CQktCWdldHVpZDMyCUVpOglfX2dldHVpZAlnZXR1aWQJCV9fZ2V0dWlkX3N0YXJ0dXAKIGdldHJl c2dpZAktCWdldHJlc2dpZDMyCWk6cHBwCV9fZ2V0cmVzZ2lkCWdldHJlc2dpZAogZ2V0cmVzdWlk CS0JZ2V0cmVzdWlkMzIJaTpwcHAJX19nZXRyZXN1aWQJZ2V0cmVzdWlkCiBnZXRncm91cHMJLQln ZXRncm91cHMzMglpOmlwCV9fZ2V0Z3JvdXBzCWdldGdyb3VwcwpkaWZmIC0tZ2l0IGEvc3lzZGVw cy91bml4L3N5c3YvbGludXgvc2gvc3lzY2FsbHMubGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3NoL3N5c2NhbGxzLmxpc3QKaW5kZXggMzJiYWRkMWVlMC4uNjAzZjMyNGY2MCAxMDA2NDQK LS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gvc3lzY2FsbHMubGlzdAorKysgYi9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9zaC9zeXNjYWxscy5saXN0CkBAIC00LDEwICs0LDEwIEBAIGNo b3duCQktCWNob3duMzIJCWk6c2lpCV9fY2hvd24JCWNob3duCiBsY2hvd24JCS0JbGNob3duMzIJ aTpzaWkJX19sY2hvd24JbGNob3duCiBmY2hvd24JCS0JZmNob3duMzIJaTppaWkJX19mY2hvd24J ZmNob3duCiAKLWdldGVnaWQJCS0JZ2V0ZWdpZDMyCUVpOglfX2dldGVnaWQJZ2V0ZWdpZAotZ2V0 ZXVpZAkJLQlnZXRldWlkMzIJRWk6CV9fZ2V0ZXVpZAlnZXRldWlkCi1nZXRnaWQJCS0JZ2V0Z2lk MzIJRWk6CV9fZ2V0Z2lkCWdldGdpZAotZ2V0dWlkCQktCWdldHVpZDMyCUVpOglfX2dldHVpZAln ZXR1aWQKK2dldGVnaWQJCS0JZ2V0ZWdpZDMyCUVpOglfX2dldGVnaWQJZ2V0ZWdpZAkJX19nZXRl Z2lkX3N0YXJ0dXAKK2dldGV1aWQJCS0JZ2V0ZXVpZDMyCUVpOglfX2dldGV1aWQJZ2V0ZXVpZAkJ X19nZXRldWlkX3N0YXJ0dXAKK2dldGdpZAkJLQlnZXRnaWQzMglFaToJX19nZXRnaWQJZ2V0Z2lk CQlfX2dldGdpZF9zdGFydHVwCitnZXR1aWQJCS0JZ2V0dWlkMzIJRWk6CV9fZ2V0dWlkCWdldHVp ZAkJX19nZXR1aWRfc3RhcnR1cAogZ2V0cmVzZ2lkCS0JZ2V0cmVzZ2lkMzIJaTpwcHAJX19nZXRy ZXNnaWQJZ2V0cmVzZ2lkCiBnZXRyZXN1aWQJLQlnZXRyZXN1aWQzMglpOnBwcAlfX2dldHJlc3Vp ZAlnZXRyZXN1aWQKIGdldGdyb3VwcwktCWdldGdyb3VwczMyCWk6aXAJX19nZXRncm91cHMJZ2V0 Z3JvdXBzCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9zcGFyYzMy L3N5c2NhbGxzLmxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9zcGFyYzMyL3N5 c2NhbGxzLmxpc3QKaW5kZXggMGI2MDk1ZmZhYi4uNjcyZTdmNzI1NCAxMDA2NDQKLS0tIGEvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvc3BhcmMzMi9zeXNjYWxscy5saXN0CisrKyBiL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NwYXJjMzIvc3lzY2FsbHMubGlzdApAQCAtNCwx MCArNCwxMCBAQCBjaG93bgkJLQljaG93bjMyCQlpOnNpaQlfX2Nob3duCQljaG93bgogbGNob3du CQktCWxjaG93bjMyCWk6c2lpCV9fbGNob3duCWxjaG93bgogZmNob3duCQktCWZjaG93bjMyCWk6 aWlpCV9fZmNob3duCWZjaG93bgogCi1nZXRlZ2lkCQktCWdldGVnaWQzMglFaToJX19nZXRlZ2lk CWdldGVnaWQKLWdldGV1aWQJCS0JZ2V0ZXVpZDMyCUVpOglfX2dldGV1aWQJZ2V0ZXVpZAotZ2V0 Z2lkCQktCWdldGdpZDMyCUVpOglfX2dldGdpZAlnZXRnaWQKLWdldHVpZAkJLQlnZXR1aWQzMglF aToJX19nZXR1aWQJZ2V0dWlkCitnZXRlZ2lkCQktCWdldGVnaWQzMglFaToJX19nZXRlZ2lkCWdl dGVnaWQJCV9fZ2V0ZWdpZF9zdGFydHVwCitnZXRldWlkCQktCWdldGV1aWQzMglFaToJX19nZXRl dWlkCWdldGV1aWQJCV9fZ2V0ZXVpZF9zdGFydHVwCitnZXRnaWQJCS0JZ2V0Z2lkMzIJRWk6CV9f Z2V0Z2lkCWdldGdpZAkJX19nZXRnaWRfc3RhcnR1cAorZ2V0dWlkCQktCWdldHVpZDMyCUVpOglf X2dldHVpZAlnZXR1aWQJCV9fZ2V0dWlkX3N0YXJ0dXAKIGdldHJlc3VpZAktCWdldHJlc3VpZDMy CTMJZ2V0cmVzdWlkCiBnZXRyZXNnaWQJLQlnZXRyZXNnaWQzMgkzCWdldHJlc2dpZAogZ2V0Z3Jv dXBzCS0JZ2V0Z3JvdXBzMzIJaTppcAlfX2dldGdyb3VwcwlnZXRncm91cHMKZGlmZiAtLWdpdCBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3QgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9zeXNjYWxscy5saXN0CmluZGV4IDAxZWMyYmZhOTUuLmIxYjg5NDA3NzIgMTAwNjQ0 Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3QKKysrIGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdApAQCAtMTQsOCArMTQsOCBAQCBleGVjdmUJ CS0JZXhlY3ZlCQlpOnNwcAlfX2V4ZWN2ZQlleGVjdmUKIGZsb2NrCQktCWZsb2NrCQlpOmlpCV9f ZmxvY2sJCWZsb2NrCiBnZXRfa2VybmVsX3N5bXMJRVhUUkEJZ2V0X2tlcm5lbF9zeW1zCWk6cAlf X2NvbXBhdF9nZXRfa2VybmVsX3N5bXMJZ2V0X2tlcm5lbF9zeW1zQEdMSUJDXzIuMDpHTElCQ18y LjIzCiBnZXRwaWQgICAgICAgICAgLSAgICAgICBnZXRwaWQgICAgICAgICAgRWk6ICAgICBfX2dl dHBpZCAgICAgICAgZ2V0cGlkCi1nZXRlZ2lkCQktCWdldGVnaWQJCUVpOglfX2dldGVnaWQJZ2V0 ZWdpZAotZ2V0ZXVpZAkJLQlnZXRldWlkCQlFaToJX19nZXRldWlkCWdldGV1aWQKK2dldGVnaWQJ CS0JZ2V0ZWdpZAkJRWk6CV9fZ2V0ZWdpZAlnZXRlZ2lkCV9fZ2V0ZWdpZF9zdGFydHVwCitnZXRl dWlkCQktCWdldGV1aWQJCUVpOglfX2dldGV1aWQJZ2V0ZXVpZAlfX2dldGV1aWRfc3RhcnR1cAog Z2V0cGdpZAkJLQlnZXRwZ2lkCQlpOmkJX19nZXRwZ2lkCWdldHBnaWQKIGdldHBncnAJCS0JZ2V0 cGdycAkJRWk6CWdldHBncnAKIGdldHBwaWQJCS0JZ2V0cHBpZAkJRWk6CV9fZ2V0cHBpZAlnZXRw cGlkCi0tIAoyLjI5LjIKCg== --00000000000085f3e905b8e8175a Content-Type: text/x-patch; charset="US-ASCII"; name="0004-x86-Check-ifunc-resolver-with-CPU_FEATURE_USABLE-BZ-.patch" Content-Disposition: attachment; filename="0004-x86-Check-ifunc-resolver-with-CPU_FEATURE_USABLE-BZ-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjxqa6fb3 RnJvbSBlMjg5YzQyZjhiNDBiNzZiYjAyOTc3OWE2Y2I3M2M3MzlmMWY5YzcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMTIgSmFuIDIwMjEgMTQ6NDE6MTAgLTA4MDAKU3ViamVjdDogW1BBVENIIDQvNF0geDg2 OiBDaGVjayBpZnVuYyByZXNvbHZlciB3aXRoIENQVV9GRUFUVVJFX1VTQUJMRSBbQloKICMyNzA3 Ml0KCkNoZWNrIGlmdW5jIHJlc29sdmVyIHdpdGggQ1BVX0ZFQVRVUkVfVVNBQkxFIGluIGR5bmFt aWMgYW5kIHN0YXRpYwpleGVjdXRhYmxlcyB0byB2ZXJpZnkgdGhhdCBDUFVJRCBmZWF0dXJlcyBh cmUgaW5pdGlhbGl6ZWQgZWFybHkgaW4Kc3RhdGljIFBJRS4KLS0tCiBzeXNkZXBzL3g4Ni9NYWtl ZmlsZSAgICAgICAgICAgICAgICAgfCAgIDcgKysKIHN5c2RlcHMveDg2L3RzdC1pZnVuYy1pc2Et MS1zdGF0aWMuYyB8ICAgMSArCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtaXNhLTEuYyAgICAgICAg fCAxMTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEyMyBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLWlz YS0xLXN0YXRpYy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLWlz YS0xLmMKCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni9NYWtlZmlsZSBiL3N5c2RlcHMveDg2L01h a2VmaWxlCmluZGV4IGFkYWEyYTkyY2QuLjk5NmZmNDZkYmMgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMv eDg2L01ha2VmaWxlCisrKyBiL3N5c2RlcHMveDg2L01ha2VmaWxlCkBAIC05LDYgKzksMTMgQEAg c3lzZGVwX2hlYWRlcnMgKz0gc3lzL3BsYXRmb3JtL3g4Ni5oCiB0ZXN0cyArPSB0c3QtZ2V0LWNw dS1mZWF0dXJlcyB0c3QtZ2V0LWNwdS1mZWF0dXJlcy1zdGF0aWMgXAogCSB0c3QtY3B1LWZlYXR1 cmVzLWNwdWluZm8gdHN0LWNwdS1mZWF0dXJlcy1zdXBwb3J0cwogdGVzdHMtc3RhdGljICs9IHRz dC1nZXQtY3B1LWZlYXR1cmVzLXN0YXRpYworaWZlcSAoeWVzLCQoaGF2ZS1pZnVuYykpCit0ZXN0 cyArPSBcCisgIHRzdC1pZnVuYy1pc2EtMSBcCisgIHRzdC1pZnVuYy1pc2EtMS1zdGF0aWMKK3Rl c3RzLXN0YXRpYyArPSBcCisgIHRzdC1pZnVuYy1pc2EtMS1zdGF0aWMKK2VuZGlmCiBpZmVxICh5 ZXMsJChlbmFibGUteDg2LWlzYS1sZXZlbCkpCiB0ZXN0cyArPSB0c3QtaXNhLWxldmVsLTEKIG1v ZHVsZXMtbmFtZXMgKz0gdHN0LWlzYS1sZXZlbC1tb2QtMS1iYXNlbGluZSBcCmRpZmYgLS1naXQg YS9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtaXNhLTEtc3RhdGljLmMgYi9zeXNkZXBzL3g4Ni90c3Qt aWZ1bmMtaXNhLTEtc3RhdGljLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uMGU5NGY2MTE5YgotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1p c2EtMS1zdGF0aWMuYwpAQCAtMCwwICsxIEBACisjaW5jbHVkZSAidHN0LWlmdW5jLWlzYS0xLmMi CmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtaXNhLTEuYyBiL3N5c2RlcHMveDg2 L3RzdC1pZnVuYy1pc2EtMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LmIzYmMyYTU1YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtaXNh LTEuYwpAQCAtMCwwICsxLDExNSBAQAorLyogQ2hlY2sgaWZ1bmMgd2l0aCBDUFVfRkVBVFVSRV9V U0FCTEUuCisgICBDb3B5cmlnaHQgKEMpIDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS94 ODYuaD4KKworZW51bSBpc2EKK3sKKyAgbm9uZSwKKyAgc3NlMiwKKyAgc3NlNF8yLAorICBhdngs CisgIGF2eDIsCisgIGF2eDUxMmYKK307CisKK2VudW0gaXNhCitnZXRfaXNhICh2b2lkKQorewor ICBpZiAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJGKSkKKyAgICByZXR1cm4gYXZ4NTEyZjsK KyAgaWYgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikpCisgICAgcmV0dXJuIGF2eDI7CisgIGlm IChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWCkpCisgICAgcmV0dXJuIGF2eDsKKyAgaWYgKENQVV9G RUFUVVJFX1VTQUJMRSAoU1NFNF8yKSkKKyAgICByZXR1cm4gc3NlNF8yOworICBpZiAoQ1BVX0ZF QVRVUkVfVVNBQkxFIChTU0UyKSkKKyAgICByZXR1cm4gc3NlMjsKKyAgcmV0dXJuIG5vbmU7Cit9 CisKK3N0YXRpYyBpbnQKK2lzYV9zc2UyICh2b2lkKQoreworICByZXR1cm4gc3NlMjsKK30KKwor c3RhdGljIGludAoraXNhX3NzZTRfMiAodm9pZCkKK3sKKyAgcmV0dXJuIHNzZTRfMjsKK30KKwor c3RhdGljIGludAoraXNhX2F2eCAodm9pZCkKK3sKKyAgcmV0dXJuIGF2eDsKK30KKworc3RhdGlj IGludAoraXNhX2F2eDIgKHZvaWQpCit7CisgIHJldHVybiBhdngyOworfQorCitzdGF0aWMgaW50 Citpc2FfYXZ4NTEyZiAodm9pZCkKK3sKKyAgcmV0dXJuIGF2eDUxMmY7Cit9CisKK3N0YXRpYyBp bnQKK2lzYV9ub25lICh2b2lkKQoreworICByZXR1cm4gbm9uZTsKK30KKworaW50IGZvbyAodm9p ZCkgX19hdHRyaWJ1dGVfXyAoKGlmdW5jICgiZm9vX2lmdW5jIikpKTsKKwordm9pZCAqCitmb29f aWZ1bmMgKHZvaWQpCit7CisgIHN3aXRjaCAoZ2V0X2lzYSAoKSkKKyAgICB7CisgICAgY2FzZSBh dng1MTJmOgorICAgICAgcmV0dXJuIGlzYV9hdng1MTJmOworICAgIGNhc2UgYXZ4MjoKKyAgICAg IHJldHVybiBpc2FfYXZ4MjsKKyAgICBjYXNlIGF2eDoKKyAgICAgIHJldHVybiBpc2FfYXZ4Owor ICAgIGNhc2Ugc3NlNF8yOgorICAgICAgcmV0dXJuIGlzYV9zc2U0XzI7CisgICAgY2FzZSBzc2Uy OgorICAgICAgcmV0dXJuIGlzYV9zc2UyOworICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAg ICB9CisgIHJldHVybiBpc2Ffbm9uZTsKK30KKworc3RhdGljIGludAorZG9fdGVzdCAodm9pZCkK K3sKKyAgZW51bSBpc2EgdmFsdWUgPSBmb28gKCk7CisgIGVudW0gaXNhIGV4cGVjdGVkID0gZ2V0 X2lzYSAoKTsKKyAgcmV0dXJuIHZhbHVlID09IGV4cGVjdGVkID8gRVhJVF9TVUNDRVNTIDogRVhJ VF9GQUlMVVJFOworfQorCisjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgotLSAKMi4y OS4yCgo= --00000000000085f3e905b8e8175a--