From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 90807 invoked by alias); 8 May 2015 17:35:51 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 90725 invoked by uid 89); 8 May 2015 17:35:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-oi0-f49.google.com Received: from mail-oi0-f49.google.com (HELO mail-oi0-f49.google.com) (209.85.218.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 08 May 2015 17:35:47 +0000 Received: by oign205 with SMTP id n205so63887978oig.2 for ; Fri, 08 May 2015 10:35:45 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.97.138 with SMTP id ea10mr3954176obb.11.1431106544951; Fri, 08 May 2015 10:35:44 -0700 (PDT) Received: by 10.76.54.14 with HTTP; Fri, 8 May 2015 10:35:44 -0700 (PDT) In-Reply-To: References: Date: Fri, 08 May 2015 17:35:00 -0000 Message-ID: Subject: Re: PING^3: [PATCH]: New configure options that make the compiler use -fPIE and -pie as default option From: "H.J. Lu" To: Joseph Myers Cc: Richard Biener , Magnus Granberg , GCC Patches , danielmicay Content-Type: multipart/mixed; boundary=047d7b2e4e3c3f9df205159575e0 X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00707.txt.bz2 --047d7b2e4e3c3f9df205159575e0 Content-Type: text/plain; charset=UTF-8 Content-length: 4305 On Thu, May 7, 2015 at 2:17 PM, Joseph Myers wrote: > On Fri, 6 Mar 2015, H.J. Lu wrote: > >> +# We don't want to compile the compiler with -fPIE, it make PCH fail. >> +COMPILER += @NO_PIE_CFLAGS@ >> + >> +# Link with -no-pie since we compile the compiler with -fno-PIE. >> +LINKER += @NO_PIE_FLAG@ > > As I understand it, what we don't want is the compiler to be a PIE. That > is, it must be linked -no-pie (and given that the compiler is not a PIE, > compiling -fPIE would be pointless, although it wouldn't actually break > things to have PIE objects in the compiler as long as it's linked for a > fixed address). > >> +#if defined ENABLE_DEFAULT_PIE >> +#define GNU_USER_TARGET_STARTFILE_SPEC \ >> + "%{!shared: %{pg|p|profile:gcrt1.o%s;: \ >> + %{" PIE_SPEC ":Scrt1.o%s} %{" NO_PIE_SPEC ":crt1.o%s}}} \ >> + crti.o%s %{static:crtbeginT.o%s;: %{shared:crtbeginS.o%s} \ >> + %{" PIE_SPEC ":crtbeginS.o%s} \ >> + %{" NO_PIE_SPEC ":crtbegin.o%s}}" \ >> + FVTABLE_VERIFY_SPEC >> +#else >> +#define GNU_USER_TARGET_STARTFILE_SPEC \ >> + "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \ >> + crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" \ >> + FVTABLE_VERIFY_SPEC >> +#endif > > With appropriate definitions of PIE_SPEC and NO_PIE_SPEC, shouldn't a > single definition of GNU_USER_TARGET_STARTFILE_SPEC be able to work for > both ENABLE_DEFAULT_PIE and !ENABLE_DEFAULT_PIE? Yes. > noted a > possible issue with MIPS. Actually, rather more config/*.h and > config/*/*.h headers contain specs testing for (-fpie, -fPIE, -fno-pie, > -fno-PIE, -pie) options, which would be affected by these changes. I'd > say this patch should include an initial attempt at adjusting those config > headers, which should be an essentially mechanical change not requiring > understanding anything target-specific. For link-time specs, that may > mean using PIE_SPEC and NO_PIE_SPEC. For compile-time specs, similar new > macros would be added. Given such adjustments included in the patch and > the relevant target maintainers CC:ed, I might then be inclined to approve > the patch on the basis of allowing a week for target maintainers to test > the changes for their targets before commit, as I don't see any major > problems with it beyond the need to update the target-specific specs. > Here is the updated patch. I will post patches for cris, mips, powerpc and sparc separately. The target maintainers should be able to adjust backend ASM_SPEC with FPIE_OR_FPIC_SPEC and NO_FPIE_AND_FPIC_SPEC. OK for trunk? Thanks. -- H.J. --- Add --enable-default-pie option to configure GCC to generate PIE by default. gcc/ 2015-03-06 Magnus Granberg H.J. Lu * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@. (BUILD_CFLAGS): Likewise. (BUILD_CXXFLAGS): Likewise. (LINKER): Add @NO_PIE_FLAG@. (BUILD_LDFLAGS): Likewise. (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for --enable-default-pie. * common.opt (fPIE): Initialize to -1. (fpie): Likewise. (no-pie): New option. (pie): Replace "Negative(shared)" with "Negative(no-pie)". * configure.ac: Add --enable-default-pie. (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST. (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST. * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE. * gcc.c (NO_PIE_SPEC): New. (PIE_SPEC): Likewise. (NO_FPIE_SPEC): Likewise. (FPIE_SPEC): Likewise. (NO_FPIE_AND_FPIC_SPEC): Likewise. (FPIE_OR_FPIC_SPEC): Likewise. (LD_PIE_SPEC): Likewise. (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC. * opts.c (DEFAULT_FLAG_PIE): New. Set to 0 if ENABLE_DEFAULT_PIE is undefined. (finish_options): Update opts->x_flag_pie if it is -1. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined. * doc/install.texi: Document --enable-default-pie. * doc/invoke.texi: Document -no-pie. * config.in: Regenerated. * configure: Likewise. gcc/ada/ 2015-03-06 H.J. Lu * gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@. libgcc/ 2015-03-06 H.J. Lu * Makefile.in (CRTSTUFF_CFLAGS): Add $(NO_PIE_CFLAGS). --047d7b2e4e3c3f9df205159575e0 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Add-enable-default-pie-option-to-GCC-configure.patch" Content-Disposition: attachment; filename="0001-Add-enable-default-pie-option-to-GCC-configure.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i9fvrwox0 Content-length: 21875 RnJvbSA1N2UyZDUyN2FmNDg5MWE0YmYwNWI1N2IwMWQ5YWM5N2QzMzZlOTU5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgNiBNYXIgMjAxNSAwOTow Nzo1NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS81XSBBZGQgLS1lbmFibGUt ZGVmYXVsdC1waWUgb3B0aW9uIHRvIEdDQyBjb25maWd1cmUKCkFkZCAtLWVu YWJsZS1kZWZhdWx0LXBpZSBvcHRpb24gdG8gY29uZmlndXJlIEdDQyB0byBn ZW5lcmF0ZSBQSUUgYnkKZGVmYXVsdC4KCmdjYy8KCjIwMTUtMDMtMDYgIE1h Z251cyBHcmFuYmVyZyAgPHpvcnJ5QGdlbnRvby5vcmc+CgkgICAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTWFrZWZpbGUuaW4gKENP TVBJTEVSKTogQWRkIEBOT19QSUVfQ0ZMQUdTQC4KCShCVUlMRF9DRkxBR1Mp OiBMaWtld2lzZS4KCShCVUlMRF9DWFhGTEFHUyk6IExpa2V3aXNlLgoJKExJ TktFUik6IEFkZCBATk9fUElFX0ZMQUdALgoJKEJVSUxEX0xERkxBR1MpOiBM aWtld2lzZS4KCShsaWJnY2MubXZhcnMpOiBTZXQgTk9fUElFX0NGTEFHUyB0 byAtZm5vLVBJRSBmb3IKCS0tZW5hYmxlLWRlZmF1bHQtcGllLgoJKiBjb21t b24ub3B0IChmUElFKTogSW5pdGlhbGl6ZSB0byAtMS4KCShmcGllKTogTGlr ZXdpc2UuCgkobm8tcGllKTogTmV3IG9wdGlvbi4KCShwaWUpOiBSZXBsYWNl ICJOZWdhdGl2ZShzaGFyZWQpIiB3aXRoICJOZWdhdGl2ZShuby1waWUpIi4K CSogY29uZmlndXJlLmFjOiBBZGQgLS1lbmFibGUtZGVmYXVsdC1waWUuCgko Tk9fUElFX0NGTEFHUyk6IE5ldy4gIENoZWNrIGlmIC1mbm8tUElFIHdvcmtz LiAgQUNfU1VCU1QuCgkoTk9fUElFX0ZMQUcpOiBOZXcuICBDaGVjayBpZiAt bm8tcGllIHdvcmtzLiAgQUNfU1VCU1QuCgkqIGRlZmF1bHRzLmggKERFRkFV TFRfRkxBR19QSUUpOiBOZXcuICBEZWZhdWx0IFBJRSB0byAtZlBJRS4KCSog Z2NjLmMgKE5PX1BJRV9TUEVDKTogTmV3LgoJKFBJRV9TUEVDKTogTGlrZXdp c2UuCgkoTk9fRlBJRV9TUEVDKTogTGlrZXdpc2UuCgkoRlBJRV9TUEVDKTog TGlrZXdpc2UuCgkoTk9fRlBJRV9BTkRfRlBJQ19TUEVDKTogTGlrZXdpc2Uu CgkoRlBJRV9PUl9GUElDX1NQRUMpOiBMaWtld2lzZS4KCShMRF9QSUVfU1BF Qyk6IExpa2V3aXNlLgoJKExJTktfUElFX1NQRUMpOiBIYW5kbGUgLW5vLXBp ZS4gIFVzZSBQSUVfU1BFQyBhbmQgTERfUElFX1NQRUMuCgkqIG9wdHMuYyAo REVGQVVMVF9GTEFHX1BJRSk6IE5ldy4gIFNldCB0byAwIGlmIEVOQUJMRV9E RUZBVUxUX1BJRQoJaXMgdW5kZWZpbmVkLgoJKGZpbmlzaF9vcHRpb25zKTog VXBkYXRlIG9wdHMtPnhfZmxhZ19waWUgaWYgaXQgaXMgLTEuCgkqIGNvbmZp Zy9nbnUtdXNlci5oIChHTlVfVVNFUl9UQVJHRVRfU1RBUlRGSUxFX1NQRUMp OiBVc2UKCVBJRV9TUEVDIGFuZCBOT19QSUVfU1BFQyBpZiBIQVZFX0xEX1BJ RSBpcyBkZWZpbmVkLgoJKiBkb2MvaW5zdGFsbC50ZXhpOiBEb2N1bWVudCAt LWVuYWJsZS1kZWZhdWx0LXBpZS4KCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1 bWVudCAtbm8tcGllLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGVkLgoJKiBj b25maWd1cmU6IExpa2V3aXNlLgoKZ2NjL2FkYS8KCjIwMTUtMDMtMDYgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGdjYy1pbnRlcmZh Y2UvTWFrZWZpbGUuaW4gKFRPT0xTX0xJQlMpOiBBZGQgQE5PX1BJRV9GTEFH QC4KCmxpYmdjYy8KCjIwMTUtMDMtMDYgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KCgkqIE1ha2VmaWxlLmluIChDUlRTVFVGRl9DRkxBR1Mp OiBBZGQgJChOT19QSUVfQ0ZMQUdTKS4KLS0tCiBnY2MvTWFrZWZpbGUuaW4g ICAgICAgICAgICAgICAgICAgfCAxNSArKysrKysrKwogZ2NjL2FkYS9nY2Mt aW50ZXJmYWNlL01ha2VmaWxlLmluIHwgIDMgKysKIGdjYy9jb21tb24ub3B0 ICAgICAgICAgICAgICAgICAgICB8IDEwICsrKy0tCiBnY2MvY29uZmlnLmlu ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysKIGdjYy9jb25maWcvZ251 LXVzZXIuaCAgICAgICAgICAgICB8ICA3ICsrKy0KIGdjYy9jb25maWd1cmUg ICAgICAgICAgICAgICAgICAgICB8IDc5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQogZ2NjL2NvbmZpZ3VyZS5hYyAgICAgICAg ICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysKIGdjYy9kZWZh dWx0cy5oICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKwogZ2NjL2RvYy9p bnN0YWxsLnRleGkgICAgICAgICAgICAgIHwgIDMgKysKIGdjYy9kb2MvaW52 b2tlLnRleGkgICAgICAgICAgICAgICB8ICA0ICsrCiBnY2MvZ2NjLmMgICAg ICAgICAgICAgICAgICAgICAgICAgfCAyMSArKysrKysrKysrLQogZ2NjL29w dHMuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKwogbGli Z2NjL01ha2VmaWxlLmluICAgICAgICAgICAgICAgIHwgIDIgKy0KIDEzIGZp bGVzIGNoYW5nZWQsIDE5OSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9nY2MvTWFrZWZpbGUuaW4gYi9nY2MvTWFrZWZp bGUuaW4KaW5kZXggNjUyYjNlNzFkLi4yNmZhYTJiIDEwMDY0NAotLS0gYS9n Y2MvTWFrZWZpbGUuaW4KKysrIGIvZ2NjL01ha2VmaWxlLmluCkBAIC0yNTIs NiArMjUyLDEyIEBAIExJTktFUiA9ICQoQ0MpCiBMSU5LRVJfRkxBR1MgPSAk KENGTEFHUykKIGVuZGlmCiAKKyMgV2UgZG9uJ3Qgd2FudCB0byBjb21waWxl IHRoZSBjb21waWxlciB3aXRoIC1mUElFLCBpdCBtYWtlIFBDSCBmYWlsLgor Q09NUElMRVIgKz0gQE5PX1BJRV9DRkxBR1NACisKKyMgTGluayB3aXRoIC1u by1waWUgc2luY2Ugd2UgY29tcGlsZSB0aGUgY29tcGlsZXIgd2l0aCAtZm5v LVBJRS4KK0xJTktFUiArPSBATk9fUElFX0ZMQUdACisKICMgTGlrZSBMSU5L RVIsIGJ1dCB1c2UgYSBtdXRleCBmb3Igc2VyaWFsaXppbmcgZnJvbnQgZW5k IGxpbmtzLgogaWZlcSAoQERPX0xJTktfTVVURVhALHRydWUpCiBMTElOS0VS ID0gJChTSEVMTCkgJChzcmNkaXIpL2xvY2stYW5kLXJ1bi5zaCBsaW5rZmUu bGNrICQoTElOS0VSKQpAQCAtNzQ5LDYgKzc1NSw4IEBAIENDX0ZPUl9CVUlM RCA9IEBDQ19GT1JfQlVJTERACiBDWFhfRk9SX0JVSUxEID0gQENYWF9GT1Jf QlVJTERACiBCVUlMRF9DRkxBR1M9IEBCVUlMRF9DRkxBR1NAIC1ER0VORVJB VE9SX0ZJTEUKIEJVSUxEX0NYWEZMQUdTID0gQEJVSUxEX0NYWEZMQUdTQCAt REdFTkVSQVRPUl9GSUxFCitCVUlMRF9DRkxBR1MgKz0gQE5PX1BJRV9DRkxB R1NACitCVUlMRF9DWFhGTEFHUyArPSBATk9fUElFX0NGTEFHU0AKIAogIyBO YXRpdmUgY29tcGlsZXIgdGhhdCB3ZSB1c2UuICBUaGlzIG1heSBiZSBDKysg c29tZSBkYXkuCiBDT01QSUxFUl9GT1JfQlVJTEQgPSAkKENYWF9GT1JfQlVJ TEQpCkBAIC03NjAsNiArNzY4LDcgQEAgQlVJTERfTElOS0VSRkxBR1MgPSAk KEJVSUxEX0NYWEZMQUdTKQogCiAjIE5hdGl2ZSBsaW5rZXIgYW5kIHByZXBy b2Nlc3NvciBmbGFncy4gIEZvciB4LWZyYWdtZW50IG92ZXJyaWRlcy4KIEJV SUxEX0xERkxBR1M9QEJVSUxEX0xERkxBR1NACitCVUlMRF9MREZMQUdTICs9 IEBOT19QSUVfRkxBR0AKIEJVSUxEX0NQUEZMQUdTPSAtSS4gLUkkKEBEKSAt SSQoc3JjZGlyKSAtSSQoc3JjZGlyKS8kKEBEKSBcCiAJCS1JJChzcmNkaXIp Ly4uL2luY2x1ZGUgQElOQ0lOVExAICQoQ1BQSU5DKSAkKENQUEZMQUdTKQog CkBAIC0xODYzLDYgKzE4NzIsMTIgQEAgbGliZ2NjLm12YXJzOiBjb25maWcu c3RhdHVzIE1ha2VmaWxlIHNwZWNzIHhnY2MkKGV4ZWV4dCkKIAllY2hvIEdD Q19DRkxBR1MgPSAnJChHQ0NfQ0ZMQUdTKScgPj4gdG1wLWxpYmdjYy5tdmFy cwogCWVjaG8gSU5ISUJJVF9MSUJDX0NGTEFHUyA9ICckKElOSElCSVRfTElC Q19DRkxBR1MpJyA+PiB0bXAtbGliZ2NjLm12YXJzCiAJZWNobyBUQVJHRVRf U1lTVEVNX1JPT1QgPSAnJChUQVJHRVRfU1lTVEVNX1JPT1QpJyA+PiB0bXAt bGliZ2NjLm12YXJzCisJaWYgdGVzdCBAZW5hYmxlX2RlZmF1bHRfcGllQCA9 IHllczsgdGhlbiBcCisJICBOT19QSUVfQ0ZMQUdTPSItZm5vLVBJRSI7IFwK KwllbHNlIFwKKwkgIE5PX1BJRV9DRkxBR1M9OyBcCisJZmk7IFwKKwllY2hv IE5PX1BJRV9DRkxBR1MgPSAiJCROT19QSUVfQ0ZMQUdTIiA+PiB0bXAtbGli Z2NjLm12YXJzCiAKIAltdiB0bXAtbGliZ2NjLm12YXJzIGxpYmdjYy5tdmFy cwogCmRpZmYgLS1naXQgYS9nY2MvYWRhL2djYy1pbnRlcmZhY2UvTWFrZWZp bGUuaW4gYi9nY2MvYWRhL2djYy1pbnRlcmZhY2UvTWFrZWZpbGUuaW4KaW5k ZXggZWNjNDQzZS4uOTBhZWRiNSAxMDA2NDQKLS0tIGEvZ2NjL2FkYS9nY2Mt aW50ZXJmYWNlL01ha2VmaWxlLmluCisrKyBiL2djYy9hZGEvZ2NjLWludGVy ZmFjZS9NYWtlZmlsZS5pbgpAQCAtMjY3LDYgKzI2Nyw5IEBAIFRPT0xTX0xJ QlMgPSAuLi9saW5rLm8gLi4vdGFyZ2V4dC5vIC4uLy4uL2dnYy1ub25lLm8g Li4vLi4vbGliY29tbW9uLXRhcmdldC5hIFwKICAgLi4vLi4vbGliY29tbW9u LmEgLi4vLi4vLi4vbGliY3BwL2xpYmNwcC5hICQoTElCR05BVCkgJChMSUJJ TlRMKSAkKExJQklDT05WKSBcCiAgIC4uLyQoTElCQkFDS1RSQUNFKSAuLi8k KExJQklCRVJUWSkgJChTWVNMSUJTKSAkKFRHVF9MSUIpCiAKKyMgQWRkIC1u by1waWUgdG8gVE9PTFNfTElCUyBzaW5jZSBzb21lIG9mIHRoZW0gYXJlIGNv bXBpbGVkIHdpdGggLWZuby1QSUUuCitUT09MU19MSUJTICs9IEBOT19QSUVf RkxBR0AKKwogIyBTcGVjaWZ5IHRoZSBkaXJlY3RvcmllcyB0byBiZSBzZWFy Y2hlZCBmb3IgaGVhZGVyIGZpbGVzLgogIyBCb3RoIC4gYW5kIHNyY2RpciBh cmUgdXNlZCwgaW4gdGhhdCBvcmRlciwKICMgc28gdGhhdCB0bS5oIGFuZCBj b25maWcuaCB3aWxsIGJlIGZvdW5kIGluIHRoZSBjb21waWxhdGlvbgpkaWZm IC0tZ2l0IGEvZ2NjL2NvbW1vbi5vcHQgYi9nY2MvY29tbW9uLm9wdAppbmRl eCA1MTgzM2MxLi41YjE3MzVmOCAxMDA2NDQKLS0tIGEvZ2NjL2NvbW1vbi5v cHQKKysrIGIvZ2NjL2NvbW1vbi5vcHQKQEAgLTE3NzAsNyArMTc3MCw3IEBA IENvbW1vbiBSZXBvcnQgVmFyKGZsYWdfcGljLDIpIE5lZ2F0aXZlKGZQSUUp CiBHZW5lcmF0ZSBwb3NpdGlvbi1pbmRlcGVuZGVudCBjb2RlIGlmIHBvc3Np YmxlIChsYXJnZSBtb2RlKQogCiBmUElFCi1Db21tb24gUmVwb3J0IFZhcihm bGFnX3BpZSwyKSBOZWdhdGl2ZShmcGljKQorQ29tbW9uIFJlcG9ydCBWYXIo ZmxhZ19waWUsMikgTmVnYXRpdmUoZnBpYykgSW5pdCgtMSkKIEdlbmVyYXRl IHBvc2l0aW9uLWluZGVwZW5kZW50IGNvZGUgZm9yIGV4ZWN1dGFibGVzIGlm IHBvc3NpYmxlIChsYXJnZSBtb2RlKQogCiBmcGljCkBAIC0xNzc4LDcgKzE3 NzgsNyBAQCBDb21tb24gUmVwb3J0IFZhcihmbGFnX3BpYywxKSBOZWdhdGl2 ZShmcGllKQogR2VuZXJhdGUgcG9zaXRpb24taW5kZXBlbmRlbnQgY29kZSBp ZiBwb3NzaWJsZSAoc21hbGwgbW9kZSkKIAogZnBpZQotQ29tbW9uIFJlcG9y dCBWYXIoZmxhZ19waWUsMSkgTmVnYXRpdmUoZlBJQykKK0NvbW1vbiBSZXBv cnQgVmFyKGZsYWdfcGllLDEpIE5lZ2F0aXZlKGZQSUMpIEluaXQoLTEpCiBH ZW5lcmF0ZSBwb3NpdGlvbi1pbmRlcGVuZGVudCBjb2RlIGZvciBleGVjdXRh YmxlcyBpZiBwb3NzaWJsZSAoc21hbGwgbW9kZSkKIAogZnBsdWdpbj0KQEAg LTI4NTEsOCArMjg1MSwxMiBAQCBEcml2ZXIKIHN5bWJvbGljCiBEcml2ZXIK IAotcGllCituby1waWUKIERyaXZlciBSZWplY3ROZWdhdGl2ZSBOZWdhdGl2 ZShzaGFyZWQpCitEb24ndCBjcmVhdGUgYSBwb3NpdGlvbiBpbmRlcGVuZGVu dCBleGVjdXRhYmxlCisKK3BpZQorRHJpdmVyIFJlamVjdE5lZ2F0aXZlIE5l Z2F0aXZlKG5vLXBpZSkKIENyZWF0ZSBhIHBvc2l0aW9uIGluZGVwZW5kZW50 IGV4ZWN1dGFibGUKIAogegpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5pbiBi L2djYy9jb25maWcuaW4KaW5kZXggMjMxYzlhYi4uZGFhZjkwNiAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy5pbgorKysgYi9nY2MvY29uZmlnLmluCkBAIC04 OSw2ICs4OSwxMiBAQAogI2VuZGlmCiAKIAorLyogRGVmaW5lIGlmIHlvdXIg dGFyZ2V0IHN1cHBvcnRzIGRlZmF1bHQgUElFIGFuZCBpdCBpcyBlbmFibGVk LiAqLworI2lmbmRlZiBVU0VEX0ZPUl9UQVJHRVQKKyN1bmRlZiBFTkFCTEVf REVGQVVMVF9QSUUKKyNlbmRpZgorCisKIC8qIERlZmluZSBpZiB5b3Ugd2Fu dCBtb3JlIHJ1bi10aW1lIHNhbml0eSBjaGVja3MgZm9yIGRhdGFmbG93LiAq LwogI2lmbmRlZiBVU0VEX0ZPUl9UQVJHRVQKICN1bmRlZiBFTkFCTEVfREZf Q0hFQ0tJTkcKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ251LXVzZXIuaCBi L2djYy9jb25maWcvZ251LXVzZXIuaAppbmRleCAyZmFhMmU1Li4yZmNiNTVk IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2dudS11c2VyLmgKKysrIGIvZ2Nj L2NvbmZpZy9nbnUtdXNlci5oCkBAIC00Miw4ICs0MiwxMSBAQCBzZWUgdGhl IGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2 ZWx5LiAgSWYgbm90LCBzZWUKIAogI2lmIGRlZmluZWQgSEFWRV9MRF9QSUUK ICNkZWZpbmUgR05VX1VTRVJfVEFSR0VUX1NUQVJURklMRV9TUEVDIFwKLSAg IiV7IXNoYXJlZDogJXtwZ3xwfHByb2ZpbGU6Z2NydDEubyVzO3BpZTpTY3J0 MS5vJXM7OmNydDEubyVzfX0gXAotICAgY3J0aS5vJXMgJXtzdGF0aWM6Y3J0 YmVnaW5ULm8lcztzaGFyZWR8cGllOmNydGJlZ2luUy5vJXM7OmNydGJlZ2lu Lm8lc30gXAorICAiJXshc2hhcmVkOiAle3BnfHB8cHJvZmlsZTpnY3J0MS5v JXM7OiBcCisgICAgJXsiIFBJRV9TUEVDICI6U2NydDEubyVzfSAleyIgTk9f UElFX1NQRUMgIjpjcnQxLm8lc319fSBcCisgICBjcnRpLm8lcyAle3N0YXRp YzpjcnRiZWdpblQubyVzOzogJXtzaGFyZWQ6Y3J0YmVnaW5TLm8lc30gXAor CSAgICAgICV7IiBQSUVfU1BFQyAiOmNydGJlZ2luUy5vJXN9IFwKKwkgICAg ICAleyIgTk9fUElFX1NQRUMgIjpjcnRiZWdpbi5vJXN9fSBcCiAgICAle2Z2 dGFibGUtdmVyaWZ5PW5vbmU6JXM7IFwKICAgICAgZnZ0YWJsZS12ZXJpZnk9 cHJlaW5pdDp2dHZfc3RhcnRfcHJlaW5pdC5vJXM7IFwKICAgICAgZnZ0YWJs ZS12ZXJpZnk9c3RkOnZ0dl9zdGFydC5vJXN9IgpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZ3VyZSBiL2djYy9jb25maWd1cmUKaW5kZXggYjk5ZWI2ZC4uM2Ew M2RjZSAxMDA3NTUKLS0tIGEvZ2NjL2NvbmZpZ3VyZQorKysgYi9nY2MvY29u ZmlndXJlCkBAIC02MDAsNiArNjAwLDkgQEAgYWNfaW5jbHVkZXNfZGVmYXVs dD0iXAogCiBhY19zdWJzdF92YXJzPSdMVExJQk9CSlMKIExJQk9CSlMKK05P X1BJRV9GTEFHCitOT19QSUVfQ0ZMQUdTCitlbmFibGVfZGVmYXVsdF9waWUK IFBJQ0ZMQUcKIGVuYWJsZV9ob3N0X3NoYXJlZAogZW5hYmxlX3BsdWdpbgpA QCAtOTM4LDYgKzk0MSw3IEBAIGVuYWJsZV9ob3N0X3NoYXJlZAogZW5hYmxl X2xpYnF1YWRtYXRoX3N1cHBvcnQKIHdpdGhfbGlua2VyX2hhc2hfc3R5bGUK IHdpdGhfZGlhZ25vc3RpY3NfY29sb3IKK2VuYWJsZV9kZWZhdWx0X3BpZQog JwogICAgICAgYWNfcHJlY2lvdXNfdmFycz0nYnVpbGRfYWxpYXMKIGhvc3Rf YWxpYXMKQEAgLTE2NzQsNiArMTY3OCw3IEBAIE9wdGlvbmFsIEZlYXR1cmVz OgogICAtLWVuYWJsZS1ob3N0LXNoYXJlZCAgICBidWlsZCBob3N0IGNvZGUg YXMgc2hhcmVkIGxpYnJhcmllcwogICAtLWRpc2FibGUtbGlicXVhZG1hdGgt c3VwcG9ydAogICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGxp YnF1YWRtYXRoIHN1cHBvcnQgZm9yIEZvcnRyYW4KKyAgLS1lbmFibGUtZGVm YXVsdC1waWUgICAgZW5hYmxlIFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1 dGFibGUgYXMgZGVmYXVsdAogCiBPcHRpb25hbCBQYWNrYWdlczoKICAgLS13 aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCkBA IC0xODE2Miw3ICsxODE2Nyw3IEBAIGVsc2UKICAgbHRfZGx1bmtub3duPTA7 IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBsdF9z dGF0dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8X0xUX0VPRgotI2xpbmUgMTgxNjUgImNvbmZpZ3VyZSIKKyNsaW5lIDE4 MTcwICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIAogI2lm IEhBVkVfRExGQ05fSApAQCAtMTgyNjgsNyArMTgyNzMsNyBAQCBlbHNlCiAg IGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRf dXNjb3JlPTIKICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSNsaW5lIDE4MjcxICJjb25m aWd1cmUiCisjbGluZSAxODI3NiAiY29uZmlndXJlIgogI2luY2x1ZGUgImNv bmZkZWZzLmgiCiAKICNpZiBIQVZFX0RMRkNOX0gKQEAgLTI4NTcxLDYgKzI4 NTc2LDc2IEBAIGNhdCA+IGdjYy1kcml2ZXItbmFtZS5oIDw8RU9GCiAjZGVm aW5lIEdDQ19EUklWRVJfTkFNRSAiJHt0YXJnZXRfbm9uY2Fub25pY2FsfS1n Y2MtJHtnY2NfQkFTRVZFUn0ke2V4ZWV4dH0iCiBFT0YKIAorIyBDaGVjayB3 aGV0aGVyIC0tZW5hYmxlLWRlZmF1bHQtcGllIHdhcyBnaXZlbi4KKyMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1kZWZhdWx0LXBpZSB3YXMgZ2l2ZW4uCitp ZiB0ZXN0ICIke2VuYWJsZV9kZWZhdWx0X3BpZStzZXR9IiA9IHNldDsgdGhl biA6CisgIGVuYWJsZXZhbD0kZW5hYmxlX2RlZmF1bHRfcGllOyBlbmFibGVf ZGVmYXVsdF9waWU9JGVuYWJsZXZhbAorZWxzZQorICBlbmFibGVfZGVmYXVs dF9waWU9bm8KK2ZpCisKK2lmIHRlc3QgeCRlbmFibGVfZGVmYXVsdF9waWUg PT0geHllcyA7IHRoZW4KKworJGFzX2VjaG8gIiNkZWZpbmUgRU5BQkxFX0RF RkFVTFRfUElFIDEiID4+Y29uZmRlZnMuaAorCitmaQorCisKKyMgQ2hlY2sg aWYgLWZuby1QSUUgd29ya3MuCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAtZm5vLVBJRSBvcHRpb24i ID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1mbm8tUElFIG9wdGlv bi4uLiAiID4mNjsgfQoraWYgdGVzdCAiJHtnY2NfY3ZfY19ub19mcGllK3Nl dH0iID0gc2V0OyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKK2Vsc2UKKyAgc2F2ZWRfQ0ZMQUdTPSIkQ0ZMQUdTIgorICAgQ0ZMQUdT PSIkQ0ZMQUdTIC1mbm8tUElFIgorICAgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAq LworaW50IG1haW4odm9pZCkge3JldHVybiAwO30KK19BQ0VPRgoraWYgYWNf Zm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBnY2NfY3Zf Y19ub19mcGllPXllcworZWxzZQorICBnY2NfY3ZfY19ub19mcGllPW5vCitm aQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisgICBDRkxBR1M9IiRzYXZlZF9DRkxBR1Mi CitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRnY2NfY3ZfY19ub19mcGllIiA+JjUKKyRhc19lY2hvICIk Z2NjX2N2X2Nfbm9fZnBpZSIgPiY2OyB9CitpZiB0ZXN0ICIkZ2NjX2N2X2Nf bm9fZnBpZSIgPSAieWVzIjsgdGhlbgorICBOT19QSUVfQ0ZMQUdTPSItZm5v LVBJRSIKK2ZpCisKKworIyBDaGVjayBpZiAtbm8tcGllIHdvcmtzLgoreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgLW5vLXBpZSBvcHRpb24iID4mNQorJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIC1uby1waWUgb3B0aW9uLi4uICIgPiY2OyB9CitpZiB0ZXN0ICIk e2djY19jdl9ub19waWUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBzYXZlZF9MREZMQUdTPSIk TERGTEFHUyIKKyAgIExERkxBR1M9IiRMREZMQUdTIC1uby1waWUiCisgICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Cisv KiBlbmQgY29uZmRlZnMuaC4gICovCitpbnQgbWFpbih2b2lkKSB7cmV0dXJu IDA7fQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisgIGdjY19jdl9ub19waWU9eWVzCitlbHNlCisgIGdjY19jdl9u b19waWU9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCitmaQor eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRnY2NfY3Zfbm9fcGllIiA+JjUKKyRhc19lY2hvICIkZ2NjX2N2X25v X3BpZSIgPiY2OyB9CitpZiB0ZXN0ICIkZ2NjX2N2X25vX3BpZSIgPSAieWVz IjsgdGhlbgorICBOT19QSUVfRkxBRz0iLW5vLXBpZSIKK2ZpCisKKwogIyBD b25maWd1cmUgdGhlIHN1YmRpcmVjdG9yaWVzCiAjIEFDX0NPTkZJR19TVUJE SVJTKCRzdWJkaXJzKQogCmRpZmYgLS1naXQgYS9nY2MvY29uZmlndXJlLmFj IGIvZ2NjL2NvbmZpZ3VyZS5hYwppbmRleCA4MTA3MjVjLi43M2RlMWFkIDEw MDY0NAotLS0gYS9nY2MvY29uZmlndXJlLmFjCisrKyBiL2djYy9jb25maWd1 cmUuYWMKQEAgLTU4MjYsNiArNTgyNiw0NiBAQCBjYXQgPiBnY2MtZHJpdmVy LW5hbWUuaCA8PEVPRgogI2RlZmluZSBHQ0NfRFJJVkVSX05BTUUgIiR7dGFy Z2V0X25vbmNhbm9uaWNhbH0tZ2NjLSR7Z2NjX0JBU0VWRVJ9JHtleGVleHR9 IgogRU9GCiAKKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1kZWZhdWx0LXBp ZSB3YXMgZ2l2ZW4uCitBQ19BUkdfRU5BQkxFKGRlZmF1bHQtcGllLAorW0FT X0hFTFBfU1RSSU5HKFstLWVuYWJsZS1kZWZhdWx0LXBpZV0sCisgIFtlbmFi bGUgUG9zaXRpb24gSW5kZXBlbmRlbnQgRXhlY3V0YWJsZSBhcyBkZWZhdWx0 XSldLAorZW5hYmxlX2RlZmF1bHRfcGllPSRlbmFibGV2YWwsCitlbmFibGVf ZGVmYXVsdF9waWU9bm8pCitpZiB0ZXN0IHgkZW5hYmxlX2RlZmF1bHRfcGll ID09IHh5ZXMgOyB0aGVuCisgIEFDX0RFRklORShFTkFCTEVfREVGQVVMVF9Q SUUsIDEsCisgICAgICBbRGVmaW5lIGlmIHlvdXIgdGFyZ2V0IHN1cHBvcnRz IGRlZmF1bHQgUElFIGFuZCBpdCBpcyBlbmFibGVkLl0pCitmaQorQUNfU1VC U1QoW2VuYWJsZV9kZWZhdWx0X3BpZV0pCisKKyMgQ2hlY2sgaWYgLWZuby1Q SUUgd29ya3MuCitBQ19DQUNIRV9DSEVDSyhbZm9yIC1mbm8tUElFIG9wdGlv bl0sCisgIFtnY2NfY3ZfY19ub19mcGllXSwKKyAgW3NhdmVkX0NGTEFHUz0i JENGTEFHUyIKKyAgIENGTEFHUz0iJENGTEFHUyAtZm5vLVBJRSIKKyAgIEFD X0NPTVBJTEVfSUZFTFNFKFtpbnQgbWFpbih2b2lkKSB7cmV0dXJuIDA7fV0s CisgICAgIFtnY2NfY3ZfY19ub19mcGllPXllc10sCisgICAgIFtnY2NfY3Zf Y19ub19mcGllPW5vXSkKKyAgIENGTEFHUz0iJHNhdmVkX0NGTEFHUyJdKQor aWYgdGVzdCAiJGdjY19jdl9jX25vX2ZwaWUiID0gInllcyI7IHRoZW4KKyAg Tk9fUElFX0NGTEFHUz0iLWZuby1QSUUiCitmaQorQUNfU1VCU1QoW05PX1BJ RV9DRkxBR1NdKQorCisjIENoZWNrIGlmIC1uby1waWUgd29ya3MuCitBQ19D QUNIRV9DSEVDSyhbZm9yIC1uby1waWUgb3B0aW9uXSwKKyAgW2djY19jdl9u b19waWVdLAorICBbc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCisgICBMREZM QUdTPSIkTERGTEFHUyAtbm8tcGllIgorICAgQUNfTElOS19JRkVMU0UoW2lu dCBtYWluKHZvaWQpIHtyZXR1cm4gMDt9XSwKKyAgICAgW2djY19jdl9ub19w aWU9eWVzXSwKKyAgICAgW2djY19jdl9ub19waWU9bm9dKQorICAgTERGTEFH Uz0iJHNhdmVkX0xERkxBR1MiXSkKK2lmIHRlc3QgIiRnY2NfY3Zfbm9fcGll IiA9ICJ5ZXMiOyB0aGVuCisgIE5PX1BJRV9GTEFHPSItbm8tcGllIgorZmkK K0FDX1NVQlNUKFtOT19QSUVfRkxBR10pCisKICMgQ29uZmlndXJlIHRoZSBz dWJkaXJlY3RvcmllcwogIyBBQ19DT05GSUdfU1VCRElSUygkc3ViZGlycykK IApkaWZmIC0tZ2l0IGEvZ2NjL2RlZmF1bHRzLmggYi9nY2MvZGVmYXVsdHMu aAppbmRleCA0N2ZkY2Y0Li5hN2RhMWEzIDEwMDY0NAotLS0gYS9nY2MvZGVm YXVsdHMuaAorKysgYi9nY2MvZGVmYXVsdHMuaApAQCAtMTIyOSw2ICsxMjI5 LDExIEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVO VElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQogI2RlZmluZSBBUkdT X0dST1dfRE9XTldBUkQgMAogI2VuZGlmCiAKKy8qIERlZmF1bHQgUElFIHRv IC1mUElFLiAgKi8KKyNpZm5kZWYgREVGQVVMVF9GTEFHX1BJRQorIyBkZWZp bmUgREVGQVVMVF9GTEFHX1BJRSAyCisjZW5kaWYKKwogI2lmZGVmIEdDQ19J TlNOX0ZMQUdTX0gKIC8qIERlcGVuZGVudCBkZWZhdWx0IHRhcmdldCBtYWNy byBkZWZpbml0aW9ucwogCmRpZmYgLS1naXQgYS9nY2MvZG9jL2luc3RhbGwu dGV4aSBiL2djYy9kb2MvaW5zdGFsbC50ZXhpCmluZGV4IGQ4ZDM5MzkuLjM2 NTAyZWUgMTAwNjQ0Ci0tLSBhL2djYy9kb2MvaW5zdGFsbC50ZXhpCisrKyBi L2djYy9kb2MvaW5zdGFsbC50ZXhpCkBAIC0xNTgzLDYgKzE1ODMsOSBAQCBu b3QgYmUgYnVpbHQuCiBTcGVjaWZ5IHRoYXQgdGhlIHJ1bi10aW1lIGxpYnJh cmllcyBmb3Igc3RhY2sgc21hc2hpbmcgcHJvdGVjdGlvbgogc2hvdWxkIG5v dCBiZSBidWlsdC4KIAorQGl0ZW0gLS1lbmFibGUtZGVmYXVsdC1waWUKK1R1 cm4gb24gQG9wdGlvbnstZlBJRX0gYW5kIEBvcHRpb257LXBpZX0gYnkgZGVm YXVsdC4KKwogQGl0ZW0gLS1kaXNhYmxlLWxpYnF1YWRtYXRoCiBTcGVjaWZ5 IHRoYXQgdGhlIEdDQyBxdWFkLXByZWNpc2lvbiBtYXRoIGxpYnJhcnkgc2hv dWxkIG5vdCBiZSBidWlsdC4KIE9uIHNvbWUgc3lzdGVtcywgdGhlIGxpYnJh cnkgaXMgcmVxdWlyZWQgdG8gYmUgbGlua2FibGUgd2hlbiBidWlsZGluZwpk aWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52 b2tlLnRleGkKaW5kZXggOTE2OTczMS4uYWMzNDUzOSAxMDA2NDQKLS0tIGEv Z2NjL2RvYy9pbnZva2UudGV4aQorKysgYi9nY2MvZG9jL2ludm9rZS50ZXhp CkBAIC0xMTI1MSw2ICsxMTI1MSwxMCBAQCBGb3IgcHJlZGljdGFibGUgcmVz dWx0cywgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBzYW1lIHNldCBvZiBv cHRpb25zCiB1c2VkIGZvciBjb21waWxhdGlvbiAoQG9wdGlvbnstZnBpZX0s IEBvcHRpb257LWZQSUV9LAogb3IgbW9kZWwgc3Vib3B0aW9ucykgd2hlbiB5 b3Ugc3BlY2lmeSB0aGlzIGxpbmtlciBvcHRpb24uCiAKK0BpdGVtIC1uby1w aWUKK0BvcGluZGV4IG5vLXBpZQorRG9uJ3QgcHJvZHVjZSBhIHBvc2l0aW9u IGluZGVwZW5kZW50IGV4ZWN1dGFibGUuCisKIEBpdGVtIC1yZHluYW1pYwog QG9waW5kZXggcmR5bmFtaWMKIFBhc3MgdGhlIGZsYWcgQG9wdGlvbnstZXhw b3J0LWR5bmFtaWN9IHRvIHRoZSBFTEYgbGlua2VyLCBvbiB0YXJnZXRzCmRp ZmYgLS1naXQgYS9nY2MvZ2NjLmMgYi9nY2MvZ2NjLmMKaW5kZXggZDk1NmMz Ni4uNGJhMzIyOSAxMDA2NDQKLS0tIGEvZ2NjL2djYy5jCisrKyBiL2djYy9n Y2MuYwpAQCAtNzM3LDEyICs3MzcsMjkgQEAgcHJvcGVyIHBvc2l0aW9uIGFt b25nIHRoZSBvdGhlciBvdXRwdXQgZmlsZXMuICAqLwogI2VuZGlmCiAjZW5k aWYKIAorI2lmZGVmIEVOQUJMRV9ERUZBVUxUX1BJRQorI2RlZmluZSBOT19Q SUVfU1BFQwkJIm5vLXBpZXxzdGF0aWMiCisjZGVmaW5lIFBJRV9TUEVDCQlO T19QSUVfU1BFQyAifHJ8c2hhcmVkOjsiCisjZGVmaW5lIE5PX0ZQSUVfU1BF QwkJImZuby1waWV8Zm5vLVBJRSIKKyNkZWZpbmUgRlBJRV9TUEVDCQlOT19G UElFX1NQRUMgIjo7IgorI2RlZmluZSBOT19GUElFX0FORF9GUElDX1NQRUMJ Tk9fRlBJRV9TUEVDICJ8Zm5vLXBpY3xmbm8tUElDIgorI2RlZmluZSBGUElF X09SX0ZQSUNfU1BFQwlOT19GUElFX0FORF9GUElDX1NQRUMgIjo7IgorI2Vs c2UKKyNkZWZpbmUgUElFX1NQRUMJCSJwaWUiCisjZGVmaW5lIE5PX1BJRV9T UEVDCQlQSUVfU1BFQyAifHJ8c2hhcmVkOjsiCisjZGVmaW5lIEZQSUVfU1BF QwkJImZwaWV8ZlBJRSIKKyNkZWZpbmUgTk9fRlBJRV9TUEVDCQlGUElFX1NQ RUMgIjo7IgorI2RlZmluZSBGUElFX09SX0ZQSUNfU1BFQwlGUElFX1NQRUMg InxmcGljfGZQSUMiCisjZGVmaW5lIE5PX0ZQSUVfQU5EX0ZQSUNfU1BFQwlG UElFX09SX0ZQSUNfU1BFQyAiOjsiCisjZW5kaWYKKwogI2lmbmRlZiBMSU5L X1BJRV9TUEVDCiAjaWZkZWYgSEFWRV9MRF9QSUUKLSNkZWZpbmUgTElOS19Q SUVfU1BFQyAiJXtwaWU6LXBpZX0gIgorI2RlZmluZSBMRF9QSUVfU1BFQyAi LXBpZSIKICNlbHNlCi0jZGVmaW5lIExJTktfUElFX1NQRUMgIiV7cGllOn0g IgorI2RlZmluZSBMRF9QSUVfU1BFQyAiIgogI2VuZGlmCisjZGVmaW5lIExJ TktfUElFX1NQRUMgIiV7bm8tcGllOn0gIiAiJXsiIFBJRV9TUEVDICI6IiBM RF9QSUVfU1BFQyAifSAiCiAjZW5kaWYKIAogI2lmbmRlZiBMSU5LX0JVSUxE SURfU1BFQwpkaWZmIC0tZ2l0IGEvZ2NjL29wdHMuYyBiL2djYy9vcHRzLmMK aW5kZXggY2Y5MjMzNC4uYzEwMTI2YSAxMDA2NDQKLS0tIGEvZ2NjL29wdHMu YworKysgYi9nY2Mvb3B0cy5jCkBAIC03MzksOCArNzM5LDIyIEBAIGZpbmlz aF9vcHRpb25zIChzdHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMsIHN0cnVjdCBn Y2Nfb3B0aW9ucyAqb3B0c19zZXQsCiAgICAgICBvcHRzLT54X2ZsYWdfc2Vj dGlvbl9hbmNob3JzID0gMDsKICAgICB9CiAKKyNpZm5kZWYgRU5BQkxFX0RF RkFVTFRfUElFCisjdW5kZWYgREVGQVVMVF9GTEFHX1BJRQorI2RlZmluZSBE RUZBVUxUX0ZMQUdfUElFIDAKKyNlbmRpZgorCiAgIGlmICghb3B0cy0+eF9m bGFnX29wdHNfZmluaXNoZWQpCiAgICAgeworICAgICAgLyogV2UgaW5pdGlh bGl6ZSBvcHRzLT54X2ZsYWdfcGllIHRvIC0xIHNvIHRoYXQgdGFyZ2V0cyBj YW4gc2V0IGEKKwkgZGVmYXVsdCB2YWx1ZS4gICovCisgICAgICBpZiAob3B0 cy0+eF9mbGFnX3BpZSA9PSAtMSkKKwl7CisJICBpZiAob3B0cy0+eF9mbGFn X3BpYyA9PSAwKQorCSAgICBvcHRzLT54X2ZsYWdfcGllID0gREVGQVVMVF9G TEFHX1BJRTsKKwkgIGVsc2UKKwkgICAgb3B0cy0+eF9mbGFnX3BpZSA9IDA7 CisJfQogICAgICAgaWYgKG9wdHMtPnhfZmxhZ19waWUpCiAJb3B0cy0+eF9m bGFnX3BpYyA9IG9wdHMtPnhfZmxhZ19waWU7CiAgICAgICBpZiAob3B0cy0+ eF9mbGFnX3BpYyAmJiAhb3B0cy0+eF9mbGFnX3BpZSkKZGlmZiAtLWdpdCBh L2xpYmdjYy9NYWtlZmlsZS5pbiBiL2xpYmdjYy9NYWtlZmlsZS5pbgppbmRl eCAxYWIxODhkLi5iOGZjMWQ4IDEwMDY0NAotLS0gYS9saWJnY2MvTWFrZWZp bGUuaW4KKysrIGIvbGliZ2NjL01ha2VmaWxlLmluCkBAIC0yODUsNyArMjg1 LDcgQEAgSU5URVJOQUxfQ0ZMQUdTID0gJChDRkxBR1MpICQoTElCR0NDMl9D RkxBR1MpICQoSE9TVF9MSUJHQ0MyX0NGTEFHUykgXAogCiAjIE9wdGlvbnMg dG8gdXNlIHdoZW4gY29tcGlsaW5nIGNydGJlZ2luL2VuZC4KIENSVFNUVUZG X0NGTEFHUyA9IC1PMiAkKEdDQ19DRkxBR1MpICQoSU5DTFVERVMpICQoTVVM VElMSUJfQ0ZMQUdTKSAtZzAgXAotICAtZmluaGliaXQtc2l6ZS1kaXJlY3Rp dmUgLWZuby1pbmxpbmUgLWZuby1leGNlcHRpb25zIFwKKyAgJChOT19QSUVf Q0ZMQUdTKSAtZmluaGliaXQtc2l6ZS1kaXJlY3RpdmUgLWZuby1pbmxpbmUg LWZuby1leGNlcHRpb25zIFwKICAgLWZuby16ZXJvLWluaXRpYWxpemVkLWlu LWJzcyAtZm5vLXRvcGxldmVsLXJlb3JkZXIgLWZuby10cmVlLXZlY3Rvcml6 ZSBcCiAgIC1mYnVpbGRpbmctbGliZ2NjIC1mbm8tc3RhY2stcHJvdGVjdG9y ICQoRk9SQ0VfRVhQTElDSVRfRUhfUkVHSVNUUlkpIFwKICAgJChJTkhJQklU X0xJQkNfQ0ZMQUdTKQotLSAKMS45LjMKCg== --047d7b2e4e3c3f9df205159575e0--