From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 4EAFC3857036 for ; Wed, 14 Apr 2021 13:59:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4EAFC3857036 Received: by mail-ot1-x32a.google.com with SMTP id k14-20020a9d7dce0000b02901b866632f29so19408209otn.1 for ; Wed, 14 Apr 2021 06:59:01 -0700 (PDT) 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=Rt5Jz2v07Hzw3t/e7BJr30LC/Ok700gauIklQjQwRso=; b=eSL2TrDD8aZZS8o3ePcpzgjPxkWMUBsdoqq49cr7jqoaIP26k9CrKrYM1pKpp1TfP4 PxYIcNRjAS6uf6wezPd2Lt5ZiMDzY/5mnHwuG5DxbqjIC2YGJ6kJYQ3CD4JBrrqbv2+8 HKK8NfxYiqBh9WyMuY0hn6RTiy3uchelpkNTSLf870z5kvrmD4Tz2jTSg/sLLIDABEsD 7bg+Qc/0jiDCiV20/LvlYmq5OK1Z3tXF/LjE94hp0ikHT/Ij/9Lb8FRGqcl5ZClsIy4S 2W8lOT6tLOdGaqLd/9T8ccfT8nbZUIPVpxHoPvwe62A9NG78OQtIj3YShaj8joFnvmrm lkHA== X-Gm-Message-State: AOAM530ZNIz1ytLXT8QIrifh1y+KTcakR7BsiqIPASsBvbmh7OJwHkwU Ho9FG7S3jv7Cadw+Pr/DJuT0/nLhV9UhibvfrZ4= X-Google-Smtp-Source: ABdhPJx44q1s+aAvUPmurc6Z3+NjbCZT9dnVhBM17vvihbbWFNnE9puVcaveEIqzSFaPA+uRiznoi30mz26QG/z5Wls= X-Received: by 2002:a05:6830:1515:: with SMTP id k21mr32606657otp.269.1618408740611; Wed, 14 Apr 2021 06:59:00 -0700 (PDT) MIME-Version: 1.0 References: <20210410145247.209214-1-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Wed, 14 Apr 2021 06:58:23 -0700 Message-ID: Subject: [GCC 12] [PATCH v3] Add general_regs_only function attribute To: Martin Sebor Cc: Richard Biener , GCC Patches Content-Type: multipart/mixed; boundary="000000000000160b1a05bfef26e7" X-Spam-Status: No, score=-3035.9 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, UPPERCASE_50_75 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 13:59:06 -0000 --000000000000160b1a05bfef26e7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Apr 13, 2021 at 8:51 AM Martin Sebor wrote: > > On 4/12/21 7:03 PM, H.J. Lu wrote: > > On Mon, Apr 12, 2021 at 4:55 PM Martin Sebor wrote: > >> > >> On 4/12/21 3:53 PM, H.J. Lu via Gcc-patches wrote: > >>> On Mon, Apr 12, 2021 at 2:21 AM Richard Biener > >>> wrote: > >>>> > >>>> On Sat, Apr 10, 2021 at 5:11 PM H.J. Lu via Gcc-patches > >>>> wrote: > >>>>> > >>>>> Add inline_ignore_target function attribute to inform the compiler = that > >>>>> target specific option mismatch on functions with the always_inline > >>>>> attribute may be ignored. On x86 targets, this attribute can be us= ed on > >>>>> integer functions to ignore target non-integer option mismatch. > >>>> > >>>> I'm not sure I like such attribute but please adjust default_target_= can_inline_p > >>>> accordingly (only few targets override this hook). > >>>> > >>>> Richard. > >>>> > >>> > >>> Like this? > >>> > >>> Thanks. > >> > >> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi > >> index 1ddafb3ff2c..44588566f2d 100644 > >> --- a/gcc/doc/extend.texi > >> +++ b/gcc/doc/extend.texi > >> @@ -3187,6 +3187,14 @@ int S::interface (int) __attribute__ ((ifunc > >> ("_ZN1S8resolverEv"))); > >> Indirect functions cannot be weak. Binutils version 2.20.1 or high= er > >> and GNU C Library version 2.11.1 are required to use this feature. > >> > >> +@item inline_ignore_target > >> +@cindex @code{inline_ignore_target} function attribute > >> +The @code{inline_ignore_target} attribute on functions is used to > >> +inform the compiler that target specific option mismatch on functions > >> +with the @code{always_inline} attribute may be ignored. On x86 targe= ts, > >> +this attribute can be used on integer functions to ignore target > >> +non-integer option mismatch. > >> + > >> @item interrupt > >> @itemx interrupt_handler > >> Many GCC back ends support attributes to indicate that a function i= s > >> > >> I'm having a hard time understanding the description above (or > >> the attribute's name for that matter). > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99744 > > > > has a testcase. > > Thanks. My overall point is that GCC users should be able to answer > these questions from reading the documentation of the attribute in > the manual. > > > > >> The inline_ignore_target function attribute informs the compiler > >> that "target specific option mismatch on functions with the > >> @code{always_inline} attribute" may be ignored. > >> > >> What does "target specific option mismatch" mean? Is it a mismatch > > > > This refers to the message from GCC: > > > > /usr/gcc-11.0.0-x32/lib/gcc/x86_64-pc-linux-gnu/11.0.0/include/ia32intr= in.h:112:1: > > error: inlining failed in call to =E2=80=98always_inline=E2=80=99 =E2= =80=98__rdtsc=E2=80=99: target > > specific option mismatch > > 112 | __rdtsc (void) > > | ^~~~~~~ > > But what exactly does the target-specific option refer to, and what > does it fail to match? Presumably, it refers to the option in > the attribute on the function declaration in the PR: > > __attribute__ ((target("general-regs-only"))) > > and the inability to use the rdtsc instruction with a GPR. > > But unless the error either mentions the -mgeneral-regs-only option > by name or is followed by a note that points to the option in > the function declaration, the words "target specific option" alone > aren't enough to understand what the error means, and the text in > the manual doesn't help. > > I would suggest to improve the message and the manual. > > > > >> between target-specific optimization options added to a function by > >> attribute optimize vs other target-specific optimization options of > >> the function callers (e.g., added to them by another instance of > >> attribue optimize, or by #pragma GCC optimize), into which a function > >> with the attribute may be inlined, and where the conflict between > >> the two sets of options needs to be reconciled? And if so, should > > > > It is added to support integer functions with always_inline attribute. > > Currently x86 integer functions with always_inline attribute fail to > > compile when caller has general-regs-only target attribute and > > SSE is enabled by default. > > Thanks. I would suggest to also explain this in the manual. > > > > >> it be provided as a generic attribute for all targets? > > I'm still wondering if this should be a generic attribute. Besides > x86, I see -mgeneral-regs-only also provided by ARM and Aarch64, so > I would expect the attribute to be useful to those targets as well, > and to all other targets that add the option or one like it in > the future. I believe it's better for portability to add a generic > attribute even if it's not universally supported, than a target- > specific one. > > > > > Different targets can have different sets of conflict target specific > > options. > > > >> Also, what's "integer functions" supposed to mean? Functions that > >> return integers? > > > > An integer function can be compiled with -mgeneral-regs-only. > > I don't think that answers my question. It sounds like a property > of something you call an /integer function/. My question is: what > is [the definition of] an integer function? In other words, how can > one tell whether or not an arbitrary function is an integer function? > > The manual should either define the term /integer function/ or it > should describe what it means so that readers won't have to ask this > question. If the definition is "an integer function is one that can > be compiled without error with -mgeneral-regs-only" then then that's > what the manual should say (although I'd hope for more detail and > clarity than that.) > > > > >> This new attribute seems sufficiently specialized that I think > >> the description ought to be expanded to make it clearer what it's > >> for, why it's needed, and when and how to use it. Adding an example > >> or two might help, as would using more precise terminology. > >> > >> Separately, seeing no tests for it in the patch, I wonder how > > > > There are 2 existing tests: gcc.target/i386/pr99744-1.c and > > gcc.target/i386/pr99744-2.c. If we want to go with this approach, > > I will add inline_ignore_target to all x86 integer intrinsics with > > tests. > > I don't have much of an opinion on the approach itself (adding > an attribute to avoid the error). I'm trying to help improve > the usability of the feature to prevent gaps (underspecified > aspects) in new attributes that are then hard to sort out after > the attribute has been introduced. This affects GCC users as > well as developers and users of GCC-compatible compilers, and > eventually also GCC devs as bug reports against GCC are open by > users of other compilers that, in the absence of an unambiguous > interpretetation of both the documentation and the behavior > provide subtly different semantics than GCC. > > > > >> the new attribute interacts (or should interact) with other > >> attributes or other kinds of functions than the ones it's tested > >> with. For example, what happens when the attribute is added to > >> a function that's not declared inline, or that's declared with > >> the noinline attribute. > >> > > > > This attribute should be used together with always_inline attribute. > > I would suggest to both document this constraint and issue an error > when it's not used this way, along with a test case to verify it. > > Martin Here is a different approach with general_regs_only function attribute to let GCC know that functions use only general purpose registers. Backends can use this information to make inlining decisions. --=20 H.J. --000000000000160b1a05bfef26e7 Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0001-Add-general_regs_only-function-attribute.patch" Content-Disposition: attachment; filename="v3-0001-Add-general_regs_only-function-attribute.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_knhim3zr0 RnJvbSA0ZTJkM2U4YzI4YzIyZjlhY2EzYWQ5ZTU1ZmI3NDZjN2U3ZmI1MTYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMTAgQXByIDIwMjEgMDc6NDU6MzUgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzXSBBZGQg Z2VuZXJhbF9yZWdzX29ubHkgZnVuY3Rpb24gYXR0cmlidXRlCgpBZGQgZ2VuZXJhbF9yZWdzX29u bHkgZnVuY3Rpb24gYXR0cmlidXRlIHRvIGluZm9ybSB0aGUgY29tcGlsZXIgdGhhdApmdW5jdGlv bnMgdXNlIG9ubHkgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4gIFdoZW4gaW5saW5pbmcgc3Vj aApmdW5jdGlvbnMsIG5vbi1HUFIgY29tcGlsZXIgb3B0aW9ucyBjYW4gYmUgaWdub3JlZC4KCmdj Yy9jLWZhbWlseS8KCglQUiB0YXJnZXQvOTk3NDQKCSogYy1mYW1pbHkvYy1hdHRyaWJzLmMgKGNf Y29tbW9uX2F0dHJpYnV0ZV90YWJsZSk6IEFkZAoJZ2VuZXJhbF9yZWdzX29ubHkuCgpnY2MvCgoJ UFIgdGFyZ2V0Lzk5NzQ0CgkqIGNvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNvbW1vbi5jIChPUFRJ T05fTUFTS18qKSB0byAuLi4KCSogY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmg6IEhl cmUuICBOZXcgZmlsZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2Nhbl9pbmxpbmVfcCk6 IElnbm9yZSB0YXJnZXQKCW5vbi1pbnRlZ2VyIG9wdGlvbiBtaXNtYXRjaCBpZiBjYWxsZWUgaGFz IGdlbmVyYWxfcmVnc19vbmx5CglhdHRyaWJ1dGUuCgkqIGNvbmZpZy9pMzg2L2kzODYuaDogSW5j bHVkZSBjb21tb24vY29uZmlnL2kzODYvaTM4Ni1jb21tb24uaC4KCSogY29uZmlnL2kzODYvaWEz MmludHJpbi5oIChfX3JkdHNjKTogVXNlIGFsd2F5c19pbmxpbmUgZnVuY3Rpb24KCXdpdGggZ2Vu ZXJhbF9yZWdzX29ubHkgYXR0cmlidXRlLgoJKF9fcmR0c2NwKTogTGlrZXdpc2UuCgkqIGNvbmZp Zy9pMzg2L3NlcmlhbGl6ZWludHJpbi5oIChfc2VyaWFsaXplKTogTGlrZXdpc2UuCgkqIGRvYy9l eHRlbmQudGV4aTogRG9jdW1lbnQgZ2VuZXJhbF9yZWdzX29ubHkgZnVuY3Rpb24gYXR0cmlidXRl LgoKZ2NjL3Rlc3RzdWl0ZS8KCglQUiB0YXJnZXQvOTk3NDQKCSogZ2NjLnRhcmdldC9pMzg2L3By OTk3NDQtMy5jOiBOZXcgdGVzdC4KLS0tCiBnY2MvYy1mYW1pbHkvYy1hdHRyaWJzLmMgICAgICAg ICAgICAgICAgICB8ICAgMiArCiBnY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmMg ICAgICB8IDI5NyAtLS0tLS0tLS0tLS0tLS0tLS0tLQogZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9p Mzg2LWNvbW1vbi5oICAgICAgfCAzMTUgKysrKysrKysrKysrKysrKysrKysrKwogZ2NjL2NvbmZp Zy9pMzg2L2kzODYuYyAgICAgICAgICAgICAgICAgICAgfCAgMjkgKy0KIGdjYy9jb25maWcvaTM4 Ni9pMzg2LmggICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGdjYy9jb25maWcvaTM4Ni9pYTMy aW50cmluLmggICAgICAgICAgICAgIHwgIDE2ICstCiBnY2MvY29uZmlnL2kzODYvc2VyaWFsaXpl aW50cmluLmggICAgICAgICB8ICAgOCArLQogZ2NjL2RvYy9leHRlbmQudGV4aSAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDUgKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5OTc0 NC0zLmMgfCAgMTMgKwogOSBmaWxlcyBjaGFuZ2VkLCAzODEgaW5zZXJ0aW9ucygrKSwgMzA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9jb21tb24vY29uZmlnL2kzODYvaTM4 Ni1jb21tb24uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L3ByOTk3NDQtMy5jCgpkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5jIGIv Z2NjL2MtZmFtaWx5L2MtYXR0cmlicy5jCmluZGV4IGMxZjY1MmQxZGM5Li4xY2EyZDk3YTI1MyAx MDA2NDQKLS0tIGEvZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5jCisrKyBiL2djYy9jLWZhbWlseS9j LWF0dHJpYnMuYwpAQCAtMzIzLDYgKzMyMyw4IEBAIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfc3Bl YyBjX2NvbW1vbl9hdHRyaWJ1dGVfdGFibGVbXSA9CiAJICAgICAgICAgICAgICAgICAgICAgIGF0 dHJfaW5saW5lX2V4Y2x1c2lvbnMgfSwKICAgeyAiYXJ0aWZpY2lhbCIsICAgICAgICAgICAgIDAs IDAsIHRydWUsICBmYWxzZSwgZmFsc2UsIGZhbHNlLAogCQkJICAgICAgaGFuZGxlX2FydGlmaWNp YWxfYXR0cmlidXRlLCBOVUxMIH0sCisgIHsgImdlbmVyYWxfcmVnc19vbmx5IiwgICAgICAwLCAw LCB0cnVlLCAgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwkJCSAgICAgIGhhbmRsZV9hcnRpZmljaWFs X2F0dHJpYnV0ZSwgTlVMTCB9LAogICB7ICJmbGF0dGVuIiwgICAgICAgICAgICAgICAgMCwgMCwg dHJ1ZSwgIGZhbHNlLCBmYWxzZSwgZmFsc2UsCiAJCQkgICAgICBoYW5kbGVfZmxhdHRlbl9hdHRy aWJ1dGUsIE5VTEwgfSwKICAgeyAidXNlZCIsICAgICAgICAgICAgICAgICAgIDAsIDAsIHRydWUs ICBmYWxzZSwgZmFsc2UsIGZhbHNlLApkaWZmIC0tZ2l0IGEvZ2NjL2NvbW1vbi9jb25maWcvaTM4 Ni9pMzg2LWNvbW1vbi5jIGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNvbW1vbi5jCmlu ZGV4IDFlNmMxNTkwYWM0Li4zN2ZmNDdiZDY3NiAxMDA2NDQKLS0tIGEvZ2NjL2NvbW1vbi9jb25m aWcvaTM4Ni9pMzg2LWNvbW1vbi5jCisrKyBiL2djYy9jb21tb24vY29uZmlnL2kzODYvaTM4Ni1j b21tb24uYwpAQCAtMjksMzAzICsyOSw2IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUg Q09QWUlORzMuICBJZiBub3Qgc2VlCiAjaW5jbHVkZSAib3B0cy5oIgogI2luY2x1ZGUgImZsYWdz LmgiCiAKLS8qIERlZmluZSBhIHNldCBvZiBJU0FzIHdoaWNoIGFyZSBhdmFpbGFibGUgd2hlbiBh IGdpdmVuIElTQSBpcwotICAgZW5hYmxlZC4gIE1NWCBhbmQgU1NFIElTQXMgYXJlIGhhbmRsZWQg c2VwYXJhdGVseS4gICovCi0KLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX01NWF9TRVQgT1BUSU9O X01BU0tfSVNBX01NWAotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfM0ROT1dfU0VUIFwKLSAgKE9Q VElPTl9NQVNLX0lTQV8zRE5PVyB8IE9QVElPTl9NQVNLX0lTQV9NTVhfU0VUKQotI2RlZmluZSBP UFRJT05fTUFTS19JU0FfM0ROT1dfQV9TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBXzNETk9XX0Eg fCBPUFRJT05fTUFTS19JU0FfM0ROT1dfU0VUKQotCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9T U0VfU0VUIE9QVElPTl9NQVNLX0lTQV9TU0UKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTJf U0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9TU0UyIHwgT1BUSU9OX01BU0tfSVNBX1NTRV9TRVQp Ci0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TU0UzX1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0Ff U1NFMyB8IE9QVElPTl9NQVNLX0lTQV9TU0UyX1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNB X1NTU0UzX1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfU1NTRTMgfCBPUFRJT05fTUFTS19JU0Ff U1NFM19TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TU0U0XzFfU0VUIFwKLSAgKE9QVElP Tl9NQVNLX0lTQV9TU0U0XzEgfCBPUFRJT05fTUFTS19JU0FfU1NTRTNfU0VUKQotI2RlZmluZSBP UFRJT05fTUFTS19JU0FfU1NFNF8yX1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfU1NFNF8yIHwg T1BUSU9OX01BU0tfSVNBX1NTRTRfMV9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlhf U0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BVlggfCBPUFRJT05fTUFTS19JU0FfU1NFNF8yX1NF VCBcCi0gICB8IE9QVElPTl9NQVNLX0lTQV9YU0FWRV9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNL X0lTQV9GTUFfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9GTUEgfCBPUFRJT05fTUFTS19JU0Ff QVZYX1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDJfU0VUIFwKLSAgKE9QVElPTl9N QVNLX0lTQV9BVlgyIHwgT1BUSU9OX01BU0tfSVNBX0FWWF9TRVQpCi0jZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9GWFNSX1NFVCBPUFRJT05fTUFTS19JU0FfRlhTUgotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfWFNBVkVfU0VUIE9QVElPTl9NQVNLX0lTQV9YU0FWRQotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfWFNBVkVPUFRfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9YU0FWRU9QVCB8IE9QVElP Tl9NQVNLX0lTQV9YU0FWRV9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NF VCBcCi0gIChPUFRJT05fTUFTS19JU0FfQVZYNTEyRiB8IE9QVElPTl9NQVNLX0lTQV9BVlgyX1NF VCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkNEX1NFVCBcCi0gIChPUFRJT05fTUFT S19JU0FfQVZYNTEyQ0QgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCi0jZGVmaW5lIE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJQRl9TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlBG IHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkZfU0VUKQotI2RlZmluZSBPUFRJT05fTUFTS19JU0Ff QVZYNTEyRVJfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJFUiB8IE9QVElPTl9NQVNL X0lTQV9BVlg1MTJGX1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkRRX1NFVCBc Ci0gIChPUFRJT05fTUFTS19JU0FfQVZYNTEyRFEgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9T RVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJCV19TRVQgXAotICAoT1BUSU9OX01B U0tfSVNBX0FWWDUxMkJXIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkZfU0VUKQotI2RlZmluZSBP UFRJT05fTUFTS19JU0FfQVZYNTEyVkxfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJW TCB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNB X0FWWDUxMklGTUFfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJJRk1BIHwgT1BUSU9O X01BU0tfSVNBX0FWWDUxMkZfU0VUKQotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJN SV9TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkgfCBPUFRJT05fTUFTS19JU0Ff QVZYNTEyQldfU0VUKQotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FWWDUxMjRGTUFQU19TRVQg T1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Rk1BUFMKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9B Vlg1MTI0Vk5OSVdfU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNFZOTklXCi0jZGVmaW5lIE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JMl9TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX0FWWDUx MlZCTUkyIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkZfU0VUKQotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfQVZYNTEyVk5OSV9TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkgfCBP UFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZY Vk5OSV9TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lT QV9BVlg1MTJWUE9QQ05URFFfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWUE9QQ05U RFEgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lT QV9BVlg1MTJCSVRBTEdfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJCSVRBTEcgfCBP UFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZY NTEyQkYxNl9TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJCRjE2Ci0jZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9SVE1fU0VUIE9QVElPTl9NQVNLX0lTQV9SVE0KLSNkZWZpbmUgT1BUSU9OX01BU0tf SVNBX1BSRkNIV19TRVQgT1BUSU9OX01BU0tfSVNBX1BSRkNIVwotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfUkRTRUVEX1NFVCBPUFRJT05fTUFTS19JU0FfUkRTRUVECi0jZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9BRFhfU0VUIE9QVElPTl9NQVNLX0lTQV9BRFgKLSNkZWZpbmUgT1BUSU9OX01BU0tf SVNBX1BSRUZFVENIV1QxX1NFVCBPUFRJT05fTUFTS19JU0FfUFJFRkVUQ0hXVDEKLSNkZWZpbmUg T1BUSU9OX01BU0tfSVNBX0NMRkxVU0hPUFRfU0VUIE9QVElPTl9NQVNLX0lTQV9DTEZMVVNIT1BU Ci0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9YU0FWRVNfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lT QV9YU0FWRVMgfCBPUFRJT05fTUFTS19JU0FfWFNBVkVfU0VUKQotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfWFNBVkVDX1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfWFNBVkVDIHwgT1BUSU9OX01B U0tfSVNBX1hTQVZFX1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0NMV0JfU0VUIE9QVElP Tl9NQVNLX0lTQV9DTFdCCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyVlAySU5URVJT RUNUX1NFVCBPUFRJT05fTUFTS19JU0EyX0FWWDUxMlZQMklOVEVSU0VDVAotI2RlZmluZSBPUFRJ T05fTUFTS19JU0EyX0FNWF9USUxFX1NFVCBPUFRJT05fTUFTS19JU0EyX0FNWF9USUxFCi0jZGVm aW5lIE9QVElPTl9NQVNLX0lTQTJfQU1YX0lOVDhfU0VUIE9QVElPTl9NQVNLX0lTQTJfQU1YX0lO VDgKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNl9TRVQgT1BUSU9OX01BU0tfSVNB Ml9BTVhfQkYxNgotCi0vKiBTU0U0IGluY2x1ZGVzIGJvdGggU1NFNC4xIGFuZCBTU0U0LjIuIC1t c3NlNCBzaG91bGQgYmUgdGhlIHNhbWUKLSAgIGFzIC1tc3NlNC4yLiAgKi8KLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX1NTRTRfU0VUIE9QVElPTl9NQVNLX0lTQV9TU0U0XzJfU0VUCi0KLSNkZWZp bmUgT1BUSU9OX01BU0tfSVNBX1NTRTRBX1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfU1NFNEEg fCBPUFRJT05fTUFTS19JU0FfU1NFM19TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9GTUE0 X1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfRk1BNCB8IE9QVElPTl9NQVNLX0lTQV9TU0U0QV9T RVQgXAotICAgfCBPUFRJT05fTUFTS19JU0FfQVZYX1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tf SVNBX1hPUF9TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX1hPUCB8IE9QVElPTl9NQVNLX0lTQV9G TUE0X1NFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0xXUF9TRVQgXAotICBPUFRJT05fTUFT S19JU0FfTFdQCi0KLS8qIEFFUywgU0hBIGFuZCBQQ0xNVUwgbmVlZCBTU0UyIGJlY2F1c2UgdGhl eSB1c2UgeG1tIHJlZ2lzdGVycy4gICovCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BRVNfU0VU IFwKLSAgKE9QVElPTl9NQVNLX0lTQV9BRVMgfCBPUFRJT05fTUFTS19JU0FfU1NFMl9TRVQpCi0j ZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TSEFfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9TSEEg fCBPUFRJT05fTUFTS19JU0FfU1NFMl9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9QQ0xN VUxfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9QQ0xNVUwgfCBPUFRJT05fTUFTS19JU0FfU1NF Ml9TRVQpCi0KLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FCTV9TRVQgXAotICAoT1BUSU9OX01B U0tfSVNBX0FCTSB8IE9QVElPTl9NQVNLX0lTQV9QT1BDTlQpCi0KLSNkZWZpbmUgT1BUSU9OX01B U0tfSVNBMl9QQ09ORklHX1NFVCBPUFRJT05fTUFTS19JU0EyX1BDT05GSUcKLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBMl9XQk5PSU5WRF9TRVQgT1BUSU9OX01BU0tfSVNBMl9XQk5PSU5WRAotI2Rl ZmluZSBPUFRJT05fTUFTS19JU0EyX1NHWF9TRVQgT1BUSU9OX01BU0tfSVNBMl9TR1gKLSNkZWZp bmUgT1BUSU9OX01BU0tfSVNBX0JNSV9TRVQgT1BUSU9OX01BU0tfSVNBX0JNSQotI2RlZmluZSBP UFRJT05fTUFTS19JU0FfQk1JMl9TRVQgT1BUSU9OX01BU0tfSVNBX0JNSTIKLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX0xaQ05UX1NFVCBPUFRJT05fTUFTS19JU0FfTFpDTlQKLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX1RCTV9TRVQgT1BUSU9OX01BU0tfSVNBX1RCTQotI2RlZmluZSBPUFRJT05f TUFTS19JU0FfUE9QQ05UX1NFVCBPUFRJT05fTUFTS19JU0FfUE9QQ05UCi0jZGVmaW5lIE9QVElP Tl9NQVNLX0lTQTJfQ1gxNl9TRVQgT1BUSU9OX01BU0tfSVNBMl9DWDE2Ci0jZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9TQUhGX1NFVCBPUFRJT05fTUFTS19JU0FfU0FIRgotI2RlZmluZSBPUFRJT05f TUFTS19JU0EyX01PVkJFX1NFVCBPUFRJT05fTUFTS19JU0EyX01PVkJFCi0jZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9DUkMzMl9TRVQgT1BUSU9OX01BU0tfSVNBX0NSQzMyCi0KLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX0ZTR1NCQVNFX1NFVCBPUFRJT05fTUFTS19JU0FfRlNHU0JBU0UKLSNkZWZp bmUgT1BUSU9OX01BU0tfSVNBX1JEUk5EX1NFVCBPUFRJT05fTUFTS19JU0FfUkRSTkQKLSNkZWZp bmUgT1BUSU9OX01BU0tfSVNBMl9QVFdSSVRFX1NFVCBPUFRJT05fTUFTS19JU0EyX1BUV1JJVEUK LSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0YxNkNfU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9G MTZDIHwgT1BUSU9OX01BU0tfSVNBX0FWWF9TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJf TVdBSVRYX1NFVCBPUFRJT05fTUFTS19JU0EyX01XQUlUWAotI2RlZmluZSBPUFRJT05fTUFTS19J U0EyX0NMWkVST19TRVQgT1BUSU9OX01BU0tfSVNBMl9DTFpFUk8KLSNkZWZpbmUgT1BUSU9OX01B U0tfSVNBX1BLVV9TRVQgT1BUSU9OX01BU0tfSVNBX1BLVQotI2RlZmluZSBPUFRJT05fTUFTS19J U0EyX1JEUElEX1NFVCBPUFRJT05fTUFTS19JU0EyX1JEUElECi0jZGVmaW5lIE9QVElPTl9NQVNL X0lTQV9HRk5JX1NFVCBPUFRJT05fTUFTS19JU0FfR0ZOSQotI2RlZmluZSBPUFRJT05fTUFTS19J U0FfU0hTVEtfU0VUIE9QVElPTl9NQVNLX0lTQV9TSFNUSwotI2RlZmluZSBPUFRJT05fTUFTS19J U0EyX1ZBRVNfU0VUIE9QVElPTl9NQVNLX0lTQTJfVkFFUwotI2RlZmluZSBPUFRJT05fTUFTS19J U0FfVlBDTE1VTFFEUV9TRVQgT1BUSU9OX01BU0tfSVNBX1ZQQ0xNVUxRRFEKLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX01PVkRJUklfU0VUIE9QVElPTl9NQVNLX0lTQV9NT1ZESVJJCi0jZGVmaW5l IE9QVElPTl9NQVNLX0lTQTJfTU9WRElSNjRCX1NFVCBPUFRJT05fTUFTS19JU0EyX01PVkRJUjY0 QgotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1dBSVRQS0dfU0VUIE9QVElPTl9NQVNLX0lTQTJf V0FJVFBLRwotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0NMREVNT1RFX1NFVCBPUFRJT05fTUFT S19JU0EyX0NMREVNT1RFCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfRU5RQ01EX1NFVCBPUFRJ T05fTUFTS19JU0EyX0VOUUNNRAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NFUklBTElaRV9T RVQgT1BUSU9OX01BU0tfSVNBMl9TRVJJQUxJWkUKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9U U1hMRFRSS19TRVQgT1BUSU9OX01BU0tfSVNBMl9UU1hMRFRSSwotI2RlZmluZSBPUFRJT05fTUFT S19JU0EyX1VJTlRSX1NFVCBPUFRJT05fTUFTS19JU0EyX1VJTlRSCi0jZGVmaW5lIE9QVElPTl9N QVNLX0lTQTJfSFJFU0VUX1NFVCBPUFRJT05fTUFTS19JU0EyX0hSRVNFVAotI2RlZmluZSBPUFRJ T05fTUFTS19JU0EyX0tMX1NFVCBPUFRJT05fTUFTS19JU0EyX0tMCi0jZGVmaW5lIE9QVElPTl9N QVNLX0lTQTJfV0lERUtMX1NFVCBcCi0gIChPUFRJT05fTUFTS19JU0EyX1dJREVLTCB8IE9QVElP Tl9NQVNLX0lTQTJfS0xfU0VUKQotCi0vKiBEZWZpbmUgYSBzZXQgb2YgSVNBcyB3aGljaCBhcmVu J3QgYXZhaWxhYmxlIHdoZW4gYSBnaXZlbiBJU0EgaXMKLSAgIGRpc2FibGVkLiAgTU1YIGFuZCBT U0UgSVNBcyBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5LiAgKi8KLQotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfTU1YX1VOU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9NTVggfCBPUFRJT05fTUFTS19J U0FfM0ROT1dfVU5TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV8zRE5PV19VTlNFVCBcCi0g IChPUFRJT05fTUFTS19JU0FfM0ROT1cgfCBPUFRJT05fTUFTS19JU0FfM0ROT1dfQV9VTlNFVCkK LSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBXzNETk9XX0FfVU5TRVQgT1BUSU9OX01BU0tfSVNBXzNE Tk9XX0EKLQotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfU1NFX1VOU0VUIFwKLSAgKE9QVElPTl9N QVNLX0lTQV9TU0UgfCBPUFRJT05fTUFTS19JU0FfU1NFMl9VTlNFVCkKLSNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX1NTRTJfVU5TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX1NTRTIgfCBPUFRJT05f TUFTS19JU0FfU1NFM19VTlNFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTNfVU5TRVQg XAotICAoT1BUSU9OX01BU0tfSVNBX1NTRTMgXAotICAgfCBPUFRJT05fTUFTS19JU0FfU1NTRTNf VU5TRVQgXAotICAgfCBPUFRJT05fTUFTS19JU0FfU1NFNEFfVU5TRVQgKQotI2RlZmluZSBPUFRJ T05fTUFTS19JU0FfU1NTRTNfVU5TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX1NTU0UzIHwgT1BU SU9OX01BU0tfSVNBX1NTRTRfMV9VTlNFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTRf MV9VTlNFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfU1NFNF8xIHwgT1BUSU9OX01BU0tfSVNBX1NT RTRfMl9VTlNFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTRfMl9VTlNFVCBcCi0gIChP UFRJT05fTUFTS19JU0FfU1NFNF8yIHwgT1BUSU9OX01BU0tfSVNBX0FWWF9VTlNFVCApCi0jZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9BVlhfVU5TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX0FWWCB8 IE9QVElPTl9NQVNLX0lTQV9GTUFfVU5TRVQgXAotICAgfCBPUFRJT05fTUFTS19JU0FfRk1BNF9V TlNFVCB8IE9QVElPTl9NQVNLX0lTQV9GMTZDX1VOU0VUIFwKLSAgIHwgT1BUSU9OX01BU0tfSVNB X0FWWDJfVU5TRVQgKQotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfRk1BX1VOU0VUIE9QVElPTl9N QVNLX0lTQV9GTUEKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0ZYU1JfVU5TRVQgT1BUSU9OX01B U0tfSVNBX0ZYU1IKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1hTQVZFX1VOU0VUIFwKLSAgKE9Q VElPTl9NQVNLX0lTQV9YU0FWRSB8IE9QVElPTl9NQVNLX0lTQV9YU0FWRU9QVF9VTlNFVCBcCi0g ICB8IE9QVElPTl9NQVNLX0lTQV9YU0FWRVNfVU5TRVQgfCBPUFRJT05fTUFTS19JU0FfWFNBVkVD X1VOU0VUIFwKLSAgIHwgT1BUSU9OX01BU0tfSVNBX0FWWF9VTlNFVCkKLSNkZWZpbmUgT1BUSU9O X01BU0tfSVNBMl9YU0FWRV9VTlNFVCBPUFRJT05fTUFTS19JU0EyX0FNWF9USUxFX1VOU0VUCi0j ZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9YU0FWRU9QVF9VTlNFVCBPUFRJT05fTUFTS19JU0FfWFNB VkVPUFQKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDJfVU5TRVQgXAotICAoT1BUSU9OX01B U0tfSVNBX0FWWDIgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9VTlNFVCkKLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBMl9BVlgyX1VOU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQTJfQVZYVk5OSV9V TlNFVCB8IE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyRl9VTlNFVCkKLSNkZWZpbmUgT1BUSU9OX01B U0tfSVNBX0FWWDUxMkZfVU5TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMkYgfCBPUFRJ T05fTUFTS19JU0FfQVZYNTEyQ0RfVU5TRVQgXAotICAgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEy UEZfVU5TRVQgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRVJfVU5TRVQgXAotICAgfCBPUFRJT05f TUFTS19JU0FfQVZYNTEyRFFfVU5TRVQgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyQldfVU5TRVQg XAotICAgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkxfVU5TRVQgfCBPUFRJT05fTUFTS19JU0Ff QVZYNTEySUZNQV9VTlNFVCBcCi0gICB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JMl9VTlNF VCBcCi0gICB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JX1VOU0VUIFwKLSAgIHwgT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZQT1BDTlREUV9VTlNFVCBcCi0gICB8IE9QVElPTl9NQVNLX0lTQV9B Vlg1MTJCSVRBTEdfVU5TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJDRF9VTlNF VCBPUFRJT05fTUFTS19JU0FfQVZYNTEyQ0QKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUx MlBGX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJQRgotI2RlZmluZSBPUFRJT05fTUFTS19J U0FfQVZYNTEyRVJfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkVSCi0jZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJEUV9VTlNFVCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRFEKLSNkZWZp bmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkJXX1VOU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQV9B Vlg1MTJCVyB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JX1VOU0VUKQotI2RlZmluZSBPUFRJ T05fTUFTS19JU0FfQVZYNTEyVkxfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMCi0jZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJJRk1BX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJJRk1BCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JX1VOU0VUIE9QVElPTl9N QVNLX0lTQV9BVlg1MTJWQk1JCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNEZNQVBT X1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNEZNQVBTCi0jZGVmaW5lIE9QVElPTl9NQVNL X0lTQTJfQVZYNTEyNFZOTklXX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNFZOTklXCi0j ZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JMl9VTlNFVCBPUFRJT05fTUFTS19JU0Ff QVZYNTEyVkJNSTIKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTklfVU5TRVQgT1BU SU9OX01BU0tfSVNBX0FWWDUxMlZOTkkKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5J X1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZYVk5OSQotI2RlZmluZSBPUFRJT05fTUFTS19JU0Ff QVZYNTEyVlBPUENOVERRX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWUE9QQ05URFEKLSNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkJJVEFMR19VTlNFVCBPUFRJT05fTUFTS19JU0Ff QVZYNTEyQklUQUxHCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyQkYxNl9VTlNFVCBP UFRJT05fTUFTS19JU0EyX0FWWDUxMkJGMTYKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1JUTV9V TlNFVCBPUFRJT05fTUFTS19JU0FfUlRNCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9QUkZDSFdf VU5TRVQgT1BUSU9OX01BU0tfSVNBX1BSRkNIVwotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUkRT RUVEX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9SRFNFRUQKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNB X0FEWF9VTlNFVCBPUFRJT05fTUFTS19JU0FfQURYCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9Q UkVGRVRDSFdUMV9VTlNFVCBPUFRJT05fTUFTS19JU0FfUFJFRkVUQ0hXVDEKLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX0NMRkxVU0hPUFRfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0NMRkxVU0hPUFQK LSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1hTQVZFQ19VTlNFVCBPUFRJT05fTUFTS19JU0FfWFNB VkVDCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9YU0FWRVNfVU5TRVQgT1BUSU9OX01BU0tfSVNB X1hTQVZFUwotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQ0xXQl9VTlNFVCBPUFRJT05fTUFTS19J U0FfQ0xXQgotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX01XQUlUWF9VTlNFVCBPUFRJT05fTUFT S19JU0EyX01XQUlUWAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0NMWkVST19VTlNFVCBPUFRJ T05fTUFTS19JU0EyX0NMWkVSTwotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUEtVX1VOU0VUIE9Q VElPTl9NQVNLX0lTQV9QS1UKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9SRFBJRF9VTlNFVCBP UFRJT05fTUFTS19JU0EyX1JEUElECi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9HRk5JX1VOU0VU IE9QVElPTl9NQVNLX0lTQV9HRk5JCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TSFNUS19VTlNF VCBPUFRJT05fTUFTS19JU0FfU0hTVEsKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9WQUVTX1VO U0VUIE9QVElPTl9NQVNLX0lTQTJfVkFFUwotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfVlBDTE1V TFFEUV9VTlNFVCBPUFRJT05fTUFTS19JU0FfVlBDTE1VTFFEUQotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfTU9WRElSSV9VTlNFVCBPUFRJT05fTUFTS19JU0FfTU9WRElSSQotI2RlZmluZSBPUFRJ T05fTUFTS19JU0EyX01PVkRJUjY0Ql9VTlNFVCBPUFRJT05fTUFTS19JU0EyX01PVkRJUjY0Qgot I2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1dBSVRQS0dfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9X QUlUUEtHCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQ0xERU1PVEVfVU5TRVQgT1BUSU9OX01B U0tfSVNBMl9DTERFTU9URQotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0VOUUNNRF9VTlNFVCBP UFRJT05fTUFTS19JU0EyX0VOUUNNRAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NFUklBTEla RV9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1NFUklBTElaRQotI2RlZmluZSBPUFRJT05fTUFTS19J U0EyX0FWWDUxMlZQMklOVEVSU0VDVF9VTlNFVCBPUFRJT05fTUFTS19JU0EyX0FWWDUxMlZQMklO VEVSU0VDVAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1RTWExEVFJLX1VOU0VUIE9QVElPTl9N QVNLX0lTQTJfVFNYTERUUksKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BTVhfVElMRV9VTlNF VCBPUFRJT05fTUFTS19JU0EyX0FNWF9USUxFCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQU1Y X0lOVDhfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BTVhfSU5UOAotI2RlZmluZSBPUFRJT05fTUFT S19JU0EyX0FNWF9CRjE2X1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQU1YX0JGMTYKLSNkZWZpbmUg T1BUSU9OX01BU0tfSVNBMl9VSU5UUl9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1VJTlRSCi0jZGVm aW5lIE9QVElPTl9NQVNLX0lTQTJfSFJFU0VUX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfSFJFU0VU Ci0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfS0xfVU5TRVQgXAotICAoT1BUSU9OX01BU0tfSVNB Ml9LTCB8IE9QVElPTl9NQVNLX0lTQTJfV0lERUtMX1VOU0VUKQotI2RlZmluZSBPUFRJT05fTUFT S19JU0EyX1dJREVLTF9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1dJREVLTAotCi0vKiBTU0U0IGlu Y2x1ZGVzIGJvdGggU1NFNC4xIGFuZCBTU0U0LjIuICAtbW5vLXNzZTQgc2hvdWxkIHRoZSBzYW1l Ci0gICBhcyAtbW5vLXNzZTQuMS4gKi8KLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTRfVU5T RVQgT1BUSU9OX01BU0tfSVNBX1NTRTRfMV9VTlNFVAotCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lT QV9TU0U0QV9VTlNFVCBcCi0gIChPUFRJT05fTUFTS19JU0FfU1NFNEEgfCBPUFRJT05fTUFTS19J U0FfRk1BNF9VTlNFVCkKLQotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfRk1BNF9VTlNFVCBcCi0g IChPUFRJT05fTUFTS19JU0FfRk1BNCB8IE9QVElPTl9NQVNLX0lTQV9YT1BfVU5TRVQpCi0jZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9YT1BfVU5TRVQgT1BUSU9OX01BU0tfSVNBX1hPUAotI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfTFdQX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9MV1AKLQotI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfQUVTX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BRVMKLSNkZWZpbmUg T1BUSU9OX01BU0tfSVNBX1NIQV9VTlNFVCBPUFRJT05fTUFTS19JU0FfU0hBCi0jZGVmaW5lIE9Q VElPTl9NQVNLX0lTQV9QQ0xNVUxfVU5TRVQgT1BUSU9OX01BU0tfSVNBX1BDTE1VTAotI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfQUJNX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BQk0KLSNkZWZpbmUg T1BUSU9OX01BU0tfSVNBMl9QQ09ORklHX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfUENPTkZJRwot I2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1dCTk9JTlZEX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJf V0JOT0lOVkQKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9TR1hfVU5TRVQgT1BUSU9OX01BU0tf SVNBMl9TR1gKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0JNSV9VTlNFVCBPUFRJT05fTUFTS19J U0FfQk1JCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9CTUkyX1VOU0VUIE9QVElPTl9NQVNLX0lT QV9CTUkyCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9MWkNOVF9VTlNFVCBPUFRJT05fTUFTS19J U0FfTFpDTlQKLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1RCTV9VTlNFVCBPUFRJT05fTUFTS19J U0FfVEJNCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9QT1BDTlRfVU5TRVQgT1BUSU9OX01BU0tf SVNBX1BPUENOVAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0NYMTZfVU5TRVQgT1BUSU9OX01B U0tfSVNBMl9DWDE2Ci0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TQUhGX1VOU0VUIE9QVElPTl9N QVNLX0lTQV9TQUhGCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfTU9WQkVfVU5TRVQgT1BUSU9O X01BU0tfSVNBMl9NT1ZCRQotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQ1JDMzJfVU5TRVQgT1BU SU9OX01BU0tfSVNBX0NSQzMyCi0KLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0ZTR1NCQVNFX1VO U0VUIE9QVElPTl9NQVNLX0lTQV9GU0dTQkFTRQotI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUkRS TkRfVU5TRVQgT1BUSU9OX01BU0tfSVNBX1JEUk5ECi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJf UFRXUklURV9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1BUV1JJVEUKLSNkZWZpbmUgT1BUSU9OX01B U0tfSVNBX0YxNkNfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0YxNkMKLQotI2RlZmluZSBPUFRJT05f TUFTS19JU0FfR0VORVJBTF9SRUdTX09OTFlfVU5TRVQgXAotICAoT1BUSU9OX01BU0tfSVNBX01N WF9VTlNFVCBcCi0gICB8IE9QVElPTl9NQVNLX0lTQV9TU0VfVU5TRVQpCi0KLSNkZWZpbmUgT1BU SU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VUIFwKLSAgKE9QVElPTl9NQVNLX0lTQTJfQVZYNTEy QkYxNl9VTlNFVCBcCi0gICB8IE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNEZNQVBTX1VOU0VUIFwK LSAgIHwgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Vk5OSVdfVU5TRVQgXAotICAgfCBPUFRJT05f TUFTS19JU0EyX0FWWDUxMlZQMklOVEVSU0VDVF9VTlNFVCkKLSNkZWZpbmUgT1BUSU9OX01BU0tf SVNBMl9HRU5FUkFMX1JFR1NfT05MWV9VTlNFVCBcCi0gIChPUFRJT05fTUFTS19JU0EyX0FWWDUx MkZfVU5TRVQpCi0jZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZYX1VOU0VUIE9QVElPTl9NQVNL X0lTQTJfQVZYMl9VTlNFVAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NTRTRfMl9VTlNFVCBP UFRJT05fTUFTS19JU0EyX0FWWF9VTlNFVAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NTRTRf MV9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1NTRTRfMl9VTlNFVAotI2RlZmluZSBPUFRJT05fTUFT S19JU0EyX1NTRTRfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9TU0U0XzFfVU5TRVQKLSNkZWZpbmUg T1BUSU9OX01BU0tfSVNBMl9TU1NFM19VTlNFVCBPUFRJT05fTUFTS19JU0EyX1NTRTRfMV9VTlNF VAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NTRTNfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9T U1NFM19VTlNFVAotI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NTRTJfVU5TRVQgXAotICAoT1BU SU9OX01BU0tfSVNBMl9TU0UzX1VOU0VUIHwgT1BUSU9OX01BU0tfSVNBMl9LTF9VTlNFVCkKLSNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9TU0VfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9TU0UyX1VO U0VUCi0KLSNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJCV19VTlNFVCBPUFRJT05fTUFT S19JU0EyX0FWWDUxMkJGMTZfVU5TRVQKLQogLyogU2V0IDEgPDwgdmFsdWUgYXMgdmFsdWUgb2Yg LW1hbGlnbi1GTEFHIG9wdGlvbi4gICovCiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9nY2Mv Y29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmggYi9nY2MvY29tbW9uL2NvbmZpZy9pMzg2 L2kzODYtY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRh N2ZkMjkwYmNmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2 LWNvbW1vbi5oCkBAIC0wLDAgKzEsMzE1IEBACisvKiBJQS0zMiBjb21tb24gbWFjcm9zLgorICAg Q29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlz IGZpbGUgaXMgcGFydCBvZiBHQ0MuCisKK0dDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CitpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQordGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorYW55 IGxhdGVyIHZlcnNpb24uCisKK0dDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKK01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKK0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisKK1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCithbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBm aWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQorPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKworLyogRGVmaW5lIGEgc2V0IG9mIElTQXMgd2hpY2ggYXJlIGF2YWlsYWJsZSB3aGVu IGEgZ2l2ZW4gSVNBIGlzCisgICBlbmFibGVkLiAgTU1YIGFuZCBTU0UgSVNBcyBhcmUgaGFuZGxl ZCBzZXBhcmF0ZWx5LiAgKi8KKworI2RlZmluZSBPUFRJT05fTUFTS19JU0FfTU1YX1NFVCBPUFRJ T05fTUFTS19JU0FfTU1YCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV8zRE5PV19TRVQgXAorICAo T1BUSU9OX01BU0tfSVNBXzNETk9XIHwgT1BUSU9OX01BU0tfSVNBX01NWF9TRVQpCisjZGVmaW5l IE9QVElPTl9NQVNLX0lTQV8zRE5PV19BX1NFVCBcCisgIChPUFRJT05fTUFTS19JU0FfM0ROT1df QSB8IE9QVElPTl9NQVNLX0lTQV8zRE5PV19TRVQpCisKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNB X1NTRV9TRVQgT1BUSU9OX01BU0tfSVNBX1NTRQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfU1NF Ml9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX1NTRTIgfCBPUFRJT05fTUFTS19JU0FfU1NFX1NF VCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTNfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lT QV9TU0UzIHwgT1BUSU9OX01BU0tfSVNBX1NTRTJfU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19J U0FfU1NTRTNfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9TU1NFMyB8IE9QVElPTl9NQVNLX0lT QV9TU0UzX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NTRTRfMV9TRVQgXAorICAoT1BU SU9OX01BU0tfSVNBX1NTRTRfMSB8IE9QVElPTl9NQVNLX0lTQV9TU1NFM19TRVQpCisjZGVmaW5l IE9QVElPTl9NQVNLX0lTQV9TU0U0XzJfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9TU0U0XzIg fCBPUFRJT05fTUFTS19JU0FfU1NFNF8xX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FW WF9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FWWCB8IE9QVElPTl9NQVNLX0lTQV9TU0U0XzJf U0VUIFwKKyAgIHwgT1BUSU9OX01BU0tfSVNBX1hTQVZFX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01B U0tfSVNBX0ZNQV9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0ZNQSB8IE9QVElPTl9NQVNLX0lT QV9BVlhfU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYMl9TRVQgXAorICAoT1BUSU9O X01BU0tfSVNBX0FWWDIgfCBPUFRJT05fTUFTS19JU0FfQVZYX1NFVCkKKyNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX0ZYU1JfU0VUIE9QVElPTl9NQVNLX0lTQV9GWFNSCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9YU0FWRV9TRVQgT1BUSU9OX01BU0tfSVNBX1hTQVZFCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9YU0FWRU9QVF9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX1hTQVZFT1BUIHwgT1BU SU9OX01BU0tfSVNBX1hTQVZFX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkZf U0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGIHwgT1BUSU9OX01BU0tfSVNBX0FWWDJf U0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyQ0RfU0VUIFwKKyAgKE9QVElPTl9N QVNLX0lTQV9BVlg1MTJDRCB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NFVCkKKyNkZWZpbmUg T1BUSU9OX01BU0tfSVNBX0FWWDUxMlBGX1NFVCBcCisgIChPUFRJT05fTUFTS19JU0FfQVZYNTEy UEYgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCisjZGVmaW5lIE9QVElPTl9NQVNLX0lT QV9BVlg1MTJFUl9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMkVSIHwgT1BUSU9OX01B U0tfSVNBX0FWWDUxMkZfU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyRFFfU0VU IFwKKyAgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJEUSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJG X1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkJXX1NFVCBcCisgIChPUFRJT05f TUFTS19JU0FfQVZYNTEyQlcgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCisjZGVmaW5l IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTF9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FWWDUx MlZMIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkZfU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19J U0FfQVZYNTEySUZNQV9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMklGTUEgfCBPUFRJ T05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJW Qk1JX1NFVCBcCisgIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSSB8IE9QVElPTl9NQVNLX0lT QV9BVlg1MTJCV19TRVQpCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNEZNQVBTX1NF VCBPUFRJT05fTUFTS19JU0EyX0FWWDUxMjRGTUFQUworI2RlZmluZSBPUFRJT05fTUFTS19JU0Ey X0FWWDUxMjRWTk5JV19TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Vk5OSVcKKyNkZWZpbmUg T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyX1NFVCBcCisgIChPUFRJT05fTUFTS19JU0FfQVZY NTEyVkJNSTIgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9TRVQpCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9BVlg1MTJWTk5JX1NFVCBcCisgIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8 IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9B VlhWTk5JX1NFVCBPUFRJT05fTUFTS19JU0EyX0FWWFZOTkkKKyNkZWZpbmUgT1BUSU9OX01BU0tf SVNBX0FWWDUxMlZQT1BDTlREUV9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZQT1BD TlREUSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tf SVNBX0FWWDUxMkJJVEFMR19TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMkJJVEFMRyB8 IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9B Vlg1MTJCRjE2X1NFVCBPUFRJT05fTUFTS19JU0EyX0FWWDUxMkJGMTYKKyNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX1JUTV9TRVQgT1BUSU9OX01BU0tfSVNBX1JUTQorI2RlZmluZSBPUFRJT05fTUFT S19JU0FfUFJGQ0hXX1NFVCBPUFRJT05fTUFTS19JU0FfUFJGQ0hXCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9SRFNFRURfU0VUIE9QVElPTl9NQVNLX0lTQV9SRFNFRUQKKyNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX0FEWF9TRVQgT1BUSU9OX01BU0tfSVNBX0FEWAorI2RlZmluZSBPUFRJT05fTUFT S19JU0FfUFJFRkVUQ0hXVDFfU0VUIE9QVElPTl9NQVNLX0lTQV9QUkVGRVRDSFdUMQorI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfQ0xGTFVTSE9QVF9TRVQgT1BUSU9OX01BU0tfSVNBX0NMRkxVU0hP UFQKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1hTQVZFU19TRVQgXAorICAoT1BUSU9OX01BU0tf SVNBX1hTQVZFUyB8IE9QVElPTl9NQVNLX0lTQV9YU0FWRV9TRVQpCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9YU0FWRUNfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9YU0FWRUMgfCBPUFRJT05f TUFTS19JU0FfWFNBVkVfU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQ0xXQl9TRVQgT1BU SU9OX01BU0tfSVNBX0NMV0IKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJWUDJJTlRF UlNFQ1RfU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyVlAySU5URVJTRUNUCisjZGVmaW5lIE9Q VElPTl9NQVNLX0lTQTJfQU1YX1RJTEVfU0VUIE9QVElPTl9NQVNLX0lTQTJfQU1YX1RJTEUKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BTVhfSU5UOF9TRVQgT1BUSU9OX01BU0tfSVNBMl9BTVhf SU5UOAorI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FNWF9CRjE2X1NFVCBPUFRJT05fTUFTS19J U0EyX0FNWF9CRjE2CisKKy8qIFNTRTQgaW5jbHVkZXMgYm90aCBTU0U0LjEgYW5kIFNTRTQuMi4g LW1zc2U0IHNob3VsZCBiZSB0aGUgc2FtZQorICAgYXMgLW1zc2U0LjIuICAqLworI2RlZmluZSBP UFRJT05fTUFTS19JU0FfU1NFNF9TRVQgT1BUSU9OX01BU0tfSVNBX1NTRTRfMl9TRVQKKworI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfU1NFNEFfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9TU0U0 QSB8IE9QVElPTl9NQVNLX0lTQV9TU0UzX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0ZN QTRfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9GTUE0IHwgT1BUSU9OX01BU0tfSVNBX1NTRTRB X1NFVCBcCisgICB8IE9QVElPTl9NQVNLX0lTQV9BVlhfU0VUKQorI2RlZmluZSBPUFRJT05fTUFT S19JU0FfWE9QX1NFVCBcCisgIChPUFRJT05fTUFTS19JU0FfWE9QIHwgT1BUSU9OX01BU0tfSVNB X0ZNQTRfU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfTFdQX1NFVCBcCisgIE9QVElPTl9N QVNLX0lTQV9MV1AKKworLyogQUVTLCBTSEEgYW5kIFBDTE1VTCBuZWVkIFNTRTIgYmVjYXVzZSB0 aGV5IHVzZSB4bW0gcmVnaXN0ZXJzLiAgKi8KKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FFU19T RVQgXAorICAoT1BUSU9OX01BU0tfSVNBX0FFUyB8IE9QVElPTl9NQVNLX0lTQV9TU0UyX1NFVCkK KyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NIQV9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX1NI QSB8IE9QVElPTl9NQVNLX0lTQV9TU0UyX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1BD TE1VTF9TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX1BDTE1VTCB8IE9QVElPTl9NQVNLX0lTQV9T U0UyX1NFVCkKKworI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQUJNX1NFVCBcCisgIChPUFRJT05f TUFTS19JU0FfQUJNIHwgT1BUSU9OX01BU0tfSVNBX1BPUENOVCkKKworI2RlZmluZSBPUFRJT05f TUFTS19JU0EyX1BDT05GSUdfU0VUIE9QVElPTl9NQVNLX0lTQTJfUENPTkZJRworI2RlZmluZSBP UFRJT05fTUFTS19JU0EyX1dCTk9JTlZEX1NFVCBPUFRJT05fTUFTS19JU0EyX1dCTk9JTlZECisj ZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU0dYX1NFVCBPUFRJT05fTUFTS19JU0EyX1NHWAorI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfQk1JX1NFVCBPUFRJT05fTUFTS19JU0FfQk1JCisjZGVmaW5l IE9QVElPTl9NQVNLX0lTQV9CTUkyX1NFVCBPUFRJT05fTUFTS19JU0FfQk1JMgorI2RlZmluZSBP UFRJT05fTUFTS19JU0FfTFpDTlRfU0VUIE9QVElPTl9NQVNLX0lTQV9MWkNOVAorI2RlZmluZSBP UFRJT05fTUFTS19JU0FfVEJNX1NFVCBPUFRJT05fTUFTS19JU0FfVEJNCisjZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9QT1BDTlRfU0VUIE9QVElPTl9NQVNLX0lTQV9QT1BDTlQKKyNkZWZpbmUgT1BU SU9OX01BU0tfSVNBMl9DWDE2X1NFVCBPUFRJT05fTUFTS19JU0EyX0NYMTYKKyNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX1NBSEZfU0VUIE9QVElPTl9NQVNLX0lTQV9TQUhGCisjZGVmaW5lIE9QVElP Tl9NQVNLX0lTQTJfTU9WQkVfU0VUIE9QVElPTl9NQVNLX0lTQTJfTU9WQkUKKyNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX0NSQzMyX1NFVCBPUFRJT05fTUFTS19JU0FfQ1JDMzIKKworI2RlZmluZSBP UFRJT05fTUFTS19JU0FfRlNHU0JBU0VfU0VUIE9QVElPTl9NQVNLX0lTQV9GU0dTQkFTRQorI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfUkRSTkRfU0VUIE9QVElPTl9NQVNLX0lTQV9SRFJORAorI2Rl ZmluZSBPUFRJT05fTUFTS19JU0EyX1BUV1JJVEVfU0VUIE9QVElPTl9NQVNLX0lTQTJfUFRXUklU RQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfRjE2Q19TRVQgXAorICAoT1BUSU9OX01BU0tfSVNB X0YxNkMgfCBPUFRJT05fTUFTS19JU0FfQVZYX1NFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNB Ml9NV0FJVFhfU0VUIE9QVElPTl9NQVNLX0lTQTJfTVdBSVRYCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQTJfQ0xaRVJPX1NFVCBPUFRJT05fTUFTS19JU0EyX0NMWkVSTworI2RlZmluZSBPUFRJT05f TUFTS19JU0FfUEtVX1NFVCBPUFRJT05fTUFTS19JU0FfUEtVCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQTJfUkRQSURfU0VUIE9QVElPTl9NQVNLX0lTQTJfUkRQSUQKKyNkZWZpbmUgT1BUSU9OX01B U0tfSVNBX0dGTklfU0VUIE9QVElPTl9NQVNLX0lTQV9HRk5JCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQV9TSFNUS19TRVQgT1BUSU9OX01BU0tfSVNBX1NIU1RLCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQTJfVkFFU19TRVQgT1BUSU9OX01BU0tfSVNBMl9WQUVTCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQV9WUENMTVVMUURRX1NFVCBPUFRJT05fTUFTS19JU0FfVlBDTE1VTFFEUQorI2RlZmluZSBP UFRJT05fTUFTS19JU0FfTU9WRElSSV9TRVQgT1BUSU9OX01BU0tfSVNBX01PVkRJUkkKKyNkZWZp bmUgT1BUSU9OX01BU0tfSVNBMl9NT1ZESVI2NEJfU0VUIE9QVElPTl9NQVNLX0lTQTJfTU9WRElS NjRCCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfV0FJVFBLR19TRVQgT1BUSU9OX01BU0tfSVNB Ml9XQUlUUEtHCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQ0xERU1PVEVfU0VUIE9QVElPTl9N QVNLX0lTQTJfQ0xERU1PVEUKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9FTlFDTURfU0VUIE9Q VElPTl9NQVNLX0lTQTJfRU5RQ01ECisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU0VSSUFMSVpF X1NFVCBPUFRJT05fTUFTS19JU0EyX1NFUklBTElaRQorI2RlZmluZSBPUFRJT05fTUFTS19JU0Ey X1RTWExEVFJLX1NFVCBPUFRJT05fTUFTS19JU0EyX1RTWExEVFJLCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQTJfVUlOVFJfU0VUIE9QVElPTl9NQVNLX0lTQTJfVUlOVFIKKyNkZWZpbmUgT1BUSU9O X01BU0tfSVNBMl9IUkVTRVRfU0VUIE9QVElPTl9NQVNLX0lTQTJfSFJFU0VUCisjZGVmaW5lIE9Q VElPTl9NQVNLX0lTQTJfS0xfU0VUIE9QVElPTl9NQVNLX0lTQTJfS0wKKyNkZWZpbmUgT1BUSU9O X01BU0tfSVNBMl9XSURFS0xfU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQTJfV0lERUtMIHwgT1BU SU9OX01BU0tfSVNBMl9LTF9TRVQpCisKKy8qIERlZmluZSBhIHNldCBvZiBJU0FzIHdoaWNoIGFy ZW4ndCBhdmFpbGFibGUgd2hlbiBhIGdpdmVuIElTQSBpcworICAgZGlzYWJsZWQuICBNTVggYW5k IFNTRSBJU0FzIGFyZSBoYW5kbGVkIHNlcGFyYXRlbHkuICAqLworCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9NTVhfVU5TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBX01NWCB8IE9QVElPTl9NQVNL X0lTQV8zRE5PV19VTlNFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBXzNETk9XX1VOU0VUIFwK KyAgKE9QVElPTl9NQVNLX0lTQV8zRE5PVyB8IE9QVElPTl9NQVNLX0lTQV8zRE5PV19BX1VOU0VU KQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfM0ROT1dfQV9VTlNFVCBPUFRJT05fTUFTS19JU0Ff M0ROT1dfQQorCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TU0VfVU5TRVQgXAorICAoT1BUSU9O X01BU0tfSVNBX1NTRSB8IE9QVElPTl9NQVNLX0lTQV9TU0UyX1VOU0VUKQorI2RlZmluZSBPUFRJ T05fTUFTS19JU0FfU1NFMl9VTlNFVCBcCisgIChPUFRJT05fTUFTS19JU0FfU1NFMiB8IE9QVElP Tl9NQVNLX0lTQV9TU0UzX1VOU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfU1NFM19VTlNF VCBcCisgIChPUFRJT05fTUFTS19JU0FfU1NFMyBcCisgICB8IE9QVElPTl9NQVNLX0lTQV9TU1NF M19VTlNFVCBcCisgICB8IE9QVElPTl9NQVNLX0lTQV9TU0U0QV9VTlNFVCApCisjZGVmaW5lIE9Q VElPTl9NQVNLX0lTQV9TU1NFM19VTlNFVCBcCisgIChPUFRJT05fTUFTS19JU0FfU1NTRTMgfCBP UFRJT05fTUFTS19JU0FfU1NFNF8xX1VOU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfU1NF NF8xX1VOU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9TU0U0XzEgfCBPUFRJT05fTUFTS19JU0Ff U1NFNF8yX1VOU0VUKQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfU1NFNF8yX1VOU0VUIFwKKyAg KE9QVElPTl9NQVNLX0lTQV9TU0U0XzIgfCBPUFRJT05fTUFTS19JU0FfQVZYX1VOU0VUICkKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWF9VTlNFVCBcCisgIChPUFRJT05fTUFTS19JU0FfQVZY IHwgT1BUSU9OX01BU0tfSVNBX0ZNQV9VTlNFVCBcCisgICB8IE9QVElPTl9NQVNLX0lTQV9GTUE0 X1VOU0VUIHwgT1BUSU9OX01BU0tfSVNBX0YxNkNfVU5TRVQgXAorICAgfCBPUFRJT05fTUFTS19J U0FfQVZYMl9VTlNFVCApCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9GTUFfVU5TRVQgT1BUSU9O X01BU0tfSVNBX0ZNQQorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfRlhTUl9VTlNFVCBPUFRJT05f TUFTS19JU0FfRlhTUgorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfWFNBVkVfVU5TRVQgXAorICAo T1BUSU9OX01BU0tfSVNBX1hTQVZFIHwgT1BUSU9OX01BU0tfSVNBX1hTQVZFT1BUX1VOU0VUIFwK KyAgIHwgT1BUSU9OX01BU0tfSVNBX1hTQVZFU19VTlNFVCB8IE9QVElPTl9NQVNLX0lTQV9YU0FW RUNfVU5TRVQgXAorICAgfCBPUFRJT05fTUFTS19JU0FfQVZYX1VOU0VUKQorI2RlZmluZSBPUFRJ T05fTUFTS19JU0EyX1hTQVZFX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQU1YX1RJTEVfVU5TRVQK KyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1hTQVZFT1BUX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9Y U0FWRU9QVAorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYMl9VTlNFVCBcCisgIChPUFRJT05f TUFTS19JU0FfQVZYMiB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1VOU0VUKQorI2RlZmluZSBP UFRJT05fTUFTS19JU0EyX0FWWDJfVU5TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5J X1VOU0VUIHwgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VUKQorI2RlZmluZSBPUFRJT05f TUFTS19JU0FfQVZYNTEyRl9VTlNFVCBcCisgIChPUFRJT05fTUFTS19JU0FfQVZYNTEyRiB8IE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJDRF9VTlNFVCBcCisgICB8IE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJQRl9VTlNFVCB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJFUl9VTlNFVCBcCisgICB8IE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJEUV9VTlNFVCB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJCV19VTlNF VCBcCisgICB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTF9VTlNFVCB8IE9QVElPTl9NQVNLX0lT QV9BVlg1MTJJRk1BX1VOU0VUIFwKKyAgIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyX1VO U0VUIFwKKyAgIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTklfVU5TRVQgXAorICAgfCBPUFRJ T05fTUFTS19JU0FfQVZYNTEyVlBPUENOVERRX1VOU0VUIFwKKyAgIHwgT1BUSU9OX01BU0tfSVNB X0FWWDUxMkJJVEFMR19VTlNFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkNEX1VO U0VUIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJDRAorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZY NTEyUEZfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlBGCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQV9BVlg1MTJFUl9VTlNFVCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRVIKKyNkZWZpbmUgT1BU SU9OX01BU0tfSVNBX0FWWDUxMkRRX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJEUQorI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyQldfVU5TRVQgXAorICAoT1BUSU9OX01BU0tfSVNB X0FWWDUxMkJXIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUlfVU5TRVQpCisjZGVmaW5lIE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJWTF9VTlNFVCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMklGTUFfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FW WDUxMklGTUEKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUlfVU5TRVQgT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZCTUkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Rk1B UFNfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Rk1BUFMKKyNkZWZpbmUgT1BUSU9OX01B U0tfSVNBMl9BVlg1MTI0Vk5OSVdfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Vk5OSVcK KyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyX1VOU0VUIE9QVElPTl9NQVNLX0lT QV9BVlg1MTJWQk1JMgorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSV9VTlNFVCBP UFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSQorI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FWWFZO TklfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JCisjZGVmaW5lIE9QVElPTl9NQVNLX0lT QV9BVlg1MTJWUE9QQ05URFFfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZQT1BDTlREUQor I2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyQklUQUxHX1VOU0VUIE9QVElPTl9NQVNLX0lT QV9BVlg1MTJCSVRBTEcKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJCRjE2X1VOU0VU IE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyQkYxNgorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUlRN X1VOU0VUIE9QVElPTl9NQVNLX0lTQV9SVE0KKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1BSRkNI V19VTlNFVCBPUFRJT05fTUFTS19JU0FfUFJGQ0hXCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9S RFNFRURfVU5TRVQgT1BUSU9OX01BU0tfSVNBX1JEU0VFRAorI2RlZmluZSBPUFRJT05fTUFTS19J U0FfQURYX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9BRFgKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNB X1BSRUZFVENIV1QxX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9QUkVGRVRDSFdUMQorI2RlZmluZSBP UFRJT05fTUFTS19JU0FfQ0xGTFVTSE9QVF9VTlNFVCBPUFRJT05fTUFTS19JU0FfQ0xGTFVTSE9Q VAorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfWFNBVkVDX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9Y U0FWRUMKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1hTQVZFU19VTlNFVCBPUFRJT05fTUFTS19J U0FfWFNBVkVTCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9DTFdCX1VOU0VUIE9QVElPTl9NQVNL X0lTQV9DTFdCCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfTVdBSVRYX1VOU0VUIE9QVElPTl9N QVNLX0lTQTJfTVdBSVRYCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQ0xaRVJPX1VOU0VUIE9Q VElPTl9NQVNLX0lTQTJfQ0xaRVJPCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9QS1VfVU5TRVQg T1BUSU9OX01BU0tfSVNBX1BLVQorI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1JEUElEX1VOU0VU IE9QVElPTl9NQVNLX0lTQTJfUkRQSUQKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0dGTklfVU5T RVQgT1BUSU9OX01BU0tfSVNBX0dGTkkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NIU1RLX1VO U0VUIE9QVElPTl9NQVNLX0lTQV9TSFNUSworI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1ZBRVNf VU5TRVQgT1BUSU9OX01BU0tfSVNBMl9WQUVTCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9WUENM TVVMUURRX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9WUENMTVVMUURRCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9NT1ZESVJJX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9NT1ZESVJJCisjZGVmaW5lIE9Q VElPTl9NQVNLX0lTQTJfTU9WRElSNjRCX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfTU9WRElSNjRC CisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfV0FJVFBLR19VTlNFVCBPUFRJT05fTUFTS19JU0Ey X1dBSVRQS0cKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9DTERFTU9URV9VTlNFVCBPUFRJT05f TUFTS19JU0EyX0NMREVNT1RFCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfRU5RQ01EX1VOU0VU IE9QVElPTl9NQVNLX0lTQTJfRU5RQ01ECisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU0VSSUFM SVpFX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfU0VSSUFMSVpFCisjZGVmaW5lIE9QVElPTl9NQVNL X0lTQTJfQVZYNTEyVlAySU5URVJTRUNUX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyVlAy SU5URVJTRUNUCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfVFNYTERUUktfVU5TRVQgT1BUSU9O X01BU0tfSVNBMl9UU1hMRFRSSworI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FNWF9USUxFX1VO U0VUIE9QVElPTl9NQVNLX0lTQTJfQU1YX1RJTEUKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9B TVhfSU5UOF9VTlNFVCBPUFRJT05fTUFTS19JU0EyX0FNWF9JTlQ4CisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQTJfQU1YX0JGMTZfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNgorI2RlZmlu ZSBPUFRJT05fTUFTS19JU0EyX1VJTlRSX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfVUlOVFIKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9IUkVTRVRfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9IUkVT RVQKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9LTF9VTlNFVCBcCisgIChPUFRJT05fTUFTS19J U0EyX0tMIHwgT1BUSU9OX01BU0tfSVNBMl9XSURFS0xfVU5TRVQpCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQTJfV0lERUtMX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfV0lERUtMCisKKy8qIFNTRTQg aW5jbHVkZXMgYm90aCBTU0U0LjEgYW5kIFNTRTQuMi4gIC1tbm8tc3NlNCBzaG91bGQgdGhlIHNh bWUKKyAgIGFzIC1tbm8tc3NlNC4xLiAqLworI2RlZmluZSBPUFRJT05fTUFTS19JU0FfU1NFNF9V TlNFVCBPUFRJT05fTUFTS19JU0FfU1NFNF8xX1VOU0VUCisKKyNkZWZpbmUgT1BUSU9OX01BU0tf SVNBX1NTRTRBX1VOU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQV9TU0U0QSB8IE9QVElPTl9NQVNL X0lTQV9GTUE0X1VOU0VUKQorCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9GTUE0X1VOU0VUIFwK KyAgKE9QVElPTl9NQVNLX0lTQV9GTUE0IHwgT1BUSU9OX01BU0tfSVNBX1hPUF9VTlNFVCkKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBX1hPUF9VTlNFVCBPUFRJT05fTUFTS19JU0FfWE9QCisjZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9MV1BfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0xXUAorCisjZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9BRVNfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FFUworI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfU0hBX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9TSEEKKyNkZWZpbmUg T1BUSU9OX01BU0tfSVNBX1BDTE1VTF9VTlNFVCBPUFRJT05fTUFTS19JU0FfUENMTVVMCisjZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9BQk1fVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FCTQorI2RlZmlu ZSBPUFRJT05fTUFTS19JU0EyX1BDT05GSUdfVU5TRVQgT1BUSU9OX01BU0tfSVNBMl9QQ09ORklH CisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfV0JOT0lOVkRfVU5TRVQgT1BUSU9OX01BU0tfSVNB Ml9XQk5PSU5WRAorI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NHWF9VTlNFVCBPUFRJT05fTUFT S19JU0EyX1NHWAorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQk1JX1VOU0VUIE9QVElPTl9NQVNL X0lTQV9CTUkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0JNSTJfVU5TRVQgT1BUSU9OX01BU0tf SVNBX0JNSTIKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0xaQ05UX1VOU0VUIE9QVElPTl9NQVNL X0lTQV9MWkNOVAorI2RlZmluZSBPUFRJT05fTUFTS19JU0FfVEJNX1VOU0VUIE9QVElPTl9NQVNL X0lTQV9UQk0KKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1BPUENOVF9VTlNFVCBPUFRJT05fTUFT S19JU0FfUE9QQ05UCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQ1gxNl9VTlNFVCBPUFRJT05f TUFTS19JU0EyX0NYMTYKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1NBSEZfVU5TRVQgT1BUSU9O X01BU0tfSVNBX1NBSEYKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9NT1ZCRV9VTlNFVCBPUFRJ T05fTUFTS19JU0EyX01PVkJFCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9DUkMzMl9VTlNFVCBP UFRJT05fTUFTS19JU0FfQ1JDMzIKKworI2RlZmluZSBPUFRJT05fTUFTS19JU0FfRlNHU0JBU0Vf VU5TRVQgT1BUSU9OX01BU0tfSVNBX0ZTR1NCQVNFCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9S RFJORF9VTlNFVCBPUFRJT05fTUFTS19JU0FfUkRSTkQKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNB Ml9QVFdSSVRFX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfUFRXUklURQorI2RlZmluZSBPUFRJT05f TUFTS19JU0FfRjE2Q19VTlNFVCBPUFRJT05fTUFTS19JU0FfRjE2QworCisjZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9HRU5FUkFMX1JFR1NfT05MWV9VTlNFVCBcCisgIChPUFRJT05fTUFTS19JU0Ff TU1YX1VOU0VUIFwKKyAgIHwgT1BUSU9OX01BU0tfSVNBX1NTRV9VTlNFVCkKKworI2RlZmluZSBP UFRJT05fTUFTS19JU0EyX0FWWDUxMkZfVU5TRVQgXAorICAoT1BUSU9OX01BU0tfSVNBMl9BVlg1 MTJCRjE2X1VOU0VUIFwKKyAgIHwgT1BUSU9OX01BU0tfSVNBMl9BVlg1MTI0Rk1BUFNfVU5TRVQg XAorICAgfCBPUFRJT05fTUFTS19JU0EyX0FWWDUxMjRWTk5JV19VTlNFVCBcCisgICB8IE9QVElP Tl9NQVNLX0lTQTJfQVZYNTEyVlAySU5URVJTRUNUX1VOU0VUKQorI2RlZmluZSBPUFRJT05fTUFT S19JU0EyX0dFTkVSQUxfUkVHU19PTkxZX1VOU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQTJfQVZY NTEyRl9VTlNFVCkKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlhfVU5TRVQgT1BUSU9OX01B U0tfSVNBMl9BVlgyX1VOU0VUCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU1NFNF8yX1VOU0VU IE9QVElPTl9NQVNLX0lTQTJfQVZYX1VOU0VUCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU1NF NF8xX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfU1NFNF8yX1VOU0VUCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQTJfU1NFNF9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1NTRTRfMV9VTlNFVAorI2RlZmlu ZSBPUFRJT05fTUFTS19JU0EyX1NTU0UzX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfU1NFNF8xX1VO U0VUCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU1NFM19VTlNFVCBPUFRJT05fTUFTS19JU0Ey X1NTU0UzX1VOU0VUCisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfU1NFMl9VTlNFVCBcCisgIChP UFRJT05fTUFTS19JU0EyX1NTRTNfVU5TRVQgfCBPUFRJT05fTUFTS19JU0EyX0tMX1VOU0VUKQor I2RlZmluZSBPUFRJT05fTUFTS19JU0EyX1NTRV9VTlNFVCBPUFRJT05fTUFTS19JU0EyX1NTRTJf VU5TRVQKKworI2RlZmluZSBPUFRJT05fTUFTS19JU0EyX0FWWDUxMkJXX1VOU0VUIE9QVElPTl9N QVNLX0lTQTJfQVZYNTEyQkYxNl9VTlNFVApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2kz ODYuYyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmMKaW5kZXggN2M0MTMwMmM3NWIuLjIwMWEwMDFl OTVhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCisrKyBiL2djYy9jb25maWcv aTM4Ni9pMzg2LmMKQEAgLTU1Myw3ICs1NTMsNyBAQCBpeDg2X2Nhbl9pbmxpbmVfcCAodHJlZSBj YWxsZXIsIHRyZWUgY2FsbGVlKQogCiAgIC8qIENoYW5nZXMgb2YgdGhvc2UgZmxhZ3MgY2FuIGJl IHRvbGVyYXRlZCBmb3IgYWx3YXlzIGlubGluZXMuIExldHMgaG9wZQogICAgICB1c2VyIGtub3dz IHdoYXQgaGUgaXMgZG9pbmcuICAqLwotICBjb25zdCB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIGFs d2F5c19pbmxpbmVfc2FmZV9tYXNrCisgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgYWx3YXlzX2lu bGluZV9zYWZlX21hc2sKIAkgPSAoTUFTS19VU0VfOEJJVF9JRElWIHwgTUFTS19BQ0NVTVVMQVRF X09VVEdPSU5HX0FSR1MKIAkgICAgfCBNQVNLX05PX0FMSUdOX1NUUklOR09QUyB8IE1BU0tfQVZY MjU2X1NQTElUX1VOQUxJR05FRF9MT0FECiAJICAgIHwgTUFTS19BVlgyNTZfU1BMSVRfVU5BTElH TkVEX1NUT1JFIHwgTUFTS19DTEQKQEAgLTU3OSwxMyArNTc5LDMyIEBAIGl4ODZfY2FuX2lubGlu ZV9wICh0cmVlIGNhbGxlciwgdHJlZSBjYWxsZWUpCiAJCQkgICAgREVDTF9BVFRSSUJVVEVTIChj YWxsZWUpKSk7CiAKICAgY2dyYXBoX25vZGUgKmNhbGxlZV9ub2RlID0gY2dyYXBoX25vZGU6Omdl dCAoY2FsbGVlKTsKKworICBIT1NUX1dJREVfSU5UIGNhbGxlZV9pbnRlZ2VyX2lzYV9mbGFncwor ICAgID0gY2FsbGVlX29wdHMtPnhfaXg4Nl9pc2FfZmxhZ3M7CisgIEhPU1RfV0lERV9JTlQgY2Fs bGVlX2ludGVnZXJfaXNhX2ZsYWdzMgorICAgID0gY2FsbGVlX29wdHMtPnhfaXg4Nl9pc2FfZmxh Z3MyOworCisgIGlmIChsb29rdXBfYXR0cmlidXRlICgiZ2VuZXJhbF9yZWdzX29ubHkiLAorCQkJ REVDTF9BVFRSSUJVVEVTIChjYWxsZWUpKSkKKyAgICB7CisgICAgICAvKiBGb3IgZ2VuZXJhbCBw dXJwb3NlIHJlZ2lzdGVyIG9ubHkgZnVuY3Rpb24sIGNhbGxlZSdzCisJIGludGVnZXIgSVNBIG9w dGlvbnMgc2hvdWxkIGJlIGEgc3Vic2V0IG9mIHRoZSBjYWxsZXIncworCSBpbnRlZ2VyIElTQSBv cHRpb25zLiAgKi8KKyAgICAgIGFsd2F5c19pbmxpbmVfc2FmZV9tYXNrIHw9IE1BU0tfODAzODc7 CisgICAgICBjYWxsZWVfaW50ZWdlcl9pc2FfZmxhZ3MKKwkmPSB+T1BUSU9OX01BU0tfSVNBX0dF TkVSQUxfUkVHU19PTkxZX1VOU0VUOworICAgICAgY2FsbGVlX2ludGVnZXJfaXNhX2ZsYWdzMgor CSY9IH5PUFRJT05fTUFTS19JU0EyX0dFTkVSQUxfUkVHU19PTkxZX1VOU0VUOworICAgIH0KKwog ICAvKiBDYWxsZWUncyBpc2Egb3B0aW9ucyBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIGNhbGxl cidzLCBpLmUuIGEgU1NFNAogICAgICBmdW5jdGlvbiBjYW4gaW5saW5lIGEgU1NFMiBmdW5jdGlv biBidXQgYSBTU0UyIGZ1bmN0aW9uIGNhbid0IGlubGluZQogICAgICBhIFNTRTQgZnVuY3Rpb24u ICAqLwotICBpZiAoKChjYWxsZXJfb3B0cy0+eF9peDg2X2lzYV9mbGFncyAmIGNhbGxlZV9vcHRz LT54X2l4ODZfaXNhX2ZsYWdzKQotICAgICAgICE9IGNhbGxlZV9vcHRzLT54X2l4ODZfaXNhX2Zs YWdzKQotICAgICAgfHwgKChjYWxsZXJfb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgJiBjYWxsZWVf b3B0cy0+eF9peDg2X2lzYV9mbGFnczIpCi0JICAhPSBjYWxsZWVfb3B0cy0+eF9peDg2X2lzYV9m bGFnczIpKQorICBpZiAoKChjYWxsZXJfb3B0cy0+eF9peDg2X2lzYV9mbGFncyAmIGNhbGxlZV9p bnRlZ2VyX2lzYV9mbGFncykKKyAgICAgICAhPSBjYWxsZWVfaW50ZWdlcl9pc2FfZmxhZ3MpCisg ICAgICB8fCAoKGNhbGxlcl9vcHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmIGNhbGxlZV9pbnRlZ2Vy X2lzYV9mbGFnczIpCisJICAhPSBjYWxsZWVfaW50ZWdlcl9pc2FfZmxhZ3MyKSkKICAgICByZXQg PSBmYWxzZTsKIAogICAvKiBTZWUgaWYgd2UgaGF2ZSB0aGUgc2FtZSBub24taXNhIG9wdGlvbnMu ICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYuaCBiL2djYy9jb25maWcvaTM4 Ni9pMzg2LmgKaW5kZXggOTc3MDBkNzk3YTcuLmNkNWFlZDMwMzI1IDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2kzODYvaTM4Ni5oCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmgKQEAgLTI1NzUs NiArMjU3NSw3IEBAIGNvbnN0ZXhwciB3aWRlX2ludF9iaXRtYXNrIFBUQV9LTk0gPSBQVEFfS05M IHwgUFRBX0FWWDUxMjRWTk5JVwogCiAjaW5jbHVkZSAiaW5zbi1hdHRyLWNvbW1vbi5oIgogCisj aW5jbHVkZSAiY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmgiCiAjaW5jbHVkZSAiY29t bW9uL2NvbmZpZy9pMzg2L2kzODYtY3B1aW5mby5oIgogCiBjbGFzcyBwdGEKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvaTM4Ni9pYTMyaW50cmluLmggYi9nY2MvY29uZmlnL2kzODYvaWEzMmludHJp bi5oCmluZGV4IDU5MTM5NDA3NmNjLi40ZWNjNzYxOTE4OCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9pMzg2L2lhMzJpbnRyaW4uaAorKysgYi9nY2MvY29uZmlnL2kzODYvaWEzMmludHJpbi5oCkBA IC0xMDcsMTIgKzEwNywyNCBAQCBfX3JkcG1jIChpbnQgX19TKQogI2VuZGlmIC8qIF9faWFtY3Vf XyAqLwogCiAvKiByZHRzYyAqLwotI2RlZmluZSBfX3JkdHNjKCkJCV9fYnVpbHRpbl9pYTMyX3Jk dHNjICgpCitleHRlcm4gX19pbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nCitfX2F0dHJpYnV0ZV9f KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fLAorCSAg ICAgICBfX2dlbmVyYWxfcmVnc19vbmx5X18pKQorX19yZHRzYyAodm9pZCkKK3sKKyAgcmV0dXJu IF9fYnVpbHRpbl9pYTMyX3JkdHNjICgpOworfQogCiAjaWZuZGVmIF9faWFtY3VfXwogCiAvKiBy ZHRzY3AgKi8KLSNkZWZpbmUgX19yZHRzY3AoYSkJCV9fYnVpbHRpbl9pYTMyX3JkdHNjcCAoYSkK K2V4dGVybiBfX2lubGluZSB1bnNpZ25lZCBsb25nIGxvbmcKK19fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18sCisJICAgICAgIF9f Z2VuZXJhbF9yZWdzX29ubHlfXykpCitfX3JkdHNjcCAodW5zaWduZWQgaW50ICpfX0EpCit7Cisg IHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHRzY3AgKF9fQSk7Cit9CiAKICNlbmRpZiAvKiBfX2lh bWN1X18gKi8KIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L3NlcmlhbGl6ZWludHJpbi5o IGIvZ2NjL2NvbmZpZy9pMzg2L3NlcmlhbGl6ZWludHJpbi5oCmluZGV4IGUyODAyNTBiMTk4Li5k ZDI3ZTZjN2E4MSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L3NlcmlhbGl6ZWludHJpbi5o CisrKyBiL2djYy9jb25maWcvaTM4Ni9zZXJpYWxpemVpbnRyaW4uaApAQCAtMzQsNyArMzQsMTMg QEAKICNkZWZpbmUgX19ESVNBQkxFX1NFUklBTElaRV9fCiAjZW5kaWYgLyogX19TRVJJQUxJWkVf XyAqLwogCi0jZGVmaW5lIF9zZXJpYWxpemUoKQlfX2J1aWx0aW5faWEzMl9zZXJpYWxpemUgKCkK K2V4dGVybiBfX2lubGluZSB2b2lkCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19h bHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fLAorCSAgICAgICBfX2dlbmVyYWxfcmVnc19v bmx5X18pKQorX3NlcmlhbGl6ZSAodm9pZCkKK3sKKyAgX19idWlsdGluX2lhMzJfc2VyaWFsaXpl ICgpOworfQogCiAjaWZkZWYgX19ESVNBQkxFX1NFUklBTElaRV9fCiAjdW5kZWYgX19ESVNBQkxF X1NFUklBTElaRV9fCmRpZmYgLS1naXQgYS9nY2MvZG9jL2V4dGVuZC50ZXhpIGIvZ2NjL2RvYy9l eHRlbmQudGV4aQppbmRleCAxZGRhZmIzZmYyYy4uNWNhMDU0ZDkwMzcgMTAwNjQ0Ci0tLSBhL2dj Yy9kb2MvZXh0ZW5kLnRleGkKKysrIGIvZ2NjL2RvYy9leHRlbmQudGV4aQpAQCAtMzA0Niw2ICsz MDQ2LDExIEBAIFRoZSB0YXJnZXQgbWF5IGFsc28gYWxsb3cgYWRkaXRpb25hbCB0eXBlcyBpbiBA Y29kZXtmb3JtYXQtYXJnfSBhdHRyaWJ1dGVzLgogQHhyZWZ7VGFyZ2V0IEZvcm1hdCBDaGVja3Ms LEZvcm1hdCBDaGVja3MgU3BlY2lmaWMgdG8gUGFydGljdWxhcgogVGFyZ2V0IE1hY2hpbmVzfS4K IAorQGl0ZW0gZ2VuZXJhbF9yZWdzX29ubHkKK0BjaW5kZXggQGNvZGV7Z2VuZXJhbF9yZWdzX29u bHl9IGZ1bmN0aW9uIGF0dHJpYnV0ZQorVGhlIEBjb2Rle2dlbmVyYWxfcmVnc19vbmx5fSBhdHRy aWJ1dGUgb24gZnVuY3Rpb25zIGlzIHVzZWQgdG8KK2luZm9ybSB0aGUgY29tcGlsZXIgdGhhdCBm dW5jdGlvbnMgdXNlIG9ubHkgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KKwogQGl0ZW0gZ251 X2lubGluZQogQGNpbmRleCBAY29kZXtnbnVfaW5saW5lfSBmdW5jdGlvbiBhdHRyaWJ1dGUKIFRo aXMgYXR0cmlidXRlIHNob3VsZCBiZSB1c2VkIHdpdGggYSBmdW5jdGlvbiB0aGF0IGlzIGFsc28g ZGVjbGFyZWQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByOTk3 NDQtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5OTc0NC0zLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjNTA1ODE2Y2ViCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5OTc0NC0zLmMKQEAgLTAs MCArMSwxMyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8y IC1tbm8tc2VyaWFsaXplIiB9ICovCisKKyNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KKworX19hdHRy aWJ1dGVfXyAoKHRhcmdldCgiZ2VuZXJhbC1yZWdzLW9ubHkiKSkpCit2b2lkCitmb28xICh2b2lk KQoreworICBfc2VyaWFsaXplICgpOworfQorCisvKiB7IGRnLWVycm9yICJ0YXJnZXQgc3BlY2lm aWMgb3B0aW9uIG1pc21hdGNoIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfSAqLwotLSAKMi4zMC4y Cgo= --000000000000160b1a05bfef26e7--