From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#17487: Assume C99 or later in trunk Date: Tue, 13 May 2014 18:11:46 -0700 Organization: UCLA Computer Science Department Message-ID: <5372C2D2.40907@cs.ucla.edu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030000010200020104010404" X-Trace: ger.gmane.org 1400030002 2860 80.91.229.3 (14 May 2014 01:13:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 14 May 2014 01:13:22 +0000 (UTC) To: 17487@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed May 14 03:13:17 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WkNky-0005be-HQ for geb-bug-gnu-emacs@m.gmane.org; Wed, 14 May 2014 03:13:16 +0200 Original-Received: from localhost ([::1]:48770 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkNky-0007yJ-1W for geb-bug-gnu-emacs@m.gmane.org; Tue, 13 May 2014 21:13:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34315) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkNkq-0007wk-6q for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:13:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkNkl-0007zn-Mj for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:13:08 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45414) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkNkl-0007zj-Iv for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:13:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WkNkl-0002f8-41 for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:13:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 14 May 2014 01:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 17487 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: Emacs bug reports Original-Received: via spool by submit@debbugs.gnu.org id=B.140002995110175 (code B ref -1); Wed, 14 May 2014 01:13:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 14 May 2014 01:12:31 +0000 Original-Received: from localhost ([127.0.0.1]:34531 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkNkC-0002e1-V7 for submit@debbugs.gnu.org; Tue, 13 May 2014 21:12:30 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:60663) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkNk9-0002db-7z for submit@debbugs.gnu.org; Tue, 13 May 2014 21:12:27 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkNjz-0007st-HV for submit@debbugs.gnu.org; Tue, 13 May 2014 21:12:19 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:60337) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkNjz-0007sp-FK for submit@debbugs.gnu.org; Tue, 13 May 2014 21:12:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34082) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkNjv-0007Pk-3A for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:12:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkNjq-0007qc-NS for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:12:11 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:52856) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkNjq-0007o9-8L for bug-gnu-emacs@gnu.org; Tue, 13 May 2014 21:12:06 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 41A38A60009 for ; Tue, 13 May 2014 18:11:57 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hJyUPuGmKQFe for ; Tue, 13 May 2014 18:11:51 -0700 (PDT) Original-Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 0EAFB39E801A for ; Tue, 13 May 2014 18:11:51 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x 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:89050 Archived-At: This is a multi-part message in MIME format. --------------030000010200020104010404 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Tags: patch For some time I have ported Emacs to C89 whenever developers inadvertently change the mainline C code to use features like declarations-after-statements that C89 prohibits. It's time for me to stop doing this job, as it's no longer useful. As far as I know, no current Emacs target lacks a compiler that supports the relevant features. GCC has supported the features for many years, even decades, and key GNU packages such as Coreutils have assumed them for quite some time. To help move this along and to simplify maintenance a bit, I would like to install the attached patches into the trunk. We don't need wholesale changes to rewrite Emacs's C code to use C99 features, but on the other hand we no longer need to keep porting to C89 and these minimal changes will help remind us of that. The first attached patch is the main one. The second patch is automatically generated by 'admin/merge-gnulib'. --------------030000010200020104010404 Content-Type: text/plain; charset=UTF-8; name="c99.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="c99.diff" PT09IG1vZGlmaWVkIGZpbGUgJ0NoYW5nZUxvZycKLS0tIENoYW5nZUxvZwkyMDE0LTA1LTEz IDE0OjE4OjU0ICswMDAwCisrKyBDaGFuZ2VMb2cJMjAxNC0wNS0xNCAwMDo0MzozOCArMDAw MApAQCAtMSwzICsxLDEyIEBACisyMDE0LTA1LTE0ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBj cy51Y2xhLmVkdT4KKworCUFzc3VtZSBDOTkgb3IgbGF0ZXIuCisJKiBsaWIvc3RkYXJnLmlu LmgsIGxpYi9zdGRib29sLmluLmgsIG00L3N0ZGFyZy5tNCwgbTQvc3RkYm9vbC5tNDoKKwlS ZW1vdmUuCisJKiBjb25maWd1cmUuYWMgKF9BQ19QUk9HX0NDX0M4OSk6IERlZmluZSBhIGR1 bW15LCB0byBrZWVwICdjb25maWd1cmUnCisJc21hbGxlci4KKwkqIGxpYi9nbnVsaWIubWss IG00L2dudWxpYi1jb21wLm00OiBSZWdlbmVyYXRlLgorCiAyMDE0LTA1LTEzICBEbWl0cnkg QW50aXBvdiAgPGRtYW50aXBvdkB5YW5kZXgucnU+CiAKIAkqIGNvbmZpZ3VyZS5hYyAoSEFW RV9YRklYRVMpOiBEZWZpbmUgaWYgYXZhaWxhYmxlLgoKPT09IG1vZGlmaWVkIGZpbGUgJ2Fk bWluL0NoYW5nZUxvZycKLS0tIGFkbWluL0NoYW5nZUxvZwkyMDE0LTA1LTEzIDIzOjE1OjAx ICswMDAwCisrKyBhZG1pbi9DaGFuZ2VMb2cJMjAxNC0wNS0xNCAwMDo0MzozOCArMDAwMApA QCAtMSwzICsxLDkgQEAKKzIwMTQtMDUtMTQgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVj bGEuZWR1PgorCisJQXNzdW1lIEM5OSBvciBsYXRlci4KKwkqIG1lcmdlLWdudWxpYiAoR05V TElCX01PRFVMRVMpOiBSZW1vdmUgc3RkYXJnLCBzdGRib29sLgorCShHTlVMSUJfVE9PTF9G TEFHUyk6IEF2b2lkIHN0ZGFyZywgc3RkYm9vbC4KKwogMjAxNC0wNS0xMyAgUGF1bCBFZ2dl cnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+CiAKIAkqIG1lcmdlLWdudWxpYjogRGVmZXIgdG8g YXV0b2dlbi5zaCBmb3IgQUNMT0NBTF9QQVRIIGNvbXB1dGF0aW9uLgoKPT09IG1vZGlmaWVk IGZpbGUgJ2FkbWluL21lcmdlLWdudWxpYicKLS0tIGFkbWluL21lcmdlLWdudWxpYgkyMDE0 LTA1LTEzIDIzOjE1OjAxICswMDAwCisrKyBhZG1pbi9tZXJnZS1nbnVsaWIJMjAxNC0wNS0x NCAwMDo0MzozOCArMDAwMApAQCAtMzUsNyArMzUsNyBAQAogICBpbnRwcm9wcyBsYXJnZWZp bGUgbHN0YXQKICAgbWFueXdhcm5pbmdzIG1lbXJjaHIgbWtvc3RlbXAgbWt0aW1lCiAgIHBp cGUyIHBzZWxlY3QgcHRocmVhZF9zaWdtYXNrIHB1dGVudiBxYWNsIHJlYWRsaW5rIHJlYWRs aW5rYXQKLSAgc2lnMnN0ciBzb2NrbGVuIHN0YXQtdGltZSBzdGRhbGlnbiBzdGRhcmcgc3Rk Ym9vbCBzdGRpbworICBzaWcyc3RyIHNvY2tsZW4gc3RhdC10aW1lIHN0ZGFsaWduIHN0ZGlv CiAgIHN0cmZ0aW1lIHN0cnRvaW1heCBzdHJ0b3VtYXggc3ltbGluayBzeXNfc3RhdAogICBz eXNfdGltZSB0aW1lIHRpbWVyLXRpbWUgdGltZXNwZWMtYWRkIHRpbWVzcGVjLXN1YgogICB1 bnNldGVudiB1cGRhdGUtY29weXJpZ2h0IHV0aW1lbnMKQEAgLTQ5LDYgKzQ5LDcgQEAKICAg LS1hdm9pZD1vcGVuIC0tYXZvaWQ9b3BlbmF0LWRpZSAtLWF2b2lkPW9wZW5kaXIKICAgLS1h dm9pZD1yYWlzZQogICAtLWF2b2lkPXNhdmUtY3dkIC0tYXZvaWQ9c2VsZWN0IC0tYXZvaWQ9 c2lncHJvY21hc2sKKyAgLS1hdm9pZD1zdGRhcmcgLS1hdm9pZD1zdGRib29sCiAgIC0tYXZv aWQ9dGhyZWFkbGliCiAgIC0tY29uZGl0aW9uYWwtZGVwZW5kZW5jaWVzIC0taW1wb3J0IC0t bm8tY2hhbmdlbG9nIC0tbm8tdmMtZmlsZXMKICAgLS1tYWtlZmlsZS1uYW1lPWdudWxpYi5t awoKPT09IG1vZGlmaWVkIGZpbGUgJ2NvbmZpZ3VyZS5hYycKLS0tIGNvbmZpZ3VyZS5hYwky MDE0LTA1LTEzIDE0OjE4OjU0ICswMDAwCisrKyBjb25maWd1cmUuYWMJMjAxNC0wNS0xNCAw MDo0MzozOCArMDAwMApAQCAtNjcwLDYgKzY3MCw5IEBACiAKICMjIyMgQ2hvb3NlIGEgY29t cGlsZXIuCiAKK2RubCBEb24ndCBib3RoZXIgdG8gdGVzdCBmb3IgQzg5LCBhcyBFbWFjcyBu ZWVkcyBDOTkgb3IgbGF0ZXIuCitBQ19ERUZVTihbX0FDX1BST0dfQ0NfQzg5XSwgWyQyXSkK KwogZG5sIFNldHMgR0NDPXllcyBpZiB1c2luZyBnY2MuCiBBQ19QUk9HX0NDKFtnY2MgY2Mg Y2wgY2xhbmcgIiRYQ1JVTiBnY2MiICIkWENSVU4gY2xhbmciXSkKIGlmIHRlc3QgLW4gIiRY Q1JVTiI7IHRoZW4KQEAgLTEzMDMsNyArMTMwNiw3IEBACiAgIENQUEZMQUdTPSIkQ19TV0lU Q0hfU1lTVEVNICRDX1NXSVRDSF9NQUNISU5FICRDUFBGTEFHUyIKIGZpCiAKLSMgU3VwcHJl c3Mgb2Jzb2xlc2NlbnQgQXV0b2NvbmYgdGVzdCBmb3Igc2l6ZV90OyBFbWFjcyBhc3N1bWVz IEM4OSBvciBiZXR0ZXIuCisjIFN1cHByZXNzIG9ic29sZXNjZW50IEF1dG9jb25mIHRlc3Qg Zm9yIHNpemVfdDsgRW1hY3MgYXNzdW1lcyBDOTkgb3IgYmV0dGVyLgogQUNfREVGVU4oW0FD X1RZUEVfU0laRV9UXSkKICMgTGlrZXdpc2UgZm9yIG9ic29sZXNjZW50IHRlc3QgZm9yIHVp ZF90LCBnaWRfdDsgRW1hY3MgYXNzdW1lcyB0aGVtLgogQUNfREVGVU4oW0FDX1RZUEVfVUlE X1RdKQoKPT09IG1vZGlmaWVkIGZpbGUgJ2RvYy9saXNwcmVmL0NoYW5nZUxvZycKLS0tIGRv Yy9saXNwcmVmL0NoYW5nZUxvZwkyMDE0LTA1LTA4IDAzOjQxOjIxICswMDAwCisrKyBkb2Mv bGlzcHJlZi9DaGFuZ2VMb2cJMjAxNC0wNS0xNCAwMDo0MzozOCArMDAwMApAQCAtMSwzICsx LDggQEAKKzIwMTQtMDUtMTQgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1Pgor CisJQXNzdW1lIEM5OSBvciBsYXRlci4KKwkqIGludGVybmFscy50ZXhpIChDIERpYWxlY3Qp OiBEb2N1bWVudCB0aGlzLgorCiAyMDE0LTA1LTA4ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBj cy51Y2xhLmVkdT4KIAogCSogaW50ZXJuYWxzLnRleGkgKEMgRGlhbGVjdCk6IE5ldyBzZWN0 aW9uLgoKPT09IG1vZGlmaWVkIGZpbGUgJ2RvYy9saXNwcmVmL2ludGVybmFscy50ZXhpJwot LS0gZG9jL2xpc3ByZWYvaW50ZXJuYWxzLnRleGkJMjAxNC0wNS0wOCAwMzo0MToyMSArMDAw MAorKysgZG9jL2xpc3ByZWYvaW50ZXJuYWxzLnRleGkJMjAxNC0wNS0xNCAwMDo0MzozOCAr MDAwMApAQCAtNTgwLDE1ICs1ODAsMTQgQEAKIEBzZWN0aW9uIEMgRGlhbGVjdAogQGNpbmRl eCBDIHByb2dyYW1taW5nIGxhbmd1YWdlCiAKLVRoZSBDIHBhcnQgb2YgRW1hY3MgaXMgcG9y dGFibGUgdG8gQzg5OiBDOTktc3BlY2lmaWMgZmVhdHVyZXMgc3VjaCBhcwotQHNhbXB7PHN0 ZGJvb2wuaD59IGFuZCBAc2FtcHtpbmxpbmV9IGFyZSBub3QgdXNlZCB3aXRob3V0IGEgY2hl Y2ssCitUaGUgQyBwYXJ0IG9mIEVtYWNzIGlzIHBvcnRhYmxlIHRvIEM5OSBvciBsYXRlcjog QzExLXNwZWNpZmljIGZlYXR1cmVzIHN1Y2gKK2FzIEBzYW1wezxzdGRhbGlnbi5oPn0gYW5k IEBzYW1we19Ob3JldHVybn0gYXJlIG5vdCB1c2VkIHdpdGhvdXQgYSBjaGVjaywKIHR5cGlj YWxseSBhdCBjb25maWd1cmF0aW9uIHRpbWUsIGFuZCB0aGUgRW1hY3MgYnVpbGQgcHJvY2Vk dXJlCi1wcm92aWRlcyBhIHN1YnN0aXR1dGUgaW1wbGVtZW50YXRpb24gaWYgbmVjZXNzYXJ5 LiAgU29tZSBDOTkgZmVhdHVyZXMsCi1zdWNoIGFzIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0 ZW1lbnRzLCBhcmUgdG9vIGRpZmZpY3VsdCB0byBwcm92aWRlCi1zdWJzdGl0dXRlcyBmb3Is IHNvIHRoZXkgYXJlIGF2b2lkZWQgZW50aXJlbHkuCitwcm92aWRlcyBhIHN1YnN0aXR1dGUg aW1wbGVtZW50YXRpb24gaWYgbmVjZXNzYXJ5LiAgU29tZSBDMTEgZmVhdHVyZXMsCitzdWNo IGFzIGFub255bW91cyBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMsIGFyZSB0b28gZGlmZmljdWx0 IHRvIGVtdWxhdGUsCitzbyB0aGV5IGFyZSBhdm9pZGVkIGVudGlyZWx5LgogCi1BdCBzb21l IHBvaW50IGluIHRoZSBub3QtdG9vLWRpc3RhbnQgZnV0dXJlIHRoZSBiYXNlIEMgZGlhbGVj dCB3aWxsCi1jaGFuZ2UgZnJvbSBDODkgdG8gQzk5LCBhbmQgZXZlbnR1YWxseSBpdCB3aWxs IG5vIGRvdWJ0IGNoYW5nZSB0byBDMTEuCitBdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUg dGhlIGJhc2UgQyBkaWFsZWN0IHdpbGwgbm8gZG91YnQgY2hhbmdlIHRvIEMxMS4KIAogQG5v ZGUgV3JpdGluZyBFbWFjcyBQcmltaXRpdmVzCiBAc2VjdGlvbiBXcml0aW5nIEVtYWNzIFBy aW1pdGl2ZXMKCj09PSBtb2RpZmllZCBmaWxlICdldGMvQ2hhbmdlTG9nJwotLS0gZXRjL0No YW5nZUxvZwkyMDE0LTA1LTEzIDExOjEyOjA1ICswMDAwCisrKyBldGMvQ2hhbmdlTG9nCTIw MTQtMDUtMTQgMDE6MDY6NDIgKzAwMDAKQEAgLTEsMyArMSw3IEBACisyMDE0LTA1LTE0ICBQ YXVsIEVnZ2VydCAgPGVnZ2VydEBjcy51Y2xhLmVkdT4KKworCSogTkVXUzogQXNzdW1lIEM5 OSBvciBsYXRlci4KKwogMjAxNC0wNS0xMyAgRG1pdHJ5IEFudGlwb3YgIDxkbWFudGlwb3ZA eWFuZGV4LnJ1PgogCiAJKiBQUk9CTEVNUzogTWVudGlvbiBwb3RlbnRpYWwgcHJvYmxlbXMg d2l0aAoKPT09IG1vZGlmaWVkIGZpbGUgJ2V0Yy9ORVdTJwotLS0gZXRjL05FV1MJMjAxNC0w NS0wNCAyMzo0OTozMyArMDAwMAorKysgZXRjL05FV1MJMjAxNC0wNS0xNCAwMTowNjo0MiAr MDAwMApAQCAtMjUsNiArMjUsOCBAQAogKiBJbnN0YWxsYXRpb24gQ2hhbmdlcyBpbiBFbWFj cyAyNC41CiAKICsrKworKiogQnVpbGRpbmcgRW1hY3Mgbm93IHJlcXVpcmVzIEM5OSBvciBs YXRlci4KKwogKiogQnVpbGRpbmcgRW1hY3Mgbm93IHJlcXVpcmVzIEdOVSBtYWtlLgogCiAq KiBCeSBkZWZhdWx0LCBFbWFjcyBubyBsb25nZXIgd29ya3Mgb24gSVJJWC4gIFdlIGV4cGVj dCB0aGF0IEVtYWNzCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL0NoYW5nZUxvZycKLS0tIHNy Yy9DaGFuZ2VMb2cJMjAxNC0wNS0xMyAyMjo1OTozNiArMDAwMAorKysgc3JjL0NoYW5nZUxv ZwkyMDE0LTA1LTE0IDAwOjQzOjM4ICswMDAwCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDUt MTQgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJQXNzdW1lIEM5OSBv ciBsYXRlci4KKwkqIGJ5dGVjb2RlLmMgKEJfX2R1bW15X18pOiBSZW1vdmUuCisJKiBjb25m X3Bvc3QuaCAoYm9vbF9iZikgWyFOU19JTVBMX0dOVVNURVBdOiBVc2UgYm9vbC4KKwkoRkxF WElCTEVfQVJSQVlfTUVNQkVSKTogTm93IGFsd2F5cyBlbXB0eS4KKwkqIGRidXNiaW5kLmMg KFhEX0RFQlVHX01FU1NBR0UpIFshREJVU19ERUJVR106CisJKiByZWdleC5jIChERUJVR19Q UklOVCk6IEFzc3VtZSB2YXJhcmdzIG1hY3Jvcy4KKwkqIGxpc3AuaCAoREVGVU5fRlVOQ1RJ T05fSU5JVCk6IFJlbW92ZS4gIEFsbCB1c2VzIG5vdyBhc3N1bWUgQzk5LgorCiAyMDE0LTA1 LTEzICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBjcy51Y2xhLmVkdT4KIAogCSoga2V5Ym9hcmQu YyAoUWRlYWN0aXZhdGVfbWFyayk6IE5vdyBzdGF0aWMuCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3JjL2J5dGVjb2RlLmMnCi0tLSBzcmMvYnl0ZWNvZGUuYwkyMDE0LTA0LTEzIDAyOjUxOjEx ICswMDAwCisrKyBzcmMvYnl0ZWNvZGUuYwkyMDE0LTA1LTE0IDAwOjQzOjM4ICswMDAwCkBA IC0yOTIsOCArMjkyLDYgQEAKICAgICBCc2Nhbl9idWZmZXIgPSAwMTUzLCAvKiBObyBsb25n ZXIgZ2VuZXJhdGVkIGFzIG9mIHYxOC4gICovCiAgICAgQnNldF9tYXJrID0gMDE2MywgLyog dGhpcyBsb3NlciBpcyBubyBsb25nZXIgZ2VuZXJhdGVkIGFzIG9mIHYxOCAqLwogI2VuZGlm Ci0KLSAgICBCX19kdW1teV9fID0gMCAgLyogUGFjaWZ5IEM4OS4gICovCiB9OwogCiAvKiBX aGV0aGVyIHRvIG1haW50YWluIGEgYHRvcCcgYW5kIGBib3R0b20nIGZpZWxkIGluIHRoZSBz dGFjayBmcmFtZS4gICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2NvbmZfcG9zdC5oJwot LS0gc3JjL2NvbmZfcG9zdC5oCTIwMTQtMDQtMjMgMTg6MjM6MjggKzAwMDAKKysrIHNyYy9j b25mX3Bvc3QuaAkyMDE0LTA1LTE0IDAwOjQzOjM4ICswMDAwCkBAIC0zNCw5ICszNCwxMCBA QAogCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogCi0vKiBUaGUgcHJlLUM5OSA8c3RkYm9vbC5o PiBlbXVsYXRpb24gZG9lc24ndCB3b3JrIGZvciBib29sIGJpdGZpZWxkcy4KLSAgIE5vciBk b2VzIGNvbXBpbGluZyBPYmplY3RpdmUtQyB3aXRoIHN0YW5kYXJkIEdDQy4gICovCi0jaWYg X19TVERDX1ZFUlNJT05fXyA8IDE5OTkwMSB8fCBOU19JTVBMX0dOVVNURVAKKy8qIFRoZSB0 eXBlIG9mIGJvb2wgYml0ZmllbGRzLiAgTmVlZGVkIHRvIGNvbXBpbGUgT2JqZWN0aXZlLUMg d2l0aAorICAgc3RhbmRhcmQgR0NDLiAgSXQgd2FzIGFsc28gbmVlZGVkIHRvIHBvcnQgdG8g cHJlLUM5OSBjb21waWxlcnMsCisgICBhbHRob3VnaCB3ZSBkb24ndCBjYXJlIGFib3V0IHRo YXQgYW55IG1vcmUuICAqLworI2lmIE5TX0lNUExfR05VU1RFUAogdHlwZWRlZiB1bnNpZ25l ZCBpbnQgYm9vbF9iZjsKICNlbHNlCiB0eXBlZGVmIGJvb2wgYm9vbF9iZjsKQEAgLTI5Mywx NCArMjk0LDExIEBACiAKIC8qIFRvIHVzZSB0aGUgc3RydWN0IGhhY2sgd2l0aCBOIGVsZW1l bnRzLCBkZWNsYXJlIHRoZSBzdHJ1Y3QgbGlrZSB0aGlzOgogICAgICBzdHJ1Y3QgcyB7IC4u LjsgdCBuYW1lW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07IH07Ci0gICBhbmQgYWxsb2NhdGUg KG9mZnNldG9mIChzdHJ1Y3QgcywgbmFtZSkgKyBOICogc2l6ZW9mICh0KSkgYnl0ZXMuICAq LwotI2lmIDE5OTkwMSA8PSBfX1NURENfVkVSU0lPTl9fCi0jIGRlZmluZSBGTEVYSUJMRV9B UlJBWV9NRU1CRVIKLSNlbGlmIF9fR05VQ19fICYmICFkZWZpbmVkIF9fU1RSSUNUX0FOU0lf XwotIyBkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIDAKLSNlbHNlCi0jIGRlZmluZSBG TEVYSUJMRV9BUlJBWV9NRU1CRVIgMQotI2VuZGlmCisgICBhbmQgYWxsb2NhdGUgKG9mZnNl dG9mIChzdHJ1Y3QgcywgbmFtZSkgKyBOICogc2l6ZW9mICh0KSkgYnl0ZXMuCisKKyAgIFRo aXMgbWFjcm8gdXNlZCB0byBleHBhbmQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBvbiBwcmUt Qzk5IGNvbXBpbGVycy4KKyAgIEZJWE1FOiBSZW1vdmUgaXQsIGFuZCByZW1vdmUgYWxsIHVz ZXMuICAqLworI2RlZmluZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIKIAogLyogVXNlIHRoaXMg dG8gc3VwcHJlc3MgZ2NjJ3MgYC4uLm1heSBiZSB1c2VkIGJlZm9yZSBpbml0aWFsaXplZCcg d2FybmluZ3MuICovCiAjaWZkZWYgbGludAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9kYnVz YmluZC5jJwotLS0gc3JjL2RidXNiaW5kLmMJMjAxNC0wMi0yNyAxNTozNjoxNCArMDAwMAor Kysgc3JjL2RidXNiaW5kLmMJMjAxNC0wNS0xNCAwMDo0MzozOCArMDAwMApAQCAtMTQyLDEw ICsxNDIsNyBAQAogICB9IHdoaWxlICgwKQogCiAjZWxzZSAvKiAhREJVU19ERUJVRyAqLwot IyBpZiBfX1NURENfVkVSU0lPTl9fIDwgMTk5OTAxCi0jICBkZWZpbmUgWERfREVCVUdfTUVT U0FHRSAodm9pZCkgLyogUHJlLUM5OSBjb21waWxlcnMgY2Fubm90IGRlYnVnLiAgKi8KLSMg ZWxzZQotIyAgZGVmaW5lIFhEX0RFQlVHX01FU1NBR0UoLi4uKQkJCQkJCVwKKyMgZGVmaW5l IFhEX0RFQlVHX01FU1NBR0UoLi4uKQkJCQkJCVwKICAgZG8gewkJCQkJCQkJCVwKICAgICBp ZiAoIU5JTFAgKFZkYnVzX2RlYnVnKSkJCQkJCQlcCiAgICAgICB7CQkJCQkJCQkJXApAQCAt MTU0LDcgKzE1MSw2IEBACiAJbWVzc2FnZSAoIiVzOiAlcyIsIF9fZnVuY19fLCBzKTsJCQkJ XAogICAgICAgfQkJCQkJCQkJCVwKICAgfSB3aGlsZSAoMCkKLSMgZW5kaWYKICMgZGVmaW5l IFhEX0RFQlVHX1ZBTElEX0xJU1BfT0JKRUNUX1Aob2JqZWN0KQogI2VuZGlmCiAKCj09PSBt b2RpZmllZCBmaWxlICdzcmMvZW1hY3MuYycKLS0tIHNyYy9lbWFjcy5jCTIwMTQtMDQtMTgg MjM6MzY6NTEgKzAwMDAKKysrIHNyYy9lbWFjcy5jCTIwMTQtMDUtMTQgMDA6NDM6MzggKzAw MDAKQEAgLTIxNCw3ICsyMTQsNyBAQAogc3RhdGljIHZvaWQgc29ydF9hcmdzIChpbnQgYXJn YywgY2hhciAqKmFyZ3YpOwogc3RhdGljIHZvaWQgc3ltc19vZl9lbWFjcyAodm9pZCk7CiAK LS8qIEM4OSBuZWVkcyBlYWNoIHN0cmluZyBiZSBhdCBtb3N0IDUwOSBjaGFyYWN0ZXJzLCBz byB0aGUgdXNhZ2UKKy8qIEM5OSBuZWVkcyBlYWNoIHN0cmluZyB0byBiZSBhdCBtb3N0IDQw OTUgY2hhcmFjdGVycywgYW5kIHRoZSB1c2FnZQogICAgc3RyaW5ncyBiZWxvdyBhcmUgc3Bs aXQgdG8gbm90IG92ZXJmbG93IHRoaXMgbGltaXQuICAqLwogc3RhdGljIGNoYXIgY29uc3Qg KmNvbnN0IHVzYWdlX21lc3NhZ2VbXSA9CiAgIHsgIlwKCj09PSBtb2RpZmllZCBmaWxlICdz cmMvbGlzcC5oJwotLS0gc3JjL2xpc3AuaAkyMDE0LTA0LTI4IDE2OjU5OjQxICswMDAwCisr KyBzcmMvbGlzcC5oCTIwMTQtMDUtMTQgMDA6NDM6MzggKzAwMDAKQEAgLTI2NTQsMTYgKzI2 NTQsMTEgQEAKICAgICAgICBtaW5hcmdzLCBtYXhhcmdzLCBsbmFtZSwgaW50c3BlYywgMH07 CQkJCVwKICAgIExpc3BfT2JqZWN0IGZubmFtZQogI2Vsc2UgIC8qIG5vdCBfTVNDX1ZFUiAq LwotIyBpZiBfX1NURENfVkVSU0lPTl9fIDwgMTk5OTAxCi0jICBkZWZpbmUgREVGVU5fRlVO Q1RJT05fSU5JVChmbm5hbWUsIG1heGFyZ3MpIChMaXNwX09iamVjdCAoKikgKHZvaWQpKSBm bm5hbWUKLSMgZWxzZQotIyAgZGVmaW5lIERFRlVOX0ZVTkNUSU9OX0lOSVQoZm5uYW1lLCBt YXhhcmdzKSAuYSAjIyBtYXhhcmdzID0gZm5uYW1lCi0jIGVuZGlmCiAjZGVmaW5lIERFRlVO KGxuYW1lLCBmbm5hbWUsIHNuYW1lLCBtaW5hcmdzLCBtYXhhcmdzLCBpbnRzcGVjLCBkb2Mp CVwKICAgIExpc3BfT2JqZWN0IGZubmFtZSBERUZVTl9BUkdTXyAjIyBtYXhhcmdzIDsJCQkJ XAogICAgc3RhdGljIHN0cnVjdCBMaXNwX1N1YnIgYWxpZ25hcyAoR0NBTElHTk1FTlQpIHNu YW1lID0JCVwKICAgICAgeyB7IFBWRUNfU1VCUiA8PCBQU0VVRE9WRUNUT1JfQVJFQV9CSVRT IH0sCQkJCVwKLSAgICAgICB7IERFRlVOX0ZVTkNUSU9OX0lOSVQgKGZubmFtZSwgbWF4YXJn cykgfSwJCQlcCisgICAgICAgeyAuYSAjIyBtYXhhcmdzID0gZm5uYW1lIH0sCQkJCQlcCiAg ICAgICAgbWluYXJncywgbWF4YXJncywgbG5hbWUsIGludHNwZWMsIDB9OwkJCQlcCiAgICBM aXNwX09iamVjdCBmbm5hbWUKICNlbmRpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9yZWdl eC5jJwotLS0gc3JjL3JlZ2V4LmMJMjAxNC0wNC0yOCAwMToyOTo0NCArMDAwMAorKysgc3Jj L3JlZ2V4LmMJMjAxNC0wNS0xNCAwMDo0MzozOCArMDAwMApAQCAtMTE5MCwxMiArMTE5MCw3 IEBACiAjIGRlZmluZSBhc3NlcnQoZSkKIAogIyBkZWZpbmUgREVCVUdfU1RBVEVNRU5UKGUp Ci0jIGlmIF9fU1REQ19WRVJTSU9OX18gPCAxOTk5MDFMCi0jICBkZWZpbmUgREVCVUdfQ09N UElMRVNfQVJHVU1FTlRTCi0jICBkZWZpbmUgREVCVUdfUFJJTlQgLyogJ0RFQlVHX1BSSU5U ICh4LCB5KScgZGlzY2FyZHMgWCBhbmQgWS4gICovICh2b2lkKQotIyBlbHNlCi0jICBkZWZp bmUgREVCVUdfUFJJTlQoLi4uKQotIyBlbmRpZgorIyBkZWZpbmUgREVCVUdfUFJJTlQoLi4u KQogIyBkZWZpbmUgREVCVUdfUFJJTlRfQ09NUElMRURfUEFUVEVSTihwLCBzLCBlKQogIyBk ZWZpbmUgREVCVUdfUFJJTlRfRE9VQkxFX1NUUklORyh3LCBzMSwgc3oxLCBzMiwgc3oyKQog Cgo= --------------030000010200020104010404 Content-Type: text/plain; charset=UTF-8; name="c99-auto.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="c99-auto.diff" PT09IG1vZGlmaWVkIGZpbGUgJ2xpYi9nbnVsaWIubWsnCi0tLSBsaWIvZ251bGliLm1rCTIw MTQtMDMtMDcgMTg6NTc6MTEgKzAwMDAKKysrIGxpYi9nbnVsaWIubWsJMjAxNC0wNS0xNCAw MDo0MzozOCArMDAwMApAQCAtMjEsNyArMjEsNyBAQAogIyB0aGUgc2FtZSBkaXN0cmlidXRp b24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgogIwogIyBHZW5lcmF0ZWQg YnkgZ251bGliLXRvb2wuCi0jIFJlcHJvZHVjZSBieTogZ251bGliLXRvb2wgLS1pbXBvcnQg LS1kaXI9LiAtLWxpYj1saWJnbnUgLS1zb3VyY2UtYmFzZT1saWIgLS1tNC1iYXNlPW00IC0t ZG9jLWJhc2U9ZG9jIC0tdGVzdHMtYmFzZT10ZXN0cyAtLWF1eC1kaXI9YnVpbGQtYXV4IC0t YXZvaWQ9Y2xvc2UgLS1hdm9pZD1kdXAgLS1hdm9pZD1mY2hkaXIgLS1hdm9pZD1mc3RhdCAt LWF2b2lkPW1hbGxvYy1wb3NpeCAtLWF2b2lkPW1zdmMtaW52YWwgLS1hdm9pZD1tc3ZjLW5v dGhyb3cgLS1hdm9pZD1vcGVuIC0tYXZvaWQ9b3BlbmF0LWRpZSAtLWF2b2lkPW9wZW5kaXIg LS1hdm9pZD1yYWlzZSAtLWF2b2lkPXNhdmUtY3dkIC0tYXZvaWQ9c2VsZWN0IC0tYXZvaWQ9 c2lncHJvY21hc2sgLS1hdm9pZD10aHJlYWRsaWIgLS1tYWtlZmlsZS1uYW1lPWdudWxpYi5t ayAtLWNvbmRpdGlvbmFsLWRlcGVuZGVuY2llcyAtLW5vLWxpYnRvb2wgLS1tYWNyby1wcmVm aXg9Z2wgLS1uby12Yy1maWxlcyBhbGxvY2Etb3B0IGJ5dGVzd2FwIGMtY3R5cGUgYy1zdHJj YXNlIGNhcmVhZGxpbmthdCBjbG9zZS1zdHJlYW0gY291bnQtb25lLWJpdHMgY291bnQtdHJh aWxpbmctemVyb3MgY3J5cHRvL21kNSBjcnlwdG8vc2hhMSBjcnlwdG8vc2hhMjU2IGNyeXB0 by9zaGE1MTIgZHRvYXN0ciBkdG90aW1lc3BlYyBkdXAyIGVudmlyb24gZXhlY2luZm8gZmFj Y2Vzc2F0IGZjbnRsIGZjbnRsLWggZmRhdGFzeW5jIGZkb3BlbmRpciBmaWxlbW9kZSBmc3Rh dGF0IGZzeW5jIGdldGxvYWRhdmcgZ2V0b3B0LWdudSBnZXR0aW1lIGdldHRpbWVvZmRheSBp bnRwcm9wcyBsYXJnZWZpbGUgbHN0YXQgbWFueXdhcm5pbmdzIG1lbXJjaHIgbWtvc3RlbXAg bWt0aW1lIHBpcGUyIHBzZWxlY3QgcHRocmVhZF9zaWdtYXNrIHB1dGVudiBxYWNsIHJlYWRs aW5rIHJlYWRsaW5rYXQgc2lnMnN0ciBzb2NrbGVuIHN0YXQtdGltZSBzdGRhbGlnbiBzdGRh cmcgc3RkYm9vbCBzdGRpbyBzdHJmdGltZSBzdHJ0b2ltYXggc3RydG91bWF4IHN5bWxpbmsg c3lzX3N0YXQgc3lzX3RpbWUgdGltZSB0aW1lci10aW1lIHRpbWVzcGVjLWFkZCB0aW1lc3Bl Yy1zdWIgdW5zZXRlbnYgdXBkYXRlLWNvcHlyaWdodCB1dGltZW5zIHdhcm5pbmdzCisjIFJl cHJvZHVjZSBieTogZ251bGliLXRvb2wgLS1pbXBvcnQgLS1kaXI9LiAtLWxpYj1saWJnbnUg LS1zb3VyY2UtYmFzZT1saWIgLS1tNC1iYXNlPW00IC0tZG9jLWJhc2U9ZG9jIC0tdGVzdHMt YmFzZT10ZXN0cyAtLWF1eC1kaXI9YnVpbGQtYXV4IC0tYXZvaWQ9Y2xvc2UgLS1hdm9pZD1k dXAgLS1hdm9pZD1mY2hkaXIgLS1hdm9pZD1mc3RhdCAtLWF2b2lkPW1hbGxvYy1wb3NpeCAt LWF2b2lkPW1zdmMtaW52YWwgLS1hdm9pZD1tc3ZjLW5vdGhyb3cgLS1hdm9pZD1vcGVuIC0t YXZvaWQ9b3BlbmF0LWRpZSAtLWF2b2lkPW9wZW5kaXIgLS1hdm9pZD1yYWlzZSAtLWF2b2lk PXNhdmUtY3dkIC0tYXZvaWQ9c2VsZWN0IC0tYXZvaWQ9c2lncHJvY21hc2sgLS1hdm9pZD1z dGRhcmcgLS1hdm9pZD1zdGRib29sIC0tYXZvaWQ9dGhyZWFkbGliIC0tbWFrZWZpbGUtbmFt ZT1nbnVsaWIubWsgLS1jb25kaXRpb25hbC1kZXBlbmRlbmNpZXMgLS1uby1saWJ0b29sIC0t bWFjcm8tcHJlZml4PWdsIC0tbm8tdmMtZmlsZXMgYWxsb2NhLW9wdCBieXRlc3dhcCBjLWN0 eXBlIGMtc3RyY2FzZSBjYXJlYWRsaW5rYXQgY2xvc2Utc3RyZWFtIGNvdW50LW9uZS1iaXRz IGNvdW50LXRyYWlsaW5nLXplcm9zIGNyeXB0by9tZDUgY3J5cHRvL3NoYTEgY3J5cHRvL3No YTI1NiBjcnlwdG8vc2hhNTEyIGR0b2FzdHIgZHRvdGltZXNwZWMgZHVwMiBlbnZpcm9uIGV4 ZWNpbmZvIGZhY2Nlc3NhdCBmY250bCBmY250bC1oIGZkYXRhc3luYyBmZG9wZW5kaXIgZmls ZW1vZGUgZnN0YXRhdCBmc3luYyBnZXRsb2FkYXZnIGdldG9wdC1nbnUgZ2V0dGltZSBnZXR0 aW1lb2ZkYXkgaW50cHJvcHMgbGFyZ2VmaWxlIGxzdGF0IG1hbnl3YXJuaW5ncyBtZW1yY2hy IG1rb3N0ZW1wIG1rdGltZSBwaXBlMiBwc2VsZWN0IHB0aHJlYWRfc2lnbWFzayBwdXRlbnYg cWFjbCByZWFkbGluayByZWFkbGlua2F0IHNpZzJzdHIgc29ja2xlbiBzdGF0LXRpbWUgc3Rk YWxpZ24gc3RkaW8gc3RyZnRpbWUgc3RydG9pbWF4IHN0cnRvdW1heCBzeW1saW5rIHN5c19z dGF0IHN5c190aW1lIHRpbWUgdGltZXItdGltZSB0aW1lc3BlYy1hZGQgdGltZXNwZWMtc3Vi IHVuc2V0ZW52IHVwZGF0ZS1jb3B5cmlnaHQgdXRpbWVucyB3YXJuaW5ncwogCiAKIE1PU1RM WUNMRUFORklMRVMgKz0gY29yZSAqLnN0YWNrZHVtcApAQCAtOTAwLDU3ICs5MDAsNiBAQAog CiAjIyBlbmQgICBnbnVsaWIgbW9kdWxlIHN0ZGFsaWduCiAKLSMjIGJlZ2luIGdudWxpYiBt b2R1bGUgc3RkYXJnCi0KLUJVSUxUX1NPVVJDRVMgKz0gJChTVERBUkdfSCkKLQotIyBXZSBu ZWVkIHRoZSBmb2xsb3dpbmcgaW4gb3JkZXIgdG8gY3JlYXRlIDxzdGRhcmcuaD4gd2hlbiB0 aGUgc3lzdGVtCi0jIGRvZXNuJ3QgaGF2ZSBvbmUgdGhhdCB3b3JrcyB3aXRoIHRoZSBnaXZl biBjb21waWxlci4KLWlmIEdMX0dFTkVSQVRFX1NUREFSR19ICi1zdGRhcmcuaDogc3RkYXJn LmluLmggJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLQkkKEFNX1ZfR0VOKXJtIC1m ICRALXQgJEAgJiYgXAotCXsgZWNobyAnLyogRE8gTk9UIEVESVQhIEdFTkVSQVRFRCBBVVRP TUFUSUNBTExZISAqLycgJiYgXAotCSAgc2VkIC1lICdzfEAnJ0dVQVJEX1BSRUZJWCcnQHxH THxnJyBcCi0JICAgICAgLWUgJ3N8QCcnSU5DTFVERV9ORVhUJydAfCQoSU5DTFVERV9ORVhU KXxnJyBcCi0JICAgICAgLWUgJ3N8QCcnUFJBR01BX1NZU1RFTV9IRUFERVInJ0B8QFBSQUdN QV9TWVNURU1fSEVBREVSQHxnJyBcCi0JICAgICAgLWUgJ3N8QCcnUFJBR01BX0NPTFVNTlMn J0B8QFBSQUdNQV9DT0xVTU5TQHxnJyBcCi0JICAgICAgLWUgJ3N8QCcnTkVYVF9TVERBUkdf SCcnQHwkKE5FWFRfU1REQVJHX0gpfGcnIFwKLQkgICAgICA8ICQoc3JjZGlyKS9zdGRhcmcu aW4uaDsgXAotCX0gPiAkQC10ICYmIFwKLQltdiAkQC10ICRACi1lbHNlCi1zdGRhcmcuaDog JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLQlybSAtZiAkQAotZW5kaWYKLU1PU1RM WUNMRUFORklMRVMgKz0gc3RkYXJnLmggc3RkYXJnLmgtdAotCi1FWFRSQV9ESVNUICs9IHN0 ZGFyZy5pbi5oCi0KLSMjIGVuZCAgIGdudWxpYiBtb2R1bGUgc3RkYXJnCi0KLSMjIGJlZ2lu IGdudWxpYiBtb2R1bGUgc3RkYm9vbAotCi1CVUlMVF9TT1VSQ0VTICs9ICQoU1REQk9PTF9I KQotCi0jIFdlIG5lZWQgdGhlIGZvbGxvd2luZyBpbiBvcmRlciB0byBjcmVhdGUgPHN0ZGJv b2wuaD4gd2hlbiB0aGUgc3lzdGVtCi0jIGRvZXNuJ3QgaGF2ZSBvbmUgdGhhdCB3b3Jrcy4K LWlmIEdMX0dFTkVSQVRFX1NUREJPT0xfSAotc3RkYm9vbC5oOiBzdGRib29sLmluLmggJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLQkkKEFNX1ZfR0VOKXJtIC1mICRALXQgJEAg JiYgXAotCXsgZWNobyAnLyogRE8gTk9UIEVESVQhIEdFTkVSQVRFRCBBVVRPTUFUSUNBTExZ ISAqLyc7IFwKLQkgIHNlZCAtZSAncy9AJydIQVZFX19CT09MJydALyQoSEFWRV9fQk9PTCkv ZycgPCAkKHNyY2Rpcikvc3RkYm9vbC5pbi5oOyBcCi0JfSA+ICRALXQgJiYgXAotCW12ICRA LXQgJEAKLWVsc2UKLXN0ZGJvb2wuaDogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMK LQlybSAtZiAkQAotZW5kaWYKLU1PU1RMWUNMRUFORklMRVMgKz0gc3RkYm9vbC5oIHN0ZGJv b2wuaC10Ci0KLUVYVFJBX0RJU1QgKz0gc3RkYm9vbC5pbi5oCi0KLSMjIGVuZCAgIGdudWxp YiBtb2R1bGUgc3RkYm9vbAotCiAjIyBiZWdpbiBnbnVsaWIgbW9kdWxlIHN0ZGRlZgogCiBC VUlMVF9TT1VSQ0VTICs9ICQoU1REREVGX0gpCgo9PT0gcmVtb3ZlZCBmaWxlICdsaWIvc3Rk YXJnLmluLmgnCi0tLSBsaWIvc3RkYXJnLmluLmgJMjAxNC0wMS0wMSAwNzo0MzozNCArMDAw MAorKysgbGliL3N0ZGFyZy5pbi5oCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKQEAgLTEs MzUgKzAsMCBAQAotLyogU3Vic3RpdHV0ZSBmb3IgYW5kIHdyYXBwZXIgYXJvdW5kIDxzdGRh cmcuaD4uCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLQotICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0g ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAo YXQgeW91ciBvcHRpb24pCi0gICBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0gICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLwotCi0jaWZuZGVmIF9AR1VBUkRfUFJFRklYQF9TVERBUkdfSAotCi0jaWYgX19H TlVDX18gPj0gMwotQFBSQUdNQV9TWVNURU1fSEVBREVSQAotI2VuZGlmCi1AUFJBR01BX0NP TFVNTlNACi0KLS8qIFRoZSBpbmNsdWRlX25leHQgcmVxdWlyZXMgYSBzcGxpdCBkb3VibGUt aW5jbHVzaW9uIGd1YXJkLiAgKi8KLSNASU5DTFVERV9ORVhUQCBATkVYVF9TVERBUkdfSEAK LQotI2lmbmRlZiBfQEdVQVJEX1BSRUZJWEBfU1REQVJHX0gKLSNkZWZpbmUgX0BHVUFSRF9Q UkVGSVhAX1NUREFSR19ICi0KLSNpZm5kZWYgdmFfY29weQotIyBkZWZpbmUgdmFfY29weShh LGIpICgoYSkgPSAoYikpCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9AR1VBUkRfUFJFRklYQF9T VERBUkdfSCAqLwotI2VuZGlmIC8qIF9AR1VBUkRfUFJFRklYQF9TVERBUkdfSCAqLwoKPT09 IHJlbW92ZWQgZmlsZSAnbGliL3N0ZGJvb2wuaW4uaCcKLS0tIGxpYi9zdGRib29sLmluLmgJ MjAxNC0wMS0wMSAwNzo0MzozNCArMDAwMAorKysgbGliL3N0ZGJvb2wuaW4uaAkxOTcwLTAx LTAxIDAwOjAwOjAwICswMDAwCkBAIC0xLDEzMiArMCwwIEBACi0vKiBDb3B5cmlnaHQgKEMp IDIwMDEtMjAwMywgMjAwNi0yMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot ICAgV3JpdHRlbiBieSBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4sIDIw MDEuCi0KLSAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIg b3B0aW9uKQotICAgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKLSAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0KLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K LQotI2lmbmRlZiBfR0xfU1REQk9PTF9ICi0jZGVmaW5lIF9HTF9TVERCT09MX0gKLQotLyog SVNPIEMgOTkgPHN0ZGJvb2wuaD4gZm9yIHBsYXRmb3JtcyB0aGF0IGxhY2sgaXQuICAqLwot Ci0vKiBVc2FnZSBzdWdnZXN0aW9uczoKLQotICAgUHJvZ3JhbXMgdGhhdCB1c2UgPHN0ZGJv b2wuaD4gc2hvdWxkIGJlIGF3YXJlIG9mIHNvbWUgbGltaXRhdGlvbnMKLSAgIGFuZCBzdGFu ZGFyZHMgY29tcGxpYW5jZSBpc3N1ZXMuCi0KLSAgIFN0YW5kYXJkcyBjb21wbGlhbmNlOgot Ci0gICAgICAgLSA8c3RkYm9vbC5oPiBtdXN0IGJlICNpbmNsdWRlZCBiZWZvcmUgJ2Jvb2wn LCAnZmFsc2UnLCAndHJ1ZScKLSAgICAgICAgIGNhbiBiZSB1c2VkLgotCi0gICAgICAgLSBZ b3UgY2Fubm90IGFzc3VtZSB0aGF0IHNpemVvZiAoYm9vbCkgPT0gMS4KLQotICAgICAgIC0g UHJvZ3JhbXMgc2hvdWxkIG5vdCB1bmRlZmluZSB0aGUgbWFjcm9zIGJvb2wsIHRydWUsIGFu ZCBmYWxzZSwKLSAgICAgICAgIGFzIEM5OSBsaXN0cyB0aGF0IGFzIGFuICJvYnNvbGVzY2Vu dCBmZWF0dXJlIi4KLQotICAgTGltaXRhdGlvbnMgb2YgdGhpcyBzdWJzdGl0dXRlLCB3aGVu IHVzZWQgaW4gYSBDODkgZW52aXJvbm1lbnQ6Ci0KLSAgICAgICAtIDxzdGRib29sLmg+IG11 c3QgYmUgI2luY2x1ZGVkIGJlZm9yZSB0aGUgJ19Cb29sJyB0eXBlIGNhbiBiZSB1c2VkLgot Ci0gICAgICAgLSBZb3UgY2Fubm90IGFzc3VtZSB0aGF0IF9Cb29sIGlzIGEgdHlwZWRlZjsg aXQgbWlnaHQgYmUgYSBtYWNyby4KLQotICAgICAgIC0gQml0LWZpZWxkcyBvZiB0eXBlICdi b29sJyBhcmUgbm90IHN1cHBvcnRlZC4gIFBvcnRhYmxlIGNvZGUKLSAgICAgICAgIHNob3Vs ZCB1c2UgJ3Vuc2lnbmVkIGludCBmb28gOiAxOycgcmF0aGVyIHRoYW4gJ2Jvb2wgZm9vIDog MTsnLgotCi0gICAgICAgLSBJbiBDOTksIGNhc3RzIGFuZCBhdXRvbWF0aWMgY29udmVyc2lv bnMgdG8gJ19Cb29sJyBvciAnYm9vbCcgYXJlCi0gICAgICAgICBwZXJmb3JtZWQgaW4gc3Vj aCBhIHdheSB0aGF0IGV2ZXJ5IG5vbnplcm8gdmFsdWUgZ2V0cyBjb252ZXJ0ZWQKLSAgICAg ICAgIHRvICd0cnVlJywgYW5kIHplcm8gZ2V0cyBjb252ZXJ0ZWQgdG8gJ2ZhbHNlJy4gIFRo aXMgZG9lc24ndCB3b3JrCi0gICAgICAgICB3aXRoIHRoaXMgc3Vic3RpdHV0ZS4gIFdpdGgg dGhpcyBzdWJzdGl0dXRlLCBvbmx5IHRoZSB2YWx1ZXMgMCBhbmQgMQotICAgICAgICAgZ2l2 ZSB0aGUgZXhwZWN0ZWQgcmVzdWx0IHdoZW4gY29udmVydGVkIHRvIF9Cb29sJyBvciAnYm9v bCcuCi0KLSAgICAgICAtIEM5OSBhbGxvd3MgdGhlIHVzZSBvZiAoX0Jvb2wpMC4wIGluIGNv bnN0YW50IGV4cHJlc3Npb25zLCBidXQKLSAgICAgICAgIHRoaXMgc3Vic3RpdHV0ZSBjYW5u b3QgYWx3YXlzIHByb3ZpZGUgdGhpcyBwcm9wZXJ0eS4KLQotICAgQWxzbywgaXQgaXMgc3Vn Z2VzdGVkIHRoYXQgcHJvZ3JhbXMgdXNlICdib29sJyByYXRoZXIgdGhhbiAnX0Jvb2wnOwot ICAgdGhpcyBpc24ndCByZXF1aXJlZCwgYnV0ICdib29sJyBpcyBtb3JlIGNvbW1vbi4gICov Ci0KLQotLyogNy4xNi4gQm9vbGVhbiB0eXBlIGFuZCB2YWx1ZXMgKi8KLQotLyogQmVPUyA8 c3lzL3NvY2tldC5oPiBhbHJlYWR5ICNkZWZpbmVzIGZhbHNlIDAsIHRydWUgMS4gIFdlIHVz ZSB0aGUgc2FtZQotICAgZGVmaW5pdGlvbnMgYmVsb3csIGJ1dCB0ZW1wb3JhcmlseSB3ZSBo YXZlIHRvICN1bmRlZiB0aGVtLiAgKi8KLSNpZiBkZWZpbmVkIF9fQkVPU19fICYmICFkZWZp bmVkIF9fSEFJS1VfXwotIyBpbmNsdWRlIDxPUy5oPiAvKiBkZWZpbmVzIGJvb2wgYnV0IG5v dCBfQm9vbCAqLwotIyB1bmRlZiBmYWxzZQotIyB1bmRlZiB0cnVlCi0jZW5kaWYKLQotI2lm ZGVmIF9fY3BsdXNwbHVzCi0jIGRlZmluZSBfQm9vbCBib29sCi0jIGRlZmluZSBib29sIGJv b2wKLSNlbHNlCi0jIGlmIGRlZmluZWQgX19CRU9TX18gJiYgIWRlZmluZWQgX19IQUlLVV9f Ci0gIC8qIEEgY29tcGlsZXIga25vd24gdG8gaGF2ZSAnYm9vbCcuICAqLwotICAvKiBJZiB0 aGUgY29tcGlsZXIgYWxyZWFkeSBoYXMgYm90aCAnYm9vbCcgYW5kICdfQm9vbCcsIHdlIGNh biBhc3N1bWUgdGhleQotICAgICBhcmUgdGhlIHNhbWUgdHlwZXMuICAqLwotIyAgaWYgIUBI QVZFX19CT09MQAotdHlwZWRlZiBib29sIF9Cb29sOwotIyAgZW5kaWYKLSMgZWxzZQotIyAg aWYgIWRlZmluZWQgX19HTlVDX18KLSAgIC8qIElmIEBIQVZFX19CT09MQDoKLSAgICAgICAg U29tZSBIUC1VWCBjYyBhbmQgQUlYIElCTSBDIGNvbXBpbGVyIHZlcnNpb25zIGhhdmUgY29t cGlsZXIgYnVncyB3aGVuCi0gICAgICAgIHRoZSBidWlsdC1pbiBfQm9vbCB0eXBlIGlzIHVz ZWQuICBTZWUKLSAgICAgICAgICBodHRwOi8vZ2NjLmdudS5vcmcvbWwvZ2NjLXBhdGNoZXMv MjAwMy0xMi9tc2cwMjMwMy5odG1sCi0gICAgICAgICAgaHR0cDovL2xpc3RzLmdudS5vcmcv YXJjaGl2ZS9odG1sL2J1Zy1jb3JldXRpbHMvMjAwNS0xMS9tc2cwMDE2MS5odG1sCi0gICAg ICAgICAgaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2J1Zy1jb3JldXRpbHMv MjAwNS0xMC9tc2cwMDA4Ni5odG1sCi0gICAgICAgIFNpbWlsYXIgYnVncyBhcmUgbGlrZWx5 IHdpdGggb3RoZXIgY29tcGlsZXJzIGFzIHdlbGw7IHRoaXMgZmlsZQotICAgICAgICB3b3Vs ZG4ndCBiZSB1c2VkIGlmIDxzdGRib29sLmg+IHdhcyB3b3JraW5nLgotICAgICAgICBTbyB3 ZSBvdmVycmlkZSB0aGUgX0Jvb2wgdHlwZS4KLSAgICAgIElmICFASEFWRV9fQk9PTEA6Ci0g ICAgICAgIE5lZWQgdG8gZGVmaW5lIF9Cb29sIG91cnNlbHZlcy4gQXMgJ3NpZ25lZCBjaGFy JyBvciBhcyBhbiBlbnVtIHR5cGU/Ci0gICAgICAgIFVzZSBvZiBhIHR5cGVkZWYsIHdpdGgg U3VuUFJPIEMsIGxlYWRzIHRvIGEgc3R1cGlkCi0gICAgICAgICAgIndhcm5pbmc6IF9Cb29s IGlzIGEga2V5d29yZCBpbiBJU08gQzk5Ii4KLSAgICAgICAgVXNlIG9mIGFuIGVudW0gdHlw ZSwgd2l0aCBJUklYIGNjLCBsZWFkcyB0byBhIHN0dXBpZAotICAgICAgICAgICJ3YXJuaW5n KDExODUpOiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUiLgotICAg ICAgICBFdmVuIHRoZSBleGlzdGVuY2Ugb2YgYW4gZW51bSB0eXBlLCB3aXRob3V0IGEgdHlw ZWRlZiwKLSAgICAgICAgICAiSW52YWxpZCBlbnVtZXJhdG9yLiAoYmFkZW51bSkiIHdpdGgg SFAtVVggY2Mgb24gVHJ1NjQuCi0gICAgICAgIFRoZSBvbmx5IGJlbmVmaXQgb2YgdGhlIGVu dW0sIGRlYnVnZ2FiaWxpdHksIGlzIG5vdCBpbXBvcnRhbnQKLSAgICAgICAgd2l0aCB0aGVz ZSBjb21waWxlcnMuICBTbyB1c2UgJ3NpZ25lZCBjaGFyJyBhbmQgbm8gZW51bS4gICovCi0j ICAgZGVmaW5lIF9Cb29sIHNpZ25lZCBjaGFyCi0jICBlbHNlCi0gICAvKiBXaXRoIHRoaXMg Y29tcGlsZXIsIHRydXN0IHRoZSBfQm9vbCB0eXBlIGlmIHRoZSBjb21waWxlciBoYXMgaXQu ICAqLwotIyAgIGlmICFASEFWRV9fQk9PTEAKLSAgIC8qIEZvciB0aGUgc2FrZSBvZiBzeW1i b2xpYyBuYW1lcyBpbiBnZGIsIGRlZmluZSB0cnVlIGFuZCBmYWxzZSBhcwotICAgICAgZW51 bSBjb25zdGFudHMsIG5vdCBvbmx5IGFzIG1hY3Jvcy4KLSAgICAgIEl0IGlzIHRlbXB0aW5n IHRvIHdyaXRlCi0gICAgICAgICB0eXBlZGVmIGVudW0geyBmYWxzZSA9IDAsIHRydWUgPSAx IH0gX0Jvb2w7Ci0gICAgICBzbyB0aGF0IGdkYiBwcmludHMgdmFsdWVzIG9mIHR5cGUgJ2Jv b2wnIHN5bWJvbGljYWxseS4gIEJ1dCB0aGVuCi0gICAgICB2YWx1ZXMgb2YgdHlwZSAnX0Jv b2wnIG1pZ2h0IHByb21vdGUgdG8gJ2ludCcgb3IgJ3Vuc2lnbmVkIGludCcKLSAgICAgIChz ZWUgSVNPIEMgOTkgNi43LjIuMi4oNCkpOyBob3dldmVyLCAnX0Jvb2wnIG11c3QgcHJvbW90 ZSB0byAnaW50JwotICAgICAgKHNlZSBJU08gQyA5OSA2LjMuMS4xLigyKSkuICBTbyBhZGQg YSBuZWdhdGl2ZSB2YWx1ZSB0byB0aGUKLSAgICAgIGVudW07IHRoaXMgZW5zdXJlcyB0aGF0 ICdfQm9vbCcgcHJvbW90ZXMgdG8gJ2ludCcuICAqLwotdHlwZWRlZiBlbnVtIHsgX0Jvb2xf bXVzdF9wcm9tb3RlX3RvX2ludCA9IC0xLCBmYWxzZSA9IDAsIHRydWUgPSAxIH0gX0Jvb2w7 Ci0jICAgZW5kaWYKLSMgIGVuZGlmCi0jIGVuZGlmCi0jIGRlZmluZSBib29sIF9Cb29sCi0j ZW5kaWYKLQotLyogVGhlIG90aGVyIG1hY3JvcyBtdXN0IGJlIHVzYWJsZSBpbiBwcmVwcm9j ZXNzb3IgZGlyZWN0aXZlcy4gICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLSMgZGVmaW5lIGZh bHNlIGZhbHNlCi0jIGRlZmluZSB0cnVlIHRydWUKLSNlbHNlCi0jIGRlZmluZSBmYWxzZSAw Ci0jIGRlZmluZSB0cnVlIDEKLSNlbmRpZgotCi0jZGVmaW5lIF9fYm9vbF90cnVlX2ZhbHNl X2FyZV9kZWZpbmVkIDEKLQotI2VuZGlmIC8qIF9HTF9TVERCT09MX0ggKi8KCj09PSBtb2Rp ZmllZCBmaWxlICdtNC9nbnVsaWItY29tcC5tNCcKLS0tIG00L2dudWxpYi1jb21wLm00CTIw MTQtMDMtMDcgMTg6NTc6MTEgKzAwMDAKKysrIG00L2dudWxpYi1jb21wLm00CTIwMTQtMDUt MTQgMDA6NDM6MzggKzAwMDAKQEAgLTExOSwxMyArMTE5LDYgQEAKICAgIyBDb2RlIGZyb20g bW9kdWxlIHN0YXQ6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSBzdGF0LXRpbWU6CiAgICMgQ29k ZSBmcm9tIG1vZHVsZSBzdGRhbGlnbjoKLSAgIyBDb2RlIGZyb20gbW9kdWxlIHN0ZGFyZzoK LSAgZG5sIFNvbWUgY29tcGlsZXJzIChlLmcuLCBBSVggNS4zIGNjKSBuZWVkIHRvIGJlIGlu IGM5OSBtb2RlCi0gIGRubCBmb3IgdGhlIGJ1aWx0aW4gdmFfY29weSB0byB3b3JrLiAgV2l0 aCBBdXRvY29uZiAyLjYwIG9yIGxhdGVyLAotICBkbmwgZ2xfUFJPR19DQ19DOTkgYXJyYW5n ZXMgZm9yIHRoaXMuICBXaXRoIG9sZGVyIEF1dG9jb25mIGdsX1BST0dfQ0NfQzk5Ci0gIGRu bCBzaG91bGRuJ3QgaHVydCwgdGhvdWdoIGluc3RhbGxlcnMgYXJlIG9uIHRoZWlyIG93biB0 byBzZXQgYzk5IG1vZGUuCi0gIGdsX1BST0dfQ0NfQzk5Ci0gICMgQ29kZSBmcm9tIG1vZHVs ZSBzdGRib29sOgogICAjIENvZGUgZnJvbSBtb2R1bGUgc3RkZGVmOgogICAjIENvZGUgZnJv bSBtb2R1bGUgc3RkaW50OgogICAjIENvZGUgZnJvbSBtb2R1bGUgc3RkaW86CkBAIC0zNDIs OCArMzM1LDYgQEAKICAgZ2xfU1RBVF9USU1FCiAgIGdsX1NUQVRfQklSVEhUSU1FCiAgIGds X1NUREFMSUdOX0gKLSAgZ2xfU1REQVJHX0gKLSAgQU1fU1REQk9PTF9ICiAgIGdsX1NURERF Rl9ICiAgIGdsX1NURElOVF9ICiAgIGdsX1NURElPX0gKQEAgLTg5MSw4ICs4ODIsNiBAQAog ICBsaWIvc3RhdC10aW1lLmgKICAgbGliL3N0YXQuYwogICBsaWIvc3RkYWxpZ24uaW4uaAot ICBsaWIvc3RkYXJnLmluLmgKLSAgbGliL3N0ZGJvb2wuaW4uaAogICBsaWIvc3RkZGVmLmlu LmgKICAgbGliL3N0ZGludC5pbi5oCiAgIGxpYi9zdGRpby5pbi5oCkBAIC05OTgsOCArOTg3 LDYgQEAKICAgbTQvc3RhdC10aW1lLm00CiAgIG00L3N0YXQubTQKICAgbTQvc3RkYWxpZ24u bTQKLSAgbTQvc3RkYXJnLm00Ci0gIG00L3N0ZGJvb2wubTQKICAgbTQvc3RkZGVmX2gubTQK ICAgbTQvc3RkaW50Lm00CiAgIG00L3N0ZGlvX2gubTQKCj09PSByZW1vdmVkIGZpbGUgJ200 L3N0ZGFyZy5tNCcKLS0tIG00L3N0ZGFyZy5tNAkyMDE0LTAxLTAxIDA3OjQzOjM0ICswMDAw CisrKyBtNC9zdGRhcmcubTQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMApAQCAtMSw3OCAr MCwwIEBACi0jIHN0ZGFyZy5tNCBzZXJpYWwgNgotZG5sIENvcHlyaWdodCAoQykgMjAwNiwg MjAwOC0yMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotZG5sIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi1kbmwg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKLWRubCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLWRubCBGcm9tIEJydW5vIEhhaWJsZS4KLWRubCBQ cm92aWRlIGEgd29ya2luZyB2YV9jb3B5IGluIGNvbWJpbmF0aW9uIHdpdGggPHN0ZGFyZy5o Pi4KLQotQUNfREVGVU4oW2dsX1NUREFSR19IXSwKLVsKLSAgU1REQVJHX0g9JycKLSAgTkVY VF9TVERBUkdfSD0nPHN0ZGFyZy5oPicKLSAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgdmFfY29w eV0pCi0gIEFDX0NBQ0hFX1ZBTChbZ2xfY3ZfZnVuY192YV9jb3B5XSwgWwotICAgIEFDX0NP TVBJTEVfSUZFTFNFKAotICAgICAgW0FDX0xBTkdfUFJPR1JBTSgKLSAgICAgICAgIFtbI2lu Y2x1ZGUgPHN0ZGFyZy5oPl1dLAotICAgICAgICAgW1sKLSNpZm5kZWYgdmFfY29weQotdm9p ZCAoKmZ1bmMpICh2YV9saXN0LCB2YV9saXN0KSA9IHZhX2NvcHk7Ci0jZW5kaWYKLSAgICAg ICAgIF1dKV0sCi0gICAgICBbZ2xfY3ZfZnVuY192YV9jb3B5PXllc10sCi0gICAgICBbZ2xf Y3ZfZnVuY192YV9jb3B5PW5vXSldKQotICBBQ19NU0dfUkVTVUxUKFskZ2xfY3ZfZnVuY192 YV9jb3B5XSkKLSAgaWYgdGVzdCAkZ2xfY3ZfZnVuY192YV9jb3B5ID0gbm87IHRoZW4KLSAg ICBkbmwgUHJvdmlkZSBhIHN1YnN0aXR1dGUuCi0gICAgZG5sIFVzdWFsbHkgYSBzaW1wbGUg ZGVmaW5pdGlvbiBpbiA8Y29uZmlnLmg+IGlzIGVub3VnaC4gTm90IHNvIG9uIEFJWCA1Ci0g ICAgZG5sIHdpdGggc29tZSB2ZXJzaW9ucyBvZiB0aGUgL3Vzci92YWMvYmluL2NjIGNvbXBp bGVyLiBJdCBoYXMgYW4gPHN0ZGFyZy5oPgotICAgIGRubCB3aGljaCBkb2VzICcjdW5kZWYg dmFfY29weScsIGxlYWRpbmcgdG8gYSBtaXNzaW5nIHZhX2NvcHkgc3ltYm9sLiBGb3IKLSAg ICBkbmwgdGhpcyBwbGF0Zm9ybSwgd2UgdXNlIGFuIDxzdGRhcmcuaD4gc3Vic3RpdHV0ZS4g QnV0IHdlIGNhbm5vdCB1c2UgdGhpcwotICAgIGRubCBhcHByb2FjaCBvbiBvdGhlciBwbGF0 Zm9ybXMsIGJlY2F1c2UgPHN0ZGFyZy5oPiBvZnRlbiBkZWZpbmVzIG9ubHkKLSAgICBkbmwg cHJlcHJvY2Vzc29yIG1hY3JvcyBhbmQgZ2xfQUJTT0xVVEVfSEVBREVSLCBnbF9DSEVDS19O RVhUX0hFQURFUlMgZG8KLSAgICBkbmwgbm90IHdvcmsgaW4gdGhpcyBzaXR1YXRpb24uCi0g ICAgQUNfRUdSRVBfQ1BQKFt2YWNjaW5lXSwKLSAgICAgIFsjaWYgZGVmaW5lZCBfQUlYICYm ICFkZWZpbmVkIF9fR05VQ19fCi0gICAgICAgIEFJWCB2YWNjaW5lCi0gICAgICAgI2VuZGlm Ci0gICAgICBdLCBbZ2xfYWl4Y2M9eWVzXSwgW2dsX2FpeGNjPW5vXSkKLSAgICBpZiB0ZXN0 ICRnbF9haXhjYyA9IHllczsgdGhlbgotICAgICAgZG5sIFByb3ZpZGUgYSBzdWJzdGl0dXRl IDxzdGRhcmcuaD4gZmlsZS4KLSAgICAgIFNUREFSR19IPXN0ZGFyZy5oCi0gICAgICBnbF9O RVhUX0hFQURFUlMoW3N0ZGFyZy5oXSkKLSAgICAgIGRubCBGYWxsYmFjayBmb3IgdGhlIGNh c2Ugd2hlbiA8c3RkYXJnLmg+IGNvbnRhaW5zIG9ubHkgbWFjcm8gZGVmaW5pdGlvbnMuCi0g ICAgICBpZiB0ZXN0ICIkZ2xfY3ZfbmV4dF9zdGRhcmdfaCIgPSAnIiInOyB0aGVuCi0gICAg ICAgIGdsX2N2X25leHRfc3RkYXJnX2g9JyIvLy91c3IvaW5jbHVkZS9zdGRhcmcuaCInCi0g ICAgICAgIE5FWFRfU1REQVJHX0g9IiRnbF9jdl9uZXh0X3N0ZGFyZ19oIgotICAgICAgZmkK LSAgICBlbHNlCi0gICAgICBkbmwgUHJvdmlkZSBhIHN1YnN0aXR1dGUgaW4gPGNvbmZpZy5o PiwgZWl0aGVyIF9fdmFfY29weSBvciBhcyBhIHNpbXBsZQotICAgICAgZG5sIGFzc2lnbm1l bnQuCi0gICAgICBnbF9DQUNIRV9WQUxfU0lMRU5UKFtnbF9jdl9mdW5jX19fdmFfY29weV0s IFsKLSAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoCi0gICAgICAgICAgW0FDX0xBTkdfUFJP R1JBTSgKLSAgICAgICAgICAgICBbWyNpbmNsdWRlIDxzdGRhcmcuaD5dXSwKLSAgICAgICAg ICAgICBbWwotI2lmbmRlZiBfX3ZhX2NvcHkKLWVycm9yLCBiYWlsIG91dAotI2VuZGlmCi0g ICAgICAgICAgICAgXV0pXSwKLSAgICAgICAgICBbZ2xfY3ZfZnVuY19fX3ZhX2NvcHk9eWVz XSwKLSAgICAgICAgICBbZ2xfY3ZfZnVuY19fX3ZhX2NvcHk9bm9dKV0pCi0gICAgICBpZiB0 ZXN0ICRnbF9jdl9mdW5jX19fdmFfY29weSA9IHllczsgdGhlbgotICAgICAgICBBQ19ERUZJ TkUoW3ZhX2NvcHldLCBbX192YV9jb3B5XSwKLSAgICAgICAgICBbRGVmaW5lIGFzIGEgbWFj cm8gZm9yIGNvcHlpbmcgdmFfbGlzdCB2YXJpYWJsZXMuXSkKLSAgICAgIGVsc2UKLSAgICAg ICAgQUhfVkVSQkFUSU0oW2dsX1ZBX0NPUFldLCBbLyogQSByZXBsYWNlbWVudCBmb3IgdmFf Y29weSwgaWYgbmVlZGVkLiAgKi8KLSNkZWZpbmUgZ2xfdmFfY29weShhLGIpICgoYSkgPSAo YikpXSkKLSAgICAgICAgQUNfREVGSU5FKFt2YV9jb3B5XSwgW2dsX3ZhX2NvcHldLAotICAg ICAgICAgIFtEZWZpbmUgYXMgYSBtYWNybyBmb3IgY29weWluZyB2YV9saXN0IHZhcmlhYmxl cy5dKQotICAgICAgZmkKLSAgICBmaQotICBmaQotICBBQ19TVUJTVChbU1REQVJHX0hdKQot ICBBTV9DT05ESVRJT05BTChbR0xfR0VORVJBVEVfU1REQVJHX0hdLCBbdGVzdCAtbiAiJFNU REFSR19IIl0pCi0gIEFDX1NVQlNUKFtORVhUX1NUREFSR19IXSkKLV0pCgo9PT0gcmVtb3Zl ZCBmaWxlICdtNC9zdGRib29sLm00JwotLS0gbTQvc3RkYm9vbC5tNAkyMDE0LTAxLTAxIDA3 OjQzOjM0ICswMDAwCisrKyBtNC9zdGRib29sLm00CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAw MDAKQEAgLTEsMTAwICswLDAgQEAKLSMgQ2hlY2sgZm9yIHN0ZGJvb2wuaCB0aGF0IGNvbmZv cm1zIHRvIEM5OS4KLQotZG5sIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCAyMDA5LTIwMTQg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi1kbmwgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLWRubCBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotZG5sIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KLQotI3NlcmlhbCA1Ci0KLSMgUHJlcGFyZSBmb3Igc3Vic3RpdHV0aW5n IDxzdGRib29sLmg+IGlmIGl0IGlzIG5vdCBzdXBwb3J0ZWQuCi0KLUFDX0RFRlVOKFtBTV9T VERCT09MX0hdLAotWwotICBBQ19SRVFVSVJFKFtBQ19DSEVDS19IRUFERVJfU1REQk9PTF0p Ci0KLSAgIyBEZWZpbmUgdHdvIGFkZGl0aW9uYWwgdmFyaWFibGVzIHVzZWQgaW4gdGhlIE1h a2VmaWxlIHN1YnN0aXR1dGlvbi4KLQotICBpZiB0ZXN0ICIkYWNfY3ZfaGVhZGVyX3N0ZGJv b2xfaCIgPSB5ZXM7IHRoZW4KLSAgICBTVERCT09MX0g9JycKLSAgZWxzZQotICAgIFNUREJP T0xfSD0nc3RkYm9vbC5oJwotICBmaQotICBBQ19TVUJTVChbU1REQk9PTF9IXSkKLSAgQU1f Q09ORElUSU9OQUwoW0dMX0dFTkVSQVRFX1NUREJPT0xfSF0sIFt0ZXN0IC1uICIkU1REQk9P TF9IIl0pCi0KLSAgaWYgdGVzdCAiJGFjX2N2X3R5cGVfX0Jvb2wiID0geWVzOyB0aGVuCi0g ICAgSEFWRV9fQk9PTD0xCi0gIGVsc2UKLSAgICBIQVZFX19CT09MPTAKLSAgZmkKLSAgQUNf U1VCU1QoW0hBVkVfX0JPT0xdKQotXSkKLQotIyBBTV9TVERCT09MX0ggd2lsbCBiZSByZW5h bWVkIHRvIGdsX1NUREJPT0xfSCBpbiB0aGUgZnV0dXJlLgotQUNfREVGVU4oW2dsX1NUREJP T0xfSF0sIFtBTV9TVERCT09MX0hdKQotCi0jIFRoaXMgdmVyc2lvbiBvZiB0aGUgbWFjcm8g aXMgbmVlZGVkIGluIGF1dG9jb25mIDw9IDIuNjguCi0KLUFDX0RFRlVOKFtBQ19DSEVDS19I RUFERVJfU1REQk9PTF0sCi0gIFtBQ19DQUNIRV9DSEVDSyhbZm9yIHN0ZGJvb2wuaCB0aGF0 IGNvbmZvcm1zIHRvIEM5OV0sCi0gICAgIFthY19jdl9oZWFkZXJfc3RkYm9vbF9oXSwKLSAg ICAgW0FDX0NPTVBJTEVfSUZFTFNFKAotICAgICAgICBbQUNfTEFOR19QUk9HUkFNKAotICAg ICAgICAgICBbWwotICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRib29sLmg+Ci0gICAgICAg ICAgICAgI2lmbmRlZiBib29sCi0gICAgICAgICAgICAgICJlcnJvcjogYm9vbCBpcyBub3Qg ZGVmaW5lZCIKLSAgICAgICAgICAgICAjZW5kaWYKLSAgICAgICAgICAgICAjaWZuZGVmIGZh bHNlCi0gICAgICAgICAgICAgICJlcnJvcjogZmFsc2UgaXMgbm90IGRlZmluZWQiCi0gICAg ICAgICAgICAgI2VuZGlmCi0gICAgICAgICAgICAgI2lmIGZhbHNlCi0gICAgICAgICAgICAg ICJlcnJvcjogZmFsc2UgaXMgbm90IDAiCi0gICAgICAgICAgICAgI2VuZGlmCi0gICAgICAg ICAgICAgI2lmbmRlZiB0cnVlCi0gICAgICAgICAgICAgICJlcnJvcjogdHJ1ZSBpcyBub3Qg ZGVmaW5lZCIKLSAgICAgICAgICAgICAjZW5kaWYKLSAgICAgICAgICAgICAjaWYgdHJ1ZSAh PSAxCi0gICAgICAgICAgICAgICJlcnJvcjogdHJ1ZSBpcyBub3QgMSIKLSAgICAgICAgICAg ICAjZW5kaWYKLSAgICAgICAgICAgICAjaWZuZGVmIF9fYm9vbF90cnVlX2ZhbHNlX2FyZV9k ZWZpbmVkCi0gICAgICAgICAgICAgICJlcnJvcjogX19ib29sX3RydWVfZmFsc2VfYXJlX2Rl ZmluZWQgaXMgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgI2VuZGlmCi0KLSAgICAgICAg ICAgICBzdHJ1Y3QgcyB7IF9Cb29sIHM6IDE7IF9Cb29sIHQ7IH0gczsKLQotICAgICAgICAg ICAgIGNoYXIgYVt0cnVlID09IDEgPyAxIDogLTFdOwotICAgICAgICAgICAgIGNoYXIgYltm YWxzZSA9PSAwID8gMSA6IC0xXTsKLSAgICAgICAgICAgICBjaGFyIGNbX19ib29sX3RydWVf ZmFsc2VfYXJlX2RlZmluZWQgPT0gMSA/IDEgOiAtMV07Ci0gICAgICAgICAgICAgY2hhciBk Wyhib29sKSAwLjUgPT0gdHJ1ZSA/IDEgOiAtMV07Ci0gICAgICAgICAgICAgLyogU2VlIGJv ZHkgb2YgbWFpbiBwcm9ncmFtIGZvciAnZScuICAqLwotICAgICAgICAgICAgIGNoYXIgZlso X0Jvb2wpIDAuMCA9PSBmYWxzZSA/IDEgOiAtMV07Ci0gICAgICAgICAgICAgY2hhciBnW3Ry dWVdOwotICAgICAgICAgICAgIGNoYXIgaFtzaXplb2YgKF9Cb29sKV07Ci0gICAgICAgICAg ICAgY2hhciBpW3NpemVvZiBzLnRdOwotICAgICAgICAgICAgIGVudW0geyBqID0gZmFsc2Us IGsgPSB0cnVlLCBsID0gZmFsc2UgKiB0cnVlLCBtID0gdHJ1ZSAqIDI1NiB9OwotICAgICAg ICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgZmFpbHMgZm9yCi0gICAgICAgICAgICAgICAgSFAg YUMrKy9BTlNJIEMgQjM5MTBCIEEuMDUuNTUgW0RlYyAwNCAyMDAzXS4gKi8KLSAgICAgICAg ICAgICBfQm9vbCBuW21dOwotICAgICAgICAgICAgIGNoYXIgb1tzaXplb2YgbiA9PSBtICog c2l6ZW9mIG5bMF0gPyAxIDogLTFdOwotICAgICAgICAgICAgIGNoYXIgcFstMSAtIChfQm9v bCkgMCA8IDAgJiYgLTEgLSAoYm9vbCkgMCA8IDAgPyAxIDogLTFdOwotICAgICAgICAgICAg IC8qIENhdGNoIGEgYnVnIGluIGFuIEhQLVVYIEMgY29tcGlsZXIuICBTZWUKLSAgICAgICAg ICAgICAgICBodHRwOi8vZ2NjLmdudS5vcmcvbWwvZ2NjLXBhdGNoZXMvMjAwMy0xMi9tc2cw MjMwMy5odG1sCi0gICAgICAgICAgICAgICAgaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2 ZS9odG1sL2J1Zy1jb3JldXRpbHMvMjAwNS0xMS9tc2cwMDE2MS5odG1sCi0gICAgICAgICAg ICAgICovCi0gICAgICAgICAgICAgX0Jvb2wgcSA9IHRydWU7Ci0gICAgICAgICAgICAgX0Jv b2wgKnBxID0gJnE7Ci0gICAgICAgICAgIF1dLAotICAgICAgICAgICBbWwotICAgICAgICAg ICAgIGJvb2wgZSA9ICZzOwotICAgICAgICAgICAgICpwcSB8PSBxOwotICAgICAgICAgICAg ICpwcSB8PSAhIHE7Ci0gICAgICAgICAgICAgLyogUmVmZXIgdG8gZXZlcnkgZGVjbGFyZWQg dmFsdWUsIHRvIGF2b2lkIGNvbXBpbGVyIG9wdGltaXphdGlvbnMuICAqLwotICAgICAgICAg ICAgIHJldHVybiAoIWEgKyAhYiArICFjICsgIWQgKyAhZSArICFmICsgIWcgKyAhaCArICFp ICsgISFqICsgIWsgKyAhIWwKLSAgICAgICAgICAgICAgICAgICAgICsgIW0gKyAhbiArICFv ICsgIXAgKyAhcSArICFwcSk7Ci0gICAgICAgICAgIF1dKV0sCi0gICAgICAgIFthY19jdl9o ZWFkZXJfc3RkYm9vbF9oPXllc10sCi0gICAgICAgIFthY19jdl9oZWFkZXJfc3RkYm9vbF9o PW5vXSldKQotICAgQUNfQ0hFQ0tfVFlQRVMoW19Cb29sXSkKLV0pCgo= --------------030000010200020104010404--