From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Fabrice Popineau Newsgroups: gmane.emacs.bugs Subject: bug#9960: Compiling Emacs trunk with MSVC Date: Thu, 10 Nov 2011 20:56:11 +0100 Message-ID: References: <83sjy5279e.fsf@gnu.org> <8339e2lsu7.fsf@gnu.org> <83zkgakdby.fsf@gnu.org> <4EB5320F.5090800@gmail.com> <83vcqyk8k3.fsf@gnu.org> <4EB540F4.7080106@gmail.com> <83r51mk62f.fsf@gnu.org> <86wrbeo7p5.fsf@googlemail.com> <83k47ejyyt.fsf@gnu.org> <86sjm2o559.fsf@googlemail.com> <86obwqo2hl.fsf@googlemail.com> <86ipmynwds.fsf@googlemail.com> <838vnujm3z.fsf@gnu.org> <83sjlzj25l.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae9c097fe22329d04b166cd9c X-Trace: dough.gmane.org 1320955023 29494 80.91.229.12 (10 Nov 2011 19:57:03 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 10 Nov 2011 19:57:03 +0000 (UTC) Cc: cschol2112@googlemail.com, 9960@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Nov 10 20:56:57 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ROak4-0006N9-IY for geb-bug-gnu-emacs@m.gmane.org; Thu, 10 Nov 2011 20:56:56 +0100 Original-Received: from localhost ([::1]:52713 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROak3-0005jT-Uz for geb-bug-gnu-emacs@m.gmane.org; Thu, 10 Nov 2011 14:56:55 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:49057) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROak0-0005j8-4u for bug-gnu-emacs@gnu.org; Thu, 10 Nov 2011 14:56:53 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ROajy-0006kt-L8 for bug-gnu-emacs@gnu.org; Thu, 10 Nov 2011 14:56:52 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43442) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROajy-0006ko-I6 for bug-gnu-emacs@gnu.org; Thu, 10 Nov 2011 14:56:50 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1ROak9-0002bg-W7 for bug-gnu-emacs@gnu.org; Thu, 10 Nov 2011 14:57:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Fabrice Popineau Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 10 Nov 2011 19:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9960 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9960-submit@debbugs.gnu.org id=B9960.132095501510009 (code B ref 9960); Thu, 10 Nov 2011 19:57:01 +0000 Original-Received: (at 9960) by debbugs.gnu.org; 10 Nov 2011 19:56:55 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ROak2-0002bN-F0 for submit@debbugs.gnu.org; Thu, 10 Nov 2011 14:56:55 -0500 Original-Received: from mail-bw0-f44.google.com ([209.85.214.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ROajz-0002b9-Gq for 9960@debbugs.gnu.org; Thu, 10 Nov 2011 14:56:53 -0500 Original-Received: by bkbzv15 with SMTP id zv15so2571147bkb.3 for <9960@debbugs.gnu.org>; Thu, 10 Nov 2011 11:56:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=xt+G4OwIGP/gVwS7OFOrMEBMWEmy1ugEcmvaTe654Rg=; b=tRG9TQdyAJ0Rej9TB8O4KEtxnEpdIkfAvGUlIqCJVHA96lPZKPAxVFAFtm+k7Rlc19 BhCxUwk3oa/NcsnuI/T3XVtcYkUdjntVA5l0oHznPJfnm9HjhGfj5E0RxPV19fPbXv6N xY5leEdwtM5Z3bxQucCXvTBWD36m40zqE9eQQ= Original-Received: by 10.205.114.65 with SMTP id ez1mr5960889bkc.99.1320954993193; Thu, 10 Nov 2011 11:56:33 -0800 (PST) Original-Received: by 10.204.120.6 with HTTP; Thu, 10 Nov 2011 11:56:11 -0800 (PST) In-Reply-To: <83sjlzj25l.fsf@gnu.org> X-Google-Sender-Auth: h8EBc3cDRsLJnUzYIfo-5pyu5d0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 10 Nov 2011 14:57:01 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:53792 Archived-At: --14dae9c097fe22329d04b166cd9c Content-Type: multipart/alternative; boundary=14dae9c097fe22329904b166cd9a --14dae9c097fe22329904b166cd9a Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 2011/11/7 Eli Zaretskii > Will this work: > > #define ALIGN_GCTYPEBITS 8 > #if (1 << GCTYPEBITS) !=3D ALIGN_GCTYPEBITS > #error ALIGN_GCTYPEBITS is wrong! > #endif > #define DECL_ALIGN(type, var) \ > type __declspec(align(ALIGN_GCTYPEBITS)) var > > Since all this is needed for MSVC alone, we could then move the > ALIGN_GCTYPEBITS definition to src/s/ms-w32.h and leave only the rest > in lisp.h. WDYT? > Sure. feel free to adapt on the basis of the attached patch. Status is : - completely functional 32 bits version with xpm, gif, jpeg, tiff. Able to boostrap itself. - the 64 bits version compiles and dumps, but fails to bootstrap (seems to be looping inside elisp code). Is there any interest in having a 64bits windows emacs ? I have added two other files : a 64bits manifest for emacs.exe and a w32compat.h header file that is needed to compile the above mentioned libraries. In my case, this w32compat.h is included while compiling image.c for example. Feel free to comment and adapt for the release version. Fabrice --=20 Fabrice Popineau ----------------------------- SUPELEC D=E9partement Informatique 3, rue Joliot Curie 91192 Gif/Yvette Cedex Tel direct : +33 (0) 169851950 Standard : +33 (0) 169851212 ------------------------------ --14dae9c097fe22329904b166cd9a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

2011/11/7 Eli Zaretskii <eliz@gnu.org>= ;
Will this work:

=A0#define ALIGN_GCTYPEBITS 8
=A0#if (1 << GCTYPEBITS) !=3D ALIGN_GCTYPEBITS
=A0#error ALIGN_GCTYPEBITS is wrong!
=A0#endif
=A0#define DECL_ALIGN(type, var) \
=A0 =A0 =A0 type __declspec(align(ALIGN_GCTYPEBITS)) var

Since all this is needed for MSVC alone, we could then move the
ALIGN_GCTYPEBITS definition to src/s/ms-w32.h and leave only the rest
in lisp.h. =A0WDYT?

Sure. feel free to adapt on the basis of the attache= d patch.
Status is :=A0
- completely functional 32 bits versi= on with xpm, gif, jpeg, tiff. Able to boostrap itself.
- the 64 b= its version compiles and dumps, but fails to bootstrap (seems to be looping= inside elisp code).

Is there any interest in having a 64bits windows emacs = ?

I have added two other files : a 64bits manifest= for emacs.exe and a w32compat.h header file that is needed to compile the = above mentioned libraries. In my case, this w32compat.h is included while c= ompiling image.c for example.

Feel free to comment and adapt for the release version.=

Fabrice



--
Fabrice Popineau
-----------------------------
SUPELEC
D=E9partement Informatique
3, rue Joliot C= urie
91192 Gif/Yvette Cedex
Tel direct : +33 = (0) 169851950
-----------------= -------------


