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#13783: simplify data_start configuration for Emacs Date: Fri, 22 Feb 2013 00:18:37 -0800 Organization: UCLA Computer Science Department Message-ID: <512729DD.7040903@cs.ucla.edu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050202080209060103040000" X-Trace: ger.gmane.org 1361521197 12826 80.91.229.3 (22 Feb 2013 08:19:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 22 Feb 2013 08:19:57 +0000 (UTC) To: 13783@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Feb 22 09:20:17 2013 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 1U8nrc-0003lb-E5 for geb-bug-gnu-emacs@m.gmane.org; Fri, 22 Feb 2013 09:20:16 +0100 Original-Received: from localhost ([::1]:55328 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8nrH-0000Xb-Lp for geb-bug-gnu-emacs@m.gmane.org; Fri, 22 Feb 2013 03:19:55 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:48864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8nrA-0000XR-8l for bug-gnu-emacs@gnu.org; Fri, 22 Feb 2013 03:19:53 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U8nr4-00069n-4M for bug-gnu-emacs@gnu.org; Fri, 22 Feb 2013 03:19:48 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:38256) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8nr4-00069j-0Q for bug-gnu-emacs@gnu.org; Fri, 22 Feb 2013 03:19:42 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1U8nsM-0005Ge-NA for bug-gnu-emacs@gnu.org; Fri, 22 Feb 2013 03:21:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 Feb 2013 08:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 13783 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.136152124320219 (code B ref -1); Fri, 22 Feb 2013 08:21:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 22 Feb 2013 08:20:43 +0000 Original-Received: from localhost ([127.0.0.1]:43720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8nrz-0005G1-DR for submit@debbugs.gnu.org; Fri, 22 Feb 2013 03:20:42 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:37416) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8nrt-0005Fq-Nq for submit@debbugs.gnu.org; Fri, 22 Feb 2013 03:20:38 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U8nqV-0005pd-Qv for submit@debbugs.gnu.org; Fri, 22 Feb 2013 03:19:12 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:36646) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8nqV-0005pX-Nf for submit@debbugs.gnu.org; Fri, 22 Feb 2013 03:19:07 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:48760) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8nqM-0000PQ-M9 for bug-gnu-emacs@gnu.org; Fri, 22 Feb 2013 03:19:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U8nqD-0005mG-Kq for bug-gnu-emacs@gnu.org; Fri, 22 Feb 2013 03:18:58 -0500 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:42346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8nqD-0005mA-3a; Fri, 22 Feb 2013 03:18:49 -0500 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 4224E39E8100; Fri, 22 Feb 2013 00:18:48 -0800 (PST) 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 AW8ikZvhob6M; Fri, 22 Feb 2013 00:18:45 -0800 (PST) Original-Received: from [192.168.1.9] (pool-71-189-154-249.lsanca.fios.verizon.net [71.189.154.249]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 99D08A60001; Fri, 22 Feb 2013 00:18:45 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.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:71632 Archived-At: This is a multi-part message in MIME format. --------------050202080209060103040000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Tags: patch Attached is a proposed patch that follows on to the Bug#13650 fixes, by simplifying the code to remove most of the data_start stuff, which is obsolete. This affects the Windows port so I'm CC:ing this to Eli. This patch is to Emacs trunk bzr 111855. --------------050202080209060103040000 Content-Type: text/plain; charset=UTF-8; name="data_start.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="data_start.txt" PT09IG1vZGlmaWVkIGZpbGUgJ0NoYW5nZUxvZycKLS0tIENoYW5nZUxvZwkyMDEzLTAyLTIx IDIyOjQyOjU2ICswMDAwCisrKyBDaGFuZ2VMb2cJMjAxMy0wMi0yMiAwODoxMTowNSArMDAw MApAQCAtMSwzICsxLDEyIEBACisyMDEzLTAyLTIyICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBj cy51Y2xhLmVkdT4KKworCVNpbXBsaWZ5IGRhdGFfc3RhcnQgY29uZmlndXJhdGlvbi4KKwkq IGNvbmZpZ3VyZS5hYyAoQ1JUX0RJUiwgTElCX1NUQU5EQVJELCBTVEFSVF9GSUxFUywgREFU QV9TVEFSVCkKKwkoTERfRklSU1RGTEFHLCBPUkRJTkFSWV9MSU5LLCBMSUJfR0NDKTogUmVt b3ZlLgorCShBQ19DSEVDS19IRUFERVJTX09OQ0UpOiBSZW1vdmUgc3lzL3Jlc291cmNlLmgs IGFzIGl0J3MKKwlub3QgYWx3YXlzIG5lZWRlZC4KKwkoSEFWRV9EQVRBX1NUQVJUKTogTmV3 IG1hY3JvLgorCiAyMDEzLTAyLTIxICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBjcy51Y2xhLmVk dT4KIAogCVBhcmFsbGVsaXplIGRvY3VtZW50YXRpb24gYnVpbGRzLgoKPT09IG1vZGlmaWVk IGZpbGUgJ2FkbWluL0NQUC1ERUZJTkVTJwotLS0gYWRtaW4vQ1BQLURFRklORVMJMjAxMi0x Mi0xNCAxODo1OTowMCArMDAwMAorKysgYWRtaW4vQ1BQLURFRklORVMJMjAxMy0wMi0yMiAw ODoxMTowNSArMDAwMApAQCAtOTAsNyArOTAsNiBAQAogQlJPS0VOX1BUWV9SRUFEX0FGVEVS X0VBR0FJTgogQ0xBU0hfREVURUNUSU9OCiBEQVRBX1NFR19CSVRTCi1EQVRBX1NUQVJUCiBE RUZBVUxUX1NPVU5EX0RFVklDRQogREVWSUNFX1NFUAogRElSRUNUT1JZX1NFUApAQCAtNDA4 LDcgKzQwNyw2IEBACiBOU0lHCiBOU0lHX01JTklNVU0KIE5VTExfREVWSUNFCi1PUkRJTkFS WV9MSU5LCiBQQUdFU0laRQogUFJFRkVSX1ZTVVNQCiBQVFlfSVRFUkFUSU9OCgo9PT0gbW9k aWZpZWQgZmlsZSAnYWRtaW4vQ2hhbmdlTG9nJwotLS0gYWRtaW4vQ2hhbmdlTG9nCTIwMTMt MDItMTEgMjM6Mzc6MTggKzAwMDAKKysrIGFkbWluL0NoYW5nZUxvZwkyMDEzLTAyLTIyIDA4 OjExOjA1ICswMDAwCkBAIC0xLDMgKzEsOCBAQAorMjAxMy0wMi0yMiAgUGF1bCBFZ2dlcnQg IDxlZ2dlcnRAY3MudWNsYS5lZHU+CisKKwlTaW1wbGlmeSBkYXRhX3N0YXJ0IGNvbmZpZ3Vy YXRpb24uCisJKiBDUFAtREVGSU5FUyAoREFUQV9TVEFSVCwgT1JESU5BUllfTElOSyk6IFJl bW92ZS4KKwogMjAxMy0wMi0xMSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+ CiAKIAlUdW5lIGJ5IHVzaW5nIG1lbWNociBhbmQgbWVtcmNoci4KCj09PSBtb2RpZmllZCBm aWxlICdjb25maWd1cmUuYWMnCi0tLSBjb25maWd1cmUuYWMJMjAxMy0wMi0xNSAwNjozNTo1 NCArMDAwMAorKysgY29uZmlndXJlLmFjCTIwMTMtMDItMjIgMDg6MTE6MDUgKzAwMDAKQEAg LTIzMCwxMiArMjMwLDYgQEAKICAgIGZpCiBmaQogCi1DUlRfRElSPQotQUNfQVJHX1dJVEgo W2NydC1kaXJdLGRubAotW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtY3J0LWRpcj1ESVJdLFtk aXJlY3RvcnkgY29udGFpbmluZyBjcnRuLm8gZXRjLgotVGhlIGRlZmF1bHQgaXMgL3Vzci9s aWIsIG9yIC91c3IvbGliNjQgb24gc29tZSBwbGF0Zm9ybXMuXSldKQotQ1JUX0RJUj0iJHt3 aXRoX2NydF9kaXJ9IgotCiBBQ19BUkdfV0lUSChnYW1ldXNlcixkbmwKIFtBU19IRUxQX1NU UklORyhbLS13aXRoLWdhbWV1c2VyPVVTRVJdLFt1c2VyIGZvciBzaGFyZWQgZ2FtZSBzY29y ZSBmaWxlc10pXSkKIHRlc3QgIlgke3dpdGhfZ2FtZXVzZXJ9IiAhPSBYICYmIHRlc3QgIiR7 d2l0aF9nYW1ldXNlcn0iICE9IHllcyBcCkBAIC0xMDUxLDQyICsxMDQ1LDI5IEBACiAKIAog TElCX01BVEg9LWxtCi1MSUJfU1RBTkRBUkQ9Ci1TVEFSVF9GSUxFUz0KIGRubCBDdXJyZW50 IHBvc3NpYmlsaXRpZXMgaGFuZGxlZCBieSBzZWQgKGFpeDQtMiAtPiBhaXgsCiBkbmwgZ251 LWxpbnV4IC0+IGdudS9saW51eCwgZXRjLik6CiBkbmwgZ251LCBnbnUvbGludXgsIGdudS9r ZnJlZWJzZCwgYWl4LCBjeWd3aW4sIGRhcndpbiwgaHB1eCwgaXJpeC4KIGRubCBBbmQgc3Bl Y2lhbCBjYXNlczogYmVya2VsZXktdW5peCwgdXNnLXVuaXgtdiwgbXMtZG9zLCB3aW5kb3dz LW50LgogU1lTVEVNX1RZUEU9YGVjaG8gJG9wc3lzIHwgc2VkIC1lICdzL1tbMC05XV0uKi8v JyAtZSAnc3wtfC98J2AKIAotZG5sIE5CIGRvIG5vdCB1c2UgQ1JUX0RJUiB1bnF1b3RlZCBo ZXJlLCBzaW5jZSBpdCBtaWdodCBub3QgYmUgc2V0IHlldC4KIGNhc2UgJG9wc3lzIGluCiAg IGN5Z3dpbiApCiAgICAgTElCX01BVEg9Ci0gICAgU1RBUlRfRklMRVM9J3ByZS1jcnQwLm8n CiAgICAgOzsKICAgZGFyd2luICkKICAgICAjIyBBZGRpbmcgLWxtIGNvbmZ1c2VzIHRoZSBk eW5hbWljIGxpbmtlciwgc28gb21pdCBpdC4KICAgICBMSUJfTUFUSD0KLSAgICBTVEFSVF9G SUxFUz0ncHJlLWNydDAubycKICAgICA7OwogICBmcmVlYnNkICkKLSAgICBMSUJfU1RBTkRB UkQ9Jy1sZ2NjIC1sYyAtbGdjYyAkKENSVF9ESVIpL2NydG4ubycKLSAgICBTVEFSVF9GSUxF Uz0ncHJlLWNydDAubyAkKENSVF9ESVIpL2NydDEubyAkKENSVF9ESVIpL2NydGkubycKICAg ICBTWVNURU1fVFlQRT1iZXJrZWxleS11bml4CiAgICAgOzsKICAgZ251LWxpbnV4IHwgZ251 LWtmcmVlYnNkICkKLSAgICBMSUJfU1RBTkRBUkQ9Jy1sZ2NjIC1sYyAtbGdjYyAkKENSVF9E SVIpL2NydG4ubycKLSAgICBTVEFSVF9GSUxFUz0ncHJlLWNydDAubyAkKENSVF9ESVIpL2Ny dDEubyAkKENSVF9ESVIpL2NydGkubycKICAgICA7OwogICBocHV4MTAtMjAgfCBocHV4MTEg KQotICAgIExJQl9TVEFOREFSRD0tbGMKLSAgICBTVEFSVF9GSUxFUz0ncHJlLWNydDAubyAk KENSVF9ESVIpL2NydDAubycKICAgICA7OwogICBkbmwgTkIgdGhpcyBtYXkgYmUgYWRqdXN0 ZWQgYmVsb3cuCiAgIG5ldGJzZCB8IG9wZW5ic2QgKQotICAgIExJQl9TVEFOREFSRD0nLWxn Y2MgLWxjIC1sZ2NjICQoQ1JUX0RJUikvY3J0ZW5kLm8nCi0gICAgU1RBUlRfRklMRVM9J3By ZS1jcnQwLm8gJChDUlRfRElSKS9jcnQwLm8gJChDUlRfRElSKS9jcnRiZWdpbi5vJwogICAg IFNZU1RFTV9UWVBFPWJlcmtlbGV5LXVuaXgKICAgICA7OwogCkBAIC0xMDk3LDk2ICsxMDc4 LDkgQEAKIGVzYWMKIAogQUNfU1VCU1QoTElCX01BVEgpCi1BQ19TVUJTVChTVEFSVF9GSUxF UykKIEFDX0RFRklORV9VTlFVT1RFRChTWVNURU1fVFlQRSwgIiRTWVNURU1fVFlQRSIsCiAg IFtUaGUgdHlwZSBvZiBzeXN0ZW0geW91IGFyZSBjb21waWxpbmcgZm9yOyBzZXRzIGBzeXN0 ZW0tdHlwZScuXSkKIAotZG5sIE5vdCBhbGwgcGxhdGZvcm1zIHVzZSBjcnRuLm8gZmlsZXMu ICBDaGVjayBpZiB0aGUgY3VycmVudCBvbmUgZG9lcy4KLWNydF9maWxlcz0KLQotZm9yIGZp bGUgaW4geCAkTElCX1NUQU5EQVJEICRTVEFSVF9GSUxFUzsgZG8KLSAgY2FzZSAiJGZpbGUi IGluCi0gICAgKkNSVF9ESVIqKSBjcnRfZmlsZXM9IiRjcnRfZmlsZXMgYGVjaG8gJGZpbGUg fCBzZWQgLWUgJ3N8LiovfHwnYCIgOzsKLSAgZXNhYwotZG9uZQotCi1pZiB0ZXN0ICJ4JGNy dF9maWxlcyIgIT0geDsgdGhlbgotCi0gICMjIElmIHVzZXIgc3BlY2lmaWVkIGEgY3J0LWRp ciwgdXNlIHRoYXQgdW5jb25kaXRpb25hbGx5LgotICBjcnRfZ2NjPW5vCi0KLSAgaWYgdGVz dCAiWCRDUlRfRElSIiA9ICJYIjsgdGhlbgotCi0gICAgQ1JUX0RJUj0vdXNyL2xpYiAgICAg ICAgICAgICMgZGVmYXVsdAotCi0gICAgY2FzZSAiJGNhbm9uaWNhbCIgaW4KLSAgICAgIHg4 Nl82NC0qLWxpbnV4LWdudSogfCBzMzkweC0qLWxpbnV4LWdudSopCi0gICAgICAjIyBPbiB4 ODYtNjQgYW5kIHMzOTB4IEdOVS9MaW51eCBkaXN0cmlidXRpb25zLCB0aGUgc3RhbmRhcmQg bGlicmFyeQotICAgICAgIyMgY2FuIGJlIGluIGEgdmFyaWV0eSBvZiBwbGFjZXMuICBXZSBv bmx5IHRyeSAvdXNyL2xpYjY0IGFuZCAvdXNyL2xpYi4KLSAgICAgICMjIEZvciBhbnl0aGlu ZyBlbHNlIChlZyAvdXNyL2xpYjMyKSwgaXQgaXMgdXAgdGhlIHVzZXIgdG8gc3BlY2lmeQot ICAgICAgIyMgdGhlIGxvY2F0aW9uIChidWcjNTY1NSkuCi0gICAgICAjIyBUZXN0IGZvciBj cnRuLm8sIG5vdCBqdXN0IHRoZSBkaXJlY3RvcnksIGJlY2F1c2Ugc29tZXRpbWVzIHRoZQot ICAgICAgIyMgZGlyZWN0b3J5IGV4aXN0cyBidXQgZG9lcyBub3QgaGF2ZSB0aGUgcmVsZXZh bnQgZmlsZXMgKGJ1ZyMxMjg3KS4KLSAgICAgICMjIEZJWE1FIGJldHRlciB0byB0ZXN0IGZv ciBiaW5hcnkgY29tcGF0aWJpbGl0eSBzb21laG93LgotICAgICAgdGVzdCAtZSAvdXNyL2xp YjY0L2NydG4ubyAmJiBDUlRfRElSPS91c3IvbGliNjQKLSAgICAgIDs7Ci0KLSAgICAgIHBv d2VycGM2NC0qLWxpbnV4LWdudSogfCBzcGFyYzY0LSotbGludXgtZ251KikgQ1JUX0RJUj0v dXNyL2xpYjY0IDs7Ci0gICAgZXNhYwotCi0gICAgY2FzZSAiJG9wc3lzIiBpbgotICAgICAg aHB1eDEwLTIwKSBDUlRfRElSPS9saWIgOzsKLSAgICBlc2FjCi0KLSAgICB0ZXN0ICJ4JHtH Q0N9IiA9IHh5ZXMgJiYgY3J0X2djYz15ZXMKLQotICBmaSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIENSVF9ESVIgPSAiIgotCi0gIGNydF9taXNzaW5nPQotCi0gIGZvciBmaWxl IGluICRjcnRfZmlsZXM7IGRvCi0KLSAgICAjIyBJZiB3ZSdyZSB1c2luZyBnY2MsIHRyeSB0 byBkZXRlcm1pbmUgaXQgYXV0b21hdGljYWxseSBieSBhc2tpbmcKLSAgICAjIyBnY2MuICBb SWYgdGhpcyBkb2Vzbid0IHdvcmssIENSVF9ESVIgd2lsbCByZW1haW4gYXQgdGhlCi0gICAg IyMgc3lzdGVtLWRlcGVuZGVudCBkZWZhdWx0IGZyb20gYWJvdmUuXQotICAgIGlmIHRlc3Qg JGNydF9nY2MgPSB5ZXMgJiYgdGVzdCAhIC1lICRDUlRfRElSLyRmaWxlOyB0aGVuCi0KLSAg ICAgICBjcnRfZmlsZT1gJENDIC0tcHJpbnQtZmlsZS1uYW1lPSRmaWxlIDI+L2Rldi9udWxs YAotICAgICAgIGNhc2UgIiRjcnRfZmlsZSIgaW4KLSAgICAgICAgICovKikKLSAgICAgICAg ICAgQ1JUX0RJUj1gQVNfRElSTkFNRShbIiRjcnRfZmlsZSJdKWAKLSAgICAgICAgICAgOzsK LSAgICAgICBlc2FjCi0gICAgZmkKLQotICAgIGRubCBXZSBleHBlY3QgYWxsIHRoZSBmaWxl cyB0byBiZSBpbiBhIHNpbmdsZSBkaXJlY3RvcnksIHNvIGFmdGVyIHRoZQotICAgIGRubCBm aXJzdCB0aGVyZSBpcyBubyBwb2ludCBhc2tpbmcgZ2NjLgotICAgIGNydF9nY2M9bm8KLQot ICAgIHRlc3QgLWUgJENSVF9ESVIvJGZpbGUgfHwgY3J0X21pc3Npbmc9IiRjcnRfbWlzc2lu ZyAkZmlsZSIKLSAgZG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAkY3J0X2ZpbGVz Ci0KLSAgdGVzdCAieCRjcnRfbWlzc2luZyIgPSB4IHx8IFwKLSAgICBBQ19NU0dfRVJST1Io W1JlcXVpcmVkIGZpbGUocykgbm90IGZvdW5kOiRjcnRfbWlzc2luZwotVHJ5IHVzaW5nIHRo ZSAtLXdpdGgtY3J0LWRpciBvcHRpb24uXSkKLQotZmkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIGNydF9maWxlcyAhPSAiIgotCi1BQ19TVUJTVChDUlRfRElSKQotCi1jYXNl ICRvcHN5cyBpbgotICBuZXRic2QgfCBvcGVuYnNkICkKLSAgICBpZiB0ZXN0IC1mICRDUlRf RElSL2NydGkubzsgdGhlbgotCi0gICAgICAgIHRlc3QgLWYgJENSVF9ESVIvY3J0bi5vIHx8 IFwKLSAgICAgICAgICBBQ19NU0dfRVJST1IoW1JlcXVpcmVkIGZpbGUgbm90IGZvdW5kOiBj cnRuLm9dKQotCi0gICAgICAgIExJQl9TVEFOREFSRD0nLWxnY2MgLWxjIC1sZ2NjICQoQ1JU X0RJUikvY3J0ZW5kLm8gJChDUlRfRElSKS9jcnRuLm8nCi0gICAgICAgIFNUQVJUX0ZJTEVT PSdwcmUtY3J0MC5vICQoQ1JUX0RJUikvY3J0MC5vICQoQ1JUX0RJUikvY3J0aS5vICQoQ1JU X0RJUikvY3J0YmVnaW4ubycKLSAgICBmaQotICAgIDs7Ci1lc2FjCi0KIAogcHJlX1BLR19D T05GSUdfQ0ZMQUdTPSRDRkxBR1MKIHByZV9QS0dfQ09ORklHX0xJQlM9JExJQlMKQEAgLTEz MDQsNyArMTE5OCw3IEBACiBBQ19DSEVDS19IRUFERVJTX09OQ0UoCiAgIGxpbnV4L3ZlcnNp b24uaCBzeXMvc3lzdGVtaW5mby5oCiAgIGNvZmYuaCBwdHkuaAotICBzeXMvdmxpbWl0Lmgg c3lzL3Jlc291cmNlLmgKKyAgc3lzL3Jlc291cmNlLmgKICAgc3lzL3V0c25hbWUuaCBwd2Qu aCB1dG1wLmggdXRpbC5oKQogCiBBQ19NU0dfQ0hFQ0tJTkcoaWYgcGVyc29uYWxpdHkgTElO VVgzMiBjYW4gYmUgc2V0KQpAQCAtMTUyMSw4ICsxNDE1LDYgQEAKICAgICAgQ0ZMQUdTPSIk Q0ZMQUdTIC1JJHtHTlVTVEVQX1NZU1RFTV9IRUFERVJTfSAke0dOVVNURVBfTE9DQUxfSEVB REVSU30iCiAgICAgIExERkxBR1M9IiRMREZMQUdTIC1MJHtHTlVTVEVQX1NZU1RFTV9MSUJS QVJJRVN9ICR7R05VU1RFUF9MT0NBTF9MSUJSQVJJRVN9IgogICAgICBMSUJTX0dOVVNURVA9 Ii1sZ251c3RlcC1ndWkgLWxnbnVzdGVwLWJhc2UgLWxvYmpjIC1scHRocmVhZCIKLSAgICAg TElCX1NUQU5EQVJEPQotICAgICBTVEFSVF9GSUxFUz0KICAgICAgZG5sIEdOVXN0ZXAgZGVm aW5lcyBCQVNFX05BVElWRV9PQkpDX0VYQ0VQVElPTlMgdG8gMCBvciAxLgogICAgICBkbmwg SWYgdGhleSBoYWQgY2hvc2VuIHRvIGVpdGhlciBkZWZpbmUgaXQgb3Igbm90LCB3ZSBjb3Vs ZCBoYXZlCiAgICAgIGRubCBqdXN0IHVzZWQgQUNfQ0hFQ0tfREVDTCBoZXJlLgpAQCAtMTYx MSw3ICsxNTAzLDYgQEAKIEFDX1NVQlNUKG5zX3NlbGZfY29udGFpbmVkKQogQUNfU1VCU1Qo TlNfT0JKKQogQUNfU1VCU1QoTlNfT0JKQ19PQkopCi1BQ19TVUJTVChMSUJfU1RBTkRBUkQp CiAKIEhBVkVfVzMyPW5vCiBXMzJfT0JKPQpAQCAtMTc1MSw2ICsxNjQyLDIwIEBACiBlbHNl CiAgIHRlc3QgIiRkb3VnX2xlYV9tYWxsb2MiICE9ICJ5ZXMiICYmIEdNQUxMT0NfT0JKPWdt YWxsb2MubwogICBWTUxJTUlUX09CSj12bS1saW1pdC5vCisKKyAgQUNfQ0hFQ0tfSEVBREVS Uyhbc3lzL3ZsaW1pdC5oXSkKKyAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBkYXRhX3N0YXJ0XSwg W2VtYWNzX2N2X2RhdGFfc3RhcnRdLAorICAgIFtBQ19MSU5LX0lGRUxTRSgKKyAgICAgICBb QUNfTEFOR19QUk9HUkFNKAorCSBbW2V4dGVybiBjaGFyIGRhdGFfc3RhcnRbXTsgY2hhciBj aDtdXSwKKwkgW1tyZXR1cm4gZGF0YV9zdGFydCA9PSAmY2g7XV0pXSwKKyAgICAgICBbZW1h Y3NfY3ZfZGF0YV9zdGFydD15ZXNdLAorICAgICAgIFtlbWFjc19jdl9kYXRhX3N0YXJ0PW5v XSldKQorICBpZiB0ZXN0ICRlbWFjc19jdl9kYXRhX3N0YXJ0ID0geWVzOyB0aGVuCisgICAg QUNfREVGSU5FKFtIQVZFX0RBVEFfU1RBUlRdLCAxLAorICAgICAgW0RlZmluZSB0byAxIGlm IGRhdGFfc3RhcnQgaXMgdGhlIGFkZHJlc3Mgb2YgdGhlIHN0YXJ0CisgICAgICAgb2YgdGhl IG1haW4gZGF0YSBzZWdtZW50Ll0pCisgIGZpCiBmaQogQUNfU1VCU1QoR01BTExPQ19PQkop CiBBQ19TVUJTVChWTUxJTUlUX09CSikKQEAgLTM3MzUsOSArMzY0MCw3IEBACiBlc2FjCiAK IAotZG5sIFVzZWQgaW4gdm0tbGltaXQuYwotQUhfVEVNUExBVEUoREFUQV9TVEFSVCwgW0Fk ZHJlc3Mgb2YgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIHNlZ21lbnQuXSkKLWRubCBVc2VkIGlu IGxpc3AuaCwgZW1hY3MuYywgbWVtLWxpbWl0cy5oCitkbmwgVXNlZCBpbiBsaXNwLmgsIGVt YWNzLmMsIHZtLWxpbWl0LmMKIGRubCBORVdTLjE4IGRlc2NyaWJlcyB0aGlzIGFzICJhIG51 bWJlciB3aGljaCBjb250YWlucwogZG5sIHRoZSBoaWdoIGJpdHMgdG8gYmUgaW5jbHVzaXZl IG9yJ2VkIHdpdGggcG9pbnRlcnMgdGhhdCBhcmUgdW5wYWNrZWQuIgogQUhfVEVNUExBVEUo REFUQV9TRUdfQklUUywgW0V4dHJhIGJpdHMgdG8gYmUgb3InZCBpbiB3aXRoIGFueSBwb2lu dGVycwpAQCAtMzc0NSwyMyArMzY0OCwxNSBAQAogZG5sIGlmIEVtYWNzIHVzZXMgZmV3ZXIg dGhhbiAzMiBiaXRzIGZvciB0aGUgdmFsdWUgZmllbGQgb2YgYSBMSVNQX09CSkVDVC4KIAog Y2FzZSAkb3BzeXMgaW4KLSAgZ251KQotICAgIGRubCBsaWJjIGRlZmluZXMgZGF0YV9zdGFy dC4KLSAgICBBQ19ERUZJTkUoREFUQV9TVEFSVCwgWyh7IGV4dGVybiBpbnQgZGF0YV9zdGFy dDsgKGNoYXIgKikgJmRhdGFfc3RhcnQ7IH0pXSkKLSAgICA7OwotCiAgIGFpeCopCiAgICAg ZG5sIFRoaXMgd29ya3Mgd2l0aCAzMi1iaXQgZXhlY3V0YWJsZXM7IEVtYWNzIGRvZXNuJ3Qg c3VwcG9ydCA2NC1iaXQuCi0gICAgQUNfREVGSU5FKERBVEFfU1RBUlQsIFsweDIwMDAwMDAw XSkKICAgICBBQ19ERUZJTkUoREFUQV9TRUdfQklUUywgWzB4MjAwMDAwMDBdKQogICAgIDs7 CiAgIGhwdXgqKQogICAgIGRubCBUaGUgZGF0YSBzZWdtZW50IG9uIHRoaXMgbWFjaGluZSBh bHdheXMgc3RhcnRzIGF0IGFkZHJlc3MgMHg0MDAwMDAwMC4KLSAgICBBQ19ERUZJTkUoREFU QV9TVEFSVCwgWzB4NDAwMDAwMDBdKQogICAgIEFDX0RFRklORShEQVRBX1NFR19CSVRTLCBb MHg0MDAwMDAwMF0pCiAgICAgOzsKICAgaXJpeDYtNSkKLSAgICBBQ19ERUZJTkUoREFUQV9T VEFSVCwgWzB4MTAwMDAwMDBdKQogICAgIEFDX0RFRklORShEQVRBX1NFR19CSVRTLCBbMHgx MDAwMDAwMF0pCiAgICAgOzsKIGVzYWMKQEAgLTQzMjEsODggKzQyMTYsNiBAQAogCiBBQ19T VUJTVChMRF9TV0lUQ0hfU1lTVEVNX1RFTUFDUykKIAotCi1MRF9GSVJTVEZMQUc9Ci1PUkRJ TkFSWV9MSU5LPQotY2FzZSAiJG9wc3lzIiBpbgotICAjIyBnbnU6IEdOVSBuZWVkcyBpdHMg b3duIGNydDAuCi0gIGFpeDQtMnxjeWd3aW58ZGFyd2lufGdudXxocHV4Knxpcml4Ni01fHNv bDIqfHVuaXh3YXJlKSBPUkRJTkFSWV9MSU5LPXllcyA7OwotCi0gICMjIE9uIHBvc3QgMS4z IHJlbGVhc2VzIG9mIE5ldEJTRCwgZ2NjIC1ub3N0ZGxpYiBhbHNvIGNsZWFycyB0aGUKLSAg IyMgbGlicmFyeSBzZWFyY2ggcGFydGgsIGkuZS4gaXQgd29uJ3Qgc2VhcmNoIC91c3IvbGli IGZvciBsaWJjIGFuZAotICAjIyBmcmllbmRzLiAgVXNpbmcgLW5vc3RhcnRmaWxlcyBpbnN0 ZWFkIGF2b2lkcyB0aGlzIHByb2JsZW0sIGFuZAotICAjIyB3aWxsIGFsc28gd29yayBvbiBl YXJsaWVyIE5ldEJTRCByZWxlYXNlcy4KLSAgbmV0YnNkfG9wZW5ic2QpIExEX0ZJUlNURkxB Rz0iLW5vc3RhcnRmaWxlcyIgOzsKLQotICAjIyBwb3dlcnBjKjogTkFLQUpJIEhpcm95dWtp IDxuYWthamlAdHV0cnAudHV0LmFjLmpwPiBzYXlzCi0gICMjICAgTWtMaW51eC9MaW51eFBQ QyBuZWVkcyB0aGlzLgotICAjIyBzMzkweC0qIG9ubHkgc3VwcG9ydHMgb3BzeXMgPSBnbnUt bGludXggc28gaXQgY2FuIGJlIGFkZGVkIGhlcmUuCi0gIGdudS0qKQotICAgIGNhc2UgIiRj YW5vbmljYWwiIGluCi0gICAgICBwb3dlcnBjKnxzMzkweC0qKSBMRF9GSVJTVEZMQUc9Ii1u b3N0ZGxpYiIgOzsKLSAgICBlc2FjCi0gICAgOzsKLWVzYWMKLQotCi1pZiB0ZXN0ICJ4JE9S RElOQVJZX0xJTksiID0gInh5ZXMiOyB0aGVuCi0KLSAgTERfRklSU1RGTEFHPSIiCi0gIEFD X0RFRklORShPUkRJTkFSWV9MSU5LLCAxLCBbRGVmaW5lIGlmIHRoZSBDIGNvbXBpbGVyIGlz IHRoZSBsaW5rZXIuXSkKLQotIyMgVGhlIHN5c3RlbSBmaWxlcyBkZWZpbmluZyBuZWl0aGVy IE9SRElOQVJZX0xJTksgbm9yIExEX0ZJUlNURkxBRyBhcmU6Ci0jIyBmcmVlYnNkLCBnbnUt KiBub3Qgb24gcG93ZXJwYyp8czM5MHgqLgotZWxpZiB0ZXN0ICJ4JEdDQyIgPSAieHllcyIg JiYgdGVzdCAieCRMRF9GSVJTVEZMQUciID0gIngiOyB0aGVuCi0KLSAgIyMgVmVyc2lvbnMg b2YgR0NDID49IDIuMCBwdXQgdGhlaXIgbGlicmFyeSwgbGliZ2NjLmEsIGluIG9ic2N1cmUK LSAgIyMgcGxhY2VzIHRoYXQgYXJlIGRpZmZpY3VsdCB0byBmaWd1cmUgb3V0IGF0IG1ha2Ug dGltZS4gIEZvcnR1bmF0ZWx5LAotICAjIyB0aGVzZSBzYW1lIHZlcnNpb25zIGFsbG93IHlv dSB0byBwYXNzIGFyYml0cmFyeSBmbGFncyBvbiB0byB0aGUKLSAgIyMgbGlua2VyLCBzbyB0 aGVyZSBpcyBubyByZWFzb24gbm90IHRvIHVzZSBpdCBhcyBhIGxpbmtlci4KLSAgIyMKLSAg IyMgV2VsbCwgaXQgaXMgbm90IHF1aXRlIHBlcmZlY3QuICBUaGUgIi1ub3N0ZGxpYiIga2Vl cHMgR0NDIGZyb20KLSAgIyMgc2VhcmNoaW5nIGZvciBsaWJyYXJpZXMgaW4gaXRzIGludGVy bmFsIGRpcmVjdG9yaWVzLCBzbyB3ZSBoYXZlIHRvCi0gICMjIGFzayBHQ0MgZXhwbGljaXRs eSB3aGVyZSB0byBmaW5kIGxpYmdjYy5hIChMSUJfR0NDIGJlbG93KS4KLSAgTERfRklSU1RG TEFHPSItbm9zdGRsaWIiCi1maQotCi0jIyBGSVhNRT8gV2hhdCBzZXR0aW5nIG9mIEVESVRf TERGTEFHUyBzaG91bGQgdGhpcyBoYXZlPwotdGVzdCAiJE5TX0lNUExfR05VU1RFUCIgPSAi eWVzIiAmJiBMRF9GSVJTVEZMQUc9Ii1yZHluYW1pYyIKLQotQUNfU1VCU1QoTERfRklSU1RG TEFHKQotCi0KLSMjIEZJWE1FPyBUaGUgbG9naWMgaGVyZSBpcyBub3QgcHJlY2lzZWx5IHRo ZSBzYW1lIGFzIHRoYXQgYWJvdmUuCi0jIyBUaGVyZSBpcyBubyBjaGVjayBoZXJlIGZvciBh IHByZS1kZWZpbmVkIExEX0ZJUlNURkxBRy4KLSMjIFNob3VsZCB3ZSBvbmx5IGJlIHNldHRp bmcgTElCX0dDQyBpZiBMRCB+IC1ub3N0ZGxpYj8KLUxJQl9HQ0M9Ci1pZiB0ZXN0ICJ4JEdD QyIgPSAieHllcyIgJiYgdGVzdCAieCRPUkRJTkFSWV9MSU5LIiAhPSAieHllcyI7IHRoZW4K LQotICBjYXNlICIkb3BzeXMiIGluCi0gICAgZnJlZWJzZHxuZXRic2R8b3BlbmJzZCkgTElC X0dDQz0gOzsKLQotICAgIGdudS0qKQotICAgICAgIyMgYXJtaW43NkBnZW50b28ub3JnIHJl cG9ydGVkIHRoYXQgdGhlIGxnY2NfcyBmbGFnIGlzIG5lY2Vzc2FyeSB0bwotICAgICAgIyMg YnVpbGQgb24gQVJNIEVBQkkgdW5kZXIgR05VL0xpbnV4LiAgKEJ1ZyM1NTE4KQotICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KLSAgICAgIGFybSopCi0gICAgICAgIExJQl9HQ0M9Ii1sZ2Nj X3MiCi0JOzsKLSAgICAgICopCi0gICAgICAgICMjIEZJWE1FPyBzL2dudS1saW51eC5oIHVz ZWQgdG8gZGVmaW5lIExJQl9HQ0MgYXMgYmVsb3csIHRoZW4KLSAgICAgICAgIyMgaW1tZWRp YXRlbHkgdW5kZWZpbmUgaXQgYWdhaW4gYW5kIHJlZGVmaW5lIGl0IHRvIGVtcHR5LgotICAg ICAgICAjIyBXYXMgdGhlIENfU1dJVENIX1hfU0lURSBwYXJ0IHJlYWxseSBuZWNlc3Nhcnk/ Ci0jIyAgICAgIExJQl9HQ0M9YCRDQyAkQ19TV0lUQ0hfWF9TSVRFIC1wcmludC1saWJnY2Mt ZmlsZS1uYW1lYAotICAgICAgICBMSUJfR0NDPQotCTs7Ci0gICAgICBlc2FjCi0gICAgICA7 OwotCi0gICAgIyMgQXNrIEdDQyB3aGVyZSB0byBmaW5kIGxpYmdjYy5hLgotICAgICopIExJ Ql9HQ0M9YCRDQyAtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZSAyPiAvZGV2L251bGxgIDs7Ci0g IGVzYWMKLWZpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG5sIGlmICRHQ0MKLUFD X1NVQlNUKExJQl9HQ0MpCi0KICMjIENvbW1vbiBmb3IgYWxsIHdpbmRvdyBzeXN0ZW1zCiBp ZiB0ZXN0ICIkd2luZG93X3N5c3RlbSIgIT0gIm5vbmUiOyB0aGVuCiAgIEFDX0RFRklORShI QVZFX1dJTkRPV19TWVNURU0sIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgYSB3aW5kb3cgc3lz dGVtLl0pCgo9PT0gbW9kaWZpZWQgZmlsZSAnZXRjL0NoYW5nZUxvZycKLS0tIGV0Yy9DaGFu Z2VMb2cJMjAxMy0wMi0xOSAxNDo0NDowMyArMDAwMAorKysgZXRjL0NoYW5nZUxvZwkyMDEz LTAyLTIyIDA4OjExOjA1ICswMDAwCkBAIC0xLDMgKzEsMTAgQEAKKzIwMTMtMDItMjIgIFBh dWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJU2ltcGxpZnkgZGF0YV9zdGFy dCBjb25maWd1cmF0aW9uLgorCSogUFJPQkxFTVMgKExJQlNfU1lTVEVNLCBMSUJTX01BQ0hJ TkUsIExJQlNfU1RBTkRBUkQpOiBSZW1vdmUuCisJUmVtb3ZlIGxlZ2FjeS1zeXN0ZW1zIHNl Y3Rpb24sIGFzIHRoaXMgc3R1ZmYgaXMgbm8gbG9uZ2VyCisJYXBwbGljYWJsZSB3aXRoIGN1 cnJlbnQgbGlua2luZyBzdHJhdGVnaWVzLgorCiAyMDEzLTAyLTE0ICBNaWNoYWVsIEFsYmlu dXMgIDxtaWNoYWVsLmFsYmludXNAZ214LmRlPgogCiAJKiBORVdTOiBUcmFtcCBtZXRob2Rz ICJzY3BjIiBhbmQgInJzeW5jYyIgYXJlIGRpc2NvbnRpbnVlZC4KCj09PSBtb2RpZmllZCBm aWxlICdldGMvUFJPQkxFTVMnCi0tLSBldGMvUFJPQkxFTVMJMjAxMy0wMi0xMSAwMDozNToz NyArMDAwMAorKysgZXRjL1BST0JMRU1TCTIwMTMtMDItMjIgMDg6MTE6MDUgKzAwMDAKQEAg LTQzMiwyMSArNDMyLDcgQEAKIGluc3RhbGxlZCBpbiB0aGUgc2hhcmVkIGxpYnJhcnksIGFu ZCB0aGVuIHJlbGluayBFbWFjcy4KIAogSWYgeW91IGhhdmUgYWxyZWFkeSBpbnN0YWxsZWQg dGhlIG5hbWUgcmVzb2x2ZXIgaW4gdGhlIGZpbGUgbGlicmVzb2x2LmEsCi10aGVuIHlvdSBu ZWVkIHRvIGNvbXBpbGUgRW1hY3MgdG8gdXNlIHRoYXQgbGlicmFyeS4gIFRoZSBlYXNpZXN0 IHdheSB0bwotZG8gdGhpcyBpcyB0byBhZGQgdG8gY29uZmlnLmggYSBkZWZpbml0aW9uIG9m IExJQlNfU1lTVEVNLCBMSUJTX01BQ0hJTkUKLW9yIExJQl9TVEFOREFSRCB3aGljaCB1c2Vz IC1scmVzb2x2LiAgV2F0Y2ggb3V0ISAgSWYgeW91IHJlZGVmaW5lIGEgbWFjcm8KLXRoYXQg aXMgYWxyZWFkeSBpbiB1c2UgaW4geW91ciBjb25maWd1cmF0aW9uIHRvIHN1cHBseSBzb21l IG90aGVyIGxpYnJhcmllcywKLWJlIGNhcmVmdWwgbm90IHRvIGxvc2UgdGhlIG90aGVycy4K LQotVGh1cywgeW91IGNvdWxkIHN0YXJ0IGJ5IGFkZGluZyB0aGlzIHRvIGNvbmZpZy5oOgot Ci0jZGVmaW5lIExJQlNfU1lTVEVNIC1scmVzb2x2Ci0KLVRoZW4gaWYgdGhpcyBnaXZlcyB5 b3UgYW4gZXJyb3IgZm9yIHJlZGVmaW5pbmcgYSBtYWNybywgYW5kIHlvdSBzZWUgdGhhdAot Y29uZmlnLmggYWxyZWFkeSBkZWZpbmVzIExJQlNfU1lTVEVNIGFzIC1sZm9vIC1sYmFyIGF0 IHNvbWUgb3RoZXIgcG9pbnQKLShwb3NzaWJseSBpbiBhbiBpbmNsdWRlZCBmaWxlKSB5b3Ug Y291bGQgY2hhbmdlIGl0IHRvIHNheSB0aGlzOgotCi0jZGVmaW5lIExJQlNfU1lTVEVNIC1s cmVzb2x2IC1sZm9vIC1sYmFyCit0aGVuIHlvdSBuZWVkIHRvIGNvbXBpbGUgRW1hY3MgdG8g dXNlIHRoYXQgbGlicmFyeS4KIAogKioqIEVtYWNzIGRvZXMgbm90IGtub3cgeW91ciBob3N0 J3MgZnVsbHktcXVhbGlmaWVkIGRvbWFpbiBuYW1lLgogCkBAIC0zMTc5LDI1ICszMTY1LDYg QEAKIAogVGhpcyBwcm9ibGVtIHNlZW1zIHRvIGJlIGEgbWF0dGVyIG9mIGNvbmZpZ3VyaW5n IHRoZSBERUNzZXJ2ZXIgdG8gdXNlCiA3IGJpdCBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIDgg Yml0IGNoYXJhY3RlcnMuCi0KLSogQnVpbGQgcHJvYmxlbXMgb24gbGVnYWN5IHN5c3RlbXMK LQotKiogU3VuT1M6IEVtYWNzIGdldHMgZXJyb3IgbWVzc2FnZSBmcm9tIGxpbmtlciBvbiBT dW4uCi0KLUlmIHRoZSBlcnJvciBtZXNzYWdlIHNheXMgdGhhdCBhIHN5bWJvbCBzdWNoIGFz IGBmNjg4ODFfdXNlZCcgb3IKLWBmZnBhX3VzZWQnIG9yIGBzdGFydF9mbG9hdCcgaXMgdW5k ZWZpbmVkLCB0aGlzIHByb2JhYmx5IGluZGljYXRlcwotdGhhdCB5b3UgaGF2ZSBjb21waWxl ZCBzb21lIGxpYnJhcmllcywgc3VjaCBhcyB0aGUgWCBsaWJyYXJpZXMsCi13aXRoIGEgZmxv YXRpbmcgcG9pbnQgb3B0aW9uIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQuCi0KLUl0J3Mgbm90 IHRlcnJpYmx5IGhhcmQgdG8gbWFrZSB0aGlzIHdvcmsgd2l0aCBzbWFsbCBjaGFuZ2VzIGlu Ci1jcnQwLmMgdG9nZXRoZXIgd2l0aCBsaW5raW5nIHdpdGggRmNydDEubywgV2NydDEubyBv ciBNY3J0MS5vLgotSG93ZXZlciwgdGhlIGVhc2llc3QgYXBwcm9hY2ggaXMgdG8gYnVpbGQg WGxpYiB3aXRoIHRoZSBkZWZhdWx0Ci1mbG9hdGluZyBwb2ludCBvcHRpb246IC1mc29mdC4K LQotKiogSFBVWCAxMC4yMDogRW1hY3MgY3Jhc2hlcyBkdXJpbmcgZHVtcGluZyBvbiB0aGUg SFBQQSBtYWNoaW5lLgotCi1UaGlzIHNlZW1zIHRvIGJlIGR1ZSB0byBhIEdDQyBidWc7IGl0 IGlzIGZpeGVkIGluIEdDQyAyLjguMS4KLQogDAogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05V IEVtYWNzLgogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL0NoYW5nZUxvZycKLS0tIHNyYy9D aGFuZ2VMb2cJMjAxMy0wMi0yMSAwMjozNTozMyArMDAwMAorKysgc3JjL0NoYW5nZUxvZwky MDEzLTAyLTIyIDA4OjExOjA1ICswMDAwCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTMtMDItMjIg IFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJU2ltcGxpZnkgZGF0YV9z dGFydCBjb25maWd1cmF0aW9uLgorCVRoaXMgaXMgYSBmb2xsb3dvbiBzaW1wbGlmaWNhdGlv biB0byB0aGUgZml4IGZvciBCdWcjMTM2NTAuCisJKiBNYWtlZmlsZS5pbiAoTERfRklSU1RG TEFHLCBMSUJfR0NDLCBDUlRfRElSLCBMSUJfU1RBTkRBUkQpCisJKFNUQVJUX0ZJTEVTKTog UmVtb3ZlLiAgQWxsIHVzZXMgcmVtb3ZlZC4KKwkob3RoZXJvYmopOiBSZW1vdmUgJChWTUxJ TUlUX09CSiksIGFzIGl0J3Mgbm93IGZpcnN0LgorCShidWlsZG9iai5oKTogTWVudGlvbiBW TUxJTUlUX09CSiBmaXJzdCwgYXMgb3RoZXJvYmogbm8gbG9uZ2VyCisJbWVudGlvbnMgaXQu CisJKCQoVk1MSU1JVF9PQkopKTogRGVwZW5kIG9uIGdsb2JhbHMuaC4KKwkodGVtYWNzJChF WEVFWFQpKTogTGluayAkKFZNTElNSVRfT0JKKSBmaXJzdC4KKwkqIGF1dG9kZXBzLm1rIChB TExPQkpTKTogUmVtb3ZlICQoU1RBUlRfRklMRVMpLgorCSogZGVwcy5tayAodm0tbGltaXQu byk6CisJKiBtYWtlZmlsZS53MzItaW4gKCQoQkxEKS92bS1saW1pdC4kKE8pKToKKwlEbyBu b3QgZGVwZW5kIG9uIG1lbS1saW1pdHMuaC4KKwkqIGVtYWNzLmMgKF9fZG9fZ2xvYmFsX2N0 b3JzLCBfX2RvX2dsb2JhbF9jdG9yc19hdXgpCisJKF9fZG9fZ2xvYmFsX2R0b3JzLCBfX0NU T1JfTElTVF9fLCBfX0RUT1JfTElTVF9fKQorCVtfX0dOVUNfXyAmJiAhT1JESU5BUllfTElO S106IFJlbW92ZS4KKwkqIG1lbS1saW1pdHMuaCwgcHJlLWNydDAuYzogUmVtb3ZlLgorCSog dW5leGFpeC5jLCB1bmV4Y29mZi5jOiBEb24ndCBpbmNsdWRlIG1lbS1saW1pdHMuaC4KKwkq IHVuZXhjb2ZmLmMgKGdldF9kYXRhX3N0YXJ0KTogTmV3IGRlY2wuCisJKG1ha2VfaGRyKTog Q2FsbCBpdCBpbnN0ZWFkIG9mIHN0YXJ0X29mX2RhdGEuCisJKiB2bS1saW1pdC5jOiBNb3Zl IG1vc3Qgb2YgbWVtLWxpbWl0cy5oJ3MgY29udGVudHMgaGVyZS4KKwkoZGF0YV9zdGFydCk6 IE5ldyBkZWNsLiAgSXQncyBPSyBpZiB0aGlzIGlzIGFwcHJveGltYXRlLAorCXNvIHNpbXBs aWZ5LWF3YXkgc29tZSB1bm5lY2Vzc2FyeSBleGFjdG5lc3MuCisJKFBPSU5URVIpOiBSZW1v dmU7IGFsbCB1c2VzIHJlbW92ZWQuCisJKGRhdGFfc3BhY2Vfc3RhcnQpOiBOb3cgY2hhciAq LCB0byBhdm9pZCBjYXN0cy4KKwkoZXhjZWVkc19saXNwX3B0cik6IE5ldyBmdW5jdGlvbiwg cmVwbGFjaW5nIHRoZSBvbGQKKwlFWENFRURTX0xJU1BfUFRSIG1hY3JvLiAgQWxsIHVzZXMg Y2hhbmdlZC4KKwkoY2hlY2tfbWVtb3J5X2xpbWl0cyk6IFNpbXBsaWZ5IGFuZCByZW1vdmUg Y2FzdHMuCisJKHN0YXJ0X29mX2RhdGEpIFshQ0FOTk9UX0RVTVAgfHwgIVNZU1RFTV9NQUxM T0NdOiBSZW1vdmUuCisJKG1lbW9yeV93YXJuaW5ncyk6IFVzZSBkYXRhX3N0YXJ0IGluc3Rl YWQgb2Ygc3RhcnRfb2ZfZGF0YS4KKwogMjAxMy0wMi0yMSAgS2VuIEJyb3duICA8a2Jyb3du QGNvcm5lbGwuZWR1PgogCiAJKiBzaGVhcC5jIChyZXBvcnRfc2hlYXBfdXNhZ2UpOiBGaXgg YXJndW1lbnRzIG9mIG1lc3NhZ2UxX25vX2xvZy4KCj09PSBtb2RpZmllZCBmaWxlICdzcmMv TWFrZWZpbGUuaW4nCi0tLSBzcmMvTWFrZWZpbGUuaW4JMjAxMy0wMS0wMiAxNjoxMzowNCAr MDAwMAorKysgc3JjL01ha2VmaWxlLmluCTIwMTMtMDItMjIgMDg6MTE6MDUgKzAwMDAKQEAg LTM2LDcgKzM2LDYgQEAKIENGTEFHUyA9IEBDRkxBR1NACiBDUFBGTEFHUyA9IEBDUFBGTEFH U0AKIExERkxBR1MgPSBATERGTEFHU0AKLUxEX0ZJUlNURkxBRz1ATERfRklSU1RGTEFHQAog RVhFRVhUID0gQEVYRUVYVEAKIHZlcnNpb24gPSBAdmVyc2lvbkAKICMgU3Vic3RpdHV0ZSBh biBhc3NpZ25tZW50IGZvciB0aGUgTUFLRSB2YXJpYWJsZSwgYmVjYXVzZQpAQCAtMTAyLDEw ICsxMDEsOCBAQAogIyMgU3lzdGVtLXNwZWNpZmljIExERkxBR1MuCiBMRF9TV0lUQ0hfU1lT VEVNPUBMRF9TV0lUQ0hfU1lTVEVNQAogCi0jIyBUaGlzIGhvbGRzIGFueSBzcGVjaWFsIG9w dGlvbnMgZm9yIGxpbmtpbmcgdGVtYWNzIG9ubHkgKGllLCBub3QKLSMjIHVzZWQgYnkgY29u ZmlndXJlKS4gIE5vdCB1c2VkIGVsc2V3aGVyZSBiZWNhdXNlIGl0IHNvbWV0aW1lcwotIyMg Y29udGFpbnMgb3B0aW9ucyB0aGF0IGhhdmUgdG8gZG8gd2l0aCB1c2luZyBFbWFjcydzIGNy dDAsCi0jIyB3aGljaCBhcmUgb25seSBnb29kIHdpdGggdGVtYWNzLgorIyMgVGhpcyBob2xk cyBhbnkgc3BlY2lhbCBvcHRpb25zIGZvciBsaW5raW5nIHRlbWFjcyBvbmx5IChpLmUuLCBu b3QKKyMjIHVzZWQgYnkgY29uZmlndXJlKS4KIExEX1NXSVRDSF9TWVNURU1fVEVNQUNTPUBM RF9TV0lUQ0hfU1lTVEVNX1RFTUFDU0AKIAogIyMgRmxhZ3MgdG8gcGFzcyB0byBsZCBvbmx5 IGZvciB0ZW1hY3MuCkBAIC0xMjAsMTQgKzExNyw2IEBACiAjIyBTb21lIHN5c3RlbXMgZGVm aW5lIHRoaXMgdG8gcmVxdWVzdCBzcGVjaWFsIGxpYnJhcmllcy4KIExJQlNfU1lTVEVNPUBM SUJTX1NZU1RFTUAKIAotIyMgV2hlcmUgdG8gZmluZCBsaWJnY2MuYSwgaWYgdXNpbmcgZ2Nj IGFuZCBuZWNlc3NhcnkuCi1MSUJfR0NDPUBMSUJfR0NDQAotCi1DUlRfRElSPUBDUlRfRElS QAotIyMgTWF5IHVzZSAkQ1JUX0RJUi4KLUxJQl9TVEFOREFSRD1ATElCX1NUQU5EQVJEQAot U1RBUlRfRklMRVMgPSBAU1RBUlRfRklMRVNACi0KICMjIC1sbSwgb3IgZW1wdHkuCiBMSUJf TUFUSD1ATElCX01BVEhACiAKQEAgLTM4OSw3ICszNzgsNyBAQAogCiAjIyBMaXN0IG9mIG9i amVjdCBmaWxlcyB0aGF0IG1ha2UtZG9jZmlsZSBzaG91bGQgbm90IGJlIHRvbGQgYWJvdXQu CiBvdGhlcm9iaj0gJChURVJNQ0FQX09CSikgJChQUkVfQUxMT0NfT0JKKSAkKEdNQUxMT0Nf T0JKKSAkKFJBTExPQ19PQkopIFwKLSAgJChQT1NUX0FMTE9DX09CSikgJChWTUxJTUlUX09C SikgJChXSURHRVRfT0JKKSAkKExJQk9CSlMpCisgICQoUE9TVF9BTExPQ19PQkopICQoV0lE R0VUX09CSikgJChMSUJPQkpTKQogCiAKICMjIENvbmZpZ3VyZSBpbnNlcnRzIHRoZSBmaWxl IGxpc3AubWsgYXQgdGhpcyBwb2ludCwgZGVmaW5pbmcgJGxpc3AuCkBAIC0zOTcsOSArMzg2 LDYgQEAKIAogCiAjIyBDb25zdHJ1Y3QgZnVsbCBzZXQgb2YgbGlicmFyaWVzIHRvIGJlIGxp bmtlZC4KLSMjIE5vdGUgdGhhdCBTdW5PUyBuZWVkcyAtbG0gdG8gY29tZSBiZWZvcmUgLWxj OyBvdGhlcndpc2UsIHlvdSBnZXQKLSMjIGR1cGxpY2F0ZWQgc3ltYm9scy4gIElmIHRoZSBz dGFuZGFyZCBsaWJyYXJpZXMgd2VyZSBjb21waWxlZAotIyMgd2l0aCBHQ0MsIHdlIG1pZ2h0 IG5lZWQgTElCX0dDQyBhZ2FpbiBhZnRlciB0aGVtLgogTElCRVMgPSAkKExJQlMpICQoVzMy X0xJQlMpICQoTElCU19HTlVTVEVQKSAkKExJQlhfQkFTRSkgJChMSUJJTUFHRSkgXAogICAg JChMSUJYX09USEVSKSAkKExJQlNPVU5EKSBcCiAgICAkKFJTVkdfTElCUykgJChJTUFHRU1B R0lDS19MSUJTKSAkKExJQl9DTE9DS19HRVRUSU1FKSBcCkBAIC00MDksNyArMzk1LDcgQEAK ICAgICQoTElCU19URVJNQ0FQKSAkKEdFVExPQURBVkdfTElCUykgJChTRVRUSU5HU19MSUJT KSAkKExJQlNFTElOVVhfTElCUykgXAogICAgJChGUkVFVFlQRV9MSUJTKSAkKEZPTlRDT05G SUdfTElCUykgJChMSUJPVEZfTElCUykgJChNMTdOX0ZMVF9MSUJTKSBcCiAgICAkKExJQkFD TF9MSUJTKSAkKExJQkdOVVRMU19MSUJTKSAkKExJQl9QVEhSRUFEKSAkKExJQl9QVEhSRUFE X1NJR01BU0spIFwKLSAgICQoTElCX0dDQykgJChMSUJfTUFUSCkgJChMSUJfU1RBTkRBUkQp ICQoTElCX0dDQykKKyAgICQoTElCX01BVEgpCiAKIGFsbDogZW1hY3MkKEVYRUVYVCkgJChP VEhFUl9GSUxFUykKIC5QSE9OWTogYWxsCkBAIC00NTYsNyArNDQyLDcgQEAKIAljZCAkKGxp YnNyYyk7ICQoTUFLRSkgJChNRkxBR1MpIG1ha2UtZG9jZmlsZSQoRVhFRVhUKQogCiBidWls ZG9iai5oOiBNYWtlZmlsZQotCWVjaG8gIiNkZWZpbmUgQlVJTERPQkogXCIkKG9iaikgJChv dGhlcm9iaikgIiAiXCIiID4gYnVpbGRvYmouaAorCWVjaG8gIiNkZWZpbmUgQlVJTERPQkog XCIkKFZNTElNSVRfT0JKKSAkKG9iaikgJChvdGhlcm9iaikgIiAiXCIiID4kQAogCiBnbG9i YWxzLmg6IGdsLXN0YW1wOyBAdHJ1ZQogCkBAIC00NjgsMTUgKzQ1NCwxNSBAQAogCSQoc3Jj ZGlyKS8uLi9idWlsZC1hdXgvbW92ZS1pZi1jaGFuZ2UgZ2wtdG1wIGdsb2JhbHMuaAogCWVj aG8gdGltZXN0YW1wID4gJEAKIAotJChvYmopICQob3RoZXJvYmopOiBnbG9iYWxzLmgKKyQo Vk1MSU1JVF9PQkopICQob2JqKSAkKG90aGVyb2JqKTogZ2xvYmFscy5oCiAKICQobGliKS9s aWJnbnUuYTogJChjb25maWdfaCkKIAljZCAkKGxpYikgJiYgJChNQUtFKSBsaWJnbnUuYQog Ci10ZW1hY3MkKEVYRUVYVCk6ICQoU1RBUlRfRklMRVMpIHN0YW1wLW9sZHhtZW51ICQob2Jq KSAkKG90aGVyb2JqKSBcCit0ZW1hY3MkKEVYRUVYVCk6ICQoVk1MSU1JVF9PQkopIHN0YW1w LW9sZHhtZW51ICQob2JqKSAkKG90aGVyb2JqKSBcCiAJICAgICAgICAgJChsaWIpL2xpYmdu dS5hICQoVzMyX1JFUykKLQkkKENDKSAkKExEX0ZJUlNURkxBRykgJChBTExfQ0ZMQUdTKSAk KFRFTUFDU19MREZMQUdTKSAkKExERkxBR1MpIFwKLQkgIC1vIHRlbWFjcyAkKFNUQVJUX0ZJ TEVTKSAkKG9iaikgJChvdGhlcm9iaikgJChsaWIpL2xpYmdudS5hICQoTElCRVMpIFwKKwkk KENDKSAkKEFMTF9DRkxBR1MpICQoVEVNQUNTX0xERkxBR1MpICQoTERGTEFHUykgXAorCSAg LW8gdGVtYWNzICQoVk1MSU1JVF9PQkopICQob2JqKSAkKG90aGVyb2JqKSAkKGxpYikvbGli Z251LmEgJChMSUJFUykgXAogCSAgJChXMzJfUkVTX0xJTkspCiAJdGVzdCAiJChDQU5OT1Rf RFVNUCkiID0gInllcyIgfHwgXAogCSAgdGVzdCAiWCQoUEFYQ1RMKSIgPSBYIHx8ICQoUEFY Q1RMKSAtciB0ZW1hY3MkKEVYRUVYVCkKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvYXV0b2Rl cHMubWsnCi0tLSBzcmMvYXV0b2RlcHMubWsJMjAxMC0wNy0wOCAwMzozMTowNCArMDAwMAor Kysgc3JjL2F1dG9kZXBzLm1rCTIwMTMtMDItMjIgMDg6MTE6MDUgKzAwMDAKQEAgLTIsNSAr Miw1IEBACiAKICMjIFRoaXMgaXMgaW5zZXJ0ZWQgaW4gc3JjL01ha2VmaWxlIGlmIEFVVE9f REVQRU5EPXllcy4KIAotQUxMT0JKUz0kKFNUQVJUX0ZJTEVTKSAke29ian0gJHtvdGhlcm9i an0KK0FMTE9CSlM9JHtvYmp9ICR7b3RoZXJvYmp9CiAtaW5jbHVkZSAkKEFMTE9CSlM6JS5v PSR7REVQRElSfS8lLmQpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2RlcHMubWsnCi0tLSBz cmMvZGVwcy5tawkyMDEzLTAxLTAyIDE2OjEzOjA0ICswMDAwCisrKyBzcmMvZGVwcy5tawky MDEzLTAyLTIyIDA4OjExOjA1ICswMDAwCkBAIC0xNDQsNyArMTQ0LDcgQEAKICAgIGRpc3Bl eHRlcm4uaCBsaXNwLmggZ2xvYmFscy5oICQoY29uZmlnX2gpIHN5c3RpbWUuaCBjb2Rpbmcu aCBjb21wb3NpdGUuaAogZ21hbGxvYy5vOiBnbWFsbG9jLmMgJChjb25maWdfaCkKIHJhbGxv Yy5vOiByYWxsb2MuYyBsaXNwLmggJChjb25maWdfaCkKLXZtLWxpbWl0Lm86IHZtLWxpbWl0 LmMgbWVtLWxpbWl0cy5oIGxpc3AuaCBnbG9iYWxzLmggJChjb25maWdfaCkKK3ZtLWxpbWl0 Lm86IHZtLWxpbWl0LmMgbGlzcC5oIGdsb2JhbHMuaCAkKGNvbmZpZ19oKQogbWFya2VyLm86 IG1hcmtlci5jIGJ1ZmZlci5oIGNoYXJhY3Rlci5oIGxpc3AuaCBnbG9iYWxzLmggJChjb25m aWdfaCkKIG1pbmlidWYubzogbWluaWJ1Zi5jIHN5bnRheC5oIGZyYW1lLmggd2luZG93Lmgg a2V5Ym9hcmQuaCBzeXN0aW1lLmggXAogICAgYnVmZmVyLmggY29tbWFuZHMuaCBjaGFyYWN0 ZXIuaCBtc2Rvcy5oICQoSU5URVJWQUxTX0gpIGtleW1hcC5oIFwKCj09PSBtb2RpZmllZCBm aWxlICdzcmMvZW1hY3MuYycKLS0tIHNyYy9lbWFjcy5jCTIwMTMtMDItMDcgMDY6MjM6NTQg KzAwMDAKKysrIHNyYy9lbWFjcy5jCTIwMTMtMDItMjIgMDg6MTE6MDUgKzAwMDAKQEAgLTUy MSwzMiArNTIxLDYgQEAKIHN0YXRpYyBjaGFyIGNvbnN0IGR1bXBfdHpbXSA9ICJVdEMwIjsK ICNlbmRpZgogCi0jaWZuZGVmIE9SRElOQVJZX0xJTksKLS8qIFdlIGRvbid0IGluY2x1ZGUg Y3J0YmVnaW4ubyBhbmQgY3J0ZW5kLm8gaW4gdGhlIGxpbmssCi0gICBzbyB0aGVzZSBmdW5j dGlvbnMgYW5kIHZhcmlhYmxlcyBtaWdodCBiZSBtaXNzZWQuCi0gICBQcm92aWRlIGR1bW15 IGRlZmluaXRpb25zIHRvIGF2b2lkIGVycm9yLgotICAgKFdlIGRvbid0IGhhdmUgYW55IHJl YWwgY29uc3RydWN0b3JzIG9yIGRlc3RydWN0b3JzLikgICovCi0jaWZkZWYgX19HTlVDX18K LQotLyogRGVmaW5lIGEgZHVtbXkgZnVuY3Rpb24gRi4gIERlY2xhcmUgRiB0b28sIHRvIHBh Y2lmeSBnY2MKLSAgIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8KLSNkZWZpbmUgREVGSU5F X0RVTU1ZX0ZVTkNUSU9OKGYpIFwKLSAgdm9pZCBmICh2b2lkKSBBVFRSSUJVVEVfQ09OU1Qg RVhURVJOQUxMWV9WSVNJQkxFOyB2b2lkIGYgKHZvaWQpIHt9Ci0KLSNpZm5kZWYgR0NDX0NU T1JTX0lOX0xJQkMKLURFRklORV9EVU1NWV9GVU5DVElPTiAoX19kb19nbG9iYWxfY3RvcnMp Ci1ERUZJTkVfRFVNTVlfRlVOQ1RJT04gKF9fZG9fZ2xvYmFsX2N0b3JzX2F1eCkKLURFRklO RV9EVU1NWV9GVU5DVElPTiAoX19kb19nbG9iYWxfZHRvcnMpCi0vKiBHTlUvTGludXggaGFz IGEgYnVnIGluIGl0cyBsaWJyYXJ5OyBhdm9pZCBhbiBlcnJvci4gICovCi0jaWZuZGVmIEdO VV9MSU5VWAotY2hhciAqIF9fQ1RPUl9MSVNUX19bMl0gRVhURVJOQUxMWV9WSVNJQkxFID0g eyAoY2hhciAqKSAoLTEpLCAwIH07Ci0jZW5kaWYKLWNoYXIgKiBfX0RUT1JfTElTVF9fWzJd IEVYVEVSTkFMTFlfVklTSUJMRSA9IHsgKGNoYXIgKikgKC0xKSwgMCB9OwotI2VuZGlmIC8q IEdDQ19DVE9SU19JTl9MSUJDICovCi1ERUZJTkVfRFVNTVlfRlVOQ1RJT04gKF9fbWFpbikK LSNlbmRpZiAvKiBfX0dOVUNfXyAqLwotI2VuZGlmIC8qIE9SRElOQVJZX0xJTksgKi8KLQog LyogVGVzdCB3aGV0aGVyIHRoZSBuZXh0IGFyZ3VtZW50IGluIEFSR1YgbWF0Y2hlcyBTU1RS IG9yIGEgcHJlZml4IG9mCiAgICBMU1RSIChhdCBsZWFzdCBNSU5MRU4gY2hhcmFjdGVycyku ICBJZiBzbywgdGhlbiBpZiBWQUxQVFIgaXMgbm9uLW51bGwKICAgICh0aGUgYXJndW1lbnQg aXMgc3VwcG9zZWQgdG8gaGF2ZSBhIHZhbHVlKSBzdG9yZSBpbiAqVkFMUFRSIGVpdGhlcgoK PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9tYWtlZmlsZS53MzItaW4nCi0tLSBzcmMvbWFrZWZp bGUudzMyLWluCTIwMTMtMDItMTMgMDA6NTA6MzggKzAwMDAKKysrIHNyYy9tYWtlZmlsZS53 MzItaW4JMjAxMy0wMi0yMiAwODoxMTowNSArMDAwMApAQCAtMTQ5Miw3ICsxNDkyLDYgQEAK IAogJChCTEQpL3ZtLWxpbWl0LiQoTykgOiBcCiAJJChTUkMpL3ZtLWxpbWl0LmMgXAotCSQo U1JDKS9tZW0tbGltaXRzLmggXAogCSQoU1JDKS93MzJoZWFwLmggXAogCSQoTlRfSU5DKS91 bmlzdGQuaCBcCiAJJChDT05GSUdfSCkgXAoKPT09IHJlbW92ZWQgZmlsZSAnc3JjL21lbS1s aW1pdHMuaCcKLS0tIHNyYy9tZW0tbGltaXRzLmgJMjAxMy0wMS0wMSAwOToxMTowNSArMDAw MAorKysgc3JjL21lbS1saW1pdHMuaAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCkBAIC0x LDQzICswLDAgQEAKLS8qIEluY2x1ZGVzIGZvciBtZW1vcnkgbGltaXQgd2FybmluZ3MuCi0g ICBDb3B5cmlnaHQgKEMpIDE5OTAsIDE5OTMtMTk5NiwgMjAwMS0yMDEzIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwKLSAgIEluYy4KLQotVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVt YWNzLgotCi1HTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQotaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLXRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0oYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi1HTlUgRW1hY3MgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLWJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi1N RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCi1HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot Ci1Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQotYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotCi0jaWZkZWYgTVNET1MKLSNpbmNs dWRlIDxkcG1pLmg+Ci1leHRlcm4gaW50IGV0ZXh0OwotI2VuZGlmCi0KLS8qIFNvbWUgc3lz dGVtcyBuZWVkIHRoaXMgYmVmb3JlIDxzeXMvcmVzb3VyY2UuaD4uICAqLwotI2luY2x1ZGUg PHN5cy90eXBlcy5oPgotCi0jaWZkZWYgSEFWRV9TWVNfUkVTT1VSQ0VfSAotIyBpbmNsdWRl IDxzeXMvdGltZS5oPgotIyBpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLSNlbHNlCi0jIGlm IEhBVkVfU1lTX1ZMSU1JVF9ICi0jICBpbmNsdWRlIDxzeXMvdmxpbWl0Lmg+CS8qIE9ic29s ZXRlLCBzYXlzIGdsaWJjICovCi0jIGVuZGlmCi0jZW5kaWYKLQotZXh0ZXJuIGNoYXIgKnN0 YXJ0X29mX2RhdGEgKHZvaWQpIEFUVFJJQlVURV9DT05TVDsKLSNpZiBVU0VfTFNCX1RBRyB8 fCBVSU5UUFRSX01BWCA8PSBWQUxfTUFYCi0jZGVmaW5lIEVYQ0VFRFNfTElTUF9QVFIocHRy KSAwCi0jZWxzZQotI2RlZmluZSBFWENFRURTX0xJU1BfUFRSKHB0cikgXAotICAoKCh1aW50 cHRyX3QpIChwdHIpICYgfkRBVEFfU0VHX0JJVFMpID4+IFZBTEJJVFMpCi0jZW5kaWYKCj09 PSByZW1vdmVkIGZpbGUgJ3NyYy9wcmUtY3J0MC5jJwotLS0gc3JjL3ByZS1jcnQwLmMJMjAx My0wMi0xMiAxODozMzo0MiArMDAwMAorKysgc3JjL3ByZS1jcnQwLmMJMTk3MC0wMS0wMSAw MDowMDowMCArMDAwMApAQCAtMSwxMCArMCwwIEBACi0vKiBUaGlzIGZpbGUgaXMgbG9hZGVk IGJlZm9yZSBjcnQwLm8gb24gbWFjaGluZXMgd2hlcmUgd2UgZG8gbm90Ci0gICByZW1hcCBw YXJ0IG9mIHRoZSBkYXRhIHNwYWNlIGludG8gdGV4dCBzcGFjZSBpbiB1bmV4ZWMuCi0gICBP biB0aGVzZSBtYWNoaW5lcywgdGhlcmUgaXMgbm8gcHJvYmxlbSB3aXRoIHN0YW5kYXJkIGNy dDAubydzCi0gICB0aGF0IG1ha2UgZW52aXJvbiBhbiBpbml0aWFsaXplZCB2YXJpYWJsZS4g IEhvd2V2ZXIsIHdlIGRvCi0gICBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbGFiZWwgZGF0YV9z dGFydCBleGlzdHMgYW55d2F5LiAgKi8KLQotLyogQ3JlYXRlIGEgbGFiZWwgdG8gYXBwZWFy IGF0IHRoZSBiZWdpbm5pbmcgb2YgZGF0YSBzcGFjZS4KLSAgIEl0cyB2YWx1ZSBpcyBub256 ZXJvIHNvIHRoYXQgaXQgY2Fubm90IGJlIHB1dCBpbnRvIGJzcy4gICovCi0KLWludCBkYXRh X3N0YXJ0ID0gMTsKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvdW5leGFpeC5jJwotLS0gc3Jj L3VuZXhhaXguYwkyMDEzLTAyLTE1IDA2OjM1OjU0ICswMDAwCisrKyBzcmMvdW5leGFpeC5j CTIwMTMtMDItMjIgMDg6MTE6MDUgKzAwMDAKQEAgLTU5LDggKzU5LDYgQEAKICNpbmNsdWRl IDx1bmlzdGQuaD4KICNpbmNsdWRlIDxmY250bC5oPgogCi0jaW5jbHVkZSAibWVtLWxpbWl0 cy5oIgotCiBleHRlcm4gY2hhciBfZGF0YVtdOwogZXh0ZXJuIGNoYXIgX3RleHRbXTsKIAoK PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy91bmV4Y29mZi5jJwotLS0gc3JjL3VuZXhjb2ZmLmMJ MjAxMy0wMS0wMiAxNjoxMzowNCArMDAwMAorKysgc3JjL3VuZXhjb2ZmLmMJMjAxMy0wMi0y MiAwODoxMTowNSArMDAwMApAQCAtOTksNyArOTksNyBAQAogCiAjaW5jbHVkZSA8c3lzL2Zp bGUuaD4KIAotI2luY2x1ZGUgIm1lbS1saW1pdHMuaCIKK2V4dGVybiB1bnNpZ25lZCBjaGFy ICpnZXRfZGF0YV9zdGFydCAodm9pZCk7CiAKIHN0YXRpYyBsb25nIGJsb2NrX2NvcHlfc3Rh cnQ7CQkvKiBPbGQgZXhlY3V0YWJsZSBzdGFydCBwb2ludCAqLwogc3RhdGljIHN0cnVjdCBm aWxlaGRyIGZfaGRyOwkJLyogRmlsZSBoZWFkZXIgKi8KQEAgLTE2OCw3ICsxNjgsNyBAQAog ICBwYWdlbWFzayA9IGdldHBhZ2VzaXplICgpIC0gMTsKIAogICAvKiBBZGp1c3QgdGV4dC9k YXRhIGJvdW5kYXJ5LiAqLwotICBkYXRhX3N0YXJ0ID0gKGludCkgc3RhcnRfb2ZfZGF0YSAo KTsKKyAgZGF0YV9zdGFydCA9IChpbnQpIGdldF9kYXRhX3N0YXJ0ICgpOwogICBkYXRhX3N0 YXJ0ID0gQUREUl9DT1JSRUNUIChkYXRhX3N0YXJ0KTsKICAgZGF0YV9zdGFydCA9IGRhdGFf c3RhcnQgJiB+cGFnZW1hc2s7IC8qIChEb3duKSB0byBwYWdlIGJvdW5kYXJ5LiAqLwogCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3ZtLWxpbWl0LmMnCi0tLSBzcmMvdm0tbGltaXQuYwky MDEzLTAxLTAyIDE2OjEzOjA0ICswMDAwCisrKyBzcmMvdm0tbGltaXQuYwkyMDEzLTAyLTIy IDA4OjExOjA1ICswMDAwCkBAIC0xOSw3ICsxOSwzMiBAQAogI2luY2x1ZGUgPGNvbmZpZy5o PgogI2luY2x1ZGUgPHVuaXN0ZC5oPiAvKiBmb3IgJ2Vudmlyb24nLCBvbiBBSVggKi8KICNp bmNsdWRlICJsaXNwLmgiCi0jaW5jbHVkZSAibWVtLWxpbWl0cy5oIgorCisjaWZkZWYgTVNE T1MKKyNpbmNsdWRlIDxkcG1pLmg+CisjZW5kaWYKKworLyogU29tZSBzeXN0ZW1zIG5lZWQg dGhpcyBiZWZvcmUgPHN5cy9yZXNvdXJjZS5oPi4gICovCisjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisKKyNpZmRlZiBIQVZFX1NZU19SRVNPVVJDRV9ICisjIGluY2x1ZGUgPHN5cy90aW1l Lmg+CisjIGluY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2Vsc2UKKyMgaWYgSEFWRV9TWVNf VkxJTUlUX0gKKyMgIGluY2x1ZGUgPHN5cy92bGltaXQuaD4JLyogT2Jzb2xldGUsIHNheXMg Z2xpYmMgKi8KKyMgZW5kaWYKKyNlbmRpZgorCisvKiBTdGFydCBvZiBkYXRhLiAgSXQgaXMg T0sgaWYgdGhpcyBpcyBhcHByb3hpbWF0ZTsgaXQncyB1c2VkIG9ubHkgYXMKKyAgIGEgaGV1 cmlzdGljLiAgKi8KK2V4dGVybiBjaGFyIGRhdGFfc3RhcnRbXTsKKyNpZm5kZWYgSEFWRV9E QVRBX1NUQVJUCisvKiBJbml0aWFsaXplIHRvIG5vbnplcm8sIHNvIHRoYXQgaXQncyBwdXQg aW50byBkYXRhIGFuZCBub3QgYnNzLgorICAgTGluayB0aGlzIGZpbGUncyBvYmplY3QgY29k ZSBmaXJzdCwgc28gdGhhdCB0aGlzIHN5bWJvbCBpcyBuZWFyIHRoZQorICAgc3RhcnQgb2Yg ZGF0YS4gICovCitjaGFyIGRhdGFfc3RhcnRbMV0gPSB7IDEgfTsKKyNlbmRpZgogCiAvKgog ICBMZXZlbCBudW1iZXIgb2Ygd2FybmluZ3MgYWxyZWFkeSBpc3N1ZWQuCkBAIC0zMSwxOCAr NTYsMjQgQEAKIGVudW0gd2FybmxldmVsIHsgbm90X3dhcm5lZCwgd2FybmVkXzc1LCB3YXJu ZWRfODUsIHdhcm5lZF85NSB9Owogc3RhdGljIGVudW0gd2FybmxldmVsIHdhcm5sZXZlbDsK IAotdHlwZWRlZiB2b2lkICpQT0lOVEVSOwotCiAvKiBGdW5jdGlvbiB0byBjYWxsIHRvIGlz c3VlIGEgd2FybmluZzsKICAgIDAgbWVhbnMgZG9uJ3QgaXNzdWUgdGhlbS4gICovCiBzdGF0 aWMgdm9pZCAoKndhcm5fZnVuY3Rpb24pIChjb25zdCBjaGFyICopOwogCi0vKiBTdGFydCBv ZiBkYXRhIHNwYWNlOyBjYW4gYmUgY2hhbmdlZCBieSBjYWxsaW5nIG1hbGxvY19pbml0LiAg Ki8KLXN0YXRpYyBQT0lOVEVSIGRhdGFfc3BhY2Vfc3RhcnQ7CisvKiBTdGFydCBvZiBkYXRh IHNwYWNlOyBjYW4gYmUgY2hhbmdlZCBieSBjYWxsaW5nIG1lbW9yeV93YXJuaW5ncy4gICov CitzdGF0aWMgY2hhciAqZGF0YV9zcGFjZV9zdGFydDsKIAogLyogTnVtYmVyIG9mIGJ5dGVz IG9mIHdyaXRhYmxlIG1lbW9yeSB3ZSBjYW4gZXhwZWN0IHRvIGJlIGFibGUgdG8gZ2V0LiAg Ki8KIHN0YXRpYyBzaXplX3QgbGltX2RhdGE7CiAMCisvKiBSZXR1cm4gdHJ1ZSBpZiBQVFIg Y2Fubm90IGJlIHJlcHJlc2VudGVkIGFzIGFuIEVtYWNzIExpc3Agb2JqZWN0LiAgKi8KK3N0 YXRpYyBib29sCitleGNlZWRzX2xpc3BfcHRyICh2b2lkICpwdHIpCit7CisgIHJldHVybiAo ISBVU0VfTFNCX1RBRworCSAgJiYgVkFMX01BWCA8IFVJTlRQVFJfTUFYCisJICAmJiAoKHVp bnRwdHJfdCkgcHRyICYgfkRBVEFfU0VHX0JJVFMpID4+IFZBTEJJVFMgIT0gMCk7Cit9CiAK ICNpZmRlZiBIQVZFX0dFVFJMSU1JVAogCkBAIC0xMjMsMTEgKzE1NCwxMyBAQAogY2hlY2tf bWVtb3J5X2xpbWl0cyAodm9pZCkKIHsKICNpZmRlZiBSRUxfQUxMT0MKLSAgZXh0ZXJuIFBP SU5URVIgKCpyZWFsX21vcmVjb3JlKSAocHRyZGlmZl90KTsKKyAgZXh0ZXJuIHZvaWQgKigq cmVhbF9tb3JlY29yZSkgKHB0cmRpZmZfdCk7CisjZWxzZQorICB2b2lkICooKnJlYWxfbW9y ZWNvcmUpIChwdHJkaWZmX3QpID0gMDsKICNlbmRpZgotICBleHRlcm4gUE9JTlRFUiAoKl9f bW9yZWNvcmUpIChwdHJkaWZmX3QpOworICBleHRlcm4gdm9pZCAqKCpfX21vcmVjb3JlKSAo cHRyZGlmZl90KTsKIAotICByZWdpc3RlciBQT0lOVEVSIGNwOworICBjaGFyICpjcDsKICAg c2l6ZV90IGZpdmVfcGVyY2VudDsKICAgc2l6ZV90IGRhdGFfc2l6ZTsKICAgZW51bSB3YXJu bGV2ZWwgbmV3X3dhcm5sZXZlbDsKQEAgLTEzNywxMyArMTcwLDggQEAKICAgZml2ZV9wZXJj ZW50ID0gbGltX2RhdGEgLyAyMDsKIAogICAvKiBGaW5kIGN1cnJlbnQgZW5kIG9mIG1lbW9y eSBhbmQgaXNzdWUgd2FybmluZyBpZiBnZXR0aW5nIG5lYXIgbWF4ICovCi0jaWZkZWYgUkVM X0FMTE9DCi0gIGlmIChyZWFsX21vcmVjb3JlKQotICAgIGNwID0gKGNoYXIgKikgKCpyZWFs X21vcmVjb3JlKSAoMCk7Ci0gIGVsc2UKLSNlbmRpZgotICBjcCA9IChjaGFyICopICgqX19t b3JlY29yZSkgKDApOwotICBkYXRhX3NpemUgPSAoY2hhciAqKSBjcCAtIChjaGFyICopIGRh dGFfc3BhY2Vfc3RhcnQ7CisgIGNwID0gKHJlYWxfbW9yZWNvcmUgPyByZWFsX21vcmVjb3Jl IDogX19tb3JlY29yZSkgKDApOworICBkYXRhX3NpemUgPSBjcCAtIGRhdGFfc3BhY2Vfc3Rh cnQ7CiAKICAgaWYgKCF3YXJuX2Z1bmN0aW9uKQogICAgIHJldHVybjsKQEAgLTE5MCw2MiAr MjE4LDIwIEBACiAJd2FybmxldmVsID0gd2FybmVkXzg1OwogICAgIH0KIAotICBpZiAoRVhD RUVEU19MSVNQX1BUUiAoY3ApKQorICBpZiAoZXhjZWVkc19saXNwX3B0ciAoY3ApKQogICAg ICgqd2Fybl9mdW5jdGlvbikgKCJXYXJuaW5nOiBtZW1vcnkgaW4gdXNlIGV4Y2VlZHMgbGlz cCBwb2ludGVyIHNpemUiKTsKIH0KIAwKLSNpZiAhZGVmaW5lZCAoQ0FOTk9UX0RVTVApIHx8 ICFkZWZpbmVkIChTWVNURU1fTUFMTE9DKQotLyogU29tZSBzeXN0ZW1zIHRoYXQgY2Fubm90 IGR1bXAgYWxzbyBjYW5ub3QgaW1wbGVtZW50IHRoZXNlLiAgKi8KLQotLyoKLSAqCVJldHVy biB0aGUgYWRkcmVzcyBvZiB0aGUgc3RhcnQgb2YgdGhlIGRhdGEgc2VnbWVudCBwcmlvciB0 bwotICoJZG9pbmcgYW4gdW5leGVjLiAgQWZ0ZXIgdW5leGVjIHRoZSByZXR1cm4gdmFsdWUg aXMgdW5kZWZpbmVkLgotICoJU2VlIGNydDAuYyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBh bmQgZGVmaW5pdGlvbiBvZiBkYXRhX3N0YXJ0LgotICoKLSAqCUFwcGFyZW50bHksIG9uIEJT RCBzeXN0ZW1zIHRoaXMgaXMgZXRleHQgYXQgc3RhcnR1cC4gIE9uCi0gKglVU0cgc3lzdGVt cyAoc3dhcHBpbmcpIHRoaXMgaXMgaGlnaGx5IG1tdSBkZXBlbmRlbnQgYW5kCi0gKglpcyBh bHNvIGRlcGVuZGVudCBvbiB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvZ3JhbSBpcyBydW5uaW5n Ci0gKgl3aXRoIHNoYXJlZCB0ZXh0LiAgR2VuZXJhbGx5IHRoZXJlIGlzIGEgKHBvc3NpYmx5 IGxhcmdlKQotICoJZ2FwIGJldHdlZW4gZW5kIG9mIHRleHQgYW5kIHN0YXJ0IG9mIGRhdGEg d2l0aCBzaGFyZWQgdGV4dC4KLSAqCi0gKi8KLQotY2hhciAqCi1zdGFydF9vZl9kYXRhICh2 b2lkKQotewotI2lmZGVmIEJTRF9TWVNURU0KLSAgZXh0ZXJuIGNoYXIgZXRleHQ7Ci0gIHJl dHVybiAoUE9JTlRFUikoJmV0ZXh0KTsKLSNlbGlmIGRlZmluZWQgREFUQV9TVEFSVAotICBy ZXR1cm4gKChQT0lOVEVSKSBEQVRBX1NUQVJUKTsKLSNlbGlmIGRlZmluZWQgT1JESU5BUllf TElOSwotICAvKgotICAgKiBUaGlzIGlzIGEgaGFjay4gIFNpbmNlIHdlJ3JlIG5vdCBsaW5r aW5nIGNydDAuYyBvciBwcmVfY3J0MC5jLAotICAgKiBkYXRhX3N0YXJ0IGlzbid0IGRlZmlu ZWQuICBXZSB0YWtlIHRoZSBhZGRyZXNzIG9mIGVudmlyb24sIHdoaWNoCi0gICAqIGlzIGtu b3duIHRvIGxpdmUgYXQgb3IgbmVhciB0aGUgc3RhcnQgb2YgdGhlIHN5c3RlbSBjcnQwLmMs IGFuZAotICAgKiB3ZSBkb24ndCBzd2VhdCB0aGUgaGFuZGZ1bCBvZiBieXRlcyB0aGF0IG1p Z2h0IGxvc2UuCi0gICAqLwotICByZXR1cm4gKChQT0lOVEVSKSAmZW52aXJvbik7Ci0jZWxz ZQotICBleHRlcm4gaW50IGRhdGFfc3RhcnQ7Ci0gIHJldHVybiAoKFBPSU5URVIpICZkYXRh X3N0YXJ0KTsKLSNlbmRpZgotfQotI2VuZGlmIC8qIChub3QgQ0FOTk9UX0RVTVAgb3Igbm90 IFNZU1RFTV9NQUxMT0MpICovCi0MCiAvKiBFbmFibGUgbWVtb3J5IHVzYWdlIHdhcm5pbmdz LgogICAgU1RBUlQgc2F5cyB3aGVyZSB0aGUgZW5kIG9mIHB1cmUgc3RvcmFnZSBpcy4KICAg IFdBUk5GVU4gc3BlY2lmaWVzIHRoZSBmdW5jdGlvbiB0byBjYWxsIHRvIGlzc3VlIGEgd2Fy bmluZy4gICovCiAKIHZvaWQKLW1lbW9yeV93YXJuaW5ncyAoUE9JTlRFUiBzdGFydCwgdm9p ZCAoKndhcm5mdW4pIChjb25zdCBjaGFyICopKQorbWVtb3J5X3dhcm5pbmdzICh2b2lkICpz dGFydCwgdm9pZCAoKndhcm5mdW4pIChjb25zdCBjaGFyICopKQogewogICBleHRlcm4gdm9p ZCAoKiBfX2FmdGVyX21vcmVjb3JlX2hvb2spICh2b2lkKTsgICAgIC8qIEZyb20gZ21hbGxv Yy5jICovCiAKLSAgaWYgKHN0YXJ0KQotICAgIGRhdGFfc3BhY2Vfc3RhcnQgPSBzdGFydDsK LSAgZWxzZQotICAgIGRhdGFfc3BhY2Vfc3RhcnQgPSBzdGFydF9vZl9kYXRhICgpOworICBk YXRhX3NwYWNlX3N0YXJ0ID0gc3RhcnQgPyBzdGFydCA6IGRhdGFfc3RhcnQ7CiAKICAgd2Fy bl9mdW5jdGlvbiA9IHdhcm5mdW47CiAgIF9fYWZ0ZXJfbW9yZWNvcmVfaG9vayA9IGNoZWNr X21lbW9yeV9saW1pdHM7Cgo= --------------050202080209060103040000--