--14dae9c097fe22329904b166cd9a-- --14dae9c097fe22329d04b166cd9c Content-Type: application/octet-stream; name="emacs-24-3.diff" Content-Disposition: attachment; filename="emacs-24-3.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guu6bqpd0 PT09IG1vZGlmaWVkIGZpbGUgJ2J1aWxkLWF1eC9tb3ZlLWlmLWNoYW5nZScgKHByb3BlcnRpZXMg Y2hhbmdlZDogK3ggdG8gLXgpCj09PSBtb2RpZmllZCBmaWxlICdsaWItc3JjL2VtYWNzY2xpZW50 LmMnCi0tLSBsaWItc3JjL2VtYWNzY2xpZW50LmMJMjAxMS0xMC0yNyAwMDo1OToyMSArMDAwMAor KysgbGliLXNyYy9lbWFjc2NsaWVudC5jCTIwMTEtMTEtMTAgMTc6NDA6MjkgKzAwMDAKQEAgLTE2 MzUsNyArMTYzNSw5IEBACiAgIC8qIFNlbmQgb3ZlciBvdXIgZW52aXJvbm1lbnQgYW5kIGN1cnJl bnQgZGlyZWN0b3J5LiAqLwogICBpZiAoIWN1cnJlbnRfZnJhbWUpCiAgICAgeworI2lmbmRlZiBf TVNDX1ZFUgogICAgICAgZXh0ZXJuIGNoYXIgKiplbnZpcm9uOworI2VuZGlmCiAgICAgICBpbnQg aTsKICAgICAgIGZvciAoaSA9IDA7IGVudmlyb25baV07IGkrKykKICAgICAgICAgewoKPT09IG1v ZGlmaWVkIGZpbGUgJ2xpYi1zcmMvbWFrZWZpbGUudzMyLWluJwotLS0gbGliLXNyYy9tYWtlZmls ZS53MzItaW4JMjAxMS0wNy0wNyAwMTozMjo1NiArMDAwMAorKysgbGliLXNyYy9tYWtlZmlsZS53 MzItaW4JMjAxMS0xMS0wOCAxODoyMzowMSArMDAwMApAQCAtMjMsNyArMjMsNyBAQAogCiBMT0NB TF9GTEFHUwk9IC1EV0lORE9XU05UIC1ERE9TX05UIC1ETk9fTERBVj0xIFwKIAkJICAtRE5PX0FS Q0hJVkVTPTEgLURIQVZFX0NPTkZJR19IPTEgLUkuLi9saWIgXAotCQkgIC1JLi4vbnQvaW5jIC1J Li4vc3JjCisJCSAgLUkuLi9udC9pbmMgLUkuLi9zcmMgJChFTUFDU19FWFRSQV9DX0ZMQUdTKQog CiBMSUJTIAkJPSAkKEJBU0VfTElCUykgJChBRFZBUEkzMikKIAoKPT09IG1vZGlmaWVkIGZpbGUg J2xpYi9zdHJmdGltZS5jJwotLS0gbGliL3N0cmZ0aW1lLmMJMjAxMS0wMy0zMSAwNDoyNDowMyAr MDAwMAorKysgbGliL3N0cmZ0aW1lLmMJMjAxMS0xMS0xMCAxNzozOTozNyArMDAwMApAQCAtMzYs OSArMzYsMTQgQEAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPHRpbWUuaD4KIAorI2lm ZGVmIF9NU0NfVkVSCisjZGVmaW5lIHR6bmFtZSBfdHpuYW1lCisjZWxzZQogI2lmIEhBVkVfVFpO QU1FICYmICFIQVZFX0RFQ0xfVFpOQU1FCiBleHRlcm4gY2hhciAqdHpuYW1lW107CiAjZW5kaWYK KyNlbmRpZgorCiAKIC8qIERvIG11bHRpYnl0ZSBwcm9jZXNzaW5nIGlmIG11bHRpYnl0ZXMgYXJl IHN1cHBvcnRlZCwgdW5sZXNzCiAgICBtdWx0aWJ5dGUgc2VxdWVuY2VzIGFyZSBzYWZlIGluIGZv cm1hdHMuICBNdWx0aWJ5dGUgc2VxdWVuY2VzIGFyZQoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpc3Av YmluZGluZ3MuZWwnCi0tLSBsaXNwL2JpbmRpbmdzLmVsCTIwMTEtMTAtMDggMTY6Mzc6NDYgKzAw MDAKKysrIGxpc3AvYmluZGluZ3MuZWwJMjAxMS0xMS0xMCAxNzo0OTozNSArMDAwMApAQCAtODI0 LDEzICs4MjQsMTMgQEAKIDs7IERlZmluZSBjb250cm9sLWRpZ2l0cy4KIChsZXQgKChpID8wKSkK ICAgKHdoaWxlICg8PSBpID85KQotICAgIChkZWZpbmUta2V5IGdsb2JhbC1tYXAgKHJlYWQgKGZv cm1hdCAiWz9cXEMtJWNdIiBpKSkgJ2RpZ2l0LWFyZ3VtZW50KQorOyAgICAoZGVmaW5lLWtleSBn bG9iYWwtbWFwIChyZWFkIChmb3JtYXQgIls/XFxDLSVjXSIgaSkpICdkaWdpdC1hcmd1bWVudCkK ICAgICAoc2V0cSBpICgxKyBpKSkpKQogKGRlZmluZS1rZXkgZ2xvYmFsLW1hcCBbP1xDLS1dICdu ZWdhdGl2ZS1hcmd1bWVudCkKIDs7IERlZmluZSBjb250cm9sLW1ldGEtZGlnaXRzLgogKGxldCAo KGkgPzApKQogICAod2hpbGUgKDw9IGkgPzkpCi0gICAgKGRlZmluZS1rZXkgZXNjLW1hcCAocmVh ZCAoZm9ybWF0ICJbP1xcQy0lY10iIGkpKSAnZGlnaXQtYXJndW1lbnQpCis7ICAgIChkZWZpbmUt a2V5IGVzYy1tYXAgKHJlYWQgKGZvcm1hdCAiWz9cXEMtJWNdIiBpKSkgJ2RpZ2l0LWFyZ3VtZW50 KQogICAgIChzZXRxIGkgKDErIGkpKSkpCiAoZGVmaW5lLWtleSBnbG9iYWwtbWFwIFs/XEMtXE0t LV0gJ25lZ2F0aXZlLWFyZ3VtZW50KQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnbnQvY29uZmlnLm50 JwotLS0gbnQvY29uZmlnLm50CTIwMTEtMTEtMDUgMTc6MTY6MDEgKzAwMDAKKysrIG50L2NvbmZp Zy5udAkyMDExLTExLTEwIDE3OjQyOjIyICswMDAwCkBAIC0zMDMsNiArMzAzLDEwIEBACiAvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxvY2FsdGltZV9yJyBmdW5jdGlvbi4gKi8KICN1 bmRlZiBIQVZFX0xPQ0FMVElNRV9SCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBk ZWNsYXJhdGlvbiBvZiBgc3RydG9sbCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisj ZGVmaW5lIEhBVkVfREVDTF9TVFJUT0xMIDEKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIGRlY2xhcmF0aW9uIG9mIGBzdHJ0b3VsbCcsIGFuZCB0byAwIGlmIHlvdQogICAgZG9uJ3Qu ICovCiAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT1VMTCAxCkBAIC0zNTMsOCArMzU3LDggQEAKIC8q IEEgdmFfY29weSByZXBsYWNlbWVudCBmb3IgTVNWQy4gICovCiAjaWZkZWYgX01TQ19WRVIKICMg aWZkZWYgX1dJTjY0Ci0jICBpZm5kZWYgdmFfY29weQotIyAgIGVycm9yICJ2YV9jb3B5IGlzIG5l ZWRlZCwgYnV0IG5vdCBkZWZpbmVkISIKKyMgIGlmbmRlZiB2YV9jb3B5ICAgICAgICAgICAgICAg LyogTmVlZCB0byBiZSBjaGVja2VkICg/KSAqLworIyAgIGRlZmluZSB2YV9jb3B5KGQscykgKChk KSA9IChzKSkKICMgIGVuZGlmCiAjIGVsc2UJLyogbm90IF9XSU42NCAqLwogIyAgZGVmaW5lIHZh X2NvcHkoZCxzKSAoKGQpID0gKHMpKQpAQCAtNDI5LDcgKzQzMywxMSBAQAogCiAgICBTZWUgbS90 ZW1wbGF0ZS5oIGZvciBkb2N1bWVudGF0aW9uIG9uIHdyaXRpbmcgbS9NQUNISU5FLmggZmlsZXMu ICAqLwogI3VuZGVmIGNvbmZpZ19tYWNoZmlsZQorI2lmZGVmIF9XSU42NAorI2luY2x1ZGUgIm0v YW1keDg2LTY0LmgiCisjZWxzZQogI2luY2x1ZGUgIm0vaW50ZWwzODYuaCIKKyNlbmRpZgogCiAv KiBEZWZpbmUgYHN1YnByb2Nlc3Nlcycgc2hvdWxkIGJlIGRlZmluZWQgaWYgeW91IHdhbnQgdG8K ICAgIGhhdmUgY29kZSBmb3IgYXN5bmNocm9ub3VzIHN1YnByb2Nlc3NlcwoKPT09IG1vZGlmaWVk IGZpbGUgJ250L2NvbmZpZ3VyZS5iYXQnCi0tLSBudC9jb25maWd1cmUuYmF0CTIwMTEtMDUtMDcg MDQ6MDA6MTIgKzAwMDAKKysrIG50L2NvbmZpZ3VyZS5iYXQJMjAxMS0xMS0wOSAxNTo0Mzo0MiAr MDAwMApAQCAtOTYsOCArOTYsOCBAQAogc2V0IHByb2ZpbGU9Tg0KIHNldCBub2N5Z3dpbj1ODQog c2V0IENPTVBJTEVSPQ0KLXNldCB1c2VyY2ZsYWdzPQ0KLXNldCBlc2N1c2VyY2ZsYWdzPQ0KK3Nl dCB1c2VyY2ZsYWdzPS1JLi4vc3JjIC1JLi4vbnQvaW5jIC1JLi4vbGliIC1JYzovc291cmNlL1hF bVRlWC9zb3VyY2UvbGlicy93MzJjb21wYXQgLUljOi9zb3VyY2UvWEVtVGVYL3NvdXJjZS9saWJz L3psaWItMS4yLjUgLUljOi9zb3VyY2UvWEVtVGVYL3NvdXJjZS9saWJzL2xpYnBuZy0xLjUuNCAt SWM6L3NvdXJjZS9YRW1UZVgvc291cmNlL2xpYnMvanBlZy04YiAtSWM6L3NvdXJjZS9YRW1UZVgv c291cmNlL2xpYnMvdGlmZi0zLjkuNS9saWJ0aWZmIC1JYzovc291cmNlL1hFbVRlWC9zb3VyY2Uv bGlicy9naWZsaWItNC4xLjYvbGliIC1JYzovc291cmNlL1hFbVRlWC9zb3VyY2UvbGlicy94cG0t My40ayAtSWM6L3NvdXJjZS9YRW1UZVgvc291cmNlL2xpYnMveHBtLTMuNGsvbGliDQorc2V0IGVz Y3VzZXJjZmxhZ3M9LUkuLi9zcmMgLUkuLi9udC9pbmMgLUkuLi9saWIgLUljOi9zb3VyY2UvWEVt VGVYL3NvdXJjZS9saWJzL3czMmNvbXBhdCAtSWM6L3NvdXJjZS9YRW1UZVgvc291cmNlL2xpYnMv emxpYi0xLjIuNSAtSWM6L3NvdXJjZS9YRW1UZVgvc291cmNlL2xpYnMvbGlicG5nLTEuNS40IC1J Yzovc291cmNlL1hFbVRlWC9zb3VyY2UvbGlicy9qcGVnLThiIC1JYzovc291cmNlL1hFbVRlWC9z b3VyY2UvbGlicy90aWZmLTMuOS41L2xpYnRpZmYgLUljOi9zb3VyY2UvWEVtVGVYL3NvdXJjZS9s aWJzL2dpZmxpYi00LjEuNi9saWIgLUljOi9zb3VyY2UvWEVtVGVYL3NvdXJjZS9saWJzL3hwbS0z LjRrIC1JYzovc291cmNlL1hFbVRlWC9zb3VyY2UvbGlicy94cG0tMy40ay9saWINCiBzZXQgZG9j ZmxhZ3M9DQogc2V0IHVzZXJsZGZsYWdzPQ0KIHNldCBlc2N1c2VybGRmbGFncz0NCkBAIC01MzYs NyArNTM2LDggQEAKIGVjaG8gVGhlIGZhaWxlZCBwcm9ncmFtIHdhczogPj5jb25maWcubG9nDQog dHlwZSBqdW5rLmMgPj5jb25maWcubG9nDQogc2V0IEhBVkVfUE5HPQ0KLWdvdG8gOnBuZ0RvbmUN CityZW0gZ290byA6cG5nRG9uZQ0KK2dvdG8gOmVuZA0KIA0KIDpoYXZlUG5nDQogZWNobyAuLi5Q TkcgaGVhZGVyIGF2YWlsYWJsZSwgYnVpbGRpbmcgd2l0aCBQTkcgc3VwcG9ydC4NCgo9PT0gbW9k aWZpZWQgZmlsZSAnbnQvZW1hY3MucmMnCi0tLSBudC9lbWFjcy5yYwkyMDExLTEwLTMxIDAyOjI1 OjAxICswMDAwCisrKyBudC9lbWFjcy5yYwkyMDExLTExLTEwIDAyOjQ3OjU4ICswMDAwCkBAIC0x LDYgKzEsMTAgQEAKIEVtYWNzIElDT04gICBpY29uc1xlbWFjcy5pY28KIDMyNjQ5IENVUlNPUiBp Y29uc1xoYW5kLmN1cgorI2lmZGVmIFdJTjY0CisxIDI0ICJlbWFjcy14NjQubWFuaWZlc3QiCisj ZWxzZQogMSAyNCAiZW1hY3MubWFuaWZlc3QiCisjZW5kaWYKIAogI2lmbmRlZiBWU19WRVJTSU9O X0lORk8KICNkZWZpbmUgVlNfVkVSU0lPTl9JTkZPIDEKCj09PSBtb2RpZmllZCBmaWxlICdudC9p bmMvaW50dHlwZXMuaCcKLS0tIG50L2luYy9pbnR0eXBlcy5oCTIwMTEtMDUtMDYgMTI6MDk6MDgg KzAwMDAKKysrIG50L2luYy9pbnR0eXBlcy5oCTIwMTEtMTEtMDggMDQ6MzM6NTcgKzAwMDAKQEAg LTI0LDcgKzI0LDEzIEBACiAjaW5jbHVkZV9uZXh0IDxpbnR0eXBlcy5oPgogI2Vsc2UgIC8qICFf X01JTkdXMzJfXyAqLwogI2luY2x1ZGUgInN0ZGludC5oIgorI2lmZGVmIF9XSU42NAogI2RlZmlu ZSBzdHJ0b3VtYXggX3N0cnRvdWk2NAorI2RlZmluZSBzdHJ0b2ltYXggX3N0cnRvaTY0CisjZWxz ZQorI2RlZmluZSBzdHJ0b3VtYXggc3RydG91bAorI2RlZmluZSBzdHJ0b2ltYXggc3RydG9sCisj ZW5kaWYKICNlbmRpZgkvKiAhX19NSU5HVzMyX18gKi8KIAogI2VuZGlmCgo9PT0gbW9kaWZpZWQg ZmlsZSAnbnQvaW5jL3N0ZGludC5oJwotLS0gbnQvaW5jL3N0ZGludC5oCTIwMTEtMTEtMDUgMjI6 MzM6NDQgKzAwMDAKKysrIG50L2luYy9zdGRpbnQuaAkyMDExLTExLTEwIDAxOjM2OjUwICswMDAw CkBAIC0yOSw3ICsyOSw5IEBACiAKICNpZmRlZiBfV0lONjQKIHR5cGVkZWYgX19pbnQ2NCBpbnRw dHJfdDsKLSNkZWZpbmUgVUlOVDY0X01BWCAxODQ0Njc0NDA3MzcwOTU1MTYxNgordHlwZWRlZiB1 bnNpZ25lZCBpbnQgdWludDMyX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgdWludDY0X3Q7 CisjZGVmaW5lIFVJTlQ2NF9NQVggKDE4NDQ2NzQ0MDczNzA5NTUxNjE1aTY0KQogI2RlZmluZSBV SU5UNjRfTUlOIDAKIC8qICJpNjQiIGlzIHRoZSBub24tc3RhbmRhcmQgc3VmZml4IHVzZWQgYnkg TVNWQyBmb3IgNjQtYml0IGNvbnN0YW50cy4gICovCiAjZGVmaW5lIElOVDY0X01BWCA5MjIzMzcy MDM2ODU0Nzc1ODA3aTY0CkBAIC0zOSw2ICs0MSw4IEBACiAjZGVmaW5lIFVJTlRNQVhfTUlOIFVJ TlQ2NF9NSU4KICNkZWZpbmUgSU5UTUFYX01BWCBJTlQ2NF9NQVgKICNkZWZpbmUgSU5UTUFYX01J TiBJTlQ2NF9NSU4KKyNkZWZpbmUgdWludG1heF90IHVuc2lnbmVkIF9faW50NjQKKyNkZWZpbmUg aW50bWF4X3QgX19pbnQ2NAogI2Vsc2UKIHR5cGVkZWYgaW50IGludHB0cl90OwogdHlwZWRlZiB1 bnNpZ25lZCBpbnQgdWludDMyX3Q7CkBAIC01MSwxMCArNTUsMTAgQEAKICNkZWZpbmUgVUlOVE1B WF9NSU4gVUlOVDMyX01JTgogI2RlZmluZSBJTlRNQVhfTUFYIElOVDMyX01BWAogI2RlZmluZSBJ TlRNQVhfTUlOIElOVDMyX01JTgorI2RlZmluZSB1aW50bWF4X3QgdW5zaWduZWQgbG9uZworI2Rl ZmluZSBpbnRtYXhfdCBsb25nCiAjZW5kaWYKIAotI2RlZmluZSB1aW50bWF4X3QgdW5zaWduZWQg X19pbnQ2NAotI2RlZmluZSBpbnRtYXhfdCBfX2ludDY0CiAjZGVmaW5lIFBUUkRJRkZfTUFYIElO VFBUUl9NQVgKIAogI2VuZGlmCS8qICFfX0dOVUNfXyAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ250 L25tYWtlLmRlZnMnCi0tLSBudC9ubWFrZS5kZWZzCTIwMTEtMTEtMDUgMTE6MzQ6NTYgKzAwMDAK KysrIG50L25tYWtlLmRlZnMJMjAxMS0xMS0wOSAxNjo1MjoxOSArMDAwMApAQCAtODYsNyArODYs MTEgQEAKICEgICAgaWYgIiQoUFJPQ0VTU09SX0FSQ0hJVEVDVFVSRSkiID09ICJQUEMiDQogQVJD SAkJPSBwcGMNCiAhICAgIGVsc2UNCi0hICAgICBlcnJvciBVbmtub3duIGFyY2hpdGVjdHVyZSB0 eXBlICIkKFBST0NFU1NPUl9BUkNISVRFQ1RVUkUpIg0KKyEgICAgIGlmICIkKFBST0NFU1NPUl9B UkNISVRFQ1RVUkUpIiA9PSAiQU1ENjQiDQorQVJDSAkJPSBBTUQ2NA0KKyEgICAgIGVsc2UNCish ICAgICAgZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1cmUgdHlwZSAiJChQUk9DRVNTT1JfQVJDSElU RUNUVVJFKSINCishICAgICBlbmRpZg0KICEgICAgZW5kaWYNCiAhICAgZW5kaWYNCiAhICBlbmRp Zg0KQEAgLTE2NCw3ICsxNjgsMTEgQEAKIA0KICMgc2VlIGNvbW1lbnRzIGluIGFsbG9jYXRlX2hl YXAgaW4gdzMyaGVhcC5jIGJlZm9yZSBjaGFuZ2luZyBhbnkgb2YgdGhlDQogIyAtc3RhY2ssIC1o ZWFwLCBvciAtYmFzZSBzZXR0aW5ncy4NCishaWYgIiQoQVJDSCkiID09ICJBTUQ2NCINCitURU1B Q1NfRVhUUkFfTElOSyA9IC1zdGFjazoweDAwODAwMDAwIC1oZWFwOjB4MDAxMDAwMDAgLWJhc2U6 MHgwMTAwMDAwMCAtcGRiOiQoQkxEKVx0ZW1hY3MucGRiIC1tYWNoaW5lOng2NCAkKFNVQlNZU1RF TV9DT05TT0xFKSAtZW50cnk6X3N0YXJ0IC1tYXA6JChCTEQpXHRlbWFjcy5tYXAgJChFWFRSQV9M SU5LKQ0KKyFlbHNlDQogVEVNQUNTX0VYVFJBX0xJTksgPSAtc3RhY2s6MHgwMDgwMDAwMCAtaGVh cDoweDAwMTAwMDAwIC1iYXNlOjB4MDEwMDAwMDAgLXBkYjokKEJMRClcdGVtYWNzLnBkYiAtbWFj aGluZTokKEFSQ0gpICQoU1VCU1lTVEVNX0NPTlNPTEUpIC1lbnRyeTpfc3RhcnQgLW1hcDokKEJM RClcdGVtYWNzLm1hcCAkKEVYVFJBX0xJTkspDQorIWVuZGlmDQogDQogIWlmZGVmIE5PT1BUDQog T0JKRElSICAgICAgICAgID0gb2JqDQpAQCAtMjM0LDExICsyNDIsMjQgQEAKIEFSQ0hfTERGTEFH Uwk9ICQoU1lTX0xERkxBR1MpDQogDQogIWVsc2UNCishaWYgIiQoQVJDSCkiID09ICJBTUQ2NCIN CisjIFRoZXNlIGZsYWdzIGFyZSBhIGd1ZXNzLi4uaWYgdGhleSBkb24ndCB3b3JrLCBwbGVhc2Ug c2VuZCBtZSBtYWlsLg0KKyFpZmRlZiBOT09QVA0KKyNBUkNIX0NGTEFHUyAgICAgPSAtbm9sb2dv IC1jIC1aZWwgLVcyIC1INjMgLU9kIC1HM2QgLVpwOCAkKERFQlVHX0ZMQUcpDQorQVJDSF9DRkxB R1MgICAgID0gLW5vbG9nbyAtRF9BTUQ2NF89MSAtRFdJTjY0IC1EX1dJTjY0IC1EV0lOMzIgLURf V0lOMzIgLWMgLVpsIC1acDggLVcyIC1PZCAtR2QgJChERUJVR19GTEFHKQ0KKyFlbHNlDQorI0FS Q0hfQ0ZMQUdTICAgICA9IC1ub2xvZ28gLWMgLVplbCAtVzIgLUg2MyAtT3hzYjIgLU95LSAtRzZk RiAtWnA4ICQoREVCVUdfRkxBRykNCitBUkNIX0NGTEFHUyAgICAgPSAtbm9sb2dvIC1EX0FNRDY0 Xz0xIC1EV0lONjQgLURfV0lONjQgLURXSU4zMiAtRF9XSU4zMiAtYyAtWmwgLVpwOCAtVzIgLU9p IC1PdCAtT3ktIC1PYjIgLUdGIC1HeSAtR2QgJChERUJVR19GTEFHKQ0KKyFlbmRpZg0KK0FSQ0hf TERGTEFHUwk9ICQoU1lTX0xERkxBR1MpIC1tYWNoaW5lOng2NA0KKw0KKyFlbHNlDQogIUVSUk9S IFVua25vd24gYXJjaGl0ZWN0dXJlIHR5cGUgIiQoQVJDSCkiLg0KICFlbmRpZg0KICFlbmRpZg0K ICFlbmRpZg0KICFlbmRpZg0KKyFlbmRpZg0KIA0KIExJTktfRkxBR1MJPSAkKEFSQ0hfTERGTEFH UykgJChERUJVR19MSU5LKSAkKFVTRVJfTERGTEFHUykNCiANCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3JjL2xpc3AuaCcKLS0tIHNyYy9saXNwLmgJMjAxMS0xMS0wNyAxNzowNDowMSArMDAwMAorKysg c3JjL2xpc3AuaAkyMDExLTExLTEwIDE3OjI0OjE0ICswMDAwCkBAIC0xNjMsMTQgKzE2MywyMyBA QAogLyogRmlyc3QsIHRyeSBhbmQgZGVmaW5lIERFQ0xfQUxJR04odHlwZSx2YXIpIHdoaWNoIGRl Y2xhcmVzIGEgc3RhdGljCiAgICB2YXJpYWJsZSBWQVIgb2YgdHlwZSBUWVBFIHdpdGggdGhlIGFk ZGVkIHJlcXVpcmVtZW50IHRoYXQgaXQgYmUKICAgIFRZUEVCSVRTLWFsaWduZWQuICAqLworCisj aWZuZGVmIEdDVFlQRUJJVFMKKyNkZWZpbmUgR0NUWVBFQklUUyAzCisjZW5kaWYKKwogI2lmbmRl ZiBOT19ERUNMX0FMSUdOCiAjIGlmbmRlZiBERUNMX0FMSUdOCiAjICBpZiBIQVZFX0FUVFJJQlVU RV9BTElHTkVECiAjICAgZGVmaW5lIERFQ0xfQUxJR04odHlwZSwgdmFyKSBcCiAgICAgIHR5cGUg X19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICgxIDw8IEdDVFlQRUJJVFMpKSkgdmFyCiAjICBl bGlmIGRlZmluZWQoX01TQ19WRVIpCisjICAgZGVmaW5lIEFMSUdOX0dDVFlQRUJJVFMgOAorIyAg IGlmICgxIDw8IEdDVFlQRUJJVFMpICE9IEFMSUdOX0dDVFlQRUJJVFMKKyMgICAgZXJyb3IgQUxJ R05fR0NUWVBFQklUUyBpcyB3cm9uZyEKKyMgICBlbmRpZgogIyAgIGRlZmluZSBERUNMX0FMSUdO KHR5cGUsIHZhcikgXAotICAgICB0eXBlIF9fZGVjbHNwZWMoYWxpZ24oMSA8PCBHQ1RZUEVCSVRT KSkgdmFyCisgICAgIHR5cGUgX19kZWNsc3BlYyhhbGlnbihBTElHTl9HQ1RZUEVCSVRTKSkgdmFy CiAjICBlbHNlCiAgICAgIC8qIFdoYXQgZGlyZWN0aXZlcyBkbyBvdGhlciBjb21waWxlcnMgdXNl PyAgKi8KICMgIGVuZGlmCkBAIC0zMDAsMTAgKzMwOSw2IEBACiAgICAgTGlzcF9Gd2RfS2JvYXJk X09iaiwJLyogRndkIHRvIGEgTGlzcF9PYmplY3QgZmllbGQgb2Yga2JvYXJkcy4gICovCiAgIH07 CiAKLSNpZm5kZWYgR0NUWVBFQklUUwotI2RlZmluZSBHQ1RZUEVCSVRTIDMKLSNlbmRpZgotCiAv KiBUaGVzZSB2YWx1ZXMgYXJlIG92ZXJyaWRkZW4gYnkgdGhlIG0tIGZpbGUgb24gc29tZSBtYWNo aW5lcy4gICovCiAjaWZuZGVmIFZBTEJJVFMKICNkZWZpbmUgVkFMQklUUyAoQklUU19QRVJfRU1B Q1NfSU5UIC0gR0NUWVBFQklUUykKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvbS9hbWR4ODYtNjQu aCcKLS0tIHNyYy9tL2FtZHg4Ni02NC5oCTIwMTEtMDQtMTkgMDA6MzQ6NDIgKzAwMDAKKysrIHNy Yy9tL2FtZHg4Ni02NC5oCTIwMTEtMTEtMDggMTY6MDA6MTEgKzAwMDAKQEAgLTI3LDkgKzI3LDE3 IEBACiAvKiBfX3g4Nl82NCBkZWZpbmVkIGF1dG9tYXRpY2FsbHkuICAqLwogCiAvKiBEZWZpbmUg dGhlIHR5cGUgdG8gdXNlLiAgKi8KKyNpZmRlZiBfV0lONjQKKyNkZWZpbmUgRU1BQ1NfSU5UICAg ICAgICAgICAgICAgX19pbnQ2NAorI2RlZmluZSBwSQkJCSJpNjQiCisjZGVmaW5lIEVNQUNTX1VJ TlQgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50NjQKKyNkZWZpbmUgVklSVF9BRERSX1ZBUklF UworI2RlZmluZSBEQVRBX1NUQVJUIAlnZXRfZGF0YV9zdGFydCAoKQorI2Vsc2UKICNkZWZpbmUg RU1BQ1NfSU5UICAgICAgICAgICAgICAgbG9uZwogI2RlZmluZSBwSQkJCSJsIgogI2RlZmluZSBF TUFDU19VSU5UICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nCisjZW5kaWYKIAogLyogRGVmaW5l IFhQTlRSIHRvIGF2b2lkIG9yJ2luZyB3aXRoIERBVEFfU0VHX0JJVFMgKi8KICN1bmRlZiBEQVRB X1NFR19CSVRTCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL21ha2VmaWxlLnczMi1pbicKLS0tIHNy Yy9tYWtlZmlsZS53MzItaW4JMjAxMS0xMS0wNSAyMjo1NTowOCArMDAwMAorKysgc3JjL21ha2Vm aWxlLnczMi1pbgkyMDExLTExLTEwIDAyOjE2OjQ5ICswMDAwCkBAIC0xNzcsNyArMTc3LDcgQEAK ICQoVEVNQUNTKTogICAgICAkKFRMSUIwKSAkKFRMSUIxKSAkKFRMSUIyKSAkKFRMQVNUTElCKSAk KFRPQkopICQoVFJFUykgXAogCQkgIC4uL250LyQoQkxEKS9hZGRzZWN0aW9uLmV4ZSAkKEdOVUxJ QikKIAkkKExJTkspICQoTElOS19PVVQpJChURU1BQ1NfVE1QKSAkKEZVTExfTElOS19GTEFHUykg JChUT0JKKSAkKFRSRVMpICQoTElCUykKLQkiJChUSElTRElSKS8uLi9udC8kKEJMRCkvYWRkc2Vj dGlvbiIgIiQoVEVNQUNTX1RNUCkiICIkKFRFTUFDUykiIEVNSEVBUCAyMQorCSIkKFRISVNESVIp Ly4uL250LyQoQkxEKS9hZGRzZWN0aW9uIiAiJChURU1BQ1NfVE1QKSIgIiQoVEVNQUNTKSIgRU1I RUFQIDQyCiAKICMgVGhlc2Ugb21pdCBmaXJzdGZpbGUuJHtPfSwgYnV0IHRoZXJlJ3Mgbm8gZG9j dW1lbnRhdGlvbiBpbiB0aGVyZQogIyBhbnl3YXlzLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9z L21zLXczMi5oJwotLS0gc3JjL3MvbXMtdzMyLmgJMjAxMS0xMS0wNSAxNjozMDoxMyArMDAwMAor Kysgc3JjL3MvbXMtdzMyLmgJMjAxMS0xMS0xMCAxNzo0NjowNyArMDAwMApAQCAtMjc1LDExICsy NzUsMTMgQEAKICNkZWZpbmUgcG9wZW4gICAgIF9wb3BlbgogI2RlZmluZSBwY2xvc2UgICAgX3Bj bG9zZQogI2RlZmluZSB1bWFzawkgIF91bWFzawotI2RlZmluZSB1dGltYnVmCSAgX3V0aW1idWYK KyNkZWZpbmUgc25wcmludGYgIF9zbnByaW50ZgogI2RlZmluZSBzdHJkdXAgICAgX3N0cmR1cAor I2RlZmluZSBzdHJ0b2xsICAgX3N0cnRvaTY0CiAjZGVmaW5lIHN0cnVwciAgICBfc3RydXByCiAj ZGVmaW5lIHN0cm5pY21wICBfc3RybmljbXAKICNkZWZpbmUgc3RyaWNtcCAgIF9zdHJpY21wCisv KiAjZGVmaW5lIHR6bmFtZSAgICBfdHpuYW1lICovCiAjZGVmaW5lIHR6c2V0ICAgICBfdHpzZXQK IAogI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgKF9NU0NfVkVSIDwgMTQwMCkKQEAgLTMzNSw3 ICszMzcsNyBAQAogI2RlZmluZSBfV0lOU09DS19ICiAKIC8qIERlZmluZXMgc2l6ZV90IGFuZCBh bGxvY2EgKCkuICAqLwotI2lmIChkZWZpbmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVkKGVtYWNzKSkg fHwgZGVmaW5lZChVU0VfQ1JUX0RMTCkKKyNpZiAoZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5l ZChlbWFjcykpCiAjZGVmaW5lIG1hbGxvYyBlX21hbGxvYwogI2RlZmluZSBmcmVlICAgZV9mcmVl CiAjZGVmaW5lIHJlYWxsb2MgZV9yZWFsbG9jCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3czMi5j JwotLS0gc3JjL3czMi5jCTIwMTEtMTEtMDcgMTY6NDI6MzQgKzAwMDAKKysrIHNyYy93MzIuYwky MDExLTExLTEwIDE3OjQ2OjUwICswMDAwCkBAIC0xNjY1LDEwICsxNjY1LDEwIEBACiAKICAgICAg IGlmICghR2V0TW9kdWxlRmlsZU5hbWUgKE5VTEwsIG1vZG5hbWUsIE1BWF9QQVRIKSkKIAlhYm9y dCAoKTsKKwogICAgICAgaWYgKChwID0gc3RycmNociAobW9kbmFtZSwgJ1xcJykpID09IE5VTEwp CiAJYWJvcnQgKCk7CiAgICAgICAqcCA9IDA7Ci0KICAgICAgIGlmICgocCA9IHN0cnJjaHIgKG1v ZG5hbWUsICdcXCcpKSAmJiB4c3RyY2FzZWNtcCAocCwgIlxcYmluIikgPT0gMCkKIAl7CiAJICBj aGFyIGJ1ZltTRVRfRU5WX0JVRl9TSVpFXTsKQEAgLTE2ODUsNyArMTY4NSw4IEBACiAgICAgICAv KiBGSVhNRTogc2hvdWxkIHVzZSBzdWJzdHJpbmcgb2YgZ2V0X2VtYWNzX2NvbmZpZ3VyYXRpb24g KCkuCiAJIEJ1dCBJIGRvbid0IHRoaW5rIHRoZSBXaW5kb3dzIGJ1aWxkIHN1cHBvcnRzIGFscGhh LCBtaXBzIGV0YwogICAgICAgICAgYW55bW9yZSwgc28gaGF2ZSB0YWtlbiB0aGUgZWFzeSBvcHRp b24gZm9yIG5vdy4gICovCi0gICAgICBlbHNlIGlmIChwICYmIHhzdHJjYXNlY21wIChwLCAiXFxp Mzg2IikgPT0gMCkKKyAgICAgIGVsc2UgaWYgKHAgJiYgKHhzdHJjYXNlY21wIChwLCAiXFxpMzg2 IikgPT0gMAorICAgICAgICAgICAgICAgICAgICAgfHwgeHN0cmNhc2VjbXAgKHAsICJcXEFNRDY0 IikgPT0gMCkpCiAJewogCSAgKnAgPSAwOwogCSAgcCA9IHN0cnJjaHIgKG1vZG5hbWUsICdcXCcp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy94ZGlzcC5jJwotLS0gc3JjL3hkaXNwLmMJMjAxMS0x MS0wOCAyMDowNToyNyArMDAwMAorKysgc3JjL3hkaXNwLmMJMjAxMS0xMS0xMCAxNzoyMDowNyAr MDAwMApAQCAtMTA4Niw3ICsxMDg2LDExIEBACiAgICBhcmVhIEFSRUEgb2Ygd2luZG93IFcuICBB UkVBIDwgMCBtZWFucyByZXR1cm4gdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlCiAgICB3aG9sZSB3aW5k b3csIHRvIHRoZSBsZWZ0IG9mIHRoZSByaWdodCBmcmluZ2Ugb2YgVy4gICovCiAKKyNpZmRlZiBf TVNDX1ZFUgogaW50CisjZWxzZQoraW5saW5lIGludAorI2VuZGlmCiB3aW5kb3dfYm94X3JpZ2h0 X29mZnNldCAoc3RydWN0IHdpbmRvdyAqdywgaW50IGFyZWEpCiB7CiAgIHJldHVybiB3aW5kb3df Ym94X2xlZnRfb2Zmc2V0ICh3LCBhcmVhKSArIHdpbmRvd19ib3hfd2lkdGggKHcsIGFyZWEpOwpA QCAtMTExNiw3ICsxMTIwLDExIEBACiAgICBhcmVhIEFSRUEgb2Ygd2luZG93IFcuICBBUkVBIDwg MCBtZWFucyByZXR1cm4gdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlCiAgICB3aG9sZSB3aW5kb3csIHRv IHRoZSBsZWZ0IG9mIHRoZSByaWdodCBmcmluZ2Ugb2YgVy4gICovCiAKKyNpZmRlZiBfTVNDX1ZF UgogaW50CisjZWxzZQoraW5saW5lIGludAorI2VuZGlmCiB3aW5kb3dfYm94X3JpZ2h0IChzdHJ1 Y3Qgd2luZG93ICp3LCBpbnQgYXJlYSkKIHsKICAgcmV0dXJuIHdpbmRvd19ib3hfbGVmdCAodywg YXJlYSkgKyB3aW5kb3dfYm94X3dpZHRoICh3LCBhcmVhKTsKCg== --14dae9c097fe22329d04b166cd9c Content-Type: application/octet-stream; name="emacs-x64.manifest" Content-Disposition: attachment; filename="emacs-x64.manifest" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guu6cmlr1 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8 YXNzZW1ibHkgeG1sbnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206YXNtLnYxIiBtYW5pZmVz dFZlcnNpb249IjEuMCI+CiAgPGRlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW50QXNzZW1ibHk+CiAg ICAgIDxhc3NlbWJseUlkZW50aXR5IHR5cGU9IndpbjMyIiBuYW1lPSJNaWNyb3NvZnQuV2luZG93 cy5Db21tb24tQ29udHJvbHMiCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249IjYuMC4w LjAiIHByb2Nlc3NvckFyY2hpdGVjdHVyZT0iQU1ENjQiCiAgICAgICAgICAgICAgICAgICAgICAg IHB1YmxpY0tleVRva2VuPSI2NTk1YjY0MTQ0Y2NmMWRmIgogICAgICAgICAgICAgICAgICAgICAg ICBsYW5ndWFnZT0iKiIvPgogICAgPC9kZXBlbmRlbnRBc3NlbWJseT4KICA8L2RlcGVuZGVuY3k+ CiAgPGFzc2VtYmx5SWRlbnRpdHkgdmVyc2lvbj0iMS4wLjAuMCIgcHJvY2Vzc29yQXJjaGl0ZWN0 dXJlPSJBTUQ2NCIKCQkgICAgbmFtZT0iZW1hY3MiIHR5cGU9IndpbjMyIi8+CiAgPGRlc2NyaXB0 aW9uPkdOVSBFbWFjczwvZGVzY3JpcHRpb24+CiAgPHRydXN0SW5mbyB4bWxucz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTphc20udjMiPgogICAgPHNlY3VyaXR5PgogICAgICA8cmVxdWVzdGVk UHJpdmlsZWdlcz4KICAgICAgICA8cmVxdWVzdGVkRXhlY3V0aW9uTGV2ZWwgbGV2ZWw9ImFzSW52 b2tlciIvPgogICAgICA8L3JlcXVlc3RlZFByaXZpbGVnZXM+CiAgICA8L3NlY3VyaXR5PgogIDwv dHJ1c3RJbmZvPgo8L2Fzc2VtYmx5Pgo= --14dae9c097fe22329d04b166cd9c Content-Type: text/x-chdr; charset=US-ASCII; name="w32compat.h" Content-Disposition: attachment; filename="w32compat.h" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guu6d0sm2 DQojaWZuZGVmIF9XMzJDT01QQVRfSF8NCiNkZWZpbmUgX1czMkNPTVBBVF9IXyAxDQoNCiNpbmNs dWRlIDxzdGRsaWIuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPGZjbnRsLmg+DQoj aW5jbHVkZSA8aW8uaD4NCiNpbmNsdWRlIDxjb25pby5oPg0KI2luY2x1ZGUgPGRpcmVjdC5oPg0K I2luY2x1ZGUgPG1hbGxvYy5oPg0KI2luY2x1ZGUgPC4uL2luY2x1ZGUvcHJvY2Vzcy5oPg0KI2lu Y2x1ZGUgPHRpbWUuaD4NCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNkZWZpbmUgZGV2X3QgX2Rl dl90DQojZGVmaW5lIGZzdGF0IF9mc3RhdA0KI2RlZmluZSBjaG1vZCBfY2htb2QNCiNpbmNsdWRl IDxzeXMvc3RhdC5oPg0KI2luY2x1ZGUgPC4uL2luY2x1ZGUvc3lzL3RpbWUuaD4NCiNpbmNsdWRl IDxzeXMvdXRpbWUuaD4NCiNpbmNsdWRlIDxzeXMvbG9ja2luZy5oPg0KDQojaW5jbHVkZSA8c2ln bmFsLmg+DQp0eXBlZGVmIHVuc2lnbmVkIGludCBzaWdzZXRfdDsNCg0KdHlwZWRlZiB1bnNpZ25l ZCBpbnQgc3NpemVfdDsNCg0KI2lmbmRlZiBfV0lONjQNCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg bW9kZV90Ow0KI2VuZGlmDQoNCiNpZiAwDQpzdHJ1Y3QgdGltZXpvbmUNCiAgew0KICAgIGludAl0 el9taW51dGVzd2VzdDsJLyogbWludXRlcyB3ZXN0IG9mIEdyZWVud2ljaCAqLw0KICAgIGludAl0 el9kc3R0aW1lOwkvKiB0eXBlIG9mIGRzdCBjb3JyZWN0aW9uICovDQogIH07DQojZW5kaWYNCg0K dm9pZCBnZXR0aW1lb2ZkYXkgKHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1lem9uZSAqKTsN CnN0cnVjdCB0bSAqZ210aW1lX3IgKHRpbWVfdCBjb25zdCAqIF9fcmVzdHJpY3QsIHN0cnVjdCB0 bSAqIF9fcmVzdHJpY3QpOw0Kc3RydWN0IHRtICpsb2NhbHRpbWVfciAodGltZV90IGNvbnN0ICog X19yZXN0cmljdCwgc3RydWN0IHRtICogX19yZXN0cmljdCk7DQoNCiNpbmNsdWRlIDxzdHJpbmcu aD4NCiNpbmNsdWRlIDxtYnN0cmluZy5oPg0KDQojZGVmaW5lIGlubGluZSBfX2lubGluZQ0KDQoj aWZuZGVmIE9fUkRPTkxZDQojZGVmaW5lIE9fUkRPTkxZIF9PX1JET05MWQ0KI2VuZGlmDQojaWZu ZGVmIE9fV1JPTkxZDQojZGVmaW5lIE9fV1JPTkxZIF9PX1dST05MWQ0KI2VuZGlmDQojaWZuZGVm IE9fUkRXUg0KI2RlZmluZSBPX1JEV1IgX09fUkRXUg0KI2VuZGlmDQojaWZuZGVmIE9fQVBQRU5E DQojZGVmaW5lIE9fQVBQRU5EIF9PX0FQUEVORA0KI2VuZGlmDQojaWZuZGVmIE9fQ1JFQVQNCiNk ZWZpbmUgT19DUkVBVCBfT19DUkVBVA0KI2VuZGlmDQojaWZuZGVmIE9fVFJVTkMNCiNkZWZpbmUg T19UUlVOQyBfT19UUlVOQw0KI2VuZGlmDQojaWZuZGVmIE9fRVhDTA0KI2RlZmluZSBPX0VYQ0wg X09fRVhDTA0KI2VuZGlmDQojaWZuZGVmIE9fVEVYVA0KI2RlZmluZSBPX1RFWFQgX09fVEVYVA0K I2VuZGlmDQojaWZuZGVmIE9fQklOQVJZDQojZGVmaW5lIE9fQklOQVJZIF9PX0JJTkFSWQ0KI2Vu ZGlmDQojaWZuZGVmIE9fUkFXDQojZGVmaW5lIE9fUkFXICAgICAgICAgICBfT19CSU5BUlkNCiNl bmRpZg0KI2lmbmRlZiBPX1RFTVBPUkFSWQ0KI2RlZmluZSBPX1RFTVBPUkFSWSAgICAgX09fVEVN UE9SQVJZDQojZW5kaWYNCiNpZm5kZWYgT19OT0lOSEVSSVQNCiNkZWZpbmUgT19OT0lOSEVSSVQg ICAgIF9PX05PSU5IRVJJVA0KI2VuZGlmDQojaWZuZGVmIE9fU0VRVUVOVElBTA0KI2RlZmluZSBP X1NFUVVFTlRJQUwgICAgX09fU0VRVUVOVElBTA0KI2VuZGlmDQojaWZuZGVmIE9fUkFORE9NDQoj ZGVmaW5lIE9fUkFORE9NICAgICAgICBfT19SQU5ET00NCiNlbmRpZg0KDQojZGVmaW5lIGFsbG9j YSBfYWxsb2NhDQojZGVmaW5lIHN0cmljbXAgX3N0cmljbXANCg0KI2RlZmluZSBhY2Nlc3MgX2Fj Y2Vzcw0KI2RlZmluZSBjaG1vZCBfY2htb2QNCiNkZWZpbmUgY2hzaXplIF9jaHNpemUNCiNkZWZp bmUgY2xvc2UgX2Nsb3NlDQojZGVmaW5lIGNyZWF0IF9jcmVhdA0KI2RlZmluZSBkdXAgX2R1cA0K I2RlZmluZSBkdXAyIF9kdXAyDQojaWYgMA0KLyogVGhpcyBvbmUgY29uZmxpY3RzIHdpdGggdGV4 ay93ZWIyL2xpYi9lb2Zlb2xuLmMgKi8NCiNkZWZpbmUgZW9mIF9lb2YNCiNlbmRpZg0KI2RlZmlu ZSBmaWxlbGVuZ3RoIF9maWxlbGVuZ3RoDQojZGVmaW5lIGlzYXR0eSBfaXNhdHR5DQojZGVmaW5l IGxvY2tpbmcgX2xvY2tpbmcNCiNkZWZpbmUgbHNlZWsgX2xzZWVrDQojZGVmaW5lIG1rdGVtcCBf bWt0ZW1wDQojZGVmaW5lIG9wZW4gX29wZW4NCiNkZWZpbmUgcmVhZCBfcmVhZA0KI2RlZmluZSBz ZXRtb2RlIF9zZXRtb2RlDQojZGVmaW5lIHNvcGVuIF9zb3Blbg0KI2RlZmluZSB0ZWxsIF90ZWxs DQojZGVmaW5lIHVtYXNrIF91bWFzaw0KI2RlZmluZSB1bmxpbmsgX3VubGluaw0KI2RlZmluZSB3 cml0ZSBfd3JpdGUNCg0KI2RlZmluZSBjZ2V0cyBfY2dldHMNCiNkZWZpbmUgY3ByaW50ZiBfY3By aW50Zg0KI2RlZmluZSBjcHV0cyBfY3B1dHMNCiNkZWZpbmUgY3NjYW5mIF9jc2NhbmYNCiNkZWZp bmUgaW5wIF9pbnANCiNkZWZpbmUgaW5wdyBfaW5wdw0KI2RlZmluZSBnZXRjaCBfZ2V0Y2gNCiNk ZWZpbmUgZ2V0Y2hlIF9nZXRjaGUNCiNkZWZpbmUga2JoaXQgX2tiaGl0DQojZGVmaW5lIG91dHAg X291dHANCiNkZWZpbmUgb3V0cHcgX291dHB3DQojZGVmaW5lIHB1dGNoIF9wdXRjaA0KI2RlZmlu ZSB1bmdldGNoIF91bmdldGNoDQoNCiNkZWZpbmUgY2hkaXIgX2NoZGlyDQojZGVmaW5lIGdldGN3 ZCBfZ2V0Y3dkDQojZGVmaW5lIG1rZGlyIF9ta2Rpcg0KI2RlZmluZSBybWRpciBfcm1kaXINCg0K I2RlZmluZSBDTEtfVENLICBDTE9DS1NfUEVSX1NFQw0KDQojaWYgX01TQ19WRVIgPD0gMTMxMA0K I2RlZmluZSB0aW1lem9uZSBfdGltZXpvbmUNCiNlbmRpZg0KI2RlZmluZSBkYXlsaWdodCBfZGF5 bGlnaHQNCiNkZWZpbmUgdHpuYW1lIF90em5hbWUNCiNkZWZpbmUgdHpzZXQgX3R6c2V0DQoNCiNk ZWZpbmUgUF9XQUlUICAgICAgICAgIF9QX1dBSVQNCiNkZWZpbmUgUF9OT1dBSVQgICAgICAgIF9Q X05PV0FJVA0KI2RlZmluZSBQX09WRVJMQVkgICAgICAgX1BfT1ZFUkxBWQ0KI2RlZmluZSBPTERf UF9PVkVSTEFZICAgX09MRF9QX09WRVJMQVkNCiNkZWZpbmUgUF9OT1dBSVRPICAgICAgIF9QX05P V0FJVE8NCiNkZWZpbmUgUF9ERVRBQ0ggICAgICAgIF9QX0RFVEFDSA0KI2RlZmluZSBXQUlUX0NI SUxEICAgICAgX1dBSVRfQ0hJTEQNCiNkZWZpbmUgV0FJVF9HUkFORENISUxEIF9XQUlUX0dSQU5E Q0hJTEQNCg0KI2RlZmluZSBjd2FpdCBfY3dhaXQNCiNkZWZpbmUgZXhlY2wgX2V4ZWNsDQojZGVm aW5lIGV4ZWNsZSBfZXhlY2xlDQojZGVmaW5lIGV4ZWNscCBfZXhlY2xwDQojZGVmaW5lIGV4ZWNs cGUgX2V4ZWNscGUNCiNkZWZpbmUgZXhlY3YgX2V4ZWN2DQojZGVmaW5lIGV4ZWN2ZSBfZXhlY3Zl DQojZGVmaW5lIGV4ZWN2cCBfZXhlY3ZwDQojZGVmaW5lIGV4ZWN2cGUgX2V4ZWN2cGUNCiNkZWZp bmUgc3Bhd25sIF9zcGF3bmwNCiNkZWZpbmUgc3Bhd25sZSBfc3Bhd25sZQ0KI2RlZmluZSBzcGF3 bmxwIF9zcGF3bmxwDQojZGVmaW5lIHNwYXdubHBlIF9zcGF3bmxwZQ0KI2RlZmluZSBzcGF3bnYg X3NwYXdudg0KI2RlZmluZSBzcGF3bnZlIF9zcGF3bnZlDQojZGVmaW5lIHNwYXdudnAgX3NwYXdu dnANCiNkZWZpbmUgc3Bhd252cGUgX3NwYXdudnBlDQoNCiNkZWZpbmUgZ2V0cGlkIF9nZXRwaWQN Cg0KI2RlZmluZSBQX3RtcGRpciAgX1BfdG1wZGlyDQojZGVmaW5lIFNZU19PUEVOICBfU1lTX09Q RU4NCg0KI2RlZmluZSBmY2xvc2VhbGwgX2ZjbG9zZWFsbA0KI2RlZmluZSBmZG9wZW4gX2Zkb3Bl bg0KI2RlZmluZSBmZ2V0Y2hhciBfZmdldGNoYXINCiNkZWZpbmUgZmlsZW5vIF9maWxlbm8NCiNk ZWZpbmUgZmx1c2hhbGwgX2ZsdXNoYWxsDQojZGVmaW5lIGZwdXRjaGFyIF9mcHV0Y2hhcg0KI2Rl ZmluZSBnZXR3IF9nZXR3DQojZGVmaW5lIHB1dHcgX3B1dHcNCiNkZWZpbmUgcm10bXAgX3JtdG1w DQojZGVmaW5lIHRlbXBuYW0gX3RlbXBuYW0NCiNkZWZpbmUgdW5saW5rIF91bmxpbmsNCg0KI2Rl ZmluZSBzeXNfZXJybGlzdCBfc3lzX2Vycmxpc3QNCiNkZWZpbmUgc3lzX25lcnIgICAgX3N5c19u ZXJyDQojZGVmaW5lIGVudmlyb24gICAgIF9lbnZpcm9uDQoNCiNkZWZpbmUgb25leGl0X3QgX29u ZXhpdF90DQoNCiNkZWZpbmUgZWN2dCBfZWN2dA0KI2RlZmluZSBmY3Z0IF9mY3Z0DQojZGVmaW5l IGdjdnQgX2djdnQNCiNkZWZpbmUgaXRvYSBfaXRvYQ0KI2RlZmluZSBsdG9hIF9sdG9hDQojZGVm aW5lIG9uZXhpdCBfb25leGl0DQojZGVmaW5lIHB1dGVudiBfcHV0ZW52DQojZGVmaW5lIHN3YWIg X3N3YWINCiNkZWZpbmUgdWx0b2EgX3VsdG9hDQoNCiNpZm5kZWYgU19JRk1UDQojZGVmaW5lIFNf SUZNVCBfU19JRk1UDQojZW5kaWYNCiNpZm5kZWYgU19JRkRJUg0KI2RlZmluZSBTX0lGRElSIF9T X0lGRElSDQojZW5kaWYNCiNpZm5kZWYgU19JRkNIUg0KI2RlZmluZSBTX0lGQ0hSIF9TX0lGQ0hS DQojZW5kaWYNCiNpZm5kZWYgU19JRklGTw0KI2RlZmluZSBTX0lGSUZPIF9TX0lGSUZPDQojZW5k aWYNCiNpZm5kZWYgU19JRlJFRw0KI2RlZmluZSBTX0lGUkVHIF9TX0lGUkVHDQojZW5kaWYNCiNp Zm5kZWYgU19JUkVBRA0KI2RlZmluZSBTX0lSRUFEIF9TX0lSRUFEDQojZW5kaWYNCiNpZm5kZWYg U19JV1JJVEUNCiNkZWZpbmUgU19JV1JJVEUgX1NfSVdSSVRFDQojZW5kaWYNCiNpZm5kZWYgU19J RVhFQw0KI2RlZmluZSBTX0lFWEVDICBfU19JRVhFQw0KI2VuZGlmDQojaWZuZGVmIFNfSVhVU1IN CiNkZWZpbmUgU19JWFVTUiBfU19JRVhFQw0KI2VuZGlmDQojaWZuZGVmIFNfSVhHUlANCiNkZWZp bmUgU19JWEdSUCBfU19JRVhFQw0KI2VuZGlmDQojaWZuZGVmIFNfSVhPVEgNCiNkZWZpbmUgU19J WE9USCBfU19JRVhFQw0KI2VuZGlmDQojaWZuZGVmIFNfSVJVU1INCiNkZWZpbmUgU19JUlVTUiBf U19JUkVBRA0KI2VuZGlmDQojaWZuZGVmIFNfSVJHUlANCiNkZWZpbmUgU19JUkdSUCBfU19JUkVB RA0KI2VuZGlmDQojaWZuZGVmIFNfSVJPVEgNCiNkZWZpbmUgU19JUk9USCBfU19JUkVBRA0KI2Vu ZGlmDQojaWZuZGVmIFNfSVdVU1INCiNkZWZpbmUgU19JV1VTUiBfU19JV1JJVEUNCiNlbmRpZg0K I2lmbmRlZiBTX0lXR1JQDQojZGVmaW5lIFNfSVdHUlAgX1NfSVdSSVRFDQojZW5kaWYNCiNpZm5k ZWYgU19JV09USA0KI2RlZmluZSBTX0lXT1RIIF9TX0lXUklURQ0KI2VuZGlmDQoNCiNpZiAwDQoj ZGVmaW5lIHN0YXQgX3N0YXQ2NGkzMg0KI2VuZGlmDQoNCnR5cGVkZWYgbG9uZyBvZmZfdDsNCg0K LyogZnJvbSBzdHJpbmcuaCAqLw0KI2RlZmluZSBtZW1jY3B5IF9tZW1jY3B5DQojZGVmaW5lIG1l bWljbXAgX21lbWljbXANCiNkZWZpbmUgc3RyY21waSBfc3RyY21waQ0KI2RlZmluZSBzdHJpY21w IF9zdHJpY21wDQojZGVmaW5lIHN0cmR1cCBfc3RyZHVwDQojZGVmaW5lIHN0cmx3ciBfc3RybHdy DQojZGVmaW5lIHN0cm5pY21wIF9zdHJuaWNtcA0KI2RlZmluZSBzdHJuc2V0IF9zdHJuc2V0DQoj ZGVmaW5lIHN0cnJldiBfc3RycmV2DQojZGVmaW5lIHN0cnNldCBfc3Ryc2V0DQojZGVmaW5lIHN0 cnVwciBfc3RydXByDQojZGVmaW5lIHdjc2R1cCBfd2NzZHVwDQoNCiNkZWZpbmUgaXNhc2NpaSBf X2lzYXNjaWkNCiNkZWZpbmUgdG9hc2NpaSBfX3RvYXNjaWkNCiNkZWZpbmUgaXNjc3ltZiBfX2lz Y3N5bWYNCiNkZWZpbmUgaXNjc3ltICBfX2lzY3N5bQ0KDQojZGVmaW5lIHRpbWViIF9fdGltZWIz Mg0KDQojZGVmaW5lIGZ0aW1lIF9mdGltZQ0KDQojZGVmaW5lIHV0aW1idWYgX3V0aW1idWYNCiNk ZWZpbmUgdXRpbWUgX3V0aW1lDQoNCiNkZWZpbmUgbG9ja2luZyBfbG9ja2luZw0KI2RlZmluZSBM S19MT0NLIF9MS19MT0NLDQojZGVmaW5lIExLX05CTENLIF9MS19OQkxDSw0KI2RlZmluZSBMS19O QlJMQ0sgX0xLX05CUkxDSw0KI2RlZmluZSBMS19STENLIF9MS19STENLDQojZGVmaW5lIExLX1VO TENLIF9MS19VTkxDSw0KDQojZW5kaWYNCg== --14dae9c097fe22329d04b166cd9c--